@moqtap/codec 0.2.3 → 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 (299) 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/draft10-session.cjs +2 -2
  72. package/dist/draft10-session.d.cts +6 -6
  73. package/dist/draft10-session.d.ts +6 -6
  74. package/dist/draft10-session.js +1 -1
  75. package/dist/draft10.cjs +8 -5
  76. package/dist/draft10.d.cts +14 -12
  77. package/dist/draft10.d.ts +14 -12
  78. package/dist/draft10.js +16 -13
  79. package/dist/draft11-session.cjs +2 -2
  80. package/dist/draft11-session.d.cts +6 -6
  81. package/dist/draft11-session.d.ts +6 -6
  82. package/dist/draft11-session.js +1 -1
  83. package/dist/draft11.cjs +8 -5
  84. package/dist/draft11.d.cts +14 -12
  85. package/dist/draft11.d.ts +14 -12
  86. package/dist/draft11.js +16 -13
  87. package/dist/draft12-session.cjs +2 -2
  88. package/dist/draft12-session.d.cts +6 -6
  89. package/dist/draft12-session.d.ts +6 -6
  90. package/dist/draft12-session.js +1 -1
  91. package/dist/draft12.cjs +8 -5
  92. package/dist/draft12.d.cts +16 -14
  93. package/dist/draft12.d.ts +16 -14
  94. package/dist/draft12.js +16 -13
  95. package/dist/draft13-session.cjs +2 -2
  96. package/dist/draft13-session.d.cts +6 -6
  97. package/dist/draft13-session.d.ts +6 -6
  98. package/dist/draft13-session.js +1 -1
  99. package/dist/draft13.cjs +8 -5
  100. package/dist/draft13.d.cts +16 -14
  101. package/dist/draft13.d.ts +16 -14
  102. package/dist/draft13.js +16 -13
  103. package/dist/draft14-session.cjs +2 -2
  104. package/dist/draft14-session.d.cts +6 -6
  105. package/dist/draft14-session.d.ts +6 -6
  106. package/dist/draft14-session.js +1 -1
  107. package/dist/draft14.cjs +14 -5
  108. package/dist/draft14.d.cts +14 -12
  109. package/dist/draft14.d.ts +14 -12
  110. package/dist/draft14.js +13 -4
  111. package/dist/draft15-session.cjs +2 -2
  112. package/dist/draft15-session.d.cts +6 -6
  113. package/dist/draft15-session.d.ts +6 -6
  114. package/dist/draft15-session.js +1 -1
  115. package/dist/draft15.cjs +8 -5
  116. package/dist/draft15.d.cts +14 -12
  117. package/dist/draft15.d.ts +14 -12
  118. package/dist/draft15.js +16 -13
  119. package/dist/draft16-session.cjs +2 -2
  120. package/dist/draft16-session.d.cts +6 -6
  121. package/dist/draft16-session.d.ts +6 -6
  122. package/dist/draft16-session.js +1 -1
  123. package/dist/draft16.cjs +8 -5
  124. package/dist/draft16.d.cts +14 -12
  125. package/dist/draft16.d.ts +14 -12
  126. package/dist/draft16.js +16 -13
  127. package/dist/draft17-session.cjs +2 -2
  128. package/dist/draft17-session.d.cts +7 -7
  129. package/dist/draft17-session.d.ts +7 -7
  130. package/dist/draft17-session.js +1 -1
  131. package/dist/draft17.cjs +8 -5
  132. package/dist/draft17.d.cts +11 -9
  133. package/dist/draft17.d.ts +11 -9
  134. package/dist/draft17.js +16 -13
  135. package/dist/draft7-session.cjs +2 -2
  136. package/dist/draft7-session.d.cts +6 -5
  137. package/dist/draft7-session.d.ts +6 -5
  138. package/dist/draft7-session.js +1 -1
  139. package/dist/draft7.cjs +71 -14
  140. package/dist/draft7.d.cts +53 -134
  141. package/dist/draft7.d.ts +53 -134
  142. package/dist/draft7.js +76 -19
  143. package/dist/draft8-session.cjs +2 -2
  144. package/dist/draft8-session.d.cts +6 -6
  145. package/dist/draft8-session.d.ts +6 -6
  146. package/dist/draft8-session.js +1 -1
  147. package/dist/draft8.cjs +8 -5
  148. package/dist/draft8.d.cts +14 -12
  149. package/dist/draft8.d.ts +14 -12
  150. package/dist/draft8.js +7 -4
  151. package/dist/draft9-session.cjs +2 -2
  152. package/dist/draft9-session.d.cts +6 -6
  153. package/dist/draft9-session.d.ts +6 -6
  154. package/dist/draft9-session.js +1 -1
  155. package/dist/draft9.cjs +8 -5
  156. package/dist/draft9.d.cts +14 -12
  157. package/dist/draft9.d.ts +14 -12
  158. package/dist/draft9.js +7 -4
  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 +28 -9
  167. package/dist/session.d.ts +28 -9
  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.ts → types-0IWbU9Z_.d.cts} +36 -36
  172. package/dist/{types-B0FT5Qs2.d.cts → 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.ts → types-Br7fm2mf.d.cts} +48 -26
  178. package/dist/{types-8gUGeMgs.d.cts → 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 +62 -23
  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/types-QNXoxC9Y.d.cts +0 -236
  296. package/dist/types-QNXoxC9Y.d.ts +0 -236
  297. package/src/drafts/draft07/announce-fsm.ts +0 -2
  298. package/src/drafts/draft07/parameters.ts +0 -12
  299. package/src/drafts/draft07/subscription-fsm.ts +0 -3
@@ -1,357 +1,386 @@
1
- // Draft-16 specific message types
2
- // Field names use snake_case to match test vector JSON
3
-
4
- // Unknown parameter for passthrough
5
- export interface UnknownParam {
6
- readonly id: string; // e.g. "0x21"
7
- readonly length: number;
8
- readonly raw_hex: string; // e.g. "deadbeef"
9
- }
10
-
11
- // Setup parameters (constant namespace across versions)
12
- export interface Draft16SetupParams {
13
- path?: string; // 0x01 odd
14
- max_request_id?: bigint; // 0x02 even
15
- max_auth_token_cache_size?: bigint; // 0x04 even
16
- authority?: string; // 0x05 odd
17
- moqt_implementation?: string; // 0x07 odd
18
- unknown?: UnknownParam[];
19
- }
20
-
21
- // Subscription filter parameter
22
- export interface SubscriptionFilter {
23
- readonly filter_type: bigint;
24
- readonly start_group?: bigint;
25
- readonly start_object?: bigint;
26
- readonly end_group?: bigint;
27
- }
28
-
29
- // Largest object location parameter
30
- export interface LargestObject {
31
- readonly group: bigint;
32
- readonly object: bigint;
33
- }
34
-
35
- // Version-specific parameters (well-known + unknown)
36
- export interface Draft16Params {
37
- expires?: bigint; // 0x08 even
38
- largest_object?: LargestObject; // 0x09 odd (length-prefixed)
39
- subscriber_priority?: bigint; // 0x20 even
40
- subscription_filter?: SubscriptionFilter; // 0x21 odd (length-prefixed)
41
- group_order?: bigint; // 0x22 even
42
- unknown?: UnknownParam[];
43
- }
44
-
45
- // Draft-16 message type tag union
46
- export type Draft16MessageType =
47
- | "client_setup"
48
- | "server_setup"
49
- | "subscribe"
50
- | "subscribe_ok"
51
- | "request_update"
52
- | "unsubscribe"
53
- | "publish"
54
- | "publish_ok"
55
- | "publish_done"
56
- | "publish_namespace"
57
- | "publish_namespace_done"
58
- | "publish_namespace_cancel"
59
- | "subscribe_namespace"
60
- | "namespace"
61
- | "namespace_done"
62
- | "fetch"
63
- | "fetch_ok"
64
- | "fetch_cancel"
65
- | "track_status"
66
- | "request_ok"
67
- | "request_error"
68
- | "goaway"
69
- | "max_request_id"
70
- | "requests_blocked";
71
-
72
- // Base
73
- export interface Draft16BaseMessage {
74
- readonly type: Draft16MessageType;
75
- }
76
-
77
- // Setup — ALPN handles version negotiation, no versions in messages
78
- export interface Draft16ClientSetup extends Draft16BaseMessage {
79
- readonly type: "client_setup";
80
- readonly parameters: Draft16SetupParams;
81
- }
82
-
83
- export interface Draft16ServerSetup extends Draft16BaseMessage {
84
- readonly type: "server_setup";
85
- readonly parameters: Draft16SetupParams;
86
- }
87
-
88
- // Subscribe — fields moved to parameters
89
- export interface Draft16Subscribe extends Draft16BaseMessage {
90
- readonly type: "subscribe";
91
- readonly request_id: bigint;
92
- readonly track_namespace: string[];
93
- readonly track_name: string;
94
- readonly parameters: Draft16Params;
95
- }
96
-
97
- export interface Draft16SubscribeOk extends Draft16BaseMessage {
98
- readonly type: "subscribe_ok";
99
- readonly request_id: bigint;
100
- readonly track_alias: bigint;
101
- readonly parameters: Draft16Params;
102
- }
103
-
104
- // Renamed from subscribe_update in draft-15
105
- export interface Draft16RequestUpdate extends Draft16BaseMessage {
106
- readonly type: "request_update";
107
- readonly request_id: bigint;
108
- readonly existing_request_id: bigint;
109
- readonly parameters: Draft16Params;
110
- }
111
-
112
- export interface Draft16Unsubscribe extends Draft16BaseMessage {
113
- readonly type: "unsubscribe";
114
- readonly request_id: bigint;
115
- }
116
-
117
- // Publish
118
- export interface Draft16Publish extends Draft16BaseMessage {
119
- readonly type: "publish";
120
- readonly request_id: bigint;
121
- readonly track_namespace: string[];
122
- readonly track_name: string;
123
- readonly track_alias: bigint;
124
- readonly parameters: Draft16Params;
125
- }
126
-
127
- export interface Draft16PublishOk extends Draft16BaseMessage {
128
- readonly type: "publish_ok";
129
- readonly request_id: bigint;
130
- readonly parameters: Draft16Params;
131
- }
132
-
133
- export interface Draft16PublishDone extends Draft16BaseMessage {
134
- readonly type: "publish_done";
135
- readonly request_id: bigint;
136
- readonly status_code: bigint;
137
- readonly stream_count: bigint;
138
- readonly reason_phrase: string;
139
- }
140
-
141
- // Namespace
142
- export interface Draft16PublishNamespace extends Draft16BaseMessage {
143
- readonly type: "publish_namespace";
144
- readonly request_id: bigint;
145
- readonly track_namespace: string[];
146
- readonly parameters: Draft16Params;
147
- }
148
-
149
- // Simplified in draft-16: just request_id
150
- export interface Draft16PublishNamespaceDone extends Draft16BaseMessage {
151
- readonly type: "publish_namespace_done";
152
- readonly request_id: bigint;
153
- }
154
-
155
- // Changed in draft-16: request_id + error_code + reason_phrase
156
- export interface Draft16PublishNamespaceCancel extends Draft16BaseMessage {
157
- readonly type: "publish_namespace_cancel";
158
- readonly request_id: bigint;
159
- readonly error_code: bigint;
160
- readonly reason_phrase: string;
161
- }
162
-
163
- // subscribe_namespace gains subscribe_options in draft-16
164
- export interface Draft16SubscribeNamespace extends Draft16BaseMessage {
165
- readonly type: "subscribe_namespace";
166
- readonly request_id: bigint;
167
- readonly namespace_prefix: string[];
168
- readonly subscribe_options: bigint;
169
- readonly parameters: Draft16Params;
170
- }
171
-
172
- // New in draft-16: NAMESPACE message
173
- export interface Draft16Namespace extends Draft16BaseMessage {
174
- readonly type: "namespace";
175
- readonly namespace_suffix: string[];
176
- }
177
-
178
- // New in draft-16: NAMESPACE_DONE message
179
- export interface Draft16NamespaceDone extends Draft16BaseMessage {
180
- readonly type: "namespace_done";
181
- readonly namespace_suffix: string[];
182
- }
183
-
184
- // unsubscribe_namespace is REMOVED in draft-16
185
-
186
- // Fetch — same structure as draft-15
187
- export interface StandaloneFetch {
188
- readonly track_namespace: string[];
189
- readonly track_name: string;
190
- readonly start_group: bigint;
191
- readonly start_object: bigint;
192
- readonly end_group: bigint;
193
- readonly end_object: bigint;
194
- }
195
-
196
- export interface JoiningFetch {
197
- readonly joining_request_id: bigint;
198
- readonly joining_start: bigint;
199
- }
200
-
201
- export interface Draft16Fetch extends Draft16BaseMessage {
202
- readonly type: "fetch";
203
- readonly request_id: bigint;
204
- readonly fetch_type: bigint;
205
- readonly standalone?: StandaloneFetch;
206
- readonly joining?: JoiningFetch;
207
- readonly parameters: Draft16Params;
208
- }
209
-
210
- export interface Draft16FetchOk extends Draft16BaseMessage {
211
- readonly type: "fetch_ok";
212
- readonly request_id: bigint;
213
- readonly end_of_track: number; // uint8
214
- readonly end_group: bigint;
215
- readonly end_object: bigint;
216
- readonly parameters: Draft16Params;
217
- }
218
-
219
- export interface Draft16FetchCancel extends Draft16BaseMessage {
220
- readonly type: "fetch_cancel";
221
- readonly request_id: bigint;
222
- }
223
-
224
- // Track Status
225
- export interface Draft16TrackStatus extends Draft16BaseMessage {
226
- readonly type: "track_status";
227
- readonly request_id: bigint;
228
- readonly track_namespace: string[];
229
- readonly track_name: string;
230
- readonly parameters: Draft16Params;
231
- }
232
-
233
- // Consolidated response messages
234
- export interface Draft16RequestOk extends Draft16BaseMessage {
235
- readonly type: "request_ok";
236
- readonly request_id: bigint;
237
- readonly parameters: Draft16Params;
238
- }
239
-
240
- // request_error gains retry_interval in draft-16
241
- export interface Draft16RequestError extends Draft16BaseMessage {
242
- readonly type: "request_error";
243
- readonly request_id: bigint;
244
- readonly error_code: bigint;
245
- readonly retry_interval: bigint;
246
- readonly reason_phrase: string;
247
- }
248
-
249
- // Session Control
250
- export interface Draft16GoAway extends Draft16BaseMessage {
251
- readonly type: "goaway";
252
- readonly new_session_uri: string;
253
- }
254
-
255
- export interface Draft16MaxRequestId extends Draft16BaseMessage {
256
- readonly type: "max_request_id";
257
- readonly max_request_id: bigint;
258
- }
259
-
260
- export interface Draft16RequestsBlocked extends Draft16BaseMessage {
261
- readonly type: "requests_blocked";
262
- readonly maximum_request_id: bigint;
263
- }
264
-
265
- // Union of all draft-16 control messages
266
- export type Draft16Message =
267
- | Draft16ClientSetup
268
- | Draft16ServerSetup
269
- | Draft16Subscribe
270
- | Draft16SubscribeOk
271
- | Draft16RequestUpdate
272
- | Draft16Unsubscribe
273
- | Draft16Publish
274
- | Draft16PublishOk
275
- | Draft16PublishDone
276
- | Draft16PublishNamespace
277
- | Draft16PublishNamespaceDone
278
- | Draft16PublishNamespaceCancel
279
- | Draft16SubscribeNamespace
280
- | Draft16Namespace
281
- | Draft16NamespaceDone
282
- | Draft16Fetch
283
- | Draft16FetchOk
284
- | Draft16FetchCancel
285
- | Draft16TrackStatus
286
- | Draft16RequestOk
287
- | Draft16RequestError
288
- | Draft16GoAway
289
- | Draft16MaxRequestId
290
- | Draft16RequestsBlocked;
291
-
292
- // Data stream types (same as draft-15)
293
- export interface ObjectPayload {
294
- readonly type: "object";
295
- readonly byteOffset: number;
296
- readonly payloadByteOffset: number;
297
- readonly objectId: bigint;
298
- readonly payloadLength: number;
299
- readonly status?: bigint;
300
- readonly extensionData: Uint8Array;
301
- readonly payload: Uint8Array;
302
- }
303
-
304
- export interface SubgroupStream {
305
- readonly type: "subgroup";
306
- readonly headerType: number; // stream type byte (0x10-0x1D or 0x30-0x3D)
307
- readonly trackAlias: bigint;
308
- readonly groupId: bigint;
309
- readonly subgroupId: bigint;
310
- readonly publisherPriority: number;
311
- readonly objects: ObjectPayload[];
312
- }
313
-
314
- export interface DatagramObject {
315
- readonly type: "datagram";
316
- readonly datagramType: number;
317
- readonly trackAlias: bigint;
318
- readonly groupId: bigint;
319
- readonly objectId: bigint;
320
- readonly publisherPriority: number;
321
- readonly endOfGroup?: boolean;
322
- readonly objectStatus?: bigint;
323
- readonly payloadLength: number;
324
- readonly payload: Uint8Array;
325
- }
326
-
327
- export interface FetchObjectPayload extends ObjectPayload {
328
- readonly serializationFlags: number;
329
- readonly groupId: bigint;
330
- readonly subgroupId: bigint;
331
- readonly publisherPriority: number;
332
- }
333
-
334
- export interface FetchStream {
335
- readonly type: "fetch";
336
- readonly requestId: bigint;
337
- readonly objects: FetchObjectPayload[];
338
- }
339
-
340
- export type Draft16DataStream = SubgroupStream | DatagramObject | FetchStream;
341
-
342
- // Streaming data stream decoder types
343
- export interface SubgroupStreamHeader {
344
- readonly type: "subgroup_header";
345
- readonly trackAlias: bigint;
346
- readonly groupId: bigint;
347
- readonly subgroupId: bigint;
348
- readonly publisherPriority: number;
349
- }
350
-
351
- export interface FetchStreamHeader {
352
- readonly type: "fetch_header";
353
- readonly requestId: bigint;
354
- }
355
-
356
- export type DataStreamHeader = SubgroupStreamHeader | FetchStreamHeader;
357
- export type DataStreamEvent = DataStreamHeader | ObjectPayload;
1
+ // Draft-16 specific message types
2
+ // Field names use snake_case to match test vector JSON
3
+
4
+ // Unknown parameter for passthrough
5
+ export interface UnknownParam {
6
+ readonly id: string // e.g. "0x21"
7
+ readonly length: number
8
+ readonly raw_hex: string // e.g. "deadbeef"
9
+ }
10
+
11
+ // Authorization token parameter (nested structure)
12
+ export interface AuthorizationToken {
13
+ readonly alias_type: bigint
14
+ readonly token_alias?: bigint
15
+ readonly token_type?: bigint
16
+ readonly token_value_hex?: string
17
+ }
18
+
19
+ // Setup parameters (constant namespace across versions)
20
+ export interface Draft16SetupParams {
21
+ path?: string // 0x01 odd
22
+ max_request_id?: bigint // 0x02 even
23
+ authorization_token?: AuthorizationToken // 0x03 odd
24
+ max_auth_token_cache_size?: bigint // 0x04 even
25
+ authority?: string // 0x05 odd
26
+ moqt_implementation?: string // 0x07 odd
27
+ unknown?: UnknownParam[]
28
+ }
29
+
30
+ // Subscription filter parameter
31
+ export interface SubscriptionFilter {
32
+ readonly filter_type: bigint
33
+ readonly start_group?: bigint
34
+ readonly start_object?: bigint
35
+ readonly end_group?: bigint
36
+ }
37
+
38
+ // Largest object location parameter
39
+ export interface LargestObject {
40
+ readonly group: bigint
41
+ readonly object: bigint
42
+ }
43
+
44
+ // Track extensions (separate parameter set in draft-16)
45
+ export interface Draft16TrackExtensions {
46
+ delivery_timeout?: bigint // 0x02 even
47
+ max_cache_duration?: bigint // 0x04 even
48
+ default_publisher_priority?: bigint // 0x0e even
49
+ unknown?: UnknownParam[]
50
+ }
51
+
52
+ // Version-specific parameters (well-known + unknown)
53
+ export interface Draft16Params {
54
+ delivery_timeout?: bigint // 0x02 even
55
+ authorization_token?: AuthorizationToken // 0x03 odd
56
+ max_cache_duration?: bigint // 0x04 even
57
+ expires?: bigint // 0x08 even
58
+ largest_object?: LargestObject // 0x09 odd (length-prefixed)
59
+ publisher_priority?: bigint // 0x0e even
60
+ forward?: bigint // 0x10 even
61
+ subscriber_priority?: bigint // 0x20 even
62
+ subscription_filter?: SubscriptionFilter // 0x21 odd (length-prefixed)
63
+ group_order?: bigint // 0x22 even
64
+ dynamic_groups?: bigint // 0x30 even
65
+ new_group_request?: bigint // 0x32 even
66
+ unknown?: UnknownParam[]
67
+ }
68
+
69
+ // Draft-16 message type tag union
70
+ export type Draft16MessageType =
71
+ | 'client_setup'
72
+ | 'server_setup'
73
+ | 'subscribe'
74
+ | 'subscribe_ok'
75
+ | 'request_update'
76
+ | 'unsubscribe'
77
+ | 'publish'
78
+ | 'publish_ok'
79
+ | 'publish_done'
80
+ | 'publish_namespace'
81
+ | 'publish_namespace_done'
82
+ | 'publish_namespace_cancel'
83
+ | 'subscribe_namespace'
84
+ | 'namespace'
85
+ | 'namespace_done'
86
+ | 'fetch'
87
+ | 'fetch_ok'
88
+ | 'fetch_cancel'
89
+ | 'track_status'
90
+ | 'request_ok'
91
+ | 'request_error'
92
+ | 'goaway'
93
+ | 'max_request_id'
94
+ | 'requests_blocked'
95
+
96
+ // Base
97
+ export interface Draft16BaseMessage {
98
+ readonly type: Draft16MessageType
99
+ }
100
+
101
+ // Setup — ALPN handles version negotiation, no versions in messages
102
+ export interface Draft16ClientSetup extends Draft16BaseMessage {
103
+ readonly type: 'client_setup'
104
+ readonly parameters: Draft16SetupParams
105
+ }
106
+
107
+ export interface Draft16ServerSetup extends Draft16BaseMessage {
108
+ readonly type: 'server_setup'
109
+ readonly parameters: Draft16SetupParams
110
+ }
111
+
112
+ // Subscribe fields moved to parameters
113
+ export interface Draft16Subscribe extends Draft16BaseMessage {
114
+ readonly type: 'subscribe'
115
+ readonly request_id: bigint
116
+ readonly track_namespace: string[]
117
+ readonly track_name: string
118
+ readonly parameters: Draft16Params
119
+ }
120
+
121
+ export interface Draft16SubscribeOk extends Draft16BaseMessage {
122
+ readonly type: 'subscribe_ok'
123
+ readonly request_id: bigint
124
+ readonly track_alias: bigint
125
+ readonly parameters: Draft16Params
126
+ readonly track_extensions?: Draft16TrackExtensions
127
+ }
128
+
129
+ // Renamed from subscribe_update in draft-15
130
+ export interface Draft16RequestUpdate extends Draft16BaseMessage {
131
+ readonly type: 'request_update'
132
+ readonly request_id: bigint
133
+ readonly existing_request_id: bigint
134
+ readonly parameters: Draft16Params
135
+ }
136
+
137
+ export interface Draft16Unsubscribe extends Draft16BaseMessage {
138
+ readonly type: 'unsubscribe'
139
+ readonly request_id: bigint
140
+ }
141
+
142
+ // Publish
143
+ export interface Draft16Publish extends Draft16BaseMessage {
144
+ readonly type: 'publish'
145
+ readonly request_id: bigint
146
+ readonly track_namespace: string[]
147
+ readonly track_name: string
148
+ readonly track_alias: bigint
149
+ readonly parameters: Draft16Params
150
+ readonly track_extensions?: Draft16TrackExtensions
151
+ }
152
+
153
+ export interface Draft16PublishOk extends Draft16BaseMessage {
154
+ readonly type: 'publish_ok'
155
+ readonly request_id: bigint
156
+ readonly parameters: Draft16Params
157
+ }
158
+
159
+ export interface Draft16PublishDone extends Draft16BaseMessage {
160
+ readonly type: 'publish_done'
161
+ readonly request_id: bigint
162
+ readonly status_code: bigint
163
+ readonly stream_count: bigint
164
+ readonly reason_phrase: string
165
+ }
166
+
167
+ // Namespace
168
+ export interface Draft16PublishNamespace extends Draft16BaseMessage {
169
+ readonly type: 'publish_namespace'
170
+ readonly request_id: bigint
171
+ readonly track_namespace: string[]
172
+ readonly parameters: Draft16Params
173
+ }
174
+
175
+ // Simplified in draft-16: just request_id
176
+ export interface Draft16PublishNamespaceDone extends Draft16BaseMessage {
177
+ readonly type: 'publish_namespace_done'
178
+ readonly request_id: bigint
179
+ }
180
+
181
+ // Changed in draft-16: request_id + error_code + reason_phrase
182
+ export interface Draft16PublishNamespaceCancel extends Draft16BaseMessage {
183
+ readonly type: 'publish_namespace_cancel'
184
+ readonly request_id: bigint
185
+ readonly error_code: bigint
186
+ readonly reason_phrase: string
187
+ }
188
+
189
+ // subscribe_namespace gains subscribe_options in draft-16
190
+ export interface Draft16SubscribeNamespace extends Draft16BaseMessage {
191
+ readonly type: 'subscribe_namespace'
192
+ readonly request_id: bigint
193
+ readonly namespace_prefix: string[]
194
+ readonly subscribe_options: bigint
195
+ readonly parameters: Draft16Params
196
+ }
197
+
198
+ // New in draft-16: NAMESPACE message
199
+ export interface Draft16Namespace extends Draft16BaseMessage {
200
+ readonly type: 'namespace'
201
+ readonly namespace_suffix: string[]
202
+ }
203
+
204
+ // New in draft-16: NAMESPACE_DONE message
205
+ export interface Draft16NamespaceDone extends Draft16BaseMessage {
206
+ readonly type: 'namespace_done'
207
+ readonly namespace_suffix: string[]
208
+ }
209
+
210
+ // unsubscribe_namespace is REMOVED in draft-16
211
+
212
+ // Fetch — same structure as draft-15
213
+ export interface StandaloneFetch {
214
+ readonly track_namespace: string[]
215
+ readonly track_name: string
216
+ readonly start_group: bigint
217
+ readonly start_object: bigint
218
+ readonly end_group: bigint
219
+ readonly end_object: bigint
220
+ }
221
+
222
+ export interface JoiningFetch {
223
+ readonly joining_request_id: bigint
224
+ readonly joining_start: bigint
225
+ }
226
+
227
+ export interface Draft16Fetch extends Draft16BaseMessage {
228
+ readonly type: 'fetch'
229
+ readonly request_id: bigint
230
+ readonly fetch_type: bigint
231
+ readonly standalone?: StandaloneFetch
232
+ readonly joining?: JoiningFetch
233
+ readonly parameters: Draft16Params
234
+ }
235
+
236
+ export interface Draft16FetchOk extends Draft16BaseMessage {
237
+ readonly type: 'fetch_ok'
238
+ readonly request_id: bigint
239
+ readonly end_of_track: number // uint8
240
+ readonly end_group: bigint
241
+ readonly end_object: bigint
242
+ readonly parameters: Draft16Params
243
+ readonly track_extensions?: Draft16TrackExtensions
244
+ }
245
+
246
+ export interface Draft16FetchCancel extends Draft16BaseMessage {
247
+ readonly type: 'fetch_cancel'
248
+ readonly request_id: bigint
249
+ }
250
+
251
+ // Track Status
252
+ export interface Draft16TrackStatus extends Draft16BaseMessage {
253
+ readonly type: 'track_status'
254
+ readonly request_id: bigint
255
+ readonly track_namespace: string[]
256
+ readonly track_name: string
257
+ readonly parameters: Draft16Params
258
+ }
259
+
260
+ // Consolidated response messages
261
+ export interface Draft16RequestOk extends Draft16BaseMessage {
262
+ readonly type: 'request_ok'
263
+ readonly request_id: bigint
264
+ readonly parameters: Draft16Params
265
+ }
266
+
267
+ // request_error gains retry_interval in draft-16
268
+ export interface Draft16RequestError extends Draft16BaseMessage {
269
+ readonly type: 'request_error'
270
+ readonly request_id: bigint
271
+ readonly error_code: bigint
272
+ readonly retry_interval: bigint
273
+ readonly reason_phrase: string
274
+ }
275
+
276
+ // Session Control
277
+ export interface Draft16GoAway extends Draft16BaseMessage {
278
+ readonly type: 'goaway'
279
+ readonly new_session_uri: string
280
+ }
281
+
282
+ export interface Draft16MaxRequestId extends Draft16BaseMessage {
283
+ readonly type: 'max_request_id'
284
+ readonly max_request_id: bigint
285
+ }
286
+
287
+ export interface Draft16RequestsBlocked extends Draft16BaseMessage {
288
+ readonly type: 'requests_blocked'
289
+ readonly maximum_request_id: bigint
290
+ }
291
+
292
+ // Union of all draft-16 control messages
293
+ export type Draft16Message =
294
+ | Draft16ClientSetup
295
+ | Draft16ServerSetup
296
+ | Draft16Subscribe
297
+ | Draft16SubscribeOk
298
+ | Draft16RequestUpdate
299
+ | Draft16Unsubscribe
300
+ | Draft16Publish
301
+ | Draft16PublishOk
302
+ | Draft16PublishDone
303
+ | Draft16PublishNamespace
304
+ | Draft16PublishNamespaceDone
305
+ | Draft16PublishNamespaceCancel
306
+ | Draft16SubscribeNamespace
307
+ | Draft16Namespace
308
+ | Draft16NamespaceDone
309
+ | Draft16Fetch
310
+ | Draft16FetchOk
311
+ | Draft16FetchCancel
312
+ | Draft16TrackStatus
313
+ | Draft16RequestOk
314
+ | Draft16RequestError
315
+ | Draft16GoAway
316
+ | Draft16MaxRequestId
317
+ | Draft16RequestsBlocked
318
+
319
+ // Data stream types (same as draft-15)
320
+ export interface ObjectPayload {
321
+ readonly type: 'object'
322
+ readonly byteOffset: number
323
+ readonly payloadByteOffset: number
324
+ readonly objectId: bigint
325
+ readonly payloadLength: number
326
+ readonly status?: bigint
327
+ readonly extensionData: Uint8Array
328
+ readonly payload: Uint8Array
329
+ }
330
+
331
+ export interface SubgroupStream {
332
+ readonly type: 'subgroup'
333
+ readonly headerType: number // stream type byte (0x10-0x1D or 0x30-0x3D)
334
+ readonly trackAlias: bigint
335
+ readonly groupId: bigint
336
+ readonly subgroupId: bigint
337
+ readonly publisherPriority: number
338
+ readonly endOfGroup?: boolean
339
+ readonly objects: ObjectPayload[]
340
+ }
341
+
342
+ export interface DatagramObject {
343
+ readonly type: 'datagram'
344
+ readonly datagramType: number
345
+ readonly trackAlias: bigint
346
+ readonly groupId: bigint
347
+ readonly objectId: bigint
348
+ readonly publisherPriority: number
349
+ readonly endOfGroup?: boolean
350
+ readonly objectStatus?: bigint
351
+ readonly extensionData?: Uint8Array
352
+ readonly payloadLength: number
353
+ readonly payload: Uint8Array
354
+ }
355
+
356
+ export interface FetchObjectPayload extends ObjectPayload {
357
+ readonly serializationFlags: number
358
+ readonly groupId: bigint
359
+ readonly subgroupId: bigint
360
+ readonly publisherPriority: number
361
+ }
362
+
363
+ export interface FetchStream {
364
+ readonly type: 'fetch'
365
+ readonly requestId: bigint
366
+ readonly objects: FetchObjectPayload[]
367
+ }
368
+
369
+ export type Draft16DataStream = SubgroupStream | DatagramObject | FetchStream
370
+
371
+ // Streaming data stream decoder types
372
+ export interface SubgroupStreamHeader {
373
+ readonly type: 'subgroup_header'
374
+ readonly trackAlias: bigint
375
+ readonly groupId: bigint
376
+ readonly subgroupId: bigint
377
+ readonly publisherPriority: number
378
+ }
379
+
380
+ export interface FetchStreamHeader {
381
+ readonly type: 'fetch_header'
382
+ readonly requestId: bigint
383
+ }
384
+
385
+ export type DataStreamHeader = SubgroupStreamHeader | FetchStreamHeader
386
+ export type DataStreamEvent = DataStreamHeader | ObjectPayload