prismcast 1.7.0 → 1.9.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 (208) hide show
  1. package/README.md +6 -6
  2. package/dist/app.js +24 -13
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/cdp.d.ts +4 -6
  5. package/dist/browser/cdp.js +13 -17
  6. package/dist/browser/cdp.js.map +1 -1
  7. package/dist/browser/index.js +3 -3
  8. package/dist/browser/index.js.map +1 -1
  9. package/dist/browser/login.js +11 -8
  10. package/dist/browser/login.js.map +1 -1
  11. package/dist/browser/precaching.d.ts +1 -1
  12. package/dist/browser/precaching.js +23 -23
  13. package/dist/browser/precaching.js.map +1 -1
  14. package/dist/browser/tuning/directv.js +4 -7
  15. package/dist/browser/tuning/directv.js.map +1 -1
  16. package/dist/browser/tuning/fox.js +1 -1
  17. package/dist/browser/tuning/fox.js.map +1 -1
  18. package/dist/browser/tuning/hbo.js +1 -1
  19. package/dist/browser/tuning/hbo.js.map +1 -1
  20. package/dist/browser/tuning/hulu.js +3 -3
  21. package/dist/browser/tuning/hulu.js.map +1 -1
  22. package/dist/browser/tuning/sling.js +2 -2
  23. package/dist/browser/tuning/sling.js.map +1 -1
  24. package/dist/channels/index.d.ts +2 -0
  25. package/dist/channels/index.js +438 -252
  26. package/dist/channels/index.js.map +1 -1
  27. package/dist/config/health.d.ts +3 -3
  28. package/dist/config/health.js +13 -18
  29. package/dist/config/health.js.map +1 -1
  30. package/dist/config/index.js +11 -2
  31. package/dist/config/index.js.map +1 -1
  32. package/dist/config/persistence.d.ts +59 -0
  33. package/dist/config/persistence.js +127 -0
  34. package/dist/config/persistence.js.map +1 -0
  35. package/dist/config/profiles.js +10 -10
  36. package/dist/config/profiles.js.map +1 -1
  37. package/dist/config/servicePacks.d.ts +46 -0
  38. package/dist/config/{providerPacks.js → servicePacks.js} +28 -31
  39. package/dist/config/servicePacks.js.map +1 -0
  40. package/dist/config/services.d.ts +202 -0
  41. package/dist/config/services.js +758 -0
  42. package/dist/config/services.js.map +1 -0
  43. package/dist/config/sites.js +61 -61
  44. package/dist/config/sites.js.map +1 -1
  45. package/dist/config/userChannels.d.ts +89 -27
  46. package/dist/config/userChannels.js +400 -184
  47. package/dist/config/userChannels.js.map +1 -1
  48. package/dist/config/userConfig.d.ts +13 -9
  49. package/dist/config/userConfig.js +78 -60
  50. package/dist/config/userConfig.js.map +1 -1
  51. package/dist/config/userProfiles.d.ts +31 -15
  52. package/dist/config/userProfiles.js +154 -123
  53. package/dist/config/userProfiles.js.map +1 -1
  54. package/dist/hdhr/channelMap.d.ts +1 -1
  55. package/dist/hdhr/channelMap.js +4 -7
  56. package/dist/hdhr/channelMap.js.map +1 -1
  57. package/dist/hdhr/discover.js +7 -15
  58. package/dist/hdhr/discover.js.map +1 -1
  59. package/dist/hdhr/index.js +6 -9
  60. package/dist/hdhr/index.js.map +1 -1
  61. package/dist/native/index.d.ts +2 -2
  62. package/dist/native/index.js +17 -27
  63. package/dist/native/index.js.map +1 -1
  64. package/dist/native/intercept.js +86 -89
  65. package/dist/native/intercept.js.map +1 -1
  66. package/dist/native/probe.js +2 -2
  67. package/dist/native/probe.js.map +1 -1
  68. package/dist/native/proxy.d.ts +2 -2
  69. package/dist/native/proxy.js +4 -4
  70. package/dist/native/proxy.js.map +1 -1
  71. package/dist/routes/assets.js +29 -51
  72. package/dist/routes/assets.js.map +1 -1
  73. package/dist/routes/auth.js +3 -3
  74. package/dist/routes/auth.js.map +1 -1
  75. package/dist/routes/channels.js +5 -11
  76. package/dist/routes/channels.js.map +1 -1
  77. package/dist/routes/components.d.ts +0 -8
  78. package/dist/routes/components.js +0 -19
  79. package/dist/routes/components.js.map +1 -1
  80. package/dist/routes/config/channels/index.d.ts +1 -1
  81. package/dist/routes/config/channels/index.js +1 -1
  82. package/dist/routes/config/channels/index.js.map +1 -1
  83. package/dist/routes/config/channels/routes.js +748 -420
  84. package/dist/routes/config/channels/routes.js.map +1 -1
  85. package/dist/routes/config/channels/table.d.ts +21 -6
  86. package/dist/routes/config/channels/table.js +456 -193
  87. package/dist/routes/config/channels/table.js.map +1 -1
  88. package/dist/routes/config/index.d.ts +2 -2
  89. package/dist/routes/config/index.js +3 -3
  90. package/dist/routes/config/index.js.map +1 -1
  91. package/dist/routes/config/{providers.js → services.js} +47 -42
  92. package/dist/routes/config/services.js.map +1 -0
  93. package/dist/routes/config/settings.js +88 -49
  94. package/dist/routes/config/settings.js.map +1 -1
  95. package/dist/routes/debug.js +5 -7
  96. package/dist/routes/debug.js.map +1 -1
  97. package/dist/routes/health.js +1 -1
  98. package/dist/routes/health.js.map +1 -1
  99. package/dist/routes/icons.d.ts +16 -0
  100. package/dist/routes/icons.js +44 -0
  101. package/dist/routes/icons.js.map +1 -0
  102. package/dist/routes/index.js +2 -2
  103. package/dist/routes/index.js.map +1 -1
  104. package/dist/routes/logs.js +4 -4
  105. package/dist/routes/logs.js.map +1 -1
  106. package/dist/routes/playlist.d.ts +6 -4
  107. package/dist/routes/playlist.js +98 -45
  108. package/dist/routes/playlist.js.map +1 -1
  109. package/dist/routes/root/content.js +94 -55
  110. package/dist/routes/root/content.js.map +1 -1
  111. package/dist/routes/root/scripts/channels.js +620 -478
  112. package/dist/routes/root/scripts/channels.js.map +1 -1
  113. package/dist/routes/root/scripts/config.js +884 -964
  114. package/dist/routes/root/scripts/config.js.map +1 -1
  115. package/dist/routes/root/scripts/shared.js +468 -188
  116. package/dist/routes/root/scripts/shared.js.map +1 -1
  117. package/dist/routes/root/scripts/status.js +252 -207
  118. package/dist/routes/root/scripts/status.js.map +1 -1
  119. package/dist/routes/root/styles.js +57 -8
  120. package/dist/routes/root/styles.js.map +1 -1
  121. package/dist/routes/services.d.ts +6 -0
  122. package/dist/routes/{providers.js → services.js} +43 -43
  123. package/dist/routes/services.js.map +1 -0
  124. package/dist/routes/ui.d.ts +1 -1
  125. package/dist/routes/ui.js +3 -1
  126. package/dist/routes/ui.js.map +1 -1
  127. package/dist/service/commands.js +8 -43
  128. package/dist/service/commands.js.map +1 -1
  129. package/dist/service/generators.d.ts +1 -1
  130. package/dist/service/generators.js +143 -41
  131. package/dist/service/generators.js.map +1 -1
  132. package/dist/streaming/codec.d.ts +20 -0
  133. package/dist/streaming/codec.js +68 -0
  134. package/dist/streaming/codec.js.map +1 -0
  135. package/dist/streaming/fmp4Segmenter.d.ts +2 -2
  136. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  137. package/dist/streaming/hls.d.ts +4 -4
  138. package/dist/streaming/hls.js +35 -29
  139. package/dist/streaming/hls.js.map +1 -1
  140. package/dist/streaming/hlsResume.js +3 -3
  141. package/dist/streaming/hlsResume.js.map +1 -1
  142. package/dist/streaming/monitor.d.ts +2 -2
  143. package/dist/streaming/monitor.js +19 -13
  144. package/dist/streaming/monitor.js.map +1 -1
  145. package/dist/streaming/preroll.d.ts +15 -14
  146. package/dist/streaming/preroll.js +32 -12
  147. package/dist/streaming/preroll.js.map +1 -1
  148. package/dist/streaming/registry.d.ts +2 -2
  149. package/dist/streaming/registry.js +4 -8
  150. package/dist/streaming/registry.js.map +1 -1
  151. package/dist/streaming/setup.d.ts +4 -4
  152. package/dist/streaming/setup.js +28 -34
  153. package/dist/streaming/setup.js.map +1 -1
  154. package/dist/streaming/showInfo.js +8 -10
  155. package/dist/streaming/showInfo.js.map +1 -1
  156. package/dist/streaming/statusEmitter.d.ts +4 -3
  157. package/dist/streaming/statusEmitter.js +3 -3
  158. package/dist/streaming/statusEmitter.js.map +1 -1
  159. package/dist/types/channels.d.ts +18 -11
  160. package/dist/types/config.d.ts +3 -2
  161. package/dist/types/index.d.ts +4 -3
  162. package/dist/types/index.js +1 -0
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/profiles.d.ts +9 -9
  165. package/dist/types/selection.d.ts +1 -1
  166. package/dist/types/shared.d.ts +1 -1
  167. package/dist/types/streaming.d.ts +8 -16
  168. package/dist/types/streaming.js +5 -1
  169. package/dist/types/streaming.js.map +1 -1
  170. package/dist/upgrade/commands.js +1 -16
  171. package/dist/upgrade/commands.js.map +1 -1
  172. package/dist/utils/chromeFetch.js +1 -1
  173. package/dist/utils/cliOutput.d.ts +10 -0
  174. package/dist/utils/cliOutput.js +17 -0
  175. package/dist/utils/cliOutput.js.map +1 -0
  176. package/dist/utils/debugFilter.js +3 -3
  177. package/dist/utils/debugFilter.js.map +1 -1
  178. package/dist/utils/fileLogger.js +4 -3
  179. package/dist/utils/fileLogger.js.map +1 -1
  180. package/dist/utils/format.d.ts +21 -4
  181. package/dist/utils/format.js +45 -7
  182. package/dist/utils/format.js.map +1 -1
  183. package/dist/utils/index.d.ts +1 -0
  184. package/dist/utils/index.js +1 -0
  185. package/dist/utils/index.js.map +1 -1
  186. package/dist/utils/logger.js +17 -27
  187. package/dist/utils/logger.js.map +1 -1
  188. package/dist/utils/morganStream.js +2 -2
  189. package/dist/utils/morganStream.js.map +1 -1
  190. package/dist/utils/platform.js +3 -2
  191. package/dist/utils/platform.js.map +1 -1
  192. package/dist/utils/retry.js +2 -4
  193. package/dist/utils/retry.js.map +1 -1
  194. package/dist/utils/streamContext.d.ts +7 -0
  195. package/dist/utils/streamContext.js +10 -1
  196. package/dist/utils/streamContext.js.map +1 -1
  197. package/dist/utils/version.js +4 -4
  198. package/dist/utils/version.js.map +1 -1
  199. package/package.json +5 -7
  200. package/dist/config/providerPacks.d.ts +0 -46
  201. package/dist/config/providerPacks.js.map +0 -1
  202. package/dist/config/providers.d.ts +0 -175
  203. package/dist/config/providers.js +0 -678
  204. package/dist/config/providers.js.map +0 -1
  205. package/dist/routes/config/providers.js.map +0 -1
  206. package/dist/routes/providers.d.ts +0 -6
  207. package/dist/routes/providers.js.map +0 -1
  208. /package/dist/routes/config/{providers.d.ts → services.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/config/services.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,14 @@ import { getUserDomains } from "./userProfiles.js";
7
7
  * The profile system has four components:
8
8
  *
9
9
  * 1. SITE_PROFILES: General-purpose behavior configurations that users can select for custom channels. These describe common player implementation patterns and
10
- * are shown in UI dropdowns and the provider wizard. Profiles can inherit from other profiles using the "extends" property.
10
+ * are shown in UI dropdowns and the service wizard. Profiles can inherit from other profiles using the "extends" property.
11
11
  *
12
12
  * 1b. PROVIDER_PROFILES: Internal profiles tied to specific provider modules (Hulu, YouTube TV, Sling, etc.). These have channel selection strategies and
13
13
  * selectors tightly coupled to a streaming service's DOM structure. They are never shown in user-facing profile lists — users targeting these services should
14
14
  * use the predefined channels directly. Provider profiles can extend general profiles (e.g., fullscreenApi) and profile resolution checks both tables.
15
15
  *
16
- * 2. DOMAIN_CONFIG: A mapping from domain patterns to site profiles and provider display names. When streaming a URL, we check if it matches any known domain and
17
- * use the corresponding profile. Provider display names give friendly labels (e.g., "Hulu" instead of "hulu.com") for the UI source column and provider
16
+ * 2. DOMAIN_CONFIG: A mapping from domain patterns to site profiles and service display names. When streaming a URL, we check if it matches any known domain and
17
+ * use the corresponding profile. Service display names give friendly labels (e.g., "Hulu" instead of "hulu.com") for the UI source column and service
18
18
  * dropdowns. This is the primary mechanism for automatically selecting the right behavior and generating friendly display names.
19
19
  *
20
20
  * 3. Channel-level profile hints: Individual channel definitions can specify an explicit profile name, overriding URL-based detection. This is useful when a
@@ -184,18 +184,18 @@ export const SITE_PROFILES = {
184
184
  selectReadyVideo: true,
185
185
  summary: "Multi-video sites ('f' key fullscreen)"
186
186
  },
187
- // Profile for non-video pages that should be captured as static visual content. Examples include weather displays (weatherscan.net), maps (windy.com), and
188
- // diagnostic pages. The noVideo flag tells the streaming code not to wait for a video element or set up playback monitoring - just capture whatever is displayed.
187
+ // Profile for non-video pages captured as static visual content. Examples include weather displays (weatherscan.net), maps (windy.com), and diagnostic pages.
188
+ // The staticCapture flag tells the streaming code to navigate directly and skip video element detection, playback initialization, and health monitoring.
189
189
  staticPage: {
190
190
  category: "special",
191
191
  description: "Base profile for non-video pages captured as static visual content.",
192
- noVideo: true,
192
+ staticCapture: true,
193
193
  summary: "Static pages (no video)"
194
194
  }
195
195
  };
