prismcast 1.10.2 → 1.11.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 (693) hide show
  1. package/dist/app.d.ts +6 -3
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +140 -86
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/blockedPage.d.ts +80 -0
  6. package/dist/browser/blockedPage.d.ts.map +1 -0
  7. package/dist/browser/blockedPage.js +209 -0
  8. package/dist/browser/blockedPage.js.map +1 -0
  9. package/dist/browser/browserSupervisor.d.ts +80 -0
  10. package/dist/browser/browserSupervisor.d.ts.map +1 -0
  11. package/dist/browser/browserSupervisor.js +186 -0
  12. package/dist/browser/browserSupervisor.js.map +1 -0
  13. package/dist/browser/cdp.d.ts +1 -0
  14. package/dist/browser/cdp.d.ts.map +1 -0
  15. package/dist/browser/cdp.js +6 -5
  16. package/dist/browser/cdp.js.map +1 -1
  17. package/dist/browser/channelSelection.d.ts +45 -14
  18. package/dist/browser/channelSelection.d.ts.map +1 -0
  19. package/dist/browser/channelSelection.js +81 -18
  20. package/dist/browser/channelSelection.js.map +1 -1
  21. package/dist/browser/consent.d.ts +152 -0
  22. package/dist/browser/consent.d.ts.map +1 -0
  23. package/dist/browser/consent.js +418 -0
  24. package/dist/browser/consent.js.map +1 -0
  25. package/dist/browser/display.d.ts +1 -0
  26. package/dist/browser/display.d.ts.map +1 -0
  27. package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
  28. package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
  29. package/dist/browser/hlsPlaylistObserver.js +132 -0
  30. package/dist/browser/hlsPlaylistObserver.js.map +1 -0
  31. package/dist/browser/index.d.ts +67 -40
  32. package/dist/browser/index.d.ts.map +1 -0
  33. package/dist/browser/index.js +508 -300
  34. package/dist/browser/index.js.map +1 -1
  35. package/dist/browser/launchGovernor.d.ts +89 -0
  36. package/dist/browser/launchGovernor.d.ts.map +1 -0
  37. package/dist/browser/launchGovernor.js +96 -0
  38. package/dist/browser/launchGovernor.js.map +1 -0
  39. package/dist/browser/login.d.ts +10 -2
  40. package/dist/browser/login.d.ts.map +1 -0
  41. package/dist/browser/login.js +36 -5
  42. package/dist/browser/login.js.map +1 -1
  43. package/dist/browser/manifestInterceptor.d.ts +102 -49
  44. package/dist/browser/manifestInterceptor.d.ts.map +1 -0
  45. package/dist/browser/manifestInterceptor.js +219 -237
  46. package/dist/browser/manifestInterceptor.js.map +1 -1
  47. package/dist/browser/pageStaleness.d.ts +30 -0
  48. package/dist/browser/pageStaleness.d.ts.map +1 -0
  49. package/dist/browser/pageStaleness.js +76 -0
  50. package/dist/browser/pageStaleness.js.map +1 -0
  51. package/dist/browser/precaching.d.ts +95 -3
  52. package/dist/browser/precaching.d.ts.map +1 -0
  53. package/dist/browser/precaching.js +499 -65
  54. package/dist/browser/precaching.js.map +1 -1
  55. package/dist/browser/tabNetworkObserver.d.ts +49 -0
  56. package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
  57. package/dist/browser/tabNetworkObserver.js +144 -0
  58. package/dist/browser/tabNetworkObserver.js.map +1 -0
  59. package/dist/browser/tuning/cache.d.ts +61 -0
  60. package/dist/browser/tuning/cache.d.ts.map +1 -0
  61. package/dist/browser/tuning/cache.js +62 -0
  62. package/dist/browser/tuning/cache.js.map +1 -0
  63. package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
  64. package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
  65. package/dist/browser/tuning/comcastPolymer.js +79 -102
  66. package/dist/browser/tuning/comcastPolymer.js.map +1 -1
  67. package/dist/browser/tuning/cox.d.ts +1 -0
  68. package/dist/browser/tuning/cox.d.ts.map +1 -0
  69. package/dist/browser/tuning/directv.d.ts +1 -0
  70. package/dist/browser/tuning/directv.d.ts.map +1 -0
  71. package/dist/browser/tuning/directv.js +52 -46
  72. package/dist/browser/tuning/directv.js.map +1 -1
  73. package/dist/browser/tuning/fox.d.ts +1 -0
  74. package/dist/browser/tuning/fox.d.ts.map +1 -0
  75. package/dist/browser/tuning/fox.js +13 -12
  76. package/dist/browser/tuning/fox.js.map +1 -1
  77. package/dist/browser/tuning/gridSearch.d.ts +68 -0
  78. package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
  79. package/dist/browser/tuning/gridSearch.js +85 -0
  80. package/dist/browser/tuning/gridSearch.js.map +1 -0
  81. package/dist/browser/tuning/hbo.d.ts +1 -0
  82. package/dist/browser/tuning/hbo.d.ts.map +1 -0
  83. package/dist/browser/tuning/hbo.js +73 -45
  84. package/dist/browser/tuning/hbo.js.map +1 -1
  85. package/dist/browser/tuning/hulu.d.ts +1 -0
  86. package/dist/browser/tuning/hulu.d.ts.map +1 -0
  87. package/dist/browser/tuning/hulu.js +128 -173
  88. package/dist/browser/tuning/hulu.js.map +1 -1
  89. package/dist/browser/tuning/shared.d.ts +75 -5
  90. package/dist/browser/tuning/shared.d.ts.map +1 -0
  91. package/dist/browser/tuning/shared.js +216 -6
  92. package/dist/browser/tuning/shared.js.map +1 -1
  93. package/dist/browser/tuning/sling.d.ts +1 -0
  94. package/dist/browser/tuning/sling.d.ts.map +1 -0
  95. package/dist/browser/tuning/sling.js +105 -126
  96. package/dist/browser/tuning/sling.js.map +1 -1
  97. package/dist/browser/tuning/spectrum.d.ts +1 -0
  98. package/dist/browser/tuning/spectrum.d.ts.map +1 -0
  99. package/dist/browser/tuning/spectrum.js +80 -125
  100. package/dist/browser/tuning/spectrum.js.map +1 -1
  101. package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
  102. package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
  103. package/dist/browser/tuning/thumbnailRow.js +8 -2
  104. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  105. package/dist/browser/tuning/tileClick.d.ts +1 -0
  106. package/dist/browser/tuning/tileClick.d.ts.map +1 -0
  107. package/dist/browser/tuning/tileClick.js +3 -2
  108. package/dist/browser/tuning/tileClick.js.map +1 -1
  109. package/dist/browser/tuning/xfinity.d.ts +1 -0
  110. package/dist/browser/tuning/xfinity.d.ts.map +1 -0
  111. package/dist/browser/tuning/youtubeTv.d.ts +1 -0
  112. package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
  113. package/dist/browser/tuning/youtubeTv.js +74 -127
  114. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  115. package/dist/browser/video.d.ts +54 -14
  116. package/dist/browser/video.d.ts.map +1 -0
  117. package/dist/browser/video.js +296 -138
  118. package/dist/browser/video.js.map +1 -1
  119. package/dist/channels/index.d.ts +1 -0
  120. package/dist/channels/index.d.ts.map +1 -0
  121. package/dist/channels/index.js +12 -9
  122. package/dist/channels/index.js.map +1 -1
  123. package/dist/config/channelForm.d.ts +15 -1
  124. package/dist/config/channelForm.d.ts.map +1 -0
  125. package/dist/config/channelForm.js +28 -12
  126. package/dist/config/channelForm.js.map +1 -1
  127. package/dist/config/consistencyProbe.d.ts +1 -0
  128. package/dist/config/consistencyProbe.d.ts.map +1 -0
  129. package/dist/config/consistencyProbe.js +27 -21
  130. package/dist/config/consistencyProbe.js.map +1 -1
  131. package/dist/config/health.d.ts +41 -8
  132. package/dist/config/health.d.ts.map +1 -0
  133. package/dist/config/health.js +189 -38
  134. package/dist/config/health.js.map +1 -1
  135. package/dist/config/index.d.ts +55 -3
  136. package/dist/config/index.d.ts.map +1 -0
  137. package/dist/config/index.js +320 -69
  138. package/dist/config/index.js.map +1 -1
  139. package/dist/config/paths.d.ts +10 -9
  140. package/dist/config/paths.d.ts.map +1 -0
  141. package/dist/config/paths.js +11 -11
  142. package/dist/config/paths.js.map +1 -1
  143. package/dist/config/persistence.context.d.ts +1 -0
  144. package/dist/config/persistence.context.d.ts.map +1 -0
  145. package/dist/config/persistence.d.ts +13 -10
  146. package/dist/config/persistence.d.ts.map +1 -0
  147. package/dist/config/persistence.js +40 -21
  148. package/dist/config/persistence.js.map +1 -1
  149. package/dist/config/presets.d.ts +1 -0
  150. package/dist/config/presets.d.ts.map +1 -0
  151. package/dist/config/profiles.d.ts +22 -15
  152. package/dist/config/profiles.d.ts.map +1 -0
  153. package/dist/config/profiles.js +81 -47
  154. package/dist/config/profiles.js.map +1 -1
  155. package/dist/config/providerLineups.d.ts +47 -0
  156. package/dist/config/providerLineups.d.ts.map +1 -0
  157. package/dist/config/providerLineups.js +137 -0
  158. package/dist/config/providerLineups.js.map +1 -0
  159. package/dist/config/reactivity.d.ts +84 -0
  160. package/dist/config/reactivity.d.ts.map +1 -0
  161. package/dist/config/reactivity.js +226 -0
  162. package/dist/config/reactivity.js.map +1 -0
  163. package/dist/config/servicePacks.d.ts +18 -2
  164. package/dist/config/servicePacks.d.ts.map +1 -0
  165. package/dist/config/servicePacks.js +53 -11
  166. package/dist/config/servicePacks.js.map +1 -1
  167. package/dist/config/services.d.ts +21 -15
  168. package/dist/config/services.d.ts.map +1 -0
  169. package/dist/config/services.js +35 -24
  170. package/dist/config/services.js.map +1 -1
  171. package/dist/config/sites.d.ts +6 -4
  172. package/dist/config/sites.d.ts.map +1 -0
  173. package/dist/config/sites.js +15 -11
  174. package/dist/config/sites.js.map +1 -1
  175. package/dist/config/userChannels.d.ts +129 -30
  176. package/dist/config/userChannels.d.ts.map +1 -0
  177. package/dist/config/userChannels.js +333 -68
  178. package/dist/config/userChannels.js.map +1 -1
  179. package/dist/config/userConfig.d.ts +14 -9
  180. package/dist/config/userConfig.d.ts.map +1 -0
  181. package/dist/config/userConfig.js +87 -25
  182. package/dist/config/userConfig.js.map +1 -1
  183. package/dist/config/userProfiles.d.ts +10 -6
  184. package/dist/config/userProfiles.d.ts.map +1 -0
  185. package/dist/config/userProfiles.js +64 -39
  186. package/dist/config/userProfiles.js.map +1 -1
  187. package/dist/hdhr/channelMap.d.ts +1 -0
  188. package/dist/hdhr/channelMap.d.ts.map +1 -0
  189. package/dist/hdhr/deviceId.d.ts +1 -0
  190. package/dist/hdhr/deviceId.d.ts.map +1 -0
  191. package/dist/hdhr/discover.d.ts +1 -0
  192. package/dist/hdhr/discover.d.ts.map +1 -0
  193. package/dist/hdhr/discover.js +48 -47
  194. package/dist/hdhr/discover.js.map +1 -1
  195. package/dist/hdhr/getHandlers.d.ts +29 -0
  196. package/dist/hdhr/getHandlers.d.ts.map +1 -0
  197. package/dist/hdhr/getHandlers.js +196 -0
  198. package/dist/hdhr/getHandlers.js.map +1 -0
  199. package/dist/hdhr/identity.d.ts +36 -0
  200. package/dist/hdhr/identity.d.ts.map +1 -0
  201. package/dist/hdhr/identity.js +51 -0
  202. package/dist/hdhr/identity.js.map +1 -0
  203. package/dist/hdhr/index.d.ts +22 -4
  204. package/dist/hdhr/index.d.ts.map +1 -0
  205. package/dist/hdhr/index.js +229 -54
  206. package/dist/hdhr/index.js.map +1 -1
  207. package/dist/hdhr/protocol.d.ts +75 -0
  208. package/dist/hdhr/protocol.d.ts.map +1 -0
  209. package/dist/hdhr/protocol.js +264 -0
  210. package/dist/hdhr/protocol.js.map +1 -0
  211. package/dist/hdhr/tunerState.d.ts +24 -0
  212. package/dist/hdhr/tunerState.d.ts.map +1 -0
  213. package/dist/hdhr/tunerState.js +67 -0
  214. package/dist/hdhr/tunerState.js.map +1 -0
  215. package/dist/hdhr/udp.d.ts +43 -0
  216. package/dist/hdhr/udp.d.ts.map +1 -0
  217. package/dist/hdhr/udp.js +277 -0
  218. package/dist/hdhr/udp.js.map +1 -0
  219. package/dist/identity.d.ts +1 -0
  220. package/dist/identity.d.ts.map +1 -0
  221. package/dist/identity.js +13 -11
  222. package/dist/identity.js.map +1 -1
  223. package/dist/index.d.ts +1 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +11 -12
  226. package/dist/index.js.map +1 -1
  227. package/dist/native/codecInference.d.ts +1 -0
  228. package/dist/native/codecInference.d.ts.map +1 -0
  229. package/dist/native/codecInference.js +50 -5
  230. package/dist/native/codecInference.js.map +1 -1
  231. package/dist/native/decrypt.d.ts +6 -2
  232. package/dist/native/decrypt.d.ts.map +1 -0
  233. package/dist/native/decrypt.js +15 -8
  234. package/dist/native/decrypt.js.map +1 -1
  235. package/dist/native/index.d.ts +40 -17
  236. package/dist/native/index.d.ts.map +1 -0
  237. package/dist/native/index.js +281 -120
  238. package/dist/native/index.js.map +1 -1
  239. package/dist/native/probe.d.ts +114 -18
  240. package/dist/native/probe.d.ts.map +1 -0
  241. package/dist/native/probe.js +452 -115
  242. package/dist/native/probe.js.map +1 -1
  243. package/dist/native/proxy.d.ts +57 -5
  244. package/dist/native/proxy.d.ts.map +1 -0
  245. package/dist/native/proxy.js +604 -170
  246. package/dist/native/proxy.js.map +1 -1
  247. package/dist/native/tokenExpiry.d.ts +1 -0
  248. package/dist/native/tokenExpiry.d.ts.map +1 -0
  249. package/dist/native/tokenExpiry.js +1 -1
  250. package/dist/routes/assets.d.ts +1 -0
  251. package/dist/routes/assets.d.ts.map +1 -0
  252. package/dist/routes/assets.js +4 -2
  253. package/dist/routes/assets.js.map +1 -1
  254. package/dist/routes/auth.d.ts +1 -0
  255. package/dist/routes/auth.d.ts.map +1 -0
  256. package/dist/routes/auth.js +0 -1
  257. package/dist/routes/auth.js.map +1 -1
  258. package/dist/routes/cdp.d.ts +5 -5
  259. package/dist/routes/cdp.d.ts.map +1 -0
  260. package/dist/routes/cdp.js +59 -20
  261. package/dist/routes/cdp.js.map +1 -1
  262. package/dist/routes/channels.d.ts +1 -0
  263. package/dist/routes/channels.d.ts.map +1 -0
  264. package/dist/routes/channels.js +2 -1
  265. package/dist/routes/channels.js.map +1 -1
  266. package/dist/routes/clientActions.d.ts +98 -0
  267. package/dist/routes/clientActions.d.ts.map +1 -0
  268. package/dist/routes/clientActions.js +113 -0
  269. package/dist/routes/clientActions.js.map +1 -0
  270. package/dist/routes/components.d.ts +5 -3
  271. package/dist/routes/components.d.ts.map +1 -0
  272. package/dist/routes/components.js +36 -39
  273. package/dist/routes/components.js.map +1 -1
  274. package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
  275. package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
  276. package/dist/routes/config/channels/endpoints/browse.js +23 -10
  277. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  278. package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
  279. package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
  280. package/dist/routes/config/channels/endpoints/bulk.js +5 -3
  281. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  282. package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
  283. package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
  284. package/dist/routes/config/channels/endpoints/crud.js +85 -93
  285. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  286. package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
  287. package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
  288. package/dist/routes/config/channels/endpoints/importExport.js +6 -3
  289. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  290. package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
  291. package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
  292. package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
  293. package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
  294. package/dist/routes/config/channels/endpoints/prefs.js +2 -1
  295. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  296. package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
  297. package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
  298. package/dist/routes/config/channels/endpoints/service.js +3 -1
  299. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  300. package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
  301. package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
  302. package/dist/routes/config/channels/endpoints/tags.js +13 -7
  303. package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
  304. package/dist/routes/config/channels/healthBridge.d.ts +24 -0
  305. package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
  306. package/dist/routes/config/channels/healthBridge.js +71 -0
  307. package/dist/routes/config/channels/healthBridge.js.map +1 -0
  308. package/dist/routes/config/channels/http/handler.d.ts +1 -0
  309. package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
  310. package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
  311. package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
  312. package/dist/routes/config/channels/http/playlistHint.js +16 -2
  313. package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
  314. package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
  315. package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
  316. package/dist/routes/config/channels/http/serviceWarning.js +3 -2
  317. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
  318. package/dist/routes/config/channels/index.d.ts +1 -0
  319. package/dist/routes/config/channels/index.d.ts.map +1 -0
  320. package/dist/routes/config/channels/setup.d.ts +1 -0
  321. package/dist/routes/config/channels/setup.d.ts.map +1 -0
  322. package/dist/routes/config/channels/table.d.ts +3 -3
  323. package/dist/routes/config/channels/table.d.ts.map +1 -0
  324. package/dist/routes/config/channels/table.js +148 -107
  325. package/dist/routes/config/channels/table.js.map +1 -1
  326. package/dist/routes/config/http/envelope.d.ts +1 -0
  327. package/dist/routes/config/http/envelope.d.ts.map +1 -0
  328. package/dist/routes/config/index.d.ts +35 -3
  329. package/dist/routes/config/index.d.ts.map +1 -0
  330. package/dist/routes/config/index.js +51 -2
  331. package/dist/routes/config/index.js.map +1 -1
  332. package/dist/routes/config/services.d.ts +5 -4
  333. package/dist/routes/config/services.d.ts.map +1 -0
  334. package/dist/routes/config/services.js +57 -43
  335. package/dist/routes/config/services.js.map +1 -1
  336. package/dist/routes/config/settings.d.ts +1 -0
  337. package/dist/routes/config/settings.d.ts.map +1 -0
  338. package/dist/routes/config/settings.js +98 -49
  339. package/dist/routes/config/settings.js.map +1 -1
  340. package/dist/routes/debug.d.ts +1 -0
  341. package/dist/routes/debug.d.ts.map +1 -0
  342. package/dist/routes/debug.js +277 -139
  343. package/dist/routes/debug.js.map +1 -1
  344. package/dist/routes/health.d.ts +39 -1
  345. package/dist/routes/health.d.ts.map +1 -0
  346. package/dist/routes/health.js +33 -27
  347. package/dist/routes/health.js.map +1 -1
  348. package/dist/routes/hls.d.ts +1 -0
  349. package/dist/routes/hls.d.ts.map +1 -0
  350. package/dist/routes/icons.d.ts +1 -0
  351. package/dist/routes/icons.d.ts.map +1 -0
  352. package/dist/routes/icons.js +1 -1
  353. package/dist/routes/index.d.ts +1 -0
  354. package/dist/routes/index.d.ts.map +1 -0
  355. package/dist/routes/logs.d.ts +1 -0
  356. package/dist/routes/logs.d.ts.map +1 -0
  357. package/dist/routes/logs.js +14 -4
  358. package/dist/routes/logs.js.map +1 -1
  359. package/dist/routes/mpegts.d.ts +1 -0
  360. package/dist/routes/mpegts.d.ts.map +1 -0
  361. package/dist/routes/play.d.ts +1 -0
  362. package/dist/routes/play.d.ts.map +1 -0
  363. package/dist/routes/playlist.d.ts +1 -0
  364. package/dist/routes/playlist.d.ts.map +1 -0
  365. package/dist/routes/playlist.js +7 -2
  366. package/dist/routes/playlist.js.map +1 -1
  367. package/dist/routes/root/content.d.ts +8 -5
  368. package/dist/routes/root/content.d.ts.map +1 -0
  369. package/dist/routes/root/content.js +29 -26
  370. package/dist/routes/root/content.js.map +1 -1
  371. package/dist/routes/root/index.d.ts +2 -1
  372. package/dist/routes/root/index.d.ts.map +1 -0
  373. package/dist/routes/root/index.js +26 -21
  374. package/dist/routes/root/index.js.map +1 -1
  375. package/dist/routes/root/scripts/channels.d.ts +6 -0
  376. package/dist/routes/root/scripts/channels.d.ts.map +1 -0
  377. package/dist/routes/root/scripts/channels.js +197 -118
  378. package/dist/routes/root/scripts/channels.js.map +1 -1
  379. package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
  380. package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
  381. package/dist/routes/root/scripts/clientEscape.js +41 -0
  382. package/dist/routes/root/scripts/clientEscape.js.map +1 -0
  383. package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
  384. package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
  385. package/dist/routes/root/scripts/clientUrl.js +44 -0
  386. package/dist/routes/root/scripts/clientUrl.js.map +1 -0
  387. package/dist/routes/root/scripts/config.d.ts +6 -0
  388. package/dist/routes/root/scripts/config.d.ts.map +1 -0
  389. package/dist/routes/root/scripts/config.js +110 -24
  390. package/dist/routes/root/scripts/config.js.map +1 -1
  391. package/dist/routes/root/scripts/index.d.ts +1 -0
  392. package/dist/routes/root/scripts/index.d.ts.map +1 -0
  393. package/dist/routes/root/scripts/shared.d.ts +1 -0
  394. package/dist/routes/root/scripts/shared.d.ts.map +1 -0
  395. package/dist/routes/root/scripts/shared.js +112 -26
  396. package/dist/routes/root/scripts/shared.js.map +1 -1
  397. package/dist/routes/root/scripts/status.d.ts +1 -0
  398. package/dist/routes/root/scripts/status.d.ts.map +1 -0
  399. package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
  400. package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
  401. package/dist/routes/root/scripts/status.handlers.js +46 -92
  402. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  403. package/dist/routes/root/scripts/status.js +21 -8
  404. package/dist/routes/root/scripts/status.js.map +1 -1
  405. package/dist/routes/root/styles.d.ts +1 -0
  406. package/dist/routes/root/styles.d.ts.map +1 -0
  407. package/dist/routes/root/styles.js +7 -4
  408. package/dist/routes/root/styles.js.map +1 -1
  409. package/dist/routes/services.d.ts +13 -1
  410. package/dist/routes/services.d.ts.map +1 -0
  411. package/dist/routes/services.js +81 -68
  412. package/dist/routes/services.js.map +1 -1
  413. package/dist/routes/sse.d.ts +1 -0
  414. package/dist/routes/sse.d.ts.map +1 -0
  415. package/dist/routes/sse.js +1 -1
  416. package/dist/routes/sse.js.map +1 -1
  417. package/dist/routes/streams.d.ts +2 -1
  418. package/dist/routes/streams.d.ts.map +1 -0
  419. package/dist/routes/streams.js +6 -4
  420. package/dist/routes/streams.js.map +1 -1
  421. package/dist/routes/theme.d.ts +3 -2
  422. package/dist/routes/theme.d.ts.map +1 -0
  423. package/dist/routes/theme.js +6 -5
  424. package/dist/routes/theme.js.map +1 -1
  425. package/dist/routes/ui.d.ts +3 -1
  426. package/dist/routes/ui.d.ts.map +1 -0
  427. package/dist/routes/ui.js +16 -4
  428. package/dist/routes/ui.js.map +1 -1
  429. package/dist/routes/upgrade.d.ts +1 -0
  430. package/dist/routes/upgrade.d.ts.map +1 -0
  431. package/dist/routes/upgrade.js +6 -2
  432. package/dist/routes/upgrade.js.map +1 -1
  433. package/dist/service/commands.context.d.ts +1 -0
  434. package/dist/service/commands.context.d.ts.map +1 -0
  435. package/dist/service/commands.context.js +4 -3
  436. package/dist/service/commands.context.js.map +1 -1
  437. package/dist/service/commands.d.ts +1 -0
  438. package/dist/service/commands.d.ts.map +1 -0
  439. package/dist/service/commands.js +10 -13
  440. package/dist/service/commands.js.map +1 -1
  441. package/dist/service/generators.context.d.ts +1 -0
  442. package/dist/service/generators.context.d.ts.map +1 -0
  443. package/dist/service/generators.context.js +1 -1
  444. package/dist/service/generators.context.js.map +1 -1
  445. package/dist/service/generators.d.ts +4 -3
  446. package/dist/service/generators.d.ts.map +1 -0
  447. package/dist/service/generators.js +111 -31
  448. package/dist/service/generators.js.map +1 -1
  449. package/dist/service/index.d.ts +1 -0
  450. package/dist/service/index.d.ts.map +1 -0
  451. package/dist/streaming/captureLock.d.ts +44 -0
  452. package/dist/streaming/captureLock.d.ts.map +1 -0
  453. package/dist/streaming/captureLock.js +95 -0
  454. package/dist/streaming/captureLock.js.map +1 -0
  455. package/dist/streaming/captureSession.d.ts +31 -0
  456. package/dist/streaming/captureSession.d.ts.map +1 -0
  457. package/dist/streaming/captureSession.js +54 -0
  458. package/dist/streaming/captureSession.js.map +1 -0
  459. package/dist/streaming/clients.d.ts +1 -0
  460. package/dist/streaming/clients.d.ts.map +1 -0
  461. package/dist/streaming/codec.d.ts +1 -0
  462. package/dist/streaming/codec.d.ts.map +1 -0
  463. package/dist/streaming/fmp4Segmenter.d.ts +29 -2
  464. package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
  465. package/dist/streaming/fmp4Segmenter.js +79 -26
  466. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  467. package/dist/streaming/hls.d.ts +18 -7
  468. package/dist/streaming/hls.d.ts.map +1 -0
  469. package/dist/streaming/hls.js +220 -120
  470. package/dist/streaming/hls.js.map +1 -1
  471. package/dist/streaming/hlsResume.d.ts +1 -0
  472. package/dist/streaming/hlsResume.d.ts.map +1 -0
  473. package/dist/streaming/hlsResume.js +1 -1
  474. package/dist/streaming/hlsResume.js.map +1 -1
  475. package/dist/streaming/hlsSegments.d.ts +59 -2
  476. package/dist/streaming/hlsSegments.d.ts.map +1 -0
  477. package/dist/streaming/hlsSegments.js +147 -17
  478. package/dist/streaming/hlsSegments.js.map +1 -1
  479. package/dist/streaming/lifecycle.d.ts +4 -1
  480. package/dist/streaming/lifecycle.d.ts.map +1 -0
  481. package/dist/streaming/lifecycle.js +65 -85
  482. package/dist/streaming/lifecycle.js.map +1 -1
  483. package/dist/streaming/monitor.d.ts +6 -4
  484. package/dist/streaming/monitor.d.ts.map +1 -0
  485. package/dist/streaming/monitor.js +343 -145
  486. package/dist/streaming/monitor.js.map +1 -1
  487. package/dist/streaming/mp4Parser.d.ts +5 -4
  488. package/dist/streaming/mp4Parser.d.ts.map +1 -0
  489. package/dist/streaming/mp4Parser.js +36 -13
  490. package/dist/streaming/mp4Parser.js.map +1 -1
  491. package/dist/streaming/mpegts.d.ts +16 -0
  492. package/dist/streaming/mpegts.d.ts.map +1 -0
  493. package/dist/streaming/mpegts.js +61 -17
  494. package/dist/streaming/mpegts.js.map +1 -1
  495. package/dist/streaming/playlistBuilder.d.ts +1 -0
  496. package/dist/streaming/playlistBuilder.d.ts.map +1 -0
  497. package/dist/streaming/preroll.d.ts +32 -5
  498. package/dist/streaming/preroll.d.ts.map +1 -0
  499. package/dist/streaming/preroll.js +70 -32
  500. package/dist/streaming/preroll.js.map +1 -1
  501. package/dist/streaming/pretune.d.ts +26 -1
  502. package/dist/streaming/pretune.d.ts.map +1 -0
  503. package/dist/streaming/pretune.js +22 -24
  504. package/dist/streaming/pretune.js.map +1 -1
  505. package/dist/streaming/pretuneTimers.d.ts +24 -0
  506. package/dist/streaming/pretuneTimers.d.ts.map +1 -0
  507. package/dist/streaming/pretuneTimers.js +56 -0
  508. package/dist/streaming/pretuneTimers.js.map +1 -0
  509. package/dist/streaming/recovery.d.ts +139 -5
  510. package/dist/streaming/recovery.d.ts.map +1 -0
  511. package/dist/streaming/recovery.js +160 -16
  512. package/dist/streaming/recovery.js.map +1 -1
  513. package/dist/streaming/registry.d.ts +27 -9
  514. package/dist/streaming/registry.d.ts.map +1 -0
  515. package/dist/streaming/registry.js +21 -3
  516. package/dist/streaming/registry.js.map +1 -1
  517. package/dist/streaming/setup.d.ts +157 -29
  518. package/dist/streaming/setup.d.ts.map +1 -0
  519. package/dist/streaming/setup.js +1034 -458
  520. package/dist/streaming/setup.js.map +1 -1
  521. package/dist/streaming/showInfo.d.ts +21 -1
  522. package/dist/streaming/showInfo.d.ts.map +1 -0
  523. package/dist/streaming/showInfo.js +31 -16
  524. package/dist/streaming/showInfo.js.map +1 -1
  525. package/dist/streaming/statusEmitter.d.ts +10 -10
  526. package/dist/streaming/statusEmitter.d.ts.map +1 -0
  527. package/dist/streaming/statusEmitter.js +5 -8
  528. package/dist/streaming/statusEmitter.js.map +1 -1
  529. package/dist/types/channels.d.ts +16 -4
  530. package/dist/types/channels.d.ts.map +1 -0
  531. package/dist/types/channels.js +4 -2
  532. package/dist/types/channels.js.map +1 -1
  533. package/dist/types/config.d.ts +16 -5
  534. package/dist/types/config.d.ts.map +1 -0
  535. package/dist/types/index.d.ts +3 -2
  536. package/dist/types/index.d.ts.map +1 -0
  537. package/dist/types/profiles.d.ts +6 -4
  538. package/dist/types/profiles.d.ts.map +1 -0
  539. package/dist/types/selection.d.ts +31 -3
  540. package/dist/types/selection.d.ts.map +1 -0
  541. package/dist/types/selection.js +4 -2
  542. package/dist/types/selection.js.map +1 -1
  543. package/dist/types/shared.d.ts +1 -0
  544. package/dist/types/shared.d.ts.map +1 -0
  545. package/dist/types/streaming.d.ts +8 -0
  546. package/dist/types/streaming.d.ts.map +1 -0
  547. package/dist/upgrade/commands.context.d.ts +1 -0
  548. package/dist/upgrade/commands.context.d.ts.map +1 -0
  549. package/dist/upgrade/commands.context.js +14 -10
  550. package/dist/upgrade/commands.context.js.map +1 -1
  551. package/dist/upgrade/commands.d.ts +8 -15
  552. package/dist/upgrade/commands.d.ts.map +1 -0
  553. package/dist/upgrade/commands.js +27 -28
  554. package/dist/upgrade/commands.js.map +1 -1
  555. package/dist/upgrade/detection.context.d.ts +1 -0
  556. package/dist/upgrade/detection.context.d.ts.map +1 -0
  557. package/dist/upgrade/detection.context.js +4 -1
  558. package/dist/upgrade/detection.context.js.map +1 -1
  559. package/dist/upgrade/detection.d.ts +9 -7
  560. package/dist/upgrade/detection.d.ts.map +1 -0
  561. package/dist/upgrade/detection.js +23 -54
  562. package/dist/upgrade/detection.js.map +1 -1
  563. package/dist/upgrade/index.d.ts +2 -0
  564. package/dist/upgrade/index.d.ts.map +1 -0
  565. package/dist/upgrade/index.js +1 -0
  566. package/dist/upgrade/index.js.map +1 -1
  567. package/dist/upgrade/lifecycle.context.d.ts +20 -0
  568. package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
  569. package/dist/upgrade/lifecycle.context.js +47 -0
  570. package/dist/upgrade/lifecycle.context.js.map +1 -0
  571. package/dist/upgrade/lifecycle.d.ts +72 -0
  572. package/dist/upgrade/lifecycle.d.ts.map +1 -0
  573. package/dist/upgrade/lifecycle.js +175 -0
  574. package/dist/upgrade/lifecycle.js.map +1 -0
  575. package/dist/upgrade/pathHandle.d.ts +30 -0
  576. package/dist/upgrade/pathHandle.d.ts.map +1 -0
  577. package/dist/upgrade/pathHandle.js +102 -0
  578. package/dist/upgrade/pathHandle.js.map +1 -0
  579. package/dist/utils/bootSession.context.d.ts +16 -0
  580. package/dist/utils/bootSession.context.d.ts.map +1 -0
  581. package/dist/utils/bootSession.context.js +60 -0
  582. package/dist/utils/bootSession.context.js.map +1 -0
  583. package/dist/utils/bootSession.d.ts +17 -0
  584. package/dist/utils/bootSession.d.ts.map +1 -0
  585. package/dist/utils/bootSession.js +20 -0
  586. package/dist/utils/bootSession.js.map +1 -0
  587. package/dist/utils/chromeFetch.d.ts +1 -0
  588. package/dist/utils/chromeFetch.d.ts.map +1 -0
  589. package/dist/utils/cliOutput.d.ts +1 -0
  590. package/dist/utils/cliOutput.d.ts.map +1 -0
  591. package/dist/utils/clock.d.ts +5 -4
  592. package/dist/utils/clock.d.ts.map +1 -0
  593. package/dist/utils/clock.js +19 -16
  594. package/dist/utils/clock.js.map +1 -1
  595. package/dist/utils/debugFilter.d.ts +9 -1
  596. package/dist/utils/debugFilter.d.ts.map +1 -0
  597. package/dist/utils/debugFilter.js +60 -33
  598. package/dist/utils/debugFilter.js.map +1 -1
  599. package/dist/utils/delay.d.ts +48 -15
  600. package/dist/utils/delay.d.ts.map +1 -0
  601. package/dist/utils/delay.js +73 -20
  602. package/dist/utils/delay.js.map +1 -1
  603. package/dist/utils/errors.d.ts +32 -0
  604. package/dist/utils/errors.d.ts.map +1 -0
  605. package/dist/utils/errors.js +45 -4
  606. package/dist/utils/errors.js.map +1 -1
  607. package/dist/utils/evaluate.d.ts +1 -0
  608. package/dist/utils/evaluate.d.ts.map +1 -0
  609. package/dist/utils/evaluate.js +29 -23
  610. package/dist/utils/evaluate.js.map +1 -1
  611. package/dist/utils/ffmpeg.context.d.ts +1 -0
  612. package/dist/utils/ffmpeg.context.d.ts.map +1 -0
  613. package/dist/utils/ffmpeg.context.js.map +1 -1
  614. package/dist/utils/ffmpeg.d.ts +29 -7
  615. package/dist/utils/ffmpeg.d.ts.map +1 -0
  616. package/dist/utils/ffmpeg.js +32 -14
  617. package/dist/utils/ffmpeg.js.map +1 -1
  618. package/dist/utils/fileLogger.d.ts +3 -1
  619. package/dist/utils/fileLogger.d.ts.map +1 -0
  620. package/dist/utils/fileLogger.js +64 -29
  621. package/dist/utils/fileLogger.js.map +1 -1
  622. package/dist/utils/format.d.ts +14 -1
  623. package/dist/utils/format.d.ts.map +1 -0
  624. package/dist/utils/format.js +19 -5
  625. package/dist/utils/format.js.map +1 -1
  626. package/dist/utils/index.d.ts +4 -0
  627. package/dist/utils/index.d.ts.map +1 -0
  628. package/dist/utils/index.js +3 -0
  629. package/dist/utils/index.js.map +1 -1
  630. package/dist/utils/logEmitter.d.ts +1 -0
  631. package/dist/utils/logEmitter.d.ts.map +1 -0
  632. package/dist/utils/logger.d.ts +1 -0
  633. package/dist/utils/logger.d.ts.map +1 -0
  634. package/dist/utils/logger.js +10 -6
  635. package/dist/utils/logger.js.map +1 -1
  636. package/dist/utils/m3u.d.ts +3 -2
  637. package/dist/utils/m3u.d.ts.map +1 -0
  638. package/dist/utils/m3u.js +4 -3
  639. package/dist/utils/m3u.js.map +1 -1
  640. package/dist/utils/markup.d.ts +13 -1
  641. package/dist/utils/markup.d.ts.map +1 -0
  642. package/dist/utils/markup.js +28 -4
  643. package/dist/utils/markup.js.map +1 -1
  644. package/dist/utils/memo.d.ts +3 -2
  645. package/dist/utils/memo.d.ts.map +1 -0
  646. package/dist/utils/memo.js +3 -3
  647. package/dist/utils/morganStream.d.ts +1 -0
  648. package/dist/utils/morganStream.d.ts.map +1 -0
  649. package/dist/utils/network.d.ts +1 -0
  650. package/dist/utils/network.d.ts.map +1 -0
  651. package/dist/utils/network.js +2 -2
  652. package/dist/utils/pid.d.ts +3 -25
  653. package/dist/utils/pid.d.ts.map +1 -0
  654. package/dist/utils/pid.js +10 -49
  655. package/dist/utils/pid.js.map +1 -1
  656. package/dist/utils/platform.d.ts +3 -1
  657. package/dist/utils/platform.d.ts.map +1 -0
  658. package/dist/utils/platform.js +2 -1
  659. package/dist/utils/platform.js.map +1 -1
  660. package/dist/utils/processInspector.context.d.ts +8 -0
  661. package/dist/utils/processInspector.context.d.ts.map +1 -0
  662. package/dist/utils/processInspector.context.js +106 -0
  663. package/dist/utils/processInspector.context.js.map +1 -0
  664. package/dist/utils/processInspector.d.ts +55 -0
  665. package/dist/utils/processInspector.d.ts.map +1 -0
  666. package/dist/utils/processInspector.js +127 -0
  667. package/dist/utils/processInspector.js.map +1 -0
  668. package/dist/utils/retry.d.ts +25 -2
  669. package/dist/utils/retry.d.ts.map +1 -0
  670. package/dist/utils/retry.js +33 -6
  671. package/dist/utils/retry.js.map +1 -1
  672. package/dist/utils/runtimeIdentity.context.d.ts +7 -0
  673. package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
  674. package/dist/utils/runtimeIdentity.context.js +43 -0
  675. package/dist/utils/runtimeIdentity.context.js.map +1 -0
  676. package/dist/utils/runtimeIdentity.d.ts +98 -0
  677. package/dist/utils/runtimeIdentity.d.ts.map +1 -0
  678. package/dist/utils/runtimeIdentity.js +181 -0
  679. package/dist/utils/runtimeIdentity.js.map +1 -0
  680. package/dist/utils/sanitize.d.ts +1 -0
  681. package/dist/utils/sanitize.d.ts.map +1 -0
  682. package/dist/utils/streamContext.d.ts +2 -1
  683. package/dist/utils/streamContext.d.ts.map +1 -0
  684. package/dist/utils/streamContext.js +1 -1
  685. package/dist/utils/timing.d.ts +2 -1
  686. package/dist/utils/timing.d.ts.map +1 -0
  687. package/dist/utils/timing.js +0 -5
  688. package/dist/utils/timing.js.map +1 -1
  689. package/dist/utils/version.d.ts +1 -0
  690. package/dist/utils/version.d.ts.map +1 -0
  691. package/dist/utils/version.js +47 -13
  692. package/dist/utils/version.js.map +1 -1
  693. package/package.json +26 -20
