@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
|
@@ -189,7 +189,11 @@ var Draft17SessionFSM = class {
|
|
|
189
189
|
};
|
|
190
190
|
}
|
|
191
191
|
this._phase = "ready";
|
|
192
|
-
return {
|
|
192
|
+
return {
|
|
193
|
+
ok: true,
|
|
194
|
+
phase: this._phase,
|
|
195
|
+
sideEffects: [{ type: "session-ready" }]
|
|
196
|
+
};
|
|
193
197
|
}
|
|
194
198
|
return {
|
|
195
199
|
ok: false,
|
|
@@ -215,7 +219,10 @@ var Draft17SessionFSM = class {
|
|
|
215
219
|
}
|
|
216
220
|
this._phase = "draining";
|
|
217
221
|
const goaway = message;
|
|
218
|
-
sideEffects.push({
|
|
222
|
+
sideEffects.push({
|
|
223
|
+
type: "session-draining",
|
|
224
|
+
goAwayUri: goaway.new_session_uri
|
|
225
|
+
});
|
|
219
226
|
return { ok: true, phase: this._phase, sideEffects };
|
|
220
227
|
}
|
|
221
228
|
requireReady(msgType) {
|
|
@@ -263,7 +270,10 @@ var Draft17SessionFSM = class {
|
|
|
263
270
|
const existing = this._subscriptions.get(requestId);
|
|
264
271
|
if (existing && existing.phase === "pending") {
|
|
265
272
|
this._subscriptions.set(requestId, { ...existing, phase: "active" });
|
|
266
|
-
sideEffects.push({
|
|
273
|
+
sideEffects.push({
|
|
274
|
+
type: "subscription-activated",
|
|
275
|
+
subscribeId: requestId
|
|
276
|
+
});
|
|
267
277
|
}
|
|
268
278
|
return { ok: true, phase: this._phase, sideEffects };
|
|
269
279
|
}
|
|
@@ -283,7 +293,10 @@ var Draft17SessionFSM = class {
|
|
|
283
293
|
const dupErr = this.checkDuplicateRequestId(pub.request_id, message.type);
|
|
284
294
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
285
295
|
this._requestIds.add(pub.request_id);
|
|
286
|
-
this._publishes.set(pub.request_id, {
|
|
296
|
+
this._publishes.set(pub.request_id, {
|
|
297
|
+
requestId: pub.request_id,
|
|
298
|
+
phase: "pending"
|
|
299
|
+
});
|
|
287
300
|
this._pendingPublishes.push(pub.request_id);
|
|
288
301
|
return { ok: true, phase: this._phase, sideEffects };
|
|
289
302
|
}
|
|
@@ -315,7 +328,11 @@ var Draft17SessionFSM = class {
|
|
|
315
328
|
for (const [reqId, pub] of this._publishes) {
|
|
316
329
|
if (pub.phase === "active") {
|
|
317
330
|
this._publishes.set(reqId, { ...pub, phase: "done" });
|
|
318
|
-
sideEffects.push({
|
|
331
|
+
sideEffects.push({
|
|
332
|
+
type: "publish-ended",
|
|
333
|
+
requestId: reqId,
|
|
334
|
+
reason: "done"
|
|
335
|
+
});
|
|
319
336
|
break;
|
|
320
337
|
}
|
|
321
338
|
}
|
|
@@ -328,7 +345,10 @@ var Draft17SessionFSM = class {
|
|
|
328
345
|
const dupErr = this.checkDuplicateRequestId(fetch.request_id, message.type);
|
|
329
346
|
if (dupErr) return { ok: false, violation: dupErr };
|
|
330
347
|
this._requestIds.add(fetch.request_id);
|
|
331
|
-
this._fetches.set(fetch.request_id, {
|
|
348
|
+
this._fetches.set(fetch.request_id, {
|
|
349
|
+
requestId: fetch.request_id,
|
|
350
|
+
phase: "pending"
|
|
351
|
+
});
|
|
332
352
|
this._pendingFetches.push(fetch.request_id);
|
|
333
353
|
return { ok: true, phase: this._phase, sideEffects };
|
|
334
354
|
}
|
|
@@ -361,21 +381,33 @@ var Draft17SessionFSM = class {
|
|
|
361
381
|
if (subId !== void 0) {
|
|
362
382
|
const sub = this._subscriptions.get(subId);
|
|
363
383
|
this._subscriptions.set(subId, { ...sub, phase: "error" });
|
|
364
|
-
sideEffects.push({
|
|
384
|
+
sideEffects.push({
|
|
385
|
+
type: "subscription-ended",
|
|
386
|
+
subscribeId: subId,
|
|
387
|
+
reason: "request_error"
|
|
388
|
+
});
|
|
365
389
|
return { ok: true, phase: this._phase, sideEffects };
|
|
366
390
|
}
|
|
367
391
|
const pubId = this.dequeuePending(this._pendingPublishes, this._publishes);
|
|
368
392
|
if (pubId !== void 0) {
|
|
369
393
|
const pub = this._publishes.get(pubId);
|
|
370
394
|
this._publishes.set(pubId, { ...pub, phase: "error" });
|
|
371
|
-
sideEffects.push({
|
|
395
|
+
sideEffects.push({
|
|
396
|
+
type: "publish-ended",
|
|
397
|
+
requestId: pubId,
|
|
398
|
+
reason: "request_error"
|
|
399
|
+
});
|
|
372
400
|
return { ok: true, phase: this._phase, sideEffects };
|
|
373
401
|
}
|
|
374
402
|
const fetchId = this.dequeuePending(this._pendingFetches, this._fetches);
|
|
375
403
|
if (fetchId !== void 0) {
|
|
376
404
|
const f = this._fetches.get(fetchId);
|
|
377
405
|
this._fetches.set(fetchId, { ...f, phase: "error" });
|
|
378
|
-
sideEffects.push({
|
|
406
|
+
sideEffects.push({
|
|
407
|
+
type: "fetch-ended",
|
|
408
|
+
requestId: fetchId,
|
|
409
|
+
reason: "request_error"
|
|
410
|
+
});
|
|
379
411
|
return { ok: true, phase: this._phase, sideEffects };
|
|
380
412
|
}
|
|
381
413
|
return { ok: true, phase: this._phase, sideEffects };
|
|
@@ -1,76 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
bytesToHex,
|
|
3
|
-
hexToBytes
|
|
4
|
-
} from "./chunk-HDWJ2GDE.js";
|
|
5
1
|
import {
|
|
6
2
|
BufferReader,
|
|
7
3
|
BufferWriter,
|
|
8
|
-
DecodeError
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
13
|
-
var MSG_SUBSCRIBE = 0x03n;
|
|
14
|
-
var MSG_SUBSCRIBE_OK = 0x04n;
|
|
15
|
-
var MSG_SUBSCRIBE_ERROR = 0x05n;
|
|
16
|
-
var MSG_ANNOUNCE = 0x06n;
|
|
17
|
-
var MSG_ANNOUNCE_OK = 0x07n;
|
|
18
|
-
var MSG_ANNOUNCE_ERROR = 0x08n;
|
|
19
|
-
var MSG_UNANNOUNCE = 0x09n;
|
|
20
|
-
var MSG_UNSUBSCRIBE = 0x0an;
|
|
21
|
-
var MSG_SUBSCRIBE_DONE = 0x0bn;
|
|
22
|
-
var MSG_ANNOUNCE_CANCEL = 0x0cn;
|
|
23
|
-
var MSG_TRACK_STATUS_REQUEST = 0x0dn;
|
|
24
|
-
var MSG_TRACK_STATUS = 0x0en;
|
|
25
|
-
var MSG_GOAWAY = 0x10n;
|
|
26
|
-
var MSG_SUBSCRIBE_ANNOUNCES = 0x11n;
|
|
27
|
-
var MSG_SUBSCRIBE_ANNOUNCES_OK = 0x12n;
|
|
28
|
-
var MSG_SUBSCRIBE_ANNOUNCES_ERROR = 0x13n;
|
|
29
|
-
var MSG_UNSUBSCRIBE_ANNOUNCES = 0x14n;
|
|
30
|
-
var MSG_MAX_SUBSCRIBE_ID = 0x15n;
|
|
31
|
-
var MSG_FETCH = 0x16n;
|
|
32
|
-
var MSG_FETCH_CANCEL = 0x17n;
|
|
33
|
-
var MSG_FETCH_OK = 0x18n;
|
|
34
|
-
var MSG_FETCH_ERROR = 0x19n;
|
|
35
|
-
var MSG_SUBSCRIBES_BLOCKED = 0x1an;
|
|
36
|
-
var MSG_CLIENT_SETUP = 0x40n;
|
|
37
|
-
var MSG_SERVER_SETUP = 0x41n;
|
|
38
|
-
var SETUP_PARAM_PATH = 0x01n;
|
|
39
|
-
var SETUP_PARAM_MAX_SUBSCRIBE_ID = 0x02n;
|
|
40
|
-
var PARAM_AUTHORIZATION_INFO = 0x02n;
|
|
41
|
-
var PARAM_DELIVERY_TIMEOUT = 0x03n;
|
|
42
|
-
var PARAM_MAX_CACHE_DURATION = 0x04n;
|
|
43
|
-
var MESSAGE_TYPE_MAP = /* @__PURE__ */ new Map([
|
|
44
|
-
[MSG_CLIENT_SETUP, "client_setup"],
|
|
45
|
-
[MSG_SERVER_SETUP, "server_setup"],
|
|
46
|
-
[MSG_SUBSCRIBE, "subscribe"],
|
|
47
|
-
[MSG_SUBSCRIBE_OK, "subscribe_ok"],
|
|
48
|
-
[MSG_SUBSCRIBE_ERROR, "subscribe_error"],
|
|
49
|
-
[MSG_SUBSCRIBE_UPDATE, "subscribe_update"],
|
|
50
|
-
[MSG_SUBSCRIBE_DONE, "subscribe_done"],
|
|
51
|
-
[MSG_UNSUBSCRIBE, "unsubscribe"],
|
|
52
|
-
[MSG_ANNOUNCE, "announce"],
|
|
53
|
-
[MSG_ANNOUNCE_OK, "announce_ok"],
|
|
54
|
-
[MSG_ANNOUNCE_ERROR, "announce_error"],
|
|
55
|
-
[MSG_UNANNOUNCE, "unannounce"],
|
|
56
|
-
[MSG_ANNOUNCE_CANCEL, "announce_cancel"],
|
|
57
|
-
[MSG_SUBSCRIBE_ANNOUNCES, "subscribe_announces"],
|
|
58
|
-
[MSG_SUBSCRIBE_ANNOUNCES_OK, "subscribe_announces_ok"],
|
|
59
|
-
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, "subscribe_announces_error"],
|
|
60
|
-
[MSG_UNSUBSCRIBE_ANNOUNCES, "unsubscribe_announces"],
|
|
61
|
-
[MSG_FETCH, "fetch"],
|
|
62
|
-
[MSG_FETCH_OK, "fetch_ok"],
|
|
63
|
-
[MSG_FETCH_ERROR, "fetch_error"],
|
|
64
|
-
[MSG_FETCH_CANCEL, "fetch_cancel"],
|
|
65
|
-
[MSG_TRACK_STATUS_REQUEST, "track_status_request"],
|
|
66
|
-
[MSG_TRACK_STATUS, "track_status"],
|
|
67
|
-
[MSG_GOAWAY, "goaway"],
|
|
68
|
-
[MSG_MAX_SUBSCRIBE_ID, "max_subscribe_id"],
|
|
69
|
-
[MSG_SUBSCRIBES_BLOCKED, "subscribes_blocked"]
|
|
70
|
-
]);
|
|
71
|
-
var MESSAGE_ID_MAP = new Map(
|
|
72
|
-
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
73
|
-
);
|
|
4
|
+
DecodeError,
|
|
5
|
+
bytesToHex,
|
|
6
|
+
hexToBytes
|
|
7
|
+
} from "./chunk-VOU7PNHI.js";
|
|
74
8
|
|
|
75
9
|
// src/drafts/draft08/data-streams.ts
|
|
76
10
|
var SUBGROUP_STREAM_TYPE = 0x04n;
|
|
@@ -378,7 +312,11 @@ function decodeFetchStream(bytes) {
|
|
|
378
312
|
if (status !== void 0) obj.status = status;
|
|
379
313
|
objects.push(obj);
|
|
380
314
|
}
|
|
381
|
-
return {
|
|
315
|
+
return {
|
|
316
|
+
ok: true,
|
|
317
|
+
value: { type: "fetch", subscribeId, objects },
|
|
318
|
+
bytesRead: r.offset
|
|
319
|
+
};
|
|
382
320
|
} catch (e) {
|
|
383
321
|
if (e instanceof DecodeError) return { ok: false, error: e };
|
|
384
322
|
throw e;
|
|
@@ -401,6 +339,70 @@ function decodeDataStream(streamType, bytes) {
|
|
|
401
339
|
}
|
|
402
340
|
}
|
|
403
341
|
|
|
342
|
+
// src/drafts/draft08/messages.ts
|
|
343
|
+
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
344
|
+
var MSG_SUBSCRIBE = 0x03n;
|
|
345
|
+
var MSG_SUBSCRIBE_OK = 0x04n;
|
|
346
|
+
var MSG_SUBSCRIBE_ERROR = 0x05n;
|
|
347
|
+
var MSG_ANNOUNCE = 0x06n;
|
|
348
|
+
var MSG_ANNOUNCE_OK = 0x07n;
|
|
349
|
+
var MSG_ANNOUNCE_ERROR = 0x08n;
|
|
350
|
+
var MSG_UNANNOUNCE = 0x09n;
|
|
351
|
+
var MSG_UNSUBSCRIBE = 0x0an;
|
|
352
|
+
var MSG_SUBSCRIBE_DONE = 0x0bn;
|
|
353
|
+
var MSG_ANNOUNCE_CANCEL = 0x0cn;
|
|
354
|
+
var MSG_TRACK_STATUS_REQUEST = 0x0dn;
|
|
355
|
+
var MSG_TRACK_STATUS = 0x0en;
|
|
356
|
+
var MSG_GOAWAY = 0x10n;
|
|
357
|
+
var MSG_SUBSCRIBE_ANNOUNCES = 0x11n;
|
|
358
|
+
var MSG_SUBSCRIBE_ANNOUNCES_OK = 0x12n;
|
|
359
|
+
var MSG_SUBSCRIBE_ANNOUNCES_ERROR = 0x13n;
|
|
360
|
+
var MSG_UNSUBSCRIBE_ANNOUNCES = 0x14n;
|
|
361
|
+
var MSG_MAX_SUBSCRIBE_ID = 0x15n;
|
|
362
|
+
var MSG_FETCH = 0x16n;
|
|
363
|
+
var MSG_FETCH_CANCEL = 0x17n;
|
|
364
|
+
var MSG_FETCH_OK = 0x18n;
|
|
365
|
+
var MSG_FETCH_ERROR = 0x19n;
|
|
366
|
+
var MSG_SUBSCRIBES_BLOCKED = 0x1an;
|
|
367
|
+
var MSG_CLIENT_SETUP = 0x40n;
|
|
368
|
+
var MSG_SERVER_SETUP = 0x41n;
|
|
369
|
+
var SETUP_PARAM_PATH = 0x01n;
|
|
370
|
+
var SETUP_PARAM_MAX_SUBSCRIBE_ID = 0x02n;
|
|
371
|
+
var PARAM_AUTHORIZATION_INFO = 0x02n;
|
|
372
|
+
var PARAM_DELIVERY_TIMEOUT = 0x03n;
|
|
373
|
+
var PARAM_MAX_CACHE_DURATION = 0x04n;
|
|
374
|
+
var MESSAGE_TYPE_MAP = /* @__PURE__ */ new Map([
|
|
375
|
+
[MSG_CLIENT_SETUP, "client_setup"],
|
|
376
|
+
[MSG_SERVER_SETUP, "server_setup"],
|
|
377
|
+
[MSG_SUBSCRIBE, "subscribe"],
|
|
378
|
+
[MSG_SUBSCRIBE_OK, "subscribe_ok"],
|
|
379
|
+
[MSG_SUBSCRIBE_ERROR, "subscribe_error"],
|
|
380
|
+
[MSG_SUBSCRIBE_UPDATE, "subscribe_update"],
|
|
381
|
+
[MSG_SUBSCRIBE_DONE, "subscribe_done"],
|
|
382
|
+
[MSG_UNSUBSCRIBE, "unsubscribe"],
|
|
383
|
+
[MSG_ANNOUNCE, "announce"],
|
|
384
|
+
[MSG_ANNOUNCE_OK, "announce_ok"],
|
|
385
|
+
[MSG_ANNOUNCE_ERROR, "announce_error"],
|
|
386
|
+
[MSG_UNANNOUNCE, "unannounce"],
|
|
387
|
+
[MSG_ANNOUNCE_CANCEL, "announce_cancel"],
|
|
388
|
+
[MSG_SUBSCRIBE_ANNOUNCES, "subscribe_announces"],
|
|
389
|
+
[MSG_SUBSCRIBE_ANNOUNCES_OK, "subscribe_announces_ok"],
|
|
390
|
+
[MSG_SUBSCRIBE_ANNOUNCES_ERROR, "subscribe_announces_error"],
|
|
391
|
+
[MSG_UNSUBSCRIBE_ANNOUNCES, "unsubscribe_announces"],
|
|
392
|
+
[MSG_FETCH, "fetch"],
|
|
393
|
+
[MSG_FETCH_OK, "fetch_ok"],
|
|
394
|
+
[MSG_FETCH_ERROR, "fetch_error"],
|
|
395
|
+
[MSG_FETCH_CANCEL, "fetch_cancel"],
|
|
396
|
+
[MSG_TRACK_STATUS_REQUEST, "track_status_request"],
|
|
397
|
+
[MSG_TRACK_STATUS, "track_status"],
|
|
398
|
+
[MSG_GOAWAY, "goaway"],
|
|
399
|
+
[MSG_MAX_SUBSCRIBE_ID, "max_subscribe_id"],
|
|
400
|
+
[MSG_SUBSCRIBES_BLOCKED, "subscribes_blocked"]
|
|
401
|
+
]);
|
|
402
|
+
var MESSAGE_ID_MAP = new Map(
|
|
403
|
+
[...MESSAGE_TYPE_MAP.entries()].map(([id, name]) => [name, id])
|
|
404
|
+
);
|
|
405
|
+
|
|
404
406
|
// src/drafts/draft08/codec.ts
|
|
405
407
|
var textEncoder = /* @__PURE__ */ new TextEncoder();
|
|
406
408
|
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
@@ -449,7 +451,11 @@ function decodeSetupParams(r) {
|
|
|
449
451
|
result.max_subscribe_id = tmpReader.readVarInt();
|
|
450
452
|
} else {
|
|
451
453
|
const bytes = r.readBytes(length);
|
|
452
|
-
unknown.push({
|
|
454
|
+
unknown.push({
|
|
455
|
+
id: `0x${paramType.toString(16)}`,
|
|
456
|
+
length,
|
|
457
|
+
raw_hex: bytesToHex(bytes)
|
|
458
|
+
});
|
|
453
459
|
}
|
|
454
460
|
}
|
|
455
461
|
if (unknown.length > 0) result.unknown = unknown;
|
|
@@ -512,7 +518,11 @@ function decodeParams(r) {
|
|
|
512
518
|
result.max_cache_duration = tmpReader.readVarInt();
|
|
513
519
|
} else {
|
|
514
520
|
const bytes = r.readBytes(length);
|
|
515
|
-
unknown.push({
|
|
521
|
+
unknown.push({
|
|
522
|
+
id: `0x${paramType.toString(16)}`,
|
|
523
|
+
length,
|
|
524
|
+
raw_hex: bytesToHex(bytes)
|
|
525
|
+
});
|
|
516
526
|
}
|
|
517
527
|
}
|
|
518
528
|
if (unknown.length > 0) result.unknown = unknown;
|
|
@@ -752,7 +762,13 @@ function decodeSubscribeErrorPayload(r) {
|
|
|
752
762
|
const error_code = r.readVarInt();
|
|
753
763
|
const reason_phrase = r.readString();
|
|
754
764
|
const track_alias = r.readVarInt();
|
|
755
|
-
return {
|
|
765
|
+
return {
|
|
766
|
+
type: "subscribe_error",
|
|
767
|
+
subscribe_id,
|
|
768
|
+
error_code,
|
|
769
|
+
reason_phrase,
|
|
770
|
+
track_alias
|
|
771
|
+
};
|
|
756
772
|
}
|
|
757
773
|
function decodeSubscribeUpdatePayload(r) {
|
|
758
774
|
const subscribe_id = r.readVarInt();
|
|
@@ -776,7 +792,13 @@ function decodeSubscribeDonePayload(r) {
|
|
|
776
792
|
const status_code = r.readVarInt();
|
|
777
793
|
const stream_count = r.readVarInt();
|
|
778
794
|
const reason_phrase = r.readString();
|
|
779
|
-
return {
|
|
795
|
+
return {
|
|
796
|
+
type: "subscribe_done",
|
|
797
|
+
subscribe_id,
|
|
798
|
+
status_code,
|
|
799
|
+
stream_count,
|
|
800
|
+
reason_phrase
|
|
801
|
+
};
|
|
780
802
|
}
|
|
781
803
|
function decodeUnsubscribePayload(r) {
|
|
782
804
|
const subscribe_id = r.readVarInt();
|
|
@@ -820,7 +842,12 @@ function decodeSubscribeAnnouncesErrorPayload(r) {
|
|
|
820
842
|
const track_namespace_prefix = r.readTuple();
|
|
821
843
|
const error_code = r.readVarInt();
|
|
822
844
|
const reason_phrase = r.readString();
|
|
823
|
-
return {
|
|
845
|
+
return {
|
|
846
|
+
type: "subscribe_announces_error",
|
|
847
|
+
track_namespace_prefix,
|
|
848
|
+
error_code,
|
|
849
|
+
reason_phrase
|
|
850
|
+
};
|
|
824
851
|
}
|
|
825
852
|
function decodeUnsubscribeAnnouncesPayload(r) {
|
|
826
853
|
const track_namespace_prefix = r.readTuple();
|
|
@@ -844,7 +871,14 @@ function decodeFetchPayload(r) {
|
|
|
844
871
|
const start_object = r.readVarInt();
|
|
845
872
|
const end_group = r.readVarInt();
|
|
846
873
|
const end_object = r.readVarInt();
|
|
847
|
-
standalone = {
|
|
874
|
+
standalone = {
|
|
875
|
+
track_namespace,
|
|
876
|
+
track_name,
|
|
877
|
+
start_group,
|
|
878
|
+
start_object,
|
|
879
|
+
end_group,
|
|
880
|
+
end_object
|
|
881
|
+
};
|
|
848
882
|
} else {
|
|
849
883
|
const joining_subscribe_id = r.readVarInt();
|
|
850
884
|
const preceding_group_offset = r.readVarInt();
|
|
@@ -1078,7 +1112,7 @@ function createStreamDecoder() {
|
|
|
1078
1112
|
}
|
|
1079
1113
|
function createDraft08Codec() {
|
|
1080
1114
|
return {
|
|
1081
|
-
draft: "
|
|
1115
|
+
draft: "08",
|
|
1082
1116
|
encodeMessage,
|
|
1083
1117
|
decodeMessage,
|
|
1084
1118
|
encodeSubgroupStream,
|
|
@@ -1095,6 +1129,15 @@ function createDraft08Codec() {
|
|
|
1095
1129
|
}
|
|
1096
1130
|
|
|
1097
1131
|
export {
|
|
1132
|
+
encodeSubgroupStream,
|
|
1133
|
+
encodeDatagram,
|
|
1134
|
+
encodeDatagramStatus,
|
|
1135
|
+
encodeFetchStream,
|
|
1136
|
+
decodeSubgroupStream,
|
|
1137
|
+
decodeDatagram,
|
|
1138
|
+
decodeDatagramStatus,
|
|
1139
|
+
decodeFetchStream,
|
|
1140
|
+
decodeDataStream,
|
|
1098
1141
|
MSG_SUBSCRIBE_UPDATE,
|
|
1099
1142
|
MSG_SUBSCRIBE,
|
|
1100
1143
|
MSG_SUBSCRIBE_OK,
|
|
@@ -1128,15 +1171,6 @@ export {
|
|
|
1128
1171
|
PARAM_MAX_CACHE_DURATION,
|
|
1129
1172
|
MESSAGE_TYPE_MAP,
|
|
1130
1173
|
MESSAGE_ID_MAP,
|
|
1131
|
-
encodeSubgroupStream,
|
|
1132
|
-
encodeDatagram,
|
|
1133
|
-
encodeDatagramStatus,
|
|
1134
|
-
encodeFetchStream,
|
|
1135
|
-
decodeSubgroupStream,
|
|
1136
|
-
decodeDatagram,
|
|
1137
|
-
decodeDatagramStatus,
|
|
1138
|
-
decodeFetchStream,
|
|
1139
|
-
decodeDataStream,
|
|
1140
1174
|
encodeMessage,
|
|
1141
1175
|
decodeMessage,
|
|
1142
1176
|
createStreamDecoder,
|
|
@@ -282,7 +282,11 @@ var Draft16SessionFSM = 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 {
|
|
|
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 {
|
|
|
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 {
|
|
|
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 {
|
|
|
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 {
|
|
|
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 {
|
|
|
626
646
|
};
|
|
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
|
export {
|
|
@@ -277,7 +277,11 @@ var Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_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 Draft09SessionFSM = (_class = class {
|
|
|
664
696
|
}, _class);
|
|
665
697
|
|
|
666
698
|
// src/drafts/draft09/session.ts
|
|
667
|
-
function createDraft09SessionState(
|
|
668
|
-
return new Draft09SessionFSM(
|
|
699
|
+
function createDraft09SessionState(role) {
|
|
700
|
+
return new Draft09SessionFSM(role);
|
|
669
701
|
}
|
|
670
702
|
|
|
671
703
|
|