prismcast 1.4.2 → 1.5.1

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 (189) hide show
  1. package/dist/app.js +36 -1
  2. package/dist/app.js.map +1 -1
  3. package/dist/browser/cdp.d.ts +2 -1
  4. package/dist/browser/cdp.js +44 -23
  5. package/dist/browser/cdp.js.map +1 -1
  6. package/dist/browser/channelSelection.d.ts +45 -1
  7. package/dist/browser/channelSelection.js +165 -27
  8. package/dist/browser/channelSelection.js.map +1 -1
  9. package/dist/browser/display.d.ts +0 -4
  10. package/dist/browser/display.js +0 -7
  11. package/dist/browser/display.js.map +1 -1
  12. package/dist/browser/index.d.ts +5 -0
  13. package/dist/browser/index.js +14 -0
  14. package/dist/browser/index.js.map +1 -1
  15. package/dist/browser/precaching.d.ts +5 -0
  16. package/dist/browser/precaching.js +116 -0
  17. package/dist/browser/precaching.js.map +1 -0
  18. package/dist/browser/tuning/directv.d.ts +2 -0
  19. package/dist/browser/tuning/directv.js +773 -0
  20. package/dist/browser/tuning/directv.js.map +1 -0
  21. package/dist/browser/tuning/fox.d.ts +2 -2
  22. package/dist/browser/tuning/fox.js +141 -22
  23. package/dist/browser/tuning/fox.js.map +1 -1
  24. package/dist/browser/tuning/hbo.d.ts +2 -2
  25. package/dist/browser/tuning/hbo.js +110 -41
  26. package/dist/browser/tuning/hbo.js.map +1 -1
  27. package/dist/browser/tuning/hulu.d.ts +2 -2
  28. package/dist/browser/tuning/hulu.js +442 -168
  29. package/dist/browser/tuning/hulu.js.map +1 -1
  30. package/dist/browser/tuning/sling.d.ts +2 -2
  31. package/dist/browser/tuning/sling.js +200 -56
  32. package/dist/browser/tuning/sling.js.map +1 -1
  33. package/dist/browser/tuning/spectrum.d.ts +2 -0
  34. package/dist/browser/tuning/spectrum.js +410 -0
  35. package/dist/browser/tuning/spectrum.js.map +1 -0
  36. package/dist/browser/tuning/youtubeTv.d.ts +2 -2
  37. package/dist/browser/tuning/youtubeTv.js +243 -57
  38. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  39. package/dist/browser/video.d.ts +1 -1
  40. package/dist/browser/video.js +4 -2
  41. package/dist/browser/video.js.map +1 -1
  42. package/dist/channels/index.js +425 -34
  43. package/dist/channels/index.js.map +1 -1
  44. package/dist/config/health.d.ts +78 -0
  45. package/dist/config/health.js +202 -0
  46. package/dist/config/health.js.map +1 -0
  47. package/dist/config/paths.d.ts +15 -0
  48. package/dist/config/paths.js +21 -0
  49. package/dist/config/paths.js.map +1 -1
  50. package/dist/config/profiles.d.ts +6 -4
  51. package/dist/config/profiles.js +65 -14
  52. package/dist/config/profiles.js.map +1 -1
  53. package/dist/config/providerPacks.d.ts +46 -0
  54. package/dist/config/providerPacks.js +200 -0
  55. package/dist/config/providerPacks.js.map +1 -0
  56. package/dist/config/providers.d.ts +36 -3
  57. package/dist/config/providers.js +173 -9
  58. package/dist/config/providers.js.map +1 -1
  59. package/dist/config/sites.d.ts +1 -12
  60. package/dist/config/sites.js +50 -5
  61. package/dist/config/sites.js.map +1 -1
  62. package/dist/config/userChannels.d.ts +35 -2
  63. package/dist/config/userChannels.js +109 -17
  64. package/dist/config/userChannels.js.map +1 -1
  65. package/dist/config/userConfig.d.ts +5 -1
  66. package/dist/config/userConfig.js +58 -6
  67. package/dist/config/userConfig.js.map +1 -1
  68. package/dist/config/userProfiles.d.ts +81 -0
  69. package/dist/config/userProfiles.js +424 -0
  70. package/dist/config/userProfiles.js.map +1 -0
  71. package/dist/routes/config/channels/index.d.ts +3 -0
  72. package/dist/routes/config/channels/index.js +3 -0
  73. package/dist/routes/config/channels/index.js.map +1 -0
  74. package/dist/routes/config/channels/routes.d.ts +6 -0
  75. package/dist/routes/config/channels/routes.js +799 -0
  76. package/dist/routes/config/channels/routes.js.map +1 -0
  77. package/dist/routes/config/channels/table.d.ts +46 -0
  78. package/dist/routes/config/channels/table.js +821 -0
  79. package/dist/routes/config/channels/table.js.map +1 -0
  80. package/dist/routes/config/index.d.ts +37 -0
  81. package/dist/routes/config/index.js +81 -0
  82. package/dist/routes/config/index.js.map +1 -0
  83. package/dist/routes/config/providers.d.ts +18 -0
  84. package/dist/routes/config/providers.js +573 -0
  85. package/dist/routes/config/providers.js.map +1 -0
  86. package/dist/routes/config/settings.d.ts +39 -0
  87. package/dist/routes/config/settings.js +820 -0
  88. package/dist/routes/config/settings.js.map +1 -0
  89. package/dist/routes/index.d.ts +3 -2
  90. package/dist/routes/index.js +7 -4
  91. package/dist/routes/index.js.map +1 -1
  92. package/dist/routes/playlist.d.ts +5 -1
  93. package/dist/routes/playlist.js +32 -7
  94. package/dist/routes/playlist.js.map +1 -1
  95. package/dist/routes/providers.d.ts +6 -0
  96. package/dist/routes/providers.js +166 -0
  97. package/dist/routes/providers.js.map +1 -0
  98. package/dist/routes/root/content.d.ts +32 -0
  99. package/dist/routes/root/content.js +860 -0
  100. package/dist/routes/root/content.js.map +1 -0
  101. package/dist/routes/root/index.js +197 -0
  102. package/dist/routes/root/index.js.map +1 -0
  103. package/dist/routes/root/scripts/channels.d.ts +1 -0
  104. package/dist/routes/root/scripts/channels.js +745 -0
  105. package/dist/routes/root/scripts/channels.js.map +1 -0
  106. package/dist/routes/root/scripts/config.d.ts +1 -0
  107. package/dist/routes/root/scripts/config.js +1686 -0
  108. package/dist/routes/root/scripts/config.js.map +1 -0
  109. package/dist/routes/root/scripts/index.d.ts +3 -0
  110. package/dist/routes/root/scripts/index.js +8 -0
  111. package/dist/routes/root/scripts/index.js.map +1 -0
  112. package/dist/routes/root/scripts/status.d.ts +1 -0
  113. package/dist/routes/root/scripts/status.js +436 -0
  114. package/dist/routes/root/scripts/status.js.map +1 -0
  115. package/dist/routes/root/styles.d.ts +5 -0
  116. package/dist/routes/root/styles.js +442 -0
  117. package/dist/routes/root/styles.js.map +1 -0
  118. package/dist/routes/ui.js +8 -3
  119. package/dist/routes/ui.js.map +1 -1
  120. package/dist/service/commands.d.ts +5 -3
  121. package/dist/service/commands.js +117 -33
  122. package/dist/service/commands.js.map +1 -1
  123. package/dist/service/generators.d.ts +27 -0
  124. package/dist/service/generators.js +97 -6
  125. package/dist/service/generators.js.map +1 -1
  126. package/dist/streaming/fmp4Segmenter.js +2 -2
  127. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  128. package/dist/streaming/hls.js +29 -1
  129. package/dist/streaming/hls.js.map +1 -1
  130. package/dist/streaming/hlsResume.d.ts +41 -0
  131. package/dist/streaming/hlsResume.js +153 -0
  132. package/dist/streaming/hlsResume.js.map +1 -0
  133. package/dist/streaming/hlsSegments.d.ts +6 -0
  134. package/dist/streaming/hlsSegments.js +8 -0
  135. package/dist/streaming/hlsSegments.js.map +1 -1
  136. package/dist/streaming/lifecycle.js +1 -1
  137. package/dist/streaming/lifecycle.js.map +1 -1
  138. package/dist/streaming/monitor.d.ts +1 -38
  139. package/dist/streaming/monitor.js +20 -307
  140. package/dist/streaming/monitor.js.map +1 -1
  141. package/dist/streaming/recovery.d.ts +143 -0
  142. package/dist/streaming/recovery.js +286 -0
  143. package/dist/streaming/recovery.js.map +1 -0
  144. package/dist/streaming/registry.d.ts +1 -1
  145. package/dist/streaming/setup.d.ts +1 -1
  146. package/dist/streaming/setup.js +3 -1
  147. package/dist/streaming/setup.js.map +1 -1
  148. package/dist/streaming/statusEmitter.d.ts +4 -2
  149. package/dist/streaming/statusEmitter.js +5 -0
  150. package/dist/streaming/statusEmitter.js.map +1 -1
  151. package/dist/types/channels.d.ts +68 -0
  152. package/dist/types/channels.js +2 -0
  153. package/dist/types/channels.js.map +1 -0
  154. package/dist/types/config.d.ts +127 -0
  155. package/dist/types/config.js +2 -0
  156. package/dist/types/config.js.map +1 -0
  157. package/dist/types/index.d.ts +7 -429
  158. package/dist/types/index.js +1 -5
  159. package/dist/types/index.js.map +1 -1
  160. package/dist/types/profiles.d.ts +143 -0
  161. package/dist/types/profiles.js +2 -0
  162. package/dist/types/profiles.js.map +1 -0
  163. package/dist/types/selection.d.ts +102 -0
  164. package/dist/types/selection.js +6 -0
  165. package/dist/types/selection.js.map +1 -0
  166. package/dist/types/shared.d.ts +7 -0
  167. package/dist/types/shared.js +6 -0
  168. package/dist/types/shared.js.map +1 -0
  169. package/dist/types/streaming.d.ts +96 -0
  170. package/dist/types/streaming.js +2 -0
  171. package/dist/types/streaming.js.map +1 -0
  172. package/dist/utils/debugFilter.js +4 -1
  173. package/dist/utils/debugFilter.js.map +1 -1
  174. package/dist/utils/format.d.ts +7 -0
  175. package/dist/utils/format.js +22 -0
  176. package/dist/utils/format.js.map +1 -1
  177. package/dist/utils/index.d.ts +1 -0
  178. package/dist/utils/index.js +1 -0
  179. package/dist/utils/index.js.map +1 -1
  180. package/dist/utils/sanitize.d.ts +14 -0
  181. package/dist/utils/sanitize.js +37 -0
  182. package/dist/utils/sanitize.js.map +1 -0
  183. package/package.json +5 -3
  184. package/dist/routes/config.d.ts +0 -76
  185. package/dist/routes/config.js +0 -2187
  186. package/dist/routes/config.js.map +0 -1
  187. package/dist/routes/root.js +0 -3158
  188. package/dist/routes/root.js.map +0 -1
  189. /package/dist/routes/{root.d.ts → root/index.d.ts} +0 -0