@@ -1 +1 @@
1
- {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/service/generators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/service/generators.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from "./commands.ts";
2
2
  export * from "./generators.ts";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { Clock } from "../utils/index.ts";
2
+ export declare class CaptureTurnTimeoutError extends Error {
3
+ constructor();
4
+ }
5
+ export declare class CaptureDeadlineError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ export declare class CaptureAbandonedError extends Error {
9
+ constructor();
10
+ }
11
+ /**
12
+ * Construction options for the capture lock. The clock is injected so tests drive time deterministically; the wedge-derivation policy is fixed for the lock's
13
+ * lifetime because it encodes an operational safety bound rather than a per-task choice.
14
+ */
15
+ export interface CaptureLockOptions {
16
+ readonly clock?: Clock;
17
+ readonly wedgeFloorMs: number;
18
+ readonly wedgeMarginMs: number;
19
+ }
20
+ /**
21
+ * Per-call options for a single run() invocation. Every timing bound is supplied here rather than captured at construction, because the production lock is built
22
+ * before configuration is available and configuration can change mid-process.
23
+ */
24
+ export interface CaptureRunOptions {
25
+ readonly deadlineMessage: string;
26
+ readonly deadlineMs: number;
27
+ readonly onWedge?: () => void;
28
+ readonly turnWaitMs: number;
29
+ }
30
+ /**
31
+ * The capture lock's public surface: a single run() method that serializes the supplied task against every other task on this lock.
32
+ */
33
+ export interface CaptureLock {
34
+ readonly run: <T>(task: (signal: AbortSignal) => Promise<T>, options: CaptureRunOptions) => Promise<T>;
35
+ }
36
+ /**
37
+ * Creates a capture lock. The returned lock serializes every task passed to run(): no task begins while another runs, and the turn releases only when the running
38
+ * task's promise settles. A wedged task (one that holds its turn past the derived wedge bound without settling) invokes its onWedge callback once, so the call site
39
+ * can route it into recovery, but the turn still releases only on true settlement.
40
+ * @param options - The injected clock and the wedge-derivation policy.
41
+ * @returns A capture lock.
42
+ */
43
+ export declare function createCaptureLock(options: CaptureLockOptions): CaptureLock;
44
+ //# sourceMappingURL=captureLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captureLock.d.ts","sourceRoot":"","sources":["../../src/streaming/captureLock.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,qBAAa,uBAAwB,SAAQ,KAAK;;CAOjD;AAID,qBAAa,oBAAqB,SAAQ,KAAK;gBAE1B,OAAO,EAAE,MAAM;CAKnC;AAKD,qBAAa,qBAAsB,SAAQ,KAAK;;CAO/C;AAID;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAGjC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAIvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAGhC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAIjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAI5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAI9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAK1B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACxG;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAgF1E"}
@@ -0,0 +1,95 @@
1
+ import { realClock } from "../utils/index.js";
2
+ // Error classes. The messages of the turn-timeout and deadline errors are part of the compatibility contract: isCaptureInfrastructureError (recovery.ts) classifies
3
+ // by substring, so callers rely on the exact text. Each class carries its narrative comment above it.
4
+ // Raised when a waiter's turn-wait bound elapses before its predecessor settles. The message is fixed here so both the primitive and its pin test read from one
5
+ // place; "queue" remains accurate vocabulary because the lock still maintains a FIFO of waiting turns.
6
+ export class CaptureTurnTimeoutError extends Error {
7
+ constructor() {
8
+ super("Capture queue wait timed out.");
9
+ this.name = "CaptureTurnTimeoutError";
10
+ }
11
+ }
12
+ // Raised when a task holds its turn past the caller-supplied deadline. The message is supplied per call site (CaptureRunOptions.deadlineMessage) because the stream
13
+ // path and the probe path surface different, individually-pinned strings, both of which must keep matching the capture-infrastructure classifier.
14
+ export class CaptureDeadlineError extends Error {
15
+ constructor(message) {
16
+ super(message);
17
+ this.name = "CaptureDeadlineError";
18
+ }
19
+ }
20
+ // Thrown by a task after it retires a resource it produced once the caller had already abandoned the turn (the deadline fired). Rejecting rather than resolving with
21
+ // the retired resource guarantees no code path can mistake a torn-down capture stream for a usable one. This rejection never reaches the caller - the caller already
22
+ // settled on the deadline error - so it is a purely internal settlement signal that releases the turn.
23
+ export class CaptureAbandonedError extends Error {
24
+ constructor() {
25
+ super("Capture stream retired after the caller abandoned its turn.");
26
+ this.name = "CaptureAbandonedError";
27
+ }
28
+ }
29
+ // Factory.
30
+ /**
31
+ * Creates a capture lock. The returned lock serializes every task passed to run(): no task begins while another runs, and the turn releases only when the running
32
+ * task's promise settles. A wedged task (one that holds its turn past the derived wedge bound without settling) invokes its onWedge callback once, so the call site
33
+ * can route it into recovery, but the turn still releases only on true settlement.
34
+ * @param options - The injected clock and the wedge-derivation policy.
35
+ * @returns A capture lock.
36
+ */
37
+ export function createCaptureLock(options) {
38
+ const { clock = realClock, wedgeFloorMs, wedgeMarginMs } = options;
39
+ // The FIFO tail. Each run() call reads this as its predecessor and replaces it with its own settlement promise, synchronously, before any await. The first call
40
+ // sees an already-resolved predecessor and is granted its turn immediately.
41
+ let tail = Promise.resolve();
42
+ const run = async (task, runOptions) => {
43
+ // Derive the wedge bound from this call's own deadline so it is always strictly later than the caller-visible deadline. No separate deadline-versus-wedge
44
+ // validation is possible to mis-wire because the derivation guarantees the ordering.
45
+ const wedgeBoundMs = Math.max(wedgeFloorMs, runOptions.deadlineMs + wedgeMarginMs);
46
+ // Link this node into the FIFO synchronously, before any await, so concurrent run() calls establish a deterministic order: our predecessor is whatever tail was,
47
+ // and our own settlement becomes the new tail for the next caller to wait on.
48
+ const predecessor = tail;
49
+ // eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- Standard pattern for signal promises.
50
+ const { promise: settled, resolve: signalSettled } = Promise.withResolvers();
51
+ tail = settled;
52
+ // Turn-wait phase: wait for the predecessor to settle, bounded by the caller's turn-wait. On timeout, forward our settlement to the predecessor's own settlement
53
+ // so a later caller still cannot begin until the running operation actually settles, then reject the waiter. Forwarding (rather than resolving our node directly)
54
+ // is what keeps a give-up from advancing the chain past an unsettled predecessor.
55
+ try {
56
+ await clock.waitWithTimeout(predecessor, runOptions.turnWaitMs, new CaptureTurnTimeoutError());
57
+ }
58
+ catch (error) {
59
+ void predecessor.then(signalSettled, signalSettled);
60
+ throw error;
61
+ }
62
+ // Turn granted. From here the turn is held until the task's promise settles, whatever the caller does.
63
+ const controller = new AbortController();
64
+ const work = task(controller.signal);
65
+ // Track settlement independently of the caller-facing deadline wait below. This single subscription both releases the turn when the task truly settles and
66
+ // deliberately consumes a late rejection, so an abandoned task (whose caller already moved on) never surfaces an unhandled rejection. Attaching both callbacks is
67
+ // required: the bounded wait in the deadline path already observes the work's rejection, and a fulfillment-only handler here would create unhandled-rejection noise.
68
+ let workSettled = false;
69
+ const markSettled = () => {
70
+ workSettled = true;
71
+ signalSettled();
72
+ };
73
+ void work.then(markSettled, markSettled);
74
+ // Arm the wedge as a flag-guarded sleep rather than a cancellable timer: if the task has not settled by the derived bound, invoke onWedge once. A late wakeup
75
+ // after the task already settled is a cheap no-op, so no timer handle or cancellation bookkeeping is needed. The wedge only signals; it never releases the turn.
76
+ void clock.sleep(wedgeBoundMs).then(() => {
77
+ if (!workSettled) {
78
+ runOptions.onWedge?.();
79
+ }
80
+ });
81
+ // Deadline phase: the caller waits up to its task deadline for the work to settle. If the deadline wins, abort the signal - letting a task that later produces a
82
+ // resource retire it - and reject the caller. The turn is NOT released here; the settlement subscription above keeps holding it until the work truly settles.
83
+ try {
84
+ return await clock.waitWithTimeout(work, runOptions.deadlineMs, new CaptureDeadlineError(runOptions.deadlineMessage));
85
+ }
86
+ catch (error) {
87
+ if (error instanceof CaptureDeadlineError) {
88
+ controller.abort();
89
+ }
90
+ throw error;
91
+ }
92
+ };
93
+ return { run };
94
+ }
95
+ //# sourceMappingURL=captureLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captureLock.js","sourceRoot":"","sources":["../../src/streaming/captureLock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { FFmpegProcess } from "../utils/index.ts";
2
+ import type { FMP4SegmenterResult } from "./fmp4Segmenter.ts";
3
+ import type { Nullable } from "../types/index.ts";
4
+ import type { Readable } from "node:stream";
5
+ /**
6
+ * The composite handle owning a capture-mode stream's pipeline resources. Implements the project's dispose() convention and TC39 Symbol.dispose so owners may tear
7
+ * the pipeline down explicitly (terminateStream, tab replacement, the native upgrade) or via a scope-bound "using" declaration during setup. The segmenter is
8
+ * attached after construction because it is created one phase later than the capture stream and FFmpeg child (see attachSegmenter).
9
+ */
10
+ export interface CaptureSession extends Disposable {
11
+ readonly attachSegmenter: (segmenter: FMP4SegmenterResult) => void;
12
+ readonly disposed: boolean;
13
+ readonly dispose: () => void;
14
+ readonly segmenter: Nullable<FMP4SegmenterResult>;
15
+ readonly [Symbol.dispose]: () => void;
16
+ }
17
+ /**
18
+ * Options for createCaptureSession. The segmenter is intentionally absent: it is created in a later phase and wired via the returned handle's attachSegmenter().
19
+ */
20
+ export interface CreateCaptureSessionOptions {
21
+ readonly ffmpegProcess: Nullable<FFmpegProcess>;
22
+ readonly rawCaptureStream: Readable;
23
+ }
24
+ /**
25
+ * Creates a CaptureSession over an already-acquired capture stream and optional FFmpeg child. The pipeline output - the stream the segmenter will consume - is
26
+ * derived here: FFmpeg's stdout when transcoding, otherwise the raw capture stream itself.
27
+ * @param options - The capture stream and optional FFmpeg child to own.
28
+ * @returns A CaptureSession handle.
29
+ */
30
+ export declare function createCaptureSession(options: CreateCaptureSessionOptions): CaptureSession;
31
+ //# sourceMappingURL=captureSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captureSession.d.ts","sourceRoot":"","sources":["../../src/streaming/captureSession.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAKhD,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAGnE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAG3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAK7B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAIlD,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAG1C,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAGhD,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,CAmEzF"}
@@ -0,0 +1,54 @@
1
+ import { LOG } from "../utils/index.js";
2
+ // Factory.
3
+ /**
4
+ * Creates a CaptureSession over an already-acquired capture stream and optional FFmpeg child. The pipeline output - the stream the segmenter will consume - is
5
+ * derived here: FFmpeg's stdout when transcoding, otherwise the raw capture stream itself.
6
+ * @param options - The capture stream and optional FFmpeg child to own.
7
+ * @returns A CaptureSession handle.
8
+ */
9
+ export function createCaptureSession(options) {
10
+ const { ffmpegProcess, rawCaptureStream } = options;
11
+ // The pipeline output the segmenter consumes. In FFmpeg mode this is FFmpeg's fMP4 stdout; in native-fMP4 mode the raw capture stream is already fMP4 and is its
12
+ // own output. Computed once because both handles are stable for the session's lifetime.
13
+ const outputStream = ffmpegProcess?.stdout ?? rawCaptureStream;
14
+ let disposed = false;
15
+ let segmenter = null;
16
+ const attachSegmenter = (incoming) => {
17
+ // The stream was terminated before the segmenter could be wired (a rare mid-setup race). Stop the orphan rather than piping it into a pipeline that has already
18
+ // been torn down; the debug breadcrumb keeps this rare race observable. This is the single home for that cleanup, so callers never replicate it.
19
+ if (disposed) {
20
+ LOG.debug("streaming:setup", "Segmenter attached to an already-disposed capture session; stopping the orphan.");
21
+ incoming.stop();
22
+ return;
23
+ }
24
+ segmenter = incoming;
25
+ // Pipe the pipeline output into the segmenter. The segmenter attaches its own data/end/error listeners to the output stream.
26
+ incoming.pipe(outputStream);
27
+ };
28
+ const dispose = () => {
29
+ if (disposed) {
30
+ return;
31
+ }
32
+ disposed = true;
33
+ // Step 1: kill FFmpeg first so its shuttingDown flag is set before the capture stream's EOF can reach its stdin. See the module header for why the order matters.
34
+ ffmpegProcess?.kill();
35
+ // Step 2: destroy the raw capture stream to fire STOP_RECORDING while the browser is still connected and to carry EOF down the pipeline.
36
+ if (!rawCaptureStream.destroyed) {
37
+ rawCaptureStream.destroy();
38
+ }
39
+ // Step 3: stop the segmenter, whose input pipeline has now ended.
40
+ segmenter?.stop();
41
+ };
42
+ return {
43
+ attachSegmenter,
44
+ dispose,
45
+ [Symbol.dispose]: dispose,
46
+ get disposed() {
47
+ return disposed;
48
+ },
49
+ get segmenter() {
50
+ return segmenter;
51
+ }
52
+ };
53
+ }
54
+ //# sourceMappingURL=captureSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captureSession.js","sourceRoot":"","sources":["../../src/streaming/captureSession.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AA8CxC,WAAW;AAEX;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IAEvE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEpD,iKAAiK;IACjK,wFAAwF;IACxF,MAAM,YAAY,GAAa,aAAa,EAAE,MAAM,IAAI,gBAAgB,CAAC;IAEzE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAkC,IAAI,CAAC;IAEpD,MAAM,eAAe,GAAG,CAAC,QAA6B,EAAQ,EAAE;QAE9D,gKAAgK;QAChK,iJAAiJ;QACjJ,IAAG,QAAQ,EAAE,CAAC;YAEZ,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,iFAAiF,CAAC,CAAC;YAChH,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEhB,OAAO;QACT,CAAC;QAED,SAAS,GAAG,QAAQ,CAAC;QAErB,6HAA6H;QAC7H,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAS,EAAE;QAEzB,IAAG,QAAQ,EAAE,CAAC;YAEZ,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,IAAI,CAAC;QAEhB,kKAAkK;QAClK,aAAa,EAAE,IAAI,EAAE,CAAC;QAEtB,yIAAyI;QACzI,IAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAE/B,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,kEAAkE;QAClE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QAEL,eAAe;QACf,OAAO;QACP,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO;QAEzB,IAAI,QAAQ;YAEV,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,SAAS;YAEX,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -46,3 +46,4 @@ export declare function getClientSummary(streamId: number): ClientSummary;
46
46
  * @param streamId - The numeric stream ID.
47
47
  */
48
48
  export declare function clearClients(streamId: number): void;
49
+ //# sourceMappingURL=clients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/streaming/clients.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAiB1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAG9B,KAAK,EAAE,MAAM,CAAC;IAGd,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAG5B,OAAO,EAAE,eAAe,EAAE,CAAC;IAG3B,KAAK,EAAE,MAAM,CAAC;CACf;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAyBlG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAmBpG;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CA+ChE;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGnD"}
@@ -18,3 +18,4 @@ export declare function getCaptureMimeType(): string;
18
18
  * @returns True if the effective codec has hardware encoding support.
19
19
  */
20
20
  export declare function isCaptureHardwareAccelerated(): boolean;
21
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/streaming/codec.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAwBtD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,CAcvD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAqBtD"}
@@ -86,9 +86,36 @@ export declare function formatKeyframeStatsSummary(stats: KeyframeStats): string
86
86
  */
87
87
  export declare function formatSessionStatsSummary(stats: SessionStats, segmentCount: number): string;
88
88
  /**
89
- * Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, detects keyframes in each moof
90
- * fragment, and accumulates media fragments into segments based on the configured duration.
89
+ * Prunes discontinuity indices that have scrolled below the sliding-window floor, returning how many were removed. Keeping the set bounded over a long stream is the
90
+ * whole point of pruning, but the removed indices still contributed to the HLS #EXT-X-DISCONTINUITY-SEQUENCE (the count of discontinuity tags removed from the front
91
+ * of the playlist), so the caller folds the returned count into a running prunedDiscontinuityCount that computeDiscontinuitySequence() adds back. Every index below the
92
+ * threshold has, by construction, also scrolled below every possible playlist window start (the prune threshold is segmentIndex - maxSegments, which is never greater
93
+ * than any window start the generator computes), so removing it can never drop a discontinuity that is still visible.
94
+ *
95
+ * @param indices - The set of segment indices carrying a discontinuity marker. Mutated in place to remove entries below the threshold.
96
+ * @param threshold - The sliding-window floor index. Indices strictly below this have scrolled out of every possible playlist window.
97
+ * @returns The number of indices removed from the set.
98
+ */
99
+ export declare function pruneDiscontinuityIndices(indices: Set<number>, threshold: number): number;
100
+ /**
101
+ * Computes the #EXT-X-DISCONTINUITY-SEQUENCE value for a playlist window, or undefined when no discontinuities exist in the stream's history (in which case the builder
102
+ * omits the tag entirely). The value is the total number of discontinuities that have scrolled off the front of the playlist: those still tracked in the set at indices
103
+ * below the window start, plus those already pruned from the set (prunedDiscontinuityCount). Because pruned indices are always below the window start, this sum exactly
104
+ * reproduces the never-pruned count of "discontinuities below startIndex" while staying bounded, and it is monotonic since prunedDiscontinuityCount only ever grows.
105
+ *
106
+ * @param options - The discontinuity index set, the running pruned count, and the window start index.
107
+ * @returns The discontinuity-sequence value, or undefined when the stream has no discontinuity history.
108
+ */
109
+ export declare function computeDiscontinuitySequence(options: {
110
+ discontinuityIndices: Set<number>;
111
+ prunedDiscontinuityCount: number;
112
+ startIndex: number;
113
+ }): number | undefined;
114
+ /**
115
+ * Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, optionally detects keyframes
116
+ * in each moof fragment when KEYFRAME_DEBUG is enabled, and accumulates media fragments into segments based on the configured duration.
91
117
  * @param options - Segmenter options including stream ID and callbacks.
92
118
  * @returns The segmenter interface with pipe, stop, and keyframe stats methods.
93
119
  */
94
120
  export declare function createFMP4Segmenter(options: FMP4SegmenterOptions): FMP4SegmenterResult;
121
+ //# sourceMappingURL=fmp4Segmenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fmp4Segmenter.d.ts","sourceRoot":"","sources":["../../src/streaming/fmp4Segmenter.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,9 @@ import { CONFIG } from "../config/index.js";
9
9
  import { LOG } from "../utils/index.js";
10
10
  import { buildPlaylist } from "./playlistBuilder.js";
11
11
  import { getStream } from "./registry.js";
12
- /* This module transforms a puppeteer-stream MP4 capture into HLS fMP4 segments. The overall flow is: (1) receive MP4 data from puppeteer-stream (H.264 + AAC from
13
- * either native capture or FFmpeg transcoding), (2) parse MP4 box structure to identify ftyp + moov (initialization segment) and moof + mdat pairs (media fragments),
12
+ /* This module transforms a puppeteer-stream MP4 capture into HLS fMP4 segments. The overall flow is: (1) receive MP4 data from puppeteer-stream (the configured
13
+ * capture codec, H.264 or HEVC per codec.ts, paired with AAC audio, from either native capture or FFmpeg transcoding), (2) parse MP4 box structure to identify ftyp
14
+ * + moov (initialization segment) and moof + mdat pairs (media fragments),
14
15
  * (3) store init segment and accumulate media fragments into segments, and (4) generate and update the m3u8 playlist.
15
16
  *
16
17
  * Keyframe detection is available for diagnostics by setting KEYFRAME_DEBUG to true. When enabled, each moof's traf/trun sample flags are parsed (ISO 14496-12) to
@@ -93,10 +94,57 @@ export function formatSessionStatsSummary(stats, segmentCount) {
93
94
  parts.push(".");
94
95
  return parts.join("");
95
96
  }
97
+ // Discontinuity Sequence.
98
+ /**
99
+ * Prunes discontinuity indices that have scrolled below the sliding-window floor, returning how many were removed. Keeping the set bounded over a long stream is the
100
+ * whole point of pruning, but the removed indices still contributed to the HLS #EXT-X-DISCONTINUITY-SEQUENCE (the count of discontinuity tags removed from the front
101
+ * of the playlist), so the caller folds the returned count into a running prunedDiscontinuityCount that computeDiscontinuitySequence() adds back. Every index below the
102
+ * threshold has, by construction, also scrolled below every possible playlist window start (the prune threshold is segmentIndex - maxSegments, which is never greater
103
+ * than any window start the generator computes), so removing it can never drop a discontinuity that is still visible.
104
+ *
105
+ * @param indices - The set of segment indices carrying a discontinuity marker. Mutated in place to remove entries below the threshold.
106
+ * @param threshold - The sliding-window floor index. Indices strictly below this have scrolled out of every possible playlist window.
107
+ * @returns The number of indices removed from the set.
108
+ */
109
+ export function pruneDiscontinuityIndices(indices, threshold) {
110
+ let prunedCount = 0;
111
+ for (const idx of indices) {
112
+ if (idx < threshold) {
113
+ indices.delete(idx);
114
+ prunedCount++;
115
+ }
116
+ }
117
+ return prunedCount;
118
+ }
119
+ /**
120
+ * Computes the #EXT-X-DISCONTINUITY-SEQUENCE value for a playlist window, or undefined when no discontinuities exist in the stream's history (in which case the builder
121
+ * omits the tag entirely). The value is the total number of discontinuities that have scrolled off the front of the playlist: those still tracked in the set at indices
122
+ * below the window start, plus those already pruned from the set (prunedDiscontinuityCount). Because pruned indices are always below the window start, this sum exactly
123
+ * reproduces the never-pruned count of "discontinuities below startIndex" while staying bounded, and it is monotonic since prunedDiscontinuityCount only ever grows.
124
+ *
125
+ * @param options - The discontinuity index set, the running pruned count, and the window start index.
126
+ * @returns The discontinuity-sequence value, or undefined when the stream has no discontinuity history.
127
+ */
128
+ export function computeDiscontinuitySequence(options) {
129
+ const { discontinuityIndices, prunedDiscontinuityCount, startIndex } = options;
130
+ // When neither a tracked nor a pruned discontinuity exists, the stream has never had one - signal "omit the tag" with undefined.
131
+ if ((discontinuityIndices.size === 0) && (prunedDiscontinuityCount === 0)) {
132
+ return undefined;
133
+ }
134
+ // Count discontinuities still tracked in the set that have scrolled below the window start, then add those already pruned (all of which were below the start when
135
+ // they were removed). The result equals what an unbounded set would have counted as "indices below startIndex".
136
+ let discSeq = prunedDiscontinuityCount;
137
+ for (const idx of discontinuityIndices) {
138
+ if (idx < startIndex) {
139
+ discSeq++;
140
+ }
141
+ }
142
+ return discSeq;
143
+ }
96
144
  // Segmenter Implementation.
97
145
  /**
98
- * Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, detects keyframes in each moof
99
- * fragment, and accumulates media fragments into segments based on the configured duration.
146
+ * Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, optionally detects keyframes
147
+ * in each moof fragment when KEYFRAME_DEBUG is enabled, and accumulates media fragments into segments based on the configured duration.
100
148
  * @param options - Segmenter options including stream ID and callbacks.
101
149
  * @returns The segmenter interface with pipe, stop, and keyframe stats methods.
102
150
  */
@@ -124,6 +172,7 @@ export function createFMP4Segmenter(options) {
124
172
  prerollBaseUrl: prerollBaseUrl ?? null,
125
173
  prerollCodec: prerollCodec ?? "h264",
126
174
  prerollSegmentCount: prerollSegmentCount ?? 0,
175
+ prunedDiscontinuityCount: 0,
127
176
  segmentDurations: new Map(),
128
177
  segmentFirstMoofChecked: false,
129
178
  segmentIndex: startingSegmentIndex ?? 0,
@@ -207,18 +256,14 @@ export function createFMP4Segmenter(options) {
207
256
  }
208
257
  realEntries.push(entry);
209
258
  }
210
- // Compute DISCONTINUITY-SEQUENCE: the count of discontinuities that have scrolled off the beginning of the playlist window. Only provided when discontinuities
211
- // exist in the stream's history - when undefined, the builder omits the tag entirely.
212
- let discontinuitySequence;
213
- if (state.discontinuityIndices.size > 0) {
214
- let discSeq = 0;
215
- for (const idx of state.discontinuityIndices) {
216
- if (idx < startIndex) {
217
- discSeq++;
218
- }
219
- }
220
- discontinuitySequence = discSeq;
221
- }
259
+ // Compute DISCONTINUITY-SEQUENCE: the count of discontinuities that have scrolled off the beginning of the playlist window. This counts both discontinuities still
260
+ // tracked in discontinuityIndices below the window start and those already pruned from the set as their segments aged out, so the emitted value stays correct and
261
+ // monotonic even though the set is bounded. Returns undefined when the stream has no discontinuity history, in which case the builder omits the tag entirely.
262
+ const discontinuitySequence = computeDiscontinuitySequence({
263
+ discontinuityIndices: state.discontinuityIndices,
264
+ prunedDiscontinuityCount: state.prunedDiscontinuityCount,
265
+ startIndex
266
+ });
222
267
  // Determine the initial MAP URI. When the window starts with preroll entries, use the preroll init segment. Otherwise, use the real init segment. The
223
268
  // prerollBaseUrl is guaranteed non-null when prerollEntries is non-empty (guarded by the conditional above).
224
269
  const initialMapUri = ((prerollEntries.length > 0) && state.prerollBaseUrl) ?
@@ -233,7 +278,8 @@ export function createFMP4Segmenter(options) {
233
278
  }, entries);
