@moqtap/codec 0.2.2 → 0.3.0

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 (716) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +100 -99
  3. package/dist/{chunk-RZHAPEXO.js → chunk-2A57DRXV.js} +36 -10
  4. package/dist/{chunk-PJRA2TQ5.js → chunk-2UTVXWFF.js} +388 -254
  5. package/dist/{chunk-IV2H5CFI.cjs → chunk-3XKO6PCR.cjs} +461 -322
  6. package/dist/{chunk-RVJAGE4S.cjs → chunk-4BDEU3D4.cjs} +415 -304
  7. package/dist/{chunk-XUUCOLWU.cjs → chunk-4HBKHNU2.cjs} +374 -329
  8. package/dist/{chunk-4RIXXEII.js → chunk-4IVZZOY3.js} +451 -312
  9. package/dist/{chunk-ZSPO2GF2.cjs → chunk-5O764MBD.cjs} +1320 -842
  10. package/dist/chunk-7KBAWOBA.js +1212 -0
  11. package/dist/{chunk-JSQM2MG3.js → chunk-7QOPNSDF.js} +44 -12
  12. package/dist/{chunk-SYHW3FLI.cjs → chunk-7RE6KSIY.cjs} +28 -8
  13. package/dist/{chunk-YG5KJESI.js → chunk-AY6IAHUM.js} +28 -8
  14. package/dist/{chunk-EFM5T7OM.js → chunk-BLQDWOSG.js} +36 -10
  15. package/dist/{chunk-KFTCU2P6.js → chunk-C6KUWLQC.js} +0 -3
  16. package/dist/{chunk-UYXTY6ZQ.cjs → chunk-E65QKRSN.cjs} +20 -12
  17. package/dist/{chunk-BISI45MN.cjs → chunk-EAHE3IOG.cjs} +44 -12
  18. package/dist/{chunk-IV2HRJVT.js → chunk-GCBFHZW6.js} +405 -294
  19. package/dist/{chunk-GXEW4COZ.cjs → chunk-H5NSL4MO.cjs} +36 -10
  20. package/dist/chunk-HZHSO7EW.cjs +1212 -0
  21. package/dist/{chunk-BPNL5YFQ.cjs → chunk-IILNSDEQ.cjs} +74 -46
  22. package/dist/{chunk-4XYGE53S.cjs → chunk-J3XCPBW3.cjs} +36 -10
  23. package/dist/{chunk-6AEHWULA.cjs → chunk-JKOEJZ5B.cjs} +28 -8
  24. package/dist/{chunk-FWISIR26.cjs → chunk-JL3NEW3O.cjs} +47 -4
  25. package/dist/{chunk-G7GI7LJA.js → chunk-LORZMJJB.js} +36 -10
  26. package/dist/{chunk-DUBCL3WF.cjs → chunk-LV5C6MEC.cjs} +36 -10
  27. package/dist/{chunk-ENURAVHI.cjs → chunk-MYXAD5JC.cjs} +44 -12
  28. package/dist/{chunk-FXZ2MYKJ.js → chunk-MZ7HUCGJ.js} +20 -12
  29. package/dist/{chunk-RWQ43Z4F.cjs → chunk-MZ7VU52O.cjs} +0 -3
  30. package/dist/{chunk-G26SJ6XS.cjs → chunk-OKG2HT25.cjs} +1193 -928
  31. package/dist/{chunk-IBVM4DMJ.cjs → chunk-PKEOQSSZ.cjs} +374 -329
  32. package/dist/{chunk-LH4NTURO.js → chunk-Q46ZURKX.js} +989 -602
  33. package/dist/{chunk-UR6JKS56.js → chunk-Q7IGWV3P.js} +41 -9
  34. package/dist/{chunk-ST24APEO.js → chunk-RW4UG7CN.js} +751 -682
  35. package/dist/{chunk-DWK5ZQZ4.js → chunk-RZTLQAKF.js} +28 -8
  36. package/dist/{chunk-UNS34PTA.cjs → chunk-S6IPIN66.cjs} +44 -12
  37. package/dist/{chunk-K4OLITS2.cjs → chunk-SDWRXXOO.cjs} +401 -267
  38. package/dist/{chunk-CXDHOMHG.js → chunk-SHMA4PBY.js} +476 -431
  39. package/dist/{chunk-U2B3B42P.js → chunk-U3ZVLT5L.js} +1176 -540
  40. package/dist/{chunk-HSVYF6XX.cjs → chunk-UJU63EFY.cjs} +1524 -1137
  41. package/dist/{chunk-A27S7HW7.js → chunk-VOU7PNHI.js} +47 -4
  42. package/dist/{chunk-E6E3NQYU.js → chunk-WRHGCVYN.js} +44 -12
  43. package/dist/chunk-XNWYLVGU.cjs +1854 -0
  44. package/dist/{chunk-NUX5BHWO.js → chunk-XS77RBY7.js} +1160 -895
  45. package/dist/{chunk-4YJANAXU.cjs → chunk-XZE5R57R.cjs} +829 -760
  46. package/dist/{chunk-NGVE2RZT.js → chunk-Y6KCSM3V.js} +476 -431
  47. package/dist/{chunk-TLYNOOQP.cjs → chunk-YTPZZI2M.cjs} +41 -9
  48. package/dist/{chunk-7DUBLRXC.js → chunk-YWRCSQBA.js} +44 -12
  49. package/dist/{chunk-MFAP7R6L.js → chunk-Z3VKP3PJ.js} +70 -42
  50. package/dist/{chunk-ZBKE2QRQ.js → chunk-Z6U26IRI.js} +1107 -629
  51. package/dist/codec-25u4_1HS.d.ts +35 -0
  52. package/dist/codec-3Ppy_5Gd.d.ts +23 -0
  53. package/dist/codec-BB0U8MF2.d.cts +34 -0
  54. package/dist/codec-BHHfBTnV.d.ts +34 -0
  55. package/dist/codec-BN6jk0Td.d.cts +30 -0
  56. package/dist/codec-BU0gaSZm.d.ts +29 -0
  57. package/dist/codec-C-Yk2RNa.d.ts +30 -0
  58. package/dist/codec-CFWQY9Lj.d.cts +18 -0
  59. package/dist/codec-COy4uuPO.d.cts +29 -0
  60. package/dist/codec-CewFCsEy.d.ts +18 -0
  61. package/dist/codec-Ck7ZwFF1.d.cts +35 -0
  62. package/dist/codec-D2QVSH9D.d.ts +30 -0
  63. package/dist/codec-DDUBJGn0.d.cts +23 -0
  64. package/dist/codec-DNfml-se.d.ts +27 -0
  65. package/dist/codec-DoOGjjDq.d.cts +29 -0
  66. package/dist/codec-J7ekOSMc.d.ts +29 -0
  67. package/dist/codec-R9TJCq-E.d.cts +31 -0
  68. package/dist/codec-ZwV-Njt6.d.ts +23 -0
  69. package/dist/codec-j819z_hL.d.cts +23 -0
  70. package/dist/codec-w8z2j_uo.d.cts +27 -0
  71. package/dist/codec-wtt6WF1K.d.ts +31 -0
  72. package/dist/codec-z6_2PSzi.d.cts +30 -0
  73. package/dist/draft10-session.cjs +2 -2
  74. package/dist/draft10-session.d.cts +6 -6
  75. package/dist/draft10-session.d.ts +6 -6
  76. package/dist/draft10-session.js +1 -1
  77. package/dist/draft10.cjs +8 -4
  78. package/dist/draft10.d.cts +23 -11
  79. package/dist/draft10.d.ts +23 -11
  80. package/dist/draft10.js +16 -12
  81. package/dist/draft11-session.cjs +2 -2
  82. package/dist/draft11-session.d.cts +6 -6
  83. package/dist/draft11-session.d.ts +6 -6
  84. package/dist/draft11-session.js +1 -1
  85. package/dist/draft11.cjs +8 -4
  86. package/dist/draft11.d.cts +21 -11
  87. package/dist/draft11.d.ts +21 -11
  88. package/dist/draft11.js +16 -12
  89. package/dist/draft12-session.cjs +2 -2
  90. package/dist/draft12-session.d.cts +6 -6
  91. package/dist/draft12-session.d.ts +6 -6
  92. package/dist/draft12-session.js +1 -1
  93. package/dist/draft12.cjs +8 -4
  94. package/dist/draft12.d.cts +23 -13
  95. package/dist/draft12.d.ts +23 -13
  96. package/dist/draft12.js +16 -12
  97. package/dist/draft13-session.cjs +2 -2
  98. package/dist/draft13-session.d.cts +6 -6
  99. package/dist/draft13-session.d.ts +6 -6
  100. package/dist/draft13-session.js +1 -1
  101. package/dist/draft13.cjs +8 -4
  102. package/dist/draft13.d.cts +23 -13
  103. package/dist/draft13.d.ts +23 -13
  104. package/dist/draft13.js +16 -12
  105. package/dist/draft14-session.cjs +2 -2
  106. package/dist/draft14-session.d.cts +6 -6
  107. package/dist/draft14-session.d.ts +6 -6
  108. package/dist/draft14-session.js +1 -1
  109. package/dist/draft14.cjs +14 -4
  110. package/dist/draft14.d.cts +67 -11
  111. package/dist/draft14.d.ts +67 -11
  112. package/dist/draft14.js +13 -3
  113. package/dist/draft15-session.cjs +2 -2
  114. package/dist/draft15-session.d.cts +6 -6
  115. package/dist/draft15-session.d.ts +6 -6
  116. package/dist/draft15-session.js +1 -1
  117. package/dist/draft15.cjs +8 -4
  118. package/dist/draft15.d.cts +56 -11
  119. package/dist/draft15.d.ts +56 -11
  120. package/dist/draft15.js +16 -12
  121. package/dist/draft16-session.cjs +2 -2
  122. package/dist/draft16-session.d.cts +6 -6
  123. package/dist/draft16-session.d.ts +6 -6
  124. package/dist/draft16-session.js +1 -1
  125. package/dist/draft16.cjs +8 -4
  126. package/dist/draft16.d.cts +45 -11
  127. package/dist/draft16.d.ts +45 -11
  128. package/dist/draft16.js +16 -12
  129. package/dist/draft17-session.cjs +2 -2
  130. package/dist/draft17-session.d.cts +7 -7
  131. package/dist/draft17-session.d.ts +7 -7
  132. package/dist/draft17-session.js +1 -1
  133. package/dist/draft17.cjs +8 -4
  134. package/dist/draft17.d.cts +21 -8
  135. package/dist/draft17.d.ts +21 -8
  136. package/dist/draft17.js +16 -12
  137. package/dist/draft7-session.cjs +3 -3
  138. package/dist/draft7-session.d.cts +6 -5
  139. package/dist/draft7-session.d.ts +6 -5
  140. package/dist/draft7-session.js +2 -2
  141. package/dist/draft7.cjs +83 -14
  142. package/dist/draft7.d.cts +59 -64
  143. package/dist/draft7.d.ts +59 -64
  144. package/dist/draft7.js +89 -20
  145. package/dist/draft8-session.cjs +2 -2
  146. package/dist/draft8-session.d.cts +6 -6
  147. package/dist/draft8-session.d.ts +6 -6
  148. package/dist/draft8-session.js +1 -1
  149. package/dist/draft8.cjs +8 -4
  150. package/dist/draft8.d.cts +23 -11
  151. package/dist/draft8.d.ts +23 -11
  152. package/dist/draft8.js +7 -3
  153. package/dist/draft9-session.cjs +2 -2
  154. package/dist/draft9-session.d.cts +6 -6
  155. package/dist/draft9-session.d.ts +6 -6
  156. package/dist/draft9-session.js +1 -1
  157. package/dist/draft9.cjs +8 -4
  158. package/dist/draft9.d.cts +23 -11
  159. package/dist/draft9.d.ts +23 -11
  160. package/dist/draft9.js +7 -3
  161. package/dist/index.cjs +52 -73
  162. package/dist/index.d.cts +41 -60
  163. package/dist/index.d.ts +55 -82
  164. package/dist/index.js +89 -93
  165. package/dist/{session-types-CJIFbTPd.d.ts → session-types-C7UONex5.d.cts} +28 -27
  166. package/dist/{session-types-Cbq8IGCP.d.cts → session-types-X-IYEGoG.d.ts} +28 -27
  167. package/dist/session.cjs +47 -14
  168. package/dist/session.d.cts +28 -9
  169. package/dist/session.d.ts +32 -9
  170. package/dist/session.js +59 -32
  171. package/dist/{types-4VxSL2Ho.d.ts → types--Q7_DcvP.d.cts} +49 -39
  172. package/dist/{types-4VxSL2Ho.d.cts → types--Q7_DcvP.d.ts} +49 -39
  173. package/dist/{types-Cw4WE9dh.d.ts → types-0IWbU9Z_.d.cts} +44 -36
  174. package/dist/{types-Cw4WE9dh.d.cts → types-0IWbU9Z_.d.ts} +44 -36
  175. package/dist/{types-D5gNQiDj.d.ts → types-B3g5G9KP.d.cts} +44 -36
  176. package/dist/{types-D5gNQiDj.d.cts → types-B3g5G9KP.d.ts} +44 -36
  177. package/dist/{types-B2afJZM-.d.cts → types-BFpFNM_m.d.cts} +60 -32
  178. package/dist/{types-B2afJZM-.d.ts → types-BFpFNM_m.d.ts} +60 -32
  179. package/dist/{types-ERexTpT8.d.ts → types-Br7fm2mf.d.cts} +51 -26
  180. package/dist/{types-ERexTpT8.d.cts → types-Br7fm2mf.d.ts} +51 -26
  181. package/dist/{types-Bg6QYNVt.d.cts → types-C2qKTRR_.d.cts} +55 -45
  182. package/dist/{types-Bg6QYNVt.d.ts → types-C2qKTRR_.d.ts} +55 -45
  183. package/dist/{types-BTFeKYCb.d.ts → types-DEaypVsD.d.cts} +133 -58
  184. package/dist/{types-BTFeKYCb.d.cts → types-DEaypVsD.d.ts} +133 -58
  185. package/dist/types-Dl4IaAHR.d.cts +282 -0
  186. package/dist/types-Dl4IaAHR.d.ts +282 -0
  187. package/dist/{types-C_1HrqBl.d.cts → types-DrQpTW1G.d.cts} +63 -50
  188. package/dist/{types-C_1HrqBl.d.ts → types-DrQpTW1G.d.ts} +63 -50
  189. package/dist/types-DuIO7cWK.d.cts +25 -0
  190. package/dist/types-DuIO7cWK.d.ts +25 -0
  191. package/dist/{types-DqCDFqgB.d.ts → types-DuxfOYiO.d.cts} +50 -31
  192. package/dist/{types-DqCDFqgB.d.cts → types-DuxfOYiO.d.ts} +50 -31
  193. package/dist/{types-r-CasCf1.d.cts → types-jV1yDDBA.d.cts} +43 -36
  194. package/dist/{types-r-CasCf1.d.ts → types-jV1yDDBA.d.ts} +43 -36
  195. package/package.json +15 -15
  196. package/src/core/buffer-reader.ts +69 -53
  197. package/src/core/buffer-writer.ts +55 -46
  198. package/src/core/errors.ts +1 -1
  199. package/src/core/hex.ts +21 -17
  200. package/src/core/session-types.ts +61 -59
  201. package/src/core/types.ts +18 -361
  202. package/src/drafts/draft07/codec.ts +1058 -933
  203. package/src/drafts/draft07/data-streams.ts +116 -116
  204. package/src/drafts/draft07/index.ts +124 -89
  205. package/src/drafts/draft07/messages.ts +76 -42
  206. package/src/drafts/draft07/rules.ts +107 -101
  207. package/src/drafts/draft07/session-fsm.ts +315 -287
  208. package/src/drafts/draft07/session.ts +8 -6
  209. package/src/drafts/draft07/types.ts +406 -72
  210. package/src/drafts/draft07/varint.ts +40 -12
  211. package/src/drafts/draft08/codec.ts +985 -944
  212. package/src/drafts/draft08/data-streams.ts +178 -174
  213. package/src/drafts/draft08/index.ts +10 -9
  214. package/src/drafts/draft08/messages.ts +59 -59
  215. package/src/drafts/draft08/rules.ts +73 -73
  216. package/src/drafts/draft08/session-fsm.ts +335 -303
  217. package/src/drafts/draft08/session.ts +6 -7
  218. package/src/drafts/draft08/types.ts +380 -384
  219. package/src/drafts/draft09/codec.ts +977 -936
  220. package/src/drafts/draft09/data-streams.ts +163 -159
  221. package/src/drafts/draft09/index.ts +10 -9
  222. package/src/drafts/draft09/messages.ts +59 -59
  223. package/src/drafts/draft09/rules.ts +73 -73
  224. package/src/drafts/draft09/session-fsm.ts +335 -303
  225. package/src/drafts/draft09/session.ts +6 -7
  226. package/src/drafts/draft09/types.ts +380 -384
  227. package/src/drafts/draft10/codec.ts +977 -936
  228. package/src/drafts/draft10/data-streams.ts +163 -159
  229. package/src/drafts/draft10/index.ts +10 -9
  230. package/src/drafts/draft10/messages.ts +59 -59
  231. package/src/drafts/draft10/rules.ts +73 -73
  232. package/src/drafts/draft10/session-fsm.ts +335 -303
  233. package/src/drafts/draft10/session.ts +6 -7
  234. package/src/drafts/draft10/types.ts +380 -384
  235. package/src/drafts/draft11/codec.ts +1054 -979
  236. package/src/drafts/draft11/data-streams.ts +189 -142
  237. package/src/drafts/draft11/index.ts +10 -9
  238. package/src/drafts/draft11/messages.ts +60 -59
  239. package/src/drafts/draft11/rules.ts +73 -73
  240. package/src/drafts/draft11/session-fsm.ts +359 -333
  241. package/src/drafts/draft11/session.ts +6 -7
  242. package/src/drafts/draft11/types.ts +385 -381
  243. package/src/drafts/draft12/codec.ts +1178 -1113
  244. package/src/drafts/draft12/data-streams.ts +192 -143
  245. package/src/drafts/draft12/index.ts +10 -9
  246. package/src/drafts/draft12/messages.ts +67 -66
  247. package/src/drafts/draft12/rules.ts +79 -79
  248. package/src/drafts/draft12/session-fsm.ts +384 -358
  249. package/src/drafts/draft12/session.ts +6 -7
  250. package/src/drafts/draft12/types.ts +424 -419
  251. package/src/drafts/draft13/codec.ts +1296 -1197
  252. package/src/drafts/draft13/data-streams.ts +194 -143
  253. package/src/drafts/draft13/index.ts +10 -9
  254. package/src/drafts/draft13/messages.ts +73 -68
  255. package/src/drafts/draft13/rules.ts +81 -81
  256. package/src/drafts/draft13/session-fsm.ts +392 -366
  257. package/src/drafts/draft13/session.ts +6 -7
  258. package/src/drafts/draft13/types.ts +447 -438
  259. package/src/drafts/draft14/codec.ts +1347 -1034
  260. package/src/drafts/draft14/data-streams.ts +429 -396
  261. package/src/drafts/draft14/index.ts +17 -9
  262. package/src/drafts/draft14/messages.ts +65 -65
  263. package/src/drafts/draft14/rules.ts +81 -81
  264. package/src/drafts/draft14/session-fsm.ts +415 -405
  265. package/src/drafts/draft14/session.ts +6 -7
  266. package/src/drafts/draft14/types.ts +451 -381
  267. package/src/drafts/draft15/codec.ts +1138 -969
  268. package/src/drafts/draft15/data-streams.ts +428 -364
  269. package/src/drafts/draft15/index.ts +10 -9
  270. package/src/drafts/draft15/messages.ts +54 -53
  271. package/src/drafts/draft15/rules.ts +67 -67
  272. package/src/drafts/draft15/session-fsm.ts +319 -299
  273. package/src/drafts/draft15/session.ts +6 -7
  274. package/src/drafts/draft15/types.ts +357 -339
  275. package/src/drafts/draft16/codec.ts +1242 -957
  276. package/src/drafts/draft16/data-streams.ts +433 -371
  277. package/src/drafts/draft16/index.ts +10 -9
  278. package/src/drafts/draft16/messages.ts +56 -55
  279. package/src/drafts/draft16/rules.ts +69 -69
  280. package/src/drafts/draft16/session-fsm.ts +319 -299
  281. package/src/drafts/draft16/session.ts +6 -7
  282. package/src/drafts/draft16/types.ts +386 -357
  283. package/src/drafts/draft17/codec.ts +1209 -962
  284. package/src/drafts/draft17/data-streams.ts +593 -366
  285. package/src/drafts/draft17/index.ts +9 -7
  286. package/src/drafts/draft17/messages.ts +43 -42
  287. package/src/drafts/draft17/rules.ts +58 -58
  288. package/src/drafts/draft17/session-fsm.ts +248 -216
  289. package/src/drafts/draft17/session.ts +5 -5
  290. package/src/drafts/draft17/types.ts +337 -313
  291. package/src/index.ts +85 -274
  292. package/src/session.ts +62 -23
  293. package/dist/chunk-7IVGHMKJ.cjs +0 -866
  294. package/dist/chunk-FUFTMAQD.cjs +0 -1218
  295. package/dist/chunk-TMNGRIPL.js +0 -866
  296. package/dist/codec-95k8CAu5.d.cts +0 -35
  297. package/dist/codec-AFuOxfsO.d.ts +0 -60
  298. package/dist/codec-B-UJ5Iow.d.cts +0 -75
  299. package/dist/codec-BC5jfvMb.d.ts +0 -35
  300. package/dist/codec-BECYPfY8.d.ts +0 -35
  301. package/dist/codec-BsPU1vNC.d.ts +0 -39
  302. package/dist/codec-BvpuF-6u.d.cts +0 -39
  303. package/dist/codec-C8jZI5Cx.d.cts +0 -39
  304. package/dist/codec-CAevkgf5.d.cts +0 -33
  305. package/dist/codec-CSUqCrRs.d.ts +0 -39
  306. package/dist/codec-C_HMXNK_.d.ts +0 -33
  307. package/dist/codec-CpuvYTSV.d.cts +0 -86
  308. package/dist/codec-D0x8-SCw.d.cts +0 -35
  309. package/dist/codec-D7ARhpG1.d.ts +0 -75
  310. package/dist/codec-DNAUGshO.d.cts +0 -60
  311. package/dist/codec-DPx_QNn0.d.ts +0 -31
  312. package/dist/codec-DRhCx_hw.d.ts +0 -86
  313. package/dist/codec-Db7YPe3l.d.ts +0 -31
  314. package/dist/codec-axkJpb7D.d.cts +0 -31
  315. package/dist/codec-ujAbFaep.d.cts +0 -31
  316. package/dist/core/buffer-reader.d.ts +0 -15
  317. package/dist/core/buffer-reader.d.ts.map +0 -1
  318. package/dist/core/buffer-reader.js +0 -98
  319. package/dist/core/buffer-reader.js.map +0 -1
  320. package/dist/core/buffer-writer.d.ts +0 -16
  321. package/dist/core/buffer-writer.d.ts.map +0 -1
  322. package/dist/core/buffer-writer.js +0 -86
  323. package/dist/core/buffer-writer.js.map +0 -1
  324. package/dist/core/errors.d.ts +0 -2
  325. package/dist/core/errors.d.ts.map +0 -1
  326. package/dist/core/errors.js +0 -2
  327. package/dist/core/errors.js.map +0 -1
  328. package/dist/core/hex.d.ts +0 -5
  329. package/dist/core/hex.d.ts.map +0 -1
  330. package/dist/core/hex.js +0 -17
  331. package/dist/core/hex.js.map +0 -1
  332. package/dist/core/session-types.d.ts +0 -99
  333. package/dist/core/session-types.d.ts.map +0 -1
  334. package/dist/core/session-types.js +0 -2
  335. package/dist/core/session-types.js.map +0 -1
  336. package/dist/core/types.d.ts +0 -235
  337. package/dist/core/types.d.ts.map +0 -1
  338. package/dist/core/types.js +0 -11
  339. package/dist/core/types.js.map +0 -1
  340. package/dist/drafts/draft07/announce-fsm.d.ts +0 -2
  341. package/dist/drafts/draft07/announce-fsm.d.ts.map +0 -1
  342. package/dist/drafts/draft07/announce-fsm.js +0 -2
  343. package/dist/drafts/draft07/announce-fsm.js.map +0 -1
  344. package/dist/drafts/draft07/codec.d.ts +0 -17
  345. package/dist/drafts/draft07/codec.d.ts.map +0 -1
  346. package/dist/drafts/draft07/codec.js +0 -722
  347. package/dist/drafts/draft07/codec.js.map +0 -1
  348. package/dist/drafts/draft07/data-streams.d.ts +0 -9
  349. package/dist/drafts/draft07/data-streams.d.ts.map +0 -1
  350. package/dist/drafts/draft07/data-streams.js +0 -228
  351. package/dist/drafts/draft07/data-streams.js.map +0 -1
  352. package/dist/drafts/draft07/index.d.ts +0 -14
  353. package/dist/drafts/draft07/index.d.ts.map +0 -1
  354. package/dist/drafts/draft07/index.js +0 -18
  355. package/dist/drafts/draft07/index.js.map +0 -1
  356. package/dist/drafts/draft07/messages.d.ts +0 -32
  357. package/dist/drafts/draft07/messages.d.ts.map +0 -1
  358. package/dist/drafts/draft07/messages.js +0 -42
  359. package/dist/drafts/draft07/messages.js.map +0 -1
  360. package/dist/drafts/draft07/parameters.d.ts +0 -4
  361. package/dist/drafts/draft07/parameters.d.ts.map +0 -1
  362. package/dist/drafts/draft07/parameters.js +0 -10
  363. package/dist/drafts/draft07/parameters.js.map +0 -1
  364. package/dist/drafts/draft07/rules.d.ts +0 -8
  365. package/dist/drafts/draft07/rules.d.ts.map +0 -1
  366. package/dist/drafts/draft07/rules.js +0 -95
  367. package/dist/drafts/draft07/rules.js.map +0 -1
  368. package/dist/drafts/draft07/session-fsm.d.ts +0 -38
  369. package/dist/drafts/draft07/session-fsm.d.ts.map +0 -1
  370. package/dist/drafts/draft07/session-fsm.js +0 -354
  371. package/dist/drafts/draft07/session-fsm.js.map +0 -1
  372. package/dist/drafts/draft07/session.d.ts +0 -4
  373. package/dist/drafts/draft07/session.d.ts.map +0 -1
  374. package/dist/drafts/draft07/session.js +0 -5
  375. package/dist/drafts/draft07/session.js.map +0 -1
  376. package/dist/drafts/draft07/subscription-fsm.d.ts +0 -2
  377. package/dist/drafts/draft07/subscription-fsm.d.ts.map +0 -1
  378. package/dist/drafts/draft07/subscription-fsm.js +0 -2
  379. package/dist/drafts/draft07/subscription-fsm.js.map +0 -1
  380. package/dist/drafts/draft07/types.d.ts +0 -61
  381. package/dist/drafts/draft07/types.d.ts.map +0 -1
  382. package/dist/drafts/draft07/types.js +0 -4
  383. package/dist/drafts/draft07/types.js.map +0 -1
  384. package/dist/drafts/draft07/varint.d.ts +0 -4
  385. package/dist/drafts/draft07/varint.d.ts.map +0 -1
  386. package/dist/drafts/draft07/varint.js +0 -22
  387. package/dist/drafts/draft07/varint.js.map +0 -1
  388. package/dist/drafts/draft08/codec.d.ts +0 -29
  389. package/dist/drafts/draft08/codec.d.ts.map +0 -1
  390. package/dist/drafts/draft08/codec.js +0 -729
  391. package/dist/drafts/draft08/codec.js.map +0 -1
  392. package/dist/drafts/draft08/data-streams.d.ts +0 -12
  393. package/dist/drafts/draft08/data-streams.d.ts.map +0 -1
  394. package/dist/drafts/draft08/data-streams.js +0 -345
  395. package/dist/drafts/draft08/data-streams.js.map +0 -1
  396. package/dist/drafts/draft08/index.d.ts +0 -9
  397. package/dist/drafts/draft08/index.d.ts.map +0 -1
  398. package/dist/drafts/draft08/index.js +0 -7
  399. package/dist/drafts/draft08/index.js.map +0 -1
  400. package/dist/drafts/draft08/messages.d.ts +0 -34
  401. package/dist/drafts/draft08/messages.d.ts.map +0 -1
  402. package/dist/drafts/draft08/messages.js +0 -66
  403. package/dist/drafts/draft08/messages.js.map +0 -1
  404. package/dist/drafts/draft08/rules.d.ts +0 -8
  405. package/dist/drafts/draft08/rules.d.ts.map +0 -1
  406. package/dist/drafts/draft08/rules.js +0 -83
  407. package/dist/drafts/draft08/rules.js.map +0 -1
  408. package/dist/drafts/draft08/session-fsm.d.ts +0 -47
  409. package/dist/drafts/draft08/session-fsm.d.ts.map +0 -1
  410. package/dist/drafts/draft08/session-fsm.js +0 -483
  411. package/dist/drafts/draft08/session-fsm.js.map +0 -1
  412. package/dist/drafts/draft08/session.d.ts +0 -5
  413. package/dist/drafts/draft08/session.d.ts.map +0 -1
  414. package/dist/drafts/draft08/session.js +0 -5
  415. package/dist/drafts/draft08/session.js.map +0 -1
  416. package/dist/drafts/draft08/types.d.ts +0 -268
  417. package/dist/drafts/draft08/types.d.ts.map +0 -1
  418. package/dist/drafts/draft08/types.js +0 -4
  419. package/dist/drafts/draft08/types.js.map +0 -1
  420. package/dist/drafts/draft09/codec.d.ts +0 -21
  421. package/dist/drafts/draft09/codec.d.ts.map +0 -1
  422. package/dist/drafts/draft09/codec.js +0 -721
  423. package/dist/drafts/draft09/codec.js.map +0 -1
  424. package/dist/drafts/draft09/data-streams.d.ts +0 -12
  425. package/dist/drafts/draft09/data-streams.d.ts.map +0 -1
  426. package/dist/drafts/draft09/data-streams.js +0 -307
  427. package/dist/drafts/draft09/data-streams.js.map +0 -1
  428. package/dist/drafts/draft09/index.d.ts +0 -9
  429. package/dist/drafts/draft09/index.d.ts.map +0 -1
  430. package/dist/drafts/draft09/index.js +0 -7
  431. package/dist/drafts/draft09/index.js.map +0 -1
  432. package/dist/drafts/draft09/messages.d.ts +0 -34
  433. package/dist/drafts/draft09/messages.d.ts.map +0 -1
  434. package/dist/drafts/draft09/messages.js +0 -66
  435. package/dist/drafts/draft09/messages.js.map +0 -1
  436. package/dist/drafts/draft09/rules.d.ts +0 -8
  437. package/dist/drafts/draft09/rules.d.ts.map +0 -1
  438. package/dist/drafts/draft09/rules.js +0 -83
  439. package/dist/drafts/draft09/rules.js.map +0 -1
  440. package/dist/drafts/draft09/session-fsm.d.ts +0 -47
  441. package/dist/drafts/draft09/session-fsm.d.ts.map +0 -1
  442. package/dist/drafts/draft09/session-fsm.js +0 -483
  443. package/dist/drafts/draft09/session-fsm.js.map +0 -1
  444. package/dist/drafts/draft09/session.d.ts +0 -5
  445. package/dist/drafts/draft09/session.d.ts.map +0 -1
  446. package/dist/drafts/draft09/session.js +0 -5
  447. package/dist/drafts/draft09/session.js.map +0 -1
  448. package/dist/drafts/draft09/types.d.ts +0 -268
  449. package/dist/drafts/draft09/types.d.ts.map +0 -1
  450. package/dist/drafts/draft09/types.js +0 -4
  451. package/dist/drafts/draft09/types.js.map +0 -1
  452. package/dist/drafts/draft10/codec.d.ts +0 -21
  453. package/dist/drafts/draft10/codec.d.ts.map +0 -1
  454. package/dist/drafts/draft10/codec.js +0 -721
  455. package/dist/drafts/draft10/codec.js.map +0 -1
  456. package/dist/drafts/draft10/data-streams.d.ts +0 -12
  457. package/dist/drafts/draft10/data-streams.d.ts.map +0 -1
  458. package/dist/drafts/draft10/data-streams.js +0 -307
  459. package/dist/drafts/draft10/data-streams.js.map +0 -1
  460. package/dist/drafts/draft10/index.d.ts +0 -9
  461. package/dist/drafts/draft10/index.d.ts.map +0 -1
  462. package/dist/drafts/draft10/index.js +0 -7
  463. package/dist/drafts/draft10/index.js.map +0 -1
  464. package/dist/drafts/draft10/messages.d.ts +0 -34
  465. package/dist/drafts/draft10/messages.d.ts.map +0 -1
  466. package/dist/drafts/draft10/messages.js +0 -66
  467. package/dist/drafts/draft10/messages.js.map +0 -1
  468. package/dist/drafts/draft10/rules.d.ts +0 -8
  469. package/dist/drafts/draft10/rules.d.ts.map +0 -1
  470. package/dist/drafts/draft10/rules.js +0 -83
  471. package/dist/drafts/draft10/rules.js.map +0 -1
  472. package/dist/drafts/draft10/session-fsm.d.ts +0 -47
  473. package/dist/drafts/draft10/session-fsm.d.ts.map +0 -1
  474. package/dist/drafts/draft10/session-fsm.js +0 -483
  475. package/dist/drafts/draft10/session-fsm.js.map +0 -1
  476. package/dist/drafts/draft10/session.d.ts +0 -5
  477. package/dist/drafts/draft10/session.d.ts.map +0 -1
  478. package/dist/drafts/draft10/session.js +0 -5
  479. package/dist/drafts/draft10/session.js.map +0 -1
  480. package/dist/drafts/draft10/types.d.ts +0 -268
  481. package/dist/drafts/draft10/types.d.ts.map +0 -1
  482. package/dist/drafts/draft10/types.js +0 -4
  483. package/dist/drafts/draft10/types.js.map +0 -1
  484. package/dist/drafts/draft11/codec.d.ts +0 -25
  485. package/dist/drafts/draft11/codec.d.ts.map +0 -1
  486. package/dist/drafts/draft11/codec.js +0 -775
  487. package/dist/drafts/draft11/codec.js.map +0 -1
  488. package/dist/drafts/draft11/data-streams.d.ts +0 -10
  489. package/dist/drafts/draft11/data-streams.d.ts.map +0 -1
  490. package/dist/drafts/draft11/data-streams.js +0 -253
  491. package/dist/drafts/draft11/data-streams.js.map +0 -1
  492. package/dist/drafts/draft11/index.d.ts +0 -9
  493. package/dist/drafts/draft11/index.d.ts.map +0 -1
  494. package/dist/drafts/draft11/index.js +0 -7
  495. package/dist/drafts/draft11/index.js.map +0 -1
  496. package/dist/drafts/draft11/messages.d.ts +0 -33
  497. package/dist/drafts/draft11/messages.d.ts.map +0 -1
  498. package/dist/drafts/draft11/messages.js +0 -65
  499. package/dist/drafts/draft11/messages.js.map +0 -1
  500. package/dist/drafts/draft11/rules.d.ts +0 -8
  501. package/dist/drafts/draft11/rules.d.ts.map +0 -1
  502. package/dist/drafts/draft11/rules.js +0 -88
  503. package/dist/drafts/draft11/rules.js.map +0 -1
  504. package/dist/drafts/draft11/session-fsm.d.ts +0 -52
  505. package/dist/drafts/draft11/session-fsm.d.ts.map +0 -1
  506. package/dist/drafts/draft11/session-fsm.js +0 -530
  507. package/dist/drafts/draft11/session-fsm.js.map +0 -1
  508. package/dist/drafts/draft11/session.d.ts +0 -5
  509. package/dist/drafts/draft11/session.d.ts.map +0 -1
  510. package/dist/drafts/draft11/session.js +0 -5
  511. package/dist/drafts/draft11/session.js.map +0 -1
  512. package/dist/drafts/draft11/types.d.ts +0 -266
  513. package/dist/drafts/draft11/types.d.ts.map +0 -1
  514. package/dist/drafts/draft11/types.js +0 -4
  515. package/dist/drafts/draft11/types.js.map +0 -1
  516. package/dist/drafts/draft12/codec.d.ts +0 -27
  517. package/dist/drafts/draft12/codec.d.ts.map +0 -1
  518. package/dist/drafts/draft12/codec.js +0 -918
  519. package/dist/drafts/draft12/codec.js.map +0 -1
  520. package/dist/drafts/draft12/data-streams.d.ts +0 -10
  521. package/dist/drafts/draft12/data-streams.d.ts.map +0 -1
  522. package/dist/drafts/draft12/data-streams.js +0 -254
  523. package/dist/drafts/draft12/data-streams.js.map +0 -1
  524. package/dist/drafts/draft12/index.d.ts +0 -9
  525. package/dist/drafts/draft12/index.d.ts.map +0 -1
  526. package/dist/drafts/draft12/index.js +0 -7
  527. package/dist/drafts/draft12/index.js.map +0 -1
  528. package/dist/drafts/draft12/messages.d.ts +0 -37
  529. package/dist/drafts/draft12/messages.d.ts.map +0 -1
  530. package/dist/drafts/draft12/messages.js +0 -77
  531. package/dist/drafts/draft12/messages.js.map +0 -1
  532. package/dist/drafts/draft12/rules.d.ts +0 -8
  533. package/dist/drafts/draft12/rules.d.ts.map +0 -1
  534. package/dist/drafts/draft12/rules.js +0 -94
  535. package/dist/drafts/draft12/rules.js.map +0 -1
  536. package/dist/drafts/draft12/session-fsm.d.ts +0 -55
  537. package/dist/drafts/draft12/session-fsm.d.ts.map +0 -1
  538. package/dist/drafts/draft12/session-fsm.js +0 -569
  539. package/dist/drafts/draft12/session-fsm.js.map +0 -1
  540. package/dist/drafts/draft12/session.d.ts +0 -5
  541. package/dist/drafts/draft12/session.d.ts.map +0 -1
  542. package/dist/drafts/draft12/session.js +0 -5
  543. package/dist/drafts/draft12/session.js.map +0 -1
  544. package/dist/drafts/draft12/types.d.ts +0 -294
  545. package/dist/drafts/draft12/types.d.ts.map +0 -1
  546. package/dist/drafts/draft12/types.js +0 -4
  547. package/dist/drafts/draft12/types.js.map +0 -1
  548. package/dist/drafts/draft13/codec.d.ts +0 -27
  549. package/dist/drafts/draft13/codec.d.ts.map +0 -1
  550. package/dist/drafts/draft13/codec.js +0 -1000
  551. package/dist/drafts/draft13/codec.js.map +0 -1
  552. package/dist/drafts/draft13/data-streams.d.ts +0 -10
  553. package/dist/drafts/draft13/data-streams.d.ts.map +0 -1
  554. package/dist/drafts/draft13/data-streams.js +0 -254
  555. package/dist/drafts/draft13/data-streams.js.map +0 -1
  556. package/dist/drafts/draft13/index.d.ts +0 -9
  557. package/dist/drafts/draft13/index.d.ts.map +0 -1
  558. package/dist/drafts/draft13/index.js +0 -7
  559. package/dist/drafts/draft13/index.js.map +0 -1
  560. package/dist/drafts/draft13/messages.d.ts +0 -38
  561. package/dist/drafts/draft13/messages.d.ts.map +0 -1
  562. package/dist/drafts/draft13/messages.js +0 -79
  563. package/dist/drafts/draft13/messages.js.map +0 -1
  564. package/dist/drafts/draft13/rules.d.ts +0 -8
  565. package/dist/drafts/draft13/rules.d.ts.map +0 -1
  566. package/dist/drafts/draft13/rules.js +0 -96
  567. package/dist/drafts/draft13/rules.js.map +0 -1
  568. package/dist/drafts/draft13/session-fsm.d.ts +0 -56
  569. package/dist/drafts/draft13/session-fsm.d.ts.map +0 -1
  570. package/dist/drafts/draft13/session-fsm.js +0 -581
  571. package/dist/drafts/draft13/session-fsm.js.map +0 -1
  572. package/dist/drafts/draft13/session.d.ts +0 -5
  573. package/dist/drafts/draft13/session.d.ts.map +0 -1
  574. package/dist/drafts/draft13/session.js +0 -5
  575. package/dist/drafts/draft13/session.js.map +0 -1
  576. package/dist/drafts/draft13/types.d.ts +0 -310
  577. package/dist/drafts/draft13/types.d.ts.map +0 -1
  578. package/dist/drafts/draft13/types.js +0 -4
  579. package/dist/drafts/draft13/types.js.map +0 -1
  580. package/dist/drafts/draft14/codec.d.ts +0 -34
  581. package/dist/drafts/draft14/codec.d.ts.map +0 -1
  582. package/dist/drafts/draft14/codec.js +0 -752
  583. package/dist/drafts/draft14/codec.js.map +0 -1
  584. package/dist/drafts/draft14/data-streams.d.ts +0 -56
  585. package/dist/drafts/draft14/data-streams.d.ts.map +0 -1
  586. package/dist/drafts/draft14/data-streams.js +0 -729
  587. package/dist/drafts/draft14/data-streams.js.map +0 -1
  588. package/dist/drafts/draft14/index.d.ts +0 -9
  589. package/dist/drafts/draft14/index.d.ts.map +0 -1
  590. package/dist/drafts/draft14/index.js +0 -7
  591. package/dist/drafts/draft14/index.js.map +0 -1
  592. package/dist/drafts/draft14/messages.d.ts +0 -36
  593. package/dist/drafts/draft14/messages.d.ts.map +0 -1
  594. package/dist/drafts/draft14/messages.js +0 -71
  595. package/dist/drafts/draft14/messages.js.map +0 -1
  596. package/dist/drafts/draft14/rules.d.ts +0 -8
  597. package/dist/drafts/draft14/rules.d.ts.map +0 -1
  598. package/dist/drafts/draft14/rules.js +0 -101
  599. package/dist/drafts/draft14/rules.js.map +0 -1
  600. package/dist/drafts/draft14/session-fsm.d.ts +0 -58
  601. package/dist/drafts/draft14/session-fsm.d.ts.map +0 -1
  602. package/dist/drafts/draft14/session-fsm.js +0 -648
  603. package/dist/drafts/draft14/session-fsm.js.map +0 -1
  604. package/dist/drafts/draft14/session.d.ts +0 -5
  605. package/dist/drafts/draft14/session.d.ts.map +0 -1
  606. package/dist/drafts/draft14/session.js +0 -5
  607. package/dist/drafts/draft14/session.js.map +0 -1
  608. package/dist/drafts/draft14/types.d.ts +0 -263
  609. package/dist/drafts/draft14/types.d.ts.map +0 -1
  610. package/dist/drafts/draft14/types.js +0 -4
  611. package/dist/drafts/draft14/types.js.map +0 -1
  612. package/dist/drafts/draft15/codec.d.ts +0 -33
  613. package/dist/drafts/draft15/codec.d.ts.map +0 -1
  614. package/dist/drafts/draft15/codec.js +0 -742
  615. package/dist/drafts/draft15/codec.js.map +0 -1
  616. package/dist/drafts/draft15/data-streams.d.ts +0 -45
  617. package/dist/drafts/draft15/data-streams.d.ts.map +0 -1
  618. package/dist/drafts/draft15/data-streams.js +0 -675
  619. package/dist/drafts/draft15/data-streams.js.map +0 -1
  620. package/dist/drafts/draft15/index.d.ts +0 -9
  621. package/dist/drafts/draft15/index.d.ts.map +0 -1
  622. package/dist/drafts/draft15/index.js +0 -7
  623. package/dist/drafts/draft15/index.js.map +0 -1
  624. package/dist/drafts/draft15/messages.d.ts +0 -31
  625. package/dist/drafts/draft15/messages.d.ts.map +0 -1
  626. package/dist/drafts/draft15/messages.js +0 -59
  627. package/dist/drafts/draft15/messages.js.map +0 -1
  628. package/dist/drafts/draft15/rules.d.ts +0 -8
  629. package/dist/drafts/draft15/rules.d.ts.map +0 -1
  630. package/dist/drafts/draft15/rules.js +0 -83
  631. package/dist/drafts/draft15/rules.js.map +0 -1
  632. package/dist/drafts/draft15/session-fsm.d.ts +0 -48
  633. package/dist/drafts/draft15/session-fsm.d.ts.map +0 -1
  634. package/dist/drafts/draft15/session-fsm.js +0 -479
  635. package/dist/drafts/draft15/session-fsm.js.map +0 -1
  636. package/dist/drafts/draft15/session.d.ts +0 -5
  637. package/dist/drafts/draft15/session.d.ts.map +0 -1
  638. package/dist/drafts/draft15/session.js +0 -5
  639. package/dist/drafts/draft15/session.js.map +0 -1
  640. package/dist/drafts/draft15/types.d.ts +0 -232
  641. package/dist/drafts/draft15/types.d.ts.map +0 -1
  642. package/dist/drafts/draft15/types.js +0 -4
  643. package/dist/drafts/draft15/types.js.map +0 -1
  644. package/dist/drafts/draft16/codec.d.ts +0 -29
  645. package/dist/drafts/draft16/codec.d.ts.map +0 -1
  646. package/dist/drafts/draft16/codec.js +0 -747
  647. package/dist/drafts/draft16/codec.js.map +0 -1
  648. package/dist/drafts/draft16/data-streams.d.ts +0 -34
  649. package/dist/drafts/draft16/data-streams.d.ts.map +0 -1
  650. package/dist/drafts/draft16/data-streams.js +0 -667
  651. package/dist/drafts/draft16/data-streams.js.map +0 -1
  652. package/dist/drafts/draft16/index.d.ts +0 -9
  653. package/dist/drafts/draft16/index.d.ts.map +0 -1
  654. package/dist/drafts/draft16/index.js +0 -7
  655. package/dist/drafts/draft16/index.js.map +0 -1
  656. package/dist/drafts/draft16/messages.d.ts +0 -32
  657. package/dist/drafts/draft16/messages.d.ts.map +0 -1
  658. package/dist/drafts/draft16/messages.js +0 -62
  659. package/dist/drafts/draft16/messages.js.map +0 -1
  660. package/dist/drafts/draft16/rules.d.ts +0 -8
  661. package/dist/drafts/draft16/rules.d.ts.map +0 -1
  662. package/dist/drafts/draft16/rules.js +0 -84
  663. package/dist/drafts/draft16/rules.js.map +0 -1
  664. package/dist/drafts/draft16/session-fsm.d.ts +0 -48
  665. package/dist/drafts/draft16/session-fsm.d.ts.map +0 -1
  666. package/dist/drafts/draft16/session-fsm.js +0 -474
  667. package/dist/drafts/draft16/session-fsm.js.map +0 -1
  668. package/dist/drafts/draft16/session.d.ts +0 -5
  669. package/dist/drafts/draft16/session.d.ts.map +0 -1
  670. package/dist/drafts/draft16/session.js +0 -5
  671. package/dist/drafts/draft16/session.js.map +0 -1
  672. package/dist/drafts/draft16/types.d.ts +0 -238
  673. package/dist/drafts/draft16/types.d.ts.map +0 -1
  674. package/dist/drafts/draft16/types.js +0 -4
  675. package/dist/drafts/draft16/types.js.map +0 -1
  676. package/dist/drafts/draft17/codec.d.ts +0 -29
  677. package/dist/drafts/draft17/codec.d.ts.map +0 -1
  678. package/dist/drafts/draft17/codec.js +0 -799
  679. package/dist/drafts/draft17/codec.js.map +0 -1
  680. package/dist/drafts/draft17/data-streams.d.ts +0 -13
  681. package/dist/drafts/draft17/data-streams.d.ts.map +0 -1
  682. package/dist/drafts/draft17/data-streams.js +0 -633
  683. package/dist/drafts/draft17/data-streams.js.map +0 -1
  684. package/dist/drafts/draft17/index.d.ts +0 -8
  685. package/dist/drafts/draft17/index.d.ts.map +0 -1
  686. package/dist/drafts/draft17/index.js +0 -6
  687. package/dist/drafts/draft17/index.js.map +0 -1
  688. package/dist/drafts/draft17/messages.d.ts +0 -25
  689. package/dist/drafts/draft17/messages.d.ts.map +0 -1
  690. package/dist/drafts/draft17/messages.js +0 -48
  691. package/dist/drafts/draft17/messages.js.map +0 -1
  692. package/dist/drafts/draft17/rules.d.ts +0 -8
  693. package/dist/drafts/draft17/rules.d.ts.map +0 -1
  694. package/dist/drafts/draft17/rules.js +0 -71
  695. package/dist/drafts/draft17/rules.js.map +0 -1
  696. package/dist/drafts/draft17/session-fsm.d.ts +0 -45
  697. package/dist/drafts/draft17/session-fsm.d.ts.map +0 -1
  698. package/dist/drafts/draft17/session-fsm.js +0 -328
  699. package/dist/drafts/draft17/session-fsm.js.map +0 -1
  700. package/dist/drafts/draft17/session.d.ts +0 -5
  701. package/dist/drafts/draft17/session.d.ts.map +0 -1
  702. package/dist/drafts/draft17/session.js +0 -6
  703. package/dist/drafts/draft17/session.js.map +0 -1
  704. package/dist/drafts/draft17/types.d.ts +0 -219
  705. package/dist/drafts/draft17/types.d.ts.map +0 -1
  706. package/dist/drafts/draft17/types.js +0 -3
  707. package/dist/drafts/draft17/types.js.map +0 -1
  708. package/dist/index.d.ts.map +0 -1
  709. package/dist/index.js.map +0 -1
  710. package/dist/session.d.ts.map +0 -1
  711. package/dist/session.js.map +0 -1
  712. package/dist/types-QNXoxC9Y.d.cts +0 -236
  713. package/dist/types-QNXoxC9Y.d.ts +0 -236
  714. package/src/drafts/draft07/announce-fsm.ts +0 -2
  715. package/src/drafts/draft07/parameters.ts +0 -12
  716. package/src/drafts/draft07/subscription-fsm.ts +0 -3
