@moqtap/codec 0.1.0 → 0.2.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/README.md +99 -95
- package/dist/chunk-4RIXXEII.js +1275 -0
- package/dist/chunk-4XYGE53S.cjs +698 -0
- package/dist/chunk-4YJANAXU.cjs +1109 -0
- package/dist/chunk-6AEHWULA.cjs +641 -0
- package/dist/chunk-7DUBLRXC.js +680 -0
- package/dist/{chunk-WNTXF3DE.cjs → chunk-7IVGHMKJ.cjs} +164 -62
- package/dist/{chunk-YBSEOSSP.js → chunk-A27S7HW7.js} +5 -1
- package/dist/chunk-BISI45MN.cjs +680 -0
- package/dist/{chunk-3BSZ55L3.cjs → chunk-BPNL5YFQ.cjs} +158 -24
- package/dist/chunk-CXDHOMHG.js +1097 -0
- package/dist/chunk-DUBCL3WF.cjs +749 -0
- package/dist/chunk-DWK5ZQZ4.js +642 -0
- package/dist/chunk-E6E3NQYU.js +680 -0
- package/dist/chunk-EFM5T7OM.js +698 -0
- package/dist/chunk-ENURAVHI.cjs +680 -0
- package/dist/{chunk-5WFXFLL4.cjs → chunk-FUFTMAQD.cjs} +96 -63
- package/dist/{chunk-2NARXGVA.cjs → chunk-FWISIR26.cjs} +5 -1
- package/dist/{chunk-YPXLV5YK.js → chunk-FXZ2MYKJ.js} +376 -38
- package/dist/chunk-G26SJ6XS.cjs +1341 -0
- package/dist/chunk-G7GI7LJA.js +737 -0
- package/dist/chunk-GXEW4COZ.cjs +737 -0
- package/dist/chunk-HSVYF6XX.cjs +1361 -0
- package/dist/chunk-IBVM4DMJ.cjs +1097 -0
- package/dist/chunk-IV2H5CFI.cjs +1275 -0
- package/dist/chunk-IV2HRJVT.js +1198 -0
- package/dist/chunk-JSQM2MG3.js +680 -0
- package/dist/chunk-K4OLITS2.cjs +1055 -0
- package/dist/{chunk-UOBWHJA5.js → chunk-KFTCU2P6.js} +2 -3
- package/dist/chunk-LH4NTURO.js +1361 -0
- package/dist/{chunk-DC4L6ZIT.js → chunk-MFAP7R6L.js} +154 -20
- package/dist/chunk-NGVE2RZT.js +1097 -0
- package/dist/chunk-NUX5BHWO.js +1341 -0
- package/dist/chunk-PJRA2TQ5.js +1055 -0
- package/dist/chunk-RVJAGE4S.cjs +1198 -0
- package/dist/{chunk-QYG6KGOV.cjs → chunk-RWQ43Z4F.cjs} +2 -3
- package/dist/chunk-RZHAPEXO.js +749 -0
- package/dist/chunk-ST24APEO.js +1109 -0
- package/dist/chunk-SYHW3FLI.cjs +642 -0
- package/dist/chunk-TLYNOOQP.cjs +432 -0
- package/dist/{chunk-23YG7F46.js → chunk-TMNGRIPL.js} +153 -51
- package/dist/{chunk-IQPDRQVC.js → chunk-U2B3B42P.js} +62 -29
- package/dist/chunk-UNS34PTA.cjs +680 -0
- package/dist/chunk-UR6JKS56.js +432 -0
- package/dist/{chunk-GDRGWFEK.cjs → chunk-UYXTY6ZQ.cjs} +376 -38
- package/dist/chunk-XUUCOLWU.cjs +1097 -0
- package/dist/chunk-YG5KJESI.js +641 -0
- package/dist/chunk-ZBKE2QRQ.js +1401 -0
- package/dist/chunk-ZSPO2GF2.cjs +1401 -0
- package/dist/codec-95k8CAu5.d.cts +35 -0
- package/dist/codec-AFuOxfsO.d.ts +60 -0
- package/dist/codec-B-UJ5Iow.d.cts +75 -0
- package/dist/codec-BC5jfvMb.d.ts +35 -0
- package/dist/codec-BECYPfY8.d.ts +35 -0
- package/dist/codec-BsPU1vNC.d.ts +39 -0
- package/dist/codec-BvpuF-6u.d.cts +39 -0
- package/dist/codec-C8jZI5Cx.d.cts +39 -0
- package/dist/codec-CAevkgf5.d.cts +33 -0
- package/dist/codec-CSUqCrRs.d.ts +39 -0
- package/dist/codec-C_HMXNK_.d.ts +33 -0
- package/dist/{codec-CTvFtQQI.d.cts → codec-CpuvYTSV.d.cts} +5 -5
- package/dist/codec-D0x8-SCw.d.cts +35 -0
- package/dist/codec-D7ARhpG1.d.ts +75 -0
- package/dist/codec-DNAUGshO.d.cts +60 -0
- package/dist/codec-DPx_QNn0.d.ts +31 -0
- package/dist/{codec-qPzfmLNu.d.ts → codec-DRhCx_hw.d.ts} +5 -5
- package/dist/codec-Db7YPe3l.d.ts +31 -0
- package/dist/codec-axkJpb7D.d.cts +31 -0
- package/dist/codec-ujAbFaep.d.cts +31 -0
- package/dist/draft10-session.cjs +6 -0
- package/dist/draft10-session.d.cts +8 -0
- package/dist/draft10-session.d.ts +8 -0
- package/dist/draft10-session.js +6 -0
- package/dist/draft10.cjs +115 -0
- package/dist/draft10.d.cts +95 -0
- package/dist/draft10.d.ts +95 -0
- package/dist/draft10.js +115 -0
- package/dist/draft11-session.cjs +6 -0
- package/dist/draft11-session.d.cts +8 -0
- package/dist/draft11-session.d.ts +8 -0
- package/dist/draft11-session.js +6 -0
- package/dist/draft11.cjs +109 -0
- package/dist/draft11.d.cts +99 -0
- package/dist/draft11.d.ts +99 -0
- package/dist/draft11.js +109 -0
- package/dist/draft12-session.cjs +6 -0
- package/dist/draft12-session.d.cts +8 -0
- package/dist/draft12-session.d.ts +8 -0
- package/dist/draft12-session.js +6 -0
- package/dist/draft12.cjs +117 -0
- package/dist/draft12.d.cts +106 -0
- package/dist/draft12.d.ts +106 -0
- package/dist/draft12.js +117 -0
- package/dist/draft13-session.cjs +6 -0
- package/dist/draft13-session.d.cts +8 -0
- package/dist/draft13-session.d.ts +8 -0
- package/dist/draft13-session.js +6 -0
- package/dist/draft13.cjs +119 -0
- package/dist/draft13.d.cts +108 -0
- package/dist/draft13.d.ts +108 -0
- package/dist/draft13.js +119 -0
- package/dist/draft14-session.cjs +2 -2
- package/dist/draft14-session.d.cts +4 -4
- package/dist/draft14-session.d.ts +4 -4
- package/dist/draft14-session.js +1 -1
- package/dist/draft14.cjs +4 -4
- package/dist/draft14.d.cts +27 -15
- package/dist/draft14.d.ts +27 -15
- package/dist/draft14.js +3 -3
- package/dist/draft15-session.cjs +6 -0
- package/dist/draft15-session.d.cts +8 -0
- package/dist/draft15-session.d.ts +8 -0
- package/dist/draft15-session.js +6 -0
- package/dist/draft15.cjs +111 -0
- package/dist/draft15.d.cts +93 -0
- package/dist/draft15.d.ts +93 -0
- package/dist/draft15.js +111 -0
- package/dist/draft16-session.cjs +6 -0
- package/dist/draft16-session.d.cts +8 -0
- package/dist/draft16-session.d.ts +8 -0
- package/dist/draft16-session.js +6 -0
- package/dist/draft16.cjs +113 -0
- package/dist/draft16.d.cts +94 -0
- package/dist/draft16.d.ts +94 -0
- package/dist/draft16.js +113 -0
- package/dist/draft17-session.cjs +8 -0
- package/dist/draft17-session.d.cts +51 -0
- package/dist/draft17-session.d.ts +51 -0
- package/dist/draft17-session.js +8 -0
- package/dist/draft17.cjs +99 -0
- package/dist/draft17.d.cts +40 -0
- package/dist/draft17.d.ts +40 -0
- package/dist/draft17.js +99 -0
- package/dist/draft7-session.cjs +3 -3
- package/dist/draft7-session.d.cts +3 -3
- package/dist/draft7-session.d.ts +3 -3
- package/dist/draft7-session.js +2 -2
- package/dist/draft7.cjs +6 -6
- package/dist/draft7.d.cts +10 -10
- package/dist/draft7.d.ts +10 -10
- package/dist/draft7.js +3 -3
- package/dist/draft8-session.cjs +6 -0
- package/dist/draft8-session.d.cts +8 -0
- package/dist/draft8-session.d.ts +8 -0
- package/dist/draft8-session.js +6 -0
- package/dist/draft8.cjs +115 -0
- package/dist/draft8.d.cts +95 -0
- package/dist/draft8.d.ts +95 -0
- package/dist/draft8.js +115 -0
- package/dist/draft9-session.cjs +6 -0
- package/dist/draft9-session.d.cts +8 -0
- package/dist/draft9-session.d.ts +8 -0
- package/dist/draft9-session.js +6 -0
- package/dist/draft9.cjs +115 -0
- package/dist/draft9.d.cts +95 -0
- package/dist/draft9.d.ts +95 -0
- package/dist/draft9.js +115 -0
- package/dist/index.cjs +79 -7
- package/dist/index.d.cts +71 -8
- package/dist/index.d.ts +71 -8
- package/dist/index.js +77 -5
- package/dist/{session-types-B9NIf7_F.d.ts → session-types-CJIFbTPd.d.ts} +20 -20
- package/dist/{session-types-CCo-oA-d.d.cts → session-types-Cbq8IGCP.d.cts} +20 -20
- package/dist/session.cjs +5 -5
- package/dist/session.d.cts +3 -3
- package/dist/session.d.ts +3 -3
- package/dist/session.js +5 -5
- package/dist/types-4VxSL2Ho.d.cts +261 -0
- package/dist/types-4VxSL2Ho.d.ts +261 -0
- package/dist/types-B2afJZM-.d.cts +236 -0
- package/dist/types-B2afJZM-.d.ts +236 -0
- package/dist/{types-CIk5W10V.d.ts → types-BTFeKYCb.d.cts} +37 -37
- package/dist/{types-CIk5W10V.d.cts → types-BTFeKYCb.d.ts} +37 -37
- package/dist/types-Bg6QYNVt.d.cts +290 -0
- package/dist/types-Bg6QYNVt.d.ts +290 -0
- package/dist/types-C_1HrqBl.d.cts +306 -0
- package/dist/types-C_1HrqBl.d.ts +306 -0
- package/dist/types-Cw4WE9dh.d.cts +261 -0
- package/dist/types-Cw4WE9dh.d.ts +261 -0
- package/dist/types-D5gNQiDj.d.cts +261 -0
- package/dist/types-D5gNQiDj.d.ts +261 -0
- package/dist/types-DqCDFqgB.d.cts +230 -0
- package/dist/types-DqCDFqgB.d.ts +230 -0
- package/dist/types-ERexTpT8.d.cts +217 -0
- package/dist/types-ERexTpT8.d.ts +217 -0
- package/dist/{types-ClXELFGN.d.cts → types-QNXoxC9Y.d.cts} +36 -41
- package/dist/{types-ClXELFGN.d.ts → types-QNXoxC9Y.d.ts} +36 -41
- package/dist/types-r-CasCf1.d.cts +262 -0
- package/dist/types-r-CasCf1.d.ts +262 -0
- package/package.json +116 -8
- package/src/core/buffer-reader.ts +16 -9
- package/src/core/buffer-writer.ts +2 -2
- package/src/core/errors.ts +1 -1
- package/src/core/session-types.ts +28 -41
- package/src/core/types.ts +92 -75
- package/src/drafts/draft07/announce-fsm.ts +1 -1
- package/src/drafts/draft07/codec.ts +235 -118
- package/src/drafts/draft07/index.ts +43 -44
- package/src/drafts/draft07/messages.ts +1 -1
- package/src/drafts/draft07/parameters.ts +2 -2
- package/src/drafts/draft07/rules.ts +67 -38
- package/src/drafts/draft07/session-fsm.ts +330 -117
- package/src/drafts/draft07/session.ts +10 -10
- package/src/drafts/draft07/subscription-fsm.ts +1 -1
- package/src/drafts/draft07/varint.ts +4 -4
- package/src/drafts/draft08/codec.ts +1254 -0
- package/src/drafts/draft08/index.ts +125 -0
- package/src/drafts/draft08/messages.ts +72 -0
- package/src/drafts/draft08/rules.ts +91 -0
- package/src/drafts/draft08/session-fsm.ts +718 -0
- package/src/drafts/draft08/session.ts +26 -0
- package/src/drafts/draft08/types.ts +377 -0
- package/src/drafts/draft09/codec.ts +1235 -0
- package/src/drafts/draft09/index.ts +125 -0
- package/src/drafts/draft09/messages.ts +72 -0
- package/src/drafts/draft09/rules.ts +91 -0
- package/src/drafts/draft09/session-fsm.ts +718 -0
- package/src/drafts/draft09/session.ts +26 -0
- package/src/drafts/draft09/types.ts +376 -0
- package/src/drafts/draft10/codec.ts +1235 -0
- package/src/drafts/draft10/index.ts +125 -0
- package/src/drafts/draft10/messages.ts +72 -0
- package/src/drafts/draft10/rules.ts +91 -0
- package/src/drafts/draft10/session-fsm.ts +718 -0
- package/src/drafts/draft10/session.ts +26 -0
- package/src/drafts/draft10/types.ts +376 -0
- package/src/drafts/draft11/codec.ts +1198 -0
- package/src/drafts/draft11/index.ts +123 -0
- package/src/drafts/draft11/messages.ts +71 -0
- package/src/drafts/draft11/rules.ts +100 -0
- package/src/drafts/draft11/session-fsm.ts +758 -0
- package/src/drafts/draft11/session.ts +26 -0
- package/src/drafts/draft11/types.ts +375 -0
- package/src/drafts/draft12/codec.ts +1354 -0
- package/src/drafts/draft12/index.ts +130 -0
- package/src/drafts/draft12/messages.ts +84 -0
- package/src/drafts/draft12/rules.ts +106 -0
- package/src/drafts/draft12/session-fsm.ts +805 -0
- package/src/drafts/draft12/session.ts +26 -0
- package/src/drafts/draft12/types.ts +414 -0
- package/src/drafts/draft13/codec.ts +1438 -0
- package/src/drafts/draft13/index.ts +132 -0
- package/src/drafts/draft13/messages.ts +86 -0
- package/src/drafts/draft13/rules.ts +108 -0
- package/src/drafts/draft13/session-fsm.ts +819 -0
- package/src/drafts/draft13/session.ts +26 -0
- package/src/drafts/draft13/types.ts +433 -0
- package/src/drafts/draft14/codec.ts +339 -189
- package/src/drafts/draft14/index.ts +103 -108
- package/src/drafts/draft14/messages.ts +61 -61
- package/src/drafts/draft14/rules.ts +77 -34
- package/src/drafts/draft14/session-fsm.ts +640 -147
- package/src/drafts/draft14/session.ts +13 -13
- package/src/drafts/draft14/types.ts +68 -68
- package/src/drafts/draft15/codec.ts +1661 -0
- package/src/drafts/draft15/index.ts +121 -0
- package/src/drafts/draft15/messages.ts +64 -0
- package/src/drafts/draft15/rules.ts +95 -0
- package/src/drafts/draft15/session-fsm.ts +687 -0
- package/src/drafts/draft15/session.ts +26 -0
- package/src/drafts/draft15/types.ts +336 -0
- package/src/drafts/draft16/codec.ts +1623 -0
- package/src/drafts/draft16/index.ts +123 -0
- package/src/drafts/draft16/messages.ts +67 -0
- package/src/drafts/draft16/rules.ts +96 -0
- package/src/drafts/draft16/session-fsm.ts +682 -0
- package/src/drafts/draft16/session.ts +26 -0
- package/src/drafts/draft16/types.ts +354 -0
- package/src/drafts/draft17/codec.ts +1621 -0
- package/src/drafts/draft17/index.ts +105 -0
- package/src/drafts/draft17/messages.ts +53 -0
- package/src/drafts/draft17/rules.ts +85 -0
- package/src/drafts/draft17/session-fsm.ts +437 -0
- package/src/drafts/draft17/session.ts +15 -0
- package/src/drafts/draft17/types.ts +310 -0
- package/src/index.ts +283 -33
- package/src/session.ts +20 -20
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
BufferReader,
|
|
3
3
|
BufferWriter,
|
|
4
4
|
DecodeError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-A27S7HW7.js";
|
|
6
6
|
|
|
7
7
|
// src/drafts/draft07/messages.ts
|
|
8
8
|
var MESSAGE_TYPE_IDS = {
|
|
@@ -97,7 +97,11 @@ function readGroupOrder(reader) {
|
|
|
97
97
|
const wire = reader.readUint8();
|
|
98
98
|
const value = WIRE_TO_GROUP_ORDER.get(wire);
|
|
99
99
|
if (value === void 0) {
|
|
100
|
-
throw new DecodeError(
|
|
100
|
+
throw new DecodeError(
|
|
101
|
+
"CONSTRAINT_VIOLATION",
|
|
102
|
+
`Invalid group order value: ${wire}`,
|
|
103
|
+
reader.offset - 1
|
|
104
|
+
);
|
|
101
105
|
}
|
|
102
106
|
return value;
|
|
103
107
|
}
|
|
@@ -255,50 +259,44 @@ function encodeFetchError(msg, writer) {
|
|
|
255
259
|
function encodeFetchCancel(msg, writer) {
|
|
256
260
|
writer.writeVarInt(msg.subscribeId);
|
|
257
261
|
}
|
|
262
|
+
function encodeObjectPayload(msg, writer) {
|
|
263
|
+
if (msg.payload.byteLength === 0) {
|
|
264
|
+
writer.writeVarInt(0);
|
|
265
|
+
writer.writeVarInt(msg.objectStatus ?? 0);
|
|
266
|
+
} else {
|
|
267
|
+
writer.writeVarInt(msg.payload.byteLength);
|
|
268
|
+
writer.writeBytes(msg.payload);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
258
271
|
function encodeObjectStream(msg, writer) {
|
|
259
272
|
writer.writeVarInt(MESSAGE_TYPE_IDS.object_stream);
|
|
260
|
-
writer.writeVarInt(msg.subscribeId);
|
|
261
273
|
writer.writeVarInt(msg.trackAlias);
|
|
262
274
|
writer.writeVarInt(msg.groupId);
|
|
263
275
|
writer.writeVarInt(msg.objectId);
|
|
264
276
|
writer.writeUint8(msg.publisherPriority);
|
|
265
|
-
|
|
266
|
-
writer.writeVarInt(msg.objectStatus);
|
|
267
|
-
} else {
|
|
268
|
-
writer.writeVarInt(0);
|
|
269
|
-
}
|
|
270
|
-
writer.writeBytes(msg.payload);
|
|
277
|
+
encodeObjectPayload(msg, writer);
|
|
271
278
|
}
|
|
272
279
|
function encodeObjectDatagram(msg, writer) {
|
|
273
280
|
writer.writeVarInt(MESSAGE_TYPE_IDS.object_datagram);
|
|
274
|
-
writer.writeVarInt(msg.subscribeId);
|
|
275
281
|
writer.writeVarInt(msg.trackAlias);
|
|
276
282
|
writer.writeVarInt(msg.groupId);
|
|
277
283
|
writer.writeVarInt(msg.objectId);
|
|
278
284
|
writer.writeUint8(msg.publisherPriority);
|
|
279
|
-
|
|
280
|
-
writer.writeVarInt(msg.objectStatus);
|
|
281
|
-
} else {
|
|
282
|
-
writer.writeVarInt(0);
|
|
283
|
-
}
|
|
284
|
-
writer.writeBytes(msg.payload);
|
|
285
|
+
encodeObjectPayload(msg, writer);
|
|
285
286
|
}
|
|
286
287
|
function encodeStreamHeaderTrack(msg, writer) {
|
|
287
288
|
writer.writeVarInt(MESSAGE_TYPE_IDS.stream_header_track);
|
|
288
|
-
writer.writeVarInt(msg.subscribeId);
|
|
289
289
|
writer.writeVarInt(msg.trackAlias);
|
|
290
290
|
writer.writeUint8(msg.publisherPriority);
|
|
291
291
|
}
|
|
292
292
|
function encodeStreamHeaderGroup(msg, writer) {
|
|
293
293
|
writer.writeVarInt(MESSAGE_TYPE_IDS.stream_header_group);
|
|
294
|
-
writer.writeVarInt(msg.subscribeId);
|
|
295
294
|
writer.writeVarInt(msg.trackAlias);
|
|
296
295
|
writer.writeVarInt(msg.groupId);
|
|
297
296
|
writer.writeUint8(msg.publisherPriority);
|
|
298
297
|
}
|
|
299
298
|
function encodeStreamHeaderSubgroup(msg, writer) {
|
|
300
299
|
writer.writeVarInt(MESSAGE_TYPE_IDS.stream_header_subgroup);
|
|
301
|
-
writer.writeVarInt(msg.subscribeId);
|
|
302
300
|
writer.writeVarInt(msg.trackAlias);
|
|
303
301
|
writer.writeVarInt(msg.groupId);
|
|
304
302
|
writer.writeVarInt(msg.subgroupId);
|
|
@@ -341,7 +339,11 @@ var dataStreamEncoders = {
|
|
|
341
339
|
function decodeClientSetup(reader) {
|
|
342
340
|
const numVersions = reader.readVarInt();
|
|
343
341
|
if (numVersions === 0n) {
|
|
344
|
-
throw new DecodeError(
|
|
342
|
+
throw new DecodeError(
|
|
343
|
+
"CONSTRAINT_VIOLATION",
|
|
344
|
+
"supported_versions must not be empty",
|
|
345
|
+
reader.offset
|
|
346
|
+
);
|
|
345
347
|
}
|
|
346
348
|
const supportedVersions = [];
|
|
347
349
|
for (let i = 0n; i < numVersions; i++) {
|
|
@@ -365,7 +367,11 @@ function decodeSubscribe(reader) {
|
|
|
365
367
|
const filterTypeWire = reader.readVarInt();
|
|
366
368
|
const filterType = WIRE_TO_FILTER_TYPE.get(filterTypeWire);
|
|
367
369
|
if (filterType === void 0) {
|
|
368
|
-
throw new DecodeError(
|
|
370
|
+
throw new DecodeError(
|
|
371
|
+
"CONSTRAINT_VIOLATION",
|
|
372
|
+
`Invalid filter type: ${filterTypeWire}`,
|
|
373
|
+
reader.offset
|
|
374
|
+
);
|
|
369
375
|
}
|
|
370
376
|
const base = {
|
|
371
377
|
type: "subscribe",
|
|
@@ -405,10 +411,26 @@ function decodeSubscribeOk(reader) {
|
|
|
405
411
|
const largestGroupId = reader.readVarInt();
|
|
406
412
|
const largestObjectId = reader.readVarInt();
|
|
407
413
|
const parameters2 = reader.readParameters();
|
|
408
|
-
return {
|
|
414
|
+
return {
|
|
415
|
+
type: "subscribe_ok",
|
|
416
|
+
subscribeId,
|
|
417
|
+
expires,
|
|
418
|
+
groupOrder,
|
|
419
|
+
contentExists,
|
|
420
|
+
largestGroupId,
|
|
421
|
+
largestObjectId,
|
|
422
|
+
parameters: parameters2
|
|
423
|
+
};
|
|
409
424
|
}
|
|
410
425
|
const parameters = reader.readParameters();
|
|
411
|
-
return {
|
|
426
|
+
return {
|
|
427
|
+
type: "subscribe_ok",
|
|
428
|
+
subscribeId,
|
|
429
|
+
expires,
|
|
430
|
+
groupOrder,
|
|
431
|
+
contentExists,
|
|
432
|
+
parameters
|
|
433
|
+
};
|
|
412
434
|
}
|
|
413
435
|
function decodeSubscribeError(reader) {
|
|
414
436
|
const subscribeId = reader.readVarInt();
|
|
@@ -426,7 +448,15 @@ function decodeSubscribeDone(reader) {
|
|
|
426
448
|
if (contentExists) {
|
|
427
449
|
const finalGroupId = reader.readVarInt();
|
|
428
450
|
const finalObjectId = reader.readVarInt();
|
|
429
|
-
return {
|
|
451
|
+
return {
|
|
452
|
+
type: "subscribe_done",
|
|
453
|
+
subscribeId,
|
|
454
|
+
statusCode,
|
|
455
|
+
reasonPhrase,
|
|
456
|
+
contentExists,
|
|
457
|
+
finalGroupId,
|
|
458
|
+
finalObjectId
|
|
459
|
+
};
|
|
430
460
|
}
|
|
431
461
|
return { type: "subscribe_done", subscribeId, statusCode, reasonPhrase, contentExists };
|
|
432
462
|
}
|
|
@@ -438,7 +468,16 @@ function decodeSubscribeUpdate(reader) {
|
|
|
438
468
|
const endObject = reader.readVarInt();
|
|
439
469
|
const subscriberPriority = reader.readUint8();
|
|
440
470
|
const parameters = reader.readParameters();
|
|
441
|
-
return {
|
|
471
|
+
return {
|
|
472
|
+
type: "subscribe_update",
|
|
473
|
+
subscribeId,
|
|
474
|
+
startGroup,
|
|
475
|
+
startObject,
|
|
476
|
+
endGroup,
|
|
477
|
+
endObject,
|
|
478
|
+
subscriberPriority,
|
|
479
|
+
parameters
|
|
480
|
+
};
|
|
442
481
|
}
|
|
443
482
|
function decodeUnsubscribe(reader) {
|
|
444
483
|
const subscribeId = reader.readVarInt();
|
|
@@ -520,7 +559,19 @@ function decodeFetch(reader) {
|
|
|
520
559
|
const endGroup = reader.readVarInt();
|
|
521
560
|
const endObject = reader.readVarInt();
|
|
522
561
|
const parameters = reader.readParameters();
|
|
523
|
-
return {
|
|
562
|
+
return {
|
|
563
|
+
type: "fetch",
|
|
564
|
+
subscribeId,
|
|
565
|
+
trackNamespace,
|
|
566
|
+
trackName,
|
|
567
|
+
subscriberPriority,
|
|
568
|
+
groupOrder,
|
|
569
|
+
startGroup,
|
|
570
|
+
startObject,
|
|
571
|
+
endGroup,
|
|
572
|
+
endObject,
|
|
573
|
+
parameters
|
|
574
|
+
};
|
|
524
575
|
}
|
|
525
576
|
function decodeFetchOk(reader) {
|
|
526
577
|
const subscribeId = reader.readVarInt();
|
|
@@ -530,7 +581,15 @@ function decodeFetchOk(reader) {
|
|
|
530
581
|
const largestGroupId = reader.readVarInt();
|
|
531
582
|
const largestObjectId = reader.readVarInt();
|
|
532
583
|
const parameters = reader.readParameters();
|
|
533
|
-
return {
|
|
584
|
+
return {
|
|
585
|
+
type: "fetch_ok",
|
|
586
|
+
subscribeId,
|
|
587
|
+
groupOrder,
|
|
588
|
+
endOfTrack,
|
|
589
|
+
largestGroupId,
|
|
590
|
+
largestObjectId,
|
|
591
|
+
parameters
|
|
592
|
+
};
|
|
534
593
|
}
|
|
535
594
|
function decodeFetchError(reader) {
|
|
536
595
|
const subscribeId = reader.readVarInt();
|
|
@@ -543,53 +602,84 @@ function decodeFetchCancel(reader) {
|
|
|
543
602
|
return { type: "fetch_cancel", subscribeId };
|
|
544
603
|
}
|
|
545
604
|
function decodeObjectStream(reader) {
|
|
546
|
-
const subscribeId = reader.readVarInt();
|
|
547
605
|
const trackAlias = reader.readVarInt();
|
|
548
606
|
const groupId = reader.readVarInt();
|
|
549
607
|
const objectId = reader.readVarInt();
|
|
550
608
|
const publisherPriority = reader.readUint8();
|
|
551
|
-
const
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
609
|
+
const payloadLength = Number(reader.readVarInt());
|
|
610
|
+
if (payloadLength === 0) {
|
|
611
|
+
const objectStatus = reader.remaining > 0 ? Number(reader.readVarInt()) : 0;
|
|
612
|
+
return {
|
|
613
|
+
type: "object_stream",
|
|
614
|
+
trackAlias,
|
|
615
|
+
groupId,
|
|
616
|
+
objectId,
|
|
617
|
+
publisherPriority,
|
|
618
|
+
objectStatus,
|
|
619
|
+
payload: new Uint8Array(0)
|
|
620
|
+
};
|
|
556
621
|
}
|
|
557
|
-
|
|
622
|
+
const payload = reader.readBytes(payloadLength);
|
|
623
|
+
return {
|
|
624
|
+
type: "object_stream",
|
|
625
|
+
trackAlias,
|
|
626
|
+
groupId,
|
|
627
|
+
objectId,
|
|
628
|
+
publisherPriority,
|
|
629
|
+
payload
|
|
630
|
+
};
|
|
558
631
|
}
|
|
559
632
|
function decodeObjectDatagram(reader) {
|
|
560
|
-
const subscribeId = reader.readVarInt();
|
|
561
633
|
const trackAlias = reader.readVarInt();
|
|
562
634
|
const groupId = reader.readVarInt();
|
|
563
635
|
const objectId = reader.readVarInt();
|
|
564
636
|
const publisherPriority = reader.readUint8();
|
|
565
|
-
const
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
637
|
+
const payloadLength = Number(reader.readVarInt());
|
|
638
|
+
if (payloadLength === 0) {
|
|
639
|
+
const objectStatus = reader.remaining > 0 ? Number(reader.readVarInt()) : 0;
|
|
640
|
+
return {
|
|
641
|
+
type: "object_datagram",
|
|
642
|
+
trackAlias,
|
|
643
|
+
groupId,
|
|
644
|
+
objectId,
|
|
645
|
+
publisherPriority,
|
|
646
|
+
objectStatus,
|
|
647
|
+
payload: new Uint8Array(0)
|
|
648
|
+
};
|
|
570
649
|
}
|
|
571
|
-
|
|
650
|
+
const payload = reader.readBytes(payloadLength);
|
|
651
|
+
return {
|
|
652
|
+
type: "object_datagram",
|
|
653
|
+
trackAlias,
|
|
654
|
+
groupId,
|
|
655
|
+
objectId,
|
|
656
|
+
publisherPriority,
|
|
657
|
+
payload
|
|
658
|
+
};
|
|
572
659
|
}
|
|
573
660
|
function decodeStreamHeaderTrack(reader) {
|
|
574
|
-
const subscribeId = reader.readVarInt();
|
|
575
661
|
const trackAlias = reader.readVarInt();
|
|
576
662
|
const publisherPriority = reader.readUint8();
|
|
577
|
-
return { type: "stream_header_track",
|
|
663
|
+
return { type: "stream_header_track", trackAlias, publisherPriority };
|
|
578
664
|
}
|
|
579
665
|
function decodeStreamHeaderGroup(reader) {
|
|
580
|
-
const subscribeId = reader.readVarInt();
|
|
581
666
|
const trackAlias = reader.readVarInt();
|
|
582
667
|
const groupId = reader.readVarInt();
|
|
583
668
|
const publisherPriority = reader.readUint8();
|
|
584
|
-
return { type: "stream_header_group",
|
|
669
|
+
return { type: "stream_header_group", trackAlias, groupId, publisherPriority };
|
|
585
670
|
}
|
|
586
671
|
function decodeStreamHeaderSubgroup(reader) {
|
|
587
|
-
const subscribeId = reader.readVarInt();
|
|
588
672
|
const trackAlias = reader.readVarInt();
|
|
589
673
|
const groupId = reader.readVarInt();
|
|
590
674
|
const subgroupId = reader.readVarInt();
|
|
591
675
|
const publisherPriority = reader.readUint8();
|
|
592
|
-
return {
|
|
676
|
+
return {
|
|
677
|
+
type: "stream_header_subgroup",
|
|
678
|
+
trackAlias,
|
|
679
|
+
groupId,
|
|
680
|
+
subgroupId,
|
|
681
|
+
publisherPriority
|
|
682
|
+
};
|
|
593
683
|
}
|
|
594
684
|
var controlDecoders = /* @__PURE__ */ new Map([
|
|
595
685
|
[MESSAGE_TYPE_IDS.client_setup, decodeClientSetup],
|
|
@@ -681,18 +771,26 @@ function decodeMessageImpl(bytes) {
|
|
|
681
771
|
if (!decoder2) {
|
|
682
772
|
return {
|
|
683
773
|
ok: false,
|
|
684
|
-
error: new DecodeError(
|
|
774
|
+
error: new DecodeError(
|
|
775
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
776
|
+
`Unknown data stream type ID: 0x${typeId.toString(16)}`,
|
|
777
|
+
0
|
|
778
|
+
)
|
|
685
779
|
};
|
|
686
780
|
}
|
|
687
781
|
const message2 = decoder2(reader);
|
|
688
782
|
return { ok: true, value: message2, bytesRead: reader.offset };
|
|
689
783
|
}
|
|
690
784
|
const payloadLength = Number(reader.readVarInt());
|
|
691
|
-
const
|
|
785
|
+
const _headerBytes = reader.offset;
|
|
692
786
|
if (reader.remaining < payloadLength) {
|
|
693
787
|
return {
|
|
694
788
|
ok: false,
|
|
695
|
-
error: new DecodeError(
|
|
789
|
+
error: new DecodeError(
|
|
790
|
+
"UNEXPECTED_END",
|
|
791
|
+
`Not enough bytes for payload: need ${payloadLength}, have ${reader.remaining}`,
|
|
792
|
+
reader.offset
|
|
793
|
+
)
|
|
696
794
|
};
|
|
697
795
|
}
|
|
698
796
|
const payloadBytes = reader.readBytes(payloadLength);
|
|
@@ -701,7 +799,11 @@ function decodeMessageImpl(bytes) {
|
|
|
701
799
|
if (!decoder) {
|
|
702
800
|
return {
|
|
703
801
|
ok: false,
|
|
704
|
-
error: new DecodeError(
|
|
802
|
+
error: new DecodeError(
|
|
803
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
804
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
805
|
+
0
|
|
806
|
+
)
|
|
705
807
|
};
|
|
706
808
|
}
|
|
707
809
|
const payloadReader = new BufferReader(payloadBytes, 0);
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
BufferReader,
|
|
3
3
|
BufferWriter,
|
|
4
4
|
DecodeError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-A27S7HW7.js";
|
|
6
6
|
|
|
7
7
|
// src/drafts/draft14/messages.ts
|
|
8
8
|
var MSG_SUBSCRIBE_UPDATE = 0x02n;
|
|
@@ -13,12 +13,12 @@ var MSG_PUBLISH_NAMESPACE = 0x06n;
|
|
|
13
13
|
var MSG_PUBLISH_NAMESPACE_OK = 0x07n;
|
|
14
14
|
var MSG_PUBLISH_NAMESPACE_ERROR = 0x08n;
|
|
15
15
|
var MSG_PUBLISH_NAMESPACE_DONE = 0x09n;
|
|
16
|
-
var MSG_UNSUBSCRIBE =
|
|
17
|
-
var MSG_PUBLISH_DONE =
|
|
18
|
-
var MSG_PUBLISH_NAMESPACE_CANCEL =
|
|
19
|
-
var MSG_TRACK_STATUS =
|
|
20
|
-
var MSG_TRACK_STATUS_OK =
|
|
21
|
-
var MSG_TRACK_STATUS_ERROR =
|
|
16
|
+
var MSG_UNSUBSCRIBE = 0x0an;
|
|
17
|
+
var MSG_PUBLISH_DONE = 0x0bn;
|
|
18
|
+
var MSG_PUBLISH_NAMESPACE_CANCEL = 0x0cn;
|
|
19
|
+
var MSG_TRACK_STATUS = 0x0dn;
|
|
20
|
+
var MSG_TRACK_STATUS_OK = 0x0en;
|
|
21
|
+
var MSG_TRACK_STATUS_ERROR = 0x0fn;
|
|
22
22
|
var MSG_GOAWAY = 0x10n;
|
|
23
23
|
var MSG_SUBSCRIBE_NAMESPACE = 0x11n;
|
|
24
24
|
var MSG_SUBSCRIBE_NAMESPACE_OK = 0x12n;
|
|
@@ -29,10 +29,10 @@ var MSG_FETCH = 0x16n;
|
|
|
29
29
|
var MSG_FETCH_CANCEL = 0x17n;
|
|
30
30
|
var MSG_FETCH_OK = 0x18n;
|
|
31
31
|
var MSG_FETCH_ERROR = 0x19n;
|
|
32
|
-
var MSG_REQUESTS_BLOCKED =
|
|
33
|
-
var MSG_PUBLISH =
|
|
34
|
-
var MSG_PUBLISH_OK =
|
|
35
|
-
var MSG_PUBLISH_ERROR =
|
|
32
|
+
var MSG_REQUESTS_BLOCKED = 0x1an;
|
|
33
|
+
var MSG_PUBLISH = 0x1dn;
|
|
34
|
+
var MSG_PUBLISH_OK = 0x1en;
|
|
35
|
+
var MSG_PUBLISH_ERROR = 0x1fn;
|
|
36
36
|
var MSG_CLIENT_SETUP = 0x20n;
|
|
37
37
|
var MSG_SERVER_SETUP = 0x21n;
|
|
38
38
|
var PARAM_ROLE = 0x00n;
|
|
@@ -137,7 +137,7 @@ function decodeParams(reader) {
|
|
|
137
137
|
tmpWriter.writeVarInt(value);
|
|
138
138
|
const raw = tmpWriter.finish();
|
|
139
139
|
unknown.push({
|
|
140
|
-
id:
|
|
140
|
+
id: `0x${paramType.toString(16)}`,
|
|
141
141
|
length: raw.byteLength,
|
|
142
142
|
raw_hex: bytesToHex(raw)
|
|
143
143
|
});
|
|
@@ -149,7 +149,7 @@ function decodeParams(reader) {
|
|
|
149
149
|
result.path = new TextDecoder().decode(bytes);
|
|
150
150
|
} else {
|
|
151
151
|
unknown.push({
|
|
152
|
-
id:
|
|
152
|
+
id: `0x${paramType.toString(16)}`,
|
|
153
153
|
length,
|
|
154
154
|
raw_hex: bytesToHex(bytes)
|
|
155
155
|
});
|
|
@@ -337,7 +337,11 @@ function encodeRequestsBlockedPayload(msg, w) {
|
|
|
337
337
|
function decodeClientSetupPayload(r) {
|
|
338
338
|
const numVersions = Number(r.readVarInt());
|
|
339
339
|
if (numVersions === 0) {
|
|
340
|
-
throw new DecodeError(
|
|
340
|
+
throw new DecodeError(
|
|
341
|
+
"CONSTRAINT_VIOLATION",
|
|
342
|
+
"CLIENT_SETUP must offer at least one version",
|
|
343
|
+
r.offset
|
|
344
|
+
);
|
|
341
345
|
}
|
|
342
346
|
const supported_versions = [];
|
|
343
347
|
for (let i = 0; i < numVersions; i++) {
|
|
@@ -527,7 +531,16 @@ function decodeFetchPayload(r) {
|
|
|
527
531
|
const start_object = r.readVarInt();
|
|
528
532
|
const end_group = r.readVarInt();
|
|
529
533
|
const parameters = decodeParams(r);
|
|
530
|
-
return {
|
|
534
|
+
return {
|
|
535
|
+
type: "fetch",
|
|
536
|
+
request_id,
|
|
537
|
+
track_namespace,
|
|
538
|
+
track_name,
|
|
539
|
+
start_group,
|
|
540
|
+
start_object,
|
|
541
|
+
end_group,
|
|
542
|
+
parameters
|
|
543
|
+
};
|
|
531
544
|
}
|
|
532
545
|
function decodeFetchOkPayload(r) {
|
|
533
546
|
const request_id = r.readVarInt();
|
|
@@ -721,7 +734,11 @@ function decodeMessage(bytes) {
|
|
|
721
734
|
if (!decoder) {
|
|
722
735
|
return {
|
|
723
736
|
ok: false,
|
|
724
|
-
error: new DecodeError(
|
|
737
|
+
error: new DecodeError(
|
|
738
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
739
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
740
|
+
0
|
|
741
|
+
)
|
|
725
742
|
};
|
|
726
743
|
}
|
|
727
744
|
const message = decoder(payloadReader);
|
|
@@ -772,7 +789,14 @@ function decodeSubgroupStream(bytes) {
|
|
|
772
789
|
const r = new BufferReader(bytes);
|
|
773
790
|
const streamType = r.readVarInt();
|
|
774
791
|
if (streamType !== 0n) {
|
|
775
|
-
return {
|
|
792
|
+
return {
|
|
793
|
+
ok: false,
|
|
794
|
+
error: new DecodeError(
|
|
795
|
+
"CONSTRAINT_VIOLATION",
|
|
796
|
+
`Expected subgroup stream type 0, got ${streamType}`,
|
|
797
|
+
0
|
|
798
|
+
)
|
|
799
|
+
};
|
|
776
800
|
}
|
|
777
801
|
const trackAlias = r.readVarInt();
|
|
778
802
|
const groupId = r.readVarInt();
|
|
@@ -818,7 +842,14 @@ function decodeFetchStream(bytes) {
|
|
|
818
842
|
const r = new BufferReader(bytes);
|
|
819
843
|
const streamType = r.readVarInt();
|
|
820
844
|
if (streamType !== 2n) {
|
|
821
|
-
return {
|
|
845
|
+
return {
|
|
846
|
+
ok: false,
|
|
847
|
+
error: new DecodeError(
|
|
848
|
+
"CONSTRAINT_VIOLATION",
|
|
849
|
+
`Expected fetch stream type 2, got ${streamType}`,
|
|
850
|
+
0
|
|
851
|
+
)
|
|
852
|
+
};
|
|
822
853
|
}
|
|
823
854
|
const subscribeRequestId = r.readVarInt();
|
|
824
855
|
const objects = [];
|
|
@@ -897,7 +928,11 @@ function createSubgroupStreamDecoder() {
|
|
|
897
928
|
const streamType = r.readVarInt();
|
|
898
929
|
if (streamType !== 0n) {
|
|
899
930
|
controller.error(
|
|
900
|
-
new DecodeError(
|
|
931
|
+
new DecodeError(
|
|
932
|
+
"CONSTRAINT_VIOLATION",
|
|
933
|
+
`Expected subgroup stream type 0, got ${streamType}`,
|
|
934
|
+
0
|
|
935
|
+
)
|
|
901
936
|
);
|
|
902
937
|
return;
|
|
903
938
|
}
|
|
@@ -941,9 +976,7 @@ function createSubgroupStreamDecoder() {
|
|
|
941
976
|
},
|
|
942
977
|
flush(controller) {
|
|
943
978
|
if (buffer.length > 0) {
|
|
944
|
-
controller.error(
|
|
945
|
-
new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0)
|
|
946
|
-
);
|
|
979
|
+
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
947
980
|
}
|
|
948
981
|
}
|
|
949
982
|
});
|
|
@@ -963,7 +996,11 @@ function createFetchStreamDecoder() {
|
|
|
963
996
|
const streamType = r.readVarInt();
|
|
964
997
|
if (streamType !== 2n) {
|
|
965
998
|
controller.error(
|
|
966
|
-
new DecodeError(
|
|
999
|
+
new DecodeError(
|
|
1000
|
+
"CONSTRAINT_VIOLATION",
|
|
1001
|
+
`Expected fetch stream type 2, got ${streamType}`,
|
|
1002
|
+
0
|
|
1003
|
+
)
|
|
967
1004
|
);
|
|
968
1005
|
return;
|
|
969
1006
|
}
|
|
@@ -1001,9 +1038,7 @@ function createFetchStreamDecoder() {
|
|
|
1001
1038
|
},
|
|
1002
1039
|
flush(controller) {
|
|
1003
1040
|
if (buffer.length > 0) {
|
|
1004
|
-
controller.error(
|
|
1005
|
-
new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0)
|
|
1006
|
-
);
|
|
1041
|
+
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1007
1042
|
}
|
|
1008
1043
|
}
|
|
1009
1044
|
});
|
|
@@ -1106,9 +1141,7 @@ function createDataStreamDecoder() {
|
|
|
1106
1141
|
},
|
|
1107
1142
|
flush(controller) {
|
|
1108
1143
|
if (buffer.length > 0) {
|
|
1109
|
-
controller.error(
|
|
1110
|
-
new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0)
|
|
1111
|
-
);
|
|
1144
|
+
controller.error(new DecodeError("UNEXPECTED_END", "Stream ended with incomplete data", 0));
|
|
1112
1145
|
}
|
|
1113
1146
|
}
|
|
1114
1147
|
});
|