@@ -1,6 +1,8 @@
1
1
  import { DOMAIN_CONFIG, getDomainConfig } from "./sites.js";
2
2
  import { LOG, extractDomain } from "../utils/index.js";
3
3
  import { PREDEFINED_CHANNELS } from "../channels/index.js";
4
+ import { getProfileForChannel } from "./profiles.js";
5
+ import { getUserDomains } from "./userProfiles.js";
4
6
  /* Provider groups allow multiple streaming providers to offer the same content. For example, ESPN can be watched via ESPN.com (native) or Disney+.
5
7
  *
6
8
  * Grouping convention: Channels are grouped by key pattern. A key like "espn-disneyplus" is a variant of "espn" because it starts with "espn-" and "espn" exists as a
@@ -49,6 +51,14 @@ export function getProviderTagForChannel(key) {
49
51
  if (!channel) {
50
52
  return "direct";
51
53
  }
54
+ // If the channel specifies a user-defined profile, use that profile's providerTag rather than deriving from the URL. This ensures channels with explicit profile
55
+ // assignments are grouped under the correct provider filter even when their URL domain has a different built-in providerTag.
56
+ if (channel.profile) {
57
+ const profileProvider = resolveUserProfileProvider(channel.profile);
58
+ if (profileProvider?.providerTag) {
59
+ return profileProvider.providerTag;
60
+ }
61
+ }
52
62
  const config = getDomainConfig(channel.url);
53
63
  return config?.providerTag ?? "direct";
54
64
  }
@@ -94,14 +104,27 @@ export function getAllProviderTags() {
94
104
  tags.add(tag);
95
105
  }
96
106
  }
107
+ // Scan user domain mappings for provider tags that may not appear in any channel yet (e.g., newly created profiles with no channels assigned).
108
+ const userDomains = getUserDomains();
109
+ for (const config of Object.values(userDomains)) {
110
+ if (config.providerTag) {
111
+ tags.add(config.providerTag);
112
+ }
113
+ }
97
114
  // Build a tag → display name map from DOMAIN_CONFIG's provider fields. First match wins for each tag.
98
115
  const tagDisplayNames = new Map();
99
- tagDisplayNames.set("direct", "Direct");
116
+ tagDisplayNames.set("direct", "Network");
100
117
  for (const config of Object.values(DOMAIN_CONFIG)) {
101
118
  if (config.providerTag && config.provider && !tagDisplayNames.has(config.providerTag)) {
102
119
  tagDisplayNames.set(config.providerTag, config.provider);
103
120
  }
104
121
  }
122
+ // Scan user domain mappings for display names not covered by built-in DOMAIN_CONFIG.
123
+ for (const config of Object.values(userDomains)) {
124
+ if (config.providerTag && config.provider && !tagDisplayNames.has(config.providerTag)) {
125
+ tagDisplayNames.set(config.providerTag, config.provider);
126
+ }
127
+ }
105
128
  // Build result with display names.
106
129
  const result = [];
107
130
  for (const tag of tags) {
@@ -218,12 +241,12 @@ export function buildProviderGroups(channels) {
218
241
  }
219
242
  else {
220
243
  // Normal case: canonical is the predefined version (or a new user-defined channel with no predefined equivalent).
221
- variants.push({ key: canonicalKey, label: canonical.provider ?? getProviderDisplayName(canonical.url) });
244
+ variants.push({ key: canonicalKey, label: getChannelProviderLabel(canonical) });
222
245
  }
223
246
  variantKeys.sort();
224
247
  for (const variantKey of variantKeys) {
225
248
  const variant = channels[variantKey];
226
- variants.push({ key: variantKey, label: variant.provider ?? getProviderDisplayName(variant.url) });
249
+ variants.push({ key: variantKey, label: getChannelProviderLabel(variant) });
227
250
  }
228
251
  const group = { canonicalKey, variants };
229
252
  // Map canonical and all variants to this group for easy lookup.
@@ -262,15 +285,153 @@ export function buildProviderGroups(channels) {
262
285
  }
263
286
  }
264
287
  /**
265
- * Resolves a URL to a friendly provider display name. Checks DOMAIN_CONFIG via getDomainConfig() for a provider name, trying the full hostname first for
266
- * subdomain-specific overrides before falling back to the concise domain. Returns the raw domain string if no provider name is configured.
288
+ * Resolves a URL to a friendly provider display name. Checks built-in DOMAIN_CONFIG first for a stable, well-known provider name, then falls back to
289
+ * getDomainConfig() which includes user domain mappings. This ordering prevents user domain overrides from corrupting display labels for predefined channel
290
+ * variants — a user mapping a built-in domain to a custom profile should not rename every provider dropdown entry that uses that domain.
267
291
  * @param url - The URL to resolve a provider display name for.
268
292
  * @returns The provider display name, or the concise domain if no provider name is configured.
269
293
  */
