prismcast 1.12.1 → 1.13.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 (568) hide show
  1. package/dist/app.d.ts +0 -1
  2. package/dist/app.js +8 -7
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/blockedPage.d.ts +0 -1
  5. package/dist/browser/browserSupervisor.d.ts +4 -4
  6. package/dist/browser/browserSupervisor.js.map +1 -1
  7. package/dist/browser/cdp.d.ts +2 -3
  8. package/dist/browser/cdp.js +5 -4
  9. package/dist/browser/cdp.js.map +1 -1
  10. package/dist/browser/channelSelection.d.ts +16 -4
  11. package/dist/browser/channelSelection.js +42 -31
  12. package/dist/browser/channelSelection.js.map +1 -1
  13. package/dist/browser/consent.d.ts +17 -4
  14. package/dist/browser/consent.js +25 -40
  15. package/dist/browser/consent.js.map +1 -1
  16. package/dist/browser/display.d.ts +0 -1
  17. package/dist/browser/hlsPlaylistObserver.d.ts +3 -2
  18. package/dist/browser/hlsPlaylistObserver.js +9 -4
  19. package/dist/browser/hlsPlaylistObserver.js.map +1 -1
  20. package/dist/browser/index.d.ts +76 -26
  21. package/dist/browser/index.js +201 -101
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/browser/launchGovernor.d.ts +0 -1
  24. package/dist/browser/login.d.ts +8 -7
  25. package/dist/browser/login.js +25 -16
  26. package/dist/browser/login.js.map +1 -1
  27. package/dist/browser/manifestInterceptor.d.ts +14 -5
  28. package/dist/browser/manifestInterceptor.js +25 -12
  29. package/dist/browser/manifestInterceptor.js.map +1 -1
  30. package/dist/browser/navigation.d.ts +28 -0
  31. package/dist/browser/navigation.js +57 -0
  32. package/dist/browser/navigation.js.map +1 -0
  33. package/dist/browser/pageStaleness.d.ts +0 -1
  34. package/dist/browser/precaching.d.ts +4 -2
  35. package/dist/browser/precaching.js +39 -32
  36. package/dist/browser/precaching.js.map +1 -1
  37. package/dist/browser/tabCapture.d.ts +7 -10
  38. package/dist/browser/tabCapture.js +35 -41
  39. package/dist/browser/tabCapture.js.map +1 -1
  40. package/dist/browser/tabNetworkObserver.d.ts +0 -1
  41. package/dist/browser/tabSelection.d.ts +5 -5
  42. package/dist/browser/tabSelection.js +11 -10
  43. package/dist/browser/tabSelection.js.map +1 -1
  44. package/dist/browser/tuning/cache.d.ts +0 -1
  45. package/dist/browser/tuning/comcastPolymer.d.ts +0 -1
  46. package/dist/browser/tuning/comcastPolymer.js +16 -17
  47. package/dist/browser/tuning/comcastPolymer.js.map +1 -1
  48. package/dist/browser/tuning/cox.d.ts +0 -1
  49. package/dist/browser/tuning/directv.d.ts +0 -1
  50. package/dist/browser/tuning/directv.js +11 -12
  51. package/dist/browser/tuning/directv.js.map +1 -1
  52. package/dist/browser/tuning/fox.d.ts +0 -1
  53. package/dist/browser/tuning/fox.js +2 -2
  54. package/dist/browser/tuning/fox.js.map +1 -1
  55. package/dist/browser/tuning/gridSearch.d.ts +0 -1
  56. package/dist/browser/tuning/hbo.d.ts +0 -1
  57. package/dist/browser/tuning/hulu.d.ts +14 -2
  58. package/dist/browser/tuning/hulu.js +144 -21
  59. package/dist/browser/tuning/hulu.js.map +1 -1
  60. package/dist/browser/tuning/shared.d.ts +0 -1
  61. package/dist/browser/tuning/sling.d.ts +0 -1
  62. package/dist/browser/tuning/sling.js +17 -22
  63. package/dist/browser/tuning/sling.js.map +1 -1
  64. package/dist/browser/tuning/spectrum.d.ts +0 -1
  65. package/dist/browser/tuning/thumbnailRow.d.ts +0 -1
  66. package/dist/browser/tuning/tileClick.d.ts +0 -1
  67. package/dist/browser/tuning/xfinity.d.ts +0 -1
  68. package/dist/browser/tuning/youtubeTv.d.ts +0 -1
  69. package/dist/browser/video.d.ts +22 -20
  70. package/dist/browser/video.js +102 -119
  71. package/dist/browser/video.js.map +1 -1
  72. package/dist/browser/windowSync.d.ts +0 -1
  73. package/dist/channels/index.d.ts +0 -1
  74. package/dist/config/channelForm.d.ts +0 -1
  75. package/dist/config/channelIdentity.d.ts +27 -0
  76. package/dist/config/channelIdentity.js +72 -0
  77. package/dist/config/channelIdentity.js.map +1 -0
  78. package/dist/config/channelSort.d.ts +25 -0
  79. package/dist/config/channelSort.js +101 -0
  80. package/dist/config/channelSort.js.map +1 -0
  81. package/dist/config/consistencyProbe.d.ts +0 -1
  82. package/dist/config/health.d.ts +3 -2
  83. package/dist/config/health.js +41 -28
  84. package/dist/config/health.js.map +1 -1
  85. package/dist/config/index.d.ts +0 -1
  86. package/dist/config/paths.d.ts +0 -1
  87. package/dist/config/persistence.context.d.ts +0 -1
  88. package/dist/config/persistence.d.ts +0 -1
  89. package/dist/config/presets.d.ts +0 -1
  90. package/dist/config/profiles.d.ts +9 -4
  91. package/dist/config/profiles.js +37 -3
  92. package/dist/config/profiles.js.map +1 -1
  93. package/dist/config/providerLineups.d.ts +0 -1
  94. package/dist/config/reactivity.d.ts +0 -1
  95. package/dist/config/servicePacks.d.ts +0 -1
  96. package/dist/config/services.d.ts +1 -47
  97. package/dist/config/services.js +3 -134
  98. package/dist/config/services.js.map +1 -1
  99. package/dist/config/sites.d.ts +0 -9
  100. package/dist/config/sites.js +5 -40
  101. package/dist/config/sites.js.map +1 -1
  102. package/dist/config/userChannels.d.ts +22 -28
  103. package/dist/config/userChannels.js +46 -60
  104. package/dist/config/userChannels.js.map +1 -1
  105. package/dist/config/userConfig.d.ts +4 -1
  106. package/dist/config/userConfig.js +4 -0
  107. package/dist/config/userConfig.js.map +1 -1
  108. package/dist/config/userProfiles.d.ts +2 -3
  109. package/dist/config/userProfiles.js +6 -2
  110. package/dist/config/userProfiles.js.map +1 -1
  111. package/dist/hdhr/channelMap.d.ts +0 -1
  112. package/dist/hdhr/deviceId.d.ts +0 -1
  113. package/dist/hdhr/discover.d.ts +0 -1
  114. package/dist/hdhr/getHandlers.d.ts +0 -1
  115. package/dist/hdhr/identity.d.ts +0 -1
  116. package/dist/hdhr/index.d.ts +0 -1
  117. package/dist/hdhr/protocol.d.ts +0 -1
  118. package/dist/hdhr/tunerState.d.ts +0 -1
  119. package/dist/hdhr/udp.d.ts +0 -1
  120. package/dist/identity.d.ts +0 -1
  121. package/dist/index.d.ts +0 -1
  122. package/dist/native/codecInference.d.ts +5 -4
  123. package/dist/native/codecInference.js +12 -7
  124. package/dist/native/codecInference.js.map +1 -1
  125. package/dist/native/decrypt.d.ts +10 -3
  126. package/dist/native/decrypt.js +9 -5
  127. package/dist/native/decrypt.js.map +1 -1
  128. package/dist/native/index.d.ts +25 -23
  129. package/dist/native/index.js +23 -17
  130. package/dist/native/index.js.map +1 -1
  131. package/dist/native/probe.d.ts +7 -10
  132. package/dist/native/probe.js +40 -36
  133. package/dist/native/probe.js.map +1 -1
  134. package/dist/native/proxy.d.ts +2 -3
  135. package/dist/native/proxy.js +86 -64
  136. package/dist/native/proxy.js.map +1 -1
  137. package/dist/native/tokenExpiry.d.ts +0 -1
  138. package/dist/routes/assets.d.ts +0 -1
  139. package/dist/routes/auth.d.ts +0 -1
  140. package/dist/routes/auth.js +1 -1
  141. package/dist/routes/auth.js.map +1 -1
  142. package/dist/routes/cdp.d.ts +11 -5
  143. package/dist/routes/cdp.js +90 -62
  144. package/dist/routes/cdp.js.map +1 -1
  145. package/dist/routes/channels.d.ts +0 -1
  146. package/dist/routes/clientActions.d.ts +0 -1
  147. package/dist/routes/components.d.ts +0 -1
  148. package/dist/routes/config/channels/endpoints/browse.d.ts +0 -1
  149. package/dist/routes/config/channels/endpoints/bulk.d.ts +0 -1
  150. package/dist/routes/config/channels/endpoints/bulk.js +1 -1
  151. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  152. package/dist/routes/config/channels/endpoints/crud.d.ts +0 -1
  153. package/dist/routes/config/channels/endpoints/crud.js +3 -2
  154. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  155. package/dist/routes/config/channels/endpoints/importExport.d.ts +0 -1
  156. package/dist/routes/config/channels/endpoints/importExport.js +7 -3
  157. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  158. package/dist/routes/config/channels/endpoints/predefined.d.ts +0 -1
  159. package/dist/routes/config/channels/endpoints/prefs.d.ts +0 -1
  160. package/dist/routes/config/channels/endpoints/prefs.js +1 -1
  161. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  162. package/dist/routes/config/channels/endpoints/service.d.ts +0 -1
  163. package/dist/routes/config/channels/endpoints/service.js +8 -5
  164. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  165. package/dist/routes/config/channels/endpoints/tags.d.ts +0 -1
  166. package/dist/routes/config/channels/healthBridge.d.ts +0 -1
  167. package/dist/routes/config/channels/http/handler.d.ts +0 -1
  168. package/dist/routes/config/channels/http/playlistHint.d.ts +0 -1
  169. package/dist/routes/config/channels/http/serviceWarning.d.ts +0 -1
  170. package/dist/routes/config/channels/http/serviceWarning.js +1 -1
  171. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
  172. package/dist/routes/config/channels/index.d.ts +0 -1
  173. package/dist/routes/config/channels/setup.d.ts +0 -1
  174. package/dist/routes/config/channels/table.d.ts +0 -1
  175. package/dist/routes/config/channels/table.js +2 -1
  176. package/dist/routes/config/channels/table.js.map +1 -1
  177. package/dist/routes/config/http/envelope.d.ts +0 -1
  178. package/dist/routes/config/index.d.ts +0 -1
  179. package/dist/routes/config/index.js +2 -1
  180. package/dist/routes/config/index.js.map +1 -1
  181. package/dist/routes/config/services.d.ts +0 -1
  182. package/dist/routes/config/services.js +4 -3
  183. package/dist/routes/config/services.js.map +1 -1
  184. package/dist/routes/config/settings.d.ts +0 -1
  185. package/dist/routes/config/settings.js +2 -1
  186. package/dist/routes/config/settings.js.map +1 -1
  187. package/dist/routes/debug.d.ts +0 -1
  188. package/dist/routes/health.d.ts +1 -2
  189. package/dist/routes/health.js +5 -2
  190. package/dist/routes/health.js.map +1 -1
  191. package/dist/routes/hls.d.ts +0 -1
  192. package/dist/routes/icons.d.ts +0 -1
  193. package/dist/routes/index.d.ts +0 -1
  194. package/dist/routes/logs.d.ts +3 -2
  195. package/dist/routes/logs.js +4 -2
  196. package/dist/routes/logs.js.map +1 -1
  197. package/dist/routes/mpegts.d.ts +0 -1
  198. package/dist/routes/play.d.ts +0 -1
  199. package/dist/routes/playlist.d.ts +0 -1
  200. package/dist/routes/playlist.js +2 -1
  201. package/dist/routes/playlist.js.map +1 -1
  202. package/dist/routes/root/content.d.ts +0 -1
  203. package/dist/routes/root/index.d.ts +0 -1
  204. package/dist/routes/root/scripts/channels.d.ts +0 -1
  205. package/dist/routes/root/scripts/channels.js +2 -2
  206. package/dist/routes/root/scripts/channels.js.map +1 -1
  207. package/dist/routes/root/scripts/clientEscape.d.ts +0 -1
  208. package/dist/routes/root/scripts/clientUrl.d.ts +0 -1
  209. package/dist/routes/root/scripts/config.d.ts +0 -1
  210. package/dist/routes/root/scripts/config.js +5 -26
  211. package/dist/routes/root/scripts/config.js.map +1 -1
  212. package/dist/routes/root/scripts/index.d.ts +0 -1
  213. package/dist/routes/root/scripts/shared.d.ts +0 -1
  214. package/dist/routes/root/scripts/status.d.ts +0 -1
  215. package/dist/routes/root/scripts/status.handlers.d.ts +0 -1
  216. package/dist/routes/root/scripts/status.handlers.js +3 -2
  217. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  218. package/dist/routes/root/styles.d.ts +0 -1
  219. package/dist/routes/services.d.ts +0 -1
  220. package/dist/routes/services.js +1 -1
  221. package/dist/routes/services.js.map +1 -1
  222. package/dist/routes/sse.d.ts +3 -2
  223. package/dist/routes/sse.js +7 -3
  224. package/dist/routes/sse.js.map +1 -1
  225. package/dist/routes/streams.d.ts +4 -2
  226. package/dist/routes/streams.js +8 -5
  227. package/dist/routes/streams.js.map +1 -1
  228. package/dist/routes/theme.d.ts +0 -1
  229. package/dist/routes/ui.d.ts +0 -1
  230. package/dist/routes/upgrade.d.ts +0 -1
  231. package/dist/routes/upgrade.js +2 -1
  232. package/dist/routes/upgrade.js.map +1 -1
  233. package/dist/service/commands.context.d.ts +0 -1
  234. package/dist/service/commands.context.js +7 -1
  235. package/dist/service/commands.context.js.map +1 -1
  236. package/dist/service/commands.d.ts +0 -1
  237. package/dist/service/generators.context.d.ts +0 -1
  238. package/dist/service/generators.d.ts +0 -1
  239. package/dist/service/index.d.ts +0 -1
  240. package/dist/streaming/captureLock.d.ts +1 -2
  241. package/dist/streaming/captureLock.js +6 -5
  242. package/dist/streaming/captureLock.js.map +1 -1
  243. package/dist/streaming/captureSession.d.ts +0 -1
  244. package/dist/streaming/clients.d.ts +4 -3
  245. package/dist/streaming/clients.js +5 -4
  246. package/dist/streaming/clients.js.map +1 -1
  247. package/dist/streaming/codec.d.ts +0 -1
  248. package/dist/streaming/fmp4Segmenter.d.ts +2 -1
  249. package/dist/streaming/fmp4Segmenter.js +12 -11
  250. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  251. package/dist/streaming/hls.d.ts +34 -1
  252. package/dist/streaming/hls.js +121 -54
  253. package/dist/streaming/hls.js.map +1 -1
  254. package/dist/streaming/hlsResume.d.ts +8 -5
  255. package/dist/streaming/hlsResume.js +10 -8
  256. package/dist/streaming/hlsResume.js.map +1 -1
  257. package/dist/streaming/hlsSegments.d.ts +9 -7
  258. package/dist/streaming/hlsSegments.js +19 -14
  259. package/dist/streaming/hlsSegments.js.map +1 -1
  260. package/dist/streaming/lifecycle.d.ts +5 -4
  261. package/dist/streaming/lifecycle.js +25 -13
  262. package/dist/streaming/lifecycle.js.map +1 -1
  263. package/dist/streaming/monitor.d.ts +3 -2
  264. package/dist/streaming/monitor.js +63 -57
  265. package/dist/streaming/monitor.js.map +1 -1
  266. package/dist/streaming/mp4Parser.d.ts +0 -1
  267. package/dist/streaming/mpegts.d.ts +0 -1
  268. package/dist/streaming/mpegts.js +23 -7
  269. package/dist/streaming/mpegts.js.map +1 -1
  270. package/dist/streaming/playlistBuilder.d.ts +0 -1
  271. package/dist/streaming/preroll.d.ts +34 -15
  272. package/dist/streaming/preroll.js +30 -28
  273. package/dist/streaming/preroll.js.map +1 -1
  274. package/dist/streaming/pretune.d.ts +2 -3
  275. package/dist/streaming/pretune.js +45 -45
  276. package/dist/streaming/pretune.js.map +1 -1
  277. package/dist/streaming/pretuneTimers.d.ts +16 -12
  278. package/dist/streaming/pretuneTimers.js +27 -37
  279. package/dist/streaming/pretuneTimers.js.map +1 -1
  280. package/dist/streaming/recovery.d.ts +7 -5
  281. package/dist/streaming/recovery.js +10 -7
  282. package/dist/streaming/recovery.js.map +1 -1
  283. package/dist/streaming/registry.d.ts +23 -5
  284. package/dist/streaming/registry.js +17 -3
  285. package/dist/streaming/registry.js.map +1 -1
  286. package/dist/streaming/setup.d.ts +39 -7
  287. package/dist/streaming/setup.js +130 -65
  288. package/dist/streaming/setup.js.map +1 -1
  289. package/dist/streaming/showInfo.d.ts +8 -4
  290. package/dist/streaming/showInfo.js +54 -45
  291. package/dist/streaming/showInfo.js.map +1 -1
  292. package/dist/streaming/statusEmitter.d.ts +1 -2
  293. package/dist/streaming/statusEmitter.js +1 -1
  294. package/dist/streaming/statusEmitter.js.map +1 -1
  295. package/dist/types/channels.d.ts +0 -1
  296. package/dist/types/config.d.ts +0 -1
  297. package/dist/types/index.d.ts +1 -2
  298. package/dist/types/index.js.map +1 -1
  299. package/dist/types/profiles.d.ts +1 -1
  300. package/dist/types/selection.d.ts +10 -1
  301. package/dist/types/shared.d.ts +0 -1
  302. package/dist/types/streaming.d.ts +0 -1
  303. package/dist/upgrade/commands.context.d.ts +0 -1
  304. package/dist/upgrade/commands.d.ts +0 -1
  305. package/dist/upgrade/detection.context.d.ts +0 -1
  306. package/dist/upgrade/detection.d.ts +0 -1
  307. package/dist/upgrade/index.d.ts +0 -1
  308. package/dist/upgrade/lifecycle.context.d.ts +2 -1
  309. package/dist/upgrade/lifecycle.context.js +9 -4
  310. package/dist/upgrade/lifecycle.context.js.map +1 -1
  311. package/dist/upgrade/lifecycle.d.ts +0 -1
  312. package/dist/upgrade/pathHandle.d.ts +0 -1
  313. package/dist/utils/bootSession.context.d.ts +0 -1
  314. package/dist/utils/bootSession.context.js +2 -1
  315. package/dist/utils/bootSession.context.js.map +1 -1
  316. package/dist/utils/bootSession.d.ts +0 -1
  317. package/dist/utils/chromeFetch.d.ts +0 -1
  318. package/dist/utils/cliOutput.d.ts +0 -1
  319. package/dist/utils/debugFilter.d.ts +0 -1
  320. package/dist/utils/delay.d.ts +47 -25
  321. package/dist/utils/delay.js +74 -37
  322. package/dist/utils/delay.js.map +1 -1
  323. package/dist/utils/errors.d.ts +0 -1
  324. package/dist/utils/evaluate.d.ts +11 -3
  325. package/dist/utils/evaluate.js +4 -3
  326. package/dist/utils/evaluate.js.map +1 -1
  327. package/dist/utils/ffmpeg.context.d.ts +0 -1
  328. package/dist/utils/ffmpeg.d.ts +0 -1
  329. package/dist/utils/fileLogger.d.ts +3 -2
  330. package/dist/utils/fileLogger.js +16 -8
  331. package/dist/utils/fileLogger.js.map +1 -1
  332. package/dist/utils/format.d.ts +12 -3
  333. package/dist/utils/format.js +29 -11
  334. package/dist/utils/format.js.map +1 -1
  335. package/dist/utils/index.d.ts +0 -2
  336. package/dist/utils/index.js +0 -1
  337. package/dist/utils/index.js.map +1 -1
  338. package/dist/utils/logEmitter.d.ts +0 -1
  339. package/dist/utils/logger.d.ts +0 -1
  340. package/dist/utils/m3u.d.ts +0 -1
  341. package/dist/utils/markup.d.ts +0 -1
  342. package/dist/utils/memo.d.ts +0 -1
  343. package/dist/utils/morganStream.d.ts +0 -1
  344. package/dist/utils/network.d.ts +0 -1
  345. package/dist/utils/never.d.ts +0 -1
  346. package/dist/utils/pid.d.ts +0 -1
  347. package/dist/utils/platform.d.ts +0 -1
  348. package/dist/utils/processInspector.context.d.ts +32 -2
  349. package/dist/utils/processInspector.context.js +117 -1
  350. package/dist/utils/processInspector.context.js.map +1 -1
  351. package/dist/utils/processInspector.d.ts +0 -32
  352. package/dist/utils/processInspector.js +10 -117
  353. package/dist/utils/processInspector.js.map +1 -1
  354. package/dist/utils/retry.d.ts +5 -4
  355. package/dist/utils/retry.js +43 -33
  356. package/dist/utils/retry.js.map +1 -1
  357. package/dist/utils/runtimeIdentity.context.d.ts +0 -1
  358. package/dist/utils/runtimeIdentity.context.js +3 -1
  359. package/dist/utils/runtimeIdentity.context.js.map +1 -1
  360. package/dist/utils/runtimeIdentity.d.ts +1 -1
  361. package/dist/utils/runtimeIdentity.js +1 -1
  362. package/dist/utils/runtimeIdentity.js.map +1 -1
  363. package/dist/utils/sanitize.d.ts +0 -1
  364. package/dist/utils/streamContext.d.ts +0 -1
  365. package/dist/utils/timing.d.ts +3 -4
  366. package/dist/utils/timing.js +4 -4
  367. package/dist/utils/timing.js.map +1 -1
  368. package/dist/utils/version.d.ts +5 -4
  369. package/dist/utils/version.js +35 -24
  370. package/dist/utils/version.js.map +1 -1
  371. package/package.json +7 -7
  372. package/dist/app.d.ts.map +0 -1
  373. package/dist/browser/blockedPage.d.ts.map +0 -1
  374. package/dist/browser/browserSupervisor.d.ts.map +0 -1
  375. package/dist/browser/cdp.d.ts.map +0 -1
  376. package/dist/browser/channelSelection.d.ts.map +0 -1
  377. package/dist/browser/consent.d.ts.map +0 -1
  378. package/dist/browser/display.d.ts.map +0 -1
  379. package/dist/browser/hlsPlaylistObserver.d.ts.map +0 -1
  380. package/dist/browser/index.d.ts.map +0 -1
  381. package/dist/browser/launchGovernor.d.ts.map +0 -1
  382. package/dist/browser/login.d.ts.map +0 -1
  383. package/dist/browser/manifestInterceptor.d.ts.map +0 -1
  384. package/dist/browser/pageStaleness.d.ts.map +0 -1
  385. package/dist/browser/precaching.d.ts.map +0 -1
  386. package/dist/browser/tabCapture.d.ts.map +0 -1
  387. package/dist/browser/tabNetworkObserver.d.ts.map +0 -1
  388. package/dist/browser/tabSelection.d.ts.map +0 -1
  389. package/dist/browser/tuning/cache.d.ts.map +0 -1
  390. package/dist/browser/tuning/comcastPolymer.d.ts.map +0 -1
  391. package/dist/browser/tuning/cox.d.ts.map +0 -1
  392. package/dist/browser/tuning/directv.d.ts.map +0 -1
  393. package/dist/browser/tuning/fox.d.ts.map +0 -1
  394. package/dist/browser/tuning/gridSearch.d.ts.map +0 -1
  395. package/dist/browser/tuning/hbo.d.ts.map +0 -1
  396. package/dist/browser/tuning/hulu.d.ts.map +0 -1
  397. package/dist/browser/tuning/shared.d.ts.map +0 -1
  398. package/dist/browser/tuning/sling.d.ts.map +0 -1
  399. package/dist/browser/tuning/spectrum.d.ts.map +0 -1
  400. package/dist/browser/tuning/thumbnailRow.d.ts.map +0 -1
  401. package/dist/browser/tuning/tileClick.d.ts.map +0 -1
  402. package/dist/browser/tuning/xfinity.d.ts.map +0 -1
  403. package/dist/browser/tuning/youtubeTv.d.ts.map +0 -1
  404. package/dist/browser/video.d.ts.map +0 -1
  405. package/dist/browser/windowSync.d.ts.map +0 -1
  406. package/dist/channels/index.d.ts.map +0 -1
  407. package/dist/config/channelForm.d.ts.map +0 -1
  408. package/dist/config/consistencyProbe.d.ts.map +0 -1
  409. package/dist/config/health.d.ts.map +0 -1
  410. package/dist/config/index.d.ts.map +0 -1
  411. package/dist/config/paths.d.ts.map +0 -1
  412. package/dist/config/persistence.context.d.ts.map +0 -1
  413. package/dist/config/persistence.d.ts.map +0 -1
  414. package/dist/config/presets.d.ts.map +0 -1
  415. package/dist/config/profiles.d.ts.map +0 -1
  416. package/dist/config/providerLineups.d.ts.map +0 -1
  417. package/dist/config/reactivity.d.ts.map +0 -1
  418. package/dist/config/servicePacks.d.ts.map +0 -1
  419. package/dist/config/services.d.ts.map +0 -1
  420. package/dist/config/sites.d.ts.map +0 -1
  421. package/dist/config/userChannels.d.ts.map +0 -1
  422. package/dist/config/userConfig.d.ts.map +0 -1
  423. package/dist/config/userProfiles.d.ts.map +0 -1
  424. package/dist/hdhr/channelMap.d.ts.map +0 -1
  425. package/dist/hdhr/deviceId.d.ts.map +0 -1
  426. package/dist/hdhr/discover.d.ts.map +0 -1
  427. package/dist/hdhr/getHandlers.d.ts.map +0 -1
  428. package/dist/hdhr/identity.d.ts.map +0 -1
  429. package/dist/hdhr/index.d.ts.map +0 -1
  430. package/dist/hdhr/protocol.d.ts.map +0 -1
  431. package/dist/hdhr/tunerState.d.ts.map +0 -1
  432. package/dist/hdhr/udp.d.ts.map +0 -1
  433. package/dist/identity.d.ts.map +0 -1
  434. package/dist/index.d.ts.map +0 -1
  435. package/dist/native/codecInference.d.ts.map +0 -1
  436. package/dist/native/decrypt.d.ts.map +0 -1
  437. package/dist/native/index.d.ts.map +0 -1
  438. package/dist/native/probe.d.ts.map +0 -1
  439. package/dist/native/proxy.d.ts.map +0 -1
  440. package/dist/native/tokenExpiry.d.ts.map +0 -1
  441. package/dist/routes/assets.d.ts.map +0 -1
  442. package/dist/routes/auth.d.ts.map +0 -1
  443. package/dist/routes/cdp.d.ts.map +0 -1
  444. package/dist/routes/channels.d.ts.map +0 -1
  445. package/dist/routes/clientActions.d.ts.map +0 -1
  446. package/dist/routes/components.d.ts.map +0 -1
  447. package/dist/routes/config/channels/endpoints/browse.d.ts.map +0 -1
  448. package/dist/routes/config/channels/endpoints/bulk.d.ts.map +0 -1
  449. package/dist/routes/config/channels/endpoints/crud.d.ts.map +0 -1
  450. package/dist/routes/config/channels/endpoints/importExport.d.ts.map +0 -1
  451. package/dist/routes/config/channels/endpoints/predefined.d.ts.map +0 -1
  452. package/dist/routes/config/channels/endpoints/prefs.d.ts.map +0 -1
  453. package/dist/routes/config/channels/endpoints/service.d.ts.map +0 -1
  454. package/dist/routes/config/channels/endpoints/tags.d.ts.map +0 -1
  455. package/dist/routes/config/channels/healthBridge.d.ts.map +0 -1
  456. package/dist/routes/config/channels/http/handler.d.ts.map +0 -1
  457. package/dist/routes/config/channels/http/playlistHint.d.ts.map +0 -1
  458. package/dist/routes/config/channels/http/serviceWarning.d.ts.map +0 -1
  459. package/dist/routes/config/channels/index.d.ts.map +0 -1
  460. package/dist/routes/config/channels/setup.d.ts.map +0 -1
  461. package/dist/routes/config/channels/table.d.ts.map +0 -1
  462. package/dist/routes/config/http/envelope.d.ts.map +0 -1
  463. package/dist/routes/config/index.d.ts.map +0 -1
  464. package/dist/routes/config/services.d.ts.map +0 -1
  465. package/dist/routes/config/settings.d.ts.map +0 -1
  466. package/dist/routes/debug.d.ts.map +0 -1
  467. package/dist/routes/health.d.ts.map +0 -1
  468. package/dist/routes/hls.d.ts.map +0 -1
  469. package/dist/routes/icons.d.ts.map +0 -1
  470. package/dist/routes/index.d.ts.map +0 -1
  471. package/dist/routes/logs.d.ts.map +0 -1
  472. package/dist/routes/mpegts.d.ts.map +0 -1
  473. package/dist/routes/play.d.ts.map +0 -1
  474. package/dist/routes/playlist.d.ts.map +0 -1
  475. package/dist/routes/root/content.d.ts.map +0 -1
  476. package/dist/routes/root/index.d.ts.map +0 -1
  477. package/dist/routes/root/scripts/channels.d.ts.map +0 -1
  478. package/dist/routes/root/scripts/clientEscape.d.ts.map +0 -1
  479. package/dist/routes/root/scripts/clientUrl.d.ts.map +0 -1
  480. package/dist/routes/root/scripts/config.d.ts.map +0 -1
  481. package/dist/routes/root/scripts/index.d.ts.map +0 -1
  482. package/dist/routes/root/scripts/shared.d.ts.map +0 -1
  483. package/dist/routes/root/scripts/status.d.ts.map +0 -1
  484. package/dist/routes/root/scripts/status.handlers.d.ts.map +0 -1
  485. package/dist/routes/root/styles.d.ts.map +0 -1
  486. package/dist/routes/services.d.ts.map +0 -1
  487. package/dist/routes/sse.d.ts.map +0 -1
  488. package/dist/routes/streams.d.ts.map +0 -1
  489. package/dist/routes/theme.d.ts.map +0 -1
  490. package/dist/routes/ui.d.ts.map +0 -1
  491. package/dist/routes/upgrade.d.ts.map +0 -1
  492. package/dist/service/commands.context.d.ts.map +0 -1
  493. package/dist/service/commands.d.ts.map +0 -1
  494. package/dist/service/generators.context.d.ts.map +0 -1
  495. package/dist/service/generators.d.ts.map +0 -1
  496. package/dist/service/index.d.ts.map +0 -1
  497. package/dist/streaming/captureLock.d.ts.map +0 -1
  498. package/dist/streaming/captureSession.d.ts.map +0 -1
  499. package/dist/streaming/clients.d.ts.map +0 -1
  500. package/dist/streaming/codec.d.ts.map +0 -1
  501. package/dist/streaming/fmp4Segmenter.d.ts.map +0 -1
  502. package/dist/streaming/hls.d.ts.map +0 -1
  503. package/dist/streaming/hlsResume.d.ts.map +0 -1
  504. package/dist/streaming/hlsSegments.d.ts.map +0 -1
  505. package/dist/streaming/lifecycle.d.ts.map +0 -1
  506. package/dist/streaming/monitor.d.ts.map +0 -1
  507. package/dist/streaming/mp4Parser.d.ts.map +0 -1
  508. package/dist/streaming/mpegts.d.ts.map +0 -1
  509. package/dist/streaming/playlistBuilder.d.ts.map +0 -1
  510. package/dist/streaming/preroll.d.ts.map +0 -1
  511. package/dist/streaming/pretune.d.ts.map +0 -1
  512. package/dist/streaming/pretuneTimers.d.ts.map +0 -1
  513. package/dist/streaming/recovery.d.ts.map +0 -1
  514. package/dist/streaming/registry.d.ts.map +0 -1
  515. package/dist/streaming/setup.d.ts.map +0 -1
  516. package/dist/streaming/showInfo.d.ts.map +0 -1
  517. package/dist/streaming/statusEmitter.d.ts.map +0 -1
  518. package/dist/types/channels.d.ts.map +0 -1
  519. package/dist/types/config.d.ts.map +0 -1
  520. package/dist/types/index.d.ts.map +0 -1
  521. package/dist/types/profiles.d.ts.map +0 -1
  522. package/dist/types/selection.d.ts.map +0 -1
  523. package/dist/types/shared.d.ts.map +0 -1
  524. package/dist/types/streaming.d.ts.map +0 -1
  525. package/dist/upgrade/commands.context.d.ts.map +0 -1
  526. package/dist/upgrade/commands.d.ts.map +0 -1
  527. package/dist/upgrade/detection.context.d.ts.map +0 -1
  528. package/dist/upgrade/detection.d.ts.map +0 -1
  529. package/dist/upgrade/index.d.ts.map +0 -1
  530. package/dist/upgrade/lifecycle.context.d.ts.map +0 -1
  531. package/dist/upgrade/lifecycle.d.ts.map +0 -1
  532. package/dist/upgrade/pathHandle.d.ts.map +0 -1
  533. package/dist/utils/bootSession.context.d.ts.map +0 -1
  534. package/dist/utils/bootSession.d.ts.map +0 -1
  535. package/dist/utils/chromeFetch.d.ts.map +0 -1
  536. package/dist/utils/cliOutput.d.ts.map +0 -1
  537. package/dist/utils/clock.d.ts +0 -15
  538. package/dist/utils/clock.d.ts.map +0 -1
  539. package/dist/utils/clock.js +0 -31
  540. package/dist/utils/clock.js.map +0 -1
  541. package/dist/utils/debugFilter.d.ts.map +0 -1
  542. package/dist/utils/delay.d.ts.map +0 -1
  543. package/dist/utils/errors.d.ts.map +0 -1
  544. package/dist/utils/evaluate.d.ts.map +0 -1
  545. package/dist/utils/ffmpeg.context.d.ts.map +0 -1
  546. package/dist/utils/ffmpeg.d.ts.map +0 -1
  547. package/dist/utils/fileLogger.d.ts.map +0 -1
  548. package/dist/utils/format.d.ts.map +0 -1
  549. package/dist/utils/index.d.ts.map +0 -1
  550. package/dist/utils/logEmitter.d.ts.map +0 -1
  551. package/dist/utils/logger.d.ts.map +0 -1
  552. package/dist/utils/m3u.d.ts.map +0 -1
  553. package/dist/utils/markup.d.ts.map +0 -1
  554. package/dist/utils/memo.d.ts.map +0 -1
  555. package/dist/utils/morganStream.d.ts.map +0 -1
  556. package/dist/utils/network.d.ts.map +0 -1
  557. package/dist/utils/never.d.ts.map +0 -1
  558. package/dist/utils/pid.d.ts.map +0 -1
  559. package/dist/utils/platform.d.ts.map +0 -1
  560. package/dist/utils/processInspector.context.d.ts.map +0 -1
  561. package/dist/utils/processInspector.d.ts.map +0 -1
  562. package/dist/utils/retry.d.ts.map +0 -1
  563. package/dist/utils/runtimeIdentity.context.d.ts.map +0 -1
  564. package/dist/utils/runtimeIdentity.d.ts.map +0 -1
  565. package/dist/utils/sanitize.d.ts.map +0 -1
  566. package/dist/utils/streamContext.d.ts.map +0 -1
  567. package/dist/utils/timing.d.ts.map +0 -1
  568. package/dist/utils/version.d.ts.map +0 -1
