@moqtap/codec 0.2.0 → 0.2.2

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 (439) hide show
  1. package/dist/core/buffer-reader.d.ts +15 -0
  2. package/dist/core/buffer-reader.d.ts.map +1 -0
  3. package/dist/core/buffer-reader.js +98 -0
  4. package/dist/core/buffer-reader.js.map +1 -0
  5. package/dist/core/buffer-writer.d.ts +16 -0
  6. package/dist/core/buffer-writer.d.ts.map +1 -0
  7. package/dist/core/buffer-writer.js +86 -0
  8. package/dist/core/buffer-writer.js.map +1 -0
  9. package/dist/core/errors.d.ts +2 -0
  10. package/dist/core/errors.d.ts.map +1 -0
  11. package/dist/core/errors.js +2 -0
  12. package/dist/core/errors.js.map +1 -0
  13. package/dist/core/hex.d.ts +5 -0
  14. package/dist/core/hex.d.ts.map +1 -0
  15. package/dist/core/hex.js +17 -0
  16. package/dist/core/hex.js.map +1 -0
  17. package/dist/core/session-types.d.ts +99 -0
  18. package/dist/core/session-types.d.ts.map +1 -0
  19. package/dist/core/session-types.js +2 -0
  20. package/dist/core/session-types.js.map +1 -0
  21. package/dist/core/types.d.ts +235 -0
  22. package/dist/core/types.d.ts.map +1 -0
  23. package/dist/core/types.js +11 -0
  24. package/dist/core/types.js.map +1 -0
  25. package/dist/drafts/draft07/announce-fsm.d.ts +2 -0
  26. package/dist/drafts/draft07/announce-fsm.d.ts.map +1 -0
  27. package/dist/drafts/draft07/announce-fsm.js +2 -0
  28. package/dist/drafts/draft07/announce-fsm.js.map +1 -0
  29. package/dist/drafts/draft07/codec.d.ts +17 -0
  30. package/dist/drafts/draft07/codec.d.ts.map +1 -0
  31. package/dist/drafts/draft07/codec.js +722 -0
  32. package/dist/drafts/draft07/codec.js.map +1 -0
  33. package/dist/drafts/draft07/data-streams.d.ts +9 -0
  34. package/dist/drafts/draft07/data-streams.d.ts.map +1 -0
  35. package/dist/drafts/draft07/data-streams.js +228 -0
  36. package/dist/drafts/draft07/data-streams.js.map +1 -0
  37. package/dist/drafts/draft07/index.d.ts +14 -0
  38. package/dist/drafts/draft07/index.d.ts.map +1 -0
  39. package/dist/drafts/draft07/index.js +18 -0
  40. package/dist/drafts/draft07/index.js.map +1 -0
  41. package/dist/drafts/draft07/messages.d.ts +32 -0
  42. package/dist/drafts/draft07/messages.d.ts.map +1 -0
  43. package/dist/drafts/draft07/messages.js +42 -0
  44. package/dist/drafts/draft07/messages.js.map +1 -0
  45. package/dist/drafts/draft07/parameters.d.ts +4 -0
  46. package/dist/drafts/draft07/parameters.d.ts.map +1 -0
  47. package/dist/drafts/draft07/parameters.js +10 -0
  48. package/dist/drafts/draft07/parameters.js.map +1 -0
  49. package/dist/drafts/draft07/rules.d.ts +8 -0
  50. package/dist/drafts/draft07/rules.d.ts.map +1 -0
  51. package/dist/drafts/draft07/rules.js +95 -0
  52. package/dist/drafts/draft07/rules.js.map +1 -0
  53. package/dist/drafts/draft07/session-fsm.d.ts +38 -0
  54. package/dist/drafts/draft07/session-fsm.d.ts.map +1 -0
  55. package/dist/drafts/draft07/session-fsm.js +354 -0
  56. package/dist/drafts/draft07/session-fsm.js.map +1 -0
  57. package/dist/drafts/draft07/session.d.ts +4 -0
  58. package/dist/drafts/draft07/session.d.ts.map +1 -0
  59. package/dist/drafts/draft07/session.js +5 -0
  60. package/dist/drafts/draft07/session.js.map +1 -0
  61. package/dist/drafts/draft07/subscription-fsm.d.ts +2 -0
  62. package/dist/drafts/draft07/subscription-fsm.d.ts.map +1 -0
  63. package/dist/drafts/draft07/subscription-fsm.js +2 -0
  64. package/dist/drafts/draft07/subscription-fsm.js.map +1 -0
  65. package/dist/drafts/draft07/types.d.ts +61 -0
  66. package/dist/drafts/draft07/types.d.ts.map +1 -0
  67. package/dist/drafts/draft07/types.js +4 -0
  68. package/dist/drafts/draft07/types.js.map +1 -0
  69. package/dist/drafts/draft07/varint.d.ts +4 -0
  70. package/dist/drafts/draft07/varint.d.ts.map +1 -0
  71. package/dist/drafts/draft07/varint.js +22 -0
  72. package/dist/drafts/draft07/varint.js.map +1 -0
  73. package/dist/drafts/draft08/codec.d.ts +29 -0
  74. package/dist/drafts/draft08/codec.d.ts.map +1 -0
  75. package/dist/drafts/draft08/codec.js +729 -0
  76. package/dist/drafts/draft08/codec.js.map +1 -0
  77. package/dist/drafts/draft08/data-streams.d.ts +12 -0
  78. package/dist/drafts/draft08/data-streams.d.ts.map +1 -0
  79. package/dist/drafts/draft08/data-streams.js +345 -0
  80. package/dist/drafts/draft08/data-streams.js.map +1 -0
  81. package/dist/drafts/draft08/index.d.ts +9 -0
  82. package/dist/drafts/draft08/index.d.ts.map +1 -0
  83. package/dist/drafts/draft08/index.js +7 -0
  84. package/dist/drafts/draft08/index.js.map +1 -0
  85. package/dist/drafts/draft08/messages.d.ts +34 -0
  86. package/dist/drafts/draft08/messages.d.ts.map +1 -0
  87. package/dist/drafts/draft08/messages.js +66 -0
  88. package/dist/drafts/draft08/messages.js.map +1 -0
  89. package/dist/drafts/draft08/rules.d.ts +8 -0
  90. package/dist/drafts/draft08/rules.d.ts.map +1 -0
  91. package/dist/drafts/draft08/rules.js +83 -0
  92. package/dist/drafts/draft08/rules.js.map +1 -0
  93. package/dist/drafts/draft08/session-fsm.d.ts +47 -0
  94. package/dist/drafts/draft08/session-fsm.d.ts.map +1 -0
  95. package/dist/drafts/draft08/session-fsm.js +483 -0
  96. package/dist/drafts/draft08/session-fsm.js.map +1 -0
  97. package/dist/drafts/draft08/session.d.ts +5 -0
  98. package/dist/drafts/draft08/session.d.ts.map +1 -0
  99. package/dist/drafts/draft08/session.js +5 -0
  100. package/dist/drafts/draft08/session.js.map +1 -0
  101. package/dist/drafts/draft08/types.d.ts +268 -0
  102. package/dist/drafts/draft08/types.d.ts.map +1 -0
  103. package/dist/drafts/draft08/types.js +4 -0
  104. package/dist/drafts/draft08/types.js.map +1 -0
  105. package/dist/drafts/draft09/codec.d.ts +21 -0
  106. package/dist/drafts/draft09/codec.d.ts.map +1 -0
  107. package/dist/drafts/draft09/codec.js +721 -0
  108. package/dist/drafts/draft09/codec.js.map +1 -0
  109. package/dist/drafts/draft09/data-streams.d.ts +12 -0
  110. package/dist/drafts/draft09/data-streams.d.ts.map +1 -0
  111. package/dist/drafts/draft09/data-streams.js +307 -0
  112. package/dist/drafts/draft09/data-streams.js.map +1 -0
  113. package/dist/drafts/draft09/index.d.ts +9 -0
  114. package/dist/drafts/draft09/index.d.ts.map +1 -0
  115. package/dist/drafts/draft09/index.js +7 -0
  116. package/dist/drafts/draft09/index.js.map +1 -0
  117. package/dist/drafts/draft09/messages.d.ts +34 -0
  118. package/dist/drafts/draft09/messages.d.ts.map +1 -0
  119. package/dist/drafts/draft09/messages.js +66 -0
  120. package/dist/drafts/draft09/messages.js.map +1 -0
  121. package/dist/drafts/draft09/rules.d.ts +8 -0
  122. package/dist/drafts/draft09/rules.d.ts.map +1 -0
  123. package/dist/drafts/draft09/rules.js +83 -0
  124. package/dist/drafts/draft09/rules.js.map +1 -0
  125. package/dist/drafts/draft09/session-fsm.d.ts +47 -0
  126. package/dist/drafts/draft09/session-fsm.d.ts.map +1 -0
  127. package/dist/drafts/draft09/session-fsm.js +483 -0
  128. package/dist/drafts/draft09/session-fsm.js.map +1 -0
  129. package/dist/drafts/draft09/session.d.ts +5 -0
  130. package/dist/drafts/draft09/session.d.ts.map +1 -0
  131. package/dist/drafts/draft09/session.js +5 -0
  132. package/dist/drafts/draft09/session.js.map +1 -0
  133. package/dist/drafts/draft09/types.d.ts +268 -0
  134. package/dist/drafts/draft09/types.d.ts.map +1 -0
  135. package/dist/drafts/draft09/types.js +4 -0
  136. package/dist/drafts/draft09/types.js.map +1 -0
  137. package/dist/drafts/draft10/codec.d.ts +21 -0
  138. package/dist/drafts/draft10/codec.d.ts.map +1 -0
  139. package/dist/drafts/draft10/codec.js +721 -0
  140. package/dist/drafts/draft10/codec.js.map +1 -0
  141. package/dist/drafts/draft10/data-streams.d.ts +12 -0
  142. package/dist/drafts/draft10/data-streams.d.ts.map +1 -0
  143. package/dist/drafts/draft10/data-streams.js +307 -0
  144. package/dist/drafts/draft10/data-streams.js.map +1 -0
  145. package/dist/drafts/draft10/index.d.ts +9 -0
  146. package/dist/drafts/draft10/index.d.ts.map +1 -0
  147. package/dist/drafts/draft10/index.js +7 -0
  148. package/dist/drafts/draft10/index.js.map +1 -0
  149. package/dist/drafts/draft10/messages.d.ts +34 -0
  150. package/dist/drafts/draft10/messages.d.ts.map +1 -0
  151. package/dist/drafts/draft10/messages.js +66 -0
  152. package/dist/drafts/draft10/messages.js.map +1 -0
  153. package/dist/drafts/draft10/rules.d.ts +8 -0
  154. package/dist/drafts/draft10/rules.d.ts.map +1 -0
  155. package/dist/drafts/draft10/rules.js +83 -0
  156. package/dist/drafts/draft10/rules.js.map +1 -0
  157. package/dist/drafts/draft10/session-fsm.d.ts +47 -0
  158. package/dist/drafts/draft10/session-fsm.d.ts.map +1 -0
  159. package/dist/drafts/draft10/session-fsm.js +483 -0
  160. package/dist/drafts/draft10/session-fsm.js.map +1 -0
  161. package/dist/drafts/draft10/session.d.ts +5 -0
  162. package/dist/drafts/draft10/session.d.ts.map +1 -0
  163. package/dist/drafts/draft10/session.js +5 -0
  164. package/dist/drafts/draft10/session.js.map +1 -0
  165. package/dist/drafts/draft10/types.d.ts +268 -0
  166. package/dist/drafts/draft10/types.d.ts.map +1 -0
  167. package/dist/drafts/draft10/types.js +4 -0
  168. package/dist/drafts/draft10/types.js.map +1 -0
  169. package/dist/drafts/draft11/codec.d.ts +25 -0
  170. package/dist/drafts/draft11/codec.d.ts.map +1 -0
  171. package/dist/drafts/draft11/codec.js +775 -0
  172. package/dist/drafts/draft11/codec.js.map +1 -0
  173. package/dist/drafts/draft11/data-streams.d.ts +10 -0
  174. package/dist/drafts/draft11/data-streams.d.ts.map +1 -0
  175. package/dist/drafts/draft11/data-streams.js +253 -0
  176. package/dist/drafts/draft11/data-streams.js.map +1 -0
  177. package/dist/drafts/draft11/index.d.ts +9 -0
  178. package/dist/drafts/draft11/index.d.ts.map +1 -0
  179. package/dist/drafts/draft11/index.js +7 -0
  180. package/dist/drafts/draft11/index.js.map +1 -0
  181. package/dist/drafts/draft11/messages.d.ts +33 -0
  182. package/dist/drafts/draft11/messages.d.ts.map +1 -0
  183. package/dist/drafts/draft11/messages.js +65 -0
  184. package/dist/drafts/draft11/messages.js.map +1 -0
  185. package/dist/drafts/draft11/rules.d.ts +8 -0
  186. package/dist/drafts/draft11/rules.d.ts.map +1 -0
  187. package/dist/drafts/draft11/rules.js +88 -0
  188. package/dist/drafts/draft11/rules.js.map +1 -0
  189. package/dist/drafts/draft11/session-fsm.d.ts +52 -0
  190. package/dist/drafts/draft11/session-fsm.d.ts.map +1 -0
  191. package/dist/drafts/draft11/session-fsm.js +530 -0
  192. package/dist/drafts/draft11/session-fsm.js.map +1 -0
  193. package/dist/drafts/draft11/session.d.ts +5 -0
  194. package/dist/drafts/draft11/session.d.ts.map +1 -0
  195. package/dist/drafts/draft11/session.js +5 -0
  196. package/dist/drafts/draft11/session.js.map +1 -0
  197. package/dist/drafts/draft11/types.d.ts +266 -0
  198. package/dist/drafts/draft11/types.d.ts.map +1 -0
  199. package/dist/drafts/draft11/types.js +4 -0
  200. package/dist/drafts/draft11/types.js.map +1 -0
  201. package/dist/drafts/draft12/codec.d.ts +27 -0
  202. package/dist/drafts/draft12/codec.d.ts.map +1 -0
  203. package/dist/drafts/draft12/codec.js +918 -0
  204. package/dist/drafts/draft12/codec.js.map +1 -0
  205. package/dist/drafts/draft12/data-streams.d.ts +10 -0
  206. package/dist/drafts/draft12/data-streams.d.ts.map +1 -0
  207. package/dist/drafts/draft12/data-streams.js +254 -0
  208. package/dist/drafts/draft12/data-streams.js.map +1 -0
  209. package/dist/drafts/draft12/index.d.ts +9 -0
  210. package/dist/drafts/draft12/index.d.ts.map +1 -0
  211. package/dist/drafts/draft12/index.js +7 -0
  212. package/dist/drafts/draft12/index.js.map +1 -0
  213. package/dist/drafts/draft12/messages.d.ts +37 -0
  214. package/dist/drafts/draft12/messages.d.ts.map +1 -0
  215. package/dist/drafts/draft12/messages.js +77 -0
  216. package/dist/drafts/draft12/messages.js.map +1 -0
  217. package/dist/drafts/draft12/rules.d.ts +8 -0
  218. package/dist/drafts/draft12/rules.d.ts.map +1 -0
  219. package/dist/drafts/draft12/rules.js +94 -0
  220. package/dist/drafts/draft12/rules.js.map +1 -0
  221. package/dist/drafts/draft12/session-fsm.d.ts +55 -0
  222. package/dist/drafts/draft12/session-fsm.d.ts.map +1 -0
  223. package/dist/drafts/draft12/session-fsm.js +569 -0
  224. package/dist/drafts/draft12/session-fsm.js.map +1 -0
  225. package/dist/drafts/draft12/session.d.ts +5 -0
  226. package/dist/drafts/draft12/session.d.ts.map +1 -0
  227. package/dist/drafts/draft12/session.js +5 -0
  228. package/dist/drafts/draft12/session.js.map +1 -0
  229. package/dist/drafts/draft12/types.d.ts +294 -0
  230. package/dist/drafts/draft12/types.d.ts.map +1 -0
  231. package/dist/drafts/draft12/types.js +4 -0
  232. package/dist/drafts/draft12/types.js.map +1 -0
  233. package/dist/drafts/draft13/codec.d.ts +27 -0
  234. package/dist/drafts/draft13/codec.d.ts.map +1 -0
  235. package/dist/drafts/draft13/codec.js +1000 -0
  236. package/dist/drafts/draft13/codec.js.map +1 -0
  237. package/dist/drafts/draft13/data-streams.d.ts +10 -0
  238. package/dist/drafts/draft13/data-streams.d.ts.map +1 -0
  239. package/dist/drafts/draft13/data-streams.js +254 -0
  240. package/dist/drafts/draft13/data-streams.js.map +1 -0
  241. package/dist/drafts/draft13/index.d.ts +9 -0
  242. package/dist/drafts/draft13/index.d.ts.map +1 -0
  243. package/dist/drafts/draft13/index.js +7 -0
  244. package/dist/drafts/draft13/index.js.map +1 -0
  245. package/dist/drafts/draft13/messages.d.ts +38 -0
  246. package/dist/drafts/draft13/messages.d.ts.map +1 -0
  247. package/dist/drafts/draft13/messages.js +79 -0
  248. package/dist/drafts/draft13/messages.js.map +1 -0
  249. package/dist/drafts/draft13/rules.d.ts +8 -0
  250. package/dist/drafts/draft13/rules.d.ts.map +1 -0
  251. package/dist/drafts/draft13/rules.js +96 -0
  252. package/dist/drafts/draft13/rules.js.map +1 -0
  253. package/dist/drafts/draft13/session-fsm.d.ts +56 -0
  254. package/dist/drafts/draft13/session-fsm.d.ts.map +1 -0
  255. package/dist/drafts/draft13/session-fsm.js +581 -0
  256. package/dist/drafts/draft13/session-fsm.js.map +1 -0
  257. package/dist/drafts/draft13/session.d.ts +5 -0
  258. package/dist/drafts/draft13/session.d.ts.map +1 -0
  259. package/dist/drafts/draft13/session.js +5 -0
  260. package/dist/drafts/draft13/session.js.map +1 -0
  261. package/dist/drafts/draft13/types.d.ts +310 -0
  262. package/dist/drafts/draft13/types.d.ts.map +1 -0
  263. package/dist/drafts/draft13/types.js +4 -0
  264. package/dist/drafts/draft13/types.js.map +1 -0
  265. package/dist/drafts/draft14/codec.d.ts +34 -0
  266. package/dist/drafts/draft14/codec.d.ts.map +1 -0
  267. package/dist/drafts/draft14/codec.js +752 -0
  268. package/dist/drafts/draft14/codec.js.map +1 -0
  269. package/dist/drafts/draft14/data-streams.d.ts +56 -0
  270. package/dist/drafts/draft14/data-streams.d.ts.map +1 -0
  271. package/dist/drafts/draft14/data-streams.js +729 -0
  272. package/dist/drafts/draft14/data-streams.js.map +1 -0
  273. package/dist/drafts/draft14/index.d.ts +9 -0
  274. package/dist/drafts/draft14/index.d.ts.map +1 -0
  275. package/dist/drafts/draft14/index.js +7 -0
  276. package/dist/drafts/draft14/index.js.map +1 -0
  277. package/dist/drafts/draft14/messages.d.ts +36 -0
  278. package/dist/drafts/draft14/messages.d.ts.map +1 -0
  279. package/dist/drafts/draft14/messages.js +71 -0
  280. package/dist/drafts/draft14/messages.js.map +1 -0
  281. package/dist/drafts/draft14/rules.d.ts +8 -0
  282. package/dist/drafts/draft14/rules.d.ts.map +1 -0
  283. package/dist/drafts/draft14/rules.js +101 -0
  284. package/dist/drafts/draft14/rules.js.map +1 -0
  285. package/dist/drafts/draft14/session-fsm.d.ts +58 -0
  286. package/dist/drafts/draft14/session-fsm.d.ts.map +1 -0
  287. package/dist/drafts/draft14/session-fsm.js +648 -0
  288. package/dist/drafts/draft14/session-fsm.js.map +1 -0
  289. package/dist/drafts/draft14/session.d.ts +5 -0
  290. package/dist/drafts/draft14/session.d.ts.map +1 -0
  291. package/dist/drafts/draft14/session.js +5 -0
  292. package/dist/drafts/draft14/session.js.map +1 -0
  293. package/dist/drafts/draft14/types.d.ts +263 -0
  294. package/dist/drafts/draft14/types.d.ts.map +1 -0
  295. package/dist/drafts/draft14/types.js +4 -0
  296. package/dist/drafts/draft14/types.js.map +1 -0
  297. package/dist/drafts/draft15/codec.d.ts +33 -0
  298. package/dist/drafts/draft15/codec.d.ts.map +1 -0
  299. package/dist/drafts/draft15/codec.js +742 -0
  300. package/dist/drafts/draft15/codec.js.map +1 -0
  301. package/dist/drafts/draft15/data-streams.d.ts +45 -0
  302. package/dist/drafts/draft15/data-streams.d.ts.map +1 -0
  303. package/dist/drafts/draft15/data-streams.js +675 -0
  304. package/dist/drafts/draft15/data-streams.js.map +1 -0
  305. package/dist/drafts/draft15/index.d.ts +9 -0
  306. package/dist/drafts/draft15/index.d.ts.map +1 -0
  307. package/dist/drafts/draft15/index.js +7 -0
  308. package/dist/drafts/draft15/index.js.map +1 -0
  309. package/dist/drafts/draft15/messages.d.ts +31 -0
  310. package/dist/drafts/draft15/messages.d.ts.map +1 -0
  311. package/dist/drafts/draft15/messages.js +59 -0
  312. package/dist/drafts/draft15/messages.js.map +1 -0
  313. package/dist/drafts/draft15/rules.d.ts +8 -0
  314. package/dist/drafts/draft15/rules.d.ts.map +1 -0
  315. package/dist/drafts/draft15/rules.js +83 -0
  316. package/dist/drafts/draft15/rules.js.map +1 -0
  317. package/dist/drafts/draft15/session-fsm.d.ts +48 -0
  318. package/dist/drafts/draft15/session-fsm.d.ts.map +1 -0
  319. package/dist/drafts/draft15/session-fsm.js +479 -0
  320. package/dist/drafts/draft15/session-fsm.js.map +1 -0
  321. package/dist/drafts/draft15/session.d.ts +5 -0
  322. package/dist/drafts/draft15/session.d.ts.map +1 -0
  323. package/dist/drafts/draft15/session.js +5 -0
  324. package/dist/drafts/draft15/session.js.map +1 -0
  325. package/dist/drafts/draft15/types.d.ts +232 -0
  326. package/dist/drafts/draft15/types.d.ts.map +1 -0
  327. package/dist/drafts/draft15/types.js +4 -0
  328. package/dist/drafts/draft15/types.js.map +1 -0
  329. package/dist/drafts/draft16/codec.d.ts +29 -0
  330. package/dist/drafts/draft16/codec.d.ts.map +1 -0
  331. package/dist/drafts/draft16/codec.js +747 -0
  332. package/dist/drafts/draft16/codec.js.map +1 -0
  333. package/dist/drafts/draft16/data-streams.d.ts +34 -0
  334. package/dist/drafts/draft16/data-streams.d.ts.map +1 -0
  335. package/dist/drafts/draft16/data-streams.js +667 -0
  336. package/dist/drafts/draft16/data-streams.js.map +1 -0
  337. package/dist/drafts/draft16/index.d.ts +9 -0
  338. package/dist/drafts/draft16/index.d.ts.map +1 -0
  339. package/dist/drafts/draft16/index.js +7 -0
  340. package/dist/drafts/draft16/index.js.map +1 -0
  341. package/dist/drafts/draft16/messages.d.ts +32 -0
  342. package/dist/drafts/draft16/messages.d.ts.map +1 -0
  343. package/dist/drafts/draft16/messages.js +62 -0
  344. package/dist/drafts/draft16/messages.js.map +1 -0
  345. package/dist/drafts/draft16/rules.d.ts +8 -0
  346. package/dist/drafts/draft16/rules.d.ts.map +1 -0
  347. package/dist/drafts/draft16/rules.js +84 -0
  348. package/dist/drafts/draft16/rules.js.map +1 -0
  349. package/dist/drafts/draft16/session-fsm.d.ts +48 -0
  350. package/dist/drafts/draft16/session-fsm.d.ts.map +1 -0
  351. package/dist/drafts/draft16/session-fsm.js +474 -0
  352. package/dist/drafts/draft16/session-fsm.js.map +1 -0
  353. package/dist/drafts/draft16/session.d.ts +5 -0
  354. package/dist/drafts/draft16/session.d.ts.map +1 -0
  355. package/dist/drafts/draft16/session.js +5 -0
  356. package/dist/drafts/draft16/session.js.map +1 -0
  357. package/dist/drafts/draft16/types.d.ts +238 -0
  358. package/dist/drafts/draft16/types.d.ts.map +1 -0
  359. package/dist/drafts/draft16/types.js +4 -0
  360. package/dist/drafts/draft16/types.js.map +1 -0
  361. package/dist/drafts/draft17/codec.d.ts +29 -0
  362. package/dist/drafts/draft17/codec.d.ts.map +1 -0
  363. package/dist/drafts/draft17/codec.js +799 -0
  364. package/dist/drafts/draft17/codec.js.map +1 -0
  365. package/dist/drafts/draft17/data-streams.d.ts +13 -0
  366. package/dist/drafts/draft17/data-streams.d.ts.map +1 -0
  367. package/dist/drafts/draft17/data-streams.js +633 -0
  368. package/dist/drafts/draft17/data-streams.js.map +1 -0
  369. package/dist/drafts/draft17/index.d.ts +8 -0
  370. package/dist/drafts/draft17/index.d.ts.map +1 -0
  371. package/dist/drafts/draft17/index.js +6 -0
  372. package/dist/drafts/draft17/index.js.map +1 -0
  373. package/dist/drafts/draft17/messages.d.ts +25 -0
  374. package/dist/drafts/draft17/messages.d.ts.map +1 -0
  375. package/dist/drafts/draft17/messages.js +48 -0
  376. package/dist/drafts/draft17/messages.js.map +1 -0
  377. package/dist/drafts/draft17/rules.d.ts +8 -0
  378. package/dist/drafts/draft17/rules.d.ts.map +1 -0
  379. package/dist/drafts/draft17/rules.js +71 -0
  380. package/dist/drafts/draft17/rules.js.map +1 -0
  381. package/dist/drafts/draft17/session-fsm.d.ts +45 -0
  382. package/dist/drafts/draft17/session-fsm.d.ts.map +1 -0
  383. package/dist/drafts/draft17/session-fsm.js +328 -0
  384. package/dist/drafts/draft17/session-fsm.js.map +1 -0
  385. package/dist/drafts/draft17/session.d.ts +5 -0
  386. package/dist/drafts/draft17/session.d.ts.map +1 -0
  387. package/dist/drafts/draft17/session.js +6 -0
  388. package/dist/drafts/draft17/session.js.map +1 -0
  389. package/dist/drafts/draft17/types.d.ts +219 -0
  390. package/dist/drafts/draft17/types.d.ts.map +1 -0
  391. package/dist/drafts/draft17/types.js +3 -0
  392. package/dist/drafts/draft17/types.js.map +1 -0
  393. package/dist/index.d.ts +46 -38
  394. package/dist/index.d.ts.map +1 -0
  395. package/dist/index.js +93 -110
  396. package/dist/index.js.map +1 -0
  397. package/dist/session.d.ts +4 -8
  398. package/dist/session.d.ts.map +1 -0
  399. package/dist/session.js +32 -26
  400. package/dist/session.js.map +1 -0
  401. package/package.json +2 -2
  402. package/src/core/buffer-reader.ts +1 -1
  403. package/src/core/hex.ts +17 -0
  404. package/src/drafts/draft07/codec.ts +933 -991
  405. package/src/drafts/draft07/data-streams.ts +240 -0
  406. package/src/drafts/draft07/index.ts +89 -69
  407. package/src/drafts/draft07/messages.ts +42 -44
  408. package/src/drafts/draft07/rules.ts +101 -104
  409. package/src/drafts/draft07/types.ts +72 -0
  410. package/src/drafts/draft08/codec.ts +944 -1254
  411. package/src/drafts/draft08/data-streams.ts +359 -0
  412. package/src/drafts/draft08/types.ts +384 -377
  413. package/src/drafts/draft09/codec.ts +936 -1235
  414. package/src/drafts/draft09/data-streams.ts +332 -0
  415. package/src/drafts/draft09/types.ts +384 -376
  416. package/src/drafts/draft10/codec.ts +936 -1235
  417. package/src/drafts/draft10/data-streams.ts +332 -0
  418. package/src/drafts/draft10/types.ts +384 -376
  419. package/src/drafts/draft11/codec.ts +979 -1198
  420. package/src/drafts/draft11/data-streams.ts +269 -0
  421. package/src/drafts/draft11/types.ts +381 -375
  422. package/src/drafts/draft12/codec.ts +1113 -1354
  423. package/src/drafts/draft12/data-streams.ts +275 -0
  424. package/src/drafts/draft12/types.ts +419 -414
  425. package/src/drafts/draft13/codec.ts +1197 -1438
  426. package/src/drafts/draft13/data-streams.ts +275 -0
  427. package/src/drafts/draft13/types.ts +438 -433
  428. package/src/drafts/draft14/codec.ts +1034 -1480
  429. package/src/drafts/draft14/data-streams.ts +798 -0
  430. package/src/drafts/draft14/types.ts +381 -365
  431. package/src/drafts/draft15/codec.ts +969 -1661
  432. package/src/drafts/draft15/data-streams.ts +778 -0
  433. package/src/drafts/draft15/types.ts +339 -336
  434. package/src/drafts/draft16/codec.ts +957 -1623
  435. package/src/drafts/draft16/data-streams.ts +773 -0
  436. package/src/drafts/draft16/types.ts +357 -354
  437. package/src/drafts/draft17/codec.ts +962 -1621
  438. package/src/drafts/draft17/data-streams.ts +742 -0
  439. package/src/drafts/draft17/types.ts +313 -310
