@blockcast/mmt-container 0.3.0 → 0.4.0-main.1e94b11199ea

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/README.md +33 -16
  2. package/dist/browser-runtime.js +14816 -14254
  3. package/dist/browser-runtime.js.map +4 -4
  4. package/dist/carp-catalog.d.ts +24 -19
  5. package/dist/carp-catalog.d.ts.map +1 -1
  6. package/dist/carp-catalog.js +32 -14
  7. package/dist/carp-catalog.js.map +4 -4
  8. package/dist/catalog-fec-params.d.ts +88 -28
  9. package/dist/catalog-fec-params.d.ts.map +1 -1
  10. package/dist/catalog-fec-params.js +60 -23
  11. package/dist/catalog-fec-params.js.map +4 -4
  12. package/dist/catalog-network-source.js +1 -7
  13. package/dist/catalog-network-source.js.map +4 -4
  14. package/dist/cmaf-block-assembler.d.ts +0 -2
  15. package/dist/cmaf-block-assembler.d.ts.map +1 -1
  16. package/dist/cmaf-block-assembler.js +0 -1
  17. package/dist/cmaf-block-assembler.js.map +2 -2
  18. package/dist/cmcd-producer.d.ts.map +1 -1
  19. package/dist/cmcd-producer.js +0 -4
  20. package/dist/cmcd-producer.js.map +2 -2
  21. package/dist/delivery-catalog.d.ts +124 -0
  22. package/dist/delivery-catalog.d.ts.map +1 -0
  23. package/dist/delivery-catalog.js +1857 -0
  24. package/dist/delivery-catalog.js.map +7 -0
  25. package/dist/delta-fallback-config.d.ts +42 -0
  26. package/dist/delta-fallback-config.d.ts.map +1 -0
  27. package/dist/delta-fallback-config.js +59 -0
  28. package/dist/delta-fallback-config.js.map +7 -0
  29. package/dist/fec-manager.d.ts +52 -30
  30. package/dist/fec-manager.d.ts.map +1 -1
  31. package/dist/fec-manager.js +338 -293
  32. package/dist/fec-manager.js.map +4 -4
  33. package/dist/fec-state.d.ts +19 -31
  34. package/dist/fec-state.d.ts.map +1 -1
  35. package/dist/fec-state.js +4 -10
  36. package/dist/fec-state.js.map +4 -4
  37. package/dist/fec-worker-setup.d.ts +18 -14
  38. package/dist/fec-worker-setup.d.ts.map +1 -1
  39. package/dist/fec-worker-setup.js +81 -96
  40. package/dist/fec-worker-setup.js.map +4 -4
  41. package/dist/index.d.ts +5 -3
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +16 -0
  44. package/dist/index.js.map +2 -2
  45. package/dist/iso-block-locator.js +1 -7
  46. package/dist/iso-block-locator.js.map +4 -4
  47. package/dist/media-router.d.ts +20 -8
  48. package/dist/media-router.d.ts.map +1 -1
  49. package/dist/media-router.js +46 -21
  50. package/dist/media-router.js.map +2 -2
  51. package/dist/mfu-reassembler.js +24 -30
  52. package/dist/mfu-reassembler.js.map +4 -4
  53. package/dist/mmtp-container-parser.d.ts +14 -11
  54. package/dist/mmtp-container-parser.d.ts.map +1 -1
  55. package/dist/mmtp-container-parser.js +126 -99
  56. package/dist/mmtp-container-parser.js.map +4 -4
  57. package/dist/mmtp-container-parser.no-modules.js +154 -108
  58. package/dist/mmtp-container-parser.no-modules.js.map +4 -4
  59. package/dist/mmtp-decode-pipeline.js +126 -99
  60. package/dist/mmtp-decode-pipeline.js.map +4 -4
  61. package/dist/mmtp-router.d.ts +51 -29
  62. package/dist/mmtp-router.d.ts.map +1 -1
  63. package/dist/mmtp-router.js +260 -326
  64. package/dist/mmtp-router.js.map +4 -4
  65. package/dist/multicast-input.js +1 -7
  66. package/dist/multicast-input.js.map +4 -4
  67. package/dist/multicast-manager.d.ts +72 -6
  68. package/dist/multicast-manager.d.ts.map +1 -1
  69. package/dist/multicast-manager.js +882 -673
  70. package/dist/multicast-manager.js.map +4 -4
  71. package/dist/multicast-transport.d.ts +1 -1
  72. package/dist/multicast-transport.d.ts.map +1 -1
  73. package/dist/multicast-transport.js +44 -26
  74. package/dist/multicast-transport.js.map +4 -4
  75. package/dist/multicast-unwrap.js +29 -35
  76. package/dist/multicast-unwrap.js.map +4 -4
  77. package/dist/no-modules.js +150 -106
  78. package/dist/no-modules.js.map +4 -4
  79. package/dist/repair-fetch.d.ts +116 -21
  80. package/dist/repair-fetch.d.ts.map +1 -1
  81. package/dist/repair-fetch.js +114 -34
  82. package/dist/repair-fetch.js.map +4 -4
  83. package/dist/repair-layers.d.ts +18 -7
  84. package/dist/repair-layers.d.ts.map +1 -1
  85. package/dist/repair-layers.js +12 -10
  86. package/dist/repair-layers.js.map +4 -4
  87. package/dist/signaling.js +2 -11
  88. package/dist/signaling.js.map +4 -4
  89. package/dist/timestamp-codec.js +24 -30
  90. package/dist/timestamp-codec.js.map +4 -4
  91. package/dist/track-session.d.ts +7 -0
  92. package/dist/track-session.d.ts.map +1 -1
  93. package/dist/track-session.js +15 -8
  94. package/dist/track-session.js.map +2 -2
  95. package/dist/wasm-mfu-reassembler.js +1 -7
  96. package/dist/wasm-mfu-reassembler.js.map +4 -4
  97. package/dist/wasm-mmtp-container-parser.js +126 -99
  98. package/dist/wasm-mmtp-container-parser.js.map +4 -4
  99. package/package.json +7 -14
  100. package/schemas/catalog.schema.json +3 -3
  101. package/src/carp-catalog.ts +51 -24
  102. package/src/catalog-fec-params.ts +173 -64
  103. package/src/cmaf-block-assembler.ts +1 -4
  104. package/src/cmcd-producer.ts +0 -6
  105. package/src/delivery-catalog.ts +498 -0
  106. package/src/delta-fallback-config.ts +72 -0
  107. package/src/fec-manager.ts +457 -334
  108. package/src/fec-state.ts +20 -32
  109. package/src/fec-worker-setup.ts +109 -90
  110. package/src/index.ts +32 -0
  111. package/src/media-router.ts +59 -21
  112. package/src/mmtp-container-parser.ts +106 -20
  113. package/src/mmtp-router.ts +189 -330
  114. package/src/multicast-manager.ts +265 -86
  115. package/src/multicast-transport.ts +16 -9
  116. package/src/repair-fetch.ts +273 -43
  117. package/src/repair-layers.ts +28 -8
  118. package/src/track-session.ts +28 -9
  119. package/test-vectors/catalog/README.md +44 -18
  120. package/test-vectors/catalog/negative/fec-block-profile-retired.json +52 -0
  121. package/test-vectors/catalog/negative/fec-enhancement-repair-removed.json +1 -1
  122. package/test-vectors/catalog/negative/fec-repair-layer-geometry.json +1 -1
  123. package/test-vectors/catalog/negative/fec-repair-layer-missing-symbols.json +1 -1
  124. package/test-vectors/catalog/negative/fec-repair-multiple-depends.json +1 -1
  125. package/test-vectors/catalog/negative/fec-repair-overlay-with-layer.json +1 -1
  126. package/test-vectors/catalog/negative/fec-repair-priority-out-of-band.json +1 -1
  127. package/test-vectors/catalog/negative/fec-repair-source-symbols-without-scope.json +1 -1
  128. package/test-vectors/catalog/negative/multicast-endpoint-relay-address.json +39 -0
  129. package/test-vectors/catalog/negative/multicast-network-source-empty.json +1 -1
  130. package/test-vectors/catalog/negative/raptorq-source-symbols-over-max.json +1 -1
  131. package/test-vectors/catalog/negative/raptorq-unaligned-symbol.json +2 -1
  132. package/test-vectors/catalog/positive/fec-layered-repair.json +2 -2
  133. package/test-vectors/catalog/positive/fec-multicast.json +2 -1
  134. package/test-vectors/catalog/positive/multicast-amt-manual-relay.json +38 -0
  135. package/test-vectors/catalog/positive/multicast-native-ssm-no-network-source.json +2 -1
  136. package/test-vectors/catalog/section-codes.json +33 -0
  137. package/test-vectors/catalog-timing.json +356 -0
  138. package/test-vectors/catalog-validation.json +40 -5
  139. package/test-vectors/delivery-catalog/README.md +11 -0
  140. package/test-vectors/delivery-catalog/negative/missing-block-profile.json +58 -0
  141. package/test-vectors/delivery-catalog/negative/packet-id-signaling.json +59 -0
  142. package/test-vectors/delivery-catalog/negative/retired-k-padded-block-profile.json +59 -0
  143. package/test-vectors/delivery-catalog/positive/dash.json +56 -0
  144. package/test-vectors/delivery-catalog/positive/mmtp-source-only.json +43 -0
  145. package/node_modules/@blockcast/fec-worker/README.md +0 -223
  146. package/node_modules/@blockcast/fec-worker/dist/.build-stamp +0 -0
  147. package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts +0 -38
  148. package/node_modules/@blockcast/fec-worker/dist/block-order.d.ts.map +0 -1
  149. package/node_modules/@blockcast/fec-worker/dist/block-order.js +0 -78
  150. package/node_modules/@blockcast/fec-worker/dist/block-order.js.map +0 -1
  151. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts +0 -93
  152. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.d.ts.map +0 -1
  153. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js +0 -346
  154. package/node_modules/@blockcast/fec-worker/dist/fec-worker-client.js.map +0 -1
  155. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts +0 -380
  156. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.d.ts.map +0 -1
  157. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js +0 -11
  158. package/node_modules/@blockcast/fec-worker/dist/fec-worker-types.js.map +0 -1
  159. package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts +0 -14
  160. package/node_modules/@blockcast/fec-worker/dist/fec-worker.d.ts.map +0 -1
  161. package/node_modules/@blockcast/fec-worker/dist/fec-worker.js +0 -859
  162. package/node_modules/@blockcast/fec-worker/dist/fec-worker.js.map +0 -7
  163. package/node_modules/@blockcast/fec-worker/dist/index.d.ts +0 -10
  164. package/node_modules/@blockcast/fec-worker/dist/index.d.ts.map +0 -1
  165. package/node_modules/@blockcast/fec-worker/dist/index.js +0 -8
  166. package/node_modules/@blockcast/fec-worker/dist/index.js.map +0 -1
  167. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts +0 -20
  168. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.d.ts.map +0 -1
  169. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js +0 -370
  170. package/node_modules/@blockcast/fec-worker/dist/shred-fec-worker.js.map +0 -7
  171. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts +0 -104
  172. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.d.ts.map +0 -1
  173. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js +0 -181
  174. package/node_modules/@blockcast/fec-worker/dist/shred-worker-client.js.map +0 -1
  175. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts +0 -194
  176. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.d.ts.map +0 -1
  177. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js +0 -62
  178. package/node_modules/@blockcast/fec-worker/dist/shred-worker-types.js.map +0 -1
  179. package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts +0 -9
  180. package/node_modules/@blockcast/fec-worker/dist/transfer.d.ts.map +0 -1
  181. package/node_modules/@blockcast/fec-worker/dist/transfer.js +0 -13
  182. package/node_modules/@blockcast/fec-worker/dist/transfer.js.map +0 -1
  183. package/node_modules/@blockcast/fec-worker/package.json +0 -59
  184. package/node_modules/@blockcast/fec-worker/src/block-order.ts +0 -93
  185. package/node_modules/@blockcast/fec-worker/src/fec-worker-client.ts +0 -392
  186. package/node_modules/@blockcast/fec-worker/src/fec-worker-types.ts +0 -399
  187. package/node_modules/@blockcast/fec-worker/src/fec-worker.ts +0 -1502
  188. package/node_modules/@blockcast/fec-worker/src/index.ts +0 -35
  189. package/node_modules/@blockcast/fec-worker/src/shred-fec-worker.ts +0 -589
  190. package/node_modules/@blockcast/fec-worker/src/shred-worker-client.ts +0 -222
  191. package/node_modules/@blockcast/fec-worker/src/shred-worker-types.ts +0 -209
  192. package/node_modules/@blockcast/fec-worker/src/transfer.ts +0 -12
  193. package/node_modules/@blockcast/mmt-alta-parse/README.md +0 -181
  194. package/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
  195. package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +0 -57
  196. package/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +0 -1
  197. package/node_modules/@blockcast/mmt-alta-parse/dist/index.js +0 -115
  198. package/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +0 -1
  199. package/node_modules/@blockcast/mmt-alta-parse/package.json +0 -50
  200. package/node_modules/@blockcast/mmt-alta-parse/src/index.ts +0 -136
  201. package/node_modules/@blockcast/mmt-base/README.md +0 -134
  202. package/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
  203. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +0 -55
  204. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +0 -1
  205. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +0 -128
  206. package/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +0 -1
  207. package/node_modules/@blockcast/mmt-base/dist/index.d.ts +0 -7
  208. package/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +0 -1
  209. package/node_modules/@blockcast/mmt-base/dist/index.js +0 -7
  210. package/node_modules/@blockcast/mmt-base/dist/index.js.map +0 -1
  211. package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +0 -292
  212. package/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +0 -1
  213. package/node_modules/@blockcast/mmt-base/dist/mmtp.js +0 -612
  214. package/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +0 -1
  215. package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +0 -18
  216. package/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +0 -1
  217. package/node_modules/@blockcast/mmt-base/dist/net-constants.js +0 -18
  218. package/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +0 -1
  219. package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +0 -47
  220. package/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +0 -1
  221. package/node_modules/@blockcast/mmt-base/dist/ntp-short.js +0 -54
  222. package/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +0 -1
  223. package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +0 -57
  224. package/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +0 -1
  225. package/node_modules/@blockcast/mmt-base/dist/serial-number.js +0 -98
  226. package/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +0 -1
  227. package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +0 -312
  228. package/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +0 -1
  229. package/node_modules/@blockcast/mmt-base/dist/signalling.js +0 -637
  230. package/node_modules/@blockcast/mmt-base/dist/signalling.js.map +0 -1
  231. package/node_modules/@blockcast/mmt-base/package.json +0 -49
  232. package/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +0 -145
  233. package/node_modules/@blockcast/mmt-base/src/index.ts +0 -6
  234. package/node_modules/@blockcast/mmt-base/src/mmtp.ts +0 -892
  235. package/node_modules/@blockcast/mmt-base/src/net-constants.ts +0 -17
  236. package/node_modules/@blockcast/mmt-base/src/ntp-short.ts +0 -67
  237. package/node_modules/@blockcast/mmt-base/src/serial-number.ts +0 -107
  238. package/node_modules/@blockcast/mmt-base/src/signalling.ts +0 -862
  239. package/node_modules/@blockcast/mmt-fec/README.md +0 -271
  240. package/node_modules/@blockcast/mmt-fec/dist/.build-stamp +0 -0
  241. package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts +0 -82
  242. package/node_modules/@blockcast/mmt-fec/dist/block-manager.d.ts.map +0 -1
  243. package/node_modules/@blockcast/mmt-fec/dist/block-manager.js +0 -296
  244. package/node_modules/@blockcast/mmt-fec/dist/block-manager.js.map +0 -1
  245. package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts +0 -106
  246. package/node_modules/@blockcast/mmt-fec/dist/block-processor.d.ts.map +0 -1
  247. package/node_modules/@blockcast/mmt-fec/dist/block-processor.js +0 -288
  248. package/node_modules/@blockcast/mmt-fec/dist/block-processor.js.map +0 -1
  249. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts +0 -46
  250. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.d.ts.map +0 -1
  251. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js +0 -96
  252. package/node_modules/@blockcast/mmt-fec/dist/cmaf-recovery.js.map +0 -1
  253. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts +0 -33
  254. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.d.ts.map +0 -1
  255. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js +0 -57
  256. package/node_modules/@blockcast/mmt-fec/dist/cmaf-symbols.js.map +0 -1
  257. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts +0 -205
  258. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.d.ts.map +0 -1
  259. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js +0 -240
  260. package/node_modules/@blockcast/mmt-fec/dist/fec-block-mapper.js.map +0 -1
  261. package/node_modules/@blockcast/mmt-fec/dist/index.d.ts +0 -28
  262. package/node_modules/@blockcast/mmt-fec/dist/index.d.ts.map +0 -1
  263. package/node_modules/@blockcast/mmt-fec/dist/index.js +0 -28
  264. package/node_modules/@blockcast/mmt-fec/dist/index.js.map +0 -1
  265. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts +0 -20
  266. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.d.ts.map +0 -1
  267. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js +0 -28
  268. package/node_modules/@blockcast/mmt-fec/dist/loc-symbols.js.map +0 -1
  269. package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts +0 -258
  270. package/node_modules/@blockcast/mmt-fec/dist/oti.d.ts.map +0 -1
  271. package/node_modules/@blockcast/mmt-fec/dist/oti.js +0 -382
  272. package/node_modules/@blockcast/mmt-fec/dist/oti.js.map +0 -1
  273. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts +0 -41
  274. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.d.ts.map +0 -1
  275. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js +0 -81
  276. package/node_modules/@blockcast/mmt-fec/dist/reorder-buffer.js.map +0 -1
  277. package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts +0 -82
  278. package/node_modules/@blockcast/mmt-fec/dist/repair-group.d.ts.map +0 -1
  279. package/node_modules/@blockcast/mmt-fec/dist/repair-group.js +0 -170
  280. package/node_modules/@blockcast/mmt-fec/dist/repair-group.js.map +0 -1
  281. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/README.md +0 -181
  282. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/.build-stamp +0 -0
  283. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts +0 -57
  284. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.d.ts.map +0 -1
  285. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js +0 -115
  286. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/dist/index.js.map +0 -1
  287. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/package.json +0 -50
  288. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-alta-parse/src/index.ts +0 -136
  289. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/README.md +0 -134
  290. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/.build-stamp +0 -0
  291. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts +0 -55
  292. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.d.ts.map +0 -1
  293. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js +0 -128
  294. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/fec-block-profile.js.map +0 -1
  295. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts +0 -7
  296. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.d.ts.map +0 -1
  297. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js +0 -7
  298. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/index.js.map +0 -1
  299. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts +0 -292
  300. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.d.ts.map +0 -1
  301. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js +0 -612
  302. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/mmtp.js.map +0 -1
  303. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts +0 -18
  304. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.d.ts.map +0 -1
  305. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js +0 -18
  306. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/net-constants.js.map +0 -1
  307. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts +0 -47
  308. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.d.ts.map +0 -1
  309. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js +0 -54
  310. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/ntp-short.js.map +0 -1
  311. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts +0 -57
  312. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.d.ts.map +0 -1
  313. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js +0 -98
  314. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/serial-number.js.map +0 -1
  315. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts +0 -312
  316. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.d.ts.map +0 -1
  317. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js +0 -637
  318. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/dist/signalling.js.map +0 -1
  319. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/package.json +0 -49
  320. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/fec-block-profile.ts +0 -145
  321. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/index.ts +0 -6
  322. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/mmtp.ts +0 -892
  323. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/net-constants.ts +0 -17
  324. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/ntp-short.ts +0 -67
  325. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/serial-number.ts +0 -107
  326. package/node_modules/@blockcast/mmt-fec/node_modules/@blockcast/mmt-base/src/signalling.ts +0 -862
  327. package/node_modules/@blockcast/mmt-fec/package.json +0 -79
  328. package/node_modules/@blockcast/mmt-fec/src/block-manager.ts +0 -371
  329. package/node_modules/@blockcast/mmt-fec/src/block-processor.ts +0 -439
  330. package/node_modules/@blockcast/mmt-fec/src/cmaf-recovery.ts +0 -127
  331. package/node_modules/@blockcast/mmt-fec/src/cmaf-symbols.ts +0 -68
  332. package/node_modules/@blockcast/mmt-fec/src/fec-block-mapper.ts +0 -310
  333. package/node_modules/@blockcast/mmt-fec/src/index.ts +0 -94
  334. package/node_modules/@blockcast/mmt-fec/src/loc-symbols.ts +0 -34
  335. package/node_modules/@blockcast/mmt-fec/src/oti.ts +0 -463
  336. package/node_modules/@blockcast/mmt-fec/src/reorder-buffer.ts +0 -101
  337. package/node_modules/@blockcast/mmt-fec/src/repair-group.ts +0 -195
  338. package/node_modules/@blockcast/mmt-manifest-verify/dist/.build-stamp +0 -0
  339. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts +0 -28
  340. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.d.ts.map +0 -1
  341. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js +0 -128
  342. package/node_modules/@blockcast/mmt-manifest-verify/dist/admission.js.map +0 -1
  343. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts +0 -4
  344. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.d.ts.map +0 -1
  345. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js +0 -4
  346. package/node_modules/@blockcast/mmt-manifest-verify/dist/index.js.map +0 -1
  347. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts +0 -37
  348. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.d.ts.map +0 -1
  349. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js +0 -179
  350. package/node_modules/@blockcast/mmt-manifest-verify/dist/source-auth.js.map +0 -1
  351. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts +0 -99
  352. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.d.ts.map +0 -1
  353. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js +0 -492
  354. package/node_modules/@blockcast/mmt-manifest-verify/dist/verifier.js.map +0 -1
  355. package/node_modules/@blockcast/mmt-manifest-verify/package.json +0 -45
  356. package/node_modules/@blockcast/mmt-manifest-verify/src/admission.ts +0 -171
  357. package/node_modules/@blockcast/mmt-manifest-verify/src/index.ts +0 -3
  358. package/node_modules/@blockcast/mmt-manifest-verify/src/source-auth.ts +0 -230
  359. package/node_modules/@blockcast/mmt-manifest-verify/src/verifier.ts +0 -669
  360. package/node_modules/@noble/hashes/LICENSE +0 -21
  361. package/node_modules/@noble/hashes/README.md +0 -521
  362. package/node_modules/@noble/hashes/_assert.d.ts +0 -17
  363. package/node_modules/@noble/hashes/_assert.d.ts.map +0 -1
  364. package/node_modules/@noble/hashes/_assert.js +0 -18
  365. package/node_modules/@noble/hashes/_assert.js.map +0 -1
  366. package/node_modules/@noble/hashes/_blake.d.ts +0 -14
  367. package/node_modules/@noble/hashes/_blake.d.ts.map +0 -1
  368. package/node_modules/@noble/hashes/_blake.js +0 -50
  369. package/node_modules/@noble/hashes/_blake.js.map +0 -1
  370. package/node_modules/@noble/hashes/_md.d.ts +0 -51
  371. package/node_modules/@noble/hashes/_md.d.ts.map +0 -1
  372. package/node_modules/@noble/hashes/_md.js +0 -162
  373. package/node_modules/@noble/hashes/_md.js.map +0 -1
  374. package/node_modules/@noble/hashes/_u64.d.ts +0 -55
  375. package/node_modules/@noble/hashes/_u64.d.ts.map +0 -1
  376. package/node_modules/@noble/hashes/_u64.js +0 -90
  377. package/node_modules/@noble/hashes/_u64.js.map +0 -1
  378. package/node_modules/@noble/hashes/argon2.d.ts +0 -32
  379. package/node_modules/@noble/hashes/argon2.d.ts.map +0 -1
  380. package/node_modules/@noble/hashes/argon2.js +0 -401
  381. package/node_modules/@noble/hashes/argon2.js.map +0 -1
  382. package/node_modules/@noble/hashes/blake1.d.ts +0 -106
  383. package/node_modules/@noble/hashes/blake1.d.ts.map +0 -1
  384. package/node_modules/@noble/hashes/blake1.js +0 -459
  385. package/node_modules/@noble/hashes/blake1.js.map +0 -1
  386. package/node_modules/@noble/hashes/blake2.d.ts +0 -116
  387. package/node_modules/@noble/hashes/blake2.d.ts.map +0 -1
  388. package/node_modules/@noble/hashes/blake2.js +0 -420
  389. package/node_modules/@noble/hashes/blake2.js.map +0 -1
  390. package/node_modules/@noble/hashes/blake2b.d.ts +0 -11
  391. package/node_modules/@noble/hashes/blake2b.d.ts.map +0 -1
  392. package/node_modules/@noble/hashes/blake2b.js +0 -14
  393. package/node_modules/@noble/hashes/blake2b.js.map +0 -1
  394. package/node_modules/@noble/hashes/blake2s.d.ts +0 -20
  395. package/node_modules/@noble/hashes/blake2s.d.ts.map +0 -1
  396. package/node_modules/@noble/hashes/blake2s.js +0 -24
  397. package/node_modules/@noble/hashes/blake2s.js.map +0 -1
  398. package/node_modules/@noble/hashes/blake3.d.ts +0 -54
  399. package/node_modules/@noble/hashes/blake3.d.ts.map +0 -1
  400. package/node_modules/@noble/hashes/blake3.js +0 -255
  401. package/node_modules/@noble/hashes/blake3.js.map +0 -1
  402. package/node_modules/@noble/hashes/crypto.d.ts +0 -2
  403. package/node_modules/@noble/hashes/crypto.d.ts.map +0 -1
  404. package/node_modules/@noble/hashes/crypto.js +0 -5
  405. package/node_modules/@noble/hashes/crypto.js.map +0 -1
  406. package/node_modules/@noble/hashes/cryptoNode.d.ts +0 -2
  407. package/node_modules/@noble/hashes/cryptoNode.d.ts.map +0 -1
  408. package/node_modules/@noble/hashes/cryptoNode.js +0 -18
  409. package/node_modules/@noble/hashes/cryptoNode.js.map +0 -1
  410. package/node_modules/@noble/hashes/eskdf.d.ts +0 -47
  411. package/node_modules/@noble/hashes/eskdf.d.ts.map +0 -1
  412. package/node_modules/@noble/hashes/eskdf.js +0 -166
  413. package/node_modules/@noble/hashes/eskdf.js.map +0 -1
  414. package/node_modules/@noble/hashes/esm/_assert.d.ts +0 -17
  415. package/node_modules/@noble/hashes/esm/_assert.d.ts.map +0 -1
  416. package/node_modules/@noble/hashes/esm/_assert.js +0 -15
  417. package/node_modules/@noble/hashes/esm/_assert.js.map +0 -1
  418. package/node_modules/@noble/hashes/esm/_blake.d.ts +0 -14
  419. package/node_modules/@noble/hashes/esm/_blake.d.ts.map +0 -1
  420. package/node_modules/@noble/hashes/esm/_blake.js +0 -45
  421. package/node_modules/@noble/hashes/esm/_blake.js.map +0 -1
  422. package/node_modules/@noble/hashes/esm/_md.d.ts +0 -51
  423. package/node_modules/@noble/hashes/esm/_md.d.ts.map +0 -1
  424. package/node_modules/@noble/hashes/esm/_md.js +0 -155
  425. package/node_modules/@noble/hashes/esm/_md.js.map +0 -1
  426. package/node_modules/@noble/hashes/esm/_u64.d.ts +0 -55
  427. package/node_modules/@noble/hashes/esm/_u64.d.ts.map +0 -1
  428. package/node_modules/@noble/hashes/esm/_u64.js +0 -67
  429. package/node_modules/@noble/hashes/esm/_u64.js.map +0 -1
  430. package/node_modules/@noble/hashes/esm/argon2.d.ts +0 -32
  431. package/node_modules/@noble/hashes/esm/argon2.d.ts.map +0 -1
  432. package/node_modules/@noble/hashes/esm/argon2.js +0 -392
  433. package/node_modules/@noble/hashes/esm/argon2.js.map +0 -1
  434. package/node_modules/@noble/hashes/esm/blake1.d.ts +0 -106
  435. package/node_modules/@noble/hashes/esm/blake1.d.ts.map +0 -1
  436. package/node_modules/@noble/hashes/esm/blake1.js +0 -452
  437. package/node_modules/@noble/hashes/esm/blake1.js.map +0 -1
  438. package/node_modules/@noble/hashes/esm/blake2.d.ts +0 -116
  439. package/node_modules/@noble/hashes/esm/blake2.d.ts.map +0 -1
  440. package/node_modules/@noble/hashes/esm/blake2.js +0 -413
  441. package/node_modules/@noble/hashes/esm/blake2.js.map +0 -1
  442. package/node_modules/@noble/hashes/esm/blake2b.d.ts +0 -11
  443. package/node_modules/@noble/hashes/esm/blake2b.d.ts.map +0 -1
  444. package/node_modules/@noble/hashes/esm/blake2b.js +0 -11
  445. package/node_modules/@noble/hashes/esm/blake2b.js.map +0 -1
  446. package/node_modules/@noble/hashes/esm/blake2s.d.ts +0 -20
  447. package/node_modules/@noble/hashes/esm/blake2s.d.ts.map +0 -1
  448. package/node_modules/@noble/hashes/esm/blake2s.js +0 -21
  449. package/node_modules/@noble/hashes/esm/blake2s.js.map +0 -1
  450. package/node_modules/@noble/hashes/esm/blake3.d.ts +0 -54
  451. package/node_modules/@noble/hashes/esm/blake3.d.ts.map +0 -1
  452. package/node_modules/@noble/hashes/esm/blake3.js +0 -251
  453. package/node_modules/@noble/hashes/esm/blake3.js.map +0 -1
  454. package/node_modules/@noble/hashes/esm/crypto.d.ts +0 -2
  455. package/node_modules/@noble/hashes/esm/crypto.d.ts.map +0 -1
  456. package/node_modules/@noble/hashes/esm/crypto.js +0 -2
  457. package/node_modules/@noble/hashes/esm/crypto.js.map +0 -1
  458. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts +0 -2
  459. package/node_modules/@noble/hashes/esm/cryptoNode.d.ts.map +0 -1
  460. package/node_modules/@noble/hashes/esm/cryptoNode.js +0 -15
  461. package/node_modules/@noble/hashes/esm/cryptoNode.js.map +0 -1
  462. package/node_modules/@noble/hashes/esm/eskdf.d.ts +0 -47
  463. package/node_modules/@noble/hashes/esm/eskdf.d.ts.map +0 -1
  464. package/node_modules/@noble/hashes/esm/eskdf.js +0 -160
  465. package/node_modules/@noble/hashes/esm/eskdf.js.map +0 -1
  466. package/node_modules/@noble/hashes/esm/hkdf.d.ts +0 -36
  467. package/node_modules/@noble/hashes/esm/hkdf.d.ts.map +0 -1
  468. package/node_modules/@noble/hashes/esm/hkdf.js +0 -82
  469. package/node_modules/@noble/hashes/esm/hkdf.js.map +0 -1
  470. package/node_modules/@noble/hashes/esm/hmac.d.ts +0 -35
  471. package/node_modules/@noble/hashes/esm/hmac.d.ts.map +0 -1
  472. package/node_modules/@noble/hashes/esm/hmac.js +0 -86
  473. package/node_modules/@noble/hashes/esm/hmac.js.map +0 -1
  474. package/node_modules/@noble/hashes/esm/index.d.ts +0 -2
  475. package/node_modules/@noble/hashes/esm/index.d.ts.map +0 -1
  476. package/node_modules/@noble/hashes/esm/index.js +0 -33
  477. package/node_modules/@noble/hashes/esm/index.js.map +0 -1
  478. package/node_modules/@noble/hashes/esm/legacy.d.ts +0 -71
  479. package/node_modules/@noble/hashes/esm/legacy.d.ts.map +0 -1
  480. package/node_modules/@noble/hashes/esm/legacy.js +0 -281
  481. package/node_modules/@noble/hashes/esm/legacy.js.map +0 -1
  482. package/node_modules/@noble/hashes/esm/package.json +0 -10
  483. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts +0 -23
  484. package/node_modules/@noble/hashes/esm/pbkdf2.d.ts.map +0 -1
  485. package/node_modules/@noble/hashes/esm/pbkdf2.js +0 -97
  486. package/node_modules/@noble/hashes/esm/pbkdf2.js.map +0 -1
  487. package/node_modules/@noble/hashes/esm/ripemd160.d.ts +0 -13
  488. package/node_modules/@noble/hashes/esm/ripemd160.d.ts.map +0 -1
  489. package/node_modules/@noble/hashes/esm/ripemd160.js +0 -13
  490. package/node_modules/@noble/hashes/esm/ripemd160.js.map +0 -1
  491. package/node_modules/@noble/hashes/esm/scrypt.d.ts +0 -34
  492. package/node_modules/@noble/hashes/esm/scrypt.d.ts.map +0 -1
  493. package/node_modules/@noble/hashes/esm/scrypt.js +0 -228
  494. package/node_modules/@noble/hashes/esm/scrypt.js.map +0 -1
  495. package/node_modules/@noble/hashes/esm/sha1.d.ts +0 -11
  496. package/node_modules/@noble/hashes/esm/sha1.d.ts.map +0 -1
  497. package/node_modules/@noble/hashes/esm/sha1.js +0 -11
  498. package/node_modules/@noble/hashes/esm/sha1.js.map +0 -1
  499. package/node_modules/@noble/hashes/esm/sha2.d.ts +0 -159
  500. package/node_modules/@noble/hashes/esm/sha2.d.ts.map +0 -1
  501. package/node_modules/@noble/hashes/esm/sha2.js +0 -375
  502. package/node_modules/@noble/hashes/esm/sha2.js.map +0 -1
  503. package/node_modules/@noble/hashes/esm/sha256.d.ts +0 -20
  504. package/node_modules/@noble/hashes/esm/sha256.d.ts.map +0 -1
  505. package/node_modules/@noble/hashes/esm/sha256.js +0 -20
  506. package/node_modules/@noble/hashes/esm/sha256.js.map +0 -1
  507. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts +0 -142
  508. package/node_modules/@noble/hashes/esm/sha3-addons.d.ts.map +0 -1
  509. package/node_modules/@noble/hashes/esm/sha3-addons.js +0 -393
  510. package/node_modules/@noble/hashes/esm/sha3-addons.js.map +0 -1
  511. package/node_modules/@noble/hashes/esm/sha3.d.ts +0 -53
  512. package/node_modules/@noble/hashes/esm/sha3.d.ts.map +0 -1
  513. package/node_modules/@noble/hashes/esm/sha3.js +0 -234
  514. package/node_modules/@noble/hashes/esm/sha3.js.map +0 -1
  515. package/node_modules/@noble/hashes/esm/sha512.d.ts +0 -26
  516. package/node_modules/@noble/hashes/esm/sha512.d.ts.map +0 -1
  517. package/node_modules/@noble/hashes/esm/sha512.js +0 -26
  518. package/node_modules/@noble/hashes/esm/sha512.js.map +0 -1
  519. package/node_modules/@noble/hashes/esm/utils.d.ts +0 -161
  520. package/node_modules/@noble/hashes/esm/utils.d.ts.map +0 -1
  521. package/node_modules/@noble/hashes/esm/utils.js +0 -281
  522. package/node_modules/@noble/hashes/esm/utils.js.map +0 -1
  523. package/node_modules/@noble/hashes/hkdf.d.ts +0 -36
  524. package/node_modules/@noble/hashes/hkdf.d.ts.map +0 -1
  525. package/node_modules/@noble/hashes/hkdf.js +0 -88
  526. package/node_modules/@noble/hashes/hkdf.js.map +0 -1
  527. package/node_modules/@noble/hashes/hmac.d.ts +0 -35
  528. package/node_modules/@noble/hashes/hmac.d.ts.map +0 -1
  529. package/node_modules/@noble/hashes/hmac.js +0 -91
  530. package/node_modules/@noble/hashes/hmac.js.map +0 -1
  531. package/node_modules/@noble/hashes/index.d.ts +0 -1
  532. package/node_modules/@noble/hashes/index.d.ts.map +0 -1
  533. package/node_modules/@noble/hashes/index.js +0 -33
  534. package/node_modules/@noble/hashes/index.js.map +0 -1
  535. package/node_modules/@noble/hashes/legacy.d.ts +0 -71
  536. package/node_modules/@noble/hashes/legacy.d.ts.map +0 -1
  537. package/node_modules/@noble/hashes/legacy.js +0 -287
  538. package/node_modules/@noble/hashes/legacy.js.map +0 -1
  539. package/node_modules/@noble/hashes/package.json +0 -266
  540. package/node_modules/@noble/hashes/pbkdf2.d.ts +0 -23
  541. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +0 -1
  542. package/node_modules/@noble/hashes/pbkdf2.js +0 -101
  543. package/node_modules/@noble/hashes/pbkdf2.js.map +0 -1
  544. package/node_modules/@noble/hashes/ripemd160.d.ts +0 -13
  545. package/node_modules/@noble/hashes/ripemd160.d.ts.map +0 -1
  546. package/node_modules/@noble/hashes/ripemd160.js +0 -16
  547. package/node_modules/@noble/hashes/ripemd160.js.map +0 -1
  548. package/node_modules/@noble/hashes/scrypt.d.ts +0 -34
  549. package/node_modules/@noble/hashes/scrypt.d.ts.map +0 -1
  550. package/node_modules/@noble/hashes/scrypt.js +0 -232
  551. package/node_modules/@noble/hashes/scrypt.js.map +0 -1
  552. package/node_modules/@noble/hashes/sha1.d.ts +0 -11
  553. package/node_modules/@noble/hashes/sha1.d.ts.map +0 -1
  554. package/node_modules/@noble/hashes/sha1.js +0 -14
  555. package/node_modules/@noble/hashes/sha1.js.map +0 -1
  556. package/node_modules/@noble/hashes/sha2.d.ts +0 -159
  557. package/node_modules/@noble/hashes/sha2.d.ts.map +0 -1
  558. package/node_modules/@noble/hashes/sha2.js +0 -384
  559. package/node_modules/@noble/hashes/sha2.js.map +0 -1
  560. package/node_modules/@noble/hashes/sha256.d.ts +0 -20
  561. package/node_modules/@noble/hashes/sha256.d.ts.map +0 -1
  562. package/node_modules/@noble/hashes/sha256.js +0 -23
  563. package/node_modules/@noble/hashes/sha256.js.map +0 -1
  564. package/node_modules/@noble/hashes/sha3-addons.d.ts +0 -142
  565. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +0 -1
  566. package/node_modules/@noble/hashes/sha3-addons.js +0 -402
  567. package/node_modules/@noble/hashes/sha3-addons.js.map +0 -1
  568. package/node_modules/@noble/hashes/sha3.d.ts +0 -53
  569. package/node_modules/@noble/hashes/sha3.d.ts.map +0 -1
  570. package/node_modules/@noble/hashes/sha3.js +0 -239
  571. package/node_modules/@noble/hashes/sha3.js.map +0 -1
  572. package/node_modules/@noble/hashes/sha512.d.ts +0 -26
  573. package/node_modules/@noble/hashes/sha512.d.ts.map +0 -1
  574. package/node_modules/@noble/hashes/sha512.js +0 -29
  575. package/node_modules/@noble/hashes/sha512.js.map +0 -1
  576. package/node_modules/@noble/hashes/src/_assert.ts +0 -22
  577. package/node_modules/@noble/hashes/src/_blake.ts +0 -50
  578. package/node_modules/@noble/hashes/src/_md.ts +0 -176
  579. package/node_modules/@noble/hashes/src/_u64.ts +0 -91
  580. package/node_modules/@noble/hashes/src/argon2.ts +0 -497
  581. package/node_modules/@noble/hashes/src/blake1.ts +0 -534
  582. package/node_modules/@noble/hashes/src/blake2.ts +0 -486
  583. package/node_modules/@noble/hashes/src/blake2b.ts +0 -10
  584. package/node_modules/@noble/hashes/src/blake2s.ts +0 -20
  585. package/node_modules/@noble/hashes/src/blake3.ts +0 -272
  586. package/node_modules/@noble/hashes/src/crypto.ts +0 -9
  587. package/node_modules/@noble/hashes/src/cryptoNode.ts +0 -15
  588. package/node_modules/@noble/hashes/src/eskdf.ts +0 -187
  589. package/node_modules/@noble/hashes/src/hkdf.ts +0 -88
  590. package/node_modules/@noble/hashes/src/hmac.ts +0 -94
  591. package/node_modules/@noble/hashes/src/index.ts +0 -31
  592. package/node_modules/@noble/hashes/src/legacy.ts +0 -293
  593. package/node_modules/@noble/hashes/src/pbkdf2.ts +0 -122
  594. package/node_modules/@noble/hashes/src/ripemd160.ts +0 -12
  595. package/node_modules/@noble/hashes/src/scrypt.ts +0 -257
  596. package/node_modules/@noble/hashes/src/sha1.ts +0 -10
  597. package/node_modules/@noble/hashes/src/sha2.ts +0 -402
  598. package/node_modules/@noble/hashes/src/sha256.ts +0 -24
  599. package/node_modules/@noble/hashes/src/sha3-addons.ts +0 -499
  600. package/node_modules/@noble/hashes/src/sha3.ts +0 -258
  601. package/node_modules/@noble/hashes/src/sha512.ts +0 -34
  602. package/node_modules/@noble/hashes/src/utils.ts +0 -395
  603. package/node_modules/@noble/hashes/utils.d.ts +0 -161
  604. package/node_modules/@noble/hashes/utils.d.ts.map +0 -1
  605. package/node_modules/@noble/hashes/utils.js +0 -313
  606. package/node_modules/@noble/hashes/utils.js.map +0 -1
