@moqtap/codec 0.2.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +100 -99
- package/dist/{chunk-RZHAPEXO.js → chunk-2A57DRXV.js} +36 -10
- package/dist/{chunk-73MWUKSJ.js → chunk-2UTVXWFF.js} +190 -102
- package/dist/{chunk-JTVCOMBI.cjs → chunk-3XKO6PCR.cjs} +290 -183
- package/dist/{chunk-ACQ4CUJP.cjs → chunk-4BDEU3D4.cjs} +237 -158
- package/dist/{chunk-4N4INRE7.cjs → chunk-4HBKHNU2.cjs} +144 -110
- package/dist/{chunk-2ZT6CVSE.js → chunk-4IVZZOY3.js} +269 -162
- package/dist/{chunk-GLBQDG4L.cjs → chunk-5O764MBD.cjs} +508 -117
- package/dist/chunk-7KBAWOBA.js +1212 -0
- package/dist/{chunk-JSQM2MG3.js → chunk-7QOPNSDF.js} +44 -12
- package/dist/{chunk-SYHW3FLI.cjs → chunk-7RE6KSIY.cjs} +28 -8
- package/dist/{chunk-YG5KJESI.js → chunk-AY6IAHUM.js} +28 -8
- package/dist/{chunk-EFM5T7OM.js → chunk-BLQDWOSG.js} +36 -10
- package/dist/{chunk-UYXTY6ZQ.cjs → chunk-E65QKRSN.cjs} +20 -12
- package/dist/{chunk-BISI45MN.cjs → chunk-EAHE3IOG.cjs} +44 -12
- package/dist/{chunk-PZBPH2D7.js → chunk-GCBFHZW6.js} +216 -137
- package/dist/{chunk-GXEW4COZ.cjs → chunk-H5NSL4MO.cjs} +36 -10
- package/dist/chunk-HZHSO7EW.cjs +1212 -0
- package/dist/{chunk-KZCYQ7ED.cjs → chunk-IILNSDEQ.cjs} +69 -41
- package/dist/{chunk-4XYGE53S.cjs → chunk-J3XCPBW3.cjs} +36 -10
- package/dist/{chunk-6AEHWULA.cjs → chunk-JKOEJZ5B.cjs} +28 -8
- package/dist/{chunk-RUPCJTC3.cjs → chunk-JL3NEW3O.cjs} +23 -1
- package/dist/{chunk-G7GI7LJA.js → chunk-LORZMJJB.js} +36 -10
- package/dist/{chunk-DUBCL3WF.cjs → chunk-LV5C6MEC.cjs} +36 -10
- package/dist/{chunk-ENURAVHI.cjs → chunk-MYXAD5JC.cjs} +44 -12
- package/dist/{chunk-FXZ2MYKJ.js → chunk-MZ7HUCGJ.js} +20 -12
- package/dist/{chunk-S74DWJE2.cjs → chunk-OKG2HT25.cjs} +277 -88
- package/dist/{chunk-BGWGVINJ.cjs → chunk-PKEOQSSZ.cjs} +144 -110
- package/dist/{chunk-2GODRVT5.js → chunk-Q46ZURKX.js} +325 -48
- package/dist/{chunk-UR6JKS56.js → chunk-Q7IGWV3P.js} +41 -9
- package/dist/{chunk-XSNX2IUJ.js → chunk-RW4UG7CN.js} +121 -87
- package/dist/{chunk-DWK5ZQZ4.js → chunk-RZTLQAKF.js} +28 -8
- package/dist/{chunk-UNS34PTA.cjs → chunk-S6IPIN66.cjs} +44 -12
- package/dist/{chunk-YIG2C3LF.cjs → chunk-SDWRXXOO.cjs} +214 -126
- package/dist/{chunk-CEH7ESNC.js → chunk-SHMA4PBY.js} +121 -87
- package/dist/{chunk-MC7W6PMI.js → chunk-U3ZVLT5L.js} +483 -135
- package/dist/{chunk-VJUUZ4W2.cjs → chunk-UJU63EFY.cjs} +374 -97
- package/dist/{chunk-7L43FE6P.js → chunk-VOU7PNHI.js} +23 -1
- package/dist/{chunk-E6E3NQYU.js → chunk-WRHGCVYN.js} +44 -12
- package/dist/{chunk-FPISPJ5N.cjs → chunk-XNWYLVGU.cjs} +529 -181
- package/dist/{chunk-U3IPZYPX.js → chunk-XS77RBY7.js} +228 -39
- package/dist/{chunk-JGG7CMSZ.cjs → chunk-XZE5R57R.cjs} +144 -110
- package/dist/{chunk-77MNXX3M.js → chunk-Y6KCSM3V.js} +121 -87
- package/dist/{chunk-TLYNOOQP.cjs → chunk-YTPZZI2M.cjs} +41 -9
- package/dist/{chunk-7DUBLRXC.js → chunk-YWRCSQBA.js} +44 -12
- package/dist/{chunk-MRJWLGYH.js → chunk-Z3VKP3PJ.js} +69 -41
- package/dist/{chunk-E6P74GDT.js → chunk-Z6U26IRI.js} +464 -73
- package/dist/{codec-FvGCxIhr.d.ts → codec-25u4_1HS.d.ts} +4 -4
- package/dist/{codec-DRcsBCsb.d.ts → codec-3Ppy_5Gd.d.ts} +4 -4
- package/dist/{codec-BdVMRMOI.d.ts → codec-BB0U8MF2.d.cts} +4 -4
- package/dist/{codec-B2cH-f5V.d.cts → codec-BHHfBTnV.d.ts} +4 -4
- package/dist/{codec-B5K73Bdj.d.ts → codec-BN6jk0Td.d.cts} +4 -4
- package/dist/{codec-R8GrCPt2.d.ts → codec-BU0gaSZm.d.ts} +4 -4
- package/dist/{codec-Bq-tLtfP.d.ts → codec-C-Yk2RNa.d.ts} +4 -4
- package/dist/codec-CFWQY9Lj.d.cts +18 -0
- package/dist/{codec-CPlK3Pi5.d.ts → codec-COy4uuPO.d.cts} +4 -4
- package/dist/codec-CewFCsEy.d.ts +18 -0
- package/dist/{codec-KXHvXZVb.d.cts → codec-Ck7ZwFF1.d.cts} +4 -4
- package/dist/{codec-DZhZSIii.d.cts → codec-D2QVSH9D.d.ts} +4 -4
- package/dist/{codec-BwFgpeQu.d.ts → codec-DDUBJGn0.d.cts} +4 -4
- package/dist/{codec-BFeliJFc.d.ts → codec-DNfml-se.d.ts} +4 -4
- package/dist/{codec-C4n1PS09.d.cts → codec-DoOGjjDq.d.cts} +4 -4
- package/dist/{codec-Bap882Fh.d.cts → codec-J7ekOSMc.d.ts} +4 -4
- package/dist/{codec-SKBeHQk7.d.ts → codec-R9TJCq-E.d.cts} +4 -4
- package/dist/{codec-DNUIgLqc.d.cts → codec-ZwV-Njt6.d.ts} +4 -4
- package/dist/{codec-HgBgHkFI.d.cts → codec-j819z_hL.d.cts} +4 -4
- package/dist/{codec-DY4QH364.d.cts → codec-w8z2j_uo.d.cts} +4 -4
- package/dist/{codec-CPvPq0sb.d.cts → codec-wtt6WF1K.d.ts} +4 -4
- package/dist/{codec-BUMjz0J4.d.cts → codec-z6_2PSzi.d.cts} +4 -4
- package/dist/{draft7-session.cjs → draft07-session.cjs} +2 -2
- package/dist/draft07-session.d.cts +8 -0
- package/dist/draft07-session.d.ts +8 -0
- package/dist/{draft7-session.js → draft07-session.js} +1 -1
- package/dist/draft07.cjs +129 -0
- package/dist/draft07.d.cts +67 -0
- package/dist/draft07.d.ts +67 -0
- package/dist/draft07.js +129 -0
- package/dist/draft08-session.cjs +6 -0
- package/dist/draft08-session.d.cts +8 -0
- package/dist/draft08-session.d.ts +8 -0
- package/dist/{draft8-session.js → draft08-session.js} +1 -1
- package/dist/draft08.cjs +119 -0
- package/dist/{draft8.d.cts → draft08.d.cts} +15 -13
- package/dist/{draft8.d.ts → draft08.d.ts} +15 -13
- package/dist/{draft8.js → draft08.js} +7 -4
- package/dist/draft09-session.cjs +6 -0
- package/dist/draft09-session.d.cts +8 -0
- package/dist/draft09-session.d.ts +8 -0
- package/dist/{draft9-session.js → draft09-session.js} +1 -1
- package/dist/draft09.cjs +119 -0
- package/dist/{draft9.d.cts → draft09.d.cts} +15 -13
- package/dist/{draft9.d.ts → draft09.d.ts} +15 -13
- package/dist/{draft9.js → draft09.js} +7 -4
- package/dist/draft10-session.cjs +2 -2
- package/dist/draft10-session.d.cts +6 -6
- package/dist/draft10-session.d.ts +6 -6
- package/dist/draft10-session.js +1 -1
- package/dist/draft10.cjs +8 -5
- package/dist/draft10.d.cts +14 -12
- package/dist/draft10.d.ts +14 -12
- package/dist/draft10.js +16 -13
- package/dist/draft11-session.cjs +2 -2
- package/dist/draft11-session.d.cts +6 -6
- package/dist/draft11-session.d.ts +6 -6
- package/dist/draft11-session.js +1 -1
- package/dist/draft11.cjs +8 -5
- package/dist/draft11.d.cts +14 -12
- package/dist/draft11.d.ts +14 -12
- package/dist/draft11.js +16 -13
- package/dist/draft12-session.cjs +2 -2
- package/dist/draft12-session.d.cts +6 -6
- package/dist/draft12-session.d.ts +6 -6
- package/dist/draft12-session.js +1 -1
- package/dist/draft12.cjs +8 -5
- package/dist/draft12.d.cts +16 -14
- package/dist/draft12.d.ts +16 -14
- package/dist/draft12.js +16 -13
- package/dist/draft13-session.cjs +2 -2
- package/dist/draft13-session.d.cts +6 -6
- package/dist/draft13-session.d.ts +6 -6
- package/dist/draft13-session.js +1 -1
- package/dist/draft13.cjs +8 -5
- package/dist/draft13.d.cts +16 -14
- package/dist/draft13.d.ts +16 -14
- package/dist/draft13.js +16 -13
- package/dist/draft14-session.cjs +2 -2
- package/dist/draft14-session.d.cts +6 -6
- package/dist/draft14-session.d.ts +6 -6
- package/dist/draft14-session.js +1 -1
- package/dist/draft14.cjs +14 -5
- package/dist/draft14.d.cts +14 -12
- package/dist/draft14.d.ts +14 -12
- package/dist/draft14.js +13 -4
- package/dist/draft15-session.cjs +2 -2
- package/dist/draft15-session.d.cts +6 -6
- package/dist/draft15-session.d.ts +6 -6
- package/dist/draft15-session.js +1 -1
- package/dist/draft15.cjs +8 -5
- package/dist/draft15.d.cts +14 -12
- package/dist/draft15.d.ts +14 -12
- package/dist/draft15.js +16 -13
- package/dist/draft16-session.cjs +2 -2
- package/dist/draft16-session.d.cts +6 -6
- package/dist/draft16-session.d.ts +6 -6
- package/dist/draft16-session.js +1 -1
- package/dist/draft16.cjs +8 -5
- package/dist/draft16.d.cts +14 -12
- package/dist/draft16.d.ts +14 -12
- package/dist/draft16.js +16 -13
- package/dist/draft17-session.cjs +2 -2
- package/dist/draft17-session.d.cts +7 -7
- package/dist/draft17-session.d.ts +7 -7
- package/dist/draft17-session.js +1 -1
- package/dist/draft17.cjs +8 -5
- package/dist/draft17.d.cts +11 -9
- package/dist/draft17.d.ts +11 -9
- package/dist/draft17.js +16 -13
- package/dist/index.cjs +52 -74
- package/dist/index.d.cts +41 -60
- package/dist/index.d.ts +41 -60
- package/dist/index.js +40 -62
- package/dist/{session-types-CJIFbTPd.d.ts → session-types-C7UONex5.d.cts} +28 -27
- package/dist/{session-types-Cbq8IGCP.d.cts → session-types-X-IYEGoG.d.ts} +28 -27
- package/dist/session.cjs +46 -13
- package/dist/session.d.cts +29 -11
- package/dist/session.d.ts +29 -11
- package/dist/session.js +46 -13
- package/dist/{types-DxSFvL2b.d.cts → types--Q7_DcvP.d.cts} +43 -39
- package/dist/{types-DxSFvL2b.d.ts → types--Q7_DcvP.d.ts} +43 -39
- package/dist/{types-B0FT5Qs2.d.cts → types-0IWbU9Z_.d.cts} +36 -36
- package/dist/{types-B0FT5Qs2.d.ts → types-0IWbU9Z_.d.ts} +36 -36
- package/dist/{types-gQsr0AAA.d.cts → types-B3g5G9KP.d.cts} +36 -36
- package/dist/{types-gQsr0AAA.d.ts → types-B3g5G9KP.d.ts} +36 -36
- package/dist/{types-Pme7sua0.d.cts → types-BFpFNM_m.d.cts} +57 -32
- package/dist/{types-Pme7sua0.d.ts → types-BFpFNM_m.d.ts} +57 -32
- package/dist/{types-8gUGeMgs.d.cts → types-Br7fm2mf.d.cts} +48 -26
- package/dist/{types-8gUGeMgs.d.ts → types-Br7fm2mf.d.ts} +48 -26
- package/dist/{types-BeAVNU-F.d.cts → types-C2qKTRR_.d.cts} +50 -45
- package/dist/{types-BeAVNU-F.d.ts → types-C2qKTRR_.d.ts} +50 -45
- package/dist/{types-DKpsfD3i.d.cts → types-DEaypVsD.d.cts} +115 -55
- package/dist/{types-DKpsfD3i.d.ts → types-DEaypVsD.d.ts} +115 -55
- package/dist/types-Dl4IaAHR.d.cts +282 -0
- package/dist/types-Dl4IaAHR.d.ts +282 -0
- package/dist/{types-CDa7F5ct.d.cts → types-DrQpTW1G.d.cts} +58 -50
- package/dist/{types-CDa7F5ct.d.ts → types-DrQpTW1G.d.ts} +58 -50
- package/dist/types-DuIO7cWK.d.cts +25 -0
- package/dist/types-DuIO7cWK.d.ts +25 -0
- package/dist/{types-B9A2g05r.d.cts → types-DuxfOYiO.d.cts} +47 -31
- package/dist/{types-B9A2g05r.d.ts → types-DuxfOYiO.d.ts} +47 -31
- package/dist/{types-D1dI_oTX.d.cts → types-jV1yDDBA.d.cts} +36 -36
- package/dist/{types-D1dI_oTX.d.ts → types-jV1yDDBA.d.ts} +36 -36
- package/package.json +192 -192
- package/src/core/buffer-reader.ts +130 -130
- package/src/core/buffer-writer.ts +100 -100
- package/src/core/errors.ts +1 -1
- package/src/core/hex.ts +21 -21
- package/src/core/session-types.ts +61 -59
- package/src/core/types.ts +18 -361
- package/src/drafts/draft07/codec.ts +1058 -938
- package/src/drafts/draft07/data-streams.ts +240 -240
- package/src/drafts/draft07/index.ts +124 -89
- package/src/drafts/draft07/messages.ts +76 -42
- package/src/drafts/draft07/rules.ts +107 -101
- package/src/drafts/draft07/session-fsm.ts +315 -287
- package/src/drafts/draft07/session.ts +8 -6
- package/src/drafts/draft07/types.ts +406 -72
- package/src/drafts/draft07/varint.ts +51 -51
- package/src/drafts/draft08/codec.ts +985 -953
- package/src/drafts/draft08/data-streams.ts +363 -359
- package/src/drafts/draft08/index.ts +10 -9
- package/src/drafts/draft08/messages.ts +59 -59
- package/src/drafts/draft08/rules.ts +73 -73
- package/src/drafts/draft08/session-fsm.ts +335 -303
- package/src/drafts/draft08/session.ts +6 -7
- package/src/drafts/draft08/types.ts +380 -384
- package/src/drafts/draft09/codec.ts +977 -945
- package/src/drafts/draft09/data-streams.ts +336 -332
- package/src/drafts/draft09/index.ts +10 -9
- package/src/drafts/draft09/messages.ts +59 -59
- package/src/drafts/draft09/rules.ts +73 -73
- package/src/drafts/draft09/session-fsm.ts +335 -303
- package/src/drafts/draft09/session.ts +6 -7
- package/src/drafts/draft09/types.ts +380 -384
- package/src/drafts/draft10/codec.ts +977 -945
- package/src/drafts/draft10/data-streams.ts +336 -332
- package/src/drafts/draft10/index.ts +10 -9
- package/src/drafts/draft10/messages.ts +59 -59
- package/src/drafts/draft10/rules.ts +73 -73
- package/src/drafts/draft10/session-fsm.ts +335 -303
- package/src/drafts/draft10/session.ts +6 -7
- package/src/drafts/draft10/types.ts +380 -384
- package/src/drafts/draft11/codec.ts +1054 -988
- package/src/drafts/draft11/data-streams.ts +316 -269
- package/src/drafts/draft11/index.ts +10 -9
- package/src/drafts/draft11/messages.ts +60 -59
- package/src/drafts/draft11/rules.ts +73 -73
- package/src/drafts/draft11/session-fsm.ts +359 -333
- package/src/drafts/draft11/session.ts +6 -7
- package/src/drafts/draft11/types.ts +385 -381
- package/src/drafts/draft12/codec.ts +1178 -1122
- package/src/drafts/draft12/data-streams.ts +324 -275
- package/src/drafts/draft12/index.ts +10 -9
- package/src/drafts/draft12/messages.ts +67 -66
- package/src/drafts/draft12/rules.ts +79 -79
- package/src/drafts/draft12/session-fsm.ts +384 -358
- package/src/drafts/draft12/session.ts +6 -7
- package/src/drafts/draft12/types.ts +424 -419
- package/src/drafts/draft13/codec.ts +1296 -1206
- package/src/drafts/draft13/data-streams.ts +326 -275
- package/src/drafts/draft13/index.ts +10 -9
- package/src/drafts/draft13/messages.ts +73 -68
- package/src/drafts/draft13/rules.ts +81 -81
- package/src/drafts/draft13/session-fsm.ts +392 -366
- package/src/drafts/draft13/session.ts +6 -7
- package/src/drafts/draft13/types.ts +447 -438
- package/src/drafts/draft14/codec.ts +1347 -1043
- package/src/drafts/draft14/data-streams.ts +831 -813
- package/src/drafts/draft14/index.ts +17 -9
- package/src/drafts/draft14/messages.ts +65 -65
- package/src/drafts/draft14/rules.ts +81 -81
- package/src/drafts/draft14/session-fsm.ts +415 -405
- package/src/drafts/draft14/session.ts +6 -7
- package/src/drafts/draft14/types.ts +451 -381
- package/src/drafts/draft15/codec.ts +1138 -978
- package/src/drafts/draft15/data-streams.ts +842 -794
- package/src/drafts/draft15/index.ts +10 -9
- package/src/drafts/draft15/messages.ts +54 -53
- package/src/drafts/draft15/rules.ts +67 -67
- package/src/drafts/draft15/session-fsm.ts +319 -299
- package/src/drafts/draft15/session.ts +6 -7
- package/src/drafts/draft15/types.ts +357 -339
- package/src/drafts/draft16/codec.ts +1242 -966
- package/src/drafts/draft16/data-streams.ts +835 -789
- package/src/drafts/draft16/index.ts +10 -9
- package/src/drafts/draft16/messages.ts +56 -55
- package/src/drafts/draft16/rules.ts +69 -69
- package/src/drafts/draft16/session-fsm.ts +319 -299
- package/src/drafts/draft16/session.ts +6 -7
- package/src/drafts/draft16/types.ts +386 -357
- package/src/drafts/draft17/codec.ts +1209 -971
- package/src/drafts/draft17/data-streams.ts +969 -758
- package/src/drafts/draft17/index.ts +9 -7
- package/src/drafts/draft17/messages.ts +43 -42
- package/src/drafts/draft17/rules.ts +58 -58
- package/src/drafts/draft17/session-fsm.ts +248 -216
- package/src/drafts/draft17/session.ts +5 -5
- package/src/drafts/draft17/types.ts +337 -313
- package/src/index.ts +85 -274
- package/src/session.ts +63 -25
- package/dist/chunk-FZDIEHQL.cjs +0 -1042
- package/dist/chunk-HDWJ2GDE.js +0 -24
- package/dist/chunk-KNDYS3DK.cjs +0 -24
- package/dist/chunk-N2KBF5Q2.js +0 -1042
- package/dist/draft7-session.d.cts +0 -7
- package/dist/draft7-session.d.ts +0 -7
- package/dist/draft7.cjs +0 -72
- package/dist/draft7.d.cts +0 -148
- package/dist/draft7.d.ts +0 -148
- package/dist/draft7.js +0 -72
- package/dist/draft8-session.cjs +0 -6
- package/dist/draft8-session.d.cts +0 -8
- package/dist/draft8-session.d.ts +0 -8
- package/dist/draft8.cjs +0 -116
- package/dist/draft9-session.cjs +0 -6
- package/dist/draft9-session.d.cts +0 -8
- package/dist/draft9-session.d.ts +0 -8
- package/dist/draft9.cjs +0 -116
- package/dist/types-QNXoxC9Y.d.cts +0 -236
- package/dist/types-QNXoxC9Y.d.ts +0 -236
- package/src/drafts/draft07/announce-fsm.ts +0 -2
- package/src/drafts/draft07/parameters.ts +0 -12
- package/src/drafts/draft07/subscription-fsm.ts +0 -3
package/src/index.ts
CHANGED
|
@@ -5,118 +5,65 @@
|
|
|
5
5
|
* `createCodec()` factory which requires an explicit draft version.
|
|
6
6
|
*
|
|
7
7
|
* For direct access to a specific draft, use subpath imports:
|
|
8
|
-
* import {
|
|
9
|
-
* import { createDraft14Codec } from '@moqtap/codec/draft14';
|
|
8
|
+
* import { createDraft17Codec } from '@moqtap/codec/draft17';
|
|
10
9
|
*
|
|
11
10
|
* A default (versionless) codec will be available once the MoQT
|
|
12
11
|
* specification reaches RFC status. Until then, always specify a draft.
|
|
13
12
|
*/
|
|
14
13
|
|
|
15
|
-
import type {
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
import
|
|
20
|
-
import {
|
|
21
|
-
import
|
|
22
|
-
import {
|
|
23
|
-
import
|
|
24
|
-
import {
|
|
25
|
-
import
|
|
26
|
-
import {
|
|
27
|
-
import
|
|
28
|
-
import {
|
|
29
|
-
import
|
|
30
|
-
import {
|
|
31
|
-
import
|
|
32
|
-
import {
|
|
33
|
-
import
|
|
34
|
-
import {
|
|
35
|
-
import
|
|
36
|
-
import {
|
|
14
|
+
import type { CodecOptions } from './core/types.js'
|
|
15
|
+
import type { Draft07Codec } from './drafts/draft07/codec.js'
|
|
16
|
+
import { createDraft07Codec } from './drafts/draft07/codec.js'
|
|
17
|
+
import type { Draft08Codec } from './drafts/draft08/codec.js'
|
|
18
|
+
import { createDraft08Codec } from './drafts/draft08/codec.js'
|
|
19
|
+
import type { Draft09Codec } from './drafts/draft09/codec.js'
|
|
20
|
+
import { createDraft09Codec } from './drafts/draft09/codec.js'
|
|
21
|
+
import type { Draft10Codec } from './drafts/draft10/codec.js'
|
|
22
|
+
import { createDraft10Codec } from './drafts/draft10/codec.js'
|
|
23
|
+
import type { Draft11Codec } from './drafts/draft11/codec.js'
|
|
24
|
+
import { createDraft11Codec } from './drafts/draft11/codec.js'
|
|
25
|
+
import type { Draft12Codec } from './drafts/draft12/codec.js'
|
|
26
|
+
import { createDraft12Codec } from './drafts/draft12/codec.js'
|
|
27
|
+
import type { Draft13Codec } from './drafts/draft13/codec.js'
|
|
28
|
+
import { createDraft13Codec } from './drafts/draft13/codec.js'
|
|
29
|
+
import type { Draft14Codec } from './drafts/draft14/codec.js'
|
|
30
|
+
import { createDraft14Codec } from './drafts/draft14/codec.js'
|
|
31
|
+
import type { Draft15Codec } from './drafts/draft15/codec.js'
|
|
32
|
+
import { createDraft15Codec } from './drafts/draft15/codec.js'
|
|
33
|
+
import type { Draft16Codec } from './drafts/draft16/codec.js'
|
|
34
|
+
import { createDraft16Codec } from './drafts/draft16/codec.js'
|
|
35
|
+
import type { Draft17Codec } from './drafts/draft17/codec.js'
|
|
36
|
+
import { createDraft17Codec } from './drafts/draft17/codec.js'
|
|
37
37
|
|
|
38
|
-
const DRAFT_ALIASES: Record<string, Draft> = {
|
|
39
|
-
"07": "draft-ietf-moq-transport-07",
|
|
40
|
-
"draft-ietf-moq-transport-07": "draft-ietf-moq-transport-07",
|
|
41
|
-
"08": "draft-ietf-moq-transport-08",
|
|
42
|
-
"draft-ietf-moq-transport-08": "draft-ietf-moq-transport-08",
|
|
43
|
-
"09": "draft-ietf-moq-transport-09",
|
|
44
|
-
"draft-ietf-moq-transport-09": "draft-ietf-moq-transport-09",
|
|
45
|
-
"10": "draft-ietf-moq-transport-10",
|
|
46
|
-
"draft-ietf-moq-transport-10": "draft-ietf-moq-transport-10",
|
|
47
|
-
"11": "draft-ietf-moq-transport-11",
|
|
48
|
-
"draft-ietf-moq-transport-11": "draft-ietf-moq-transport-11",
|
|
49
|
-
"12": "draft-ietf-moq-transport-12",
|
|
50
|
-
"draft-ietf-moq-transport-12": "draft-ietf-moq-transport-12",
|
|
51
|
-
"13": "draft-ietf-moq-transport-13",
|
|
52
|
-
"draft-ietf-moq-transport-13": "draft-ietf-moq-transport-13",
|
|
53
|
-
"14": "draft-ietf-moq-transport-14",
|
|
54
|
-
"draft-ietf-moq-transport-14": "draft-ietf-moq-transport-14",
|
|
55
|
-
"15": "draft-ietf-moq-transport-15",
|
|
56
|
-
"draft-ietf-moq-transport-15": "draft-ietf-moq-transport-15",
|
|
57
|
-
"16": "draft-ietf-moq-transport-16",
|
|
58
|
-
"draft-ietf-moq-transport-16": "draft-ietf-moq-transport-16",
|
|
59
|
-
"17": "draft-ietf-moq-transport-17",
|
|
60
|
-
"draft-ietf-moq-transport-17": "draft-ietf-moq-transport-17",
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Create a codec for draft-07 (returns full Codec with stream decoder).
|
|
65
|
-
*/
|
|
66
|
-
export function createCodec(
|
|
67
|
-
options: CodecOptions & { draft: "draft-ietf-moq-transport-07" | "07" },
|
|
68
|
-
): Codec;
|
|
69
|
-
export function createCodec(
|
|
70
|
-
options: CodecOptions & { draft: "draft-ietf-moq-transport-08" | "08" },
|
|
71
|
-
): Draft08Codec;
|
|
72
|
-
export function createCodec(
|
|
73
|
-
options: CodecOptions & { draft: "draft-ietf-moq-transport-09" | "09" },
|
|
74
|
-
): Draft09Codec;
|
|
75
|
-
export function createCodec(
|
|
76
|
-
options: CodecOptions & { draft: "draft-ietf-moq-transport-10" | "10" },
|
|
77
|
-
): Draft10Codec;
|
|
78
|
-
/**
|
|
79
|
-
* Create a codec for draft-11 (returns Draft11Codec with data stream support).
|
|
80
|
-
*/
|
|
81
|
-
export function createCodec(
|
|
82
|
-
options: CodecOptions & { draft: "draft-ietf-moq-transport-11" | "11" },
|
|
83
|
-
): Draft11Codec;
|
|
84
|
-
/**
|
|
85
|
-
* Create a codec for draft-12 (returns Draft12Codec with data stream support).
|
|
86
|
-
*/
|
|
87
|
-
export function createCodec(
|
|
88
|
-
options: CodecOptions & { draft: "draft-ietf-moq-transport-12" | "12" },
|
|
89
|
-
): Draft12Codec;
|
|
90
38
|
/**
|
|
91
|
-
*
|
|
39
|
+
* Wire version numbers for each MoQT draft, keyed by short aliases.
|
|
92
40
|
*/
|
|
93
|
-
export
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
):
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
export function createCodec(
|
|
112
|
-
|
|
113
|
-
):
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
export function createCodec(
|
|
118
|
-
|
|
119
|
-
): Draft17Codec;
|
|
41
|
+
export const DRAFT_VERSIONS: Record<string, bigint> = {
|
|
42
|
+
'07': 0xff000007n,
|
|
43
|
+
'08': 0xff000008n,
|
|
44
|
+
'09': 0xff000009n,
|
|
45
|
+
'10': 0xff00000an,
|
|
46
|
+
'11': 0xff00000bn,
|
|
47
|
+
'12': 0xff00000cn,
|
|
48
|
+
'13': 0xff00000dn,
|
|
49
|
+
'14': 0xff00000en,
|
|
50
|
+
'15': 0xff00000fn,
|
|
51
|
+
'16': 0xff000010n,
|
|
52
|
+
'17': 0xff000011n,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function createCodec(options: CodecOptions & { draft: '07' }): Draft07Codec
|
|
56
|
+
export function createCodec(options: CodecOptions & { draft: '08' }): Draft08Codec
|
|
57
|
+
export function createCodec(options: CodecOptions & { draft: '09' }): Draft09Codec
|
|
58
|
+
export function createCodec(options: CodecOptions & { draft: '10' }): Draft10Codec
|
|
59
|
+
export function createCodec(options: CodecOptions & { draft: '11' }): Draft11Codec
|
|
60
|
+
export function createCodec(options: CodecOptions & { draft: '12' }): Draft12Codec
|
|
61
|
+
export function createCodec(options: CodecOptions & { draft: '13' }): Draft13Codec
|
|
62
|
+
export function createCodec(options: CodecOptions & { draft: '14' }): Draft14Codec
|
|
63
|
+
export function createCodec(options: CodecOptions & { draft: '15' }): Draft15Codec
|
|
64
|
+
export function createCodec(options: CodecOptions & { draft: '16' }): Draft16Codec
|
|
65
|
+
export function createCodec(options: CodecOptions & { draft: '17' }): Draft17Codec
|
|
66
|
+
|
|
120
67
|
/**
|
|
121
68
|
* Create a codec for the specified draft version.
|
|
122
69
|
*
|
|
@@ -126,7 +73,7 @@ export function createCodec(
|
|
|
126
73
|
export function createCodec(
|
|
127
74
|
options: CodecOptions,
|
|
128
75
|
):
|
|
129
|
-
|
|
|
76
|
+
| Draft07Codec
|
|
130
77
|
| Draft08Codec
|
|
131
78
|
| Draft09Codec
|
|
132
79
|
| Draft10Codec
|
|
@@ -136,11 +83,11 @@ export function createCodec(
|
|
|
136
83
|
| Draft14Codec
|
|
137
84
|
| Draft15Codec
|
|
138
85
|
| Draft16Codec
|
|
139
|
-
| Draft17Codec
|
|
86
|
+
| Draft17Codec
|
|
140
87
|
export function createCodec(
|
|
141
88
|
options: CodecOptions,
|
|
142
89
|
):
|
|
143
|
-
|
|
|
90
|
+
| Draft07Codec
|
|
144
91
|
| Draft08Codec
|
|
145
92
|
| Draft09Codec
|
|
146
93
|
| Draft10Codec
|
|
@@ -151,185 +98,49 @@ export function createCodec(
|
|
|
151
98
|
| Draft15Codec
|
|
152
99
|
| Draft16Codec
|
|
153
100
|
| Draft17Codec {
|
|
154
|
-
const draft =
|
|
101
|
+
const draft = DRAFT_VERSIONS[options.draft]
|
|
155
102
|
if (!draft) {
|
|
156
103
|
throw new Error(
|
|
157
104
|
`Unsupported draft: "${options.draft}". ` +
|
|
158
|
-
`Use a draft-scoped import instead
|
|
159
|
-
`
|
|
160
|
-
|
|
161
|
-
` import { createDraft09Codec } from '@moqtap/codec/draft9'\n` +
|
|
162
|
-
` import { createDraft10Codec } from '@moqtap/codec/draft10'\n` +
|
|
163
|
-
` import { createDraft11Codec } from '@moqtap/codec/draft11'\n` +
|
|
164
|
-
` import { createDraft12Codec } from '@moqtap/codec/draft12'\n` +
|
|
165
|
-
` import { createDraft13Codec } from '@moqtap/codec/draft13'\n` +
|
|
166
|
-
` import { createDraft14Codec } from '@moqtap/codec/draft14'\n` +
|
|
167
|
-
` import { createDraft15Codec } from '@moqtap/codec/draft15'\n` +
|
|
168
|
-
` import { createDraft16Codec } from '@moqtap/codec/draft16'\n` +
|
|
169
|
-
` import { createDraft17Codec } from '@moqtap/codec/draft17'\n` +
|
|
170
|
-
`Supported draft values: ${Object.keys(DRAFT_ALIASES).join(", ")}`,
|
|
171
|
-
);
|
|
105
|
+
`Use a draft-scoped import instead.\n` +
|
|
106
|
+
`Supported draft values: ${Object.keys(DRAFT_VERSIONS).join(', ')}`,
|
|
107
|
+
)
|
|
172
108
|
}
|
|
173
109
|
|
|
174
|
-
switch (draft) {
|
|
175
|
-
case
|
|
176
|
-
return createDraft07Codec()
|
|
177
|
-
case
|
|
178
|
-
return createDraft08Codec()
|
|
179
|
-
case
|
|
180
|
-
return createDraft09Codec()
|
|
181
|
-
case
|
|
182
|
-
return createDraft10Codec()
|
|
183
|
-
case
|
|
184
|
-
return createDraft11Codec()
|
|
185
|
-
case
|
|
186
|
-
return createDraft12Codec()
|
|
187
|
-
case
|
|
188
|
-
return createDraft13Codec()
|
|
189
|
-
case
|
|
190
|
-
return createDraft14Codec()
|
|
191
|
-
case
|
|
192
|
-
return createDraft15Codec()
|
|
193
|
-
case
|
|
194
|
-
return createDraft16Codec()
|
|
195
|
-
case
|
|
196
|
-
return createDraft17Codec()
|
|
110
|
+
switch (options.draft) {
|
|
111
|
+
case '07':
|
|
112
|
+
return createDraft07Codec()
|
|
113
|
+
case '08':
|
|
114
|
+
return createDraft08Codec()
|
|
115
|
+
case '09':
|
|
116
|
+
return createDraft09Codec()
|
|
117
|
+
case '10':
|
|
118
|
+
return createDraft10Codec()
|
|
119
|
+
case '11':
|
|
120
|
+
return createDraft11Codec()
|
|
121
|
+
case '12':
|
|
122
|
+
return createDraft12Codec()
|
|
123
|
+
case '13':
|
|
124
|
+
return createDraft13Codec()
|
|
125
|
+
case '14':
|
|
126
|
+
return createDraft14Codec()
|
|
127
|
+
case '15':
|
|
128
|
+
return createDraft15Codec()
|
|
129
|
+
case '16':
|
|
130
|
+
return createDraft16Codec()
|
|
131
|
+
case '17':
|
|
132
|
+
return createDraft17Codec()
|
|
197
133
|
default:
|
|
198
|
-
throw new Error(`Unsupported draft: ${draft}`)
|
|
134
|
+
throw new Error(`Unsupported draft: ${draft}`)
|
|
199
135
|
}
|
|
200
136
|
}
|
|
201
137
|
|
|
202
|
-
// Re-export shared types
|
|
203
138
|
export type {
|
|
204
|
-
Announce,
|
|
205
|
-
AnnounceCancel,
|
|
206
|
-
AnnounceError,
|
|
207
|
-
AnnounceOk,
|
|
208
139
|
BaseCodec,
|
|
209
|
-
ClientSetup,
|
|
210
|
-
Codec,
|
|
211
140
|
CodecOptions,
|
|
212
141
|
DecodeErrorCode,
|
|
213
142
|
DecodeResult,
|
|
214
143
|
Draft,
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
FetchError,
|
|
219
|
-
FetchOk,
|
|
220
|
-
FilterType,
|
|
221
|
-
GoAway,
|
|
222
|
-
GroupOrderValue,
|
|
223
|
-
MaxSubscribeId,
|
|
224
|
-
MoqtMessage,
|
|
225
|
-
MoqtMessageType,
|
|
226
|
-
ObjectDatagram,
|
|
227
|
-
ObjectStream,
|
|
228
|
-
ServerSetup,
|
|
229
|
-
StreamHeaderGroup,
|
|
230
|
-
StreamHeaderSubgroup,
|
|
231
|
-
StreamHeaderTrack,
|
|
232
|
-
Subscribe,
|
|
233
|
-
SubscribeAnnounces,
|
|
234
|
-
SubscribeAnnouncesError,
|
|
235
|
-
SubscribeAnnouncesOk,
|
|
236
|
-
SubscribeDone,
|
|
237
|
-
SubscribeError,
|
|
238
|
-
SubscribeOk,
|
|
239
|
-
SubscribeUpdate,
|
|
240
|
-
TrackStatus,
|
|
241
|
-
TrackStatusRequest,
|
|
242
|
-
Unannounce,
|
|
243
|
-
Unsubscribe,
|
|
244
|
-
UnsubscribeAnnounces,
|
|
245
|
-
} from "./core/types.js";
|
|
246
|
-
export { DecodeError } from "./core/types.js";
|
|
247
|
-
|
|
248
|
-
// Re-export draft-08 types
|
|
249
|
-
export type { Draft08Codec } from "./drafts/draft08/codec.js";
|
|
250
|
-
export type {
|
|
251
|
-
Draft08DataStream,
|
|
252
|
-
Draft08Message,
|
|
253
|
-
Draft08Params,
|
|
254
|
-
Draft08SetupParams,
|
|
255
|
-
} from "./drafts/draft08/types.js";
|
|
256
|
-
|
|
257
|
-
// Re-export draft-09 types
|
|
258
|
-
export type { Draft09Codec } from "./drafts/draft09/codec.js";
|
|
259
|
-
export type {
|
|
260
|
-
Draft09DataStream,
|
|
261
|
-
Draft09Message,
|
|
262
|
-
Draft09Params,
|
|
263
|
-
Draft09SetupParams,
|
|
264
|
-
} from "./drafts/draft09/types.js";
|
|
265
|
-
|
|
266
|
-
// Re-export draft-10 types
|
|
267
|
-
export type { Draft10Codec } from "./drafts/draft10/codec.js";
|
|
268
|
-
export type {
|
|
269
|
-
Draft10DataStream,
|
|
270
|
-
Draft10Message,
|
|
271
|
-
Draft10Params,
|
|
272
|
-
Draft10SetupParams,
|
|
273
|
-
} from "./drafts/draft10/types.js";
|
|
274
|
-
|
|
275
|
-
// Re-export draft-11 types
|
|
276
|
-
export type { Draft11Codec } from "./drafts/draft11/codec.js";
|
|
277
|
-
export type {
|
|
278
|
-
Draft11DataStream,
|
|
279
|
-
Draft11Message,
|
|
280
|
-
Draft11Params,
|
|
281
|
-
Draft11SetupParams,
|
|
282
|
-
} from "./drafts/draft11/types.js";
|
|
283
|
-
|
|
284
|
-
// Re-export draft-12 types
|
|
285
|
-
export type { Draft12Codec } from "./drafts/draft12/codec.js";
|
|
286
|
-
export type {
|
|
287
|
-
Draft12DataStream,
|
|
288
|
-
Draft12Message,
|
|
289
|
-
Draft12Params,
|
|
290
|
-
Draft12SetupParams,
|
|
291
|
-
} from "./drafts/draft12/types.js";
|
|
292
|
-
|
|
293
|
-
// Re-export draft-13 types
|
|
294
|
-
export type { Draft13Codec } from "./drafts/draft13/codec.js";
|
|
295
|
-
export type {
|
|
296
|
-
Draft13DataStream,
|
|
297
|
-
Draft13Message,
|
|
298
|
-
Draft13Params,
|
|
299
|
-
Draft13SetupParams,
|
|
300
|
-
} from "./drafts/draft13/types.js";
|
|
301
|
-
|
|
302
|
-
// Re-export draft-14 types
|
|
303
|
-
export type { Draft14Codec } from "./drafts/draft14/codec.js";
|
|
304
|
-
export type {
|
|
305
|
-
Draft14DataStream,
|
|
306
|
-
Draft14Message,
|
|
307
|
-
Draft14Params,
|
|
308
|
-
} from "./drafts/draft14/types.js";
|
|
309
|
-
|
|
310
|
-
// Re-export draft-15 types
|
|
311
|
-
export type { Draft15Codec } from "./drafts/draft15/codec.js";
|
|
312
|
-
export type {
|
|
313
|
-
Draft15DataStream,
|
|
314
|
-
Draft15Message,
|
|
315
|
-
Draft15Params,
|
|
316
|
-
Draft15SetupParams,
|
|
317
|
-
} from "./drafts/draft15/types.js";
|
|
318
|
-
|
|
319
|
-
// Re-export draft-16 types
|
|
320
|
-
export type { Draft16Codec } from "./drafts/draft16/codec.js";
|
|
321
|
-
export type {
|
|
322
|
-
Draft16DataStream,
|
|
323
|
-
Draft16Message,
|
|
324
|
-
Draft16Params,
|
|
325
|
-
Draft16SetupParams,
|
|
326
|
-
} from "./drafts/draft16/types.js";
|
|
327
|
-
|
|
328
|
-
// Re-export draft-17 types
|
|
329
|
-
export type { Draft17Codec } from "./drafts/draft17/codec.js";
|
|
330
|
-
export type {
|
|
331
|
-
Draft17DataStream,
|
|
332
|
-
Draft17Message,
|
|
333
|
-
Draft17Params,
|
|
334
|
-
Draft17SetupOptions,
|
|
335
|
-
} from "./drafts/draft17/types.js";
|
|
144
|
+
} from './core/types.js'
|
|
145
|
+
// Re-export shared types
|
|
146
|
+
export { DecodeError } from './core/types.js'
|
package/src/session.ts
CHANGED
|
@@ -3,38 +3,76 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Requires a codec instance (which carries the draft version).
|
|
5
5
|
* For direct access, use draft-scoped imports:
|
|
6
|
-
* import {
|
|
7
|
-
* import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
|
|
6
|
+
* import { createDraft17SessionState } from '@moqtap/codec/draft17/session';
|
|
8
7
|
*/
|
|
9
8
|
|
|
10
|
-
import type { SessionState, SessionStateOptions } from
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
9
|
+
import type { SessionState, SessionStateOptions } from './core/session-types.js'
|
|
10
|
+
import type { Draft } from './core/types.js'
|
|
11
|
+
import { createDraft07SessionState } from './drafts/draft07/session.js'
|
|
12
|
+
import type { Draft07Message, Draft07MessageType } from './drafts/draft07/types.js'
|
|
13
|
+
import { createDraft08SessionState } from './drafts/draft08/session.js'
|
|
14
|
+
import type { Draft08Message, Draft08MessageType } from './drafts/draft08/types.js'
|
|
15
|
+
import { createDraft09SessionState } from './drafts/draft09/session.js'
|
|
16
|
+
import type { Draft09Message, Draft09MessageType } from './drafts/draft09/types.js'
|
|
17
|
+
import { createDraft10SessionState } from './drafts/draft10/session.js'
|
|
18
|
+
import type { Draft10Message, Draft10MessageType } from './drafts/draft10/types.js'
|
|
19
|
+
import { createDraft11SessionState } from './drafts/draft11/session.js'
|
|
20
|
+
import type { Draft11Message, Draft11MessageType } from './drafts/draft11/types.js'
|
|
21
|
+
import { createDraft12SessionState } from './drafts/draft12/session.js'
|
|
22
|
+
import type { Draft12Message, Draft12MessageType } from './drafts/draft12/types.js'
|
|
23
|
+
import { createDraft13SessionState } from './drafts/draft13/session.js'
|
|
24
|
+
import type { Draft13Message, Draft13MessageType } from './drafts/draft13/types.js'
|
|
25
|
+
import { createDraft14SessionState } from './drafts/draft14/session.js'
|
|
26
|
+
import type { Draft14Message, Draft14MessageType } from './drafts/draft14/types.js'
|
|
27
|
+
import { createDraft15SessionState } from './drafts/draft15/session.js'
|
|
28
|
+
import type { Draft15Message, Draft15MessageType } from './drafts/draft15/types.js'
|
|
29
|
+
import { createDraft16SessionState } from './drafts/draft16/session.js'
|
|
30
|
+
import type { Draft16Message, Draft16MessageType } from './drafts/draft16/types.js'
|
|
31
|
+
import { createDraft17SessionState } from './drafts/draft17/session.js'
|
|
32
|
+
import type { Draft17Message, Draft17MessageType } from './drafts/draft17/types.js'
|
|
33
|
+
|
|
34
|
+
type DraftSessionStateMap = {
|
|
35
|
+
'07': SessionState<Draft07Message, Draft07MessageType>
|
|
36
|
+
'08': SessionState<Draft08Message, Draft08MessageType>
|
|
37
|
+
'09': SessionState<Draft09Message, Draft09MessageType>
|
|
38
|
+
'10': SessionState<Draft10Message, Draft10MessageType>
|
|
39
|
+
'11': SessionState<Draft11Message, Draft11MessageType>
|
|
40
|
+
'12': SessionState<Draft12Message, Draft12MessageType>
|
|
41
|
+
'13': SessionState<Draft13Message, Draft13MessageType>
|
|
42
|
+
'14': SessionState<Draft14Message, Draft14MessageType>
|
|
43
|
+
'15': SessionState<Draft15Message, Draft15MessageType>
|
|
44
|
+
'16': SessionState<Draft16Message, Draft16MessageType>
|
|
45
|
+
'17': SessionState<Draft17Message, Draft17MessageType>
|
|
46
|
+
}
|
|
13
47
|
|
|
14
48
|
/**
|
|
15
49
|
* 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
50
|
*/
|
|
22
|
-
export function createSessionState
|
|
23
|
-
|
|
51
|
+
export function createSessionState<T extends Draft>(
|
|
52
|
+
options: SessionStateOptions<T>,
|
|
53
|
+
): DraftSessionStateMap[T] {
|
|
54
|
+
const draft = options.codec.draft
|
|
24
55
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
56
|
+
const factories: Record<Draft, (role: 'client' | 'server') => DraftSessionStateMap[Draft]> = {
|
|
57
|
+
'07': createDraft07SessionState,
|
|
58
|
+
'08': createDraft08SessionState,
|
|
59
|
+
'09': createDraft09SessionState,
|
|
60
|
+
'10': createDraft10SessionState,
|
|
61
|
+
'11': createDraft11SessionState,
|
|
62
|
+
'12': createDraft12SessionState,
|
|
63
|
+
'13': createDraft13SessionState,
|
|
64
|
+
'14': createDraft14SessionState,
|
|
65
|
+
'15': createDraft15SessionState,
|
|
66
|
+
'16': createDraft16SessionState,
|
|
67
|
+
'17': createDraft17SessionState,
|
|
37
68
|
}
|
|
69
|
+
|
|
70
|
+
const factory = factories[draft]
|
|
71
|
+
if (!factory) {
|
|
72
|
+
throw new Error(`Unsupported draft for session: "${draft}". Use a draft-scoped import instead.`)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return factory(options.role) as DraftSessionStateMap[T]
|
|
38
76
|
}
|
|
39
77
|
|
|
40
78
|
// Re-export all session types
|
|
@@ -55,4 +93,4 @@ export type {
|
|
|
55
93
|
SubscriptionState,
|
|
56
94
|
TransitionResult,
|
|
57
95
|
ValidationResult,
|
|
58
|
-
} from
|
|
96
|
+
} from './core/session-types.js'
|