mattebox 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +106 -0
  3. package/dist/cdn/mattebox.dash-drm.min.js +2 -0
  4. package/dist/cdn/mattebox.dash.min.js +2 -0
  5. package/dist/cdn/mattebox.dual-drm.min.js +2 -0
  6. package/dist/cdn/mattebox.dual-ts-drm.min.js +3 -0
  7. package/dist/cdn/mattebox.dual-ts.min.js +3 -0
  8. package/dist/cdn/mattebox.dual.min.js +2 -0
  9. package/dist/cdn/mattebox.hls-drm.min.js +2 -0
  10. package/dist/cdn/mattebox.hls-ts-drm.min.js +3 -0
  11. package/dist/cdn/mattebox.hls-ts.min.js +3 -0
  12. package/dist/cdn/mattebox.hls.min.js +2 -0
  13. package/dist/cdn/mattebox.kernel.min.js +1 -0
  14. package/dist/cdn/mattebox.min.js +6 -0
  15. package/dist/cdn/transmux.worker.js +1 -0
  16. package/dist/containers/adts.d.ts +33 -0
  17. package/dist/containers/adts.d.ts.map +1 -0
  18. package/dist/containers/adts.js +66 -0
  19. package/dist/containers/adts.js.map +1 -0
  20. package/dist/containers/captions.d.ts +27 -0
  21. package/dist/containers/captions.d.ts.map +1 -0
  22. package/dist/containers/captions.js +36 -0
  23. package/dist/containers/captions.js.map +1 -0
  24. package/dist/containers/codec-probe/index.d.ts +35 -0
  25. package/dist/containers/codec-probe/index.d.ts.map +1 -0
  26. package/dist/containers/codec-probe/index.js +222 -0
  27. package/dist/containers/codec-probe/index.js.map +1 -0
  28. package/dist/containers/fmp4/writer.d.ts +62 -0
  29. package/dist/containers/fmp4/writer.d.ts.map +1 -0
  30. package/dist/containers/fmp4/writer.js +201 -0
  31. package/dist/containers/fmp4/writer.js.map +1 -0
  32. package/dist/containers/id3.d.ts +25 -0
  33. package/dist/containers/id3.d.ts.map +1 -0
  34. package/dist/containers/id3.js +75 -0
  35. package/dist/containers/id3.js.map +1 -0
  36. package/dist/containers/mp4-box/index.d.ts +79 -0
  37. package/dist/containers/mp4-box/index.d.ts.map +1 -0
  38. package/dist/containers/mp4-box/index.js +231 -0
  39. package/dist/containers/mp4-box/index.js.map +1 -0
  40. package/dist/containers/packed-audio/index.d.ts +7 -0
  41. package/dist/containers/packed-audio/index.d.ts.map +1 -0
  42. package/dist/containers/packed-audio/index.js +63 -0
  43. package/dist/containers/packed-audio/index.js.map +1 -0
  44. package/dist/containers/sei.d.ts +26 -0
  45. package/dist/containers/sei.d.ts.map +1 -0
  46. package/dist/containers/sei.js +100 -0
  47. package/dist/containers/sei.js.map +1 -0
  48. package/dist/containers/ts-transmux/demux.d.ts +49 -0
  49. package/dist/containers/ts-transmux/demux.d.ts.map +1 -0
  50. package/dist/containers/ts-transmux/demux.js +222 -0
  51. package/dist/containers/ts-transmux/demux.js.map +1 -0
  52. package/dist/containers/ts-transmux/h264.d.ts +48 -0
  53. package/dist/containers/ts-transmux/h264.d.ts.map +1 -0
  54. package/dist/containers/ts-transmux/h264.js +211 -0
  55. package/dist/containers/ts-transmux/h264.js.map +1 -0
  56. package/dist/containers/ts-transmux/index.d.ts +17 -0
  57. package/dist/containers/ts-transmux/index.d.ts.map +1 -0
  58. package/dist/containers/ts-transmux/index.js +34 -0
  59. package/dist/containers/ts-transmux/index.js.map +1 -0
  60. package/dist/containers/ts-transmux/runner.d.ts +23 -0
  61. package/dist/containers/ts-transmux/runner.d.ts.map +1 -0
  62. package/dist/containers/ts-transmux/runner.js +99 -0
  63. package/dist/containers/ts-transmux/runner.js.map +1 -0
  64. package/dist/containers/ts-transmux/transmux.d.ts +24 -0
  65. package/dist/containers/ts-transmux/transmux.d.ts.map +1 -0
  66. package/dist/containers/ts-transmux/transmux.js +212 -0
  67. package/dist/containers/ts-transmux/transmux.js.map +1 -0
  68. package/dist/containers/ts-transmux/transmux.worker.d.ts +2 -0
  69. package/dist/containers/ts-transmux/transmux.worker.d.ts.map +1 -0
  70. package/dist/containers/ts-transmux/transmux.worker.js +19 -0
  71. package/dist/containers/ts-transmux/transmux.worker.js.map +1 -0
  72. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/asyncToGenerator.js +27 -0
  73. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/defineProperty.js +12 -0
  74. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectSpread2.js +25 -0
  75. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectWithoutProperties.js +13 -0
  76. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  77. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPrimitive.js +14 -0
  78. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/toPropertyKey.js +9 -0
  79. package/dist/es2015/_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/typeof.js +11 -0
  80. package/dist/es2015/containers/adts.js +77 -0
  81. package/dist/es2015/containers/captions.js +36 -0
  82. package/dist/es2015/containers/codec-probe/index.js +220 -0
  83. package/dist/es2015/containers/fmp4/writer.js +165 -0
  84. package/dist/es2015/containers/id3.js +72 -0
  85. package/dist/es2015/containers/mp4-box/index.js +209 -0
  86. package/dist/es2015/containers/packed-audio/index.js +67 -0
  87. package/dist/es2015/containers/sei.js +79 -0
  88. package/dist/es2015/containers/ts-transmux/demux.js +211 -0
  89. package/dist/es2015/containers/ts-transmux/h264.js +204 -0
  90. package/dist/es2015/containers/ts-transmux/index.js +37 -0
  91. package/dist/es2015/containers/ts-transmux/runner.js +95 -0
  92. package/dist/es2015/containers/ts-transmux/transmux.js +210 -0
  93. package/dist/es2015/containers/ts-transmux/transmux.worker.js +26 -0
  94. package/dist/es2015/index.js +356 -0
  95. package/dist/es2015/kernel/append-queue.js +148 -0
  96. package/dist/es2015/kernel/bus.js +134 -0
  97. package/dist/es2015/kernel/context.js +92 -0
  98. package/dist/es2015/kernel/effects.js +62 -0
  99. package/dist/es2015/kernel/evictor.js +67 -0
  100. package/dist/es2015/kernel/lifecycle.js +122 -0
  101. package/dist/es2015/kernel/loader.js +108 -0
  102. package/dist/es2015/kernel/mime.js +20 -0
  103. package/dist/es2015/kernel/mse.js +426 -0
  104. package/dist/es2015/kernel/reducer.js +1051 -0
  105. package/dist/es2015/kernel/rendition-select.js +263 -0
  106. package/dist/es2015/kernel/scheduler.js +82 -0
  107. package/dist/es2015/kernel/sinks/metadata-sink.js +7 -0
  108. package/dist/es2015/kernel/sinks/mse-sink.js +31 -0
  109. package/dist/es2015/kernel/sinks/text-track-sink.js +167 -0
  110. package/dist/es2015/kernel/timeline.js +127 -0
  111. package/dist/es2015/kernel/trace.js +134 -0
  112. package/dist/es2015/kernel/track-registry.js +47 -0
  113. package/dist/es2015/kernel/transport.js +242 -0
  114. package/dist/es2015/kernel/watchdog.js +38 -0
  115. package/dist/es2015/presets/dash/index.js +9 -0
  116. package/dist/es2015/presets/dash-drm/index.js +13 -0
  117. package/dist/es2015/presets/define.js +45 -0
  118. package/dist/es2015/presets/dual/index.js +14 -0
  119. package/dist/es2015/presets/dual-drm/index.js +14 -0
  120. package/dist/es2015/presets/dual-ts/index.js +14 -0
  121. package/dist/es2015/presets/dual-ts-drm/index.js +15 -0
  122. package/dist/es2015/presets/full/index.js +28 -0
  123. package/dist/es2015/presets/hls/index.js +9 -0
  124. package/dist/es2015/presets/hls-drm/index.js +13 -0
  125. package/dist/es2015/presets/hls-ts/index.js +13 -0
  126. package/dist/es2015/presets/hls-ts-drm/index.js +14 -0
  127. package/dist/es2015/presets/kernel/index.js +10 -0
  128. package/dist/es2015/presets/storage.js +24 -0
  129. package/dist/es2015/presets/tiers.js +93 -0
  130. package/dist/es2015/protocols/dash-cmaf/index.js +161 -0
  131. package/dist/es2015/protocols/dash-cmaf/parse.js +491 -0
  132. package/dist/es2015/protocols/dash-live/index.js +192 -0
  133. package/dist/es2015/protocols/hls-cmaf/index.js +168 -0
  134. package/dist/es2015/protocols/hls-cmaf/lexer.js +72 -0
  135. package/dist/es2015/protocols/hls-cmaf/parse.js +457 -0
  136. package/dist/es2015/protocols/hls-live/index.js +296 -0
  137. package/dist/es2015/protocols/live-shared.js +29 -0
  138. package/dist/es2015/stages/abr/index.js +126 -0
  139. package/dist/es2015/stages/abr-cap-size/index.js +22 -0
  140. package/dist/es2015/stages/abr-persist/index.js +52 -0
  141. package/dist/es2015/stages/aes-128/index.js +76 -0
  142. package/dist/es2015/stages/alt-audio/index.js +80 -0
  143. package/dist/es2015/stages/cmaf-timing/index.js +55 -0
  144. package/dist/es2015/stages/cmcd/index.js +70 -0
  145. package/dist/es2015/stages/codec-probe/index.js +65 -0
  146. package/dist/es2015/stages/codec-switch/index.js +48 -0
  147. package/dist/es2015/stages/content-steering/index.js +179 -0
  148. package/dist/es2015/stages/drm-shared.js +18 -0
  149. package/dist/es2015/stages/eme-cenc/index.js +46 -0
  150. package/dist/es2015/stages/eme-core/index.js +237 -0
  151. package/dist/es2015/stages/eme-fairplay/index.js +52 -0
  152. package/dist/es2015/stages/meta-id3/index.js +37 -0
  153. package/dist/es2015/stages/mp4-box/index.js +27 -0
  154. package/dist/es2015/stages/nal-scan/index.js +121 -0
  155. package/dist/es2015/stages/pdt/index.js +34 -0
  156. package/dist/es2015/stages/recovery/index.js +283 -0
  157. package/dist/es2015/stages/text-cea608/decode.js +201 -0
  158. package/dist/es2015/stages/text-cea608/index.js +71 -0
  159. package/dist/es2015/stages/text-webvtt/index.js +82 -0
  160. package/dist/es2015/stages/text-webvtt/parse.js +60 -0
  161. package/dist/es2015/stages/text-webvtt-segmented/index.js +57 -0
  162. package/dist/es2015/stages/thumbnails/index.js +73 -0
  163. package/dist/index.d.ts +32 -0
  164. package/dist/index.d.ts.map +1 -0
  165. package/dist/index.js +423 -0
  166. package/dist/index.js.map +1 -0
  167. package/dist/kernel/append-queue.d.ts +47 -0
  168. package/dist/kernel/append-queue.d.ts.map +1 -0
  169. package/dist/kernel/append-queue.js +180 -0
  170. package/dist/kernel/append-queue.js.map +1 -0
  171. package/dist/kernel/bus.d.ts +50 -0
  172. package/dist/kernel/bus.d.ts.map +1 -0
  173. package/dist/kernel/bus.js +147 -0
  174. package/dist/kernel/bus.js.map +1 -0
  175. package/dist/kernel/context.d.ts +45 -0
  176. package/dist/kernel/context.d.ts.map +1 -0
  177. package/dist/kernel/context.js +116 -0
  178. package/dist/kernel/context.js.map +1 -0
  179. package/dist/kernel/effects.d.ts +33 -0
  180. package/dist/kernel/effects.d.ts.map +1 -0
  181. package/dist/kernel/effects.js +65 -0
  182. package/dist/kernel/effects.js.map +1 -0
  183. package/dist/kernel/evictor.d.ts +46 -0
  184. package/dist/kernel/evictor.d.ts.map +1 -0
  185. package/dist/kernel/evictor.js +92 -0
  186. package/dist/kernel/evictor.js.map +1 -0
  187. package/dist/kernel/lifecycle.d.ts +41 -0
  188. package/dist/kernel/lifecycle.d.ts.map +1 -0
  189. package/dist/kernel/lifecycle.js +129 -0
  190. package/dist/kernel/lifecycle.js.map +1 -0
  191. package/dist/kernel/loader.d.ts +28 -0
  192. package/dist/kernel/loader.d.ts.map +1 -0
  193. package/dist/kernel/loader.js +126 -0
  194. package/dist/kernel/loader.js.map +1 -0
  195. package/dist/kernel/mime.d.ts +13 -0
  196. package/dist/kernel/mime.d.ts.map +1 -0
  197. package/dist/kernel/mime.js +18 -0
  198. package/dist/kernel/mime.js.map +1 -0
  199. package/dist/kernel/mse.d.ts +62 -0
  200. package/dist/kernel/mse.d.ts.map +1 -0
  201. package/dist/kernel/mse.js +490 -0
  202. package/dist/kernel/mse.js.map +1 -0
  203. package/dist/kernel/reducer.d.ts +39 -0
  204. package/dist/kernel/reducer.d.ts.map +1 -0
  205. package/dist/kernel/reducer.js +1316 -0
  206. package/dist/kernel/reducer.js.map +1 -0
  207. package/dist/kernel/rendition-select.d.ts +102 -0
  208. package/dist/kernel/rendition-select.d.ts.map +1 -0
  209. package/dist/kernel/rendition-select.js +295 -0
  210. package/dist/kernel/rendition-select.js.map +1 -0
  211. package/dist/kernel/scheduler.d.ts +57 -0
  212. package/dist/kernel/scheduler.d.ts.map +1 -0
  213. package/dist/kernel/scheduler.js +98 -0
  214. package/dist/kernel/scheduler.js.map +1 -0
  215. package/dist/kernel/sinks/metadata-sink.d.ts +7 -0
  216. package/dist/kernel/sinks/metadata-sink.d.ts.map +1 -0
  217. package/dist/kernel/sinks/metadata-sink.js +5 -0
  218. package/dist/kernel/sinks/metadata-sink.js.map +1 -0
  219. package/dist/kernel/sinks/mse-sink.d.ts +17 -0
  220. package/dist/kernel/sinks/mse-sink.d.ts.map +1 -0
  221. package/dist/kernel/sinks/mse-sink.js +20 -0
  222. package/dist/kernel/sinks/mse-sink.js.map +1 -0
  223. package/dist/kernel/sinks/text-track-sink.d.ts +45 -0
  224. package/dist/kernel/sinks/text-track-sink.d.ts.map +1 -0
  225. package/dist/kernel/sinks/text-track-sink.js +184 -0
  226. package/dist/kernel/sinks/text-track-sink.js.map +1 -0
  227. package/dist/kernel/timeline.d.ts +57 -0
  228. package/dist/kernel/timeline.d.ts.map +1 -0
  229. package/dist/kernel/timeline.js +203 -0
  230. package/dist/kernel/timeline.js.map +1 -0
  231. package/dist/kernel/trace.d.ts +42 -0
  232. package/dist/kernel/trace.d.ts.map +1 -0
  233. package/dist/kernel/trace.js +165 -0
  234. package/dist/kernel/trace.js.map +1 -0
  235. package/dist/kernel/track-registry.d.ts +22 -0
  236. package/dist/kernel/track-registry.d.ts.map +1 -0
  237. package/dist/kernel/track-registry.js +42 -0
  238. package/dist/kernel/track-registry.js.map +1 -0
  239. package/dist/kernel/transport.d.ts +90 -0
  240. package/dist/kernel/transport.d.ts.map +1 -0
  241. package/dist/kernel/transport.js +256 -0
  242. package/dist/kernel/transport.js.map +1 -0
  243. package/dist/kernel/watchdog.d.ts +35 -0
  244. package/dist/kernel/watchdog.d.ts.map +1 -0
  245. package/dist/kernel/watchdog.js +43 -0
  246. package/dist/kernel/watchdog.js.map +1 -0
  247. package/dist/presets/dash/index.d.ts +4 -0
  248. package/dist/presets/dash/index.d.ts.map +1 -0
  249. package/dist/presets/dash/index.js +8 -0
  250. package/dist/presets/dash/index.js.map +1 -0
  251. package/dist/presets/dash-drm/index.d.ts +4 -0
  252. package/dist/presets/dash-drm/index.d.ts.map +1 -0
  253. package/dist/presets/dash-drm/index.js +8 -0
  254. package/dist/presets/dash-drm/index.js.map +1 -0
  255. package/dist/presets/define.d.ts +36 -0
  256. package/dist/presets/define.d.ts.map +1 -0
  257. package/dist/presets/define.js +39 -0
  258. package/dist/presets/define.js.map +1 -0
  259. package/dist/presets/dual/index.d.ts +4 -0
  260. package/dist/presets/dual/index.d.ts.map +1 -0
  261. package/dist/presets/dual/index.js +9 -0
  262. package/dist/presets/dual/index.js.map +1 -0
  263. package/dist/presets/dual-drm/index.d.ts +4 -0
  264. package/dist/presets/dual-drm/index.d.ts.map +1 -0
  265. package/dist/presets/dual-drm/index.js +13 -0
  266. package/dist/presets/dual-drm/index.js.map +1 -0
  267. package/dist/presets/dual-ts/index.d.ts +4 -0
  268. package/dist/presets/dual-ts/index.d.ts.map +1 -0
  269. package/dist/presets/dual-ts/index.js +8 -0
  270. package/dist/presets/dual-ts/index.js.map +1 -0
  271. package/dist/presets/dual-ts-drm/index.d.ts +4 -0
  272. package/dist/presets/dual-ts-drm/index.d.ts.map +1 -0
  273. package/dist/presets/dual-ts-drm/index.js +14 -0
  274. package/dist/presets/dual-ts-drm/index.js.map +1 -0
  275. package/dist/presets/full/index.d.ts +4 -0
  276. package/dist/presets/full/index.d.ts.map +1 -0
  277. package/dist/presets/full/index.js +27 -0
  278. package/dist/presets/full/index.js.map +1 -0
  279. package/dist/presets/hls/index.d.ts +4 -0
  280. package/dist/presets/hls/index.d.ts.map +1 -0
  281. package/dist/presets/hls/index.js +8 -0
  282. package/dist/presets/hls/index.js.map +1 -0
  283. package/dist/presets/hls-drm/index.d.ts +4 -0
  284. package/dist/presets/hls-drm/index.d.ts.map +1 -0
  285. package/dist/presets/hls-drm/index.js +8 -0
  286. package/dist/presets/hls-drm/index.js.map +1 -0
  287. package/dist/presets/hls-ts/index.d.ts +4 -0
  288. package/dist/presets/hls-ts/index.d.ts.map +1 -0
  289. package/dist/presets/hls-ts/index.js +8 -0
  290. package/dist/presets/hls-ts/index.js.map +1 -0
  291. package/dist/presets/hls-ts-drm/index.d.ts +4 -0
  292. package/dist/presets/hls-ts-drm/index.d.ts.map +1 -0
  293. package/dist/presets/hls-ts-drm/index.js +13 -0
  294. package/dist/presets/hls-ts-drm/index.js.map +1 -0
  295. package/dist/presets/kernel/index.d.ts +4 -0
  296. package/dist/presets/kernel/index.d.ts.map +1 -0
  297. package/dist/presets/kernel/index.js +9 -0
  298. package/dist/presets/kernel/index.js.map +1 -0
  299. package/dist/presets/storage.d.ts +9 -0
  300. package/dist/presets/storage.d.ts.map +1 -0
  301. package/dist/presets/storage.js +24 -0
  302. package/dist/presets/storage.js.map +1 -0
  303. package/dist/presets/tiers.d.ts +22 -0
  304. package/dist/presets/tiers.d.ts.map +1 -0
  305. package/dist/presets/tiers.js +78 -0
  306. package/dist/presets/tiers.js.map +1 -0
  307. package/dist/protocols/dash-cmaf/index.d.ts +20 -0
  308. package/dist/protocols/dash-cmaf/index.d.ts.map +1 -0
  309. package/dist/protocols/dash-cmaf/index.js +176 -0
  310. package/dist/protocols/dash-cmaf/index.js.map +1 -0
  311. package/dist/protocols/dash-cmaf/parse.d.ts +24 -0
  312. package/dist/protocols/dash-cmaf/parse.d.ts.map +1 -0
  313. package/dist/protocols/dash-cmaf/parse.js +586 -0
  314. package/dist/protocols/dash-cmaf/parse.js.map +1 -0
  315. package/dist/protocols/dash-live/index.d.ts +4 -0
  316. package/dist/protocols/dash-live/index.d.ts.map +1 -0
  317. package/dist/protocols/dash-live/index.js +188 -0
  318. package/dist/protocols/dash-live/index.js.map +1 -0
  319. package/dist/protocols/hls-cmaf/index.d.ts +17 -0
  320. package/dist/protocols/hls-cmaf/index.d.ts.map +1 -0
  321. package/dist/protocols/hls-cmaf/index.js +189 -0
  322. package/dist/protocols/hls-cmaf/index.js.map +1 -0
  323. package/dist/protocols/hls-cmaf/lexer.d.ts +25 -0
  324. package/dist/protocols/hls-cmaf/lexer.d.ts.map +1 -0
  325. package/dist/protocols/hls-cmaf/lexer.js +81 -0
  326. package/dist/protocols/hls-cmaf/lexer.js.map +1 -0
  327. package/dist/protocols/hls-cmaf/parse.d.ts +57 -0
  328. package/dist/protocols/hls-cmaf/parse.d.ts.map +1 -0
  329. package/dist/protocols/hls-cmaf/parse.js +572 -0
  330. package/dist/protocols/hls-cmaf/parse.js.map +1 -0
  331. package/dist/protocols/hls-live/index.d.ts +4 -0
  332. package/dist/protocols/hls-live/index.d.ts.map +1 -0
  333. package/dist/protocols/hls-live/index.js +309 -0
  334. package/dist/protocols/hls-live/index.js.map +1 -0
  335. package/dist/protocols/live-shared.d.ts +21 -0
  336. package/dist/protocols/live-shared.d.ts.map +1 -0
  337. package/dist/protocols/live-shared.js +32 -0
  338. package/dist/protocols/live-shared.js.map +1 -0
  339. package/dist/stages/abr/index.d.ts +16 -0
  340. package/dist/stages/abr/index.d.ts.map +1 -0
  341. package/dist/stages/abr/index.js +176 -0
  342. package/dist/stages/abr/index.js.map +1 -0
  343. package/dist/stages/abr-cap-size/index.d.ts +8 -0
  344. package/dist/stages/abr-cap-size/index.d.ts.map +1 -0
  345. package/dist/stages/abr-cap-size/index.js +21 -0
  346. package/dist/stages/abr-cap-size/index.js.map +1 -0
  347. package/dist/stages/abr-persist/index.d.ts +8 -0
  348. package/dist/stages/abr-persist/index.d.ts.map +1 -0
  349. package/dist/stages/abr-persist/index.js +44 -0
  350. package/dist/stages/abr-persist/index.js.map +1 -0
  351. package/dist/stages/aes-128/index.d.ts +15 -0
  352. package/dist/stages/aes-128/index.d.ts.map +1 -0
  353. package/dist/stages/aes-128/index.js +78 -0
  354. package/dist/stages/aes-128/index.js.map +1 -0
  355. package/dist/stages/alt-audio/index.d.ts +4 -0
  356. package/dist/stages/alt-audio/index.d.ts.map +1 -0
  357. package/dist/stages/alt-audio/index.js +90 -0
  358. package/dist/stages/alt-audio/index.js.map +1 -0
  359. package/dist/stages/cmaf-timing/index.d.ts +3 -0
  360. package/dist/stages/cmaf-timing/index.d.ts.map +1 -0
  361. package/dist/stages/cmaf-timing/index.js +56 -0
  362. package/dist/stages/cmaf-timing/index.js.map +1 -0
  363. package/dist/stages/cmcd/index.d.ts +22 -0
  364. package/dist/stages/cmcd/index.d.ts.map +1 -0
  365. package/dist/stages/cmcd/index.js +92 -0
  366. package/dist/stages/cmcd/index.js.map +1 -0
  367. package/dist/stages/codec-probe/index.d.ts +9 -0
  368. package/dist/stages/codec-probe/index.d.ts.map +1 -0
  369. package/dist/stages/codec-probe/index.js +68 -0
  370. package/dist/stages/codec-probe/index.js.map +1 -0
  371. package/dist/stages/codec-switch/index.d.ts +6 -0
  372. package/dist/stages/codec-switch/index.d.ts.map +1 -0
  373. package/dist/stages/codec-switch/index.js +59 -0
  374. package/dist/stages/codec-switch/index.js.map +1 -0
  375. package/dist/stages/content-steering/index.d.ts +4 -0
  376. package/dist/stages/content-steering/index.d.ts.map +1 -0
  377. package/dist/stages/content-steering/index.js +174 -0
  378. package/dist/stages/content-steering/index.js.map +1 -0
  379. package/dist/stages/drm-shared.d.ts +46 -0
  380. package/dist/stages/drm-shared.d.ts.map +1 -0
  381. package/dist/stages/drm-shared.js +28 -0
  382. package/dist/stages/drm-shared.js.map +1 -0
  383. package/dist/stages/eme-cenc/index.d.ts +12 -0
  384. package/dist/stages/eme-cenc/index.d.ts.map +1 -0
  385. package/dist/stages/eme-cenc/index.js +53 -0
  386. package/dist/stages/eme-cenc/index.js.map +1 -0
  387. package/dist/stages/eme-core/index.d.ts +29 -0
  388. package/dist/stages/eme-core/index.d.ts.map +1 -0
  389. package/dist/stages/eme-core/index.js +244 -0
  390. package/dist/stages/eme-core/index.js.map +1 -0
  391. package/dist/stages/eme-fairplay/index.d.ts +20 -0
  392. package/dist/stages/eme-fairplay/index.d.ts.map +1 -0
  393. package/dist/stages/eme-fairplay/index.js +59 -0
  394. package/dist/stages/eme-fairplay/index.js.map +1 -0
  395. package/dist/stages/meta-id3/index.d.ts +14 -0
  396. package/dist/stages/meta-id3/index.d.ts.map +1 -0
  397. package/dist/stages/meta-id3/index.js +30 -0
  398. package/dist/stages/meta-id3/index.js.map +1 -0
  399. package/dist/stages/mp4-box/index.d.ts +3 -0
  400. package/dist/stages/mp4-box/index.d.ts.map +1 -0
  401. package/dist/stages/mp4-box/index.js +19 -0
  402. package/dist/stages/mp4-box/index.js.map +1 -0
  403. package/dist/stages/nal-scan/index.d.ts +3 -0
  404. package/dist/stages/nal-scan/index.d.ts.map +1 -0
  405. package/dist/stages/nal-scan/index.js +123 -0
  406. package/dist/stages/nal-scan/index.js.map +1 -0
  407. package/dist/stages/pdt/index.d.ts +14 -0
  408. package/dist/stages/pdt/index.d.ts.map +1 -0
  409. package/dist/stages/pdt/index.js +34 -0
  410. package/dist/stages/pdt/index.js.map +1 -0
  411. package/dist/stages/recovery/index.d.ts +16 -0
  412. package/dist/stages/recovery/index.d.ts.map +1 -0
  413. package/dist/stages/recovery/index.js +270 -0
  414. package/dist/stages/recovery/index.js.map +1 -0
  415. package/dist/stages/text-cea608/decode.d.ts +44 -0
  416. package/dist/stages/text-cea608/decode.d.ts.map +1 -0
  417. package/dist/stages/text-cea608/decode.js +225 -0
  418. package/dist/stages/text-cea608/decode.js.map +1 -0
  419. package/dist/stages/text-cea608/index.d.ts +3 -0
  420. package/dist/stages/text-cea608/index.d.ts.map +1 -0
  421. package/dist/stages/text-cea608/index.js +84 -0
  422. package/dist/stages/text-cea608/index.js.map +1 -0
  423. package/dist/stages/text-webvtt/index.d.ts +3 -0
  424. package/dist/stages/text-webvtt/index.d.ts.map +1 -0
  425. package/dist/stages/text-webvtt/index.js +82 -0
  426. package/dist/stages/text-webvtt/index.js.map +1 -0
  427. package/dist/stages/text-webvtt/parse.d.ts +19 -0
  428. package/dist/stages/text-webvtt/parse.d.ts.map +1 -0
  429. package/dist/stages/text-webvtt/parse.js +62 -0
  430. package/dist/stages/text-webvtt/parse.js.map +1 -0
  431. package/dist/stages/text-webvtt-segmented/index.d.ts +5 -0
  432. package/dist/stages/text-webvtt-segmented/index.d.ts.map +1 -0
  433. package/dist/stages/text-webvtt-segmented/index.js +63 -0
  434. package/dist/stages/text-webvtt-segmented/index.js.map +1 -0
  435. package/dist/stages/thumbnails/index.d.ts +34 -0
  436. package/dist/stages/thumbnails/index.d.ts.map +1 -0
  437. package/dist/stages/thumbnails/index.js +58 -0
  438. package/dist/stages/thumbnails/index.js.map +1 -0
  439. package/dist/types/error.d.ts +33 -0
  440. package/dist/types/error.d.ts.map +1 -0
  441. package/dist/types/error.js +7 -0
  442. package/dist/types/error.js.map +1 -0
  443. package/dist/types/facade.d.ts +104 -0
  444. package/dist/types/facade.d.ts.map +1 -0
  445. package/dist/types/facade.js +2 -0
  446. package/dist/types/facade.js.map +1 -0
  447. package/dist/types/ir.d.ts +238 -0
  448. package/dist/types/ir.d.ts.map +1 -0
  449. package/dist/types/ir.js +7 -0
  450. package/dist/types/ir.js.map +1 -0
  451. package/dist/types/kernel.d.ts +217 -0
  452. package/dist/types/kernel.d.ts.map +1 -0
  453. package/dist/types/kernel.js +2 -0
  454. package/dist/types/kernel.js.map +1 -0
  455. package/dist/types/messages.d.ts +288 -0
  456. package/dist/types/messages.d.ts.map +1 -0
  457. package/dist/types/messages.js +2 -0
  458. package/dist/types/messages.js.map +1 -0
  459. package/dist/types/quality.d.ts +108 -0
  460. package/dist/types/quality.d.ts.map +1 -0
  461. package/dist/types/quality.js +2 -0
  462. package/dist/types/quality.js.map +1 -0
  463. package/dist/types/sink.d.ts +27 -0
  464. package/dist/types/sink.d.ts.map +1 -0
  465. package/dist/types/sink.js +2 -0
  466. package/dist/types/sink.js.map +1 -0
  467. package/dist/types/stage.d.ts +139 -0
  468. package/dist/types/stage.d.ts.map +1 -0
  469. package/dist/types/stage.js +2 -0
  470. package/dist/types/stage.js.map +1 -0
  471. package/package.json +132 -0
