prismcast 1.10.2 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/dist/app.d.ts +6 -3
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +140 -86
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/blockedPage.d.ts +80 -0
  6. package/dist/browser/blockedPage.d.ts.map +1 -0
  7. package/dist/browser/blockedPage.js +209 -0
  8. package/dist/browser/blockedPage.js.map +1 -0
  9. package/dist/browser/browserSupervisor.d.ts +80 -0
  10. package/dist/browser/browserSupervisor.d.ts.map +1 -0
  11. package/dist/browser/browserSupervisor.js +186 -0
  12. package/dist/browser/browserSupervisor.js.map +1 -0
  13. package/dist/browser/cdp.d.ts +1 -0
  14. package/dist/browser/cdp.d.ts.map +1 -0
  15. package/dist/browser/cdp.js +6 -5
  16. package/dist/browser/cdp.js.map +1 -1
  17. package/dist/browser/channelSelection.d.ts +45 -14
  18. package/dist/browser/channelSelection.d.ts.map +1 -0
  19. package/dist/browser/channelSelection.js +81 -18
  20. package/dist/browser/channelSelection.js.map +1 -1
  21. package/dist/browser/consent.d.ts +152 -0
  22. package/dist/browser/consent.d.ts.map +1 -0
  23. package/dist/browser/consent.js +418 -0
  24. package/dist/browser/consent.js.map +1 -0
  25. package/dist/browser/display.d.ts +1 -0
  26. package/dist/browser/display.d.ts.map +1 -0
  27. package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
  28. package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
  29. package/dist/browser/hlsPlaylistObserver.js +132 -0
  30. package/dist/browser/hlsPlaylistObserver.js.map +1 -0
  31. package/dist/browser/index.d.ts +67 -40
  32. package/dist/browser/index.d.ts.map +1 -0
  33. package/dist/browser/index.js +508 -300
  34. package/dist/browser/index.js.map +1 -1
  35. package/dist/browser/launchGovernor.d.ts +89 -0
  36. package/dist/browser/launchGovernor.d.ts.map +1 -0
  37. package/dist/browser/launchGovernor.js +96 -0
  38. package/dist/browser/launchGovernor.js.map +1 -0
  39. package/dist/browser/login.d.ts +10 -2
  40. package/dist/browser/login.d.ts.map +1 -0
  41. package/dist/browser/login.js +36 -5
  42. package/dist/browser/login.js.map +1 -1
  43. package/dist/browser/manifestInterceptor.d.ts +102 -49
  44. package/dist/browser/manifestInterceptor.d.ts.map +1 -0
  45. package/dist/browser/manifestInterceptor.js +219 -237
  46. package/dist/browser/manifestInterceptor.js.map +1 -1
  47. package/dist/browser/pageStaleness.d.ts +30 -0
  48. package/dist/browser/pageStaleness.d.ts.map +1 -0
  49. package/dist/browser/pageStaleness.js +76 -0
  50. package/dist/browser/pageStaleness.js.map +1 -0
  51. package/dist/browser/precaching.d.ts +95 -3
  52. package/dist/browser/precaching.d.ts.map +1 -0
  53. package/dist/browser/precaching.js +499 -65
  54. package/dist/browser/precaching.js.map +1 -1
  55. package/dist/browser/tabNetworkObserver.d.ts +49 -0
  56. package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
  57. package/dist/browser/tabNetworkObserver.js +144 -0
  58. package/dist/browser/tabNetworkObserver.js.map +1 -0
  59. package/dist/browser/tuning/cache.d.ts +61 -0
  60. package/dist/browser/tuning/cache.d.ts.map +1 -0
  61. package/dist/browser/tuning/cache.js +62 -0
  62. package/dist/browser/tuning/cache.js.map +1 -0
  63. package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
  64. package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
  65. package/dist/browser/tuning/comcastPolymer.js +79 -102
  66. package/dist/browser/tuning/comcastPolymer.js.map +1 -1
  67. package/dist/browser/tuning/cox.d.ts +1 -0
  68. package/dist/browser/tuning/cox.d.ts.map +1 -0
  69. package/dist/browser/tuning/directv.d.ts +1 -0
  70. package/dist/browser/tuning/directv.d.ts.map +1 -0
  71. package/dist/browser/tuning/directv.js +52 -46
  72. package/dist/browser/tuning/directv.js.map +1 -1
  73. package/dist/browser/tuning/fox.d.ts +1 -0
  74. package/dist/browser/tuning/fox.d.ts.map +1 -0
  75. package/dist/browser/tuning/fox.js +13 -12
  76. package/dist/browser/tuning/fox.js.map +1 -1
  77. package/dist/browser/tuning/gridSearch.d.ts +68 -0
  78. package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
  79. package/dist/browser/tuning/gridSearch.js +85 -0
  80. package/dist/browser/tuning/gridSearch.js.map +1 -0
  81. package/dist/browser/tuning/hbo.d.ts +1 -0
  82. package/dist/browser/tuning/hbo.d.ts.map +1 -0
  83. package/dist/browser/tuning/hbo.js +73 -45
  84. package/dist/browser/tuning/hbo.js.map +1 -1
  85. package/dist/browser/tuning/hulu.d.ts +1 -0
  86. package/dist/browser/tuning/hulu.d.ts.map +1 -0
  87. package/dist/browser/tuning/hulu.js +128 -173
  88. package/dist/browser/tuning/hulu.js.map +1 -1
  89. package/dist/browser/tuning/shared.d.ts +75 -5
  90. package/dist/browser/tuning/shared.d.ts.map +1 -0
  91. package/dist/browser/tuning/shared.js +216 -6
  92. package/dist/browser/tuning/shared.js.map +1 -1
  93. package/dist/browser/tuning/sling.d.ts +1 -0
  94. package/dist/browser/tuning/sling.d.ts.map +1 -0
  95. package/dist/browser/tuning/sling.js +105 -126
  96. package/dist/browser/tuning/sling.js.map +1 -1
  97. package/dist/browser/tuning/spectrum.d.ts +1 -0
  98. package/dist/browser/tuning/spectrum.d.ts.map +1 -0
  99. package/dist/browser/tuning/spectrum.js +80 -125
  100. package/dist/browser/tuning/spectrum.js.map +1 -1
  101. package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
  102. package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
  103. package/dist/browser/tuning/thumbnailRow.js +8 -2
  104. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  105. package/dist/browser/tuning/tileClick.d.ts +1 -0
  106. package/dist/browser/tuning/tileClick.d.ts.map +1 -0
  107. package/dist/browser/tuning/tileClick.js +3 -2
  108. package/dist/browser/tuning/tileClick.js.map +1 -1
  109. package/dist/browser/tuning/xfinity.d.ts +1 -0
  110. package/dist/browser/tuning/xfinity.d.ts.map +1 -0
  111. package/dist/browser/tuning/youtubeTv.d.ts +1 -0
  112. package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
  113. package/dist/browser/tuning/youtubeTv.js +74 -127
  114. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  115. package/dist/browser/video.d.ts +54 -14
  116. package/dist/browser/video.d.ts.map +1 -0
  117. package/dist/browser/video.js +296 -138
  118. package/dist/browser/video.js.map +1 -1
  119. package/dist/channels/index.d.ts +1 -0
  120. package/dist/channels/index.d.ts.map +1 -0
  121. package/dist/channels/index.js +12 -9
  122. package/dist/channels/index.js.map +1 -1
  123. package/dist/config/channelForm.d.ts +15 -1
  124. package/dist/config/channelForm.d.ts.map +1 -0
  125. package/dist/config/channelForm.js +28 -12
  126. package/dist/config/channelForm.js.map +1 -1
  127. package/dist/config/consistencyProbe.d.ts +1 -0
  128. package/dist/config/consistencyProbe.d.ts.map +1 -0
  129. package/dist/config/consistencyProbe.js +27 -21
  130. package/dist/config/consistencyProbe.js.map +1 -1
  131. package/dist/config/health.d.ts +41 -8
  132. package/dist/config/health.d.ts.map +1 -0
  133. package/dist/config/health.js +189 -38
  134. package/dist/config/health.js.map +1 -1
  135. package/dist/config/index.d.ts +55 -3
  136. package/dist/config/index.d.ts.map +1 -0
  137. package/dist/config/index.js +320 -69
  138. package/dist/config/index.js.map +1 -1
  139. package/dist/config/paths.d.ts +10 -9
  140. package/dist/config/paths.d.ts.map +1 -0
  141. package/dist/config/paths.js +11 -11
  142. package/dist/config/paths.js.map +1 -1
  143. package/dist/config/persistence.context.d.ts +1 -0
  144. package/dist/config/persistence.context.d.ts.map +1 -0
  145. package/dist/config/persistence.d.ts +13 -10
  146. package/dist/config/persistence.d.ts.map +1 -0
  147. package/dist/config/persistence.js +40 -21
  148. package/dist/config/persistence.js.map +1 -1
  149. package/dist/config/presets.d.ts +1 -0
  150. package/dist/config/presets.d.ts.map +1 -0
  151. package/dist/config/profiles.d.ts +22 -15
  152. package/dist/config/profiles.d.ts.map +1 -0
  153. package/dist/config/profiles.js +81 -47
  154. package/dist/config/profiles.js.map +1 -1
  155. package/dist/config/providerLineups.d.ts +47 -0
  156. package/dist/config/providerLineups.d.ts.map +1 -0
  157. package/dist/config/providerLineups.js +137 -0
  158. package/dist/config/providerLineups.js.map +1 -0
  159. package/dist/config/reactivity.d.ts +84 -0
  160. package/dist/config/reactivity.d.ts.map +1 -0
  161. package/dist/config/reactivity.js +226 -0
  162. package/dist/config/reactivity.js.map +1 -0
  163. package/dist/config/servicePacks.d.ts +18 -2
  164. package/dist/config/servicePacks.d.ts.map +1 -0
  165. package/dist/config/servicePacks.js +53 -11
  166. package/dist/config/servicePacks.js.map +1 -1
  167. package/dist/config/services.d.ts +21 -15
  168. package/dist/config/services.d.ts.map +1 -0
  169. package/dist/config/services.js +35 -24
  170. package/dist/config/services.js.map +1 -1
  171. package/dist/config/sites.d.ts +6 -4
  172. package/dist/config/sites.d.ts.map +1 -0
  173. package/dist/config/sites.js +15 -11
  174. package/dist/config/sites.js.map +1 -1
  175. package/dist/config/userChannels.d.ts +129 -30
  176. package/dist/config/userChannels.d.ts.map +1 -0
  177. package/dist/config/userChannels.js +333 -68
  178. package/dist/config/userChannels.js.map +1 -1
  179. package/dist/config/userConfig.d.ts +14 -9
  180. package/dist/config/userConfig.d.ts.map +1 -0
  181. package/dist/config/userConfig.js +87 -25
  182. package/dist/config/userConfig.js.map +1 -1
  183. package/dist/config/userProfiles.d.ts +10 -6
  184. package/dist/config/userProfiles.d.ts.map +1 -0
  185. package/dist/config/userProfiles.js +64 -39
  186. package/dist/config/userProfiles.js.map +1 -1
  187. package/dist/hdhr/channelMap.d.ts +1 -0
  188. package/dist/hdhr/channelMap.d.ts.map +1 -0
  189. package/dist/hdhr/deviceId.d.ts +1 -0
  190. package/dist/hdhr/deviceId.d.ts.map +1 -0
  191. package/dist/hdhr/discover.d.ts +1 -0
  192. package/dist/hdhr/discover.d.ts.map +1 -0
  193. package/dist/hdhr/discover.js +48 -47
  194. package/dist/hdhr/discover.js.map +1 -1
  195. package/dist/hdhr/getHandlers.d.ts +29 -0
  196. package/dist/hdhr/getHandlers.d.ts.map +1 -0
  197. package/dist/hdhr/getHandlers.js +196 -0
  198. package/dist/hdhr/getHandlers.js.map +1 -0
  199. package/dist/hdhr/identity.d.ts +36 -0
  200. package/dist/hdhr/identity.d.ts.map +1 -0
  201. package/dist/hdhr/identity.js +51 -0
  202. package/dist/hdhr/identity.js.map +1 -0
  203. package/dist/hdhr/index.d.ts +22 -4
  204. package/dist/hdhr/index.d.ts.map +1 -0
  205. package/dist/hdhr/index.js +229 -54
  206. package/dist/hdhr/index.js.map +1 -1
  207. package/dist/hdhr/protocol.d.ts +75 -0
  208. package/dist/hdhr/protocol.d.ts.map +1 -0
  209. package/dist/hdhr/protocol.js +264 -0
  210. package/dist/hdhr/protocol.js.map +1 -0
  211. package/dist/hdhr/tunerState.d.ts +24 -0
  212. package/dist/hdhr/tunerState.d.ts.map +1 -0
  213. package/dist/hdhr/tunerState.js +67 -0
  214. package/dist/hdhr/tunerState.js.map +1 -0
  215. package/dist/hdhr/udp.d.ts +43 -0
  216. package/dist/hdhr/udp.d.ts.map +1 -0
  217. package/dist/hdhr/udp.js +277 -0
  218. package/dist/hdhr/udp.js.map +1 -0
  219. package/dist/identity.d.ts +1 -0
  220. package/dist/identity.d.ts.map +1 -0
  221. package/dist/identity.js +13 -11
  222. package/dist/identity.js.map +1 -1
  223. package/dist/index.d.ts +1 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +11 -12
  226. package/dist/index.js.map +1 -1
  227. package/dist/native/codecInference.d.ts +1 -0
  228. package/dist/native/codecInference.d.ts.map +1 -0
  229. package/dist/native/codecInference.js +50 -5
  230. package/dist/native/codecInference.js.map +1 -1
  231. package/dist/native/decrypt.d.ts +6 -2
  232. package/dist/native/decrypt.d.ts.map +1 -0
  233. package/dist/native/decrypt.js +15 -8
  234. package/dist/native/decrypt.js.map +1 -1
  235. package/dist/native/index.d.ts +40 -17
  236. package/dist/native/index.d.ts.map +1 -0
  237. package/dist/native/index.js +281 -120
  238. package/dist/native/index.js.map +1 -1
  239. package/dist/native/probe.d.ts +114 -18
  240. package/dist/native/probe.d.ts.map +1 -0
  241. package/dist/native/probe.js +452 -115
  242. package/dist/native/probe.js.map +1 -1
  243. package/dist/native/proxy.d.ts +57 -5
  244. package/dist/native/proxy.d.ts.map +1 -0
  245. package/dist/native/proxy.js +604 -170
  246. package/dist/native/proxy.js.map +1 -1
  247. package/dist/native/tokenExpiry.d.ts +1 -0
  248. package/dist/native/tokenExpiry.d.ts.map +1 -0
  249. package/dist/native/tokenExpiry.js +1 -1
  250. package/dist/routes/assets.d.ts +1 -0
  251. package/dist/routes/assets.d.ts.map +1 -0
  252. package/dist/routes/assets.js +4 -2
  253. package/dist/routes/assets.js.map +1 -1
  254. package/dist/routes/auth.d.ts +1 -0
  255. package/dist/routes/auth.d.ts.map +1 -0
  256. package/dist/routes/auth.js +0 -1
  257. package/dist/routes/auth.js.map +1 -1
  258. package/dist/routes/cdp.d.ts +5 -5
  259. package/dist/routes/cdp.d.ts.map +1 -0
  260. package/dist/routes/cdp.js +59 -20
  261. package/dist/routes/cdp.js.map +1 -1
  262. package/dist/routes/channels.d.ts +1 -0
  263. package/dist/routes/channels.d.ts.map +1 -0
  264. package/dist/routes/channels.js +2 -1
  265. package/dist/routes/channels.js.map +1 -1
  266. package/dist/routes/clientActions.d.ts +98 -0
  267. package/dist/routes/clientActions.d.ts.map +1 -0
  268. package/dist/routes/clientActions.js +113 -0
  269. package/dist/routes/clientActions.js.map +1 -0
  270. package/dist/routes/components.d.ts +5 -3
  271. package/dist/routes/components.d.ts.map +1 -0
  272. package/dist/routes/components.js +36 -39
  273. package/dist/routes/components.js.map +1 -1
  274. package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
  275. package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
  276. package/dist/routes/config/channels/endpoints/browse.js +23 -10
  277. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  278. package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
  279. package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
  280. package/dist/routes/config/channels/endpoints/bulk.js +5 -3
  281. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  282. package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
  283. package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
  284. package/dist/routes/config/channels/endpoints/crud.js +85 -93
  285. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  286. package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
  287. package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
  288. package/dist/routes/config/channels/endpoints/importExport.js +6 -3
  289. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  290. package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
  291. package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
  292. package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
  293. package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
  294. package/dist/routes/config/channels/endpoints/prefs.js +2 -1
  295. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  296. package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
  297. package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
  298. package/dist/routes/config/channels/endpoints/service.js +3 -1
  299. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  300. package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
  301. package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
  302. package/dist/routes/config/channels/endpoints/tags.js +13 -7
  303. package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
  304. package/dist/routes/config/channels/healthBridge.d.ts +24 -0
  305. package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
  306. package/dist/routes/config/channels/healthBridge.js +71 -0
  307. package/dist/routes/config/channels/healthBridge.js.map +1 -0
  308. package/dist/routes/config/channels/http/handler.d.ts +1 -0
  309. package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
  310. package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
  311. package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
  312. package/dist/routes/config/channels/http/playlistHint.js +16 -2
  313. package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
  314. package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
  315. package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
  316. package/dist/routes/config/channels/http/serviceWarning.js +3 -2
  317. package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
  318. package/dist/routes/config/channels/index.d.ts +1 -0
  319. package/dist/routes/config/channels/index.d.ts.map +1 -0
  320. package/dist/routes/config/channels/setup.d.ts +1 -0
  321. package/dist/routes/config/channels/setup.d.ts.map +1 -0
  322. package/dist/routes/config/channels/table.d.ts +3 -3
  323. package/dist/routes/config/channels/table.d.ts.map +1 -0
  324. package/dist/routes/config/channels/table.js +148 -107
  325. package/dist/routes/config/channels/table.js.map +1 -1
  326. package/dist/routes/config/http/envelope.d.ts +1 -0
  327. package/dist/routes/config/http/envelope.d.ts.map +1 -0
  328. package/dist/routes/config/index.d.ts +35 -3
  329. package/dist/routes/config/index.d.ts.map +1 -0
  330. package/dist/routes/config/index.js +51 -2
  331. package/dist/routes/config/index.js.map +1 -1
  332. package/dist/routes/config/services.d.ts +5 -4
  333. package/dist/routes/config/services.d.ts.map +1 -0
  334. package/dist/routes/config/services.js +57 -43
  335. package/dist/routes/config/services.js.map +1 -1
  336. package/dist/routes/config/settings.d.ts +1 -0
  337. package/dist/routes/config/settings.d.ts.map +1 -0
  338. package/dist/routes/config/settings.js +98 -49
  339. package/dist/routes/config/settings.js.map +1 -1
  340. package/dist/routes/debug.d.ts +1 -0
  341. package/dist/routes/debug.d.ts.map +1 -0
  342. package/dist/routes/debug.js +277 -139
  343. package/dist/routes/debug.js.map +1 -1
  344. package/dist/routes/health.d.ts +39 -1
  345. package/dist/routes/health.d.ts.map +1 -0
  346. package/dist/routes/health.js +33 -27
  347. package/dist/routes/health.js.map +1 -1
  348. package/dist/routes/hls.d.ts +1 -0
  349. package/dist/routes/hls.d.ts.map +1 -0
  350. package/dist/routes/icons.d.ts +1 -0
  351. package/dist/routes/icons.d.ts.map +1 -0
  352. package/dist/routes/icons.js +1 -1
  353. package/dist/routes/index.d.ts +1 -0
  354. package/dist/routes/index.d.ts.map +1 -0
  355. package/dist/routes/logs.d.ts +1 -0
  356. package/dist/routes/logs.d.ts.map +1 -0
  357. package/dist/routes/logs.js +14 -4
  358. package/dist/routes/logs.js.map +1 -1
  359. package/dist/routes/mpegts.d.ts +1 -0
  360. package/dist/routes/mpegts.d.ts.map +1 -0
  361. package/dist/routes/play.d.ts +1 -0
  362. package/dist/routes/play.d.ts.map +1 -0
  363. package/dist/routes/playlist.d.ts +1 -0
  364. package/dist/routes/playlist.d.ts.map +1 -0
  365. package/dist/routes/playlist.js +7 -2
  366. package/dist/routes/playlist.js.map +1 -1
  367. package/dist/routes/root/content.d.ts +8 -5
  368. package/dist/routes/root/content.d.ts.map +1 -0
  369. package/dist/routes/root/content.js +29 -26
  370. package/dist/routes/root/content.js.map +1 -1
  371. package/dist/routes/root/index.d.ts +2 -1
  372. package/dist/routes/root/index.d.ts.map +1 -0
  373. package/dist/routes/root/index.js +26 -21
  374. package/dist/routes/root/index.js.map +1 -1
  375. package/dist/routes/root/scripts/channels.d.ts +6 -0
  376. package/dist/routes/root/scripts/channels.d.ts.map +1 -0
  377. package/dist/routes/root/scripts/channels.js +197 -118
  378. package/dist/routes/root/scripts/channels.js.map +1 -1
  379. package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
  380. package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
  381. package/dist/routes/root/scripts/clientEscape.js +41 -0
  382. package/dist/routes/root/scripts/clientEscape.js.map +1 -0
  383. package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
  384. package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
  385. package/dist/routes/root/scripts/clientUrl.js +44 -0
  386. package/dist/routes/root/scripts/clientUrl.js.map +1 -0
  387. package/dist/routes/root/scripts/config.d.ts +6 -0
  388. package/dist/routes/root/scripts/config.d.ts.map +1 -0
  389. package/dist/routes/root/scripts/config.js +110 -24
  390. package/dist/routes/root/scripts/config.js.map +1 -1
  391. package/dist/routes/root/scripts/index.d.ts +1 -0
  392. package/dist/routes/root/scripts/index.d.ts.map +1 -0
  393. package/dist/routes/root/scripts/shared.d.ts +1 -0
  394. package/dist/routes/root/scripts/shared.d.ts.map +1 -0
  395. package/dist/routes/root/scripts/shared.js +112 -26
  396. package/dist/routes/root/scripts/shared.js.map +1 -1
  397. package/dist/routes/root/scripts/status.d.ts +1 -0
  398. package/dist/routes/root/scripts/status.d.ts.map +1 -0
  399. package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
  400. package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
  401. package/dist/routes/root/scripts/status.handlers.js +46 -92
  402. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  403. package/dist/routes/root/scripts/status.js +21 -8
  404. package/dist/routes/root/scripts/status.js.map +1 -1
  405. package/dist/routes/root/styles.d.ts +1 -0
  406. package/dist/routes/root/styles.d.ts.map +1 -0
  407. package/dist/routes/root/styles.js +7 -4
  408. package/dist/routes/root/styles.js.map +1 -1
  409. package/dist/routes/services.d.ts +13 -1
  410. package/dist/routes/services.d.ts.map +1 -0
  411. package/dist/routes/services.js +81 -68
  412. package/dist/routes/services.js.map +1 -1
  413. package/dist/routes/sse.d.ts +1 -0
  414. package/dist/routes/sse.d.ts.map +1 -0
  415. package/dist/routes/sse.js +1 -1
  416. package/dist/routes/sse.js.map +1 -1
  417. package/dist/routes/streams.d.ts +2 -1
  418. package/dist/routes/streams.d.ts.map +1 -0
  419. package/dist/routes/streams.js +6 -4
  420. package/dist/routes/streams.js.map +1 -1
  421. package/dist/routes/theme.d.ts +3 -2
  422. package/dist/routes/theme.d.ts.map +1 -0
  423. package/dist/routes/theme.js +6 -5
  424. package/dist/routes/theme.js.map +1 -1
  425. package/dist/routes/ui.d.ts +3 -1
  426. package/dist/routes/ui.d.ts.map +1 -0
  427. package/dist/routes/ui.js +16 -4
  428. package/dist/routes/ui.js.map +1 -1
  429. package/dist/routes/upgrade.d.ts +1 -0
  430. package/dist/routes/upgrade.d.ts.map +1 -0
  431. package/dist/routes/upgrade.js +6 -2
  432. package/dist/routes/upgrade.js.map +1 -1
  433. package/dist/service/commands.context.d.ts +1 -0
  434. package/dist/service/commands.context.d.ts.map +1 -0
  435. package/dist/service/commands.context.js +4 -3
  436. package/dist/service/commands.context.js.map +1 -1
  437. package/dist/service/commands.d.ts +1 -0
  438. package/dist/service/commands.d.ts.map +1 -0
  439. package/dist/service/commands.js +10 -13
  440. package/dist/service/commands.js.map +1 -1
  441. package/dist/service/generators.context.d.ts +1 -0
  442. package/dist/service/generators.context.d.ts.map +1 -0
  443. package/dist/service/generators.context.js +1 -1
  444. package/dist/service/generators.context.js.map +1 -1
  445. package/dist/service/generators.d.ts +4 -3
  446. package/dist/service/generators.d.ts.map +1 -0
  447. package/dist/service/generators.js +111 -31
  448. package/dist/service/generators.js.map +1 -1
  449. package/dist/service/index.d.ts +1 -0
  450. package/dist/service/index.d.ts.map +1 -0
  451. package/dist/streaming/captureLock.d.ts +44 -0
  452. package/dist/streaming/captureLock.d.ts.map +1 -0
  453. package/dist/streaming/captureLock.js +95 -0
  454. package/dist/streaming/captureLock.js.map +1 -0
  455. package/dist/streaming/captureSession.d.ts +31 -0
  456. package/dist/streaming/captureSession.d.ts.map +1 -0
  457. package/dist/streaming/captureSession.js +54 -0
  458. package/dist/streaming/captureSession.js.map +1 -0
  459. package/dist/streaming/clients.d.ts +1 -0
  460. package/dist/streaming/clients.d.ts.map +1 -0
  461. package/dist/streaming/codec.d.ts +1 -0
  462. package/dist/streaming/codec.d.ts.map +1 -0
  463. package/dist/streaming/fmp4Segmenter.d.ts +29 -2
  464. package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
  465. package/dist/streaming/fmp4Segmenter.js +79 -26
  466. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  467. package/dist/streaming/hls.d.ts +18 -7
  468. package/dist/streaming/hls.d.ts.map +1 -0
  469. package/dist/streaming/hls.js +220 -120
  470. package/dist/streaming/hls.js.map +1 -1
  471. package/dist/streaming/hlsResume.d.ts +1 -0
  472. package/dist/streaming/hlsResume.d.ts.map +1 -0
  473. package/dist/streaming/hlsResume.js +1 -1
  474. package/dist/streaming/hlsResume.js.map +1 -1
  475. package/dist/streaming/hlsSegments.d.ts +59 -2
  476. package/dist/streaming/hlsSegments.d.ts.map +1 -0
  477. package/dist/streaming/hlsSegments.js +147 -17
  478. package/dist/streaming/hlsSegments.js.map +1 -1
  479. package/dist/streaming/lifecycle.d.ts +4 -1
  480. package/dist/streaming/lifecycle.d.ts.map +1 -0
  481. package/dist/streaming/lifecycle.js +65 -85
  482. package/dist/streaming/lifecycle.js.map +1 -1
  483. package/dist/streaming/monitor.d.ts +6 -4
  484. package/dist/streaming/monitor.d.ts.map +1 -0
  485. package/dist/streaming/monitor.js +343 -145
  486. package/dist/streaming/monitor.js.map +1 -1
  487. package/dist/streaming/mp4Parser.d.ts +5 -4
  488. package/dist/streaming/mp4Parser.d.ts.map +1 -0
  489. package/dist/streaming/mp4Parser.js +36 -13
  490. package/dist/streaming/mp4Parser.js.map +1 -1
  491. package/dist/streaming/mpegts.d.ts +16 -0
  492. package/dist/streaming/mpegts.d.ts.map +1 -0
  493. package/dist/streaming/mpegts.js +61 -17
  494. package/dist/streaming/mpegts.js.map +1 -1
  495. package/dist/streaming/playlistBuilder.d.ts +1 -0
  496. package/dist/streaming/playlistBuilder.d.ts.map +1 -0
  497. package/dist/streaming/preroll.d.ts +32 -5
  498. package/dist/streaming/preroll.d.ts.map +1 -0
  499. package/dist/streaming/preroll.js +70 -32
  500. package/dist/streaming/preroll.js.map +1 -1
  501. package/dist/streaming/pretune.d.ts +26 -1
  502. package/dist/streaming/pretune.d.ts.map +1 -0
  503. package/dist/streaming/pretune.js +22 -24
  504. package/dist/streaming/pretune.js.map +1 -1
  505. package/dist/streaming/pretuneTimers.d.ts +24 -0
  506. package/dist/streaming/pretuneTimers.d.ts.map +1 -0
  507. package/dist/streaming/pretuneTimers.js +56 -0
  508. package/dist/streaming/pretuneTimers.js.map +1 -0
  509. package/dist/streaming/recovery.d.ts +139 -5
  510. package/dist/streaming/recovery.d.ts.map +1 -0
  511. package/dist/streaming/recovery.js +160 -16
  512. package/dist/streaming/recovery.js.map +1 -1
  513. package/dist/streaming/registry.d.ts +27 -9
  514. package/dist/streaming/registry.d.ts.map +1 -0
  515. package/dist/streaming/registry.js +21 -3
  516. package/dist/streaming/registry.js.map +1 -1
  517. package/dist/streaming/setup.d.ts +157 -29
  518. package/dist/streaming/setup.d.ts.map +1 -0
  519. package/dist/streaming/setup.js +1034 -458
  520. package/dist/streaming/setup.js.map +1 -1
  521. package/dist/streaming/showInfo.d.ts +21 -1
  522. package/dist/streaming/showInfo.d.ts.map +1 -0
  523. package/dist/streaming/showInfo.js +31 -16
  524. package/dist/streaming/showInfo.js.map +1 -1
  525. package/dist/streaming/statusEmitter.d.ts +10 -10
  526. package/dist/streaming/statusEmitter.d.ts.map +1 -0
  527. package/dist/streaming/statusEmitter.js +5 -8
  528. package/dist/streaming/statusEmitter.js.map +1 -1
  529. package/dist/types/channels.d.ts +16 -4
  530. package/dist/types/channels.d.ts.map +1 -0
  531. package/dist/types/channels.js +4 -2
  532. package/dist/types/channels.js.map +1 -1
  533. package/dist/types/config.d.ts +16 -5
  534. package/dist/types/config.d.ts.map +1 -0
  535. package/dist/types/index.d.ts +3 -2
  536. package/dist/types/index.d.ts.map +1 -0
  537. package/dist/types/profiles.d.ts +6 -4
  538. package/dist/types/profiles.d.ts.map +1 -0
  539. package/dist/types/selection.d.ts +31 -3
  540. package/dist/types/selection.d.ts.map +1 -0
  541. package/dist/types/selection.js +4 -2
  542. package/dist/types/selection.js.map +1 -1
  543. package/dist/types/shared.d.ts +1 -0
  544. package/dist/types/shared.d.ts.map +1 -0
  545. package/dist/types/streaming.d.ts +8 -0
  546. package/dist/types/streaming.d.ts.map +1 -0
  547. package/dist/upgrade/commands.context.d.ts +1 -0
  548. package/dist/upgrade/commands.context.d.ts.map +1 -0
  549. package/dist/upgrade/commands.context.js +14 -10
  550. package/dist/upgrade/commands.context.js.map +1 -1
  551. package/dist/upgrade/commands.d.ts +8 -15
  552. package/dist/upgrade/commands.d.ts.map +1 -0
  553. package/dist/upgrade/commands.js +27 -28
  554. package/dist/upgrade/commands.js.map +1 -1
  555. package/dist/upgrade/detection.context.d.ts +1 -0
  556. package/dist/upgrade/detection.context.d.ts.map +1 -0
  557. package/dist/upgrade/detection.context.js +4 -1
  558. package/dist/upgrade/detection.context.js.map +1 -1
  559. package/dist/upgrade/detection.d.ts +9 -7
  560. package/dist/upgrade/detection.d.ts.map +1 -0
  561. package/dist/upgrade/detection.js +23 -54
  562. package/dist/upgrade/detection.js.map +1 -1
  563. package/dist/upgrade/index.d.ts +2 -0
  564. package/dist/upgrade/index.d.ts.map +1 -0
  565. package/dist/upgrade/index.js +1 -0
  566. package/dist/upgrade/index.js.map +1 -1
  567. package/dist/upgrade/lifecycle.context.d.ts +20 -0
  568. package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
  569. package/dist/upgrade/lifecycle.context.js +47 -0
  570. package/dist/upgrade/lifecycle.context.js.map +1 -0
  571. package/dist/upgrade/lifecycle.d.ts +72 -0
  572. package/dist/upgrade/lifecycle.d.ts.map +1 -0
  573. package/dist/upgrade/lifecycle.js +175 -0
  574. package/dist/upgrade/lifecycle.js.map +1 -0
  575. package/dist/upgrade/pathHandle.d.ts +30 -0
  576. package/dist/upgrade/pathHandle.d.ts.map +1 -0
  577. package/dist/upgrade/pathHandle.js +102 -0
  578. package/dist/upgrade/pathHandle.js.map +1 -0
  579. package/dist/utils/bootSession.context.d.ts +16 -0
  580. package/dist/utils/bootSession.context.d.ts.map +1 -0
  581. package/dist/utils/bootSession.context.js +60 -0
  582. package/dist/utils/bootSession.context.js.map +1 -0
  583. package/dist/utils/bootSession.d.ts +17 -0
  584. package/dist/utils/bootSession.d.ts.map +1 -0
  585. package/dist/utils/bootSession.js +20 -0
  586. package/dist/utils/bootSession.js.map +1 -0
  587. package/dist/utils/chromeFetch.d.ts +1 -0
  588. package/dist/utils/chromeFetch.d.ts.map +1 -0
  589. package/dist/utils/cliOutput.d.ts +1 -0
  590. package/dist/utils/cliOutput.d.ts.map +1 -0
  591. package/dist/utils/clock.d.ts +5 -4
  592. package/dist/utils/clock.d.ts.map +1 -0
  593. package/dist/utils/clock.js +19 -16
  594. package/dist/utils/clock.js.map +1 -1
  595. package/dist/utils/debugFilter.d.ts +9 -1
  596. package/dist/utils/debugFilter.d.ts.map +1 -0
  597. package/dist/utils/debugFilter.js +60 -33
  598. package/dist/utils/debugFilter.js.map +1 -1
  599. package/dist/utils/delay.d.ts +48 -15
  600. package/dist/utils/delay.d.ts.map +1 -0
  601. package/dist/utils/delay.js +73 -20
  602. package/dist/utils/delay.js.map +1 -1
  603. package/dist/utils/errors.d.ts +32 -0
  604. package/dist/utils/errors.d.ts.map +1 -0
  605. package/dist/utils/errors.js +45 -4
  606. package/dist/utils/errors.js.map +1 -1
  607. package/dist/utils/evaluate.d.ts +1 -0
  608. package/dist/utils/evaluate.d.ts.map +1 -0
  609. package/dist/utils/evaluate.js +29 -23
  610. package/dist/utils/evaluate.js.map +1 -1
  611. package/dist/utils/ffmpeg.context.d.ts +1 -0
  612. package/dist/utils/ffmpeg.context.d.ts.map +1 -0
  613. package/dist/utils/ffmpeg.context.js.map +1 -1
  614. package/dist/utils/ffmpeg.d.ts +29 -7
  615. package/dist/utils/ffmpeg.d.ts.map +1 -0
  616. package/dist/utils/ffmpeg.js +32 -14
  617. package/dist/utils/ffmpeg.js.map +1 -1
  618. package/dist/utils/fileLogger.d.ts +3 -1
  619. package/dist/utils/fileLogger.d.ts.map +1 -0
  620. package/dist/utils/fileLogger.js +64 -29
  621. package/dist/utils/fileLogger.js.map +1 -1
  622. package/dist/utils/format.d.ts +14 -1
  623. package/dist/utils/format.d.ts.map +1 -0
  624. package/dist/utils/format.js +19 -5
  625. package/dist/utils/format.js.map +1 -1
  626. package/dist/utils/index.d.ts +4 -0
  627. package/dist/utils/index.d.ts.map +1 -0
  628. package/dist/utils/index.js +3 -0
  629. package/dist/utils/index.js.map +1 -1
  630. package/dist/utils/logEmitter.d.ts +1 -0
  631. package/dist/utils/logEmitter.d.ts.map +1 -0
  632. package/dist/utils/logger.d.ts +1 -0
  633. package/dist/utils/logger.d.ts.map +1 -0
  634. package/dist/utils/logger.js +10 -6
  635. package/dist/utils/logger.js.map +1 -1
  636. package/dist/utils/m3u.d.ts +3 -2
  637. package/dist/utils/m3u.d.ts.map +1 -0
  638. package/dist/utils/m3u.js +4 -3
  639. package/dist/utils/m3u.js.map +1 -1
  640. package/dist/utils/markup.d.ts +13 -1
  641. package/dist/utils/markup.d.ts.map +1 -0
  642. package/dist/utils/markup.js +28 -4
  643. package/dist/utils/markup.js.map +1 -1
  644. package/dist/utils/memo.d.ts +3 -2
  645. package/dist/utils/memo.d.ts.map +1 -0
  646. package/dist/utils/memo.js +3 -3
  647. package/dist/utils/morganStream.d.ts +1 -0
  648. package/dist/utils/morganStream.d.ts.map +1 -0
  649. package/dist/utils/network.d.ts +1 -0
  650. package/dist/utils/network.d.ts.map +1 -0
  651. package/dist/utils/network.js +2 -2
  652. package/dist/utils/pid.d.ts +3 -25
  653. package/dist/utils/pid.d.ts.map +1 -0
  654. package/dist/utils/pid.js +10 -49
  655. package/dist/utils/pid.js.map +1 -1
  656. package/dist/utils/platform.d.ts +3 -1
  657. package/dist/utils/platform.d.ts.map +1 -0
  658. package/dist/utils/platform.js +2 -1
  659. package/dist/utils/platform.js.map +1 -1
  660. package/dist/utils/processInspector.context.d.ts +8 -0
  661. package/dist/utils/processInspector.context.d.ts.map +1 -0
  662. package/dist/utils/processInspector.context.js +106 -0
  663. package/dist/utils/processInspector.context.js.map +1 -0
  664. package/dist/utils/processInspector.d.ts +55 -0
  665. package/dist/utils/processInspector.d.ts.map +1 -0
  666. package/dist/utils/processInspector.js +127 -0
  667. package/dist/utils/processInspector.js.map +1 -0
  668. package/dist/utils/retry.d.ts +25 -2
  669. package/dist/utils/retry.d.ts.map +1 -0
  670. package/dist/utils/retry.js +33 -6
  671. package/dist/utils/retry.js.map +1 -1
  672. package/dist/utils/runtimeIdentity.context.d.ts +7 -0
  673. package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
  674. package/dist/utils/runtimeIdentity.context.js +43 -0
  675. package/dist/utils/runtimeIdentity.context.js.map +1 -0
  676. package/dist/utils/runtimeIdentity.d.ts +98 -0
  677. package/dist/utils/runtimeIdentity.d.ts.map +1 -0
  678. package/dist/utils/runtimeIdentity.js +181 -0
  679. package/dist/utils/runtimeIdentity.js.map +1 -0
  680. package/dist/utils/sanitize.d.ts +1 -0
  681. package/dist/utils/sanitize.d.ts.map +1 -0
  682. package/dist/utils/streamContext.d.ts +2 -1
  683. package/dist/utils/streamContext.d.ts.map +1 -0
  684. package/dist/utils/streamContext.js +1 -1
  685. package/dist/utils/timing.d.ts +2 -1
  686. package/dist/utils/timing.d.ts.map +1 -0
  687. package/dist/utils/timing.js +0 -5
  688. package/dist/utils/timing.js.map +1 -1
  689. package/dist/utils/version.d.ts +1 -0
  690. package/dist/utils/version.d.ts.map +1 -0
  691. package/dist/utils/version.js +47 -13
  692. package/dist/utils/version.js.map +1 -1
  693. package/package.json +26 -20
