prismcast 1.5.2 → 1.7.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 (239) hide show
  1. package/README.md +44 -28
  2. package/dist/app.d.ts +5 -0
  3. package/dist/app.js +63 -5
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/cdp.js +1 -1
  6. package/dist/browser/cdp.js.map +1 -1
  7. package/dist/browser/channelSelection.d.ts +10 -34
  8. package/dist/browser/channelSelection.js +31 -96
  9. package/dist/browser/channelSelection.js.map +1 -1
  10. package/dist/browser/display.d.ts +19 -0
  11. package/dist/browser/display.js +16 -11
  12. package/dist/browser/display.js.map +1 -1
  13. package/dist/browser/index.d.ts +31 -54
  14. package/dist/browser/index.js +334 -272
  15. package/dist/browser/index.js.map +1 -1
  16. package/dist/browser/login.d.ts +65 -0
  17. package/dist/browser/login.js +193 -0
  18. package/dist/browser/login.js.map +1 -0
  19. package/dist/browser/precaching.js +15 -3
  20. package/dist/browser/precaching.js.map +1 -1
  21. package/dist/browser/tuning/comcastPolymer.d.ts +23 -0
  22. package/dist/browser/tuning/comcastPolymer.js +655 -0
  23. package/dist/browser/tuning/comcastPolymer.js.map +1 -0
  24. package/dist/browser/tuning/cox.d.ts +2 -0
  25. package/dist/browser/tuning/cox.js +14 -0
  26. package/dist/browser/tuning/cox.js.map +1 -0
  27. package/dist/browser/tuning/directv.js +14 -1
  28. package/dist/browser/tuning/directv.js.map +1 -1
  29. package/dist/browser/tuning/fox.js +14 -2
  30. package/dist/browser/tuning/fox.js.map +1 -1
  31. package/dist/browser/tuning/hbo.js +12 -1
  32. package/dist/browser/tuning/hbo.js.map +1 -1
  33. package/dist/browser/tuning/hulu.js +24 -1
  34. package/dist/browser/tuning/hulu.js.map +1 -1
  35. package/dist/browser/tuning/shared.d.ts +46 -0
  36. package/dist/browser/tuning/shared.js +100 -0
  37. package/dist/browser/tuning/shared.js.map +1 -0
  38. package/dist/browser/tuning/sling.js +35 -5
  39. package/dist/browser/tuning/sling.js.map +1 -1
  40. package/dist/browser/tuning/spectrum.js +13 -1
  41. package/dist/browser/tuning/spectrum.js.map +1 -1
  42. package/dist/browser/tuning/thumbnailRow.js +1 -1
  43. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  44. package/dist/browser/tuning/tileClick.js +1 -1
  45. package/dist/browser/tuning/tileClick.js.map +1 -1
  46. package/dist/browser/tuning/xfinity.d.ts +2 -0
  47. package/dist/browser/tuning/xfinity.js +14 -0
  48. package/dist/browser/tuning/xfinity.js.map +1 -0
  49. package/dist/browser/tuning/youtubeTv.js +15 -1
  50. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  51. package/dist/browser/video.d.ts +20 -0
  52. package/dist/browser/video.js +168 -124
  53. package/dist/browser/video.js.map +1 -1
  54. package/dist/channels/index.d.ts +2 -2
  55. package/dist/channels/index.js +2075 -683
  56. package/dist/channels/index.js.map +1 -1
  57. package/dist/config/health.d.ts +28 -28
  58. package/dist/config/health.js +72 -54
  59. package/dist/config/health.js.map +1 -1
  60. package/dist/config/index.js +29 -64
  61. package/dist/config/index.js.map +1 -1
  62. package/dist/config/paths.d.ts +12 -0
  63. package/dist/config/paths.js +16 -0
  64. package/dist/config/paths.js.map +1 -1
  65. package/dist/config/profiles.d.ts +3 -2
  66. package/dist/config/profiles.js +45 -34
  67. package/dist/config/profiles.js.map +1 -1
  68. package/dist/config/providerPacks.js +4 -1
  69. package/dist/config/providerPacks.js.map +1 -1
  70. package/dist/config/providers.d.ts +19 -5
  71. package/dist/config/providers.js +123 -93
  72. package/dist/config/providers.js.map +1 -1
  73. package/dist/config/sites.d.ts +28 -0
  74. package/dist/config/sites.js +104 -127
  75. package/dist/config/sites.js.map +1 -1
  76. package/dist/config/userChannels.d.ts +53 -2
  77. package/dist/config/userChannels.js +222 -13
  78. package/dist/config/userChannels.js.map +1 -1
  79. package/dist/config/userConfig.d.ts +2 -1
  80. package/dist/config/userConfig.js +6 -15
  81. package/dist/config/userConfig.js.map +1 -1
  82. package/dist/config/userProfiles.d.ts +0 -1
  83. package/dist/config/userProfiles.js +18 -10
  84. package/dist/config/userProfiles.js.map +1 -1
  85. package/dist/hdhr/channelMap.d.ts +1 -1
  86. package/dist/hdhr/channelMap.js +4 -4
  87. package/dist/hdhr/channelMap.js.map +1 -1
  88. package/dist/index.js +25 -22
  89. package/dist/index.js.map +1 -1
  90. package/dist/native/decrypt.d.ts +32 -0
  91. package/dist/native/decrypt.js +85 -0
  92. package/dist/native/decrypt.js.map +1 -0
  93. package/dist/native/index.d.ts +61 -0
  94. package/dist/native/index.js +342 -0
  95. package/dist/native/index.js.map +1 -0
  96. package/dist/native/intercept.d.ts +35 -0
  97. package/dist/native/intercept.js +184 -0
  98. package/dist/native/intercept.js.map +1 -0
  99. package/dist/native/probe.d.ts +49 -0
  100. package/dist/native/probe.js +294 -0
  101. package/dist/native/probe.js.map +1 -0
  102. package/dist/native/proxy.d.ts +54 -0
  103. package/dist/native/proxy.js +947 -0
  104. package/dist/native/proxy.js.map +1 -0
  105. package/dist/routes/components.d.ts +43 -0
  106. package/dist/routes/components.js +122 -0
  107. package/dist/routes/components.js.map +1 -1
  108. package/dist/routes/config/channels/index.d.ts +2 -2
  109. package/dist/routes/config/channels/index.js +1 -1
  110. package/dist/routes/config/channels/index.js.map +1 -1
  111. package/dist/routes/config/channels/routes.js +443 -65
  112. package/dist/routes/config/channels/routes.js.map +1 -1
  113. package/dist/routes/config/channels/table.d.ts +76 -0
  114. package/dist/routes/config/channels/table.js +369 -89
  115. package/dist/routes/config/channels/table.js.map +1 -1
  116. package/dist/routes/config/index.d.ts +1 -1
  117. package/dist/routes/config/index.js +1 -1
  118. package/dist/routes/config/index.js.map +1 -1
  119. package/dist/routes/config/providers.d.ts +6 -6
  120. package/dist/routes/config/providers.js +73 -99
  121. package/dist/routes/config/providers.js.map +1 -1
  122. package/dist/routes/debug.js +5 -5
  123. package/dist/routes/debug.js.map +1 -1
  124. package/dist/routes/hls.js +12 -2
  125. package/dist/routes/hls.js.map +1 -1
  126. package/dist/routes/index.d.ts +0 -15
  127. package/dist/routes/index.js +2 -16
  128. package/dist/routes/index.js.map +1 -1
  129. package/dist/routes/providers.js +106 -3
  130. package/dist/routes/providers.js.map +1 -1
  131. package/dist/routes/root/content.js +124 -47
  132. package/dist/routes/root/content.js.map +1 -1
  133. package/dist/routes/root/index.js +2 -1
  134. package/dist/routes/root/index.js.map +1 -1
  135. package/dist/routes/root/scripts/channels.js +772 -312
  136. package/dist/routes/root/scripts/channels.js.map +1 -1
  137. package/dist/routes/root/scripts/config.js +596 -544
  138. package/dist/routes/root/scripts/config.js.map +1 -1
  139. package/dist/routes/root/scripts/index.d.ts +1 -0
  140. package/dist/routes/root/scripts/index.js +1 -0
  141. package/dist/routes/root/scripts/index.js.map +1 -1
  142. package/dist/routes/root/scripts/shared.d.ts +6 -0
  143. package/dist/routes/root/scripts/shared.js +391 -0
  144. package/dist/routes/root/scripts/shared.js.map +1 -0
  145. package/dist/routes/root/scripts/status.js +49 -33
  146. package/dist/routes/root/scripts/status.js.map +1 -1
  147. package/dist/routes/root/styles.js +117 -10
  148. package/dist/routes/root/styles.js.map +1 -1
  149. package/dist/service/commands.js +2 -1
  150. package/dist/service/commands.js.map +1 -1
  151. package/dist/streaming/fmp4Segmenter.d.ts +5 -0
  152. package/dist/streaming/fmp4Segmenter.js +146 -42
  153. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  154. package/dist/streaming/hls.d.ts +24 -19
  155. package/dist/streaming/hls.js +603 -297
  156. package/dist/streaming/hls.js.map +1 -1
  157. package/dist/streaming/hlsResume.d.ts +16 -3
  158. package/dist/streaming/hlsResume.js +35 -8
  159. package/dist/streaming/hlsResume.js.map +1 -1
  160. package/dist/streaming/hlsSegments.d.ts +41 -2
  161. package/dist/streaming/hlsSegments.js +131 -28
  162. package/dist/streaming/hlsSegments.js.map +1 -1
  163. package/dist/streaming/lifecycle.js +27 -13
  164. package/dist/streaming/lifecycle.js.map +1 -1
  165. package/dist/streaming/monitor.d.ts +1 -0
  166. package/dist/streaming/monitor.js +862 -474
  167. package/dist/streaming/monitor.js.map +1 -1
  168. package/dist/streaming/mp4Parser.d.ts +52 -6
  169. package/dist/streaming/mp4Parser.js +156 -30
  170. package/dist/streaming/mp4Parser.js.map +1 -1
  171. package/dist/streaming/mpegts.d.ts +2 -2
  172. package/dist/streaming/mpegts.js +156 -109
  173. package/dist/streaming/mpegts.js.map +1 -1
  174. package/dist/streaming/playlistBuilder.d.ts +38 -0
  175. package/dist/streaming/playlistBuilder.js +66 -0
  176. package/dist/streaming/playlistBuilder.js.map +1 -0
  177. package/dist/streaming/preroll.d.ts +126 -0
  178. package/dist/streaming/preroll.js +434 -0
  179. package/dist/streaming/preroll.js.map +1 -0
  180. package/dist/streaming/pretune.d.ts +8 -0
  181. package/dist/streaming/pretune.js +226 -0
  182. package/dist/streaming/pretune.js.map +1 -0
  183. package/dist/streaming/recovery.d.ts +0 -6
  184. package/dist/streaming/recovery.js +0 -8
  185. package/dist/streaming/recovery.js.map +1 -1
  186. package/dist/streaming/registry.d.ts +57 -9
  187. package/dist/streaming/registry.js +26 -7
  188. package/dist/streaming/registry.js.map +1 -1
  189. package/dist/streaming/setup.d.ts +8 -1
  190. package/dist/streaming/setup.js +71 -27
  191. package/dist/streaming/setup.js.map +1 -1
  192. package/dist/streaming/showInfo.d.ts +29 -4
  193. package/dist/streaming/showInfo.js +210 -38
  194. package/dist/streaming/showInfo.js.map +1 -1
  195. package/dist/streaming/statusEmitter.d.ts +20 -6
  196. package/dist/streaming/statusEmitter.js +31 -7
  197. package/dist/streaming/statusEmitter.js.map +1 -1
  198. package/dist/types/channels.d.ts +32 -0
  199. package/dist/types/config.d.ts +2 -2
  200. package/dist/types/index.d.ts +2 -2
  201. package/dist/types/index.js.map +1 -1
  202. package/dist/types/profiles.d.ts +13 -1
  203. package/dist/types/selection.d.ts +5 -1
  204. package/dist/types/shared.d.ts +1 -1
  205. package/dist/types/streaming.d.ts +7 -0
  206. package/dist/utils/chromeFetch.d.ts +20 -0
  207. package/dist/utils/chromeFetch.js +43 -0
  208. package/dist/utils/chromeFetch.js.map +1 -0
  209. package/dist/utils/debugFilter.d.ts +0 -5
  210. package/dist/utils/debugFilter.js +20 -11
  211. package/dist/utils/debugFilter.js.map +1 -1
  212. package/dist/utils/delay.d.ts +28 -0
  213. package/dist/utils/delay.js +35 -1
  214. package/dist/utils/delay.js.map +1 -1
  215. package/dist/utils/evaluate.js +6 -11
  216. package/dist/utils/evaluate.js.map +1 -1
  217. package/dist/utils/ffmpeg.d.ts +14 -12
  218. package/dist/utils/ffmpeg.js +114 -134
  219. package/dist/utils/ffmpeg.js.map +1 -1
  220. package/dist/utils/format.d.ts +6 -0
  221. package/dist/utils/format.js +8 -0
  222. package/dist/utils/format.js.map +1 -1
  223. package/dist/utils/index.d.ts +3 -0
  224. package/dist/utils/index.js +3 -0
  225. package/dist/utils/index.js.map +1 -1
  226. package/dist/utils/logEmitter.js +1 -1
  227. package/dist/utils/logEmitter.js.map +1 -1
  228. package/dist/utils/pid.d.ts +40 -0
  229. package/dist/utils/pid.js +83 -0
  230. package/dist/utils/pid.js.map +1 -0
  231. package/dist/utils/retry.d.ts +15 -9
  232. package/dist/utils/retry.js +7 -23
  233. package/dist/utils/retry.js.map +1 -1
  234. package/dist/utils/timing.d.ts +5 -0
  235. package/dist/utils/timing.js +13 -0
  236. package/dist/utils/timing.js.map +1 -0
  237. package/dist/utils/version.js +2 -2
  238. package/dist/utils/version.js.map +1 -1
  239. package/package.json +7 -7
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * userProfiles.ts: User profile and domain mapping persistence for PrismCast.
4
4
  */
