@blockcast/mmt-base 0.4.0-main.bbd83cb48eff → 0.4.0-main.bbdfdbf39ded

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.
@@ -1 +1 @@
1
- {"version":3,"file":"signalling.js","sourceRoot":"","sources":["../src/signalling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signalling.js","sourceRoot":"","sources":["../src/signalling.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockcast/mmt-base",
3
- "version": "0.4.0-main.bbd83cb48eff",
3
+ "version": "0.4.0-main.bbdfdbf39ded",
4
4
  "description": "Shared MMTP parsing primitives and protocol constants (zero FEC dependency). Hosts MMTP_HEADER_SIZE, parseMMTPHeader, extractMFUPayload and friends, plus wire constants such as DEFAULT_AMT_RELAY_PORT, so @blockcast/mmt-fec, @blockcast/mmt-container and @blockcast/mmt-transport can share one definition without a circular dep.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -126,8 +126,9 @@ export function isoBlockSpanUsable(fec: unknown): boolean {
126
126
  * (draft-ramadan-moq-fec §5.1): the decision the container's
127
127
  * `catalogFecUnavailable` explains with a typed reason.
128
128
  *
129
- * False when the block declares an FEC instance (any `algorithm` but `"none"`)
130
- * and names no implemented `blockProfile` (the retired `k-padded-v1`
129
+ * False when the block's `algorithm` is a token this receiver does not
130
+ * implement (`fecAlgorithmUnimplemented`); when it declares an FEC instance
131
+ * (any `algorithm` but `"none"`) and names no implemented `blockProfile` (the retired `k-padded-v1`
131
132
  * included), or carries an `iso-ssbg1-v1` span it cannot use; and when a block
132
133
  * declaring no FEC instance carries a profile token that is not implemented.
133
134
  * True for a non-object and for every other block. It reads only the profile
@@ -140,25 +141,43 @@ export function isoBlockSpanUsable(fec: unknown): boolean {
140
141
  export function catalogFecAvailable(fec: unknown): boolean {
141
142
  const block = recordOf(fec)
142
143
  if (block === undefined) return true
144
+ if (fecAlgorithmUnimplemented(block['algorithm'])) return false
143
145
  const declaresFecInstance = block['algorithm'] !== 'none'
144
146
  const profile = block['blockProfile']
145
147
  const profileOk = isFecBlockProfile(profile) || (profile === undefined && !declaresFecInstance)
146
148
  return profileOk && (!declaresFecInstance || isoBlockSpanUsable(block))
147
149
  }
148
150
 
151
+ /**
152
+ * Whether `algorithm` is a token this receiver does not implement
153
+ * (draft-ramadan-moq-fec-01 4): any string but `none`, `raptorq` and
154
+ * `reed-solomon`. Such a track is consumed without FEC and its repair tracks
155
+ * are not joined; the catalog is not in error. An absent algorithm is not a
156
+ * token (the hang dialect omits it) and stays implemented.
157
+ */
158
+ export function fecAlgorithmUnimplemented(algorithm: unknown): boolean {
159
+ return typeof algorithm === 'string' && algorithm !== 'none' && algorithm !== 'raptorq' && algorithm !== 'reed-solomon'
160
+ }
161
+
149
162
  function isPositiveSafeInteger(value: unknown): boolean {
150
163
  return typeof value === 'number' && Number.isSafeInteger(value) && value > 0
151
164
  }
152
165
 
166
+ /** Smallest `symbolSize` under `iso-ssbg1-v1` (draft-ramadan-moq-fec-01 5.1, 6.3.4 rule 13). */
167
+ export const ISO_SSBG1_MIN_SYMBOL_SIZE = 14
168
+
153
169
  /**
154
170
  * Whether a source's `fec` block declares an FEC instance (any `algorithm`
155
171
  * but `"none"`) whose `sourceSymbols` or `symbolSize` is not a positive
156
- * integer. Geometry a decoder cannot configure is a malformed catalog, not
172
+ * integer, or whose `iso-ssbg1-v1` `symbolSize` is below
173
+ * `ISO_SSBG1_MIN_SYMBOL_SIZE` (rule 13: such a symbol carries no protected
174
+ * MMTP packet). Geometry a decoder cannot configure is a malformed catalog, not
157
175
  * "no FEC": the container's per-track resolver throws `track_fec` for exactly
158
176
  * this block, whatever its profile or span.
159
177
  */
160
178
  export function catalogFecDeclaresUnconfigurableInstance(fec: unknown): boolean {
161
179
  const block = recordOf(fec)
162
- if (block === undefined || block['algorithm'] === 'none') return false
163
- return !(isPositiveSafeInteger(block['sourceSymbols']) && isPositiveSafeInteger(block['symbolSize']))
180
+ if (block === undefined || block['algorithm'] === 'none' || fecAlgorithmUnimplemented(block['algorithm'])) return false
181
+ if (!(isPositiveSafeInteger(block['sourceSymbols']) && isPositiveSafeInteger(block['symbolSize']))) return true
182
+ return block['blockProfile'] === 'iso-ssbg1-v1' && (block['symbolSize'] as number) < ISO_SSBG1_MIN_SYMBOL_SIZE
164
183
  }
package/src/index.ts CHANGED
@@ -5,3 +5,4 @@ export * from './signalling.js'
5
5
  export * from './serial-number.js'
6
6
  export * from './fec-block-profile.js'
7
7
  export * from './catalog-fec-source.js'
8
+ export * from './multicast-catalog.js'
package/src/mmtp.ts CHANGED
@@ -96,9 +96,10 @@ export const MMTP_SIGNALING_PACKET_ID = 0
96
96
  /** Largest value of the 16-bit MMTP `packet_id` header field. */
97
97
  export const MMTP_PACKET_ID_MAX = 0xffff
98
98
 
99
- // FEC Code IDs
100
- export const FEC_CODE_XOR = 1
101
- export const FEC_CODE_RAPTORQ = 2
99
+ // fec_code_id_for_repair_flow code points (ISO/IEC 23008-10 Table 1;
100
+ // draft-ramadan-moq-mmt-01 Section 8.3).
101
+ export const FEC_CODE_REED_SOLOMON = 1
102
+ export const FEC_CODE_RAPTORQ = 3
102
103
 
103
104
  /**
104
105
  * Parse MMTP header from buffer
@@ -479,7 +480,7 @@ export interface MFUExtraction {
479
480
  * from the payload boundary, even if fecType >= 1 in the MMTP header. Use this for
480
481
  * FEC-recovered symbols where the FEC PID was already stripped before WASM decoding
481
482
  * but the fecType bits in byte 0 still reflect the original packet (FEC Type=1 per
482
- * draft-ramadan-moq-mmt-00 §3.1).
483
+ * draft-ramadan-moq-mmt-01 §3.1).
483
484
  * @param options.overlayDeclared The catalog declares a keyframe overlay for this
484
485
  * source, so a RAP packet carries an 8-byte trailer (see MFUExtractOptions).
485
486
  * @returns Extracted MFU data + metadata, or null if packet is too small
@@ -0,0 +1,350 @@
1
+ /**
2
+ * The draft-ramadan-moq-multicast-01 endpoint and `auth` rules, written once
3
+ * for both sides of the catalog: `validateCmsfMmtpCatalog` in
4
+ * `@blockcast/mmt-container` throws the first issue, and the receivers in
5
+ * `@blockcast/mmt-transport` ignore every endpoint an issue names (all of
6
+ * them when the issue is catalog-level). It lives here because mmt-base is
7
+ * the only package both depend on.
8
+ *
9
+ * Draft: Blockcast/moqcast-draft@fd962fd73d21ed281b60219c11ea61cc9e4e91c4
10
+ * (PR #2 head; normative text equal to 3162ef93), sections 4.1 and 7.2.6.
11
+ */
12
+
13
+ export type MulticastJoinMode = "ssm" | "asm";
14
+
15
+ /** An endpoint's join mode and `S` (4.1): `sourceAddress` on SSM,
16
+ * `auth.senderAddress` on protected ASM, absent on unprotected ASM. */
17
+ export interface MulticastEndpointSource {
18
+ mode: MulticastJoinMode;
19
+ source?: string;
20
+ }
21
+
22
+ export type MulticastCatalogIssueCode =
23
+ | "multicast_auth"
24
+ | "multicast_endpoint"
25
+ | "multicast_endpoint_auth"
26
+ | "multicast_track";
27
+
28
+ export interface MulticastCatalogIssue {
29
+ code: MulticastCatalogIssueCode;
30
+ /** JSONPath of the offending field. */
31
+ path: string;
32
+ message: string;
33
+ /** Endpoint the issue makes a receiver ignore; absent for a catalog-level
34
+ * issue, which leaves the receiver no endpoint at all (7.2.6). */
35
+ endpointIndex?: number;
36
+ }
37
+
38
+ /** Canonical unpadded base64url of exactly 32 octets. */
39
+ export const ED25519_PUBLIC_KEY_BASE64URL = /^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/;
40
+
41
+ const UINT32_MAX = 0xffff_ffff;
42
+ const AUTH_MEMBERS = new Set(["scheme", "version", "sig", "keys", "minEpoch"]);
43
+ const KEY_MEMBERS = new Set(["kid", "publicKey", "firstEpoch"]);
44
+ const ENDPOINT_AUTH_MEMBERS = new Set([
45
+ "manifestPort",
46
+ "streamId",
47
+ "senderAddress",
48
+ "maxAuthDelayMs",
49
+ "manifestTimerMs",
50
+ "manifestTrack",
51
+ ]);
52
+
53
+ type JsonObject = Record<string, unknown>;
54
+
55
+ function isObject(value: unknown): value is JsonObject {
56
+ return typeof value === "object" && value !== null && !Array.isArray(value);
57
+ }
58
+
59
+ function isNonEmptyString(value: unknown): value is string {
60
+ return typeof value === "string" && value.trim().length > 0;
61
+ }
62
+
63
+ function isIntegerIn(value: unknown, min: number, max: number): value is number {
64
+ return Number.isSafeInteger(value) && (value as number) >= min && (value as number) <= max;
65
+ }
66
+
67
+ /**
68
+ * Join mode and `S` of one endpoint, or `undefined` when its fields disagree
69
+ * and a receiver must ignore it (4.1). `sourceAddress` alone selects the mode;
70
+ * `protocol` may only restate it, so "amt" and "atsc3" (draft -00) are
71
+ * inconsistent here: a bearer is a `networkSource`, never a protocol.
72
+ */
73
+ export function multicastEndpointSource(endpoint: unknown): MulticastEndpointSource | undefined {
74
+ if (!isObject(endpoint)) return undefined;
75
+ const sourceAddress = endpoint["sourceAddress"];
76
+ if (sourceAddress !== undefined && !isNonEmptyString(sourceAddress)) return undefined;
77
+ const mode: MulticastJoinMode = sourceAddress === undefined ? "asm" : "ssm";
78
+ const protocol = endpoint["protocol"];
79
+ if (protocol !== undefined && protocol !== mode) return undefined;
80
+ const auth = endpoint["auth"];
81
+ const senderAddress = isObject(auth) ? auth["senderAddress"] : undefined;
82
+ if (mode === "ssm") return senderAddress === undefined ? { mode, source: sourceAddress as string } : undefined;
83
+ if (auth === undefined) return { mode };
84
+ return isNonEmptyString(senderAddress) ? { mode, source: senderAddress } : undefined;
85
+ }
86
+
87
+ function authIssues(auth: unknown): MulticastCatalogIssue[] {
88
+ const base = "$.multicast.auth";
89
+ const issue = (path: string, message: string): MulticastCatalogIssue[] => [
90
+ { code: "multicast_auth", path: `${base}${path}`, message },
91
+ ];
92
+ if (!isObject(auth)) return issue("", "auth must be an object");
93
+ const unknown = Object.keys(auth).filter(key => !AUTH_MEMBERS.has(key));
94
+ if (unknown.length > 0) {
95
+ return issue("", `auth has unknown member(s) ${unknown.join(", ")}; draft -01 7.2.6 defines scheme, version, sig, keys and minEpoch`);
96
+ }
97
+ if (auth["scheme"] !== "bc-provenance") return issue(".scheme", 'scheme must be "bc-provenance"');
98
+ if (auth["version"] !== 2) return issue(".version", "version must be 2 (bc-provenance version 2, draft -01 7.2)");
99
+ if (auth["sig"] !== "ed25519") return issue(".sig", 'sig must be "ed25519"');
100
+ const keys = auth["keys"];
101
+ if (!Array.isArray(keys) || keys.length < 1 || keys.length > 4) {
102
+ return issue(".keys", "keys must be an array of one to four {kid, publicKey, firstEpoch} objects");
103
+ }
104
+ const kids = new Set<number>();
105
+ const firstEpochs = new Set<number>();
106
+ for (let index = 0; index < keys.length; index++) {
107
+ const key = keys[index];
108
+ const at = `.keys[${index}]`;
109
+ if (!isObject(key) || Object.keys(key).some(member => !KEY_MEMBERS.has(member))) {
110
+ return issue(at, "a key is exactly {kid, publicKey, firstEpoch}");
111
+ }
112
+ if (!isIntegerIn(key["kid"], 0, UINT32_MAX)) return issue(`${at}.kid`, "kid must be an unsigned 32-bit integer");
113
+ if (typeof key["publicKey"] !== "string" || !ED25519_PUBLIC_KEY_BASE64URL.test(key["publicKey"])) {
114
+ return issue(`${at}.publicKey`, "publicKey must be a 32-octet Ed25519 key in canonical unpadded base64url");
115
+ }
116
+ if (!isIntegerIn(key["firstEpoch"], 0, UINT32_MAX)) {
117
+ return issue(`${at}.firstEpoch`, "firstEpoch must be an unsigned 32-bit integer");
118
+ }
119
+ // A repeated kid or firstEpoch leaves no key set (7.2.6): fail the whole
120
+ // block, never fall back to unauthenticated reception.
121
+ if (kids.has(key["kid"])) return issue(`${at}.kid`, `kid ${key["kid"]} is repeated; the catalog holds no key set`);
122
+ if (firstEpochs.has(key["firstEpoch"])) {
123
+ return issue(`${at}.firstEpoch`, `firstEpoch ${key["firstEpoch"]} is repeated; the catalog holds no key set`);
124
+ }
125
+ kids.add(key["kid"]);
126
+ firstEpochs.add(key["firstEpoch"]);
127
+ }
128
+ if (!isIntegerIn(auth["minEpoch"], 0, UINT32_MAX)) {
129
+ return issue(".minEpoch", "minEpoch must be an unsigned 32-bit integer");
130
+ }
131
+ return [];
132
+ }
133
+
134
+ function endpointAuthIssue(
135
+ endpoint: JsonObject,
136
+ mode: MulticastJoinMode,
137
+ at: string,
138
+ ): { path: string; message: string } | undefined {
139
+ const auth = endpoint["auth"];
140
+ if (!isObject(auth)) return { path: `${at}.auth`, message: "auth must be an object" };
141
+ const unknown = Object.keys(auth).filter(key => !ENDPOINT_AUTH_MEMBERS.has(key));
142
+ if (unknown.length > 0) return { path: `${at}.auth`, message: `auth has unknown member(s) ${unknown.join(", ")}` };
143
+ if (!isIntegerIn(auth["manifestPort"], 1, 65535)) {
144
+ return { path: `${at}.auth.manifestPort`, message: "manifestPort must be an integer from 1 to 65535" };
145
+ }
146
+ if (!isIntegerIn(auth["streamId"], 0, UINT32_MAX)) {
147
+ return { path: `${at}.auth.streamId`, message: "streamId must be an unsigned 32-bit integer" };
148
+ }
149
+ if (mode === "ssm" && auth["senderAddress"] !== undefined) {
150
+ return { path: `${at}.auth.senderAddress`, message: "senderAddress must not appear on an SSM endpoint; S is sourceAddress" };
151
+ }
152
+ if (mode === "asm" && !isNonEmptyString(auth["senderAddress"])) {
153
+ return { path: `${at}.auth.senderAddress`, message: "a protected ASM endpoint requires senderAddress" };
154
+ }
155
+ if (auth["maxAuthDelayMs"] !== undefined && !isIntegerIn(auth["maxAuthDelayMs"], 50, 1000)) {
156
+ return { path: `${at}.auth.maxAuthDelayMs`, message: "maxAuthDelayMs must be an integer from 50 to 1000" };
157
+ }
158
+ if (auth["manifestTimerMs"] !== undefined && !isIntegerIn(auth["manifestTimerMs"], 1, Number.MAX_SAFE_INTEGER)) {
159
+ return { path: `${at}.auth.manifestTimerMs`, message: "manifestTimerMs must be an integer of at least 1" };
160
+ }
161
+ if (auth["manifestTrack"] !== undefined && !isNonEmptyString(auth["manifestTrack"])) {
162
+ return { path: `${at}.auth.manifestTrack`, message: "manifestTrack must be a non-empty string" };
163
+ }
164
+ if (!isIntegerIn(endpoint["bandwidth"], 1, Number.MAX_SAFE_INTEGER)) {
165
+ return { path: `${at}.bandwidth`, message: "a protected endpoint requires bandwidth, which bounds the receiver's hold queues" };
166
+ }
167
+ return undefined;
168
+ }
169
+
170
+ /**
171
+ * Where a catalog object carries the namespace of the catalog track it was
172
+ * read from. A symbol, so it is never wire data and survives object spread;
173
+ * `Symbol.for`, so two bundled copies of this module agree on it.
174
+ */
175
+ export const CATALOG_NAMESPACE: unique symbol = Symbol.for("@blockcast/mmt-base/catalogNamespace");
176
+
177
+ /**
178
+ * `catalog` tagged with the namespace of its catalog track. Every receiver
179
+ * rule that takes the catalog (`multicastCatalogIssues`,
180
+ * `admittedMulticastEndpoints` and the transport selectors built on them)
181
+ * then judges the foreign-namespace rule against it, independent of track
182
+ * order. Tag once, where the catalog track is read.
183
+ */
184
+ export function withCatalogNamespace<T extends object>(catalog: T, namespace: string): T {
185
+ return { ...catalog, [CATALOG_NAMESPACE]: namespace };
186
+ }
187
+
188
+ /**
189
+ * Every draft -01 4.1 / 7.2.6 violation in `catalog.multicast`, in document
190
+ * order. Packet-id, group-address and track-existence rules are not here; the
191
+ * container validator and the receivers already check those.
192
+ *
193
+ * `catalogNamespace` is the namespace of the catalog track, from `options` or else the
194
+ * catalog's `withCatalogNamespace` tag. Without it the
195
+ * foreign-namespace rule can only compare listed tracks with each other: the
196
+ * first listed track's namespace becomes the reference, so which side of a
197
+ * disagreement is dropped depends on order. It still fails closed; pass
198
+ * `catalogNamespace` wherever the catalog track is known.
199
+ */
200
+ export function multicastCatalogIssues(
201
+ catalog: unknown,
202
+ options: { catalogNamespace?: string } = {},
203
+ ): MulticastCatalogIssue[] {
204
+ if (!isObject(catalog)) return [];
205
+ const issues: MulticastCatalogIssue[] = [];
206
+ if ("multicast.auth" in catalog) {
207
+ // Fail closed: a draft -00 publisher meant the flow to be protected, and
208
+ // the key it names verifies nothing in bc-provenance version 2.
209
+ issues.push({
210
+ code: "multicast_auth",
211
+ path: '$["multicast.auth"]',
212
+ message: 'the root "multicast.auth" key is retired; declare auth as multicast.auth (draft -01 7.2.6)',
213
+ });
214
+ }
215
+ const multicast = catalog["multicast"];
216
+ if (!isObject(multicast)) return issues;
217
+ const protectedCatalog = multicast["auth"] !== undefined;
218
+ if (protectedCatalog) issues.push(...authIssues(multicast["auth"]));
219
+ const endpoints = multicast["endpoints"];
220
+ if (!Array.isArray(endpoints)) return issues;
221
+
222
+ const tracks = Array.isArray(catalog["tracks"]) ? catalog["tracks"] : [];
223
+ const namespaceOf = new Map<string, unknown>();
224
+ for (const track of tracks) {
225
+ if (isObject(track) && typeof track["name"] === "string") namespaceOf.set(track["name"], track["namespace"]);
226
+ }
227
+ const tagged = (catalog as { [CATALOG_NAMESPACE]?: unknown })[CATALOG_NAMESPACE];
228
+ let referenceNamespace = options.catalogNamespace ?? (typeof tagged === "string" ? tagged : undefined);
229
+
230
+ const sources: Array<MulticastEndpointSource | undefined> = [];
231
+ for (let index = 0; index < endpoints.length; index++) {
232
+ const endpoint = endpoints[index];
233
+ const at = `$.multicast.endpoints[${index}]`;
234
+ const fail = (code: MulticastCatalogIssueCode, path: string, message: string) => {
235
+ issues.push({ code, path, message, endpointIndex: index });
236
+ };
237
+ sources.push(undefined);
238
+ if (!isObject(endpoint)) {
239
+ fail("multicast_endpoint", at, "endpoint must be an object");
240
+ continue;
241
+ }
242
+ const protocol = endpoint["protocol"];
243
+ if (protocol !== undefined && protocol !== "ssm" && protocol !== "asm") {
244
+ fail("multicast_endpoint", `${at}.protocol`, `protocol must be "ssm" or "asm"; a bearer such as ${JSON.stringify(protocol)} is a networkSource entry (draft -01 4.2)`);
245
+ continue;
246
+ }
247
+ const hasAuth = endpoint["auth"] !== undefined;
248
+ if (protectedCatalog !== hasAuth) {
249
+ fail(
250
+ "multicast_endpoint_auth",
251
+ `${at}.auth`,
252
+ protectedCatalog
253
+ ? "every endpoint requires auth when multicast carries auth; a receiver ignores this endpoint"
254
+ : "auth names no key without multicast.auth; a receiver ignores this endpoint",
255
+ );
256
+ continue;
257
+ }
258
+ const sourceAddress = endpoint["sourceAddress"];
259
+ if (sourceAddress !== undefined && !isNonEmptyString(sourceAddress)) {
260
+ fail("multicast_endpoint", `${at}.sourceAddress`, "sourceAddress must be a non-empty string");
261
+ continue;
262
+ }
263
+ const mode: MulticastJoinMode = sourceAddress === undefined ? "asm" : "ssm";
264
+ if (protocol !== undefined && protocol !== mode) {
265
+ fail("multicast_endpoint", `${at}.protocol`, `protocol ${JSON.stringify(protocol)} disagrees with sourceAddress, which selects ${mode}`);
266
+ continue;
267
+ }
268
+ // The (S, G, port) rule below compares ports with ===, so only an
269
+ // integer may reach it: "5001" and 5001 would otherwise both pass.
270
+ if (!isIntegerIn(endpoint["port"], 1, 65535)) {
271
+ fail("multicast_endpoint", `${at}.port`, "port must be an integer from 1 to 65535");
272
+ continue;
273
+ }
274
+ if (hasAuth) {
275
+ const authIssue = endpointAuthIssue(endpoint, mode, at);
276
+ if (authIssue) {
277
+ fail("multicast_endpoint_auth", authIssue.path, authIssue.message);
278
+ continue;
279
+ }
280
+ }
281
+ sources[index] = multicastEndpointSource(endpoint);
282
+
283
+ const refs = Array.isArray(endpoint["tracks"]) ? endpoint["tracks"] : [];
284
+ for (let refIndex = 0; refIndex < refs.length; refIndex++) {
285
+ const ref = refs[refIndex];
286
+ const name = isObject(ref) ? ref["name"] : ref;
287
+ if (typeof name !== "string") continue;
288
+ const namespace = namespaceOf.get(name);
289
+ if (typeof namespace !== "string") continue;
290
+ referenceNamespace ??= namespace;
291
+ if (namespace !== referenceNamespace) {
292
+ fail("multicast_track", `${at}.tracks[${refIndex}].name`, `track ${JSON.stringify(name)} declares namespace ${JSON.stringify(namespace)}, not the catalog track's ${JSON.stringify(referenceNamespace)}`);
293
+ }
294
+ }
295
+ }
296
+
297
+ // One endpoint object per (S, G, port), and a manifestPort that is no port
298
+ // and no other manifestPort of its (S, G) (4.1, 7.2.6). The rule binds the
299
+ // endpoint whose manifestPort clashes; two equal tuples or two equal
300
+ // manifestPorts break it on both sides, so both are named.
301
+ const tupleOf = (index: number) => {
302
+ const endpoint = endpoints[index] as JsonObject;
303
+ const auth = endpoint["auth"];
304
+ return {
305
+ sg: JSON.stringify([sources[index]!.source ?? null, endpoint["groupAddress"]]),
306
+ port: endpoint["port"],
307
+ manifestPort: isObject(auth) ? auth["manifestPort"] : undefined,
308
+ };
309
+ };
310
+ for (let index = 0; index < endpoints.length; index++) {
311
+ if (!sources[index]) continue;
312
+ const own = tupleOf(index);
313
+ const at = `$.multicast.endpoints[${index}]`;
314
+ if (own.manifestPort !== undefined && own.manifestPort === own.port) {
315
+ issues.push({ code: "multicast_endpoint_auth", path: `${at}.auth.manifestPort`, message: "manifestPort must differ from the endpoint's own port", endpointIndex: index });
316
+ continue;
317
+ }
318
+ for (let other = 0; other < endpoints.length; other++) {
319
+ if (other === index || !sources[other]) continue;
320
+ const peer = tupleOf(other);
321
+ if (peer.sg !== own.sg) continue;
322
+ if (peer.port === own.port) {
323
+ issues.push({ code: "multicast_endpoint", path: `${at}.port`, message: `(S, G, port) is shared with endpoint ${other}; one endpoint object per multicast tuple`, endpointIndex: index });
324
+ break;
325
+ }
326
+ if (own.manifestPort !== undefined && (own.manifestPort === peer.port || own.manifestPort === peer.manifestPort)) {
327
+ issues.push({ code: "multicast_endpoint_auth", path: `${at}.auth.manifestPort`, message: `manifestPort is a port or manifestPort of endpoint ${other} on the same (S, G)`, endpointIndex: index });
328
+ break;
329
+ }
330
+ }
331
+ }
332
+ return issues;
333
+ }
334
+
335
+ /**
336
+ * Indices of the endpoints a receiver may use: none when a catalog-level
337
+ * issue leaves it no key set (7.2.6), otherwise every endpoint no issue
338
+ * names. Other receiver checks (group address, packet ids) still apply.
339
+ */
340
+ export function admittedMulticastEndpoints(
341
+ catalog: unknown,
342
+ options: { catalogNamespace?: string } = {},
343
+ ): ReadonlySet<number> {
344
+ const multicast = isObject(catalog) ? catalog["multicast"] : undefined;
345
+ const endpoints = isObject(multicast) && Array.isArray(multicast["endpoints"]) ? multicast["endpoints"] : [];
346
+ const issues = multicastCatalogIssues(catalog, options);
347
+ if (issues.some(issue => issue.endpointIndex === undefined)) return new Set();
348
+ const ignored = new Set(issues.map(issue => issue.endpointIndex));
349
+ return new Set(endpoints.map((_, index) => index).filter(index => !ignored.has(index)));
350
+ }