@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/draft17/messages.ts
8
10
  var MSG_REQUEST_UPDATE = 0x02n;
@@ -24,6 +26,7 @@ var MSG_PUBLISH = 0x1dn;
24
26
  var MSG_PUBLISH_OK = 0x1en;
25
27
  var MSG_SETUP = 0x2f00n;
26
28
  var SETUP_OPT_PATH = 0x01n;
29
+ var SETUP_OPT_AUTHORIZATION_TOKEN = 0x03n;
27
30
  var SETUP_OPT_MAX_AUTH_TOKEN_CACHE_SIZE = 0x04n;
28
31
  var SETUP_OPT_AUTHORITY = 0x05n;
29
32
  var SETUP_OPT_MOQT_IMPLEMENTATION = 0x07n;
@@ -51,33 +54,874 @@ var MESSAGE_ID_MAP = new Map(
51
54
  [...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
52
55
  );
53
56
 
54
- // src/drafts/draft17/codec.ts
55
- function bytesToHex(bytes) {
56
- let hex = "";
57
- for (let i = 0; i < bytes.byteLength; i++) {
58
- hex += bytes[i].toString(16).padStart(2, "0");
57
+ // src/drafts/draft17/data-streams.ts
58
+ var FETCH_STREAM_TYPE = 0x05n;
59
+ var OBJPROP_PRIOR_GROUP_ID_GAP = 0x3cn;
60
+ var OBJPROP_PRIOR_OBJECT_ID_GAP = 0x3en;
61
+ var KNOWN_OBJ_PROPS = /* @__PURE__ */ new Map([
62
+ [OBJPROP_PRIOR_OBJECT_ID_GAP, "prior_object_id_gap"],
63
+ [OBJPROP_PRIOR_GROUP_ID_GAP, "prior_group_id_gap"]
64
+ ]);
65
+ function decodeObjectProperties(r, propsLength) {
66
+ const endOff = r.offset + propsLength;
67
+ const props = {};
68
+ let prevType = 0n;
69
+ while (r.offset < endOff) {
70
+ const delta = r.readVarInt();
71
+ const propType = prevType + delta;
72
+ prevType = propType;
73
+ if (propType % 2n === 0n) {
74
+ const value = r.readVarInt();
75
+ const name = KNOWN_OBJ_PROPS.get(propType) ?? `0x${propType.toString(16)}`;
76
+ props[name] = value;
77
+ } else {
78
+ const length = Number(r.readVarInt());
79
+ r.readBytes(length);
80
+ }
81
+ }
82
+ return props;
83
+ }
84
+ function encodeObjectProperties(props, w) {
85
+ const reverseMap = /* @__PURE__ */ new Map();
86
+ for (const [id, name] of KNOWN_OBJ_PROPS) {
87
+ reverseMap.set(name, id);
88
+ }
89
+ const entries = [];
90
+ for (const [name, value] of Object.entries(props)) {
91
+ const typeId = reverseMap.get(name);
92
+ if (typeId !== void 0) {
93
+ entries.push({ type: typeId, value });
94
+ }
95
+ }
96
+ entries.sort((a, b) => a.type < b.type ? -1 : a.type > b.type ? 1 : 0);
97
+ let prevType = 0n;
98
+ for (const entry of entries) {
99
+ w.writeVarInt(entry.type - prevType);
100
+ w.writeVarInt(entry.value);
101
+ prevType = entry.type;
102
+ }
103
+ }
104
+ function encodeSubgroupStream(stream) {
105
+ const w = new BufferWriter();
106
+ const streamType = stream.headerType;
107
+ w.writeVarInt(BigInt(streamType));
108
+ const propertiesPresent = (streamType & 1) !== 0;
109
+ const hasSubgroupField = (streamType & 4) !== 0;
110
+ const hasPriority = streamType < 48;
111
+ w.writeVarInt(stream.trackAlias);
112
+ w.writeVarInt(stream.groupId);
113
+ if (hasSubgroupField) {
114
+ w.writeVarInt(stream.subgroupId);
59
115
  }
60
- return hex;
116
+ if (hasPriority) {
117
+ w.writeUint8(stream.publisherPriority);
118
+ }
119
+ let prevObjectId = -1n;
120
+ for (const obj of stream.objects) {
121
+ const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
122
+ w.writeVarInt(delta);
123
+ if (propertiesPresent) {
124
+ if (obj.objectProperties && Object.keys(obj.objectProperties).length > 0) {
125
+ const tmpW = new BufferWriter(32);
126
+ encodeObjectProperties(obj.objectProperties, tmpW);
127
+ const raw = tmpW.finish();
128
+ w.writeVarInt(BigInt(raw.byteLength));
129
+ w.writeBytes(raw);
130
+ } else {
131
+ w.writeVarInt(0n);
132
+ }
133
+ }
134
+ w.writeVarInt(BigInt(obj.payloadLength));
135
+ if (obj.payloadLength === 0) {
136
+ w.writeVarInt(obj.status ?? 0n);
137
+ } else {
138
+ w.writeBytes(obj.payload);
139
+ }
140
+ prevObjectId = obj.objectId;
141
+ }
142
+ return w.finish();
143
+ }
144
+ function encodeDatagram(dg) {
145
+ const w = new BufferWriter();
146
+ const dgType = dg.datagramType;
147
+ w.writeVarInt(BigInt(dgType));
148
+ w.writeVarInt(dg.trackAlias);
149
+ w.writeVarInt(dg.groupId);
150
+ const objectIdAbsent = (dgType & 4) !== 0;
151
+ const isStatus = (dgType & 32) !== 0;
152
+ const defaultPriority = (dgType & 8) !== 0;
153
+ const propertiesPresent = (dgType & 1) !== 0;
154
+ if (!objectIdAbsent) {
155
+ w.writeVarInt(dg.objectId);
156
+ }
157
+ if (!defaultPriority) {
158
+ w.writeUint8(dg.publisherPriority);
159
+ }
160
+ if (propertiesPresent) {
161
+ if (dg.objectProperties && Object.keys(dg.objectProperties).length > 0) {
162
+ const tmpW = new BufferWriter(32);
163
+ encodeObjectProperties(dg.objectProperties, tmpW);
164
+ const raw = tmpW.finish();
165
+ w.writeVarInt(BigInt(raw.byteLength));
166
+ w.writeBytes(raw);
167
+ } else {
168
+ w.writeVarInt(0n);
169
+ }
170
+ }
171
+ if (isStatus) {
172
+ w.writeVarInt(dg.objectStatus ?? 0n);
173
+ } else {
174
+ w.writeBytes(dg.payload);
175
+ }
176
+ return w.finish();
177
+ }
178
+ function encodeFetchStream(stream) {
179
+ const w = new BufferWriter();
180
+ w.writeVarInt(FETCH_STREAM_TYPE);
181
+ w.writeVarInt(stream.requestId);
182
+ for (const obj of stream.objects) {
183
+ w.writeVarInt(BigInt(obj.serializationFlags));
184
+ const flags = obj.serializationFlags;
185
+ if (flags >= 128) {
186
+ w.writeVarInt(obj.groupId);
187
+ w.writeVarInt(obj.objectId);
188
+ w.writeVarInt(BigInt(obj.payloadLength));
189
+ } else if (flags & 64) {
190
+ if (flags & 8) w.writeVarInt(obj.groupId);
191
+ if (flags & 4) w.writeVarInt(obj.objectId);
192
+ if (flags & 16) w.writeUint8(obj.publisherPriority);
193
+ if (flags & 32) {
194
+ if (obj.objectProperties && Object.keys(obj.objectProperties).length > 0) {
195
+ const tmpW = new BufferWriter(32);
196
+ encodeObjectProperties(obj.objectProperties, tmpW);
197
+ const raw = tmpW.finish();
198
+ w.writeVarInt(BigInt(raw.byteLength));
199
+ w.writeBytes(raw);
200
+ } else {
201
+ w.writeVarInt(0n);
202
+ }
203
+ }
204
+ w.writeVarInt(BigInt(obj.payloadLength));
205
+ if (obj.payloadLength > 0) {
206
+ w.writeBytes(obj.payload);
207
+ }
208
+ } else {
209
+ if (flags & 8) w.writeVarInt(obj.groupId);
210
+ const subgroupEncoding = flags & 3;
211
+ if (subgroupEncoding === 3) w.writeVarInt(obj.subgroupId);
212
+ if (flags & 4) w.writeVarInt(obj.objectId);
213
+ if (flags & 16) w.writeUint8(obj.publisherPriority);
214
+ if (flags & 32) {
215
+ if (obj.objectProperties && Object.keys(obj.objectProperties).length > 0) {
216
+ const tmpW = new BufferWriter(32);
217
+ encodeObjectProperties(obj.objectProperties, tmpW);
218
+ const raw = tmpW.finish();
219
+ w.writeVarInt(BigInt(raw.byteLength));
220
+ w.writeBytes(raw);
221
+ } else {
222
+ w.writeVarInt(0n);
223
+ }
224
+ }
225
+ w.writeVarInt(BigInt(obj.payloadLength));
226
+ if (obj.payloadLength > 0) {
227
+ w.writeBytes(obj.payload);
228
+ }
229
+ }
230
+ }
231
+ return w.finish();
232
+ }
233
+ function decodeSubgroupStream(bytes) {
234
+ try {
235
+ const r = new BufferReader(bytes);
236
+ const streamType = Number(r.readVarInt());
237
+ if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61) || (streamType & 6) === 6) {
238
+ return {
239
+ ok: false,
240
+ error: new DecodeError(
241
+ "CONSTRAINT_VIOLATION",
242
+ `Expected subgroup stream type 0x10-0x15/0x18-0x1D/0x30-0x35/0x38-0x3D, got 0x${streamType.toString(16)}`,
243
+ 0
244
+ )
245
+ };
246
+ }
247
+ const propertiesPresent = (streamType & 1) !== 0;
248
+ const hasSubgroupField = (streamType & 4) !== 0;
249
+ const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
250
+ const hasPriority = streamType < 48;
251
+ const endOfGroup = (streamType & 8) !== 0;
252
+ const trackAlias = r.readVarInt();
253
+ const groupId = r.readVarInt();
254
+ let subgroupId = 0n;
255
+ if (hasSubgroupField) {
256
+ subgroupId = r.readVarInt();
257
+ }
258
+ let publisherPriority = 128;
259
+ if (hasPriority) {
260
+ publisherPriority = r.readUint8();
261
+ }
262
+ const objects = [];
263
+ let prevObjectId = -1n;
264
+ let firstObject = true;
265
+ while (r.remaining > 0) {
266
+ const byteOffset = r.offset;
267
+ const delta = r.readVarInt();
268
+ let objectId;
269
+ if (firstObject) {
270
+ objectId = delta;
271
+ if (subgroupIsFirstObjId && firstObject) {
272
+ subgroupId = objectId;
273
+ }
274
+ firstObject = false;
275
+ } else {
276
+ objectId = prevObjectId + 1n + delta;
277
+ }
278
+ const extensionData = new Uint8Array(0);
279
+ let objectProperties;
280
+ if (propertiesPresent) {
281
+ const propsLen = Number(r.readVarInt());
282
+ if (propsLen > 0) {
283
+ objectProperties = decodeObjectProperties(r, propsLen);
284
+ }
285
+ }
286
+ const payloadLength = Number(r.readVarInt());
287
+ let payload;
288
+ let status;
289
+ let payloadByteOffset;
290
+ if (payloadLength === 0) {
291
+ status = r.readVarInt();
292
+ payloadByteOffset = r.offset;
293
+ payload = new Uint8Array(0);
294
+ } else {
295
+ payloadByteOffset = r.offset;
296
+ payload = r.readBytesView(payloadLength);
297
+ }
298
+ const obj = {
299
+ type: "object",
300
+ byteOffset,
301
+ payloadByteOffset,
302
+ objectId,
303
+ payloadLength,
304
+ payload,
305
+ extensionData
306
+ };
307
+ if (status !== void 0) obj.status = status;
308
+ if (objectProperties !== void 0)
309
+ obj.objectProperties = objectProperties;
310
+ objects.push(obj);
311
+ prevObjectId = objectId;
312
+ }
313
+ const result = {
314
+ type: "subgroup",
315
+ headerType: streamType,
316
+ trackAlias,
317
+ groupId,
318
+ subgroupId,
319
+ publisherPriority,
320
+ objects
321
+ };
322
+ if (endOfGroup) result.endOfGroup = true;
323
+ return {
324
+ ok: true,
325
+ value: result,
326
+ bytesRead: r.offset
327
+ };
328
+ } catch (e) {
329
+ if (e instanceof DecodeError) return { ok: false, error: e };
330
+ throw e;
331
+ }
332
+ }
333
+ function decodeDatagram(bytes) {
334
+ try {
335
+ const r = new BufferReader(bytes);
336
+ const dgType = Number(r.readVarInt());
337
+ const objectIdAbsent = (dgType & 4) !== 0;
338
+ const endOfGroup = (dgType & 2) !== 0;
339
+ const isStatus = (dgType & 32) !== 0;
340
+ const defaultPriority = (dgType & 8) !== 0;
341
+ const propertiesPresent = (dgType & 1) !== 0;
342
+ const trackAlias = r.readVarInt();
343
+ const groupId = r.readVarInt();
344
+ let objectId = 0n;
345
+ if (!objectIdAbsent) {
346
+ objectId = r.readVarInt();
347
+ }
348
+ let publisherPriority = 128;
349
+ if (!defaultPriority) {
350
+ publisherPriority = r.readUint8();
351
+ }
352
+ let objectProperties;
353
+ if (propertiesPresent) {
354
+ const propsLen = Number(r.readVarInt());
355
+ if (propsLen > 0) {
356
+ objectProperties = decodeObjectProperties(r, propsLen);
357
+ }
358
+ }
359
+ let objectStatus;
360
+ let payload;
361
+ if (isStatus) {
362
+ objectStatus = r.readVarInt();
363
+ payload = new Uint8Array(0);
364
+ } else {
365
+ payload = r.readBytesView(r.remaining);
366
+ }
367
+ const payloadLength = payload.byteLength;
368
+ const result = {
369
+ type: "datagram",
370
+ datagramType: dgType,
371
+ trackAlias,
372
+ groupId,
373
+ objectId,
374
+ publisherPriority,
375
+ payloadLength,
376
+ payload
377
+ };
378
+ if (endOfGroup) result.endOfGroup = true;
379
+ if (objectStatus !== void 0)
380
+ result.objectStatus = objectStatus;
381
+ if (objectProperties !== void 0)
382
+ result.objectProperties = objectProperties;
383
+ return { ok: true, value: result, bytesRead: r.offset };
384
+ } catch (e) {
385
+ if (e instanceof DecodeError) return { ok: false, error: e };
386
+ throw e;
387
+ }
388
+ }
389
+ function decodeFetchStream(bytes) {
390
+ try {
391
+ const r = new BufferReader(bytes);
392
+ const streamType = r.readVarInt();
393
+ if (streamType !== FETCH_STREAM_TYPE) {
394
+ return {
395
+ ok: false,
396
+ error: new DecodeError(
397
+ "CONSTRAINT_VIOLATION",
398
+ `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
399
+ 0
400
+ )
401
+ };
402
+ }
403
+ const requestId = r.readVarInt();
404
+ const objects = [];
405
+ let prevGroupId = 0n;
406
+ let prevSubgroupId = 0n;
407
+ let prevObjectId = 0n;
408
+ let prevPriority = 128;
409
+ let first = true;
410
+ while (r.remaining > 0) {
411
+ const byteOffset = r.offset;
412
+ const flags = Number(r.readVarInt());
413
+ let groupId = prevGroupId;
414
+ let subgroupId = prevSubgroupId;
415
+ let objectId = prevObjectId + 1n;
416
+ let payloadLength;
417
+ let payload;
418
+ let payloadByteOffset;
419
+ const extensionData = new Uint8Array(0);
420
+ if (flags >= 128) {
421
+ if (flags !== 140 && flags !== 268) {
422
+ return {
423
+ ok: false,
424
+ error: new DecodeError(
425
+ "CONSTRAINT_VIOLATION",
426
+ `Unknown serialization flags value: 0x${flags.toString(16)}`,
427
+ r.offset
428
+ )
429
+ };
430
+ }
431
+ groupId = r.readVarInt();
432
+ objectId = r.readVarInt();
433
+ payloadLength = Number(r.readVarInt());
434
+ payloadByteOffset = r.offset;
435
+ payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
436
+ } else if (flags & 64) {
437
+ const objectIdPresent = (flags & 4) !== 0;
438
+ const groupIdPresent = (flags & 8) !== 0;
439
+ const priorityPresent = (flags & 16) !== 0;
440
+ const propsPresent = (flags & 32) !== 0;
441
+ if (groupIdPresent) {
442
+ groupId = r.readVarInt();
443
+ }
444
+ if (objectIdPresent) {
445
+ objectId = r.readVarInt();
446
+ }
447
+ if (priorityPresent) {
448
+ prevPriority = r.readUint8();
449
+ }
450
+ let objectProperties;
451
+ if (propsPresent) {
452
+ const propsLen = Number(r.readVarInt());
453
+ if (propsLen > 0) {
454
+ objectProperties = decodeObjectProperties(r, propsLen);
455
+ }
456
+ }
457
+ payloadLength = Number(r.readVarInt());
458
+ payloadByteOffset = r.offset;
459
+ payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
460
+ const obj2 = {
461
+ type: "object",
462
+ byteOffset,
463
+ payloadByteOffset,
464
+ serializationFlags: flags,
465
+ groupId,
466
+ subgroupId: 0n,
467
+ objectId,
468
+ publisherPriority: prevPriority,
469
+ payloadLength,
470
+ payload,
471
+ extensionData
472
+ };
473
+ if (objectProperties)
474
+ obj2.objectProperties = objectProperties;
475
+ objects.push(obj2);
476
+ prevGroupId = groupId;
477
+ prevObjectId = objectId;
478
+ first = false;
479
+ continue;
480
+ } else {
481
+ const subgroupEncoding = flags & 3;
482
+ const objectIdPresent = (flags & 4) !== 0;
483
+ const groupIdPresent = (flags & 8) !== 0;
484
+ const priorityPresent = (flags & 16) !== 0;
485
+ const propsPresent = (flags & 32) !== 0;
486
+ if (groupIdPresent) {
487
+ groupId = r.readVarInt();
488
+ } else if (first) {
489
+ return {
490
+ ok: false,
491
+ error: new DecodeError(
492
+ "CONSTRAINT_VIOLATION",
493
+ "First fetch object must include groupId",
494
+ r.offset
495
+ )
496
+ };
497
+ }
498
+ if (subgroupEncoding === 0) {
499
+ subgroupId = 0n;
500
+ } else if (subgroupEncoding === 1) {
501
+ if (first) {
502
+ return {
503
+ ok: false,
504
+ error: new DecodeError(
505
+ "CONSTRAINT_VIOLATION",
506
+ "First fetch object cannot reference prior subgroupId",
507
+ r.offset
508
+ )
509
+ };
510
+ }
511
+ subgroupId = prevSubgroupId;
512
+ } else if (subgroupEncoding === 2) {
513
+ if (first) {
514
+ return {
515
+ ok: false,
516
+ error: new DecodeError(
517
+ "CONSTRAINT_VIOLATION",
518
+ "First fetch object cannot reference prior subgroupId",
519
+ r.offset
520
+ )
521
+ };
522
+ }
523
+ subgroupId = prevSubgroupId + 1n;
524
+ } else if (subgroupEncoding === 3) {
525
+ subgroupId = r.readVarInt();
526
+ }
527
+ if (objectIdPresent) {
528
+ objectId = r.readVarInt();
529
+ } else if (first) {
530
+ return {
531
+ ok: false,
532
+ error: new DecodeError(
533
+ "CONSTRAINT_VIOLATION",
534
+ "First fetch object must include objectId",
535
+ r.offset
536
+ )
537
+ };
538
+ }
539
+ if (priorityPresent) {
540
+ prevPriority = r.readUint8();
541
+ }
542
+ let objectProperties;
543
+ if (propsPresent) {
544
+ const propsLen = Number(r.readVarInt());
545
+ if (propsLen > 0) {
546
+ objectProperties = decodeObjectProperties(r, propsLen);
547
+ }
548
+ }
549
+ payloadLength = Number(r.readVarInt());
550
+ payloadByteOffset = r.offset;
551
+ payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
552
+ if (objectProperties) {
553
+ const obj2 = {
554
+ type: "object",
555
+ byteOffset,
556
+ payloadByteOffset,
557
+ serializationFlags: flags,
558
+ groupId,
559
+ subgroupId,
560
+ objectId,
561
+ publisherPriority: prevPriority,
562
+ payloadLength,
563
+ payload,
564
+ extensionData
565
+ };
566
+ obj2.objectProperties = objectProperties;
567
+ objects.push(obj2);
568
+ prevGroupId = groupId;
569
+ prevSubgroupId = subgroupId;
570
+ prevObjectId = objectId;
571
+ first = false;
572
+ continue;
573
+ }
574
+ }
575
+ const obj = {
576
+ type: "object",
577
+ byteOffset,
578
+ payloadByteOffset,
579
+ serializationFlags: flags,
580
+ groupId,
581
+ subgroupId,
582
+ objectId,
583
+ publisherPriority: prevPriority,
584
+ payloadLength,
585
+ payload,
586
+ extensionData
587
+ };
588
+ objects.push(obj);
589
+ prevGroupId = groupId;
590
+ prevSubgroupId = subgroupId;
591
+ prevObjectId = objectId;
592
+ first = false;
593
+ }
594
+ return {
595
+ ok: true,
596
+ value: { type: "fetch", requestId, objects },
597
+ bytesRead: r.offset
598
+ };
599
+ } catch (e) {
600
+ if (e instanceof DecodeError) return { ok: false, error: e };
601
+ throw e;
602
+ }
603
+ }
604
+ function decodeDataStream(streamType, bytes) {
605
+ switch (streamType) {
606
+ case "subgroup":
607
+ return decodeSubgroupStream(bytes);
608
+ case "datagram":
609
+ return decodeDatagram(bytes);
610
+ case "fetch":
611
+ return decodeFetchStream(bytes);
612
+ default: {
613
+ const _exhaustive = streamType;
614
+ throw new Error(`Unknown stream type: ${_exhaustive}`);
615
+ }
616
+ }
617
+ }
618
+ function createSubgroupStreamDecoder() {
619
+ let buffer = new Uint8Array(0);
620
+ let offset = 0;
621
+ let headerEmitted = false;
622
+ let prevObjectId = -1n;
623
+ let firstObject = true;
624
+ let _subgroupIsFirstObjId = false;
625
+ let _extensionsPresent = false;
626
+ return new TransformStream({
627
+ transform(chunk, controller) {
628
+ if (offset > 0) {
629
+ buffer = buffer.subarray(offset);
630
+ offset = 0;
631
+ }
632
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
633
+ newBuffer.set(buffer, 0);
634
+ newBuffer.set(chunk, buffer.length);
635
+ buffer = newBuffer;
636
+ if (!headerEmitted) {
637
+ try {
638
+ const r = new BufferReader(buffer.subarray(offset));
639
+ const streamType = Number(r.readVarInt());
640
+ if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
641
+ controller.error(
642
+ new DecodeError(
643
+ "CONSTRAINT_VIOLATION",
644
+ `Expected subgroup stream type, got 0x${streamType.toString(16)}`,
645
+ 0
646
+ )
647
+ );
648
+ return;
649
+ }
650
+ _extensionsPresent = (streamType & 1) !== 0;
651
+ const hasSubgroupField = (streamType & 4) !== 0;
652
+ _subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
653
+ const hasPriority = streamType < 48;
654
+ const trackAlias = r.readVarInt();
655
+ const groupId = r.readVarInt();
656
+ let subgroupId = 0n;
657
+ if (hasSubgroupField) {
658
+ subgroupId = r.readVarInt();
659
+ }
660
+ let publisherPriority = 128;
661
+ if (hasPriority) {
662
+ publisherPriority = r.readUint8();
663
+ }
664
+ controller.enqueue({
665
+ type: "subgroup_header",
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") {
675
+ return;
676
+ }
677
+ controller.error(e);
678
+ return;
679
+ }
680
+ }
681
+ while (offset < buffer.length) {
682
+ try {
683
+ const r = new BufferReader(buffer.subarray(offset));
684
+ const delta = r.readVarInt();
685
+ let objectId;
686
+ if (firstObject) {
687
+ objectId = delta;
688
+ firstObject = false;
689
+ } else {
690
+ objectId = prevObjectId + 1n + delta;
691
+ }
692
+ let extensionData = new Uint8Array(0);
693
+ if (_extensionsPresent) {
694
+ const extLen = Number(r.readVarInt());
695
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
696
+ }
697
+ const payloadLength = Number(r.readVarInt());
698
+ const payloadByteOffset = r.offset;
699
+ const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
700
+ controller.enqueue({
701
+ type: "object",
702
+ objectId,
703
+ payloadLength,
704
+ payload,
705
+ extensionData,
706
+ byteOffset: 0,
707
+ payloadByteOffset
708
+ });
709
+ offset += r.offset;
710
+ prevObjectId = objectId;
711
+ } catch (e) {
712
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
713
+ break;
714
+ }
715
+ controller.error(e);
716
+ return;
717
+ }
718
+ }
719
+ },
720
+ flush(controller) {
721
+ if (offset < buffer.length) {
722
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
723
+ }
724
+ }
725
+ });
61
726
  }
62
- function hexToBytes(hex) {
63
- const bytes = new Uint8Array(hex.length / 2);
64
- for (let i = 0; i < hex.length; i += 2) {
65
- bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
66
- }
67
- return bytes;
727
+ function createFetchStreamDecoder() {
728
+ let buffer = new Uint8Array(0);
729
+ let offset = 0;
730
+ let headerEmitted = false;
731
+ return new TransformStream({
732
+ transform(chunk, controller) {
733
+ if (offset > 0) {
734
+ buffer = buffer.subarray(offset);
735
+ offset = 0;
736
+ }
737
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
738
+ newBuffer.set(buffer, 0);
739
+ newBuffer.set(chunk, buffer.length);
740
+ buffer = newBuffer;
741
+ if (!headerEmitted) {
742
+ try {
743
+ const r = new BufferReader(buffer.subarray(offset));
744
+ const streamType = r.readVarInt();
745
+ if (streamType !== FETCH_STREAM_TYPE) {
746
+ controller.error(
747
+ new DecodeError(
748
+ "CONSTRAINT_VIOLATION",
749
+ `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
750
+ 0
751
+ )
752
+ );
753
+ return;
754
+ }
755
+ const requestId = r.readVarInt();
756
+ controller.enqueue({ type: "fetch_header", requestId });
757
+ headerEmitted = true;
758
+ offset += r.offset;
759
+ } catch (e) {
760
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
761
+ return;
762
+ }
763
+ controller.error(e);
764
+ return;
765
+ }
766
+ }
767
+ while (offset < buffer.length) {
768
+ try {
769
+ const r = new BufferReader(buffer.subarray(offset));
770
+ const flags = Number(r.readVarInt());
771
+ const objectIdPresent = (flags & 4) !== 0;
772
+ const groupIdPresent = (flags & 8) !== 0;
773
+ const priorityPresent = (flags & 16) !== 0;
774
+ const extensionsPresent = (flags & 32) !== 0;
775
+ const subgroupEncoding = flags & 3;
776
+ if (groupIdPresent) r.readVarInt();
777
+ if (subgroupEncoding === 3) r.readVarInt();
778
+ let objectId = 0n;
779
+ if (objectIdPresent) objectId = r.readVarInt();
780
+ if (priorityPresent) r.readUint8();
781
+ let extensionData = new Uint8Array(0);
782
+ if (extensionsPresent) {
783
+ const extLen = Number(r.readVarInt());
784
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
785
+ }
786
+ const payloadLength = Number(r.readVarInt());
787
+ const payloadByteOffset = r.offset;
788
+ const payload = payloadLength > 0 ? r.readBytesView(payloadLength) : new Uint8Array(0);
789
+ controller.enqueue({
790
+ type: "object",
791
+ objectId,
792
+ payloadLength,
793
+ payload,
794
+ extensionData,
795
+ byteOffset: 0,
796
+ payloadByteOffset
797
+ });
798
+ offset += r.offset;
799
+ } catch (e) {
800
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
801
+ break;
802
+ }
803
+ controller.error(e);
804
+ return;
805
+ }
806
+ }
807
+ },
808
+ flush(controller) {
809
+ if (offset < buffer.length) {
810
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
811
+ }
812
+ }
813
+ });
814
+ }
815
+ function createDataStreamDecoder() {
816
+ let buffer = new Uint8Array(0);
817
+ let offset = 0;
818
+ let inner = null;
819
+ return new TransformStream({
820
+ transform(chunk, controller) {
821
+ if (offset > 0) {
822
+ buffer = buffer.subarray(offset);
823
+ offset = 0;
824
+ }
825
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
826
+ newBuffer.set(buffer, 0);
827
+ newBuffer.set(chunk, buffer.length);
828
+ buffer = newBuffer;
829
+ if (inner === null) {
830
+ if (offset >= buffer.length) return;
831
+ const firstByte = buffer[offset];
832
+ if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
833
+ const decoder = createSubgroupStreamDecoder();
834
+ inner = decoder;
835
+ } else if (firstByte === 5) {
836
+ const decoder = createFetchStreamDecoder();
837
+ inner = decoder;
838
+ } else {
839
+ controller.error(
840
+ new DecodeError(
841
+ "CONSTRAINT_VIOLATION",
842
+ `Unknown data stream type: 0x${firstByte.toString(16)}`,
843
+ 0
844
+ )
845
+ );
846
+ return;
847
+ }
848
+ }
849
+ },
850
+ flush(controller) {
851
+ if (offset >= buffer.length) return;
852
+ const view = buffer.subarray(offset);
853
+ const firstByte = view[0];
854
+ let result;
855
+ if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
856
+ result = decodeSubgroupStream(view);
857
+ } else if (firstByte === 5) {
858
+ result = decodeFetchStream(view);
859
+ } else {
860
+ controller.error(
861
+ new DecodeError(
862
+ "CONSTRAINT_VIOLATION",
863
+ `Unknown data stream type: 0x${firstByte.toString(16)}`,
864
+ 0
865
+ )
866
+ );
867
+ return;
868
+ }
869
+ if (!result.ok) {
870
+ controller.error(result.error);
871
+ return;
872
+ }
873
+ const stream = result.value;
874
+ if (stream.type === "subgroup") {
875
+ controller.enqueue({
876
+ type: "subgroup_header",
877
+ trackAlias: stream.trackAlias,
878
+ groupId: stream.groupId,
879
+ subgroupId: stream.subgroupId,
880
+ publisherPriority: stream.publisherPriority
881
+ });
882
+ for (const obj of stream.objects) {
883
+ controller.enqueue(obj);
884
+ }
885
+ } else if (stream.type === "fetch") {
886
+ controller.enqueue({
887
+ type: "fetch_header",
888
+ requestId: stream.requestId
889
+ });
890
+ for (const obj of stream.objects) {
891
+ controller.enqueue(obj);
892
+ }
893
+ }
894
+ }
895
+ });
68
896
  }
