@moqtap/codec 0.2.3 → 0.4.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 (313) 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-73MWUKSJ.js → chunk-2UTVXWFF.js} +190 -102
  5. package/dist/{chunk-JTVCOMBI.cjs → chunk-3XKO6PCR.cjs} +290 -183
  6. package/dist/{chunk-ACQ4CUJP.cjs → chunk-4BDEU3D4.cjs} +237 -158
  7. package/dist/{chunk-4N4INRE7.cjs → chunk-4HBKHNU2.cjs} +144 -110
  8. package/dist/{chunk-2ZT6CVSE.js → chunk-4IVZZOY3.js} +269 -162
  9. package/dist/{chunk-GLBQDG4L.cjs → chunk-5O764MBD.cjs} +508 -117
  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-UYXTY6ZQ.cjs → chunk-E65QKRSN.cjs} +20 -12
  16. package/dist/{chunk-BISI45MN.cjs → chunk-EAHE3IOG.cjs} +44 -12
  17. package/dist/{chunk-PZBPH2D7.js → chunk-GCBFHZW6.js} +216 -137
  18. package/dist/{chunk-GXEW4COZ.cjs → chunk-H5NSL4MO.cjs} +36 -10
  19. package/dist/chunk-HZHSO7EW.cjs +1212 -0
  20. package/dist/{chunk-KZCYQ7ED.cjs → chunk-IILNSDEQ.cjs} +69 -41
  21. package/dist/{chunk-4XYGE53S.cjs → chunk-J3XCPBW3.cjs} +36 -10
  22. package/dist/{chunk-6AEHWULA.cjs → chunk-JKOEJZ5B.cjs} +28 -8
  23. package/dist/{chunk-RUPCJTC3.cjs → chunk-JL3NEW3O.cjs} +23 -1
  24. package/dist/{chunk-G7GI7LJA.js → chunk-LORZMJJB.js} +36 -10
  25. package/dist/{chunk-DUBCL3WF.cjs → chunk-LV5C6MEC.cjs} +36 -10
  26. package/dist/{chunk-ENURAVHI.cjs → chunk-MYXAD5JC.cjs} +44 -12
  27. package/dist/{chunk-FXZ2MYKJ.js → chunk-MZ7HUCGJ.js} +20 -12
  28. package/dist/{chunk-S74DWJE2.cjs → chunk-OKG2HT25.cjs} +277 -88
  29. package/dist/{chunk-BGWGVINJ.cjs → chunk-PKEOQSSZ.cjs} +144 -110
  30. package/dist/{chunk-2GODRVT5.js → chunk-Q46ZURKX.js} +325 -48
  31. package/dist/{chunk-UR6JKS56.js → chunk-Q7IGWV3P.js} +41 -9
  32. package/dist/{chunk-XSNX2IUJ.js → chunk-RW4UG7CN.js} +121 -87
  33. package/dist/{chunk-DWK5ZQZ4.js → chunk-RZTLQAKF.js} +28 -8
  34. package/dist/{chunk-UNS34PTA.cjs → chunk-S6IPIN66.cjs} +44 -12
  35. package/dist/{chunk-YIG2C3LF.cjs → chunk-SDWRXXOO.cjs} +214 -126
  36. package/dist/{chunk-CEH7ESNC.js → chunk-SHMA4PBY.js} +121 -87
  37. package/dist/{chunk-MC7W6PMI.js → chunk-U3ZVLT5L.js} +483 -135
  38. package/dist/{chunk-VJUUZ4W2.cjs → chunk-UJU63EFY.cjs} +374 -97
  39. package/dist/{chunk-7L43FE6P.js → chunk-VOU7PNHI.js} +23 -1
  40. package/dist/{chunk-E6E3NQYU.js → chunk-WRHGCVYN.js} +44 -12
  41. package/dist/{chunk-FPISPJ5N.cjs → chunk-XNWYLVGU.cjs} +529 -181
  42. package/dist/{chunk-U3IPZYPX.js → chunk-XS77RBY7.js} +228 -39
  43. package/dist/{chunk-JGG7CMSZ.cjs → chunk-XZE5R57R.cjs} +144 -110
  44. package/dist/{chunk-77MNXX3M.js → chunk-Y6KCSM3V.js} +121 -87
  45. package/dist/{chunk-TLYNOOQP.cjs → chunk-YTPZZI2M.cjs} +41 -9
  46. package/dist/{chunk-7DUBLRXC.js → chunk-YWRCSQBA.js} +44 -12
  47. package/dist/{chunk-MRJWLGYH.js → chunk-Z3VKP3PJ.js} +69 -41
  48. package/dist/{chunk-E6P74GDT.js → chunk-Z6U26IRI.js} +464 -73
  49. package/dist/{codec-FvGCxIhr.d.ts → codec-25u4_1HS.d.ts} +4 -4
  50. package/dist/{codec-DRcsBCsb.d.ts → codec-3Ppy_5Gd.d.ts} +4 -4
  51. package/dist/{codec-BdVMRMOI.d.ts → codec-BB0U8MF2.d.cts} +4 -4
  52. package/dist/{codec-B2cH-f5V.d.cts → codec-BHHfBTnV.d.ts} +4 -4
  53. package/dist/{codec-B5K73Bdj.d.ts → codec-BN6jk0Td.d.cts} +4 -4
  54. package/dist/{codec-R8GrCPt2.d.ts → codec-BU0gaSZm.d.ts} +4 -4
  55. package/dist/{codec-Bq-tLtfP.d.ts → codec-C-Yk2RNa.d.ts} +4 -4
  56. package/dist/codec-CFWQY9Lj.d.cts +18 -0
  57. package/dist/{codec-CPlK3Pi5.d.ts → codec-COy4uuPO.d.cts} +4 -4
  58. package/dist/codec-CewFCsEy.d.ts +18 -0
  59. package/dist/{codec-KXHvXZVb.d.cts → codec-Ck7ZwFF1.d.cts} +4 -4
  60. package/dist/{codec-DZhZSIii.d.cts → codec-D2QVSH9D.d.ts} +4 -4
  61. package/dist/{codec-BwFgpeQu.d.ts → codec-DDUBJGn0.d.cts} +4 -4
  62. package/dist/{codec-BFeliJFc.d.ts → codec-DNfml-se.d.ts} +4 -4
  63. package/dist/{codec-C4n1PS09.d.cts → codec-DoOGjjDq.d.cts} +4 -4
  64. package/dist/{codec-Bap882Fh.d.cts → codec-J7ekOSMc.d.ts} +4 -4
  65. package/dist/{codec-SKBeHQk7.d.ts → codec-R9TJCq-E.d.cts} +4 -4
  66. package/dist/{codec-DNUIgLqc.d.cts → codec-ZwV-Njt6.d.ts} +4 -4
  67. package/dist/{codec-HgBgHkFI.d.cts → codec-j819z_hL.d.cts} +4 -4
  68. package/dist/{codec-DY4QH364.d.cts → codec-w8z2j_uo.d.cts} +4 -4
  69. package/dist/{codec-CPvPq0sb.d.cts → codec-wtt6WF1K.d.ts} +4 -4
  70. package/dist/{codec-BUMjz0J4.d.cts → codec-z6_2PSzi.d.cts} +4 -4
  71. package/dist/{draft7-session.cjs → draft07-session.cjs} +2 -2
  72. package/dist/draft07-session.d.cts +8 -0
  73. package/dist/draft07-session.d.ts +8 -0
  74. package/dist/{draft7-session.js → draft07-session.js} +1 -1
  75. package/dist/draft07.cjs +129 -0
  76. package/dist/draft07.d.cts +67 -0
  77. package/dist/draft07.d.ts +67 -0
  78. package/dist/draft07.js +129 -0
  79. package/dist/draft08-session.cjs +6 -0
  80. package/dist/draft08-session.d.cts +8 -0
  81. package/dist/draft08-session.d.ts +8 -0
  82. package/dist/{draft8-session.js → draft08-session.js} +1 -1
  83. package/dist/draft08.cjs +119 -0
  84. package/dist/{draft8.d.cts → draft08.d.cts} +15 -13
  85. package/dist/{draft8.d.ts → draft08.d.ts} +15 -13
  86. package/dist/{draft8.js → draft08.js} +7 -4
  87. package/dist/draft09-session.cjs +6 -0
  88. package/dist/draft09-session.d.cts +8 -0
  89. package/dist/draft09-session.d.ts +8 -0
  90. package/dist/{draft9-session.js → draft09-session.js} +1 -1
  91. package/dist/draft09.cjs +119 -0
  92. package/dist/{draft9.d.cts → draft09.d.cts} +15 -13
  93. package/dist/{draft9.d.ts → draft09.d.ts} +15 -13
  94. package/dist/{draft9.js → draft09.js} +7 -4
  95. package/dist/draft10-session.cjs +2 -2
  96. package/dist/draft10-session.d.cts +6 -6
  97. package/dist/draft10-session.d.ts +6 -6
  98. package/dist/draft10-session.js +1 -1
  99. package/dist/draft10.cjs +8 -5
  100. package/dist/draft10.d.cts +14 -12
  101. package/dist/draft10.d.ts +14 -12
  102. package/dist/draft10.js +16 -13
  103. package/dist/draft11-session.cjs +2 -2
  104. package/dist/draft11-session.d.cts +6 -6
  105. package/dist/draft11-session.d.ts +6 -6
  106. package/dist/draft11-session.js +1 -1
  107. package/dist/draft11.cjs +8 -5
  108. package/dist/draft11.d.cts +14 -12
  109. package/dist/draft11.d.ts +14 -12
  110. package/dist/draft11.js +16 -13
  111. package/dist/draft12-session.cjs +2 -2
  112. package/dist/draft12-session.d.cts +6 -6
  113. package/dist/draft12-session.d.ts +6 -6
  114. package/dist/draft12-session.js +1 -1
  115. package/dist/draft12.cjs +8 -5
  116. package/dist/draft12.d.cts +16 -14
  117. package/dist/draft12.d.ts +16 -14
  118. package/dist/draft12.js +16 -13
  119. package/dist/draft13-session.cjs +2 -2
  120. package/dist/draft13-session.d.cts +6 -6
  121. package/dist/draft13-session.d.ts +6 -6
  122. package/dist/draft13-session.js +1 -1
  123. package/dist/draft13.cjs +8 -5
  124. package/dist/draft13.d.cts +16 -14
  125. package/dist/draft13.d.ts +16 -14
  126. package/dist/draft13.js +16 -13
  127. package/dist/draft14-session.cjs +2 -2
  128. package/dist/draft14-session.d.cts +6 -6
  129. package/dist/draft14-session.d.ts +6 -6
  130. package/dist/draft14-session.js +1 -1
  131. package/dist/draft14.cjs +14 -5
  132. package/dist/draft14.d.cts +14 -12
  133. package/dist/draft14.d.ts +14 -12
  134. package/dist/draft14.js +13 -4
  135. package/dist/draft15-session.cjs +2 -2
  136. package/dist/draft15-session.d.cts +6 -6
  137. package/dist/draft15-session.d.ts +6 -6
  138. package/dist/draft15-session.js +1 -1
  139. package/dist/draft15.cjs +8 -5
  140. package/dist/draft15.d.cts +14 -12
  141. package/dist/draft15.d.ts +14 -12
  142. package/dist/draft15.js +16 -13
  143. package/dist/draft16-session.cjs +2 -2
  144. package/dist/draft16-session.d.cts +6 -6
  145. package/dist/draft16-session.d.ts +6 -6
  146. package/dist/draft16-session.js +1 -1
  147. package/dist/draft16.cjs +8 -5
  148. package/dist/draft16.d.cts +14 -12
  149. package/dist/draft16.d.ts +14 -12
  150. package/dist/draft16.js +16 -13
  151. package/dist/draft17-session.cjs +2 -2
  152. package/dist/draft17-session.d.cts +7 -7
  153. package/dist/draft17-session.d.ts +7 -7
  154. package/dist/draft17-session.js +1 -1
  155. package/dist/draft17.cjs +8 -5
  156. package/dist/draft17.d.cts +11 -9
  157. package/dist/draft17.d.ts +11 -9
  158. package/dist/draft17.js +16 -13
  159. package/dist/index.cjs +52 -74
  160. package/dist/index.d.cts +41 -60
  161. package/dist/index.d.ts +41 -60
  162. package/dist/index.js +40 -62
  163. package/dist/{session-types-CJIFbTPd.d.ts → session-types-C7UONex5.d.cts} +28 -27
  164. package/dist/{session-types-Cbq8IGCP.d.cts → session-types-X-IYEGoG.d.ts} +28 -27
  165. package/dist/session.cjs +46 -13
  166. package/dist/session.d.cts +29 -11
  167. package/dist/session.d.ts +29 -11
  168. package/dist/session.js +46 -13
  169. package/dist/{types-DxSFvL2b.d.cts → types--Q7_DcvP.d.cts} +43 -39
  170. package/dist/{types-DxSFvL2b.d.ts → types--Q7_DcvP.d.ts} +43 -39
  171. package/dist/{types-B0FT5Qs2.d.cts → types-0IWbU9Z_.d.cts} +36 -36
  172. package/dist/{types-B0FT5Qs2.d.ts → types-0IWbU9Z_.d.ts} +36 -36
  173. package/dist/{types-gQsr0AAA.d.cts → types-B3g5G9KP.d.cts} +36 -36
  174. package/dist/{types-gQsr0AAA.d.ts → types-B3g5G9KP.d.ts} +36 -36
  175. package/dist/{types-Pme7sua0.d.cts → types-BFpFNM_m.d.cts} +57 -32
  176. package/dist/{types-Pme7sua0.d.ts → types-BFpFNM_m.d.ts} +57 -32
  177. package/dist/{types-8gUGeMgs.d.cts → types-Br7fm2mf.d.cts} +48 -26
  178. package/dist/{types-8gUGeMgs.d.ts → types-Br7fm2mf.d.ts} +48 -26
  179. package/dist/{types-BeAVNU-F.d.cts → types-C2qKTRR_.d.cts} +50 -45
  180. package/dist/{types-BeAVNU-F.d.ts → types-C2qKTRR_.d.ts} +50 -45
  181. package/dist/{types-DKpsfD3i.d.cts → types-DEaypVsD.d.cts} +115 -55
  182. package/dist/{types-DKpsfD3i.d.ts → types-DEaypVsD.d.ts} +115 -55
  183. package/dist/types-Dl4IaAHR.d.cts +282 -0
  184. package/dist/types-Dl4IaAHR.d.ts +282 -0
  185. package/dist/{types-CDa7F5ct.d.cts → types-DrQpTW1G.d.cts} +58 -50
  186. package/dist/{types-CDa7F5ct.d.ts → types-DrQpTW1G.d.ts} +58 -50
  187. package/dist/types-DuIO7cWK.d.cts +25 -0
  188. package/dist/types-DuIO7cWK.d.ts +25 -0
  189. package/dist/{types-B9A2g05r.d.cts → types-DuxfOYiO.d.cts} +47 -31
  190. package/dist/{types-B9A2g05r.d.ts → types-DuxfOYiO.d.ts} +47 -31
  191. package/dist/{types-D1dI_oTX.d.cts → types-jV1yDDBA.d.cts} +36 -36
  192. package/dist/{types-D1dI_oTX.d.ts → types-jV1yDDBA.d.ts} +36 -36
  193. package/package.json +192 -192
  194. package/src/core/buffer-reader.ts +130 -130
  195. package/src/core/buffer-writer.ts +100 -100
  196. package/src/core/errors.ts +1 -1
  197. package/src/core/hex.ts +21 -21
  198. package/src/core/session-types.ts +61 -59
  199. package/src/core/types.ts +18 -361
  200. package/src/drafts/draft07/codec.ts +1058 -938
  201. package/src/drafts/draft07/data-streams.ts +240 -240
  202. package/src/drafts/draft07/index.ts +124 -89
  203. package/src/drafts/draft07/messages.ts +76 -42
  204. package/src/drafts/draft07/rules.ts +107 -101
  205. package/src/drafts/draft07/session-fsm.ts +315 -287
  206. package/src/drafts/draft07/session.ts +8 -6
  207. package/src/drafts/draft07/types.ts +406 -72
  208. package/src/drafts/draft07/varint.ts +51 -51
  209. package/src/drafts/draft08/codec.ts +985 -953
  210. package/src/drafts/draft08/data-streams.ts +363 -359
  211. package/src/drafts/draft08/index.ts +10 -9
  212. package/src/drafts/draft08/messages.ts +59 -59
  213. package/src/drafts/draft08/rules.ts +73 -73
  214. package/src/drafts/draft08/session-fsm.ts +335 -303
  215. package/src/drafts/draft08/session.ts +6 -7
  216. package/src/drafts/draft08/types.ts +380 -384
  217. package/src/drafts/draft09/codec.ts +977 -945
  218. package/src/drafts/draft09/data-streams.ts +336 -332
  219. package/src/drafts/draft09/index.ts +10 -9
  220. package/src/drafts/draft09/messages.ts +59 -59
  221. package/src/drafts/draft09/rules.ts +73 -73
  222. package/src/drafts/draft09/session-fsm.ts +335 -303
  223. package/src/drafts/draft09/session.ts +6 -7
  224. package/src/drafts/draft09/types.ts +380 -384
  225. package/src/drafts/draft10/codec.ts +977 -945
  226. package/src/drafts/draft10/data-streams.ts +336 -332
  227. package/src/drafts/draft10/index.ts +10 -9
  228. package/src/drafts/draft10/messages.ts +59 -59
  229. package/src/drafts/draft10/rules.ts +73 -73
  230. package/src/drafts/draft10/session-fsm.ts +335 -303
  231. package/src/drafts/draft10/session.ts +6 -7
  232. package/src/drafts/draft10/types.ts +380 -384
  233. package/src/drafts/draft11/codec.ts +1054 -988
  234. package/src/drafts/draft11/data-streams.ts +316 -269
  235. package/src/drafts/draft11/index.ts +10 -9
  236. package/src/drafts/draft11/messages.ts +60 -59
  237. package/src/drafts/draft11/rules.ts +73 -73
  238. package/src/drafts/draft11/session-fsm.ts +359 -333
  239. package/src/drafts/draft11/session.ts +6 -7
  240. package/src/drafts/draft11/types.ts +385 -381
  241. package/src/drafts/draft12/codec.ts +1178 -1122
  242. package/src/drafts/draft12/data-streams.ts +324 -275
  243. package/src/drafts/draft12/index.ts +10 -9
  244. package/src/drafts/draft12/messages.ts +67 -66
  245. package/src/drafts/draft12/rules.ts +79 -79
  246. package/src/drafts/draft12/session-fsm.ts +384 -358
  247. package/src/drafts/draft12/session.ts +6 -7
  248. package/src/drafts/draft12/types.ts +424 -419
  249. package/src/drafts/draft13/codec.ts +1296 -1206
  250. package/src/drafts/draft13/data-streams.ts +326 -275
  251. package/src/drafts/draft13/index.ts +10 -9
  252. package/src/drafts/draft13/messages.ts +73 -68
  253. package/src/drafts/draft13/rules.ts +81 -81
  254. package/src/drafts/draft13/session-fsm.ts +392 -366
  255. package/src/drafts/draft13/session.ts +6 -7
  256. package/src/drafts/draft13/types.ts +447 -438
  257. package/src/drafts/draft14/codec.ts +1347 -1043
  258. package/src/drafts/draft14/data-streams.ts +831 -813
  259. package/src/drafts/draft14/index.ts +17 -9
  260. package/src/drafts/draft14/messages.ts +65 -65
  261. package/src/drafts/draft14/rules.ts +81 -81
  262. package/src/drafts/draft14/session-fsm.ts +415 -405
  263. package/src/drafts/draft14/session.ts +6 -7
  264. package/src/drafts/draft14/types.ts +451 -381
  265. package/src/drafts/draft15/codec.ts +1138 -978
  266. package/src/drafts/draft15/data-streams.ts +842 -794
  267. package/src/drafts/draft15/index.ts +10 -9
  268. package/src/drafts/draft15/messages.ts +54 -53
  269. package/src/drafts/draft15/rules.ts +67 -67
  270. package/src/drafts/draft15/session-fsm.ts +319 -299
  271. package/src/drafts/draft15/session.ts +6 -7
  272. package/src/drafts/draft15/types.ts +357 -339
  273. package/src/drafts/draft16/codec.ts +1242 -966
  274. package/src/drafts/draft16/data-streams.ts +835 -789
  275. package/src/drafts/draft16/index.ts +10 -9
  276. package/src/drafts/draft16/messages.ts +56 -55
  277. package/src/drafts/draft16/rules.ts +69 -69
  278. package/src/drafts/draft16/session-fsm.ts +319 -299
  279. package/src/drafts/draft16/session.ts +6 -7
  280. package/src/drafts/draft16/types.ts +386 -357
  281. package/src/drafts/draft17/codec.ts +1209 -971
  282. package/src/drafts/draft17/data-streams.ts +969 -758
  283. package/src/drafts/draft17/index.ts +9 -7
  284. package/src/drafts/draft17/messages.ts +43 -42
  285. package/src/drafts/draft17/rules.ts +58 -58
  286. package/src/drafts/draft17/session-fsm.ts +248 -216
  287. package/src/drafts/draft17/session.ts +5 -5
  288. package/src/drafts/draft17/types.ts +337 -313
  289. package/src/index.ts +85 -274
  290. package/src/session.ts +63 -25
  291. package/dist/chunk-FZDIEHQL.cjs +0 -1042
  292. package/dist/chunk-HDWJ2GDE.js +0 -24
  293. package/dist/chunk-KNDYS3DK.cjs +0 -24
  294. package/dist/chunk-N2KBF5Q2.js +0 -1042
  295. package/dist/draft7-session.d.cts +0 -7
  296. package/dist/draft7-session.d.ts +0 -7
  297. package/dist/draft7.cjs +0 -72
  298. package/dist/draft7.d.cts +0 -148
  299. package/dist/draft7.d.ts +0 -148
  300. package/dist/draft7.js +0 -72
  301. package/dist/draft8-session.cjs +0 -6
  302. package/dist/draft8-session.d.cts +0 -8
  303. package/dist/draft8-session.d.ts +0 -8
  304. package/dist/draft8.cjs +0 -116
  305. package/dist/draft9-session.cjs +0 -6
  306. package/dist/draft9-session.d.cts +0 -8
  307. package/dist/draft9-session.d.ts +0 -8
  308. package/dist/draft9.cjs +0 -116
  309. package/dist/types-QNXoxC9Y.d.cts +0 -236
  310. package/dist/types-QNXoxC9Y.d.ts +0 -236
  311. package/src/drafts/draft07/announce-fsm.ts +0 -2
  312. package/src/drafts/draft07/parameters.ts +0 -12
  313. package/src/drafts/draft07/subscription-fsm.ts +0 -3
