@blockcast/mmt-base 0.4.0-main.3b76df919af4 → 0.4.0-main.3ce0fa24e37d

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.
@@ -35,12 +35,27 @@ export declare const ED25519_PUBLIC_KEY_BASE64URL: RegExp;
35
35
  * inconsistent here: a bearer is a `networkSource`, never a protocol.
36
36
  */
37
37
  export declare function multicastEndpointSource(endpoint: unknown): MulticastEndpointSource | undefined;
38
+ /**
39
+ * Where a catalog object carries the namespace of the catalog track it was
40
+ * read from. A symbol, so it is never wire data and survives object spread;
41
+ * `Symbol.for`, so two bundled copies of this module agree on it.
42
+ */
43
+ export declare const CATALOG_NAMESPACE: unique symbol;
44
+ /**
45
+ * `catalog` tagged with the namespace of its catalog track. Every receiver
46
+ * rule that takes the catalog (`multicastCatalogIssues`,
47
+ * `admittedMulticastEndpoints` and the transport selectors built on them)
48
+ * then judges the foreign-namespace rule against it, independent of track
49
+ * order. Tag once, where the catalog track is read.
50
+ */
51
+ export declare function withCatalogNamespace<T extends object>(catalog: T, namespace: string): T;
38
52
  /**
39
53
  * Every draft -01 4.1 / 7.2.6 violation in `catalog.multicast`, in document
40
54
  * order. Packet-id, group-address and track-existence rules are not here; the
41
55
  * container validator and the receivers already check those.
42
56
  *
43
- * `catalogNamespace` is the namespace of the catalog track. Without it the
57
+ * `catalogNamespace` is the namespace of the catalog track, from `options` or else the
58
+ * catalog's `withCatalogNamespace` tag. Without it the
44
59
  * foreign-namespace rule can only compare listed tracks with each other: the
45
60
  * first listed track's namespace becomes the reference, so which side of a
46
61
  * disagreement is dropped depends on order. It still fails closed; pass
@@ -1 +1 @@
1
- {"version":3,"file":"multicast-catalog.d.ts","sourceRoot":"","sources":["../src/multicast-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9C;uEACuE;AACvE,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,yBAAyB,GAClC,gBAAgB,GAChB,oBAAoB,GACpB,yBAAyB,GACzB,iBAAiB,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,yBAAyB,CAAC;IAChC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;sEACkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,yDAAyD;AACzD,eAAO,MAAM,4BAA4B,QAA0C,CAAC;AA4BpF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAY9F;AAqFD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACzC,qBAAqB,EAAE,CA2HzB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACzC,WAAW,CAAC,MAAM,CAAC,CAOrB"}
1
+ {"version":3,"file":"multicast-catalog.d.ts","sourceRoot":"","sources":["../src/multicast-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9C;uEACuE;AACvE,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,yBAAyB,GAClC,gBAAgB,GAChB,oBAAoB,GACpB,yBAAyB,GACzB,iBAAiB,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,yBAAyB,CAAC;IAChC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;sEACkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,yDAAyD;AACzD,eAAO,MAAM,4BAA4B,QAA0C,CAAC;AA4BpF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAY9F;AAqFD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,MAA2D,CAAC;AAEnG;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAEvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACzC,qBAAqB,EAAE,CAkIzB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACzC,WAAW,CAAC,MAAM,CAAC,CAOrB"}
@@ -140,12 +140,29 @@ function endpointAuthIssue(endpoint, mode, at) {
140
140
  }
141
141
  return undefined;
142
142
  }
143
+ /**
144
+ * Where a catalog object carries the namespace of the catalog track it was
145
+ * read from. A symbol, so it is never wire data and survives object spread;
146
+ * `Symbol.for`, so two bundled copies of this module agree on it.
147
+ */
148
+ export const CATALOG_NAMESPACE = Symbol.for("@blockcast/mmt-base/catalogNamespace");
149
+ /**
150
+ * `catalog` tagged with the namespace of its catalog track. Every receiver
151
+ * rule that takes the catalog (`multicastCatalogIssues`,
152
+ * `admittedMulticastEndpoints` and the transport selectors built on them)
153
+ * then judges the foreign-namespace rule against it, independent of track
154
+ * order. Tag once, where the catalog track is read.
155
+ */
156
+ export function withCatalogNamespace(catalog, namespace) {
157
+ return { ...catalog, [CATALOG_NAMESPACE]: namespace };
158
+ }
143
159
  /**
144
160
  * Every draft -01 4.1 / 7.2.6 violation in `catalog.multicast`, in document
145
161
  * order. Packet-id, group-address and track-existence rules are not here; the
146
162
  * container validator and the receivers already check those.
147
163
  *
148
- * `catalogNamespace` is the namespace of the catalog track. Without it the
164
+ * `catalogNamespace` is the namespace of the catalog track, from `options` or else the
165
+ * catalog's `withCatalogNamespace` tag. Without it the
149
166
  * foreign-namespace rule can only compare listed tracks with each other: the
150
167
  * first listed track's namespace becomes the reference, so which side of a
151
168
  * disagreement is dropped depends on order. It still fails closed; pass
@@ -179,7 +196,8 @@ export function multicastCatalogIssues(catalog, options = {}) {
179
196
  if (isObject(track) && typeof track["name"] === "string")
180
197
  namespaceOf.set(track["name"], track["namespace"]);
181
198
  }
182
- let referenceNamespace = options.catalogNamespace;
199
+ const tagged = catalog[CATALOG_NAMESPACE];
200
+ let referenceNamespace = options.catalogNamespace ?? (typeof tagged === "string" ? tagged : undefined);
183
201
  const sources = [];
184
202
  for (let index = 0; index < endpoints.length; index++) {
185
203
  const endpoint = endpoints[index];
@@ -214,6 +232,12 @@ export function multicastCatalogIssues(catalog, options = {}) {
214
232
  fail("multicast_endpoint", `${at}.protocol`, `protocol ${JSON.stringify(protocol)} disagrees with sourceAddress, which selects ${mode}`);
215
233
  continue;
216
234
  }
235
+ // The (S, G, port) rule below compares ports with ===, so only an
236
+ // integer may reach it: "5001" and 5001 would otherwise both pass.
237
+ if (!isIntegerIn(endpoint["port"], 1, 65535)) {
238
+ fail("multicast_endpoint", `${at}.port`, "port must be an integer from 1 to 65535");
239
+ continue;
240
+ }
217
241
  if (hasAuth) {
218
242
  const authIssue = endpointAuthIssue(endpoint, mode, at);
219
243
  if (authIssue) {
@@ -1 +1 @@
1
- {"version":3,"file":"multicast-catalog.js","sourceRoot":"","sources":["../src/multicast-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multicast-catalog.js","sourceRoot":"","sources":["../src/multicast-catalog.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.3b76df919af4",
3
+ "version": "0.4.0-main.3ce0fa24e37d",
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",
@@ -167,12 +167,31 @@ function endpointAuthIssue(
167
167
  return undefined;
168
168
  }
169
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
+
170
188
  /**
171
189
  * Every draft -01 4.1 / 7.2.6 violation in `catalog.multicast`, in document
172
190
  * order. Packet-id, group-address and track-existence rules are not here; the
173
191
  * container validator and the receivers already check those.
174
192
  *
175
- * `catalogNamespace` is the namespace of the catalog track. Without it the
193
+ * `catalogNamespace` is the namespace of the catalog track, from `options` or else the
194
+ * catalog's `withCatalogNamespace` tag. Without it the
176
195
  * foreign-namespace rule can only compare listed tracks with each other: the
177
196
  * first listed track's namespace becomes the reference, so which side of a
178
197
  * disagreement is dropped depends on order. It still fails closed; pass
@@ -205,7 +224,8 @@ export function multicastCatalogIssues(
205
224
  for (const track of tracks) {
206
225
  if (isObject(track) && typeof track["name"] === "string") namespaceOf.set(track["name"], track["namespace"]);
207
226
  }
208
- let referenceNamespace = options.catalogNamespace;
227
+ const tagged = (catalog as { [CATALOG_NAMESPACE]?: unknown })[CATALOG_NAMESPACE];
228
+ let referenceNamespace = options.catalogNamespace ?? (typeof tagged === "string" ? tagged : undefined);
209
229
 
210
230
  const sources: Array<MulticastEndpointSource | undefined> = [];
211
231
  for (let index = 0; index < endpoints.length; index++) {
@@ -245,6 +265,12 @@ export function multicastCatalogIssues(
245
265
  fail("multicast_endpoint", `${at}.protocol`, `protocol ${JSON.stringify(protocol)} disagrees with sourceAddress, which selects ${mode}`);
246
266
  continue;
247
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
+ }
248
274
  if (hasAuth) {
249
275
  const authIssue = endpointAuthIssue(endpoint, mode, at);
250
276
  if (authIssue) {