@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
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkFWISIR26cjs = require('./chunk-FWISIR26.cjs');
|
|
6
6
|
|
|
7
7
|
// src/drafts/draft07/messages.ts
|
|
8
8
|
var MESSAGE_TYPE_IDS = {
|
|
@@ -49,17 +49,17 @@ for (const [name, id] of Object.entries(MESSAGE_TYPE_IDS)) {
|
|
|
49
49
|
|
|
50
50
|
// src/drafts/draft07/varint.ts
|
|
51
51
|
function encodeVarInt(value) {
|
|
52
|
-
const writer = new (0,
|
|
52
|
+
const writer = new (0, _chunkFWISIR26cjs.BufferWriter)(8);
|
|
53
53
|
writer.writeVarInt(value);
|
|
54
54
|
return writer.finish();
|
|
55
55
|
}
|
|
56
56
|
function decodeVarInt(bytes, offset = 0) {
|
|
57
57
|
try {
|
|
58
|
-
const reader = new (0,
|
|
58
|
+
const reader = new (0, _chunkFWISIR26cjs.BufferReader)(bytes, offset);
|
|
59
59
|
const value = reader.readVarInt();
|
|
60
60
|
return { ok: true, value, bytesRead: reader.offset - offset };
|
|
61
61
|
} catch (e) {
|
|
62
|
-
if (e instanceof
|
|
62
|
+
if (e instanceof _chunkFWISIR26cjs.DecodeError) {
|
|
63
63
|
return { ok: false, error: e };
|
|
64
64
|
}
|
|
65
65
|
throw e;
|
|
@@ -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 (0,
|
|
100
|
+
throw new (0, _chunkFWISIR26cjs.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(_nullishCoalesce(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 (0,
|
|
342
|
+
throw new (0, _chunkFWISIR26cjs.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 (0,
|
|
370
|
+
throw new (0, _chunkFWISIR26cjs.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],
|
|
@@ -655,7 +745,7 @@ var MESSAGE_TYPE_TO_WIRE = {
|
|
|
655
745
|
function encodeMessageImpl(message) {
|
|
656
746
|
const dataEncoder = dataStreamEncoders[message.type];
|
|
657
747
|
if (dataEncoder) {
|
|
658
|
-
const writer = new (0,
|
|
748
|
+
const writer = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
659
749
|
dataEncoder(message, writer);
|
|
660
750
|
return writer.finish();
|
|
661
751
|
}
|
|
@@ -663,10 +753,10 @@ function encodeMessageImpl(message) {
|
|
|
663
753
|
if (!controlEncoder) {
|
|
664
754
|
throw new Error(`Unknown message type: ${message.type}`);
|
|
665
755
|
}
|
|
666
|
-
const payloadWriter = new (0,
|
|
756
|
+
const payloadWriter = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
667
757
|
controlEncoder(message, payloadWriter);
|
|
668
758
|
const payload = payloadWriter.finish();
|
|
669
|
-
const frameWriter = new (0,
|
|
759
|
+
const frameWriter = new (0, _chunkFWISIR26cjs.BufferWriter)();
|
|
670
760
|
frameWriter.writeVarInt(MESSAGE_TYPE_TO_WIRE[message.type]);
|
|
671
761
|
frameWriter.writeVarInt(payload.byteLength);
|
|
672
762
|
frameWriter.writeBytes(payload);
|
|
@@ -674,25 +764,33 @@ function encodeMessageImpl(message) {
|
|
|
674
764
|
}
|
|
675
765
|
function decodeMessageImpl(bytes) {
|
|
676
766
|
try {
|
|
677
|
-
const reader = new (0,
|
|
767
|
+
const reader = new (0, _chunkFWISIR26cjs.BufferReader)(bytes, 0);
|
|
678
768
|
const typeId = reader.readVarInt();
|
|
679
769
|
if (DATA_STREAM_TYPE_IDS.has(typeId)) {
|
|
680
770
|
const decoder2 = dataStreamDecoders.get(typeId);
|
|
681
771
|
if (!decoder2) {
|
|
682
772
|
return {
|
|
683
773
|
ok: false,
|
|
684
|
-
error: new (0,
|
|
774
|
+
error: new (0, _chunkFWISIR26cjs.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 (0,
|
|
789
|
+
error: new (0, _chunkFWISIR26cjs.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,14 +799,18 @@ function decodeMessageImpl(bytes) {
|
|
|
701
799
|
if (!decoder) {
|
|
702
800
|
return {
|
|
703
801
|
ok: false,
|
|
704
|
-
error: new (0,
|
|
802
|
+
error: new (0, _chunkFWISIR26cjs.DecodeError)(
|
|
803
|
+
"UNKNOWN_MESSAGE_TYPE",
|
|
804
|
+
`Unknown message type ID: 0x${typeId.toString(16)}`,
|
|
805
|
+
0
|
|
806
|
+
)
|
|
705
807
|
};
|
|
706
808
|
}
|
|
707
|
-
const payloadReader = new (0,
|
|
809
|
+
const payloadReader = new (0, _chunkFWISIR26cjs.BufferReader)(payloadBytes, 0);
|
|
708
810
|
const message = decoder(payloadReader);
|
|
709
811
|
return { ok: true, value: message, bytesRead: totalBytesRead };
|
|
710
812
|
} catch (e) {
|
|
711
|
-
if (e instanceof
|
|
813
|
+
if (e instanceof _chunkFWISIR26cjs.DecodeError) {
|
|
712
814
|
return { ok: false, error: e };
|
|
713
815
|
}
|
|
714
816
|
throw e;
|
|
@@ -738,7 +840,7 @@ function createStreamDecoderImpl() {
|
|
|
738
840
|
flush(controller) {
|
|
739
841
|
if (buffer.length > 0) {
|
|
740
842
|
controller.error(
|
|
741
|
-
new (0,
|
|
843
|
+
new (0, _chunkFWISIR26cjs.DecodeError)("UNEXPECTED_END", "Stream ended with incomplete message data", 0)
|
|
742
844
|
);
|
|
743
845
|
}
|
|
744
846
|
}
|
|
@@ -35,7 +35,11 @@ var BufferReader = class {
|
|
|
35
35
|
}
|
|
36
36
|
readBytes(length) {
|
|
37
37
|
if (this.remaining < length) {
|
|
38
|
-
throw new DecodeError(
|
|
38
|
+
throw new DecodeError(
|
|
39
|
+
"UNEXPECTED_END",
|
|
40
|
+
`Not enough bytes: need ${length}, have ${this.remaining}`,
|
|
41
|
+
this.pos
|
|
42
|
+
);
|
|
39
43
|
}
|
|
40
44
|
const slice = this.buffer.slice(this.pos, this.pos + length);
|
|
41
45
|
this.pos += length;
|