@@ -2,8 +2,9 @@
2
2
  *
3
3
  * consent.ts: Automatic consent-overlay and interstitial handling for externally navigated pages in PrismCast.
4
4
  */
5
- import { LOG, delay, realClock } from "../utils/index.js";
5
+ import { LOG, pollUntil } from "../utils/index.js";
6
6
  import { CONFIG } from "../config/index.js";
7
+ import { systemClock } from "homebridge-plugin-utils";
7
8
  /* This module is the single source of truth for getting consent overlays and interstitials out of the way on any page PrismCast navigates on the viewer's behalf -
8
9
  * a tune's channel-selection walk and video wait, a discovery or precache walk, a static capture. Each distinct overlay class is handled with its own correct
9
10
  * action, because "consent overlay" is not one homogeneous pattern:
@@ -173,16 +174,18 @@ export function locateSelectorCoordinate(sel) {
173
174
  * element is absent, has zero layout size, or is covered and the in-page click finds nothing, so callers can keep polling.
174
175
  * @param page - The Puppeteer page.
175
176
  * @param selector - The CSS selector for the element to click.
177
+ * @param clock - The clock the settle before the dispatch sleeps on - the poll's clock, so one timeline drives the click physics and the cadence around it.
178
+ * Defaults to the system clock, so a caller outside a poll, such as a provider route clicking its own guide, passes nothing.
176
179
  * @returns True if the element was found and clicked.
177
180
  */
