@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,7 +1,7 @@
1
- import { BufferReader } from "../../core/buffer-reader.js";
2
- import { BufferWriter } from "../../core/buffer-writer.js";
3
- import type { DecodeResult } from "../../core/types.js";
4
- import { DecodeError } from "../../core/types.js";
1
+ import { BufferReader } from '../../core/buffer-reader.js'
2
+ import { BufferWriter } from '../../core/buffer-writer.js'
3
+ import type { DecodeResult } from '../../core/types.js'
4
+ import { DecodeError } from '../../core/types.js'
5
5
  import type {
6
6
  DatagramObject,
7
7
  DataStreamEvent,
@@ -12,109 +12,214 @@ import type {
12
12
  ObjectPayload,
13
13
  SubgroupStream,
14
14
  SubgroupStreamHeader,
15
- } from "./types.js";
15
+ } from './types.js'
16
16
 
17
- // ─── Data Stream Encoding/Decoding (same as draft-16) ───────────────────────
17
+ // ─── Data Stream Encoding/Decoding ─────────────────────────────────────────
18
18
 
19
- const FETCH_STREAM_TYPE = 0x05n;
19
+ const FETCH_STREAM_TYPE = 0x05n
20
+
21
+ // Object property type IDs
22
+ const OBJPROP_PRIOR_GROUP_ID_GAP = 0x3cn
23
+ const OBJPROP_PRIOR_OBJECT_ID_GAP = 0x3en
24
+ // We decode all even props as varint, odd as length-prefixed.
25
+ // Known props get named keys; unknown get hex IDs.
26
+
27
+ const KNOWN_OBJ_PROPS: ReadonlyMap<bigint, string> = new Map([
28
+ [OBJPROP_PRIOR_OBJECT_ID_GAP, 'prior_object_id_gap'],
29
+ [OBJPROP_PRIOR_GROUP_ID_GAP, 'prior_group_id_gap'],
30
+ ])
31
+
32
+ function decodeObjectProperties(r: BufferReader, propsLength: number): Record<string, bigint> {
33
+ const endOff = r.offset + propsLength
34
+ const props: Record<string, bigint> = {}
35
+ let prevType = 0n
36
+
37
+ while (r.offset < endOff) {
38
+ const delta = r.readVarInt()
39
+ const propType = prevType + delta
40
+ prevType = propType
41
+
42
+ if (propType % 2n === 0n) {
43
+ const value = r.readVarInt()
44
+ const name = KNOWN_OBJ_PROPS.get(propType) ?? `0x${propType.toString(16)}`
45
+ props[name] = value
46
+ } else {
47
+ const length = Number(r.readVarInt())
48
+ // Skip unknown odd properties
49
+ r.readBytes(length)
50
+ }
51
+ }
52
+ return props
53
+ }
54
+
55
+ function encodeObjectProperties(props: Record<string, bigint>, w: BufferWriter): void {
56
+ // Build entries with type IDs
57
+ const reverseMap = new Map<string, bigint>()
58
+ for (const [id, name] of KNOWN_OBJ_PROPS) {
59
+ reverseMap.set(name, id)
60
+ }
61
+
62
+ const entries: Array<{ type: bigint; value: bigint }> = []
63
+ for (const [name, value] of Object.entries(props)) {
64
+ const typeId = reverseMap.get(name)
65
+ if (typeId !== undefined) {
66
+ entries.push({ type: typeId, value })
67
+ }
68
+ }
69
+ entries.sort((a, b) => (a.type < b.type ? -1 : a.type > b.type ? 1 : 0))
70
+
71
+ let prevType = 0n
72
+ for (const entry of entries) {
73
+ w.writeVarInt(entry.type - prevType)
74
+ w.writeVarInt(entry.value)
75
+ prevType = entry.type
76
+ }
77
+ }
20
78
 