@@ -57,81 +57,20 @@ var BlockcastMmt = (() => {
57
57
  validateCmsfMmtpCatalog: () => validateCmsfMmtpCatalog
58
58
  });
59
59
 
60
- // ../mmt-alta-parse/dist/index.js
60
+ // ../mmt-base/dist/mmtp.js
61
61
  var MMTP_HEADER_SIZE = 12;
62
62
  var MPU_HEADER_SIZE = 8;
63
- var MPU_LENGTH_FIELD_SIZE = 2;
64
- var MPU_HEADER_REMAINDER_SIZE = MPU_HEADER_SIZE - MPU_LENGTH_FIELD_SIZE;
65
- var TIMED_MFU_DU_HEADER_SIZE = 14;
66
- var NONTIMED_MFU_DU_HEADER_SIZE = 4;
67
- var PACKET_TYPE_MPU = 0;
68
- var MMTP_EXT_TYPE_ALTA_AUTH = 61601;
69
- var MMTP_EXT_TRAILER_HEADER_SIZE = 4;
70
- function extractAltaTrailer(mmtpPacket, options) {
71
- if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE)
72
- return null;
73
- const packetType = mmtpPacket[1] & 63;
74
- if (packetType !== PACKET_TYPE_MPU)
75
- return null;
76
- const fecType = mmtpPacket[0] >> 3 & 3;
77
- let headerLength = MMTP_HEADER_SIZE;
78
- if (fecType < 2 && (mmtpPacket[0] & 32) !== 0)
79
- headerLength += 4;
80
- if (fecType < 2 && (mmtpPacket[0] & 2) !== 0) {
81
- if (headerLength + 4 > mmtpPacket.length)
82
- return null;
83
- const extensionLength = new DataView(mmtpPacket.buffer, mmtpPacket.byteOffset + headerLength + 2, 2).getUint16(0, false);
84
- headerLength += 4 + extensionLength;
85
- }
86
- if (headerLength + MPU_HEADER_SIZE > mmtpPacket.length)
87
- return null;
88
- const payload = mmtpPacket.subarray(headerLength);
89
- const payloadLength = payload[0] << 8 | payload[1];
90
- const flagsByte = payload[2];
91
- const fragmentType = flagsByte >> 4 & 15;
92
- const timed = (flagsByte >> 3 & 1) === 1;
93
- const fragmentationIndicator = flagsByte >> 1 & 3;
94
- if (fragmentType !== 2)
95
- return null;
96
- const dataUnitHeaderSize = fragmentationIndicator <= 1 ? timed ? TIMED_MFU_DU_HEADER_SIZE : NONTIMED_MFU_DU_HEADER_SIZE : 0;
97
- if (payloadLength <= MPU_HEADER_REMAINDER_SIZE + dataUnitHeaderSize)
98
- return null;
99
- if (fecType > 1)
100
- return null;
101
- const hasFecId = !options?.skipFecId && fecType === 1;
102
- const payloadEnd = hasFecId ? payload.length - 4 : payload.length;
103
- const declaredEnd = MPU_LENGTH_FIELD_SIZE + payloadLength;
104
- if (declaredEnd > payloadEnd)
105
- return null;
106
- if (declaredEnd + MMTP_EXT_TRAILER_HEADER_SIZE > payloadEnd)
107
- return null;
108
- const extType = payload[declaredEnd] << 8 | payload[declaredEnd + 1];
109
- if (extType !== MMTP_EXT_TYPE_ALTA_AUTH)
110
- return null;
111
- const extLen = payload[declaredEnd + 2] << 8 | payload[declaredEnd + 3];
112
- const authStart = declaredEnd + MMTP_EXT_TRAILER_HEADER_SIZE;
113
- if (authStart + extLen !== payloadEnd)
114
- return null;
115
- return {
116
- auth: payload.subarray(authStart, payloadEnd),
117
- signedEnd: headerLength + declaredEnd
118
- };
119
- }
120
-
121
- // ../mmt-base/dist/mmtp.js
122
- var MMTP_HEADER_SIZE2 = 12;
123
- var MPU_HEADER_SIZE2 = 8;
124
63
  var MFU_DU_HEADER_SIZE_TIMED = 14;