178
- async function clickSelectorByCoordinate(page, selector) {
181
+ export async function clickSelectorByCoordinate(page, selector, clock = systemClock) {
179
182
  const target = await page.evaluate(locateSelectorCoordinate, selector);
180
183
  if (!target) {
181
184
  return false;
182
185
  }
183
186
  // Brief settle delay after scrolling, mirroring the shared scrollAndClick helper, before dispatching the real pointer-event chain. This paces real page physics
184
- // inside an action and is exercised only when a click actually dispatches, so it stays on delay() rather than the injected poll clock.
185
- await delay(SCROLL_SETTLE_DELAY);
187
+ // inside an action and is exercised only when a click actually dispatches. It runs on the poll's clock, so a test drives it with the cadence.
188
+ await clock.delay(SCROLL_SETTLE_DELAY);
186
189
  /* The hit test sits between the settle and the dispatch because it has to read the layout the click will land on: the resolver measured its coordinates before the
187
190
  * scroll settled, and once capture is established the video and its ancestors are lifted above the rest of the page, so a banner that appears afterwards sits
188
191
  * beneath them at those coordinates and the pointer click lands on the video. When the target is covered, the in-page synthetic click reaches the element whatever
@@ -350,7 +353,7 @@ export async function consentOverlayPresent(page) {
350
353
  * @returns The tick outcome - "gate" when an embed gate was accepted, "stop" when the poll should end, otherwise "continue".
351
354
  */
352
355
  async function runOverlayTick(page, profile, options) {
353
- const { policy, signal, state } = options;
356
+ const { clock, policy, signal, state } = options;
354
357
  try {
355
358
  // Reject any known cookie-consent banner, when the phase permits it. Each vendor is acted on at most once.
356
359
  if (policy.cmpReject) {
@@ -359,7 +362,7 @@ async function runOverlayTick(page, profile, options) {
359
362
  continue;
360
363
  }
361
364
  // eslint-disable-next-line no-await-in-loop
362
- const rejected = await clickSelectorByCoordinate(page, vendor.reject);
365
+ const rejected = await clickSelectorByCoordinate(page, vendor.reject, clock);
363
366
  if (rejected) {
364
367
  state.handledVendors.add(vendor.vendor);
365
368
  logAutoDismiss("cookie-consent", { selector: vendor.reject, vendor: vendor.vendor });
@@ -375,9 +378,9 @@ async function runOverlayTick(page, profile, options) {
375
378
  if (policy.embedGate) {
376
379
  const gate = await locateEmbedGate(page, true);
377
380
  if (gate) {
378
- // The settle after locateEmbedGate's scroll paces real page physics inside an action, exercised only when an accept actually dispatches - so it stays on
379
- // delay() rather than the injected poll clock, exactly like the coordinate-click settle.
380
- await delay(SCROLL_SETTLE_DELAY);
381
+ // The settle after locateEmbedGate's scroll paces real page physics inside an action and is exercised only when an accept actually dispatches. It runs on
382
+ // the poll's clock, so one virtual timeline drives a tick's click physics and the cadence around it.
383
+ await clock.delay(SCROLL_SETTLE_DELAY);
381
384
  await page.mouse.click(gate.x, gate.y);
382
385
  logAutoDismiss("embed-gate", { label: gate.label });
383
386
  return "gate";
@@ -423,48 +426,30 @@ async function runOverlayTick(page, profile, options) {
423
426
  * modals on any externally navigated page. The phase declares which of those actions are safe and how long the poll may run; the caller's abort signal stops it as
424
427
  * soon as its phase settles.
425
428
  *
426
- * When an embedded-player consent gate is accepted (only reachable in the videoWait phase), onEmbedGateAccepted() is invoked and the poll stops, because the gate's
427
- * acceptance only takes effect on a fresh load - the caller abandons the in-flight wait and reloads.
429
+ * The handling is one call to the poll policy: a tick is the read, a tick result other than "continue" satisfies the predicate, and the window and the abort are
430
+ * the policy's to enforce. When an embedded-player consent gate is accepted (only reachable in the videoWait phase), onEmbedGateAccepted() is invoked and the poll
431
+ * stops, because the gate's acceptance only takes effect on a fresh load - the caller abandons the in-flight wait and reloads.
428
432
  * @param page - The Puppeteer page.
429
433
  * @param profile - The resolved site profile.
430
434
  * @param options - The phase, an optional clock and abort signal, and (videoWait only) the embed-gate callback. See StartOverlayHandlingOptions.
431
435
  */
432
436
  export async function startOverlayHandling(page, profile, options) {
433
- const { clock = realClock, phase, signal } = options;
437
+ const { clock = systemClock, phase, signal } = options;
434
438
  // Capture the gate callback once, while the union is narrowed: only the videoWait arm carries it. Every other phase forbids the accept, so the tick never returns
435
439
  // "gate" for them and this stays undefined.
436
440
  const onGate = (options.phase === "videoWait") ? options.onEmbedGateAccepted : undefined;
437
441
  const policy = PHASE_POLICY[phase];
438
442
  const state = { dismissSelector: "armed", handledVendors: new Set() };
439
- /* Resolve the poll window from the phase's policy: a fixed millisecond budget, the profile-derived video-wait window for the phases whose timing tracks the wait,
440
- * or an infinite deadline for a phase whose only terminator is its caller's abort. One time origin end to end (clock.now() for both the deadline and the loop
441
- * condition), because realClock.now() is performance.now()-based - a half-migration that mixed it with Date.now() would invert the loop condition and zero-tick
442
- * every poll. An infinite deadline is safe because the loop still checks the signal on entry and after every sleep, so the abort ends it within one tick.
443
+ /* The phase's window is the poll's ceiling: a fixed millisecond budget, the profile-derived video-wait window for the phases whose timing tracks the wait, or an
444
+ * infinite ceiling for a phase whose only terminator is its caller's abort - a ceiling the policy never reaches, so the signal is what ends the poll. The signal
445
+ * is checked before every tick and ends a cadence sleep from inside it, and the tick checks it between its own action groups. A "gate" tick signals the caller
446
+ * and a "stop" tick ends the poll; an aborted outcome needs no branch of its own, because the caller has already stopped caring about the answer.
443
447
  */
444
- const deadline = clock.now() + resolveWindow(policy.window, profile);
445
- let firstCheck = true;
446
- while (clock.now() < deadline) {
447
- if (signal?.aborted) {
448
- return;
449
- }
450
- // The first check is immediate; subsequent checks are spaced by the poll interval.
451
- if (!firstCheck) {
452
- // eslint-disable-next-line no-await-in-loop
453
- await clock.sleep(OVERLAY_POLL_INTERVAL);
454
- if (signal?.aborted) {
455
- return;
456
- }
457
- }
458
- firstCheck = false;
459
- // eslint-disable-next-line no-await-in-loop
460
- const result = await runOverlayTick(page, profile, { policy, signal, state });
461
- if (result === "gate") {
462
- onGate?.();
463
- return;
464
- }
465
- if (result === "stop") {
466
- return;
467
- }
448
+ const outcome = await pollUntil({ cadenceMs: OVERLAY_POLL_INTERVAL, ceilingMs: resolveWindow(policy.window, profile), clock,
449
+ read: () => runOverlayTick(page, profile, { clock, policy, signal, state }), signal,
450
+ until: (result) => result !== "continue" });
451
+ if ((outcome.status === "satisfied") && (outcome.value === "gate")) {
452
+ onGate?.();
468
453
  }
469
454
  }
470
455
  //# sourceMappingURL=consent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/browser/consent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/browser/consent.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,3 @@ export declare function setGpuCapabilities(capabilities: GpuCapabilities): void;
18
18
  * @returns The GPU capabilities, or null before detection.
19
19
  */
20
20
  export declare function getGpuCapabilities(): Nullable<GpuCapabilities>;
21
- //# sourceMappingURL=display.d.ts.map
@@ -1,3 +1,4 @@
1
+ import type { Clock } from "homebridge-plugin-utils";
1
2
  import type { Nullable } from "../types/index.ts";
2
3
  import type { Page } from "puppeteer-core";
3
4
  /**
@@ -28,6 +29,7 @@ export interface ObservedHlsMediaPlaylist {
28
29
  * Options accepted by observeHlsPlaylists(). The callback fires once per unique HLS playlist URL observed during the observer's lifetime.
29
30
  */
30
31
  export interface HlsPlaylistObserverOptions {
32
+ readonly clock?: Clock;
31
33
  readonly logCategory: string;
32
34
  readonly onPlaylist: (playlist: ObservedHlsPlaylist) => void;
33
35
  }
@@ -48,8 +50,7 @@ export interface HlsPlaylistObserver extends Disposable {
48
50
  * Returns null when the underlying tab network observer could not be installed (page closed, root CDP session creation failed).
49
51
  *
50
52
  * @param page - The puppeteer page to observe.
51
- * @param options - Observer options including the playlist callback and the debug log category.
53
+ * @param options - Observer options: the playlist callback, the debug log category, and the clock the body fetch's bound arms on.
52
54
  * @returns The observer handle, or null if installation failed.
53
55
  */
54
56
  export declare function observeHlsPlaylists(page: Page, options: HlsPlaylistObserverOptions): Promise<Nullable<HlsPlaylistObserver>>;
55
- //# sourceMappingURL=hlsPlaylistObserver.d.ts.map
@@ -2,9 +2,10 @@
2
2
  *
3
3
  * hlsPlaylistObserver.ts: HLS-aware observer layered on top of the tab-wide network observer.
4
4
  */
5
- import { LOG, chromeFetch } from "../utils/index.js";
5
+ import { LOG, chromeFetch, timeoutSignal } from "../utils/index.js";
6
6
  import { classifyHlsPlaylist, extractChildPlaylistUrls, isLiveMediaPlaylist } from "../native/probe.js";
7
7
  import { observeTabResponses } from "./tabNetworkObserver.js";
8
+ import { systemClock } from "homebridge-plugin-utils";
8
9
  /* This module is the HLS-aware layer on top of tabNetworkObserver. Its job is to deliver every recognized HLS playlist (URL + kind) observed anywhere in the tab
9
10
  * to a single callback. It encapsulates:
10
11
  *
@@ -37,11 +38,11 @@ const MANIFEST_BODY_FETCH_TIMEOUT = 5000;
37
38
  * Returns null when the underlying tab network observer could not be installed (page closed, root CDP session creation failed).
38
39
  *
39
40
  * @param page - The puppeteer page to observe.
40
- * @param options - Observer options including the playlist callback and the debug log category.
41
+ * @param options - Observer options: the playlist callback, the debug log category, and the clock the body fetch's bound arms on.
41
42
  * @returns The observer handle, or null if installation failed.
42
43
  */
43
44
  export async function observeHlsPlaylists(page, options) {
44
- const { logCategory, onPlaylist } = options;
45
+ const { clock = systemClock, logCategory, onPlaylist } = options;
45
46
  let disposed = false;
46
47
  // Wire-arrival sequence counter. Each eligible unique URL is assigned the next ordinal synchronously at the dedup gate - before its body fetch begins - so the
47
48
  // ordinal reflects the order responses arrived on the wire rather than the order their independent, racing body fetches happen to resolve. Sequences start at 1,
@@ -75,8 +76,9 @@ export async function observeHlsPlaylists(page, options) {
75
76
  // rather than the order its body fetch resolves against every other in-flight fetch. The local is carried across the fetch and is delivered on the observation.
76
77
  const sequence = ++sequenceCounter;
77
78
  LOG.debug(logCategory, "Observed .m3u8 response (seq %s): %s.", sequence, url.slice(0, 120));
79
+ const bound = timeoutSignal(MANIFEST_BODY_FETCH_TIMEOUT, { clock });
78
80
  try {
79
- const response = await chromeFetch(url, { signal: AbortSignal.timeout(MANIFEST_BODY_FETCH_TIMEOUT) });
81
+ const response = await chromeFetch(url, { signal: bound.signal });
80
82
  if (!response.ok) {
81
83
  LOG.debug(logCategory, "Manifest fetch returned HTTP %s for %s.", response.status, url.slice(0, 120));
82
84
  return;
@@ -108,6 +110,9 @@ export async function observeHlsPlaylists(page, options) {
108
110
  catch (error) {
109
111
  LOG.debug(logCategory, "Could not fetch .m3u8 body: %s.", String(error));
110
112
  }
113
+ finally {
114
+ bound.cancel();
115
+ }
111
116
  };
112
117
  const tabObserver = await observeTabResponses(page, {
113
118
  onResponse: (response) => { void handleResponse(response.url); }
@@ -1 +1 @@
1
- {"version":3,"file":"hlsPlaylistObserver.js","sourceRoot":"","sources":["../../src/browser/hlsPlaylistObserver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hlsPlaylistObserver.js","sourceRoot":"","sources":["../../src/browser/hlsPlaylistObserver.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import type { Browser, LaunchOptions, Page } from "puppeteer-core";
2
2
  import type { BrowserPurpose, CaptureImpairment } from "./browserSupervisor.ts";
3
- import type { Clock, ProcessInfo } from "../utils/index.ts";
4
3
  import { clearLoginState, isLoginModeActive } from "./login.ts";
5
4
  import { getAllStreams } from "../streaming/registry.ts";
6
5
  import { getCachedTabId } from "./tabSelection.ts";
6
+ import type { Clock } from "homebridge-plugin-utils";
7
7
  import type { Nullable } from "../types/index.ts";
8
+ import type { ProcessInfo } from "../utils/index.ts";
8
9
  import type { WindowPlacement } from "./cdp.ts";
9
10
  type CaptureProbe = (browser: Browser) => Promise<void>;
10
11
  /**
@@ -13,6 +14,14 @@ type CaptureProbe = (browser: Browser) => Promise<void>;
13
14
  * @param probe - The probe to run against a freshly-launched browser; it resolves when the browser can capture and rejects when it cannot.
14
15
  */
15
16
  export declare function setCaptureProbe(probe: CaptureProbe): void;
17
+ type StreamTerminator = (streamId: number, channelName: string, reason: string) => void;
18
+ /**
19
+ * Injects the authoritative stream terminator used when browser readiness is lost. Called once from streaming/lifecycle.ts at module load. Separating the wiring
20
+ * from the call keeps browser/index.ts free of a streaming-layer import.
21
+ * @param terminator - The function that tears down one stream and all of the resources it owns.
22
+ */
23
+ export declare function setStreamTerminator(terminator: StreamTerminator): void;
24
+ export type BrowserRestartCause = "impairment" | "maintenance";
16
25
  /**
17
26
  * Returns true if graceful shutdown is in progress.
18
27
  */
@@ -219,14 +228,17 @@ export declare function mirrorPlacement(placement: WindowPlacement): {
219
228
  /**
220
229
  * Opens a page for a channel guide discovery walk in a browser window of its own, and marks it as belonging to that window.
221
230
  *
222
- * A document renders only while it is the active tab of a window that is not minimized, and the shared window rests minimized whenever nothing is capturing and
223
- * no sign-in holds it on screen, with its selected tab belonging to the user. A guide walk needs its page to render - an observer-driven channel rail fills its
224
- * tiles from rendering updates, and a virtualized grid re-renders as the walk scrolls it - yet it is never captured, so it has no claim on the shared window's
225
- * presentation and no business moving the user's selection. Its own window resolves both: the page is the active tab there from the moment it exists.
231
+ * A document renders only while Chrome presents it: the active tab of a window the desktop is showing, or a page Chrome counts as captured. The shared window
232
+ * rests minimized whenever nothing is capturing and no sign-in holds it on screen, with its selected tab belonging to the user. A guide walk needs its page to
233
+ * render - an observer-driven channel rail fills its tiles from rendering updates, a virtualized grid re-renders as the walk scrolls it, and every wait the walk
234
+ * makes polls on the page's animation frames - yet it is never captured, so it has no claim on the shared window's presentation and no business moving the
235
+ * user's selection. A window of its own resolves the tab half: the page is that window's active tab from the moment it exists. The window is created in the
236
+ * background, so Chrome shows it inactive and moves no focus (measured 2026-08-31), and such a window's document is one Chrome does not present on its own: it
237
+ * reports itself hidden and unfocused and delivers no animation frame beyond a document load's first ones (measured 2026-09-13). Focus emulation resolves the
238
+ * presentation half, for the page's whole life - Puppeteer's own emulateFocusedPage carries the mechanism, on the page's own session.
226
239
  *
227
- * The window is created in the background, so Chrome shows it inactive and moves no focus (measured 2026-08-31), and at the shared window's own placement, so
228
- * the window placement Chrome persists for the profile never changes - readWindowPlacement carries the reasoning. The caller declares the layout surface on
229
- * the page and owns its registration, and closing the page closes the window with it.
240
+ * The window opens at the shared window's own placement, so the window placement Chrome persists for the profile never changes - readWindowPlacement carries
241
+ * the reasoning. The caller declares the layout surface on the page and owns its registration, and closing the page closes the window with it.
230
242
  * @param browser - The browser to open the window in.
231
243
  * @returns The page, as the active tab of its own window.
232
244
  */
@@ -250,7 +262,7 @@ export declare function createDiscoveryPage(browser: Browser): Promise<Page>;
250
262
  * @param page - The capture page this callback re-affirms.
251
263
  * @param reaffirm - The re-issue to invoke. A parameter rather than a direct call so the callback's behavior can be driven on its own: what it does with the page
252
264
  * it was built for, what schedule it keeps, and what it does with a rejection, is the whole of its contract.
253
- * @param clock - The time source the ladder's waits run on. Defaults to realClock.
265
+ * @param clock - The time source the ladder's waits run on. Defaults to the system clock.
254
266
  * @returns The callback, which never rejects. Its promise settles once the ladder is spent, which the page-side listener does not wait on.
255
267
  */
256
268
  export declare function makeFocusReaffirmCallback(page: Page, reaffirm: (page: Page) => Promise<void>, clock?: Clock): () => Promise<void>;
@@ -294,18 +306,23 @@ export declare function healActivatedCaptureTab(tabId: number, deps?: {
294
306
  readonly getCachedTabId: typeof getCachedTabId;
295
307
  }): void;
296
308
  /**
297
- * Records that a still-connected browser can no longer start captures - a mid-life capture death that no "disconnected" event would surface - and schedules the
309
+ * Records that a still-connected browser can no longer start captures - a mid-life capture death that no "disconnected" event would surface - and runs the
298
310
  * relaunch that cures it. This is the single recovery action for a browser that is alive and still serving: the mark lives on the supervisor's ready state, so its
299
311
  * running captures continue untouched, new stream requests are refused at acquire() with a 503 back-off, the recovery ladder stops offering tab replacement, and
300
- * the relaunch waits for the registry to empty. Exported for the streaming layer to call once its probe or its wedge has produced the verdict.
312
+ * the relaunch waits until nothing depends on the browser. Exported for the streaming layer to call once its probe or its wedge has produced the verdict.
313
+ *
314
+ * The returned promise settles once the relaunch this mark triggered has settled, which is what a caller that means to use the fresh browser awaits: the teardown
315
+ * holds the supervisor in its draining state, where acquire() rejects rather than joins, so acquiring any earlier draws that rejection instead of the new
316
+ * instance. A caller with nothing waiting on the outcome voids it and the relaunch proceeds on its own.
301
317
  *
302
318
  * The restart trigger uses this function's return value rather than the supervisor's transition observer, deliberately. The observer runs inside transition(), so a
303
319
  * restart begun there would call noteReadinessLost re-entrantly while the marking transition's notification is still on the stack. The observer stays a reporter -
304
320
  * the alarm and the status emit - and the caller that holds the verdict acts on it once the transition has completed.
305
321
  * @param browser - The specific browser instance the caller verified as unable to start captures.
306
322
  * @param reason - A short description of the evidence behind the verdict, carried in the alarm log and the impairment record.
323
+ * @returns A promise settling once the relaunch this mark triggered has settled, or at once when the verdict landed on nothing.
307
324
  */
308
- export declare function noteBrowserCaptureImpaired(browser: Browser, reason: string): void;
325
+ export declare function noteBrowserCaptureImpaired(browser: Browser, reason: string): Promise<void>;
309
326
  /**
310
327
  * Provides access to the capture-ready browser, launching one if needed. This is the single gated entry point for all browser access: it delegates to the
311
328
  * supervisor's acquire(), which returns the ready browser, joins an in-flight launch (single-flight, so concurrent callers never contend on Chrome's profile lock),
@@ -363,33 +380,67 @@ export declare function closeBrowser(): Promise<void>;
363
380
  * 2. Exclude pages associated with active streams, and pages an operation still holds in flight
364
381
  * 3. Apply a grace period before closing (to handle race conditions)
365
382
  * 4. Preserve at least one page to keep the browser alive
383
+ * @param now - The instant the sweep judges staleness against, read from the interval's own clock so the staleness clocks this sweep starts and the ones it
384
+ * later reads are stamped on one time source.
366
385
  */
367
- export declare function cleanupStalePages(): Promise<void>;
386
+ export declare function cleanupStalePages(now: number): Promise<void>;
368
387
  /**
369
- * Starts the periodic stale page cleanup interval. This should be called once during server startup, after the browser is initialized. The interval runs
370
- * indefinitely until stopStalePageCleanup() is called (typically during graceful shutdown).
388
+ * Starts the periodic stale page cleanup. This should be called once during server startup, after the browser is initialized. The sweep runs indefinitely until
389
+ * stopStalePageCleanup() is called (typically during graceful shutdown). A second start while one is running changes nothing.
390
+ * @param clock - The clock the sweep's interval arms on and whose reading each sweep judges staleness against, so the cadence and the judgment share one time
391
+ * source. Defaults to the system clock.
371
392
  */
372
- export declare function startStalePageCleanup(): void;
393
+ export declare function startStalePageCleanup(clock?: Clock): void;
373
394
  /**
374
- * Stops the stale page cleanup interval. This should be called during graceful shutdown to prevent the cleanup from running after we've started shutting down
375
- * the browser and streams.
395
+ * Stops the periodic stale page cleanup. This should be called during graceful shutdown to prevent the sweep from running after we've started shutting down the
396
+ * browser and streams. Disposing the registry drains the interval, and a stop with nothing running is a no-op.
376
397
  */
377
398
  export declare function stopStalePageCleanup(): void;
399
+ /**
400
+ * The registry facts a restart's idleness decision is made from. One shape, read by readRestartFacts and judged by isBrowserIdleForRestart, so the decision stays
401
+ * a pure function of stated facts rather than of whatever each guard happened to read.
402
+ */
403
+ interface RestartFacts {
404
+ readonly establishedStreams: boolean;
405
+ readonly inFlightPages: number;
406
+ readonly streamCount: number;
407
+ }
408
+ /**
409
+ * Decides whether the browser may be torn down for the given cause, from facts read at the call. Each cause asks a different question of the same registry, so
410
+ * the decision is stated once here rather than spelled out at each guard.
411
+ *
412
+ * Maintenance is opportunistic housekeeping, so it waits for an empty registry outright: a pending entry is a tune in progress, and replacing the browser under
413
+ * one would fail it for nothing better than a fresher instance. Impairment is a repair the tunes themselves are waiting on, so it asks the narrower question of
414
+ * what a teardown would actually destroy - a stream established on this browser, whose entry holds its page, or a page an operation still holds in flight. A tune
415
+ * refused a capture start holds neither while it waits for the relaunch, so the very pending entry that maintenance would defer to is not a reason to leave an
416
+ * unusable browser in place. A tune that has acquired the browser but not yet opened its page falls outside every dependency source for the same reason and
417
+ * deliberately so: it holds nothing a relaunch would destroy, neither a page nor a capture, and its own capture start would meet the impaired browser in any
418
+ * case, so the relaunch may run under it.
419
+ * @param cause - Why the restart wants to run.
420
+ * @param facts - The registry facts read at the call.
421
+ * @returns True when the browser may be torn down for this cause.
422
+ */
423
+ export declare function isBrowserIdleForRestart(cause: BrowserRestartCause, facts: RestartFacts): boolean;
378
424
  /**
379
425
  * Relaunches a browser that can no longer start captures, as soon as nothing depends on it. Every trigger routes here - the mark itself, each stream termination,
380
426
  * and the periodic restart check as the backstop for a moment when the other two could not act (login mode above all) - so the decision lives in one place rather
381
427
  * than being re-derived by each. Idleness rather than age is the condition, because the mark makes the browser useless for new tunes immediately while its running
382
- * captures are still worth finishing, so the earliest safe moment is exactly the moment the last of them ends.
428
+ * captures are still worth finishing, so the earliest safe moment is exactly the moment the last thing depending on this browser lets go of it.
429
+ *
430
+ * The returned promise settles once the relaunch has settled, for the caller that goes on to acquire the fresh browser; a trigger with nothing waiting on the
431
+ * outcome voids it. An early return resolves at once, because there is nothing for such a caller to wait for.
432
+ * @returns A promise settling once the relaunch has settled, or at once when no relaunch runs.
383
433
  */
384
- export declare function restartBrowserIfImpairedAndIdle(): void;
434
+ export declare function restartBrowserIfImpairedAndIdle(): Promise<void>;
385
435
  /**
386
- * Starts the periodic browser restart eligibility check. This should be called once during server startup, after the browser is initialized. The interval runs
387
- * indefinitely until stopBrowserRestartChecking() is called (typically during graceful shutdown).
436
+ * Starts the periodic browser restart eligibility check. This should be called once during server startup, after the browser is initialized. The check runs
437
+ * indefinitely until stopBrowserRestartChecking() is called (typically during graceful shutdown). A second start while one is running changes nothing.
438
+ * @param clock - The clock the check's interval and the quiet period it arms both run on. Defaults to the system clock.
388
439
  */
389
- export declare function startBrowserRestartChecking(): void;
440
+ export declare function startBrowserRestartChecking(clock?: Clock): void;
390
441
  /**
391
- * Stops the browser restart checking interval and cancels any pending quiet timer. This should be called during graceful shutdown to prevent a restart from
392
- * racing with server shutdown.
442
+ * Stops the periodic browser restart eligibility check. This should be called during graceful shutdown to prevent a restart from racing with server shutdown.
443
+ * Disposing the registry drains the check and any pending quiet period together, and a stop with nothing running is a no-op.
393
444
  */
394
445
  export declare function stopBrowserRestartChecking(): void;
395
446
  /**
@@ -402,4 +453,3 @@ export declare function stopBrowserRestartChecking(): void;
402
453
  export declare function prepareExtension(): Promise<void>;
403
454
  export { acquireCaptureStream } from "./tabCapture.ts";
404
455
  export type { CaptureStream, CaptureStreamOptions } from "./tabCapture.ts";
405
- //# sourceMappingURL=index.d.ts.map