prismcast 1.10.2 → 1.10.3

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 (166) hide show
  1. package/dist/app.d.ts +5 -3
  2. package/dist/app.js +42 -41
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/hlsPlaylistObserver.d.ts +38 -0
  5. package/dist/browser/hlsPlaylistObserver.js +113 -0
  6. package/dist/browser/hlsPlaylistObserver.js.map +1 -0
  7. package/dist/browser/index.d.ts +26 -16
  8. package/dist/browser/index.js +95 -70
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/browser/manifestInterceptor.d.ts +29 -29
  11. package/dist/browser/manifestInterceptor.js +106 -212
  12. package/dist/browser/manifestInterceptor.js.map +1 -1
  13. package/dist/browser/tabNetworkObserver.d.ts +48 -0
  14. package/dist/browser/tabNetworkObserver.js +140 -0
  15. package/dist/browser/tabNetworkObserver.js.map +1 -0
  16. package/dist/config/consistencyProbe.js +13 -11
  17. package/dist/config/consistencyProbe.js.map +1 -1
  18. package/dist/config/paths.d.ts +3 -8
  19. package/dist/config/paths.js +3 -10
  20. package/dist/config/paths.js.map +1 -1
  21. package/dist/config/profiles.d.ts +1 -1
  22. package/dist/config/profiles.js +6 -6
  23. package/dist/config/profiles.js.map +1 -1
  24. package/dist/config/services.d.ts +5 -5
  25. package/dist/config/services.js +8 -8
  26. package/dist/config/services.js.map +1 -1
  27. package/dist/config/sites.d.ts +2 -2
  28. package/dist/config/sites.js +6 -6
  29. package/dist/config/sites.js.map +1 -1
  30. package/dist/config/userChannels.d.ts +108 -14
  31. package/dist/config/userChannels.js +291 -37
  32. package/dist/config/userChannels.js.map +1 -1
  33. package/dist/config/userConfig.js +1 -1
  34. package/dist/config/userConfig.js.map +1 -1
  35. package/dist/config/userProfiles.d.ts +3 -3
  36. package/dist/config/userProfiles.js +19 -19
  37. package/dist/config/userProfiles.js.map +1 -1
  38. package/dist/index.js +7 -9
  39. package/dist/index.js.map +1 -1
  40. package/dist/native/index.d.ts +1 -1
  41. package/dist/native/index.js +9 -18
  42. package/dist/native/index.js.map +1 -1
  43. package/dist/native/proxy.d.ts +1 -4
  44. package/dist/native/proxy.js +0 -9
  45. package/dist/native/proxy.js.map +1 -1
  46. package/dist/routes/clientActions.d.ts +97 -0
  47. package/dist/routes/clientActions.js +113 -0
  48. package/dist/routes/clientActions.js.map +1 -0
  49. package/dist/routes/components.d.ts +4 -3
  50. package/dist/routes/components.js +36 -39
  51. package/dist/routes/components.js.map +1 -1
  52. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  53. package/dist/routes/config/channels/endpoints/crud.js +37 -72
  54. package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
  55. package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
  56. package/dist/routes/config/channels/healthBridge.d.ts +23 -0
  57. package/dist/routes/config/channels/healthBridge.js +71 -0
  58. package/dist/routes/config/channels/healthBridge.js.map +1 -0
  59. package/dist/routes/config/channels/table.js +97 -84
  60. package/dist/routes/config/channels/table.js.map +1 -1
  61. package/dist/routes/config/services.js +25 -22
  62. package/dist/routes/config/services.js.map +1 -1
  63. package/dist/routes/config/settings.js +9 -6
  64. package/dist/routes/config/settings.js.map +1 -1
  65. package/dist/routes/debug.js +277 -139
  66. package/dist/routes/debug.js.map +1 -1
  67. package/dist/routes/logs.js +1 -1
  68. package/dist/routes/logs.js.map +1 -1
  69. package/dist/routes/root/content.js +18 -14
  70. package/dist/routes/root/content.js.map +1 -1
  71. package/dist/routes/root/index.js +17 -14
  72. package/dist/routes/root/index.js.map +1 -1
  73. package/dist/routes/root/scripts/channels.js +50 -21
  74. package/dist/routes/root/scripts/channels.js.map +1 -1
  75. package/dist/routes/root/scripts/config.js +72 -3
  76. package/dist/routes/root/scripts/config.js.map +1 -1
  77. package/dist/routes/root/scripts/shared.js +60 -0
  78. package/dist/routes/root/scripts/shared.js.map +1 -1
  79. package/dist/routes/root/scripts/status.handlers.d.ts +5 -27
  80. package/dist/routes/root/scripts/status.handlers.js +8 -60
  81. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  82. package/dist/routes/root/scripts/status.js +6 -1
  83. package/dist/routes/root/scripts/status.js.map +1 -1
  84. package/dist/routes/streams.js +5 -3
  85. package/dist/routes/streams.js.map +1 -1
  86. package/dist/service/commands.context.js +1 -1
  87. package/dist/service/commands.context.js.map +1 -1
  88. package/dist/service/generators.context.js +1 -1
  89. package/dist/service/generators.context.js.map +1 -1
  90. package/dist/service/generators.d.ts +1 -1
  91. package/dist/service/generators.js +3 -11
  92. package/dist/service/generators.js.map +1 -1
  93. package/dist/streaming/hls.js +1 -5
  94. package/dist/streaming/hls.js.map +1 -1
  95. package/dist/streaming/hlsSegments.d.ts +1 -1
  96. package/dist/streaming/hlsSegments.js.map +1 -1
  97. package/dist/streaming/preroll.d.ts +1 -1
  98. package/dist/streaming/preroll.js +1 -5
  99. package/dist/streaming/preroll.js.map +1 -1
  100. package/dist/streaming/statusEmitter.d.ts +5 -8
  101. package/dist/streaming/statusEmitter.js +0 -5
  102. package/dist/streaming/statusEmitter.js.map +1 -1
  103. package/dist/types/channels.d.ts +9 -0
  104. package/dist/types/channels.js.map +1 -1
  105. package/dist/types/profiles.d.ts +2 -2
  106. package/dist/upgrade/commands.context.js +14 -10
  107. package/dist/upgrade/commands.context.js.map +1 -1
  108. package/dist/upgrade/commands.d.ts +7 -15
  109. package/dist/upgrade/commands.js +27 -28
  110. package/dist/upgrade/commands.js.map +1 -1
  111. package/dist/upgrade/detection.context.js +2 -1
  112. package/dist/upgrade/detection.context.js.map +1 -1
  113. package/dist/upgrade/detection.d.ts +2 -1
  114. package/dist/upgrade/detection.js +20 -51
  115. package/dist/upgrade/detection.js.map +1 -1
  116. package/dist/upgrade/index.d.ts +1 -0
  117. package/dist/upgrade/index.js +1 -0
  118. package/dist/upgrade/index.js.map +1 -1
  119. package/dist/upgrade/lifecycle.context.d.ts +19 -0
  120. package/dist/upgrade/lifecycle.context.js +47 -0
  121. package/dist/upgrade/lifecycle.context.js.map +1 -0
  122. package/dist/upgrade/lifecycle.d.ts +72 -0
  123. package/dist/upgrade/lifecycle.js +176 -0
  124. package/dist/upgrade/lifecycle.js.map +1 -0
  125. package/dist/upgrade/pathHandle.d.ts +28 -0
  126. package/dist/upgrade/pathHandle.js +101 -0
  127. package/dist/upgrade/pathHandle.js.map +1 -0
  128. package/dist/utils/bootSession.context.d.ts +15 -0
  129. package/dist/utils/bootSession.context.js +59 -0
  130. package/dist/utils/bootSession.context.js.map +1 -0
  131. package/dist/utils/bootSession.d.ts +16 -0
  132. package/dist/utils/bootSession.js +20 -0
  133. package/dist/utils/bootSession.js.map +1 -0
  134. package/dist/utils/clock.js +1 -1
  135. package/dist/utils/ffmpeg.js +1 -1
  136. package/dist/utils/ffmpeg.js.map +1 -1
  137. package/dist/utils/index.d.ts +3 -0
  138. package/dist/utils/index.js +3 -0
  139. package/dist/utils/index.js.map +1 -1
  140. package/dist/utils/markup.d.ts +10 -0
  141. package/dist/utils/markup.js +23 -0
  142. package/dist/utils/markup.js.map +1 -1
  143. package/dist/utils/pid.d.ts +2 -25
  144. package/dist/utils/pid.js +10 -49
  145. package/dist/utils/pid.js.map +1 -1
  146. package/dist/utils/processInspector.context.d.ts +7 -0
  147. package/dist/utils/processInspector.context.js +104 -0
  148. package/dist/utils/processInspector.context.js.map +1 -0
  149. package/dist/utils/processInspector.d.ts +54 -0
  150. package/dist/utils/processInspector.js +125 -0
  151. package/dist/utils/processInspector.js.map +1 -0
  152. package/dist/utils/retry.d.ts +1 -1
  153. package/dist/utils/retry.js +1 -1
  154. package/dist/utils/retry.js.map +1 -1
  155. package/dist/utils/runtimeIdentity.context.d.ts +6 -0
  156. package/dist/utils/runtimeIdentity.context.js +13 -0
  157. package/dist/utils/runtimeIdentity.context.js.map +1 -0
  158. package/dist/utils/runtimeIdentity.d.ts +96 -0
  159. package/dist/utils/runtimeIdentity.js +171 -0
  160. package/dist/utils/runtimeIdentity.js.map +1 -0
  161. package/dist/utils/timing.d.ts +1 -1
  162. package/dist/utils/timing.js +0 -5
  163. package/dist/utils/timing.js.map +1 -1
  164. package/dist/utils/version.js +40 -10
  165. package/dist/utils/version.js.map +1 -1
  166. package/package.json +2 -2