@@ -1,19 +1,24 @@
1
1
  import { LOG, chromeFetch, delay, formatError } from "../../utils/index.js";
2
2
  import { logAvailableChannels, normalizeChannelName } from "./shared.js";
3
3
  import { CONFIG } from "../../config/index.js";
4
+ import { createProviderChannelCache } from "./cache.js";
5
+ import { searchVirtualizedGrid } from "./gridSearch.js";
4
6
  // Sling TV guide grid row index cache. Maps normalized channel names (from data-testid="channel-{NAME}" attributes) to their row indices extracted from the
5
- // parent .guide-row-container CSS class (gridGuideRow-{N}). Separate from the Hulu guideRowCache because Sling uses a different row index system (CSS class-based)
6
- // and different scroll mechanics (.guide-cell scrollTop vs document.documentElement.scrollTop).
7
+ // parent .guide-row-container CSS class (gridGuideRow-{N}). Separate from Hulu's row tracking - the rowNumber field on its channel cache entries - because Sling
8
+ // uses a different row index system (CSS class-based) and different scroll mechanics (.guide-cell scrollTop vs document.documentElement.scrollTop).
7
9
  const slingRowCache = new Map();
8
10
  // Unified channel cache for Sling TV. Maps normalized channel names to their combined tuning and discovery data. Populated by intercepting grid guide API