234
279
  }
235
280
  /**
236
- * Resets per-segment tracking state. Called after outputting a segment. Extracted to avoid duplication of the same five assignments.
281
+ * Resets the per-segment tracking state once a segment has been emitted, grouping the reset in one place so outputSegment reads cleanly and the next segment
282
+ * starts from a known baseline.
237
283
  */
238
284
  function resetSegmentTracking() {
239
285
  state.fragmentBuffer = [];
@@ -321,6 +367,10 @@ export function createFMP4Segmenter(options) {
321
367
  state.segmentTimestamps.delete(idx);
322
368
  }
323
369
  }
370
+ // Prune discontinuity indices that have scrolled below the same window floor, folding each removed entry into prunedDiscontinuityCount so the
371
+ // #EXT-X-DISCONTINUITY-SEQUENCE generatePlaylist() emits still accounts for every discontinuity that has left the front of the playlist. Without this carry, a long
372
+ // stream would both leak the set unbounded and, once pruned, under-report the sequence and violate HLS monotonicity.
373
+ state.prunedDiscontinuityCount += pruneDiscontinuityIndices(state.discontinuityIndices, pruneThreshold);
324
374
  // Clear the fragment buffer and reset segment-level tracking for the next segment.
325
375
  resetSegmentTracking();
326
376
  // Update the playlist.