@@ -1,10 +1,10 @@
1
- import { getGpuCapabilities, setBrowserChrome, setGpuCapabilities, setMaxSupportedViewport } from "./display.js";
2
- import { LOG, cancellableTimeout, clearPidFile, delay, evaluateWithAbort, formatError, isProcessRunning, readPidFile, startTimer, writePidFile } from "../utils/index.js";
1
+ import { LOG, cancellableTimeout, delay, evaluateWithAbort, formatError, isProcessRunning, listProcesses, startTimer } from "../utils/index.js";
3
2
  import { clearLoginState, isLoginModeActive, setBrowserAccessors } from "./login.js";
4
3
  import { getAllStreams, getStreamCount } from "../streaming/registry.js";
5
- import { getChromeDataDir, getChromePidFilePath, getDataDir, getExtensionDir } from "../config/paths.js";
4
+ import { getChromeDataDir, getDataDir, getExtensionDir } from "../config/paths.js";
6
5
  import { getEffectivePreset, getPresetViewport } from "../config/presets.js";
7
6
  import { getExtensionPage, getStream, launch } from "puppeteer-stream";
7
+ import { getGpuCapabilities, setBrowserChrome, setGpuCapabilities, setMaxSupportedViewport } from "./display.js";
8
8
  import { resizeAndMinimizeWindow, unminimizeWindow } from "./cdp.js";
9
9
  import { CONFIG } from "../config/index.js";
10
10
  import { clearChannelSelectionCaches } from "./channelSelection.js";
@@ -30,13 +30,6 @@ const { promises: fsPromises } = fs;
30
30
  // The shared browser instance used by all streaming sessions. Created on first stream request or during warmup. Set to null when the browser is not running or
31
31
  // has disconnected.
32
32
  let currentBrowser = null;
33
- // The PID of the Chrome process launched by Puppeteer. Tracked in memory for fast access and persisted to a PID file on disk so that orphaned Chrome processes
34
- // can be cleaned up after a crash or container restart without relying on Unix-only tools like pkill/pgrep.
35
- let chromePid = null;
36
- // Tracks whether this process has taken ownership of Chrome cleanup by running killStaleChrome() during startup. The exit handler checks this flag to avoid
37
- // killing Chrome that belongs to another running PrismCast instance - e.g., when a duplicate instance is rejected by the instance guard and exits before
38
- // killStaleChrome() runs in the startup sequence.
39
- let ownsChromeCleanup = false;
40
33
  // The Chrome version string (e.g., "Chrome/144.0.7559.110") captured when the browser launches. Cleared when the browser disconnects. Used by the
41
34
  // health endpoint to report the active Chrome version.
42
35
  let currentChromeVersion = null;
@@ -191,6 +184,37 @@ export async function ensureDataDirectory() {
191
184
  LOG.error("Failed to create data directory %s: %s.", getDataDir(), formatError(error));
192
185
  throw error;
193
186
  }
187
+ // Purge on-disk artifacts retired in earlier releases. The data directory is the right boundary for this work - it runs once per startup, after the directory
188
+ // exists, before any subsequent step reads it. Future retirements add a single line to purgeLegacyArtifacts; the call site here does not change.
189
+ await purgeLegacyArtifacts();
190
+ }
191
+ const RETIRED_ARTIFACTS = [
192
+ {
193
+ filename: "chrome.pid",
194
+ replacedBy: "OS process-table discovery in utils/processInspector",
195
+ retiredIn: "1.10.3"
196
+ }
197
+ ];
198
+ /**
199
+ * Removes every on-disk artifact in RETIRED_ARTIFACTS. Failures are non-fatal: a missing file is the steady-state expectation (fresh installs and any
200
+ * post-first-run startup) and any other I/O error is logged but does not interrupt startup - the user's running configuration is not at risk from a leftover
201
+ * artifact. The data-directory boundary in ensureDataDirectory is the natural caller: it runs once per startup, after the directory exists, before any
202
+ * subsequent step reads it.
203
+ */
204
+ async function purgeLegacyArtifacts() {
205
+ for (const artifact of RETIRED_ARTIFACTS) {
206
+ const filePath = path.join(getDataDir(), artifact.filename);
207
+ try {
208
+ // eslint-disable-next-line no-await-in-loop
209
+ await fsPromises.unlink(filePath);
210
+ LOG.debug("browser:lifecycle", "Purged legacy artifact %s (retired in %s, replaced by %s).", filePath, artifact.retiredIn, artifact.replacedBy);
211
+ }
212
+ catch (error) {
213
+ if (error.code !== "ENOENT") {
214
+ LOG.warn("Failed to remove legacy artifact %s: %s.", filePath, formatError(error));
215
+ }
216
+ }
217
+ }
194
218
  }
195
219
  /* These functions handle the Chrome browser lifecycle: startup, cleanup, and instance management. The browser is a shared resource used by all streaming sessions,
196
220
  * so careful lifecycle management is essential for reliability. Key considerations:
@@ -206,30 +230,6 @@ export async function ensureDataDirectory() {
206
230
  * - Extension initialization: The puppeteer-stream extension needs time after browser launch to inject its recording APIs. We wait for this initialization before
207
231
  * attempting to capture streams.
208
232
  */
