@moqtap/codec 0.1.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.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -0
  3. package/dist/chunk-23YG7F46.js +764 -0
  4. package/dist/chunk-2NARXGVA.cjs +194 -0
  5. package/dist/chunk-3BSZ55L3.cjs +307 -0
  6. package/dist/chunk-5WFXFLL4.cjs +1185 -0
  7. package/dist/chunk-DC4L6ZIT.js +307 -0
  8. package/dist/chunk-GDRGWFEK.cjs +498 -0
  9. package/dist/chunk-IQPDRQVC.js +1185 -0
  10. package/dist/chunk-QYG6KGOV.cjs +101 -0
  11. package/dist/chunk-UOBWHJA5.js +101 -0
  12. package/dist/chunk-WNTXF3DE.cjs +764 -0
  13. package/dist/chunk-YBSEOSSP.js +194 -0
  14. package/dist/chunk-YPXLV5YK.js +498 -0
  15. package/dist/codec-CTvFtQQI.d.cts +86 -0
  16. package/dist/codec-qPzfmLNu.d.ts +86 -0
  17. package/dist/draft14-session.cjs +6 -0
  18. package/dist/draft14-session.d.cts +8 -0
  19. package/dist/draft14-session.d.ts +8 -0
  20. package/dist/draft14-session.js +6 -0
  21. package/dist/draft14.cjs +121 -0
  22. package/dist/draft14.d.cts +96 -0
  23. package/dist/draft14.d.ts +96 -0
  24. package/dist/draft14.js +121 -0
  25. package/dist/draft7-session.cjs +7 -0
  26. package/dist/draft7-session.d.cts +7 -0
  27. package/dist/draft7-session.d.ts +7 -0
  28. package/dist/draft7-session.js +7 -0
  29. package/dist/draft7.cjs +60 -0
  30. package/dist/draft7.d.cts +72 -0
  31. package/dist/draft7.d.ts +72 -0
  32. package/dist/draft7.js +60 -0
  33. package/dist/index.cjs +40 -0
  34. package/dist/index.d.cts +40 -0
  35. package/dist/index.d.ts +40 -0
  36. package/dist/index.js +40 -0
  37. package/dist/session-types-B9NIf7_F.d.ts +101 -0
  38. package/dist/session-types-CCo-oA-d.d.cts +101 -0
  39. package/dist/session.cjs +27 -0
  40. package/dist/session.d.cts +24 -0
  41. package/dist/session.d.ts +24 -0
  42. package/dist/session.js +27 -0
  43. package/dist/types-CIk5W10V.d.cts +249 -0
  44. package/dist/types-CIk5W10V.d.ts +249 -0
  45. package/dist/types-ClXELFGN.d.cts +241 -0
  46. package/dist/types-ClXELFGN.d.ts +241 -0
  47. package/package.json +84 -0
  48. package/src/core/buffer-reader.ts +107 -0
  49. package/src/core/buffer-writer.ts +91 -0
  50. package/src/core/errors.ts +1 -0
  51. package/src/core/session-types.ts +103 -0
  52. package/src/core/types.ts +363 -0
  53. package/src/drafts/draft07/announce-fsm.ts +2 -0
  54. package/src/drafts/draft07/codec.ts +874 -0
  55. package/src/drafts/draft07/index.ts +70 -0
  56. package/src/drafts/draft07/messages.ts +44 -0
  57. package/src/drafts/draft07/parameters.ts +12 -0
  58. package/src/drafts/draft07/rules.ts +75 -0
  59. package/src/drafts/draft07/session-fsm.ts +353 -0
  60. package/src/drafts/draft07/session.ts +21 -0
  61. package/src/drafts/draft07/subscription-fsm.ts +3 -0
  62. package/src/drafts/draft07/varint.ts +23 -0
  63. package/src/drafts/draft14/codec.ts +1330 -0
  64. package/src/drafts/draft14/index.ts +132 -0
  65. package/src/drafts/draft14/messages.ts +76 -0
  66. package/src/drafts/draft14/rules.ts +70 -0
  67. package/src/drafts/draft14/session-fsm.ts +480 -0
  68. package/src/drafts/draft14/session.ts +26 -0
  69. package/src/drafts/draft14/types.ts +365 -0
  70. package/src/index.ts +85 -0
  71. package/src/session.ts +58 -0