897
+
898
+ // src/drafts/draft17/codec.ts
899
+ var textEncoder = /* @__PURE__ */ new TextEncoder();
900
+ var textDecoder = /* @__PURE__ */ new TextDecoder();
69
901
  function encodeSetupOptions(opts, writer) {
70
902
  const entries = [];
71
903
  if (opts.path !== void 0) {
72
904
  entries.push({
73
905
  type: SETUP_OPT_PATH,
74
906
  encode: (w) => {
75
- const encoded = new TextEncoder().encode(opts.path);
907
+ const encoded = textEncoder.encode(opts.path);
76
908
  w.writeVarInt(BigInt(encoded.byteLength));
77
909
  w.writeBytes(encoded);
78
910
  }
79
911
  });
80
912
  }
913
+ if (opts.authorization_token !== void 0) {
914
+ entries.push({
915
+ type: SETUP_OPT_AUTHORIZATION_TOKEN,
916
+ encode: (w) => {
917
+ const tmpW = new BufferWriter(64);
918
+ encodeAuthorizationToken(opts.authorization_token, tmpW);
919
+ const raw = tmpW.finish();
920
+ w.writeVarInt(BigInt(raw.byteLength));
921
+ w.writeBytes(raw);
922
+ }
923
+ });
924
+ }
81
925
  if (opts.max_auth_token_cache_size !== void 0) {
82
926
  entries.push({
83
927
  type: SETUP_OPT_MAX_AUTH_TOKEN_CACHE_SIZE,
@@ -88,7 +932,7 @@ function encodeSetupOptions(opts, writer) {
88
932
  entries.push({
89
933
  type: SETUP_OPT_AUTHORITY,
90
934
  encode: (w) => {
91
- const encoded = new TextEncoder().encode(opts.authority);
935
+ const encoded = textEncoder.encode(opts.authority);
92
936
  w.writeVarInt(BigInt(encoded.byteLength));
93
937
  w.writeBytes(encoded);
94
938
  }
@@ -98,7 +942,7 @@ function encodeSetupOptions(opts, writer) {
98
942
  entries.push({
99
943
  type: SETUP_OPT_MOQT_IMPLEMENTATION,
100
944
  encode: (w) => {
101
- const encoded = new TextEncoder().encode(opts.moqt_implementation);
945
+ const encoded = textEncoder.encode(opts.moqt_implementation);
102
946
  w.writeVarInt(BigInt(encoded.byteLength));
103
947
  w.writeBytes(encoded);
104
948
  }
@@ -157,28 +1001,96 @@ function decodeSetupOptions(reader, payloadEnd) {
157
1001
  const length = Number(reader.readVarInt());
158
1002
  const bytes = reader.readBytes(length);
159
1003
  if (optType === SETUP_OPT_PATH) {
160
- result.path = new TextDecoder().decode(bytes);
1004
+ result.path = textDecoder.decode(bytes);
1005
+ } else if (optType === SETUP_OPT_AUTHORIZATION_TOKEN) {
1006
+ result.authorization_token = decodeAuthorizationToken(new BufferReader(bytes));
161
1007
  } else if (optType === SETUP_OPT_AUTHORITY) {
162
- result.authority = new TextDecoder().decode(bytes);
1008
+ result.authority = textDecoder.decode(bytes);
163
1009
  } else if (optType === SETUP_OPT_MOQT_IMPLEMENTATION) {
164
- result.moqt_implementation = new TextDecoder().decode(bytes);
1010
+ result.moqt_implementation = textDecoder.decode(bytes);
165
1011
  } else {
166
- unknown.push({ id: `0x${optType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
1012
+ unknown.push({
1013
+ id: `0x${optType.toString(16)}`,
1014
+ length,
1015
+ raw_hex: bytesToHex(bytes)
1016
+ });
167
1017
  }
168
1018
  }
169
1019
  }
170
1020
  if (unknown.length > 0) result.unknown = unknown;
171
1021
  return result;
172
1022
  }
1023
+ function encodeAuthorizationToken(token, w) {
1024
+ const aliasType = Number(token.alias_type);
1025
+ w.writeVarInt(token.alias_type);
1026
+ if (aliasType === 0 || aliasType === 1 || aliasType === 2) {
1027
+ w.writeVarInt(token.token_alias ?? 0n);
1028
+ }
1029
+ if (aliasType === 1 || aliasType === 3) {
1030
+ w.writeVarInt(token.token_type ?? 0n);
1031
+ const encoded = textEncoder.encode(token.token_value ?? "");
1032
+ w.writeVarInt(BigInt(encoded.byteLength));
1033
+ w.writeBytes(encoded);
1034
+ }
1035
+ }
1036
+ function decodeAuthorizationToken(r) {
1037
+ const alias_type = r.readVarInt();
1038
+ const aliasType = Number(alias_type);
1039
+ const result = { alias_type };
1040
+ if (aliasType === 0 || aliasType === 1 || aliasType === 2) {
1041
+ ;
1042
+ result.token_alias = r.readVarInt();
1043
+ }
1044
+ if (aliasType === 1 || aliasType === 3) {
1045
+ ;
1046
+ result.token_type = r.readVarInt();
1047
+ const len = Number(r.readVarInt());
1048
+ const bytes = r.readBytes(len);
1049
+ result.token_value = textDecoder.decode(bytes);
1050
+ }
1051
+ return result;
1052
+ }
1053
+ var PARAM_DELIVERY_TIMEOUT = 0x02n;
1054
+ var PARAM_AUTHORIZATION_TOKEN = 0x03n;
1055
+ var PARAM_RENDEZVOUS_TIMEOUT = 0x04n;
173
1056
  var PARAM_EXPIRES = 0x08n;
174
1057
  var PARAM_LARGEST_OBJECT = 0x09n;
1058
+ var PARAM_FORWARD = 0x10n;
175
1059
  var PARAM_SUBSCRIBER_PRIORITY = 0x20n;
176
1060
  var PARAM_SUBSCRIPTION_FILTER = 0x21n;
177
1061
  var PARAM_GROUP_ORDER = 0x22n;
1062
+ var PARAM_NEW_GROUP_REQUEST = 0x32n;
178
1063
  function encodeParams(params, writer) {
179
1064
  const entries = [];
1065
+ if (params.delivery_timeout !== void 0) {
1066
+ entries.push({
1067
+ type: PARAM_DELIVERY_TIMEOUT,
1068
+ encode: (w) => w.writeVarInt(params.delivery_timeout)
1069
+ });
1070
+ }
1071
+ if (params.authorization_token !== void 0) {
1072
+ entries.push({
1073
+ type: PARAM_AUTHORIZATION_TOKEN,
1074
+ encode: (w) => {
1075
+ const tmpW = new BufferWriter(64);
1076
+ encodeAuthorizationToken(params.authorization_token, tmpW);
1077
+ const raw = tmpW.finish();
1078
+ w.writeVarInt(BigInt(raw.byteLength));
1079
+ w.writeBytes(raw);
1080
+ }
1081
+ });
1082
+ }
1083
+ if (params.rendezvous_timeout !== void 0) {
1084
+ entries.push({
1085
+ type: PARAM_RENDEZVOUS_TIMEOUT,
1086
+ encode: (w) => w.writeVarInt(params.rendezvous_timeout)
1087
+ });
1088
+ }
180
1089
  if (params.expires !== void 0) {
181
- entries.push({ type: PARAM_EXPIRES, encode: (w) => w.writeVarInt(params.expires) });
1090
+ entries.push({
1091
+ type: PARAM_EXPIRES,
1092
+ encode: (w) => w.writeVarInt(params.expires)
1093
+ });
182
1094
  }
183
1095
  if (params.largest_object !== void 0) {
184
1096
  entries.push({
@@ -189,6 +1101,12 @@ function encodeParams(params, writer) {
189
1101
  }
190
1102
  });
191
1103
  }
1104
+ if (params.forward !== void 0) {
1105
+ entries.push({
1106
+ type: PARAM_FORWARD,
1107
+ encode: (w) => w.writeVarInt(params.forward)
1108
+ });
1109
+ }
192
1110
  if (params.subscriber_priority !== void 0) {
193
1111
  entries.push({
194
1112
  type: PARAM_SUBSCRIBER_PRIORITY,
@@ -221,6 +1139,12 @@ function encodeParams(params, writer) {
221
1139
  encode: (w) => w.writeUint8(Number(params.group_order))
222
1140
  });
223
1141
  }
1142
+ if (params.new_group_request !== void 0) {
1143
+ entries.push({
1144
+ type: PARAM_NEW_GROUP_REQUEST,
1145
+ encode: (w) => w.writeVarInt(params.new_group_request)
1146
+ });
1147
+ }
224
1148
  if (params.unknown) {
225
1149
  for (const u of params.unknown) {
226
1150
  const id = BigInt(u.id);
@@ -251,7 +1175,15 @@ function decodeParams(reader) {
251
1175
  const delta = reader.readVarInt();
252
1176
  const paramType = prevType + delta;
253
1177
  prevType = paramType;
254
- if (paramType === PARAM_EXPIRES) {
1178
+ if (paramType === PARAM_DELIVERY_TIMEOUT) {
1179
+ result.delivery_timeout = reader.readVarInt();
1180
+ } else if (paramType === PARAM_AUTHORIZATION_TOKEN) {
1181
+ const length = Number(reader.readVarInt());
1182
+ const bytes = reader.readBytes(length);
1183
+ result.authorization_token = decodeAuthorizationToken(new BufferReader(bytes));
1184
+ } else if (paramType === PARAM_RENDEZVOUS_TIMEOUT) {
1185
+ result.rendezvous_timeout = reader.readVarInt();
1186
+ } else if (paramType === PARAM_EXPIRES) {
255
1187
  result.expires = reader.readVarInt();
256
1188
  } else if (paramType === PARAM_LARGEST_OBJECT) {
257
1189
  const group = reader.readVarInt();
@@ -274,8 +1206,12 @@ function decodeParams(reader) {
274
1206
  const consumed = reader.offset - startOff;
275
1207
  if (consumed < length) reader.readBytes(length - consumed);
276
1208
  result.subscription_filter = filter;
1209
+ } else if (paramType === PARAM_FORWARD) {
1210
+ result.forward = reader.readVarInt();
277
1211
  } else if (paramType === PARAM_GROUP_ORDER) {
278
1212
  result.group_order = BigInt(reader.readUint8());
1213
+ } else if (paramType === PARAM_NEW_GROUP_REQUEST) {
1214
+ result.new_group_request = reader.readVarInt();
279
1215
  } else {
280
1216
  if (paramType % 2n === 0n) {
281
1217
  const value = reader.readVarInt();
@@ -290,29 +1226,89 @@ function decodeParams(reader) {
290
1226
  } else {
291
1227
  const length = Number(reader.readVarInt());
292
1228
  const bytes = reader.readBytes(length);
293
- unknown.push({ id: `0x${paramType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
1229
+ unknown.push({
1230
+ id: `0x${paramType.toString(16)}`,
1231
+ length,
1232
+ raw_hex: bytesToHex(bytes)
1233
+ });
294
1234
  }
295
1235
  }
296
1236
  }
297
1237
  if (unknown.length > 0) result.unknown = unknown;
298
1238
  return result;
299
1239
  }
1240
+ var TPROP_DELIVERY_TIMEOUT = 0x02n;
1241
+ var TPROP_MAX_CACHE_DURATION = 0x04n;
1242
+ var TPROP_IMMUTABLE_PROPERTIES = 0x0bn;
1243
+ var TPROP_DEFAULT_PUBLISHER_PRIORITY = 0x0en;
1244
+ var TPROP_DEFAULT_PUBLISHER_GROUP_ORDER = 0x22n;
1245
+ var TPROP_DYNAMIC_GROUPS = 0x30n;
300
1246
  function encodeTrackProperties(props, writer) {
301
- if (!props.unknown || props.unknown.length === 0) return;
302
- const entries = props.unknown.map((u) => ({ type: BigInt(u.id), raw: u }));
1247
+ const entries = [];
1248
+ if (props.delivery_timeout !== void 0) {
1249
+ entries.push({
1250
+ type: TPROP_DELIVERY_TIMEOUT,
1251
+ encode: (w) => w.writeVarInt(props.delivery_timeout)
1252
+ });
1253
+ }
1254
+ if (props.max_cache_duration !== void 0) {
1255
+ entries.push({
1256
+ type: TPROP_MAX_CACHE_DURATION,
1257
+ encode: (w) => w.writeVarInt(props.max_cache_duration)
1258
+ });
1259
+ }
1260
+ if (props.immutable_properties !== void 0) {
1261
+ entries.push({
1262
+ type: TPROP_IMMUTABLE_PROPERTIES,
1263
+ encode: (w) => {
1264
+ const raw = hexToBytes(props.immutable_properties);
1265
+ w.writeVarInt(BigInt(raw.byteLength));
1266
+ w.writeBytes(raw);
1267
+ }
1268
+ });
1269
+ }
1270
+ if (props.default_publisher_priority !== void 0) {
1271
+ entries.push({
1272
+ type: TPROP_DEFAULT_PUBLISHER_PRIORITY,
1273
+ encode: (w) => w.writeVarInt(props.default_publisher_priority)
1274
+ });
1275
+ }
1276
+ if (props.default_publisher_group_order !== void 0) {
1277
+ entries.push({
1278
+ type: TPROP_DEFAULT_PUBLISHER_GROUP_ORDER,
1279
+ encode: (w) => w.writeVarInt(props.default_publisher_group_order)
1280
+ });
1281
+ }
1282
+ if (props.dynamic_groups !== void 0) {
1283
+ entries.push({
1284
+ type: TPROP_DYNAMIC_GROUPS,
1285
+ encode: (w) => w.writeVarInt(props.dynamic_groups)
1286
+ });
1287
+ }
1288
+ if (props.unknown) {
1289
+ for (const u of props.unknown) {
1290
+ const id = BigInt(u.id);
1291
+ entries.push({
1292
+ type: id,
1293
+ encode: (w) => {
1294
+ if (id % 2n === 0n) {
1295
+ const raw = hexToBytes(u.raw_hex);
1296
+ const tmpReader = new BufferReader(raw);
1297
+ w.writeVarInt(tmpReader.readVarInt());
1298
+ } else {
1299
+ const raw = hexToBytes(u.raw_hex);
1300
+ w.writeVarInt(BigInt(raw.byteLength));
1301
+ w.writeBytes(raw);
1302
+ }
1303
+ }
1304
+ });
1305
+ }
1306
+ }
303
1307
  entries.sort((a, b) => a.type < b.type ? -1 : a.type > b.type ? 1 : 0);
304
1308
  let prevType = 0n;
305
1309
  for (const entry of entries) {
306
1310
  writer.writeVarInt(entry.type - prevType);
307
- if (entry.type % 2n === 0n) {
308
- const raw = hexToBytes(entry.raw.raw_hex);
309
- const tmpReader = new BufferReader(raw);
310
- writer.writeVarInt(tmpReader.readVarInt());
311
- } else {
312
- const raw = hexToBytes(entry.raw.raw_hex);
313
- writer.writeVarInt(BigInt(raw.byteLength));
314
- writer.writeBytes(raw);
315
- }
1311
+ entry.encode(writer);
316
1312
  prevType = entry.type;
317
1313
  }
318
1314
  }
@@ -326,18 +1322,38 @@ function decodeTrackProperties(reader, payloadEnd) {
326
1322
  prevType = propType;
327
1323
  if (propType % 2n === 0n) {
328
1324
  const value = reader.readVarInt();
329
- const tmpWriter = new BufferWriter(16);
330
- tmpWriter.writeVarInt(value);
331
- const raw = tmpWriter.finish();
332
- unknown.push({
333
- id: `0x${propType.toString(16)}`,
334
- length: raw.byteLength,
335
- raw_hex: bytesToHex(raw)
336
- });
1325
+ if (propType === TPROP_DELIVERY_TIMEOUT) {
1326
+ result.delivery_timeout = value;
1327
+ } else if (propType === TPROP_MAX_CACHE_DURATION) {
1328
+ result.max_cache_duration = value;
1329
+ } else if (propType === TPROP_DEFAULT_PUBLISHER_PRIORITY) {
1330
+ result.default_publisher_priority = value;
1331
+ } else if (propType === TPROP_DEFAULT_PUBLISHER_GROUP_ORDER) {
1332
+ result.default_publisher_group_order = value;
1333
+ } else if (propType === TPROP_DYNAMIC_GROUPS) {
1334
+ result.dynamic_groups = value;
1335
+ } else {
1336
+ const tmpWriter = new BufferWriter(16);
1337
+ tmpWriter.writeVarInt(value);
1338
+ const raw = tmpWriter.finish();
1339
+ unknown.push({
1340
+ id: `0x${propType.toString(16)}`,
1341
+ length: raw.byteLength,
1342
+ raw_hex: bytesToHex(raw)
1343
+ });
1344
+ }
337
1345
  } else {
338
1346
  const length = Number(reader.readVarInt());
339
1347
  const bytes = reader.readBytes(length);
340
- unknown.push({ id: `0x${propType.toString(16)}`, length, raw_hex: bytesToHex(bytes) });
1348
+ if (propType === TPROP_IMMUTABLE_PROPERTIES) {
1349
+ result.immutable_properties = bytesToHex(bytes);
1350
+ } else {
1351
+ unknown.push({
1352
+ id: `0x${propType.toString(16)}`,
1353
+ length,
1354
+ raw_hex: bytesToHex(bytes)
1355
+ });
1356
+ }
341
1357
  }
342
1358
  }
343
1359
  if (unknown.length > 0) result.unknown = unknown;
@@ -476,7 +1492,12 @@ function decodeRequestUpdatePayload(r) {
476
1492
  const request_id = r.readVarInt();
477
1493
  const required_request_id_delta = r.readVarInt();
478
1494
  const parameters = decodeParams(r);
479
- return { type: "request_update", request_id, required_request_id_delta, parameters };
1495
+ return {
1496
+ type: "request_update",
1497
+ request_id,
1498
+ required_request_id_delta,
1499
+ parameters
1500
+ };
480
1501
  }
481
1502
  function decodePublishPayload(r, payloadEnd) {
482
1503
  const request_id = r.readVarInt();
@@ -565,7 +1586,14 @@ function decodeFetchPayload(r) {
565
1586
  const start_object = r.readVarInt();
566
1587
  const end_group = r.readVarInt();
567
1588
  const end_object = r.readVarInt();
568
- standalone = { track_namespace, track_name, start_group, start_object, end_group, end_object };
1589
+ standalone = {
1590
+ track_namespace,
1591
+ track_name,
1592
+ start_group,
1593
+ start_object,
1594
+ end_group,
1595
+ end_object
1596
+ };
569
1597
  } else {
570
1598
  const joining_request_id = r.readVarInt();
571
1599
  const joining_start = r.readVarInt();
@@ -588,7 +1616,14 @@ function decodeFetchOkPayload(r, payloadEnd) {
588
1616
  const end_object = r.readVarInt();
589
1617
  const parameters = decodeParams(r);
590
1618
  const track_properties = decodeTrackProperties(r, payloadEnd);
591
- return { type: "fetch_ok", end_of_track, end_group, end_object, parameters, track_properties };
1619
+ return {
1620
+ type: "fetch_ok",
1621
+ end_of_track,
1622
+ end_group,
1623
+ end_object,
1624
+ parameters,
1625
+ track_properties
1626
+ };
592
1627
  }
593
1628
  function decodeTrackStatusPayload(r) {
594
1629
  const request_id = r.readVarInt();
@@ -627,11 +1662,11 @@ function encodeMessage(message) {
627
1662
  }
628
1663
  const payloadWriter = new BufferWriter();
629
1664
  encodePayload(message, payloadWriter);
630
- const payload = payloadWriter.finish();
1665
+ const payload = payloadWriter.finishView();
631
1666
  if (payload.byteLength > 65535) {
632
1667
  throw new Error(`Payload too large for 16-bit length: ${payload.byteLength}`);
633
1668
  }
634
- const writer = new BufferWriter();
1669
+ const writer = new BufferWriter(payload.byteLength + 16);
635
1670
  writer.writeVarInt(typeId);
636
1671
  writer.writeUint8(payload.byteLength >> 8 & 255);
637
1672
  writer.writeUint8(payload.byteLength & 255);
@@ -732,357 +1767,37 @@ function decodeMessage(bytes) {
732
1767
  message = decodeGoAwayPayload(payloadReader);
733
1768
  } else {
734
1769
  return {
735
- ok: false,
736
- error: new DecodeError(
737
- "UNKNOWN_MESSAGE_TYPE",
738
- `Unknown message type ID: 0x${typeId.toString(16)}`,
739
- 0
740
- )
741
- };
742
- }
743
- return { ok: true, value: message, bytesRead: reader.offset };
744
- } catch (e) {
745
- if (e instanceof DecodeError) {
746
- return { ok: false, error: e };
747
- }
748
- throw e;
749
- }
750
- }
751
- var FETCH_STREAM_TYPE = 0x05n;
752
- function encodeSubgroupStream(stream) {
753
- const w = new BufferWriter();
754
- const streamType = stream.headerType;
755
- w.writeVarInt(BigInt(streamType));
756
- const hasSubgroupField = (streamType & 4) !== 0;
757
- const hasPriority = streamType < 48;
758
- w.writeVarInt(stream.trackAlias);
759
- w.writeVarInt(stream.groupId);
760
- if (hasSubgroupField) {
761
- w.writeVarInt(stream.subgroupId);
762
- }
763
- if (hasPriority) {
764
- w.writeUint8(stream.publisherPriority);
765
- }
766
- let prevObjectId = -1n;
767
- for (const obj of stream.objects) {
768
- const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
769
- w.writeVarInt(delta);
770
- w.writeVarInt(BigInt(obj.payloadLength));
771
- if (obj.payloadLength === 0) {
772
- w.writeVarInt(obj.status ?? 0n);
773
- } else {
774
- w.writeBytes(obj.payload);
775
- }
776
- prevObjectId = obj.objectId;
777
- }
778
- return w.finish();
779
- }
780
- function encodeDatagram(dg) {
781
- const w = new BufferWriter();
782
- const dgType = dg.datagramType;
783
- w.writeVarInt(BigInt(dgType));
784
- w.writeVarInt(dg.trackAlias);
785
- w.writeVarInt(dg.groupId);
786
- const objectIdAbsent = (dgType & 4) !== 0;
787
- const isStatus = (dgType & 32) !== 0;
788
- const defaultPriority = (dgType & 8) !== 0;
789
- if (!objectIdAbsent) {
790
- w.writeVarInt(dg.objectId);
791
- }
792
- if (!defaultPriority) {
793
- w.writeUint8(dg.publisherPriority);
794
- }
795
- if (isStatus) {
796
- w.writeVarInt(dg.objectStatus ?? 0n);
797
- } else {
798
- w.writeBytes(dg.payload);
799
- }
800
- return w.finish();
801
- }
802
- function encodeFetchStream(stream) {
803
- const w = new BufferWriter();
804
- w.writeVarInt(FETCH_STREAM_TYPE);
805
- w.writeVarInt(stream.requestId);
806
- for (const obj of stream.objects) {
807
- w.writeUint8(obj.serializationFlags);
808
- const flags = obj.serializationFlags;
809
- if (flags & 8) w.writeVarInt(obj.groupId);
810
- const subgroupEncoding = flags & 3;
811
- if (subgroupEncoding === 3) w.writeVarInt(obj.subgroupId);
812
- if (flags & 4) w.writeVarInt(obj.objectId);
813
- if (flags & 16) w.writeUint8(obj.publisherPriority);
814
- w.writeVarInt(BigInt(obj.payloadLength));
815
- if (obj.payloadLength === 0) {
816
- w.writeVarInt(obj.status ?? 0n);
817
- } else {
818
- w.writeBytes(obj.payload);
819
- }
820
- }
821
- return w.finish();
822
- }
823
- function decodeSubgroupStream(bytes) {
824
- try {
825
- const r = new BufferReader(bytes);
826
- const streamType = Number(r.readVarInt());
827
- if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
828
- return {
829
- ok: false,
830
- error: new DecodeError(
831
- "CONSTRAINT_VIOLATION",
832
- `Expected subgroup stream type 0x10-0x1D or 0x30-0x3D, got 0x${streamType.toString(16)}`,
833
- 0
834
- )
835
- };
836
- }
837
- const hasSubgroupField = (streamType & 4) !== 0;
838
- const subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
839
- const hasPriority = streamType < 48;
840
- const trackAlias = r.readVarInt();
841
- const groupId = r.readVarInt();
842
- let subgroupId = 0n;
843
- if (hasSubgroupField) {
844
- subgroupId = r.readVarInt();
845
- }
846
- let publisherPriority = 128;
847
- if (hasPriority) {
848
- publisherPriority = r.readUint8();
849
- }
850
- const objects = [];
851
- let prevObjectId = -1n;
852
- let firstObject = true;
853
- while (r.remaining > 0) {
854
- const delta = r.readVarInt();
855
- let objectId;
856
- if (firstObject) {
857
- objectId = delta;
858
- if (subgroupIsFirstObjId && firstObject) {
859
- subgroupId = objectId;
860
- }
861
- firstObject = false;
862
- } else {
863
- objectId = prevObjectId + 1n + delta;
864
- }
865
- const payloadLength = Number(r.readVarInt());
866
- let payload;
867
- let status;
868
- if (payloadLength === 0) {
869
- status = r.readVarInt();
870
- payload = new Uint8Array(0);
871
- } else {
872
- payload = r.readBytes(payloadLength);
873
- }
874
- const obj = { type: "object", objectId, payloadLength, payload };
875
- if (status !== void 0) obj.status = status;
876
- objects.push(obj);
877
- prevObjectId = objectId;
878
- }
879
- return {
880
- ok: true,
881
- value: {
882
- type: "subgroup",
883
- headerType: streamType,
884
- trackAlias,
885
- groupId,
886
- subgroupId,
887
- publisherPriority,
888
- objects
889
- },
890
- bytesRead: r.offset
891
- };
892
- } catch (e) {
893
- if (e instanceof DecodeError) return { ok: false, error: e };
894
- throw e;
895
- }
896
- }
897
- function decodeDatagram(bytes) {
898
- try {
899
- const r = new BufferReader(bytes);
900
- const dgType = Number(r.readVarInt());
901
- const objectIdAbsent = (dgType & 4) !== 0;
902
- const endOfGroup = (dgType & 2) !== 0;
903
- const isStatus = (dgType & 32) !== 0;
904
- const defaultPriority = (dgType & 8) !== 0;
905
- const trackAlias = r.readVarInt();
906
- const groupId = r.readVarInt();
907
- let objectId = 0n;
908
- if (!objectIdAbsent) {
909
- objectId = r.readVarInt();
910
- }
911
- let publisherPriority = 128;
912
- if (!defaultPriority) {
913
- publisherPriority = r.readUint8();
914
- }
915
- let objectStatus;
916
- let payload;
917
- if (isStatus) {
918
- objectStatus = r.readVarInt();
919
- payload = new Uint8Array(0);
920
- } else {
921
- payload = r.readBytes(r.remaining);
922
- }
923
- const payloadLength = payload.byteLength;
924
- const result = {
925
- type: "datagram",
926
- datagramType: dgType,
927
- trackAlias,
928
- groupId,
929
- objectId,
930
- publisherPriority,
931
- payloadLength,
932
- payload
933
- };
934
- if (endOfGroup) result.endOfGroup = true;
935
- if (objectStatus !== void 0)
936
- result.objectStatus = objectStatus;
937
- return { ok: true, value: result, bytesRead: r.offset };
938
- } catch (e) {
939
- if (e instanceof DecodeError) return { ok: false, error: e };
940
- throw e;
941
- }
942
- }
943
- function decodeFetchStream(bytes) {
944
- try {
945
- const r = new BufferReader(bytes);
946
- const streamType = r.readVarInt();
947
- if (streamType !== FETCH_STREAM_TYPE) {
948
- return {
949
- ok: false,
950
- error: new DecodeError(
951
- "CONSTRAINT_VIOLATION",
952
- `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
953
- 0
954
- )
955
- };
956
- }
957
- const requestId = r.readVarInt();
958
- const objects = [];
959
- let prevGroupId = 0n;
960
- let prevSubgroupId = 0n;
961
- let prevObjectId = 0n;
962
- let prevPriority = 128;
963
- let first = true;
964
- while (r.remaining > 0) {
965
- const flags = r.readUint8();
966
- const subgroupEncoding = flags & 3;
967
- const objectIdPresent = (flags & 4) !== 0;
968
- const groupIdPresent = (flags & 8) !== 0;
969
- const priorityPresent = (flags & 16) !== 0;
970
- const extensionsPresent = (flags & 32) !== 0;
971
- if (flags & 192) {
972
- return {
973
- ok: false,
974
- error: new DecodeError(
975
- "CONSTRAINT_VIOLATION",
976
- "Reserved bits set in fetch object flags",
977
- r.offset
978
- )
979
- };
980
- }
981
- let groupId = prevGroupId;
982
- if (groupIdPresent) {
983
- groupId = r.readVarInt();
984
- } else if (first) {
985
- return {
986
- ok: false,
987
- error: new DecodeError(
988
- "CONSTRAINT_VIOLATION",
989
- "First fetch object must include groupId",
990
- r.offset
991
- )
992
- };
993
- }
994
- let subgroupId = prevSubgroupId;
995
- if (subgroupEncoding === 0) {
996
- subgroupId = 0n;
997
- } else if (subgroupEncoding === 1) {
998
- subgroupId = prevSubgroupId;
999
- } else if (subgroupEncoding === 2) {
1000
- subgroupId = prevSubgroupId + 1n;
1001
- } else if (subgroupEncoding === 3) {
1002
- subgroupId = r.readVarInt();
1003
- }
1004
- let objectId = prevObjectId + 1n;
1005
- if (objectIdPresent) {
1006
- objectId = r.readVarInt();
1007
- } else if (first) {
1008
- return {
1009
- ok: false,
1010
- error: new DecodeError(
1011
- "CONSTRAINT_VIOLATION",
1012
- "First fetch object must include objectId",
1013
- r.offset
1014
- )
1015
- };
1016
- }
1017
- if (priorityPresent) {
1018
- prevPriority = r.readUint8();
1019
- }
1020
- if (extensionsPresent) {
1021
- const extLen = Number(r.readVarInt());
1022
- if (extLen > 0) {
1023
- r.readBytes(extLen);
1024
- }
1025
- }
1026
- const payloadLength = Number(r.readVarInt());
1027
- let payload;
1028
- let status;
1029
- if (payloadLength > 0) {
1030
- payload = r.readBytes(payloadLength);
1031
- } else {
1032
- status = r.readVarInt();
1033
- payload = new Uint8Array(0);
1034
- }
1035
- const obj = {
1036
- type: "object",
1037
- serializationFlags: flags,
1038
- groupId,
1039
- subgroupId,
1040
- objectId,
1041
- publisherPriority: prevPriority,
1042
- payloadLength,
1043
- payload
1770
+ ok: false,
1771
+ error: new DecodeError(
1772
+ "UNKNOWN_MESSAGE_TYPE",
1773
+ `Unknown message type ID: 0x${typeId.toString(16)}`,
1774
+ 0
1775
+ )
1044
1776
  };
1045
- if (status !== void 0) obj.status = status;
1046
- objects.push(obj);
1047
- prevGroupId = groupId;
1048
- prevSubgroupId = subgroupId;
1049
- prevObjectId = objectId;
1050
- first = false;
1051
1777
  }
1052
- return {
1053
- ok: true,
1054
- value: { type: "fetch", requestId, objects },
1055
- bytesRead: r.offset
1056
- };
1778
+ return { ok: true, value: message, bytesRead: reader.offset };
1057
1779
  } catch (e) {
1058
- if (e instanceof DecodeError) return { ok: false, error: e };
1059
- throw e;
1060
- }
1061
- }
1062
- function decodeDataStream(streamType, bytes) {
1063
- switch (streamType) {
1064
- case "subgroup":
1065
- return decodeSubgroupStream(bytes);
1066
- case "datagram":
1067
- return decodeDatagram(bytes);
1068
- case "fetch":
1069
- return decodeFetchStream(bytes);
1070
- default: {
1071
- const _exhaustive = streamType;
1072
- throw new Error(`Unknown stream type: ${_exhaustive}`);
1780
+ if (e instanceof DecodeError) {
1781
+ return { ok: false, error: e };
1073
1782
  }
1783
+ throw e;
1074
1784
  }
1075
1785
  }
1076
1786
  function createStreamDecoder() {
1077
1787
  let buffer = new Uint8Array(0);
1788
+ let offset = 0;
1078
1789
  return new TransformStream({
1079
1790
  transform(chunk, controller) {
1791
+ if (offset > 0) {
1792
+ buffer = buffer.subarray(offset);
1793
+ offset = 0;
1794
+ }
1080
1795
  const newBuffer = new Uint8Array(buffer.length + chunk.length);
1081
1796
  newBuffer.set(buffer, 0);
1082
1797
  newBuffer.set(chunk, buffer.length);
1083
1798
  buffer = newBuffer;
1084
- while (buffer.length > 0) {
1085
- const result = decodeMessage(buffer);
1799
+ while (offset < buffer.length) {
1800
+ const result = decodeMessage(buffer.subarray(offset));
1086
1801
  if (!result.ok) {
1087
1802
  if (result.error.code === "UNEXPECTED_END") {
1088
1803
  break;
@@ -1091,11 +1806,11 @@ function createStreamDecoder() {
1091
1806
  return;
1092
1807
  }
1093
1808
  controller.enqueue(result.value);
1094
- buffer = buffer.slice(result.bytesRead);
1809
+ offset += result.bytesRead;
1095
1810
  }
1096
1811
  },
1097
1812
  flush(controller) {
1098
- if (buffer.length > 0) {
1813
+ if (offset < buffer.length) {
1099
1814
  controller.error(
1100
1815
  new DecodeError("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
1101
1816
  );
@@ -1103,246 +1818,9 @@ function createStreamDecoder() {
1103
1818
  }
1104
1819
  });
1105
1820
  }
1106
- function createSubgroupStreamDecoder() {
1107
- let buffer = new Uint8Array(0);
1108
- let headerEmitted = false;
1109
- let prevObjectId = -1n;
1110
- let firstObject = true;
1111
- let _subgroupIsFirstObjId = false;
1112
- return new TransformStream({
1113
- transform(chunk, controller) {
1114
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
1115
- newBuffer.set(buffer, 0);
1116
- newBuffer.set(chunk, buffer.length);
1117
- buffer = newBuffer;
1118
- if (!headerEmitted) {
1119
- try {
1120
- const r = new BufferReader(buffer);
1121
- const streamType = Number(r.readVarInt());
1122
- if (!(streamType >= 16 && streamType <= 29 || streamType >= 48 && streamType <= 61)) {
1123
- controller.error(
1124
- new DecodeError(
1125
- "CONSTRAINT_VIOLATION",
1126
- `Expected subgroup stream type, got 0x${streamType.toString(16)}`,
1127
- 0
1128
- )
1129
- );
1130
- return;
1131
- }
1132
- const hasSubgroupField = (streamType & 4) !== 0;
1133
- _subgroupIsFirstObjId = (streamType & 2) !== 0 && !hasSubgroupField;
1134
- const hasPriority = streamType < 48;
1135
- const trackAlias = r.readVarInt();
1136
- const groupId = r.readVarInt();
1137
- let subgroupId = 0n;
1138
- if (hasSubgroupField) {
1139
- subgroupId = r.readVarInt();
1140
- }
1141
- let publisherPriority = 128;
1142
- if (hasPriority) {
1143
- publisherPriority = r.readUint8();
1144
- }
1145
- controller.enqueue({
1146
- type: "subgroup_header",
1147
- trackAlias,
1148
- groupId,
1149
- subgroupId,
1150
- publisherPriority
1151
- });
1152
- headerEmitted = true;
1153
- buffer = buffer.slice(r.offset);
1154
- } catch (e) {
1155
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1156
- return;
1157
- }
1158
- controller.error(e);
1159
- return;
1160
- }
1161
- }
1162
- while (buffer.length > 0) {
1163
- try {
1164
- const r = new BufferReader(buffer);
1165
- const delta = r.readVarInt();
1166
- let objectId;
1167
- if (firstObject) {
1168
- objectId = delta;
1169
- firstObject = false;
1170
- } else {
1171
- objectId = prevObjectId + 1n + delta;
1172
- }
1173
- const payloadLength = Number(r.readVarInt());
1174
- const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
1175
- controller.enqueue({ type: "object", objectId, payloadLength, payload });
1176
- buffer = buffer.slice(r.offset);
1177
- prevObjectId = objectId;
1178
- } catch (e) {
1179
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1180
- break;
1181
- }
1182
- controller.error(e);
1183
- return;
1184
- }
1185
- }
1186
- },
1187
- flush(controller) {
1188
- if (buffer.length > 0) {
1189
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1190
- }
1191
- }
1192
- });
1193
- }
1194
- function createFetchStreamDecoder() {
1195
- let buffer = new Uint8Array(0);
1196
- let headerEmitted = false;
1197
- return new TransformStream({
1198
- transform(chunk, controller) {
1199
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
1200
- newBuffer.set(buffer, 0);
1201
- newBuffer.set(chunk, buffer.length);
1202
- buffer = newBuffer;
1203
- if (!headerEmitted) {
1204
- try {
1205
- const r = new BufferReader(buffer);
1206
- const streamType = r.readVarInt();
1207
- if (streamType !== FETCH_STREAM_TYPE) {
1208
- controller.error(
1209
- new DecodeError(
1210
- "CONSTRAINT_VIOLATION",
1211
- `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`,
1212
- 0
1213
- )
1214
- );
1215
- return;
1216
- }
1217
- const requestId = r.readVarInt();
1218
- controller.enqueue({ type: "fetch_header", requestId });
1219
- headerEmitted = true;
1220
- buffer = buffer.slice(r.offset);
1221
- } catch (e) {
1222
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1223
- return;
1224
- }
1225
- controller.error(e);
1226
- return;
1227
- }
1228
- }
1229
- while (buffer.length > 0) {
1230
- try {
1231
- const r = new BufferReader(buffer);
1232
- const flags = r.readUint8();
1233
- const objectIdPresent = (flags & 4) !== 0;
1234
- const groupIdPresent = (flags & 8) !== 0;
1235
- const priorityPresent = (flags & 16) !== 0;
1236
- const extensionsPresent = (flags & 32) !== 0;
1237
- const subgroupEncoding = flags & 3;
1238
- if (groupIdPresent) r.readVarInt();
1239
- if (subgroupEncoding === 3) r.readVarInt();
1240
- let objectId = 0n;
1241
- if (objectIdPresent) objectId = r.readVarInt();
1242
- if (priorityPresent) r.readUint8();
1243
- if (extensionsPresent) {
1244
- const extLen = Number(r.readVarInt());
1245
- if (extLen > 0) r.readBytes(extLen);
1246
- }
1247
- const payloadLength = Number(r.readVarInt());
1248
- const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
1249
- controller.enqueue({ type: "object", objectId, payloadLength, payload });
1250
- buffer = buffer.slice(r.offset);
1251
- } catch (e) {
1252
- if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
1253
- break;
1254
- }
1255
- controller.error(e);
1256
- return;
1257
- }
1258
- }
1259
- },
1260
- flush(controller) {
1261
- if (buffer.length > 0) {
1262
- controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
1263
- }
1264
- }
1265
- });
1266
- }
1267
- function createDataStreamDecoder() {
1268
- let buffer = new Uint8Array(0);
1269
- let inner = null;
1270
- return new TransformStream({
1271
- transform(chunk, controller) {
1272
- const newBuffer = new Uint8Array(buffer.length + chunk.length);
1273
- newBuffer.set(buffer, 0);
1274
- newBuffer.set(chunk, buffer.length);
1275
- buffer = newBuffer;
1276
- if (inner === null) {
1277
- if (buffer.length === 0) return;
1278
- const firstByte = buffer[0];
1279
- if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
1280
- const decoder = createSubgroupStreamDecoder();
1281
- inner = decoder;
1282
- } else if (firstByte === 5) {
1283
- const decoder = createFetchStreamDecoder();
1284
- inner = decoder;
1285
- } else {
1286
- controller.error(
1287
- new DecodeError(
1288
- "CONSTRAINT_VIOLATION",
1289
- `Unknown data stream type: 0x${firstByte.toString(16)}`,
1290
- 0
1291
- )
1292
- );
1293
- return;
1294
- }
1295
- }
1296
- },
1297
- flush(controller) {
1298
- if (buffer.length === 0) return;
1299
- const firstByte = buffer[0];
1300
- let result;
1301
- if (firstByte >= 16 && firstByte <= 29 || firstByte >= 48 && firstByte <= 61) {
1302
- result = decodeSubgroupStream(buffer);
1303
- } else if (firstByte === 5) {
1304
- result = decodeFetchStream(buffer);
1305
- } else {
1306
- controller.error(
1307
- new DecodeError(
1308
- "CONSTRAINT_VIOLATION",
1309
- `Unknown data stream type: 0x${firstByte.toString(16)}`,
1310
- 0
1311
- )
1312
- );
1313
- return;
1314
- }
1315
- if (!result.ok) {
1316
- controller.error(result.error);
1317
- return;
1318
- }
1319
- const stream = result.value;
1320
- if (stream.type === "subgroup") {
1321
- controller.enqueue({
1322
- type: "subgroup_header",
1323
- trackAlias: stream.trackAlias,
1324
- groupId: stream.groupId,
1325
- subgroupId: stream.subgroupId,
1326
- publisherPriority: stream.publisherPriority
1327
- });
1328
- for (const obj of stream.objects) {
1329
- controller.enqueue(obj);
1330
- }
1331
- } else if (stream.type === "fetch") {
1332
- controller.enqueue({
1333
- type: "fetch_header",
1334
- requestId: stream.requestId
1335
- });
1336
- for (const obj of stream.objects) {
1337
- controller.enqueue(obj);
1338
- }
1339
- }
1340
- }
1341
- });
1342
- }
1343
1821
  function createDraft17Codec() {
1344
1822
  return {
1345
- draft: "draft-ietf-moq-transport-17",
1823
+ draft: "17",
1346
1824
  encodeMessage,
1347
1825
  decodeMessage,
1348
1826
  encodeSubgroupStream,
@@ -1384,8 +1862,6 @@ export {
1384
1862
  SETUP_OPT_MOQT_IMPLEMENTATION,
1385
1863
  MESSAGE_TYPE_MAP,
1386
1864
  MESSAGE_ID_MAP,
1387
- encodeMessage,
1388
- decodeMessage,
1389
1865
  encodeSubgroupStream,
1390
1866
  encodeDatagram,
1391
1867
  encodeFetchStream,
@@ -1393,9 +1869,11 @@ export {
1393
1869
  decodeDatagram,
1394
1870
  decodeFetchStream,
1395
1871
  decodeDataStream,
1396
- createStreamDecoder,
1397
1872
  createSubgroupStreamDecoder,
1398
1873
  createFetchStreamDecoder,
1399
1874
  createDataStreamDecoder,
1875
+ encodeMessage,
1876
+ decodeMessage,
1877
+ createStreamDecoder,
1400
1878
  createDraft17Codec
1401
1879
  };