209
- /**
210
- * Persists the Chrome process PID to both the module-level variable (fast, in-memory) and a PID file on disk (survives crashes). The PID file allows the next
211
- * startup to find and terminate orphaned Chrome processes even if the Node process crashed without cleanup.
212
- * @param pid - The Chrome process ID to save.
213
- */
214
- function saveChromePid(pid) {
215
- chromePid = pid;
216
- writePidFile(getChromePidFilePath(), pid, "Chrome", LOG);
217
- }
218
- /**
219
- * Loads the Chrome PID from the module-level variable (fast path) or falls back to reading the PID file on disk (crash recovery path). Returns null if no PID
220
- * is available - either first run or the PID file was already cleaned up.
221
- * @returns The Chrome process ID, or null if unavailable.
222
- */
223
- function loadChromePid() {
224
- return chromePid ?? readPidFile(getChromePidFilePath(), "Chrome", LOG);
225
- }
226
- /**
227
- * Clears the Chrome PID from both the module-level variable and the PID file on disk. Called after successful process cleanup to prevent stale PID reuse.
228
- */
229
- function clearChromePid() {
230
- chromePid = null;
231
- clearPidFile(getChromePidFilePath(), "Chrome", LOG);
232
- }
233
233
  /**
234
234
  * Synchronous sleep using Atomics.wait(). This is a cross-platform replacement for execSync("sleep N") that works on all platforms without shelling out.
235
235
  * Required because killStaleChrome() runs in the synchronous process.on("exit") handler where async operations are not available.
@@ -239,28 +239,60 @@ function syncSleep(ms) {
239
239
  Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
240
240
  }
241
241
  /**
242
- * Ensures a clean slate for browser launch by terminating any stale Chrome processes and removing orphaned profile lock files. Chrome locks its profile directory
243
- * while running, and if a previous instance crashed without releasing the lock, we cannot launch a new browser with the same profile. This function uses the
244
- * saved Chrome PID to find and terminate the process via process.kill(), then polls for exit using signal 0. This approach is fully cross-platform - it does not
245
- * rely on Unix-only tools like pkill or pgrep.
242
+ * Identifies Chrome processes that this PrismCast instance is responsible for terminating. The filter has two stages: command-line discovery (anything using
243
+ * our profile directory) followed by ownership verification (we spawned it, or its parent is no longer alive). The ownership stage is structural - we do not
244
+ * rely on an in-memory flag; the parent-child relationship in the OS process table IS the ownership proof, which means this function is safe to call from any
245
+ * code path, including from a rejected-duplicate startup's exit handler.
246
+ *
247
+ * Why ownership matters. A duplicate PrismCast that the instance guard rejects must NOT signal Chrome that belongs to the legitimate holder. With PID-based
248
+ * cleanup the only defense was an in-memory ownsChromeCleanup flag set at startup. With process-table discovery, the OS itself tells us who owns what: a Chrome
249
+ * whose ppid is a live unrelated PID belongs to that parent, not to us.
250
+ * @param processes - The current process table snapshot.
251
+ * @param profileDir - The Chrome user-data-dir to match against.
252
+ * @param ownPid - The current process's PID (anything whose parent is us is ours to kill).
253
+ * @param isProcessAlive - Predicate that returns true when the given PID is currently a live process. Injected so tests do not depend on real PIDs.
254
+ * @returns The PIDs to terminate, in process-table order.
255
+ */
256
+ export function findChromeProcessesUsingProfile(processes, profileDir, ownPid, isProcessAlive) {
257
+ const target = "--user-data-dir=" + profileDir;
258
+ return processes.filter((p) => {
259
+ // Stage 1: command-line match. Chrome puppeteer launches with --user-data-dir=<path> (equals form, no quotes). We also verify the character following
260
+ // the path is whitespace or end-of-string, otherwise "/x/y" would match "--user-data-dir=/x/yz".
261
+ const idx = p.commandLine.indexOf(target);
262
+ if (idx === -1) {
263
+ return false;
264
+ }
265
+ const after = p.commandLine.charAt(idx + target.length);
266
+ if ((after !== "") && (after !== " ") && (after !== "\t")) {
267
+ return false;
268
+ }
269
+ // Stage 2: ownership verification. Kill if we spawned it (ppid is us) or if its parent is no longer alive (orphaned from a previous PrismCast that died).
270
+ // Skip if its parent is a live unrelated PID - that process owns it, not us.
271
+ return (p.ppid === ownPid) || !isProcessAlive(p.ppid);
272
+ }).map((p) => p.pid);
273
+ }
274
+ /**
275
+ * Ensures a clean slate for browser launch by terminating any stale Chrome processes and removing orphaned profile lock files. Chrome locks its profile
276
+ * directory while running; if a previous instance crashed without releasing the lock, we cannot launch a new browser with the same profile. Discovery is done
277
+ * via the OS process table (utils/processInspector) and filtered to Chrome processes using our profile directory whose ownership belongs to us - either because
278
+ * we spawned them (ppid === process.pid) or because their parent is no longer alive (orphaned from a previous instance).
246
279
  *
247
280
  * The termination strategy escalates from SIGTERM to SIGKILL. SIGTERM is sent first, giving Chrome up to 5 seconds to flush its profile databases (LevelDB,
248
281
  * extension state, session storage) and exit cleanly. If Chrome does not exit, SIGKILL is sent as a fallback. This escalation is critical when called from the
249
- * process exit handler - Chrome may be running normally (e.g., after a capture probe timeout), and an immediate SIGKILL would corrupt its profile databases,
282
+ * process exit handler: Chrome may be running normally (e.g., after a capture probe timeout) and an immediate SIGKILL would corrupt its profile databases,
250
283
  * poisoning the Docker volume for subsequent container restarts.
251
284
  *
252
- * If no PID is available (first run or clean shutdown where the PID file was already removed), process killing is skipped entirely and only lock file cleanup
253
- * runs. When a PID file does exist but the process is gone (Docker restart with a mounted volume - the PID belongs to the previous container's PID namespace),
254
- * process.kill() throws ESRCH, which is caught gracefully.
285
+ * The ownership filter makes this function safe to call from any context, including a rejected-duplicate startup's exit handler: a duplicate that never
286
+ * spawned Chrome will find nothing matching its ownership criteria and signal nothing.
255
287
  *
256
- * This is called at startup before launching the browser and from the process exit handler as a crash recovery fallback. It's safe to call even when no stale
257
- * processes or files exist.
288
+ * Called at startup before launching the browser and from the process exit handler as a crash recovery fallback. Safe to call when no stale processes or files
289
+ * exist - the discovery and lock-file cleanup are both no-ops in the empty case.
258
290
  */