196
196
  /* Provider profiles are internal profiles tied to specific provider modules. They have channel selection strategies, selectors, and flags tightly coupled to a
197
197
  * specific streaming service's DOM structure and are not user-selectable. They live in a separate table from SITE_PROFILES so that UI-facing code (profile
198
- * dropdowns, provider wizard, profile validation) can show only general-purpose profiles without maintaining an exclusion list. The extends mechanism works across
198
+ * dropdowns, service wizard, profile validation) can show only general-purpose profiles without maintaining an exclusion list. The extends mechanism works across
199
199
  * both tables — a provider profile can extend a general profile (e.g., fullscreenApi) and profile resolution checks both tables transparently.
200
200
  */
201
201
  export const PROVIDER_PROFILES = {
@@ -226,68 +226,68 @@ export const PROVIDER_PROFILES = {
226
226
  summary: "Disney+ (tile + play button, needs selector)"
227
227
  }
228
228
  };
229
- /* This mapping associates domain keys with site profiles, provider display names, and provider filter tags. Most keys are concise second-level domains
229
+ /* This mapping associates domain keys with site profiles, service display names, and service filter tags. Most keys are concise second-level domains
230
230
  * (e.g., "nbc.com", "foodnetwork.com") matching the output of extractDomain(). Keys can also be full hostnames (e.g., "tv.youtube.com") for subdomain-specific
231
231
  * overrides — getDomainConfig() tries the full hostname first, then falls back to the concise domain, so "tv.youtube.com" takes precedence over "youtube.com"
232
232
  * when the URL matches.
233
233
  *
234
- * Domains without a profile entry will use DEFAULT_SITE_PROFILE, which works for most standard video players. Domains without a provider entry will display the
235
- * concise domain string (e.g., "hulu.com") in the UI. Entries with a providerTag participate in the provider filter system — channels whose canonical URL maps to
234
+ * Domains without a profile entry will use DEFAULT_SITE_PROFILE, which works for most standard video players. Domains without a service entry will display the
235
+ * concise domain string (e.g., "hulu.com") in the UI. Entries with a serviceTag participate in the service filter system — channels whose canonical URL maps to
236
236
  * a tagged domain are identified as belonging to that subscription service rather than being tagged as "direct" (free network sites).
237
237
  */