@@ -0,0 +1,24 @@
1
+ import { S as SessionStateOptions, a as SessionState } from './session-types-CCo-oA-d.cjs';
2
+ export { A as AnnouncePhase, b as AnnounceState, F as FetchPhase, c as FetchState, P as ProtocolViolation, d as ProtocolViolationCode, e as PublishPhase, f as PublishState, g as SessionPhase, h as SideEffect, i as SubscriptionPhase, j as SubscriptionState, T as TransitionResult, V as ValidationResult } from './session-types-CCo-oA-d.cjs';
3
+ import './types-ClXELFGN.cjs';
4
+
5
+ /**
6
+ * @moqtap/codec/session — MoQT session state machine
7
+ *
8
+ * Requires a codec instance (which carries the draft version).
9
+ * For direct access, use draft-scoped imports:
10
+ * import { createDraft07SessionState } from '@moqtap/codec/draft7/session';
11
+ * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
12
+ */
13
+
14
+ /**
15
+ * Create a session state machine for the given draft version.
16
+ *
17
+ * For type-safe access with draft-specific message types, use the
18
+ * draft-scoped factory functions directly:
19
+ * import { createDraft07SessionState } from '@moqtap/codec/draft7/session';
20
+ * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
21
+ */
22
+ declare function createSessionState(options: SessionStateOptions): SessionState<unknown, string>;
23
+
24
+ export { SessionState, SessionStateOptions, createSessionState };
@@ -0,0 +1,24 @@
1
+ import { S as SessionStateOptions, a as SessionState } from './session-types-B9NIf7_F.js';
2
+ export { A as AnnouncePhase, b as AnnounceState, F as FetchPhase, c as FetchState, P as ProtocolViolation, d as ProtocolViolationCode, e as PublishPhase, f as PublishState, g as SessionPhase, h as SideEffect, i as SubscriptionPhase, j as SubscriptionState, T as TransitionResult, V as ValidationResult } from './session-types-B9NIf7_F.js';
3
+ import './types-ClXELFGN.js';
4
+
5
+ /**
6
+ * @moqtap/codec/session — MoQT session state machine
7
+ *
8
+ * Requires a codec instance (which carries the draft version).
9
+ * For direct access, use draft-scoped imports:
10
+ * import { createDraft07SessionState } from '@moqtap/codec/draft7/session';
11
+ * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
12
+ */
13
+
14
+ /**
15
+ * Create a session state machine for the given draft version.
16
+ *
17
+ * For type-safe access with draft-specific message types, use the
18
+ * draft-scoped factory functions directly:
19
+ * import { createDraft07SessionState } from '@moqtap/codec/draft7/session';
20
+ * import { createDraft14SessionState } from '@moqtap/codec/draft14/session';
21
+ */
22
+ declare function createSessionState(options: SessionStateOptions): SessionState<unknown, string>;
23
+
24
+ export { SessionState, SessionStateOptions, createSessionState };
@@ -0,0 +1,27 @@
1
+ import {
2
+ createDraft07SessionState
3
+ } from "./chunk-DC4L6ZIT.js";
4
+ import "./chunk-UOBWHJA5.js";
5
+ import {
6
+ createDraft14SessionState
7
+ } from "./chunk-YPXLV5YK.js";
8
+
9
+ // src/session.ts
10
+ function createSessionState(options) {
11
+ const draft = options.codec.draft;
12
+ switch (draft) {
13
+ case "draft-ietf-moq-transport-07":
14
+ return createDraft07SessionState(options);
15
+ case "draft-ietf-moq-transport-14":
16
+ return createDraft14SessionState(options);
17
+ default:
18
+ throw new Error(
19
+ `Unsupported draft for session: "${draft}". Use a draft-scoped import instead:
20
+ import { createDraft07SessionState } from '@moqtap/codec/draft7/session'
21
+ import { createDraft14SessionState } from '@moqtap/codec/draft14/session'`
22
+ );
23
+ }
24
+ }
25
+ export {
26
+ createSessionState
27
+ };
@@ -0,0 +1,249 @@
1
+ interface UnknownParam {
2
+ readonly id: string;
3
+ readonly length: number;
4
+ readonly raw_hex: string;
5
+ }
6
+ interface Draft14Params {
7
+ role?: bigint;
8
+ path?: string;
9
+ max_request_id?: bigint;
10
+ unknown?: UnknownParam[];
11
+ }
12
+ type Draft14MessageType = 'client_setup' | 'server_setup' | 'subscribe' | 'subscribe_ok' | 'subscribe_update' | 'subscribe_error' | 'unsubscribe' | 'publish' | 'publish_ok' | 'publish_error' | 'publish_done' | 'publish_namespace' | 'publish_namespace_ok' | 'publish_namespace_error' | 'publish_namespace_done' | 'publish_namespace_cancel' | 'subscribe_namespace' | 'subscribe_namespace_ok' | 'subscribe_namespace_error' | 'unsubscribe_namespace' | 'fetch' | 'fetch_ok' | 'fetch_error' | 'fetch_cancel' | 'track_status' | 'track_status_ok' | 'track_status_error' | 'goaway' | 'max_request_id' | 'requests_blocked';
13
+ interface Draft14BaseMessage {
14
+ readonly type: Draft14MessageType;
15
+ }
16
+ interface Draft14ClientSetup extends Draft14BaseMessage {
17
+ readonly type: 'client_setup';
18
+ readonly supported_versions: bigint[];
19
+ readonly parameters: Draft14Params;
20
+ }
21
+ interface Draft14ServerSetup extends Draft14BaseMessage {
22
+ readonly type: 'server_setup';
23
+ readonly selected_version: bigint;
24
+ readonly parameters: Draft14Params;
25
+ }
26
+ interface Draft14Subscribe extends Draft14BaseMessage {
27
+ readonly type: 'subscribe';
28
+ readonly request_id: bigint;
29
+ readonly track_namespace: string[];
30
+ readonly track_name: string;
31
+ readonly subscriber_priority: bigint;
32
+ readonly group_order: bigint;
33
+ readonly forward: bigint;
34
+ readonly filter_type: bigint;
35
+ readonly start_group?: bigint;
36
+ readonly start_object?: bigint;
37
+ readonly end_group?: bigint;
38
+ readonly parameters: Draft14Params;
39
+ }
40
+ interface Draft14SubscribeOk extends Draft14BaseMessage {
41
+ readonly type: 'subscribe_ok';
42
+ readonly request_id: bigint;
43
+ readonly track_alias: bigint;
44
+ readonly expires: bigint;
45
+ readonly group_order: bigint;
46
+ readonly content_exists: bigint;
47
+ readonly largest_group?: bigint;
48
+ readonly largest_object?: bigint;
49
+ readonly parameters: Draft14Params;
50
+ }
51
+ interface Draft14SubscribeUpdate extends Draft14BaseMessage {
52
+ readonly type: 'subscribe_update';
53
+ readonly request_id: bigint;
54
+ readonly start_group: bigint;
55
+ readonly start_object: bigint;
56
+ readonly end_group: bigint;
57
+ readonly subscriber_priority: bigint;
58
+ readonly forward: bigint;
59
+ readonly parameters: Draft14Params;
60
+ }
61
+ interface Draft14SubscribeError extends Draft14BaseMessage {
62
+ readonly type: 'subscribe_error';
63
+ readonly request_id: bigint;
64
+ readonly error_code: bigint;
65
+ readonly reason_phrase: string;
66
+ }
67
+ interface Draft14Unsubscribe extends Draft14BaseMessage {
68
+ readonly type: 'unsubscribe';
69
+ readonly request_id: bigint;
70
+ }
71
+ interface Draft14Publish extends Draft14BaseMessage {
72
+ readonly type: 'publish';
73
+ readonly request_id: bigint;
74
+ readonly track_namespace: string[];
75
+ readonly track_name: string;
76
+ readonly forward: bigint;
77
+ readonly parameters: Draft14Params;
78
+ }
79
+ interface Draft14PublishOk extends Draft14BaseMessage {
80
+ readonly type: 'publish_ok';
81
+ readonly request_id: bigint;
82
+ readonly track_alias: bigint;
83
+ readonly forward: bigint;
84
+ readonly parameters: Draft14Params;
85
+ }
86
+ interface Draft14PublishError extends Draft14BaseMessage {
87
+ readonly type: 'publish_error';
88
+ readonly request_id: bigint;
89
+ readonly error_code: bigint;
90
+ readonly reason_phrase: string;
91
+ }
92
+ interface Draft14PublishDone extends Draft14BaseMessage {
93
+ readonly type: 'publish_done';
94
+ readonly request_id: bigint;
95
+ readonly status_code: bigint;
96
+ readonly reason_phrase: string;
97
+ }
98
+ interface Draft14PublishNamespace extends Draft14BaseMessage {
99
+ readonly type: 'publish_namespace';
100
+ readonly request_id: bigint;
101
+ readonly track_namespace: string[];
102
+ readonly parameters: Draft14Params;
103
+ }
104
+ interface Draft14PublishNamespaceOk extends Draft14BaseMessage {
105
+ readonly type: 'publish_namespace_ok';
106
+ readonly request_id: bigint;
107
+ readonly parameters: Draft14Params;
108
+ }
109
+ interface Draft14PublishNamespaceError extends Draft14BaseMessage {
110
+ readonly type: 'publish_namespace_error';
111
+ readonly request_id: bigint;
112
+ readonly error_code: bigint;
113
+ readonly reason_phrase: string;
114
+ }
115
+ interface Draft14PublishNamespaceDone extends Draft14BaseMessage {
116
+ readonly type: 'publish_namespace_done';
117
+ readonly request_id: bigint;
118
+ readonly status_code: bigint;
119
+ readonly reason_phrase: string;
120
+ }
121
+ interface Draft14PublishNamespaceCancel extends Draft14BaseMessage {
122
+ readonly type: 'publish_namespace_cancel';
123
+ readonly request_id: bigint;
124
+ }
125
+ interface Draft14SubscribeNamespace extends Draft14BaseMessage {
126
+ readonly type: 'subscribe_namespace';
127
+ readonly request_id: bigint;
128
+ readonly namespace_prefix: string[];
129
+ readonly parameters: Draft14Params;
130
+ }
131
+ interface Draft14SubscribeNamespaceOk extends Draft14BaseMessage {
132
+ readonly type: 'subscribe_namespace_ok';
133
+ readonly request_id: bigint;
134
+ readonly parameters: Draft14Params;
135
+ }
136
+ interface Draft14SubscribeNamespaceError extends Draft14BaseMessage {
137
+ readonly type: 'subscribe_namespace_error';
138
+ readonly request_id: bigint;
139
+ readonly error_code: bigint;
140
+ readonly reason_phrase: string;
141
+ }
142
+ interface Draft14UnsubscribeNamespace extends Draft14BaseMessage {
143
+ readonly type: 'unsubscribe_namespace';
144
+ readonly request_id: bigint;
145
+ }
146
+ interface Draft14Fetch extends Draft14BaseMessage {
147
+ readonly type: 'fetch';
148
+ readonly request_id: bigint;
149
+ readonly track_namespace: string[];
150
+ readonly track_name: string;
151
+ readonly start_group: bigint;
152
+ readonly start_object: bigint;
153
+ readonly end_group: bigint;
154
+ readonly parameters: Draft14Params;
155
+ }
156
+ interface Draft14FetchOk extends Draft14BaseMessage {
157
+ readonly type: 'fetch_ok';
158
+ readonly request_id: bigint;
159
+ readonly track_alias: bigint;
160
+ readonly end_of_track: bigint;
161
+ readonly parameters: Draft14Params;
162
+ }
163
+ interface Draft14FetchError extends Draft14BaseMessage {
164
+ readonly type: 'fetch_error';
165
+ readonly request_id: bigint;
166
+ readonly error_code: bigint;
167
+ readonly reason_phrase: string;
168
+ }
169
+ interface Draft14FetchCancel extends Draft14BaseMessage {
170
+ readonly type: 'fetch_cancel';
171
+ readonly request_id: bigint;
172
+ }
173
+ interface Draft14TrackStatus extends Draft14BaseMessage {
174
+ readonly type: 'track_status';
175
+ readonly request_id: bigint;
176
+ readonly track_namespace: string[];
177
+ readonly track_name: string;
178
+ readonly parameters: Draft14Params;
179
+ }
180
+ interface Draft14TrackStatusOk extends Draft14BaseMessage {
181
+ readonly type: 'track_status_ok';
182
+ readonly request_id: bigint;
183
+ readonly status_code: bigint;
184
+ readonly largest_group?: bigint;
185
+ readonly largest_object?: bigint;
186
+ readonly parameters: Draft14Params;
187
+ }
188
+ interface Draft14TrackStatusError extends Draft14BaseMessage {
189
+ readonly type: 'track_status_error';
190
+ readonly request_id: bigint;
191
+ readonly error_code: bigint;
192
+ readonly reason_phrase: string;
193
+ }
194
+ interface Draft14GoAway extends Draft14BaseMessage {
195
+ readonly type: 'goaway';
196
+ readonly new_session_uri: string;
197
+ }
198
+ interface Draft14MaxRequestId extends Draft14BaseMessage {
199
+ readonly type: 'max_request_id';
200
+ readonly request_id: bigint;
201
+ }
202
+ interface Draft14RequestsBlocked extends Draft14BaseMessage {
203
+ readonly type: 'requests_blocked';
204
+ readonly request_id: bigint;
205
+ }
206
+ type Draft14Message = Draft14ClientSetup | Draft14ServerSetup | Draft14Subscribe | Draft14SubscribeOk | Draft14SubscribeUpdate | Draft14SubscribeError | Draft14Unsubscribe | Draft14Publish | Draft14PublishOk | Draft14PublishError | Draft14PublishDone | Draft14PublishNamespace | Draft14PublishNamespaceOk | Draft14PublishNamespaceError | Draft14PublishNamespaceDone | Draft14PublishNamespaceCancel | Draft14SubscribeNamespace | Draft14SubscribeNamespaceOk | Draft14SubscribeNamespaceError | Draft14UnsubscribeNamespace | Draft14Fetch | Draft14FetchOk | Draft14FetchError | Draft14FetchCancel | Draft14TrackStatus | Draft14TrackStatusOk | Draft14TrackStatusError | Draft14GoAway | Draft14MaxRequestId | Draft14RequestsBlocked;
207
+ interface ObjectPayload {
208
+ readonly type: 'object';
209
+ readonly objectId: bigint;
210
+ readonly payloadLength: number;
211
+ readonly payload: Uint8Array;
212
+ }
213
+ interface SubgroupStream {
214
+ readonly type: 'subgroup';
215
+ readonly trackAlias: bigint;
216
+ readonly groupId: bigint;
217
+ readonly subgroupId: bigint;
218
+ readonly publisherPriority: number;
219
+ readonly objects: ObjectPayload[];
220
+ }
221
+ interface DatagramObject {
222
+ readonly type: 'datagram';
223
+ readonly trackAlias: bigint;
224
+ readonly groupId: bigint;
225
+ readonly objectId: bigint;
226
+ readonly payloadLength: number;
227
+ readonly payload: Uint8Array;
228
+ }
229
+ interface FetchStream {
230
+ readonly type: 'fetch';
231
+ readonly subscribeRequestId: bigint;
232
+ readonly objects: ObjectPayload[];
233
+ }
234
+ type Draft14DataStream = SubgroupStream | DatagramObject | FetchStream;
235
+ interface SubgroupStreamHeader {
236
+ readonly type: 'subgroup_header';
237
+ readonly trackAlias: bigint;
238
+ readonly groupId: bigint;
239
+ readonly subgroupId: bigint;
240
+ readonly publisherPriority: number;
241
+ }
242
+ interface FetchStreamHeader {
243
+ readonly type: 'fetch_header';
244
+ readonly subscribeRequestId: bigint;
245
+ }
246
+ type DataStreamHeader = SubgroupStreamHeader | FetchStreamHeader;
247
+ type DataStreamEvent = DataStreamHeader | ObjectPayload;
248
+
249
+ export type { Draft14SubscribeError as A, Draft14SubscribeNamespace as B, Draft14SubscribeNamespaceError as C, Draft14DataStream as D, Draft14SubscribeNamespaceOk as E, Draft14SubscribeOk as F, Draft14SubscribeUpdate as G, Draft14TrackStatus as H, Draft14TrackStatusError as I, Draft14TrackStatusOk as J, Draft14Unsubscribe as K, Draft14UnsubscribeNamespace as L, FetchStream as M, FetchStreamHeader as N, ObjectPayload as O, SubgroupStreamHeader as P, SubgroupStream as S, UnknownParam as U, Draft14Message as a, Draft14Params as b, Draft14MessageType as c, DataStreamEvent as d, DataStreamHeader as e, DatagramObject as f, Draft14BaseMessage as g, Draft14ClientSetup as h, Draft14Fetch as i, Draft14FetchCancel as j, Draft14FetchError as k, Draft14FetchOk as l, Draft14GoAway as m, Draft14MaxRequestId as n, Draft14Publish as o, Draft14PublishDone as p, Draft14PublishError as q, Draft14PublishNamespace as r, Draft14PublishNamespaceCancel as s, Draft14PublishNamespaceDone as t, Draft14PublishNamespaceError as u, Draft14PublishNamespaceOk as v, Draft14PublishOk as w, Draft14RequestsBlocked as x, Draft14ServerSetup as y, Draft14Subscribe as z };
@@ -0,0 +1,249 @@
1
+ interface UnknownParam {
2
+ readonly id: string;
3
+ readonly length: number;
4
+ readonly raw_hex: string;
5
+ }
6
+ interface Draft14Params {
7
+ role?: bigint;
8
+ path?: string;
9
+ max_request_id?: bigint;
10
+ unknown?: UnknownParam[];
11
+ }
12
+ type Draft14MessageType = 'client_setup' | 'server_setup' | 'subscribe' | 'subscribe_ok' | 'subscribe_update' | 'subscribe_error' | 'unsubscribe' | 'publish' | 'publish_ok' | 'publish_error' | 'publish_done' | 'publish_namespace' | 'publish_namespace_ok' | 'publish_namespace_error' | 'publish_namespace_done' | 'publish_namespace_cancel' | 'subscribe_namespace' | 'subscribe_namespace_ok' | 'subscribe_namespace_error' | 'unsubscribe_namespace' | 'fetch' | 'fetch_ok' | 'fetch_error' | 'fetch_cancel' | 'track_status' | 'track_status_ok' | 'track_status_error' | 'goaway' | 'max_request_id' | 'requests_blocked';
13
+ interface Draft14BaseMessage {
14
+ readonly type: Draft14MessageType;
15
+ }
16
+ interface Draft14ClientSetup extends Draft14BaseMessage {
17
+ readonly type: 'client_setup';
18
+ readonly supported_versions: bigint[];
19
+ readonly parameters: Draft14Params;
20
+ }
21
+ interface Draft14ServerSetup extends Draft14BaseMessage {
22
+ readonly type: 'server_setup';
23
+ readonly selected_version: bigint;
24
+ readonly parameters: Draft14Params;
25
+ }
26
+ interface Draft14Subscribe extends Draft14BaseMessage {
27
+ readonly type: 'subscribe';
28
+ readonly request_id: bigint;
29
+ readonly track_namespace: string[];
30
+ readonly track_name: string;
31
+ readonly subscriber_priority: bigint;
32
+ readonly group_order: bigint;
33
+ readonly forward: bigint;
34
+ readonly filter_type: bigint;
35
+ readonly start_group?: bigint;
36
+ readonly start_object?: bigint;
37
+ readonly end_group?: bigint;
38
+ readonly parameters: Draft14Params;
39
+ }
40
+ interface Draft14SubscribeOk extends Draft14BaseMessage {
41
+ readonly type: 'subscribe_ok';
42
+ readonly request_id: bigint;
43
+ readonly track_alias: bigint;
44
+ readonly expires: bigint;
45
+ readonly group_order: bigint;
46
+ readonly content_exists: bigint;
47
+ readonly largest_group?: bigint;
48
+ readonly largest_object?: bigint;
49
+ readonly parameters: Draft14Params;
50
+ }
51
+ interface Draft14SubscribeUpdate extends Draft14BaseMessage {
52
+ readonly type: 'subscribe_update';
53
+ readonly request_id: bigint;
54
+ readonly start_group: bigint;
55
+ readonly start_object: bigint;
56
+ readonly end_group: bigint;
57
+ readonly subscriber_priority: bigint;
58
+ readonly forward: bigint;
59
+ readonly parameters: Draft14Params;
60
+ }
61
+ interface Draft14SubscribeError extends Draft14BaseMessage {
62
+ readonly type: 'subscribe_error';
63
+ readonly request_id: bigint;
64
+ readonly error_code: bigint;
65
+ readonly reason_phrase: string;
66
+ }
67
+ interface Draft14Unsubscribe extends Draft14BaseMessage {
68
+ readonly type: 'unsubscribe';
69
+ readonly request_id: bigint;
70
+ }
71
+ interface Draft14Publish extends Draft14BaseMessage {
72
+ readonly type: 'publish';
73
+ readonly request_id: bigint;
74
+ readonly track_namespace: string[];
75
+ readonly track_name: string;
76
+ readonly forward: bigint;
77
+ readonly parameters: Draft14Params;
78
+ }
79
+ interface Draft14PublishOk extends Draft14BaseMessage {
80
+ readonly type: 'publish_ok';
81
+ readonly request_id: bigint;
82
+ readonly track_alias: bigint;
83
+ readonly forward: bigint;
84
+ readonly parameters: Draft14Params;
85
+ }
86
+ interface Draft14PublishError extends Draft14BaseMessage {
87
+ readonly type: 'publish_error';
88
+ readonly request_id: bigint;
89
+ readonly error_code: bigint;
90
+ readonly reason_phrase: string;
91
+ }
92
+ interface Draft14PublishDone extends Draft14BaseMessage {
93
+ readonly type: 'publish_done';
94
+ readonly request_id: bigint;
95
+ readonly status_code: bigint;
96
+ readonly reason_phrase: string;
97
+ }
98
+ interface Draft14PublishNamespace extends Draft14BaseMessage {
99
+ readonly type: 'publish_namespace';
100
+ readonly request_id: bigint;
101
+ readonly track_namespace: string[];
102
+ readonly parameters: Draft14Params;
103
+ }
104
+ interface Draft14PublishNamespaceOk extends Draft14BaseMessage {
105
+ readonly type: 'publish_namespace_ok';
106
+ readonly request_id: bigint;
107
+ readonly parameters: Draft14Params;
108
+ }
109
+ interface Draft14PublishNamespaceError extends Draft14BaseMessage {
110
+ readonly type: 'publish_namespace_error';
111
+ readonly request_id: bigint;
112
+ readonly error_code: bigint;
113
+ readonly reason_phrase: string;
114
+ }
115
+ interface Draft14PublishNamespaceDone extends Draft14BaseMessage {
116
+ readonly type: 'publish_namespace_done';
117
+ readonly request_id: bigint;
118
+ readonly status_code: bigint;
119
+ readonly reason_phrase: string;
120
+ }
121
+ interface Draft14PublishNamespaceCancel extends Draft14BaseMessage {
122
+ readonly type: 'publish_namespace_cancel';
123
+ readonly request_id: bigint;
124
+ }
125
+ interface Draft14SubscribeNamespace extends Draft14BaseMessage {
126
+ readonly type: 'subscribe_namespace';
127
+ readonly request_id: bigint;
128
+ readonly namespace_prefix: string[];
129
+ readonly parameters: Draft14Params;
130
+ }
131
+ interface Draft14SubscribeNamespaceOk extends Draft14BaseMessage {
132
+ readonly type: 'subscribe_namespace_ok';
133
+ readonly request_id: bigint;
134
+ readonly parameters: Draft14Params;
135
+ }
136
+ interface Draft14SubscribeNamespaceError extends Draft14BaseMessage {
137
+ readonly type: 'subscribe_namespace_error';
138
+ readonly request_id: bigint;
139
+ readonly error_code: bigint;
140
+ readonly reason_phrase: string;
141
+ }
142
+ interface Draft14UnsubscribeNamespace extends Draft14BaseMessage {
143
+ readonly type: 'unsubscribe_namespace';
144
+ readonly request_id: bigint;
145
+ }
146
+ interface Draft14Fetch extends Draft14BaseMessage {
147
+ readonly type: 'fetch';
148
+ readonly request_id: bigint;
149
+ readonly track_namespace: string[];
150
+ readonly track_name: string;
151
+ readonly start_group: bigint;
152
+ readonly start_object: bigint;
153
+ readonly end_group: bigint;
154
+ readonly parameters: Draft14Params;
155
+ }
156
+ interface Draft14FetchOk extends Draft14BaseMessage {
157
+ readonly type: 'fetch_ok';
158
+ readonly request_id: bigint;
159
+ readonly track_alias: bigint;
160
+ readonly end_of_track: bigint;
161
+ readonly parameters: Draft14Params;
162
+ }
163
+ interface Draft14FetchError extends Draft14BaseMessage {
164
+ readonly type: 'fetch_error';
165
+ readonly request_id: bigint;
166
+ readonly error_code: bigint;
167
+ readonly reason_phrase: string;
168
+ }
169
+ interface Draft14FetchCancel extends Draft14BaseMessage {
170
+ readonly type: 'fetch_cancel';
171
+ readonly request_id: bigint;
172
+ }
173
+ interface Draft14TrackStatus extends Draft14BaseMessage {
174
+ readonly type: 'track_status';
175
+ readonly request_id: bigint;
176
+ readonly track_namespace: string[];
177
+ readonly track_name: string;
178
+ readonly parameters: Draft14Params;
179
+ }
180
+ interface Draft14TrackStatusOk extends Draft14BaseMessage {
181
+ readonly type: 'track_status_ok';
182
+ readonly request_id: bigint;
183
+ readonly status_code: bigint;
184
+ readonly largest_group?: bigint;
185
+ readonly largest_object?: bigint;
186
+ readonly parameters: Draft14Params;
187
+ }
188
+ interface Draft14TrackStatusError extends Draft14BaseMessage {
189
+ readonly type: 'track_status_error';
190
+ readonly request_id: bigint;
191
+ readonly error_code: bigint;
192
+ readonly reason_phrase: string;
193
+ }
194
+ interface Draft14GoAway extends Draft14BaseMessage {
195
+ readonly type: 'goaway';
196
+ readonly new_session_uri: string;
197
+ }
198
+ interface Draft14MaxRequestId extends Draft14BaseMessage {
199
+ readonly type: 'max_request_id';
200
+ readonly request_id: bigint;
201
+ }
202
+ interface Draft14RequestsBlocked extends Draft14BaseMessage {
203
+ readonly type: 'requests_blocked';
204
+ readonly request_id: bigint;
205
+ }
206
+ type Draft14Message = Draft14ClientSetup | Draft14ServerSetup | Draft14Subscribe | Draft14SubscribeOk | Draft14SubscribeUpdate | Draft14SubscribeError | Draft14Unsubscribe | Draft14Publish | Draft14PublishOk | Draft14PublishError | Draft14PublishDone | Draft14PublishNamespace | Draft14PublishNamespaceOk | Draft14PublishNamespaceError | Draft14PublishNamespaceDone | Draft14PublishNamespaceCancel | Draft14SubscribeNamespace | Draft14SubscribeNamespaceOk | Draft14SubscribeNamespaceError | Draft14UnsubscribeNamespace | Draft14Fetch | Draft14FetchOk | Draft14FetchError | Draft14FetchCancel | Draft14TrackStatus | Draft14TrackStatusOk | Draft14TrackStatusError | Draft14GoAway | Draft14MaxRequestId | Draft14RequestsBlocked;
207
+ interface ObjectPayload {
208
+ readonly type: 'object';
209
+ readonly objectId: bigint;
210
+ readonly payloadLength: number;
211
+ readonly payload: Uint8Array;
212
+ }
213
+ interface SubgroupStream {
214
+ readonly type: 'subgroup';
215
+ readonly trackAlias: bigint;
216
+ readonly groupId: bigint;
217
+ readonly subgroupId: bigint;
218
+ readonly publisherPriority: number;
219
+ readonly objects: ObjectPayload[];
220
+ }
221
+ interface DatagramObject {
222
+ readonly type: 'datagram';
223
+ readonly trackAlias: bigint;
224
+ readonly groupId: bigint;
225
+ readonly objectId: bigint;
226
+ readonly payloadLength: number;
227
+ readonly payload: Uint8Array;
228
+ }
229
+ interface FetchStream {
230
+ readonly type: 'fetch';
231
+ readonly subscribeRequestId: bigint;
232
+ readonly objects: ObjectPayload[];
233
+ }
234
+ type Draft14DataStream = SubgroupStream | DatagramObject | FetchStream;
235
+ interface SubgroupStreamHeader {
236
+ readonly type: 'subgroup_header';
237
+ readonly trackAlias: bigint;
238
+ readonly groupId: bigint;
239
+ readonly subgroupId: bigint;
240
+ readonly publisherPriority: number;
241
+ }
242
+ interface FetchStreamHeader {
243
+ readonly type: 'fetch_header';
244
+ readonly subscribeRequestId: bigint;
245
+ }
246
+ type DataStreamHeader = SubgroupStreamHeader | FetchStreamHeader;
247
+ type DataStreamEvent = DataStreamHeader | ObjectPayload;
248
+
249
+ export type { Draft14SubscribeError as A, Draft14SubscribeNamespace as B, Draft14SubscribeNamespaceError as C, Draft14DataStream as D, Draft14SubscribeNamespaceOk as E, Draft14SubscribeOk as F, Draft14SubscribeUpdate as G, Draft14TrackStatus as H, Draft14TrackStatusError as I, Draft14TrackStatusOk as J, Draft14Unsubscribe as K, Draft14UnsubscribeNamespace as L, FetchStream as M, FetchStreamHeader as N, ObjectPayload as O, SubgroupStreamHeader as P, SubgroupStream as S, UnknownParam as U, Draft14Message as a, Draft14Params as b, Draft14MessageType as c, DataStreamEvent as d, DataStreamHeader as e, DatagramObject as f, Draft14BaseMessage as g, Draft14ClientSetup as h, Draft14Fetch as i, Draft14FetchCancel as j, Draft14FetchError as k, Draft14FetchOk as l, Draft14GoAway as m, Draft14MaxRequestId as n, Draft14Publish as o, Draft14PublishDone as p, Draft14PublishError as q, Draft14PublishNamespace as r, Draft14PublishNamespaceCancel as s, Draft14PublishNamespaceDone as t, Draft14PublishNamespaceError as u, Draft14PublishNamespaceOk as v, Draft14PublishOk as w, Draft14RequestsBlocked as x, Draft14ServerSetup as y, Draft14Subscribe as z };