270
294
  export function getProviderDisplayName(url) {
295
+ // Prefer built-in DOMAIN_CONFIG provider names for stable display. Check by full hostname first (for subdomain-specific entries like tv.youtube.com), then by
296
+ // concise domain (e.g., disneyplus.com).
297
+ try {
298
+ const hostname = new URL(url).hostname;
299
+ const builtinFull = DOMAIN_CONFIG[hostname];
300
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
301
+ if (builtinFull?.provider) {
302
+ return builtinFull.provider;
303
+ }
304
+ const concise = extractDomain(url);
305
+ const builtinConcise = DOMAIN_CONFIG[concise];
306
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
307
+ if (builtinConcise?.provider) {
308
+ return builtinConcise.provider;
309
+ }
310
+ }
311
+ catch {
312
+ // Invalid URL — fall through to getDomainConfig.
313
+ }
314
+ // For domains not in DOMAIN_CONFIG, fall back to getDomainConfig() which includes user domain mappings.
271
315
  const config = getDomainConfig(url);
272
316
  return config?.provider ?? extractDomain(url);
273
317
  }
318
+ /**
319
+ * Resolves provider identity (tag and display name) for a user-defined profile by scanning its domain mappings. Returns the first matching domain config's
320
+ * providerTag and provider name. This is the single source of truth for "profile key → provider identity" resolution, used by both tag and label lookups to avoid
321
+ * duplicating the domain scan logic.
322
+ * @param profileKey - The user profile key to resolve.
323
+ * @returns The provider identity from the profile's domain mappings, or undefined if no matching domain mapping exists.
324
+ */
325
+ function resolveUserProfileProvider(profileKey) {
326
+ const userDomains = getUserDomains();
327
+ for (const config of Object.values(userDomains)) {
328
+ if (config.profile === profileKey) {
329
+ return { provider: config.provider, providerTag: config.providerTag };
330
+ }
331
+ }
332
+ return undefined;
333
+ }
334
+ /**
335
+ * Resolves the provider display label for a channel. Checks in order: explicit `provider` field on the channel, the channel's explicit profile resolved via
336
+ * user domain mappings, then URL-based built-in display name. This ensures channels assigned to user-defined profiles show the profile's provider name rather
337
+ * than the built-in name for the URL domain.
338
+ * @param channel - The channel to resolve a label for.
339
+ * @returns The provider display label.
340
+ */
341
+ export function getChannelProviderLabel(channel) {
342
+ if (channel.provider) {
343
+ return channel.provider;
344
+ }
345
+ // If the channel specifies a user-defined profile, use that profile's provider name from domain mappings.
346
+ if (channel.profile) {
347
+ const profileProvider = resolveUserProfileProvider(channel.profile);
348
+ if (profileProvider?.provider) {
349
+ return profileProvider.provider;
350
+ }
351
+ }
352
+ return getProviderDisplayName(channel.url);
353
+ }
354
+ // Valid sort field values for the channels table. Exported as the single source of truth for sort field validation, shared by the config POST handler and the
355
+ // playlist endpoint's query parameter validation.
356
+ export const VALID_SORT_FIELDS = new Set(["channelNumber", "channelSelector", "key", "name", "profile", "provider", "stationId"]);
357
+ /**
358
+ * Extracts a sortable string value from a channel for the specified sort field. Channel numbers are zero-padded to 6 digits for correct numeric ordering within a
359
+ * string comparison. Provider values use the display label for human-meaningful sort order. This is the single source of truth for channel sort key extraction,
360
+ * shared by both the server-side table renderer and the M3U playlist generator.
361
+ * @param channel - Fallback channel definition, used only when the selected provider variant cannot be resolved (e.g., key not in the merged channel map).
362
+ * @param key - The canonical channel key. Used for key-based sorting and to resolve the selected provider variant internally.
363
+ * @param field - The sort field to extract.
364
+ * @returns A lowercase string suitable for comparison-based sorting.
365
+ */
366
+ export function getChannelSortKey(channel, key, field) {
367
+ // Resolve the selected provider variant so all sort keys reflect the user's provider selection. For URL-dependent fields (profile, provider), this is essential —
368
+ // a canonical's URL may differ from the selected variant's (e.g., bbcnews canonical uses youtube.com but the user selected the directv variant). For identity
369
+ // fields (name, stationId, channelNumber), the resolved channel has identical values via applyVariantInheritance, so behavior is unchanged.
370
+ const effective = getResolvedChannel(resolveProviderKey(key)) ?? channel;
371
+ switch (field) {
372
+ case "channelNumber": {
373
+ const num = effective.channelNumber;
374
+ return num ? String(num).padStart(6, "0") : "zzzzzz";
375
+ }
376
+ case "channelSelector": {
377
+ return (effective.channelSelector ?? "").toLowerCase();
378
+ }
379
+ case "key": {
380
+ return key.toLowerCase();
381
+ }
382
+ case "name": {
383
+ return (effective.name ?? key).toLowerCase();
384
+ }
385
+ case "profile": {
386
+ // Explicit profile: sort by its name.
387
+ if (effective.profile) {
388
+ return effective.profile.toLowerCase();
389
+ }
390
+ // Auto-detected: check whether the profile resolves to a real provider or falls back to default. Only apply the ! prefix for non-default auto profiles so
391
+ // they sort between explicit profiles and empty profiles.
392
+ const resolved = getProfileForChannel(effective);
393
+ if (resolved.profileName === "default") {
394
+ return "";
395
+ }
396
+ const label = getChannelProviderLabel(effective);
397
+ return label ? ("!" + label.toLowerCase()) : "";
398
+ }
399
+ case "provider": {
400
+ return getChannelProviderLabel(effective).toLowerCase();
401
+ }
402
+ case "stationId": {
403
+ const id = effective.stationId;
404
+ return id ? id.padStart(6, "0") : "zzzzzz";
405
+ }
406
+ default: {
407
+ return key.toLowerCase();
408
+ }
409
+ }
410
+ }
411
+ /**
412
+ * Compares two channels for sorting by the specified field and direction with a built-in channel name tiebreaker. The tiebreaker is always ascending so that rows
413
+ * within each group maintain a consistent alphabetical order regardless of the primary sort direction. This is the single comparator for all sort sites — server HTML
414
+ * render, client re-sort, and M3U playlist — to prevent ordering divergence.
415
+ * @param channelA - First channel definition.
416
+ * @param keyA - First channel key.
417
+ * @param channelB - Second channel definition.
418
+ * @param keyB - Second channel key.
419
+ * @param field - The sort field to compare.
420
+ * @param direction - Sort direction for the primary field.
421
+ * @returns A negative, zero, or positive number for sort ordering.
422
+ */
423
+ export function compareChannelSort(channelA, keyA, channelB, keyB, field, direction) {
424
+ const valA = getChannelSortKey(channelA, keyA, field);
425
+ const valB = getChannelSortKey(channelB, keyB, field);
426
+ const cmp = (direction === "asc") ? valA.localeCompare(valB) : valB.localeCompare(valA);
427
+ if (cmp !== 0) {
428
+ return cmp;
429
+ }
430
+ // Tiebreaker: channel name ascending regardless of primary direction.
431
+ const nameA = (channelA.name ?? keyA).toLowerCase();
432
+ const nameB = (channelB.name ?? keyB).toLowerCase();
433
+ return nameA.localeCompare(nameB);
434
+ }
274
435
  /**
275
436
  * Gets the provider group for a channel key. Works with both canonical and variant keys.
276
437
  * @param key - Any channel key in the group.
@@ -408,9 +569,11 @@ function findFirstEnabledVariant(canonicalKey) {
408
569
  return undefined;
409
570
  }
410
571
  /**
411
- * Applies variant inheritance: the variant's own properties take precedence, but `name` and `stationId` fall through from the base channel when not set on the
412
- * variant. `channelSelector` is deliberately NOT inherited — it is provider-specific (e.g., fox.com uses station codes like "FOXD2C" while Sling uses guide
413
- * names like "FOX"), so each variant must define its own. This is the single source of truth for variant inheritance rules.
572
+ * Applies variant inheritance: the variant's own properties take precedence, but `name`, `stationId`, and `tvgShift` fall through from the base channel when not
573
+ * set on the variant. `tvgShift` is inherited alongside `stationId` because it modifies how guide data for that station ID is displayed — inheriting the station
574
+ * ID without the shift would produce wrong program times. `channelSelector` is deliberately NOT inherited — it is provider-specific (e.g., fox.com uses station
575
+ * codes like "FOXD2C" while Sling uses guide names like "FOX"), so each variant must define its own. This is the single source of truth for variant inheritance
576
+ * rules.
414
577
  * @param variant - The variant channel definition.
415
578
  * @param base - The canonical (base) channel to inherit from.
416
579
  * @returns A new Channel with inheritance applied.
@@ -419,7 +582,8 @@ function applyVariantInheritance(variant, base) {
419
582
  return {
420
583
  ...variant,
421
584
  name: variant.name ?? base.name,
422
- stationId: variant.stationId ?? base.stationId
585
+ stationId: variant.stationId ?? base.stationId,
586
+ tvgShift: variant.tvgShift ?? base.tvgShift
423
587
  };
424
588
  }
425
589
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/config/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/config/providers.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,5 @@
1
- import type { ResolvedSiteProfile, SiteProfile } from "../types/index.js";
1
+ import type { DomainConfig, ResolvedSiteProfile, SiteProfile } from "../types/index.js";
2
2
  export declare const SITE_PROFILES: Record<string, SiteProfile>;
3
- /**
4
- * Domain-level configuration associating domain patterns with site profiles and provider display names. Each entry can specify a site profile for behavior
5
- * configuration and/or a provider display name for friendly UI labels.
6
- */
7
- export interface DomainConfig {
8
- loginUrl?: string;
9
- maxContinuousPlayback?: number;
10
- profile?: string;
11
- providerTag?: string;
12
- provider?: string;
13
- }
14
3
  export declare const DOMAIN_CONFIG: Record<string, DomainConfig>;