238
238
  export const DOMAIN_CONFIG = {
239
- "abc.com": { profile: "keyboardMultiVideo", provider: "ABC.com" },
240
- "aetv.com": { profile: "fullscreenApi", provider: "A&E" },
241
- "bet.com": { profile: "fullscreenApi", provider: "BET.com" },
242
- "c-span.org": { dismissSelector: ".videoAdUiSkipButtonExperimentalText", profile: "brightcove", provider: "C-SPAN.org" },
243
- "cbs.com": { dismissSelector: "#mvpd__getstarted", profile: "keyboardIframe", provider: "CBS.com" },
244
- "cnbc.com": { profile: "fullscreenApi", provider: "CNBC.com" },
245
- "cnn.com": { profile: "fullscreenApi", provider: "CNN.com" },
246
- "disneynow.com": { profile: "disneyNow", provider: "DisneyNOW" },
239
+ "abc.com": { profile: "keyboardMultiVideo", service: "ABC.com" },
240
+ "aetv.com": { profile: "fullscreenApi", service: "A&E" },
241
+ "bet.com": { profile: "fullscreenApi", service: "BET.com" },
242
+ "c-span.org": { dismissSelector: ".videoAdUiSkipButtonExperimentalText", profile: "brightcove", service: "C-SPAN.org" },
243
+ "cbs.com": { dismissSelector: "#mvpd__getstarted", profile: "keyboardIframe", service: "CBS.com" },
244
+ "cnbc.com": { profile: "fullscreenApi", service: "CNBC.com" },
245
+ "cnn.com": { profile: "fullscreenApi", service: "CNN.com" },
246
+ "disneynow.com": { profile: "disneyNow", service: "DisneyNOW" },
247
247
  "disneyplus.com": { iconUrl: "https://static-assets.bamgrid.com/product/disneyplus/favicons/apple-touch-icon-aurora.d3af81fe0571b495a3c80ff8c3d0c8e7.png",
248
- profile: "disneyPlus", provider: "Disney+", providerTag: "disneyplus" },
249
- "espn.com": { profile: "keyboardMultiVideo", provider: "ESPN.com" },
250
- "foodnetwork.com": { profile: "fullscreenApi", provider: "Food Network" },
251
- "fox.com": { loginUrl: "https://www.fox.com", profile: "foxLive", provider: "Fox One", providerTag: "foxone" },
252
- "foxbusiness.com": { profile: "embeddedDynamicMultiVideo", provider: "Fox Business" },
253
- "foxnews.com": { profile: "embeddedDynamicMultiVideo", provider: "Fox News" },
254
- "foxsports.com": { profile: "fullscreenApi", provider: "Fox Sports" },
255
- "france24.com": { profile: "embeddedVolumeLock", provider: "France 24" },
256
- "freeform.com": { profile: "fullscreenApi", provider: "Freeform" },
257
- "fyi.tv": { profile: "fullscreenApi", provider: "FYI" },
258
- "golfchannel.com": { profile: "fullscreenApi", provider: "Golf Channel" },
259
- "hbomax.com": { profile: "hboMax", provider: "HBO Max", providerTag: "hbomax" },
260
- "history.com": { profile: "fullscreenApi", provider: "History.com" },
261
- "hulu.com": { iconUrl: "https://www.hulu.com/static/icons/apple-touch-icon.png", profile: "huluLive", provider: "Hulu", providerTag: "hulu" },
262
- "lakeshorepbs.org": { profile: "embeddedPlayer", provider: "Lakeshore PBS" },
263
- "ms.now": { profile: "keyboardDynamic", provider: "MS NOW" },
264
- "mylifetime.com": { profile: "fullscreenApi", provider: "Lifetime" },
265
- "nationalgeographic.com": { profile: "keyboardDynamicMultiVideo", provider: "Nat Geo" },
266
- "nba.com": { profile: "fullscreenApi", provider: "NBA.com" },
267
- "nbc.com": { maxContinuousPlayback: 4, profile: "keyboardDynamic", provider: "NBC.com" },
248
+ profile: "disneyPlus", service: "Disney+", serviceTag: "disneyplus" },
249
+ "espn.com": { profile: "keyboardMultiVideo", service: "ESPN.com" },
250
+ "foodnetwork.com": { profile: "fullscreenApi", service: "Food Network" },
251
+ "fox.com": { loginUrl: "https://www.fox.com", profile: "foxLive", service: "Fox One", serviceTag: "foxone" },
252
+ "foxbusiness.com": { profile: "embeddedDynamicMultiVideo", service: "Fox Business" },
253
+ "foxnews.com": { profile: "embeddedDynamicMultiVideo", service: "Fox News" },
254
+ "foxsports.com": { profile: "fullscreenApi", service: "Fox Sports" },
255
+ "france24.com": { profile: "embeddedVolumeLock", service: "France 24" },
256
+ "freeform.com": { profile: "fullscreenApi", service: "Freeform" },
257
+ "fyi.tv": { profile: "fullscreenApi", service: "FYI" },
258
+ "golfchannel.com": { profile: "fullscreenApi", service: "Golf Channel" },
259
+ "hbomax.com": { profile: "hboMax", service: "HBO Max", serviceTag: "hbomax" },
260
+ "history.com": { profile: "fullscreenApi", service: "History.com" },
261
+ "hulu.com": { iconUrl: "https://www.hulu.com/static/icons/apple-touch-icon.png", profile: "huluLive", service: "Hulu", serviceTag: "hulu" },
262
+ "lakeshorepbs.org": { profile: "embeddedPlayer", service: "Lakeshore PBS" },
263
+ "ms.now": { profile: "keyboardDynamic", service: "MS NOW" },
264
+ "mylifetime.com": { profile: "fullscreenApi", service: "Lifetime" },
265
+ "nationalgeographic.com": { profile: "keyboardDynamicMultiVideo", service: "Nat Geo" },
266
+ "nba.com": { profile: "fullscreenApi", service: "NBA.com" },
267
+ "nbc.com": { maxContinuousPlayback: 4, profile: "keyboardDynamic", service: "NBC.com" },
268
268
  "paramountplus.com": { dismissSelector: ".ppp-watch", iconUrl: "https://www.paramountplus.com/assets/images/pplus_App_Icon-Blue-144x144.png",
269
- profile: "fullscreenApi", provider: "Paramount+", providerTag: "paramountplus" },
270
- "sling.com": { profile: "embeddedVolumeLock", provider: "Sling TV" },
271
- "starz.com": { profile: "fullscreenApi", provider: "Starz" },
272
- "stream.directv.com": { loginUrl: "https://stream.directv.com", profile: "directvStream", provider: "DirecTV Stream", providerTag: "directv" },
273
- "tbs.com": { profile: "fullscreenApi", provider: "TBS.com" },
274
- "tntdrama.com": { profile: "fullscreenApi", provider: "TNT" },
275
- "trutv.com": { profile: "fullscreenApi", provider: "truTV" },
276
- "tv.youtube.com": { iconUrl: "https://www.youtube.com/yts/img/favicon_144-vfliLAfaB.png", profile: "youtubeTV", provider: "YouTube TV", providerTag: "yttv" },
269
+ profile: "fullscreenApi", service: "Paramount+", serviceTag: "paramountplus" },
270
+ "sling.com": { profile: "embeddedVolumeLock", service: "Sling TV" },
271
+ "starz.com": { profile: "fullscreenApi", service: "Starz" },
272
+ "stream.directv.com": { loginUrl: "https://stream.directv.com", profile: "directvStream", service: "DirecTV Stream", serviceTag: "directv" },
273
+ "tbs.com": { profile: "fullscreenApi", service: "TBS.com" },
274
+ "tntdrama.com": { profile: "fullscreenApi", service: "TNT" },
275
+ "trutv.com": { profile: "fullscreenApi", service: "truTV" },
276
+ "tv.youtube.com": { iconUrl: "https://www.youtube.com/yts/img/favicon_144-vfliLAfaB.png", profile: "youtubeTV", service: "YouTube TV", serviceTag: "yttv" },
277
277
  "usanetwork.com": { iconUrl: "https://usanetwork.asset.viewlift.com/images/brand/2025/09/30/usa_favicon-1759230411162.ico",
278
- profile: "keyboardDynamicMultiVideo", provider: "USA Network", providerTag: "usa" },
279
- "vh1.com": { profile: "fullscreenApi", provider: "VH1.com" },
280
- "watch.sling.com": { profile: "slingLive", provider: "Sling TV", providerTag: "sling" },
281
- "watch.spectrum.net": { iconUrl: "https://watch.spectrum.net/assets/17.28.0/images/apple-touch-icon.png", profile: "spectrum", provider: "Spectrum TV",
282
- providerTag: "spectrum" },
283
- "watchhallmarktv.com": { profile: "fullscreenApi", provider: "Hallmark" },
284
- "watchtv.cox.com": { iconUrl: "https://watchtv.cox.com/partners/cox/images/favicon-128x128.png", profile: "coxStream", provider: "Cox Contour TV",
285
- providerTag: "cox" },
286
- "weatherscan.net": { profile: "staticPage", provider: "Weatherscan" },
287
- "windy.com": { profile: "staticPage", provider: "Windy" },
288
- "wttw.com": { profile: "fullscreenApi", provider: "WTTW" },
289
- "xfinity.com": { profile: "xfinityStream", provider: "Xfinity Stream", providerTag: "xfinity" },
290
- "youtube.com": { profile: "keyboardDynamic", provider: "YouTube" }
278
+ profile: "keyboardDynamicMultiVideo", service: "USA Network", serviceTag: "usa" },
279
+ "vh1.com": { profile: "fullscreenApi", service: "VH1.com" },
280
+ "watch.sling.com": { profile: "slingLive", service: "Sling TV", serviceTag: "sling" },
281
+ "watch.spectrum.net": { iconUrl: "https://watch.spectrum.net/assets/17.28.0/images/apple-touch-icon.png", profile: "spectrum", service: "Spectrum TV",
282
+ serviceTag: "spectrum" },
283
+ "watchhallmarktv.com": { profile: "fullscreenApi", service: "Hallmark" },
284
+ "watchtv.cox.com": { iconUrl: "https://watchtv.cox.com/partners/cox/images/favicon-128x128.png", profile: "coxStream", service: "Cox Contour TV",
285
+ serviceTag: "cox" },
286
+ "weatherscan.net": { profile: "staticPage", service: "Weatherscan" },
287
+ "windy.com": { profile: "staticPage", service: "Windy" },
288
+ "wttw.com": { profile: "fullscreenApi", service: "WTTW" },
289
+ "xfinity.com": { profile: "xfinityStream", service: "Xfinity Stream", serviceTag: "xfinity" },
290
+ "youtube.com": { profile: "keyboardDynamic", service: "YouTube" }
291
291
  };