5
- import { DOMAIN_CONFIG, SITE_PROFILES } from "./sites.js";
5
+ import { DOMAIN_CONFIG, SITE_PROFILES, getBuiltinProfile, isProviderProfile } from "./sites.js";
6
6
  import { LOG, containsNonPrintable } from "../utils/index.js";
7
7
  import { getDataDir, getProfilesFilePath } from "./paths.js";
8
8
  import { extractDomain } from "../utils/format.js";
@@ -20,7 +20,7 @@ const { promises: fsPromises } = fs;
20
20
  */
21
21
  // Valid SiteProfile behavior flag names that users can set. Metadata fields (category, description, extends, summary) are handled separately.
22
22
  const VALID_PROFILE_FLAGS = new Set([
23
- "channelSelector", "clickSelector", "clickToPlay", "fullscreenKey", "fullscreenSelector", "hideSelector", "lockVolumeProperties",
23
+ "channelSelector", "clickSelector", "clickToPlay", "dismissSelector", "fullscreenKey", "fullscreenSelector", "hideSelector", "lockVolumeProperties",
24
24
  "needsIframeHandling", "noVideo", "selectReadyVideo", "useRequestFullscreen", "waitForNetworkIdle"
25
25
  ]);
26
26
  // Generic strategies available for user profiles. Provider-specific strategies are built-in implementations and cannot be used by user profiles.