125
64
  var MFU_DU_HEADER_SIZE_NONTIMED = 4;
126
- var MPU_LENGTH_FIELD_SIZE2 = 2;
127
- var MPU_HEADER_REMAINDER_SIZE2 = MPU_HEADER_SIZE2 - MPU_LENGTH_FIELD_SIZE2;
65
+ var MPU_LENGTH_FIELD_SIZE = 2;
66
+ var MPU_HEADER_REMAINDER_SIZE = MPU_HEADER_SIZE - MPU_LENGTH_FIELD_SIZE;
128
67
  var SOURCE_FEC_PAYLOAD_ID_SIZE = 4;
129
- var PACKET_TYPE_MPU2 = 0;
68
+ var PACKET_TYPE_MPU = 0;
130
69
  var PACKET_TYPE_REPAIR = 3;
131
70
  var MMTP_SIGNALING_PACKET_ID = 0;
132
71
  var MMTP_PACKET_ID_MAX = 65535;
133
72
  function parseMMTPHeader(buffer) {
134
- if (buffer.length < MMTP_HEADER_SIZE2) {
73
+ if (buffer.length < MMTP_HEADER_SIZE) {
135
74
  throw new Error(`MMTP packet too small: ${buffer.length} bytes`);
136
75
  }
137
76
  const view2 = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
@@ -187,7 +126,7 @@ var BlockcastMmt = (() => {
187
126
  };
188
127
  }
189
128
  function parseMPUHeader(payload) {
190
- if (payload.length < MPU_HEADER_SIZE2) {
129
+ if (payload.length < MPU_HEADER_SIZE) {
191
130
  throw new Error(`Payload too small for MPU header: ${payload.length} bytes`);
192
131
  }
193
132
  const view2 = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
@@ -220,15 +159,15 @@ var BlockcastMmt = (() => {
220
159
  };
221
160
  }
222
161
  function resolveMfuPayloadLayout(mpu, fragmentType, payload) {
223
- if (mpu.payloadLength < MPU_HEADER_REMAINDER_SIZE2) {
162
+ if (mpu.payloadLength < MPU_HEADER_REMAINDER_SIZE) {
224
163
  return {
225
164
  rejection: {
226
165
  gate: "mpu-payload-length-below-header-remainder",
227
- detail: `payload_length=${mpu.payloadLength} < ${MPU_HEADER_REMAINDER_SIZE2}`
166
+ detail: `payload_length=${mpu.payloadLength} < ${MPU_HEADER_REMAINDER_SIZE}`
228
167
  }
229
168
  };
230
169
  }
231
- const declaredEnd = MPU_LENGTH_FIELD_SIZE2 + mpu.payloadLength;
170
+ const declaredEnd = MPU_LENGTH_FIELD_SIZE + mpu.payloadLength;
232
171
  if (declaredEnd > payload.length) {
233
172
  return {
234
173
  rejection: {
@@ -239,7 +178,7 @@ var BlockcastMmt = (() => {
239
178
  }
240
179
  const hasHeader = fragmentType === 2 && mpu.fragmentationIndicator <= 1;
241
180
  const mfuHeaderSize = mpu.timedFlag ? MFU_DU_HEADER_SIZE_TIMED : MFU_DU_HEADER_SIZE_NONTIMED;
242
- const mfuOffset = MPU_HEADER_SIZE2 + (hasHeader ? mfuHeaderSize : 0);
181
+ const mfuOffset = MPU_HEADER_SIZE + (hasHeader ? mfuHeaderSize : 0);
243
182
  if (mfuOffset >= declaredEnd) {
244
183
  return {
245
184
  rejection: {
@@ -256,44 +195,46 @@ var BlockcastMmt = (() => {
256
195
  }
257
196
  };
258
197
  }
259
- function isEmptyOrExactAltaTrailer(payload, start, end) {
198
+ var LEGACY_TRAILER_EXT_TYPE = 61601;
199
+ var LEGACY_TRAILER_HEADER_SIZE = 4;
200
+ function isEmptyOrExactLegacyTrailer(payload, start, end) {
260
201
  if (start === end)
261
202
  return true;
262
- if (start < 0 || end > payload.length || start + MMTP_EXT_TRAILER_HEADER_SIZE > end) {
203
+ if (start < 0 || end > payload.length || start + LEGACY_TRAILER_HEADER_SIZE > end) {
263
204
  return false;
264
205
  }
265
206
  const view2 = new DataView(payload.buffer, payload.byteOffset + start, end - start);
266
- if (view2.getUint16(0, false) !== MMTP_EXT_TYPE_ALTA_AUTH)
207
+ if (view2.getUint16(0, false) !== LEGACY_TRAILER_EXT_TYPE)
267
208
  return false;
268
209
  const authLength = view2.getUint16(2, false);
269
- return start + MMTP_EXT_TRAILER_HEADER_SIZE + authLength === end;
210
+ return start + LEGACY_TRAILER_HEADER_SIZE + authLength === end;
270
211
  }
271
212
  function resolveDeclaredTrailers(payload, declaredEnd, fecType, options) {
272
213
  if (declaredEnd > payload.length)
273
214
  return null;
274
215
  if (options?.skipFecId) {
275
- return isEmptyOrExactAltaTrailer(payload, declaredEnd, payload.length) ? { hasFecId: false } : null;
216
+ return isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length) ? { hasFecId: false } : null;
276
217
  }
277
218
  if (fecType === 1) {
278
219
  const fecStart = payload.length - SOURCE_FEC_PAYLOAD_ID_SIZE;
279
- if (fecStart < declaredEnd || !isEmptyOrExactAltaTrailer(payload, declaredEnd, fecStart)) {
220
+ if (fecStart < declaredEnd || !isEmptyOrExactLegacyTrailer(payload, declaredEnd, fecStart)) {
280
221
  return null;
281
222
  }
282
223
  return { hasFecId: true };
283
224
  }
284
225
  if (fecType !== 0)
285
226
  return null;
286
- if (isEmptyOrExactAltaTrailer(payload, declaredEnd, payload.length)) {
227
+ if (isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length)) {
287
228
  return { hasFecId: false };
288
229
  }
289
230
  return null;
290
231
  }
291
232
  function planMfuExtraction(mmtpPacket, options, parsedHeader) {
292
- if (mmtpPacket.length < MMTP_HEADER_SIZE2 + MPU_HEADER_SIZE2) {
233
+ if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE) {
293
234
  return {
294
235
  rejection: {
295
236
  gate: "packet-shorter-than-mmtp-plus-mpu-header",
296
- detail: `${mmtpPacket.length} bytes < ${MMTP_HEADER_SIZE2 + MPU_HEADER_SIZE2}`
237
+ detail: `${mmtpPacket.length} bytes < ${MMTP_HEADER_SIZE + MPU_HEADER_SIZE}`
297
238
  }
298
239
  };
299
240
  }
@@ -312,7 +253,7 @@ var BlockcastMmt = (() => {
312
253
  };
313
254
  }
314
255
  }
315
- if (header.packetType !== PACKET_TYPE_MPU2) {
256
+ if (header.packetType !== PACKET_TYPE_MPU) {
316
257
  return {
317
258
  rejection: {
318
259
  gate: "not-an-mpu-packet",
@@ -321,11 +262,11 @@ var BlockcastMmt = (() => {
321
262
  };
322
263
  }
323
264
  const payload = mmtpPacket.subarray(header.headerLength);
324
- if (payload.length < MPU_HEADER_SIZE2) {
265
+ if (payload.length < MPU_HEADER_SIZE) {
325
266
  return {
326
267
  rejection: {
327
268
  gate: "payload-shorter-than-mpu-header",
328
- detail: `${payload.length} bytes < ${MPU_HEADER_SIZE2}`
269
+ detail: `${payload.length} bytes < ${MPU_HEADER_SIZE}`
329
270
  }
330
271
  };
331
272
  }
@@ -356,7 +297,7 @@ var BlockcastMmt = (() => {
356
297
  return {
357
298
  rejection: {
358
299
  gate: "declared-trailers-unresolved",
359
- detail: `trailer bytes [${layout.dataEnd}, ${payload.length}) are neither empty nor an exact ALTA trailer (fecType=${header.fecType})`
300
+ detail: `trailer bytes [${layout.dataEnd}, ${payload.length}) are neither empty nor an exact legacy authenticator trailer (fecType=${header.fecType})`
360
301
  }
361
302
  };
362
303
  }
@@ -372,8 +313,8 @@ var BlockcastMmt = (() => {
372
313
  const mfuDuHeaderPresent = layout.hasMfuDuHeader;
373
314
  const mfuOffset = layout.mfuOffset;
374
315
  const dataEnd = layout.dataEnd;
375
- const mfuDuHeader = mfuDuHeaderPresent && mpu.timedFlag === 1 ? parseTimedMfuDuHeader(payload, MPU_HEADER_SIZE2) : null;
376
- const itemId = mfuDuHeaderPresent && mpu.timedFlag === 0 ? new DataView(payload.buffer, payload.byteOffset + MPU_HEADER_SIZE2, 4).getUint32(0, false) : null;
316
+ const mfuDuHeader = mfuDuHeaderPresent && mpu.timedFlag === 1 ? parseTimedMfuDuHeader(payload, MPU_HEADER_SIZE) : null;
317
+ const itemId = mfuDuHeaderPresent && mpu.timedFlag === 0 ? new DataView(payload.buffer, payload.byteOffset + MPU_HEADER_SIZE, 4).getUint32(0, false) : null;
377
318
  const data = payload.subarray(mfuOffset, dataEnd);
378
319
  const fecPayloadId = trailerLayout.hasFecId ? {
379
320
  ssId: new DataView(mmtpPacket.buffer, mmtpPacket.byteOffset + mmtpPacket.length - SOURCE_FEC_PAYLOAD_ID_SIZE, SOURCE_FEC_PAYLOAD_ID_SIZE).getUint32(0, false)
@@ -381,17 +322,17 @@ var BlockcastMmt = (() => {
381
322
  return { header, mpu, fragmentType, data, mfuDuHeader, itemId, fecPayloadId };
382
323
  }
383
324
  function sourceFecPayloadIdOf(mmtpPacket, header) {
384
- if (mmtpPacket.length < MMTP_HEADER_SIZE2 + MPU_HEADER_SIZE2)
325
+ if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE)
385
326
  return null;
386
- if (header.packetType !== PACKET_TYPE_MPU2)
327
+ if (header.packetType !== PACKET_TYPE_MPU)
387
328
  return null;
388
329
  const payload = mmtpPacket.subarray(header.headerLength);
389
- if (payload.length < MPU_HEADER_SIZE2)
330
+ if (payload.length < MPU_HEADER_SIZE)
390
331
  return null;
391
332
  const payloadLength = payload[0] << 8 | payload[1];
392
- if (payloadLength < MPU_HEADER_REMAINDER_SIZE2)
333
+ if (payloadLength < MPU_HEADER_REMAINDER_SIZE)
393
334
  return null;
394
- const declaredEnd = MPU_LENGTH_FIELD_SIZE2 + payloadLength;
335
+ const declaredEnd = MPU_LENGTH_FIELD_SIZE + payloadLength;
395
336
  if (!resolveDeclaredTrailers(payload, declaredEnd, header.fecType)?.hasFecId)
396
337
  return null;
397
338
  const off = mmtpPacket.length - SOURCE_FEC_PAYLOAD_ID_SIZE;
@@ -399,7 +340,6 @@ var BlockcastMmt = (() => {
399
340
  ssId: (mmtpPacket[off] << 24 | mmtpPacket[off + 1] << 16 | mmtpPacket[off + 2] << 8 | mmtpPacket[off + 3]) >>> 0
400
341
  };
401
342
  }
402
- var extractAltaTrailer2 = extractAltaTrailer;
403
343
 
404
344
  // ../mmt-base/dist/ntp-short.js
405
345
  var NTP_SHORT_BITS = 32;
@@ -411,19 +351,18 @@ var BlockcastMmt = (() => {
411
351
 
412
352
  // ../mmt-base/dist/fec-block-profile.js
413
353
  var FEC_BLOCK_PROFILES = Object.freeze([
414
- "k-padded-v1",
415
354
  "iso-ssbg1-v1"
416
355
  ]);
417
356
  function isFecBlockProfile(value) {
418
- return value === "k-padded-v1" || value === "iso-ssbg1-v1";
357
+ return value === "iso-ssbg1-v1";
419
358
  }
420
359
  function parseFecBlockProfile(value, where) {
421
360
  if (isFecBlockProfile(value))
422
361
  return value;
423
362
  if (value === void 0) {
424
- throw new Error(`${where} is required: name the FEC block profile ("k-padded-v1" or "iso-ssbg1-v1")`);
363
+ throw new Error(`${where} is required: name the FEC block profile ("iso-ssbg1-v1")`);
425
364
  }
426
- throw new Error(`${where} must be "k-padded-v1" or "iso-ssbg1-v1" (got ${JSON.stringify(value)})`);
365
+ throw new Error(`${where} must be "iso-ssbg1-v1" (got ${JSON.stringify(value)})`);
427
366
  }
428
367
 
429
368
  // src/mfu-reassembler.ts
@@ -5318,7 +5257,7 @@ var BlockcastMmt = (() => {
5318
5257
  if (!a || !b || a.mediaTimescale !== b.mediaTimescale) return false;
5319
5258
  return b.decodeTime > a.decodeTime + BigInt(a.durationTicks);
5320
5259
  }
5321
- var _streams2, _gate, _emit2, _recordStat2, _FecReleaseSequencer_instances, streamFor_fn2, drain_fn, release_fn;
5260
+ var _streams2, _gate, _emit2, _recordStat2, _deferDepth, _deferredStreams, _FecReleaseSequencer_instances, drainUnlessDeferred_fn, streamFor_fn2, drain_fn, release_fn;
5322
5261
  var FecReleaseSequencer = class {
5323
5262
  constructor(gate, emit, recordStat) {
5324
5263
  __privateAdd(this, _FecReleaseSequencer_instances);
@@ -5326,6 +5265,8 @@ var BlockcastMmt = (() => {
5326
5265
  __privateAdd(this, _gate);
5327
5266
  __privateAdd(this, _emit2);
5328
5267
  __privateAdd(this, _recordStat2);
5268
+ __privateAdd(this, _deferDepth, 0);
5269
+ __privateAdd(this, _deferredStreams, /* @__PURE__ */ new Set());
5329
5270
  __privateSet(this, _gate, gate);
5330
5271
  __privateSet(this, _emit2, emit);
5331
5272
  __privateSet(this, _recordStat2, recordStat);
@@ -5335,6 +5276,36 @@ var BlockcastMmt = (() => {
5335
5276
  for (const stream of __privateGet(this, _streams2).values()) total += stream.buf.length;
5336
5277
  return total;
5337
5278
  }
5279
+ /**
5280
+ * Run `work` with the drains its pushes would run deferred to its end. A
5281
+ * recovered FEC block is routed one frame at a time, and its block is
5282
+ * already resolved when the first frame is pushed: draining on that push
5283
+ * would release past the gap before the block's other recovered frames
5284
+ * arrive (deciding a conceal or stall for media that is about to land),
5285
+ * and those frames would then be dropped as stale. Nests.
5286
+ */
5287
+ defer(work) {
5288
+ __privateWrapper(this, _deferDepth)._++;
5289
+ let threw = true;
5290
+ try {
5291
+ work();
5292
+ threw = false;
5293
+ } finally {
5294
+ __privateWrapper(this, _deferDepth)._--;
5295
+ if (__privateGet(this, _deferDepth) === 0 && __privateGet(this, _deferredStreams).size > 0) {
5296
+ const streams = [...__privateGet(this, _deferredStreams)];
5297
+ __privateGet(this, _deferredStreams).clear();
5298
+ if (!threw) {
5299
+ for (const stream of streams) __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
5300
+ } else {
5301
+ try {
5302
+ for (const stream of streams) __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
5303
+ } catch {
5304
+ }
5305
+ }
5306
+ }
5307
+ }
5308
+ }
5338
5309
  push(streamKey, data, meta, seq) {
5339
5310
  const frame = { data, meta: { ...meta }, seq, arrivedAtMs: performance.now() };
5340
5311
  const stream = __privateMethod(this, _FecReleaseSequencer_instances, streamFor_fn2).call(this, streamKey, meta);
@@ -5356,7 +5327,7 @@ var BlockcastMmt = (() => {
5356
5327
  return;
5357
5328
  }
5358
5329
  __privateMethod(this, _FecReleaseSequencer_instances, release_fn).call(this, stream, frame, void 0);
5359
- __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
5330
+ __privateMethod(this, _FecReleaseSequencer_instances, drainUnlessDeferred_fn).call(this, stream);
5360
5331
  return;
5361
5332
  }
5362
5333
  let lo = 0;
@@ -5367,7 +5338,23 @@ var BlockcastMmt = (() => {
5367
5338
  else hi = mid;
5368
5339
  }
5369
5340
  stream.buf.splice(lo, 0, frame);
5370
- __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
5341
+ __privateMethod(this, _FecReleaseSequencer_instances, drainUnlessDeferred_fn).call(this, stream);
5342
+ }
5343
+ /**
5344
+ * Arrival time of the earliest frame a stream of `packetId` holds behind a
5345
+ * gap (the gate forces it out `holdLimitMs` after that), or undefined when
5346
+ * none is held. Without `catalogTrackName`, every stream of the packetId.
5347
+ */
5348
+ earliestHeldArrivalMs(packetId, catalogTrackName) {
5349
+ let earliest;
5350
+ for (const stream of __privateGet(this, _streams2).values()) {
5351
+ if (stream.packetId !== packetId) continue;
5352
+ if (catalogTrackName !== void 0 && stream.catalogTrackName !== catalogTrackName) continue;
5353
+ for (const frame of stream.buf) {
5354
+ if (earliest === void 0 || frame.arrivedAtMs < earliest) earliest = frame.arrivedAtMs;
5355
+ }
5356
+ }
5357
+ return earliest;
5371
5358
  }
5372
5359
  /** Re-evaluate held gaps after FEC state changed. */
5373
5360
  poke(streamKey) {
@@ -5420,6 +5407,21 @@ var BlockcastMmt = (() => {
5420
5407
  __privateGet(this, _streams2).delete(key);
5421
5408
  }
5422
5409
  }
5410
+ /**
5411
+ * The packet's FEC ended, so no block will resolve a held gap: release its
5412
+ * frames in order, each gap stalled as a discontinuity, and forget its
5413
+ * streams, so FEC configured on it again starts from a fresh one.
5414
+ */
5415
+ endPacket(packetId) {
5416
+ for (const [key, stream] of __privateGet(this, _streams2)) {
5417
+ if (stream.packetId !== packetId) continue;
5418
+ while (stream.buf.length > 0 && stream.last !== null) {
5419
+ stream.discontinuity = true;
5420
+ __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
5421
+ }
5422
+ __privateGet(this, _streams2).delete(key);
5423
+ }
5424
+ }
5423
5425
  discardPacket(packetId) {
5424
5426
  for (const [key, stream] of __privateGet(this, _streams2)) {
5425
5427
  if (stream.packetId !== packetId) continue;
@@ -5440,7 +5442,13 @@ var BlockcastMmt = (() => {
5440
5442
  _gate = new WeakMap();
5441
5443
  _emit2 = new WeakMap();
5442
5444
  _recordStat2 = new WeakMap();
5445
+ _deferDepth = new WeakMap();
5446
+ _deferredStreams = new WeakMap();
5443
5447
  _FecReleaseSequencer_instances = new WeakSet();
5448
+ drainUnlessDeferred_fn = function(stream) {
5449
+ if (__privateGet(this, _deferDepth) > 0) __privateGet(this, _deferredStreams).add(stream);
5450
+ else __privateMethod(this, _FecReleaseSequencer_instances, drain_fn).call(this, stream);
5451
+ };
5444
5452
  streamFor_fn2 = function(streamKey, meta) {
5445
5453
  let stream = __privateGet(this, _streams2).get(streamKey);
5446
5454
  if (!stream) {
@@ -5709,6 +5717,22 @@ var BlockcastMmt = (() => {
5709
5717
  }
5710
5718
  ) : null);
5711
5719
  }
5720
+ /**
5721
+ * Run `work` with the FEC release gate's drains deferred to its end, so
5722
+ * every frame it pushes is in place before any held gap is decided (see
5723
+ * FecReleaseSequencer.defer).
5724
+ */
5725
+ deferFecRelease(work) {
5726
+ if (!__privateGet(this, _fecSequencer)) {
5727
+ work();
5728
+ return;
5729
+ }
5730
+ __privateGet(this, _fecSequencer).defer(work);
5731
+ }
5732
+ /** See FecReleaseSequencer.earliestHeldArrivalMs. */
5733
+ fecReleaseEarliestHeldAtMs(packetId, catalogTrackName) {
5734
+ return __privateGet(this, _fecSequencer)?.earliestHeldArrivalMs(packetId, catalogTrackName);
5735
+ }
5712
5736
  /** Re-evaluate held gaps after FEC block state changed. */
5713
5737
  pokeFecRelease(packetId, catalogTrackName) {
5714
5738
  if (!__privateGet(this, _fecSequencer)) return;
@@ -5723,6 +5747,13 @@ var BlockcastMmt = (() => {
5723
5747
  markFecDiscontinuity(packetId, catalogTrackName) {
5724
5748
  __privateGet(this, _fecSequencer)?.markDiscontinuity(__privateMethod(this, _MmtpContainerParser_instances, streamKey_fn).call(this, packetId, catalogTrackName));
5725
5749
  }
5750
+ /**
5751
+ * The FEC of a packet ID ended: release the frames the FEC release gate
5752
+ * holds for it in order, each gap stalled, and forget its gated streams.
5753
+ */
5754
+ endFecRelease(packetId) {
5755
+ __privateGet(this, _fecSequencer)?.endPacket(packetId);
5756
+ }
5726
5757
  /**
5727
5758
  * MPU and data-unit identity of one MMTP packet, parsed in place (no copy,
5728
5759
  * no reassembly). Null for non-MPU packets and packets that do not parse.
@@ -6197,7 +6228,7 @@ var BlockcastMmt = (() => {
6197
6228
  const parsed = preParsed !== void 0 && preParsed.skipFecPayloadId === (options?.skipFecPayloadId === true) ? preParsed : this.parsePacket(packet, options);
6198
6229
  if (!parsed) return __privateMethod(this, _MmtpContainerParser_instances, drop_fn).call(this, "header-parse-failed");
6199
6230
  const info = parsed.info;
6200
- if (info.packetType !== PACKET_TYPE_MPU2) {
6231
+ if (info.packetType !== PACKET_TYPE_MPU) {
6201
6232
  return {
6202
6233
  kind: info.isRepair ? "repair" : "non-media",
6203
6234
  packet: info,
@@ -6206,10 +6237,8 @@ var BlockcastMmt = (() => {
6206
6237
  }
6207
6238
  if (info.fecPayloadId !== null && __privateGet(this, _sourceSymbolCb)) {
6208
6239
  const rawSymbol = packet.subarray(0, packet.length - 4);
6209
- const altaTrailer = extractAltaTrailer2(packet);
6210
- const alta = altaTrailer ? { auth: altaTrailer.auth, payloadEnd: altaTrailer.signedEnd } : void 0;
6211
6240
  try {
6212
- __privateGet(this, _sourceSymbolCb).call(this, info.packetId, info.fecPayloadId.ssId, rawSymbol, alta);
6241
+ __privateGet(this, _sourceSymbolCb).call(this, info.packetId, info.fecPayloadId.ssId, rawSymbol);
6213
6242
  } catch {
6214
6243
  }
6215
6244
  }
@@ -7165,6 +7194,14 @@ var BlockcastMmt = (() => {
7165
7194
  };
7166
7195
  function readFecBlockProfile(value, path, declaresFecInstance, fail) {
7167
7196
  if (value === void 0 && !declaresFecInstance) return void 0;
7197
+ if (isFecBlockProfile(value)) return value;
7198
+ if (typeof value === "string" && value.length > 0) {
7199
+ return fail(
7200
+ "track_fec_block_profile_unimplemented",
7201
+ path,
7202
+ `${JSON.stringify(value)} is not an implemented FEC block profile; only "iso-ssbg1-v1" is implemented`
7203
+ );
7204
+ }
7168
7205
  try {
7169
7206
  return parseFecBlockProfile(value, "blockProfile");
7170
7207
  } catch (error) {
@@ -7637,8 +7674,8 @@ var BlockcastMmt = (() => {
7637
7674
  "repair layers are self-describing fec-repair tracks (depends, repairLayer); fec.enhancementRepair is not supported"
7638
7675
  );
7639
7676
  }
7640
- if (config["interleaveDepthMs"] !== void 0 && !positiveInteger2(config["interleaveDepthMs"])) {
7641
- catalogError("track_fec", `${path}.fec.interleaveDepthMs`, "must be a positive integer");
7677
+ if (config["interleaveDepthMs"] !== void 0 && (!Number.isSafeInteger(config["interleaveDepthMs"]) || config["interleaveDepthMs"] < 0)) {
7678
+ catalogError("track_fec", `${path}.fec.interleaveDepthMs`, "must be a non-negative safe integer");
7642
7679
  }
7643
7680
  if (algorithm !== "none") {
7644
7681
  for (const field of ["sourceSymbols", "repairSymbols", "symbolSize"]) {
@@ -7646,6 +7683,9 @@ var BlockcastMmt = (() => {
7646
7683
  catalogError("track_fec", `${path}.fec.${field}`, "must be a positive integer");
7647
7684
  }
7648
7685
  }
7686
+ if (algorithm === "raptorq" && config["symbolSize"] % 8 !== 0) {
7687
+ catalogError("track_fec", `${path}.fec.symbolSize`, "RaptorQ symbolSize must be a multiple of 8");
7688
+ }
7649
7689
  if (typeof config["repairTrack"] !== "string" || config["repairTrack"].length === 0) {
7650
7690
  catalogError("track_fec", `${path}.fec.repairTrack`, "must be a non-empty string");
7651
7691
  }
@@ -7713,6 +7753,13 @@ var BlockcastMmt = (() => {
7713
7753
  for (let endpointIndex = 0; endpointIndex < endpoints.length; endpointIndex++) {
7714
7754
  const endpoint = endpoints[endpointIndex];
7715
7755
  if (typeof endpoint !== "object" || endpoint === null || Array.isArray(endpoint)) continue;
7756
+ if ("relayAddress" in endpoint) {
7757
+ catalogError(
7758
+ "multicast_relay_address",
7759
+ `$.multicast.endpoints[${endpointIndex}].relayAddress`,
7760
+ 'relayAddress is retired; publish the relay as multicast.networkSource[{type:"amt",relay}]'
7761
+ );
7762
+ }
7716
7763
  const refs = endpoint["tracks"];
7717
7764
  if (!Array.isArray(refs)) continue;
7718
7765
  const packetIds = /* @__PURE__ */ new Map();
@@ -7761,7 +7808,7 @@ var BlockcastMmt = (() => {
7761
7808
  // ../fec/dist/oti.js
7762
7809
  function catalogFecInterleaveMs(fec) {
7763
7810
  const ms = fec?.interleaveDepthMs;
7764
- return typeof ms === "number" && ms > 0 && Number.isFinite(ms) ? ms : void 0;
7811
+ return typeof ms === "number" && Number.isSafeInteger(ms) && ms >= 0 ? ms : void 0;
7765
7812
  }
7766
7813
  function computeFecTimeout(interleaveDepthMs, safetyFactor = 3) {
7767
7814
  if (!Number.isFinite(interleaveDepthMs) || interleaveDepthMs <= 0) {
@@ -7780,7 +7827,6 @@ var BlockcastMmt = (() => {
7780
7827
  var MOQ_GROUP_ID_SPAN = WRAP_EPOCH_SPAN * SS_ID_SPAN;
7781
7828
 
7782
7829
  // src/fec-state.ts
7783
- var MIN_INTERLEAVE_DEPTH_MS = 33;
7784
7830
  var FEC_INACTIVE_REASONS = Object.freeze([
7785
7831
  "no-catalog-fec",
7786
7832
  "reliable-moq",
@@ -7807,7 +7853,7 @@ var BlockcastMmt = (() => {
7807
7853
  const block = recordOf(fec);
7808
7854
  if (block === void 0 || block["blockProfile"] !== "iso-ssbg1-v1") return true;
7809
7855
  const ms = block["interleaveDepthMs"];
7810
- return typeof ms === "number" && Number.isFinite(ms) && ms >= MIN_INTERLEAVE_DEPTH_MS;
7856
+ return ms === void 0 || typeof ms === "number" && Number.isSafeInteger(ms) && ms >= 0;
7811
7857
  }
7812
7858
  function requireBoolean(value, field) {
7813
7859
  if (typeof value !== "boolean") {