292
292
  /**
293
293
  * Resolves a URL to its DOMAIN_CONFIG entry by trying the full hostname first for subdomain-specific overrides, then falling back to the concise domain (last two
@@ -402,10 +402,10 @@ export const DEFAULT_SITE_PROFILE = {
402
402
  maxContinuousPlayback: null,
403
403
  // Don't search iframes - assume video is in main page DOM.
404
404
  needsIframeHandling: false,
405
- // Expect video content - wait for video element.
406
- noVideo: false,
407
405
  // Use first video element - assume only one video exists.
408
406
  selectReadyVideo: false,
407
+ // Not a static page capture - wait for video element and monitor playback.
408
+ staticCapture: false,
409
409
  // Don't use requestFullscreen() API.
410
410
  useRequestFullscreen: false,
411
411
  // No per-domain video timeout override - use the global default.
@@ -1 +1 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/config/sites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/config/sites.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,14 @@ export type UserChannel = Channel;
7
7
  * Map of channel keys to stored channel data (full definitions or deltas). This is the raw file format for channels.json.
8
8
  */
9
9
  export type UserChannelMap = StoredChannelMap;
10
+ /**
11
+ * Tag registry state persisted in channels.json alongside channel data. Tracks user-created tags and user-deleted predefined tags. The runtime tag vocabulary
12
+ * is computed as: (PREDEFINED_TAGS - deletedTags) + tags, sorted alphabetically.
13
+ */
14
+ export interface TagRegistry {
15
+ deletedTags: string[];
16
+ tags: string[];
17
+ }
10
18
  /**
11
19
  * Result of loading user channels from the file.
12
20
  */
