@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
|
@@ -277,7 +277,11 @@ var Draft08SessionFSM = class {
|
|
|
277
277
|
};
|
|
278
278
|
}
|
|
279
279
|
this._phase = "ready";
|
|
280
|
-
return {
|
|
280
|
+
return {
|
|
281
|
+
ok: true,
|
|
282
|
+
phase: this._phase,
|
|
283
|
+
sideEffects: [{ type: "session-ready" }]
|
|
284
|
+
};
|
|
281
285
|
}
|
|
282
286
|
handleGoAway(message, sideEffects) {
|
|
283
287
|
if (this._phase !== "ready" && this._phase !== "draining") {
|
|
@@ -293,7 +297,10 @@ var Draft08SessionFSM = class {
|
|
|
293
297
|
}
|
|
294
298
|
this._phase = "draining";
|
|
295
299
|
const goaway = message;
|
|
296
|
-
sideEffects.push({
|
|
300
|
+
sideEffects.push({
|
|
301
|
+
type: "session-draining",
|
|
302
|
+
goAwayUri: goaway.new_session_uri
|
|
303
|
+
});
|
|
297
304
|
return { ok: true, phase: this._phase, sideEffects };
|
|
298
305
|
}
|
|
299
306
|
requireReady(msgType) {
|
|
@@ -351,7 +358,10 @@ var Draft08SessionFSM = class {
|
|
|
351
358
|
)
|
|
352
359
|
};
|
|
353
360
|
this._subscriptions.set(ok.subscribe_id, { ...existing, phase: "active" });
|
|
354
|
-
sideEffects.push({
|
|
361
|
+
sideEffects.push({
|
|
362
|
+
type: "subscription-activated",
|
|
363
|
+
subscribeId: ok.subscribe_id
|
|
364
|
+
});
|
|
355
365
|
return { ok: true, phase: this._phase, sideEffects };
|
|
356
366
|
}
|
|
357
367
|
handleSubscribeError(message, sideEffects) {
|
|
@@ -381,7 +391,10 @@ var Draft08SessionFSM = class {
|
|
|
381
391
|
message.type
|
|
382
392
|
)
|
|
383
393
|
};
|
|
384
|
-
this._subscriptions.set(subErr.subscribe_id, {
|
|
394
|
+
this._subscriptions.set(subErr.subscribe_id, {
|
|
395
|
+
...existing,
|
|
396
|
+
phase: "error"
|
|
397
|
+
});
|
|
385
398
|
sideEffects.push({
|
|
386
399
|
type: "subscription-ended",
|
|
387
400
|
subscribeId: subErr.subscribe_id,
|
|
@@ -474,7 +487,10 @@ var Draft08SessionFSM = class {
|
|
|
474
487
|
if (err) return { ok: false, violation: err };
|
|
475
488
|
const ann = message;
|
|
476
489
|
const nsKey = ann.track_namespace.join("/");
|
|
477
|
-
this._announces.set(nsKey, {
|
|
490
|
+
this._announces.set(nsKey, {
|
|
491
|
+
namespace: ann.track_namespace,
|
|
492
|
+
phase: "pending"
|
|
493
|
+
});
|
|
478
494
|
return { ok: true, phase: this._phase, sideEffects };
|
|
479
495
|
}
|
|
480
496
|
handleAnnounceOk(message, sideEffects) {
|
|
@@ -533,7 +549,10 @@ var Draft08SessionFSM = class {
|
|
|
533
549
|
)
|
|
534
550
|
};
|
|
535
551
|
this._announces.set(nsKey, { ...existing, phase: "error" });
|
|
536
|
-
sideEffects.push({
|
|
552
|
+
sideEffects.push({
|
|
553
|
+
type: "announce-ended",
|
|
554
|
+
namespace: annErr.track_namespace
|
|
555
|
+
});
|
|
537
556
|
return { ok: true, phase: this._phase, sideEffects };
|
|
538
557
|
}
|
|
539
558
|
handleUnannounce(message, sideEffects) {
|
|
@@ -544,7 +563,10 @@ var Draft08SessionFSM = class {
|
|
|
544
563
|
const existing = this._announces.get(nsKey);
|
|
545
564
|
if (existing) {
|
|
546
565
|
this._announces.delete(nsKey);
|
|
547
|
-
sideEffects.push({
|
|
566
|
+
sideEffects.push({
|
|
567
|
+
type: "announce-ended",
|
|
568
|
+
namespace: unann.track_namespace
|
|
569
|
+
});
|
|
548
570
|
}
|
|
549
571
|
return { ok: true, phase: this._phase, sideEffects };
|
|
550
572
|
}
|
|
@@ -556,7 +578,10 @@ var Draft08SessionFSM = class {
|
|
|
556
578
|
const existing = this._announces.get(nsKey);
|
|
557
579
|
if (existing) {
|
|
558
580
|
this._announces.delete(nsKey);
|
|
559
|
-
sideEffects.push({
|
|
581
|
+
sideEffects.push({
|
|
582
|
+
type: "announce-ended",
|
|
583
|
+
namespace: cancel.track_namespace
|
|
584
|
+
});
|
|
560
585
|
}
|
|
561
586
|
return { ok: true, phase: this._phase, sideEffects };
|
|
562
587
|
}
|
|
@@ -568,7 +593,10 @@ var Draft08SessionFSM = class {
|
|
|
568
593
|
const dupErr = this.checkDuplicateSubscribeId(fetch.subscribe_id, message.type);
|
|
569
594
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
570
595
|
this._subscribeIds.add(fetch.subscribe_id);
|
|
571
|
-
this._fetches.set(fetch.subscribe_id, {
|
|
596
|
+
this._fetches.set(fetch.subscribe_id, {
|
|
597
|
+
requestId: fetch.subscribe_id,
|
|
598
|
+
phase: "pending"
|
|
599
|
+
});
|
|
572
600
|
return { ok: true, phase: this._phase, sideEffects };
|
|
573
601
|
}
|
|
574
602
|
handleFetchOk(message, sideEffects) {
|
|
@@ -645,7 +673,11 @@ var Draft08SessionFSM = class {
|
|
|
645
673
|
)
|
|
646
674
|
};
|
|
647
675
|
this._fetches.set(cancel.subscribe_id, { ...existing, phase: "cancelled" });
|
|
648
|
-
sideEffects.push({
|
|
676
|
+
sideEffects.push({
|
|
677
|
+
type: "fetch-ended",
|
|
678
|
+
requestId: cancel.subscribe_id,
|
|
679
|
+
reason: "cancelled"
|
|
680
|
+
});
|
|
649
681
|
return { ok: true, phase: this._phase, sideEffects };
|
|
650
682
|
}
|
|
651
683
|
// ─── Generic ready-phase handler ───
|
|
@@ -664,8 +696,8 @@ var Draft08SessionFSM = class {
|
|
|
664
696
|
};
|
|
665
697
|
|
|
666
698
|
// src/drafts/draft08/session.ts
|
|
667
|
-
function createDraft08SessionState(
|
|
668
|
-
return new Draft08SessionFSM(
|
|
699
|
+
function createDraft08SessionState(role) {
|
|
700
|
+
return new Draft08SessionFSM(role);
|
|
669
701
|
}
|
|
670
702
|
|
|
671
703
|
export {
|
|
@@ -282,7 +282,11 @@ var Draft16SessionFSM = (_class = class {
|
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
284
|
this._phase = "ready";
|
|
285
|
-
return {
|
|
285
|
+
return {
|
|
286
|
+
ok: true,
|
|
287
|
+
phase: this._phase,
|
|
288
|
+
sideEffects: [{ type: "session-ready" }]
|
|
289
|
+
};
|
|
286
290
|
}
|
|
287
291
|
handleGoAway(message, sideEffects) {
|
|
288
292
|
if (this._phase !== "ready" && this._phase !== "draining") {
|
|
@@ -298,7 +302,10 @@ var Draft16SessionFSM = (_class = class {
|
|
|
298
302
|
}
|
|
299
303
|
this._phase = "draining";
|
|
300
304
|
const goaway = message;
|
|
301
|
-
sideEffects.push({
|
|
305
|
+
sideEffects.push({
|
|
306
|
+
type: "session-draining",
|
|
307
|
+
goAwayUri: goaway.new_session_uri
|
|
308
|
+
});
|
|
302
309
|
return { ok: true, phase: this._phase, sideEffects };
|
|
303
310
|
}
|
|
304
311
|
requireReady(msgType) {
|
|
@@ -355,7 +362,10 @@ var Draft16SessionFSM = (_class = class {
|
|
|
355
362
|
)
|
|
356
363
|
};
|
|
357
364
|
this._subscriptions.set(ok.request_id, { ...existing, phase: "active" });
|
|
358
|
-
sideEffects.push({
|
|
365
|
+
sideEffects.push({
|
|
366
|
+
type: "subscription-activated",
|
|
367
|
+
subscribeId: ok.request_id
|
|
368
|
+
});
|
|
359
369
|
return { ok: true, phase: this._phase, sideEffects };
|
|
360
370
|
}
|
|
361
371
|
// Renamed from handleSubscribeUpdate in draft-15
|
|
@@ -421,7 +431,10 @@ var Draft16SessionFSM = (_class = class {
|
|
|
421
431
|
const dupErr = this.checkDuplicateRequestId(pub.request_id, message.type);
|
|
422
432
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
423
433
|
this._requestIds.add(pub.request_id);
|
|
424
|
-
this._publishes.set(pub.request_id, {
|
|
434
|
+
this._publishes.set(pub.request_id, {
|
|
435
|
+
requestId: pub.request_id,
|
|
436
|
+
phase: "pending"
|
|
437
|
+
});
|
|
425
438
|
return { ok: true, phase: this._phase, sideEffects };
|
|
426
439
|
}
|
|
427
440
|
handlePublishOk(message, sideEffects) {
|
|
@@ -487,7 +500,10 @@ var Draft16SessionFSM = (_class = class {
|
|
|
487
500
|
const dupErr = this.checkDuplicateRequestId(fetch.request_id, message.type);
|
|
488
501
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
489
502
|
this._requestIds.add(fetch.request_id);
|
|
490
|
-
this._fetches.set(fetch.request_id, {
|
|
503
|
+
this._fetches.set(fetch.request_id, {
|
|
504
|
+
requestId: fetch.request_id,
|
|
505
|
+
phase: "pending"
|
|
506
|
+
});
|
|
491
507
|
return { ok: true, phase: this._phase, sideEffects };
|
|
492
508
|
}
|
|
493
509
|
handleFetchOk(message, sideEffects) {
|
|
@@ -539,7 +555,11 @@ var Draft16SessionFSM = (_class = class {
|
|
|
539
555
|
)
|
|
540
556
|
};
|
|
541
557
|
this._fetches.set(cancel.request_id, { ...existing, phase: "cancelled" });
|
|
542
|
-
sideEffects.push({
|
|
558
|
+
sideEffects.push({
|
|
559
|
+
type: "fetch-ended",
|
|
560
|
+
requestId: cancel.request_id,
|
|
561
|
+
reason: "cancelled"
|
|
562
|
+
});
|
|
543
563
|
return { ok: true, phase: this._phase, sideEffects };
|
|
544
564
|
}
|
|
545
565
|
handleRequestError(message, sideEffects) {
|
|
@@ -626,8 +646,8 @@ var Draft16SessionFSM = (_class = class {
|
|
|
626
646
|
}, _class);
|
|
627
647
|
|
|
628
648
|
// src/drafts/draft16/session.ts
|
|
629
|
-
function createDraft16SessionState(
|
|
630
|
-
return new Draft16SessionFSM(
|
|
649
|
+
function createDraft16SessionState(role) {
|
|
650
|
+
return new Draft16SessionFSM(role);
|
|
631
651
|
}
|
|
632
652
|
|
|
633
653
|
|
|
@@ -280,7 +280,11 @@ var Draft15SessionFSM = class {
|
|
|
280
280
|
};
|
|
281
281
|
}
|
|
282
282
|
this._phase = "ready";
|
|
283
|
-
return {
|
|
283
|
+
return {
|
|
284
|
+
ok: true,
|
|
285
|
+
phase: this._phase,
|
|
286
|
+
sideEffects: [{ type: "session-ready" }]
|
|
287
|
+
};
|
|
284
288
|
}
|
|
285
289
|
handleGoAway(message, sideEffects) {
|
|
286
290
|
if (this._phase !== "ready" && this._phase !== "draining") {
|
|
@@ -296,7 +300,10 @@ var Draft15SessionFSM = class {
|
|
|
296
300
|
}
|
|
297
301
|
this._phase = "draining";
|
|
298
302
|
const goaway = message;
|
|
299
|
-
sideEffects.push({
|
|
303
|
+
sideEffects.push({
|
|
304
|
+
type: "session-draining",
|
|
305
|
+
goAwayUri: goaway.new_session_uri
|
|
306
|
+
});
|
|
300
307
|
return { ok: true, phase: this._phase, sideEffects };
|
|
301
308
|
}
|
|
302
309
|
requireReady(msgType) {
|
|
@@ -353,7 +360,10 @@ var Draft15SessionFSM = class {
|
|
|
353
360
|
)
|
|
354
361
|
};
|
|
355
362
|
this._subscriptions.set(ok.request_id, { ...existing, phase: "active" });
|
|
356
|
-
sideEffects.push({
|
|
363
|
+
sideEffects.push({
|
|
364
|
+
type: "subscription-activated",
|
|
365
|
+
subscribeId: ok.request_id
|
|
366
|
+
});
|
|
357
367
|
return { ok: true, phase: this._phase, sideEffects };
|
|
358
368
|
}
|
|
359
369
|
handleSubscribeUpdate(message, sideEffects) {
|
|
@@ -418,7 +428,10 @@ var Draft15SessionFSM = class {
|
|
|
418
428
|
const dupErr = this.checkDuplicateRequestId(pub.request_id, message.type);
|
|
419
429
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
420
430
|
this._requestIds.add(pub.request_id);
|
|
421
|
-
this._publishes.set(pub.request_id, {
|
|
431
|
+
this._publishes.set(pub.request_id, {
|
|
432
|
+
requestId: pub.request_id,
|
|
433
|
+
phase: "pending"
|
|
434
|
+
});
|
|
422
435
|
return { ok: true, phase: this._phase, sideEffects };
|
|
423
436
|
}
|
|
424
437
|
handlePublishOk(message, sideEffects) {
|
|
@@ -484,7 +497,10 @@ var Draft15SessionFSM = class {
|
|
|
484
497
|
const dupErr = this.checkDuplicateRequestId(fetch.request_id, message.type);
|
|
485
498
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
486
499
|
this._requestIds.add(fetch.request_id);
|
|
487
|
-
this._fetches.set(fetch.request_id, {
|
|
500
|
+
this._fetches.set(fetch.request_id, {
|
|
501
|
+
requestId: fetch.request_id,
|
|
502
|
+
phase: "pending"
|
|
503
|
+
});
|
|
488
504
|
return { ok: true, phase: this._phase, sideEffects };
|
|
489
505
|
}
|
|
490
506
|
handleFetchOk(message, sideEffects) {
|
|
@@ -536,7 +552,11 @@ var Draft15SessionFSM = class {
|
|
|
536
552
|
)
|
|
537
553
|
};
|
|
538
554
|
this._fetches.set(cancel.request_id, { ...existing, phase: "cancelled" });
|
|
539
|
-
sideEffects.push({
|
|
555
|
+
sideEffects.push({
|
|
556
|
+
type: "fetch-ended",
|
|
557
|
+
requestId: cancel.request_id,
|
|
558
|
+
reason: "cancelled"
|
|
559
|
+
});
|
|
540
560
|
return { ok: true, phase: this._phase, sideEffects };
|
|
541
561
|
}
|
|
542
562
|
// REQUEST_ERROR replaces subscribe_error, publish_error, fetch_error, etc.
|
|
@@ -625,8 +645,8 @@ var Draft15SessionFSM = class {
|
|
|
625
645
|
};
|
|
626
646
|
|
|
627
647
|
// src/drafts/draft15/session.ts
|
|
628
|
-
function createDraft15SessionState(
|
|
629
|
-
return new Draft15SessionFSM(
|
|
648
|
+
function createDraft15SessionState(role) {
|
|
649
|
+
return new Draft15SessionFSM(role);
|
|
630
650
|
}
|
|
631
651
|
|
|
632
652
|
export {
|
|
@@ -293,7 +293,11 @@ var Draft11SessionFSM = class {
|
|
|
293
293
|
};
|
|
294
294
|
}
|
|
295
295
|
this._phase = "ready";
|
|
296
|
-
return {
|
|
296
|
+
return {
|
|
297
|
+
ok: true,
|
|
298
|
+
phase: this._phase,
|
|
299
|
+
sideEffects: [{ type: "session-ready" }]
|
|
300
|
+
};
|
|
297
301
|
}
|
|
298
302
|
handleGoAway(message, sideEffects) {
|
|
299
303
|
if (this._phase !== "ready" && this._phase !== "draining") {
|
|
@@ -309,7 +313,10 @@ var Draft11SessionFSM = class {
|
|
|
309
313
|
}
|
|
310
314
|
this._phase = "draining";
|
|
311
315
|
const goaway = message;
|
|
312
|
-
sideEffects.push({
|
|
316
|
+
sideEffects.push({
|
|
317
|
+
type: "session-draining",
|
|
318
|
+
goAwayUri: goaway.new_session_uri
|
|
319
|
+
});
|
|
313
320
|
return { ok: true, phase: this._phase, sideEffects };
|
|
314
321
|
}
|
|
315
322
|
requireReady(msgType) {
|
|
@@ -367,7 +374,10 @@ var Draft11SessionFSM = class {
|
|
|
367
374
|
)
|
|
368
375
|
};
|
|
369
376
|
this._subscriptions.set(ok.request_id, { ...existing, phase: "active" });
|
|
370
|
-
sideEffects.push({
|
|
377
|
+
sideEffects.push({
|
|
378
|
+
type: "subscription-activated",
|
|
379
|
+
subscribeId: ok.request_id
|
|
380
|
+
});
|
|
371
381
|
return { ok: true, phase: this._phase, sideEffects };
|
|
372
382
|
}
|
|
373
383
|
handleSubscribeError(message, sideEffects) {
|
|
@@ -491,7 +501,10 @@ var Draft11SessionFSM = class {
|
|
|
491
501
|
const ann = message;
|
|
492
502
|
const nsKey = ann.track_namespace.join("/");
|
|
493
503
|
this._requestIds.add(ann.request_id);
|
|
494
|
-
this._announces.set(nsKey, {
|
|
504
|
+
this._announces.set(nsKey, {
|
|
505
|
+
namespace: ann.track_namespace,
|
|
506
|
+
phase: "pending"
|
|
507
|
+
});
|
|
495
508
|
return { ok: true, phase: this._phase, sideEffects };
|
|
496
509
|
}
|
|
497
510
|
handleAnnounceOk(message, sideEffects) {
|
|
@@ -518,7 +531,10 @@ var Draft11SessionFSM = class {
|
|
|
518
531
|
const existing = this._announces.get(nsKey);
|
|
519
532
|
if (existing) {
|
|
520
533
|
this._announces.delete(nsKey);
|
|
521
|
-
sideEffects.push({
|
|
534
|
+
sideEffects.push({
|
|
535
|
+
type: "announce-ended",
|
|
536
|
+
namespace: unann.track_namespace
|
|
537
|
+
});
|
|
522
538
|
}
|
|
523
539
|
return { ok: true, phase: this._phase, sideEffects };
|
|
524
540
|
}
|
|
@@ -530,7 +546,10 @@ var Draft11SessionFSM = class {
|
|
|
530
546
|
const existing = this._announces.get(nsKey);
|
|
531
547
|
if (existing) {
|
|
532
548
|
this._announces.delete(nsKey);
|
|
533
|
-
sideEffects.push({
|
|
549
|
+
sideEffects.push({
|
|
550
|
+
type: "announce-ended",
|
|
551
|
+
namespace: cancel.track_namespace
|
|
552
|
+
});
|
|
534
553
|
}
|
|
535
554
|
return { ok: true, phase: this._phase, sideEffects };
|
|
536
555
|
}
|
|
@@ -542,7 +561,10 @@ var Draft11SessionFSM = class {
|
|
|
542
561
|
const dupErr = this.checkDuplicateRequestId(fetch.request_id, message.type);
|
|
543
562
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
544
563
|
this._requestIds.add(fetch.request_id);
|
|
545
|
-
this._fetches.set(fetch.request_id, {
|
|
564
|
+
this._fetches.set(fetch.request_id, {
|
|
565
|
+
requestId: fetch.request_id,
|
|
566
|
+
phase: "pending"
|
|
567
|
+
});
|
|
546
568
|
return { ok: true, phase: this._phase, sideEffects };
|
|
547
569
|
}
|
|
548
570
|
handleFetchOk(message, sideEffects) {
|
|
@@ -619,7 +641,11 @@ var Draft11SessionFSM = class {
|
|
|
619
641
|
)
|
|
620
642
|
};
|
|
621
643
|
this._fetches.set(cancel.request_id, { ...existing, phase: "cancelled" });
|
|
622
|
-
sideEffects.push({
|
|
644
|
+
sideEffects.push({
|
|
645
|
+
type: "fetch-ended",
|
|
646
|
+
requestId: cancel.request_id,
|
|
647
|
+
reason: "cancelled"
|
|
648
|
+
});
|
|
623
649
|
return { ok: true, phase: this._phase, sideEffects };
|
|
624
650
|
}
|
|
625
651
|
// ─── Subscribe announces lifecycle ───
|
|
@@ -682,8 +708,8 @@ var Draft11SessionFSM = class {
|
|
|
682
708
|
};
|
|
683
709
|
|
|
684
710
|
// src/drafts/draft11/session.ts
|
|
685
|
-
function createDraft11SessionState(
|
|
686
|
-
return new Draft11SessionFSM(
|
|
711
|
+
function createDraft11SessionState(role) {
|
|
712
|
+
return new Draft11SessionFSM(role);
|
|
687
713
|
}
|
|
688
714
|
|
|
689
715
|
export {
|
|
@@ -316,7 +316,11 @@ var Draft14SessionFSM = (_class = class {
|
|
|
316
316
|
};
|
|
317
317
|
}
|
|
318
318
|
this._phase = "ready";
|
|
319
|
-
return {
|
|
319
|
+
return {
|
|
320
|
+
ok: true,
|
|
321
|
+
phase: this._phase,
|
|
322
|
+
sideEffects: [{ type: "session-ready" }]
|
|
323
|
+
};
|
|
320
324
|
}
|
|
321
325
|
handleGoAway(message, _direction, sideEffects) {
|
|
322
326
|
if (this._phase !== "ready" && this._phase !== "draining") {
|
|
@@ -332,7 +336,10 @@ var Draft14SessionFSM = (_class = class {
|
|
|
332
336
|
}
|
|
333
337
|
this._phase = "draining";
|
|
334
338
|
const goaway = message;
|
|
335
|
-
sideEffects.push({
|
|
339
|
+
sideEffects.push({
|
|
340
|
+
type: "session-draining",
|
|
341
|
+
goAwayUri: goaway.new_session_uri
|
|
342
|
+
});
|
|
336
343
|
return { ok: true, phase: this._phase, sideEffects };
|
|
337
344
|
}
|
|
338
345
|
requireReady(msgType) {
|
|
@@ -392,7 +399,10 @@ var Draft14SessionFSM = (_class = class {
|
|
|
392
399
|
};
|
|
393
400
|
}
|
|
394
401
|
this._subscriptions.set(ok.request_id, { ...existing, phase: "active" });
|
|
395
|
-
sideEffects.push({
|
|
402
|
+
sideEffects.push({
|
|
403
|
+
type: "subscription-activated",
|
|
404
|
+
subscribeId: ok.request_id
|
|
405
|
+
});
|
|
396
406
|
return { ok: true, phase: this._phase, sideEffects };
|
|
397
407
|
}
|
|
398
408
|
handleSubscribeError(message, _direction, sideEffects) {
|
|
@@ -702,7 +712,11 @@ var Draft14SessionFSM = (_class = class {
|
|
|
702
712
|
};
|
|
703
713
|
}
|
|
704
714
|
this._fetches.set(cancel.request_id, { ...existing, phase: "cancelled" });
|
|
705
|
-
sideEffects.push({
|
|
715
|
+
sideEffects.push({
|
|
716
|
+
type: "fetch-ended",
|
|
717
|
+
requestId: cancel.request_id,
|
|
718
|
+
reason: "cancelled"
|
|
719
|
+
});
|
|
706
720
|
return { ok: true, phase: this._phase, sideEffects };
|
|
707
721
|
}
|
|
708
722
|
// ─── Publish namespace lifecycle ──────────────────────────────────────────────
|
|
@@ -734,17 +748,11 @@ var Draft14SessionFSM = (_class = class {
|
|
|
734
748
|
handlePublishNamespaceDone(message, sideEffects) {
|
|
735
749
|
const err = this.requireReady(message.type);
|
|
736
750
|
if (err) return { ok: false, violation: err };
|
|
737
|
-
const done = message;
|
|
738
|
-
const idErr = this.checkKnownRequestId(done.request_id, message.type);
|
|
739
|
-
if (idErr) return { ok: false, violation: idErr };
|
|
740
751
|
return { ok: true, phase: this._phase, sideEffects };
|
|
741
752
|
}
|
|
742
753
|
handlePublishNamespaceCancel(message, sideEffects) {
|
|
743
754
|
const err = this.requireReady(message.type);
|
|
744
755
|
if (err) return { ok: false, violation: err };
|
|
745
|
-
const cancel = message;
|
|
746
|
-
const idErr = this.checkKnownRequestId(cancel.request_id, message.type);
|
|
747
|
-
if (idErr) return { ok: false, violation: idErr };
|
|
748
756
|
return { ok: true, phase: this._phase, sideEffects };
|
|
749
757
|
}
|
|
750
758
|
// ─── Subscribe namespace lifecycle ──────────────────────────────────────────────
|
|
@@ -820,8 +828,8 @@ var Draft14SessionFSM = (_class = class {
|
|
|
820
828
|
}, _class);
|
|
821
829
|
|
|
822
830
|
// src/drafts/draft14/session.ts
|
|
823
|
-
function createDraft14SessionState(
|
|
824
|
-
return new Draft14SessionFSM(
|
|
831
|
+
function createDraft14SessionState(role) {
|
|
832
|
+
return new Draft14SessionFSM(role);
|
|
825
833
|
}
|
|
826
834
|
|
|
827
835
|
|
|
@@ -277,7 +277,11 @@ var Draft10SessionFSM = (_class = class {
|
|
|
277
277
|
};
|
|
278
278
|
}
|
|
279
279
|
this._phase = "ready";
|
|
280
|
-
return {
|
|
280
|
+
return {
|
|
281
|
+
ok: true,
|
|
282
|
+
phase: this._phase,
|
|
283
|
+
sideEffects: [{ type: "session-ready" }]
|
|
284
|
+
};
|
|
281
285
|
}
|
|
282
286
|
handleGoAway(message, sideEffects) {
|
|
283
287
|
if (this._phase !== "ready" && this._phase !== "draining") {
|
|
@@ -293,7 +297,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
293
297
|
}
|
|
294
298
|
this._phase = "draining";
|
|
295
299
|
const goaway = message;
|
|
296
|
-
sideEffects.push({
|
|
300
|
+
sideEffects.push({
|
|
301
|
+
type: "session-draining",
|
|
302
|
+
goAwayUri: goaway.new_session_uri
|
|
303
|
+
});
|
|
297
304
|
return { ok: true, phase: this._phase, sideEffects };
|
|
298
305
|
}
|
|
299
306
|
requireReady(msgType) {
|
|
@@ -351,7 +358,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
351
358
|
)
|
|
352
359
|
};
|
|
353
360
|
this._subscriptions.set(ok.subscribe_id, { ...existing, phase: "active" });
|
|
354
|
-
sideEffects.push({
|
|
361
|
+
sideEffects.push({
|
|
362
|
+
type: "subscription-activated",
|
|
363
|
+
subscribeId: ok.subscribe_id
|
|
364
|
+
});
|
|
355
365
|
return { ok: true, phase: this._phase, sideEffects };
|
|
356
366
|
}
|
|
357
367
|
handleSubscribeError(message, sideEffects) {
|
|
@@ -381,7 +391,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
381
391
|
message.type
|
|
382
392
|
)
|
|
383
393
|
};
|
|
384
|
-
this._subscriptions.set(subErr.subscribe_id, {
|
|
394
|
+
this._subscriptions.set(subErr.subscribe_id, {
|
|
395
|
+
...existing,
|
|
396
|
+
phase: "error"
|
|
397
|
+
});
|
|
385
398
|
sideEffects.push({
|
|
386
399
|
type: "subscription-ended",
|
|
387
400
|
subscribeId: subErr.subscribe_id,
|
|
@@ -474,7 +487,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
474
487
|
if (err) return { ok: false, violation: err };
|
|
475
488
|
const ann = message;
|
|
476
489
|
const nsKey = ann.track_namespace.join("/");
|
|
477
|
-
this._announces.set(nsKey, {
|
|
490
|
+
this._announces.set(nsKey, {
|
|
491
|
+
namespace: ann.track_namespace,
|
|
492
|
+
phase: "pending"
|
|
493
|
+
});
|
|
478
494
|
return { ok: true, phase: this._phase, sideEffects };
|
|
479
495
|
}
|
|
480
496
|
handleAnnounceOk(message, sideEffects) {
|
|
@@ -533,7 +549,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
533
549
|
)
|
|
534
550
|
};
|
|
535
551
|
this._announces.set(nsKey, { ...existing, phase: "error" });
|
|
536
|
-
sideEffects.push({
|
|
552
|
+
sideEffects.push({
|
|
553
|
+
type: "announce-ended",
|
|
554
|
+
namespace: annErr.track_namespace
|
|
555
|
+
});
|
|
537
556
|
return { ok: true, phase: this._phase, sideEffects };
|
|
538
557
|
}
|
|
539
558
|
handleUnannounce(message, sideEffects) {
|
|
@@ -544,7 +563,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
544
563
|
const existing = this._announces.get(nsKey);
|
|
545
564
|
if (existing) {
|
|
546
565
|
this._announces.delete(nsKey);
|
|
547
|
-
sideEffects.push({
|
|
566
|
+
sideEffects.push({
|
|
567
|
+
type: "announce-ended",
|
|
568
|
+
namespace: unann.track_namespace
|
|
569
|
+
});
|
|
548
570
|
}
|
|
549
571
|
return { ok: true, phase: this._phase, sideEffects };
|
|
550
572
|
}
|
|
@@ -556,7 +578,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
556
578
|
const existing = this._announces.get(nsKey);
|
|
557
579
|
if (existing) {
|
|
558
580
|
this._announces.delete(nsKey);
|
|
559
|
-
sideEffects.push({
|
|
581
|
+
sideEffects.push({
|
|
582
|
+
type: "announce-ended",
|
|
583
|
+
namespace: cancel.track_namespace
|
|
584
|
+
});
|
|
560
585
|
}
|
|
561
586
|
return { ok: true, phase: this._phase, sideEffects };
|
|
562
587
|
}
|
|
@@ -568,7 +593,10 @@ var Draft10SessionFSM = (_class = class {
|
|
|
568
593
|
const dupErr = this.checkDuplicateSubscribeId(fetch.subscribe_id, message.type);
|
|
569
594
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
570
595
|
this._subscribeIds.add(fetch.subscribe_id);
|
|
571
|
-
this._fetches.set(fetch.subscribe_id, {
|
|
596
|
+
this._fetches.set(fetch.subscribe_id, {
|
|
597
|
+
requestId: fetch.subscribe_id,
|
|
598
|
+
phase: "pending"
|
|
599
|
+
});
|
|
572
600
|
return { ok: true, phase: this._phase, sideEffects };
|
|
573
601
|
}
|
|
574
602
|
handleFetchOk(message, sideEffects) {
|
|
@@ -645,7 +673,11 @@ var Draft10SessionFSM = (_class = class {
|
|
|
645
673
|
)
|
|
646
674
|
};
|
|
647
675
|
this._fetches.set(cancel.subscribe_id, { ...existing, phase: "cancelled" });
|
|
648
|
-
sideEffects.push({
|
|
676
|
+
sideEffects.push({
|
|
677
|
+
type: "fetch-ended",
|
|
678
|
+
requestId: cancel.subscribe_id,
|
|
679
|
+
reason: "cancelled"
|
|
680
|
+
});
|
|
649
681
|
return { ok: true, phase: this._phase, sideEffects };
|
|
650
682
|
}
|
|
651
683
|
// ─── Generic ready-phase handler ───
|
|
@@ -664,8 +696,8 @@ var Draft10SessionFSM = (_class = class {
|
|
|
664
696
|
}, _class);
|
|
665
697
|
|
|
666
698
|
// src/drafts/draft10/session.ts
|
|
667
|
-
function createDraft10SessionState(
|
|
668
|
-
return new Draft10SessionFSM(
|
|
699
|
+
function createDraft10SessionState(role) {
|
|
700
|
+
return new Draft10SessionFSM(role);
|
|
669
701
|
}
|
|
670
702
|
|
|
671
703
|
|