21
79
  export function encodeSubgroupStream(stream: SubgroupStream): Uint8Array {
22
- const w = new BufferWriter();
23
- const streamType = stream.headerType;
24
- w.writeVarInt(BigInt(streamType));
80
+ const w = new BufferWriter()
81
+ const streamType = stream.headerType
82
+ w.writeVarInt(BigInt(streamType))
25
83
 
26
- const extensionsPresent = (streamType & 0x01) !== 0;
27
- const hasSubgroupField = (streamType & 0x04) !== 0;
28
- const hasPriority = streamType < 0x30;
84
+ const propertiesPresent = (streamType & 0x01) !== 0
85
+ const hasSubgroupField = (streamType & 0x04) !== 0
86
+ const hasPriority = streamType < 0x30
29
87
 
30
- w.writeVarInt(stream.trackAlias);
31
- w.writeVarInt(stream.groupId);
88
+ w.writeVarInt(stream.trackAlias)
89
+ w.writeVarInt(stream.groupId)
32
90
  if (hasSubgroupField) {
33
- w.writeVarInt(stream.subgroupId);
91
+ w.writeVarInt(stream.subgroupId)
34
92
  }
35
93
  if (hasPriority) {
36
- w.writeUint8(stream.publisherPriority);
94
+ w.writeUint8(stream.publisherPriority)
37
95
  }
38
- let prevObjectId = -1n;
96
+ let prevObjectId = -1n
39
97
  for (const obj of stream.objects) {
40
- const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
41
- w.writeVarInt(delta);
42
- if (extensionsPresent) {
43
- w.writeVarInt(BigInt(obj.extensionData.length));
44
- if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
98
+ const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n
99
+ w.writeVarInt(delta)
100
+ if (propertiesPresent) {
101
+ if (obj.objectProperties && Object.keys(obj.objectProperties).length > 0) {
102
+ const tmpW = new BufferWriter(32)
103
+ encodeObjectProperties(obj.objectProperties, tmpW)
104
+ const raw = tmpW.finish()
105
+ w.writeVarInt(BigInt(raw.byteLength))
106
+ w.writeBytes(raw)
107
+ } else {
108
+ w.writeVarInt(0n)
109
+ }
45
110
  }
46
- w.writeVarInt(BigInt(obj.payloadLength));
111
+ w.writeVarInt(BigInt(obj.payloadLength))
47
112
  if (obj.payloadLength === 0) {
48
- w.writeVarInt(obj.status ?? 0n);
113
+ w.writeVarInt(obj.status ?? 0n)
49
114
  } else {
50
- w.writeBytes(obj.payload);
115
+ w.writeBytes(obj.payload)
51
116
  }
52
- prevObjectId = obj.objectId;
117
+ prevObjectId = obj.objectId
53
118
  }
54
- return w.finish();
119
+ return w.finish()
55
120
  }
56
121
 
57
122
  export function encodeDatagram(dg: DatagramObject): Uint8Array {
58
- const w = new BufferWriter();
59
- const dgType = dg.datagramType;
60
- w.writeVarInt(BigInt(dgType));
61
- w.writeVarInt(dg.trackAlias);
62
- w.writeVarInt(dg.groupId);
123
+ const w = new BufferWriter()
124
+ const dgType = dg.datagramType
125
+ w.writeVarInt(BigInt(dgType))
126
+ w.writeVarInt(dg.trackAlias)
127
+ w.writeVarInt(dg.groupId)
63
128
 
64
- const objectIdAbsent = (dgType & 0x04) !== 0;
65
- const isStatus = (dgType & 0x20) !== 0;
66
- const defaultPriority = (dgType & 0x08) !== 0;
129
+ const objectIdAbsent = (dgType & 0x04) !== 0
130
+ const isStatus = (dgType & 0x20) !== 0
131
+ const defaultPriority = (dgType & 0x08) !== 0
132
+ const propertiesPresent = (dgType & 0x01) !== 0
67
133
 
68
134
  if (!objectIdAbsent) {
69
- w.writeVarInt(dg.objectId);
135
+ w.writeVarInt(dg.objectId)
70
136
  }
71
137
  if (!defaultPriority) {
72
- w.writeUint8(dg.publisherPriority);
138
+ w.writeUint8(dg.publisherPriority)
139
+ }
140
+
141
+ if (propertiesPresent) {
142
+ if (dg.objectProperties && Object.keys(dg.objectProperties).length > 0) {
143
+ const tmpW = new BufferWriter(32)
144
+ encodeObjectProperties(dg.objectProperties, tmpW)
145
+ const raw = tmpW.finish()
146
+ w.writeVarInt(BigInt(raw.byteLength))
147
+ w.writeBytes(raw)
148
+ } else {
149
+ w.writeVarInt(0n)
150
+ }
73
151
  }
74
152
 
75
153
  if (isStatus) {
76
- w.writeVarInt(dg.objectStatus ?? 0n);
154
+ w.writeVarInt(dg.objectStatus ?? 0n)
77
155
  } else {
78
- w.writeBytes(dg.payload);
156
+ w.writeBytes(dg.payload)
79
157
  }
80
- return w.finish();
158
+ return w.finish()
81
159
  }
82
160
 
83
161
  export function encodeFetchStream(stream: FetchStream): Uint8Array {
84
- const w = new BufferWriter();
85
- w.writeVarInt(FETCH_STREAM_TYPE);
86
- w.writeVarInt(stream.requestId);
162
+ const w = new BufferWriter()
163
+ w.writeVarInt(FETCH_STREAM_TYPE)
164
+ w.writeVarInt(stream.requestId)
87
165
  for (const obj of stream.objects) {
88
- w.writeVarInt(BigInt(obj.serializationFlags));
89
- const flags = obj.serializationFlags;
166
+ w.writeVarInt(BigInt(obj.serializationFlags))
167
+ const flags = obj.serializationFlags
90
168
  if (flags >= 0x80) {
91
169
  // End of Range (0x8C, 0x10C): Group ID, Object ID, PayloadLength=0
92
- w.writeVarInt(obj.groupId);
93
- w.writeVarInt(obj.objectId);
94
- w.writeVarInt(BigInt(obj.payloadLength));
170
+ w.writeVarInt(obj.groupId)
171
+ w.writeVarInt(obj.objectId)
172
+ w.writeVarInt(BigInt(obj.payloadLength))
173
+ } else if (flags & 0x40) {
174
+ // DATAGRAM mode: no subgroup_id field
175
+ if (flags & 0x08) w.writeVarInt(obj.groupId)
176
+ if (flags & 0x04) w.writeVarInt(obj.objectId)
177
+ if (flags & 0x10) w.writeUint8(obj.publisherPriority)
178
+ if (flags & 0x20) {
179
+ if (obj.objectProperties && Object.keys(obj.objectProperties).length > 0) {
180
+ const tmpW = new BufferWriter(32)
181
+ encodeObjectProperties(obj.objectProperties, tmpW)
182
+ const raw = tmpW.finish()
183
+ w.writeVarInt(BigInt(raw.byteLength))
184
+ w.writeBytes(raw)
185
+ } else {
186
+ w.writeVarInt(0n)
187
+ }
188
+ }
189
+ w.writeVarInt(BigInt(obj.payloadLength))
190
+ if (obj.payloadLength > 0) {
191
+ w.writeBytes(obj.payload)
192
+ }
95
193
  } else {
96
- if (flags & 0x08) w.writeVarInt(obj.groupId);
97
- const subgroupEncoding = flags & 0x03;
98
- if (subgroupEncoding === 0x03) w.writeVarInt(obj.subgroupId);
99
- if (flags & 0x04) w.writeVarInt(obj.objectId);
100
- if (flags & 0x10) w.writeUint8(obj.publisherPriority);
194
+ if (flags & 0x08) w.writeVarInt(obj.groupId)
195
+ const subgroupEncoding = flags & 0x03
196
+ if (subgroupEncoding === 0x03) w.writeVarInt(obj.subgroupId)
197
+ if (flags & 0x04) w.writeVarInt(obj.objectId)
198
+ if (flags & 0x10) w.writeUint8(obj.publisherPriority)
101
199
  if (flags & 0x20) {
102
- w.writeVarInt(BigInt(obj.extensionData.length));
103
- if (obj.extensionData.length > 0) w.writeBytes(obj.extensionData);
200
+ if (obj.objectProperties && Object.keys(obj.objectProperties).length > 0) {
201
+ const tmpW = new BufferWriter(32)
202
+ encodeObjectProperties(obj.objectProperties, tmpW)
203
+ const raw = tmpW.finish()
204
+ w.writeVarInt(BigInt(raw.byteLength))
205
+ w.writeBytes(raw)
206
+ } else {
207
+ w.writeVarInt(0n)
208
+ }
104
209
  }
105
- w.writeVarInt(BigInt(obj.payloadLength));
210
+ w.writeVarInt(BigInt(obj.payloadLength))
106
211
  if (obj.payloadLength > 0) {
107
- w.writeBytes(obj.payload);
212
+ w.writeBytes(obj.payload)
108
213
  }
109
214
  }
110
215
  }
111
- return w.finish();
216
+ return w.finish()
112
217
  }
113
218
 
114
219
  export function decodeSubgroupStream(bytes: Uint8Array): DecodeResult<SubgroupStream> {
115
220
  try {
116
- const r = new BufferReader(bytes);
117
- const streamType = Number(r.readVarInt());
221
+ const r = new BufferReader(bytes)
222
+ const streamType = Number(r.readVarInt())
118
223
 
119
224
  if (
120
225
  !((streamType >= 0x10 && streamType <= 0x1d) || (streamType >= 0x30 && streamType <= 0x3d)) ||
@@ -123,124 +228,150 @@ export function decodeSubgroupStream(bytes: Uint8Array): DecodeResult<SubgroupSt
123
228
  return {
124
229
  ok: false,
125
230
  error: new DecodeError(
126
- "CONSTRAINT_VIOLATION",
231
+ 'CONSTRAINT_VIOLATION',
127
232
  `Expected subgroup stream type 0x10-0x15/0x18-0x1D/0x30-0x35/0x38-0x3D, got 0x${streamType.toString(16)}`,
128
233
  0,
129
234
  ),
130
- };
235
+ }
131
236
  }
132
237
 
133
- const extensionsPresent = (streamType & 0x01) !== 0;
134
- const hasSubgroupField = (streamType & 0x04) !== 0;
135
- const subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField;
136
- const hasPriority = streamType < 0x30;
238
+ const propertiesPresent = (streamType & 0x01) !== 0
239
+ const hasSubgroupField = (streamType & 0x04) !== 0
240
+ const subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField
241
+ const hasPriority = streamType < 0x30
242
+ const endOfGroup = (streamType & 0x08) !== 0
137
243
 
138
- const trackAlias = r.readVarInt();
139
- const groupId = r.readVarInt();
244
+ const trackAlias = r.readVarInt()
245
+ const groupId = r.readVarInt()
140
246
 
141
- let subgroupId = 0n;
247
+ let subgroupId = 0n
142
248
  if (hasSubgroupField) {
143
- subgroupId = r.readVarInt();
249
+ subgroupId = r.readVarInt()
144
250
  }
145
251
 
146
- let publisherPriority = 128;
252
+ let publisherPriority = 128
147
253
  if (hasPriority) {
148
- publisherPriority = r.readUint8();
254
+ publisherPriority = r.readUint8()
149
255
  }
150
256
 
151
- const objects: ObjectPayload[] = [];
152
- let prevObjectId = -1n;
153
- let firstObject = true;
257
+ const objects: ObjectPayload[] = []
258
+ let prevObjectId = -1n
259
+ let firstObject = true
154
260
 
155
261
  while (r.remaining > 0) {
156
- const byteOffset = r.offset;
157
- const delta = r.readVarInt();
158
- let objectId: bigint;
262
+ const byteOffset = r.offset
263
+ const delta = r.readVarInt()
264
+ let objectId: bigint
159
265
  if (firstObject) {
160
- objectId = delta;
266
+ objectId = delta
161
267
  if (subgroupIsFirstObjId && firstObject) {
162
- subgroupId = objectId;
268
+ subgroupId = objectId
163
269
  }
164
- firstObject = false;
270
+ firstObject = false
165
271
  } else {
166
- objectId = prevObjectId + 1n + delta;
272
+ objectId = prevObjectId + 1n + delta
167
273
  }
168
- let extensionData = new Uint8Array(0);
169
- if (extensionsPresent) {
170
- const extLen = Number(r.readVarInt());
171
- extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
274
+ const extensionData = new Uint8Array(0)
275
+ let objectProperties: Record<string, bigint> | undefined
276
+ if (propertiesPresent) {
277
+ const propsLen = Number(r.readVarInt())
278
+ if (propsLen > 0) {
279
+ objectProperties = decodeObjectProperties(r, propsLen)
280
+ }
172
281
  }
173
- const payloadLength = Number(r.readVarInt());
174
- let payload: Uint8Array;
175
- let status: bigint | undefined;
176
- let payloadByteOffset: number;
282
+ const payloadLength = Number(r.readVarInt())
283
+ let payload: Uint8Array
284
+ let status: bigint | undefined
285
+ let payloadByteOffset: number
177
286
  if (payloadLength === 0) {
178
- status = r.readVarInt();
179
- payloadByteOffset = r.offset;
180
- payload = new Uint8Array(0);
287
+ status = r.readVarInt()
288
+ payloadByteOffset = r.offset
289
+ payload = new Uint8Array(0)
181
290
  } else {
182
- payloadByteOffset = r.offset;
183
- payload = r.readBytes(payloadLength);
291
+ payloadByteOffset = r.offset
292
+ payload = r.readBytesView(payloadLength)
184
293
  }
185
- const obj: ObjectPayload = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
186
- if (status !== undefined) (obj as unknown as Record<string, unknown>).status = status;
187
- objects.push(obj);
188
- prevObjectId = objectId;
294
+ const obj: ObjectPayload = {
295
+ type: 'object',
296
+ byteOffset,
297
+ payloadByteOffset,
298
+ objectId,
299
+ payloadLength,
300
+ payload,
301
+ extensionData,
302
+ }
303
+ if (status !== undefined) (obj as unknown as Record<string, unknown>).status = status
304
+ if (objectProperties !== undefined)
305
+ (obj as unknown as Record<string, unknown>).objectProperties = objectProperties
306
+ objects.push(obj)
307
+ prevObjectId = objectId
189
308
  }
190
309
 
310
+ const result: SubgroupStream = {
311
+ type: 'subgroup',
312
+ headerType: streamType,
313
+ trackAlias,
314
+ groupId,
315
+ subgroupId,
316
+ publisherPriority,
317
+ objects,
318
+ }
319
+ if (endOfGroup) (result as unknown as Record<string, unknown>).endOfGroup = true
320
+
191
321
  return {
192
322
  ok: true,
193
- value: {
194
- type: "subgroup",
195
- headerType: streamType,
196
- trackAlias,
197
- groupId,
198
- subgroupId,
199
- publisherPriority,
200
- objects,
201
- },
323
+ value: result,
202
324
  bytesRead: r.offset,
203
- };
325
+ }
204
326
  } catch (e) {
205
- if (e instanceof DecodeError) return { ok: false, error: e };
206
- throw e;
327
+ if (e instanceof DecodeError) return { ok: false, error: e }
328
+ throw e
207
329
  }
208
330
  }