@@ -14,7 +22,8 @@ export interface UserChannelsLoadResult {
14
22
  channels: StoredChannelMap;
15
23
  parseError: boolean;
16
24
  parseErrorMessage?: string;
17
- providerSelections: Record<string, string>;
25
+ serviceSelections: Record<string, string>;
26
+ tagRegistry: TagRegistry;
18
27
  }
19
28
  /**
20
29
  * Returns the path to the user channels file.
@@ -32,25 +41,24 @@ export declare function hasChannelsParseError(): boolean;
32
41
  */
33
42
  export declare function getChannelsParseErrorMessage(): string | undefined;
34
43
  /**
35
- * Loads user channels from the channels file. Returns an empty map if the file doesn't exist, and sets parseError if the file exists but contains invalid JSON.
36
- * The file can contain a special `providerSelections` key with user's provider preferences, which is extracted separately from channels.
37
- * @returns The loaded channels with parse status and provider selections.
44
+ * Reads the current channels from disk without acquiring the serialization lock. Returns the parsed channels with metadata and parse status. Use this for
45
+ * read-only access and startup initialization. For modifications, use mutateChannels() instead.
46
+ * @returns The loaded channels with parse status, service selections, and tag registry.
38
47
  */
39
- export declare function loadUserChannels(): Promise<UserChannelsLoadResult>;
48
+ export declare function readChannels(): Promise<UserChannelsLoadResult>;
40
49
  /**
41
- * Saves user channels to the channels file and updates the in-memory cache. Changes take effect immediately for new stream requests without requiring a server
42
- * restart. Creates the data directory if it doesn't exist. Provider selections are also saved if any exist. No-op deltas for predefined channel keys are
43
- * normalized before saving: fields that match the predefined value or null-clear a field the predefined doesn't have are stripped. If the delta becomes empty
44
- * after normalization, the entry is removed entirely. This ensures that any code path that writes deltas (inline edit, auto-number, browse modal, full edit)
45
- * produces clean channels.json output without each handler needing to optimize its own delta.
46
- * @param channels - The channels to save (full definitions or delta overrides).
47
- * @throws If the file cannot be written.
50
+ * Serialized read-modify-write operation on channels.json. The mutation function receives the current StoredChannelMap and modifies it in place. The store
51
+ * handles atomicity, serialization, corruption guard, backup, and metadata injection. Delta normalization is applied after the caller's mutation and before the
52
+ * file write so that the normalized result is available for the post-write cache update.
53
+ * @param fn - Mutation function. Receives current channels. Modify in place; return value is ignored.
54
+ * @throws FileStoreParseError if channels.json contains invalid JSON.
48
55
  */