15
4
  /**
16
5
  * 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
@@ -1,4 +1,5 @@
1
1
  import { extractDomain } from "../utils/index.js";
2
+ import { getUserDomains } from "./userProfiles.js";
2
3
  /* Streaming sites implement their video players in wildly different ways. Some use standard HTML5 video with keyboard shortcuts, others embed players in iframes,
3
4
  * and many have unique quirks like auto-muting or requiring specific fullscreen methods. Rather than scattering site-specific conditionals throughout the streaming
4
5
  * code, we define "site profiles" that describe each site's behavior in a declarative way.
@@ -63,7 +64,7 @@ export const SITE_PROFILES = {
63
64
  // serve video directly in the main page and have persistent connections that prevent network idle. No playSelector — tile click is the final action.
64
65
  apiMultiVideo: {
65
66
  category: "multiChannel",
66
- channelSelection: { matchSelector: "img[src*=\"{channel}\"]", strategy: "tileClick" },
67
+ channelSelection: { matchSelector: "img[src*=\"{channel}\" i]", strategy: "tileClick" },
67
68
  description: "Multi-channel sites with auto-play tile selection. Channel Selector is interpolated into the matchSelector CSS template to find the channel element.",
68
69
  extends: "fullscreenApi",
69
70
  selectReadyVideo: true,
@@ -97,6 +98,18 @@ export const SITE_PROFILES = {
97
98
  extends: "keyboardFullscreen",
98
99
  summary: "Click-to-play ('f' key fullscreen)"
99
100
  },
101
+ // Profile for DirecTV Stream (stream.directv.com) live guide. The guide page is a React Native for Web SPA where all ~152 channel logos are always in the DOM
102
+ // (not virtualized). The primary tuning mechanism bypasses DOM interaction entirely by injecting into webpack internals — capturing __webpack_require__ via the
103
+ // chunk push array, extracting the Redux store from the React fiber tree, and dispatching the playConsumable action to switch channels. The fallback uses logo
104
+ // aria-label matching with DOM click (coordinate clicks are blocked by an invisible overlay). Uses selectReadyVideo because the page has multiple video elements.
105
+ directvStream: {
106
+ category: "multiChannel",
107
+ channelSelection: { strategy: "directvGrid" },
108
+ description: "DirecTV Stream with direct tune via webpack injection. Set Channel Selector to the channel name as shown in the guide (e.g., CNN, ESPN, NBC).",
109
+ extends: "fullscreenApi",
110
+ selectReadyVideo: true,
111
+ summary: "DirecTV Stream (guide grid, needs selector)"
112
+ },
100
113
  // Profile for DisneyNOW (disneynow.com) which has a play button overlay that must be clicked to start playback and multiple video elements on the page.
101
114
  disneyNow: {
102
115
  category: "api",
@@ -113,7 +126,10 @@ export const SITE_PROFILES = {
113
126
  // page has multiple video elements (previews, ads, main content).
114
127
  disneyPlus: {
115
128
  category: "multiChannel",
116
- channelSelection: { matchSelector: "img[src*=\"{channel}\"]", playSelector: "[data-testid=\"live-modal-watch-live-action-button\"]", strategy: "tileClick" },
129
+ channelSelection: {
130
+ matchSelector: "img[src*=\"{channel}\" i]", playSelector: "[data-testid=\"live-modal-watch-live-action-button\"]",
131
+ scrollToBottom: true, strategy: "tileClick"
132
+ },
117
133
  description: "Disney+ live channels with tile selection and play button modal. Channel Selector is interpolated into matchSelector to find the element.",
118
134
  extends: "fullscreenApi",
119
135
  hideSelector: ".controls__footer__wrapper",
@@ -208,7 +224,7 @@ export const SITE_PROFILES = {
208
224
  // idle wait behavior. Uses thumbnailRow strategy for channel selection (find channel element via matchSelector, click adjacent show entry).
209
225
  keyboardDynamicMultiVideo: {
210
226
  category: "multiChannel",
211
- channelSelection: { matchSelector: "img[src*=\"{channel}\"]", strategy: "thumbnailRow" },
227
+ channelSelection: { matchSelector: "img[src*=\"{channel}\" i]", strategy: "thumbnailRow" },
212
228
  description: "Multi-channel sites with thumbnail row layout. Channel Selector is interpolated into the matchSelector CSS template to find the channel element.",
213
229
  extends: "keyboardDynamic",
214
230
  selectReadyVideo: true,
@@ -252,6 +268,17 @@ export const SITE_PROFILES = {
252
268
  extends: "fullscreenApi",
253
269
  summary: "Sling TV (guide grid, needs selector)"
254
270
  },
271
+ // Profile for Spectrum TV (watch.spectrum.net) live guide grid. The guide page at /guide presents all ~442 streamable channels in a non-virtualized AngularJS
272
+ // DOM. Channel headers provide callsigns, channel numbers, and Gracenote station IDs (tmsid from logo image URLs). The spectrumGrid strategy reads all channels
273
+ // in a single evaluate pass, caches them, and navigates directly to /livetv?tmsid={stationId} — no clicking, no SPA state changes, no overlays. The channelSelector
274
+ // matches against clean channel names (e.g., "ESPN", "CNN", "NBC") with callsign suffix tolerance and affiliate network name resolution.
275
+ spectrum: {
276
+ category: "multiChannel",
277
+ channelSelection: { strategy: "spectrumGrid" },
278
+ description: "Spectrum TV with guide grid channel selection. Set Channel Selector to the channel name (e.g., ESPN, CNN, NBC).",
279
+ extends: "fullscreenApi",
280
+ summary: "Spectrum TV (guide grid, needs selector)"
281
+ },
255
282
  // Profile for non-video pages that should be captured as static visual content. Examples include weather displays (weatherscan.net), maps (windy.com), and
256
283
  // 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.
257
284
  staticPage: {
@@ -300,6 +327,7 @@ export const DOMAIN_CONFIG = {
300
327
  "foxnews.com": { profile: "embeddedDynamicMultiVideo", provider: "Fox News" },
301
328
  "foxsports.com": { profile: "fullscreenApi", provider: "Fox Sports" },
302
329
  "france24.com": { profile: "embeddedVolumeLock", provider: "France 24" },
330
+ "freeform.com": { profile: "fullscreenApi", provider: "Freeform" },
303
331
  "fyi.tv": { profile: "fullscreenApi", provider: "FYI" },
304
332
  "golfchannel.com": { profile: "fullscreenApi", provider: "Golf Channel" },
305
333
  "hbomax.com": { profile: "hboMax", provider: "HBO Max", providerTag: "hbomax" },
@@ -313,6 +341,8 @@ export const DOMAIN_CONFIG = {
313
341
  "nbc.com": { maxContinuousPlayback: 4, profile: "keyboardDynamic", provider: "NBC.com" },
314
342
  "paramountplus.com": { profile: "fullscreenApi", provider: "Paramount+", providerTag: "paramountplus" },
315
343
  "sling.com": { profile: "embeddedVolumeLock", provider: "Sling TV" },
344
+ "starz.com": { profile: "fullscreenApi", provider: "Starz" },
345
+ "stream.directv.com": { loginUrl: "https://stream.directv.com", profile: "directvStream", provider: "DirecTV Stream", providerTag: "directv" },
316
346
  "tbs.com": { profile: "fullscreenApi", provider: "TBS.com" },
317
347
  "tntdrama.com": { profile: "fullscreenApi", provider: "TNT" },
318
348
  "trutv.com": { profile: "fullscreenApi", provider: "truTV" },
@@ -320,6 +350,7 @@ export const DOMAIN_CONFIG = {
320
350
  "usanetwork.com": { profile: "keyboardDynamicMultiVideo", provider: "USA Network", providerTag: "usa" },
321
351
  "vh1.com": { profile: "fullscreenApi", provider: "VH1.com" },
322
352
  "watch.sling.com": { profile: "slingLive", provider: "Sling TV", providerTag: "sling" },
353
+ "watch.spectrum.net": { profile: "spectrum", provider: "Spectrum TV", providerTag: "spectrum" },
323
354
  "watchhallmarktv.com": { profile: "fullscreenApi", provider: "Hallmark" },
324
355
  "weatherscan.net": { profile: "staticPage", provider: "Weatherscan" },
325
356
  "windy.com": { profile: "staticPage", provider: "Windy" },
@@ -333,9 +364,17 @@ export const DOMAIN_CONFIG = {
333
364
  * @returns The matching DomainConfig entry, or undefined if no match is found.
334
365
  */