209
331
 
210
332
  export function decodeDatagram(bytes: Uint8Array): DecodeResult<DatagramObject> {
211
333
  try {
212
- const r = new BufferReader(bytes);
213
- const dgType = Number(r.readVarInt());
214
-
215
- const objectIdAbsent = (dgType & 0x04) !== 0;
216
- const endOfGroup = (dgType & 0x02) !== 0;
217
- const isStatus = (dgType & 0x20) !== 0;
218
- const defaultPriority = (dgType & 0x08) !== 0;
219
-
220
- const trackAlias = r.readVarInt();
221
- const groupId = r.readVarInt();
222
- let objectId = 0n;
334
+ const r = new BufferReader(bytes)
335
+ const dgType = Number(r.readVarInt())
336
+
337
+ const objectIdAbsent = (dgType & 0x04) !== 0
338
+ const endOfGroup = (dgType & 0x02) !== 0
339
+ const isStatus = (dgType & 0x20) !== 0
340
+ const defaultPriority = (dgType & 0x08) !== 0
341
+ const propertiesPresent = (dgType & 0x01) !== 0
342
+
343
+ const trackAlias = r.readVarInt()
344
+ const groupId = r.readVarInt()
345
+ let objectId = 0n
223
346
  if (!objectIdAbsent) {
224
- objectId = r.readVarInt();
347
+ objectId = r.readVarInt()
225
348
  }
226
349
 
227
- let publisherPriority = 128;
350
+ let publisherPriority = 128
228
351
  if (!defaultPriority) {
229
- publisherPriority = r.readUint8();
352
+ publisherPriority = r.readUint8()
230
353
  }
231
354
 
232
- let objectStatus: bigint | undefined;
233
- let payload: Uint8Array;
355
+ let objectProperties: Record<string, bigint> | undefined
356
+ if (propertiesPresent) {
357
+ const propsLen = Number(r.readVarInt())
358
+ if (propsLen > 0) {
359
+ objectProperties = decodeObjectProperties(r, propsLen)
360
+ }
361
+ }
362
+
363
+ let objectStatus: bigint | undefined
364
+ let payload: Uint8Array
234
365
  if (isStatus) {
235
- objectStatus = r.readVarInt();
236
- payload = new Uint8Array(0);
366
+ objectStatus = r.readVarInt()
367
+ payload = new Uint8Array(0)
237
368
  } else {
238
- payload = r.readBytes(r.remaining);
369
+ payload = r.readBytesView(r.remaining)
239
370
  }
240
- const payloadLength = payload.byteLength;
371
+ const payloadLength = payload.byteLength
241
372
 
242
373
  const result: DatagramObject = {
243
- type: "datagram",
374
+ type: 'datagram',
244
375
  datagramType: dgType,
245
376
  trackAlias,
246
377
  groupId,
@@ -248,53 +379,55 @@ export function decodeDatagram(bytes: Uint8Array): DecodeResult<DatagramObject>
248
379
  publisherPriority,
249
380
  payloadLength,
250
381
  payload,
251
- };
382
+ }
252
383
 
253
- if (endOfGroup) (result as unknown as Record<string, unknown>).endOfGroup = true;
384
+ if (endOfGroup) (result as unknown as Record<string, unknown>).endOfGroup = true
254
385
  if (objectStatus !== undefined)
255
- (result as unknown as Record<string, unknown>).objectStatus = objectStatus;
386
+ (result as unknown as Record<string, unknown>).objectStatus = objectStatus
387
+ if (objectProperties !== undefined)
388
+ (result as unknown as Record<string, unknown>).objectProperties = objectProperties
256
389
 
257
- return { ok: true, value: result, bytesRead: r.offset };
390
+ return { ok: true, value: result, bytesRead: r.offset }
258
391
  } catch (e) {
259
- if (e instanceof DecodeError) return { ok: false, error: e };
260
- throw e;
392
+ if (e instanceof DecodeError) return { ok: false, error: e }
393
+ throw e
261
394
  }