49
- export declare function saveUserChannels(channels: StoredChannelMap): Promise<void>;
56
+ export declare function mutateChannels(fn: (channels: StoredChannelMap) => void): Promise<void>;
50
57
  /**
51
58
  * Deletes a user channel by key.
52
59
  * @param key - The channel key to delete.
53
- * @throws If the file cannot be read or written.
60
+ * @throws FileStoreParseError if the channels file contains invalid JSON.
61
+ * @throws If the file cannot be written.
54
62
  */
55
63
  export declare function deleteUserChannel(key: string): Promise<void>;
56
64
  /**
@@ -59,7 +67,7 @@ export declare function deleteUserChannel(key: string): Promise<void>;
59
67
  */
60
68
  export declare function resetUserChannels(): Promise<void>;
61
69
  /**
62
- * Initializes user channels by loading them from the file. This should be called once at server startup. Also builds provider groups and loads provider selections.
70
+ * Initializes user channels by loading them from the file. This should be called once at server startup. Also builds service groups and loads service selections.
63
71
  */
64
72
  export declare function initializeUserChannels(): Promise<void>;
65
73
  /**
@@ -83,19 +91,19 @@ export declare function resolveStoredChannel(key: string, stored: StoredChannel)
83
91
  * The enabled field reflects whether the channel is available for streaming. Predefined-only channels can be disabled via configuration; user and override
84
92
  * channels are always enabled.
85
93
  *
86
- * Provider variants (non-canonical keys in provider groups) are filtered out from this listing — they are accessed via the provider selection mechanism instead.
94
+ * Service variants (non-canonical keys in service groups) are filtered out from this listing — they are accessed via the service selection mechanism instead.
87
95
  *
88
- * Override entries produce a new resolved Channel object (via resolveStoredChannel()), which is a different reference from PREDEFINED_CHANNELS[key]. The provider
89
- * system (providers.ts) relies on this reference difference to detect user overrides via isUserOverride(). Predefined-only entries preserve the original reference.
96
+ * Override entries produce a new resolved Channel object (via resolveStoredChannel()), which is a different reference from PREDEFINED_CHANNELS[key]. The service
97
+ * system (services.ts) relies on this reference difference to detect user overrides via isUserOverride(). Predefined-only entries preserve the original reference.
90
98
  *
91
- * The returned channel field is provider-resolved: when a non-default provider is selected for a channel, the entry's channel reflects the selected variant's URL,
99
+ * The returned channel field is service-resolved: when a non-default service is selected for a channel, the entry's channel reflects the selected variant's URL,
92
100
  * channelSelector, stationId, and channelNumber. The entry's key always remains the canonical key.
93
101
  * @returns Sorted array of channel listing entries.
94
102
  */
