@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,10 +1,10 @@
1
- import { p as MoqtMessageType, o as MoqtMessage } from './types-QNXoxC9Y.js';
1
+ import { c as Draft } from './types-DuIO7cWK.cjs';
2
2
 
3
- type SessionPhase = "idle" | "setup" | "ready" | "draining" | "closed" | "error";
4
- type SubscriptionPhase = "pending" | "active" | "error" | "done";
5
- type AnnouncePhase = "pending" | "active" | "error";
6
- type PublishPhase = "pending" | "active" | "error" | "done";
7
- type FetchPhase = "pending" | "active" | "error" | "cancelled";
3
+ type SessionPhase = 'idle' | 'setup' | 'ready' | 'draining' | 'closed' | 'error';
4
+ type SubscriptionPhase = 'pending' | 'active' | 'error' | 'done';
5
+ type AnnouncePhase = 'pending' | 'active' | 'error';
6
+ type PublishPhase = 'pending' | 'active' | 'error' | 'done';
7
+ type FetchPhase = 'pending' | 'active' | 'error' | 'cancelled';
8
8
  interface SubscriptionState {
9
9
  readonly subscribeId: bigint;
10
10
  readonly phase: SubscriptionPhase;
@@ -23,15 +23,16 @@ interface FetchState {
23
23
  readonly requestId: bigint;
24
24
  readonly phase: FetchPhase;
25
25
  }
26
- interface SessionStateOptions {
26
+ type SessionStateOptionsRole = 'client' | 'server';
27
+ interface SessionStateOptions<T extends Draft> {
27
28
  codec: {
28
- draft: string;
29
+ draft: T;
29
30
  };
30
- role: "client" | "server";
31
+ role: SessionStateOptionsRole;
31
32
  }
32
- interface SessionState<M = MoqtMessage, T extends string = MoqtMessageType> {
33
+ interface SessionState<M, T extends string> {
33
34
  readonly phase: SessionPhase;
34
- readonly role: "client" | "server";
35
+ readonly role: 'client' | 'server';
35
36
  receive(message: M): TransitionResult<T>;
36
37
  validateOutgoing(message: M): ValidationResult<T>;
37
38
  send(message: M): TransitionResult<T>;
@@ -41,7 +42,7 @@ interface SessionState<M = MoqtMessage, T extends string = MoqtMessageType> {
41
42
  readonly legalIncoming: ReadonlySet<T>;
42
43
  reset(): void;
43
44
  }
44
- type TransitionResult<T extends string = MoqtMessageType> = {
45
+ type TransitionResult<T extends string> = {
45
46
  ok: true;
46
47
  phase: SessionPhase;
47
48
  sideEffects: SideEffect[];
@@ -49,53 +50,53 @@ type TransitionResult<T extends string = MoqtMessageType> = {
49
50
  ok: false;
50
51
  violation: ProtocolViolation<T>;
51
52
  };
52
- type ValidationResult<T extends string = MoqtMessageType> = {
53
+ type ValidationResult<T extends string> = {
53
54
  ok: true;
54
55
  } | {
55
56
  ok: false;
56
57
  violation: ProtocolViolation<T>;
57
58
  };
58
- interface ProtocolViolation<T extends string = MoqtMessageType> {
59
+ interface ProtocolViolation<T extends string> {
59
60
  readonly code: ProtocolViolationCode;
60
61
  readonly message: string;
61
62
  readonly currentPhase: SessionPhase;
62
63
  readonly offendingMessage: T;
63
64
  }
64
- type ProtocolViolationCode = "MESSAGE_BEFORE_SETUP" | "UNEXPECTED_MESSAGE" | "DUPLICATE_SUBSCRIBE_ID" | "UNKNOWN_SUBSCRIBE_ID" | "DUPLICATE_REQUEST_ID" | "UNKNOWN_REQUEST_ID" | "ROLE_VIOLATION" | "STATE_VIOLATION" | "SETUP_VIOLATION";
65
+ type ProtocolViolationCode = 'MESSAGE_BEFORE_SETUP' | 'UNEXPECTED_MESSAGE' | 'DUPLICATE_SUBSCRIBE_ID' | 'UNKNOWN_SUBSCRIBE_ID' | 'DUPLICATE_REQUEST_ID' | 'UNKNOWN_REQUEST_ID' | 'ROLE_VIOLATION' | 'STATE_VIOLATION' | 'SETUP_VIOLATION';
65
66
  type SideEffect = {
66
- type: "subscription-activated";
67
+ type: 'subscription-activated';
67
68
  subscribeId: bigint;
68
69
  } | {
69
- type: "subscription-ended";
70
+ type: 'subscription-ended';
70
71
  subscribeId: bigint;
71
72
  reason: string;
72
73
  } | {
73
- type: "announce-activated";
74
+ type: 'announce-activated';
74
75
  namespace: string[];
75
76
  } | {
76
- type: "announce-ended";
77
+ type: 'announce-ended';
77
78
  namespace: string[];
78
79
  } | {
79
- type: "publish-activated";
80
+ type: 'publish-activated';
80
81
  requestId: bigint;
81
82
  } | {
82
- type: "publish-ended";
83
+ type: 'publish-ended';
83
84
  requestId: bigint;
84
85
  reason: string;
85
86
  } | {
86
- type: "fetch-activated";
87
+ type: 'fetch-activated';
87
88
  requestId: bigint;
88
89
  } | {
89
- type: "fetch-ended";
90
+ type: 'fetch-ended';
90
91
  requestId: bigint;
91
92
  reason: string;
92
93
  } | {
93
- type: "session-ready";
94
+ type: 'session-ready';
94
95
  } | {
95
- type: "session-draining";
96
+ type: 'session-draining';
96
97
  goAwayUri: string;
97
98
  } | {
98
- type: "session-closed";
99
+ type: 'session-closed';
99
100
  };
100
101
 
101
- export type { AnnouncePhase as A, FetchPhase as F, ProtocolViolation as P, SessionStateOptions as S, TransitionResult as T, ValidationResult as V, SessionState as a, AnnounceState as b, FetchState as c, ProtocolViolationCode as d, PublishPhase as e, PublishState as f, SessionPhase as g, SideEffect as h, SubscriptionPhase as i, SubscriptionState as j };
102
+ export type { AnnouncePhase as A, FetchPhase as F, ProtocolViolation as P, SessionStateOptions as S, TransitionResult as T, ValidationResult as V, SessionState as a, AnnounceState as b, FetchState as c, ProtocolViolationCode as d, PublishPhase as e, PublishState as f, SessionPhase as g, SideEffect as h, SubscriptionPhase as i, SubscriptionState as j, SessionStateOptionsRole as k };
@@ -1,10 +1,10 @@
1
- import { p as MoqtMessageType, o as MoqtMessage } from './types-QNXoxC9Y.cjs';
1
+ import { c as Draft } from './types-DuIO7cWK.js';
2
2
 
3
- type SessionPhase = "idle" | "setup" | "ready" | "draining" | "closed" | "error";
4
- type SubscriptionPhase = "pending" | "active" | "error" | "done";
5
- type AnnouncePhase = "pending" | "active" | "error";
6
- type PublishPhase = "pending" | "active" | "error" | "done";
7
- type FetchPhase = "pending" | "active" | "error" | "cancelled";
3
+ type SessionPhase = 'idle' | 'setup' | 'ready' | 'draining' | 'closed' | 'error';
4
+ type SubscriptionPhase = 'pending' | 'active' | 'error' | 'done';
5
+ type AnnouncePhase = 'pending' | 'active' | 'error';
6
+ type PublishPhase = 'pending' | 'active' | 'error' | 'done';
7
+ type FetchPhase = 'pending' | 'active' | 'error' | 'cancelled';
8
8
  interface SubscriptionState {
9
9
  readonly subscribeId: bigint;
10
10
  readonly phase: SubscriptionPhase;
@@ -23,15 +23,16 @@ interface FetchState {
23
23
  readonly requestId: bigint;
24
24
  readonly phase: FetchPhase;
25
25
  }
26
- interface SessionStateOptions {
26
+ type SessionStateOptionsRole = 'client' | 'server';
27
+ interface SessionStateOptions<T extends Draft> {
27
28
  codec: {
28
- draft: string;
29
+ draft: T;
29
30
  };
30
- role: "client" | "server";
31
+ role: SessionStateOptionsRole;
31
32
  }
32
- interface SessionState<M = MoqtMessage, T extends string = MoqtMessageType> {
33
+ interface SessionState<M, T extends string> {
33
34
  readonly phase: SessionPhase;
34
- readonly role: "client" | "server";
35
+ readonly role: 'client' | 'server';
35
36
  receive(message: M): TransitionResult<T>;
36
37
  validateOutgoing(message: M): ValidationResult<T>;
37
38
  send(message: M): TransitionResult<T>;
@@ -41,7 +42,7 @@ interface SessionState<M = MoqtMessage, T extends string = MoqtMessageType> {
41
42
  readonly legalIncoming: ReadonlySet<T>;
42
43
  reset(): void;
43
44
  }
44
- type TransitionResult<T extends string = MoqtMessageType> = {
45
+ type TransitionResult<T extends string> = {
45
46
  ok: true;
46
47
  phase: SessionPhase;
47
48
  sideEffects: SideEffect[];
@@ -49,53 +50,53 @@ type TransitionResult<T extends string = MoqtMessageType> = {
49
50
  ok: false;
50
51
  violation: ProtocolViolation<T>;
51
52
  };
52
- type ValidationResult<T extends string = MoqtMessageType> = {
53
+ type ValidationResult<T extends string> = {
53
54
  ok: true;
54
55
  } | {
55
56
  ok: false;
56
57
  violation: ProtocolViolation<T>;
57
58
  };
58
- interface ProtocolViolation<T extends string = MoqtMessageType> {
59
+ interface ProtocolViolation<T extends string> {
59
60
  readonly code: ProtocolViolationCode;
60
61
  readonly message: string;
61
62
  readonly currentPhase: SessionPhase;
62
63
  readonly offendingMessage: T;
63
64
  }
64
- type ProtocolViolationCode = "MESSAGE_BEFORE_SETUP" | "UNEXPECTED_MESSAGE" | "DUPLICATE_SUBSCRIBE_ID" | "UNKNOWN_SUBSCRIBE_ID" | "DUPLICATE_REQUEST_ID" | "UNKNOWN_REQUEST_ID" | "ROLE_VIOLATION" | "STATE_VIOLATION" | "SETUP_VIOLATION";
65
+ type ProtocolViolationCode = 'MESSAGE_BEFORE_SETUP' | 'UNEXPECTED_MESSAGE' | 'DUPLICATE_SUBSCRIBE_ID' | 'UNKNOWN_SUBSCRIBE_ID' | 'DUPLICATE_REQUEST_ID' | 'UNKNOWN_REQUEST_ID' | 'ROLE_VIOLATION' | 'STATE_VIOLATION' | 'SETUP_VIOLATION';
65
66
  type SideEffect = {
66
- type: "subscription-activated";
67
+ type: 'subscription-activated';
67
68
  subscribeId: bigint;
68
69
  } | {
69
- type: "subscription-ended";
70
+ type: 'subscription-ended';
70
71
  subscribeId: bigint;
71
72
  reason: string;
72
73
  } | {
73
- type: "announce-activated";
74
+ type: 'announce-activated';
74
75
  namespace: string[];
75
76
  } | {
76
- type: "announce-ended";
77
+ type: 'announce-ended';
77
78
  namespace: string[];
78
79
  } | {
79
- type: "publish-activated";
80
+ type: 'publish-activated';
80
81
  requestId: bigint;
81
82
  } | {
82
- type: "publish-ended";
83
+ type: 'publish-ended';
83
84
  requestId: bigint;
84
85
  reason: string;
85
86
  } | {
86
- type: "fetch-activated";
87
+ type: 'fetch-activated';
87
88
  requestId: bigint;
88
89
  } | {
89
- type: "fetch-ended";
90
+ type: 'fetch-ended';
90
91
  requestId: bigint;
91
92
  reason: string;
92
93
  } | {
93
- type: "session-ready";
94
+ type: 'session-ready';
94
95
  } | {
95
- type: "session-draining";
96
+ type: 'session-draining';
96
97
  goAwayUri: string;
97
98
  } | {
98
- type: "session-closed";
99
+ type: 'session-closed';
99
100
  };
100
101
 
101
- export type { AnnouncePhase as A, FetchPhase as F, ProtocolViolation as P, SessionStateOptions as S, TransitionResult as T, ValidationResult as V, SessionState as a, AnnounceState as b, FetchState as c, ProtocolViolationCode as d, PublishPhase as e, PublishState as f, SessionPhase as g, SideEffect as h, SubscriptionPhase as i, SubscriptionState as j };
102
+ export type { AnnouncePhase as A, FetchPhase as F, ProtocolViolation as P, SessionStateOptions as S, TransitionResult as T, ValidationResult as V, SessionState as a, AnnounceState as b, FetchState as c, ProtocolViolationCode as d, PublishPhase as e, PublishState as f, SessionPhase as g, SideEffect as h, SubscriptionPhase as i, SubscriptionState as j, SessionStateOptionsRole as k };
package/dist/session.cjs CHANGED
@@ -1,26 +1,59 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkUYXTY6ZQcjs = require('./chunk-UYXTY6ZQ.cjs');
3
+ var _chunkE65QKRSNcjs = require('./chunk-E65QKRSN.cjs');
4
4
 
5
5
 
6
- var _chunkKZCYQ7EDcjs = require('./chunk-KZCYQ7ED.cjs');
6
+ var _chunkJKOEJZ5Bcjs = require('./chunk-JKOEJZ5B.cjs');
7
+
8
+
9
+ var _chunk7RE6KSIYcjs = require('./chunk-7RE6KSIY.cjs');
10
+
11
+
12
+ var _chunkYTPZZI2Mcjs = require('./chunk-YTPZZI2M.cjs');
13
+
14
+
15
+ var _chunkEAHE3IOGcjs = require('./chunk-EAHE3IOG.cjs');
16
+
17
+
18
+ var _chunkJ3XCPBW3cjs = require('./chunk-J3XCPBW3.cjs');
19
+
20
+
21
+ var _chunkH5NSL4MOcjs = require('./chunk-H5NSL4MO.cjs');
22
+
23
+
24
+ var _chunkLV5C6MECcjs = require('./chunk-LV5C6MEC.cjs');
25
+
26
+
27
+ var _chunkIILNSDEQcjs = require('./chunk-IILNSDEQ.cjs');
7
28
  require('./chunk-MZ7VU52O.cjs');
8
29
 
30
+
31
+ var _chunkMYXAD5JCcjs = require('./chunk-MYXAD5JC.cjs');
32
+
33
+
34
+ var _chunkS6IPIN66cjs = require('./chunk-S6IPIN66.cjs');
35
+
9
36
  // src/session.ts
10
37
  function createSessionState(options) {
11
38
  const draft = options.codec.draft;
12
- switch (draft) {
13
- case "draft-ietf-moq-transport-07":
14
- return _chunkKZCYQ7EDcjs.createDraft07SessionState.call(void 0, options);
15
- case "draft-ietf-moq-transport-14":
16
- return _chunkUYXTY6ZQcjs.createDraft14SessionState.call(void 0, options);
17
- default:
18
- throw new Error(
19
- `Unsupported draft for session: "${draft}". Use a draft-scoped import instead:
20
- import { createDraft07SessionState } from '@moqtap/codec/draft7/session'
21
- import { createDraft14SessionState } from '@moqtap/codec/draft14/session'`
22
- );
39
+ const factories = {
40
+ "07": _chunkIILNSDEQcjs.createDraft07SessionState,
41
+ "08": _chunkMYXAD5JCcjs.createDraft08SessionState,
42
+ "09": _chunkS6IPIN66cjs.createDraft09SessionState,
43
+ "10": _chunkEAHE3IOGcjs.createDraft10SessionState,
44
+ "11": _chunkJ3XCPBW3cjs.createDraft11SessionState,
45
+ "12": _chunkH5NSL4MOcjs.createDraft12SessionState,
46
+ "13": _chunkLV5C6MECcjs.createDraft13SessionState,
47
+ "14": _chunkE65QKRSNcjs.createDraft14SessionState,
48
+ "15": _chunkJKOEJZ5Bcjs.createDraft15SessionState,
49
+ "16": _chunk7RE6KSIYcjs.createDraft16SessionState,
50
+ "17": _chunkYTPZZI2Mcjs.createDraft17SessionState
51
+ };
52
+ const factory = factories[draft];
53
+ if (!factory) {
54
+ throw new Error(`Unsupported draft for session: "${draft}". Use a draft-scoped import instead.`);
23
55
  }
56
+ return factory(options.role);
24
57
  }
25
58
 
26
59
 
@@ -1,6 +1,17 @@
1
- import { S as SessionStateOptions, a as SessionState } from './session-types-Cbq8IGCP.cjs';
2
- export { A as AnnouncePhase, b as AnnounceState, F as FetchPhase, c as FetchState, P as ProtocolViolation, d as ProtocolViolationCode, e as PublishPhase, f as PublishState, g as SessionPhase, h as SideEffect, i as SubscriptionPhase, j as SubscriptionState, T as TransitionResult, V as ValidationResult } from './session-types-Cbq8IGCP.cjs';
3
- import './types-QNXoxC9Y.cjs';
1
+ import { S as SessionStateOptions, a as SessionState } from './session-types-C7UONex5.cjs';
2
+ export { A as AnnouncePhase, b as AnnounceState, F as FetchPhase, c as FetchState, P as ProtocolViolation, d as ProtocolViolationCode, e as PublishPhase, f as PublishState, g as SessionPhase, h as SideEffect, i as SubscriptionPhase, j as SubscriptionState, T as TransitionResult, V as ValidationResult } from './session-types-C7UONex5.cjs';
3
+ import { c as Draft } from './types-DuIO7cWK.cjs';
4
+ import { D as Draft07Message, a as Draft07MessageType } from './types-Dl4IaAHR.cjs';
5
+ import { D as Draft08Message, a as Draft08MessageType } from './types-jV1yDDBA.cjs';
6
+ import { D as Draft09Message, a as Draft09MessageType } from './types-B3g5G9KP.cjs';
7
+ import { D as Draft10Message, a as Draft10MessageType } from './types-0IWbU9Z_.cjs';
8
+ import { D as Draft11Message, a as Draft11MessageType } from './types--Q7_DcvP.cjs';
9
+ import { D as Draft12Message, a as Draft12MessageType } from './types-C2qKTRR_.cjs';
10
+ import { D as Draft13Message, a as Draft13MessageType } from './types-DrQpTW1G.cjs';
11
+ import { D as Draft14Message, a as Draft14MessageType } from './types-DEaypVsD.cjs';
12
+ import { D as Draft15Message, a as Draft15MessageType } from './types-DuxfOYiO.cjs';
13
+ import { D as Draft16Message, a as Draft16MessageType } from './types-BFpFNM_m.cjs';
14
+ import { D as Draft17Message, a as Draft17MessageType } from './types-Br7fm2mf.cjs';
4
15
 
5
16
  /**
6
17
  * @moqtap/codec/session — MoQT session state machine
@@ -11,14 +22,22 @@ import './types-QNXoxC9Y.cjs';
11
22
  * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
12
23
  */
13
24
 
25
+ type DraftSessionStateMap = {
26
+ '07': SessionState<Draft07Message, Draft07MessageType>;
27
+ '08': SessionState<Draft08Message, Draft08MessageType>;
28
+ '09': SessionState<Draft09Message, Draft09MessageType>;
29
+ '10': SessionState<Draft10Message, Draft10MessageType>;
30
+ '11': SessionState<Draft11Message, Draft11MessageType>;
31
+ '12': SessionState<Draft12Message, Draft12MessageType>;
32
+ '13': SessionState<Draft13Message, Draft13MessageType>;
33
+ '14': SessionState<Draft14Message, Draft14MessageType>;
34
+ '15': SessionState<Draft15Message, Draft15MessageType>;
35
+ '16': SessionState<Draft16Message, Draft16MessageType>;
36
+ '17': SessionState<Draft17Message, Draft17MessageType>;
37
+ };
14
38
  /**
15
39
  * Create a session state machine for the given draft version.
16
- *
17
- * For type-safe access with draft-specific message types, use the
18
- * draft-scoped factory functions directly:
19
- * import { createDraft07SessionState } from '@moqtap/codec/draft7/session';
20
- * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
21
40
  */
22
- declare function createSessionState(options: SessionStateOptions): SessionState<unknown, string>;
41
+ declare function createSessionState<T extends Draft>(options: SessionStateOptions<T>): DraftSessionStateMap[T];
23
42
 
24
43
  export { SessionState, SessionStateOptions, createSessionState };
package/dist/session.d.ts CHANGED
@@ -1,6 +1,17 @@
1
- import { S as SessionStateOptions, a as SessionState } from './session-types-CJIFbTPd.js';
2
- export { A as AnnouncePhase, b as AnnounceState, F as FetchPhase, c as FetchState, P as ProtocolViolation, d as ProtocolViolationCode, e as PublishPhase, f as PublishState, g as SessionPhase, h as SideEffect, i as SubscriptionPhase, j as SubscriptionState, T as TransitionResult, V as ValidationResult } from './session-types-CJIFbTPd.js';
3
- import './types-QNXoxC9Y.js';
1
+ import { S as SessionStateOptions, a as SessionState } from './session-types-X-IYEGoG.js';
2
+ export { A as AnnouncePhase, b as AnnounceState, F as FetchPhase, c as FetchState, P as ProtocolViolation, d as ProtocolViolationCode, e as PublishPhase, f as PublishState, g as SessionPhase, h as SideEffect, i as SubscriptionPhase, j as SubscriptionState, T as TransitionResult, V as ValidationResult } from './session-types-X-IYEGoG.js';
3
+ import { c as Draft } from './types-DuIO7cWK.js';
4
+ import { D as Draft07Message, a as Draft07MessageType } from './types-Dl4IaAHR.js';
5
+ import { D as Draft08Message, a as Draft08MessageType } from './types-jV1yDDBA.js';
6
+ import { D as Draft09Message, a as Draft09MessageType } from './types-B3g5G9KP.js';
7
+ import { D as Draft10Message, a as Draft10MessageType } from './types-0IWbU9Z_.js';
8
+ import { D as Draft11Message, a as Draft11MessageType } from './types--Q7_DcvP.js';
9
+ import { D as Draft12Message, a as Draft12MessageType } from './types-C2qKTRR_.js';
10
+ import { D as Draft13Message, a as Draft13MessageType } from './types-DrQpTW1G.js';
11
+ import { D as Draft14Message, a as Draft14MessageType } from './types-DEaypVsD.js';
12
+ import { D as Draft15Message, a as Draft15MessageType } from './types-DuxfOYiO.js';
13
+ import { D as Draft16Message, a as Draft16MessageType } from './types-BFpFNM_m.js';
14
+ import { D as Draft17Message, a as Draft17MessageType } from './types-Br7fm2mf.js';
4
15
 
5
16
  /**
6
17
  * @moqtap/codec/session — MoQT session state machine
@@ -11,14 +22,22 @@ import './types-QNXoxC9Y.js';
11
22
  * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
12
23
  */
13
24
 
25
+ type DraftSessionStateMap = {
26
+ '07': SessionState<Draft07Message, Draft07MessageType>;
27
+ '08': SessionState<Draft08Message, Draft08MessageType>;
28
+ '09': SessionState<Draft09Message, Draft09MessageType>;
29
+ '10': SessionState<Draft10Message, Draft10MessageType>;
30
+ '11': SessionState<Draft11Message, Draft11MessageType>;
31
+ '12': SessionState<Draft12Message, Draft12MessageType>;
32
+ '13': SessionState<Draft13Message, Draft13MessageType>;
33
+ '14': SessionState<Draft14Message, Draft14MessageType>;
34
+ '15': SessionState<Draft15Message, Draft15MessageType>;
35
+ '16': SessionState<Draft16Message, Draft16MessageType>;
36
+ '17': SessionState<Draft17Message, Draft17MessageType>;
37
+ };
14
38
  /**
15
39
  * Create a session state machine for the given draft version.
16
- *
17
- * For type-safe access with draft-specific message types, use the
18
- * draft-scoped factory functions directly:
19
- * import { createDraft07SessionState } from '@moqtap/codec/draft7/session';
20
- * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
21
40
  */
22
- declare function createSessionState(options: SessionStateOptions): SessionState<unknown, string>;
41
+ declare function createSessionState<T extends Draft>(options: SessionStateOptions<T>): DraftSessionStateMap[T];
23
42
 
24
43
  export { SessionState, SessionStateOptions, createSessionState };
package/dist/session.js CHANGED
@@ -1,26 +1,59 @@
1
1
  import {
2
2
  createDraft14SessionState
3
- } from "./chunk-FXZ2MYKJ.js";
3
+ } from "./chunk-MZ7HUCGJ.js";
4
+ import {
5
+ createDraft15SessionState
6
+ } from "./chunk-AY6IAHUM.js";
7
+ import {
8
+ createDraft16SessionState
9
+ } from "./chunk-RZTLQAKF.js";
10
+ import {
11
+ createDraft17SessionState
12
+ } from "./chunk-Q7IGWV3P.js";
13
+ import {
14
+ createDraft10SessionState
15
+ } from "./chunk-WRHGCVYN.js";
16
+ import {
17
+ createDraft11SessionState
18
+ } from "./chunk-BLQDWOSG.js";
19
+ import {
20
+ createDraft12SessionState
21
+ } from "./chunk-LORZMJJB.js";
22
+ import {
23
+ createDraft13SessionState
24
+ } from "./chunk-2A57DRXV.js";
4
25
  import {
5
26
  createDraft07SessionState
6
- } from "./chunk-MRJWLGYH.js";
27
+ } from "./chunk-Z3VKP3PJ.js";
7
28
  import "./chunk-C6KUWLQC.js";
29
+ import {
30
+ createDraft08SessionState
31
+ } from "./chunk-7QOPNSDF.js";
32
+ import {
33
+ createDraft09SessionState
34
+ } from "./chunk-YWRCSQBA.js";
8
35
 
9
36
  // src/session.ts
10
37
  function createSessionState(options) {
11
38
  const draft = options.codec.draft;
12
- switch (draft) {
13
- case "draft-ietf-moq-transport-07":
14
- return createDraft07SessionState(options);
15
- case "draft-ietf-moq-transport-14":
16
- return createDraft14SessionState(options);
17
- default:
18
- throw new Error(
19
- `Unsupported draft for session: "${draft}". Use a draft-scoped import instead:
20
- import { createDraft07SessionState } from '@moqtap/codec/draft7/session'
21
- import { createDraft14SessionState } from '@moqtap/codec/draft14/session'`
22
- );
39
+ const factories = {
40
+ "07": createDraft07SessionState,
41
+ "08": createDraft08SessionState,
42
+ "09": createDraft09SessionState,
43
+ "10": createDraft10SessionState,
44
+ "11": createDraft11SessionState,
45
+ "12": createDraft12SessionState,
46
+ "13": createDraft13SessionState,
47
+ "14": createDraft14SessionState,
48
+ "15": createDraft15SessionState,
49
+ "16": createDraft16SessionState,
50
+ "17": createDraft17SessionState
51
+ };
52
+ const factory = factories[draft];
53
+ if (!factory) {
54
+ throw new Error(`Unsupported draft for session: "${draft}". Use a draft-scoped import instead.`);
23
55
  }
56
+ return factory(options.role);
24
57
  }
25
58
  export {
26
59
  createSessionState