335
366
  export function getDomainConfig(url) {
367
+ // User domain mappings take precedence over built-in mappings. The lookup order is: user full hostname → built-in full hostname → user concise domain →
368
+ // built-in concise domain. This allows users to override specific subdomain mappings or base domain mappings independently.
369
+ const userDomains = getUserDomains();
336
370
  try {
337
371
  const hostname = new URL(url).hostname;
338
- // Try the full hostname first for subdomain-specific overrides (e.g., "tv.youtube.com" before "youtube.com").
372
+ // Try user domains for the full hostname first.
373
+ const userHostnameMatch = userDomains[hostname];
374
+ if (userHostnameMatch) {
375
+ return userHostnameMatch;
376
+ }
377
+ // Try the built-in full hostname for subdomain-specific overrides (e.g., "tv.youtube.com" before "youtube.com").
339
378
  const hostnameMatch = DOMAIN_CONFIG[hostname];
340
379
  if (hostnameMatch) {
341
380
  return hostnameMatch;
@@ -344,7 +383,13 @@ export function getDomainConfig(url) {
344
383
  catch {
345
384
  // Invalid URL — fall through to concise domain lookup.
346
385
  }
347
- return DOMAIN_CONFIG[extractDomain(url)];
386
+ const conciseDomain = extractDomain(url);
387
+ // Try user domains for the concise domain.
388
+ const userConciseMatch = userDomains[conciseDomain];
389
+ if (userConciseMatch) {
390
+ return userConciseMatch;
391
+ }
392
+ return DOMAIN_CONFIG[conciseDomain];
348
393
  }
349
394
  /* The default profile provides baseline behavior for sites not explicitly listed in the domain mapping or channel definitions. These settings work for most
350
395
  * standard HTML5 video players that follow common conventions. Each flag is explicitly set to its default value for documentation purposes and to ensure
@@ -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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"}
@@ -129,10 +129,43 @@ export declare function isPredefinedChannelDisabled(key: string): boolean;
129
129
  */
130
130
  export declare function getDisabledPredefinedChannels(): string[];
131
131
  /**
132
- * Returns all predefined channels regardless of disabled state. Used by the UI to show all predefined channels including disabled ones.
133
- * @returns The predefined channel map.
132
+ * Returns all predefined channels regardless of disabled state, excluding provider variants. Used by the UI to show all predefined channels including disabled ones.
133
+ * Provider variants are internal implementation details of channel delivery and are not channels themselves.
134
+ * @returns The predefined channel map with canonical entries only.
134
135
  */
135
136
  export declare function getPredefinedChannels(): ChannelMap;
137
+ /**
138
+ * Returns the keys of all predefined channels that are Pacific entries (canonical keys only). A key is Pacific if it ends in "p" and the East counterpart
139
+ * (key minus trailing "p") exists in PREDEFINED_CHANNELS.
140
+ * @returns Sorted array of canonical Pacific predefined channel keys.
141
+ */
142
+ export declare function getPacificPredefinedKeys(): string[];
143
+ /**
144
+ * Returns the keys of all predefined East channels that have Pacific counterparts (canonical keys only). A key qualifies if it does NOT end in "p" and
145
+ * the Pacific counterpart (key plus "p") exists in PREDEFINED_CHANNELS.
146
+ * @returns Sorted array of canonical East predefined channel keys that have Pacific counterparts.
147
+ */
148
+ export declare function getEastWithPacificPredefinedKeys(): string[];
149
+ /**
150
+ * Computes enabled/total counts for all three predefined channel scopes (all, east, pacific) against the current disabled set. Both the enabled count and
151
+ * the total are filtered by provider availability so that the displayed counts match the visible channel table. When no provider filter is active,
152
+ * 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.
153
+ * @returns An object with `all`, `east`, and `pacific` keys, each containing `{ enabled, total }`.
154
+ */
155
+ export declare function getPredefinedScopeCounts(): {
156
+ all: {
157
+ enabled: number;
158
+ total: number;
159
+ };
160
+ east: {
161
+ enabled: number;
162
+ total: number;
163
+ };
164
+ pacific: {
165
+ enabled: number;
166
+ total: number;
167
+ };
168
+ };
136
169
  /**
137
170
  * Checks if a channel is available for streaming. A channel is available if it exists in the merged channel map returned by getAllChannels(), which already
138
171
  * excludes disabled predefined channels (unless overridden by a user channel).