262
395
  }
263
396
 
264
397
  export function decodeFetchStream(bytes: Uint8Array): DecodeResult<FetchStream> {
265
398
  try {
266
- const r = new BufferReader(bytes);
267
- const streamType = r.readVarInt();
399
+ const r = new BufferReader(bytes)
400
+ const streamType = r.readVarInt()
268
401
  if (streamType !== FETCH_STREAM_TYPE) {
269
402
  return {
270
403
  ok: false,
271
404
  error: new DecodeError(
272
- "CONSTRAINT_VIOLATION",
405
+ 'CONSTRAINT_VIOLATION',
273
406
  `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
274
407
  0,
275
408
  ),
276
- };
409
+ }
277
410
  }
278
- const requestId = r.readVarInt();
279
- const objects: FetchObjectPayload[] = [];
411
+ const requestId = r.readVarInt()
412
+ const objects: FetchObjectPayload[] = []
280
413
 
281
- let prevGroupId = 0n;
282
- let prevSubgroupId = 0n;
283
- let prevObjectId = 0n;
284
- let prevPriority = 128;
285
- let first = true;
414
+ let prevGroupId = 0n
415
+ let prevSubgroupId = 0n
416
+ let prevObjectId = 0n
417
+ let prevPriority = 128
418
+ let first = true
286
419
 
287
420
  while (r.remaining > 0) {
288
- const byteOffset = r.offset;
289
- const flags = Number(r.readVarInt());
421
+ const byteOffset = r.offset
422
+ const flags = Number(r.readVarInt())
290
423
 
291
- let groupId = prevGroupId;
292
- let subgroupId = prevSubgroupId;
293
- let objectId = prevObjectId + 1n;
294
- let payloadLength: number;
295
- let payload: Uint8Array;
296
- let payloadByteOffset: number;
297
- let extensionData = new Uint8Array(0);
424
+ let groupId = prevGroupId
425
+ let subgroupId = prevSubgroupId
426
+ let objectId = prevObjectId + 1n
427
+ let payloadLength: number
428
+ let payload: Uint8Array
429
+ let payloadByteOffset: number
430
+ const extensionData = new Uint8Array(0)
298
431
 
299
432
  if (flags >= 0x80) {
300
433
  // End of Range: 0x8C = End of Non-Existent Range, 0x10C = End of Unknown Range
@@ -304,109 +437,171 @@ export function decodeFetchStream(bytes: Uint8Array): DecodeResult<FetchStream>
304
437
  return {
305
438
  ok: false,
306
439
  error: new DecodeError(
307
- "CONSTRAINT_VIOLATION",
440
+ 'CONSTRAINT_VIOLATION',
308
441
  `Unknown serialization flags value: 0x${flags.toString(16)}`,
309
442
  r.offset,
310
443
  ),
311
- };
444
+ }
312
445
  }
313
- groupId = r.readVarInt();
314
- objectId = r.readVarInt();
315
- payloadLength = Number(r.readVarInt());
316
- payloadByteOffset = r.offset;
317
- payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
318
- } else {
319
- const subgroupEncoding = flags & 0x03;
320
- const objectIdPresent = (flags & 0x04) !== 0;
321
- const groupIdPresent = (flags & 0x08) !== 0;
322
- const priorityPresent = (flags & 0x10) !== 0;
323
- const extensionsPresent = (flags & 0x20) !== 0;
446
+ groupId = r.readVarInt()
447
+ objectId = r.readVarInt()
448
+ payloadLength = Number(r.readVarInt())
449
+ payloadByteOffset = r.offset
450
+ payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0)
451
+ } else if (flags & 0x40) {
452
+ // DATAGRAM mode: no subgroup_id field
453
+ const objectIdPresent = (flags & 0x04) !== 0
454
+ const groupIdPresent = (flags & 0x08) !== 0
455
+ const priorityPresent = (flags & 0x10) !== 0
456
+ const propsPresent = (flags & 0x20) !== 0
324
457
 
325
- if (flags & 0x40) {
326
- return {
327
- ok: false,
328
- error: new DecodeError(
329
- "CONSTRAINT_VIOLATION",
330
- "Reserved bits set in fetch object flags",
331
- r.offset,
332
- ),
333
- };
458
+ if (groupIdPresent) {
459
+ groupId = r.readVarInt()
334
460
  }
461
+ // No subgroup in datagram mode
462
+ if (objectIdPresent) {
463
+ objectId = r.readVarInt()
464
+ }
465
+ if (priorityPresent) {
466
+ prevPriority = r.readUint8()
467
+ }
468
+ let objectProperties: Record<string, bigint> | undefined
469
+ if (propsPresent) {
470
+ const propsLen = Number(r.readVarInt())
471
+ if (propsLen > 0) {
472
+ objectProperties = decodeObjectProperties(r, propsLen)
473
+ }
474
+ }
475
+ payloadLength = Number(r.readVarInt())
476
+ payloadByteOffset = r.offset
477
+ payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0)
478
+
479
+ const obj: FetchObjectPayload = {
480
+ type: 'object',
481
+ byteOffset,
482
+ payloadByteOffset,
483
+ serializationFlags: flags,
484
+ groupId,
485
+ subgroupId: 0n,
486
+ objectId,
487
+ publisherPriority: prevPriority,
488
+ payloadLength,
489
+ payload,
490
+ extensionData,
491
+ }
492
+ if (objectProperties)
493
+ (obj as unknown as Record<string, unknown>).objectProperties = objectProperties
494
+ objects.push(obj)
495
+
496
+ prevGroupId = groupId
497
+ prevObjectId = objectId
498
+ first = false
499
+ continue
500
+ } else {
501
+ const subgroupEncoding = flags & 0x03
502
+ const objectIdPresent = (flags & 0x04) !== 0
503
+ const groupIdPresent = (flags & 0x08) !== 0
504
+ const priorityPresent = (flags & 0x10) !== 0
505
+ const propsPresent = (flags & 0x20) !== 0
335
506
 
336
507
  if (groupIdPresent) {
337
- groupId = r.readVarInt();
508
+ groupId = r.readVarInt()
338
509
  } else if (first) {
339
510
  return {
340
511
  ok: false,
341
512
  error: new DecodeError(
342
- "CONSTRAINT_VIOLATION",
343
- "First fetch object must include groupId",
513
+ 'CONSTRAINT_VIOLATION',
514
+ 'First fetch object must include groupId',
344
515
  r.offset,
345
516
  ),
346
- };
517
+ }
347
518
  }
348
519
 
349
520
  if (subgroupEncoding === 0x00) {
350
- subgroupId = 0n;
521
+ subgroupId = 0n
351
522
  } else if (subgroupEncoding === 0x01) {
352
523
  if (first) {
353
524
  return {
354
525
  ok: false,
355
526
  error: new DecodeError(
356
- "CONSTRAINT_VIOLATION",
357
- "First fetch object cannot reference prior subgroupId",
527
+ 'CONSTRAINT_VIOLATION',
528
+ 'First fetch object cannot reference prior subgroupId',
358
529
  r.offset,
359
530
  ),
360
- };
531
+ }
361
532
  }
362
- subgroupId = prevSubgroupId;
533
+ subgroupId = prevSubgroupId
363
534
  } else if (subgroupEncoding === 0x02) {
364
535
  if (first) {
365
536
  return {
366
537
  ok: false,
367
538
  error: new DecodeError(
368
- "CONSTRAINT_VIOLATION",
369
- "First fetch object cannot reference prior subgroupId",
539
+ 'CONSTRAINT_VIOLATION',
540
+ 'First fetch object cannot reference prior subgroupId',
370
541
  r.offset,
371
542
  ),
372
- };
543
+ }
373
544
  }
374
- subgroupId = prevSubgroupId + 1n;
545
+ subgroupId = prevSubgroupId + 1n
375
546
  } else if (subgroupEncoding === 0x03) {
376
- subgroupId = r.readVarInt();
547
+ subgroupId = r.readVarInt()
377
548
  }
378
549
 
379
550
  if (objectIdPresent) {
380
- objectId = r.readVarInt();
551
+ objectId = r.readVarInt()
381
552
  } else if (first) {
382
553
  return {
383
554
  ok: false,
384
555
  error: new DecodeError(
385
- "CONSTRAINT_VIOLATION",
386
- "First fetch object must include objectId",
556
+ 'CONSTRAINT_VIOLATION',
557
+ 'First fetch object must include objectId',
387
558
  r.offset,
388
559
  ),
389
- };
560
+ }
390
561
  }
391
562
 
392
563
  if (priorityPresent) {
393
- prevPriority = r.readUint8();
564
+ prevPriority = r.readUint8()
394
565
  }
395
566
 
396
- if (extensionsPresent) {
397
- const extLen = Number(r.readVarInt());
398
- if (extLen > 0) {
399
- extensionData = r.readBytes(extLen);
567
+ let objectProperties: Record<string, bigint> | undefined
568
+ if (propsPresent) {
569
+ const propsLen = Number(r.readVarInt())
570
+ if (propsLen > 0) {
571
+ objectProperties = decodeObjectProperties(r, propsLen)
400
572
  }
401
573
  }
402
574
 
403
- payloadLength = Number(r.readVarInt());
404
- payloadByteOffset = r.offset;
405
- payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
575
+ payloadLength = Number(r.readVarInt())
576
+ payloadByteOffset = r.offset
577
+ payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0)
578
+
579
+ if (objectProperties) {
580
+ const obj: FetchObjectPayload = {
581
+ type: 'object',
582
+ byteOffset,
583
+ payloadByteOffset,
584
+ serializationFlags: flags,
585
+ groupId,
586
+ subgroupId,
587
+ objectId,
588
+ publisherPriority: prevPriority,
589
+ payloadLength,
590
+ payload,
591
+ extensionData,
592
+ }
593
+ ;(obj as unknown as Record<string, unknown>).objectProperties = objectProperties
594
+ objects.push(obj)
595
+ prevGroupId = groupId
596
+ prevSubgroupId = subgroupId
597
+ prevObjectId = objectId
598
+ first = false
599
+ continue
600
+ }
406
601
  }
407
602
 
408
603
  const obj: FetchObjectPayload = {
409
- type: "object",
604
+ type: 'object',
410
605
  byteOffset,
411
606
  payloadByteOffset,
412
607
  serializationFlags: flags,
@@ -417,40 +612,40 @@ export function decodeFetchStream(bytes: Uint8Array): DecodeResult<FetchStream>
417
612
  payloadLength,
418
613
  payload,
419
614
  extensionData,
420
- };
421
- objects.push(obj);
615
+ }
616
+ objects.push(obj)
422
617
 
423
- prevGroupId = groupId;
424
- prevSubgroupId = subgroupId;
425
- prevObjectId = objectId;
426
- first = false;
618
+ prevGroupId = groupId
619
+ prevSubgroupId = subgroupId
620
+ prevObjectId = objectId
621
+ first = false
427
622
  }
428
623
 
429
624
  return {
430
625
  ok: true,
431
- value: { type: "fetch", requestId, objects },
626
+ value: { type: 'fetch', requestId, objects },
432
627
  bytesRead: r.offset,
433
- };
628
+ }
434
629
  } catch (e) {
435
- if (e instanceof DecodeError) return { ok: false, error: e };
436
- throw e;
630
+ if (e instanceof DecodeError) return { ok: false, error: e }
631
+ throw e
437
632
  }
438
633
  }
439
634
 
440
635
  export function decodeDataStream(
441
- streamType: "subgroup" | "datagram" | "fetch",
636
+ streamType: 'subgroup' | 'datagram' | 'fetch',
442
637
  bytes: Uint8Array,
443
638
  ): DecodeResult<Draft17DataStream> {
444
639
  switch (streamType) {
445
- case "subgroup":
446
- return decodeSubgroupStream(bytes);
447
- case "datagram":
448
- return decodeDatagram(bytes);
449
- case "fetch":
450
- return decodeFetchStream(bytes);
640
+ case 'subgroup':
641
+ return decodeSubgroupStream(bytes)
642
+ case 'datagram':
643
+ return decodeDatagram(bytes)
644
+ case 'fetch':
645
+ return decodeFetchStream(bytes)
451
646
  default: {
452
- const _exhaustive: never = streamType;
453
- throw new Error(`Unknown stream type: ${_exhaustive}`);
647
+ const _exhaustive: never = streamType
648
+ throw new Error(`Unknown stream type: ${_exhaustive}`)
454
649
  }
455
650
  }
456
651
  }
@@ -461,24 +656,29 @@ export function createSubgroupStreamDecoder(): TransformStream<
461
656
  Uint8Array,
462
657
  SubgroupStreamHeader | ObjectPayload
463
658
  > {
464
- let buffer = new Uint8Array(0);
465
- let headerEmitted = false;
466
- let prevObjectId = -1n;
467
- let firstObject = true;
468
- let _subgroupIsFirstObjId = false;
469
- let _extensionsPresent = false;
659
+ let buffer = new Uint8Array(0)
660
+ let offset = 0
661
+ let headerEmitted = false
662
+ let prevObjectId = -1n
663
+ let firstObject = true
664
+ let _subgroupIsFirstObjId = false
665
+ let _extensionsPresent = false
470
666
 
471
667
  return new TransformStream<Uint8Array, SubgroupStreamHeader | ObjectPayload>({
472
668
  transform(chunk, controller) {
473
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
474
- newBuffer.set(buffer, 0);
475
- newBuffer.set(chunk, buffer.length);
476
- buffer = newBuffer;
669
+ if (offset > 0) {
670
+ buffer = buffer.subarray(offset)
671
+ offset = 0
672
+ }
673
+ const newBuffer = new Uint8Array(buffer.length + chunk.length)
674
+ newBuffer.set(buffer, 0)
675
+ newBuffer.set(chunk, buffer.length)
676
+ buffer = newBuffer
477
677
 
478
678
  if (!headerEmitted) {
479
679
  try {
480
- const r = new BufferReader(buffer);
481
- const streamType = Number(r.readVarInt());
680
+ const r = new BufferReader(buffer.subarray(offset))
681
+ const streamType = Number(r.readVarInt())
482
682
 
483
683
  if (
484
684
  !(
@@ -488,255 +688,282 @@ export function createSubgroupStreamDecoder(): TransformStream<
488
688
  ) {
489
689
  controller.error(
490
690
  new DecodeError(
491
- "CONSTRAINT_VIOLATION",
691
+ 'CONSTRAINT_VIOLATION',
492
692
  `Expected subgroup stream type, got 0x${streamType.toString(16)}`,
493
693
  0,
494
694
  ),
495
- );
496
- return;
695
+ )
696
+ return
497
697
  }
498
698
 
499
- _extensionsPresent = (streamType & 0x01) !== 0;
500
- const hasSubgroupField = (streamType & 0x04) !== 0;
501
- _subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField;
502
- const hasPriority = streamType < 0x30;
699
+ _extensionsPresent = (streamType & 0x01) !== 0
700
+ const hasSubgroupField = (streamType & 0x04) !== 0
701
+ _subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField
702
+ const hasPriority = streamType < 0x30
503
703
 
504
- const trackAlias = r.readVarInt();
505
- const groupId = r.readVarInt();
704
+ const trackAlias = r.readVarInt()
705
+ const groupId = r.readVarInt()
506
706
 
507
- let subgroupId = 0n;
707
+ let subgroupId = 0n
508
708
  if (hasSubgroupField) {
509
- subgroupId = r.readVarInt();
709
+ subgroupId = r.readVarInt()
510
710
  }
511
711
 
512
- let publisherPriority = 128;
712
+ let publisherPriority = 128
513
713
  if (hasPriority) {
514
- publisherPriority = r.readUint8();
714
+ publisherPriority = r.readUint8()
515
715
  }
516
716
 
517
717
  controller.enqueue({
518
- type: "subgroup_header",
718
+ type: 'subgroup_header',
519
719
  trackAlias,
520
720
  groupId,
521
721
  subgroupId,
522
722
  publisherPriority,
523
- });
524
- headerEmitted = true;
525
- buffer = buffer.slice(r.offset);
723
+ })
724
+ headerEmitted = true
725
+ offset += r.offset
526
726
  } catch (e) {
527
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
528
- return;
727
+ if (e instanceof DecodeError && e.code === 'UNEXPECTED_END') {
728
+ return
529
729
  }
530
- controller.error(e);
531
- return;
730
+ controller.error(e)
731
+ return
532
732
  }
533
733
  }
534
734
 
535
- while (buffer.length > 0) {
735
+ while (offset < buffer.length) {
536
736
  try {
537
- const r = new BufferReader(buffer);
538
- const delta = r.readVarInt();
539
- let objectId: bigint;
737
+ const r = new BufferReader(buffer.subarray(offset))
738
+ const delta = r.readVarInt()
739
+ let objectId: bigint
540
740
  if (firstObject) {
541
- objectId = delta;
542
- firstObject = false;
741
+ objectId = delta
742
+ firstObject = false
543
743
  } else {
544
- objectId = prevObjectId + 1n + delta;
744
+ objectId = prevObjectId + 1n + delta
545
745
  }
546
- let extensionData = new Uint8Array(0);
746
+ let extensionData = new Uint8Array(0)
547
747
  if (_extensionsPresent) {
548
- const extLen = Number(r.readVarInt());
549
- extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
748
+ const extLen = Number(r.readVarInt())
749
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0)
550
750
  }
551
- const payloadLength = Number(r.readVarInt());
552
- const payloadByteOffset = r.offset;
553
- const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
554
- controller.enqueue({ type: "object", objectId, payloadLength, payload, extensionData, byteOffset: 0, payloadByteOffset });
555
- buffer = buffer.slice(r.offset);
556
- prevObjectId = objectId;
751
+ const payloadLength = Number(r.readVarInt())
752
+ const payloadByteOffset = r.offset
753
+ const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0)
754
+ controller.enqueue({
755
+ type: 'object',
756
+ objectId,
757
+ payloadLength,
758
+ payload,
759
+ extensionData,
760
+ byteOffset: 0,
761
+ payloadByteOffset,
762
+ })
763
+ offset += r.offset
764
+ prevObjectId = objectId
557
765
  } catch (e) {
558
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
559
- break;
766
+ if (e instanceof DecodeError && e.code === 'UNEXPECTED_END') {
767
+ break
560
768
  }
561
- controller.error(e);
562
- return;
769
+ controller.error(e)
770
+ return
563
771
  }
564
772
  }
565
773
  },
566
774
 
567
775
  flush(controller) {
568
- if (buffer.length > 0) {
569
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
776
+ if (offset < buffer.length) {
777
+ controller.error(new DecodeError('UNEXPECTED_END', 'Stream ended with incomplete data', 0))
570
778
  }
571
779
  },
572
- });
780
+ })
573
781
  }
574
782
 
575
783
  export function createFetchStreamDecoder(): TransformStream<
576
784
  Uint8Array,
577
785
  FetchStreamHeader | ObjectPayload
578
786
  > {
579
- let buffer = new Uint8Array(0);
580
- let headerEmitted = false;
787
+ let buffer = new Uint8Array(0)
788
+ let offset = 0
789
+ let headerEmitted = false
581
790
 
582
791
  return new TransformStream<Uint8Array, FetchStreamHeader | ObjectPayload>({
583
792
  transform(chunk, controller) {
584
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
585
- newBuffer.set(buffer, 0);
586
- newBuffer.set(chunk, buffer.length);
587
- buffer = newBuffer;
793
+ if (offset > 0) {
794
+ buffer = buffer.subarray(offset)
795
+ offset = 0
796
+ }
797
+ const newBuffer = new Uint8Array(buffer.length + chunk.length)
798
+ newBuffer.set(buffer, 0)
799
+ newBuffer.set(chunk, buffer.length)
800
+ buffer = newBuffer
588
801
 
589
802
  if (!headerEmitted) {
590
803
  try {
591
- const r = new BufferReader(buffer);
592
- const streamType = r.readVarInt();
804
+ const r = new BufferReader(buffer.subarray(offset))
805
+ const streamType = r.readVarInt()
593
806
  if (streamType !== FETCH_STREAM_TYPE) {
594
807
  controller.error(
595
808
  new DecodeError(
596
- "CONSTRAINT_VIOLATION",
809
+ 'CONSTRAINT_VIOLATION',
597
810
  `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
598
811
  0,
599
812
  ),
600
- );
601
- return;
813
+ )
814
+ return
602
815
  }
603
- const requestId = r.readVarInt();
604
- controller.enqueue({ type: "fetch_header", requestId });
605
- headerEmitted = true;
606
- buffer = buffer.slice(r.offset);
816
+ const requestId = r.readVarInt()
817
+ controller.enqueue({ type: 'fetch_header', requestId })
818
+ headerEmitted = true
819
+ offset += r.offset
607
820
  } catch (e) {
608
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
609
- return;
821
+ if (e instanceof DecodeError && e.code === 'UNEXPECTED_END') {
822
+ return
610
823
  }
611
- controller.error(e);
612
- return;
824
+ controller.error(e)
825
+ return
613
826
  }