@@ -0,0 +1,134 @@
1
+ /** Fixed capacity, overwriting. Roughly 200 bytes of code for the whole payoff. */
2
+ function createTraceBuffer(capacity = 500) {
3
+ const entries = [];
4
+ let head = 0;
5
+ return {
6
+ capacity,
7
+ push(entry) {
8
+ if (entries.length < capacity) entries.push(entry);
9
+ else {
10
+ entries[head] = entry;
11
+ head = (head + 1) % capacity;
12
+ }
13
+ },
14
+ snapshot() {
15
+ return [...entries.slice(head), ...entries.slice(0, head)];
16
+ }
17
+ };
18
+ }
19
+ function isPlainObject(value) {
20
+ const proto = Object.getPrototypeOf(value);
21
+ return proto === Object.prototype || proto === null;
22
+ }
23
+ /**
24
+ * Deterministic serialization for hashing: sorted object keys, sorted Map
25
+ * entries, opaque values tagged by constructor name. Not a wire format.
26
+ */
27
+ function stableStringify(value) {
28
+ if (value === null || typeof value === "number" || typeof value === "boolean") return String(value);
29
+ if (typeof value === "string") return JSON.stringify(value);
30
+ if (value === void 0) return "undefined";
31
+ if (typeof value === "function") return "[function]";
32
+ if (Array.isArray(value)) return `[${value.map(stableStringify).join(",")}]`;
33
+ if (value instanceof Map) return `Map{${[...value.entries()].map(([k, v]) => `${stableStringify(k)}:${stableStringify(v)}`).sort().join(",")}}`;
34
+ if (value instanceof ArrayBuffer) return `ArrayBuffer(${value.byteLength})`;
35
+ if (ArrayBuffer.isView(value)) return `${value.constructor.name}(${value.byteLength})`;
36
+ if (typeof value === "object") {
37
+ var _value$constructor$na, _value$constructor;
38
+ if (!isPlainObject(value)) return `[${(_value$constructor$na = (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name) !== null && _value$constructor$na !== void 0 ? _value$constructor$na : "opaque"}]`;
39
+ return `{${Object.keys(value).sort().map((k) => `${JSON.stringify(k)}:${stableStringify(value[k])}`).join(",")}}`;
40
+ }
41
+ return String(value);
42
+ }
43
+ /** 32-bit FNV-1a over a string, as fixed-width hex. */
44
+ function fnv1a(input) {
45
+ let hash = 2166136261;
46
+ for (let i = 0; i < input.length; i += 1) {
47
+ hash ^= input.charCodeAt(i);
48
+ hash = Math.imul(hash, 16777619) >>> 0;
49
+ }
50
+ return hash.toString(16).padStart(8, "0");
51
+ }
52
+ /**
53
+ * A cheap, stable hash of the state slices that matter for divergence
54
+ * detection. Stable across runs: it depends only on the state.
55
+ */
56
+ function digest(state) {
57
+ var _state$presentation$i, _state$presentation;
58
+ return fnv1a(stableStringify({
59
+ phase: state.lifecycle.phase,
60
+ presentation: (_state$presentation$i = (_state$presentation = state.presentation) === null || _state$presentation === void 0 ? void 0 : _state$presentation.id) !== null && _state$presentation$i !== void 0 ? _state$presentation$i : null,
61
+ inflight: [...state.scheduling.inflight.keys()].sort(),
62
+ bufferGoal: state.scheduling.bufferGoal,
63
+ tokenSeq: state.scheduling.tokenSeq,
64
+ buffers: state.buffers,
65
+ tracks: state.tracks.active,
66
+ quality: {
67
+ pinned: state.quality.pinned,
68
+ active: state.quality.active,
69
+ constraints: [...state.quality.constraints.keys()].sort()
70
+ },
71
+ currentTime: state.playback.currentTime
72
+ }));
73
+ }
74
+ /**
75
+ * JSON for a bug report. Byte payloads are reduced to their length and
76
+ * non-plain objects to their constructor name; the shape of the
77
+ * interleaving is what matters, not the media bytes.
78
+ */
79
+ function exportTrace(entries) {
80
+ return JSON.stringify(entries, (_key, value) => {
81
+ if (value instanceof ArrayBuffer) return { $bytes: value.byteLength };
82
+ if (ArrayBuffer.isView(value)) return { $bytes: value.byteLength };
83
+ if (value instanceof Map) return Object.fromEntries(value);
84
+ if (typeof value === "function") return { $opaque: "function" };
85
+ if (typeof value === "object" && value !== null && !Array.isArray(value) && !isPlainObject(value)) {
86
+ var _value$constructor$na2, _value$constructor2;
87
+ return { $opaque: (_value$constructor$na2 = (_value$constructor2 = value.constructor) === null || _value$constructor2 === void 0 ? void 0 : _value$constructor2.name) !== null && _value$constructor$na2 !== void 0 ? _value$constructor$na2 : "object" };
88
+ }
89
+ return value;
90
+ });
91
+ }
92
+ function buffersEqual(a, b) {
93
+ if (a.byteLength !== b.byteLength) return false;
94
+ const va = new Uint8Array(a);
95
+ const vb = new Uint8Array(b);
96
+ for (let i = 0; i < va.length; i += 1) if (va[i] !== vb[i]) return false;
97
+ return true;
98
+ }
99
+ /** Structural equality over effect payloads: plain data plus ArrayBuffer. */
100
+ function deepEqual(a, b) {
101
+ if (Object.is(a, b)) return true;
102
+ if (a instanceof ArrayBuffer && b instanceof ArrayBuffer) return buffersEqual(a, b);
103
+ if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((item, i) => deepEqual(item, b[i]));
104
+ if (typeof a === "object" && typeof b === "object" && a !== null && b !== null) {
105
+ const ka = Object.keys(a);
106
+ const kb = Object.keys(b);
107
+ if (ka.length !== kb.length) return false;
108
+ return ka.every((k) => deepEqual(a[k], b[k]));
109
+ }
110
+ return false;
111
+ }
112
+ /**
113
+ * Feeds a recorded message sequence into a fresh reducer and checks that the
114
+ * same effects come out. The reducer must be built with the same slices as
115
+ * the one that produced the trace.
116
+ */
117
+ function replay(entries, reducer, initial) {
118
+ let state = initial;
119
+ for (let i = 0; i < entries.length; i += 1) {
120
+ const entry = entries[i];
121
+ if (entry === void 0) continue;
122
+ const [next, effects] = reducer(state, entry.msg);
123
+ if (!deepEqual(effects, entry.effects)) return {
124
+ ok: false,
125
+ divergedAt: i,
126
+ expected: entry.effects,
127
+ actual: effects
128
+ };
129
+ state = next;
130
+ }
131
+ return { ok: true };
132
+ }
133
+ //#endregion
134
+ export { createTraceBuffer, digest, exportTrace, replay };
@@ -0,0 +1,47 @@
1
+ //#region src/kernel/track-registry.ts
2
+ function allTracks(state) {
3
+ if (state.presentation === null) return [];
4
+ return state.presentation.periods.flatMap((period) => period.tracks);
5
+ }
6
+ function createTrackRegistry(deps) {
7
+ function find(trackId) {
8
+ var _allTracks$find;
9
+ return (_allTracks$find = allTracks(deps.getState()).find((track) => track.id === trackId)) !== null && _allTracks$find !== void 0 ? _allTracks$find : null;
10
+ }
11
+ return {
12
+ get available() {
13
+ return allTracks(deps.getState());
14
+ },
15
+ active(contentType) {
16
+ const activeId = deps.getState().tracks.active.get(contentType);
17
+ if (activeId === void 0) return null;
18
+ return find(activeId);
19
+ },
20
+ selectable(trackId) {
21
+ const track = find(trackId);
22
+ return track !== null && deps.hasSink(track.contentType);
23
+ },
24
+ select(trackId) {
25
+ const track = find(trackId);
26
+ if (track !== null && !deps.hasSink(track.contentType)) {
27
+ deps.emitEvent("command:rejected", {
28
+ command: "SELECT_TRACK",
29
+ reason: `no sink registered for '${track.contentType}'`
30
+ });
31
+ return;
32
+ }
33
+ deps.dispatch({
34
+ type: "SELECT_TRACK",
35
+ trackId
36
+ });
37
+ },
38
+ deselect(contentType) {
39
+ deps.dispatch({
40
+ type: "DESELECT_TRACK",
41
+ contentType
42
+ });
43
+ }
44
+ };
45
+ }
46
+ //#endregion
47
+ export { createTrackRegistry };
@@ -0,0 +1,242 @@
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectSpread2.js";
2
+ import _asyncToGenerator from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/asyncToGenerator.js";
3
+ //#region src/kernel/transport.ts
4
+ const DEFAULT_RETRY_POLICY = {
5
+ maxAttempts: 3,
6
+ baseDelayMs: 500,
7
+ factor: 2,
8
+ maxDelayMs: 5e3,
9
+ retryStatuses: [
10
+ 408,
11
+ 429,
12
+ 500,
13
+ 502,
14
+ 503,
15
+ 504
16
+ ]
17
+ };
18
+ /** Backoff delay before retry `attempt` (1 = first retry). Exported so tests pin the schedule. */
19
+ function backoffDelayMs(policy, attempt) {
20
+ return Math.min(policy.maxDelayMs, policy.baseDelayMs * Math.pow(policy.factor, attempt - 1));
21
+ }
22
+ function createTransport(options) {
23
+ var _options$fetchImpl, _options$now;
24
+ const policy = _objectSpread2(_objectSpread2({}, DEFAULT_RETRY_POLICY), options.retry);
25
+ const fetchImpl = (_options$fetchImpl = options.fetchImpl) !== null && _options$fetchImpl !== void 0 ? _options$fetchImpl : ((url, init) => globalThis.fetch(url, init));
26
+ const now = (_options$now = options.now) !== null && _options$now !== void 0 ? _options$now : (() => globalThis.performance.now());
27
+ const defaultTimeout = options.defaultTimeoutMs === void 0 ? 2e4 : options.defaultTimeoutMs;
28
+ const requestHooks = /* @__PURE__ */ new Set();
29
+ const responseHooks = /* @__PURE__ */ new Set();
30
+ const live = /* @__PURE__ */ new Map();
31
+ function fail(token, request, code, status) {
32
+ live.delete(token);
33
+ options.absorb(_objectSpread2(_objectSpread2(_objectSpread2({
34
+ type: "SEGMENT_FAILED",
35
+ trackId: request.trackId,
36
+ seq: request.seq
37
+ }, request.renditionId !== void 0 ? { renditionId: request.renditionId } : {}), status !== void 0 ? { status } : {}), {}, { error: {
38
+ category: "network",
39
+ code,
40
+ fatal: false,
41
+ recoverable: true,
42
+ context: {
43
+ url: request.url,
44
+ token
45
+ }
46
+ } }));
47
+ }
48
+ function notifyResponse(info) {
49
+ for (const hook of [...responseHooks]) try {
50
+ hook(info);
51
+ } catch (_unused) {}
52
+ }
53
+ function attempt(token, request, effectUrl, range, timeoutFromEffect, attemptNo) {
54
+ const state = {
55
+ controller: new AbortController(),
56
+ timedOut: false,
57
+ userAborted: false,
58
+ timeoutId: null,
59
+ retryId: null
60
+ };
61
+ live.set(token, state);
62
+ const draft = {
63
+ url: effectUrl,
64
+ headers: {},
65
+ timeoutMs: timeoutFromEffect !== null && timeoutFromEffect !== void 0 ? timeoutFromEffect : defaultTimeout,
66
+ token,
67
+ attempt: attemptNo
68
+ };
69
+ if (range !== void 0) {
70
+ const end = Number.isFinite(range.end) ? String(range.end) : "";
71
+ draft.headers.Range = `bytes=${range.start}-${end}`;
72
+ }
73
+ for (const hook of [...requestHooks]) try {
74
+ hook(draft);
75
+ } catch (_unused2) {}
76
+ if (draft.timeoutMs !== null) state.timeoutId = setTimeout(() => {
77
+ state.timedOut = true;
78
+ state.controller.abort();
79
+ }, draft.timeoutMs);
80
+ const startedAt = now();
81
+ const retryOrFail = (code, status) => {
82
+ if (!(attemptNo < policy.maxAttempts && (code !== "NETWORK_HTTP_STATUS" || status !== void 0 && policy.retryStatuses.includes(status)))) {
83
+ fail(token, request, code, status);
84
+ return;
85
+ }
86
+ state.retryId = setTimeout(() => {
87
+ state.retryId = null;
88
+ attempt(token, request, effectUrl, range, timeoutFromEffect, attemptNo + 1);
89
+ }, backoffDelayMs(policy, attemptNo));
90
+ };
91
+ fetchImpl(draft.url, {
92
+ headers: draft.headers,
93
+ signal: state.controller.signal
94
+ }).then(function() {
95
+ var _ref = _asyncToGenerator(function* (response) {
96
+ var _options$acceptManife, _response$body;
97
+ if (state.timeoutId !== null) clearTimeout(state.timeoutId);
98
+ if (!response.ok) {
99
+ notifyResponse({
100
+ token,
101
+ url: draft.url,
102
+ status: response.status,
103
+ rtt: now() - startedAt,
104
+ size: 0,
105
+ outcome: "failure",
106
+ attempt: attemptNo
107
+ });
108
+ retryOrFail("NETWORK_HTTP_STATUS", response.status);
109
+ return;
110
+ }
111
+ const contentType = response.headers.get("content-type");
112
+ const refused = request.trackId === "manifest" && contentType !== null && ((_options$acceptManife = options.acceptManifestType) === null || _options$acceptManife === void 0 ? void 0 : _options$acceptManife.call(options, contentType)) === false;
113
+ if (refused) yield (_response$body = response.body) === null || _response$body === void 0 ? void 0 : _response$body.cancel();
114
+ const bytes = refused ? /* @__PURE__ */ new ArrayBuffer(0) : yield response.arrayBuffer();
115
+ if (state.userAborted) {
116
+ live.delete(token);
117
+ return;
118
+ }
119
+ const rtt = now() - startedAt;
120
+ notifyResponse({
121
+ token,
122
+ url: draft.url,
123
+ status: response.status,
124
+ rtt,
125
+ size: bytes.byteLength,
126
+ outcome: refused ? "failure" : "success",
127
+ attempt: attemptNo
128
+ });
129
+ live.delete(token);
130
+ if (refused) {
131
+ options.absorb({
132
+ type: "SEGMENT_FAILED",
133
+ trackId: request.trackId,
134
+ seq: request.seq,
135
+ status: response.status,
136
+ error: {
137
+ category: "manifest",
138
+ code: "MANIFEST_UNSUPPORTED",
139
+ fatal: true,
140
+ recoverable: false,
141
+ context: {
142
+ url: request.url,
143
+ token,
144
+ contentType
145
+ }
146
+ }
147
+ });
148
+ return;
149
+ }
150
+ options.absorb({
151
+ type: "SEGMENT_LOADED",
152
+ trackId: request.trackId,
153
+ seq: request.seq,
154
+ token,
155
+ bytes,
156
+ rtt,
157
+ size: bytes.byteLength,
158
+ wallClock: Date.now() / 1e3
159
+ });
160
+ });
161
+ return function(_x) {
162
+ return _ref.apply(this, arguments);
163
+ };
164
+ }()).catch(() => {
165
+ if (state.timeoutId !== null) clearTimeout(state.timeoutId);
166
+ if (state.userAborted) {
167
+ live.delete(token);
168
+ return;
169
+ }
170
+ const outcome = state.timedOut ? "timeout" : "failure";
171
+ notifyResponse({
172
+ token,
173
+ url: draft.url,
174
+ status: null,
175
+ rtt: now() - startedAt,
176
+ size: 0,
177
+ outcome,
178
+ attempt: attemptNo
179
+ });
180
+ retryOrFail(state.timedOut ? "NETWORK_TIMEOUT" : "NETWORK_FAILED");
181
+ });
182
+ }
183
+ function cancel(token) {
184
+ const state = live.get(token);
185
+ if (state === void 0) return;
186
+ state.userAborted = true;
187
+ if (state.timeoutId !== null) clearTimeout(state.timeoutId);
188
+ if (state.retryId !== null) {
189
+ clearTimeout(state.retryId);
190
+ live.delete(token);
191
+ return;
192
+ }
193
+ state.controller.abort();
194
+ }
195
+ return {
196
+ registerHandlers(runner) {
197
+ runner.register("fetch", (effect) => {
198
+ var _options$inflight;
199
+ const request = (_options$inflight = options.inflight(effect.token)) !== null && _options$inflight !== void 0 ? _options$inflight : {
200
+ token: effect.token,
201
+ trackId: effect.token,
202
+ seq: -1,
203
+ url: effect.url
204
+ };
205
+ attempt(effect.token, request, effect.url, effect.range, effect.timeout, 1);
206
+ return () => cancel(effect.token);
207
+ });
208
+ },
209
+ request(url, init) {
210
+ return _asyncToGenerator(function* () {
211
+ var _init$headers, _init$method;
212
+ const draft = {
213
+ url,
214
+ headers: _objectSpread2({}, (_init$headers = init.headers) !== null && _init$headers !== void 0 ? _init$headers : {}),
215
+ timeoutMs: defaultTimeout,
216
+ token: `req:${url}`,
217
+ attempt: 1
218
+ };
219
+ for (const hook of [...requestHooks]) try {
220
+ hook(draft);
221
+ } catch (_unused3) {}
222
+ return fetchImpl(draft.url, _objectSpread2({
223
+ method: (_init$method = init.method) !== null && _init$method !== void 0 ? _init$method : init.body !== void 0 ? "POST" : "GET",
224
+ headers: draft.headers
225
+ }, init.body !== void 0 ? { body: init.body } : {}));
226
+ })();
227
+ },
228
+ addRequestHook(hook) {
229
+ requestHooks.add(hook);
230
+ return () => requestHooks.delete(hook);
231
+ },
232
+ addResponseHook(hook) {
233
+ responseHooks.add(hook);
234
+ return () => responseHooks.delete(hook);
235
+ },
236
+ pending() {
237
+ return [...live.keys()];
238
+ }
239
+ };
240
+ }
241
+ //#endregion
242
+ export { DEFAULT_RETRY_POLICY, backoffDelayMs, createTransport };
@@ -0,0 +1,38 @@
1
+ //#region src/kernel/watchdog.ts
2
+ /** Data the decoder could be consuming: a range at, or just ahead of, the playhead. */
3
+ function hasDataAhead(el) {
4
+ const t = el.currentTime;
5
+ for (let i = 0; i < el.buffered.length; i += 1) if (el.buffered.end(i) > t + .1 && el.buffered.start(i) <= t + 2) return true;
6
+ return false;
7
+ }
8
+ /** Starts the watchdog; the returned function stops it. */
9
+ function createPlaybackWatchdog(el, absorb, options = {}, timers = {
10
+ setInterval: (fn, ms) => setInterval(fn, ms),
11
+ clearInterval: (id) => clearInterval(id)
12
+ }) {
13
+ var _options$intervalMs, _options$stuckChecks;
14
+ const intervalMs = (_options$intervalMs = options.intervalMs) !== null && _options$intervalMs !== void 0 ? _options$intervalMs : 250;
15
+ const stuckChecks = (_options$stuckChecks = options.stuckChecks) !== null && _options$stuckChecks !== void 0 ? _options$stuckChecks : 4;
16
+ let lastTime = -1;
17
+ let stuck = 0;
18
+ const timer = timers.setInterval(() => {
19
+ if (el.paused || el.seeking || el.ended || el.readyState < 1) {
20
+ stuck = 0;
21
+ lastTime = el.currentTime;
22
+ return;
23
+ }
24
+ if (el.currentTime !== lastTime) {
25
+ stuck = 0;
26
+ lastTime = el.currentTime;
27
+ return;
28
+ }
29
+ stuck += 1;
30
+ if (stuck % stuckChecks === 0 && hasDataAhead(el)) absorb({
31
+ type: "STALLED",
32
+ at: el.currentTime
33
+ });
34
+ }, intervalMs);
35
+ return () => timers.clearInterval(timer);
36
+ }
37
+ //#endregion
38
+ export { createPlaybackWatchdog };
@@ -0,0 +1,9 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, dashLine } from "../tiers.js";
3
+ //#region src/presets/dash/index.ts
4
+ /**
5
+ * The `dash` preset: DASH on demand and live, the base.
6
+ */
7
+ const preset = definePreset("dash", () => [...dashLine(), ...base()]);
8
+ //#endregion
9
+ export { preset as default };
@@ -0,0 +1,13 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, dashLine, drmTier } from "../tiers.js";
3
+ //#region src/presets/dash-drm/index.ts
4
+ /**
5
+ * The `dash-drm` preset: `dash` plus the EME stages, for protected DASH.
6
+ */
7
+ const preset = definePreset("dash-drm", () => [
8
+ ...dashLine(),
9
+ ...base(),
10
+ ...drmTier()
11
+ ]);
12
+ //#endregion
13
+ export { preset as default };
@@ -0,0 +1,45 @@
1
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectSpread2.js";
2
+ import _objectWithoutProperties from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/objectWithoutProperties.js";
3
+ import { mattebox } from "../index.js";
4
+ //#region src/presets/define.ts
5
+ const _excluded = ["stages", "without"];
6
+ /** Applies the merge rule. Exported for tests; presets call it through `stages`. */
7
+ function mergeStages(defaults, options = {}) {
8
+ var _options$without, _options$stages;
9
+ const without = new Set((_options$without = options.without) !== null && _options$without !== void 0 ? _options$without : []);
10
+ const overrides = /* @__PURE__ */ new Map();
11
+ for (const stage of (_options$stages = options.stages) !== null && _options$stages !== void 0 ? _options$stages : []) overrides.set(stage.name, stage);
12
+ const out = [];
13
+ for (const stage of defaults) {
14
+ if (without.has(stage.name)) continue;
15
+ const override = overrides.get(stage.name);
16
+ if (override === void 0) {
17
+ out.push(stage);
18
+ continue;
19
+ }
20
+ out.push(override);
21
+ overrides.delete(stage.name);
22
+ }
23
+ for (const stage of overrides.values()) out.push(stage);
24
+ return out;
25
+ }
26
+ /**
27
+ * Builds a preset from a name and a function returning fresh default stage
28
+ * instances. A function, not an array: a stage instance carries install
29
+ * state, so every engine must get its own.
30
+ */
31
+ function definePreset(presetName, defaults) {
32
+ function stages(options) {
33
+ return mergeStages(defaults(), options);
34
+ }
35
+ const preset = (options = {}) => {
36
+ const { stages: _overrides, without: _without } = options, rest = _objectWithoutProperties(options, _excluded);
37
+ return mattebox(_objectSpread2(_objectSpread2({}, rest), {}, { stages: stages(options) }));
38
+ };
39
+ return Object.assign(preset, {
40
+ presetName,
41
+ stages
42
+ });
43
+ }
44
+ //#endregion
45
+ export { definePreset, mergeStages };
@@ -0,0 +1,14 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, dashLine, hlsLine } from "../tiers.js";
3
+ //#region src/presets/dual/index.ts
4
+ /**
5
+ * The `dual` preset: both protocol lines, CMAF segments, the base. One
6
+ * engine for a catalogue that mixes HLS and DASH.
7
+ */
8
+ const preset = definePreset("dual", () => [
9
+ ...hlsLine(),
10
+ ...dashLine(),
11
+ ...base()
12
+ ]);
13
+ //#endregion
14
+ export { preset as default };
@@ -0,0 +1,14 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, dashLine, drmTier, hlsLine } from "../tiers.js";
3
+ //#region src/presets/dual-drm/index.ts
4
+ /**
5
+ * The `dual-drm` preset: `dual` plus the EME stages.
6
+ */
7
+ const preset = definePreset("dual-drm", () => [
8
+ ...hlsLine(),
9
+ ...dashLine(),
10
+ ...base(),
11
+ ...drmTier()
12
+ ]);
13
+ //#endregion
14
+ export { preset as default };
@@ -0,0 +1,14 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, dashLine, hlsLine, tsTier } from "../tiers.js";
3
+ //#region src/presets/dual-ts/index.ts
4
+ /**
5
+ * The `dual-ts` preset: `dual` plus the MPEG-TS family.
6
+ */
7
+ const preset = definePreset("dual-ts", () => [
8
+ ...hlsLine(),
9
+ ...dashLine(),
10
+ ...base(),
11
+ ...tsTier()
12
+ ]);
13
+ //#endregion
14
+ export { preset as default };
@@ -0,0 +1,15 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, dashLine, drmTier, hlsLine, tsTier } from "../tiers.js";
3
+ //#region src/presets/dual-ts-drm/index.ts
4
+ /**
5
+ * The `dual-ts-drm` preset: both lines, MPEG-TS, and DRM. Everything a production backend needs; `full` adds only the accessories.
6
+ */
7
+ const preset = definePreset("dual-ts-drm", () => [
8
+ ...hlsLine(),
9
+ ...dashLine(),
10
+ ...base(),
11
+ ...tsTier(),
12
+ ...drmTier()
13
+ ]);
14
+ //#endregion
15
+ export { preset as default };
@@ -0,0 +1,28 @@
1
+ import thumbnails from "../../stages/thumbnails/index.js";
2
+ import mp4Box from "../../stages/mp4-box/index.js";
3
+ import codecProbe from "../../stages/codec-probe/index.js";
4
+ import cmcd from "../../stages/cmcd/index.js";
5
+ import { definePreset } from "../define.js";
6
+ import { base, dashLine, drmTier, hlsLine, tsTier } from "../tiers.js";
7
+ //#region src/presets/full/index.ts
8
+ /**
9
+ * The `full` preset: every stage the catalogue ships. `dual-ts-drm` plus
10
+ * the accessories: the mp4-box namespace and codec probe (diagnostics),
11
+ * CMCD (changes every request, so opt-in elsewhere), and thumbnails (needs
12
+ * an app-supplied sprite track). Feature parity with videojs-http-streaming;
13
+ * the modularity claim is measured against it, and the main CDN bundle
14
+ * exposes it.
15
+ */
16
+ const preset = definePreset("full", () => [
17
+ ...hlsLine(),
18
+ ...dashLine(),
19
+ ...base(),
20
+ ...tsTier(),
21
+ ...drmTier(),
22
+ mp4Box(),
23
+ codecProbe(),
24
+ cmcd(),
25
+ thumbnails()
26
+ ]);
27
+ //#endregion
28
+ export { preset as default };
@@ -0,0 +1,9 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, hlsLine } from "../tiers.js";
3
+ //#region src/presets/hls/index.ts
4
+ /**
5
+ * The `hls` preset: HLS on demand and live, CMAF segments, the base.
6
+ */
7
+ const preset = definePreset("hls", () => [...hlsLine(), ...base()]);
8
+ //#endregion
9
+ export { preset as default };
@@ -0,0 +1,13 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, drmTier, hlsLine } from "../tiers.js";
3
+ //#region src/presets/hls-drm/index.ts
4
+ /**
5
+ * The `hls-drm` preset: `hls` plus the EME stages, for protected HLS.
6
+ */
7
+ const preset = definePreset("hls-drm", () => [
8
+ ...hlsLine(),
9
+ ...base(),
10
+ ...drmTier()
11
+ ]);
12
+ //#endregion
13
+ export { preset as default };
@@ -0,0 +1,13 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, hlsLine, tsTier } from "../tiers.js";
3
+ //#region src/presets/hls-ts/index.ts
4
+ /**
5
+ * The `hls-ts` preset: `hls` plus the MPEG-TS family, for a backend that still emits transport streams.
6
+ */
7
+ const preset = definePreset("hls-ts", () => [
8
+ ...hlsLine(),
9
+ ...base(),
10
+ ...tsTier()
11
+ ]);
12
+ //#endregion
13
+ export { preset as default };
@@ -0,0 +1,14 @@
1
+ import { definePreset } from "../define.js";
2
+ import { base, drmTier, hlsLine, tsTier } from "../tiers.js";
3
+ //#region src/presets/hls-ts-drm/index.ts
4
+ /**
5
+ * The `hls-ts-drm` preset: `hls-ts` plus the EME stages.
6
+ */
7
+ const preset = definePreset("hls-ts-drm", () => [
8
+ ...hlsLine(),
9
+ ...base(),
10
+ ...tsTier(),
11
+ ...drmTier()
12
+ ]);
13
+ //#endregion
14
+ export { preset as default };