prismcast 1.12.1 → 1.14.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 (655) hide show
  1. package/dist/app.d.ts +88 -7
  2. package/dist/app.js +295 -161
  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 +8 -20
  8. package/dist/browser/cdp.js +11 -61
  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 +179 -46
  21. package/dist/browser/index.js +473 -306
  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 +27 -11
  35. package/dist/browser/precaching.js +262 -107
  36. package/dist/browser/precaching.js.map +1 -1
  37. package/dist/browser/tabCapture.d.ts +7 -10
  38. package/dist/browser/tabCapture.js +37 -50
  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 +29 -31
  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/hbo.js +34 -17
  58. package/dist/browser/tuning/hbo.js.map +1 -1
  59. package/dist/browser/tuning/hulu.d.ts +14 -2
  60. package/dist/browser/tuning/hulu.js +144 -21
  61. package/dist/browser/tuning/hulu.js.map +1 -1
  62. package/dist/browser/tuning/shared.d.ts +0 -1
  63. package/dist/browser/tuning/sling.d.ts +0 -1
  64. package/dist/browser/tuning/sling.js +17 -22
  65. package/dist/browser/tuning/sling.js.map +1 -1
  66. package/dist/browser/tuning/spectrum.d.ts +0 -1
  67. package/dist/browser/tuning/thumbnailRow.d.ts +0 -1
  68. package/dist/browser/tuning/tileClick.d.ts +0 -1
  69. package/dist/browser/tuning/xfinity.d.ts +0 -1
  70. package/dist/browser/tuning/youtubeTv.d.ts +0 -1
  71. package/dist/browser/video.d.ts +22 -20
  72. package/dist/browser/video.js +102 -119
  73. package/dist/browser/video.js.map +1 -1
  74. package/dist/browser/windowSync.d.ts +0 -1
  75. package/dist/channels/index.d.ts +0 -1
  76. package/dist/channels/index.js +5 -5
  77. package/dist/channels/index.js.map +1 -1
  78. package/dist/cliHelp.d.ts +11 -0
  79. package/dist/cliHelp.js +148 -0
  80. package/dist/cliHelp.js.map +1 -0
  81. package/dist/config/channelForm.d.ts +0 -1
  82. package/dist/config/channelForm.js +5 -4
  83. package/dist/config/channelForm.js.map +1 -1
  84. package/dist/config/channelIdentity.d.ts +27 -0
  85. package/dist/config/channelIdentity.js +72 -0
  86. package/dist/config/channelIdentity.js.map +1 -0
  87. package/dist/config/channelSort.d.ts +25 -0
  88. package/dist/config/channelSort.js +101 -0
  89. package/dist/config/channelSort.js.map +1 -0
  90. package/dist/config/consistencyProbe.d.ts +2 -5
  91. package/dist/config/consistencyProbe.js +8 -51
  92. package/dist/config/consistencyProbe.js.map +1 -1
  93. package/dist/config/health.d.ts +3 -2
  94. package/dist/config/health.js +41 -28
  95. package/dist/config/health.js.map +1 -1
  96. package/dist/config/index.d.ts +107 -56
  97. package/dist/config/index.js +499 -267
  98. package/dist/config/index.js.map +1 -1
  99. package/dist/config/paths.d.ts +13 -9
  100. package/dist/config/paths.js +21 -25
  101. package/dist/config/paths.js.map +1 -1
  102. package/dist/config/persistence.context.d.ts +0 -1
  103. package/dist/config/persistence.d.ts +57 -12
  104. package/dist/config/persistence.js +127 -44
  105. package/dist/config/persistence.js.map +1 -1
  106. package/dist/config/presets.d.ts +0 -1
  107. package/dist/config/profiles.d.ts +9 -4
  108. package/dist/config/profiles.js +37 -3
  109. package/dist/config/profiles.js.map +1 -1
  110. package/dist/config/providerLineups.d.ts +0 -1
  111. package/dist/config/reactivity.d.ts +60 -37
  112. package/dist/config/reactivity.js +89 -116
  113. package/dist/config/reactivity.js.map +1 -1
  114. package/dist/config/servicePacks.d.ts +0 -1
  115. package/dist/config/services.d.ts +62 -73
  116. package/dist/config/services.js +140 -202
  117. package/dist/config/services.js.map +1 -1
  118. package/dist/config/sites.d.ts +0 -9
  119. package/dist/config/sites.js +5 -40
  120. package/dist/config/sites.js.map +1 -1
  121. package/dist/config/streamSettings.d.ts +24 -0
  122. package/dist/config/streamSettings.js +17 -0
  123. package/dist/config/streamSettings.js.map +1 -0
  124. package/dist/config/userChannels.d.ts +82 -80
  125. package/dist/config/userChannels.js +184 -248
  126. package/dist/config/userChannels.js.map +1 -1
  127. package/dist/config/userConfig.d.ts +225 -59
  128. package/dist/config/userConfig.js +352 -131
  129. package/dist/config/userConfig.js.map +1 -1
  130. package/dist/config/userProfiles.d.ts +2 -3
  131. package/dist/config/userProfiles.js +6 -2
  132. package/dist/config/userProfiles.js.map +1 -1
  133. package/dist/hdhr/channelMap.d.ts +0 -1
  134. package/dist/hdhr/discover.d.ts +7 -2
  135. package/dist/hdhr/discover.js +12 -6
  136. package/dist/hdhr/discover.js.map +1 -1
  137. package/dist/hdhr/getHandlers.d.ts +0 -1
  138. package/dist/hdhr/identity.d.ts +0 -1
  139. package/dist/hdhr/index.d.ts +51 -11
  140. package/dist/hdhr/index.js +108 -112
  141. package/dist/hdhr/index.js.map +1 -1
  142. package/dist/hdhr/protocol.d.ts +0 -1
  143. package/dist/hdhr/tunerState.d.ts +0 -1
  144. package/dist/hdhr/udp.d.ts +11 -5
  145. package/dist/hdhr/udp.js +25 -20
  146. package/dist/hdhr/udp.js.map +1 -1
  147. package/dist/identity.d.ts +0 -1
  148. package/dist/index.d.ts +0 -1
  149. package/dist/index.js +16 -143
  150. package/dist/index.js.map +1 -1
  151. package/dist/native/codecInference.d.ts +5 -4
  152. package/dist/native/codecInference.js +12 -7
  153. package/dist/native/codecInference.js.map +1 -1
  154. package/dist/native/decrypt.d.ts +10 -3
  155. package/dist/native/decrypt.js +9 -5
  156. package/dist/native/decrypt.js.map +1 -1
  157. package/dist/native/index.d.ts +25 -23
  158. package/dist/native/index.js +27 -20
  159. package/dist/native/index.js.map +1 -1
  160. package/dist/native/probe.d.ts +7 -10
  161. package/dist/native/probe.js +40 -36
  162. package/dist/native/probe.js.map +1 -1
  163. package/dist/native/proxy.d.ts +3 -4
  164. package/dist/native/proxy.js +122 -92
  165. package/dist/native/proxy.js.map +1 -1
  166. package/dist/native/tokenExpiry.d.ts +0 -1
  167. package/dist/routes/assets.d.ts +0 -1
  168. package/dist/routes/auth.d.ts +0 -1
  169. package/dist/routes/auth.js +1 -1
  170. package/dist/routes/auth.js.map +1 -1
  171. package/dist/routes/cdp.d.ts +18 -11
  172. package/dist/routes/cdp.js +99 -70
  173. package/dist/routes/cdp.js.map +1 -1
  174. package/dist/routes/channels.d.ts +0 -1
  175. package/dist/routes/clientActions.d.ts +0 -1
  176. package/dist/routes/components.d.ts +23 -6
  177. package/dist/routes/components.js +21 -4
  178. package/dist/routes/components.js.map +1 -1
  179. package/dist/routes/config/channels/endpoints/browse.d.ts +0 -1
  180. package/dist/routes/config/channels/endpoints/browse.js +39 -29
  181. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  182. package/dist/routes/config/channels/endpoints/bulk.d.ts +0 -1
  183. package/dist/routes/config/channels/endpoints/bulk.js +3 -7
  184. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  185. package/dist/routes/config/channels/endpoints/crud.d.ts +0 -1
  186. package/dist/routes/config/channels/endpoints/crud.js +3 -2
  187. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  188. package/dist/routes/config/channels/endpoints/importExport.d.ts +0 -1
  189. package/dist/routes/config/channels/endpoints/importExport.js +7 -3
  190. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  191. package/dist/routes/config/channels/endpoints/predefined.d.ts +0 -1
  192. package/dist/routes/config/channels/endpoints/predefined.js +5 -15
  193. package/dist/routes/config/channels/endpoints/predefined.js.map +1 -1
  194. package/dist/routes/config/channels/endpoints/prefs.d.ts +0 -1
  195. package/dist/routes/config/channels/endpoints/prefs.js +8 -7
  196. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  197. package/dist/routes/config/channels/endpoints/service.d.ts +0 -1
  198. package/dist/routes/config/channels/endpoints/service.js +13 -9
  199. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  200. package/dist/routes/config/channels/endpoints/tags.d.ts +0 -1
  201. package/dist/routes/config/channels/endpoints/tags.js +4 -16
  202. package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
  203. package/dist/routes/config/channels/healthBridge.d.ts +0 -1
  204. package/dist/routes/config/channels/http/handler.d.ts +0 -1
  205. package/dist/routes/config/channels/http/playlistHint.d.ts +0 -1
  206. package/dist/routes/config/channels/http/serviceWarning.d.ts +0 -1
  207. package/dist/routes/config/channels/http/serviceWarning.js +1 -1
  208. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
  209. package/dist/routes/config/channels/index.d.ts +0 -1
  210. package/dist/routes/config/channels/setup.d.ts +0 -1
  211. package/dist/routes/config/channels/table.d.ts +2 -2
  212. package/dist/routes/config/channels/table.js +13 -14
  213. package/dist/routes/config/channels/table.js.map +1 -1
  214. package/dist/routes/config/http/envelope.d.ts +6 -4
  215. package/dist/routes/config/http/envelope.js +18 -5
  216. package/dist/routes/config/http/envelope.js.map +1 -1
  217. package/dist/routes/config/index.d.ts +21 -14
  218. package/dist/routes/config/index.js +49 -35
  219. package/dist/routes/config/index.js.map +1 -1
  220. package/dist/routes/config/services.d.ts +0 -1
  221. package/dist/routes/config/services.js +4 -3
  222. package/dist/routes/config/services.js.map +1 -1
  223. package/dist/routes/config/settings.d.ts +43 -7
  224. package/dist/routes/config/settings.js +227 -126
  225. package/dist/routes/config/settings.js.map +1 -1
  226. package/dist/routes/config/vocabulary.d.ts +24 -0
  227. package/dist/routes/config/vocabulary.js +33 -0
  228. package/dist/routes/config/vocabulary.js.map +1 -0
  229. package/dist/routes/debug.d.ts +0 -1
  230. package/dist/routes/debug.js +28 -13
  231. package/dist/routes/debug.js.map +1 -1
  232. package/dist/routes/health.d.ts +1 -2
  233. package/dist/routes/health.js +5 -2
  234. package/dist/routes/health.js.map +1 -1
  235. package/dist/routes/hls.d.ts +0 -1
  236. package/dist/routes/icons.d.ts +0 -1
  237. package/dist/routes/index.d.ts +0 -1
  238. package/dist/routes/logs.d.ts +3 -2
  239. package/dist/routes/logs.js +4 -2
  240. package/dist/routes/logs.js.map +1 -1
  241. package/dist/routes/mpegts.d.ts +0 -1
  242. package/dist/routes/play.d.ts +0 -1
  243. package/dist/routes/playlist.d.ts +0 -1
  244. package/dist/routes/playlist.js +2 -1
  245. package/dist/routes/playlist.js.map +1 -1
  246. package/dist/routes/root/content.d.ts +0 -1
  247. package/dist/routes/root/content.js +33 -26
  248. package/dist/routes/root/content.js.map +1 -1
  249. package/dist/routes/root/index.d.ts +0 -1
  250. package/dist/routes/root/scripts/channels.d.ts +0 -1
  251. package/dist/routes/root/scripts/channels.js +25 -13
  252. package/dist/routes/root/scripts/channels.js.map +1 -1
  253. package/dist/routes/root/scripts/clientEscape.d.ts +0 -1
  254. package/dist/routes/root/scripts/clientUrl.d.ts +0 -1
  255. package/dist/routes/root/scripts/config.d.ts +1 -2
  256. package/dist/routes/root/scripts/config.js +132 -105
  257. package/dist/routes/root/scripts/config.js.map +1 -1
  258. package/dist/routes/root/scripts/index.d.ts +0 -1
  259. package/dist/routes/root/scripts/shared.d.ts +0 -1
  260. package/dist/routes/root/scripts/shared.js +34 -23
  261. package/dist/routes/root/scripts/shared.js.map +1 -1
  262. package/dist/routes/root/scripts/status.d.ts +0 -1
  263. package/dist/routes/root/scripts/status.handlers.d.ts +8 -14
  264. package/dist/routes/root/scripts/status.handlers.js +38 -23
  265. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  266. package/dist/routes/root/styles.d.ts +0 -1
  267. package/dist/routes/root/styles.js +13 -16
  268. package/dist/routes/root/styles.js.map +1 -1
  269. package/dist/routes/services.d.ts +0 -1
  270. package/dist/routes/services.js +13 -17
  271. package/dist/routes/services.js.map +1 -1
  272. package/dist/routes/sse.d.ts +3 -2
  273. package/dist/routes/sse.js +7 -3
  274. package/dist/routes/sse.js.map +1 -1
  275. package/dist/routes/streams.d.ts +4 -2
  276. package/dist/routes/streams.js +8 -5
  277. package/dist/routes/streams.js.map +1 -1
  278. package/dist/routes/theme.d.ts +0 -1
  279. package/dist/routes/theme.js +12 -12
  280. package/dist/routes/theme.js.map +1 -1
  281. package/dist/routes/ui.d.ts +4 -4
  282. package/dist/routes/ui.js +17 -13
  283. package/dist/routes/ui.js.map +1 -1
  284. package/dist/routes/upgrade.d.ts +0 -1
  285. package/dist/routes/upgrade.js +2 -1
  286. package/dist/routes/upgrade.js.map +1 -1
  287. package/dist/service/commands.context.d.ts +0 -1
  288. package/dist/service/commands.context.js +7 -1
  289. package/dist/service/commands.context.js.map +1 -1
  290. package/dist/service/commands.d.ts +0 -1
  291. package/dist/service/generators.context.d.ts +0 -1
  292. package/dist/service/generators.d.ts +0 -1
  293. package/dist/service/generators.js +12 -9
  294. package/dist/service/generators.js.map +1 -1
  295. package/dist/service/index.d.ts +0 -1
  296. package/dist/streaming/captureLock.d.ts +1 -2
  297. package/dist/streaming/captureLock.js +6 -5
  298. package/dist/streaming/captureLock.js.map +1 -1
  299. package/dist/streaming/captureSession.d.ts +4 -5
  300. package/dist/streaming/captureSession.js +6 -7
  301. package/dist/streaming/captureSession.js.map +1 -1
  302. package/dist/streaming/clients.d.ts +4 -3
  303. package/dist/streaming/clients.js +5 -4
  304. package/dist/streaming/clients.js.map +1 -1
  305. package/dist/streaming/codec.d.ts +12 -3
  306. package/dist/streaming/codec.js +40 -28
  307. package/dist/streaming/codec.js.map +1 -1
  308. package/dist/streaming/fmp4Segmenter.d.ts +16 -5
  309. package/dist/streaming/fmp4Segmenter.js +110 -89
  310. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  311. package/dist/streaming/hls.d.ts +55 -15
  312. package/dist/streaming/hls.js +255 -162
  313. package/dist/streaming/hls.js.map +1 -1
  314. package/dist/streaming/hlsResume.d.ts +42 -16
  315. package/dist/streaming/hlsResume.js +75 -42
  316. package/dist/streaming/hlsResume.js.map +1 -1
  317. package/dist/streaming/hlsSegments.d.ts +9 -7
  318. package/dist/streaming/hlsSegments.js +19 -14
  319. package/dist/streaming/hlsSegments.js.map +1 -1
  320. package/dist/streaming/lifecycle.d.ts +5 -4
  321. package/dist/streaming/lifecycle.js +25 -13
  322. package/dist/streaming/lifecycle.js.map +1 -1
  323. package/dist/streaming/monitor.d.ts +8 -5
  324. package/dist/streaming/monitor.js +109 -93
  325. package/dist/streaming/monitor.js.map +1 -1
  326. package/dist/streaming/mp4Parser.d.ts +29 -5
  327. package/dist/streaming/mp4Parser.js +49 -7
  328. package/dist/streaming/mp4Parser.js.map +1 -1
  329. package/dist/streaming/mpegts.d.ts +0 -1
  330. package/dist/streaming/mpegts.js +23 -7
  331. package/dist/streaming/mpegts.js.map +1 -1
  332. package/dist/streaming/playlistBuilder.d.ts +1 -3
  333. package/dist/streaming/playlistBuilder.js +2 -3
  334. package/dist/streaming/playlistBuilder.js.map +1 -1
  335. package/dist/streaming/preroll.d.ts +76 -30
  336. package/dist/streaming/preroll.js +141 -89
  337. package/dist/streaming/preroll.js.map +1 -1
  338. package/dist/streaming/pretune.d.ts +3 -4
  339. package/dist/streaming/pretune.js +50 -46
  340. package/dist/streaming/pretune.js.map +1 -1
  341. package/dist/streaming/pretuneTimers.d.ts +16 -12
  342. package/dist/streaming/pretuneTimers.js +27 -37
  343. package/dist/streaming/pretuneTimers.js.map +1 -1
  344. package/dist/streaming/recovery.d.ts +36 -7
  345. package/dist/streaming/recovery.js +53 -11
  346. package/dist/streaming/recovery.js.map +1 -1
  347. package/dist/streaming/registry.d.ts +35 -14
  348. package/dist/streaming/registry.js +23 -8
  349. package/dist/streaming/registry.js.map +1 -1
  350. package/dist/streaming/setup.d.ts +66 -25
  351. package/dist/streaming/setup.js +305 -229
  352. package/dist/streaming/setup.js.map +1 -1
  353. package/dist/streaming/showInfo.d.ts +29 -13
  354. package/dist/streaming/showInfo.js +156 -140
  355. package/dist/streaming/showInfo.js.map +1 -1
  356. package/dist/streaming/statusEmitter.d.ts +16 -12
  357. package/dist/streaming/statusEmitter.js +25 -21
  358. package/dist/streaming/statusEmitter.js.map +1 -1
  359. package/dist/types/channels.d.ts +0 -1
  360. package/dist/types/config.d.ts +24 -14
  361. package/dist/types/config.js +5 -1
  362. package/dist/types/config.js.map +1 -1
  363. package/dist/types/index.d.ts +4 -4
  364. package/dist/types/index.js +2 -1
  365. package/dist/types/index.js.map +1 -1
  366. package/dist/types/profiles.d.ts +3 -3
  367. package/dist/types/selection.d.ts +19 -8
  368. package/dist/types/shared.d.ts +0 -1
  369. package/dist/types/streaming.d.ts +12 -6
  370. package/dist/types/streaming.js +12 -5
  371. package/dist/types/streaming.js.map +1 -1
  372. package/dist/upgrade/commands.context.d.ts +0 -1
  373. package/dist/upgrade/commands.d.ts +0 -1
  374. package/dist/upgrade/detection.context.d.ts +0 -1
  375. package/dist/upgrade/detection.d.ts +0 -1
  376. package/dist/upgrade/index.d.ts +0 -1
  377. package/dist/upgrade/lifecycle.context.d.ts +2 -1
  378. package/dist/upgrade/lifecycle.context.js +9 -4
  379. package/dist/upgrade/lifecycle.context.js.map +1 -1
  380. package/dist/upgrade/lifecycle.d.ts +0 -1
  381. package/dist/upgrade/pathHandle.d.ts +0 -1
  382. package/dist/utils/bootSession.context.d.ts +0 -1
  383. package/dist/utils/bootSession.context.js +2 -1
  384. package/dist/utils/bootSession.context.js.map +1 -1
  385. package/dist/utils/bootSession.d.ts +0 -1
  386. package/dist/utils/chromeFetch.d.ts +0 -1
  387. package/dist/utils/cliOutput.d.ts +0 -1
  388. package/dist/utils/debugFilter.d.ts +3 -3
  389. package/dist/utils/debugFilter.js +7 -5
  390. package/dist/utils/debugFilter.js.map +1 -1
  391. package/dist/utils/delay.d.ts +47 -25
  392. package/dist/utils/delay.js +74 -37
  393. package/dist/utils/delay.js.map +1 -1
  394. package/dist/{hdhr → utils}/deviceId.d.ts +1 -2
  395. package/dist/{hdhr → utils}/deviceId.js +11 -29
  396. package/dist/utils/deviceId.js.map +1 -0
  397. package/dist/utils/errors.d.ts +7 -1
  398. package/dist/utils/errors.js +12 -3
  399. package/dist/utils/errors.js.map +1 -1
  400. package/dist/utils/evaluate.d.ts +11 -3
  401. package/dist/utils/evaluate.js +4 -3
  402. package/dist/utils/evaluate.js.map +1 -1
  403. package/dist/utils/ffmpeg.context.d.ts +0 -1
  404. package/dist/utils/ffmpeg.d.ts +0 -1
  405. package/dist/utils/fileLogger.d.ts +26 -14
  406. package/dist/utils/fileLogger.js +89 -49
  407. package/dist/utils/fileLogger.js.map +1 -1
  408. package/dist/utils/format.d.ts +12 -3
  409. package/dist/utils/format.js +29 -11
  410. package/dist/utils/format.js.map +1 -1
  411. package/dist/utils/httpErrors.d.ts +13 -0
  412. package/dist/utils/httpErrors.js +22 -0
  413. package/dist/utils/httpErrors.js.map +1 -0
  414. package/dist/utils/index.d.ts +3 -2
  415. package/dist/utils/index.js +3 -1
  416. package/dist/utils/index.js.map +1 -1
  417. package/dist/utils/logEmitter.d.ts +0 -1
  418. package/dist/utils/logger.d.ts +9 -9
  419. package/dist/utils/logger.js +64 -20
  420. package/dist/utils/logger.js.map +1 -1
  421. package/dist/utils/m3u.d.ts +0 -1
  422. package/dist/utils/markup.d.ts +0 -1
  423. package/dist/utils/markup.js +8 -3
  424. package/dist/utils/markup.js.map +1 -1
  425. package/dist/utils/memo.d.ts +0 -1
  426. package/dist/utils/morganStream.d.ts +0 -1
  427. package/dist/utils/network.d.ts +0 -1
  428. package/dist/utils/never.d.ts +0 -1
  429. package/dist/utils/pid.d.ts +0 -1
  430. package/dist/utils/plainObject.d.ts +6 -0
  431. package/dist/utils/plainObject.js +18 -0
  432. package/dist/utils/plainObject.js.map +1 -0
  433. package/dist/utils/platform.d.ts +0 -1
  434. package/dist/utils/processInspector.context.d.ts +32 -2
  435. package/dist/utils/processInspector.context.js +117 -1
  436. package/dist/utils/processInspector.context.js.map +1 -1
  437. package/dist/utils/processInspector.d.ts +0 -32
  438. package/dist/utils/processInspector.js +10 -117
  439. package/dist/utils/processInspector.js.map +1 -1
  440. package/dist/utils/retry.d.ts +5 -4
  441. package/dist/utils/retry.js +43 -33
  442. package/dist/utils/retry.js.map +1 -1
  443. package/dist/utils/runtimeIdentity.context.d.ts +0 -1
  444. package/dist/utils/runtimeIdentity.context.js +4 -30
  445. package/dist/utils/runtimeIdentity.context.js.map +1 -1
  446. package/dist/utils/runtimeIdentity.d.ts +18 -7
  447. package/dist/utils/runtimeIdentity.js +51 -18
  448. package/dist/utils/runtimeIdentity.js.map +1 -1
  449. package/dist/utils/sanitize.d.ts +0 -1
  450. package/dist/utils/streamContext.d.ts +0 -1
  451. package/dist/utils/timing.d.ts +3 -4
  452. package/dist/utils/timing.js +4 -4
  453. package/dist/utils/timing.js.map +1 -1
  454. package/dist/utils/version.d.ts +5 -4
  455. package/dist/utils/version.js +35 -24
  456. package/dist/utils/version.js.map +1 -1
  457. package/package.json +9 -9
  458. package/dist/app.d.ts.map +0 -1
  459. package/dist/browser/blockedPage.d.ts.map +0 -1
  460. package/dist/browser/browserSupervisor.d.ts.map +0 -1
  461. package/dist/browser/cdp.d.ts.map +0 -1
  462. package/dist/browser/channelSelection.d.ts.map +0 -1
  463. package/dist/browser/consent.d.ts.map +0 -1
  464. package/dist/browser/display.d.ts.map +0 -1
  465. package/dist/browser/hlsPlaylistObserver.d.ts.map +0 -1
  466. package/dist/browser/index.d.ts.map +0 -1
  467. package/dist/browser/launchGovernor.d.ts.map +0 -1
  468. package/dist/browser/login.d.ts.map +0 -1
  469. package/dist/browser/manifestInterceptor.d.ts.map +0 -1
  470. package/dist/browser/pageStaleness.d.ts.map +0 -1
  471. package/dist/browser/precaching.d.ts.map +0 -1
  472. package/dist/browser/tabCapture.d.ts.map +0 -1
  473. package/dist/browser/tabNetworkObserver.d.ts.map +0 -1
  474. package/dist/browser/tabSelection.d.ts.map +0 -1
  475. package/dist/browser/tuning/cache.d.ts.map +0 -1
  476. package/dist/browser/tuning/comcastPolymer.d.ts.map +0 -1
  477. package/dist/browser/tuning/cox.d.ts.map +0 -1
  478. package/dist/browser/tuning/directv.d.ts.map +0 -1
  479. package/dist/browser/tuning/fox.d.ts.map +0 -1
  480. package/dist/browser/tuning/gridSearch.d.ts.map +0 -1
  481. package/dist/browser/tuning/hbo.d.ts.map +0 -1
  482. package/dist/browser/tuning/hulu.d.ts.map +0 -1
  483. package/dist/browser/tuning/shared.d.ts.map +0 -1
  484. package/dist/browser/tuning/sling.d.ts.map +0 -1
  485. package/dist/browser/tuning/spectrum.d.ts.map +0 -1
  486. package/dist/browser/tuning/thumbnailRow.d.ts.map +0 -1
  487. package/dist/browser/tuning/tileClick.d.ts.map +0 -1
  488. package/dist/browser/tuning/xfinity.d.ts.map +0 -1
  489. package/dist/browser/tuning/youtubeTv.d.ts.map +0 -1
  490. package/dist/browser/video.d.ts.map +0 -1
  491. package/dist/browser/windowSync.d.ts.map +0 -1
  492. package/dist/channels/index.d.ts.map +0 -1
  493. package/dist/config/channelForm.d.ts.map +0 -1
  494. package/dist/config/consistencyProbe.d.ts.map +0 -1
  495. package/dist/config/health.d.ts.map +0 -1
  496. package/dist/config/index.d.ts.map +0 -1
  497. package/dist/config/paths.d.ts.map +0 -1
  498. package/dist/config/persistence.context.d.ts.map +0 -1
  499. package/dist/config/persistence.d.ts.map +0 -1
  500. package/dist/config/presets.d.ts.map +0 -1
  501. package/dist/config/profiles.d.ts.map +0 -1
  502. package/dist/config/providerLineups.d.ts.map +0 -1
  503. package/dist/config/reactivity.d.ts.map +0 -1
  504. package/dist/config/servicePacks.d.ts.map +0 -1
  505. package/dist/config/services.d.ts.map +0 -1
  506. package/dist/config/sites.d.ts.map +0 -1
  507. package/dist/config/userChannels.d.ts.map +0 -1
  508. package/dist/config/userConfig.d.ts.map +0 -1
  509. package/dist/config/userProfiles.d.ts.map +0 -1
  510. package/dist/hdhr/channelMap.d.ts.map +0 -1
  511. package/dist/hdhr/deviceId.d.ts.map +0 -1
  512. package/dist/hdhr/deviceId.js.map +0 -1
  513. package/dist/hdhr/discover.d.ts.map +0 -1
  514. package/dist/hdhr/getHandlers.d.ts.map +0 -1
  515. package/dist/hdhr/identity.d.ts.map +0 -1
  516. package/dist/hdhr/index.d.ts.map +0 -1
  517. package/dist/hdhr/protocol.d.ts.map +0 -1
  518. package/dist/hdhr/tunerState.d.ts.map +0 -1
  519. package/dist/hdhr/udp.d.ts.map +0 -1
  520. package/dist/identity.d.ts.map +0 -1
  521. package/dist/index.d.ts.map +0 -1
  522. package/dist/native/codecInference.d.ts.map +0 -1
  523. package/dist/native/decrypt.d.ts.map +0 -1
  524. package/dist/native/index.d.ts.map +0 -1
  525. package/dist/native/probe.d.ts.map +0 -1
  526. package/dist/native/proxy.d.ts.map +0 -1
  527. package/dist/native/tokenExpiry.d.ts.map +0 -1
  528. package/dist/routes/assets.d.ts.map +0 -1
  529. package/dist/routes/auth.d.ts.map +0 -1
  530. package/dist/routes/cdp.d.ts.map +0 -1
  531. package/dist/routes/channels.d.ts.map +0 -1
  532. package/dist/routes/clientActions.d.ts.map +0 -1
  533. package/dist/routes/components.d.ts.map +0 -1
  534. package/dist/routes/config/channels/endpoints/browse.d.ts.map +0 -1
  535. package/dist/routes/config/channels/endpoints/bulk.d.ts.map +0 -1
  536. package/dist/routes/config/channels/endpoints/crud.d.ts.map +0 -1
  537. package/dist/routes/config/channels/endpoints/importExport.d.ts.map +0 -1
  538. package/dist/routes/config/channels/endpoints/predefined.d.ts.map +0 -1
  539. package/dist/routes/config/channels/endpoints/prefs.d.ts.map +0 -1
  540. package/dist/routes/config/channels/endpoints/service.d.ts.map +0 -1
  541. package/dist/routes/config/channels/endpoints/tags.d.ts.map +0 -1
  542. package/dist/routes/config/channels/healthBridge.d.ts.map +0 -1
  543. package/dist/routes/config/channels/http/handler.d.ts.map +0 -1
  544. package/dist/routes/config/channels/http/playlistHint.d.ts.map +0 -1
  545. package/dist/routes/config/channels/http/serviceWarning.d.ts.map +0 -1
  546. package/dist/routes/config/channels/index.d.ts.map +0 -1
  547. package/dist/routes/config/channels/setup.d.ts.map +0 -1
  548. package/dist/routes/config/channels/table.d.ts.map +0 -1
  549. package/dist/routes/config/http/envelope.d.ts.map +0 -1
  550. package/dist/routes/config/index.d.ts.map +0 -1
  551. package/dist/routes/config/services.d.ts.map +0 -1
  552. package/dist/routes/config/settings.d.ts.map +0 -1
  553. package/dist/routes/debug.d.ts.map +0 -1
  554. package/dist/routes/health.d.ts.map +0 -1
  555. package/dist/routes/hls.d.ts.map +0 -1
  556. package/dist/routes/icons.d.ts.map +0 -1
  557. package/dist/routes/index.d.ts.map +0 -1
  558. package/dist/routes/logs.d.ts.map +0 -1
  559. package/dist/routes/mpegts.d.ts.map +0 -1
  560. package/dist/routes/play.d.ts.map +0 -1
  561. package/dist/routes/playlist.d.ts.map +0 -1
  562. package/dist/routes/root/content.d.ts.map +0 -1
  563. package/dist/routes/root/index.d.ts.map +0 -1
  564. package/dist/routes/root/scripts/channels.d.ts.map +0 -1
  565. package/dist/routes/root/scripts/clientEscape.d.ts.map +0 -1
  566. package/dist/routes/root/scripts/clientUrl.d.ts.map +0 -1
  567. package/dist/routes/root/scripts/config.d.ts.map +0 -1
  568. package/dist/routes/root/scripts/index.d.ts.map +0 -1
  569. package/dist/routes/root/scripts/shared.d.ts.map +0 -1
  570. package/dist/routes/root/scripts/status.d.ts.map +0 -1
  571. package/dist/routes/root/scripts/status.handlers.d.ts.map +0 -1
  572. package/dist/routes/root/styles.d.ts.map +0 -1
  573. package/dist/routes/services.d.ts.map +0 -1
  574. package/dist/routes/sse.d.ts.map +0 -1
  575. package/dist/routes/streams.d.ts.map +0 -1
  576. package/dist/routes/theme.d.ts.map +0 -1
  577. package/dist/routes/ui.d.ts.map +0 -1
  578. package/dist/routes/upgrade.d.ts.map +0 -1
  579. package/dist/service/commands.context.d.ts.map +0 -1
  580. package/dist/service/commands.d.ts.map +0 -1
  581. package/dist/service/generators.context.d.ts.map +0 -1
  582. package/dist/service/generators.d.ts.map +0 -1
  583. package/dist/service/index.d.ts.map +0 -1
  584. package/dist/streaming/captureLock.d.ts.map +0 -1
  585. package/dist/streaming/captureSession.d.ts.map +0 -1
  586. package/dist/streaming/clients.d.ts.map +0 -1
  587. package/dist/streaming/codec.d.ts.map +0 -1
  588. package/dist/streaming/fmp4Segmenter.d.ts.map +0 -1
  589. package/dist/streaming/hls.d.ts.map +0 -1
  590. package/dist/streaming/hlsResume.d.ts.map +0 -1
  591. package/dist/streaming/hlsSegments.d.ts.map +0 -1
  592. package/dist/streaming/lifecycle.d.ts.map +0 -1
  593. package/dist/streaming/monitor.d.ts.map +0 -1
  594. package/dist/streaming/mp4Parser.d.ts.map +0 -1
  595. package/dist/streaming/mpegts.d.ts.map +0 -1
  596. package/dist/streaming/playlistBuilder.d.ts.map +0 -1
  597. package/dist/streaming/preroll.d.ts.map +0 -1
  598. package/dist/streaming/pretune.d.ts.map +0 -1
  599. package/dist/streaming/pretuneTimers.d.ts.map +0 -1
  600. package/dist/streaming/recovery.d.ts.map +0 -1
  601. package/dist/streaming/registry.d.ts.map +0 -1
  602. package/dist/streaming/setup.d.ts.map +0 -1
  603. package/dist/streaming/showInfo.d.ts.map +0 -1
  604. package/dist/streaming/statusEmitter.d.ts.map +0 -1
  605. package/dist/types/channels.d.ts.map +0 -1
  606. package/dist/types/config.d.ts.map +0 -1
  607. package/dist/types/index.d.ts.map +0 -1
  608. package/dist/types/profiles.d.ts.map +0 -1
  609. package/dist/types/selection.d.ts.map +0 -1
  610. package/dist/types/shared.d.ts.map +0 -1
  611. package/dist/types/streaming.d.ts.map +0 -1
  612. package/dist/upgrade/commands.context.d.ts.map +0 -1
  613. package/dist/upgrade/commands.d.ts.map +0 -1
  614. package/dist/upgrade/detection.context.d.ts.map +0 -1
  615. package/dist/upgrade/detection.d.ts.map +0 -1
  616. package/dist/upgrade/index.d.ts.map +0 -1
  617. package/dist/upgrade/lifecycle.context.d.ts.map +0 -1
  618. package/dist/upgrade/lifecycle.d.ts.map +0 -1
  619. package/dist/upgrade/pathHandle.d.ts.map +0 -1
  620. package/dist/utils/bootSession.context.d.ts.map +0 -1
  621. package/dist/utils/bootSession.d.ts.map +0 -1
  622. package/dist/utils/chromeFetch.d.ts.map +0 -1
  623. package/dist/utils/cliOutput.d.ts.map +0 -1
  624. package/dist/utils/clock.d.ts +0 -15
  625. package/dist/utils/clock.d.ts.map +0 -1
  626. package/dist/utils/clock.js +0 -31
  627. package/dist/utils/clock.js.map +0 -1
  628. package/dist/utils/debugFilter.d.ts.map +0 -1
  629. package/dist/utils/delay.d.ts.map +0 -1
  630. package/dist/utils/errors.d.ts.map +0 -1
  631. package/dist/utils/evaluate.d.ts.map +0 -1
  632. package/dist/utils/ffmpeg.context.d.ts.map +0 -1
  633. package/dist/utils/ffmpeg.d.ts.map +0 -1
  634. package/dist/utils/fileLogger.d.ts.map +0 -1
  635. package/dist/utils/format.d.ts.map +0 -1
  636. package/dist/utils/index.d.ts.map +0 -1
  637. package/dist/utils/logEmitter.d.ts.map +0 -1
  638. package/dist/utils/logger.d.ts.map +0 -1
  639. package/dist/utils/m3u.d.ts.map +0 -1
  640. package/dist/utils/markup.d.ts.map +0 -1
  641. package/dist/utils/memo.d.ts.map +0 -1
  642. package/dist/utils/morganStream.d.ts.map +0 -1
  643. package/dist/utils/network.d.ts.map +0 -1
  644. package/dist/utils/never.d.ts.map +0 -1
  645. package/dist/utils/pid.d.ts.map +0 -1
  646. package/dist/utils/platform.d.ts.map +0 -1
  647. package/dist/utils/processInspector.context.d.ts.map +0 -1
  648. package/dist/utils/processInspector.d.ts.map +0 -1
  649. package/dist/utils/retry.d.ts.map +0 -1
  650. package/dist/utils/runtimeIdentity.context.d.ts.map +0 -1
  651. package/dist/utils/runtimeIdentity.d.ts.map +0 -1
  652. package/dist/utils/sanitize.d.ts.map +0 -1
  653. package/dist/utils/streamContext.d.ts.map +0 -1
  654. package/dist/utils/timing.d.ts.map +0 -1
  655. package/dist/utils/version.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { Clock } from "../utils/index.ts";