@@ -29,9 +29,6 @@ const GENERIC_STRATEGIES = new Set(["none", "thumbnailRow", "tileClick"]);
29
29
  const ALL_STRATEGIES = new Set(["foxGrid", "guideGrid", "hboGrid", "none", "slingGrid", "thumbnailRow", "tileClick", "youtubeGrid"]);
30
30
  // Strategies that require a matchSelector to identify channel elements.
31
31
  const STRATEGIES_REQUIRING_MATCH_SELECTOR = new Set(["thumbnailRow", "tileClick"]);
32
- // Site-specific profiles that cannot be used as a base for user-defined profiles. These profiles have strategies, selectors, or flags tightly coupled to a specific
33
- // streaming service's DOM structure. Users targeting these services should use the predefined channels directly, not create custom profiles extending them.
34
- export const EXCLUDED_PROFILES = new Set(["disneyNow", "disneyPlus", "foxLive", "hboMax", "huluLive", "slingLive", "spectrum", "youtubeTV"]);
35
32
  // Module-level storage for loaded user profiles and domains. Populated at startup and updated on save.
36
33
  let loadedUserProfiles = {};
37
34
  let loadedUserDomains = {};
@@ -261,13 +258,13 @@ export function validateProfile(key, profile) {
261
258
  errors.push("Profile '" + key + "': extends is required. User profiles must extend a built-in profile.");
262
259
  return errors;
263
260
  }