@@ -1,12 +1,10 @@
1
- import {
2
- bytesToHex,
3
- hexToBytes
4
- } from "./chunk-HDWJ2GDE.js";
5
1
  import {
6
2
  BufferReader,
7
3
  BufferWriter,
8
- DecodeError
9
- } from "./chunk-7L43FE6P.js";
4
+ DecodeError,
5
+ bytesToHex,
6
+ hexToBytes
7
+ } from "./chunk-VOU7PNHI.js";
10
8
 
11
9
  // src/drafts/draft14/messages.ts
12
10
  var MSG_SUBSCRIBE_UPDATE = 0x02n;
@@ -78,6 +76,24 @@ var MESSAGE_ID_MAP = new Map(
78
76
  [...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
79
77
  );
80
78
 
79
+ // src/drafts/draft14/types.ts
80
+ var FilterType = {
81
+ NextGroupStart: 1n,
82
+ LargestObject: 2n,
83
+ AbsoluteStart: 3n,
84
+ AbsoluteRange: 4n
85
+ };
86
+ var GroupOrder = {
87
+ PublisherChoice: 0n,
88
+ Ascending: 1n,
89
+ Descending: 2n
90
+ };
91
+ var FetchType = {
92
+ Standalone: 1n,
93
+ RelativeJoining: 2n,
94
+ AbsoluteJoining: 3n
95
+ };
96
+
81
97
  // src/drafts/draft14/data-streams.ts
82
98
  var FETCH_STREAM_TYPE = 0x05n;
83
99
  function isValidSubgroupType(t) {
@@ -128,7 +144,9 @@ function encodeDatagram(dg) {
128
144
  }
129
145
  w.writeUint8(dg.publisherPriority);
130
146
  if (extensionsPresent) {
131
- w.writeVarInt(0);
147
+ const extData = dg.extensionData ?? new Uint8Array(0);
148
+ w.writeVarInt(extData.byteLength);
149
+ if (extData.byteLength > 0) w.writeBytes(extData);
132
150
  }
133
151
  if (isStatus) {
134
152
  w.writeVarInt(dg.objectStatus ?? 0n);
@@ -215,7 +233,15 @@ function decodeSubgroupStream(bytes) {
215
233
  payloadByteOffset = r.offset;
216
234
  payload = r.readBytesView(payloadLength);
217
235
  }
218
- const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
236
+ const obj = {
237
+ type: "object",
238
+ byteOffset,
239
+ payloadByteOffset,
240
+ objectId,
241
+ payloadLength,
242
+ payload,
243
+ extensionData
244
+ };
219
245
  if (status !== void 0) obj.status = status;
220
246
  objects.push(obj);
221
247
  prevObjectId = objectId;
@@ -264,11 +290,10 @@ function decodeDatagram(bytes) {
264
290
  objectId = r.readVarInt();
265
291
  }
266
292
  const publisherPriority = r.readUint8();
293
+ let extensionData;
267
294
  if (extensionsPresent) {
268
295
  const extLen = Number(r.readVarInt());
269
- if (extLen > 0) {
270
- r.readBytesView(extLen);
271
- }
296
+ extensionData = extLen > 0 ? r.readBytesView(extLen) : new Uint8Array(0);
272
297
  }
273
298
  let objectStatus;
274
299
  let payload;
@@ -292,6 +317,8 @@ function decodeDatagram(bytes) {
292
317
  if (endOfGroup) result.endOfGroup = true;
293
318
  if (objectStatus !== void 0)
294
319
  result.objectStatus = objectStatus;
320
+ if (extensionData !== void 0)
321
+ result.extensionData = extensionData;
295
322
  return { ok: true, value: result, bytesRead: r.offset };
296
323
  } catch (e) {
297
324
  if (e instanceof DecodeError) return { ok: false, error: e };
@@ -455,7 +482,15 @@ function createSubgroupStreamDecoder() {
455
482
  payloadByteOffset = r.offset;
456
483
  payload = r.readBytesView(payloadLength);
457
484
  }
458
- const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
485
+ const obj = {
486
+ type: "object",
487
+ byteOffset,
488
+ payloadByteOffset,
489
+ objectId,
490
+ payloadLength,
491
+ payload,
492
+ extensionData
493
+ };
459
494
  if (status !== void 0) obj.status = status;
460
495
  controller.enqueue(obj);
461
496
  prevObjectId = objectId;
@@ -665,9 +700,16 @@ function createDataStreamDecoder() {
665
700
  payloadByteOffset = r.offset;
666
701
  payload = r.readBytesView(payloadLength);
667
702
  }
668
- const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
669
- if (status !== void 0)
670
- obj.status = status;
703
+ const obj = {
704
+ type: "object",
705
+ byteOffset,
706
+ payloadByteOffset,
707
+ objectId,
708
+ payloadLength,
709
+ payload,
710
+ extensionData
711
+ };
712
+ if (status !== void 0) obj.status = status;
671
713
  controller.enqueue(obj);
672
714
  prevObjectId = objectId;
673
715
  offset += r.offset;
@@ -714,9 +756,19 @@ function createDataStreamDecoder() {
714
756
  payloadByteOffset = r.offset;
715
757
  payload = r.readBytesView(payloadLength);
716
758
  }
717
- const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
718
- if (status !== void 0)
719
- obj.status = status;
759
+ const obj = {
760
+ type: "object",
761
+ byteOffset,
762
+ payloadByteOffset,
763
+ groupId,
764
+ subgroupId,
765
+ objectId,
766
+ publisherPriority,
767
+ payloadLength,
768
+ payload,
769
+ extensionData
770
+ };
771
+ if (status !== void 0) obj.status = status;
720
772
  controller.enqueue(obj);
721
773
  offset += r.offset;
722
774
  } catch (e) {
@@ -738,11 +790,18 @@ function createDataStreamDecoder() {
738
790
  // src/drafts/draft14/codec.ts
739
791
  var textEncoder = /* @__PURE__ */ new TextEncoder();
740
792
  var textDecoder = /* @__PURE__ */ new TextDecoder();
741
- function encodeParams(params, writer) {
793
+ var PARAM_AUTHORITY = 0x05n;
794
+ var PARAM_MAX_AUTH_TOKEN_CACHE_SIZE = 0x04n;
795
+ var PARAM_DELIVERY_TIMEOUT = 0x02n;
796
+ var PARAM_AUTHORIZATION_TOKEN = 0x03n;
797
+ var PARAM_MAX_CACHE_DURATION = 0x04n;
798
+ function encodeSetupParams(params, writer) {
742
799
  let count = 0;
743
800
  if (params.role !== void 0) count++;
744
801
  if (params.path !== void 0) count++;
745
802
  if (params.max_request_id !== void 0) count++;
803
+ if (params.authority !== void 0) count++;
804
+ if (params.max_auth_token_cache_size !== void 0) count++;
746
805
  if (params.unknown) count += params.unknown.length;
747
806
  writer.writeVarInt(count);
748
807
  if (params.role !== void 0) {
@@ -759,6 +818,16 @@ function encodeParams(params, writer) {
759
818
  writer.writeVarInt(PARAM_MAX_REQUEST_ID);
760
819
  writer.writeVarInt(params.max_request_id);
761
820
  }
821
+ if (params.max_auth_token_cache_size !== void 0) {
822
+ writer.writeVarInt(PARAM_MAX_AUTH_TOKEN_CACHE_SIZE);
823
+ writer.writeVarInt(params.max_auth_token_cache_size);
824
+ }
825
+ if (params.authority !== void 0) {
826
+ writer.writeVarInt(PARAM_AUTHORITY);
827
+ const encoded = textEncoder.encode(params.authority);
828
+ writer.writeVarInt(encoded.byteLength);
829
+ writer.writeBytes(encoded);
830
+ }
762
831
  if (params.unknown) {
763
832
  for (const u of params.unknown) {
764
833
  const id = BigInt(u.id);
@@ -769,7 +838,7 @@ function encodeParams(params, writer) {
769
838
  }
770
839
  }
771
840
  }
772
- function decodeParams(reader) {
841
+ function decodeSetupParams(reader) {
773
842
  const count = Number(reader.readVarInt());
774
843
  const result = {};
775
844
  const unknown = [];
@@ -781,6 +850,8 @@ function decodeParams(reader) {
781
850
  result.role = value;
782
851
  } else if (paramType === PARAM_MAX_REQUEST_ID) {
783
852
  result.max_request_id = value;
853
+ } else if (paramType === PARAM_MAX_AUTH_TOKEN_CACHE_SIZE) {
854
+ result.max_auth_token_cache_size = value;
784
855
  } else {
785
856
  const tmpWriter = new BufferWriter(16);
786
857
  tmpWriter.writeVarInt(value);
@@ -796,6 +867,8 @@ function decodeParams(reader) {
796
867
  const bytes = reader.readBytes(length);
797
868
  if (paramType === PARAM_PATH) {
798
869
  result.path = textDecoder.decode(bytes);
870
+ } else if (paramType === PARAM_AUTHORITY) {
871
+ result.authority = textDecoder.decode(bytes);
799
872
  } else {
800
873
  unknown.push({
801
874
  id: `0x${paramType.toString(16)}`,
@@ -805,9 +878,99 @@ function decodeParams(reader) {
805
878
  }
806
879
  }
807
880
  }
808
- if (unknown.length > 0) {
809
- result.unknown = unknown;
881
+ if (unknown.length > 0) result.unknown = unknown;
882
+ return result;
883
+ }
884
+ function encodeMessageParams(params, writer) {
885
+ let count = 0;
886
+ if (params.delivery_timeout !== void 0) count++;
887
+ if (params.authorization_token !== void 0) count++;
888
+ if (params.max_cache_duration !== void 0) count++;
889
+ if (params.unknown) count += params.unknown.length;
890
+ writer.writeVarInt(count);
891
+ if (params.delivery_timeout !== void 0) {
892
+ writer.writeVarInt(PARAM_DELIVERY_TIMEOUT);
893
+ writer.writeVarInt(params.delivery_timeout);
894
+ }
895
+ if (params.authorization_token !== void 0) {
896
+ writer.writeVarInt(PARAM_AUTHORIZATION_TOKEN);
897
+ const tok = params.authorization_token;
898
+ const tmpWriter = new BufferWriter(64);
899
+ tmpWriter.writeVarInt(tok.alias_type);
900
+ if (tok.token_type !== void 0) {
901
+ tmpWriter.writeVarInt(tok.token_type);
902
+ }
903
+ if (tok.token_value !== void 0) {
904
+ tmpWriter.writeBytes(hexToBytes(tok.token_value));
905
+ }
906
+ if (tok.token_alias !== void 0) {
907
+ tmpWriter.writeVarInt(tok.token_alias);
908
+ }
909
+ const tokenBytes = tmpWriter.finish();
910
+ writer.writeVarInt(tokenBytes.byteLength);
911
+ writer.writeBytes(tokenBytes);
912
+ }
913
+ if (params.max_cache_duration !== void 0) {
914
+ writer.writeVarInt(PARAM_MAX_CACHE_DURATION);
915
+ writer.writeVarInt(params.max_cache_duration);
810
916
  }
917
+ if (params.unknown) {
918
+ for (const u of params.unknown) {
919
+ const id = BigInt(u.id);
920
+ writer.writeVarInt(id);
921
+ const raw = hexToBytes(u.raw_hex);
922
+ writer.writeVarInt(raw.byteLength);
923
+ writer.writeBytes(raw);
924
+ }
925
+ }
926
+ }
927
+ function decodeMessageParams(reader) {
928
+ const count = Number(reader.readVarInt());
929
+ const result = {};
930
+ const unknown = [];
931
+ for (let i = 0; i < count; i++) {
932
+ const paramType = reader.readVarInt();
933
+ if (paramType % 2n === 0n) {
934
+ const value = reader.readVarInt();
935
+ if (paramType === PARAM_DELIVERY_TIMEOUT) {
936
+ result.delivery_timeout = value;
937
+ } else if (paramType === PARAM_MAX_CACHE_DURATION) {
938
+ result.max_cache_duration = value;
939
+ } else {
940
+ const tmpWriter = new BufferWriter(16);
941
+ tmpWriter.writeVarInt(value);
942
+ const raw = tmpWriter.finish();
943
+ unknown.push({
944
+ id: `0x${paramType.toString(16)}`,
945
+ length: raw.byteLength,
946
+ raw_hex: bytesToHex(raw)
947
+ });
948
+ }
949
+ } else {
950
+ const length = Number(reader.readVarInt());
951
+ const bytes = reader.readBytes(length);
952
+ if (paramType === PARAM_AUTHORIZATION_TOKEN) {
953
+ const tokenReader = new BufferReader(bytes);
954
+ const alias_type = tokenReader.readVarInt();
955
+ const tok = { alias_type };
956
+ if (tokenReader.remaining > 0) {
957
+ tok.token_type = tokenReader.readVarInt();
958
+ if (tokenReader.remaining > 0) {
959
+ const tokenValue = tokenReader.readBytesView(tokenReader.remaining);
960
+ tok.token_value = bytesToHex(tokenValue);
961
+ }
962
+ }
963
+ result.authorization_token = tok;
964
+ } else {
965
+ unknown.push({
966
+ id: `0x${paramType.toString(16)}`,
967
+ length,
968
+ raw_hex: bytesToHex(bytes)
969
+ });
970
+ }
971
+ }
972
+ }
973
+ if (unknown.length > 0) result.unknown = unknown;
811
974
  return result;
812
975
  }
813
976
  function encodeClientSetupPayload(msg, w) {
@@ -815,50 +978,51 @@ function encodeClientSetupPayload(msg, w) {
815
978
  for (const v of msg.supported_versions) {
816
979
  w.writeVarInt(v);
817
980
  }
818
- encodeParams(msg.parameters, w);
981
+ encodeSetupParams(msg.parameters, w);
819
982
  }
820
983
  function encodeServerSetupPayload(msg, w) {
821
984
  w.writeVarInt(msg.selected_version);
822
- encodeParams(msg.parameters, w);
985
+ encodeSetupParams(msg.parameters, w);
823
986
  }
824
987
  function encodeSubscribePayload(msg, w) {
825
988
  w.writeVarInt(msg.request_id);
826
989
  w.writeTuple(msg.track_namespace);
827
990
  w.writeString(msg.track_name);
828
991
  w.writeUint8(Number(msg.subscriber_priority));
829
- w.writeVarInt(msg.group_order);
992
+ w.writeUint8(Number(msg.group_order));
830
993
  w.writeVarInt(msg.forward);
831
994
  w.writeVarInt(msg.filter_type);
832
- const ft = Number(msg.filter_type);
833
- if (ft >= 3) {
995
+ const ft = msg.filter_type;
996
+ if (ft >= FilterType.AbsoluteStart) {
834
997
  w.writeVarInt(msg.start_group);
835
998
  w.writeVarInt(msg.start_object);
836
999
  }
837
- if (ft === 4) {
1000
+ if (ft === FilterType.AbsoluteRange) {
838
1001
  w.writeVarInt(msg.end_group);
839
1002
  }
840
- encodeParams(msg.parameters, w);
1003
+ encodeMessageParams(msg.parameters, w);
841
1004
  }
842
1005
  function encodeSubscribeOkPayload(msg, w) {
843
1006
  w.writeVarInt(msg.request_id);
844
1007
  w.writeVarInt(msg.track_alias);
845
1008
  w.writeVarInt(msg.expires);
846
- w.writeVarInt(msg.group_order);
1009
+ w.writeUint8(Number(msg.group_order));
847
1010
  w.writeVarInt(msg.content_exists);
848
- if (Number(msg.content_exists) === 1) {
849
- w.writeVarInt(msg.largest_group);
850
- w.writeVarInt(msg.largest_object);
1011
+ if (msg.content_exists === 1n) {
1012
+ w.writeVarInt(msg.largest_location.group);
1013
+ w.writeVarInt(msg.largest_location.object);
851
1014
  }
852
- encodeParams(msg.parameters, w);
1015
+ encodeMessageParams(msg.parameters, w);
853
1016
  }
854
1017
  function encodeSubscribeUpdatePayload(msg, w) {
855
1018
  w.writeVarInt(msg.request_id);
1019
+ w.writeVarInt(msg.subscription_request_id);
856
1020
  w.writeVarInt(msg.start_group);
857
1021
  w.writeVarInt(msg.start_object);
858
1022
  w.writeVarInt(msg.end_group);
859
1023
  w.writeUint8(Number(msg.subscriber_priority));
860
1024
  w.writeVarInt(msg.forward);
861
- encodeParams(msg.parameters, w);
1025
+ encodeMessageParams(msg.parameters, w);
862
1026
  }
863
1027
  function encodeSubscribeErrorPayload(msg, w) {
864
1028
  w.writeVarInt(msg.request_id);
@@ -872,14 +1036,31 @@ function encodePublishPayload(msg, w) {
872
1036
  w.writeVarInt(msg.request_id);
873
1037
  w.writeTuple(msg.track_namespace);
874
1038
  w.writeString(msg.track_name);
1039
+ w.writeVarInt(msg.track_alias);
1040
+ w.writeUint8(Number(msg.group_order));
1041
+ w.writeVarInt(msg.content_exists);
1042
+ if (msg.content_exists === 1n) {
1043
+ w.writeVarInt(msg.largest_location.group);
1044
+ w.writeVarInt(msg.largest_location.object);
1045
+ }
875
1046
  w.writeVarInt(msg.forward);
876
- encodeParams(msg.parameters, w);
1047
+ encodeMessageParams(msg.parameters, w);
877
1048
  }
878
1049
  function encodePublishOkPayload(msg, w) {
879
1050
  w.writeVarInt(msg.request_id);
880
- w.writeVarInt(msg.track_alias);
881
1051
  w.writeVarInt(msg.forward);
882
- encodeParams(msg.parameters, w);
1052
+ w.writeUint8(Number(msg.subscriber_priority));
1053
+ w.writeUint8(Number(msg.group_order));
1054
+ w.writeVarInt(msg.filter_type);
1055
+ const ft = msg.filter_type;
1056
+ if (ft >= FilterType.AbsoluteStart) {
1057
+ w.writeVarInt(msg.start_group);
1058
+ w.writeVarInt(msg.start_object);
1059
+ }
1060
+ if (ft === FilterType.AbsoluteRange) {
1061
+ w.writeVarInt(msg.end_group);
1062
+ }
1063
+ encodeMessageParams(msg.parameters, w);
883
1064
  }
884
1065
  function encodePublishErrorPayload(msg, w) {
885
1066
  w.writeVarInt(msg.request_id);
@@ -889,16 +1070,17 @@ function encodePublishErrorPayload(msg, w) {
889
1070
  function encodePublishDonePayload(msg, w) {
890
1071
  w.writeVarInt(msg.request_id);
891
1072
  w.writeVarInt(msg.status_code);
1073
+ w.writeVarInt(msg.stream_count);
892
1074
  w.writeString(msg.reason_phrase);
893
1075
  }
894
1076
  function encodePublishNamespacePayload(msg, w) {
895
1077
  w.writeVarInt(msg.request_id);
896
1078
  w.writeTuple(msg.track_namespace);
897
- encodeParams(msg.parameters, w);
1079
+ encodeMessageParams(msg.parameters, w);
898
1080
  }
899
1081
  function encodePublishNamespaceOkPayload(msg, w) {
900
1082
  w.writeVarInt(msg.request_id);
901
- encodeParams(msg.parameters, w);
1083
+ encodeMessageParams(msg.parameters, w);
902
1084
  }
903
1085
  function encodePublishNamespaceErrorPayload(msg, w) {
904
1086
  w.writeVarInt(msg.request_id);
@@ -906,21 +1088,21 @@ function encodePublishNamespaceErrorPayload(msg, w) {
906
1088
  w.writeString(msg.reason_phrase);
907
1089
  }
908
1090
  function encodePublishNamespaceDonePayload(msg, w) {
909
- w.writeVarInt(msg.request_id);
910
- w.writeVarInt(msg.status_code);
911
- w.writeString(msg.reason_phrase);
1091
+ w.writeTuple(msg.track_namespace);
912
1092
  }
913
1093
  function encodePublishNamespaceCancelPayload(msg, w) {
914
- w.writeVarInt(msg.request_id);
1094
+ w.writeTuple(msg.track_namespace);
1095
+ w.writeVarInt(msg.error_code);
1096
+ w.writeString(msg.reason_phrase);
915
1097
  }
916
1098
  function encodeSubscribeNamespacePayload(msg, w) {
917
1099
  w.writeVarInt(msg.request_id);
918
1100
  w.writeTuple(msg.namespace_prefix);
919
- encodeParams(msg.parameters, w);
1101
+ encodeMessageParams(msg.parameters, w);
920
1102
  }
921
1103
  function encodeSubscribeNamespaceOkPayload(msg, w) {
922
1104
  w.writeVarInt(msg.request_id);
923
- encodeParams(msg.parameters, w);
1105
+ encodeMessageParams(msg.parameters, w);
924
1106
  }
925
1107
  function encodeSubscribeNamespaceErrorPayload(msg, w) {
926
1108
  w.writeVarInt(msg.request_id);
@@ -928,22 +1110,34 @@ function encodeSubscribeNamespaceErrorPayload(msg, w) {
928
1110
  w.writeString(msg.reason_phrase);
929
1111
  }
930
1112
  function encodeUnsubscribeNamespacePayload(msg, w) {
931
- w.writeVarInt(msg.request_id);
1113
+ w.writeTuple(msg.track_namespace_prefix);
932
1114
  }
933
1115
  function encodeFetchPayload(msg, w) {
934
1116
  w.writeVarInt(msg.request_id);
935
- w.writeTuple(msg.track_namespace);
936
- w.writeString(msg.track_name);
937
- w.writeVarInt(msg.start_group);
938
- w.writeVarInt(msg.start_object);
939
- w.writeVarInt(msg.end_group);
940
- encodeParams(msg.parameters, w);
1117
+ w.writeUint8(Number(msg.subscriber_priority));
1118
+ w.writeUint8(Number(msg.group_order));
1119
+ w.writeVarInt(msg.fetch_type);
1120
+ const ft = msg.fetch_type;
1121
+ if (ft === FetchType.Standalone) {
1122
+ w.writeTuple(msg.track_namespace);
1123
+ w.writeString(msg.track_name);
1124
+ w.writeVarInt(msg.start_group);
1125
+ w.writeVarInt(msg.start_object);
1126
+ w.writeVarInt(msg.end_group);
1127
+ w.writeVarInt(msg.end_object);
1128
+ } else {
1129
+ w.writeVarInt(msg.joining_request_id);
1130
+ w.writeVarInt(msg.joining_start);
1131
+ }
1132
+ encodeMessageParams(msg.parameters, w);
941
1133
  }
942
1134
  function encodeFetchOkPayload(msg, w) {
943
1135
  w.writeVarInt(msg.request_id);
944
- w.writeVarInt(msg.track_alias);
1136
+ w.writeUint8(Number(msg.group_order));
945
1137
  w.writeVarInt(msg.end_of_track);
946
- encodeParams(msg.parameters, w);
1138
+ w.writeVarInt(msg.end_location.group);
1139
+ w.writeVarInt(msg.end_location.object);
1140
+ encodeMessageParams(msg.parameters, w);
947
1141
  }
948
1142
  function encodeFetchErrorPayload(msg, w) {
949
1143
  w.writeVarInt(msg.request_id);
@@ -957,17 +1151,28 @@ function encodeTrackStatusPayload(msg, w) {
957
1151
  w.writeVarInt(msg.request_id);
958
1152
  w.writeTuple(msg.track_namespace);
959
1153
  w.writeString(msg.track_name);
960
- encodeParams(msg.parameters, w);
1154
+ w.writeUint8(Number(msg.subscriber_priority));
1155
+ w.writeUint8(Number(msg.group_order));
1156
+ w.writeVarInt(msg.forward);
1157
+ w.writeVarInt(msg.filter_type);
1158
+ const ft = msg.filter_type;
1159
+ if (ft >= FilterType.AbsoluteStart) {
1160
+ w.writeVarInt(msg.start_group);
1161
+ w.writeVarInt(msg.start_object);
1162
+ }
1163
+ encodeMessageParams(msg.parameters, w);
961
1164
  }
962
1165
  function encodeTrackStatusOkPayload(msg, w) {
963
1166
  w.writeVarInt(msg.request_id);
964
- w.writeVarInt(msg.status_code);
965
- const sc = Number(msg.status_code);
966
- if (sc === 0 || sc === 3) {
967
- w.writeVarInt(msg.largest_group);
968
- w.writeVarInt(msg.largest_object);
1167
+ w.writeVarInt(msg.track_alias);
1168
+ w.writeVarInt(msg.expires);
1169
+ w.writeUint8(Number(msg.group_order));
1170
+ w.writeVarInt(msg.content_exists);
1171
+ if (msg.content_exists === 1n) {
1172
+ w.writeVarInt(msg.largest_location.group);
1173
+ w.writeVarInt(msg.largest_location.object);
969
1174
  }
970
- encodeParams(msg.parameters, w);
1175
+ encodeMessageParams(msg.parameters, w);
971
1176
  }
972
1177
  function encodeTrackStatusErrorPayload(msg, w) {
973
1178
  w.writeVarInt(msg.request_id);
@@ -996,12 +1201,12 @@ function decodeClientSetupPayload(r) {
996
1201
  for (let i = 0; i < numVersions; i++) {
997
1202
  supported_versions.push(r.readVarInt());
998
1203
  }
999
- const parameters = decodeParams(r);
1204
+ const parameters = decodeSetupParams(r);
1000
1205
  return { type: "client_setup", supported_versions, parameters };
1001
1206
  }
1002
1207
  function decodeServerSetupPayload(r) {
1003
1208
  const selected_version = r.readVarInt();
1004
- const parameters = decodeParams(r);
1209
+ const parameters = decodeSetupParams(r);
1005
1210
  return { type: "server_setup", selected_version, parameters };
1006
1211
  }
1007
1212
  function decodeSubscribePayload(r) {
@@ -1009,24 +1214,23 @@ function decodeSubscribePayload(r) {
1009
1214
  const track_namespace = r.readTuple();
1010
1215
  const track_name = r.readString();
1011
1216
  const subscriber_priority = BigInt(r.readUint8());
1012
- const group_order = r.readVarInt();
1217
+ const group_order = BigInt(r.readUint8());
1013
1218
  const forward = r.readVarInt();
1014
1219
  const filter_type = r.readVarInt();
1015
- const ft = Number(filter_type);
1016
- if (ft < 1 || ft > 4) {
1017
- throw new DecodeError("CONSTRAINT_VIOLATION", `Invalid filter_type: ${ft}`, r.offset);
1220
+ if (filter_type < FilterType.NextGroupStart || filter_type > FilterType.AbsoluteRange) {
1221
+ throw new DecodeError("CONSTRAINT_VIOLATION", `Invalid filter_type: ${filter_type}`, r.offset);
1018
1222
  }
1019
1223
  let start_group;
1020
1224
  let start_object;
1021
1225
  let end_group;
1022
- if (ft >= 3) {
1226
+ if (filter_type >= FilterType.AbsoluteStart) {
1023
1227
  start_group = r.readVarInt();
1024
1228
  start_object = r.readVarInt();
1025
1229
  }
1026
- if (ft === 4) {
1230
+ if (filter_type === FilterType.AbsoluteRange) {
1027
1231
  end_group = r.readVarInt();
1028
1232
  }
1029
- const parameters = decodeParams(r);
1233
+ const parameters = decodeMessageParams(r);
1030
1234
  const msg = {
1031
1235
  type: "subscribe",
1032
1236
  request_id,
@@ -1047,16 +1251,17 @@ function decodeSubscribeOkPayload(r) {
1047
1251
  const request_id = r.readVarInt();
1048
1252
  const track_alias = r.readVarInt();
1049
1253
  const expires = r.readVarInt();
1050
- const group_order = r.readVarInt();
1254
+ const group_order = BigInt(r.readUint8());
1051
1255
  const content_exists = r.readVarInt();
1052
- let largest_group;
1053
- let largest_object;
1054
- if (Number(content_exists) === 1) {
1055
- largest_group = r.readVarInt();
1056
- largest_object = r.readVarInt();
1256
+ let largest_location;
1257
+ if (content_exists === 1n) {
1258
+ largest_location = {
1259
+ group: r.readVarInt(),
1260
+ object: r.readVarInt()
1261
+ };
1057
1262
  }
1058
- const parameters = decodeParams(r);
1059
- const msg = {
1263
+ const parameters = decodeMessageParams(r);
1264
+ return {
1060
1265
  type: "subscribe_ok",
1061
1266
  request_id,
1062
1267
  track_alias,
@@ -1064,21 +1269,22 @@ function decodeSubscribeOkPayload(r) {
1064
1269
  group_order,
1065
1270
  content_exists,
1066
1271
  parameters,
1067
- ...largest_group !== void 0 ? { largest_group, largest_object } : {}
1272
+ ...largest_location !== void 0 ? { largest_location } : {}
1068
1273
  };
1069
- return msg;
1070
1274
  }
1071
1275
  function decodeSubscribeUpdatePayload(r) {
1072
1276
  const request_id = r.readVarInt();
1277
+ const subscription_request_id = r.readVarInt();
1073
1278
  const start_group = r.readVarInt();
1074
1279
  const start_object = r.readVarInt();
1075
1280
  const end_group = r.readVarInt();
1076
1281
  const subscriber_priority = BigInt(r.readUint8());
1077
1282
  const forward = r.readVarInt();
1078
- const parameters = decodeParams(r);
1283
+ const parameters = decodeMessageParams(r);
1079
1284
  return {
1080
1285
  type: "subscribe_update",
1081
1286
  request_id,
1287
+ subscription_request_id,
1082
1288
  start_group,
1083
1289
  start_object,
1084
1290
  end_group,
@@ -1101,16 +1307,61 @@ function decodePublishPayload(r) {
1101
1307
  const request_id = r.readVarInt();
1102
1308
  const track_namespace = r.readTuple();
1103
1309
  const track_name = r.readString();
1310
+ const track_alias = r.readVarInt();
1311
+ const group_order = BigInt(r.readUint8());
1312
+ const content_exists = r.readVarInt();
1313
+ let largest_location;
1314
+ if (content_exists === 1n) {
1315
+ largest_location = {
1316
+ group: r.readVarInt(),
1317
+ object: r.readVarInt()
1318
+ };
1319
+ }
1104
1320
  const forward = r.readVarInt();
1105
- const parameters = decodeParams(r);
1106
- return { type: "publish", request_id, track_namespace, track_name, forward, parameters };
1321
+ const parameters = decodeMessageParams(r);
1322
+ return {
1323
+ type: "publish",
1324
+ request_id,
1325
+ track_namespace,
1326
+ track_name,
1327
+ track_alias,
1328
+ group_order,
1329
+ content_exists,
1330
+ forward,
1331
+ parameters,
1332
+ ...largest_location !== void 0 ? { largest_location } : {}
1333
+ };
1107
1334
  }
1108
1335
  function decodePublishOkPayload(r) {
1109
1336
  const request_id = r.readVarInt();
1110
- const track_alias = r.readVarInt();
1111
1337
  const forward = r.readVarInt();
1112
- const parameters = decodeParams(r);
1113
- return { type: "publish_ok", request_id, track_alias, forward, parameters };
1338
+ const subscriber_priority = BigInt(r.readUint8());
1339
+ const group_order = BigInt(r.readUint8());
1340
+ const filter_type = r.readVarInt();
1341
+ let start_group;
1342
+ let start_object;
1343
+ let end_group;
1344
+ if (filter_type >= FilterType.AbsoluteStart) {
1345
+ start_group = r.readVarInt();
1346
+ start_object = r.readVarInt();
1347
+ }
1348
+ if (filter_type === FilterType.AbsoluteRange) {
1349
+ end_group = r.readVarInt();
1350
+ }
1351
+ const parameters = decodeMessageParams(r);
1352
+ const msg = {
1353
+ type: "publish_ok",
1354
+ request_id,
1355
+ forward,
1356
+ subscriber_priority,
1357
+ group_order,
1358
+ filter_type,
1359
+ parameters
1360
+ };
1361
+ if (start_group !== void 0) msg.start_group = start_group;
1362
+ if (start_object !== void 0) msg.start_object = start_object;
1363
+ if (end_group !== void 0) msg.end_group = end_group;
1364
+ return msg;
1114
1365
  }
1115
1366
  function decodePublishErrorPayload(r) {
1116
1367
  const request_id = r.readVarInt();
@@ -1121,82 +1372,147 @@ function decodePublishErrorPayload(r) {
1121
1372
  function decodePublishDonePayload(r) {
1122
1373
  const request_id = r.readVarInt();
1123
1374
  const status_code = r.readVarInt();
1375
+ const stream_count = r.readVarInt();
1124
1376
  const reason_phrase = r.readString();
1125
- return { type: "publish_done", request_id, status_code, reason_phrase };
1377
+ return {
1378
+ type: "publish_done",
1379
+ request_id,
1380
+ status_code,
1381
+ stream_count,
1382
+ reason_phrase
1383
+ };
1126
1384
  }
1127
1385
  function decodePublishNamespacePayload(r) {
1128
1386
  const request_id = r.readVarInt();
1129
1387
  const track_namespace = r.readTuple();
1130
- const parameters = decodeParams(r);
1388
+ const parameters = decodeMessageParams(r);
1131
1389
  return { type: "publish_namespace", request_id, track_namespace, parameters };
1132
1390
  }
1133
1391
  function decodePublishNamespaceOkPayload(r) {
1134
1392
  const request_id = r.readVarInt();
1135
- const parameters = decodeParams(r);
1393
+ const parameters = decodeMessageParams(r);
1136
1394
  return { type: "publish_namespace_ok", request_id, parameters };
1137
1395
  }
1138
1396
  function decodePublishNamespaceErrorPayload(r) {
1139
1397
  const request_id = r.readVarInt();
1140
1398
  const error_code = r.readVarInt();
1141
1399
  const reason_phrase = r.readString();
1142
- return { type: "publish_namespace_error", request_id, error_code, reason_phrase };
1400
+ return {
1401
+ type: "publish_namespace_error",
1402
+ request_id,
1403
+ error_code,
1404
+ reason_phrase
1405
+ };
1143
1406
  }
1144
1407
  function decodePublishNamespaceDonePayload(r) {
1145
- const request_id = r.readVarInt();
1146
- const status_code = r.readVarInt();
1147
- const reason_phrase = r.readString();
1148
- return { type: "publish_namespace_done", request_id, status_code, reason_phrase };
1408
+ const track_namespace = r.readTuple();
1409
+ return { type: "publish_namespace_done", track_namespace };
1149
1410
  }
1150
1411
  function decodePublishNamespaceCancelPayload(r) {
1151
- const request_id = r.readVarInt();
1152
- return { type: "publish_namespace_cancel", request_id };
1412
+ const track_namespace = r.readTuple();
1413
+ const error_code = r.readVarInt();
1414
+ const reason_phrase = r.readString();
1415
+ return {
1416
+ type: "publish_namespace_cancel",
1417
+ track_namespace,
1418
+ error_code,
1419
+ reason_phrase
1420
+ };
1153
1421
  }
1154
1422
  function decodeSubscribeNamespacePayload(r) {
1155
1423
  const request_id = r.readVarInt();
1156
1424
  const namespace_prefix = r.readTuple();
1157
- const parameters = decodeParams(r);
1158
- return { type: "subscribe_namespace", request_id, namespace_prefix, parameters };
1425
+ const parameters = decodeMessageParams(r);
1426
+ return {
1427
+ type: "subscribe_namespace",
1428
+ request_id,
1429
+ namespace_prefix,
1430
+ parameters
1431
+ };
1159
1432
  }
1160
1433
  function decodeSubscribeNamespaceOkPayload(r) {
1161
1434
  const request_id = r.readVarInt();
1162
- const parameters = decodeParams(r);
1435
+ const parameters = decodeMessageParams(r);
1163
1436
  return { type: "subscribe_namespace_ok", request_id, parameters };
1164
1437
  }
1165
1438
  function decodeSubscribeNamespaceErrorPayload(r) {
1166
1439
  const request_id = r.readVarInt();
1167
1440
  const error_code = r.readVarInt();
1168
1441
  const reason_phrase = r.readString();
1169
- return { type: "subscribe_namespace_error", request_id, error_code, reason_phrase };
1442
+ return {
1443
+ type: "subscribe_namespace_error",
1444
+ request_id,
1445
+ error_code,
1446
+ reason_phrase
1447
+ };
1170
1448
  }
1171
1449
  function decodeUnsubscribeNamespacePayload(r) {
1172
- const request_id = r.readVarInt();
1173
- return { type: "unsubscribe_namespace", request_id };
1450
+ const track_namespace_prefix = r.readTuple();
1451
+ return { type: "unsubscribe_namespace", track_namespace_prefix };
1174
1452
  }
1175
1453
  function decodeFetchPayload(r) {
1176
1454
  const request_id = r.readVarInt();
1177
- const track_namespace = r.readTuple();
1178
- const track_name = r.readString();
1179
- const start_group = r.readVarInt();
1180
- const start_object = r.readVarInt();
1181
- const end_group = r.readVarInt();
1182
- const parameters = decodeParams(r);
1183
- return {
1184
- type: "fetch",
1185
- request_id,
1186
- track_namespace,
1187
- track_name,
1188
- start_group,
1189
- start_object,
1190
- end_group,
1191
- parameters
1192
- };
1455
+ const subscriber_priority = BigInt(r.readUint8());
1456
+ const group_order = BigInt(r.readUint8());
1457
+ const fetch_type = r.readVarInt();
1458
+ if (fetch_type < FetchType.Standalone || fetch_type > FetchType.AbsoluteJoining) {
1459
+ throw new DecodeError("CONSTRAINT_VIOLATION", `Invalid fetch_type: ${fetch_type}`, r.offset);
1460
+ }
1461
+ if (fetch_type === FetchType.Standalone) {
1462
+ const track_namespace = r.readTuple();
1463
+ const track_name = r.readString();
1464
+ const start_group = r.readVarInt();
1465
+ const start_object = r.readVarInt();
1466
+ const end_group = r.readVarInt();
1467
+ const end_object = r.readVarInt();
1468
+ const parameters = decodeMessageParams(r);
1469
+ return {
1470
+ type: "fetch",
1471
+ request_id,
1472
+ subscriber_priority,
1473
+ group_order,
1474
+ fetch_type,
1475
+ track_namespace,
1476
+ track_name,
1477
+ start_group,
1478
+ start_object,
1479
+ end_group,
1480
+ end_object,
1481
+ parameters
1482
+ };
1483
+ } else {
1484
+ const joining_request_id = r.readVarInt();
1485
+ const joining_start = r.readVarInt();
1486
+ const parameters = decodeMessageParams(r);
1487
+ return {
1488
+ type: "fetch",
1489
+ request_id,
1490
+ subscriber_priority,
1491
+ group_order,
1492
+ fetch_type,
1493
+ joining_request_id,
1494
+ joining_start,
1495
+ parameters
1496
+ };
1497
+ }
1193
1498
  }
1194
1499
  function decodeFetchOkPayload(r) {
1195
1500
  const request_id = r.readVarInt();
1196
- const track_alias = r.readVarInt();
1501
+ const group_order = BigInt(r.readUint8());
1197
1502
  const end_of_track = r.readVarInt();
1198
- const parameters = decodeParams(r);
1199
- return { type: "fetch_ok", request_id, track_alias, end_of_track, parameters };
1503
+ const end_location = {
1504
+ group: r.readVarInt(),
1505
+ object: r.readVarInt()
1506
+ };
1507
+ const parameters = decodeMessageParams(r);
1508
+ return {
1509
+ type: "fetch_ok",
1510
+ request_id,
1511
+ group_order,
1512
+ end_of_track,
1513
+ end_location,
1514
+ parameters
1515
+ };
1200
1516
  }
1201
1517
  function decodeFetchErrorPayload(r) {
1202
1518
  const request_id = r.readVarInt();
@@ -1212,26 +1528,55 @@ function decodeTrackStatusPayload(r) {
1212
1528
  const request_id = r.readVarInt();
1213
1529
  const track_namespace = r.readTuple();
1214
1530
  const track_name = r.readString();
1215
- const parameters = decodeParams(r);
1216
- return { type: "track_status", request_id, track_namespace, track_name, parameters };
1531
+ const subscriber_priority = BigInt(r.readUint8());
1532
+ const group_order = BigInt(r.readUint8());
1533
+ const forward = r.readVarInt();
1534
+ const filter_type = r.readVarInt();
1535
+ let start_group;
1536
+ let start_object;
1537
+ if (filter_type >= FilterType.AbsoluteStart) {
1538
+ start_group = r.readVarInt();
1539
+ start_object = r.readVarInt();
1540
+ }
1541
+ const parameters = decodeMessageParams(r);
1542
+ const msg = {
1543
+ type: "track_status",
1544
+ request_id,
1545
+ track_namespace,
1546
+ track_name,
1547
+ subscriber_priority,
1548
+ group_order,
1549
+ forward,
1550
+ filter_type,
1551
+ parameters
1552
+ };
1553
+ if (start_group !== void 0) msg.start_group = start_group;
1554
+ if (start_object !== void 0) msg.start_object = start_object;
1555
+ return msg;
1217
1556
  }
1218
1557
  function decodeTrackStatusOkPayload(r) {
1219
1558
  const request_id = r.readVarInt();
1220
- const status_code = r.readVarInt();
1221
- const sc = Number(status_code);
1222
- let largest_group;
1223
- let largest_object;
1224
- if (sc === 0 || sc === 3) {
1225
- largest_group = r.readVarInt();
1226
- largest_object = r.readVarInt();
1559
+ const track_alias = r.readVarInt();
1560
+ const expires = r.readVarInt();
1561
+ const group_order = BigInt(r.readUint8());
1562
+ const content_exists = r.readVarInt();
1563
+ let largest_location;
1564
+ if (content_exists === 1n) {
1565
+ largest_location = {
1566
+ group: r.readVarInt(),
1567
+ object: r.readVarInt()
1568
+ };
1227
1569
  }
1228
- const parameters = decodeParams(r);
1570
+ const parameters = decodeMessageParams(r);
1229
1571
  return {
1230
1572
  type: "track_status_ok",
1231
1573
  request_id,
1232
- status_code,
1574
+ track_alias,
1575
+ expires,
1576
+ group_order,
1577
+ content_exists,
1233
1578
  parameters,
1234
- ...largest_group !== void 0 ? { largest_group, largest_object } : {}
1579
+ ...largest_location !== void 0 ? { largest_location } : {}
1235
1580
  };
1236
1581
  }
1237
1582
  function decodeTrackStatusErrorPayload(r) {
@@ -1436,7 +1781,7 @@ function createStreamDecoder() {
1436
1781
  }
1437
1782
  function createDraft14Codec() {
1438
1783
  return {
1439
- draft: "draft-ietf-moq-transport-14",
1784
+ draft: "14",
1440
1785
  encodeMessage,
1441
1786
  decodeMessage,
1442
1787
  encodeSubgroupStream,
@@ -1489,6 +1834,9 @@ export {
1489
1834
  PARAM_MAX_REQUEST_ID,
1490
1835
  MESSAGE_TYPE_MAP,
1491
1836
  MESSAGE_ID_MAP,
1837
+ FilterType,
1838
+ GroupOrder,
1839
+ FetchType,
1492
1840
  encodeSubgroupStream,
1493
1841
  encodeDatagram,
1494
1842
  encodeFetchStream,