@norskvideo/moq-net 0.1.2 → 0.1.4
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 +1 -0
- package/announced.d.ts +111 -21
- package/announced.d.ts.map +1 -1
- package/announced.js +213 -40
- package/announced.js.map +1 -1
- package/broadcast.d.ts +80 -25
- package/broadcast.d.ts.map +1 -1
- package/broadcast.js +270 -49
- package/broadcast.js.map +1 -1
- package/connection/accept.d.ts +6 -0
- package/connection/accept.d.ts.map +1 -1
- package/connection/accept.js +42 -13
- package/connection/accept.js.map +1 -1
- package/connection/browser.d.ts +5 -0
- package/connection/browser.d.ts.map +1 -0
- package/connection/browser.js +31 -0
- package/connection/browser.js.map +1 -0
- package/connection/connect.d.ts +43 -1
- package/connection/connect.d.ts.map +1 -1
- package/connection/connect.js +118 -123
- package/connection/connect.js.map +1 -1
- package/connection/established.d.ts +43 -16
- package/connection/established.d.ts.map +1 -1
- package/connection/established.js.map +1 -1
- package/connection/handshake.d.ts +12 -1
- package/connection/handshake.d.ts.map +1 -1
- package/connection/handshake.js +30 -14
- package/connection/handshake.js.map +1 -1
- package/connection/index.d.ts +8 -0
- package/connection/index.d.ts.map +1 -1
- package/connection/index.js +6 -0
- package/connection/index.js.map +1 -1
- package/connection/reload.d.ts +66 -9
- package/connection/reload.d.ts.map +1 -1
- package/connection/reload.js +192 -66
- package/connection/reload.js.map +1 -1
- package/connection/stats.d.ts +92 -0
- package/connection/stats.d.ts.map +1 -0
- package/connection/stats.js +35 -0
- package/connection/stats.js.map +1 -0
- package/connection/transport.d.ts +10 -0
- package/connection/transport.d.ts.map +1 -0
- package/connection/transport.js +12 -0
- package/connection/transport.js.map +1 -0
- package/consume.d.ts +44 -0
- package/consume.d.ts.map +1 -0
- package/consume.js +60 -0
- package/consume.js.map +1 -0
- package/datagram.d.ts +23 -0
- package/datagram.d.ts.map +1 -0
- package/datagram.js +3 -0
- package/datagram.js.map +1 -0
- package/error.d.ts +76 -0
- package/error.d.ts.map +1 -0
- package/error.js +107 -0
- package/error.js.map +1 -0
- package/group.d.ts +143 -38
- package/group.d.ts.map +1 -1
- package/group.js +270 -68
- package/group.js.map +1 -1
- package/ietf/adapter.d.ts +2 -2
- package/ietf/adapter.d.ts.map +1 -1
- package/ietf/adapter.js +20 -10
- package/ietf/adapter.js.map +1 -1
- package/ietf/aliases.d.ts +73 -5
- package/ietf/aliases.d.ts.map +1 -1
- package/ietf/aliases.js +121 -14
- package/ietf/aliases.js.map +1 -1
- package/ietf/cluster.d.ts +141 -0
- package/ietf/cluster.d.ts.map +1 -0
- package/ietf/cluster.js +204 -0
- package/ietf/cluster.js.map +1 -0
- package/ietf/connection.d.ts +39 -6
- package/ietf/connection.d.ts.map +1 -1
- package/ietf/connection.js +73 -12
- package/ietf/connection.js.map +1 -1
- package/ietf/fetch.d.ts +17 -0
- package/ietf/fetch.d.ts.map +1 -1
- package/ietf/fetch.js +21 -0
- package/ietf/fetch.js.map +1 -1
- package/ietf/filter.d.ts +87 -0
- package/ietf/filter.d.ts.map +1 -0
- package/ietf/filter.js +292 -0
- package/ietf/filter.js.map +1 -0
- package/ietf/index.d.ts +2 -0
- package/ietf/index.d.ts.map +1 -1
- package/ietf/index.js +3 -0
- package/ietf/index.js.map +1 -1
- package/ietf/namespace.d.ts +6 -0
- package/ietf/namespace.d.ts.map +1 -1
- package/ietf/namespace.js +27 -2
- package/ietf/namespace.js.map +1 -1
- package/ietf/object.d.ts +54 -6
- package/ietf/object.d.ts.map +1 -1
- package/ietf/object.js +178 -25
- package/ietf/object.js.map +1 -1
- package/ietf/parameters.d.ts +35 -10
- package/ietf/parameters.d.ts.map +1 -1
- package/ietf/parameters.js +236 -45
- package/ietf/parameters.js.map +1 -1
- package/ietf/priority.d.ts +5 -0
- package/ietf/priority.d.ts.map +1 -0
- package/ietf/priority.js +10 -0
- package/ietf/priority.js.map +1 -0
- package/ietf/properties.d.ts +13 -2
- package/ietf/properties.d.ts.map +1 -1
- package/ietf/properties.js +65 -8
- package/ietf/properties.js.map +1 -1
- package/ietf/publish.d.ts.map +1 -1
- package/ietf/publish.js +13 -3
- package/ietf/publish.js.map +1 -1
- package/ietf/publish_namespace.d.ts +16 -2
- package/ietf/publish_namespace.d.ts.map +1 -1
- package/ietf/publish_namespace.js +25 -6
- package/ietf/publish_namespace.js.map +1 -1
- package/ietf/publisher.d.ts +40 -7
- package/ietf/publisher.d.ts.map +1 -1
- package/ietf/publisher.js +751 -134
- package/ietf/publisher.js.map +1 -1
- package/ietf/request.js +1 -1
- package/ietf/request.js.map +1 -1
- package/ietf/solicit.d.ts +41 -0
- package/ietf/solicit.d.ts.map +1 -0
- package/ietf/solicit.js +47 -0
- package/ietf/solicit.js.map +1 -0
- package/ietf/subscribe.d.ts +41 -2
- package/ietf/subscribe.d.ts.map +1 -1
- package/ietf/subscribe.js +103 -22
- package/ietf/subscribe.js.map +1 -1
- package/ietf/subscribe_namespace.d.ts +21 -7
- package/ietf/subscribe_namespace.d.ts.map +1 -1
- package/ietf/subscribe_namespace.js +31 -14
- package/ietf/subscribe_namespace.js.map +1 -1
- package/ietf/subscriber.d.ts +20 -7
- package/ietf/subscriber.d.ts.map +1 -1
- package/ietf/subscriber.js +512 -142
- package/ietf/subscriber.js.map +1 -1
- package/ietf/version.d.ts +7 -1
- package/ietf/version.d.ts.map +1 -1
- package/ietf/version.js +7 -0
- package/ietf/version.js.map +1 -1
- package/index.d.ts +10 -5
- package/index.d.ts.map +1 -1
- package/index.js +10 -5
- package/index.js.map +1 -1
- package/internal.d.ts +29 -0
- package/internal.d.ts.map +1 -0
- package/internal.js +8 -0
- package/internal.js.map +1 -0
- package/lite/announce.d.ts +62 -15
- package/lite/announce.d.ts.map +1 -1
- package/lite/announce.js +230 -94
- package/lite/announce.js.map +1 -1
- package/lite/connection.d.ts +69 -20
- package/lite/connection.d.ts.map +1 -1
- package/lite/connection.js +128 -81
- package/lite/connection.js.map +1 -1
- package/lite/datagram.d.ts +23 -0
- package/lite/datagram.d.ts.map +1 -0
- package/lite/datagram.js +57 -0
- package/lite/datagram.js.map +1 -0
- package/lite/datagram_stream.d.ts +8 -0
- package/lite/datagram_stream.d.ts.map +1 -0
- package/lite/datagram_stream.js +44 -0
- package/lite/datagram_stream.js.map +1 -0
- package/lite/fetch.d.ts.map +1 -1
- package/lite/fetch.js +2 -2
- package/lite/fetch.js.map +1 -1
- package/lite/index.d.ts +3 -0
- package/lite/index.d.ts.map +1 -1
- package/lite/index.js +3 -0
- package/lite/index.js.map +1 -1
- package/lite/priority.d.ts +67 -0
- package/lite/priority.d.ts.map +1 -0
- package/lite/priority.js +114 -0
- package/lite/priority.js.map +1 -0
- package/lite/probe.d.ts +18 -2
- package/lite/probe.d.ts.map +1 -1
- package/lite/probe.js +24 -22
- package/lite/probe.js.map +1 -1
- package/lite/publisher.d.ts +14 -7
- package/lite/publisher.d.ts.map +1 -1
- package/lite/publisher.js +406 -84
- package/lite/publisher.js.map +1 -1
- package/lite/setup.d.ts +83 -6
- package/lite/setup.d.ts.map +1 -1
- package/lite/setup.js +203 -31
- package/lite/setup.js.map +1 -1
- package/lite/stream.d.ts +12 -3
- package/lite/stream.d.ts.map +1 -1
- package/lite/stream.js +7 -4
- package/lite/stream.js.map +1 -1
- package/lite/subscribe.d.ts +37 -23
- package/lite/subscribe.d.ts.map +1 -1
- package/lite/subscribe.js +70 -55
- package/lite/subscribe.js.map +1 -1
- package/lite/subscriber.d.ts +29 -23
- package/lite/subscriber.d.ts.map +1 -1
- package/lite/subscriber.js +689 -112
- package/lite/subscriber.js.map +1 -1
- package/lite/track.d.ts +25 -13
- package/lite/track.d.ts.map +1 -1
- package/lite/track.js +60 -35
- package/lite/track.js.map +1 -1
- package/lite/version.d.ts +39 -4
- package/lite/version.d.ts.map +1 -1
- package/lite/version.js +139 -17
- package/lite/version.js.map +1 -1
- package/mock.d.ts +53 -3
- package/mock.d.ts.map +1 -1
- package/mock.js +110 -21
- package/mock.js.map +1 -1
- package/{lite/origin.d.ts → origin.d.ts} +25 -1
- package/origin.d.ts.map +1 -0
- package/{lite/origin.js → origin.js} +25 -1
- package/origin.js.map +1 -0
- package/package.json +6 -4
- package/path.d.ts +67 -0
- package/path.d.ts.map +1 -1
- package/path.js +128 -0
- package/path.js.map +1 -1
- package/stream.d.ts +94 -4
- package/stream.d.ts.map +1 -1
- package/stream.js +128 -17
- package/stream.js.map +1 -1
- package/time.d.ts +109 -86
- package/time.d.ts.map +1 -1
- package/time.js +80 -30
- package/time.js.map +1 -1
- package/track.d.ts +298 -47
- package/track.d.ts.map +1 -1
- package/track.js +721 -109
- package/track.js.map +1 -1
- package/util/timeout.d.ts +5 -0
- package/util/timeout.d.ts.map +1 -0
- package/util/timeout.js +18 -0
- package/util/timeout.js.map +1 -0
- package/util/utf8.d.ts +3 -0
- package/util/utf8.d.ts.map +1 -0
- package/util/utf8.js +7 -0
- package/util/utf8.js.map +1 -0
- package/varint.d.ts +14 -3
- package/varint.d.ts.map +1 -1
- package/varint.js +23 -12
- package/varint.js.map +1 -1
- package/zod.d.ts +5 -5
- package/zod.d.ts.map +1 -1
- package/zod.js.map +1 -1
- package/bandwidth.d.ts +0 -11
- package/bandwidth.d.ts.map +0 -1
- package/bandwidth.js +0 -7
- package/bandwidth.js.map +0 -1
- package/connection/cert.test.d.ts +0 -2
- package/connection/cert.test.d.ts.map +0 -1
- package/connection/cert.test.js +0 -26
- package/connection/cert.test.js.map +0 -1
- package/connection/reload.test.d.ts +0 -2
- package/connection/reload.test.d.ts.map +0 -1
- package/connection/reload.test.js +0 -39
- package/connection/reload.test.js.map +0 -1
- package/group.test.d.ts +0 -2
- package/group.test.d.ts.map +0 -1
- package/group.test.js +0 -66
- package/group.test.js.map +0 -1
- package/ietf/aliases.test.d.ts +0 -2
- package/ietf/aliases.test.d.ts.map +0 -1
- package/ietf/aliases.test.js +0 -30
- package/ietf/aliases.test.js.map +0 -1
- package/ietf/ietf.test.d.ts +0 -2
- package/ietf/ietf.test.d.ts.map +0 -1
- package/ietf/ietf.test.js +0 -873
- package/ietf/ietf.test.js.map +0 -1
- package/integration.test.d.ts +0 -2
- package/integration.test.d.ts.map +0 -1
- package/integration.test.js +0 -90
- package/integration.test.js.map +0 -1
- package/lite/origin.d.ts.map +0 -1
- package/lite/origin.js.map +0 -1
- package/lite/subscriber.test.d.ts +0 -2
- package/lite/subscriber.test.d.ts.map +0 -1
- package/lite/subscriber.test.js +0 -30
- package/lite/subscriber.test.js.map +0 -1
- package/lite/track.test.d.ts +0 -2
- package/lite/track.test.d.ts.map +0 -1
- package/lite/track.test.js +0 -53
- package/lite/track.test.js.map +0 -1
- package/path.test.d.ts +0 -2
- package/path.test.d.ts.map +0 -1
- package/path.test.js +0 -169
- package/path.test.js.map +0 -1
- package/stream.test.d.ts +0 -2
- package/stream.test.d.ts.map +0 -1
- package/stream.test.js +0 -210
- package/stream.test.js.map +0 -1
- package/track.test.d.ts +0 -2
- package/track.test.d.ts.map +0 -1
- package/track.test.js +0 -56
- package/track.test.js.map +0 -1
- package/util/error.d.ts +0 -3
- package/util/error.d.ts.map +0 -1
- package/util/error.js +0 -9
- package/util/error.js.map +0 -1
- package/util/index.d.ts +0 -2
- package/util/index.d.ts.map +0 -1
- package/util/index.js +0 -3
- package/util/index.js.map +0 -1
- package/varint.test.d.ts +0 -2
- package/varint.test.d.ts.map +0 -1
- package/varint.test.js +0 -106
- package/varint.test.js.map +0 -1
package/lite/stream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AACpF,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC;AAE9B,eAAO,MAAM,QAAQ;aACpB,OAAO,EAAE,CAAC;aACV,QAAQ,EAAE,CAAC;aACX,SAAS,EAAE,CAAC;aACZ,KAAK,EAAE,CAAC;aACR,KAAK,EAAE,CAAC;aACR,MAAM,EAAE,CAAC;aACT,KAAK,EAAE,CAAC;aACR,YAAY,EAAE,EAAI;aAClB,YAAY,EAAE,EAAI;CACT,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;aACpB,KAAK,EAAE,CAAC;aACR,KAAK,EAAE,CAAC;CACC,CAAC;AAEX,+DAA+D;AAC/D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC"}
|
package/lite/stream.js
CHANGED
|
@@ -6,15 +6,18 @@ export const StreamId = {
|
|
|
6
6
|
Fetch: 3,
|
|
7
7
|
Probe: 4,
|
|
8
8
|
Goaway: 5,
|
|
9
|
-
/// Queries a track's immutable publisher properties via TRACK/TRACK_INFO (moq-lite-05+).
|
|
10
9
|
Track: 6,
|
|
11
10
|
ClientCompat: 0x20,
|
|
12
11
|
ServerCompat: 0x21,
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
/**
|
|
14
|
+
* The varint type prefix on a unidirectional data stream.
|
|
15
|
+
*
|
|
16
|
+
* `Group` is the per-group frame stream. `Setup` (lite-05+) carries the single SETUP
|
|
17
|
+
* message advertising this endpoint's capabilities.
|
|
18
|
+
*/
|
|
19
|
+
export const DataType = {
|
|
16
20
|
Group: 0,
|
|
17
|
-
/// Carries a single SETUP message (moq-lite-05+).
|
|
18
21
|
Setup: 1,
|
|
19
22
|
};
|
|
20
23
|
//# sourceMappingURL=stream.js.map
|
package/lite/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/lite/stream.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;CACT,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACC,CAAC","sourcesContent":["import type { AnnounceRequest } from \"./announce.ts\";\nimport type { Goaway } from \"./goaway.ts\";\nimport type { Group } from \"./group.ts\";\nimport type { SessionClient } from \"./session.ts\";\nimport type { Subscribe } from \"./subscribe.ts\";\nimport type { Track } from \"./track.ts\";\n\nexport type StreamBi = SessionClient | AnnounceRequest | Subscribe | Track | Goaway;\nexport type StreamUni = Group;\n\nexport const StreamId = {\n\tSession: 0,\n\tAnnounce: 1,\n\tSubscribe: 2,\n\tFetch: 3,\n\tProbe: 4,\n\tGoaway: 5,\n\tTrack: 6,\n\tClientCompat: 0x20,\n\tServerCompat: 0x21,\n} as const;\n\n/**\n * The varint type prefix on a unidirectional data stream.\n *\n * `Group` is the per-group frame stream. `Setup` (lite-05+) carries the single SETUP\n * message advertising this endpoint's capabilities.\n */\nexport const DataType = {\n\tGroup: 0,\n\tSetup: 1,\n} as const;\n\n/** A unidirectional data-stream type. See {@link DataType}. */\nexport type DataType = (typeof DataType)[keyof typeof DataType];\n"]}
|
package/lite/subscribe.d.ts
CHANGED
|
@@ -42,6 +42,12 @@ export declare class Subscribe {
|
|
|
42
42
|
encode(w: Writer, version: Version): Promise<void>;
|
|
43
43
|
static decode(r: Reader, version: Version): Promise<Subscribe>;
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Publisher's acknowledgement on the Subscribe Stream for drafts 01-04.
|
|
47
|
+
*
|
|
48
|
+
* Draft-05+ replaced this with implicit acceptance plus {@link SubscribeStart} /
|
|
49
|
+
* {@link SubscribeEnd}; the immutable codec/timescale/cache moved to TRACK_INFO.
|
|
50
|
+
*/
|
|
45
51
|
export declare class SubscribeOk {
|
|
46
52
|
#private;
|
|
47
53
|
priority: number;
|
|
@@ -59,6 +65,28 @@ export declare class SubscribeOk {
|
|
|
59
65
|
encode(w: Writer, version: Version): Promise<void>;
|
|
60
66
|
static decode(r: Reader, version: Version): Promise<SubscribeOk>;
|
|
61
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Resolves the absolute start group of a Draft-05+ subscription. The first message
|
|
70
|
+
* the publisher sends, once the start group is known. A value greater than the
|
|
71
|
+
* requested start implicitly drops the leading range.
|
|
72
|
+
*/
|
|
73
|
+
export declare class SubscribeStart {
|
|
74
|
+
group: number;
|
|
75
|
+
constructor(group: number);
|
|
76
|
+
encode(w: Writer): Promise<void>;
|
|
77
|
+
static decode(r: Reader): Promise<SubscribeStart>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Signals that no group at or after `group` (exclusive upper bound) will be produced
|
|
81
|
+
* on a Draft-05+ subscription. `0` means the track ended before producing any groups.
|
|
82
|
+
*/
|
|
83
|
+
export declare class SubscribeEnd {
|
|
84
|
+
/** The exclusive final group sequence: the first sequence that will never be produced. */
|
|
85
|
+
group: number;
|
|
86
|
+
constructor(group: number);
|
|
87
|
+
encode(w: Writer): Promise<void>;
|
|
88
|
+
static decode(r: Reader): Promise<SubscribeEnd>;
|
|
89
|
+
}
|
|
62
90
|
export declare class SubscribeDrop {
|
|
63
91
|
#private;
|
|
64
92
|
start: number;
|
|
@@ -73,39 +101,25 @@ export declare class SubscribeDrop {
|
|
|
73
101
|
static decode(r: Reader): Promise<SubscribeDrop>;
|
|
74
102
|
}
|
|
75
103
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* moq-lite-05+ only.
|
|
79
|
-
*/
|
|
80
|
-
export declare class SubscribeEnd {
|
|
81
|
-
#private;
|
|
82
|
-
group: number;
|
|
83
|
-
constructor(props: {
|
|
84
|
-
group: number;
|
|
85
|
-
});
|
|
86
|
-
encode(w: Writer): Promise<void>;
|
|
87
|
-
static decode(r: Reader): Promise<SubscribeEnd>;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* A response message on the subscribe stream.
|
|
91
|
-
*
|
|
92
|
-
* In Draft03/04 each response is prefixed with a type discriminator: 0x0 SUBSCRIBE_OK,
|
|
93
|
-
* 0x1 SUBSCRIBE_DROP. In Draft05 end-of-subscription splits out, so the discriminators
|
|
94
|
-
* become 0x0 SUBSCRIBE_OK, 0x1 SUBSCRIBE_END, 0x2 SUBSCRIBE_DROP.
|
|
104
|
+
* A response message on the subscribe stream, prefixed with a type discriminator
|
|
105
|
+
* on Draft-03+.
|
|
95
106
|
*
|
|
96
|
-
*
|
|
107
|
+
* The discriminator is version-dependent:
|
|
108
|
+
* - Draft-03/04: `0x0` SUBSCRIBE_OK, `0x1` SUBSCRIBE_DROP.
|
|
109
|
+
* - Draft-05+: `0x0` SUBSCRIBE_START, `0x1` SUBSCRIBE_END, `0x2` SUBSCRIBE_DROP
|
|
110
|
+
* (SUBSCRIBE_OK was removed; acceptance is implicit).
|
|
97
111
|
*/
|
|
98
112
|
export type SubscribeResponse = {
|
|
99
113
|
ok: SubscribeOk;
|
|
114
|
+
} | {
|
|
115
|
+
start: SubscribeStart;
|
|
100
116
|
} | {
|
|
101
117
|
end: SubscribeEnd;
|
|
102
118
|
} | {
|
|
103
119
|
drop: SubscribeDrop;
|
|
104
120
|
};
|
|
105
|
-
/** Encode a subscribe-stream response (OK / END / DROP) for the negotiated moq-lite version. */
|
|
106
121
|
export declare function encodeSubscribeResponse(w: Writer, resp: SubscribeResponse, version: Version): Promise<void>;
|
|
107
|
-
/** Decode the next subscribe-stream response for the negotiated moq-lite version. */
|
|
108
122
|
export declare function decodeSubscribeResponse(r: Reader, version: Version): Promise<SubscribeResponse>;
|
|
109
|
-
/** Like {@link decodeSubscribeResponse} but
|
|
123
|
+
/** Like {@link decodeSubscribeResponse} but resolves `undefined` on a clean FIN. */
|
|
110
124
|
export declare function decodeSubscribeResponseMaybe(r: Reader, version: Version): Promise<SubscribeResponse | undefined>;
|
|
111
125
|
//# sourceMappingURL=subscribe.d.ts.map
|
package/lite/subscribe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,qBAAa,eAAe;;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,KAAK,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,EAMA;IAwCK,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD;IAED,OAAa,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAEzE;IAED,OAAa,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAE1F;CACD;AAED,qBAAa,SAAS;;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,KAAK,EAAE;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,EASA;IAkDK,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD;IAED,OAAa,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAEnE;CACD;AAED,qBAAa,WAAW;;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,EACX,QAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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"}
|
package/lite/subscribe.js
CHANGED
|
@@ -10,7 +10,7 @@ export class SubscribeUpdate {
|
|
|
10
10
|
endGroup;
|
|
11
11
|
constructor(props) {
|
|
12
12
|
this.priority = props.priority;
|
|
13
|
-
this.ordered = props.ordered ??
|
|
13
|
+
this.ordered = props.ordered ?? false;
|
|
14
14
|
this.maxLatency = props.maxLatency ?? 0;
|
|
15
15
|
this.startGroup = props.startGroup;
|
|
16
16
|
this.endGroup = props.endGroup;
|
|
@@ -131,13 +131,19 @@ export class Subscribe {
|
|
|
131
131
|
return Message.decode(r, (r) => Subscribe.#decode(r, version));
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Publisher's acknowledgement on the Subscribe Stream for drafts 01-04.
|
|
136
|
+
*
|
|
137
|
+
* Draft-05+ replaced this with implicit acceptance plus {@link SubscribeStart} /
|
|
138
|
+
* {@link SubscribeEnd}; the immutable codec/timescale/cache moved to TRACK_INFO.
|
|
139
|
+
*/
|
|
134
140
|
export class SubscribeOk {
|
|
135
141
|
priority;
|
|
136
142
|
ordered;
|
|
137
143
|
maxLatency;
|
|
138
144
|
startGroup;
|
|
139
145
|
endGroup;
|
|
140
|
-
constructor({ priority = 0, ordered =
|
|
146
|
+
constructor({ priority = 0, ordered = false, maxLatency = 0, startGroup = undefined, endGroup = undefined, }) {
|
|
141
147
|
this.priority = priority;
|
|
142
148
|
this.ordered = ordered;
|
|
143
149
|
this.maxLatency = maxLatency;
|
|
@@ -152,10 +158,8 @@ export class SubscribeOk {
|
|
|
152
158
|
case Version.DRAFT_01:
|
|
153
159
|
await w.u8(this.priority ?? 0);
|
|
154
160
|
break;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
await w.u53(this.startGroup ?? 0);
|
|
158
|
-
break;
|
|
161
|
+
// Draft-05+ never sends SUBSCRIBE_OK, but keep the field layout matching
|
|
162
|
+
// Draft-03/04 so a stray future use stays well-formed.
|
|
159
163
|
default:
|
|
160
164
|
await w.u8(this.priority);
|
|
161
165
|
await w.bool(this.ordered);
|
|
@@ -178,9 +182,6 @@ export class SubscribeOk {
|
|
|
178
182
|
case Version.DRAFT_01:
|
|
179
183
|
priority = await r.u8();
|
|
180
184
|
break;
|
|
181
|
-
case Version.DRAFT_05_WIP:
|
|
182
|
-
// moq-lite-05+: just the resolved absolute start group (raw).
|
|
183
|
-
return new SubscribeOk({ startGroup: await r.u53() });
|
|
184
185
|
default:
|
|
185
186
|
priority = await r.u8();
|
|
186
187
|
ordered = await r.bool();
|
|
@@ -204,6 +205,44 @@ export class SubscribeOk {
|
|
|
204
205
|
return Message.decode(r, SubscribeOk.#decode.bind(SubscribeOk, version));
|
|
205
206
|
}
|
|
206
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Resolves the absolute start group of a Draft-05+ subscription. The first message
|
|
210
|
+
* the publisher sends, once the start group is known. A value greater than the
|
|
211
|
+
* requested start implicitly drops the leading range.
|
|
212
|
+
*/
|
|
213
|
+
export class SubscribeStart {
|
|
214
|
+
group;
|
|
215
|
+
constructor(group) {
|
|
216
|
+
this.group = group;
|
|
217
|
+
}
|
|
218
|
+
async encode(w) {
|
|
219
|
+
return Message.encode(w, async (w) => {
|
|
220
|
+
await w.u53(this.group);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
static async decode(r) {
|
|
224
|
+
return Message.decode(r, async (r) => new SubscribeStart(await r.u53()));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Signals that no group at or after `group` (exclusive upper bound) will be produced
|
|
229
|
+
* on a Draft-05+ subscription. `0` means the track ended before producing any groups.
|
|
230
|
+
*/
|
|
231
|
+
export class SubscribeEnd {
|
|
232
|
+
/** The exclusive final group sequence: the first sequence that will never be produced. */
|
|
233
|
+
group;
|
|
234
|
+
constructor(group) {
|
|
235
|
+
this.group = group;
|
|
236
|
+
}
|
|
237
|
+
async encode(w) {
|
|
238
|
+
return Message.encode(w, async (w) => {
|
|
239
|
+
await w.u53(this.group);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
static async decode(r) {
|
|
243
|
+
return Message.decode(r, async (r) => new SubscribeEnd(await r.u53()));
|
|
244
|
+
}
|
|
245
|
+
}
|
|
207
246
|
/// Indicates that one or more groups have been dropped.
|
|
208
247
|
///
|
|
209
248
|
/// Draft03+ only.
|
|
@@ -231,30 +270,6 @@ export class SubscribeDrop {
|
|
|
231
270
|
return Message.decode(r, SubscribeDrop.#decode);
|
|
232
271
|
}
|
|
233
272
|
}
|
|
234
|
-
/**
|
|
235
|
-
* Signals that no group after a given sequence will be produced.
|
|
236
|
-
*
|
|
237
|
-
* moq-lite-05+ only.
|
|
238
|
-
*/
|
|
239
|
-
export class SubscribeEnd {
|
|
240
|
-
group;
|
|
241
|
-
constructor(props) {
|
|
242
|
-
this.group = props.group;
|
|
243
|
-
}
|
|
244
|
-
async #encode(w) {
|
|
245
|
-
await w.u53(this.group);
|
|
246
|
-
}
|
|
247
|
-
static async #decode(r) {
|
|
248
|
-
return new SubscribeEnd({ group: await r.u53() });
|
|
249
|
-
}
|
|
250
|
-
async encode(w) {
|
|
251
|
-
return Message.encode(w, this.#encode.bind(this));
|
|
252
|
-
}
|
|
253
|
-
static async decode(r) {
|
|
254
|
-
return Message.decode(r, SubscribeEnd.#decode);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
/** Encode a subscribe-stream response (OK / END / DROP) for the negotiated moq-lite version. */
|
|
258
273
|
export async function encodeSubscribeResponse(w, resp, version) {
|
|
259
274
|
switch (version) {
|
|
260
275
|
case Version.DRAFT_01:
|
|
@@ -266,50 +281,52 @@ export async function encodeSubscribeResponse(w, resp, version) {
|
|
|
266
281
|
throw new Error("only SUBSCRIBE_OK is supported for this version");
|
|
267
282
|
}
|
|
268
283
|
break;
|
|
269
|
-
case Version.
|
|
270
|
-
|
|
284
|
+
case Version.DRAFT_03:
|
|
285
|
+
case Version.DRAFT_04:
|
|
271
286
|
if ("ok" in resp) {
|
|
272
287
|
await w.u53(0x0);
|
|
273
288
|
await resp.ok.encode(w, version);
|
|
274
289
|
}
|
|
275
|
-
else if ("
|
|
290
|
+
else if ("drop" in resp) {
|
|
276
291
|
await w.u53(0x1);
|
|
277
|
-
await resp.
|
|
292
|
+
await resp.drop.encode(w);
|
|
278
293
|
}
|
|
279
294
|
else {
|
|
280
|
-
|
|
281
|
-
await resp.drop.encode(w);
|
|
295
|
+
throw new Error("SUBSCRIBE_START/END not supported for this version");
|
|
282
296
|
}
|
|
283
297
|
break;
|
|
284
298
|
default:
|
|
285
|
-
//
|
|
286
|
-
if ("
|
|
299
|
+
// Draft-05+: SUBSCRIBE_OK is gone; START/END/DROP carry the resolved range.
|
|
300
|
+
if ("start" in resp) {
|
|
287
301
|
await w.u53(0x0);
|
|
288
|
-
await resp.
|
|
302
|
+
await resp.start.encode(w);
|
|
289
303
|
}
|
|
290
|
-
else if ("
|
|
304
|
+
else if ("end" in resp) {
|
|
291
305
|
await w.u53(0x1);
|
|
306
|
+
await resp.end.encode(w);
|
|
307
|
+
}
|
|
308
|
+
else if ("drop" in resp) {
|
|
309
|
+
await w.u53(0x2);
|
|
292
310
|
await resp.drop.encode(w);
|
|
293
311
|
}
|
|
294
312
|
else {
|
|
295
|
-
throw new Error("
|
|
313
|
+
throw new Error("SUBSCRIBE_OK not supported for this version");
|
|
296
314
|
}
|
|
297
315
|
break;
|
|
298
316
|
}
|
|
299
317
|
}
|
|
300
|
-
async function
|
|
318
|
+
export async function decodeSubscribeResponse(r, version) {
|
|
301
319
|
switch (version) {
|
|
302
320
|
case Version.DRAFT_01:
|
|
303
321
|
case Version.DRAFT_02:
|
|
304
322
|
return { ok: await SubscribeOk.decode(r, version) };
|
|
305
|
-
case Version.
|
|
323
|
+
case Version.DRAFT_03:
|
|
324
|
+
case Version.DRAFT_04: {
|
|
306
325
|
const typ = await r.u53();
|
|
307
326
|
switch (typ) {
|
|
308
327
|
case 0x0:
|
|
309
328
|
return { ok: await SubscribeOk.decode(r, version) };
|
|
310
329
|
case 0x1:
|
|
311
|
-
return { end: await SubscribeEnd.decode(r) };
|
|
312
|
-
case 0x2:
|
|
313
330
|
return { drop: await SubscribeDrop.decode(r) };
|
|
314
331
|
default:
|
|
315
332
|
throw new Error(`unknown subscribe response type: ${typ}`);
|
|
@@ -319,8 +336,10 @@ async function decodeResponse(r, version) {
|
|
|
319
336
|
const typ = await r.u53();
|
|
320
337
|
switch (typ) {
|
|
321
338
|
case 0x0:
|
|
322
|
-
return {
|
|
339
|
+
return { start: await SubscribeStart.decode(r) };
|
|
323
340
|
case 0x1:
|
|
341
|
+
return { end: await SubscribeEnd.decode(r) };
|
|
342
|
+
case 0x2:
|
|
324
343
|
return { drop: await SubscribeDrop.decode(r) };
|
|
325
344
|
default:
|
|
326
345
|
throw new Error(`unknown subscribe response type: ${typ}`);
|
|
@@ -328,14 +347,10 @@ async function decodeResponse(r, version) {
|
|
|
328
347
|
}
|
|
329
348
|
}
|
|
330
349
|
}
|
|
331
|
-
/**
|
|
332
|
-
export async function decodeSubscribeResponse(r, version) {
|
|
333
|
-
return decodeResponse(r, version);
|
|
334
|
-
}
|
|
335
|
-
/** Like {@link decodeSubscribeResponse} but returns `undefined` at a clean stream end (FIN). */
|
|
350
|
+
/** Like {@link decodeSubscribeResponse} but resolves `undefined` on a clean FIN. */
|
|
336
351
|
export async function decodeSubscribeResponseMaybe(r, version) {
|
|
337
352
|
if (await r.done())
|
|
338
353
|
return undefined;
|
|
339
|
-
return
|
|
354
|
+
return decodeSubscribeResponse(r, version);
|
|
340
355
|
}
|
|
341
356
|
//# sourceMappingURL=subscribe.js.map
|
package/lite/subscribe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Path from \"../path.ts\";\nimport type { Reader, Writer } from \"../stream.ts\";\nimport * as Message from \"./message.ts\";\nimport { Version } from \"./version.ts\";\n\nexport class SubscribeUpdate {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? true;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new SubscribeUpdate({ priority: await r.u8() });\n\t\t\tdefault: {\n\t\t\t\tconst priority = await r.u8();\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new SubscribeUpdate({\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\treturn Message.decode(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n\n\tstatic async decodeMaybe(r: Reader, version: Version): Promise<SubscribeUpdate | undefined> {\n\t\treturn Message.decodeMaybe(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n}\n\nexport class Subscribe {\n\tid: bigint;\n\tbroadcast: Path.Valid;\n\ttrack: string;\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tid: bigint;\n\t\tbroadcast: Path.Valid;\n\t\ttrack: string;\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.id = props.id;\n\t\tthis.broadcast = props.broadcast;\n\t\tthis.track = props.track;\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? false;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tawait w.u62(this.id);\n\t\tawait w.string(Path.encode(this.broadcast));\n\t\tawait w.string(this.track);\n\t\tawait w.u8(this.priority);\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\tconst id = await r.u62();\n\t\tconst broadcast = Path.decode(await r.string());\n\t\tconst track = await r.string();\n\t\tconst priority = await r.u8();\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new Subscribe({ id, broadcast, track, priority });\n\t\t\tdefault: {\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new Subscribe({\n\t\t\t\t\tid,\n\t\t\t\t\tbroadcast,\n\t\t\t\t\ttrack,\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\treturn Message.decode(r, (r) => Subscribe.#decode(r, version));\n\t}\n}\n\nexport class SubscribeOk {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor({\n\t\tpriority = 0,\n\t\tordered = true,\n\t\tmaxLatency = 0,\n\t\tstartGroup = undefined,\n\t\tendGroup = undefined,\n\t}: {\n\t\tpriority?: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = priority;\n\t\tthis.ordered = ordered;\n\t\tthis.maxLatency = maxLatency;\n\t\tthis.startGroup = startGroup;\n\t\tthis.endGroup = endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tawait w.u8(this.priority ?? 0);\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_05_WIP:\n\t\t\t\t// moq-lite-05+: just the resolved absolute start group (raw, 0 is valid).\n\t\t\t\tawait w.u53(this.startGroup ?? 0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(version: Version, r: Reader): Promise<SubscribeOk> {\n\t\tlet priority: number | undefined;\n\t\tlet ordered: boolean | undefined;\n\t\tlet maxLatency: number | undefined;\n\t\tlet startGroup: number | undefined;\n\t\tlet endGroup: number | undefined;\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_05_WIP:\n\t\t\t\t// moq-lite-05+: just the resolved absolute start group (raw).\n\t\t\t\treturn new SubscribeOk({ startGroup: await r.u53() });\n\t\t\tdefault:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tordered = await r.bool();\n\t\t\t\tmaxLatency = await r.u53();\n\t\t\t\tstartGroup = await r.u53();\n\t\t\t\tendGroup = await r.u53();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn new SubscribeOk({\n\t\t\tpriority,\n\t\t\tordered,\n\t\t\tmaxLatency,\n\t\t\tstartGroup: startGroup !== undefined && startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\tendGroup: endGroup !== undefined && endGroup > 0 ? endGroup - 1 : undefined,\n\t\t});\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeOk> {\n\t\treturn Message.decode(r, SubscribeOk.#decode.bind(SubscribeOk, version));\n\t}\n}\n\n/// Indicates that one or more groups have been dropped.\n///\n/// Draft03+ only.\nexport class SubscribeDrop {\n\tstart: number;\n\tend: number;\n\terror: number;\n\n\tconstructor(props: { start: number; end: number; error: number }) {\n\t\tthis.start = props.start;\n\t\tthis.end = props.end;\n\t\tthis.error = props.error;\n\t}\n\n\tasync #encode(w: Writer) {\n\t\tawait w.u53(this.start);\n\t\tawait w.u53(this.end);\n\t\tawait w.u53(this.error);\n\t}\n\n\tstatic async #decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn new SubscribeDrop({ start: await r.u53(), end: await r.u53(), error: await r.u53() });\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, this.#encode.bind(this));\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn Message.decode(r, SubscribeDrop.#decode);\n\t}\n}\n\n/**\n * Signals that no group after a given sequence will be produced.\n *\n * moq-lite-05+ only.\n */\nexport class SubscribeEnd {\n\tgroup: number;\n\n\tconstructor(props: { group: number }) {\n\t\tthis.group = props.group;\n\t}\n\n\tasync #encode(w: Writer) {\n\t\tawait w.u53(this.group);\n\t}\n\n\tstatic async #decode(r: Reader): Promise<SubscribeEnd> {\n\t\treturn new SubscribeEnd({ group: await r.u53() });\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, this.#encode.bind(this));\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeEnd> {\n\t\treturn Message.decode(r, SubscribeEnd.#decode);\n\t}\n}\n\n/**\n * A response message on the subscribe stream.\n *\n * In Draft03/04 each response is prefixed with a type discriminator: 0x0 SUBSCRIBE_OK,\n * 0x1 SUBSCRIBE_DROP. In Draft05 end-of-subscription splits out, so the discriminators\n * become 0x0 SUBSCRIBE_OK, 0x1 SUBSCRIBE_END, 0x2 SUBSCRIBE_DROP.\n *\n * SUBSCRIBE_OK is normally the first message on the response stream.\n */\nexport type SubscribeResponse = { ok: SubscribeOk } | { end: SubscribeEnd } | { drop: SubscribeDrop };\n\n/** Encode a subscribe-stream response (OK / END / DROP) for the negotiated moq-lite version. */\nexport async function encodeSubscribeResponse(w: Writer, resp: SubscribeResponse, version: Version): Promise<void> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"only SUBSCRIBE_OK is supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase Version.DRAFT_05_WIP:\n\t\t\t// moq-lite-05+: 0x0 OK, 0x1 END, 0x2 DROP.\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else if (\"end\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.end.encode(w);\n\t\t\t} else {\n\t\t\t\tawait w.u53(0x2);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// Draft03/04: 0x0 OK, 0x1 DROP; no SUBSCRIBE_END.\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else if (\"drop\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"SUBSCRIBE_END is not supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nasync function decodeResponse(r: Reader, version: Version): Promise<SubscribeResponse> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\tcase Version.DRAFT_05_WIP: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { end: await SubscribeEnd.decode(r) };\n\t\t\t\tcase 0x2:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t\tdefault: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/** Decode the next subscribe-stream response for the negotiated moq-lite version. */\nexport async function decodeSubscribeResponse(r: Reader, version: Version): Promise<SubscribeResponse> {\n\treturn decodeResponse(r, version);\n}\n\n/** Like {@link decodeSubscribeResponse} but returns `undefined` at a clean stream end (FIN). */\nexport async function decodeSubscribeResponseMaybe(\n\tr: Reader,\n\tversion: Version,\n): Promise<SubscribeResponse | undefined> {\n\tif (await r.done()) return undefined;\n\treturn decodeResponse(r, version);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/lite/subscribe.ts"],"names":[],"mappings":"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","sourcesContent":["import * as Path from \"../path.ts\";\nimport type { Reader, Writer } from \"../stream.ts\";\nimport * as Message from \"./message.ts\";\nimport { Version } from \"./version.ts\";\n\nexport class SubscribeUpdate {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? false;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new SubscribeUpdate({ priority: await r.u8() });\n\t\t\tdefault: {\n\t\t\t\tconst priority = await r.u8();\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new SubscribeUpdate({\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeUpdate> {\n\t\treturn Message.decode(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n\n\tstatic async decodeMaybe(r: Reader, version: Version): Promise<SubscribeUpdate | undefined> {\n\t\treturn Message.decodeMaybe(r, (r) => SubscribeUpdate.#decode(r, version));\n\t}\n}\n\nexport class Subscribe {\n\tid: bigint;\n\tbroadcast: Path.Valid;\n\ttrack: string;\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor(props: {\n\t\tid: bigint;\n\t\tbroadcast: Path.Valid;\n\t\ttrack: string;\n\t\tpriority: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.id = props.id;\n\t\tthis.broadcast = props.broadcast;\n\t\tthis.track = props.track;\n\t\tthis.priority = props.priority;\n\t\tthis.ordered = props.ordered ?? false;\n\t\tthis.maxLatency = props.maxLatency ?? 0;\n\t\tthis.startGroup = props.startGroup;\n\t\tthis.endGroup = props.endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tawait w.u62(this.id);\n\t\tawait w.string(Path.encode(this.broadcast));\n\t\tawait w.string(this.track);\n\t\tawait w.u8(this.priority);\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\tconst id = await r.u62();\n\t\tconst broadcast = Path.decode(await r.string());\n\t\tconst track = await r.string();\n\t\tconst priority = await r.u8();\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_01:\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\treturn new Subscribe({ id, broadcast, track, priority });\n\t\t\tdefault: {\n\t\t\t\tconst ordered = await r.bool();\n\t\t\t\tconst maxLatency = await r.u53();\n\t\t\t\tconst startGroup = await r.u53();\n\t\t\t\tconst endGroup = await r.u53();\n\t\t\t\treturn new Subscribe({\n\t\t\t\t\tid,\n\t\t\t\t\tbroadcast,\n\t\t\t\t\ttrack,\n\t\t\t\t\tpriority,\n\t\t\t\t\tordered,\n\t\t\t\t\tmaxLatency,\n\t\t\t\t\tstartGroup: startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\t\t\tendGroup: endGroup > 0 ? endGroup - 1 : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<Subscribe> {\n\t\treturn Message.decode(r, (r) => Subscribe.#decode(r, version));\n\t}\n}\n\n/**\n * Publisher's acknowledgement on the Subscribe Stream for drafts 01-04.\n *\n * Draft-05+ replaced this with implicit acceptance plus {@link SubscribeStart} /\n * {@link SubscribeEnd}; the immutable codec/timescale/cache moved to TRACK_INFO.\n */\nexport class SubscribeOk {\n\tpriority: number;\n\tordered: boolean;\n\tmaxLatency: number;\n\tstartGroup?: number;\n\tendGroup?: number;\n\n\tconstructor({\n\t\tpriority = 0,\n\t\tordered = false,\n\t\tmaxLatency = 0,\n\t\tstartGroup = undefined,\n\t\tendGroup = undefined,\n\t}: {\n\t\tpriority?: number;\n\t\tordered?: boolean;\n\t\tmaxLatency?: number;\n\t\tstartGroup?: number;\n\t\tendGroup?: number;\n\t}) {\n\t\tthis.priority = priority;\n\t\tthis.ordered = ordered;\n\t\tthis.maxLatency = maxLatency;\n\t\tthis.startGroup = startGroup;\n\t\tthis.endGroup = endGroup;\n\t}\n\n\tasync #encode(w: Writer, version: Version) {\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tawait w.u8(this.priority ?? 0);\n\t\t\t\tbreak;\n\t\t\t// Draft-05+ never sends SUBSCRIBE_OK, but keep the field layout matching\n\t\t\t// Draft-03/04 so a stray future use stays well-formed.\n\t\t\tdefault:\n\t\t\t\tawait w.u8(this.priority);\n\t\t\t\tawait w.bool(this.ordered);\n\t\t\t\tawait w.u53(this.maxLatency);\n\t\t\t\tawait w.u53(this.startGroup !== undefined ? this.startGroup + 1 : 0);\n\t\t\t\tawait w.u53(this.endGroup !== undefined ? this.endGroup + 1 : 0);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic async #decode(version: Version, r: Reader): Promise<SubscribeOk> {\n\t\tlet priority: number | undefined;\n\t\tlet ordered: boolean | undefined;\n\t\tlet maxLatency: number | undefined;\n\t\tlet startGroup: number | undefined;\n\t\tlet endGroup: number | undefined;\n\n\t\tswitch (version) {\n\t\t\tcase Version.DRAFT_02:\n\t\t\t\t// noop\n\t\t\t\tbreak;\n\t\t\tcase Version.DRAFT_01:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpriority = await r.u8();\n\t\t\t\tordered = await r.bool();\n\t\t\t\tmaxLatency = await r.u53();\n\t\t\t\tstartGroup = await r.u53();\n\t\t\t\tendGroup = await r.u53();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn new SubscribeOk({\n\t\t\tpriority,\n\t\t\tordered,\n\t\t\tmaxLatency,\n\t\t\tstartGroup: startGroup !== undefined && startGroup > 0 ? startGroup - 1 : undefined,\n\t\t\tendGroup: endGroup !== undefined && endGroup > 0 ? endGroup - 1 : undefined,\n\t\t});\n\t}\n\n\tasync encode(w: Writer, version: Version): Promise<void> {\n\t\treturn Message.encode(w, (w) => this.#encode(w, version));\n\t}\n\n\tstatic async decode(r: Reader, version: Version): Promise<SubscribeOk> {\n\t\treturn Message.decode(r, SubscribeOk.#decode.bind(SubscribeOk, version));\n\t}\n}\n\n/**\n * Resolves the absolute start group of a Draft-05+ subscription. The first message\n * the publisher sends, once the start group is known. A value greater than the\n * requested start implicitly drops the leading range.\n */\nexport class SubscribeStart {\n\tgroup: number;\n\n\tconstructor(group: number) {\n\t\tthis.group = group;\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, async (w) => {\n\t\t\tawait w.u53(this.group);\n\t\t});\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeStart> {\n\t\treturn Message.decode(r, async (r) => new SubscribeStart(await r.u53()));\n\t}\n}\n\n/**\n * Signals that no group at or after `group` (exclusive upper bound) will be produced\n * on a Draft-05+ subscription. `0` means the track ended before producing any groups.\n */\nexport class SubscribeEnd {\n\t/** The exclusive final group sequence: the first sequence that will never be produced. */\n\tgroup: number;\n\n\tconstructor(group: number) {\n\t\tthis.group = group;\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, async (w) => {\n\t\t\tawait w.u53(this.group);\n\t\t});\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeEnd> {\n\t\treturn Message.decode(r, async (r) => new SubscribeEnd(await r.u53()));\n\t}\n}\n\n/// Indicates that one or more groups have been dropped.\n///\n/// Draft03+ only.\nexport class SubscribeDrop {\n\tstart: number;\n\tend: number;\n\terror: number;\n\n\tconstructor(props: { start: number; end: number; error: number }) {\n\t\tthis.start = props.start;\n\t\tthis.end = props.end;\n\t\tthis.error = props.error;\n\t}\n\n\tasync #encode(w: Writer) {\n\t\tawait w.u53(this.start);\n\t\tawait w.u53(this.end);\n\t\tawait w.u53(this.error);\n\t}\n\n\tstatic async #decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn new SubscribeDrop({ start: await r.u53(), end: await r.u53(), error: await r.u53() });\n\t}\n\n\tasync encode(w: Writer): Promise<void> {\n\t\treturn Message.encode(w, this.#encode.bind(this));\n\t}\n\n\tstatic async decode(r: Reader): Promise<SubscribeDrop> {\n\t\treturn Message.decode(r, SubscribeDrop.#decode);\n\t}\n}\n\n/**\n * A response message on the subscribe stream, prefixed with a type discriminator\n * on Draft-03+.\n *\n * The discriminator is version-dependent:\n * - Draft-03/04: `0x0` SUBSCRIBE_OK, `0x1` SUBSCRIBE_DROP.\n * - Draft-05+: `0x0` SUBSCRIBE_START, `0x1` SUBSCRIBE_END, `0x2` SUBSCRIBE_DROP\n * (SUBSCRIBE_OK was removed; acceptance is implicit).\n */\nexport type SubscribeResponse =\n\t| { ok: SubscribeOk }\n\t| { start: SubscribeStart }\n\t| { end: SubscribeEnd }\n\t| { drop: SubscribeDrop };\n\nexport async function encodeSubscribeResponse(w: Writer, resp: SubscribeResponse, version: Version): Promise<void> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"only SUBSCRIBE_OK is supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t\tcase Version.DRAFT_03:\n\t\tcase Version.DRAFT_04:\n\t\t\tif (\"ok\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.ok.encode(w, version);\n\t\t\t} else if (\"drop\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"SUBSCRIBE_START/END not supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// Draft-05+: SUBSCRIBE_OK is gone; START/END/DROP carry the resolved range.\n\t\t\tif (\"start\" in resp) {\n\t\t\t\tawait w.u53(0x0);\n\t\t\t\tawait resp.start.encode(w);\n\t\t\t} else if (\"end\" in resp) {\n\t\t\t\tawait w.u53(0x1);\n\t\t\t\tawait resp.end.encode(w);\n\t\t\t} else if (\"drop\" in resp) {\n\t\t\t\tawait w.u53(0x2);\n\t\t\t\tawait resp.drop.encode(w);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"SUBSCRIBE_OK not supported for this version\");\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\n\nexport async function decodeSubscribeResponse(r: Reader, version: Version): Promise<SubscribeResponse> {\n\tswitch (version) {\n\t\tcase Version.DRAFT_01:\n\t\tcase Version.DRAFT_02:\n\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\tcase Version.DRAFT_03:\n\t\tcase Version.DRAFT_04: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { ok: await SubscribeOk.decode(r, version) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t\tdefault: {\n\t\t\tconst typ = await r.u53();\n\t\t\tswitch (typ) {\n\t\t\t\tcase 0x0:\n\t\t\t\t\treturn { start: await SubscribeStart.decode(r) };\n\t\t\t\tcase 0x1:\n\t\t\t\t\treturn { end: await SubscribeEnd.decode(r) };\n\t\t\t\tcase 0x2:\n\t\t\t\t\treturn { drop: await SubscribeDrop.decode(r) };\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`unknown subscribe response type: ${typ}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/** Like {@link decodeSubscribeResponse} but resolves `undefined` on a clean FIN. */\nexport async function decodeSubscribeResponseMaybe(\n\tr: Reader,\n\tversion: Version,\n): Promise<SubscribeResponse | undefined> {\n\tif (await r.done()) return undefined;\n\treturn decodeSubscribeResponse(r, version);\n}\n"]}
|
package/lite/subscriber.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import { Signal } from "@norskvideo/moq-signals";
|
|
2
|
+
import * as announce from "../announced";
|
|
3
|
+
import * as broadcast from "../broadcast";
|
|
4
|
+
import type { Probe as ProbeStats } from "../connection/stats";
|
|
5
|
+
import * as netGroup from "../group";
|
|
6
|
+
import { type Origin } from "../origin";
|
|
5
7
|
import * as Path from "../path";
|
|
6
8
|
import { type Reader } from "../stream";
|
|
7
|
-
import type * as
|
|
9
|
+
import type * as track from "../track";
|
|
8
10
|
import type { Group as GroupMessage } from "./group";
|
|
9
|
-
import type
|
|
11
|
+
import { type Setup } from "./setup";
|
|
10
12
|
import { Version } from "./version";
|
|
11
13
|
/**
|
|
12
14
|
* Options accepted by {@link Subscriber.announced}.
|
|
@@ -14,18 +16,17 @@ import { Version } from "./version";
|
|
|
14
16
|
export interface AnnouncedOptions {
|
|
15
17
|
/**
|
|
16
18
|
* If true, skip announcements whose hop chain contains this connection's
|
|
17
|
-
* own origin id
|
|
19
|
+
* own origin id. Useful for meshes that reflect announces back. Defaults
|
|
18
20
|
* to false for backwards compatibility: existing code (notably hang.live)
|
|
19
21
|
* relies on seeing its own publishes as the signal that a namespace
|
|
20
22
|
* published successfully.
|
|
23
|
+
*
|
|
24
|
+
* Only meaningful on lite-04/05, where the peer filters reflected announces
|
|
25
|
+
* on request (ANNOUNCE_REQUEST's `Exclude Hop`). Later versions dropped that
|
|
26
|
+
* field, so reflected announces are always skipped.
|
|
21
27
|
*/
|
|
22
28
|
ignoreSelf?: boolean;
|
|
23
29
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Handles subscribing to broadcasts and managing their lifecycle.
|
|
26
|
-
*
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
30
|
export declare class Subscriber {
|
|
30
31
|
#private;
|
|
31
32
|
readonly version: Version;
|
|
@@ -35,26 +36,32 @@ export declare class Subscriber {
|
|
|
35
36
|
* @param quic - The WebTransport session to use
|
|
36
37
|
* @param version - The protocol version
|
|
37
38
|
* @param origin - Origin id shared with the Publisher
|
|
38
|
-
* @param
|
|
39
|
-
* @param
|
|
39
|
+
* @param probe - Optional sink for the peer's PROBE estimates
|
|
40
|
+
* @param peerSetup - Optional peer SETUP slot for capability gating (lite-05+)
|
|
40
41
|
*
|
|
41
42
|
* @internal
|
|
42
43
|
*/
|
|
43
|
-
constructor(quic: WebTransport, version: Version, origin: Origin,
|
|
44
|
+
constructor(quic: WebTransport, version: Version, origin: Origin, probe?: Signal<ProbeStats>, peerSetup?: Signal<Setup | undefined>);
|
|
44
45
|
/**
|
|
45
46
|
* Subscribe to broadcast announcements under `prefix`.
|
|
46
47
|
*
|
|
47
48
|
* Pass `{ ignoreSelf: true }` to skip announces that have already traversed
|
|
48
49
|
* this connection's {@link origin}.
|
|
49
50
|
*/
|
|
50
|
-
announced(prefix?: Path.Valid, options?: AnnouncedOptions):
|
|
51
|
+
announced(prefix?: Path.Valid, options?: AnnouncedOptions): announce.Consumer;
|
|
51
52
|
/**
|
|
52
53
|
* Consumes a broadcast from the connection.
|
|
53
54
|
*
|
|
55
|
+
* Deduplicated per path: repeat calls for the same still-live path share one reference-counted
|
|
56
|
+
* broadcast (and one upstream subscription). The shared broadcast closes once every caller has
|
|
57
|
+
* closed its handle, so callers close normally.
|
|
58
|
+
*
|
|
54
59
|
* @param name - The name of the broadcast to consume
|
|
55
60
|
* @returns A Broadcast instance
|
|
56
61
|
*/
|
|
57
|
-
consume(path: Path.Valid):
|
|
62
|
+
consume(path: Path.Valid): broadcast.Consumer;
|
|
63
|
+
resolveTrackInfo(broadcast: Path.Valid, track: string): Promise<track.Info>;
|
|
64
|
+
fetchGroup(broadcast: Path.Valid, track: string, sequence: number, options?: track.FetchGroupOptions): Promise<netGroup.Consumer>;
|
|
58
65
|
/**
|
|
59
66
|
* Handles a group message.
|
|
60
67
|
* @param group - The group message
|
|
@@ -64,16 +71,15 @@ export declare class Subscriber {
|
|
|
64
71
|
*/
|
|
65
72
|
runGroup(group: GroupMessage, stream: Reader): Promise<void>;
|
|
66
73
|
/**
|
|
67
|
-
*
|
|
68
|
-
* Returns immediately if recv bandwidth is not supported.
|
|
74
|
+
* Receives QUIC datagrams and routes each to its subscription's track producer (lite-05 §6.4).
|
|
69
75
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* cleared so consumers see them as stale.
|
|
76
|
+
* Returns immediately on a non-datagram transport or pre-lite-05 version. A decode error or an
|
|
77
|
+
* unknown subscribe id drops that datagram without tearing down the session (best-effort); the
|
|
78
|
+
* loop ends only when the datagram stream closes.
|
|
74
79
|
*
|
|
75
80
|
* @internal
|
|
76
81
|
*/
|
|
82
|
+
runDatagrams(): Promise<void>;
|
|
77
83
|
runProbe(): Promise<void>;
|
|
78
84
|
close(): void;
|
|
79
85
|
}
|
package/lite/subscriber.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/lite/subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"subscriber.d.ts","sourceRoot":"","sources":["../../src/lite/subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAC;AAM1C,OAAO,KAAK,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAIpD,OAAO,EAON,OAAO,EACP,MAAM,cAAc,CAAC;AA0BtB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAwCD,qBAAa,UAAU;;IAItB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAyBxB;;;;;;;;;OASG;IACH,YACC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,EAOrC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAM,aAAe,EAAE,OAAO,GAAE,gBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAIlF;IAsPD;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAE5C;IAgMK,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAKhF;IAID,UAAU,CACT,SAAS,EAAE,IAAI,CAAC,KAAK,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,KAAK,CAAC,iBAAsB,GACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAgB5B;IA2JD;;;;;;OAMG;IACG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBA4DjD;IAED;;;;;;;;OAQG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAkClC;IAwCK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C9B;IAED,KAAK,SAQJ;CACD"}
|