614
827
  }
615
828
 
616
- while (buffer.length > 0) {
829
+ while (offset < buffer.length) {
617
830
  try {
618
- const r = new BufferReader(buffer);
619
- const flags = Number(r.readVarInt());
620
- const objectIdPresent = (flags & 0x04) !== 0;
621
- const groupIdPresent = (flags & 0x08) !== 0;
622
- const priorityPresent = (flags & 0x10) !== 0;
623
- const extensionsPresent = (flags & 0x20) !== 0;
624
- const subgroupEncoding = flags & 0x03;
625
-
626
- if (groupIdPresent) r.readVarInt();
627
- if (subgroupEncoding === 0x03) r.readVarInt();
628
- let objectId = 0n;
629
- if (objectIdPresent) objectId = r.readVarInt();
630
- if (priorityPresent) r.readUint8();
631
- let extensionData = new Uint8Array(0);
831
+ const r = new BufferReader(buffer.subarray(offset))
832
+ const flags = Number(r.readVarInt())
833
+ const objectIdPresent = (flags & 0x04) !== 0
834
+ const groupIdPresent = (flags & 0x08) !== 0
835
+ const priorityPresent = (flags & 0x10) !== 0
836
+ const extensionsPresent = (flags & 0x20) !== 0
837
+ const subgroupEncoding = flags & 0x03
838
+
839
+ if (groupIdPresent) r.readVarInt()
840
+ if (subgroupEncoding === 0x03) r.readVarInt()
841
+ let objectId = 0n
842
+ if (objectIdPresent) objectId = r.readVarInt()
843
+ if (priorityPresent) r.readUint8()
844
+ let extensionData = new Uint8Array(0)
632
845
  if (extensionsPresent) {
633
- const extLen = Number(r.readVarInt());
634
- extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
846
+ const extLen = Number(r.readVarInt())
847
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0)
635
848
  }
636
- const payloadLength = Number(r.readVarInt());
637
- const payloadByteOffset = r.offset;
638
- const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
639
- controller.enqueue({ type: "object", objectId, payloadLength, payload, extensionData, byteOffset: 0, payloadByteOffset });
640
- buffer = buffer.slice(r.offset);
849
+ const payloadLength = Number(r.readVarInt())
850
+ const payloadByteOffset = r.offset
851
+ const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0)
852
+ controller.enqueue({
853
+ type: 'object',
854
+ objectId,
855
+ payloadLength,
856
+ payload,
857
+ extensionData,
858
+ byteOffset: 0,
859
+ payloadByteOffset,
860
+ })
861
+ offset += r.offset
641
862
  } catch (e) {
642
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
643
- break;
863
+ if (e instanceof DecodeError && e.code === 'UNEXPECTED_END') {
864
+ break
644
865
  }
645
- controller.error(e);
646
- return;
866
+ controller.error(e)
867
+ return
647
868
  }