264
- // extends must reference a built-in profile (not another user profile).
265
- if (!(profile.extends in SITE_PROFILES)) {
261
+ // extends must reference a built-in general profile (not another user profile or a provider profile). Provider profiles are tightly coupled to a streaming
262
+ // service's DOM structure and cannot be meaningfully extended by user profiles.
263
+ if (!getBuiltinProfile(profile.extends)) {
266
264
  errors.push("Profile '" + key + "': extends references non-existent built-in profile '" + profile.extends + "'.");
267
265
  }
268
- else if (EXCLUDED_PROFILES.has(profile.extends)) {
269
- // Site-specific profiles are tightly coupled to a streaming service's DOM structure and cannot be meaningfully extended by user profiles.
270
- errors.push("Profile '" + key + "': '" + profile.extends + "' is a site-specific profile and cannot be extended. " +
266
+ else if (isProviderProfile(profile.extends)) {
267
+ errors.push("Profile '" + key + "': '" + profile.extends + "' is a provider-specific profile and cannot be extended. " +
271
268
  "Use the predefined channels for this service instead.");
272
269
  }
273
270
  // Validate channel selection configuration if present.
@@ -322,6 +319,10 @@ export function validateDomain(domain, config, availableProfiles) {
322
319
  errors.push("Domain '" + domain + "' is already mapped to built-in provider '" + builtinProvider +
323
320
  "'. Set the profile field on individual channels to use your custom profile instead.");
324
321
  }
322
+ // dismissSelector must be a non-empty string if specified.
323
+ if ((config.dismissSelector !== undefined) && ((typeof config.dismissSelector !== "string") || (config.dismissSelector.trim() === ""))) {
324
+ errors.push("Domain '" + domain + "': dismissSelector must be a non-empty string.");
325
+ }
325
326
  // profile must reference an existing profile if specified.
326
327
  if (config.profile && !availableProfiles.has(config.profile)) {
327
328
  errors.push("Domain '" + domain + "': references non-existent profile '" + config.profile + "'.");
@@ -358,6 +359,13 @@ export function validateDomain(domain, config, availableProfiles) {
358
359
  errors.push("Domain '" + domain + "': maxContinuousPlayback must be a positive number.");
359
360
  }
360
361
  }
362
+ // videoTimeout must be a positive integer if specified.
363
+ if (config.videoTimeout !== undefined) {
364
+ if ((typeof config.videoTimeout !== "number") || !Number.isFinite(config.videoTimeout) || !Number.isInteger(config.videoTimeout) ||
365
+ (config.videoTimeout <= 0)) {
366
+ errors.push("Domain '" + domain + "': videoTimeout must be a positive integer.");
367
+ }
368
+ }
361
369
  return errors;
362
370
  }
363
371
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"userProfiles.js","sourceRoot":"","sources":["../../src/config/userProfiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userProfiles.js","sourceRoot":"","sources":["../../src/config/userProfiles.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export interface ChannelMapEntry {
10
10
  /**
11
11
  * Builds the channel number mapping from the current channel configuration. Channels with explicit channelNumber values are assigned first, then remaining
12
12
  * channels are auto-assigned sequential numbers starting from AUTO_ASSIGN_START, skipping any numbers already claimed by explicit assignments.
13
- * @returns Array of channel map entries sorted by channel number, excluding noVideo and disabled channels.
13
+ * @returns Array of channel map entries sorted by channel number, excluding noVideo, HDHR-disabled, and disabled channels.
14
14
  */
15
15
  export declare function buildChannelMap(): ChannelMapEntry[];
16
16
  /**
@@ -19,7 +19,7 @@ const AUTO_ASSIGN_START = 1000;
19
19
  /**
20
20
  * Builds the channel number mapping from the current channel configuration. Channels with explicit channelNumber values are assigned first, then remaining
21
21
  * channels are auto-assigned sequential numbers starting from AUTO_ASSIGN_START, skipping any numbers already claimed by explicit assignments.
22
- * @returns Array of channel map entries sorted by channel number, excluding noVideo and disabled channels.
22
+ * @returns Array of channel map entries sorted by channel number, excluding noVideo, HDHR-disabled, and disabled channels.
23
23
  */
24
24
  export function buildChannelMap() {
25
25
  const channels = getAllChannels();
@@ -27,9 +27,9 @@ export function buildChannelMap() {
27
27
  // Collect all explicit channel numbers first so auto-assignment can skip them.
28
28
  const explicitNumbers = new Set();
29
29
  for (const [key, channel] of Object.entries(channels)) {
30
- // Skip non-video channels (static pages like EPGs).
30
+ // Skip non-video channels (static pages like EPGs) and channels excluded from the HDHR lineup.
31
31
  const profile = resolveProfile(channel.profile);
32
- if (profile.noVideo) {
32
+ if (profile.noVideo || (channel.hdhrEnabled === false)) {
33
33
  continue;
34
34
  }
35
35
  if ((channel.channelNumber !== undefined) && (channel.channelNumber > 0)) {
@@ -47,7 +47,7 @@ export function buildChannelMap() {
47
47
  .filter((key) => {
48
48
  const channel = channels[key];
49
49
  const profile = resolveProfile(channel.profile);
50
- return !profile.noVideo && ((channel.channelNumber === undefined) || (channel.channelNumber <= 0));
50
+ return !profile.noVideo && (channel.hdhrEnabled !== false) && ((channel.channelNumber === undefined) || (channel.channelNumber <= 0));
51
51
  })
52
52
  .sort();
53
53
  let nextNumber = AUTO_ASSIGN_START;
@@ -1 +1 @@
1
- {"version":3,"file":"channelMap.js","sourceRoot":"","sources":["../../src/hdhr/channelMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;GASG;AAEH,iGAAiG;AACjG,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAoB/B;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAE7B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,+EAA+E;IAC/E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,KAAI,MAAM,CAAE,GAAG,EAAE,OAAO,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEvD,oDAAoD;QACpD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAEnB,SAAS;QACX,CAAC;QAED,IAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;YAExE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3C,OAAO,CAAC,IAAI,CAAC;gBAEX,GAAG;gBACH,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;gBACzB,MAAM,EAAE,OAAO,CAAC,aAAa;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yHAAyH;IACzH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SACzC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAEd,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,IAAI,UAAU,GAAG,iBAAiB,CAAC;IAEnC,KAAI,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE9B,wDAAwD;QACxD,OAAM,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAEtC,UAAU,EAAE,CAAC;QACf,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YAEX,GAAG;YACH,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;YACzB,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,UAAU,EAAE,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,aAAqB;IAEzD,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAE1D,OAAO,KAAK,EAAE,GAAG,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"channelMap.js","sourceRoot":"","sources":["../../src/hdhr/channelMap.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,18 +2,24 @@
2
2
  *
3
3
  * index.ts: Entry point for PrismCast.
4
4
  */
5
+ import { CONFIG_METADATA, DEFAULTS, getNestedValue } from "./config/userConfig.js";
5
6
  import { LOG, formatError, getPackageVersion, initDebugFilter, setDebugLogging } from "./utils/index.js";
7
+ import { canCleanupChrome, isGracefulShutdown, killStaleChrome } from "./browser/index.js";
8
+ import { clearServerPid, startServer } from "./app.js";
6
9
  import { flushLogBufferSync } from "./utils/fileLogger.js";
7
10
  import { handleServiceCommand } from "./service/index.js";
11
+ import { handleUpgradeCommand } from "./upgrade/index.js";
8
12
  import { initializeDataDir } from "./config/paths.js";
9
- import { killStaleChrome } from "./browser/index.js";
10
13
  import path from "node:path";
11
- import { startServer } from "./app.js";
12
14
  /* These handlers catch unhandled promise rejections and uncaught exceptions to prevent the process from crashing. For a livestreaming server, process stability is
13
15
  * critical - a single unhandled error should not terminate all active streams. The handlers log the error and allow the process to continue. Individual stream
14
16
  * failures are handled by circuit breakers, and actual browser crashes are handled by the browser's disconnected event.
15
17
  */
16
18
  process.on("unhandledRejection", (reason) => {
19
+ // During graceful shutdown, Chrome is killed while in-flight CDP calls may still be pending. Suppress the resulting "Target closed" rejections.
20
+ if (isGracefulShutdown() && formatError(reason).includes("Target closed")) {
21
+ return;
22
+ }
17
23
  LOG.error("Unhandled promise rejection: %s.", formatError(reason));
18
24
  });
19
25
  process.on("uncaughtException", (error) => {
@@ -66,11 +72,9 @@ function printUsage() {
66
72
  /* eslint-enable no-console */
67
73
  }
68
74
  /**
69
- * Prints a complete listing of all environment variables organized by category. Generates output dynamically from CONFIG_METADATA so it is always accurate. Uses a
70
- * dynamic import to avoid the circular dependency: index.ts -> config/userConfig.js -> utils/index.js -> utils/retry.js -> config/index.js -> config/userConfig.js.
75
+ * Prints a complete listing of all environment variables organized by category. Generates output dynamically from CONFIG_METADATA so it is always accurate.
71
76
  */
72
- async function printEnvironmentVariables() {
73
- const { CONFIG_METADATA, DEFAULTS, getNestedValue } = await import("./config/userConfig.js");
77
+ function printEnvironmentVariables() {
74
78
  /* eslint-disable no-console */
75
79
  // Category ordering: server first (most commonly configured), then alphabetical, with Special last.
76
80
  const categoryOrder = [
@@ -237,8 +241,8 @@ if (subcommand === "service") {
237
241
  });
238
242
  }
239
243
  else if (subcommand === "upgrade") {
240
- // Handle the 'upgrade' subcommand for self-upgrading PrismCast. Uses a dynamic import to keep the upgrade module out of the main server's import graph.
241
- import("./upgrade/index.js").then(async ({ handleUpgradeCommand }) => handleUpgradeCommand(rawArgs.slice(1))).then((exitCode) => {
244
+ // Handle the 'upgrade' subcommand for self-upgrading PrismCast.
245
+ handleUpgradeCommand(rawArgs.slice(1)).then((exitCode) => {
242
246
  process.exit(exitCode);
243
247
  }).catch((error) => {
244
248
  // eslint-disable-next-line no-console
@@ -247,15 +251,9 @@ else if (subcommand === "upgrade") {
247
251
  });
248
252
  }
249
253
  else if (rawArgs.includes("--list-env")) {
250
- // Handle --list-env at the top level (like the service subcommand) to avoid starting the server. The dynamic import inside printEnvironmentVariables() is
251
- // required because a static import of config/userConfig.js creates a circular dependency through the utils barrel.
252
- printEnvironmentVariables().then(() => {
253
- process.exit(0);
254
- }).catch((error) => {
255
- // eslint-disable-next-line no-console
256
- console.error("Error: " + formatError(error));
257
- process.exit(1);
258
- });
254
+ // Handle --list-env at the top level (like the service subcommand) to avoid starting the server.
255
+ printEnvironmentVariables();
256
+ process.exit(0);
259
257
  }
260
258
  else {
261
259
  /* The main entry point parses command-line arguments, starts the server, and handles any fatal errors that occur during initialization. If startup fails, we exit
@@ -280,9 +278,9 @@ else {
280
278
  * termination — we ensure Chrome processes are cleaned up and buffered log entries are flushed to disk. Without this, fatal exits during startup (e.g., capture
281
279
  * probe timeout) silently orphan Chrome processes and lose diagnostic messages that are still in the file logger's write buffer.
282
280
  *
283
- * The 'exit' event runs synchronously, so only synchronous operations are safe here. killStaleChrome() uses execSync internally, and flushLogBufferSync() writes
284
- * directly to the filesystem. The graceful shutdown path (SIGTERM/SIGINT) handles cleanup via async closeBrowser() and shutdownFileLogger() — this handler is a
285
- * fallback for paths that bypass graceful shutdown.
281
+ * The 'exit' event runs synchronously, so only synchronous operations are safe here. killStaleChrome() uses process.kill() for signaling and Atomics.wait()
282
+ * for polling, and flushLogBufferSync() writes directly to the filesystem. The graceful shutdown path (SIGTERM/SIGINT) handles cleanup via async closeBrowser()
283
+ * and shutdownFileLogger() — this handler is a fallback for paths that bypass graceful shutdown.
286
284
  *
287
285
  * This is registered only in the server branch — not for service subcommands like `prismcast service status`. Running killStaleChrome() from a service
288
286
  * subcommand would kill Chrome belonging to the running PrismCast server instance.
@@ -292,10 +290,15 @@ else {
292
290
  // process terminates. Chrome will die when its pipes break since the parent is exiting; killing it explicitly is belt-and-suspenders.
293
291
  flushLogBufferSync();
294
292
  try {
295
- killStaleChrome();
293
+ clearServerPid();
294
+ // Only kill Chrome if this process has taken ownership via killStaleChrome() during startup. Without this guard, a duplicate instance rejected by the
295
+ // instance check would kill Chrome belonging to the running server on its way out.
296
+ if (canCleanupChrome()) {
297
+ killStaleChrome();
298
+ }
296
299
  }
297
300
  catch {
298
- // Best-effort cleanup. If pkill fails for any reason, the process is exiting anyway.
301
+ // Best-effort process cleanup. If signaling fails for any reason, the process is exiting anyway.
299
302
  }
300
303
  });
301
304
  startServer(parsedArgs).catch((error) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { Nullable } from "../types/index.js";
2
+ /**
3
+ * Fetches an AES-128 decryption key from the given URL.
4
+ *
5
+ * @param keyUrl - The key URL from the #EXT-X-KEY URI attribute.
6
+ * @returns The 16-byte decryption key, or null if the fetch fails.
7
+ */
8
+ export declare function fetchDecryptionKey(keyUrl: string): Promise<Nullable<Buffer>>;
9
+ /**
10
+ * Decrypts an AES-128-CBC encrypted HLS segment.
11
+ *
12
+ * @param data - The encrypted segment data.
13
+ * @param key - The 16-byte AES-128 key.
14
+ * @param iv - The 16-byte initialization vector.
15
+ * @returns The decrypted segment data.
16
+ */
17
+ export declare function decryptSegment(data: Buffer, key: Buffer, iv: Buffer): Buffer;
18
+ /**
19
+ * Derives the initialization vector from a media sequence number per the HLS specification (RFC 8216 Section 5.2). When no explicit IV is provided in the
20
+ * #EXT-X-KEY tag, the IV is the big-endian binary representation of the media sequence number, zero-padded to 16 bytes.
21
+ *
22
+ * @param mediaSequence - The media sequence number of the segment.
23
+ * @returns A 16-byte Buffer containing the derived IV.
24
+ */
25
+ export declare function deriveIvFromSequence(mediaSequence: number): Buffer;
26
+ /**
27
+ * Parses an explicit IV value from a hex string in the #EXT-X-KEY tag. The IV is specified as IV=0x followed by 32 hex digits.
28
+ *
29
+ * @param ivHex - The hex string (with or without the 0x prefix).
30
+ * @returns The 16-byte IV Buffer, or null if parsing fails.
31
+ */
32
+ export declare function parseExplicitIv(ivHex: string): Nullable<Buffer>;
@@ -0,0 +1,85 @@
1
+ /* Copyright(C) 2024-2026, HJD (https://github.com/hjdhjd). All rights reserved.
2
+ *
3
+ * decrypt.ts: AES-128 key fetching and segment decryption for native HLS streaming.
4
+ */
5
+ import { LOG, chromeFetch } from "../utils/index.js";
6
+ import { createDecipheriv } from "node:crypto";
7
+ /* AES-128-CBC decryption for HLS segments. The HLS spec defines AES-128 encryption where each segment is encrypted with a 16-byte key using AES-128-CBC mode. The
8
+ * initialization vector (IV) is either explicitly provided in the #EXT-X-KEY tag or derived from the media sequence number per the HLS specification (RFC 8216
9
+ * Section 5.2).
10
+ *
11
+ * This module contains pure functions with no module-level state. Key caching is handled per-stream by the proxy's own currentKey/currentKeyUrl variables, which
12
+ * avoids cross-stream interference when multiple native streams run simultaneously with different keys.
13
+ */
14
+ // Timeout for key fetch requests.
15
+ const KEY_FETCH_TIMEOUT = 10000;
16
+ /**
17
+ * Fetches an AES-128 decryption key from the given URL.
18
+ *
19
+ * @param keyUrl - The key URL from the #EXT-X-KEY URI attribute.
20
+ * @returns The 16-byte decryption key, or null if the fetch fails.
21
+ */
22
+ export async function fetchDecryptionKey(keyUrl) {
23
+ try {
24
+ const response = await chromeFetch(keyUrl, { signal: AbortSignal.timeout(KEY_FETCH_TIMEOUT) });
25
+ if (!response.ok) {
26
+ LOG.debug("native:decrypt", "Decryption key fetch failed with HTTP %s.", response.status);
27
+ return null;
28
+ }
29
+ const buffer = Buffer.from(await response.arrayBuffer());
30
+ if (buffer.length !== 16) {
31
+ LOG.warn("Decryption key has unexpected size: %s bytes (expected 16).", buffer.length);
32
+ return null;
33
+ }
34
+ LOG.debug("native:decrypt", "Decryption key fetched: %s bytes from %s.", buffer.length, keyUrl.slice(0, 80));
35
+ return buffer;
36
+ }
37
+ catch (error) {
38
+ LOG.debug("native:decrypt", "Decryption key fetch error: %s.", String(error));
39
+ return null;
40
+ }
41
+ }
42
+ /**
43
+ * Decrypts an AES-128-CBC encrypted HLS segment.
44
+ *
45
+ * @param data - The encrypted segment data.
46
+ * @param key - The 16-byte AES-128 key.
47
+ * @param iv - The 16-byte initialization vector.
48
+ * @returns The decrypted segment data.
49
+ */
50
+ export function decryptSegment(data, key, iv) {
51
+ const decipher = createDecipheriv("aes-128-cbc", key, iv);
52
+ const decrypted = Buffer.concat([decipher.update(data), decipher.final()]);
53
+ LOG.debug("native:decrypt", "Decrypted segment: %s bytes input, %s bytes output.", data.length, decrypted.length);
54
+ return decrypted;
55
+ }
56
+ /**
57
+ * Derives the initialization vector from a media sequence number per the HLS specification (RFC 8216 Section 5.2). When no explicit IV is provided in the
58
+ * #EXT-X-KEY tag, the IV is the big-endian binary representation of the media sequence number, zero-padded to 16 bytes.
59
+ *
60
+ * @param mediaSequence - The media sequence number of the segment.
61
+ * @returns A 16-byte Buffer containing the derived IV.
62
+ */
63
+ export function deriveIvFromSequence(mediaSequence) {
64
+ const iv = Buffer.alloc(16);
65
+ // Write the sequence number as a big-endian 32-bit integer in the last 4 bytes. This matches the HLS spec: the sequence number occupies the least significant
66
+ // bytes of the 128-bit IV.
67
+ iv.writeUInt32BE(mediaSequence, 12);
68
+ return iv;
69
+ }
70
+ /**
71
+ * Parses an explicit IV value from a hex string in the #EXT-X-KEY tag. The IV is specified as IV=0x followed by 32 hex digits.
72
+ *
73
+ * @param ivHex - The hex string (with or without the 0x prefix).
74
+ * @returns The 16-byte IV Buffer, or null if parsing fails.
75
+ */
76
+ export function parseExplicitIv(ivHex) {
77
+ // Strip the 0x or 0X prefix if present.
78
+ const cleaned = ivHex.startsWith("0x") || ivHex.startsWith("0X") ? ivHex.slice(2) : ivHex;
79
+ if (cleaned.length !== 32) {
80
+ LOG.debug("native:decrypt", "Invalid IV hex length: %s (expected 32).", cleaned.length);
81
+ return null;
82
+ }
83
+ return Buffer.from(cleaned, "hex");
84
+ }
85
+ //# sourceMappingURL=decrypt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decrypt.js","sourceRoot":"","sources":["../../src/native/decrypt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { ManifestInterceptionResult } from "./intercept.js";
2
+ import type { NativeProxy } from "./proxy.js";
3
+ import type { Nullable } from "../types/index.js";
4
+ import type { Page } from "puppeteer-core";
5
+ import type { PrerollCodec } from "../streaming/preroll.js";
6
+ /**
7
+ * Options for attempting native streaming.
8
+ */
9
+ export interface AttemptNativeStreamingOptions {
10
+ channelName: string;
11
+ interceptionPromise: Promise<Nullable<ManifestInterceptionResult>>;
12
+ mpegTsClient?: boolean;
13
+ onError: (error: string) => void;
14
+ page: Page;
15
+ prerollCodec?: PrerollCodec;
16
+ prerollSegmentCount?: number;
17
+ streamId: number;
18
+ streamIdStr: string;
19
+ url: string;
20
+ }
21
+ /**
22
+ * Result of a successful native streaming attempt.
23
+ */
24
+ export interface NativeStreamResult {
25
+ bandwidth: number;
26
+ codec: Nullable<string>;
27
+ hasAudio: boolean;
28
+ proxy: NativeProxy;
29
+ resolution: Nullable<string>;
30
+ }
31
+ /**
32
+ * Attempts to upgrade a stream from screen capture to native HLS streaming. Returns the native proxy on success, or null if the stream is not viable for native
33
+ * consumption (DRM, interception timeout, or probe failure). The proxy owns the CDP session from interception and manages its lifecycle.
34
+ *
35
+ * @param options - Options for the native streaming attempt.
36
+ * @returns The native stream result on success, or null to fall back to capture.
37
+ */
38
+ export declare function attemptNativeStreaming(options: AttemptNativeStreamingOptions): Promise<Nullable<NativeStreamResult>>;
39
+ /**
40
+ * Refreshes a native stream's manifest to obtain fresh auth tokens. Two strategies are tried in order:
41
+ *
42
+ * 1. **Direct fetch** (if masterUrl is provided): Re-fetches the master manifest URL from Node.js without involving the browser. This avoids the visible page reload
43
+ * that disrupts the browser tab. The CDN returns the manifest with current token values as long as the URL's own auth token hasn't expired. When the master URL
44
+ * expires, the direct fetch returns 403 and we fall through to strategy 2.
45
+ *
46
+ * 2. **Page reload**: Navigates the browser page back to the channel URL, triggering fresh authentication via cookies. A CDP interceptor captures the new master
47
+ * manifest URL with fresh tokens. This is the only path that generates genuinely new tokens and is required when the master URL itself has expired.
48
+ *
49
+ * L2 recovery (failure-triggered) from the monitor omits masterUrl, going straight to page reload since the stream is already failing and needs a full refresh.
50
+ *
51
+ * @param options - Refresh options. masterUrl is optional — when provided, direct fetch is attempted first.
52
+ * @returns True if the refresh succeeded (proxy updated with new manifest), false otherwise.
53
+ */
54
+ export declare function refreshNativeManifest(options: {
55
+ channelName: string;
56
+ masterUrl?: string;
57
+ page: Page;
58
+ proxy: NativeProxy;
59
+ streamIdStr: string;
60
+ url: string;
61
+ }): Promise<boolean>;