95
103
  export declare function getChannelListing(): ChannelListingEntry[];
96
104
  /**
97
- * Returns all available channels (predefined + user), with user channels taking precedence on key conflicts. Disabled predefined channels are excluded unless they
98
- * have a user override. Built on top of getChannelListing() to ensure a single merging code path.
105
+ * Returns all available channels (predefined + user), with user channels taking precedence on key conflicts. Disabled predefined channels are excluded. Built on
106
+ * top of getChannelListing() to ensure a single merging code path.
99
107
  * @returns The merged channel map with disabled predefined channels filtered out.
100
108
  */
101
109
  export declare function getAllChannels(): ChannelMap;
@@ -104,6 +112,52 @@ export declare function getAllChannels(): ChannelMap;
104
112
  * @returns The stored channel map.
105
113
  */
106
114
  export declare function getUserChannels(): StoredChannelMap;
115
+ /**
116
+ * Returns the current tag registry state.
117
+ * @returns A copy of the tag registry with user-created tags and deleted predefined tags.
118
+ */
119
+ export declare function getTagRegistry(): TagRegistry;
120
+ /**
121
+ * Updates the tag registry state in memory. Call saveTagRegistry() after to persist the change.
122
+ * @param registry - The new tag registry state.
123
+ */
124
+ export declare function setTagRegistry(registry: TagRegistry): void;
125
+ /**
126
+ * Returns the active tag vocabulary: predefined tags minus user-deleted tags, plus user-created tags, sorted alphabetically. This is the single source of truth
127
+ * for which tags are visible, assignable, and queryable throughout the system. Tags not in this list are invisible to the UI and rejected by the ?tag= query
128
+ * parameter, even if they exist on channel definitions (vocabulary-as-lens model).
129
+ * @returns Sorted array of active tag strings.
130
+ */
131
+ export declare function getActiveTagVocabulary(): string[];
132
+ /**
133
+ * Returns a channel's effective tags — the intersection of the channel's assigned tags with the active vocabulary. Tags that exist on the channel but are not in
134
+ * the active vocabulary are filtered out, ensuring only assignable and queryable tags are visible in the UI and playlist responses.
135
+ * @param channel - The channel to get effective tags for.
136
+ * @returns Sorted array of effective tag strings, or empty array if the channel has no tags or none are in the active vocabulary.
137
+ */
138
+ export declare function getChannelEffectiveTags(channel: Channel): string[];
139
+ /**
140
+ * Case-insensitive tag comparison. Tags are freeform strings with preserved casing, but all matching throughout the system is case-insensitive. This function
141
+ * is the single source of truth for that policy — all tag identity checks should use it rather than inline toLowerCase() calls.
142
+ * @param a - The first tag.
143
+ * @param b - The second tag.
144
+ * @returns True if the tags match case-insensitively.
145
+ */
146
+ export declare function tagsMatch(a: string, b: string): boolean;
147
+ /**
148
+ * Applies a tag transformation across channels and persists the result. This is the single source of truth for batch tag mutations — delete, rename, and bulk
149
+ * toggle all route through this function. The caller provides a filter (which channels to transform) and a transform (how to modify each channel's tags). This
150
+ * function handles loading stored channel data, applying the transform, and saving. Delta normalization in mutateChannels() handles predefined channel
151
+ * delta computation automatically — callers do not need to reason about deltas vs. full definitions.
152
+ * @param filter - Predicate selecting which listing entries to transform. Receives each ChannelListingEntry from getChannelListing().
153
+ * @param transform - Pure function mapping a channel's current resolved tags to its new tags. Receives the channel's current tags array (may be empty, ordering
154
+ * not guaranteed). Must return the desired tags array (may be empty to clear all tags). The returned array is sorted before storage.
155
+ * @returns Object with the affected channel keys and success status. On parse error, returns an error message and empty affected keys.
156
+ */
157
+ export declare function transformChannelTags(filter: (entry: ChannelListingEntry) => boolean, transform: (tags: string[]) => string[]): Promise<{
158
+ affectedKeys: string[];
159
+ error?: string;
160
+ }>;
107
161
  /**
108
162
  * Returns the predefined channel definition for a key.
109
163
  * @param key - The channel key to look up.
@@ -161,7 +215,8 @@ export declare function getChannelLogo(channelKey: string): string | undefined;
161
215
  */