9
11
  // responses during guide page load (both tuning and discovery paths). Channel GUIDs are permanent infrastructure identifiers that never change - only the
10
- // per-program asset_id rotates. Both tuning (via findChannelGuid / resolvePlayerUrl) and discovery (via buildSlingDiscoveredChannels) read from this single
11
- // cache. Cleared on browser disconnect via clearSlingCache().
12
- const slingChannelCache = new Map();
13
- // Set to true after a complete discovery walk confirms the channel cache contains the full channel lineup. Individual tunes only populate the cache with channels
14
- // from the specific API pages that happen to arrive during that tune's guide page load - a small subset. Without this flag, getCachedChannels() would derive from
15
- // a partially-warm cache and return an incomplete channel list.
16
- let slingFullyEnumerated = false;
12
+ // per-program asset_id rotates. Both tuning (via findChannelGuid / resolvePlayerUrl) and discovery (via the cache's own projection) read from this single cache.
13
+ // Cleared on browser disconnect via clearSlingCache(). Only a complete discovery walk may mark the lineup complete: an individual tune populates the cache from
14
+ // whichever API pages happen to arrive during its guide page load, which is a small subset, and serving that as the lineup would report an incomplete list.
15
+ const slingCache = createProviderChannelCache((entry) => {
16
+ const result = { channelSelector: entry.displayName, name: entry.displayName };
17
+ if (entry.tier) {
18
+ result.tier = entry.tier;
19
+ }
20
+ return result;
21
+ });
17
22
  // Playback info URL template captured from the grid API response. The CDN hostname (e.g., cbd46b77.cdn.cms.movetv.com) may change, so we derive it at runtime