@@ -422,6 +472,7 @@ export function createFMP4Segmenter(options) {
422
472
  LOG.debug("streaming:segmenter", "Video codec: profile=%d, profileCompatibility=0x%s, level=%d.", codecConfig.video.profile, codecConfig.video.profileCompatibility.toString(16).padStart(2, "0"), codecConfig.video.level);
423
473
  }
424
474
  if (codecConfig.audio) {
475
+ // ISO/IEC 14496-3 AAC sampling-frequency index table, indexed by codecConfig.audio.sampleRateIndex.
425
476
  const sampleRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];
426
477
  const sampleRate = sampleRates[codecConfig.audio.sampleRateIndex] ?? 0;
427
478
  LOG.debug("streaming:segmenter", "Audio codec: objectType=%d (AAC-LC=%d), sampleRate=%dHz (index=%d).", codecConfig.audio.objectType, codecConfig.audio.objectType === 2 ? 1 : 0, sampleRate, codecConfig.audio.sampleRateIndex);
@@ -487,12 +538,12 @@ export function createFMP4Segmenter(options) {
487
538
  // original timestamps, which is better than dropping it entirely.
488
539
  try {
489
540
  const trackResults = offsetMoofTimestamps(box.data, state.trackOffsets);
490
- // Lazy offset initialization: compute offsets for all newly seen tracks before any corrective re-write. This two-pass approach is necessary because
491
- // offsetMoofTimestamps processes ALL trafs in the moof - if we re-called after each individual track's initialization, already-offset tracks would get
492
- // their offset applied a second time. By computing all offsets first, a single re-call applies them all atomically. This is safe because on the first
493
- // moof of a segmenter all tracks are uninitialized, so the first call writes all tracks with offset 0 (no-op) and the re-call applies all offsets to
494
- // Chrome's original values. Chrome's MediaRecorder declares all tracks in the moov at stream start and tab replacement creates a fresh segmenter, so a
495
- // new track appearing mid-stream in a multi-track moof alongside already-initialized tracks cannot occur.
541
+ // Two-pass offset handling. The first call above applied every already-known track's stored offset in place, leaving any track first seen in this moof at
542
+ // Chrome's original tfdt (an absent trackId is a 0n no-op write). This loop computes and stores each newly seen track's offset and records it in newOffsets -
543
+ // the offsets finalized this moof, and only those. The corrective call below applies exactly newOffsets, so a track the first call already offset stays
544
+ // untouched (absent from newOffsets, a 0n no-op) while a track initialized here is offset exactly once. No track's offset can be applied twice regardless of
545
+ // how tracks stagger their first trafs across moofs.
546
+ const newOffsets = new Map();
496
547
  let needsRewrite = false;
497
548
  for (const [trackId, result] of trackResults) {
498
549
  if (!state.trackOffsetsInitialized.has(trackId)) {
@@ -509,16 +560,18 @@ export function createFMP4Segmenter(options) {
509
560
  }
510
561
  state.trackOffsets.set(trackId, offset);
511
562
  state.trackOffsetsInitialized.add(trackId);
563
+ newOffsets.set(trackId, offset);
512
564
  if (offset !== 0n) {
513
565
  needsRewrite = true;
514
566
  }
515
567
  LOG.debug("streaming:segmenter", "Initialized offset for track %d: %s (initial=%s, chrome=%s).", trackId, String(offset), String(initialValue ?? 0n), String(result.originalTfdt));
516
568
  }
517
569
  }
518
- // The first call wrote uninitialized tracks with offset 0 (pure pass-through), so the buffer still contains Chrome's original tfdt values for those
519
- // tracks. Now that all offsets are stored, a single re-call applies them correctly without double-offsetting any track.
570
+ // Corrective rewrite, scoped to the tracks initialized this moof. Those tracks still hold Chrome's original tfdt (the first call left them at 0n), so this
571
+ // single re-call with newOffsets applies each of their offsets exactly once. Already-known tracks are absent from newOffsets and pass through as 0n no-op
572
+ // writes, so they cannot be offset a second time. Skipped entirely when no newly initialized track carries a nonzero offset.
520
573
  if (needsRewrite) {
521
- offsetMoofTimestamps(box.data, state.trackOffsets);
574
+ offsetMoofTimestamps(box.data, newOffsets);
522
575
  }
523
576
  // Check whether this moof contains a traf for the video track. The trackResults map contains an entry for every traf in the moof, keyed by trackId.
524
577
  // If the video trackId is present, we know the capture pipeline is producing video data (even if the frame content is static/low-motion).