259
291
  export function killStaleChrome() {
260
292
  const profileDir = getChromeDataDir(CONFIG);
261
- const pid = loadChromePid();
262
293
  const POLL_INTERVAL_MS = 200;
263
- if (pid !== null) {
294
+ const pidsToKill = findChromeProcessesUsingProfile(listProcesses(), profileDir, process.pid, isProcessRunning);
295
+ for (const pid of pidsToKill) {
264
296
  try {
265
297
  // Send SIGTERM first to give Chrome a chance to flush its profile databases (LevelDB, extension state, session storage) before exiting. This is critical
266
298
  // when called from the process exit handler - Chrome may be running normally (e.g., after a capture probe timeout) and SIGKILL would corrupt its profile
@@ -292,20 +324,9 @@ export function killStaleChrome() {
292
324
  LOG.warn("Failed to signal Chrome process %d: %s.", pid, formatError(error));
293
325
  }
294
326
  }
295
- clearChromePid();
296
327
  }
297
328
  // Remove stale lock and port files left behind by an unclean Chrome exit.
298
329
  cleanStaleProfileFiles(profileDir);
299
- // Mark this process as owning Chrome cleanup. The exit handler checks this flag to avoid killing Chrome that belongs to another running instance.
300
- ownsChromeCleanup = true;
301
- }
302
- /**
303
- * Returns whether this process has taken ownership of Chrome cleanup by running killStaleChrome() during startup. Used by the exit handler to avoid killing
304
- * Chrome that belongs to another running PrismCast instance.
305
- * @returns True if killStaleChrome() has run in this process.
306
- */
307
- export function canCleanupChrome() {
308
- return ownsChromeCleanup;
309
330
  }
310
331
  /**
311
332
  * Polls until the Chrome process with the given PID has exited, or the timeout expires. Uses process.kill(pid, 0) to check process existence - throws ESRCH
@@ -381,6 +402,11 @@ export function getExecutablePath() {
381
402
  }
382
403
  throw new Error("No Chrome installation found. Set CHROME_BIN environment variable.");
383
404
  }
405
+ /* Chrome extension ID for puppeteer-stream's bundled capture extension. This is the deterministic ID Chrome assigns based on the extension's public key, mirrored
406
+ * from their dist at node_modules/puppeteer-stream/dist/PuppeteerStream.js (the extensionId constant). We use it below in --allowlisted-extension-id to work around
407
+ * the broken activeTab grant path introduced in puppeteer-stream 3.0.22...see the "--allowlisted-extension-id" entry in buildLaunchOptions for the full rationale.
408
+ */
409
+ const PUPPETEER_STREAM_EXTENSION_ID = "jjndjgheafjngoipoacpjgeicjeomjli";
384
410
  /**
385
411
  * Assembles the configuration options for launching Chrome with Puppeteer. These options are critical for reliable streaming:
386
412
  *
@@ -397,6 +423,12 @@ export function buildLaunchOptions() {
397
423
  * --allow-running-insecure-content: Some streaming sites serve mixed HTTP/HTTPS content. Without this flag, the browser blocks HTTP resources on HTTPS
398
424
  * pages, which can break video players that load some assets over HTTP.
399
425
  *
426
+ * --allowlisted-extension-id=<extension-id>: Restores Chrome's global allowlist for puppeteer-stream's capture extension. puppeteer-stream 3.0.22 stopped
427
+ * injecting this flag in favor of granting activeTab via a synthetic Cmd/Ctrl+Shift+Y keystroke, but CDP-synthesized keystrokes do not satisfy
428
+ * chrome.commands under automation (the renderer sees the event but the browser-process accelerator dispatcher does not), so the new flow fails to grant
429
+ * activeTab and capture is denied at the API level (see github.com/Flam3rboy/puppeteer-stream/issues/206). Re-emitting the flag ourselves bypasses the
430
+ * broken activeTab path. Remove this entry and the PUPPETEER_STREAM_EXTENSION_ID constant when issue #206 closes with a real fix.
431
+ *
400
432
  * --autoplay-policy=no-user-gesture-required: Allows video and audio to play without requiring a user click first. Essential for automated streaming
401
433
  * since we cannot simulate genuine user interaction for autoplay policy purposes.
402
434
  *
@@ -428,6 +460,7 @@ export function buildLaunchOptions() {
428
460
  */
429
461
  args: [
430
462
  "--allow-running-insecure-content",
463
+ "--allowlisted-extension-id=" + PUPPETEER_STREAM_EXTENSION_ID,
431
464
  "--autoplay-policy=no-user-gesture-required",
432
465
  "--disable-background-media-suspend",
433
466
  "--disable-background-networking",
@@ -694,10 +727,11 @@ async function detectDisplayDimensions(browser) {
694
727
  * This ensures streams fail gracefully rather than hanging indefinitely trying to use closed pages.
695
728
  */
696
729
  function handleBrowserDisconnect() {
697
- // Clear the browser reference, launch timestamp, cached version, user agent, and stale PID so getCurrentBrowser() will launch a new instance on the next call.
730
+ // Clear the browser reference, launch timestamp, cached version, and user agent so getCurrentBrowser() will launch a new instance on the next call. We do not
731
+ // track Chrome's PID directly anymore - killStaleChrome discovers orphans via the OS process table on the next startup, which removes a class of state that
732
+ // could go stale.
698
733
  currentBrowser = null;
699
734
  browserLaunchTime = null;
700
- chromePid = null;
701
735
  currentChromeVersion = null;
702
736
  setChromeUserAgent(null);
703
737
  // Cancel any pending restart quiet timer since the browser is already gone.
@@ -772,15 +806,6 @@ async function launchBrowser() {
772
806
  // The launch function from puppeteer-stream wraps standard Puppeteer launch to inject the streaming extension. We pass our custom launch function that
773
807
  // handles packaged executable extension paths.
774
808
  currentBrowser = await launch({ launch: launchWithCustomArgs }, options);
775
- // Persist the Chrome PID for cross-platform process cleanup. The PID file survives Node crashes, allowing the next startup to find and terminate orphaned
776
- // Chrome processes without relying on Unix-only tools like pkill/pgrep.
777
- const launchedPid = currentBrowser.process()?.pid;
778
- if (launchedPid) {
779
- saveChromePid(launchedPid);
780
- }
781
- else {
782
- LOG.warn("Chrome process PID is unavailable. Orphaned process cleanup after a crash will be limited to lock file removal.");
783
- }
784
809
  // Register a handler for browser disconnection. This ensures we clean up properly if the browser crashes or is closed unexpectedly.
785
810
  currentBrowser.on("disconnected", handleBrowserDisconnect);
786
811
  LOG.debug("timing:browser", "Chrome process spawned. (+%sms)", browserElapsed());
@@ -977,8 +1002,8 @@ export async function closeBrowser() {
977
1002
  if (browserRef.connected) {
978
1003
  void browserRef.disconnect();
979
1004
  }
980
- // Clear the PID file and remove stale Chrome profile lock files.
981
- clearChromePid();
1005
+ // Remove stale Chrome profile lock files left behind by the disconnected browser. No per-PID state to clear here - killStaleChrome on the next launch will
1006
+ // discover any leftover Chrome via the OS process table.
982
1007
  cleanStaleProfileFiles(getChromeDataDir(CONFIG));
983
1008
  }
984
1009
  /* Over time, browser pages (tabs) may accumulate if cleanup fails during stream termination. This can happen due to race conditions, errors during cleanup, or
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvI,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAC9H,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAEpC;;;;;;;;;;GAUG;AAEH,+JAA+J;AAC/J,oBAAoB;AACpB,IAAI,cAAc,GAAsB,IAAI,CAAC;AAE7C,+JAA+J;AAC/J,4GAA4G;AAC5G,IAAI,SAAS,GAAqB,IAAI,CAAC;AAEvC,4JAA4J;AAC5J,yJAAyJ;AACzJ,kDAAkD;AAClD,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B,kJAAkJ;AAClJ,uDAAuD;AACvD,IAAI,oBAAoB,GAAqB,IAAI,CAAC;AAElD,4JAA4J;AAC5J,uBAAuB;AACvB,IAAI,iBAAiB,GAAqB,IAAI,CAAC;AAE/C,wJAAwJ;AACxJ,wFAAwF;AACxF,IAAI,oBAAoB,GAA+B,IAAI,CAAC;AAE5D,wIAAwI;AAExI,8JAA8J;AAC9J,iFAAiF;AACjF,IAAI,wBAAwB,GAA6C,IAAI,CAAC;AAE9E;;;GAGG;AAEH,iEAAiE;AACjE,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C,iGAAiG;AACjG,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,+EAA+E;AAC/E,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAE9C,yJAAyJ;AACzJ,yFAAyF;AACzF,IAAI,iBAAiB,GAA4C,IAAI,CAAC;AAEtE,8DAA8D;AAC9D,IAAI,oBAAoB,GAA6C,IAAI,CAAC;AAE1E,kKAAkK;AAClK,kIAAkI;AAClI,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAEhD,0BAA0B,GAAG,KAAK,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AAEH,8FAA8F;AAC9F,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAE7B,6IAA6I;AAC7I,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAgB,CAAC;AAE7C,kKAAkK;AAClK,qCAAqC;AACrC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC,gKAAgK;AAChK,iKAAiK;AACjK,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExD,uJAAuJ;AACvJ,wJAAwJ;AACxJ,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;AAC9C,OAAO,EAAoB,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1G,+JAA+J;AAC/J,oKAAoK;AACpK,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAE3C,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,CAAC;QAEH,IAAG,cAAc,EAAE,SAAS,EAAE,CAAC;YAE7B,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;YAE3C,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,OAAM,MAAM,EAAE,CAAC;QAEf,oCAAoC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAiB;QAE3B,OAAO,EAAE;YAEP,SAAS,EAAE,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,SAAS;YACvD,SAAS;SACV;QACD,MAAM,EAAE;YAEN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;SAClB;QACD,OAAO,EAAE;YAEP,MAAM,EAAE,cAAc,EAAE;YACxB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB;SAC7C;QACD,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;KACzB,CAAC;IAEF,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAE5C,sCAAsC;IACtC,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAExD,yCAAyC;IACzC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE3B,2BAA2B;IAC3B,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAU;IAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAElC,IAAG,MAAM,EAAE,CAAC;QAEV,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9B,oFAAoF;QACpF,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErC,wHAAwH;IAC1H,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAU;IAElC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IAEvC,IAAI,CAAC;QAEH,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AAEH;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAW;IAEhC,SAAS,GAAG,GAAG,CAAC;IAEhB,YAAY,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa;IAEpB,OAAO,SAAS,IAAI,WAAW,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IAErB,SAAS,GAAG,IAAI,CAAC;IAEjB,YAAY,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,EAAU;IAE3B,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe;IAE7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC;IAE7B,IAAG,GAAG,KAAK,IAAI,EAAE,CAAC;QAEhB,IAAI,CAAC;YAEH,yJAAyJ;YACzJ,yJAAyJ;YACzJ,kEAAkE;YAClE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAE7B,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAE1E,uJAAuJ;YACvJ,wBAAwB;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC;YAE1B,IAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAE3D,gJAAgJ;gBAChJ,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,2DAA2D,CAAC,CAAC;gBAE5F,IAAI,CAAC;oBAEH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAM,MAAM,EAAE,CAAC;oBAEf,kEAAkE;gBACpE,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC;gBAE1B,IAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBAE3D,GAAG,CAAC,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;gBACnI,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAM,KAAc,EAAE,CAAC;YAEvB,qJAAqJ;YACrJ,sCAAsC;YACtC,IAAI,KAA+B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAErD,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,0EAA0E;IAC1E,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAEnC,kJAAkJ;IAClJ,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAE9B,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,SAAiB,EAAE,cAAsB;IAE/E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,OAAM,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE5B,IAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAE1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,UAAkB;IAEhD,4JAA4J;IAC5J,2JAA2J;IAC3J,mEAAmE;IACnE,MAAM,UAAU,GAAG,CAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAE,CAAC;IAEnG,KAAI,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC;YAEH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAExB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAM,KAAc,EAAE,CAAC;YAEvB,oJAAoJ;YACpJ,oEAAoE;YACpE,IAAI,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAEtD,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAE/B,8HAA8H;IAC9H,IAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAEjC,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;IACvC,CAAC;IAED,oEAAoE;IACpE,MAAM,KAAK,GAAG;QAEZ,yGAAyG;QACzG,8DAA8D;QAE9D,gGAAgG;QAChG,wBAAwB;QACxB,+BAA+B;QAE/B,mGAAmG;QACnG,4DAA4D;QAC5D,kEAAkE;KACnE,CAAC;IAEF,uDAAuD;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAExC,IAAG,KAAK,EAAE,CAAC;QAET,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO;QAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAiCG;QACH,IAAI,EAAE;YAEJ,kCAAkC;YAClC,4CAA4C;YAC5C,oCAAoC;YACpC,iCAAiC;YACjC,uCAAuC;YACvC,0CAA0C;YAC1C,+CAA+C;YAC/C,yBAAyB;YACzB,6BAA6B;YAC7B,mBAAmB;YACnB,gBAAgB;YAChB,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;SAC5G;QAED,sJAAsJ;QACtJ,iEAAiE;QACjE,eAAe,EAAE,IAAI;QAErB,mFAAmF;QACnF,cAAc,EAAE,iBAAiB,EAAE;QAEnC,yJAAyJ;QACzJ,4EAA4E;QAC5E,QAAQ,EAAE,KAAK;QAEf;;;;;;;;;;;;;;;;WAgBG;QACH,iBAAiB,EAAE;YAEjB,sDAAsD;YACtD,4BAA4B;YAC5B,wBAAwB;YACxB,sBAAsB;YACtB,qBAAqB;YACrB,uCAAuC;YACvC,cAAc;SACf;QAED,uJAAuJ;QACvJ,iEAAiE;QACjE,IAAI,EAAE,IAAI;QAEV,qJAAqJ;QACrJ,4EAA4E;QAC5E,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,oBAAoB,CAAC,IAAmB;IAErD,2JAA2J;IAC3J,0JAA0J;IAC1J,oDAAoD;IACpD,IAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEf,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAE9C,+FAA+F;QAC/F,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;aACzH,MAAM,CAAC,CAAE,8BAA8B,GAAG,aAAa,EAAE,mBAAmB,GAAG,aAAa,CAAE,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAAoB;IAE3C,MAAM,MAAM,GAAG;QAEb,GAAG,CAAC,mBAAmB,IAAI,KAAK;QAChC,GAAG,CAAC,oBAAoB,IAAI,MAAM;QAClC,GAAG,CAAC,oBAAoB,IAAI,MAAM;KACnC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,IAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAErB,OAAO,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,CAAC;IAED,4JAA4J;IAC5J,0DAA0D;IAC1D,IAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QAEhD,OAAO,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACxC,CAAC;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,uBAAuB,CAAC,OAAgB;IAErD,IAAI,QAAQ,GAAmB,IAAI,CAAC;IACpC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC;QAEH,gFAAgF;QAChF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,UAAU,GAAmB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC;QAElF,IAAG,CAAC,UAAU,EAAE,CAAC;YAEf,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,aAAa,GAAG,IAAI,CAAC;YACrB,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;QAED,4JAA4J;QAC5J,gKAAgK;QAChK,mFAAmF;QACnF,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEnC,+JAA+J;QAC/J,oIAAoI;QACpI,IAAI,UAA8G,CAAC;QAEnH,KAAI,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAE5C,4CAA4C;YAC5C,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,GAA2F,EAAE;gBAE5I,OAAO;oBAEL,kEAAkE;oBAClE,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAE7B,2DAA2D;oBAC3D,YAAY,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW;oBACrD,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;iBACnD,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAG,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;gBAEnE,MAAM;YACR,CAAC;YAED,0GAA0G;YAC1G,IAAG,OAAO,GAAG,CAAC,EAAE,CAAC;gBAEf,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,sHAAsH,EACnJ,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBAEhE,4CAA4C;gBAC5C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,+JAA+J;QAC/J,2HAA2H;QAC3H,IAAG,CAAC,UAAU,EAAE,CAAC;YAEf,OAAO;QACT,CAAC;QAED,IAAG,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;YAEjE,GAAG,CAAC,IAAI,CAAC,qHAAqH,EAC5H,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;YAEnD,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC;QAChE,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;QAEnE,oEAAoE;QACpE,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;QAClE,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE7C,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,4FAA4F,EACzH,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,EAC7C,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,EAC/C,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvB,4JAA4J;QAC5J,0IAA0I;QAC1I,IAAI,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;YAE7D,IAAI,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAOzD,CAAC;gBAEF,oJAAoJ;gBACpJ,6CAA6C;gBAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,SAAS,CAAC;gBAErE,8EAA8E;gBAC9E,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,GAAW,EAAE;oBAErE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAChD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAEtC,IAAG,CAAC,EAAE,EAAE,CAAC;wBAEP,OAAO,SAAS,CAAC;oBACnB,CAAC;oBAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;oBAEzD,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3G,CAAC,CAAC,CAAC;gBAEH,4IAA4I;gBAC5I,kFAAkF;gBAClF,IAAI,QAAQ,GAAG,aAAa,CAAC;gBAC7B,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAErE,IAAG,SAAS,EAAE,CAAC;oBAEb,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;oBAE5B,6DAA6D;oBAC7D,MAAM,WAAW,GAAG,wBAAwB,CAAC;oBAE7C,IAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAEpC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;qBAAM,IAAG,CAAC,aAAa,KAAK,cAAc,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,EAAE,CAAC;oBAE9E,QAAQ,GAAG,UAAU,CAAC;gBACxB,CAAC;gBAED,qDAAqD;gBACrD,gJAAgJ;gBAChJ,2HAA2H;gBAC3H,mJAAmJ;gBACnJ,qGAAqG;gBACrG,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC;gBACrF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7F,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7F,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE3F,qGAAqG;gBACrG,MAAM,YAAY,GAAG,kBAAkB,IAAI,gBAAgB,CAAC;gBAE5D,wJAAwJ;gBACxJ,wGAAwG;gBACxG,IAAI,YAAY,GAAG,gBAAgB,CAAC;gBACpC,IAAI,WAAW,GAAG,eAAe,CAAC;gBAElC,IAAG,kBAAkB,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAEzD,MAAM,CAAE,aAAa,EAAE,YAAY,CAAE,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,GAAuB,EAAE;wBAEnG,IAAG,OAAO,aAAa,KAAK,WAAW,EAAE,CAAC;4BAExC,OAAO,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC;wBAC1B,CAAC;wBAED,OAAO;4BAEL,aAAa,CAAC,eAAe,CAAC,kCAAkC,CAAC;4BACjE,aAAa,CAAC,eAAe,CAAC,gCAAgC,CAAC;yBAChE,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,YAAY,KAAK,aAAa,CAAC;oBAC/B,WAAW,KAAK,YAAY,CAAC;gBAC/B,CAAC;gBAED,kBAAkB,CAAC,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAE3I,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,0GAA0G,EACvI,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,IAAI,SAAS,EACvH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;YAE1E,CAAC;oBAAS,CAAC;gBAET,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAA0C,CAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAM,QAAQ,EAAE,CAAC;YAEjB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YAErD,GAAG,CAAC,IAAI,CAAC,gFAAgF,EACvF,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC,MAAM,EAC/D,YAAY,CAAC,gBAAgB,CAAC,EAAE,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,IAAI,CAAC,yEAAyE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1G,CAAC;YAAS,CAAC;QAET,6CAA6C;QAC7C,IAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;YAE7B,IAAI,CAAC;gBAEH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,OAAM,WAAW,EAAE,CAAC;gBAEpB,uBAAuB;YACzB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,uBAAuB;IAE9B,+JAA+J;IAC/J,cAAc,GAAG,IAAI,CAAC;IACtB,iBAAiB,GAAG,IAAI,CAAC;IACzB,SAAS,GAAG,IAAI,CAAC;IACjB,oBAAoB,GAAG,IAAI,CAAC;IAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,4EAA4E;IAC5E,IAAG,iBAAiB,EAAE,CAAC;QAErB,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChC,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,sIAAsI;IACtI,2BAA2B,EAAE,CAAC;IAE9B,2JAA2J;IAC3J,gEAAgE;IAChE,IAAG,eAAe,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAEpD,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC1D,CAAC;IAED,2IAA2I;IAC3I,IAAG,CAAC,0BAA0B,EAAE,CAAC;QAE/B,GAAG,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACzF,CAAC;IAED,iKAAiK;IACjK,2IAA2I;IAC3I,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,KAAI,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QAEhC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACjF,CAAC;IAED,oIAAoI;IACpI,IAAG,CAAC,0BAA0B,EAAE,CAAC;QAE/B,KAAK,uBAAuB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IAErC,uJAAuJ;IACvJ,eAAe;IACf,IAAG,cAAc,EAAE,SAAS,EAAE,CAAC;QAE7B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,0JAA0J;IAC1J,kHAAkH;IAClH,IAAG,oBAAoB,EAAE,CAAC;QAExB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,yGAAyG;IACzG,oBAAoB,GAAG,aAAa,EAAE,CAAC;IAEvC,IAAI,CAAC;QAEH,OAAO,MAAM,oBAAoB,CAAC;IACpC,CAAC;YAAS,CAAC;QAET,oBAAoB,GAAG,IAAI,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa;IAE1B,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IAEpC,yHAAyH;IACzH,IAAI,CAAC;QAEH,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QAErC,uJAAuJ;QACvJ,+CAA+C;QAC/C,cAAc,GAAG,MAAM,MAAM,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;QAEzE,0JAA0J;QAC1J,wEAAwE;QACxE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC;QAElD,IAAG,WAAW,EAAE,CAAC;YAEf,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YAEN,GAAG,CAAC,IAAI,CAAC,iHAAiH,CAAC,CAAC;QAC9H,CAAC;QAED,oIAAoI;QACpI,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;QAE3D,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,iCAAiC,EAAE,cAAc,EAAE,CAAC,CAAC;QAEjF,0JAA0J;QAC1J,8JAA8J;QAC9J,iHAAiH;QACjH,IAAI,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAE7D,MAAM,aAAa,CAAC,eAAe,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACxH,CAAC;QAAC,MAAM,CAAC;YAEP,oIAAoI;YACpI,2GAA2G;YAC3G,GAAG,CAAC,IAAI,CAAC,uFAAuF,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChI,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,gCAAgC,EAAE,cAAc,EAAE,CAAC,CAAC;QAEhF,sJAAsJ;QACtJ,4BAA4B;QAC5B,MAAM,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAE9C,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,qCAAqC,EAAE,cAAc,EAAE,CAAC,CAAC;QAErF,yJAAyJ;QACzJ,sJAAsJ;QACtJ,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,CAAC;QAEnD,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,oBAAoB,GAAG,aAAa,CAAC;QACrC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE9B,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElD,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAE1D,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,cAAc,EAAE,CAAC,CAAC;QAE7E,iDAAiD;QACjD,MAAM,uBAAuB,EAAE,CAAC;QAEhC,8JAA8J;QAC9J,0BAA0B;QAC1B,eAAe,EAAE,CAAC;IACpB,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/D,0IAA0I;QAC1I,cAAc,GAAG,IAAI,CAAC;QACtB,iBAAiB,GAAG,IAAI,CAAC;QACzB,oBAAoB,GAAG,IAAI,CAAC;QAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAE9B,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IAEzC,yDAAyD;IACzD,IAAG,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC;QAE9B,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,GAAmB,IAAI,CAAC;IACpC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC;QAEH,qJAAqJ;QACrJ,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,UAAU,GAAmB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC;QAElF,sHAAsH;QACtH,IAAG,CAAC,UAAU,EAAE,CAAC;YAEf,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1C,aAAa,GAAG,IAAI,CAAC;YAErB,2DAA2D;YAC3D,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC9B,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;QAED,uJAAuJ;QACvJ,uCAAuC;QACvC,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAE1C,iDAAiD;QACjD,IAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;YAE7B,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAEhC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,uEAAuE;QACvE,IAAG,aAAa,IAAI,QAAQ,EAAE,CAAC;YAE7B,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAEhC,IAAI,CAAC;gBAEH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,OAAM,WAAW,EAAE,CAAC;gBAEpB,6CAA6C;YAC/C,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,mDAAmD,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IAEnC,yDAAyD;IACzD,IAAG,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC;QAE9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QAEH,OAAO,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAAC,OAAM,MAAM,EAAE,CAAC;QAEf,iGAAiG;QACjG,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAEhC,+JAA+J;IAC/J,2BAA2B;IAC3B,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAG,cAAc,CAAC;IAElC,2HAA2H;IAC3H,cAAc,GAAG,IAAI,CAAC;IACtB,iBAAiB,GAAG,IAAI,CAAC;IACzB,oBAAoB,GAAG,IAAI,CAAC;IAC5B,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAG,CAAC,UAAU,EAAE,CAAC;QAEf,OAAO;IACT,CAAC;IAED,wJAAwJ;IACxJ,sGAAsG;IACtG,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAE3C,IAAG,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAE/C,MAAM,YAAY,GAAG,IAAI,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC;QAE1B,yJAAyJ;QACzJ,kDAAkD;QAClD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;QAEpF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9B,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;QAExF,8GAA8G;QAC9G,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAErD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAE,CAAC,CAAC;QAEjF,WAAW,CAAC,MAAM,EAAE,CAAC;QAErB,IAAG,CAAC,eAAe,EAAE,CAAC;YAEpB,+IAA+I;YAC/I,sBAAsB;YACtB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,2DAA2D,CAAC,CAAC;YAE5F,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAE,CAAC,CAAC;YAEzD,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,qJAAqJ;IACrJ,8EAA8E;IAC9E,IAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QAExB,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED,iEAAiE;IACjE,cAAc,EAAE,CAAC;IACjB,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IAErC,yDAAyD;IACzD,IAAG,CAAC,cAAc,EAAE,SAAS,EAAE,CAAC;QAE9B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;QAE3C,2GAA2G;QAC3G,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAErB,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QAExC,KAAI,MAAM,UAAU,IAAI,aAAa,EAAE,EAAE,CAAC;YAExC,IAAG,UAAU,CAAC,IAAI,EAAE,CAAC;gBAEnB,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEjD,IAAG,MAAM,EAAE,CAAC;oBAEV,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAEzD,mFAAmF;QACnF,wDAAwD;QACxD,gDAAgD;QAChD,uDAAuD;QACvD,MAAM,cAAc,GAAqC,EAAE,CAAC;QAE5D,iHAAiH;QACjH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE5C,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAExB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEtC,qFAAqF;YACrF,IAAG,CAAC,MAAM,EAAE,CAAC;gBAEX,SAAS;YACX,CAAC;YAED,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE9B,6CAA6C;YAC7C,IAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAE7B,0GAA0G;gBAC1G,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAErC,SAAS;YACX,CAAC;YAED,2EAA2E;YAC3E,IAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAEtC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEvC,kDAAkD;gBAClD,SAAS;YACX,CAAC;YAED,yCAAyC;YACzC,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YAEhE,IAAG,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,WAAW,EAAE,CAAC;gBAExC,kEAAkE;gBAClE,SAAS;YACX,CAAC;YAED,2FAA2F;YAC3F,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,wJAAwJ;QACxJ,KAAI,MAAM,SAAS,IAAI,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YAEpD,IAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAErC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAEtE,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAEzD,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAE3C,IAAI,CAAC;gBAEH,+EAA+E;gBAC/E,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE9B,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAErC,4CAA4C;gBAC5C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEnB,WAAW,EAAE,CAAC;YAChB,CAAC;YAAC,OAAM,MAAM,EAAE,CAAC;gBAEf,kHAAkH;YACpH,CAAC;QACH,CAAC;QAED,sFAAsF;QACtF,IAAG,WAAW,GAAG,CAAC,EAAE,CAAC;YAEnB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,WAAW,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,+EAA+E;QAC/E,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IAEnC,wBAAwB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AACxH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAElC,IAAG,wBAAwB,EAAE,CAAC;QAE5B,aAAa,CAAC,wBAAwB,CAAC,CAAC;QAExC,wBAAwB,GAAG,IAAI,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;GAGG;AAEH;;;;GAIG;AACH,SAAS,mBAAmB;IAE1B,8FAA8F;IAC9F,IAAG,0BAA0B,IAAI,iBAAiB,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3H,OAAO;IACT,CAAC;IAED,wDAAwD;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;IAE3C,IAAG,GAAG,GAAG,eAAe,EAAE,CAAC;QAEzB,OAAO;IACT,CAAC;IAED,0IAA0I;IAC1I,IAAG,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC;QAExB,IAAG,iBAAiB,EAAE,CAAC;YAErB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,8DAA8D,CAAC,CAAC;YAE/F,YAAY,CAAC,iBAAiB,CAAC,CAAC;YAChC,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,OAAO;IACT,CAAC;IAED,wGAAwG;IACxG,IAAG,CAAC,iBAAiB,EAAE,CAAC;QAEtB,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,sHAAsH,EACnJ,IAAI,CAAC,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,CAAC,CAAC;QAEpD,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;YAElC,KAAK,qBAAqB,EAAE,CAAC;QAC/B,CAAC,EAAE,4BAA4B,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB;IAElC,0BAA0B;IAC1B,iBAAiB,GAAG,IAAI,CAAC;IAEzB,0JAA0J;IAC1J,+DAA+D;IAC/D,IAAG,0BAA0B,IAAI,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErJ,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,wDAAwD,CAAC,CAAC;QAEzF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAEpD,GAAG,CAAC,IAAI,CAAC,iEAAiE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE5F,IAAI,CAAC;QAEH,kHAAkH;QAClH,MAAM,YAAY,EAAE,CAAC;QAErB,yFAAyF;QACzF,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAE3B,8EAA8E;QAC9E,MAAM,iBAAiB,EAAE,CAAC;QAE1B,mEAAmE;QACnE,MAAM,qBAAqB,EAAE,CAAC;QAE9B,GAAG,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACjE,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE7D,kHAAkH;QAClH,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IAEzC,oBAAoB,GAAG,WAAW,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IAExC,IAAG,oBAAoB,EAAE,CAAC;QAExB,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACpC,oBAAoB,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,IAAG,iBAAiB,EAAE,CAAC;QAErB,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChC,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAEpC,qDAAqD;IACrD,IAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEhB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QAEH,4IAA4I;QAC5I,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAEpC,sDAAsD;QACtD,IAAI,CAAC;YAEH,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAE3E,MAAM,KAAK,CAAC;QACd,CAAC;QAED,kHAAkH;QAClH,MAAM,KAAK,GAAG,CAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,CAAE,CAAC;QAEjF,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAExB,IAAI,CAAC;gBAEH,iJAAiJ;gBACjJ,8EAA8E;gBAC9E,4CAA4C;gBAC5C,MAAM,UAAU,CAAC,QAAQ,CACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,EAChG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CACrB,CAAC;YACJ,CAAC;YAAC,OAAM,KAAK,EAAE,CAAC;gBAEd,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE7E,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,wCAAwC,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,wJAAwJ;AACxJ,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { CDPSession, Page } from "puppeteer-core";
2
1
  import type { Nullable } from "../types/index.ts";
2
+ import type { Page } from "puppeteer-core";
3
3
  /**
4
4
  * Captured-URL state used by selectInterceptedManifest() to choose the playlist URL appropriate for a given resolution mode. Modeled as a plain record so the
5
- * selection logic is testable in isolation from the CDP listener that maintains the underlying state.
5
+ * selection logic is testable in isolation from the network plumbing that maintains the underlying state.
6
6
  */
7
7
  export interface InterceptedManifestState {
8
8
  directTune: boolean;
@@ -16,62 +16,62 @@ export interface InterceptedManifestState {
16
16
  * outrank media URLs when both kinds were observed because masters declare richer metadata (variant bandwidth, resolution, separate audio renditions). Within
17
17
  * the chosen kind, direct tunes pick the first URL and guide tunes pick the latest URL. Returns null when no qualifying URL is available.
18
18
  *
19
- * Pure function exported for unit testing; the closure inside installManifestInterceptor() consumes it through the same shape.
19
+ * Pure selection policy exported so the rule is testable in isolation from the network plumbing; the closure inside installManifestInterceptor() consumes it
20
+ * through the same shape.
20
21
  *
21
22
  * @param state - The captured-URL state at resolution time.
22
23
  * @returns The selected URL, or null when no URL matches the resolution mode.
23
24
  */
24
25
  export declare function selectInterceptedManifest(state: InterceptedManifestState): Nullable<string>;
25
26
  /**
26
- * Result of manifest interception containing the CDP session for reuse during token refresh and the playlist URL the probe will consume. The URL may be either
27
- * a master or a media playlist; the probe normalizes both kinds into a MediaFeed so downstream code does not branch.
27
+ * Result of manifest interception. The URL may be either a master or a media playlist; the probe normalizes both kinds into a MediaFeed so downstream code does
28
+ * not branch on which kind originally arrived. The underlying observer and its CDP sessions are owned and disposed internally - callers do not hold session
29
+ * references.
28
30
  */
29
31
  export interface ManifestInterceptionResult {
30
- cdpSession: CDPSession;
31
32
  masterManifestUrl: string;
32
33
  }
33
34
  /**
34
- * Handle returned by installManifestInterceptor. Provides the interception promise and a finalize function to signal that channel selection is complete.
35
+ * Handle returned by installManifestInterceptor. Provides the interception promise, a finalize function to signal that channel selection is complete, and an
36
+ * explicit dispose path. Implements TC39 Symbol.dispose so callers may use the "using" keyword for scope-bound cleanup, including on thrown errors.
35
37
  */
36
- export interface ManifestInterceptorHandle {
37
- finalize: (directTune: boolean) => void;
38
- promise: Promise<Nullable<ManifestInterceptionResult>>;
38
+ export interface ManifestInterceptorHandle extends Disposable {
39
+ readonly dispose: () => void;
40
+ readonly finalize: (directTune: boolean) => void;
41
+ readonly promise: Promise<Nullable<ManifestInterceptionResult>>;
42
+ readonly [Symbol.dispose]: () => void;
39
43
  }
40
44
  /**
41
- * Installs a long-lived CDP listener that tracks observed HLS playlist URLs on the given page. Both master and media playlists are accepted; the listener tracks
42
- * first/latest URLs separately per kind so master-based and media-only sites both work without separate code paths. Master playlists take precedence over media
45
+ * Installs a long-lived HLS playlist observer that tracks observed playlist URLs on the given page. Both master and media playlists are accepted; first/latest
46
+ * URLs are tracked separately per kind so master-based and media-only sites both work without separate code paths. Master playlists take precedence over media
43
47
  * playlists when both have arrived during the interception window because masters carry richer metadata (variant bandwidth, resolution, separate audio
44
- * renditions) that improves the resulting MediaFeed. The returned handle provides a finalize(directTune) callback - when called, the interceptor resolves with
48
+ * renditions) that improves the resulting MediaFeed. The returned handle provides a finalize(directTune) callback - when called, the observer resolves with
45
49
  * whichever URL is appropriate for the tune type:
46
50
  *
47
51
  * - directTune=true: resolves immediately (or after the settle delay if no manifest has arrived yet) with the first manifest captured. Used by sites where the
48
52
  * navigated URL itself selects the channel and the player loads its manifest before the click handler returns. Master-first URL preferred over media-first.
49
- * - directTune=false: resolves after the settle delay with the latest manifest captured. Used by guide-based sites where the channel-switch click triggers a new
50
- * manifest fetch that may arrive milliseconds after the click handler returns. Master-latest URL preferred over media-latest.
53
+ * - directTune=false: resolves after the settle delay with the latest manifest captured. Used by guide-based sites where the channel-switch click triggers a
54
+ * new manifest fetch that may arrive milliseconds after the click handler returns. Master-latest URL preferred over media-latest.
51
55
  *
52
- * On timeout (finalize never called), the listener resolves with the latest captured URL using the same master-priority rule, or null if none arrived. The CDP
53
- * session is preserved in the result and ownership transfers to the caller; callers must call removeManifestInterceptor() when done.
54
- * @param page - The Puppeteer page to monitor.
56
+ * On timeout (finalize never called), the observer resolves with the latest captured URL using the same master-priority rule, or null if none arrived. The
57
+ * underlying HLS observer is disposed automatically on resolution; callers do not hold CDP session references.
58
+ *
59
+ * @param page - The puppeteer page to monitor.
55
60
  * @param timeout - Maximum time in milliseconds to wait for a manifest. Acts as a safety net if finalize() is never called.
56
- * @returns The interceptor handle, or null if the CDP session could not be created.
61
+ * @returns The interceptor handle, or null if the observer could not be installed.
57
62
  */
58
63
  export declare function installManifestInterceptor(page: Page, timeout?: number): Promise<Nullable<ManifestInterceptorHandle>>;
59
64
  /**
60
- * Awaits the first master HLS manifest URL whose URL satisfies the supplied predicate. Used by tune-verification paths where the caller has just clicked or
65
+ * Awaits the first master HLS manifest whose URL satisfies the supplied predicate. Used by tune-verification paths where the caller has just clicked or
61
66
  * navigated to a target channel and wants to confirm the resulting stream belongs to that channel rather than to whatever default the page was previously
62
67
  * showing.
63
68
  *
64
- * Resolves with the matching URL on success. Resolves with null if no matching manifest arrives within the timeout. The CDP session is torn down automatically
65
- * in both cases - the verification path does not hand off the session to a downstream consumer.
66
- * @param page - The Puppeteer page to monitor.
69
+ * Resolves with the matching URL on success. Resolves with null if no matching manifest arrives within the timeout. The underlying observer is torn down
70
+ * automatically in both cases - the verification path does not hand off a session to a downstream consumer.
71
+ *
72
+ * @param page - The puppeteer page to monitor.
67
73
  * @param predicate - Test applied to each verified master manifest URL. Return true to accept the URL and resolve.
68
74
  * @param timeout - Maximum time in milliseconds to wait for a matching manifest.
69
75
  * @returns The matching URL, or null on timeout.
70
76
  */
71
77
  export declare function awaitMatchingManifest(page: Page, predicate: (url: string) => boolean, timeout?: number): Promise<Nullable<string>>;
72
- /**
73
- * Removes the Network domain listener and detaches the CDP session. Safe to call multiple times or on an already-detached session. Public so that native HLS
74
- * consumers (which receive the CDP session through ManifestInterceptionResult) can clean up after token-refresh handoffs and proxy shutdown.
75
- * @param cdpSession - The CDP session to clean up.
76
- */
77
- export declare function removeManifestInterceptor(cdpSession: CDPSession): void;