18
23
  // from the first PLAY_CONTENT tile's playback_info.url rather than hardcoding it. The template stores everything up to and including "/channels" - the caller
19
24
  // appends "/{channel_guid}/schedule/now/playback_info.qvt".
@@ -22,6 +27,9 @@ let slingPlaybackInfoBase = null;
22
27
  const pagesWithListeners = new WeakSet();
23
28
  // Base URL for constructing direct player URLs. This is the user-facing Sling domain, not a CDN edge - stable.
24
29
  const SLING_PLAYER_BASE = "https://watch.sling.com/1/asset";
30
+ // The A-Z grid guide page. The discovery walk navigates here, the provider module advertises it as its guide URL, and the not-found diagnostic points the user
31
+ // at it, so all three read the one constant.
32
+ const SLING_GUIDE_URL = "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z";
25
33
  // Polling interval for the frontier-based cache wait. 300ms balances responsiveness (detecting newly arrived API pages quickly) against CPU overhead from cache
26
34
  // scans. The API delivers pages in bursts, so shorter intervals provide diminishing returns.
27
35
  const FRONTIER_POLL_INTERVAL = 300;
@@ -37,12 +45,11 @@ const PRECACHE_MIN_CHANNELS = 200;
37
45
  // videoTimeout (11s), giving up to ~33 additional seconds for slow connections. Retries bail early if the cache reaches PRECACHE_MIN_CHANNELS.