1
+ import type { Clock } from "homebridge-plugin-utils";
2
2
  import type { Page } from "puppeteer-core";
3
3
  import type { ResolvedSiteProfile } from "../types/index.ts";
4
4
  export declare const ACCEPT_AFFORDANCE_SOURCE = "\\b(accept|agree|allow|enable|consent|got it|i understand|load)\\b";
@@ -93,6 +93,19 @@ export declare function locateSelectorCoordinate(sel: string): {
93
93
  x: number;
94
94
  y: number;
95
95
  } | null;
96
+ /**
97
+ * Clicks an element identified by a CSS selector using a real coordinate mouse click, if the element is present and laid out. Coordinate clicking generates the
98
+ * full pointer event chain, which consent buttons in SPA frameworks require to register (a synthetic element.click() is silently dropped by some, as observed on
99
+ * the embed-gate accept button). A hit test after the settle decides which click dispatches: the pointer chain when the element is what paints at the resolved
100
+ * coordinates, and the in-page synthetic click when another element covers it, so a control beneath a lifted page element is still reached. Returns false when the
101
+ * element is absent, has zero layout size, or is covered and the in-page click finds nothing, so callers can keep polling.
102
+ * @param page - The Puppeteer page.
103
+ * @param selector - The CSS selector for the element to click.
104
+ * @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.
105
+ * Defaults to the system clock, so a caller outside a poll, such as a provider route clicking its own guide, passes nothing.
106
+ * @returns True if the element was found and clicked.
107
+ */
108
+ export declare function clickSelectorByCoordinate(page: Page, selector: string, clock?: Clock): Promise<boolean>;
96
109
  /**
97
110
  * In-page synthetic click for a selector-identified element. Guards its querySelector so a malformed selector is reported as "invalid-selector" rather than throwing
98
111
  * and killing the poll tick. Reports "clicked" when the element is found and clicked, and "absent" when a valid selector matches nothing this tick.
@@ -157,12 +170,12 @@ export declare function consentOverlayPresent(page: Page): Promise<boolean>;
157
170
  * 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
158
171
  * soon as its phase settles.
159
172
  *
160
- * 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
161
- * acceptance only takes effect on a fresh load - the caller abandons the in-flight wait and reloads.
173
+ * 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
174
+ * 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
175
+ * stops, because the gate's acceptance only takes effect on a fresh load - the caller abandons the in-flight wait and reloads.
162
176
  * @param page - The Puppeteer page.
163
177
  * @param profile - The resolved site profile.
164
178
  * @param options - The phase, an optional clock and abort signal, and (videoWait only) the embed-gate callback. See StartOverlayHandlingOptions.
165
179
  */
