@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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SessionState, SessionStateOptions } from "../../core/session-types.js";
|
|
2
|
+
import { Draft08SessionFSM } from "./session-fsm.js";
|
|
3
|
+
import type { Draft08Message, Draft08MessageType } from "./types.js";
|
|
4
|
+
|
|
5
|
+
export function createDraft08SessionState(
|
|
6
|
+
options: SessionStateOptions,
|
|
7
|
+
): SessionState<Draft08Message, Draft08MessageType> {
|
|
8
|
+
return new Draft08SessionFSM(options.role);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type {
|
|
12
|
+
AnnouncePhase,
|
|
13
|
+
AnnounceState,
|
|
14
|
+
FetchPhase,
|
|
15
|
+
FetchState,
|
|
16
|
+
ProtocolViolation,
|
|
17
|
+
ProtocolViolationCode,
|
|
18
|
+
SessionPhase,
|
|
19
|
+
SessionState,
|
|
20
|
+
SessionStateOptions,
|
|
21
|
+
SideEffect,
|
|
22
|
+
SubscriptionPhase,
|
|
23
|
+
SubscriptionState,
|
|
24
|
+
TransitionResult,
|
|
25
|
+
ValidationResult,
|
|
26
|
+
} from "../../core/session-types.js";
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
// Draft-08 specific message types
|
|
2
|
+
// Field names use snake_case to match test vector JSON
|
|
3
|
+
|
|
4
|
+
// Unknown parameter for passthrough
|
|
5
|
+
export interface UnknownParam {
|
|
6
|
+
readonly id: string; // e.g. "0x21"
|
|
7
|
+
readonly length: number;
|
|
8
|
+
readonly raw_hex: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Setup parameters (PATH, MAX_SUBSCRIBE_ID)
|
|
12
|
+
export interface Draft08SetupParams {
|
|
13
|
+
path?: string; // 0x01
|
|
14
|
+
max_subscribe_id?: bigint; // 0x02
|
|
15
|
+
unknown?: UnknownParam[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Version-specific parameters
|
|
19
|
+
export interface Draft08Params {
|
|
20
|
+
authorization_info?: string; // 0x02
|
|
21
|
+
delivery_timeout?: bigint; // 0x03
|
|
22
|
+
max_cache_duration?: bigint; // 0x04
|
|
23
|
+
unknown?: UnknownParam[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Draft-08 message type tag union
|
|
27
|
+
export type Draft08MessageType =
|
|
28
|
+
| "client_setup"
|
|
29
|
+
| "server_setup"
|
|
30
|
+
| "subscribe"
|
|
31
|
+
| "subscribe_ok"
|
|
32
|
+
| "subscribe_error"
|
|
33
|
+
| "subscribe_update"
|
|
34
|
+
| "subscribe_done"
|
|
35
|
+
| "unsubscribe"
|
|
36
|
+
| "announce"
|
|
37
|
+
| "announce_ok"
|
|
38
|
+
| "announce_error"
|
|
39
|
+
| "unannounce"
|
|
40
|
+
| "announce_cancel"
|
|
41
|
+
| "subscribe_announces"
|
|
42
|
+
| "subscribe_announces_ok"
|
|
43
|
+
| "subscribe_announces_error"
|
|
44
|
+
| "unsubscribe_announces"
|
|
45
|
+
| "fetch"
|
|
46
|
+
| "fetch_ok"
|
|
47
|
+
| "fetch_error"
|
|
48
|
+
| "fetch_cancel"
|
|
49
|
+
| "track_status_request"
|
|
50
|
+
| "track_status"
|
|
51
|
+
| "goaway"
|
|
52
|
+
| "max_subscribe_id"
|
|
53
|
+
| "subscribes_blocked";
|
|
54
|
+
|
|
55
|
+
// Base
|
|
56
|
+
export interface Draft08BaseMessage {
|
|
57
|
+
readonly type: Draft08MessageType;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Setup
|
|
61
|
+
export interface Draft08ClientSetup extends Draft08BaseMessage {
|
|
62
|
+
readonly type: "client_setup";
|
|
63
|
+
readonly supported_versions: bigint[];
|
|
64
|
+
readonly parameters: Draft08SetupParams;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface Draft08ServerSetup extends Draft08BaseMessage {
|
|
68
|
+
readonly type: "server_setup";
|
|
69
|
+
readonly selected_version: bigint;
|
|
70
|
+
readonly parameters: Draft08SetupParams;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Subscribe
|
|
74
|
+
export interface Draft08Subscribe extends Draft08BaseMessage {
|
|
75
|
+
readonly type: "subscribe";
|
|
76
|
+
readonly subscribe_id: bigint;
|
|
77
|
+
readonly track_alias: bigint;
|
|
78
|
+
readonly track_namespace: string[];
|
|
79
|
+
readonly track_name: string;
|
|
80
|
+
readonly subscriber_priority: number; // uint8
|
|
81
|
+
readonly group_order: number; // uint8
|
|
82
|
+
readonly filter_type: bigint;
|
|
83
|
+
readonly start_group?: bigint;
|
|
84
|
+
readonly start_object?: bigint;
|
|
85
|
+
readonly end_group?: bigint;
|
|
86
|
+
readonly parameters: Draft08Params;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface Draft08SubscribeOk extends Draft08BaseMessage {
|
|
90
|
+
readonly type: "subscribe_ok";
|
|
91
|
+
readonly subscribe_id: bigint;
|
|
92
|
+
readonly expires: bigint;
|
|
93
|
+
readonly group_order: number; // uint8
|
|
94
|
+
readonly content_exists: number; // uint8
|
|
95
|
+
readonly largest_group_id?: bigint;
|
|
96
|
+
readonly largest_object_id?: bigint;
|
|
97
|
+
readonly parameters: Draft08Params;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface Draft08SubscribeError extends Draft08BaseMessage {
|
|
101
|
+
readonly type: "subscribe_error";
|
|
102
|
+
readonly subscribe_id: bigint;
|
|
103
|
+
readonly error_code: bigint;
|
|
104
|
+
readonly reason_phrase: string;
|
|
105
|
+
readonly track_alias: bigint;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface Draft08SubscribeDone extends Draft08BaseMessage {
|
|
109
|
+
readonly type: "subscribe_done";
|
|
110
|
+
readonly subscribe_id: bigint;
|
|
111
|
+
readonly status_code: bigint;
|
|
112
|
+
readonly stream_count: bigint;
|
|
113
|
+
readonly reason_phrase: string;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface Draft08SubscribeUpdate extends Draft08BaseMessage {
|
|
117
|
+
readonly type: "subscribe_update";
|
|
118
|
+
readonly subscribe_id: bigint;
|
|
119
|
+
readonly start_group: bigint;
|
|
120
|
+
readonly start_object: bigint;
|
|
121
|
+
readonly end_group: bigint;
|
|
122
|
+
readonly subscriber_priority: number; // uint8
|
|
123
|
+
readonly parameters: Draft08Params;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface Draft08Unsubscribe extends Draft08BaseMessage {
|
|
127
|
+
readonly type: "unsubscribe";
|
|
128
|
+
readonly subscribe_id: bigint;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Announce
|
|
132
|
+
export interface Draft08Announce extends Draft08BaseMessage {
|
|
133
|
+
readonly type: "announce";
|
|
134
|
+
readonly track_namespace: string[];
|
|
135
|
+
readonly parameters: Draft08Params;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface Draft08AnnounceOk extends Draft08BaseMessage {
|
|
139
|
+
readonly type: "announce_ok";
|
|
140
|
+
readonly track_namespace: string[];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export interface Draft08AnnounceError extends Draft08BaseMessage {
|
|
144
|
+
readonly type: "announce_error";
|
|
145
|
+
readonly track_namespace: string[];
|
|
146
|
+
readonly error_code: bigint;
|
|
147
|
+
readonly reason_phrase: string;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export interface Draft08Unannounce extends Draft08BaseMessage {
|
|
151
|
+
readonly type: "unannounce";
|
|
152
|
+
readonly track_namespace: string[];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface Draft08AnnounceCancel extends Draft08BaseMessage {
|
|
156
|
+
readonly type: "announce_cancel";
|
|
157
|
+
readonly track_namespace: string[];
|
|
158
|
+
readonly error_code: bigint;
|
|
159
|
+
readonly reason_phrase: string;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Subscribe Announces
|
|
163
|
+
export interface Draft08SubscribeAnnounces extends Draft08BaseMessage {
|
|
164
|
+
readonly type: "subscribe_announces";
|
|
165
|
+
readonly track_namespace_prefix: string[];
|
|
166
|
+
readonly parameters: Draft08Params;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface Draft08SubscribeAnnouncesOk extends Draft08BaseMessage {
|
|
170
|
+
readonly type: "subscribe_announces_ok";
|
|
171
|
+
readonly track_namespace_prefix: string[];
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface Draft08SubscribeAnnouncesError extends Draft08BaseMessage {
|
|
175
|
+
readonly type: "subscribe_announces_error";
|
|
176
|
+
readonly track_namespace_prefix: string[];
|
|
177
|
+
readonly error_code: bigint;
|
|
178
|
+
readonly reason_phrase: string;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export interface Draft08UnsubscribeAnnounces extends Draft08BaseMessage {
|
|
182
|
+
readonly type: "unsubscribe_announces";
|
|
183
|
+
readonly track_namespace_prefix: string[];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Fetch
|
|
187
|
+
export interface StandaloneFetch {
|
|
188
|
+
readonly track_namespace: string[];
|
|
189
|
+
readonly track_name: string;
|
|
190
|
+
readonly start_group: bigint;
|
|
191
|
+
readonly start_object: bigint;
|
|
192
|
+
readonly end_group: bigint;
|
|
193
|
+
readonly end_object: bigint;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface JoiningFetch {
|
|
197
|
+
readonly joining_subscribe_id: bigint;
|
|
198
|
+
readonly preceding_group_offset: bigint;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export interface Draft08Fetch extends Draft08BaseMessage {
|
|
202
|
+
readonly type: "fetch";
|
|
203
|
+
readonly subscribe_id: bigint;
|
|
204
|
+
readonly subscriber_priority: number; // uint8
|
|
205
|
+
readonly group_order: number; // uint8
|
|
206
|
+
readonly fetch_type: bigint;
|
|
207
|
+
readonly standalone?: StandaloneFetch;
|
|
208
|
+
readonly joining?: JoiningFetch;
|
|
209
|
+
readonly parameters: Draft08Params;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface Draft08FetchOk extends Draft08BaseMessage {
|
|
213
|
+
readonly type: "fetch_ok";
|
|
214
|
+
readonly subscribe_id: bigint;
|
|
215
|
+
readonly group_order: number; // uint8
|
|
216
|
+
readonly end_of_track: number; // uint8
|
|
217
|
+
readonly largest_group_id: bigint;
|
|
218
|
+
readonly largest_object_id: bigint;
|
|
219
|
+
readonly parameters: Draft08Params;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export interface Draft08FetchError extends Draft08BaseMessage {
|
|
223
|
+
readonly type: "fetch_error";
|
|
224
|
+
readonly subscribe_id: bigint;
|
|
225
|
+
readonly error_code: bigint;
|
|
226
|
+
readonly reason_phrase: string;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export interface Draft08FetchCancel extends Draft08BaseMessage {
|
|
230
|
+
readonly type: "fetch_cancel";
|
|
231
|
+
readonly subscribe_id: bigint;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Track Status
|
|
235
|
+
export interface Draft08TrackStatusRequest extends Draft08BaseMessage {
|
|
236
|
+
readonly type: "track_status_request";
|
|
237
|
+
readonly track_namespace: string[];
|
|
238
|
+
readonly track_name: string;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export interface Draft08TrackStatus extends Draft08BaseMessage {
|
|
242
|
+
readonly type: "track_status";
|
|
243
|
+
readonly track_namespace: string[];
|
|
244
|
+
readonly track_name: string;
|
|
245
|
+
readonly status_code: bigint;
|
|
246
|
+
readonly last_group_id: bigint;
|
|
247
|
+
readonly last_object_id: bigint;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Session Control
|
|
251
|
+
export interface Draft08GoAway extends Draft08BaseMessage {
|
|
252
|
+
readonly type: "goaway";
|
|
253
|
+
readonly new_session_uri: string;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export interface Draft08MaxSubscribeId extends Draft08BaseMessage {
|
|
257
|
+
readonly type: "max_subscribe_id";
|
|
258
|
+
readonly subscribe_id: bigint;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export interface Draft08SubscribesBlocked extends Draft08BaseMessage {
|
|
262
|
+
readonly type: "subscribes_blocked";
|
|
263
|
+
readonly maximum_subscribe_id: bigint;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Union of all draft-08 control messages
|
|
267
|
+
export type Draft08Message =
|
|
268
|
+
| Draft08ClientSetup
|
|
269
|
+
| Draft08ServerSetup
|
|
270
|
+
| Draft08Subscribe
|
|
271
|
+
| Draft08SubscribeOk
|
|
272
|
+
| Draft08SubscribeError
|
|
273
|
+
| Draft08SubscribeUpdate
|
|
274
|
+
| Draft08SubscribeDone
|
|
275
|
+
| Draft08Unsubscribe
|
|
276
|
+
| Draft08Announce
|
|
277
|
+
| Draft08AnnounceOk
|
|
278
|
+
| Draft08AnnounceError
|
|
279
|
+
| Draft08Unannounce
|
|
280
|
+
| Draft08AnnounceCancel
|
|
281
|
+
| Draft08SubscribeAnnounces
|
|
282
|
+
| Draft08SubscribeAnnouncesOk
|
|
283
|
+
| Draft08SubscribeAnnouncesError
|
|
284
|
+
| Draft08UnsubscribeAnnounces
|
|
285
|
+
| Draft08Fetch
|
|
286
|
+
| Draft08FetchOk
|
|
287
|
+
| Draft08FetchError
|
|
288
|
+
| Draft08FetchCancel
|
|
289
|
+
| Draft08TrackStatusRequest
|
|
290
|
+
| Draft08TrackStatus
|
|
291
|
+
| Draft08GoAway
|
|
292
|
+
| Draft08MaxSubscribeId
|
|
293
|
+
| Draft08SubscribesBlocked;
|
|
294
|
+
|
|
295
|
+
// Data stream types
|
|
296
|
+
export interface ObjectPayload {
|
|
297
|
+
readonly type: "object";
|
|
298
|
+
readonly objectId: bigint;
|
|
299
|
+
readonly extensionCount: bigint;
|
|
300
|
+
readonly payloadLength: number;
|
|
301
|
+
readonly status?: bigint;
|
|
302
|
+
readonly payload: Uint8Array;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export interface SubgroupStream {
|
|
306
|
+
readonly type: "subgroup";
|
|
307
|
+
readonly streamTypeId: 0x04;
|
|
308
|
+
readonly trackAlias: bigint;
|
|
309
|
+
readonly groupId: bigint;
|
|
310
|
+
readonly subgroupId: bigint;
|
|
311
|
+
readonly publisherPriority: number;
|
|
312
|
+
readonly objects: ObjectPayload[];
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export interface DatagramObject {
|
|
316
|
+
readonly type: "datagram";
|
|
317
|
+
readonly streamTypeId: 0x01;
|
|
318
|
+
readonly trackAlias: bigint;
|
|
319
|
+
readonly groupId: bigint;
|
|
320
|
+
readonly objectId: bigint;
|
|
321
|
+
readonly publisherPriority: number;
|
|
322
|
+
readonly extensionCount: bigint;
|
|
323
|
+
readonly objectStatus: bigint;
|
|
324
|
+
readonly payloadLength: number;
|
|
325
|
+
readonly payload: Uint8Array;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export interface DatagramStatusObject {
|
|
329
|
+
readonly type: "datagram_status";
|
|
330
|
+
readonly streamTypeId: 0x02;
|
|
331
|
+
readonly trackAlias: bigint;
|
|
332
|
+
readonly groupId: bigint;
|
|
333
|
+
readonly objectId: bigint;
|
|
334
|
+
readonly publisherPriority: number;
|
|
335
|
+
readonly objectStatus: bigint;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
export interface FetchObjectPayload {
|
|
339
|
+
readonly type: "object";
|
|
340
|
+
readonly groupId: bigint;
|
|
341
|
+
readonly subgroupId: bigint;
|
|
342
|
+
readonly objectId: bigint;
|
|
343
|
+
readonly publisherPriority: number;
|
|
344
|
+
readonly extensionCount: bigint;
|
|
345
|
+
readonly payloadLength: number;
|
|
346
|
+
readonly status?: bigint;
|
|
347
|
+
readonly payload: Uint8Array;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export interface FetchStream {
|
|
351
|
+
readonly type: "fetch";
|
|
352
|
+
readonly subscribeId: bigint;
|
|
353
|
+
readonly objects: FetchObjectPayload[];
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export type Draft08DataStream =
|
|
357
|
+
| SubgroupStream
|
|
358
|
+
| DatagramObject
|
|
359
|
+
| DatagramStatusObject
|
|
360
|
+
| FetchStream;
|
|
361
|
+
|
|
362
|
+
// Streaming data stream decoder types
|
|
363
|
+
export interface SubgroupStreamHeader {
|
|
364
|
+
readonly type: "subgroup_header";
|
|
365
|
+
readonly trackAlias: bigint;
|
|
366
|
+
readonly groupId: bigint;
|
|
367
|
+
readonly subgroupId: bigint;
|
|
368
|
+
readonly publisherPriority: number;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
export interface FetchStreamHeader {
|
|
372
|
+
readonly type: "fetch_header";
|
|
373
|
+
readonly subscribeId: bigint;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export type DataStreamHeader = SubgroupStreamHeader | FetchStreamHeader;
|
|
377
|
+
export type DataStreamEvent = DataStreamHeader | ObjectPayload;
|