38
46
  const PRECACHE_MAX_NETWORK_IDLE_RETRIES = 3;
39
47
  /**
40
- * Clears all Sling TV caches: the unified channel cache, playback info base URL, row indices, and the fully-enumerated flag. Called by
48
+ * Clears all Sling TV caches: the unified channel cache along with its completeness mark, the playback info base URL, and the row indices. Called by
41
49
  * clearChannelSelectionCaches() in the coordinator when the browser restarts, since cached state may be stale in a new browser session.
42
50
  */
43
51
  function clearSlingCache() {
44
- slingChannelCache.clear();
45
- slingFullyEnumerated = false;
52
+ slingCache.clear();
46
53
  slingPlaybackInfoBase = null;
47
54
  slingRowCache.clear();
48
55
  }
@@ -50,7 +57,8 @@ function clearSlingCache() {
50
57
  * Reads all rendered channel entries from the Sling TV guide grid in a single browser evaluate call. Extracts names from data-testid="channel-{NAME}" attributes
51
58
  * and row indices from the parent .guide-row-container CSS class containing gridGuideRow-{N}. When the target channel is found, also locates the on-now program
52
59
  * cell, scrolls it into view, and returns its center coordinates - eliminating a second evaluate round-trip. Populates the slingRowCache as a side effect. For
53
- * local affiliates (ABC, FOX, NBC), also matches channels whose name starts with the target followed by " (" to handle the "network (callsign)" format.
60
+ * local affiliates, which Sling labels in the "network (callsign)" format (e.g., "ABC (WABC)"), also matches any channel whose name starts with the target
61
+ * followed by " (".
54
62
  * @param page - The Puppeteer page object.
55
63
  * @param targetName - The normalized (lowercased, trimmed) channel name to match, or null to skip click target resolution.
56
64
  * @returns Object with all rendered channels, optional click coordinates for the target's on-now cell, and the actual matched name (which may differ from
@@ -116,14 +124,14 @@ async function readSlingChannelsAndLocate(page, targetName) {
116
124
  const CLICK_RETRY_TIMEOUT = 5000;
117
125
  // The guide page URL contains this path segment. Used to detect whether the page has navigated away from the guide after a click attempt.
118
126
  const GUIDE_URL_MARKER = "grid_guide";
119
- // Maximum number of click attempts before giving up. Three attempts with 5-second timeouts on the first two gives a worst-case wall-clock time of ~15 seconds -
120
- // comparable to a single 10-second timeout plus the overhead of the full retry cycle, but with a much higher success rate for transient failures.
127
+ // Maximum number of click attempts before giving up. Three attempts (5-second timeouts on the first two, a full timeout on the last) give a worst-case wall-clock
128
+ // time of roughly 20 seconds, but with a much higher success rate for transient failures than a single longer timeout.
121
129
  const MAX_CLICK_ATTEMPTS = 3;
122
130
  /**
123
131
  * Clicks the on-now program cell and waits for Sling to navigate to the player page. The click triggers a full page navigation to a /1/asset/{assetId}/watch URL,
124
132
  * so we use Promise.all with page.waitForNavigation() to ensure the player page's DOM is ready before returning. Without this wait, initializePlayback() could run
125
133
  * against a page that is mid-transition - either finding nothing or grabbing a stale element from the guide page. Uses domcontentloaded rather than load because
126
- * the player page only needs to render a <video> element - waiting for all subresources (images, fonts) would add unnecessary latency since startVideoPlayback()
134
+ * the player page only needs to render a <video> element - waiting for all subresources (images, fonts) would add unnecessary latency since waitForVideoReady()
127
135
  * independently waits for the video element. No settle delay before the click because readSlingChannelsAndLocate() already called scrollIntoView and read
128
136
  * getBoundingClientRect, confirming the element is positioned, and any mispositioned click is caught by the navigation timeout.
129
137
  * @param page - The Puppeteer page object.
@@ -199,14 +207,14 @@ async function clickWithRetry(page, initialTarget, normalizedName, channelName)
199
207
  * @returns The channel GUID or null if not cached.
200
208
  */
201
209
  function findChannelGuid(normalizedName) {
202
- const exact = slingChannelCache.get(normalizedName);
210
+ const exact = slingCache.map.get(normalizedName);
203
211
  if (exact) {
204
212
  return exact.guid;
205
213
  }
206
- for (const [key, entry] of slingChannelCache) {
214
+ for (const [key, entry] of slingCache.map) {
207
215
  if (key.startsWith(normalizedName + " (")) {
208
216
  // Cache the full entry under the primary name for O(1) on next lookup.
209
- slingChannelCache.set(normalizedName, entry);
217
+ slingCache.map.set(normalizedName, entry);
210
218
  return entry.guid;
211
219
  }
212
220
  }
@@ -219,7 +227,7 @@ function findChannelGuid(normalizedName) {
219
227
  */
220
228
  function getCacheFrontier() {
221
229
  let max = null;
222
- for (const key of slingChannelCache.keys()) {
230
+ for (const key of slingCache.map.keys()) {
223
231
  if (!max || (key > max)) {
224
232
  max = key;
225
233
  }
@@ -228,7 +236,7 @@ function getCacheFrontier() {
228
236
  }
229
237
  /**
230
238
  * Fetches the current asset_id for a Sling channel from the public playback info endpoint. Returns null if the playback info base URL has not been captured yet
231
- * (cold cache), the endpoint returns a non-200 response, or the response does not contain an asset GUID. Callers should catch network and JSON parse errors.
239
+ * (cold cache), the endpoint returns a non-2xx (non-ok) response, or the response does not contain an asset GUID. Callers should catch network and JSON parse errors.
232
240
  * @param channelGuid - The stable Sling channel GUID.
233
241
  * @returns The current asset_id string or null.
234
242
  */
@@ -263,7 +271,7 @@ async function resolvePlayerUrl(normalizedName) {
263
271
  }
264
272
  /**
265
273
  * Processes a single Sling grid guide API response, extracting channel data and the playback info base URL. Called by the response interception listener for
266
- * each paginated grid_guide_a_z response. Populates the unified slingChannelCache and, on the first tile with a PLAY_CONTENT action, captures
274
+ * each paginated grid_guide_a_z response. Populates the unified channel cache and, on the first tile with a PLAY_CONTENT action, captures
267
275
  * slingPlaybackInfoBase.
268
276
  * @param data - The parsed JSON response from the grid guide API.
269
277
  */
@@ -285,7 +293,7 @@ function processGridApiResponse(data) {
285
293
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
286
294
  const packageName = tile?.actions?.DETAIL_VIEW?.adobe?.PackageName;
287
295
  const tier = packageName ? (packageName.includes("Freestream") ? "free" : "paid") : undefined;
288
- slingChannelCache.set(normalized, { displayName: channelName, guid: channelGuid, tier });
296
+ slingCache.map.set(normalized, { displayName: channelName, guid: channelGuid, tier });
289
297
  }
290
298
  // Extract the playback info base URL from the first tile that has one. The CDN hostname varies (e.g., cbd46b77.cdn.cms.movetv.com), so we derive it
291
299
  // from the actual API response rather than hardcoding. We take everything up to and including "/channels" from the tile's playback_info.url.
@@ -300,7 +308,7 @@ function processGridApiResponse(data) {
300
308
  /**
301
309
  * Sets up response interception on the page to capture Sling's grid guide API responses. As the guide page loads, Sling fetches paginated channel data from the
302
310
  * grid_guide_a_z API. Each response contains ribbons with channel GUIDs (stitch_id) and channel names (DETAIL_VIEW.adobe.ChannelName). We intercept these to
303
- * populate the slingChannelCache, enabling the API fast path on subsequent tunes. Also extracts the playback info base URL from the first PLAY_CONTENT tile
311
+ * populate the unified channel cache, enabling the API fast path on subsequent tunes. Also extracts the playback info base URL from the first PLAY_CONTENT tile
304
312
  * to avoid hardcoding the CDN hostname. Uses a WeakSet to prevent duplicate listener registration on the same page.
305
313
  * @param page - The Puppeteer page object.
306
314
  */
@@ -353,7 +361,7 @@ async function resolveSlingDirectUrl(channelSelector, page) {
353
361
  * @param channelSelector - The channel selector string to invalidate.
354
362
  */
355
363
  function invalidateSlingDirectUrl(channelSelector) {
356
- slingChannelCache.delete(normalizeChannelName(channelSelector));
364
+ slingCache.map.delete(normalizeChannelName(channelSelector));
357
365
  }
358
366
  /**
359
367
  * Sling TV grid strategy: finds a channel in the virtualized, alphabetically sorted guide grid at watch.sling.com/dashboard/grid_guide/grid_guide_a_z using binary
@@ -365,7 +373,8 @@ function invalidateSlingDirectUrl(channelSelector) {
365
373
  * 1. Wait for channel entries to appear in the DOM (confirms guide grid has loaded and API data is flowing)
366
374
  * 2. API fast path with frontier polling: poll the channel cache until the target channel appears, the cache frontier passes the target's position, or 5 seconds
367
375
  * elapse - then fetch the current asset_id and navigate directly, skipping all steps below
368
- * 3. Read grid metadata: locate the .guide-cell scroll host and compute total rows from scrollHeight / 120
376
+ * 3. Read grid metadata: locate the .guide-cell scroll host, measure row height from a rendered .guide-row-container, and compute total rows from
377
+ * (scrollHeight - rowOffset) / that measured height
369
378
  * 4. Check the slingRowCache for a direct-scroll shortcut from a previous tune
370
379
  * 5. Binary search: scroll .guide-cell to the midpoint row, read rendered channels, compare alphabetically to adjust bounds
371
380
  * 6. Click the on-now program cell via clickWithRetry() - retries up to 3 times on navigation timeout before giving up
@@ -381,12 +390,12 @@ async function slingGridStrategy(page, profile) {
381
390
  await page.waitForSelector("[data-testid^=\"channel-\"]", { timeout: 5000, visible: true });
382
391
  }
383
392
  catch {
384
- return { reason: "Sling TV guide grid did not load.", success: false };
393
+ return { guideUnavailable: true, reason: "Sling TV guide grid did not load.", success: false };
385
394
  }
386
395
  // API fast path with frontier-based polling. The channel cache populates progressively as paginated grid API responses arrive in alphabetical order during page
387
- // load. Rather than checking the cache once (missing late-alphabet channels whose API page hasn't arrived yet), poll until one of three conditions is met:
388
- // (1) the target channel's GUID appears in the cache, (2) the cache frontier (alphabetically latest entry) passes the target's position (confirming the
389
- // channel is not in the lineup), or (3) the maximum wait time is exceeded. This ensures the cache is fully populated for all subsequent tunes - a one-time
396
+ // load. Rather than checking the cache once (missing late-alphabet channels whose API page hasn't arrived yet), poll until any of the following conditions
397
+ // is met: the target channel's GUID appears in the cache, the cache frontier (alphabetically latest entry) passes the target's position (confirming the
398
+ // channel is not in the lineup), or the maximum wait time is exceeded. This ensures the cache is fully populated for all subsequent tunes - a one-time
390
399
  // cost that eliminates binary search for the rest of the session.
391
400
  const pollStart = Date.now();
392
401
  while ((Date.now() - pollStart) < FRONTIER_MAX_WAIT) {
@@ -415,7 +424,7 @@ async function slingGridStrategy(page, profile) {
415
424
  return { reason: "Sling TV API fast path navigation failed: " + formatError(error) + ".", success: false };
416
425
  }
417
426
  }
418
- LOG.debug("tuning:sling", "Sling binary search fallback for %s after %sms polling (channel cache: %s, base URL: %s).", channelName, Date.now() - pollStart, slingChannelCache.size, slingPlaybackInfoBase ? "yes" : "no");
427
+ LOG.debug("tuning:sling", "Sling binary search fallback for %s after %sms polling (channel cache: %s, base URL: %s).", channelName, Date.now() - pollStart, slingCache.map.size, slingPlaybackInfoBase ? "yes" : "no");
419
428
  // Phase 2: Read grid metadata. The .guide-cell element is the scroll host for the virtualized channel list. We measure the row height dynamically from a rendered
420
429
  // row element and read the time header offset from the first row's top position within the scroll container.
421
430
  const gridMeta = await page.evaluate(() => {
@@ -453,6 +462,8 @@ async function slingGridStrategy(page, profile) {
453
462
  guideCell.scrollTop = scrollTo;
454
463
  }
455
464
  }, rowOffset + (rowIndex * rowHeight));
465
+ // The .guide-cell virtualizer needs the full 200ms to recycle and render rows for the newly scrolled region. A shorter wait lets readSlingChannelsAndLocate
466
+ // read stale rows from the prior scroll position.
456
467
  await delay(200);
457
468
  };
458
469
  // Phase 3: Check the cache for a direct-scroll shortcut. If we've tuned to this channel before, skip binary search and scroll directly.
@@ -468,65 +479,46 @@ async function slingGridStrategy(page, profile) {
468
479
  LOG.debug("tuning:sling", "Sling cache miss for %s. Falling back to binary search.", channelName);
469
480
  slingRowCache.delete(normalizedName);
470
481
  }
471
- // Phase 4: Binary search through the virtualized channel list. On each iteration we scroll to the midpoint, read rendered channels (with click target resolution
472
- // for the target name), and either click immediately on match or compare alphabetically to adjust bounds. The combined readSlingChannelsAndLocate call returns
473
- // both the channel list (for direction) and the on-now cell coordinates (for clicking) in a single browser round-trip.
474
- let low = 0;
475
- let high = totalRows - 1;
482
+ // Phase 4: Binary search through the virtualized channel list. Each probe scrolls to the midpoint of the remaining range and reads the rendered channels,
483
+ // resolving the target's on-now cell coordinates in the same pass when it is among them - one browser round-trip serves both the direction decision and the
484
+ // click that follows.
485
+ // Binary search over ~638 rows converges in roughly log2(638) ~= 10 iterations, so 12 provides a small safety margin. This bound guards against pathological
486
+ // virtualizer behavior rather than serving as the normal exit condition; if the search legitimately exhausts it, the channel is reported as not found.
476
487
  const maxIterations = 12;
477
- let foundClickTarget = null;
478
- let foundMatchedName = null;
479
- for (let iteration = 0; iteration < maxIterations; iteration++) {
480
- if (low > high) {
481
- break;
482
- }
483
- const mid = Math.floor((low + high) / 2);
484
- // eslint-disable-next-line no-await-in-loop
485
- await scrollToRow(mid);
486
- // eslint-disable-next-line no-await-in-loop
487
- const { channels, clickTarget, matchedName } = await readSlingChannelsAndLocate(page, normalizedName);
488
- if (!channels || (channels.length === 0)) {
489
- continue;
490
- }
491
- // If the target was found, the click coordinates are already resolved. No second evaluate needed.
492
- if (clickTarget) {
493
- foundClickTarget = clickTarget;
494
- foundMatchedName = matchedName;
495
- break;
496
- }
497
- // Sort by name so first/last reflect alphabetical extremes. querySelectorAll returns DOM insertion order, which may not match visual order in a virtualizer
498
- // that recycles elements by appending new rows rather than inserting in visual position.
499
- channels.sort((a, b) => a.name.localeCompare(b.name));
500
- // Determine binary search direction by comparing against the first and last rendered channel names.
501
- const first = channels[0]?.name ?? "";
502
- const last = channels.at(-1)?.name ?? "";
503
- if (normalizedName.localeCompare(first) < 0) {
504
- // Target sorts before the first rendered channel. Scroll up.
505
- high = mid - 1;
506
- continue;
507
- }
508
- if (normalizedName.localeCompare(last) > 0) {
509
- // Target sorts after the last rendered channel. Scroll down.
510
- low = mid + 1;
511
- continue;
512
- }
513
- // Target is between the first and last rendered channels but no exact match. The channel may not exist in the guide.
514
- break;
515
- }
516
- if (!foundClickTarget) {
488
+ const outcome = await searchVirtualizedGrid({
489
+ maxIterations,
490
+ nameOf: (ch) => ch.name,
491
+ probe: async (rowIndex) => {
492
+ await scrollToRow(rowIndex);
493
+ const { channels, clickTarget, matchedName } = await readSlingChannelsAndLocate(page, normalizedName);
494
+ // Sort by name so first/last reflect alphabetical extremes. querySelectorAll returns DOM insertion order, which may not match visual order in a virtualizer
495
+ // that recycles elements by appending new rows rather than inserting in visual position.
496
+ if (channels) {
497
+ channels.sort((a, b) => a.name.localeCompare(b.name));
498
+ }
499
+ // A located target arrives with its click coordinates already resolved, so no second evaluate is needed. A name that matched without those coordinates is
500
+ // not a hit: the search carries on rather than reporting a target nothing can be clicked at.
501
+ return { found: clickTarget ? { clickTarget, matchedName } : null, rows: channels };
502
+ },
503
+ targetName: normalizedName,
504
+ totalRows
505
+ });
506
+ if (outcome.kind === "notFound") {
517
507
  // Log available channels from the row cache to help users identify the correct channelSelector value. The cache contains channels seen during binary search
518
- // iterations and any prior tune attempts in this session - a partial but often actionable subset of Sling's ~636 channel catalog.
508
+ // iterations and any prior tune attempts in this session - a partial but often actionable subset of Sling's ~638 channel catalog.
519
509
  const availableChannels = Array.from(slingRowCache.keys()).toSorted();
520
510
  if (availableChannels.length > 0) {
521
511
  logAvailableChannels({
522
512
  availableChannels,
523
513
  channelName,
524
- guideUrl: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z",
514
+ guideUrl: SLING_GUIDE_URL,
515
+ presetSuffix: "-sling",
525
516
  providerName: "Sling TV"
526
517
  });
527
518
  }
528
519
  return { reason: "Could not find channel " + channelName + " in Sling TV guide grid.", success: false };
529
520
  }
521
+ const { clickTarget: foundClickTarget, matchedName: foundMatchedName } = outcome.found;
530
522
  // When a local affiliate was matched via prefix, cache the network name as an alias so subsequent tunes skip binary search and scroll directly to the
531
523
  // affiliate's row.
532
524
  if (foundMatchedName && (foundMatchedName !== normalizedName)) {
@@ -539,48 +531,38 @@ async function slingGridStrategy(page, profile) {
539
531
  // without tearing down the entire attempt and reloading the guide page.
540
532
  return await clickWithRetry(page, foundClickTarget, normalizedName, channelName);
541
533
  }
542
- /**
543
- * Builds a DiscoveredChannel array from the unified channel cache. Deduplicates alias entries (created by findChannelGuid's prefix matching) by tracking seen
544
- * entry references - aliases point to the same object as the original guide-name key. Sorts by name before returning.
545
- * @returns Sorted array of discovered channels with tier tagging.
546
- */
547
- function buildSlingDiscoveredChannels() {
548
- const channels = [];
549
- const seen = new Set();
550
- for (const entry of slingChannelCache.values()) {
551
- if (seen.has(entry)) {
552
- continue;
553
- }
554
- seen.add(entry);
555
- const result = { channelSelector: entry.displayName, name: entry.displayName };
556
- if (entry.tier) {
557
- result.tier = entry.tier;
558
- }
559
- channels.push(result);
560
- }
561
- channels.sort((a, b) => a.name.localeCompare(b.name));
562
- return channels;
563
- }
564
534
  /**
565
535
  * Discovers all channels from Sling TV by setting up grid API response interception, navigating to the guide page, and scrolling through the entire guide to
566
536
  * trigger all lazy-loaded API page fetches. The Sling guide API only delivers data for the currently visible viewport, so we scroll in viewport-sized increments
567
537
  * to ensure complete coverage, then wait for network idle to confirm all triggered API responses have arrived. Requires handlesOwnNavigation on the provider
568
538
  * module because response interception must be registered before navigation.
569
539
  *
570
- * Side effect: populates the module-level slingChannelCache, warming the tuning cache for subsequent channel tunes.
540
+ * Side effect: populates the module-level channel cache, warming the tuning cache for subsequent channel tunes.
571
541
  * @param page - The Puppeteer page object (fresh page, not yet navigated).
572
542
  * @returns Array of discovered channels with tier tagging.
573
543
  */
574
544
  async function discoverSlingChannels(page) {
575
545
  // Return from the unified cache if a prior discovery walk has fully enumerated the lineup. Individual tunes only populate a subset of the cache, so we require
576
- // the fully-enumerated flag to avoid returning an incomplete channel list.
577
- if (slingFullyEnumerated && (slingChannelCache.size > 0)) {
578
- return buildSlingDiscoveredChannels();
579
- }
546
+ // the completeness mark to avoid returning an incomplete channel list.
547
+ const cached = slingCache.cached();
548
+ if (cached) {
549
+ return cached;
550
+ }
551
+ /* A full walk measures completeness from zero. Entries accumulated by earlier incomplete walks or by individual tunes must not count toward the threshold the
552
+ * completeness mark is gated on below, or the complete-lineup claim would certify a union of separately-incomplete captures and would keep serving channels a
553
+ * shrunken lineup has dropped. Dropping the mark alongside the cache also covers the corner where a set mark would outlive an emptied cache.
554
+ *
555
+ * The reset is deliberately narrower than clearSlingCache(): the row cache and the playback-info base are tune-path state this walk never writes (the row
556
+ * cache's writers are the binary-search locator and its affiliate alias), so wiping them here would open a degradation that outlives the walk instead of one
557
+ * the walk itself repairs...they keep their own lifecycles, the session-end clear and each tune's own stale-row self-heal. A tune racing this walk therefore
558
+ * reads the walk's partial channel cache and takes its normal miss fallback, which is what any mid-walk view of a progressively populated cache gives it. On
559
+ * the precache path the service's full cache clear runs first and this baseline reset is a no-op behind it.
560
+ */
561
+ slingCache.clear();
580
562
  // Set up response interception BEFORE navigation so we capture all paginated grid API responses during page load. These responses populate the channel cache
581
563
  // that discovery reads from.
582
564
  setupGridResponseInterception(page);
583
- await page.goto("https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z", { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "load" });
565
+ await page.goto(SLING_GUIDE_URL, { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "load" });
584
566
  // Wait for channel entries to appear in the DOM (confirms guide grid has loaded).
585
567
  try {
586
568
  await page.waitForSelector("[data-testid^=\"channel-\"]", { timeout: 5000, visible: true });
@@ -625,7 +607,7 @@ async function discoverSlingChannels(page) {
625
607
  catch {
626
608
  // Timeout is non-fatal - check cache completeness below.
627
609
  }
628
- for (let retry = 0; (retry < PRECACHE_MAX_NETWORK_IDLE_RETRIES) && (slingChannelCache.size < PRECACHE_MIN_CHANNELS); retry++) {
610
+ for (let retry = 0; (retry < PRECACHE_MAX_NETWORK_IDLE_RETRIES) && (slingCache.map.size < PRECACHE_MIN_CHANNELS); retry++) {
629
611
  try {
630
612
  // eslint-disable-next-line no-await-in-loop
631
613
  await page.waitForNetworkIdle({ idleTime: 500, timeout: CONFIG.streaming.videoTimeout });
@@ -634,30 +616,27 @@ async function discoverSlingChannels(page) {
634
616
  // Timeout is non-fatal - check cache completeness on next iteration.
635
617
  }
636
618
  }
637
- // Do not cache empty results - leave the fully-enumerated flag unset so subsequent calls retry the full walk. Empty results can indicate no subscription or
638
- // API failure.
639
- if (slingChannelCache.size === 0) {
619
+ /* The walk has three exits, each with its own outcome for the completeness mark. An empty cache returns nothing and leaves the mark unset - no subscription or
620
+ * an API failure, and either way the next call retries the whole walk. A cache below PRECACHE_MIN_CHANNELS returns what this walk did capture, so the calling
621
+ * request is still served, but leaves the mark unset as well: the retry loop above already spent its full patience on a lineup that never filled out, and
622
+ * recording the complete-lineup claim over a truncated capture would teach every reader of the mark (the provider's cached read and this walk's own return)
623
+ * to serve that truncation for the life of the process. A cache at or above the threshold records the claim - and thanks to the reset at this walk's entry,
624
+ * the claim is about this walk's own capture rather than an accumulated union.
625
+ *
626
+ * The gate reuses the retry loop's completeness condition so the two stay one rule: what the loop waits for is exactly what the mark certifies.
627
+ */
628
+ if (slingCache.map.size === 0) {
640
629
  return [];
641
630
  }
642
- // Mark the channel cache as fully enumerated so that getCachedChannels() and future discoverSlingChannels() calls can derive from it without repeating the walk.
643
- slingFullyEnumerated = true;
644
- return buildSlingDiscoveredChannels();
645
- }
646
- /**
647
- * Returns cached discovered channels if a complete discovery walk has fully enumerated the lineup, or null if no complete enumeration has occurred. Individual
648
- * tunes only populate a subset of the channel cache and must not be treated as a complete lineup.
649
- * @returns Sorted array of discovered channels or null.
650
- */
651
- function getSlingCachedChannels() {
652
- if (!slingFullyEnumerated || (slingChannelCache.size === 0)) {
653
- return null;
631
+ if (slingCache.map.size >= PRECACHE_MIN_CHANNELS) {
632
+ slingCache.markComplete();
654
633
  }
655
- return buildSlingDiscoveredChannels();
634
+ return slingCache.discovered();
656
635
  }
657
636
  export const slingProvider = {
658
637
  discoverChannels: discoverSlingChannels,
659
- getCachedChannels: getSlingCachedChannels,
660
- guideUrl: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z",
638
+ getCachedChannels: slingCache.cached,
639
+ guideUrl: SLING_GUIDE_URL,
661
640
  handlesOwnNavigation: true,
662
641
  label: "Sling TV",
663
642
  // Sling TV live guide grid profile. The A-Z guide renders a virtualized grid of ~638 rows (120px each) with channel identification via
@@ -685,7 +664,7 @@ export const slingProvider = {
685
664
  validatePrecache: (channels) => channels.some((ch) => (ch.tier === "paid")),
686
665
  // A successful tune on a free-tier Freestream channel does not prove the user has a paid subscription. Only paid-tier channels vouch for provider auth.
687
666
  validateTune: (channelSelector) => {
688
- const entry = slingChannelCache.get(normalizeChannelName(channelSelector));
667
+ const entry = slingCache.map.get(normalizeChannelName(channelSelector));
689
668
  return (entry?.tier === "paid");
690
669
  }
691
670
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sling.js","sourceRoot":"","sources":["../../../src/browser/tuning/sling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sling.js","sourceRoot":"","sources":["../../../src/browser/tuning/sling.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import type { ProviderModule } from "../../types/index.ts";
2
2
  export declare const spectrumProvider: ProviderModule;
3
+ //# sourceMappingURL=spectrum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spectrum.d.ts","sourceRoot":"","sources":["../../../src/browser/tuning/spectrum.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA+E,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4exI,eAAO,MAAM,gBAAgB,EAAE,cAgC9B,CAAC"}