prismcast 1.6.0 → 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.
- package/dist/browser/cdp.js +1 -1
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +10 -34
- package/dist/browser/channelSelection.js +19 -96
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/display.d.ts +19 -0
- package/dist/browser/display.js +16 -11
- package/dist/browser/display.js.map +1 -1
- package/dist/browser/index.d.ts +9 -46
- package/dist/browser/index.js +136 -191
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/login.d.ts +65 -0
- package/dist/browser/login.js +193 -0
- package/dist/browser/login.js.map +1 -0
- package/dist/browser/precaching.js +12 -0
- package/dist/browser/precaching.js.map +1 -1
- package/dist/browser/tuning/comcastPolymer.d.ts +23 -0
- package/dist/browser/tuning/comcastPolymer.js +655 -0
- package/dist/browser/tuning/comcastPolymer.js.map +1 -0
- package/dist/browser/tuning/cox.d.ts +2 -0
- package/dist/browser/tuning/cox.js +14 -0
- package/dist/browser/tuning/cox.js.map +1 -0
- package/dist/browser/tuning/directv.js +1 -1
- package/dist/browser/tuning/directv.js.map +1 -1
- package/dist/browser/tuning/fox.js +2 -2
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/hbo.js +1 -1
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.js +1 -1
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/shared.d.ts +46 -0
- package/dist/browser/tuning/shared.js +100 -0
- package/dist/browser/tuning/shared.js.map +1 -0
- package/dist/browser/tuning/sling.js +1 -1
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/spectrum.js +1 -1
- package/dist/browser/tuning/spectrum.js.map +1 -1
- package/dist/browser/tuning/thumbnailRow.js +1 -1
- package/dist/browser/tuning/thumbnailRow.js.map +1 -1
- package/dist/browser/tuning/tileClick.js +1 -1
- package/dist/browser/tuning/tileClick.js.map +1 -1
- package/dist/browser/tuning/xfinity.js +10 -603
- package/dist/browser/tuning/xfinity.js.map +1 -1
- package/dist/browser/tuning/youtubeTv.js +1 -1
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +18 -0
- package/dist/browser/video.js +69 -107
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.d.ts +2 -2
- package/dist/channels/index.js +2075 -800
- package/dist/channels/index.js.map +1 -1
- package/dist/config/health.js +20 -2
- package/dist/config/health.js.map +1 -1
- package/dist/config/index.js +29 -64
- package/dist/config/index.js.map +1 -1
- package/dist/config/providerPacks.js +4 -1
- package/dist/config/providerPacks.js.map +1 -1
- package/dist/config/providers.d.ts +12 -5
- package/dist/config/providers.js +110 -94
- package/dist/config/providers.js.map +1 -1
- package/dist/config/sites.js +15 -9
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +50 -2
- package/dist/config/userChannels.js +212 -10
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +1 -1
- package/dist/config/userConfig.js +2 -15
- package/dist/config/userConfig.js.map +1 -1
- package/dist/hdhr/channelMap.d.ts +1 -1
- package/dist/hdhr/channelMap.js +4 -4
- package/dist/hdhr/channelMap.js.map +1 -1
- package/dist/index.js +9 -15
- package/dist/index.js.map +1 -1
- package/dist/native/index.d.ts +3 -0
- package/dist/native/index.js +2 -1
- package/dist/native/index.js.map +1 -1
- package/dist/native/probe.d.ts +4 -3
- package/dist/native/probe.js +36 -12
- package/dist/native/probe.js.map +1 -1
- package/dist/native/proxy.d.ts +2 -0
- package/dist/native/proxy.js +369 -326
- package/dist/native/proxy.js.map +1 -1
- package/dist/routes/components.d.ts +43 -0
- package/dist/routes/components.js +122 -0
- package/dist/routes/components.js.map +1 -1
- package/dist/routes/config/channels/index.d.ts +2 -2
- package/dist/routes/config/channels/index.js +1 -1
- package/dist/routes/config/channels/index.js.map +1 -1
- package/dist/routes/config/channels/routes.js +443 -65
- package/dist/routes/config/channels/routes.js.map +1 -1
- package/dist/routes/config/channels/table.d.ts +76 -0
- package/dist/routes/config/channels/table.js +352 -66
- package/dist/routes/config/channels/table.js.map +1 -1
- package/dist/routes/config/index.d.ts +1 -1
- package/dist/routes/config/index.js +1 -1
- package/dist/routes/config/index.js.map +1 -1
- package/dist/routes/config/providers.d.ts +6 -6
- package/dist/routes/config/providers.js +69 -95
- package/dist/routes/config/providers.js.map +1 -1
- package/dist/routes/index.d.ts +0 -16
- package/dist/routes/index.js +0 -17
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/providers.js +106 -3
- package/dist/routes/providers.js.map +1 -1
- package/dist/routes/root/content.js +55 -38
- package/dist/routes/root/content.js.map +1 -1
- package/dist/routes/root/index.js +2 -1
- package/dist/routes/root/index.js.map +1 -1
- package/dist/routes/root/scripts/channels.js +772 -312
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/config.js +596 -544
- package/dist/routes/root/scripts/config.js.map +1 -1
- package/dist/routes/root/scripts/index.d.ts +1 -0
- package/dist/routes/root/scripts/index.js +1 -0
- package/dist/routes/root/scripts/index.js.map +1 -1
- package/dist/routes/root/scripts/shared.d.ts +6 -0
- package/dist/routes/root/scripts/shared.js +391 -0
- package/dist/routes/root/scripts/shared.js.map +1 -0
- package/dist/routes/root/scripts/status.js +36 -21
- package/dist/routes/root/scripts/status.js.map +1 -1
- package/dist/routes/root/styles.js +113 -8
- package/dist/routes/root/styles.js.map +1 -1
- package/dist/service/commands.js +2 -1
- package/dist/service/commands.js.map +1 -1
- package/dist/streaming/fmp4Segmenter.d.ts +2 -0
- package/dist/streaming/fmp4Segmenter.js +7 -4
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.js +269 -188
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +9 -3
- package/dist/streaming/hlsResume.js +13 -6
- package/dist/streaming/hlsResume.js.map +1 -1
- package/dist/streaming/hlsSegments.d.ts +1 -2
- package/dist/streaming/hlsSegments.js +48 -46
- package/dist/streaming/hlsSegments.js.map +1 -1
- package/dist/streaming/lifecycle.js +8 -12
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.js +625 -585
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/mpegts.js +1 -1
- package/dist/streaming/mpegts.js.map +1 -1
- package/dist/streaming/preroll.d.ts +40 -20
- package/dist/streaming/preroll.js +147 -86
- package/dist/streaming/preroll.js.map +1 -1
- package/dist/streaming/recovery.d.ts +0 -6
- package/dist/streaming/recovery.js +0 -8
- package/dist/streaming/recovery.js.map +1 -1
- package/dist/streaming/registry.d.ts +36 -9
- package/dist/streaming/registry.js +6 -9
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +1 -1
- package/dist/streaming/setup.js +44 -21
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.d.ts +7 -6
- package/dist/streaming/showInfo.js +156 -36
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +14 -2
- package/dist/streaming/statusEmitter.js +22 -4
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +31 -0
- package/dist/types/config.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/profiles.d.ts +8 -3
- package/dist/types/selection.d.ts +1 -0
- package/dist/types/shared.d.ts +1 -1
- package/dist/utils/debugFilter.d.ts +0 -5
- package/dist/utils/debugFilter.js +5 -11
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/delay.d.ts +12 -0
- package/dist/utils/delay.js +20 -0
- package/dist/utils/delay.js.map +1 -1
- package/dist/utils/evaluate.js +6 -11
- package/dist/utils/evaluate.js.map +1 -1
- package/dist/utils/ffmpeg.d.ts +13 -5
- package/dist/utils/ffmpeg.js +32 -11
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/format.d.ts +6 -0
- package/dist/utils/format.js +8 -0
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logEmitter.js +1 -1
- package/dist/utils/logEmitter.js.map +1 -1
- package/dist/utils/retry.d.ts +15 -9
- package/dist/utils/retry.js +7 -23
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/timing.d.ts +5 -0
- package/dist/utils/timing.js +13 -0
- package/dist/utils/timing.js.map +1 -0
- package/dist/utils/version.js +2 -2
- package/dist/utils/version.js.map +1 -1
- package/package.json +5 -5
|
@@ -4,8 +4,27 @@ import type { FFmpegProcess } from "../utils/index.js";
|
|
|
4
4
|
import type { FMP4SegmenterResult } from "./fmp4Segmenter.js";
|
|
5
5
|
import type { NativeProxy } from "../native/proxy.js";
|
|
6
6
|
import type { Page } from "puppeteer-core";
|
|
7
|
+
import type { PrerollCodec } from "./preroll.js";
|
|
7
8
|
import type { Readable } from "node:stream";
|
|
8
9
|
import type { RecoveryMetrics } from "./recovery.js";
|
|
10
|
+
/**
|
|
11
|
+
* Typed event map for segment notifications. MPEG-TS consumers and lifecycle handlers subscribe to these events. Using a typed interface ensures event names and
|
|
12
|
+
* argument types are checked at compile time, preventing misspelled event names or incorrect payloads.
|
|
13
|
+
*/
|
|
14
|
+
interface SegmentEmitterEventMap {
|
|
15
|
+
audioSegment: [filename: string, data: Buffer];
|
|
16
|
+
initSegment: [data: Buffer];
|
|
17
|
+
segment: [filename: string, data: Buffer];
|
|
18
|
+
terminated: [];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Typed EventEmitter for segment notifications. Narrows Node's untyped EventEmitter to only accept the events defined in SegmentEmitterEventMap.
|
|
22
|
+
*/
|
|
23
|
+
export interface SegmentEmitter extends EventEmitter {
|
|
24
|
+
emit<K extends keyof SegmentEmitterEventMap>(event: K, ...args: SegmentEmitterEventMap[K]): boolean;
|
|
25
|
+
off<K extends keyof SegmentEmitterEventMap>(event: K, listener: (...args: SegmentEmitterEventMap[K]) => void): this;
|
|
26
|
+
on<K extends keyof SegmentEmitterEventMap>(event: K, listener: (...args: SegmentEmitterEventMap[K]) => void): this;
|
|
27
|
+
}
|
|
9
28
|
/**
|
|
10
29
|
* HLS segment and playlist storage for a stream. This includes the fMP4 initialization segment (codec configuration), media segments (.m4s files), and the current
|
|
11
30
|
* playlist content. The playlistReady promise allows callers to wait for the first playlist to be generated.
|
|
@@ -14,24 +33,27 @@ import type { RecoveryMetrics } from "./recovery.js";
|
|
|
14
33
|
* hlsSegments.ts imports getStream from registry.ts.
|
|
15
34
|
*/
|
|
16
35
|
export interface HLSState {
|
|
36
|
+
playlist: string;
|
|
37
|
+
videoPlaylist: string;
|
|
17
38
|
audioPlaylist: string;
|
|
18
|
-
audioSegments: Map<string, Buffer>;
|
|
19
39
|
hasAudio: boolean;
|
|
20
40
|
hasRealPlaylist: boolean;
|
|
21
41
|
initSegment: Nullable<Buffer>;
|
|
42
|
+
segments: Map<string, Buffer>;
|
|
43
|
+
segmentBytes: number;
|
|
44
|
+
audioSegments: Map<string, Buffer>;
|
|
45
|
+
audioSegmentBytes: number;
|
|
46
|
+
segmentEmitter: SegmentEmitter;
|
|
22
47
|
initSegmentReady: Promise<void>;
|
|
23
|
-
|
|
48
|
+
signalInitSegmentReady: () => void;
|
|
24
49
|
playlistReady: Promise<void>;
|
|
50
|
+
signalPlaylistReady: () => void;
|
|
25
51
|
prerollBaseUrl: Nullable<string>;
|
|
52
|
+
prerollCodec: Nullable<PrerollCodec>;
|
|
26
53
|
prerollSegmentCount: number;
|
|
27
54
|
prerollStartTime: Nullable<Date>;
|
|
28
55
|
prerollTimer: Nullable<ReturnType<typeof setTimeout>>;
|
|
29
56
|
resumeSegmentIndex: number;
|
|
30
|
-
segmentEmitter: EventEmitter;
|
|
31
|
-
segments: Map<string, Buffer>;
|
|
32
|
-
signalInitSegmentReady: () => void;
|
|
33
|
-
signalPlaylistReady: () => void;
|
|
34
|
-
videoPlaylist: string;
|
|
35
57
|
}
|
|
36
58
|
/**
|
|
37
59
|
* Stream-specific information for idle detection.
|
|
@@ -44,13 +66,17 @@ export interface StreamInfo {
|
|
|
44
66
|
* Registry entry for an active stream. This is the single source of truth for all stream data, including browser state, HLS segments, and the segmenter reference.
|
|
45
67
|
*/
|
|
46
68
|
export interface StreamRegistryEntry {
|
|
69
|
+
captureCodec: Nullable<string>;
|
|
47
70
|
channelName: Nullable<string>;
|
|
48
71
|
clientAddress: Nullable<string>;
|
|
49
72
|
ffmpegProcess: Nullable<FFmpegProcess>;
|
|
73
|
+
hardwareAccelerated: boolean;
|
|
50
74
|
hls: HLSState;
|
|
51
75
|
id: number;
|
|
52
76
|
mpegTsClientCount: number;
|
|
77
|
+
nativeBandwidth: number;
|
|
53
78
|
nativeProxy: Nullable<NativeProxy>;
|
|
79
|
+
nativeResolution: Nullable<string>;
|
|
54
80
|
info: StreamInfo;
|
|
55
81
|
page: Nullable<Page>;
|
|
56
82
|
preTuned: boolean;
|
|
@@ -113,8 +139,8 @@ export interface StreamMemoryUsage {
|
|
|
113
139
|
total: number;
|
|
114
140
|
}
|
|
115
141
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
142
|
+
* Returns the memory usage for a single stream's HLS segment storage. Uses the running byte counters maintained by storeSegmentToMap() for O(1) reads instead of
|
|
143
|
+
* iterating all segment buffers. The init segment is a single buffer read (also O(1)).
|
|
118
144
|
* @param entry - The stream registry entry to measure.
|
|
119
145
|
* @returns Memory usage breakdown in bytes.
|
|
120
146
|
*/
|
|
@@ -138,3 +164,4 @@ export declare function getLastSegmentHasVideo(entry: StreamRegistryEntry): Null
|
|
|
138
164
|
* @returns Segment size in bytes, or null if no segmenter exists.
|
|
139
165
|
*/
|
|
140
166
|
export declare function getLastSegmentSize(entry: StreamRegistryEntry): Nullable<number>;
|
|
167
|
+
export {};
|
|
@@ -76,6 +76,7 @@ export function createHLSState() {
|
|
|
76
76
|
segmentEmitter.setMaxListeners(20);
|
|
77
77
|
return {
|
|
78
78
|
audioPlaylist: "",
|
|
79
|
+
audioSegmentBytes: 0,
|
|
79
80
|
audioSegments: new Map(),
|
|
80
81
|
hasAudio: false,
|
|
81
82
|
hasRealPlaylist: false,
|
|
@@ -84,10 +85,12 @@ export function createHLSState() {
|
|
|
84
85
|
playlist: "",
|
|
85
86
|
playlistReady,
|
|
86
87
|
prerollBaseUrl: null,
|
|
88
|
+
prerollCodec: null,
|
|
87
89
|
prerollSegmentCount: 0,
|
|
88
90
|
prerollStartTime: null,
|
|
89
91
|
prerollTimer: null,
|
|
90
92
|
resumeSegmentIndex: 0,
|
|
93
|
+
segmentBytes: 0,
|
|
91
94
|
segmentEmitter,
|
|
92
95
|
segments: new Map(),
|
|
93
96
|
signalInitSegmentReady,
|
|
@@ -96,20 +99,14 @@ export function createHLSState() {
|
|
|
96
99
|
};
|
|
97
100
|
}
|
|
98
101
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
102
|
+
* Returns the memory usage for a single stream's HLS segment storage. Uses the running byte counters maintained by storeSegmentToMap() for O(1) reads instead of
|
|
103
|
+
* iterating all segment buffers. The init segment is a single buffer read (also O(1)).
|
|
101
104
|
* @param entry - The stream registry entry to measure.
|
|
102
105
|
* @returns Memory usage breakdown in bytes.
|
|
103
106
|
*/
|
|
104
107
|
export function getStreamMemoryUsage(entry) {
|
|
105
108
|
const initSegmentSize = entry.hls.initSegment?.length ?? 0;
|
|
106
|
-
|
|
107
|
-
for (const segment of entry.hls.segments.values()) {
|
|
108
|
-
segmentsSize += segment.length;
|
|
109
|
-
}
|
|
110
|
-
for (const segment of entry.hls.audioSegments.values()) {
|
|
111
|
-
segmentsSize += segment.length;
|
|
112
|
-
}
|
|
109
|
+
const segmentsSize = entry.hls.segmentBytes + entry.hls.audioSegmentBytes;
|
|
113
110
|
return {
|
|
114
111
|
initSegment: initSegmentSize,
|
|
115
112
|
segments: segmentsSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/streaming/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/streaming/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,7 +98,7 @@ export declare function validateStreamUrl(url: string | undefined): UrlValidatio
|
|
|
98
98
|
* Creates a browser page with media capture and navigates to the URL. This is the reusable core function used by both initial stream setup and tab replacement
|
|
99
99
|
* recovery. It handles:
|
|
100
100
|
* - Creating a new browser page with CSP bypass
|
|
101
|
-
* - Initializing media capture (native fMP4 or
|
|
101
|
+
* - Initializing media capture (native fMP4 or Matroska+FFmpeg)
|
|
102
102
|
* - Navigating to the URL with retry
|
|
103
103
|
* - Setting up video playback via navigateToPage() + initializePlayback()
|
|
104
104
|
*
|
package/dist/streaming/setup.js
CHANGED
|
@@ -2,13 +2,14 @@ import { LOG, delay, extractDomain, formatError, registerAbortController, retryO
|
|
|
2
2
|
import { getCurrentBrowser, getStream, minimizeBrowserWindow, registerManagedPage, unregisterManagedPage } from "../browser/index.js";
|
|
3
3
|
import { getNextStreamId, getStreamCount } from "./registry.js";
|
|
4
4
|
import { getProfileForChannel, getProfileForUrl, getProfiles, resolveProfile } from "../config/profiles.js";
|
|
5
|
-
import { initializePlayback, navigateToPage } from "../browser/video.js";
|
|
5
|
+
import { initializePlayback, injectVideoSelector, navigateToPage } from "../browser/video.js";
|
|
6
6
|
import { invalidateDirectUrl, resolveDirectUrl } from "../browser/channelSelection.js";
|
|
7
7
|
import { CONFIG } from "../config/index.js";
|
|
8
8
|
import { chromeFetch } from "../utils/index.js";
|
|
9
9
|
import { getCachedEncryption } from "../native/probe.js";
|
|
10
10
|
import { getDomainConfig } from "../config/sites.js";
|
|
11
11
|
import { getEffectiveViewport } from "../config/presets.js";
|
|
12
|
+
import { getGpuCapabilities } from "../browser/display.js";
|
|
12
13
|
import { getProviderDisplayName } from "../config/providers.js";
|
|
13
14
|
import { installManifestInterceptor } from "../native/intercept.js";
|
|
14
15
|
import { isChannelSelectionProfile } from "../types/index.js";
|
|
@@ -28,7 +29,7 @@ import { resizeAndMinimizeWindow } from "../browser/cdp.js";
|
|
|
28
29
|
*
|
|
29
30
|
* createPageWithCapture() handles:
|
|
30
31
|
* - Browser page creation with CSP bypass
|
|
31
|
-
* - Media stream initialization (native fMP4 or
|
|
32
|
+
* - Media stream initialization (native fMP4 or Matroska+FFmpeg)
|
|
32
33
|
* - Navigation with retry
|
|
33
34
|
* - Video element detection and playback setup
|
|
34
35
|
*
|
|
@@ -40,13 +41,19 @@ import { resizeAndMinimizeWindow } from "../browser/cdp.js";
|
|
|
40
41
|
*/
|
|
41
42
|
// Native fMP4 capture uses MP4/AAC for direct HLS segmentation without transcoding.
|
|
42
43
|
const NATIVE_FMP4_MIME_TYPE = "video/mp4;codecs=avc1,mp4a.40.2";
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
|
|
44
|
+
// Matroska+FFmpeg capture MIME types. Matroska is used over WebM because it supports a broader range of codecs (including HEVC and AV1), allowing codec upgrades
|
|
45
|
+
// without changing the container format. FFmpeg's demuxer handles both Matroska and WebM identically. When hardware HEVC encoding is available, HEVC is preferred
|
|
46
|
+
// over H.264 for better compression at the same bitrate. All variants use Opus audio which FFmpeg transcodes to AAC.
|
|
47
|
+
const MKV_H264_MIME_TYPE = "video/x-matroska;codecs=h264,opus";
|
|
48
|
+
const MKV_HEVC_MIME_TYPE = "video/x-matroska;codecs=hvc1.1.6.L93.B0,opus";
|
|
46
49
|
// Capture initialization queue. Chrome's tabCapture extension can only initialize one capture at a time — concurrent getStream() calls fail with "Cannot capture a
|
|
47
50
|
// tab with an active stream." We serialize capture initialization using a promise chain so requests execute sequentially. Once a capture is established, it runs
|
|
48
51
|
// concurrently with other captures without issue.
|
|
49
52
|
let captureQueue = Promise.resolve();
|
|
53
|
+
let captureQueueDepth = 0;
|
|
54
|
+
// Threshold for logging a warning when the capture queue depth is unusually high. Under normal operation, the queue depth is 0-2. Higher values indicate
|
|
55
|
+
// many simultaneous stream requests competing for Chrome's single-threaded capture initialization.
|
|
56
|
+
const CAPTURE_QUEUE_DEPTH_WARNING = 5;
|
|
50
57
|
// Maximum number of times createPageWithCapture() will retry when it detects that the page was closed while waiting in the capture queue (e.g., due to a browser
|
|
51
58
|
// crash). An explicit guard prevents unbounded recursion.
|
|
52
59
|
const MAX_PAGE_CLOSED_RETRIES = 3;
|
|
@@ -71,9 +78,11 @@ export class StreamSetupError extends Error {
|
|
|
71
78
|
*/
|
|
72
79
|
function generateRequestId() {
|
|
73
80
|
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
81
|
+
const bytes = new Uint8Array(6);
|
|
82
|
+
crypto.getRandomValues(bytes);
|
|
74
83
|
let result = "";
|
|
75
|
-
for (
|
|
76
|
-
result += chars.charAt(
|
|
84
|
+
for (const byte of bytes) {
|
|
85
|
+
result += chars.charAt(byte % chars.length);
|
|
77
86
|
}
|
|
78
87
|
return result;
|
|
79
88
|
}
|
|
@@ -117,11 +126,6 @@ export function validateStreamUrl(url) {
|
|
|
117
126
|
if (!allowedProtocols.includes(parsed.protocol)) {
|
|
118
127
|
return { reason: ["Unsupported protocol: ", parsed.protocol].join(""), valid: false };
|
|
119
128
|
}
|
|
120
|
-
// Local file access is explicitly blocked for security reasons. While the URL constructor wouldn't typically parse a file: URL through the protocol check
|
|
121
|
-
// above, we check explicitly for defense in depth.
|
|
122
|
-
if (parsed.protocol === "file:") {
|
|
123
|
-
return { reason: "Local file access is not permitted.", valid: false };
|
|
124
|
-
}
|
|
125
129
|
return { valid: true };
|
|
126
130
|
}
|
|
127
131
|
catch (_error) {
|
|
@@ -134,7 +138,7 @@ export function validateStreamUrl(url) {
|
|
|
134
138
|
* Creates a browser page with media capture and navigates to the URL. This is the reusable core function used by both initial stream setup and tab replacement
|
|
135
139
|
* recovery. It handles:
|
|
136
140
|
* - Creating a new browser page with CSP bypass
|
|
137
|
-
* - Initializing media capture (native fMP4 or
|
|
141
|
+
* - Initializing media capture (native fMP4 or Matroska+FFmpeg)
|
|
138
142
|
* - Navigating to the URL with retry
|
|
139
143
|
* - Setting up video playback via navigateToPage() + initializePlayback()
|
|
140
144
|
*
|
|
@@ -156,13 +160,18 @@ export async function createPageWithCapture(options) {
|
|
|
156
160
|
const page = await browser.newPage();
|
|
157
161
|
registerManagedPage(page);
|
|
158
162
|
await page.setBypassCSP(true);
|
|
163
|
+
// Inject the shared video selector helper into the browser context. This must happen before navigation so the helper is available when evaluate calls run during
|
|
164
|
+
// initializePlayback (startVideoPlayback, applyVideoStyles, verifyFullscreen, lockVolumeProperties) and subsequent health monitoring (getVideoState).
|
|
165
|
+
await injectVideoSelector(page);
|
|
159
166
|
// Install CDP manifest interceptor before navigation. This listener captures .m3u8 URLs from the browser's network requests, enabling native HLS streaming for
|
|
160
167
|
// providers that use clear or AES-128 encrypted streams. Skipped for tab replacements (native proxy is independent of capture) and for channels already known to
|
|
161
168
|
// use DRM (avoids 15 seconds of wasted CDP overhead per tune). The await ensures the CDP session and Network domain are ready before navigation begins.
|
|
162
169
|
const manifestInterception = (!options.tabReplacement && !options.skipManifestInterception) ? await installManifestInterceptor(page) : null;
|
|
163
170
|
// Select MIME type based on capture mode. FFmpeg mode is more stable for long recordings because Chrome's native fMP4 MediaRecorder can become unstable.
|
|
171
|
+
// When hardware HEVC encoding is available, prefer HEVC over H.264 for better compression at the same bitrate.
|
|
164
172
|
const useFFmpeg = CONFIG.streaming.captureMode === "ffmpeg";
|
|
165
|
-
const
|
|
173
|
+
const mkvMimeType = getGpuCapabilities()?.hevcHardwareEncoding ? MKV_HEVC_MIME_TYPE : MKV_H264_MIME_TYPE;
|
|
174
|
+
const captureMimeType = useFFmpeg ? mkvMimeType : NATIVE_FMP4_MIME_TYPE;
|
|
166
175
|
// Track the output stream that will be sent to the segmenter and FFmpeg process if used. Also track the raw capture stream separately - it must be destroyed
|
|
167
176
|
// before closing the page to ensure chrome.tabCapture releases the capture.
|
|
168
177
|
let outputStream;
|
|
@@ -175,6 +184,7 @@ export async function createPageWithCapture(options) {
|
|
|
175
184
|
const releaseCaptureOnce = () => {
|
|
176
185
|
if (!captureQueueReleased) {
|
|
177
186
|
captureQueueReleased = true;
|
|
187
|
+
captureQueueDepth--;
|
|
178
188
|
releaseCaptureQueue();
|
|
179
189
|
}
|
|
180
190
|
};
|
|
@@ -201,6 +211,10 @@ export async function createPageWithCapture(options) {
|
|
|
201
211
|
// concurrent initialization attempts. On success, the lock is released immediately so the next caller can proceed. On failure, the lock is held until the
|
|
202
212
|
// catch block decides what to do — the catch block releases the lock after handling the error.
|
|
203
213
|
const previousCapture = captureQueue;
|
|
214
|
+
captureQueueDepth++;
|
|
215
|
+
if (captureQueueDepth >= CAPTURE_QUEUE_DEPTH_WARNING) {
|
|
216
|
+
LOG.warn("Capture queue depth is %d. Multiple stream requests are competing for Chrome's capture initialization.", captureQueueDepth);
|
|
217
|
+
}
|
|
204
218
|
captureQueue = new Promise((resolve) => {
|
|
205
219
|
releaseCaptureQueue = resolve;
|
|
206
220
|
});
|
|
@@ -244,7 +258,7 @@ export async function createPageWithCapture(options) {
|
|
|
244
258
|
const stream = await Promise.race([streamPromise, timeoutPromise]);
|
|
245
259
|
// Store the raw capture stream. This must be destroyed before closing the page.
|
|
246
260
|
rawCaptureStream = stream;
|
|
247
|
-
// For FFmpeg mode, spawn FFmpeg to transcode the
|
|
261
|
+
// For FFmpeg mode, spawn FFmpeg to transcode the Matroska stream to fMP4. FFmpeg copies the H264 video and transcodes Opus audio to AAC.
|
|
248
262
|
if (useFFmpeg) {
|
|
249
263
|
const ffmpeg = spawnFFmpeg(CONFIG.streaming.audioBitsPerSecond, (error) => {
|
|
250
264
|
LOG.error("FFmpeg process error: %s.", formatError(error));
|
|
@@ -267,7 +281,7 @@ export async function createPageWithCapture(options) {
|
|
|
267
281
|
}
|
|
268
282
|
}
|
|
269
283
|
});
|
|
270
|
-
// Pipe the
|
|
284
|
+
// Pipe the Matroska capture stream to FFmpeg's stdin using pipeline() for proper cleanup. When FFmpeg is killed during tab replacement, pipeline() automatically
|
|
271
285
|
// destroys the source stream, preventing "write after end" errors that would occur with .pipe().
|
|
272
286
|
pipeline(stream, ffmpeg.stdin).catch((error) => {
|
|
273
287
|
const errorMessage = formatError(error);
|
|
@@ -328,9 +342,17 @@ export async function createPageWithCapture(options) {
|
|
|
328
342
|
// Phase 1: Navigate to the page with retry. The 10-second navigationTimeout is appropriate for page loads, and retryOperation correctly reloads the page on
|
|
329
343
|
// genuine navigation failures. Navigation is wrapped in retryOperation separately from channel selection so the timeout does not race with the internal click
|
|
330
344
|
// retry loops in channel selection strategies (guideGrid can take 15-20 seconds for binary search + click retries).
|
|
331
|
-
await retryOperation(
|
|
332
|
-
|
|
333
|
-
|
|
345
|
+
await retryOperation({
|
|
346
|
+
backoffJitter: CONFIG.recovery.backoffJitter,
|
|
347
|
+
description: "page navigation for " + navigationUrl,
|
|
348
|
+
maxAttempts: CONFIG.streaming.maxNavigationRetries,
|
|
349
|
+
maxBackoffDelay: CONFIG.recovery.maxBackoffDelay,
|
|
350
|
+
operation: async () => {
|
|
351
|
+
await navigateToPage(page, navigationUrl, profile);
|
|
352
|
+
},
|
|
353
|
+
shouldAbort: () => page.isClosed(),
|
|
354
|
+
timeoutMs: CONFIG.streaming.navigationTimeout
|
|
355
|
+
});
|
|
334
356
|
// Phase 2: Channel selection + video setup. When navigating to a cached direct URL, skip channel selection since the URL already targets the correct
|
|
335
357
|
// channel. Runs after navigation succeeds with no outer timeout racing against internal click retries. Each sub-step (selectChannel, waitForVideoReady,
|
|
336
358
|
// etc.) has its own internal timeout via videoTimeout and click retry constants. For guideGrid strategies, a channel selection failure triggers an overlay
|
|
@@ -551,7 +573,7 @@ export async function setupStream(options, onCircuitBreak) {
|
|
|
551
573
|
if (!rawCaptureStream.destroyed) {
|
|
552
574
|
rawCaptureStream.destroy();
|
|
553
575
|
}
|
|
554
|
-
// Kill the FFmpeg process if using
|
|
576
|
+
// Kill the FFmpeg process if using Matroska+FFmpeg mode.
|
|
555
577
|
if (ffmpegProcess) {
|
|
556
578
|
ffmpegProcess.kill();
|
|
557
579
|
}
|
|
@@ -645,7 +667,8 @@ async function attemptCaptureProbe(timeout) {
|
|
|
645
667
|
// Use the same capture MIME type and viewport constraints as the runtime. The stale state error occurs at the tabCapture API level before encoding matters,
|
|
646
668
|
// but matching the runtime configuration ensures the probe exercises the exact same getStream() parameters.
|
|
647
669
|
const useFFmpeg = CONFIG.streaming.captureMode === "ffmpeg";
|
|
648
|
-
const
|
|
670
|
+
const probeMkvMimeType = getGpuCapabilities()?.hevcHardwareEncoding ? MKV_HEVC_MIME_TYPE : MKV_H264_MIME_TYPE;
|
|
671
|
+
const captureMimeType = useFFmpeg ? probeMkvMimeType : NATIVE_FMP4_MIME_TYPE;
|
|
649
672
|
const streamOptions = {
|
|
650
673
|
audio: true,
|
|
651
674
|
mimeType: captureMimeType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/streaming/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/streaming/setup.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnK,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACtI,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAK5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,oFAAoF;AACpF,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAEhE,iKAAiK;AACjK,kKAAkK;AAClK,qHAAqH;AACrH,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,8CAA8C,CAAC;AAE1E,mKAAmK;AACnK,iKAAiK;AACjK,kDAAkD;AAClD,IAAI,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AACpD,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAE1B,yJAAyJ;AACzJ,mGAAmG;AACnG,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC,iKAAiK;AACjK,0DAA0D;AAC1D,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAiHlC;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAEzB,UAAU,CAAS;IACnB,WAAW,CAAS;IAEpC,YAAY,OAAe,EAAE,UAAkB,EAAE,WAAmB;QAElE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AA8DD,yBAAyB;AAEzB;;;;GAIG;AACH,SAAS,iBAAiB;IAExB,MAAM,KAAK,GAAG,sCAAsC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAExB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAA+B,EAAE,GAAuB;IAEvF,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,iHAAiH;IACjH,IAAG,WAAW,EAAE,CAAC;QAEf,OAAO,CAAE,WAAW,EAAE,GAAG,EAAE,SAAS,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,iEAAiE;IACjE,IAAG,GAAG,EAAE,CAAC;QAEP,OAAO,CAAE,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,6IAA6I;IAC7I,OAAO,CAAE,UAAU,EAAE,SAAS,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,kBAAkB;AAElB;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAuB;IAEvD,mEAAmE;IACnE,IAAG,CAAC,GAAG,EAAE,CAAC;QAER,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,gJAAgJ;QAChJ,+FAA+F;QAC/F,MAAM,gBAAgB,GAAG,CAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAE,CAAC;QAE1D,IAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE/C,OAAO,EAAE,MAAM,EAAE,CAAE,wBAAwB,EAAE,MAAM,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1F,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,OAAM,MAAM,EAAE,CAAC;QAEf,+FAA+F;QAC/F,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC;AACH,CAAC;AAED,6BAA6B;AAE7B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAqC;IAE/E,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IACpC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEnE,uBAAuB;IACvB,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAE9B,iKAAiK;IACjK,sJAAsJ;IACtJ,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEhC,+JAA+J;IAC/J,iKAAiK;IACjK,wJAAwJ;IACxJ,MAAM,oBAAoB,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5I,yJAAyJ;IACzJ,+GAA+G;IAC/G,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,KAAK,QAAQ,CAAC;IAC5D,MAAM,WAAW,GAAG,kBAAkB,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACzG,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAExE,6JAA6J;IAC7J,4EAA4E;IAC5E,IAAI,YAAsB,CAAC;IAC3B,IAAI,gBAAgB,GAAuB,IAAI,CAAC;IAChD,IAAI,aAAa,GAA4B,IAAI,CAAC;IAElD,6JAA6J;IAC7J,6GAA6G;IAC7G,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,IAAI,mBAAmB,GAAe,GAAG,EAAE,GAAoE,CAAC,CAAC;IAEjH,MAAM,kBAAkB,GAAG,GAAS,EAAE;QAEpC,IAAG,CAAC,oBAAoB,EAAE,CAAC;YAEzB,oBAAoB,GAAG,IAAI,CAAC;YAC5B,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,mCAAmC;IACnC,IAAI,CAAC;QAEH,MAAM,aAAa,GAAG;YAEpB,KAAK,EAAE,IAAI;YACX,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB;YACvD,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,IAAI;YACX,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB;YACvD,gBAAgB,EAAE;gBAEhB,SAAS,EAAE;oBAET,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM;oBAC9C,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK;oBAC5C,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACpE,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM;oBAC9C,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK;iBAC7C;aACF;SAC4C,CAAC;QAEhD,sJAAsJ;QACtJ,0JAA0J;QAC1J,+FAA+F;QAC/F,MAAM,eAAe,GAAG,YAAY,CAAC;QAErC,iBAAiB,EAAE,CAAC;QAEpB,IAAG,iBAAiB,IAAI,2BAA2B,EAAE,CAAC;YAEpD,GAAG,CAAC,IAAI,CAAC,wGAAwG,EAAE,iBAAiB,CAAC,CAAC;QACxI,CAAC;QAED,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAE3C,mBAAmB,GAAG,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,+JAA+J;QAC/J,iIAAiI;QACjI,IAAI,CAAC;YAEH,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,eAAe;gBACf,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAE/B,UAAU,CAAC,GAAG,EAAE;wBAEd,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBACrD,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;gBACzC,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,mFAAmF;YACnF,kBAAkB,EAAE,CAAC;YAErB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,uJAAuJ;QACvJ,wGAAwG;QACxG,IAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEnB,kBAAkB,EAAE,CAAC;YACrB,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAEnD,IAAG,UAAU,IAAI,uBAAuB,EAAE,CAAC;gBAEzC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACnF,CAAC;YAED,OAAO,MAAM,qBAAqB,CAAC,EAAE,GAAG,OAAO,EAAE,kBAAkB,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAErD,uJAAuJ;QACvJ,wEAAwE;QACxE,KAAK,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAA0F,CAAC,CAAC,CAAC;QAE3J,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAEtD,UAAU,CAAC,GAAG,EAAE;gBAEd,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YACxD,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,aAAa,EAAE,cAAc,CAAE,CAAC,CAAC;QAErE,gFAAgF;QAChF,gBAAgB,GAAG,MAA6B,CAAC;QAEjD,yIAAyI;QACzI,IAAG,SAAS,EAAE,CAAC;YAEb,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAExE,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE3D,IAAG,aAAa,EAAE,CAAC;oBAEjB,aAAa,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEtB,aAAa,GAAG,MAAM,CAAC;YAEvB,8EAA8E;YAC9E,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAElC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBAExC,IAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAElC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,YAAY,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBAEN,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAC;oBACzD,MAAM,CAAC,IAAI,EAAE,CAAC;oBAEd,IAAG,aAAa,EAAE,CAAC;wBAEjB,aAAa,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,iKAAiK;YACjK,iGAAiG;YACjG,QAAQ,CAAC,MAA6B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAE7E,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBAExC,+IAA+I;gBAC/I,IAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAE1H,OAAO;gBACT,CAAC;gBAED,8CAA8C;gBAC9C,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;gBACvD,MAAM,CAAC,IAAI,EAAE,CAAC;gBAEd,IAAG,aAAa,EAAE,CAAC;oBAEjB,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,2EAA2E;YAC3E,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,CAAC;aAAM,CAAC;YAEN,8HAA8H;YAC9H,YAAY,GAAG,gBAAgB,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,qIAAqI;QACrI,IAAG,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEnD,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAA+C,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAExC,2JAA2J;QAC3J,0JAA0J;QAC1J,oIAAoI;QACpI,IAAG,YAAY,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;YAEvE,GAAG,CAAC,KAAK,CAAC,0IAA0I;gBAClJ,uEAAuE,CAAC,CAAC;YAE3E,kBAAkB,EAAE,CAAC;YAErB,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAEvC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,qFAAqF;QACrF,kBAAkB,EAAE,CAAC;QAErB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,yFAAyF;IACzF,IAAI,OAAqB,CAAC;IAC1B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC;QAEH,IAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAEpB,uJAAuJ;YACvJ,iIAAiI;YACjI,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAExD,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC;YAE5B,MAAM,aAAa,GAAG,SAAS,IAAI,GAAG,CAAC;YAEvC,4JAA4J;YAC5J,8JAA8J;YAC9J,oHAAoH;YACpH,MAAM,cAAc,CAAC;gBAEnB,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;gBAC5C,WAAW,EAAE,sBAAsB,GAAG,aAAa;gBACnD,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB;gBAClD,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe;gBAChD,SAAS,EAAE,KAAK,IAAmB,EAAE;oBAEnC,MAAM,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gBACrD,CAAC;gBACD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB;aAC9C,CAAC,CAAC;YAEH,qJAAqJ;YACrJ,wJAAwJ;YACxJ,2JAA2J;YAC3J,sJAAsJ;YACtJ,uEAAuE;YACvE,MAAM,qBAAqB,GAAG,KAAK,CAAC;YAEpC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBACpC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;gBAChD,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAE/B,UAAU,CAAC,GAAG,EAAE;wBAEd,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,GAAG,MAAM,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACxG,CAAC,EAAE,qBAAqB,CAAC,CAAC;gBAC5B,CAAC,CAAC;aACH,CAAC,CAAC;YAEH,kBAAkB,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;YACpD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC/B,CAAC;aAAM,CAAC;YAEN,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,wGAAwG;QACxG,IAAG,aAAa,EAAE,CAAC;YAEjB,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,oJAAoJ;QACpJ,IAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAE/B,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,IAAG,aAAa,EAAE,CAAC;YAEjB,aAAa,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAED,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAA+C,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,yJAAyJ;QACzJ,8DAA8D;QAC9D,qBAAqB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgD,CAAC,CAAC,CAAC;QAEtF,MAAM,KAAK,CAAC;IACd,CAAC;IAED,8JAA8J;IAC9J,8IAA8I;IAC9I,IAAG,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE9C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,8BAA8B;IAC9B,MAAM,uBAAuB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,uCAAuC,EAAE,cAAc,EAAE,CAAC,CAAC;IAEvF,OAAO;QAEL,aAAa,EAAE,YAAY;QAC3B,OAAO;QACP,UAAU,EAAE,aAAa,IAAI,kBAAkB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;QACtF,aAAa;QACb,oBAAoB;QACpB,IAAI;QACJ,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,2BAA2B;AAE3B;;;;;;;;GAQG;AACH,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAE3C,IAAI,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/F,OAAO,QAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gBAAgB;AAEhB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,cAA0B;IAEvF,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAE9I,+JAA+J;IAC/J,uGAAuG;IACvG,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,eAAe,EAAE,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAE7B,yJAAyJ;IACzJ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEnD,6JAA6J;IAC7J,kJAAkJ;IAClJ,IAAI,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEpF,IAAG,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAE3C,MAAM,YAAY,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC;QAEzC,IAAG,YAAY,EAAE,CAAC;YAEhB,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAG,WAAW,IAAI,CAAC,WAAW,KAAK,YAAY,CAAC,EAAE,CAAC;gBAEjD,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAErD,IAAG,cAAc,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBAE5C,aAAa,GAAG,cAAc,CAAC;oBAE/B,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,wDAAwD,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;gBAChJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACpC,IAAI,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAE5C,wDAAwD;IACxD,OAAO,oBAAoB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE;QAEpF,uCAAuC;QACvC,IAAG,eAAe,EAAE,CAAC;YAEnB,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAG,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAE3C,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC1C,WAAW,GAAG,eAAe,CAAC;gBAE9B,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,eAAe,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBAEN,GAAG,CAAC,IAAI,CAAC,wDAAwD,EAAE,eAAe,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAG,OAAO,EAAE,CAAC;YAEX,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,6JAA6J;QAC7J,sJAAsJ;QACtJ,IAAG,eAAe,EAAE,CAAC;YAEnB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,CAAC;QAC5C,CAAC;QAED,2JAA2J;QAC3J,mIAAmI;QACnI,IAAG,WAAW,IAAI,aAAa,EAAE,CAAC;YAEhC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3F,CAAC;QAED,+IAA+I;QAC/I,MAAM,eAAe,GAAG,OAAO,EAAE,IAAI,IAAI,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QAE3E,oGAAoG;QACpG,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAEjD,sJAAsJ;QACtJ,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5I,gBAAgB;QAChB,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAErB,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC;YAExF,MAAM,IAAI,gBAAgB,CACxB,CAAE,eAAe,EAAE,UAAU,CAAC,MAAM,IAAI,eAAe,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAClE,GAAG,EACH,UAAU,CAAC,MAAM,IAAI,cAAc,CACpC,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,IAAG,cAAc,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;YAE7D,GAAG,CAAC,IAAI,CAAC,6DAA6D,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAEjI,MAAM,IAAI,gBAAgB,CACxB,kCAAkC,EAClC,GAAG,EACH,CAAE,8BAA8B,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,6BAA6B,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC1H,CAAC;QACJ,CAAC;QAED,mKAAmK;QACnK,IAAI,aAA0C,CAAC;QAE/C,IAAI,CAAC;YAEH,0JAA0J;YAC1J,+CAA+C;YAC/C,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE5F,aAAa,GAAG,MAAM,qBAAqB,CAAC;gBAE1C,OAAO,EAAE,eAAe;gBACxB,aAAa,EAAE,cAAc;gBAC7B,OAAO;gBACP,wBAAwB,EAAE,gBAAgB;gBAC1C,QAAQ;gBACR,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,wFAAwF;YACxF,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAEvH,IAAG,CAAC,QAAQ,EAAE,CAAC;gBAEb,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YAClE,CAAC;YAED,4JAA4J;YAC5J,2GAA2G;YAC3G,MAAM,oBAAoB,GAAG,CAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,CAAE,CAAC;YAChF,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAE9F,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC;QAE1H,mIAAmI;QACnI,MAAM,iBAAiB,GAAsB;YAE3C,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI;YAClC,eAAe;YACf,YAAY;YACZ,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW;YAC9C,SAAS;SACV,CAAC;QAEF,4CAA4C;QAC5C,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAEtI,iHAAiH;QACjH,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YAExC,IAAG,gBAAgB,EAAE,CAAC;gBAEpB,OAAO;YACT,CAAC;YAED,gBAAgB,GAAG,IAAI,CAAC;YAExB,iCAAiC;YACjC,WAAW,EAAE,CAAC;YAEd,wJAAwJ;YACxJ,wJAAwJ;YACxJ,IAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;gBAE/B,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAED,yDAAyD;YACzD,IAAG,aAAa,EAAE,CAAC;gBAEjB,aAAa,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAED,iCAAiC;YACjC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE5B,6EAA6E;YAC7E,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAEpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBAEpC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3F,CAAC,CAAC,CAAC;YACL,CAAC;YAED,kCAAkC;YAClC,MAAM,qBAAqB,EAAE,CAAC;QAChC,CAAC,CAAC;QAEF,2BAA2B;QAC3B,OAAO;YAEL,aAAa;YACb,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI;YAClC,OAAO;YACP,UAAU;YACV,aAAa;YACb,oBAAoB;YACpB,eAAe;YACf,IAAI;YACJ,OAAO;YACP,WAAW;YACX,YAAY;YACZ,gBAAgB;YAChB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,GAAG;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gCAAgC;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IAEvC,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC/B,MAAM,aAAa,GAAG,IAAI,CAAC;IAE3B,KAAI,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;QAE9D,8IAA8I;QAC9I,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAExD,mBAAmB;QACnB,IAAG,MAAM,KAAK,IAAI,EAAE,CAAC;YAEnB,OAAO;QACT,CAAC;QAED,yJAAyJ;QACzJ,0JAA0J;QAC1J,gCAAgC;QAChC,IAAG,MAAM,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;YAEjE,GAAG,CAAC,KAAK,CAAC,0IAA0I;gBAClJ,gDAAgD,CAAC,CAAC;YAEpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gFAAgF;QAChF,IAAG,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAEhC,GAAG,CAAC,IAAI,CAAC,6DAA6D,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;YAEvI,mGAAmG;YACnG,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YAEN,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,aAAa,GAAG,MAAM,CAAC,CAAC;QACrH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAAC,OAAe;IAEhD,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE1B,IAAI,CAAC;QAEH,4JAA4J;QAC5J,4GAA4G;QAC5G,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,KAAK,QAAQ,CAAC;QAC5D,MAAM,gBAAgB,GAAG,kBAAkB,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC9G,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAE7E,MAAM,aAAa,GAAG;YAEpB,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,IAAI;YACX,gBAAgB,EAAE;gBAEhB,SAAS,EAAE;oBAET,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM;oBAC9C,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK;oBAC5C,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM;oBAC9C,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK;iBAC7C;aACF;SAC4C,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC;YAC9B,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAE/B,UAAU,CAAC,GAAG,EAAE;oBAEd,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBAChD,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,qJAAqJ;QACrJ,MAAM,QAAQ,GAAG,MAA6B,CAAC;QAE/C,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEnB,mJAAmJ;QACnJ,0JAA0J;QAC1J,mHAAmH;QACnH,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjB,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAExC,0BAA0B;QAC1B,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAA+C,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -33,12 +33,6 @@ export declare function getShowName(streamId: number): string;
|
|
|
33
33
|
* @param streamId - The stream ID to clear.
|
|
34
34
|
*/
|
|
35
35
|
export declare function clearShowName(streamId: number): void;
|
|
36
|
-
/**
|
|
37
|
-
* Gets the cached logo URL for a channel.
|
|
38
|
-
* @param channelKey - The channel key to look up (e.g., "cnn").
|
|
39
|
-
* @returns The logo URL if known, undefined otherwise.
|
|
40
|
-
*/
|
|
41
|
-
export declare function getChannelLogo(channelKey: string): string | undefined;
|
|
42
36
|
/**
|
|
43
37
|
* Gets device channel mappings for a DVR host, refreshing the cache if needed.
|
|
44
38
|
* @param host - The DVR server hostname or IP address.
|
|
@@ -52,3 +46,10 @@ export declare function getDeviceMappings(host: string): Promise<Map<string, Map
|
|
|
52
46
|
* @returns Array of results, empty array on any error.
|
|
53
47
|
*/
|
|
54
48
|
export declare function fetchFromDvr<T>(host: string, path: string): Promise<T[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Triggers a single-channel logo lookup via TMS station name search. Called when a channel is added or edited with a station ID. Fire-and-forget - the logo
|
|
51
|
+
* appears on the next page load after the search completes.
|
|
52
|
+
* @param channelName - The channel display name to search for.
|
|
53
|
+
* @param stationId - The Gracenote station ID for the channel.
|
|
54
|
+
*/
|
|
55
|
+
export declare function updateChannelLogo(channelName: string, stationId: string): void;
|