@@ -1,8 +1,10 @@
1
1
  import {
2
2
  BufferReader,
3
3
  BufferWriter,
4
- DecodeError
5
- } from "./chunk-A27S7HW7.js";
4
+ DecodeError,
5
+ bytesToHex,
6
+ hexToBytes
7
+ } from "./chunk-VOU7PNHI.js";
6
8
 
7
9
  // src/drafts/draft14/messages.ts
8
10
  var MSG_SUBSCRIBE_UPDATE = 0x02n;
@@ -74,26 +76,732 @@ var MESSAGE_ID_MAP = new Map(
74
76
  [...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
75
77
  );
76
78
 
77
- // src/drafts/draft14/codec.ts
78
- function bytesToHex(bytes) {
79
- let hex = "";
80
- for (let i = 0; i < bytes.byteLength; i++) {
81
- hex += bytes[i].toString(16).padStart(2, "0");
79
+ // src/drafts/draft14/types.ts
80
+ var FilterType = {
81
+ NextGroupStart: 1n,
82
+ LargestObject: 2n,
83
+ AbsoluteStart: 3n,
84
+ AbsoluteRange: 4n
85
+ };
86
+ var GroupOrder = {
87
+ PublisherChoice: 0n,
88
+ Ascending: 1n,
89
+ Descending: 2n
90
+ };
91
+ var FetchType = {
92
+ Standalone: 1n,
93
+ RelativeJoining: 2n,
94
+ AbsoluteJoining: 3n
95
+ };
96
+
97
+ // src/drafts/draft14/data-streams.ts
98
+ var FETCH_STREAM_TYPE = 0x05n;
99
+ function isValidSubgroupType(t) {
100
+ return t >= 16 && t <= 21 || t >= 24 && t <= 29;
101
+ }
102
+ function encodeSubgroupStream(stream) {
103
+ const w = new BufferWriter();
104
+ w.writeVarInt(BigInt(stream.headerType));
105
+ w.writeVarInt(stream.trackAlias);
106
+ w.writeVarInt(stream.groupId);
107
+ const hasSubgroupField = (stream.headerType & 4) !== 0;
108
+ const extensionsPresent = (stream.headerType & 1) !== 0;
109
+ if (hasSubgroupField) {
110
+ w.writeVarInt(stream.subgroupId);
111
+ }
112
+ w.writeUint8(stream.publisherPriority);
113
+ let prevObjectId = -1n;
114
+ let first = true;
115
+ for (const obj of stream.objects) {
116
+ const delta = first ? obj.objectId : obj.objectId - prevObjectId - 1n;
117
+ w.writeVarInt(delta);
118
+ first = false;
119
+ prevObjectId = obj.objectId;
120
+ if (extensionsPresent) {
121
+ w.writeVarInt(BigInt(obj.extensionData.length));
122
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
123
+ }
124
+ if (obj.payloadLength === 0) {
125
+ w.writeVarInt(0);
126
+ w.writeVarInt(obj.status ?? 0n);
127
+ } else {
128
+ w.writeVarInt(obj.payloadLength);
129
+ w.writeBytes(obj.payload);
130
+ }
131
+ }
132
+ return w.finish();
133
+ }
134
+ function encodeDatagram(dg) {
135
+ const w = new BufferWriter();
136
+ w.writeVarInt(BigInt(dg.datagramType));
137
+ w.writeVarInt(dg.trackAlias);
138
+ w.writeVarInt(dg.groupId);
139
+ const objectIdPresent = (dg.datagramType & 4) === 0;
140
+ const isStatus = dg.datagramType >= 32;
141
+ const extensionsPresent = (dg.datagramType & 1) !== 0;
142
+ if (objectIdPresent) {
143
+ w.writeVarInt(dg.objectId);
144
+ }
145
+ w.writeUint8(dg.publisherPriority);
146
+ if (extensionsPresent) {
147
+ const extData = dg.extensionData ?? new Uint8Array(0);
148
+ w.writeVarInt(extData.byteLength);
149
+ if (extData.byteLength > 0) w.writeBytes(extData);
150
+ }
151
+ if (isStatus) {
152
+ w.writeVarInt(dg.objectStatus ?? 0n);
153
+ } else {
154
+ w.writeBytes(dg.payload);
155
+ }
156
+ return w.finish();
157
+ }
158
+ function encodeFetchStream(stream) {
159
+ const w = new BufferWriter();
160
+ w.writeVarInt(FETCH_STREAM_TYPE);
161
+ w.writeVarInt(stream.requestId);
162
+ for (const obj of stream.objects) {
163
+ w.writeVarInt(obj.groupId);
164
+ w.writeVarInt(obj.subgroupId);
165
+ w.writeVarInt(obj.objectId);
166
+ w.writeUint8(obj.publisherPriority);
167
+ w.writeVarInt(BigInt(obj.extensionData.length));
168
+ if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
169
+ if (obj.payloadLength === 0) {
170
+ w.writeVarInt(0);
171
+ w.writeVarInt(obj.status ?? 0n);
172
+ } else {
173
+ w.writeVarInt(obj.payloadLength);
174
+ w.writeBytes(obj.payload);
175
+ }
176
+ }
177
+ return w.finish();
178
+ }
179
+ function decodeSubgroupStream(bytes) {
180
+ try {
181
+ const r = new BufferReader(bytes);
182
+ const streamType = Number(r.readVarInt());
183
+ if (!isValidSubgroupType(streamType)) {
184
+ return {
185
+ ok: false,
186
+ error: new DecodeError(
187
+ "CONSTRAINT_VIOLATION",
188
+ `Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`,
189
+ 0
190
+ )
191
+ };
192
+ }
193
+ const extensionsPresent = (streamType & 1) !== 0;
194
+ const hasSubgroupField = (streamType & 4) !== 0;
195
+ const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
196
+ const trackAlias = r.readVarInt();
197
+ const groupId = r.readVarInt();
198
+ let subgroupId = 0n;
199
+ if (hasSubgroupField) {
200
+ subgroupId = r.readVarInt();
201
+ }
202
+ const publisherPriority = r.readUint8();
203
+ const objects = [];
204
+ let prevObjectId = -1n;
205
+ let firstObject = true;
206
+ while (r.remaining > 0) {
207
+ const byteOffset = r.offset;
208
+ const delta = r.readVarInt();
209
+ let objectId;
210
+ if (firstObject) {
211
+ objectId = delta;
212
+ if (subgroupIsFirstObjId) {
213
+ subgroupId = objectId;
214
+ }
215
+ firstObject = false;
216
+ } else {
217
+ objectId = prevObjectId + 1n + delta;
218
+ }
219
+ let extensionData = new Uint8Array(0);
220
+ if (extensionsPresent) {
221
+ const extLen = Number(r.readVarInt());
222
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
223
+ }
224
+ const payloadLength = Number(r.readVarInt());
225
+ let payload;
226
+ let status;
227
+ let payloadByteOffset;
228
+ if (payloadLength === 0) {
229
+ status = r.readVarInt();
230
+ payloadByteOffset = r.offset;
231
+ payload = new Uint8Array(0);
232
+ } else {
233
+ payloadByteOffset = r.offset;
234
+ payload = r.readBytesView(payloadLength);
235
+ }
236
+ const obj = {
237
+ type: "object",
238
+ byteOffset,
239
+ payloadByteOffset,
240
+ objectId,
241
+ payloadLength,
242
+ payload,
243
+ extensionData
244
+ };
245
+ if (status !== void 0) obj.status = status;
246
+ objects.push(obj);
247
+ prevObjectId = objectId;
248
+ }
249
+ return {
250
+ ok: true,
251
+ value: {
252
+ type: "subgroup",
253
+ headerType: streamType,
254
+ trackAlias,
255
+ groupId,
256
+ subgroupId,
257
+ publisherPriority,
258
+ objects
259
+ },
260
+ bytesRead: r.offset
261
+ };
262
+ } catch (e) {
263
+ if (e instanceof DecodeError) return { ok: false, error: e };
264
+ throw e;
82
265
  }
83
- return hex;
84
266
  }
85
- function hexToBytes(hex) {
86
- const bytes = new Uint8Array(hex.length / 2);
87
- for (let i = 0; i < hex.length; i += 2) {
88
- bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
267
+ function decodeDatagram(bytes) {
268
+ try {
269
+ const r = new BufferReader(bytes);
270
+ const dgType = Number(r.readVarInt());
271
+ const validDatagram = dgType >= 0 && dgType <= 7 || dgType === 32 || dgType === 33;
272
+ if (!validDatagram) {
273
+ return {
274
+ ok: false,
275
+ error: new DecodeError(
276
+ "CONSTRAINT_VIOLATION",
277
+ `Expected datagram type 0x00-0x07 or 0x20-0x21, got 0x${dgType.toString(16)}`,
278
+ 0
279
+ )
280
+ };
281
+ }
282
+ const objectIdPresent = (dgType & 4) === 0;
283
+ const endOfGroup = (dgType & 2) !== 0;
284
+ const extensionsPresent = (dgType & 1) !== 0;
285
+ const isStatus = dgType >= 32;
286
+ const trackAlias = r.readVarInt();
287
+ const groupId = r.readVarInt();
288
+ let objectId = 0n;
289
+ if (objectIdPresent) {
290
+ objectId = r.readVarInt();
291
+ }
292
+ const publisherPriority = r.readUint8();
293
+ let extensionData;
294
+ if (extensionsPresent) {
295
+ const extLen = Number(r.readVarInt());
296
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
297
+ }
298
+ let objectStatus;
299
+ let payload;
300
+ if (isStatus) {
301
+ objectStatus = r.readVarInt();
302
+ payload = new Uint8Array(0);
303
+ } else {
304
+ payload = r.readBytesView(r.remaining);
305
+ }
306
+ const payloadLength = payload.byteLength;
307
+ const result = {
308
+ type: "datagram",
309
+ datagramType: dgType,
310
+ trackAlias,
311
+ groupId,
312
+ objectId,
313
+ publisherPriority,
314
+ payloadLength,
315
+ payload
316
+ };
317
+ if (endOfGroup) result.endOfGroup = true;
318
+ if (objectStatus !== void 0)
319
+ result.objectStatus = objectStatus;
320
+ if (extensionData !== void 0)
321
+ result.extensionData = extensionData;
322
+ return { ok: true, value: result, bytesRead: r.offset };
323
+ } catch (e) {
324
+ if (e instanceof DecodeError) return { ok: false, error: e };
325
+ throw e;
89
326
  }
90
- return bytes;
91
327
  }
92
- function encodeParams(params, writer) {
328
+ function decodeFetchStream(bytes) {
329
+ try {
330
+ const r = new BufferReader(bytes);
331
+ const streamType = r.readVarInt();
332
+ if (streamType !== FETCH_STREAM_TYPE) {
333
+ return {
334
+ ok: false,
335
+ error: new DecodeError(
336
+ "CONSTRAINT_VIOLATION",
337
+ `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
338
+ 0
339
+ )
340
+ };
341
+ }
342
+ const requestId = r.readVarInt();
343
+ const objects = [];
344
+ while (r.remaining > 0) {
345
+ const byteOffset = r.offset;
346
+ const groupId = r.readVarInt();
347
+ const subgroupId = r.readVarInt();
348
+ const objectId = r.readVarInt();
349
+ const publisherPriority = r.readUint8();
350
+ const extLen = Number(r.readVarInt());
351
+ const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
352
+ const payloadLength = Number(r.readVarInt());
353
+ let payload;
354
+ let status;
355
+ let payloadByteOffset;
356
+ if (payloadLength === 0) {
357
+ status = r.readVarInt();
358
+ payloadByteOffset = r.offset;
359
+ payload = new Uint8Array(0);
360
+ } else {
361
+ payloadByteOffset = r.offset;
362
+ payload = r.readBytesView(payloadLength);
363
+ }
364
+ const obj = {
365
+ type: "object",
366
+ byteOffset,
367
+ payloadByteOffset,
368
+ groupId,
369
+ subgroupId,
370
+ objectId,
371
+ publisherPriority,
372
+ payloadLength,
373
+ payload,
374
+ extensionData
375
+ };
376
+ if (status !== void 0) obj.status = status;
377
+ objects.push(obj);
378
+ }
379
+ return {
380
+ ok: true,
381
+ value: { type: "fetch", requestId, objects },
382
+ bytesRead: r.offset
383
+ };
384
+ } catch (e) {
385
+ if (e instanceof DecodeError) return { ok: false, error: e };
386
+ throw e;
387
+ }
388
+ }
389
+ function decodeDataStream(streamType, bytes) {
390
+ switch (streamType) {
391
+ case "subgroup":
392
+ return decodeSubgroupStream(bytes);
393
+ case "datagram":
394
+ return decodeDatagram(bytes);
395
+ case "fetch":
396
+ return decodeFetchStream(bytes);
397
+ default: {
398
+ const _exhaustive = streamType;
399
+ throw new Error(`Unknown stream type: ${_exhaustive}`);
400
+ }
401
+ }
402
+ }
403
+ function createSubgroupStreamDecoder() {
404
+ let buffer = new Uint8Array(0);
405
+ let offset = 0;
406
+ let headerEmitted = false;
407
+ let extensionsPresent = false;
408
+ let prevObjectId = -1n;
409
+ let firstObject = true;
410
+ return new TransformStream({
411
+ transform(chunk, controller) {
412
+ if (offset > 0) {
413
+ buffer = buffer.subarray(offset);
414
+ offset = 0;
415
+ }
416
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
417
+ newBuffer.set(buffer, 0);
418
+ newBuffer.set(chunk, buffer.length);
419
+ buffer = newBuffer;
420
+ if (!headerEmitted) {
421
+ try {
422
+ const r = new BufferReader(buffer.subarray(offset));
423
+ const streamType = Number(r.readVarInt());
424
+ if (!isValidSubgroupType(streamType)) {
425
+ controller.error(
426
+ new DecodeError(
427
+ "CONSTRAINT_VIOLATION",
428
+ `Expected subgroup stream type 0x10-0x1D, got 0x${streamType.toString(16)}`,
429
+ 0
430
+ )
431
+ );
432
+ return;
433
+ }
434
+ extensionsPresent = (streamType & 1) !== 0;
435
+ const hasSubgroupField = (streamType & 4) !== 0;
436
+ const trackAlias = r.readVarInt();
437
+ const groupId = r.readVarInt();
438
+ let subgroupId = 0n;
439
+ if (hasSubgroupField) {
440
+ subgroupId = r.readVarInt();
441
+ }
442
+ const publisherPriority = r.readUint8();
443
+ controller.enqueue({
444
+ type: "subgroup_header",
445
+ headerType: streamType,
446
+ trackAlias,
447
+ groupId,
448
+ subgroupId,
449
+ publisherPriority
450
+ });
451
+ headerEmitted = true;
452
+ offset += r.offset;
453
+ } catch (e) {
454
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
455
+ return;
456
+ }
457
+ controller.error(e);
458
+ return;
459
+ }
460
+ }
461
+ while (offset < buffer.length) {
462
+ try {
463
+ const r = new BufferReader(buffer.subarray(offset));
464
+ const byteOffset = r.offset;
465
+ const delta = r.readVarInt();
466
+ const objectId = firstObject ? delta : prevObjectId + 1n + delta;
467
+ firstObject = false;
468
+ let extensionData = new Uint8Array(0);
469
+ if (extensionsPresent) {
470
+ const extLen = Number(r.readVarInt());
471
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
472
+ }
473
+ const payloadLength = Number(r.readVarInt());
474
+ let payload;
475
+ let status;
476
+ let payloadByteOffset;
477
+ if (payloadLength === 0) {
478
+ status = r.readVarInt();
479
+ payloadByteOffset = r.offset;
480
+ payload = new Uint8Array(0);
481
+ } else {
482
+ payloadByteOffset = r.offset;
483
+ payload = r.readBytesView(payloadLength);
484
+ }
485
+ const obj = {
486
+ type: "object",
487
+ byteOffset,
488
+ payloadByteOffset,
489
+ objectId,
490
+ payloadLength,
491
+ payload,
492
+ extensionData
493
+ };
494
+ if (status !== void 0) obj.status = status;
495
+ controller.enqueue(obj);
496
+ prevObjectId = objectId;
497
+ offset += r.offset;
498
+ } catch (e) {
499
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
500
+ break;
501
+ }
502
+ controller.error(e);
503
+ return;
504
+ }
505
+ }
506
+ },
507
+ flush(controller) {
508
+ if (offset < buffer.length) {
509
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
510
+ }
511
+ }
512
+ });
513
+ }
514
+ function createFetchStreamDecoder() {
515
+ let buffer = new Uint8Array(0);
516
+ let offset = 0;
517
+ let headerEmitted = false;
518
+ return new TransformStream({
519
+ transform(chunk, controller) {
520
+ if (offset > 0) {
521
+ buffer = buffer.subarray(offset);
522
+ offset = 0;
523
+ }
524
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
525
+ newBuffer.set(buffer, 0);
526
+ newBuffer.set(chunk, buffer.length);
527
+ buffer = newBuffer;
528
+ if (!headerEmitted) {
529
+ try {
530
+ const r = new BufferReader(buffer.subarray(offset));
531
+ const streamType = r.readVarInt();
532
+ if (streamType !== FETCH_STREAM_TYPE) {
533
+ controller.error(
534
+ new DecodeError(
535
+ "CONSTRAINT_VIOLATION",
536
+ `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
537
+ 0
538
+ )
539
+ );
540
+ return;
541
+ }
542
+ const requestId = r.readVarInt();
543
+ controller.enqueue({ type: "fetch_header", requestId });
544
+ headerEmitted = true;
545
+ offset += r.offset;
546
+ } catch (e) {
547
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
548
+ return;
549
+ }
550
+ controller.error(e);
551
+ return;
552
+ }
553
+ }
554
+ while (offset < buffer.length) {
555
+ try {
556
+ const r = new BufferReader(buffer.subarray(offset));
557
+ const byteOffset = r.offset;
558
+ const groupId = r.readVarInt();
559
+ const subgroupId = r.readVarInt();
560
+ const objectId = r.readVarInt();
561
+ const publisherPriority = r.readUint8();
562
+ const extLen = Number(r.readVarInt());
563
+ const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
564
+ const payloadLength = Number(r.readVarInt());
565
+ let payload;
566
+ let status;
567
+ let payloadByteOffset;
568
+ if (payloadLength === 0) {
569
+ status = r.readVarInt();
570
+ payloadByteOffset = r.offset;
571
+ payload = new Uint8Array(0);
572
+ } else {
573
+ payloadByteOffset = r.offset;
574
+ payload = r.readBytesView(payloadLength);
575
+ }
576
+ const obj = {
577
+ type: "object",
578
+ byteOffset,
579
+ payloadByteOffset,
580
+ groupId,
581
+ subgroupId,
582
+ objectId,
583
+ publisherPriority,
584
+ payloadLength,
585
+ payload,
586
+ extensionData
587
+ };
588
+ if (status !== void 0) obj.status = status;
589
+ controller.enqueue(obj);
590
+ offset += r.offset;
591
+ } catch (e) {
592
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
593
+ break;
594
+ }
595
+ controller.error(e);
596
+ return;
597
+ }
598
+ }
599
+ },
600
+ flush(controller) {
601
+ if (offset < buffer.length) {
602
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
603
+ }
604
+ }
605
+ });
606
+ }
607
+ function createDataStreamDecoder() {
608
+ let buffer = new Uint8Array(0);
609
+ let offset = 0;
610
+ let detectedType = null;
611
+ let headerEmitted = false;
612
+ let extensionsPresent = false;
613
+ let prevObjectId = -1n;
614
+ let firstObject = true;
615
+ return new TransformStream({
616
+ transform(chunk, controller) {
617
+ if (offset > 0) {
618
+ buffer = buffer.subarray(offset);
619
+ offset = 0;
620
+ }
621
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
622
+ newBuffer.set(buffer, 0);
623
+ newBuffer.set(chunk, buffer.length);
624
+ buffer = newBuffer;
625
+ if (detectedType === null) {
626
+ try {
627
+ const r = new BufferReader(buffer.subarray(offset));
628
+ const streamType = Number(r.readVarInt());
629
+ if (isValidSubgroupType(streamType)) {
630
+ detectedType = "subgroup";
631
+ } else if (streamType === 5) {
632
+ detectedType = "fetch";
633
+ } else {
634
+ controller.error(
635
+ new DecodeError(
636
+ "CONSTRAINT_VIOLATION",
637
+ `Unknown data stream type: 0x${streamType.toString(16)}`,
638
+ 0
639
+ )
640
+ );
641
+ return;
642
+ }
643
+ } catch (e) {
644
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
645
+ return;
646
+ }
647
+ controller.error(e);
648
+ return;
649
+ }
650
+ }
651
+ if (detectedType === "subgroup") {
652
+ if (!headerEmitted) {
653
+ try {
654
+ const r = new BufferReader(buffer.subarray(offset));
655
+ const streamType = Number(r.readVarInt());
656
+ extensionsPresent = (streamType & 1) !== 0;
657
+ const hasSubgroupField = (streamType & 4) !== 0;
658
+ const trackAlias = r.readVarInt();
659
+ const groupId = r.readVarInt();
660
+ let subgroupId = 0n;
661
+ if (hasSubgroupField) subgroupId = r.readVarInt();
662
+ const publisherPriority = r.readUint8();
663
+ controller.enqueue({
664
+ type: "subgroup_header",
665
+ headerType: streamType,
666
+ trackAlias,
667
+ groupId,
668
+ subgroupId,
669
+ publisherPriority
670
+ });
671
+ headerEmitted = true;
672
+ offset += r.offset;
673
+ } catch (e) {
674
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") return;
675
+ controller.error(e);
676
+ return;
677
+ }
678
+ }
679
+ while (offset < buffer.length) {
680
+ try {
681
+ const r = new BufferReader(buffer.subarray(offset));
682
+ const byteOffset = r.offset;
683
+ const delta = r.readVarInt();
684
+ const objectId = firstObject ? delta : prevObjectId + 1n + delta;
685
+ firstObject = false;
686
+ let extensionData = new Uint8Array(0);
687
+ if (extensionsPresent) {
688
+ const extLen = Number(r.readVarInt());
689
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
690
+ }
691
+ const payloadLength = Number(r.readVarInt());
692
+ let payload;
693
+ let status;
694
+ let payloadByteOffset;
695
+ if (payloadLength === 0) {
696
+ status = r.readVarInt();
697
+ payloadByteOffset = r.offset;
698
+ payload = new Uint8Array(0);
699
+ } else {
700
+ payloadByteOffset = r.offset;
701
+ payload = r.readBytesView(payloadLength);
702
+ }
703
+ const obj = {
704
+ type: "object",
705
+ byteOffset,
706
+ payloadByteOffset,
707
+ objectId,
708
+ payloadLength,
709
+ payload,
710
+ extensionData
711
+ };
712
+ if (status !== void 0) obj.status = status;
713
+ controller.enqueue(obj);
714
+ prevObjectId = objectId;
715
+ offset += r.offset;
716
+ } catch (e) {
717
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") break;
718
+ controller.error(e);
719
+ return;
720
+ }
721
+ }
722
+ } else {
723
+ if (!headerEmitted) {
724
+ try {
725
+ const r = new BufferReader(buffer.subarray(offset));
726
+ r.readVarInt();
727
+ const requestId = r.readVarInt();
728
+ controller.enqueue({ type: "fetch_header", requestId });
729
+ headerEmitted = true;
730
+ offset += r.offset;
731
+ } catch (e) {
732
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") return;
733
+ controller.error(e);
734
+ return;
735
+ }
736
+ }
737
+ while (offset < buffer.length) {
738
+ try {
739
+ const r = new BufferReader(buffer.subarray(offset));
740
+ const byteOffset = r.offset;
741
+ const groupId = r.readVarInt();
742
+ const subgroupId = r.readVarInt();
743
+ const objectId = r.readVarInt();
744
+ const publisherPriority = r.readUint8();
745
+ const extLen = Number(r.readVarInt());
746
+ const extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
747
+ const payloadLength = Number(r.readVarInt());
748
+ let payload;
749
+ let status;
750
+ let payloadByteOffset;
751
+ if (payloadLength === 0) {
752
+ status = r.readVarInt();
753
+ payloadByteOffset = r.offset;
754
+ payload = new Uint8Array(0);
755
+ } else {
756
+ payloadByteOffset = r.offset;
757
+ payload = r.readBytesView(payloadLength);
758
+ }
759
+ const obj = {
760
+ type: "object",
761
+ byteOffset,
762
+ payloadByteOffset,
763
+ groupId,
764
+ subgroupId,
765
+ objectId,
766
+ publisherPriority,
767
+ payloadLength,
768
+ payload,
769
+ extensionData
770
+ };
771
+ if (status !== void 0) obj.status = status;
772
+ controller.enqueue(obj);
773
+ offset += r.offset;
774
+ } catch (e) {
775
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") break;
776
+ controller.error(e);
777
+ return;
778
+ }
779
+ }
780
+ }
781
+ },
782
+ flush(controller) {
783
+ if (offset < buffer.length) {
784
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
785
+ }
786
+ }
787
+ });
788
+ }
789
+
790
+ // src/drafts/draft14/codec.ts
791
+ var textEncoder = /* @__PURE__ */ new TextEncoder();
792
+ var textDecoder = /* @__PURE__ */ new TextDecoder();
793
+ var PARAM_AUTHORITY = 0x05n;
794
+ var PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = 0x04n;
795
+ var PARAM_DELIVERY_TIMEOUT = 0x02n;
796
+ var PARAM_AUTHORIZATION_TOKEN = 0x03n;
797
+ var PARAM_MAX_CACHE_DURATION = 0x04n;
798
+ function encodeSetupParams(params, writer) {
93
799
  let count = 0;
94
800
  if (params.role !== void 0) count++;
95
801
  if (params.path !== void 0) count++;
96
802
  if (params.max_request_id !== void 0) count++;
803
+ if (params.authority !== void 0) count++;
804
+ if (params.max_auth_token_cache_size !== void 0) count++;
97
805
  if (params.unknown) count += params.unknown.length;
98
806
  writer.writeVarInt(count);
99
807
  if (params.role !== void 0) {
@@ -102,7 +810,7 @@ function encodeParams(params, writer) {
102
810
  }
103
811
  if (params.path !== void 0) {
104
812
  writer.writeVarInt(PARAM_PATH);
105
- const encoded = new TextEncoder().encode(params.path);
813
+ const encoded = textEncoder.encode(params.path);
106
814
  writer.writeVarInt(encoded.byteLength);
107
815
  writer.writeBytes(encoded);
108
816
  }
@@ -110,6 +818,16 @@ function encodeParams(params, writer) {
110
818
  writer.writeVarInt(PARAM_MAX_REQUEST_ID);
111
819
  writer.writeVarInt(params.max_request_id);
112
820
  }
821
+ if (params.max_auth_token_cache_size !== void 0) {
822
+ writer.writeVarInt(PARAM_MAX_AUTH_TOKEN_CACHE_SIZE);
823
+ writer.writeVarInt(params.max_auth_token_cache_size);
824
+ }
825
+ if (params.authority !== void 0) {
826
+ writer.writeVarInt(PARAM_AUTHORITY);
827
+ const encoded = textEncoder.encode(params.authority);
828
+ writer.writeVarInt(encoded.byteLength);
829
+ writer.writeBytes(encoded);
830
+ }
113
831
  if (params.unknown) {
114
832
  for (const u of params.unknown) {
115
833
  const id = BigInt(u.id);
@@ -120,7 +838,7 @@ function encodeParams(params, writer) {
120
838
  }
121
839
  }
122
840
  }
123
- function decodeParams(reader) {
841
+ function decodeSetupParams(reader) {
124
842
  const count = Number(reader.readVarInt());
125
843
  const result = {};
126
844
  const unknown = [];
@@ -132,6 +850,8 @@ function decodeParams(reader) {
132
850
  result.role = value;
133
851
  } else if (paramType === PARAM_MAX_REQUEST_ID) {
134
852
  result.max_request_id = value;
853
+ } else if (paramType === PARAM_MAX_AUTH_TOKEN_CACHE_SIZE) {
854
+ result.max_auth_token_cache_size = value;
135
855
  } else {
136
856
  const tmpWriter = new BufferWriter(16);
137
857
  tmpWriter.writeVarInt(value);
@@ -146,7 +866,9 @@ function decodeParams(reader) {
146
866
  const length = Number(reader.readVarInt());
147
867
  const bytes = reader.readBytes(length);
148
868
  if (paramType === PARAM_PATH) {
149
- result.path = new TextDecoder().decode(bytes);
869
+ result.path = textDecoder.decode(bytes);
870
+ } else if (paramType === PARAM_AUTHORITY) {
871
+ result.authority = textDecoder.decode(bytes);
150
872
  } else {
151
873
  unknown.push({
152
874
  id: `0x${paramType.toString(16)}`,
@@ -156,9 +878,99 @@ function decodeParams(reader) {
156
878
  }
157
879
  }
158
880
  }
159
- if (unknown.length > 0) {
160
- result.unknown = unknown;
881
+ if (unknown.length > 0) result.unknown = unknown;
882
+ return result;
883
+ }
884
+ function encodeMessageParams(params, writer) {
885
+ let count = 0;
886
+ if (params.delivery_timeout !== void 0) count++;
887
+ if (params.authorization_token !== void 0) count++;
888
+ if (params.max_cache_duration !== void 0) count++;
889
+ if (params.unknown) count += params.unknown.length;
890
+ writer.writeVarInt(count);
891
+ if (params.delivery_timeout !== void 0) {
892
+ writer.writeVarInt(PARAM_DELIVERY_TIMEOUT);
893
+ writer.writeVarInt(params.delivery_timeout);
894
+ }
895
+ if (params.authorization_token !== void 0) {
896
+ writer.writeVarInt(PARAM_AUTHORIZATION_TOKEN);
897
+ const tok = params.authorization_token;
898
+ const tmpWriter = new BufferWriter(64);
899
+ tmpWriter.writeVarInt(tok.alias_type);
900
+ if (tok.token_type !== void 0) {
901
+ tmpWriter.writeVarInt(tok.token_type);
902
+ }
903
+ if (tok.token_value !== void 0) {
904
+ tmpWriter.writeBytes(hexToBytes(tok.token_value));
905
+ }
906
+ if (tok.token_alias !== void 0) {
907
+ tmpWriter.writeVarInt(tok.token_alias);
908
+ }
909
+ const tokenBytes = tmpWriter.finish();
910
+ writer.writeVarInt(tokenBytes.byteLength);
911
+ writer.writeBytes(tokenBytes);
912
+ }
913
+ if (params.max_cache_duration !== void 0) {
914
+ writer.writeVarInt(PARAM_MAX_CACHE_DURATION);
915
+ writer.writeVarInt(params.max_cache_duration);
161
916
  }
917
+ if (params.unknown) {
918
+ for (const u of params.unknown) {
919
+ const id = BigInt(u.id);
920
+ writer.writeVarInt(id);
921
+ const raw = hexToBytes(u.raw_hex);
922
+ writer.writeVarInt(raw.byteLength);
923
+ writer.writeBytes(raw);
924
+ }
925
+ }
926
+ }
927
+ function decodeMessageParams(reader) {
928
+ const count = Number(reader.readVarInt());
929
+ const result = {};
930
+ const unknown = [];
931
+ for (let i = 0; i < count; i++) {
932
+ const paramType = reader.readVarInt();
933
+ if (paramType % 2n === 0n) {
934
+ const value = reader.readVarInt();
935
+ if (paramType === PARAM_DELIVERY_TIMEOUT) {
936
+ result.delivery_timeout = value;
937
+ } else if (paramType === PARAM_MAX_CACHE_DURATION) {
938
+ result.max_cache_duration = value;
939
+ } else {
940
+ const tmpWriter = new BufferWriter(16);
941
+ tmpWriter.writeVarInt(value);
942
+ const raw = tmpWriter.finish();
943
+ unknown.push({
944
+ id: `0x${paramType.toString(16)}`,
945
+ length: raw.byteLength,
946
+ raw_hex: bytesToHex(raw)
947
+ });
948
+ }
949
+ } else {
950
+ const length = Number(reader.readVarInt());
951
+ const bytes = reader.readBytes(length);
952
+ if (paramType === PARAM_AUTHORIZATION_TOKEN) {
953
+ const tokenReader = new BufferReader(bytes);
954
+ const alias_type = tokenReader.readVarInt();
955
+ const tok = { alias_type };
956
+ if (tokenReader.remaining > 0) {
957
+ tok.token_type = tokenReader.readVarInt();
958
+ if (tokenReader.remaining > 0) {
959
+ const tokenValue = tokenReader.readBytesView(tokenReader.remaining);
960
+ tok.token_value = bytesToHex(tokenValue);
961
+ }
962
+ }
963
+ result.authorization_token = tok;
964
+ } else {
965
+ unknown.push({
966
+ id: `0x${paramType.toString(16)}`,
967
+ length,
968
+ raw_hex: bytesToHex(bytes)
969
+ });
970
+ }
971
+ }
972
+ }
973
+ if (unknown.length > 0) result.unknown = unknown;
162
974
  return result;
163
975
  }
164
976
  function encodeClientSetupPayload(msg, w) {
@@ -166,50 +978,51 @@ function encodeClientSetupPayload(msg, w) {
166
978
  for (const v of msg.supported_versions) {
167
979
  w.writeVarInt(v);
168
980
  }
169
- encodeParams(msg.parameters, w);
981
+ encodeSetupParams(msg.parameters, w);
170
982
  }
171
983
  function encodeServerSetupPayload(msg, w) {
172
984
  w.writeVarInt(msg.selected_version);
173
- encodeParams(msg.parameters, w);
985
+ encodeSetupParams(msg.parameters, w);
174
986
  }
175
987
  function encodeSubscribePayload(msg, w) {
176
988
  w.writeVarInt(msg.request_id);
177
989
  w.writeTuple(msg.track_namespace);
178
990
  w.writeString(msg.track_name);
179
991
  w.writeUint8(Number(msg.subscriber_priority));
180
- w.writeVarInt(msg.group_order);
992
+ w.writeUint8(Number(msg.group_order));
181
993
  w.writeVarInt(msg.forward);
182
994
  w.writeVarInt(msg.filter_type);
183
- const ft = Number(msg.filter_type);
184
- if (ft >= 3) {
995
+ const ft = msg.filter_type;
996
+ if (ft >= FilterType.AbsoluteStart) {
185
997
  w.writeVarInt(msg.start_group);
186
998
  w.writeVarInt(msg.start_object);
187
999
  }
188
- if (ft === 4) {
1000
+ if (ft === FilterType.AbsoluteRange) {
189
1001
  w.writeVarInt(msg.end_group);
190
1002
  }
191
- encodeParams(msg.parameters, w);
1003
+ encodeMessageParams(msg.parameters, w);
192
1004
  }
193
1005
  function encodeSubscribeOkPayload(msg, w) {
194
1006
  w.writeVarInt(msg.request_id);
195
1007
  w.writeVarInt(msg.track_alias);
196
1008
  w.writeVarInt(msg.expires);
197
- w.writeVarInt(msg.group_order);
1009
+ w.writeUint8(Number(msg.group_order));
198
1010
  w.writeVarInt(msg.content_exists);
199
- if (Number(msg.content_exists) === 1) {
200
- w.writeVarInt(msg.largest_group);
201
- w.writeVarInt(msg.largest_object);
1011
+ if (msg.content_exists === 1n) {
1012
+ w.writeVarInt(msg.largest_location.group);
1013
+ w.writeVarInt(msg.largest_location.object);
202
1014
  }
203
- encodeParams(msg.parameters, w);
1015
+ encodeMessageParams(msg.parameters, w);
204
1016
  }
205
1017
  function encodeSubscribeUpdatePayload(msg, w) {
206
1018
  w.writeVarInt(msg.request_id);
1019
+ w.writeVarInt(msg.subscription_request_id);
207
1020
  w.writeVarInt(msg.start_group);
208
1021
  w.writeVarInt(msg.start_object);
209
1022
  w.writeVarInt(msg.end_group);
210
1023
  w.writeUint8(Number(msg.subscriber_priority));
211
1024
  w.writeVarInt(msg.forward);
212
- encodeParams(msg.parameters, w);
1025
+ encodeMessageParams(msg.parameters, w);
213
1026
  }
214
1027
  function encodeSubscribeErrorPayload(msg, w) {
215
1028
  w.writeVarInt(msg.request_id);
@@ -223,14 +1036,31 @@ function encodePublishPayload(msg, w) {
223
1036
  w.writeVarInt(msg.request_id);
224
1037
  w.writeTuple(msg.track_namespace);
225
1038
  w.writeString(msg.track_name);
1039
+ w.writeVarInt(msg.track_alias);
1040
+ w.writeUint8(Number(msg.group_order));
1041
+ w.writeVarInt(msg.content_exists);
1042
+ if (msg.content_exists === 1n) {
1043
+ w.writeVarInt(msg.largest_location.group);
1044
+ w.writeVarInt(msg.largest_location.object);
1045
+ }
226
1046
  w.writeVarInt(msg.forward);
227
- encodeParams(msg.parameters, w);
1047
+ encodeMessageParams(msg.parameters, w);
228
1048
  }
229
1049
  function encodePublishOkPayload(msg, w) {
230
1050
  w.writeVarInt(msg.request_id);
231
- w.writeVarInt(msg.track_alias);
232
1051
  w.writeVarInt(msg.forward);
233
- encodeParams(msg.parameters, w);
1052
+ w.writeUint8(Number(msg.subscriber_priority));
1053
+ w.writeUint8(Number(msg.group_order));
1054
+ w.writeVarInt(msg.filter_type);
1055
+ const ft = msg.filter_type;
1056
+ if (ft >= FilterType.AbsoluteStart) {
1057
+ w.writeVarInt(msg.start_group);
1058
+ w.writeVarInt(msg.start_object);
1059
+ }
1060
+ if (ft === FilterType.AbsoluteRange) {
1061
+ w.writeVarInt(msg.end_group);
1062
+ }
1063
+ encodeMessageParams(msg.parameters, w);
234
1064
  }
235
1065
  function encodePublishErrorPayload(msg, w) {
236
1066
  w.writeVarInt(msg.request_id);
@@ -240,16 +1070,17 @@ function encodePublishErrorPayload(msg, w) {
240
1070
  function encodePublishDonePayload(msg, w) {
241
1071
  w.writeVarInt(msg.request_id);
242
1072
  w.writeVarInt(msg.status_code);
1073
+ w.writeVarInt(msg.stream_count);
243
1074
  w.writeString(msg.reason_phrase);
244
1075
  }
245
1076
  function encodePublishNamespacePayload(msg, w) {
246
1077
  w.writeVarInt(msg.request_id);
247
1078
  w.writeTuple(msg.track_namespace);
248
- encodeParams(msg.parameters, w);
1079
+ encodeMessageParams(msg.parameters, w);
249
1080
  }
250
1081
  function encodePublishNamespaceOkPayload(msg, w) {
251
1082
  w.writeVarInt(msg.request_id);
252
- encodeParams(msg.parameters, w);
1083
+ encodeMessageParams(msg.parameters, w);
253
1084
  }
254
1085
  function encodePublishNamespaceErrorPayload(msg, w) {
255
1086
  w.writeVarInt(msg.request_id);
@@ -257,21 +1088,21 @@ function encodePublishNamespaceErrorPayload(msg, w) {
257
1088
  w.writeString(msg.reason_phrase);
258
1089
  }
259
1090
  function encodePublishNamespaceDonePayload(msg, w) {
260
- w.writeVarInt(msg.request_id);
261
- w.writeVarInt(msg.status_code);
1091
+ w.writeTuple(msg.track_namespace);
1092
+ }
1093
+ function encodePublishNamespaceCancelPayload(msg, w) {
1094
+ w.writeTuple(msg.track_namespace);
1095
+ w.writeVarInt(msg.error_code);
262
1096
  w.writeString(msg.reason_phrase);
263
1097
  }
264
- function encodePublishNamespaceCancelPayload(msg, w) {
265
- w.writeVarInt(msg.request_id);
266
- }
267
1098
  function encodeSubscribeNamespacePayload(msg, w) {
268
1099
  w.writeVarInt(msg.request_id);
269
1100
  w.writeTuple(msg.namespace_prefix);
270
- encodeParams(msg.parameters, w);
1101
+ encodeMessageParams(msg.parameters, w);
271
1102
  }
272
1103
  function encodeSubscribeNamespaceOkPayload(msg, w) {
273
1104
  w.writeVarInt(msg.request_id);
274
- encodeParams(msg.parameters, w);
1105
+ encodeMessageParams(msg.parameters, w);
275
1106
  }
276
1107
  function encodeSubscribeNamespaceErrorPayload(msg, w) {
277
1108
  w.writeVarInt(msg.request_id);
@@ -279,22 +1110,34 @@ function encodeSubscribeNamespaceErrorPayload(msg, w) {
279
1110
  w.writeString(msg.reason_phrase);
280
1111
  }
281
1112
  function encodeUnsubscribeNamespacePayload(msg, w) {
282
- w.writeVarInt(msg.request_id);
1113
+ w.writeTuple(msg.track_namespace_prefix);
283
1114
  }
284
1115
  function encodeFetchPayload(msg, w) {
285
1116
  w.writeVarInt(msg.request_id);
286
- w.writeTuple(msg.track_namespace);
287
- w.writeString(msg.track_name);
288
- w.writeVarInt(msg.start_group);
289
- w.writeVarInt(msg.start_object);
290
- w.writeVarInt(msg.end_group);
291
- encodeParams(msg.parameters, w);
1117
+ w.writeUint8(Number(msg.subscriber_priority));
1118
+ w.writeUint8(Number(msg.group_order));
1119
+ w.writeVarInt(msg.fetch_type);
1120
+ const ft = msg.fetch_type;
1121
+ if (ft === FetchType.Standalone) {
1122
+ w.writeTuple(msg.track_namespace);
1123
+ w.writeString(msg.track_name);
1124
+ w.writeVarInt(msg.start_group);
1125
+ w.writeVarInt(msg.start_object);
1126
+ w.writeVarInt(msg.end_group);
1127
+ w.writeVarInt(msg.end_object);
1128
+ } else {
1129
+ w.writeVarInt(msg.joining_request_id);
1130
+ w.writeVarInt(msg.joining_start);
1131
+ }
1132
+ encodeMessageParams(msg.parameters, w);
292
1133
  }
293
1134
  function encodeFetchOkPayload(msg, w) {
294
1135
  w.writeVarInt(msg.request_id);
295
- w.writeVarInt(msg.track_alias);
1136
+ w.writeUint8(Number(msg.group_order));
296
1137
  w.writeVarInt(msg.end_of_track);
297
- encodeParams(msg.parameters, w);
1138
+ w.writeVarInt(msg.end_location.group);
1139
+ w.writeVarInt(msg.end_location.object);
1140
+ encodeMessageParams(msg.parameters, w);
298
1141
  }
299
1142
  function encodeFetchErrorPayload(msg, w) {
300
1143
  w.writeVarInt(msg.request_id);
@@ -308,17 +1151,28 @@ function encodeTrackStatusPayload(msg, w) {
308
1151
  w.writeVarInt(msg.request_id);
309
1152
  w.writeTuple(msg.track_namespace);
310
1153
  w.writeString(msg.track_name);
311
- encodeParams(msg.parameters, w);
1154
+ w.writeUint8(Number(msg.subscriber_priority));
1155
+ w.writeUint8(Number(msg.group_order));
1156
+ w.writeVarInt(msg.forward);
1157
+ w.writeVarInt(msg.filter_type);
1158
+ const ft = msg.filter_type;
1159
+ if (ft >= FilterType.AbsoluteStart) {
1160
+ w.writeVarInt(msg.start_group);
1161
+ w.writeVarInt(msg.start_object);
1162
+ }
1163
+ encodeMessageParams(msg.parameters, w);
312
1164
  }
313
1165
  function encodeTrackStatusOkPayload(msg, w) {
314
1166
  w.writeVarInt(msg.request_id);
315
- w.writeVarInt(msg.status_code);
316
- const sc = Number(msg.status_code);
317
- if (sc === 0 || sc === 3) {
318
- w.writeVarInt(msg.largest_group);
319
- w.writeVarInt(msg.largest_object);
1167
+ w.writeVarInt(msg.track_alias);
1168
+ w.writeVarInt(msg.expires);
1169
+ w.writeUint8(Number(msg.group_order));
1170
+ w.writeVarInt(msg.content_exists);
1171
+ if (msg.content_exists === 1n) {
1172
+ w.writeVarInt(msg.largest_location.group);
1173
+ w.writeVarInt(msg.largest_location.object);
320
1174
  }
321
- encodeParams(msg.parameters, w);
1175
+ encodeMessageParams(msg.parameters, w);
322
1176
  }
323
1177
  function encodeTrackStatusErrorPayload(msg, w) {
324
1178
  w.writeVarInt(msg.request_id);
@@ -347,12 +1201,12 @@ function decodeClientSetupPayload(r) {
347
1201
  for (let i = 0; i < numVersions; i++) {
348
1202
  supported_versions.push(r.readVarInt());
349
1203
  }
350
- const parameters = decodeParams(r);
1204
+ const parameters = decodeSetupParams(r);
351
1205
  return { type: "client_setup", supported_versions, parameters };
352
1206
  }
353
1207
  function decodeServerSetupPayload(r) {
354
1208
  const selected_version = r.readVarInt();
355
- const parameters = decodeParams(r);
1209
+ const parameters = decodeSetupParams(r);
356
1210
  return { type: "server_setup", selected_version, parameters };
357
1211
  }
358
1212
  function decodeSubscribePayload(r) {
@@ -360,24 +1214,23 @@ function decodeSubscribePayload(r) {
360
1214
  const track_namespace = r.readTuple();
361
1215
  const track_name = r.readString();
362
1216
  const subscriber_priority = BigInt(r.readUint8());
363
- const group_order = r.readVarInt();
1217
+ const group_order = BigInt(r.readUint8());
364
1218
  const forward = r.readVarInt();
365
1219
  const filter_type = r.readVarInt();
366
- const ft = Number(filter_type);
367
- if (ft < 1 || ft > 4) {
368
- throw new DecodeError("CONSTRAINT_VIOLATION", `Invalid filter_type: ${ft}`, r.offset);
1220
+ if (filter_type < FilterType.NextGroupStart || filter_type > FilterType.AbsoluteRange) {
1221
+ throw new DecodeError("CONSTRAINT_VIOLATION", `Invalid filter_type: ${filter_type}`, r.offset);
369
1222
  }
370
1223
  let start_group;
371
1224
  let start_object;
372
1225
  let end_group;
373
- if (ft >= 3) {
1226
+ if (filter_type >= FilterType.AbsoluteStart) {
374
1227
  start_group = r.readVarInt();
375
1228
  start_object = r.readVarInt();
376
1229
  }
377
- if (ft === 4) {
1230
+ if (filter_type === FilterType.AbsoluteRange) {
378
1231
  end_group = r.readVarInt();
379
1232
  }
380
- const parameters = decodeParams(r);
1233
+ const parameters = decodeMessageParams(r);
381
1234
  const msg = {
382
1235
  type: "subscribe",
383
1236
  request_id,
@@ -398,16 +1251,17 @@ function decodeSubscribeOkPayload(r) {
398
1251
  const request_id = r.readVarInt();
399
1252
  const track_alias = r.readVarInt();
400
1253
  const expires = r.readVarInt();
401
- const group_order = r.readVarInt();
1254
+ const group_order = BigInt(r.readUint8());
402
1255
  const content_exists = r.readVarInt();
403
- let largest_group;
404
- let largest_object;
405
- if (Number(content_exists) === 1) {
406
- largest_group = r.readVarInt();
407
- largest_object = r.readVarInt();
1256
+ let largest_location;
1257
+ if (content_exists === 1n) {
1258
+ largest_location = {
1259
+ group: r.readVarInt(),
1260
+ object: r.readVarInt()
1261
+ };
408
1262
  }
409
- const parameters = decodeParams(r);
410
- const msg = {
1263
+ const parameters = decodeMessageParams(r);
1264
+ return {
411
1265
  type: "subscribe_ok",
412
1266
  request_id,
413
1267
  track_alias,
@@ -415,21 +1269,22 @@ function decodeSubscribeOkPayload(r) {
415
1269
  group_order,
416
1270
  content_exists,
417
1271
  parameters,
418
- ...largest_group !== void 0 ? { largest_group, largest_object } : {}
1272
+ ...largest_location !== void 0 ? { largest_location } : {}
419
1273
  };
420
- return msg;
421
1274
  }
422
1275
  function decodeSubscribeUpdatePayload(r) {
423
1276
  const request_id = r.readVarInt();
1277
+ const subscription_request_id = r.readVarInt();
424
1278
  const start_group = r.readVarInt();
425
1279
  const start_object = r.readVarInt();
426
1280
  const end_group = r.readVarInt();
427
1281
  const subscriber_priority = BigInt(r.readUint8());
428
1282
  const forward = r.readVarInt();
429
- const parameters = decodeParams(r);
1283
+ const parameters = decodeMessageParams(r);
430
1284
  return {
431
1285
  type: "subscribe_update",
432
1286
  request_id,
1287
+ subscription_request_id,
433
1288
  start_group,
434
1289
  start_object,
435
1290
  end_group,
@@ -452,16 +1307,61 @@ function decodePublishPayload(r) {
452
1307
  const request_id = r.readVarInt();
453
1308
  const track_namespace = r.readTuple();
454
1309
  const track_name = r.readString();
1310
+ const track_alias = r.readVarInt();
1311
+ const group_order = BigInt(r.readUint8());
1312
+ const content_exists = r.readVarInt();
1313
+ let largest_location;
1314
+ if (content_exists === 1n) {
1315
+ largest_location = {
1316
+ group: r.readVarInt(),
1317
+ object: r.readVarInt()
1318
+ };
1319
+ }
455
1320
  const forward = r.readVarInt();
456
- const parameters = decodeParams(r);
457
- return { type: "publish", request_id, track_namespace, track_name, forward, parameters };
1321
+ const parameters = decodeMessageParams(r);
1322
+ return {
1323
+ type: "publish",
1324
+ request_id,
1325
+ track_namespace,
1326
+ track_name,
1327
+ track_alias,
1328
+ group_order,
1329
+ content_exists,
1330
+ forward,
1331
+ parameters,
1332
+ ...largest_location !== void 0 ? { largest_location } : {}
1333
+ };
458
1334
  }
459
1335
  function decodePublishOkPayload(r) {
460
1336
  const request_id = r.readVarInt();
461
- const track_alias = r.readVarInt();
462
1337
  const forward = r.readVarInt();
463
- const parameters = decodeParams(r);
464
- return { type: "publish_ok", request_id, track_alias, forward, parameters };
1338
+ const subscriber_priority = BigInt(r.readUint8());
1339
+ const group_order = BigInt(r.readUint8());
1340
+ const filter_type = r.readVarInt();
1341
+ let start_group;
1342
+ let start_object;
1343
+ let end_group;
1344
+ if (filter_type >= FilterType.AbsoluteStart) {
1345
+ start_group = r.readVarInt();
1346
+ start_object = r.readVarInt();
1347
+ }
1348
+ if (filter_type === FilterType.AbsoluteRange) {
1349
+ end_group = r.readVarInt();
1350
+ }
1351
+ const parameters = decodeMessageParams(r);
1352
+ const msg = {
1353
+ type: "publish_ok",
1354
+ request_id,
1355
+ forward,
1356
+ subscriber_priority,
1357
+ group_order,
1358
+ filter_type,
1359
+ parameters
1360
+ };
1361
+ if (start_group !== void 0) msg.start_group = start_group;
1362
+ if (start_object !== void 0) msg.start_object = start_object;
1363
+ if (end_group !== void 0) msg.end_group = end_group;
1364
+ return msg;
465
1365
  }
466
1366
  function decodePublishErrorPayload(r) {
467
1367
  const request_id = r.readVarInt();
@@ -472,82 +1372,147 @@ function decodePublishErrorPayload(r) {
472
1372
  function decodePublishDonePayload(r) {
473
1373
  const request_id = r.readVarInt();
474
1374
  const status_code = r.readVarInt();
1375
+ const stream_count = r.readVarInt();
475
1376
  const reason_phrase = r.readString();
476
- return { type: "publish_done", request_id, status_code, reason_phrase };
1377
+ return {
1378
+ type: "publish_done",
1379
+ request_id,
1380
+ status_code,
1381
+ stream_count,
1382
+ reason_phrase
1383
+ };
477
1384
  }
478
1385
  function decodePublishNamespacePayload(r) {
479
1386
  const request_id = r.readVarInt();
480
1387
  const track_namespace = r.readTuple();
481
- const parameters = decodeParams(r);
1388
+ const parameters = decodeMessageParams(r);
482
1389
  return { type: "publish_namespace", request_id, track_namespace, parameters };
483
1390
  }
484
1391
  function decodePublishNamespaceOkPayload(r) {
485
1392
  const request_id = r.readVarInt();
486
- const parameters = decodeParams(r);
1393
+ const parameters = decodeMessageParams(r);
487
1394
  return { type: "publish_namespace_ok", request_id, parameters };
488
1395
  }
489
1396
  function decodePublishNamespaceErrorPayload(r) {
490
1397
  const request_id = r.readVarInt();
491
1398
  const error_code = r.readVarInt();
492
1399
  const reason_phrase = r.readString();
493
- return { type: "publish_namespace_error", request_id, error_code, reason_phrase };
1400
+ return {
1401
+ type: "publish_namespace_error",
1402
+ request_id,
1403
+ error_code,
1404
+ reason_phrase
1405
+ };
494
1406
  }
495
1407
  function decodePublishNamespaceDonePayload(r) {
496
- const request_id = r.readVarInt();
497
- const status_code = r.readVarInt();
498
- const reason_phrase = r.readString();
499
- return { type: "publish_namespace_done", request_id, status_code, reason_phrase };
1408
+ const track_namespace = r.readTuple();
1409
+ return { type: "publish_namespace_done", track_namespace };
500
1410
  }
501
1411
  function decodePublishNamespaceCancelPayload(r) {
502
- const request_id = r.readVarInt();
503
- return { type: "publish_namespace_cancel", request_id };
1412
+ const track_namespace = r.readTuple();
1413
+ const error_code = r.readVarInt();
1414
+ const reason_phrase = r.readString();
1415
+ return {
1416
+ type: "publish_namespace_cancel",
1417
+ track_namespace,
1418
+ error_code,
1419
+ reason_phrase
1420
+ };
504
1421
  }
505
1422
  function decodeSubscribeNamespacePayload(r) {
506
1423
  const request_id = r.readVarInt();
507
1424
  const namespace_prefix = r.readTuple();
508
- const parameters = decodeParams(r);
509
- return { type: "subscribe_namespace", request_id, namespace_prefix, parameters };
1425
+ const parameters = decodeMessageParams(r);
1426
+ return {
1427
+ type: "subscribe_namespace",
1428
+ request_id,
1429
+ namespace_prefix,
1430
+ parameters
1431
+ };
510
1432
  }
511
1433
  function decodeSubscribeNamespaceOkPayload(r) {
512
1434
  const request_id = r.readVarInt();
513
- const parameters = decodeParams(r);
1435
+ const parameters = decodeMessageParams(r);
514
1436
  return { type: "subscribe_namespace_ok", request_id, parameters };
515
1437
  }
516
1438
  function decodeSubscribeNamespaceErrorPayload(r) {
517
1439
  const request_id = r.readVarInt();
518
1440
  const error_code = r.readVarInt();
519
1441
  const reason_phrase = r.readString();
520
- return { type: "subscribe_namespace_error", request_id, error_code, reason_phrase };
1442
+ return {
1443
+ type: "subscribe_namespace_error",
1444
+ request_id,
1445
+ error_code,
1446
+ reason_phrase
1447
+ };
521
1448
  }
522
1449
  function decodeUnsubscribeNamespacePayload(r) {
523
- const request_id = r.readVarInt();
524
- return { type: "unsubscribe_namespace", request_id };
1450
+ const track_namespace_prefix = r.readTuple();
1451
+ return { type: "unsubscribe_namespace", track_namespace_prefix };
525
1452
  }
526
1453
  function decodeFetchPayload(r) {
527
1454
  const request_id = r.readVarInt();
528
- const track_namespace = r.readTuple();
529
- const track_name = r.readString();
530
- const start_group = r.readVarInt();
531
- const start_object = r.readVarInt();
532
- const end_group = r.readVarInt();
533
- const parameters = decodeParams(r);
534
- return {
535
- type: "fetch",
536
- request_id,
537
- track_namespace,
538
- track_name,
539
- start_group,
540
- start_object,
541
- end_group,
542
- parameters
543
- };
1455
+ const subscriber_priority = BigInt(r.readUint8());
1456
+ const group_order = BigInt(r.readUint8());
1457
+ const fetch_type = r.readVarInt();
1458
+ if (fetch_type < FetchType.Standalone || fetch_type > FetchType.AbsoluteJoining) {
1459
+ throw new DecodeError("CONSTRAINT_VIOLATION", `Invalid fetch_type: ${fetch_type}`, r.offset);
1460
+ }
1461
+ if (fetch_type === FetchType.Standalone) {
1462
+ const track_namespace = r.readTuple();
1463
+ const track_name = r.readString();
1464
+ const start_group = r.readVarInt();
1465
+ const start_object = r.readVarInt();
1466
+ const end_group = r.readVarInt();
1467
+ const end_object = r.readVarInt();
1468
+ const parameters = decodeMessageParams(r);
1469
+ return {
1470
+ type: "fetch",
1471
+ request_id,
1472
+ subscriber_priority,
1473
+ group_order,
1474
+ fetch_type,
1475
+ track_namespace,
1476
+ track_name,
1477
+ start_group,
1478
+ start_object,
1479
+ end_group,
1480
+ end_object,
1481
+ parameters
1482
+ };
1483
+ } else {
1484
+ const joining_request_id = r.readVarInt();
1485
+ const joining_start = r.readVarInt();
1486
+ const parameters = decodeMessageParams(r);
1487
+ return {
1488
+ type: "fetch",
1489
+ request_id,
1490
+ subscriber_priority,
1491
+ group_order,
1492
+ fetch_type,
1493
+ joining_request_id,
1494
+ joining_start,
1495
+ parameters
1496
+ };
1497
+ }
544
1498
  }
545
1499
  function decodeFetchOkPayload(r) {
546
1500
  const request_id = r.readVarInt();
547
- const track_alias = r.readVarInt();
1501
+ const group_order = BigInt(r.readUint8());
548
1502
  const end_of_track = r.readVarInt();
549
- const parameters = decodeParams(r);
550
- return { type: "fetch_ok", request_id, track_alias, end_of_track, parameters };
1503
+ const end_location = {
1504
+ group: r.readVarInt(),
1505
+ object: r.readVarInt()
1506
+ };
1507
+ const parameters = decodeMessageParams(r);
1508
+ return {
1509
+ type: "fetch_ok",
1510
+ request_id,
1511
+ group_order,
1512
+ end_of_track,
1513
+ end_location,
1514
+ parameters
1515
+ };
551
1516
  }
552
1517
  function decodeFetchErrorPayload(r) {
553
1518
  const request_id = r.readVarInt();
@@ -563,26 +1528,55 @@ function decodeTrackStatusPayload(r) {
563
1528
  const request_id = r.readVarInt();
564
1529
  const track_namespace = r.readTuple();
565
1530
  const track_name = r.readString();
566
- const parameters = decodeParams(r);
567
- return { type: "track_status", request_id, track_namespace, track_name, parameters };
1531
+ const subscriber_priority = BigInt(r.readUint8());
1532
+ const group_order = BigInt(r.readUint8());
1533
+ const forward = r.readVarInt();
1534
+ const filter_type = r.readVarInt();
1535
+ let start_group;
1536
+ let start_object;
1537
+ if (filter_type >= FilterType.AbsoluteStart) {
1538
+ start_group = r.readVarInt();
1539
+ start_object = r.readVarInt();
1540
+ }
1541
+ const parameters = decodeMessageParams(r);
1542
+ const msg = {
1543
+ type: "track_status",
1544
+ request_id,
1545
+ track_namespace,
1546
+ track_name,
1547
+ subscriber_priority,
1548
+ group_order,
1549
+ forward,
1550
+ filter_type,
1551
+ parameters
1552
+ };
1553
+ if (start_group !== void 0) msg.start_group = start_group;
1554
+ if (start_object !== void 0) msg.start_object = start_object;
1555
+ return msg;
568
1556
  }
569
1557
  function decodeTrackStatusOkPayload(r) {
570
1558
  const request_id = r.readVarInt();
571
- const status_code = r.readVarInt();
572
- const sc = Number(status_code);
573
- let largest_group;
574
- let largest_object;
575
- if (sc === 0 || sc === 3) {
576
- largest_group = r.readVarInt();
577
- largest_object = r.readVarInt();
1559
+ const track_alias = r.readVarInt();
1560
+ const expires = r.readVarInt();
1561
+ const group_order = BigInt(r.readUint8());
1562
+ const content_exists = r.readVarInt();
1563
+ let largest_location;
1564
+ if (content_exists === 1n) {
1565
+ largest_location = {
1566
+ group: r.readVarInt(),
1567
+ object: r.readVarInt()
1568
+ };
578
1569
  }
579
- const parameters = decodeParams(r);
1570
+ const parameters = decodeMessageParams(r);
580
1571
  return {
581
1572
  type: "track_status_ok",
582
1573
  request_id,
583
- status_code,
1574
+ track_alias,
1575
+ expires,
1576
+ group_order,
1577
+ content_exists,
584
1578
  parameters,
585
- ...largest_group !== void 0 ? { largest_group, largest_object } : {}
1579
+ ...largest_location !== void 0 ? { largest_location } : {}
586
1580
  };
587
1581
  }
588
1582
  function decodeTrackStatusErrorPayload(r) {
@@ -642,11 +1636,11 @@ function encodeMessage(message) {
642
1636
  }
643
1637
  const payloadWriter = new BufferWriter();
644
1638
  encodePayload(message, payloadWriter);
645
- const payload = payloadWriter.finish();
1639
+ const payload = payloadWriter.finishView();
646
1640
  if (payload.byteLength > 65535) {
647
1641
  throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
648
1642
  }
649
- const writer = new BufferWriter();
1643
+ const writer = new BufferWriter(payload.byteLength + 16);
650
1644
  writer.writeVarInt(typeId);
651
1645
  writer.writeUint8(payload.byteLength >> 8 & 255);
652
1646
  writer.writeUint8(payload.byteLength & 255);
@@ -704,195 +1698,67 @@ function encodePayload(msg, w) {
704
1698
  case "fetch_cancel":
705
1699
  return encodeFetchCancelPayload(msg, w);
706
1700
  case "track_status":
707
- return encodeTrackStatusPayload(msg, w);
708
- case "track_status_ok":
709
- return encodeTrackStatusOkPayload(msg, w);
710
- case "track_status_error":
711
- return encodeTrackStatusErrorPayload(msg, w);
712
- case "goaway":
713
- return encodeGoAwayPayload(msg, w);
714
- case "max_request_id":
715
- return encodeMaxRequestIdPayload(msg, w);
716
- case "requests_blocked":
717
- return encodeRequestsBlockedPayload(msg, w);
718
- default: {
719
- const _exhaustive = msg;
720
- throw new Error(`Unhandled message type: ${_exhaustive.type}`);
721
- }
722
- }
723
- }
724
- function decodeMessage(bytes) {
725
- try {
726
- const reader = new BufferReader(bytes);
727
- const typeId = reader.readVarInt();
728
- const lenHi = reader.readUint8();
729
- const lenLo = reader.readUint8();
730
- const payloadLength = lenHi << 8 | lenLo;
731
- const payloadBytes = reader.readBytes(payloadLength);
732
- const payloadReader = new BufferReader(payloadBytes);
733
- const decoder = payloadDecoders.get(typeId);
734
- if (!decoder) {
735
- return {
736
- ok: false,
737
- error: new DecodeError(
738
- "UNKNOWN_MESSAGE_TYPE",
739
- `Unknown message type ID: 0x${typeId.toString(16)}`,
740
- 0
741
- )
742
- };
743
- }
744
- const message = decoder(payloadReader);
745
- return { ok: true, value: message, bytesRead: reader.offset };
746
- } catch (e) {
747
- if (e instanceof DecodeError) {
748
- return { ok: false, error: e };
749
- }
750
- throw e;
751
- }
752
- }
753
- function encodeSubgroupStream(stream) {
754
- const w = new BufferWriter();
755
- w.writeVarInt(0n);
756
- w.writeVarInt(stream.trackAlias);
757
- w.writeVarInt(stream.groupId);
758
- w.writeVarInt(stream.subgroupId);
759
- w.writeUint8(stream.publisherPriority);
760
- for (const obj of stream.objects) {
761
- w.writeVarInt(obj.objectId);
762
- w.writeVarInt(obj.payloadLength);
763
- w.writeBytes(obj.payload);
764
- }
765
- return w.finish();
766
- }
767
- function encodeDatagram(dg) {
768
- const w = new BufferWriter();
769
- w.writeVarInt(dg.trackAlias);
770
- w.writeVarInt(dg.groupId);
771
- w.writeVarInt(dg.objectId);
772
- w.writeVarInt(dg.payloadLength);
773
- w.writeBytes(dg.payload);
774
- return w.finish();
775
- }
776
- function encodeFetchStream(stream) {
777
- const w = new BufferWriter();
778
- w.writeVarInt(2n);
779
- w.writeVarInt(stream.subscribeRequestId);
780
- for (const obj of stream.objects) {
781
- w.writeVarInt(obj.objectId);
782
- w.writeVarInt(obj.payloadLength);
783
- w.writeBytes(obj.payload);
784
- }
785
- return w.finish();
786
- }
787
- function decodeSubgroupStream(bytes) {
788
- try {
789
- const r = new BufferReader(bytes);
790
- const streamType = r.readVarInt();
791
- if (streamType !== 0n) {
792
- return {
793
- ok: false,
794
- error: new DecodeError(
795
- "CONSTRAINT_VIOLATION",
796
- `Expected subgroup stream type 0, got ${streamType}`,
797
- 0
798
- )
799
- };
800
- }
801
- const trackAlias = r.readVarInt();
802
- const groupId = r.readVarInt();
803
- const subgroupId = r.readVarInt();
804
- const publisherPriority = r.readUint8();
805
- const objects = [];
806
- while (r.remaining > 0) {
807
- const objectId = r.readVarInt();
808
- const payloadLength = Number(r.readVarInt());
809
- const payload = r.readBytes(payloadLength);
810
- objects.push({ type: "object", objectId, payloadLength, payload });
811
- }
812
- return {
813
- ok: true,
814
- value: { type: "subgroup", trackAlias, groupId, subgroupId, publisherPriority, objects },
815
- bytesRead: r.offset
816
- };
817
- } catch (e) {
818
- if (e instanceof DecodeError) return { ok: false, error: e };
819
- throw e;
820
- }
821
- }
822
- function decodeDatagram(bytes) {
823
- try {
824
- const r = new BufferReader(bytes);
825
- const trackAlias = r.readVarInt();
826
- const groupId = r.readVarInt();
827
- const objectId = r.readVarInt();
828
- const payloadLength = Number(r.readVarInt());
829
- const payload = r.readBytes(payloadLength);
830
- return {
831
- ok: true,
832
- value: { type: "datagram", trackAlias, groupId, objectId, payloadLength, payload },
833
- bytesRead: r.offset
834
- };
835
- } catch (e) {
836
- if (e instanceof DecodeError) return { ok: false, error: e };
837
- throw e;
1701
+ return encodeTrackStatusPayload(msg, w);
1702
+ case "track_status_ok":
1703
+ return encodeTrackStatusOkPayload(msg, w);
1704
+ case "track_status_error":
1705
+ return encodeTrackStatusErrorPayload(msg, w);
1706
+ case "goaway":
1707
+ return encodeGoAwayPayload(msg, w);
1708
+ case "max_request_id":
1709
+ return encodeMaxRequestIdPayload(msg, w);
1710
+ case "requests_blocked":
1711
+ return encodeRequestsBlockedPayload(msg, w);
1712
+ default: {
1713
+ const _exhaustive = msg;
1714
+ throw new Error(`Unhandled message type: ${_exhaustive.type}`);
1715
+ }
838
1716
  }
839
1717
  }
840
- function decodeFetchStream(bytes) {
1718
+ function decodeMessage(bytes) {
841
1719
  try {
842
- const r = new BufferReader(bytes);
843
- const streamType = r.readVarInt();
844
- if (streamType !== 2n) {
1720
+ const reader = new BufferReader(bytes);
1721
+ const typeId = reader.readVarInt();
1722
+ const lenHi = reader.readUint8();
1723
+ const lenLo = reader.readUint8();
1724
+ const payloadLength = lenHi << 8 | lenLo;
1725
+ const payloadBytes = reader.readBytes(payloadLength);
1726
+ const payloadReader = new BufferReader(payloadBytes);
1727
+ const decoder = payloadDecoders.get(typeId);
1728
+ if (!decoder) {
845
1729
  return {
846
1730
  ok: false,
847
1731
  error: new DecodeError(
848
- "CONSTRAINT_VIOLATION",
849
- `Expected fetch stream type 2, got ${streamType}`,
1732
+ "UNKNOWN_MESSAGE_TYPE",
1733
+ `Unknown message type ID: 0x${typeId.toString(16)}`,
850
1734
  0
851
1735
  )
852
1736
  };
853
1737
  }
854
- const subscribeRequestId = r.readVarInt();
855
- const objects = [];
856
- while (r.remaining > 0) {
857
- const objectId = r.readVarInt();
858
- const payloadLength = Number(r.readVarInt());
859
- const payload = r.readBytes(payloadLength);
860
- objects.push({ type: "object", objectId, payloadLength, payload });
861
- }
862
- return {
863
- ok: true,
864
- value: { type: "fetch", subscribeRequestId, objects },
865
- bytesRead: r.offset
866
- };
1738
+ const message = decoder(payloadReader);
1739
+ return { ok: true, value: message, bytesRead: reader.offset };
867
1740
  } catch (e) {
868
- if (e instanceof DecodeError) return { ok: false, error: e };
869
- throw e;
870
- }
871
- }
872
- function decodeDataStream(streamType, bytes) {
873
- switch (streamType) {
874
- case "subgroup":
875
- return decodeSubgroupStream(bytes);
876
- case "datagram":
877
- return decodeDatagram(bytes);
878
- case "fetch":
879
- return decodeFetchStream(bytes);
880
- default: {
881
- const _exhaustive = streamType;
882
- throw new Error(`Unknown stream type: ${_exhaustive}`);
1741
+ if (e instanceof DecodeError) {
1742
+ return { ok: false, error: e };
883
1743
  }
1744
+ throw e;
884
1745
  }
885
1746
  }
886
1747
  function createStreamDecoder() {
887
1748
  let buffer = new Uint8Array(0);
1749
+ let offset = 0;
888
1750
  return new TransformStream({
889
1751
  transform(chunk, controller) {
1752
+ if (offset > 0) {
1753
+ buffer = buffer.subarray(offset);
1754
+ offset = 0;
1755
+ }
890
1756
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
891
1757
  newBuffer.set(buffer, 0);
892
1758
  newBuffer.set(chunk, buffer.length);
893
1759
  buffer = newBuffer;
894
- while (buffer.length > 0) {
895
- const result = decodeMessage(buffer);
1760
+ while (offset < buffer.length) {
1761
+ const result = decodeMessage(buffer.subarray(offset));
896
1762
  if (!result.ok) {
897
1763
  if (result.error.code === "UNEXPECTED_END") {
898
1764
  break;
@@ -901,11 +1767,11 @@ function createStreamDecoder() {
901
1767
  return;
902
1768
  }
903
1769
  controller.enqueue(result.value);
904
- buffer = buffer.slice(result.bytesRead);
1770
+ offset += result.bytesRead;
905
1771
  }
906
1772
  },
907
1773
  flush(controller) {
908
- if (buffer.length > 0) {
1774
+ if (offset < buffer.length) {
909
1775
  controller.error(
910
1776
  new DecodeError("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
911
1777
  );
@@ -913,242 +1779,9 @@ function createStreamDecoder() {
913
1779
  }
914
1780
  });
915
1781
  }
916
- function createSubgroupStreamDecoder() {
917
- let buffer = new Uint8Array(0);
918
- let headerEmitted = false;
919
- return new TransformStream({
920
- transform(chunk, controller) {
921
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
922
- newBuffer.set(buffer, 0);
923
- newBuffer.set(chunk, buffer.length);
924
- buffer = newBuffer;
925
- if (!headerEmitted) {
926
- try {
927
- const r = new BufferReader(buffer);
928
- const streamType = r.readVarInt();
929
- if (streamType !== 0n) {
930
- controller.error(
931
- new DecodeError(
932
- "CONSTRAINT_VIOLATION",
933
- `Expected subgroup stream type 0, got ${streamType}`,
934
- 0
935
- )
936
- );
937
- return;
938
- }
939
- const trackAlias = r.readVarInt();
940
- const groupId = r.readVarInt();
941
- const subgroupId = r.readVarInt();
942
- const publisherPriority = r.readUint8();
943
- controller.enqueue({
944
- type: "subgroup_header",
945
- trackAlias,
946
- groupId,
947
- subgroupId,
948
- publisherPriority
949
- });
950
- headerEmitted = true;
951
- buffer = buffer.slice(r.offset);
952
- } catch (e) {
953
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
954
- return;
955
- }
956
- controller.error(e);
957
- return;
958
- }
959
- }
960
- while (buffer.length > 0) {
961
- try {
962
- const r = new BufferReader(buffer);
963
- const objectId = r.readVarInt();
964
- const payloadLength = Number(r.readVarInt());
965
- const payload = r.readBytes(payloadLength);
966
- controller.enqueue({ type: "object", objectId, payloadLength, payload });
967
- buffer = buffer.slice(r.offset);
968
- } catch (e) {
969
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
970
- break;
971
- }
972
- controller.error(e);
973
- return;
974
- }
975
- }
976
- },
977
- flush(controller) {
978
- if (buffer.length > 0) {
979
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
980
- }
981
- }
982
- });
983
- }
984
- function createFetchStreamDecoder() {
985
- let buffer = new Uint8Array(0);
986
- let headerEmitted = false;
987
- return new TransformStream({
988
- transform(chunk, controller) {
989
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
990
- newBuffer.set(buffer, 0);
991
- newBuffer.set(chunk, buffer.length);
992
- buffer = newBuffer;
993
- if (!headerEmitted) {
994
- try {
995
- const r = new BufferReader(buffer);
996
- const streamType = r.readVarInt();
997
- if (streamType !== 2n) {
998
- controller.error(
999
- new DecodeError(
1000
- "CONSTRAINT_VIOLATION",
1001
- `Expected fetch stream type 2, got ${streamType}`,
1002
- 0
1003
- )
1004
- );
1005
- return;
1006
- }
1007
- const subscribeRequestId = r.readVarInt();
1008
- controller.enqueue({
1009
- type: "fetch_header",
1010
- subscribeRequestId
1011
- });
1012
- headerEmitted = true;
1013
- buffer = buffer.slice(r.offset);
1014
- } catch (e) {
1015
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1016
- return;
1017
- }
1018
- controller.error(e);
1019
- return;
1020
- }
1021
- }
1022
- while (buffer.length > 0) {
1023
- try {
1024
- const r = new BufferReader(buffer);
1025
- const objectId = r.readVarInt();
1026
- const payloadLength = Number(r.readVarInt());
1027
- const payload = r.readBytes(payloadLength);
1028
- controller.enqueue({ type: "object", objectId, payloadLength, payload });
1029
- buffer = buffer.slice(r.offset);
1030
- } catch (e) {
1031
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1032
- break;
1033
- }
1034
- controller.error(e);
1035
- return;
1036
- }
1037
- }
1038
- },
1039
- flush(controller) {
1040
- if (buffer.length > 0) {
1041
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1042
- }
1043
- }
1044
- });
1045
- }
1046
- function createDataStreamDecoder() {
1047
- let buffer = new Uint8Array(0);
1048
- let detectedType = null;
1049
- let headerEmitted = false;
1050
- return new TransformStream({
1051
- transform(chunk, controller) {
1052
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
1053
- newBuffer.set(buffer, 0);
1054
- newBuffer.set(chunk, buffer.length);
1055
- buffer = newBuffer;
1056
- if (detectedType === null) {
1057
- try {
1058
- const r = new BufferReader(buffer);
1059
- const streamType = r.readVarInt();
1060
- if (streamType === 0n) {
1061
- detectedType = "subgroup";
1062
- } else if (streamType === 2n) {
1063
- detectedType = "fetch";
1064
- } else {
1065
- controller.error(
1066
- new DecodeError("CONSTRAINT_VIOLATION", `Unknown data stream type: ${streamType}`, 0)
1067
- );
1068
- return;
1069
- }
1070
- } catch (e) {
1071
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1072
- return;
1073
- }
1074
- controller.error(e);
1075
- return;
1076
- }
1077
- }
1078
- if (detectedType === "subgroup") {
1079
- if (!headerEmitted) {
1080
- try {
1081
- const r = new BufferReader(buffer);
1082
- r.readVarInt();
1083
- const trackAlias = r.readVarInt();
1084
- const groupId = r.readVarInt();
1085
- const subgroupId = r.readVarInt();
1086
- const publisherPriority = r.readUint8();
1087
- controller.enqueue({
1088
- type: "subgroup_header",
1089
- trackAlias,
1090
- groupId,
1091
- subgroupId,
1092
- publisherPriority
1093
- });
1094
- headerEmitted = true;
1095
- buffer = buffer.slice(r.offset);
1096
- } catch (e) {
1097
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1098
- return;
1099
- }
1100
- controller.error(e);
1101
- return;
1102
- }
1103
- }
1104
- } else {
1105
- if (!headerEmitted) {
1106
- try {
1107
- const r = new BufferReader(buffer);
1108
- r.readVarInt();
1109
- const subscribeRequestId = r.readVarInt();
1110
- controller.enqueue({
1111
- type: "fetch_header",
1112
- subscribeRequestId
1113
- });
1114
- headerEmitted = true;
1115
- buffer = buffer.slice(r.offset);
1116
- } catch (e) {
1117
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1118
- return;
1119
- }
1120
- controller.error(e);
1121
- return;
1122
- }
1123
- }
1124
- }
1125
- while (buffer.length > 0) {
1126
- try {
1127
- const r = new BufferReader(buffer);
1128
- const objectId = r.readVarInt();
1129
- const payloadLength = Number(r.readVarInt());
1130
- const payload = r.readBytes(payloadLength);
1131
- controller.enqueue({ type: "object", objectId, payloadLength, payload });
1132
- buffer = buffer.slice(r.offset);
1133
- } catch (e) {
1134
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1135
- break;
1136
- }
1137
- controller.error(e);
1138
- return;
1139
- }
1140
- }
1141
- },
1142
- flush(controller) {
1143
- if (buffer.length > 0) {
1144
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1145
- }
1146
- }
1147
- });
1148
- }
1149
1782
  function createDraft14Codec() {
1150
1783
  return {
1151
- draft: "draft-ietf-moq-transport-14",
1784
+ draft: "14",
1152
1785
  encodeMessage,
1153
1786
  decodeMessage,
1154
1787
  encodeSubgroupStream,
@@ -1201,8 +1834,9 @@ export {
1201
1834
  PARAM_MAX_REQUEST_ID,
1202
1835
  MESSAGE_TYPE_MAP,
1203
1836
  MESSAGE_ID_MAP,
1204
- encodeMessage,
1205
- decodeMessage,
1837
+ FilterType,
1838
+ GroupOrder,
1839
+ FetchType,
1206
1840
  encodeSubgroupStream,
1207
1841
  encodeDatagram,
1208
1842
  encodeFetchStream,
@@ -1210,9 +1844,11 @@ export {
1210
1844
  decodeDatagram,
1211
1845
  decodeFetchStream,
1212
1846
  decodeDataStream,
1213
- createStreamDecoder,
1214
1847
  createSubgroupStreamDecoder,
1215
1848
  createFetchStreamDecoder,
1216
1849
  createDataStreamDecoder,
1850
+ encodeMessage,
1851
+ decodeMessage,
1852
+ createStreamDecoder,
1217
1853
  createDraft14Codec
1218
1854
  };