166
180
  export declare function startOverlayHandling(page: Page, profile: ResolvedSiteProfile, options: StartOverlayHandlingOptions): Promise<void>;
167
181
  export {};
168
- //# sourceMappingURL=consent.d.ts.map
@@ -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":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,oKAAoK;AACpK,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,iKAAiK;AACjK,sKAAsK;AACtK,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,mKAAmK;AACnK,+JAA+J;AAC/J,sKAAsK;AACtK,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,oEAAoE,CAAC;AAE7G,oKAAoK;AACpK,sKAAsK;AACtK,sKAAsK;AACtK,qKAAqK;AACrK,+GAA+G;AAC/G,MAAM,CAAC,MAAM,iBAAiB,GAAG,gFAAgF;IAC/G,kEAAkE,CAAC;AAErE,gKAAgK;AAChK,gKAAgK;AAChK,iKAAiK;AACjK,+GAA+G;AAC/G,MAAM,CAAC,MAAM,cAAc,GAAG,mHAAmH;IAC/I,qDAAqD,CAAC;AAExD,mKAAmK;AACnK,iJAAiJ;AACjJ,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;AAmCjD;;;GAGG;AACH,MAAM,YAAY,GAAG;IAEnB,8JAA8J;IAC9J,gKAAgK;IAChK,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;IAEtF,+JAA+J;IAC/J,mKAAmK;IACnK,2IAA2I;IAC3I,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE;IAEpG,iKAAiK;IACjK,4IAA4I;IAC5I,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;IAE1F,kKAAkK;IAClK,gKAAgK;IAChK,gIAAgI;IAChI,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE;IAE/F,kKAAkK;IAClK,iKAAiK;IACjK,oBAAoB;IACpB,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE;CAC1C,CAAC;AAOvD;;;GAGG;AACH,MAAM,8BAA8B,GAAsD,IAAI,CAAC;AAE/F;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAA6B,EAAE,OAA4B;IAEhF,QAAO,MAAM,EAAE,CAAC;QAEd,KAAK,cAAc,CAAC,CAAC,CAAC;YAEpB,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAClC,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YAEpB,OAAO,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YAER,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;AACH,CAAC;AAkBD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyB;IAEhD,EAAE,MAAM,EAAE,oCAAoC,EAAE,MAAM,EAAE,gCAAgC,EAAE,MAAM,EAAE,QAAQ,EAAE;CAC7G,CAAC;AA2FF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAqB,EAAE,SAA4B,EAAE;IAElF,QAAO,IAAI,EAAE,CAAC;QAEZ,KAAK,gBAAgB,CAAC,CAAC,CAAC;YAEtB,GAAG,CAAC,IAAI,CAAC,sDAAsD,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;YAE1F,MAAM;QACR,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAElB,GAAG,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;YAE9F,MAAM;QACR,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YAEb,GAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAE3D,MAAM;QACR,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,iEAAiE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,EAChJ,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAElD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAG,CAAC,EAAE,EAAE,CAAC;QAEP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IAExC,kIAAkI;IAClI,IAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAE7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IAE5C,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,yBAAyB,CAAC,IAAU,EAAE,QAAgB;IAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;IAEvE,IAAG,CAAC,MAAM,EAAE,CAAC;QAEX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gKAAgK;IAChK,uIAAuI;IACvI,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAE7F,IAAG,CAAC,KAAK,EAAE,CAAC;QAEV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAElE,OAAO,MAAM,KAAK,SAAS,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAE7C,IAAI,EAAkB,CAAC;IAEvB,IAAI,CAAC;QAEH,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QAEP,qJAAqJ;QACrJ,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,IAAG,EAAE,EAAE,CAAC;QAEL,EAAkB,CAAC,KAAK,EAAE,CAAC;QAE5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAiD;IAEjF,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAG,CAAC,EAAE,EAAE,CAAC;QAEP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CAAC,IAAU,EAAE,QAAgB;IAEhE,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAqE;IAEpG,8GAA8G;IAC9G,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAEzF,KAAI,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QAElC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAElG,IAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAEzB,SAAS;QACX,CAAC;QAED,yJAAyJ;QACzJ,uJAAuJ;QACvJ,gCAAgC;QAChC,IAAI,IAAI,GAAmB,SAAS,CAAC,aAAa,CAAC;QACnD,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,KAAI,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAEhD,IAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAEjC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;gBAEjC,MAAM;YACR,CAAC;YAED,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAED,IAAG,CAAC,aAAa,EAAE,CAAC;YAElB,SAAS;QACX,CAAC;QAED,+JAA+J;QAC/J,+GAA+G;QAC/G,IAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAE1D,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAE/C,IAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAE7C,SAAS;QACX,CAAC;QAED,2JAA2J;QAC3J,IAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAEb,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,CAAC;QAED,SAAS,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAEnD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACpH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAkBD,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,GAAY;IAErD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACtI,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAU;IAEpD,IAAI,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAA4B,EAAW,EAAE;YAE/E,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACvE,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,IAAG,UAAU,EAAE,CAAC;YAEd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QAEP,8EAA8E;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,cAAc,CAAC,IAAU,EAAE,OAA4B,EAAE,OAA2B;IAEjG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1C,IAAI,CAAC;QAEH,2GAA2G;QAC3G,IAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAEpB,KAAI,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAEjC,IAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAE3C,SAAS;gBACX,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEtE,IAAG,QAAQ,EAAE,CAAC;oBAEZ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAExC,cAAc,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;QACH,CAAC;QAED,mIAAmI;QACnI,IAAG,MAAM,EAAE,OAAO,EAAE,CAAC;YAEnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,kKAAkK;QAClK,wJAAwJ;QACxJ,IAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAEpB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/C,IAAG,IAAI,EAAE,CAAC;gBAER,yJAAyJ;gBACzJ,yFAAyF;gBACzF,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEvC,cAAc,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAEpD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,IAAG,MAAM,EAAE,OAAO,EAAE,CAAC;YAEnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,2JAA2J;QAC3J,wIAAwI;QACxI,IAAG,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,EAAE,CAAC;YAE5F,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAE3E,QAAO,MAAM,EAAE,CAAC;gBAEd,KAAK,QAAQ,CAAC,CAAC,CAAC;oBAEd,MAAM;gBACR,CAAC;gBAED,KAAK,SAAS,CAAC,CAAC,CAAC;oBAEf,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;oBAE/B,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;oBAE/D,MAAM;gBACR,CAAC;gBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBAExB,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC;oBAEnC,IAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;wBAExD,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;wBAEpD,GAAG,CAAC,IAAI,CAAC,kFAAkF,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;oBACtI,CAAC;oBAED,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QAEP,iKAAiK;QACjK,yGAAyG;QACzG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAU,EAAE,OAA4B,EAAE,OAAoC;IAEvH,MAAM,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAErD,kKAAkK;IAClK,4CAA4C;IAC5C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAqB,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;IAEhG;;;;OAIG;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErE,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,OAAM,KAAK,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE7B,IAAG,MAAM,EAAE,OAAO,EAAE,CAAC;YAEnB,OAAO;QACT,CAAC;QAED,mFAAmF;QACnF,IAAG,CAAC,UAAU,EAAE,CAAC;YAEf,4CAA4C;YAC5C,MAAM,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAEzC,IAAG,MAAM,EAAE,OAAO,EAAE,CAAC;gBAEnB,OAAO;YACT,CAAC;QACH,CAAC;QAED,UAAU,GAAG,KAAK,CAAC;QAEnB,4CAA4C;QAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAE9E,IAAG,MAAM,KAAK,MAAM,EAAE,CAAC;YAErB,MAAM,EAAE,EAAE,CAAC;YAEX,OAAO;QACT,CAAC;QAED,IAAG,MAAM,KAAK,MAAM,EAAE,CAAC;YAErB,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
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":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAKxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+JAA+J;AAC/J,gHAAgH;AAChH,MAAM,2BAA2B,GAAG,IAAI,CAAC;AA+EzC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,OAAmC;IAEvF,MAAM,EAAE,KAAK,GAAG,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEjE,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,+JAA+J;IAC/J,iKAAiK;IACjK,uJAAuJ;IACvJ,kKAAkK;IAClK,mKAAmK;IACnK,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,6JAA6J;IAC7J,wJAAwJ;IACxJ,sEAAsE;IACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,0JAA0J;IAC1J,8JAA8J;IAC9J,iBAAiB;IACjB,MAAM,cAAc,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;QAE1D,IAAG,QAAQ,EAAE,CAAC;YAEZ,OAAO;QACT,CAAC;QAED,oIAAoI;QACpI,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAExC,IAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAE9B,OAAO;QACT,CAAC;QAED,2JAA2J;QAC3J,4GAA4G;QAC5G,IAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAErB,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElB,4JAA4J;QAC5J,gKAAgK;QAChK,MAAM,QAAQ,GAAG,EAAE,eAAe,CAAC;QAEnC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,uCAAuC,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7F,MAAM,KAAK,GAAG,aAAa,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAElE,IAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAEhB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,yCAAyC,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAEtG,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,wJAAwJ;YACxJ,0JAA0J;YAC1J,mJAAmJ;YACnJ,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAG,IAAI,KAAK,SAAS,EAAE,CAAC;gBAEtB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,wEAAwE,CAAC,CAAC;gBAEjG,OAAO;YACT,CAAC;YAED,2JAA2J;YAC3J,2JAA2J;YAC3J,iJAAiJ;YACjJ,uEAAuE;YACvE,IAAG,QAAQ,EAAE,CAAC;gBAEZ,OAAO;YACT,CAAC;YAED,uJAAuJ;YACvJ,4JAA4J;YAC5J,+BAA+B;YAC/B,MAAM,QAAQ,GAAwB,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACzD,EAAE,SAAS,EAAE,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnF,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YAEpE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,iCAAiC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YAET,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAiC,MAAM,mBAAmB,CAAC,IAAI,EAAE;QAEhF,UAAU,EAAE,CAAC,QAAQ,EAAQ,EAAE,GAAG,KAAK,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC,CAAC;IAEH,IAAG,CAAC,WAAW,EAAE,CAAC;QAEhB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;IAE3D,8JAA8J;IAC9J,gJAAgJ;IAChJ,MAAM,eAAe,GAAG,GAAW,EAAE,CAAC,eAAe,CAAC;IAEtD,MAAM,OAAO,GAAG,GAAS,EAAE;QAEzB,IAAG,QAAQ,EAAE,CAAC;YAEZ,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,IAAI,CAAC;QAChB,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC"}