prismcast 1.10.2 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/dist/app.d.ts +6 -3
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +140 -86
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/blockedPage.d.ts +80 -0
  6. package/dist/browser/blockedPage.d.ts.map +1 -0
  7. package/dist/browser/blockedPage.js +209 -0
  8. package/dist/browser/blockedPage.js.map +1 -0
  9. package/dist/browser/browserSupervisor.d.ts +80 -0
  10. package/dist/browser/browserSupervisor.d.ts.map +1 -0
  11. package/dist/browser/browserSupervisor.js +186 -0
  12. package/dist/browser/browserSupervisor.js.map +1 -0
  13. package/dist/browser/cdp.d.ts +1 -0
  14. package/dist/browser/cdp.d.ts.map +1 -0
  15. package/dist/browser/cdp.js +6 -5
  16. package/dist/browser/cdp.js.map +1 -1
  17. package/dist/browser/channelSelection.d.ts +45 -14
  18. package/dist/browser/channelSelection.d.ts.map +1 -0
  19. package/dist/browser/channelSelection.js +81 -18
  20. package/dist/browser/channelSelection.js.map +1 -1
  21. package/dist/browser/consent.d.ts +152 -0
  22. package/dist/browser/consent.d.ts.map +1 -0
  23. package/dist/browser/consent.js +418 -0
  24. package/dist/browser/consent.js.map +1 -0
  25. package/dist/browser/display.d.ts +1 -0
  26. package/dist/browser/display.d.ts.map +1 -0
  27. package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
  28. package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
  29. package/dist/browser/hlsPlaylistObserver.js +132 -0
  30. package/dist/browser/hlsPlaylistObserver.js.map +1 -0
  31. package/dist/browser/index.d.ts +67 -40
  32. package/dist/browser/index.d.ts.map +1 -0
  33. package/dist/browser/index.js +508 -300
  34. package/dist/browser/index.js.map +1 -1
  35. package/dist/browser/launchGovernor.d.ts +89 -0
  36. package/dist/browser/launchGovernor.d.ts.map +1 -0
  37. package/dist/browser/launchGovernor.js +96 -0
  38. package/dist/browser/launchGovernor.js.map +1 -0
  39. package/dist/browser/login.d.ts +10 -2
  40. package/dist/browser/login.d.ts.map +1 -0
  41. package/dist/browser/login.js +36 -5
  42. package/dist/browser/login.js.map +1 -1
  43. package/dist/browser/manifestInterceptor.d.ts +102 -49
  44. package/dist/browser/manifestInterceptor.d.ts.map +1 -0
  45. package/dist/browser/manifestInterceptor.js +219 -237
  46. package/dist/browser/manifestInterceptor.js.map +1 -1
  47. package/dist/browser/pageStaleness.d.ts +30 -0
  48. package/dist/browser/pageStaleness.d.ts.map +1 -0
  49. package/dist/browser/pageStaleness.js +76 -0
  50. package/dist/browser/pageStaleness.js.map +1 -0
  51. package/dist/browser/precaching.d.ts +95 -3
  52. package/dist/browser/precaching.d.ts.map +1 -0
  53. package/dist/browser/precaching.js +499 -65
  54. package/dist/browser/precaching.js.map +1 -1
  55. package/dist/browser/tabNetworkObserver.d.ts +49 -0
  56. package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
  57. package/dist/browser/tabNetworkObserver.js +144 -0
  58. package/dist/browser/tabNetworkObserver.js.map +1 -0
  59. package/dist/browser/tuning/cache.d.ts +61 -0
  60. package/dist/browser/tuning/cache.d.ts.map +1 -0
  61. package/dist/browser/tuning/cache.js +62 -0
  62. package/dist/browser/tuning/cache.js.map +1 -0
  63. package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
  64. package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
  65. package/dist/browser/tuning/comcastPolymer.js +79 -102
  66. package/dist/browser/tuning/comcastPolymer.js.map +1 -1
  67. package/dist/browser/tuning/cox.d.ts +1 -0
  68. package/dist/browser/tuning/cox.d.ts.map +1 -0
  69. package/dist/browser/tuning/directv.d.ts +1 -0
  70. package/dist/browser/tuning/directv.d.ts.map +1 -0
  71. package/dist/browser/tuning/directv.js +52 -46
  72. package/dist/browser/tuning/directv.js.map +1 -1
  73. package/dist/browser/tuning/fox.d.ts +1 -0
  74. package/dist/browser/tuning/fox.d.ts.map +1 -0
  75. package/dist/browser/tuning/fox.js +13 -12
  76. package/dist/browser/tuning/fox.js.map +1 -1
  77. package/dist/browser/tuning/gridSearch.d.ts +68 -0
  78. package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
  79. package/dist/browser/tuning/gridSearch.js +85 -0
  80. package/dist/browser/tuning/gridSearch.js.map +1 -0
  81. package/dist/browser/tuning/hbo.d.ts +1 -0
  82. package/dist/browser/tuning/hbo.d.ts.map +1 -0
  83. package/dist/browser/tuning/hbo.js +73 -45
  84. package/dist/browser/tuning/hbo.js.map +1 -1
  85. package/dist/browser/tuning/hulu.d.ts +1 -0
  86. package/dist/browser/tuning/hulu.d.ts.map +1 -0
  87. package/dist/browser/tuning/hulu.js +128 -173
  88. package/dist/browser/tuning/hulu.js.map +1 -1
  89. package/dist/browser/tuning/shared.d.ts +75 -5
  90. package/dist/browser/tuning/shared.d.ts.map +1 -0
  91. package/dist/browser/tuning/shared.js +216 -6
  92. package/dist/browser/tuning/shared.js.map +1 -1
  93. package/dist/browser/tuning/sling.d.ts +1 -0
  94. package/dist/browser/tuning/sling.d.ts.map +1 -0
  95. package/dist/browser/tuning/sling.js +105 -126
  96. package/dist/browser/tuning/sling.js.map +1 -1
  97. package/dist/browser/tuning/spectrum.d.ts +1 -0
  98. package/dist/browser/tuning/spectrum.d.ts.map +1 -0
  99. package/dist/browser/tuning/spectrum.js +80 -125
  100. package/dist/browser/tuning/spectrum.js.map +1 -1
  101. package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
  102. package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
  103. package/dist/browser/tuning/thumbnailRow.js +8 -2
  104. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  105. package/dist/browser/tuning/tileClick.d.ts +1 -0
  106. package/dist/browser/tuning/tileClick.d.ts.map +1 -0
  107. package/dist/browser/tuning/tileClick.js +3 -2
  108. package/dist/browser/tuning/tileClick.js.map +1 -1
  109. package/dist/browser/tuning/xfinity.d.ts +1 -0
  110. package/dist/browser/tuning/xfinity.d.ts.map +1 -0
  111. package/dist/browser/tuning/youtubeTv.d.ts +1 -0
  112. package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
  113. package/dist/browser/tuning/youtubeTv.js +74 -127
  114. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  115. package/dist/browser/video.d.ts +54 -14
  116. package/dist/browser/video.d.ts.map +1 -0
  117. package/dist/browser/video.js +296 -138
  118. package/dist/browser/video.js.map +1 -1
  119. package/dist/channels/index.d.ts +1 -0
  120. package/dist/channels/index.d.ts.map +1 -0
  121. package/dist/channels/index.js +12 -9
  122. package/dist/channels/index.js.map +1 -1
  123. package/dist/config/channelForm.d.ts +15 -1
  124. package/dist/config/channelForm.d.ts.map +1 -0
  125. package/dist/config/channelForm.js +28 -12
  126. package/dist/config/channelForm.js.map +1 -1
  127. package/dist/config/consistencyProbe.d.ts +1 -0
  128. package/dist/config/consistencyProbe.d.ts.map +1 -0
  129. package/dist/config/consistencyProbe.js +27 -21
  130. package/dist/config/consistencyProbe.js.map +1 -1
  131. package/dist/config/health.d.ts +41 -8
  132. package/dist/config/health.d.ts.map +1 -0
  133. package/dist/config/health.js +189 -38
  134. package/dist/config/health.js.map +1 -1
  135. package/dist/config/index.d.ts +55 -3
  136. package/dist/config/index.d.ts.map +1 -0
  137. package/dist/config/index.js +320 -69
  138. package/dist/config/index.js.map +1 -1
  139. package/dist/config/paths.d.ts +10 -9
  140. package/dist/config/paths.d.ts.map +1 -0
  141. package/dist/config/paths.js +11 -11
  142. package/dist/config/paths.js.map +1 -1
  143. package/dist/config/persistence.context.d.ts +1 -0
  144. package/dist/config/persistence.context.d.ts.map +1 -0
  145. package/dist/config/persistence.d.ts +13 -10
  146. package/dist/config/persistence.d.ts.map +1 -0
  147. package/dist/config/persistence.js +40 -21
  148. package/dist/config/persistence.js.map +1 -1
  149. package/dist/config/presets.d.ts +1 -0
  150. package/dist/config/presets.d.ts.map +1 -0
  151. package/dist/config/profiles.d.ts +22 -15
  152. package/dist/config/profiles.d.ts.map +1 -0
  153. package/dist/config/profiles.js +81 -47
  154. package/dist/config/profiles.js.map +1 -1
  155. package/dist/config/providerLineups.d.ts +47 -0
  156. package/dist/config/providerLineups.d.ts.map +1 -0
  157. package/dist/config/providerLineups.js +137 -0
  158. package/dist/config/providerLineups.js.map +1 -0
  159. package/dist/config/reactivity.d.ts +84 -0
  160. package/dist/config/reactivity.d.ts.map +1 -0
  161. package/dist/config/reactivity.js +226 -0
  162. package/dist/config/reactivity.js.map +1 -0
  163. package/dist/config/servicePacks.d.ts +18 -2
  164. package/dist/config/servicePacks.d.ts.map +1 -0
  165. package/dist/config/servicePacks.js +53 -11
  166. package/dist/config/servicePacks.js.map +1 -1
  167. package/dist/config/services.d.ts +21 -15
  168. package/dist/config/services.d.ts.map +1 -0
  169. package/dist/config/services.js +35 -24
  170. package/dist/config/services.js.map +1 -1
  171. package/dist/config/sites.d.ts +6 -4
  172. package/dist/config/sites.d.ts.map +1 -0
  173. package/dist/config/sites.js +15 -11
  174. package/dist/config/sites.js.map +1 -1
  175. package/dist/config/userChannels.d.ts +129 -30
  176. package/dist/config/userChannels.d.ts.map +1 -0
  177. package/dist/config/userChannels.js +333 -68
  178. package/dist/config/userChannels.js.map +1 -1
  179. package/dist/config/userConfig.d.ts +14 -9
  180. package/dist/config/userConfig.d.ts.map +1 -0
  181. package/dist/config/userConfig.js +87 -25
  182. package/dist/config/userConfig.js.map +1 -1
  183. package/dist/config/userProfiles.d.ts +10 -6
  184. package/dist/config/userProfiles.d.ts.map +1 -0
  185. package/dist/config/userProfiles.js +64 -39
  186. package/dist/config/userProfiles.js.map +1 -1
  187. package/dist/hdhr/channelMap.d.ts +1 -0
  188. package/dist/hdhr/channelMap.d.ts.map +1 -0
  189. package/dist/hdhr/deviceId.d.ts +1 -0
  190. package/dist/hdhr/deviceId.d.ts.map +1 -0
  191. package/dist/hdhr/discover.d.ts +1 -0
  192. package/dist/hdhr/discover.d.ts.map +1 -0
  193. package/dist/hdhr/discover.js +48 -47
  194. package/dist/hdhr/discover.js.map +1 -1
  195. package/dist/hdhr/getHandlers.d.ts +29 -0
  196. package/dist/hdhr/getHandlers.d.ts.map +1 -0
  197. package/dist/hdhr/getHandlers.js +196 -0
  198. package/dist/hdhr/getHandlers.js.map +1 -0
  199. package/dist/hdhr/identity.d.ts +36 -0
  200. package/dist/hdhr/identity.d.ts.map +1 -0
  201. package/dist/hdhr/identity.js +51 -0
  202. package/dist/hdhr/identity.js.map +1 -0
  203. package/dist/hdhr/index.d.ts +22 -4
  204. package/dist/hdhr/index.d.ts.map +1 -0
  205. package/dist/hdhr/index.js +229 -54
  206. package/dist/hdhr/index.js.map +1 -1
  207. package/dist/hdhr/protocol.d.ts +75 -0
  208. package/dist/hdhr/protocol.d.ts.map +1 -0
  209. package/dist/hdhr/protocol.js +264 -0
  210. package/dist/hdhr/protocol.js.map +1 -0
  211. package/dist/hdhr/tunerState.d.ts +24 -0
  212. package/dist/hdhr/tunerState.d.ts.map +1 -0
  213. package/dist/hdhr/tunerState.js +67 -0
  214. package/dist/hdhr/tunerState.js.map +1 -0
  215. package/dist/hdhr/udp.d.ts +43 -0
  216. package/dist/hdhr/udp.d.ts.map +1 -0
  217. package/dist/hdhr/udp.js +277 -0
  218. package/dist/hdhr/udp.js.map +1 -0
  219. package/dist/identity.d.ts +1 -0
  220. package/dist/identity.d.ts.map +1 -0
  221. package/dist/identity.js +13 -11
  222. package/dist/identity.js.map +1 -1
  223. package/dist/index.d.ts +1 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +11 -12
  226. package/dist/index.js.map +1 -1
  227. package/dist/native/codecInference.d.ts +1 -0
  228. package/dist/native/codecInference.d.ts.map +1 -0
  229. package/dist/native/codecInference.js +50 -5
  230. package/dist/native/codecInference.js.map +1 -1
  231. package/dist/native/decrypt.d.ts +6 -2
  232. package/dist/native/decrypt.d.ts.map +1 -0
  233. package/dist/native/decrypt.js +15 -8
  234. package/dist/native/decrypt.js.map +1 -1
  235. package/dist/native/index.d.ts +40 -17
  236. package/dist/native/index.d.ts.map +1 -0
  237. package/dist/native/index.js +281 -120
  238. package/dist/native/index.js.map +1 -1
  239. package/dist/native/probe.d.ts +114 -18
  240. package/dist/native/probe.d.ts.map +1 -0
  241. package/dist/native/probe.js +452 -115
  242. package/dist/native/probe.js.map +1 -1
  243. package/dist/native/proxy.d.ts +57 -5
  244. package/dist/native/proxy.d.ts.map +1 -0
  245. package/dist/native/proxy.js +604 -170
  246. package/dist/native/proxy.js.map +1 -1
  247. package/dist/native/tokenExpiry.d.ts +1 -0
  248. package/dist/native/tokenExpiry.d.ts.map +1 -0
  249. package/dist/native/tokenExpiry.js +1 -1
  250. package/dist/routes/assets.d.ts +1 -0
  251. package/dist/routes/assets.d.ts.map +1 -0
  252. package/dist/routes/assets.js +4 -2
  253. package/dist/routes/assets.js.map +1 -1
  254. package/dist/routes/auth.d.ts +1 -0
  255. package/dist/routes/auth.d.ts.map +1 -0
  256. package/dist/routes/auth.js +0 -1
  257. package/dist/routes/auth.js.map +1 -1
  258. package/dist/routes/cdp.d.ts +5 -5
  259. package/dist/routes/cdp.d.ts.map +1 -0
  260. package/dist/routes/cdp.js +59 -20
  261. package/dist/routes/cdp.js.map +1 -1
  262. package/dist/routes/channels.d.ts +1 -0
  263. package/dist/routes/channels.d.ts.map +1 -0
  264. package/dist/routes/channels.js +2 -1
  265. package/dist/routes/channels.js.map +1 -1
  266. package/dist/routes/clientActions.d.ts +98 -0
  267. package/dist/routes/clientActions.d.ts.map +1 -0
  268. package/dist/routes/clientActions.js +113 -0
  269. package/dist/routes/clientActions.js.map +1 -0
  270. package/dist/routes/components.d.ts +5 -3
  271. package/dist/routes/components.d.ts.map +1 -0
  272. package/dist/routes/components.js +36 -39
  273. package/dist/routes/components.js.map +1 -1
  274. package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
  275. package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
  276. package/dist/routes/config/channels/endpoints/browse.js +23 -10
  277. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  278. package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
  279. package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
  280. package/dist/routes/config/channels/endpoints/bulk.js +5 -3
  281. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  282. package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
  283. package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
  284. package/dist/routes/config/channels/endpoints/crud.js +85 -93
  285. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  286. package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
  287. package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
  288. package/dist/routes/config/channels/endpoints/importExport.js +6 -3
  289. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  290. package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
  291. package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
  292. package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
  293. package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
  294. package/dist/routes/config/channels/endpoints/prefs.js +2 -1
  295. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  296. package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
  297. package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
  298. package/dist/routes/config/channels/endpoints/service.js +3 -1
  299. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  300. package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
  301. package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
  302. package/dist/routes/config/channels/endpoints/tags.js +13 -7
  303. package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
  304. package/dist/routes/config/channels/healthBridge.d.ts +24 -0
  305. package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
  306. package/dist/routes/config/channels/healthBridge.js +71 -0
  307. package/dist/routes/config/channels/healthBridge.js.map +1 -0
  308. package/dist/routes/config/channels/http/handler.d.ts +1 -0
  309. package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
  310. package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
  311. package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
  312. package/dist/routes/config/channels/http/playlistHint.js +16 -2
  313. package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
  314. package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
  315. package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
  316. package/dist/routes/config/channels/http/serviceWarning.js +3 -2
  317. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
  318. package/dist/routes/config/channels/index.d.ts +1 -0
  319. package/dist/routes/config/channels/index.d.ts.map +1 -0
  320. package/dist/routes/config/channels/setup.d.ts +1 -0
  321. package/dist/routes/config/channels/setup.d.ts.map +1 -0
  322. package/dist/routes/config/channels/table.d.ts +3 -3
  323. package/dist/routes/config/channels/table.d.ts.map +1 -0
  324. package/dist/routes/config/channels/table.js +148 -107
  325. package/dist/routes/config/channels/table.js.map +1 -1
  326. package/dist/routes/config/http/envelope.d.ts +1 -0
  327. package/dist/routes/config/http/envelope.d.ts.map +1 -0
  328. package/dist/routes/config/index.d.ts +35 -3
  329. package/dist/routes/config/index.d.ts.map +1 -0
  330. package/dist/routes/config/index.js +51 -2
  331. package/dist/routes/config/index.js.map +1 -1
  332. package/dist/routes/config/services.d.ts +5 -4
  333. package/dist/routes/config/services.d.ts.map +1 -0
  334. package/dist/routes/config/services.js +57 -43
  335. package/dist/routes/config/services.js.map +1 -1
  336. package/dist/routes/config/settings.d.ts +1 -0
  337. package/dist/routes/config/settings.d.ts.map +1 -0
  338. package/dist/routes/config/settings.js +98 -49
  339. package/dist/routes/config/settings.js.map +1 -1
  340. package/dist/routes/debug.d.ts +1 -0
  341. package/dist/routes/debug.d.ts.map +1 -0
  342. package/dist/routes/debug.js +277 -139
  343. package/dist/routes/debug.js.map +1 -1
  344. package/dist/routes/health.d.ts +39 -1
  345. package/dist/routes/health.d.ts.map +1 -0
  346. package/dist/routes/health.js +33 -27
  347. package/dist/routes/health.js.map +1 -1
  348. package/dist/routes/hls.d.ts +1 -0
  349. package/dist/routes/hls.d.ts.map +1 -0
  350. package/dist/routes/icons.d.ts +1 -0
  351. package/dist/routes/icons.d.ts.map +1 -0
  352. package/dist/routes/icons.js +1 -1
  353. package/dist/routes/index.d.ts +1 -0
  354. package/dist/routes/index.d.ts.map +1 -0
  355. package/dist/routes/logs.d.ts +1 -0
  356. package/dist/routes/logs.d.ts.map +1 -0
  357. package/dist/routes/logs.js +14 -4
  358. package/dist/routes/logs.js.map +1 -1
  359. package/dist/routes/mpegts.d.ts +1 -0
  360. package/dist/routes/mpegts.d.ts.map +1 -0
  361. package/dist/routes/play.d.ts +1 -0
  362. package/dist/routes/play.d.ts.map +1 -0
  363. package/dist/routes/playlist.d.ts +1 -0
  364. package/dist/routes/playlist.d.ts.map +1 -0
  365. package/dist/routes/playlist.js +7 -2
  366. package/dist/routes/playlist.js.map +1 -1
  367. package/dist/routes/root/content.d.ts +8 -5
  368. package/dist/routes/root/content.d.ts.map +1 -0
  369. package/dist/routes/root/content.js +29 -26
  370. package/dist/routes/root/content.js.map +1 -1
  371. package/dist/routes/root/index.d.ts +2 -1
  372. package/dist/routes/root/index.d.ts.map +1 -0
  373. package/dist/routes/root/index.js +26 -21
  374. package/dist/routes/root/index.js.map +1 -1
  375. package/dist/routes/root/scripts/channels.d.ts +6 -0
  376. package/dist/routes/root/scripts/channels.d.ts.map +1 -0
  377. package/dist/routes/root/scripts/channels.js +197 -118
  378. package/dist/routes/root/scripts/channels.js.map +1 -1
  379. package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
  380. package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
  381. package/dist/routes/root/scripts/clientEscape.js +41 -0
  382. package/dist/routes/root/scripts/clientEscape.js.map +1 -0
  383. package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
  384. package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
  385. package/dist/routes/root/scripts/clientUrl.js +44 -0
  386. package/dist/routes/root/scripts/clientUrl.js.map +1 -0
  387. package/dist/routes/root/scripts/config.d.ts +6 -0
  388. package/dist/routes/root/scripts/config.d.ts.map +1 -0
  389. package/dist/routes/root/scripts/config.js +110 -24
  390. package/dist/routes/root/scripts/config.js.map +1 -1
  391. package/dist/routes/root/scripts/index.d.ts +1 -0
  392. package/dist/routes/root/scripts/index.d.ts.map +1 -0
  393. package/dist/routes/root/scripts/shared.d.ts +1 -0
  394. package/dist/routes/root/scripts/shared.d.ts.map +1 -0
  395. package/dist/routes/root/scripts/shared.js +112 -26
  396. package/dist/routes/root/scripts/shared.js.map +1 -1
  397. package/dist/routes/root/scripts/status.d.ts +1 -0
  398. package/dist/routes/root/scripts/status.d.ts.map +1 -0
  399. package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
  400. package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
  401. package/dist/routes/root/scripts/status.handlers.js +46 -92
  402. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  403. package/dist/routes/root/scripts/status.js +21 -8
  404. package/dist/routes/root/scripts/status.js.map +1 -1
  405. package/dist/routes/root/styles.d.ts +1 -0
  406. package/dist/routes/root/styles.d.ts.map +1 -0
  407. package/dist/routes/root/styles.js +7 -4
  408. package/dist/routes/root/styles.js.map +1 -1
  409. package/dist/routes/services.d.ts +13 -1
  410. package/dist/routes/services.d.ts.map +1 -0
  411. package/dist/routes/services.js +81 -68
  412. package/dist/routes/services.js.map +1 -1
  413. package/dist/routes/sse.d.ts +1 -0
  414. package/dist/routes/sse.d.ts.map +1 -0
  415. package/dist/routes/sse.js +1 -1
  416. package/dist/routes/sse.js.map +1 -1
  417. package/dist/routes/streams.d.ts +2 -1
  418. package/dist/routes/streams.d.ts.map +1 -0
  419. package/dist/routes/streams.js +6 -4
  420. package/dist/routes/streams.js.map +1 -1
  421. package/dist/routes/theme.d.ts +3 -2
  422. package/dist/routes/theme.d.ts.map +1 -0
  423. package/dist/routes/theme.js +6 -5
  424. package/dist/routes/theme.js.map +1 -1
  425. package/dist/routes/ui.d.ts +3 -1
  426. package/dist/routes/ui.d.ts.map +1 -0
  427. package/dist/routes/ui.js +16 -4
  428. package/dist/routes/ui.js.map +1 -1
  429. package/dist/routes/upgrade.d.ts +1 -0
  430. package/dist/routes/upgrade.d.ts.map +1 -0
  431. package/dist/routes/upgrade.js +6 -2
  432. package/dist/routes/upgrade.js.map +1 -1
  433. package/dist/service/commands.context.d.ts +1 -0
  434. package/dist/service/commands.context.d.ts.map +1 -0
  435. package/dist/service/commands.context.js +4 -3
  436. package/dist/service/commands.context.js.map +1 -1
  437. package/dist/service/commands.d.ts +1 -0
  438. package/dist/service/commands.d.ts.map +1 -0
  439. package/dist/service/commands.js +10 -13
  440. package/dist/service/commands.js.map +1 -1
  441. package/dist/service/generators.context.d.ts +1 -0
  442. package/dist/service/generators.context.d.ts.map +1 -0
  443. package/dist/service/generators.context.js +1 -1
  444. package/dist/service/generators.context.js.map +1 -1
  445. package/dist/service/generators.d.ts +4 -3
  446. package/dist/service/generators.d.ts.map +1 -0
  447. package/dist/service/generators.js +111 -31
  448. package/dist/service/generators.js.map +1 -1
  449. package/dist/service/index.d.ts +1 -0
  450. package/dist/service/index.d.ts.map +1 -0
  451. package/dist/streaming/captureLock.d.ts +44 -0
  452. package/dist/streaming/captureLock.d.ts.map +1 -0
  453. package/dist/streaming/captureLock.js +95 -0
  454. package/dist/streaming/captureLock.js.map +1 -0
  455. package/dist/streaming/captureSession.d.ts +31 -0
  456. package/dist/streaming/captureSession.d.ts.map +1 -0
  457. package/dist/streaming/captureSession.js +54 -0
  458. package/dist/streaming/captureSession.js.map +1 -0
  459. package/dist/streaming/clients.d.ts +1 -0
  460. package/dist/streaming/clients.d.ts.map +1 -0
  461. package/dist/streaming/codec.d.ts +1 -0
  462. package/dist/streaming/codec.d.ts.map +1 -0
  463. package/dist/streaming/fmp4Segmenter.d.ts +29 -2
  464. package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
  465. package/dist/streaming/fmp4Segmenter.js +79 -26
  466. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  467. package/dist/streaming/hls.d.ts +18 -7
  468. package/dist/streaming/hls.d.ts.map +1 -0
  469. package/dist/streaming/hls.js +220 -120
  470. package/dist/streaming/hls.js.map +1 -1
  471. package/dist/streaming/hlsResume.d.ts +1 -0
  472. package/dist/streaming/hlsResume.d.ts.map +1 -0
  473. package/dist/streaming/hlsResume.js +1 -1
  474. package/dist/streaming/hlsResume.js.map +1 -1
  475. package/dist/streaming/hlsSegments.d.ts +59 -2
  476. package/dist/streaming/hlsSegments.d.ts.map +1 -0
  477. package/dist/streaming/hlsSegments.js +147 -17
  478. package/dist/streaming/hlsSegments.js.map +1 -1
  479. package/dist/streaming/lifecycle.d.ts +4 -1
  480. package/dist/streaming/lifecycle.d.ts.map +1 -0
  481. package/dist/streaming/lifecycle.js +65 -85
  482. package/dist/streaming/lifecycle.js.map +1 -1
  483. package/dist/streaming/monitor.d.ts +6 -4
  484. package/dist/streaming/monitor.d.ts.map +1 -0
  485. package/dist/streaming/monitor.js +343 -145
  486. package/dist/streaming/monitor.js.map +1 -1
  487. package/dist/streaming/mp4Parser.d.ts +5 -4
  488. package/dist/streaming/mp4Parser.d.ts.map +1 -0
  489. package/dist/streaming/mp4Parser.js +36 -13
  490. package/dist/streaming/mp4Parser.js.map +1 -1
  491. package/dist/streaming/mpegts.d.ts +16 -0
  492. package/dist/streaming/mpegts.d.ts.map +1 -0
  493. package/dist/streaming/mpegts.js +61 -17
  494. package/dist/streaming/mpegts.js.map +1 -1
  495. package/dist/streaming/playlistBuilder.d.ts +1 -0
  496. package/dist/streaming/playlistBuilder.d.ts.map +1 -0
  497. package/dist/streaming/preroll.d.ts +32 -5
  498. package/dist/streaming/preroll.d.ts.map +1 -0
  499. package/dist/streaming/preroll.js +70 -32
  500. package/dist/streaming/preroll.js.map +1 -1
  501. package/dist/streaming/pretune.d.ts +26 -1
  502. package/dist/streaming/pretune.d.ts.map +1 -0
  503. package/dist/streaming/pretune.js +22 -24
  504. package/dist/streaming/pretune.js.map +1 -1
  505. package/dist/streaming/pretuneTimers.d.ts +24 -0
  506. package/dist/streaming/pretuneTimers.d.ts.map +1 -0
  507. package/dist/streaming/pretuneTimers.js +56 -0
  508. package/dist/streaming/pretuneTimers.js.map +1 -0
  509. package/dist/streaming/recovery.d.ts +139 -5
  510. package/dist/streaming/recovery.d.ts.map +1 -0
  511. package/dist/streaming/recovery.js +160 -16
  512. package/dist/streaming/recovery.js.map +1 -1
  513. package/dist/streaming/registry.d.ts +27 -9
  514. package/dist/streaming/registry.d.ts.map +1 -0
  515. package/dist/streaming/registry.js +21 -3
  516. package/dist/streaming/registry.js.map +1 -1
  517. package/dist/streaming/setup.d.ts +157 -29
  518. package/dist/streaming/setup.d.ts.map +1 -0
  519. package/dist/streaming/setup.js +1034 -458
  520. package/dist/streaming/setup.js.map +1 -1
  521. package/dist/streaming/showInfo.d.ts +21 -1
  522. package/dist/streaming/showInfo.d.ts.map +1 -0
  523. package/dist/streaming/showInfo.js +31 -16
  524. package/dist/streaming/showInfo.js.map +1 -1
  525. package/dist/streaming/statusEmitter.d.ts +10 -10
  526. package/dist/streaming/statusEmitter.d.ts.map +1 -0
  527. package/dist/streaming/statusEmitter.js +5 -8
  528. package/dist/streaming/statusEmitter.js.map +1 -1
  529. package/dist/types/channels.d.ts +16 -4
  530. package/dist/types/channels.d.ts.map +1 -0
  531. package/dist/types/channels.js +4 -2
  532. package/dist/types/channels.js.map +1 -1
  533. package/dist/types/config.d.ts +16 -5
  534. package/dist/types/config.d.ts.map +1 -0
  535. package/dist/types/index.d.ts +3 -2
  536. package/dist/types/index.d.ts.map +1 -0
  537. package/dist/types/profiles.d.ts +6 -4
  538. package/dist/types/profiles.d.ts.map +1 -0
  539. package/dist/types/selection.d.ts +31 -3
  540. package/dist/types/selection.d.ts.map +1 -0
  541. package/dist/types/selection.js +4 -2
  542. package/dist/types/selection.js.map +1 -1
  543. package/dist/types/shared.d.ts +1 -0
  544. package/dist/types/shared.d.ts.map +1 -0
  545. package/dist/types/streaming.d.ts +8 -0
  546. package/dist/types/streaming.d.ts.map +1 -0
  547. package/dist/upgrade/commands.context.d.ts +1 -0
  548. package/dist/upgrade/commands.context.d.ts.map +1 -0
  549. package/dist/upgrade/commands.context.js +14 -10
  550. package/dist/upgrade/commands.context.js.map +1 -1
  551. package/dist/upgrade/commands.d.ts +8 -15
  552. package/dist/upgrade/commands.d.ts.map +1 -0
  553. package/dist/upgrade/commands.js +27 -28
  554. package/dist/upgrade/commands.js.map +1 -1
  555. package/dist/upgrade/detection.context.d.ts +1 -0
  556. package/dist/upgrade/detection.context.d.ts.map +1 -0
  557. package/dist/upgrade/detection.context.js +4 -1
  558. package/dist/upgrade/detection.context.js.map +1 -1
  559. package/dist/upgrade/detection.d.ts +9 -7
  560. package/dist/upgrade/detection.d.ts.map +1 -0
  561. package/dist/upgrade/detection.js +23 -54
  562. package/dist/upgrade/detection.js.map +1 -1
  563. package/dist/upgrade/index.d.ts +2 -0
  564. package/dist/upgrade/index.d.ts.map +1 -0
  565. package/dist/upgrade/index.js +1 -0
  566. package/dist/upgrade/index.js.map +1 -1
  567. package/dist/upgrade/lifecycle.context.d.ts +20 -0
  568. package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
  569. package/dist/upgrade/lifecycle.context.js +47 -0
  570. package/dist/upgrade/lifecycle.context.js.map +1 -0
  571. package/dist/upgrade/lifecycle.d.ts +72 -0
  572. package/dist/upgrade/lifecycle.d.ts.map +1 -0
  573. package/dist/upgrade/lifecycle.js +175 -0
  574. package/dist/upgrade/lifecycle.js.map +1 -0
  575. package/dist/upgrade/pathHandle.d.ts +30 -0
  576. package/dist/upgrade/pathHandle.d.ts.map +1 -0
  577. package/dist/upgrade/pathHandle.js +102 -0
  578. package/dist/upgrade/pathHandle.js.map +1 -0
  579. package/dist/utils/bootSession.context.d.ts +16 -0
  580. package/dist/utils/bootSession.context.d.ts.map +1 -0
  581. package/dist/utils/bootSession.context.js +60 -0
  582. package/dist/utils/bootSession.context.js.map +1 -0
  583. package/dist/utils/bootSession.d.ts +17 -0
  584. package/dist/utils/bootSession.d.ts.map +1 -0
  585. package/dist/utils/bootSession.js +20 -0
  586. package/dist/utils/bootSession.js.map +1 -0
  587. package/dist/utils/chromeFetch.d.ts +1 -0
  588. package/dist/utils/chromeFetch.d.ts.map +1 -0
  589. package/dist/utils/cliOutput.d.ts +1 -0
  590. package/dist/utils/cliOutput.d.ts.map +1 -0
  591. package/dist/utils/clock.d.ts +5 -4
  592. package/dist/utils/clock.d.ts.map +1 -0
  593. package/dist/utils/clock.js +19 -16
  594. package/dist/utils/clock.js.map +1 -1
  595. package/dist/utils/debugFilter.d.ts +9 -1
  596. package/dist/utils/debugFilter.d.ts.map +1 -0
  597. package/dist/utils/debugFilter.js +60 -33
  598. package/dist/utils/debugFilter.js.map +1 -1
  599. package/dist/utils/delay.d.ts +48 -15
  600. package/dist/utils/delay.d.ts.map +1 -0
  601. package/dist/utils/delay.js +73 -20
  602. package/dist/utils/delay.js.map +1 -1
  603. package/dist/utils/errors.d.ts +32 -0
  604. package/dist/utils/errors.d.ts.map +1 -0
  605. package/dist/utils/errors.js +45 -4
  606. package/dist/utils/errors.js.map +1 -1
  607. package/dist/utils/evaluate.d.ts +1 -0
  608. package/dist/utils/evaluate.d.ts.map +1 -0
  609. package/dist/utils/evaluate.js +29 -23
  610. package/dist/utils/evaluate.js.map +1 -1
  611. package/dist/utils/ffmpeg.context.d.ts +1 -0
  612. package/dist/utils/ffmpeg.context.d.ts.map +1 -0
  613. package/dist/utils/ffmpeg.context.js.map +1 -1
  614. package/dist/utils/ffmpeg.d.ts +29 -7
  615. package/dist/utils/ffmpeg.d.ts.map +1 -0
  616. package/dist/utils/ffmpeg.js +32 -14
  617. package/dist/utils/ffmpeg.js.map +1 -1
  618. package/dist/utils/fileLogger.d.ts +3 -1
  619. package/dist/utils/fileLogger.d.ts.map +1 -0
  620. package/dist/utils/fileLogger.js +64 -29
  621. package/dist/utils/fileLogger.js.map +1 -1
  622. package/dist/utils/format.d.ts +14 -1
  623. package/dist/utils/format.d.ts.map +1 -0
  624. package/dist/utils/format.js +19 -5
  625. package/dist/utils/format.js.map +1 -1
  626. package/dist/utils/index.d.ts +4 -0
  627. package/dist/utils/index.d.ts.map +1 -0
  628. package/dist/utils/index.js +3 -0
  629. package/dist/utils/index.js.map +1 -1
  630. package/dist/utils/logEmitter.d.ts +1 -0
  631. package/dist/utils/logEmitter.d.ts.map +1 -0
  632. package/dist/utils/logger.d.ts +1 -0
  633. package/dist/utils/logger.d.ts.map +1 -0
  634. package/dist/utils/logger.js +10 -6
  635. package/dist/utils/logger.js.map +1 -1
  636. package/dist/utils/m3u.d.ts +3 -2
  637. package/dist/utils/m3u.d.ts.map +1 -0
  638. package/dist/utils/m3u.js +4 -3
  639. package/dist/utils/m3u.js.map +1 -1
  640. package/dist/utils/markup.d.ts +13 -1
  641. package/dist/utils/markup.d.ts.map +1 -0
  642. package/dist/utils/markup.js +28 -4
  643. package/dist/utils/markup.js.map +1 -1
  644. package/dist/utils/memo.d.ts +3 -2
  645. package/dist/utils/memo.d.ts.map +1 -0
  646. package/dist/utils/memo.js +3 -3
  647. package/dist/utils/morganStream.d.ts +1 -0
  648. package/dist/utils/morganStream.d.ts.map +1 -0
  649. package/dist/utils/network.d.ts +1 -0
  650. package/dist/utils/network.d.ts.map +1 -0
  651. package/dist/utils/network.js +2 -2
  652. package/dist/utils/pid.d.ts +3 -25
  653. package/dist/utils/pid.d.ts.map +1 -0
  654. package/dist/utils/pid.js +10 -49
  655. package/dist/utils/pid.js.map +1 -1
  656. package/dist/utils/platform.d.ts +3 -1
  657. package/dist/utils/platform.d.ts.map +1 -0
  658. package/dist/utils/platform.js +2 -1
  659. package/dist/utils/platform.js.map +1 -1
  660. package/dist/utils/processInspector.context.d.ts +8 -0
  661. package/dist/utils/processInspector.context.d.ts.map +1 -0
  662. package/dist/utils/processInspector.context.js +106 -0
  663. package/dist/utils/processInspector.context.js.map +1 -0
  664. package/dist/utils/processInspector.d.ts +55 -0
  665. package/dist/utils/processInspector.d.ts.map +1 -0
  666. package/dist/utils/processInspector.js +127 -0
  667. package/dist/utils/processInspector.js.map +1 -0
  668. package/dist/utils/retry.d.ts +25 -2
  669. package/dist/utils/retry.d.ts.map +1 -0
  670. package/dist/utils/retry.js +33 -6
  671. package/dist/utils/retry.js.map +1 -1
  672. package/dist/utils/runtimeIdentity.context.d.ts +7 -0
  673. package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
  674. package/dist/utils/runtimeIdentity.context.js +43 -0
  675. package/dist/utils/runtimeIdentity.context.js.map +1 -0
  676. package/dist/utils/runtimeIdentity.d.ts +98 -0
  677. package/dist/utils/runtimeIdentity.d.ts.map +1 -0
  678. package/dist/utils/runtimeIdentity.js +181 -0
  679. package/dist/utils/runtimeIdentity.js.map +1 -0
  680. package/dist/utils/sanitize.d.ts +1 -0
  681. package/dist/utils/sanitize.d.ts.map +1 -0
  682. package/dist/utils/streamContext.d.ts +2 -1
  683. package/dist/utils/streamContext.d.ts.map +1 -0
  684. package/dist/utils/streamContext.js +1 -1
  685. package/dist/utils/timing.d.ts +2 -1
  686. package/dist/utils/timing.d.ts.map +1 -0
  687. package/dist/utils/timing.js +0 -5
  688. package/dist/utils/timing.js.map +1 -1
  689. package/dist/utils/version.d.ts +1 -0
  690. package/dist/utils/version.d.ts.map +1 -0
  691. package/dist/utils/version.js +47 -13
  692. package/dist/utils/version.js.map +1 -1
  693. package/package.json +26 -20