648
869
  }
649
870
  },
650
871
 
651
872
  flush(controller) {
652
- if (buffer.length > 0) {
653
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
873
+ if (offset < buffer.length) {
874
+ controller.error(new DecodeError('UNEXPECTED_END', 'Stream ended with incomplete data', 0))
654
875
  }
655
876
  },
656
- });
877
+ })
657
878
  }
658
879
 
659
880
  export function createDataStreamDecoder(): TransformStream<Uint8Array, DataStreamEvent> {
660
- let buffer = new Uint8Array(0);
661
- let inner: TransformStream<Uint8Array, DataStreamEvent> | null = null;
881
+ let buffer = new Uint8Array(0)
882
+ let offset = 0
883
+ let inner: TransformStream<Uint8Array, DataStreamEvent> | null = null
662
884
 
663
885
  return new TransformStream<Uint8Array, DataStreamEvent>({
664
886
  transform(chunk, controller) {
665
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
666
- newBuffer.set(buffer, 0);
667
- newBuffer.set(chunk, buffer.length);
668
- buffer = newBuffer;
887
+ if (offset > 0) {
888
+ buffer = buffer.subarray(offset)
889
+ offset = 0
890
+ }
891
+ const newBuffer = new Uint8Array(buffer.length + chunk.length)
892
+ newBuffer.set(buffer, 0)
893
+ newBuffer.set(chunk, buffer.length)
894
+ buffer = newBuffer
669
895
 
670
896
  if (inner === null) {
671
- if (buffer.length === 0) return;
672
- const firstByte = buffer[0]!;
897
+ if (offset >= buffer.length) return
898
+ const firstByte = buffer[offset]!
673
899
 
674
900
  if ((firstByte >= 0x10 && firstByte <= 0x1d) || (firstByte >= 0x30 && firstByte <= 0x3d)) {
675
- const decoder = createSubgroupStreamDecoder();
676
- inner = decoder as unknown as TransformStream<Uint8Array, DataStreamEvent>;
901
+ const decoder = createSubgroupStreamDecoder()
902
+ inner = decoder as unknown as TransformStream<Uint8Array, DataStreamEvent>
677
903
  } else if (firstByte === 0x05) {
678
- const decoder = createFetchStreamDecoder();
679
- inner = decoder as unknown as TransformStream<Uint8Array, DataStreamEvent>;
904
+ const decoder = createFetchStreamDecoder()
905
+ inner = decoder as unknown as TransformStream<Uint8Array, DataStreamEvent>
680
906
  } else {
681
907
  controller.error(
682
908
  new DecodeError(
683
- "CONSTRAINT_VIOLATION",
909
+ 'CONSTRAINT_VIOLATION',
684
910
  `Unknown data stream type: 0x${firstByte.toString(16)}`,
685
911
  0,
686
912
  ),
687
- );
688
- return;
913
+ )
914
+ return
689
915
  }
690
916
  }
691
917
  },
692
918
 
693
919
  flush(controller) {
694
- if (buffer.length === 0) return;
920
+ if (offset >= buffer.length) return
921
+ const view = buffer.subarray(offset)
695
922
 
696
- const firstByte = buffer[0]!;
697
- let result: DecodeResult<Draft17DataStream>;
923
+ const firstByte = view[0]!
924
+ let result: DecodeResult<Draft17DataStream>
698
925
 
699
926
  if ((firstByte >= 0x10 && firstByte <= 0x1d) || (firstByte >= 0x30 && firstByte <= 0x3d)) {
700
- result = decodeSubgroupStream(buffer);
927
+ result = decodeSubgroupStream(view)
701
928
  } else if (firstByte === 0x05) {
702
- result = decodeFetchStream(buffer);
929
+ result = decodeFetchStream(view)
703
930
  } else {
704
931
  controller.error(
705
932
  new DecodeError(
706
- "CONSTRAINT_VIOLATION",
933
+ 'CONSTRAINT_VIOLATION',
707
934
  `Unknown data stream type: 0x${firstByte.toString(16)}`,
708
935
  0,
709
936
  ),
710
- );
711
- return;
937
+ )
938
+ return
712
939
  }
713
940
 
714
941
  if (!result.ok) {
715
- controller.error(result.error);
716
- return;
942
+ controller.error(result.error)
943
+ return
717
944
  }
718
945
 
719
- const stream = result.value;
720
- if (stream.type === "subgroup") {
946
+ const stream = result.value
947
+ if (stream.type === 'subgroup') {
721
948
  controller.enqueue({
722
- type: "subgroup_header",
949
+ type: 'subgroup_header',
723
950
  trackAlias: stream.trackAlias,
724
951
  groupId: stream.groupId,
725
952
  subgroupId: stream.subgroupId,
726
953
  publisherPriority: stream.publisherPriority,
727
- });
954
+ })
728
955
  for (const obj of stream.objects) {
729
- controller.enqueue(obj);
956
+ controller.enqueue(obj)
730
957
  }
731
- } else if (stream.type === "fetch") {
958
+ } else if (stream.type === 'fetch') {
732
959
  controller.enqueue({
733
- type: "fetch_header",
960
+ type: 'fetch_header',
734
961
  requestId: stream.requestId,
735
- });
962
+ })
736
963
  for (const obj of stream.objects) {
737
- controller.enqueue(obj);
964
+ controller.enqueue(obj)
738
965
  }
739
966
  }
740
967
  },
741
- });
968
+ })
742
969
  }