@@ -0,0 +1,633 @@
1
+ import { BufferReader } from "../../core/buffer-reader.js";
2
+ import { BufferWriter } from "../../core/buffer-writer.js";
3
+ import { DecodeError } from "../../core/types.js";
4
+ // ─── Data Stream Encoding/Decoding (same as draft-16) ───────────────────────
5
+ const FETCH_STREAM_TYPE = 0x05n;
6
+ export function encodeSubgroupStream(stream) {
7
+ const w = new BufferWriter();
8
+ const streamType = stream.headerType;
9
+ w.writeVarInt(BigInt(streamType));
10
+ const extensionsPresent = (streamType & 0x01) !== 0;
11
+ const hasSubgroupField = (streamType & 0x04) !== 0;
12
+ const hasPriority = streamType < 0x30;
13
+ w.writeVarInt(stream.trackAlias);
14
+ w.writeVarInt(stream.groupId);
15
+ if (hasSubgroupField) {
16
+ w.writeVarInt(stream.subgroupId);
17
+ }
18
+ if (hasPriority) {
19
+ w.writeUint8(stream.publisherPriority);
20
+ }
21
+ let prevObjectId = -1n;
22
+ for (const obj of stream.objects) {
23
+ const delta = prevObjectId < 0n ? obj.objectId : obj.objectId - prevObjectId - 1n;
24
+ w.writeVarInt(delta);
25
+ if (extensionsPresent) {
26
+ w.writeVarInt(BigInt(obj.extensionData.length));
27
+ if (obj.extensionData.length > 0)
28
+ w.writeBytes(obj.extensionData);
29
+ }
30
+ w.writeVarInt(BigInt(obj.payloadLength));
31
+ if (obj.payloadLength === 0) {
32
+ w.writeVarInt(obj.status ?? 0n);
33
+ }
34
+ else {
35
+ w.writeBytes(obj.payload);
36
+ }
37
+ prevObjectId = obj.objectId;
38
+ }
39
+ return w.finish();
40
+ }
41
+ export function encodeDatagram(dg) {
42
+ const w = new BufferWriter();
43
+ const dgType = dg.datagramType;
44
+ w.writeVarInt(BigInt(dgType));
45
+ w.writeVarInt(dg.trackAlias);
46
+ w.writeVarInt(dg.groupId);
47
+ const objectIdAbsent = (dgType & 0x04) !== 0;
48
+ const isStatus = (dgType & 0x20) !== 0;
49
+ const defaultPriority = (dgType & 0x08) !== 0;
50
+ if (!objectIdAbsent) {
51
+ w.writeVarInt(dg.objectId);
52
+ }
53
+ if (!defaultPriority) {
54
+ w.writeUint8(dg.publisherPriority);
55
+ }
56
+ if (isStatus) {
57
+ w.writeVarInt(dg.objectStatus ?? 0n);
58
+ }
59
+ else {
60
+ w.writeBytes(dg.payload);
61
+ }
62
+ return w.finish();
63
+ }
64
+ export function encodeFetchStream(stream) {
65
+ const w = new BufferWriter();
66
+ w.writeVarInt(FETCH_STREAM_TYPE);
67
+ w.writeVarInt(stream.requestId);
68
+ for (const obj of stream.objects) {
69
+ w.writeVarInt(BigInt(obj.serializationFlags));
70
+ const flags = obj.serializationFlags;
71
+ if (flags >= 0x80) {
72
+ // End of Range (0x8C, 0x10C): Group ID, Object ID, PayloadLength=0
73
+ w.writeVarInt(obj.groupId);
74
+ w.writeVarInt(obj.objectId);
75
+ w.writeVarInt(BigInt(obj.payloadLength));
76
+ }
77
+ else {
78
+ if (flags & 0x08)
79
+ w.writeVarInt(obj.groupId);
80
+ const subgroupEncoding = flags & 0x03;
81
+ if (subgroupEncoding === 0x03)
82
+ w.writeVarInt(obj.subgroupId);
83
+ if (flags & 0x04)
84
+ w.writeVarInt(obj.objectId);
85
+ if (flags & 0x10)
86
+ w.writeUint8(obj.publisherPriority);
87
+ if (flags & 0x20) {
88
+ w.writeVarInt(BigInt(obj.extensionData.length));
89
+ if (obj.extensionData.length > 0)
90
+ w.writeBytes(obj.extensionData);
91
+ }
92
+ w.writeVarInt(BigInt(obj.payloadLength));
93
+ if (obj.payloadLength > 0) {
94
+ w.writeBytes(obj.payload);
95
+ }
96
+ }
97
+ }
98
+ return w.finish();
99
+ }
100
+ export function decodeSubgroupStream(bytes) {
101
+ try {
102
+ const r = new BufferReader(bytes);
103
+ const streamType = Number(r.readVarInt());
104
+ if (!((streamType >= 0x10 && streamType <= 0x1d) || (streamType >= 0x30 && streamType <= 0x3d)) ||
105
+ (streamType & 0x06) === 0x06 // reserved SUBGROUP_ID_MODE (bits 2:1 = 0b11)
106
+ ) {
107
+ return {
108
+ ok: false,
109
+ error: new DecodeError("CONSTRAINT_VIOLATION", `Expected subgroup stream type 0x10-0x15/0x18-0x1D/0x30-0x35/0x38-0x3D, got 0x${streamType.toString(16)}`, 0),
110
+ };
111
+ }
112
+ const extensionsPresent = (streamType & 0x01) !== 0;
113
+ const hasSubgroupField = (streamType & 0x04) !== 0;
114
+ const subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField;
115
+ const hasPriority = streamType < 0x30;
116
+ const trackAlias = r.readVarInt();
117
+ const groupId = r.readVarInt();
118
+ let subgroupId = 0n;
119
+ if (hasSubgroupField) {
120
+ subgroupId = r.readVarInt();
121
+ }
122
+ let publisherPriority = 128;
123
+ if (hasPriority) {
124
+ publisherPriority = r.readUint8();
125
+ }
126
+ const objects = [];
127
+ let prevObjectId = -1n;
128
+ let firstObject = true;
129
+ while (r.remaining > 0) {
130
+ const byteOffset = r.offset;
131
+ const delta = r.readVarInt();
132
+ let objectId;
133
+ if (firstObject) {
134
+ objectId = delta;
135
+ if (subgroupIsFirstObjId && firstObject) {
136
+ subgroupId = objectId;
137
+ }
138
+ firstObject = false;
139
+ }
140
+ else {
141
+ objectId = prevObjectId + 1n + delta;
142
+ }
143
+ let extensionData = new Uint8Array(0);
144
+ if (extensionsPresent) {
145
+ const extLen = Number(r.readVarInt());
146
+ extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
147
+ }
148
+ const payloadLength = Number(r.readVarInt());
149
+ let payload;
150
+ let status;
151
+ let payloadByteOffset;
152
+ if (payloadLength === 0) {
153
+ status = r.readVarInt();
154
+ payloadByteOffset = r.offset;
155
+ payload = new Uint8Array(0);
156
+ }
157
+ else {
158
+ payloadByteOffset = r.offset;
159
+ payload = r.readBytes(payloadLength);
160
+ }
161
+ const obj = { type: "object", byteOffset, payloadByteOffset, objectId, payloadLength, payload, extensionData };
162
+ if (status !== undefined)
163
+ obj.status = status;
164
+ objects.push(obj);
165
+ prevObjectId = objectId;
166
+ }
167
+ return {
168
+ ok: true,
169
+ value: {
170
+ type: "subgroup",
171
+ headerType: streamType,
172
+ trackAlias,
173
+ groupId,
174
+ subgroupId,
175
+ publisherPriority,
176
+ objects,
177
+ },
178
+ bytesRead: r.offset,
179
+ };
180
+ }
181
+ catch (e) {
182
+ if (e instanceof DecodeError)
183
+ return { ok: false, error: e };
184
+ throw e;
185
+ }
186
+ }
187
+ export function decodeDatagram(bytes) {
188
+ try {
189
+ const r = new BufferReader(bytes);
190
+ const dgType = Number(r.readVarInt());
191
+ const objectIdAbsent = (dgType & 0x04) !== 0;
192
+ const endOfGroup = (dgType & 0x02) !== 0;
193
+ const isStatus = (dgType & 0x20) !== 0;
194
+ const defaultPriority = (dgType & 0x08) !== 0;
195
+ const trackAlias = r.readVarInt();
196
+ const groupId = r.readVarInt();
197
+ let objectId = 0n;
198
+ if (!objectIdAbsent) {
199
+ objectId = r.readVarInt();
200
+ }
201
+ let publisherPriority = 128;
202
+ if (!defaultPriority) {
203
+ publisherPriority = r.readUint8();
204
+ }
205
+ let objectStatus;
206
+ let payload;
207
+ if (isStatus) {
208
+ objectStatus = r.readVarInt();
209
+ payload = new Uint8Array(0);
210
+ }
211
+ else {
212
+ payload = r.readBytes(r.remaining);
213
+ }
214
+ const payloadLength = payload.byteLength;
215
+ const result = {
216
+ type: "datagram",
217
+ datagramType: dgType,
218
+ trackAlias,
219
+ groupId,
220
+ objectId,
221
+ publisherPriority,
222
+ payloadLength,
223
+ payload,
224
+ };
225
+ if (endOfGroup)
226
+ result.endOfGroup = true;
227
+ if (objectStatus !== undefined)
228
+ result.objectStatus = objectStatus;
229
+ return { ok: true, value: result, bytesRead: r.offset };
230
+ }
231
+ catch (e) {
232
+ if (e instanceof DecodeError)
233
+ return { ok: false, error: e };
234
+ throw e;
235
+ }
236
+ }
237
+ export function decodeFetchStream(bytes) {
238
+ try {
239
+ const r = new BufferReader(bytes);
240
+ const streamType = r.readVarInt();
241
+ if (streamType !== FETCH_STREAM_TYPE) {
242
+ return {
243
+ ok: false,
244
+ error: new DecodeError("CONSTRAINT_VIOLATION", `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`, 0),
245
+ };
246
+ }
247
+ const requestId = r.readVarInt();
248
+ const objects = [];
249
+ let prevGroupId = 0n;
250
+ let prevSubgroupId = 0n;
251
+ let prevObjectId = 0n;
252
+ let prevPriority = 128;
253
+ let first = true;
254
+ while (r.remaining > 0) {
255
+ const byteOffset = r.offset;
256
+ const flags = Number(r.readVarInt());
257
+ let groupId = prevGroupId;
258
+ let subgroupId = prevSubgroupId;
259
+ let objectId = prevObjectId + 1n;
260
+ let payloadLength;
261
+ let payload;
262
+ let payloadByteOffset;
263
+ let extensionData = new Uint8Array(0);
264
+ if (flags >= 0x80) {
265
+ // End of Range: 0x8C = End of Non-Existent Range, 0x10C = End of Unknown Range
266
+ // Per spec §10.4.4.2: Group ID and Object ID are present;
267
+ // Subgroup ID, Priority, Properties are not present.
268
+ if (flags !== 0x8c && flags !== 0x10c) {
269
+ return {
270
+ ok: false,
271
+ error: new DecodeError("CONSTRAINT_VIOLATION", `Unknown serialization flags value: 0x${flags.toString(16)}`, r.offset),
272
+ };
273
+ }
274
+ groupId = r.readVarInt();
275
+ objectId = r.readVarInt();
276
+ payloadLength = Number(r.readVarInt());
277
+ payloadByteOffset = r.offset;
278
+ payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
279
+ }
280
+ else {
281
+ const subgroupEncoding = flags & 0x03;
282
+ const objectIdPresent = (flags & 0x04) !== 0;
283
+ const groupIdPresent = (flags & 0x08) !== 0;
284
+ const priorityPresent = (flags & 0x10) !== 0;
285
+ const extensionsPresent = (flags & 0x20) !== 0;
286
+ if (flags & 0x40) {
287
+ return {
288
+ ok: false,
289
+ error: new DecodeError("CONSTRAINT_VIOLATION", "Reserved bits set in fetch object flags", r.offset),
290
+ };
291
+ }
292
+ if (groupIdPresent) {
293
+ groupId = r.readVarInt();
294
+ }
295
+ else if (first) {
296
+ return {
297
+ ok: false,
298
+ error: new DecodeError("CONSTRAINT_VIOLATION", "First fetch object must include groupId", r.offset),
299
+ };
300
+ }
301
+ if (subgroupEncoding === 0x00) {
302
+ subgroupId = 0n;
303
+ }
304
+ else if (subgroupEncoding === 0x01) {
305
+ if (first) {
306
+ return {
307
+ ok: false,
308
+ error: new DecodeError("CONSTRAINT_VIOLATION", "First fetch object cannot reference prior subgroupId", r.offset),
309
+ };
310
+ }
311
+ subgroupId = prevSubgroupId;
312
+ }
313
+ else if (subgroupEncoding === 0x02) {
314
+ if (first) {
315
+ return {
316
+ ok: false,
317
+ error: new DecodeError("CONSTRAINT_VIOLATION", "First fetch object cannot reference prior subgroupId", r.offset),
318
+ };
319
+ }
320
+ subgroupId = prevSubgroupId + 1n;
321
+ }
322
+ else if (subgroupEncoding === 0x03) {
323
+ subgroupId = r.readVarInt();
324
+ }
325
+ if (objectIdPresent) {
326
+ objectId = r.readVarInt();
327
+ }
328
+ else if (first) {
329
+ return {
330
+ ok: false,
331
+ error: new DecodeError("CONSTRAINT_VIOLATION", "First fetch object must include objectId", r.offset),
332
+ };
333
+ }
334
+ if (priorityPresent) {
335
+ prevPriority = r.readUint8();
336
+ }
337
+ if (extensionsPresent) {
338
+ const extLen = Number(r.readVarInt());
339
+ if (extLen > 0) {
340
+ extensionData = r.readBytes(extLen);
341
+ }
342
+ }
343
+ payloadLength = Number(r.readVarInt());
344
+ payloadByteOffset = r.offset;
345
+ payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
346
+ }
347
+ const obj = {
348
+ type: "object",
349
+ byteOffset,
350
+ payloadByteOffset,
351
+ serializationFlags: flags,
352
+ groupId,
353
+ subgroupId,
354
+ objectId,
355
+ publisherPriority: prevPriority,
356
+ payloadLength,
357
+ payload,
358
+ extensionData,
359
+ };
360
+ objects.push(obj);
361
+ prevGroupId = groupId;
362
+ prevSubgroupId = subgroupId;
363
+ prevObjectId = objectId;
364
+ first = false;
365
+ }
366
+ return {
367
+ ok: true,
368
+ value: { type: "fetch", requestId, objects },
369
+ bytesRead: r.offset,
370
+ };
371
+ }
372
+ catch (e) {
373
+ if (e instanceof DecodeError)
374
+ return { ok: false, error: e };
375
+ throw e;
376
+ }
377
+ }
378
+ export function decodeDataStream(streamType, bytes) {
379
+ switch (streamType) {
380
+ case "subgroup":
381
+ return decodeSubgroupStream(bytes);
382
+ case "datagram":
383
+ return decodeDatagram(bytes);
384
+ case "fetch":
385
+ return decodeFetchStream(bytes);
386
+ default: {
387
+ const _exhaustive = streamType;
388
+ throw new Error(`Unknown stream type: ${_exhaustive}`);
389
+ }
390
+ }
391
+ }
392
+ // ─── Data Stream Decoders ──────────────────────────────────────────────────────
393
+ export function createSubgroupStreamDecoder() {
394
+ let buffer = new Uint8Array(0);
395
+ let headerEmitted = false;
396
+ let prevObjectId = -1n;
397
+ let firstObject = true;
398
+ let _subgroupIsFirstObjId = false;
399
+ let _extensionsPresent = false;
400
+ return new TransformStream({
401
+ transform(chunk, controller) {
402
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
403
+ newBuffer.set(buffer, 0);
404
+ newBuffer.set(chunk, buffer.length);
405
+ buffer = newBuffer;
406
+ if (!headerEmitted) {
407
+ try {
408
+ const r = new BufferReader(buffer);
409
+ const streamType = Number(r.readVarInt());
410
+ if (!((streamType >= 0x10 && streamType <= 0x1d) ||
411
+ (streamType >= 0x30 && streamType <= 0x3d))) {
412
+ controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Expected subgroup stream type, got 0x${streamType.toString(16)}`, 0));
413
+ return;
414
+ }
415
+ _extensionsPresent = (streamType & 0x01) !== 0;
416
+ const hasSubgroupField = (streamType & 0x04) !== 0;
417
+ _subgroupIsFirstObjId = (streamType & 0x02) !== 0 && !hasSubgroupField;
418
+ const hasPriority = streamType < 0x30;
419
+ const trackAlias = r.readVarInt();
420
+ const groupId = r.readVarInt();
421
+ let subgroupId = 0n;
422
+ if (hasSubgroupField) {
423
+ subgroupId = r.readVarInt();
424
+ }
425
+ let publisherPriority = 128;
426
+ if (hasPriority) {
427
+ publisherPriority = r.readUint8();
428
+ }
429
+ controller.enqueue({
430
+ type: "subgroup_header",
431
+ trackAlias,
432
+ groupId,
433
+ subgroupId,
434
+ publisherPriority,
435
+ });
436
+ headerEmitted = true;
437
+ buffer = buffer.slice(r.offset);
438
+ }
439
+ catch (e) {
440
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
441
+ return;
442
+ }
443
+ controller.error(e);
444
+ return;
445
+ }
446
+ }
447
+ while (buffer.length > 0) {
448
+ try {
449
+ const r = new BufferReader(buffer);
450
+ const delta = r.readVarInt();
451
+ let objectId;
452
+ if (firstObject) {
453
+ objectId = delta;
454
+ firstObject = false;
455
+ }
456
+ else {
457
+ objectId = prevObjectId + 1n + delta;
458
+ }
459
+ let extensionData = new Uint8Array(0);
460
+ if (_extensionsPresent) {
461
+ const extLen = Number(r.readVarInt());
462
+ extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
463
+ }
464
+ const payloadLength = Number(r.readVarInt());
465
+ const payloadByteOffset = r.offset;
466
+ const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
467
+ controller.enqueue({ type: "object", objectId, payloadLength, payload, extensionData, byteOffset: 0, payloadByteOffset });
468
+ buffer = buffer.slice(r.offset);
469
+ prevObjectId = objectId;
470
+ }
471
+ catch (e) {
472
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
473
+ break;
474
+ }
475
+ controller.error(e);
476
+ return;
477
+ }
478
+ }
479
+ },
480
+ flush(controller) {
481
+ if (buffer.length > 0) {
482
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
483
+ }
484
+ },
485
+ });
486
+ }
487
+ export function createFetchStreamDecoder() {
488
+ let buffer = new Uint8Array(0);
489
+ let headerEmitted = false;
490
+ return new TransformStream({
491
+ transform(chunk, controller) {
492
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
493
+ newBuffer.set(buffer, 0);
494
+ newBuffer.set(chunk, buffer.length);
495
+ buffer = newBuffer;
496
+ if (!headerEmitted) {
497
+ try {
498
+ const r = new BufferReader(buffer);
499
+ const streamType = r.readVarInt();
500
+ if (streamType !== FETCH_STREAM_TYPE) {
501
+ controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Expected fetch stream type 0x05, got 0x${streamType.toString(16)}`, 0));
502
+ return;
503
+ }
504
+ const requestId = r.readVarInt();
505
+ controller.enqueue({ type: "fetch_header", requestId });
506
+ headerEmitted = true;
507
+ buffer = buffer.slice(r.offset);
508
+ }
509
+ catch (e) {
510
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
511
+ return;
512
+ }
513
+ controller.error(e);
514
+ return;
515
+ }
516
+ }
517
+ while (buffer.length > 0) {
518
+ try {
519
+ const r = new BufferReader(buffer);
520
+ const flags = Number(r.readVarInt());
521
+ const objectIdPresent = (flags & 0x04) !== 0;
522
+ const groupIdPresent = (flags & 0x08) !== 0;
523
+ const priorityPresent = (flags & 0x10) !== 0;
524
+ const extensionsPresent = (flags & 0x20) !== 0;
525
+ const subgroupEncoding = flags & 0x03;
526
+ if (groupIdPresent)
527
+ r.readVarInt();
528
+ if (subgroupEncoding === 0x03)
529
+ r.readVarInt();
530
+ let objectId = 0n;
531
+ if (objectIdPresent)
532
+ objectId = r.readVarInt();
533
+ if (priorityPresent)
534
+ r.readUint8();
535
+ let extensionData = new Uint8Array(0);
536
+ if (extensionsPresent) {
537
+ const extLen = Number(r.readVarInt());
538
+ extensionData = extLen > 0 ? r.readBytes(extLen) : new Uint8Array(0);
539
+ }
540
+ const payloadLength = Number(r.readVarInt());
541
+ const payloadByteOffset = r.offset;
542
+ const payload = payloadLength > 0 ? r.readBytes(payloadLength) : new Uint8Array(0);
543
+ controller.enqueue({ type: "object", objectId, payloadLength, payload, extensionData, byteOffset: 0, payloadByteOffset });
544
+ buffer = buffer.slice(r.offset);
545
+ }
546
+ catch (e) {
547
+ if (e instanceof DecodeError && e.code === "UNEXPECTED_END") {
548
+ break;
549
+ }
550
+ controller.error(e);
551
+ return;
552
+ }
553
+ }
554
+ },
555
+ flush(controller) {
556
+ if (buffer.length > 0) {
557
+ controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
558
+ }
559
+ },
560
+ });
561
+ }
562
+ export function createDataStreamDecoder() {
563
+ let buffer = new Uint8Array(0);
564
+ let inner = null;
565
+ return new TransformStream({
566
+ transform(chunk, controller) {
567
+ const newBuffer = new Uint8Array(buffer.length + chunk.length);
568
+ newBuffer.set(buffer, 0);
569
+ newBuffer.set(chunk, buffer.length);
570
+ buffer = newBuffer;
571
+ if (inner === null) {
572
+ if (buffer.length === 0)
573
+ return;
574
+ const firstByte = buffer[0];
575
+ if ((firstByte >= 0x10 && firstByte <= 0x1d) || (firstByte >= 0x30 && firstByte <= 0x3d)) {
576
+ const decoder = createSubgroupStreamDecoder();
577
+ inner = decoder;
578
+ }
579
+ else if (firstByte === 0x05) {
580
+ const decoder = createFetchStreamDecoder();
581
+ inner = decoder;
582
+ }
583
+ else {
584
+ controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Unknown data stream type: 0x${firstByte.toString(16)}`, 0));
585
+ return;
586
+ }
587
+ }
588
+ },
589
+ flush(controller) {
590
+ if (buffer.length === 0)
591
+ return;
592
+ const firstByte = buffer[0];
593
+ let result;
594
+ if ((firstByte >= 0x10 && firstByte <= 0x1d) || (firstByte >= 0x30 && firstByte <= 0x3d)) {
595
+ result = decodeSubgroupStream(buffer);
596
+ }
597
+ else if (firstByte === 0x05) {
598
+ result = decodeFetchStream(buffer);
599
+ }
600
+ else {
601
+ controller.error(new DecodeError("CONSTRAINT_VIOLATION", `Unknown data stream type: 0x${firstByte.toString(16)}`, 0));
602
+ return;
603
+ }
604
+ if (!result.ok) {
605
+ controller.error(result.error);
606
+ return;
607
+ }
608
+ const stream = result.value;
609
+ if (stream.type === "subgroup") {
610
+ controller.enqueue({
611
+ type: "subgroup_header",
612
+ trackAlias: stream.trackAlias,
613
+ groupId: stream.groupId,
614
+ subgroupId: stream.subgroupId,
615
+ publisherPriority: stream.publisherPriority,
616
+ });
617
+ for (const obj of stream.objects) {
618
+ controller.enqueue(obj);
619
+ }
620
+ }
621
+ else if (stream.type === "fetch") {
622
+ controller.enqueue({
623
+ type: "fetch_header",
624
+ requestId: stream.requestId,
625
+ });
626
+ for (const obj of stream.objects) {
627
+ controller.enqueue(obj);
628
+ }
629
+ }
630
+ },
631
+ });
632
+ }
633
+ //# sourceMappingURL=data-streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-streams.js","sourceRoot":"","sources":["../../../src/drafts/draft17/data-streams.ts"],"names":[],"mappings":"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"}