@@ -2,21 +2,38 @@ import type { ChannelSelectorResult, Nullable, ProviderModule, ResolvedSiteProfi
2
2
  import type { Page } from "puppeteer-core";
3
3
  /**
4
4
  * Returns a direct watch URL for the channel specified in the profile, if one can be resolved. Looks up the strategy entry's resolveDirectUrl hook and calls it
5
- * with the channelSelector and page. Returns null if the strategy has no resolver, the profile has no channelSelector, or the resolver returns null.
5
+ * with the channelSelector and page; when the live cache has nothing to offer, falls back to the lineup persisted from an earlier session. Returns null if the
6
+ * profile has no channelSelector, or if neither source knows the channel.
7
+ *
8
+ * The persisted fallback is what lets the first tune of a boot whose discovery walk came back empty still reach the channel: a URL that outlived the browser
9
+ * session bypasses the guide entirely, which is exactly the surface a degraded session cannot render. It is a hint, never an authority - a URL that no longer
10
+ * works fails the establishment and is evicted by invalidateDirectUrl below. Providers that tune in-page never export watch URLs and therefore never have store
11
+ * entries, so this lookup is structurally inert for them rather than conditionally skipped.
6
12
  * @param profile - The resolved site profile.
7
13
  * @param page - The Puppeteer page object, passed through to the strategy's resolver for response interception setup or API calls.
8
14
  * @returns The direct watch URL or null.
9
15
  */
10
16
  export declare function resolveDirectUrl(profile: ResolvedSiteProfile, page: Page): Promise<Nullable<string>>;
11
17
  /**
12
- * Invalidates the cached direct watch URL for the channel specified in the profile. Looks up the strategy entry's invalidateDirectUrl hook and calls it with
13
- * the channelSelector. No-op if the strategy has no invalidator or the profile has no channelSelector.
18
+ * Invalidates the direct watch URL for the channel specified in the profile, in both the strategy's live cache and the persisted lineup, when the failure that
19
+ * prompted the call is evidence against that URL. No-op if the strategy has no invalidator or the profile has no channelSelector.
20
+ *
21
+ * The decision of what counts as evidence lives here rather than at the tune sites, so every caller gets one policy. A failure that reflects the death of the
22
+ * page or the stream's own cancellation says nothing about whether the cached URL still resolves to the right channel, and evicting on it costs the next tune
23
+ * dearly: every subsequent tune for that channel is forced through guide navigation, which during an incident is exactly the path most likely to be broken too.
24
+ * A genuine tune failure - the video never becomes ready, the channel is not on the page, navigation is refused - is evidence, and evicts.
25
+ *
26
+ * The verdict is returned so that one policy statement serves every consumer: a caller that only needs the eviction ignores it, and a caller whose next move
27
+ * depends on whether the URL was blamed reads it here rather than re-deriving the retention predicate for itself.
14
28
  * @param profile - The resolved site profile.
29
+ * @param cause - The failure that prompted the invalidation, classified here against the retention policy.
30
+ * @returns True when the failure was evidence against the URL and both hints were evicted; false when the retention policy kept them, or when there was no
31
+ * channel selector to act on.
15
32
  */
16
- export declare function invalidateDirectUrl(profile: ResolvedSiteProfile): void;
33
+ export declare function invalidateDirectUrl(profile: ResolvedSiteProfile, cause: unknown): boolean;
17
34
  /**
18
- * Clears all channel selection caches. Called by handleBrowserDisconnect() in browser/index.ts when the browser restarts, since cached state (guide row positions,
19
- * discovered page URLs, watch URLs) may be stale in a new browser session.
35
+ * Clears all channel selection caches. Called by relinquishBrowserReadiness() in browser/index.ts (shared by the disconnect handler and invalidateBrowser)
36
+ * whenever the browser is torn down, since cached state (guide row positions, discovered page URLs, watch URLs) may be stale in a new browser session.
20
37
  */
21
38
  export declare function clearChannelSelectionCaches(): void;
22
39
  /**
@@ -63,9 +80,21 @@ export declare function getProviderDomainMap(): Record<string, string>;
63
80
  */
64
81
  export declare function getProviderGuideUrls(): Record<string, string>;
65
82
  /**
66
- * Returns cached discovered channels from all provider modules, grouped by guide URL hostname. Each entry includes the hostname and an array of label/value pairs
67
- * suitable for datalist population. Only includes providers whose cache is non-null (i.e., discovery or precaching has already run). Used by the channels panel
68
- * to merge provider-discovered channels into the channel selector datalist alongside predefined channel suggestions.
83
+ * Returns every registered provider module whose guide URL lives on the given registrable domain. This is the single source of truth for matching a domain-level
84
+ * observation (a sign-in wall sighting, a post-login revalidation) to the providers it applies to. Guide URLs and login URLs on the same service extract to the
85
+ * same registrable domain, so callers pass extractDomain() of whichever URL they hold.
86
+ * @param domain - The registrable domain to match (as produced by extractDomain(), e.g., "sling.com").
87
+ * @returns Array of matching provider modules, empty when no registered provider's guide lives on the domain.
88
+ */
89
+ export declare function getProvidersForDomain(domain: string): ProviderModule[];
90
+ /**
91
+ * Returns known channels from all provider modules, grouped by guide URL hostname. Each entry includes the hostname and an array of label/value pairs suitable for
92
+ * datalist population. Used by the channels panel to merge provider channels into the channel selector datalist alongside predefined channel suggestions.
93
+ *
94
+ * Two sources, in order: the live cache a discovery or precache walk filled during this browser session, and - when this session has no cache for a provider - the
95
+ * lineup persisted from an earlier one. The two are not distinguishable to the caller except by session state, and deliberately so: the one consumer is a
96
+ * suggestion list, where an entry the provider has since dropped costs a user one failed tune, and an empty list because this boot's precache came back empty
97
+ * costs them the feature. Providers with neither source are omitted entirely.
69
98
  * @returns Array of objects with hostname and entries properties.
70
99
  */
71
100
  export declare function getCachedProviderChannels(): {
@@ -78,7 +107,7 @@ export declare function getCachedProviderChannels(): {
78
107
  }[];
79
108
  export { logAvailableChannels, normalizeChannelName, resolveMatchSelector, scrollAndClick } from "./tuning/shared.ts";
80
109
  /**
81
- * Options that callers may supply to selectChannel(). All fields are optional; omitting them preserves the historical no-op call signature.
110
+ * Options that callers may supply to selectChannel(). All fields are optional; selectChannel() may be called with no options.
82
111
  */
83
112
  export interface SelectChannelOptions {
84
113
  /**
@@ -101,10 +130,11 @@ export interface SelectChannelOptions {
101
130
  *
102
131
  * The function handles, in order:
103
132
  * - No-op short-circuit for single-channel sites (strategy "none" or no channelSelector).
104
- * - Category resolution: when the active provider declares categorySelectors and the profile's selector matches, resolveCategorySelector() is invoked to convert
105
- * the category to a concrete per-user identifier. The resolved value replaces profile.channelSelector for the rest of the call and is persisted via the
106
- * options.persistResolution callback if supplied. Resolution failures fall through with the original category selector - the strategy attempts a best-effort
107
- * match and the verifier fails open.
133
+ * - Category resolution: when the active provider declares a categoryResolution config whose selectors include the profile's selector, categoryResolution.resolve()
134
+ * is invoked to convert the category to a concrete per-user identifier. The resolved value replaces profile.channelSelector for the rest of the call and is
135
+ * persisted via the options.persistResolution callback if supplied. On a resolution failure, strict providers (categories.requireResolution) abort the tune with
136
+ * the resolver-authored reason; permissive providers fall through with the original category selector and the strategy attempts a best-effort match while the
137
+ * verifier fails open.
108
138
  * - Pre-selection scroll phase to force lazy-loaded content into the DOM (when scrollToBottom or scrollSelector+scrollTarget is set).
109
139
  * - Polling for channel element readiness before strategy dispatch (when profile.channelSelection.matchSelector is set).
110
140
  * - Strategy dispatch based on profile.channelSelection.strategy.
@@ -114,3 +144,4 @@ export interface SelectChannelOptions {
114
144
  * @returns Result object with success status and optional failure reason.
115
145
  */
116
146
  export declare function selectChannel(page: Page, profile: ResolvedSiteProfile, options?: SelectChannelOptions): Promise<ChannelSelectorResult>;
147
+ //# sourceMappingURL=channelSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channelSelection.d.ts","sourceRoot":"","sources":["../../src/browser/channelSelection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,qBAAqB,EAA2C,QAAQ,EAAE,cAAc,EAC7H,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAmE3C;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAmB1G;AAQD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CA4BzF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAMlD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAG1E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAGtF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAG3C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAS/I;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU7D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAGtE;AAaD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,IAAI;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,CAoBnI;AAID,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEtH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEnC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4NhJ"}
@@ -1,4 +1,5 @@
1
- import { LOG, delay, evaluateWithAbort, formatError } from "../utils/index.js";
1
+ import { EvaluateAbortError, LOG, delay, evaluateWithAbort, extractDomain, formatError, isPageDeathError } from "../utils/index.js";
2
+ import { evictPersistedWatchUrl, getPersistedLineup, getPersistedWatchUrl } from "../config/providerLineups.js";
2
3
  import { getDomainConfig, registerProviderModuleProfile } from "../config/sites.js";
3
4
  import { CONFIG } from "../config/index.js";
4
5
  import { coxProvider } from "./tuning/cox.js";
@@ -34,7 +35,7 @@ import { yttvProvider } from "./tuning/youtubeTv.js";
34
35
  * - strategy: A ChannelStrategyEntry with at minimum an execute hook. Also set clearCache, resolveDirectUrl, and invalidateDirectUrl as needed.
35
36
  * - discoverChannels: Reads the provider's guide for all available channels, returning DiscoveredChannel[].
36
37
  * 3. Import the provider here and add it to the providerModules array.
37
- * 4. Add the strategy name to the ChannelSelectionStrategy union type in types/index.ts.
38
+ * 4. Add the strategy name to the ChannelSelectionStrategy union type in types/profiles.ts (re-exported via types/index.ts).
38
39
  * 5. Add a DOMAIN_CONFIG entry in config/sites.ts mapping the provider's domain to the profileName.
39
40
  *
40
41
  * The coordinator handles all cross-cutting concerns (dispatch, cache clearing, direct URL resolution, matchSelector polling) through the ChannelStrategyEntry
@@ -61,7 +62,13 @@ for (const provider of providerModules) {
61
62
  }
62
63
  /**
63
64
  * Returns a direct watch URL for the channel specified in the profile, if one can be resolved. Looks up the strategy entry's resolveDirectUrl hook and calls it
64
- * with the channelSelector and page. Returns null if the strategy has no resolver, the profile has no channelSelector, or the resolver returns null.
65
+ * with the channelSelector and page; when the live cache has nothing to offer, falls back to the lineup persisted from an earlier session. Returns null if the
66
+ * profile has no channelSelector, or if neither source knows the channel.
67
+ *
68
+ * The persisted fallback is what lets the first tune of a boot whose discovery walk came back empty still reach the channel: a URL that outlived the browser
69
+ * session bypasses the guide entirely, which is exactly the surface a degraded session cannot render. It is a hint, never an authority - a URL that no longer
70
+ * works fails the establishment and is evicted by invalidateDirectUrl below. Providers that tune in-page never export watch URLs and therefore never have store
71
+ * entries, so this lookup is structurally inert for them rather than conditionally skipped.
65
72
  * @param profile - The resolved site profile.
66
73
  * @param page - The Puppeteer page object, passed through to the strategy's resolver for response interception setup or API calls.
67
74
  * @returns The direct watch URL or null.
@@ -71,23 +78,55 @@ export async function resolveDirectUrl(profile, page) {
71
78
  if (!channelSelector) {
72
79
  return null;
73
80
  }
74
- return await strategies[channelSelection.strategy]?.resolveDirectUrl?.(channelSelector, page) ?? null;
81
+ const resolved = await strategies[channelSelection.strategy]?.resolveDirectUrl?.(channelSelector, page) ?? null;
82
+ if (resolved) {
83
+ return resolved;
84
+ }
85
+ const provider = getProviderByStrategy(channelSelection.strategy);
86
+ return provider ? getPersistedWatchUrl(provider.slug, channelSelector) : null;
75
87
  }
88
+ /* The retention policy for cached watch URLs, named once so the two conditions it unions stay one concept rather than an expression a later edit can drop an arm
89
+ * from. A tune that died because the page, context, or frame went away, or because the stream itself was cancelled, produced no evidence about the URL it was
90
+ * navigating to.
91
+ */
92
+ const retainsCachedUrl = (cause) => isPageDeathError(cause) || (cause instanceof EvaluateAbortError);
76
93
  /**
77
- * Invalidates the cached direct watch URL for the channel specified in the profile. Looks up the strategy entry's invalidateDirectUrl hook and calls it with
78
- * the channelSelector. No-op if the strategy has no invalidator or the profile has no channelSelector.
94
+ * Invalidates the direct watch URL for the channel specified in the profile, in both the strategy's live cache and the persisted lineup, when the failure that
95
+ * prompted the call is evidence against that URL. No-op if the strategy has no invalidator or the profile has no channelSelector.
96
+ *
97
+ * The decision of what counts as evidence lives here rather than at the tune sites, so every caller gets one policy. A failure that reflects the death of the
98
+ * page or the stream's own cancellation says nothing about whether the cached URL still resolves to the right channel, and evicting on it costs the next tune
99
+ * dearly: every subsequent tune for that channel is forced through guide navigation, which during an incident is exactly the path most likely to be broken too.
100
+ * A genuine tune failure - the video never becomes ready, the channel is not on the page, navigation is refused - is evidence, and evicts.
101
+ *
102
+ * The verdict is returned so that one policy statement serves every consumer: a caller that only needs the eviction ignores it, and a caller whose next move
103
+ * depends on whether the URL was blamed reads it here rather than re-deriving the retention predicate for itself.
79
104
  * @param profile - The resolved site profile.
105
+ * @param cause - The failure that prompted the invalidation, classified here against the retention policy.
106
+ * @returns True when the failure was evidence against the URL and both hints were evicted; false when the retention policy kept them, or when there was no
107
+ * channel selector to act on.
80
108
  */
81
- export function invalidateDirectUrl(profile) {
109
+ export function invalidateDirectUrl(profile, cause) {
82
110
  const { channelSelection, channelSelector } = profile;
83
111
  if (!channelSelector) {
84
- return;
112
+ return false;
113
+ }
114
+ if (retainsCachedUrl(cause)) {
115
+ LOG.debug("tuning:cache", "Retaining the cached direct URL for %s: %s.", channelSelector, formatError(cause));
116
+ return false;
85
117
  }
86
118
  strategies[channelSelection.strategy]?.invalidateDirectUrl?.(channelSelector);
119
+ // The same evidence that discredits the live cache entry discredits the persisted hint it may have come from, so both go together - otherwise the next boot
120
+ // would resurrect the URL this tune just proved wrong.
121
+ const provider = getProviderByStrategy(channelSelection.strategy);
122
+ if (provider) {
123
+ evictPersistedWatchUrl(provider.slug, channelSelector);
124
+ }
125
+ return true;
87
126
  }
88
127
  /**
89
- * Clears all channel selection caches. Called by handleBrowserDisconnect() in browser/index.ts when the browser restarts, since cached state (guide row positions,
90
- * discovered page URLs, watch URLs) may be stale in a new browser session.
128
+ * Clears all channel selection caches. Called by relinquishBrowserReadiness() in browser/index.ts (shared by the disconnect handler and invalidateBrowser)
129
+ * whenever the browser is torn down, since cached state (guide row positions, discovered page URLs, watch URLs) may be stale in a new browser session.
91
130
  */
92
131
  export function clearChannelSelectionCaches() {
93
132
  for (const entry of Object.values(strategies)) {
@@ -156,15 +195,38 @@ export function getProviderGuideUrls() {
156
195
  return map;
157
196
  }
158
197
  /**
159
- * Returns cached discovered channels from all provider modules, grouped by guide URL hostname. Each entry includes the hostname and an array of label/value pairs
160
- * suitable for datalist population. Only includes providers whose cache is non-null (i.e., discovery or precaching has already run). Used by the channels panel
161
- * to merge provider-discovered channels into the channel selector datalist alongside predefined channel suggestions.
198
+ * Returns every registered provider module whose guide URL lives on the given registrable domain. This is the single source of truth for matching a domain-level
199
+ * observation (a sign-in wall sighting, a post-login revalidation) to the providers it applies to. Guide URLs and login URLs on the same service extract to the
200
+ * same registrable domain, so callers pass extractDomain() of whichever URL they hold.
201
+ * @param domain - The registrable domain to match (as produced by extractDomain(), e.g., "sling.com").
202
+ * @returns Array of matching provider modules, empty when no registered provider's guide lives on the domain.
203
+ */
204
+ export function getProvidersForDomain(domain) {
205
+ return providerModules.filter((p) => extractDomain(p.guideUrl) === domain);
206
+ }
207
+ /**
208
+ * Projects a provider's persisted lineup onto the discovered-channel shape, for the paths that read a lineup this session has not walked for itself. The
209
+ * persisted rows carry channel identity only, so the projection adds nothing beyond it.
210
+ * @param slug - The provider slug to look up.
211
+ * @returns The persisted lineup as discovered channels, or null when nothing is persisted for the slug.
212
+ */
213
+ function persistedLineupAsDiscovered(slug) {
214
+ return getPersistedLineup(slug)?.map((channel) => ({ channelSelector: channel.channelSelector, name: channel.name })) ?? null;
215
+ }
216
+ /**
217
+ * Returns known channels from all provider modules, grouped by guide URL hostname. Each entry includes the hostname and an array of label/value pairs suitable for
218
+ * datalist population. Used by the channels panel to merge provider channels into the channel selector datalist alongside predefined channel suggestions.
219
+ *
220
+ * Two sources, in order: the live cache a discovery or precache walk filled during this browser session, and - when this session has no cache for a provider - the
221
+ * lineup persisted from an earlier one. The two are not distinguishable to the caller except by session state, and deliberately so: the one consumer is a
222
+ * suggestion list, where an entry the provider has since dropped costs a user one failed tune, and an empty list because this boot's precache came back empty
223
+ * costs them the feature. Providers with neither source are omitted entirely.
162
224
  * @returns Array of objects with hostname and entries properties.
163
225
  */
164
226
  export function getCachedProviderChannels() {
165
227
  const results = [];
166
228
  for (const provider of providerModules) {
167
- const cached = provider.getCachedChannels();
229
+ const cached = provider.getCachedChannels() ?? persistedLineupAsDiscovered(provider.slug);
168
230
  if (!cached) {
169
231
  continue;
170
232
  }
@@ -183,10 +245,11 @@ export { logAvailableChannels, normalizeChannelName, resolveMatchSelector, scrol
183
245
  *
184
246
  * The function handles, in order:
185
247
  * - No-op short-circuit for single-channel sites (strategy "none" or no channelSelector).
186
- * - Category resolution: when the active provider declares categorySelectors and the profile's selector matches, resolveCategorySelector() is invoked to convert
187
- * the category to a concrete per-user identifier. The resolved value replaces profile.channelSelector for the rest of the call and is persisted via the
188
- * options.persistResolution callback if supplied. Resolution failures fall through with the original category selector - the strategy attempts a best-effort
189
- * match and the verifier fails open.
248
+ * - Category resolution: when the active provider declares a categoryResolution config whose selectors include the profile's selector, categoryResolution.resolve()
249
+ * is invoked to convert the category to a concrete per-user identifier. The resolved value replaces profile.channelSelector for the rest of the call and is
250
+ * persisted via the options.persistResolution callback if supplied. On a resolution failure, strict providers (categories.requireResolution) abort the tune with
251
+ * the resolver-authored reason; permissive providers fall through with the original category selector and the strategy attempts a best-effort match while the
252
+ * verifier fails open.
190
253
  * - Pre-selection scroll phase to force lazy-loaded content into the DOM (when scrollToBottom or scrollSelector+scrollTarget is set).
191
254
  * - Polling for channel element readiness before strategy dispatch (when profile.channelSelection.matchSelector is set).
192
255
  * - Strategy dispatch based on profile.channelSelection.strategy.
@@ -1 +1 @@
1
- {"version":3,"file":"channelSelection.js","sourceRoot":"","sources":["../../src/browser/channelSelection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channelSelection.js","sourceRoot":"","sources":["../../src/browser/channelSelection.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpI,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,kKAAkK;AAClK,8FAA8F;AAC9F,MAAM,eAAe,GAA8B;IACjD,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY;CACrI,CAAC;AAEF,uJAAuJ;AACvJ,MAAM,UAAU,GAAyC,MAAM,CAAC,WAAW,CAAC;IAC1E,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAE,CAAC;IAC7D,CAAE,cAAc,EAAE,oBAAoB,CAAE;IACxC,CAAE,WAAW,EAAE,iBAAiB,CAAE;CACnC,CAAyC,CAAC;AAE3C,4JAA4J;AAC5J,uJAAuJ;AACvJ,KAAI,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;IAEtC,IAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,6BAA6B,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA4B,EAAE,IAAU;IAE7E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEtD,IAAG,CAAC,eAAe,EAAE,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;IAEhH,IAAG,QAAQ,EAAE,CAAC;QAEZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,kBAAkB,CAAC,CAAC;AAEvH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4B,EAAE,KAAc;IAE9E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEtD,IAAG,CAAC,eAAe,EAAE,CAAC;QAEpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAE3B,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,6CAA6C,EAAE,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9G,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC,eAAe,CAAC,CAAC;IAE9E,4JAA4J;IAC5J,uDAAuD;IACvD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAElE,IAAG,QAAQ,EAAE,CAAC;QAEZ,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IAEzC,KAAI,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAE7C,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAE5C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,YAAoB;IAExD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAE9B,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IAEnC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;QAC5C,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxI,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAElC,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,KAAI,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QAEtC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3D,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAElC,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,KAAI,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QAEtC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAElD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,IAAY;IAE/C,OAAO,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;AAChI,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB;IAEvC,MAAM,OAAO,GAA4F,EAAE,CAAC;IAE5G,KAAI,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,EAAE,IAAI,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE1F,IAAG,CAAC,MAAM,EAAE,CAAC;YAEX,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAE7G,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+JAA+J;AAC/J,oIAAoI;AACpI,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAsBtH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,OAA4B,EAAE,UAAgC,EAAE;IAE9G,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAErC,wFAAwF;IACxF,IAAG,CAAC,gBAAgB,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;QAEjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,8JAA8J;IAC9J,mKAAmK;IACnK,8CAA8C;IAC9C,IAAI,aAAa,GAA4B,OAAO,CAAC;IAErD,2JAA2J;IAC3J,kKAAkK;IAClK,iKAAiK;IACjK,gKAAgK;IAChK,gKAAgK;IAChK,oJAAoJ;IACpJ,EAAE;IACF,6JAA6J;IAC7J,sHAAsH;IACtH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,QAAQ,EAAE,kBAAkB,CAAC;IAExD,IAAG,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;QAEzE,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAEzF,IAAG,UAAU,IAAI,UAAU,EAAE,CAAC;YAE5B,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,qDAAqD,EAAE,aAAa,CAAC,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC;YAE7J,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;YAE3E,IAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAE7B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBAErC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,YAAqB,EAAE,EAAE;oBAElE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,6DAA6D,EAAE,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1H,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAG,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;YAE/C,2JAA2J;YAC3J,sJAAsJ;YACtJ,qHAAqH;YACrH,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC;aAAM,CAAC;YAEN,4JAA4J;YAC5J,4JAA4J;YAC5J,WAAW;YACX,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAGpD,IAAG,CAAC,KAAK,EAAE,CAAC;QAEV,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE/E,OAAO,EAAE,MAAM,EAAE,qCAAqC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;IAED,6JAA6J;IAC7J,oJAAoJ;IACpJ,8JAA8J;IAC9J,8JAA8J;IAC9J,oHAAoH;IACpH,IAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAEnC,8JAA8J;QAC9J,+JAA+J;QAC/J,aAAa;QACb,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,eAAe,CAAC,GAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QACzI,CAAC;QAAC,MAAM,CAAC;YAEP,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,oGAAoG,EAChI,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACzI,CAAC;QAED,oHAAoH;QACpH,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,0DAA0D,EACtF,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAG,gBAAgB,CAAC,cAAc,IAAI,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAE3E,8JAA8J;QAC9J,+JAA+J;QAC/J,8JAA8J;QAC9J,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,0GAA0G;QAC1G,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1G,CAAC;QAAC,MAAM,CAAC;YAEP,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,sEAAsE,EAClG,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC;QAED,iKAAiK;QACjK,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;QAElE,iHAAiH;QACjH,OAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YAE9C,4CAA4C;YAC5C,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAgB,EAAE,MAAc,EAAW,EAAE;gBAElF,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBAEhE,IAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;wBAEnC,EAAkB,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAE7E,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,EAAE,CAAE,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,CAAC,YAAY,CAAE,CAAC,CAAC;YAEvE,IAAG,KAAK,EAAE,CAAC;gBAET,MAAM;YACR,CAAC;YAED,wFAAwF;YACxF,4CAA4C;YAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,4CAA4C;YAC5C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,IAAG,KAAK,EAAE,CAAC;YAET,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,gEAAgE,EAC5F,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAElE,2EAA2E;YAC3E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YAEN,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,QAAgB,EAAY,EAAE;gBAE5E,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5F,CAAC,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;YAEtC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,4EAA4E,EACxG,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;IAED,4IAA4I;IAC5I,+JAA+J;IAC/J,yJAAyJ;IACzJ,oEAAoE;IACpE,IAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAErD,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,gDAAgD,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAEhI,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,eAAe,CACxB,CAAC,GAAW,EAAW,EAAE;gBAEvB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAEvC,IAAG,CAAC,EAAE,EAAE,CAAC;oBAEP,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;gBAExC,IAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAE5C,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,8DAA8D;gBAC9D,IAAG,EAAE,YAAY,gBAAgB,EAAE,CAAC;oBAElC,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,EACD,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EACjD,QAAQ,CACT,CAAC;YAEF,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,0DAA0D,CAAC,CAAC;QAC5F,CAAC;QAAC,MAAM,CAAC;YAEP,oIAAoI;YACpI,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,4EAA4E,EAAE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QACpJ,CAAC;IACH,CAAC;IAED,wJAAwJ;IACxJ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAExD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,152 @@
1
+ import type { Clock } from "../utils/index.ts";
2
+ import type { Page } from "puppeteer-core";
3
+ import type { ResolvedSiteProfile } from "../types/index.ts";
4
+ export declare const ACCEPT_AFFORDANCE_SOURCE = "\\b(accept|agree|allow|enable|consent|got it|i understand|load)\\b";
5
+ export declare const EMBED_GATE_SOURCE: string;
6
+ export declare const EXCLUDE_SOURCE: string;
7
+ /**
8
+ * The phase of the page's lifecycle a poll is covering. The phase - not the call site - decides which overlay actions the poll may take and how long it may run,
9
+ * both read from PHASE_POLICY. Every externally navigated surface declares its phase where it launches the poll.
10
+ *
11
+ * - "discovery": a channel-discovery or precache walk; navigation plus a cold-cache guide walk, no embed-gate accept.
12
+ * - "postGateReload": the reload the video wait triggers after accepting an embed gate; cookie rejection and modal dismissal stay live, but the gate probe is off.
13
+ * - "staticCapture": a static-page capture whose pixels are the content; a bounded load-window poll with no abort owner.
14
+ * - "tuneSetup": a tune's channel-selection walk and click-to-play, before the video wait; the caller aborts it at the phase boundary.
15
+ * - "videoWait": the tune's wait for the player to become ready; the only phase that composes with an embed-gate accept and its paired reload.
16
+ */
17
+ export type OverlayPhase = "discovery" | "postGateReload" | "staticCapture" | "tuneSetup" | "videoWait";
18
+ /**
19
+ * A known cookie-consent management platform (CMP) vendor. Detection and the reject affordance are both vendor-standardized selectors, so one entry covers every
20
+ * site using that vendor. Only vendors whose reject selector has been verified against a live banner are seeded here; the list grows as vendors are verified.
21
+ */
22
+ interface CmpVendor {
23
+ readonly detect: string;
24
+ readonly reject: string;
25
+ readonly vendor: string;
26
+ }
27
+ /**
28
+ * Vendor-keyed registry of known cookie-consent CMPs. This is NOT a per-site whitelist - each entry covers every site that embeds the vendor. Seeded with Didomi,
29
+ * whose reject selector was verified live (france24); additional vendors (OneTrust, Cookiebot, ...) are added here as their reject selectors are verified. Exported so
30
+ * the DOM-fixture tests build a banner fixture from the same detect and reject selectors the poll uses, rather than duplicating the vendor's markers into the test.
31
+ */
32
+ export declare const CMP_REGISTRY: readonly CmpVendor[];
33
+ /**
34
+ * The kind of overlay that was automatically handled, for the unified auto-dismiss log convention.
35
+ */
36
+ type AutoDismissKind = "cookie-consent" | "embed-gate" | "modal";
37
+ /**
38
+ * The result of clickSelectorSynthetic's in-page attempt to dismiss a per-site modal. All three are non-empty strings so the caller MUST branch with a switch, never
39
+ * on truthiness - "invalid-selector" and "absent" are both "no click happened" yet demand opposite handling (disable versus keep trying).
40
+ *
41
+ * - "absent": the selector is valid but matched no element this tick; keep the dismiss action armed for a later tick.
42
+ * - "clicked": the element was found and clicked; the dismiss action is done for this poll.
43
+ * - "invalid-selector": querySelector rejected the selector as malformed; the dismiss action is disabled for the rest of this poll.
44
+ */
45
+ type SyntheticClickResult = "absent" | "clicked" | "invalid-selector";
46
+ /**
47
+ * Structured detail for an auto-dismiss event. Every field is optional; callers supply whichever identifies the overlay they acted on.
48
+ */
49
+ interface AutoDismissDetail {
50
+ readonly label?: string;
51
+ readonly selector?: string;
52
+ readonly vendor?: string;
53
+ }
54
+ /**
55
+ * Base options shared by every overlay-handling phase.
56
+ */
57
+ interface OverlayHandlingBaseOptions {
58
+ readonly clock?: Clock;
59
+ readonly signal?: AbortSignal;
60
+ }
61
+ /**
62
+ * Options for startOverlayHandling(). A discriminated union on `phase`: only the videoWait arm carries onEmbedGateAccepted, because only that phase may accept an
63
+ * embed gate and follow through with the paired reload. Every other phase forbids the callback at the type level, so a gate acceptance is unrepresentable outside
64
+ * the video wait. The poll window is NOT an option - it is owned by PHASE_POLICY.
65
+ */
66
+ export type StartOverlayHandlingOptions = ({
67
+ readonly onEmbedGateAccepted: () => void;
68
+ readonly phase: "videoWait";
69
+ } & OverlayHandlingBaseOptions) | ({
70
+ readonly onEmbedGateAccepted?: never;
71
+ readonly phase: Exclude<OverlayPhase, "videoWait">;
72
+ } & OverlayHandlingBaseOptions);
73
+ /**
74
+ * Emits the unified auto-dismiss log line. Every path that automatically acts on an overlay - CMP reject, embed-gate accept, per-site modal dismiss, and the Comcast
75
+ * "Watch Now" modal - routes through here so the behavior is reported consistently at INFO with the same voice, plus a verbose DEBUG companion under the
76
+ * browser:consent category. This is the single source of truth for "we interacted with an on-page prompt on the viewer's behalf" reporting.
77
+ * @param kind - Which overlay class was handled.
78
+ * @param detail - Identifying detail for the overlay (vendor, selector, or label).
79
+ */
80
+ export declare function logAutoDismiss(kind: AutoDismissKind, detail?: AutoDismissDetail): void;
81
+ /**
82
+ * In-page coordinate resolver for a selector-identified element. Returns the viewport-center coordinates of the element after scrolling it into view, or null when the
83
+ * element is absent or has zero layout size (display:none, an unlaid-out node) and therefore cannot be coordinate-clicked. This is the read half of
84
+ * clickSelectorByCoordinate: it resolves where to click, and the Node-side caller dispatches the real pointer-event chain at those coordinates.
85
+ *
86
+ * This function crosses the page.evaluate boundary by source serialization, so it is self-contained: it references only its argument and the page's document global,
87
+ * with every input a parameter and zero outer-scope references - a captured variable would be undefined once the function is stringified into the page. Exported so
88
+ * unit tests can run it against a synthetic DOM.
89
+ * @param sel - The CSS selector for the element to locate.
90
+ * @returns The element's post-scroll viewport-center coordinates, or null when it is absent or has zero layout size.
91
+ */
92
+ export declare function locateSelectorCoordinate(sel: string): {
93
+ x: number;
94
+ y: number;
95
+ } | null;
96
+ /**
97
+ * 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
+ * and killing the poll tick. Reports "clicked" when the element is found and clicked, and "absent" when a valid selector matches nothing this tick.
99
+ *
100
+ * This function crosses the page.evaluate boundary by source serialization, so it is self-contained: it references only its argument and the page's document global,
101
+ * with every input a parameter and zero outer-scope references - a captured variable would be undefined once the function is stringified into the page. Exported so
102
+ * unit tests can run it against a synthetic DOM.
103
+ * @param sel - The CSS selector for the element to dismiss.
104
+ * @returns "clicked" when the element was found and clicked, "absent" when the valid selector matched nothing, "invalid-selector" when the selector is malformed.
105
+ */
106
+ export declare function clickSelectorInPage(sel: string): SyntheticClickResult;
107
+ /**
108
+ * In-page embed-gate scanner. Recognizes an embedded-player consent gate by shape: a button, a button-role element, or an anchor whose label matches the accept
109
+ * affordance AND whose ancestor container (within a bounded depth) carries the 2-click-embed phrasing, excluding sign-in/paywall/age walls. Early-outs to null when a
110
+ * video is already buffered for playback, so it never fires on a page that is succeeding without an overlay. The act flag splits detection from action: act false
111
+ * reports presence and label only, touching nothing; act true scrolls the matched control into view and returns its viewport-center coordinates for a real click.
112
+ *
113
+ * This function crosses the page.evaluate boundary by source serialization, so it is self-contained: it references only its argument and the page's document global,
114
+ * with every input a parameter - the accept, exclude, and gate regex SOURCES (a RegExp cannot cross the boundary, so they arrive as strings and are compiled here)
115
+ * and the act flag - and zero outer-scope references, since a captured variable would be undefined once the function is stringified into the page. Exported so unit
116
+ * tests can run it against a synthetic DOM.
117
+ * @param args - The accept-affordance, exclude, and embed-gate phrasing regex sources, plus the act flag.
118
+ * @returns The gate's label (and, on the acting path, its post-scroll center coordinates), or null when no gate is detected.
119
+ */
120
+ export declare function scanForEmbedGate(args: {
121
+ accept: string;
122
+ act: boolean;
123
+ exclude: string;
124
+ gate: string;
125
+ }): {
126
+ label: string;
127
+ x?: number;
128
+ y?: number;
129
+ } | null;
130
+ /**
131
+ * Reports whether a consent or cookie prompt is currently present on the page. Used on the failure path to decide whether to replace a cryptic video-selector
132
+ * timeout with actionable detect-and-guide messaging. A prompt is "present" when a known CMP banner is detected or an embedded-player consent gate is located. The
133
+ * gate probe runs in read-only mode, so this detection never scrolls or clicks the page it is classifying.
134
+ * @param page - The Puppeteer page.
135
+ * @returns True if a consent overlay is present.
136
+ */
137
+ export declare function consentOverlayPresent(page: Page): Promise<boolean>;
138
+ /**
139
+ * Launches the fire-and-forget overlay-handling poll for one phase of a page's lifecycle. Runs concurrently with whatever the phase covers, never blocks it, and
140
+ * never throws - it is the single mechanism that rejects known cookie banners, accepts embedded-player consent gates (video wait only), and dismisses per-site
141
+ * 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
142
+ * soon as its phase settles.
143
+ *
144
+ * 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
145
+ * acceptance only takes effect on a fresh load - the caller abandons the in-flight wait and reloads.
146
+ * @param page - The Puppeteer page.
147
+ * @param profile - The resolved site profile.
148
+ * @param options - The phase, an optional clock and abort signal, and (videoWait only) the embed-gate callback. See StartOverlayHandlingOptions.
149
+ */
150
+ export declare function startOverlayHandling(page: Page, profile: ResolvedSiteProfile, options: StartOverlayHandlingOptions): Promise<void>;
151
+ export {};
152
+ //# sourceMappingURL=consent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/browser/consent.ts"],"names":[],"mappings":"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"}