162
216
  export declare function isUserChannel(key: string): boolean;
163
217
  /**
164
- * Checks if a predefined channel is disabled.
218
+ * Checks if a predefined channel is disabled. The disabled state is determined solely by the disabledPredefined list in config — the user's explicit visibility
219
+ * intent. Property overrides (HDHR toggle, name change, tag edits) stored as deltas in channels.json are orthogonal and do not affect the enabled/disabled state.
165
220
  * @param key - The channel key to check.
166
221
  * @returns True if the channel is predefined and disabled.
167
222
  */
@@ -172,8 +227,8 @@ export declare function isPredefinedChannelDisabled(key: string): boolean;
172
227
  */
173
228
  export declare function getDisabledPredefinedChannels(): string[];
174
229
  /**
175
- * Returns all predefined channels regardless of disabled state, excluding provider variants. Used by the UI to show all predefined channels including disabled ones.
176
- * Provider variants are internal implementation details of channel delivery and are not channels themselves.
230
+ * Returns all predefined channels regardless of disabled state, excluding service variants. Used by the UI to show all predefined channels including disabled ones.
231
+ * Service variants are internal implementation details of channel delivery and are not channels themselves.
177
232
  * @returns The predefined channel map with canonical entries only.
178
233
  */
179
234
  export declare function getPredefinedChannels(): ChannelMap;
@@ -191,7 +246,7 @@ export declare function getPacificPredefinedKeys(): string[];
191
246
  export declare function getEastWithPacificPredefinedKeys(): string[];
192
247
  /**
193
248
  * Computes enabled/total counts for all three predefined channel scopes (all, east, pacific) against the current disabled set. Both the enabled count and
194
- * the total are filtered by provider availability so that the displayed counts match the visible channel table. When no provider filter is active,
249
+ * the total are filtered by service availability so that the displayed counts match the visible channel table. When no service filter is active,
195
250
  * all channels pass and the counts are unaffected. Used by the server-side HTML renderer and both toggle endpoints to provide consistent counts to the client.
196
251
  * @returns An object with `all`, `east`, and `pacific` keys, each containing `{ enabled, total }`.
197
252
  */
@@ -266,7 +321,14 @@ export interface ChannelsValidationResult {
266
321
  */
267
322
  export declare function validateImportedChannels(data: unknown, validProfiles: string[]): ChannelsValidationResult;
268
323
  /**
269
- * Saves the current provider selections to the channels file. This triggers a full file save including all user channels.
324
+ * Saves the current service selections to the channels file. The no-op mutation triggers a write that picks up current serviceSelections from module state via the
325
+ * beforeWrite hook.
326
+ * @throws If the file cannot be written.
327
+ */
328
+ export declare function saveServiceSelections(): Promise<void>;
329
+ /**
330
+ * Saves the current tag registry to the channels file. The no-op mutation triggers a write that picks up the current tag registry from module state via the
331
+ * beforeWrite hook.
270
332
  * @throws If the file cannot be written.
271
333
  */
272
- export declare function saveProviderSelections(): Promise<void>;
334
+ export declare function saveTagRegistry(): Promise<void>;