prismcast 1.6.0 → 1.8.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/app.js +9 -8
- package/dist/app.js.map +1 -1
- 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 +196 -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 +4 -2
- package/dist/channels/index.js +2261 -800
- package/dist/channels/index.js.map +1 -1
- package/dist/config/health.js +30 -17
- package/dist/config/health.js.map +1 -1
- package/dist/config/index.js +37 -63
- package/dist/config/index.js.map +1 -1
- package/dist/config/profiles.js +10 -10
- package/dist/config/profiles.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 +133 -104
- 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 +108 -7
- package/dist/config/userChannels.js +374 -44
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +3 -1
- package/dist/config/userConfig.js +31 -19
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.js +27 -39
- package/dist/config/userProfiles.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/hdhr/discover.js +7 -15
- package/dist/hdhr/discover.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 +16 -25
- 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/assets.js +26 -48
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/channels.js +5 -11
- package/dist/routes/channels.js.map +1 -1
- package/dist/routes/components.d.ts +43 -8
- package/dist/routes/components.js +122 -19
- 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 +749 -71
- package/dist/routes/config/channels/routes.js.map +1 -1
- package/dist/routes/config/channels/table.d.ts +93 -2
- package/dist/routes/config/channels/table.js +594 -104
- 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 +76 -102
- package/dist/routes/config/providers.js.map +1 -1
- package/dist/routes/config/settings.js +57 -36
- package/dist/routes/config/settings.js.map +1 -1
- package/dist/routes/icons.d.ts +16 -0
- package/dist/routes/icons.js +44 -0
- package/dist/routes/icons.js.map +1 -0
- 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/playlist.d.ts +6 -4
- package/dist/routes/playlist.js +68 -27
- package/dist/routes/playlist.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 +96 -40
- 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 +955 -310
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/config.js +695 -569
- 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 +437 -0
- package/dist/routes/root/scripts/shared.js.map +1 -0
- package/dist/routes/root/scripts/status.js +33 -24
- package/dist/routes/root/scripts/status.js.map +1 -1
- package/dist/routes/root/styles.js +157 -11
- package/dist/routes/root/styles.js.map +1 -1
- package/dist/routes/ui.d.ts +1 -1
- package/dist/routes/ui.js +1 -1
- package/dist/routes/ui.js.map +1 -1
- package/dist/service/commands.js +4 -35
- package/dist/service/commands.js.map +1 -1
- package/dist/streaming/codec.d.ts +20 -0
- package/dist/streaming/codec.js +68 -0
- package/dist/streaming/codec.js.map +1 -0
- 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 +274 -188
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +9 -3
- package/dist/streaming/hlsResume.js +15 -8
- 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 +41 -20
- package/dist/streaming/preroll.js +157 -76
- 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 +3 -3
- package/dist/streaming/setup.js +38 -22
- 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 +34 -0
- package/dist/types/config.d.ts +3 -2
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.js +1 -0
- 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/types/streaming.d.ts +7 -15
- package/dist/types/streaming.js +5 -1
- package/dist/types/streaming.js.map +1 -1
- package/dist/upgrade/commands.js +1 -16
- package/dist/upgrade/commands.js.map +1 -1
- package/dist/utils/cliOutput.d.ts +10 -0
- package/dist/utils/cliOutput.js +17 -0
- package/dist/utils/cliOutput.js.map +1 -0
- 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 +20 -3
- package/dist/utils/format.js +32 -6
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -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 +8 -26
- 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
package/dist/utils/format.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Formats a duration
|
|
2
|
+
* Formats a duration as a human-readable string. The format varies based on duration length:
|
|
3
3
|
* - Less than 60 seconds: "17s"
|
|
4
4
|
* - Less than 1 hour: "6m 39s"
|
|
5
5
|
* - 1 hour or more: "1h 23m"
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* Zero-value trailing components are omitted (e.g., exactly 2 minutes returns "2m", not "2m 0s").
|
|
8
|
+
* @param value - Duration value.
|
|
9
|
+
* @param unit - The unit of the value: "ms" (default) or "s".
|
|
7
10
|
* @returns Formatted duration string.
|
|
8
11
|
*/
|
|
9
|
-
export declare function formatDuration(
|
|
12
|
+
export declare function formatDuration(value: number, unit?: "ms" | "s"): string;
|
|
10
13
|
/**
|
|
11
14
|
* Formats a Unix millisecond timestamp as a human-readable relative time string (e.g., "2 minutes ago", "3 hours ago", "5 days ago"). Used for health indicator
|
|
12
15
|
* tooltips where absolute timestamps would be harder to interpret at a glance.
|
|
@@ -21,3 +24,17 @@ export declare function formatTimeAgo(timestamp: number): string;
|
|
|
21
24
|
* @returns The concise domain, or the original URL if parsing fails.
|
|
22
25
|
*/
|
|
23
26
|
export declare function extractDomain(url: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Capitalizes the first letter of a string.
|
|
29
|
+
* @param str - The string to capitalize.
|
|
30
|
+
* @returns The string with the first letter capitalized.
|
|
31
|
+
*/
|
|
32
|
+
export declare function capitalize(str: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Serializes a value to JSON with all object keys sorted alphabetically at every depth. This ensures consistent, diff-friendly output for all persisted JSON
|
|
35
|
+
* files and exported JSON responses. Array element order is preserved.
|
|
36
|
+
* @param data - The value to serialize.
|
|
37
|
+
* @param indent - Number of spaces for indentation (default: 2). Pass 0 for compact output.
|
|
38
|
+
* @returns The JSON string.
|
|
39
|
+
*/
|
|
40
|
+
export declare function stringifySorted(data: unknown, indent?: number): string;
|
package/dist/utils/format.js
CHANGED
|
@@ -3,23 +3,26 @@
|
|
|
3
3
|
* format.ts: Formatting utilities for PrismCast.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Formats a duration
|
|
6
|
+
* Formats a duration as a human-readable string. The format varies based on duration length:
|
|
7
7
|
* - Less than 60 seconds: "17s"
|
|
8
8
|
* - Less than 1 hour: "6m 39s"
|
|
9
9
|
* - 1 hour or more: "1h 23m"
|
|
10
|
-
*
|
|
10
|
+
*
|
|
11
|
+
* Zero-value trailing components are omitted (e.g., exactly 2 minutes returns "2m", not "2m 0s").
|
|
12
|
+
* @param value - Duration value.
|
|
13
|
+
* @param unit - The unit of the value: "ms" (default) or "s".
|
|
11
14
|
* @returns Formatted duration string.
|
|
12
15
|
*/
|
|
13
|
-
export function formatDuration(ms) {
|
|
14
|
-
const totalSeconds = Math.round(
|
|
16
|
+
export function formatDuration(value, unit = "ms") {
|
|
17
|
+
const totalSeconds = unit === "ms" ? Math.round(value / 1000) : value;
|
|
15
18
|
const hours = Math.floor(totalSeconds / 3600);
|
|
16
19
|
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
17
20
|
const seconds = totalSeconds % 60;
|
|
18
21
|
if (hours > 0) {
|
|
19
|
-
return [String(hours), "h ", String(minutes), "m"].join("");
|
|
22
|
+
return minutes > 0 ? [String(hours), "h ", String(minutes), "m"].join("") : [String(hours), "h"].join("");
|
|
20
23
|
}
|
|
21
24
|
if (minutes > 0) {
|
|
22
|
-
return [String(minutes), "m ", String(seconds), "s"].join("");
|
|
25
|
+
return seconds > 0 ? [String(minutes), "m ", String(seconds), "s"].join("") : [String(minutes), "m"].join("");
|
|
23
26
|
}
|
|
24
27
|
return [String(seconds), "s"].join("");
|
|
25
28
|
}
|
|
@@ -65,4 +68,27 @@ export function extractDomain(url) {
|
|
|
65
68
|
return url;
|
|
66
69
|
}
|
|
67
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Capitalizes the first letter of a string.
|
|
73
|
+
* @param str - The string to capitalize.
|
|
74
|
+
* @returns The string with the first letter capitalized.
|
|
75
|
+
*/
|
|
76
|
+
export function capitalize(str) {
|
|
77
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Serializes a value to JSON with all object keys sorted alphabetically at every depth. This ensures consistent, diff-friendly output for all persisted JSON
|
|
81
|
+
* files and exported JSON responses. Array element order is preserved.
|
|
82
|
+
* @param data - The value to serialize.
|
|
83
|
+
* @param indent - Number of spaces for indentation (default: 2). Pass 0 for compact output.
|
|
84
|
+
* @returns The JSON string.
|
|
85
|
+
*/
|
|
86
|
+
export function stringifySorted(data, indent = 2) {
|
|
87
|
+
return JSON.stringify(data, (_key, value) => {
|
|
88
|
+
if (value && (typeof value === "object") && !Array.isArray(value)) {
|
|
89
|
+
return Object.fromEntries(Object.entries(value).sort(([a], [b]) => a.localeCompare(b)));
|
|
90
|
+
}
|
|
91
|
+
return value;
|
|
92
|
+
}, indent);
|
|
93
|
+
}
|
|
68
94
|
//# sourceMappingURL=format.js.map
|
package/dist/utils/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./chromeFetch.js";
|
|
2
|
+
export * from "./cliOutput.js";
|
|
2
3
|
export * from "./debugFilter.js";
|
|
3
4
|
export * from "./delay.js";
|
|
4
5
|
export * from "./errors.js";
|
|
@@ -15,4 +16,5 @@ export * from "./platform.js";
|
|
|
15
16
|
export * from "./retry.js";
|
|
16
17
|
export * from "./sanitize.js";
|
|
17
18
|
export * from "./streamContext.js";
|
|
19
|
+
export * from "./timing.js";
|
|
18
20
|
export * from "./version.js";
|
package/dist/utils/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* index.ts: Utility module exports for PrismCast.
|
|
4
4
|
*/
|
|
5
5
|
export * from "./chromeFetch.js";
|
|
6
|
+
export * from "./cliOutput.js";
|
|
6
7
|
export * from "./debugFilter.js";
|
|
7
8
|
export * from "./delay.js";
|
|
8
9
|
export * from "./errors.js";
|
|
@@ -19,5 +20,6 @@ export * from "./platform.js";
|
|
|
19
20
|
export * from "./retry.js";
|
|
20
21
|
export * from "./sanitize.js";
|
|
21
22
|
export * from "./streamContext.js";
|
|
23
|
+
export * from "./timing.js";
|
|
22
24
|
export * from "./version.js";
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/dist/utils/logEmitter.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
*
|
|
3
3
|
* logEmitter.ts: Event emitter for real-time log streaming via SSE.
|
|
4
4
|
*/
|
|
5
|
-
import { EventEmitter } from "events";
|
|
5
|
+
import { EventEmitter } from "node:events";
|
|
6
6
|
/* A singleton EventEmitter that broadcasts log entries to all subscribed SSE clients. When a log entry is written via LOG.info/warn/error, the entry is emitted here
|
|
7
7
|
* for real-time streaming to connected browsers.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEmitter.js","sourceRoot":"","sources":["../../src/utils/logEmitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"logEmitter.js","sourceRoot":"","sources":["../../src/utils/logEmitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc3C;;GAEG;AAEH,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAEtC,oJAAoJ;AACpJ,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAe;IAE1C,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAmC;IAEjE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE/B,OAAO,GAAS,EAAE;QAEhB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/utils/retry.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for retryOperation. Groups all parameters into a single object to avoid positional parameter sprawl and make the function extensible.
|
|
3
|
+
*/
|
|
4
|
+
export interface RetryOptions<T> {
|
|
5
|
+
backoffJitter?: number;
|
|
6
|
+
description: string;
|
|
7
|
+
earlySuccessCheck?: () => Promise<boolean>;
|
|
8
|
+
maxAttempts: number;
|
|
9
|
+
maxBackoffDelay?: number;
|
|
10
|
+
operation: () => Promise<T>;
|
|
11
|
+
shouldAbort?: () => boolean;
|
|
12
|
+
timeoutMs: number;
|
|
13
|
+
}
|
|
1
14
|
/**
|
|
2
15
|
* Implements a generic retry mechanism with exponential backoff and jitter. This function attempts an operation multiple times, waiting progressively longer between
|
|
3
16
|
* attempts to avoid overwhelming failing services. The exponential backoff with jitter prevents thundering herd problems where many clients retry simultaneously.
|
|
4
|
-
* @param
|
|
5
|
-
* @param maxAttempts - Maximum number of attempts before giving up.
|
|
6
|
-
* @param timeoutMs - Timeout in milliseconds for each individual attempt.
|
|
7
|
-
* @param description - Human-readable description for logging purposes.
|
|
8
|
-
* @param earlySuccessCheck - Optional async function called after timeout errors. If it returns a truthy value, that value is returned as success instead of
|
|
9
|
-
* retrying. Useful for cases where the operation succeeded but took too long.
|
|
10
|
-
* @param shouldAbort - Optional function called before each attempt. If it returns true, retries are aborted immediately. Useful for checking if the page was closed
|
|
11
|
-
* during the backoff delay.
|
|
17
|
+
* @param options - Retry configuration including the operation, attempt limits, timeouts, and optional backoff tuning.
|
|
12
18
|
* @returns The result of the operation if successful.
|
|
13
19
|
* @throws The last error encountered if all attempts fail.
|
|
14
20
|
*/
|
|
15
|
-
export declare function retryOperation<T>(
|
|
21
|
+
export declare function retryOperation<T>(options: RetryOptions<T>): Promise<T | undefined>;
|
package/dist/utils/retry.js
CHANGED
|
@@ -2,28 +2,18 @@
|
|
|
2
2
|
*
|
|
3
3
|
* retry.ts: Retry logic with exponential backoff for PrismCast.
|
|
4
4
|
*/
|
|
5
|
+
import { delay, raceWithTimeout } from "./delay.js";
|
|
5
6
|
import { formatError, isSessionClosedError } from "./errors.js";
|
|
6
|
-
import { CONFIG } from "../config/index.js";
|
|
7
7
|
import { LOG } from "./logger.js";
|
|
8
|
-
/* The retry system provides resilient operation execution with exponential backoff and jitter. When operations fail due to transient issues like network hiccups or
|
|
9
|
-
* slow page loads, the system automatically retries with increasing delays. The exponential backoff prevents overwhelming struggling services, while jitter prevents
|
|
10
|
-
* multiple clients from synchronizing their retry attempts.
|
|
11
|
-
*/
|
|
12
8
|
/**
|
|
13
9
|
* Implements a generic retry mechanism with exponential backoff and jitter. This function attempts an operation multiple times, waiting progressively longer between
|
|
14
10
|
* attempts to avoid overwhelming failing services. The exponential backoff with jitter prevents thundering herd problems where many clients retry simultaneously.
|
|
15
|
-
* @param
|
|
16
|
-
* @param maxAttempts - Maximum number of attempts before giving up.
|
|
17
|
-
* @param timeoutMs - Timeout in milliseconds for each individual attempt.
|
|
18
|
-
* @param description - Human-readable description for logging purposes.
|
|
19
|
-
* @param earlySuccessCheck - Optional async function called after timeout errors. If it returns a truthy value, that value is returned as success instead of
|
|
20
|
-
* retrying. Useful for cases where the operation succeeded but took too long.
|
|
21
|
-
* @param shouldAbort - Optional function called before each attempt. If it returns true, retries are aborted immediately. Useful for checking if the page was closed
|
|
22
|
-
* during the backoff delay.
|
|
11
|
+
* @param options - Retry configuration including the operation, attempt limits, timeouts, and optional backoff tuning.
|
|
23
12
|
* @returns The result of the operation if successful.
|
|
24
13
|
* @throws The last error encountered if all attempts fail.
|
|
25
14
|
*/
|
|
26
|
-
export async function retryOperation(
|
|
15
|
+
export async function retryOperation(options) {
|
|
16
|
+
const { backoffJitter = 1000, description, earlySuccessCheck, maxAttempts, maxBackoffDelay = 3000, operation, shouldAbort, timeoutMs } = options;
|
|
27
17
|
let lastError = null;
|
|
28
18
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
29
19
|
// Check if we should abort before starting this attempt. This catches cases where the page was closed during the backoff delay between retries.
|
|
@@ -34,14 +24,8 @@ export async function retryOperation(operation, maxAttempts, timeoutMs, descript
|
|
|
34
24
|
LOG.debug("retry", "Retrying %s (attempt %s of %s).", description, attempt, maxAttempts);
|
|
35
25
|
}
|
|
36
26
|
try {
|
|
37
|
-
// Race the operation against a timeout to prevent hanging on operations that never complete.
|
|
38
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
39
|
-
setTimeout(() => {
|
|
40
|
-
reject(new Error(["Operation timed out after ", String(timeoutMs), "ms."].join("")));
|
|
41
|
-
}, timeoutMs);
|
|
42
|
-
});
|
|
43
27
|
// eslint-disable-next-line no-await-in-loop
|
|
44
|
-
return await
|
|
28
|
+
return await raceWithTimeout(operation(), timeoutMs);
|
|
45
29
|
}
|
|
46
30
|
catch (error) {
|
|
47
31
|
lastError = error;
|
|
@@ -68,12 +52,10 @@ export async function retryOperation(operation, maxAttempts, timeoutMs, descript
|
|
|
68
52
|
LOG.warn("Attempt %s failed for %s: %s", attempt, description, formatError(error));
|
|
69
53
|
// Between retry attempts, wait with exponential backoff plus random jitter.
|
|
70
54
|
if (attempt < maxAttempts) {
|
|
71
|
-
const baseDelay = Math.min(1000 * Math.pow(2, attempt - 1),
|
|
72
|
-
const jitter = Math.random() *
|
|
55
|
+
const baseDelay = Math.min(1000 * Math.pow(2, attempt - 1), maxBackoffDelay);
|
|
56
|
+
const jitter = Math.random() * backoffJitter;
|
|
73
57
|
// eslint-disable-next-line no-await-in-loop
|
|
74
|
-
await
|
|
75
|
-
setTimeout(resolve, baseDelay + jitter);
|
|
76
|
-
});
|
|
58
|
+
await delay(baseDelay + jitter);
|
|
77
59
|
}
|
|
78
60
|
}
|
|
79
61
|
}
|
package/dist/utils/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAuClC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAI,OAAwB;IAE9D,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEjJ,IAAI,SAAS,GAAY,IAAI,CAAC;IAE9B,KAAI,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QAEvD,gJAAgJ;QAChJ,IAAG,WAAW,EAAE,EAAE,EAAE,CAAC;YAEnB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,IAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YAEf,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,iCAAiC,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC;YAEH,4CAA4C;YAC5C,OAAO,MAAM,eAAe,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,SAAS,GAAG,KAAK,CAAC;YAElB,8HAA8H;YAC9H,IAAG,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAE/B,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,2CAA2C,EAAE,WAAW,CAAC,CAAC;gBAE7E,MAAM,KAAK,CAAC;YACd,CAAC;YAED,6JAA6J;YAC7J,gKAAgK;YAChK,IAAG,iBAAiB,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAEjE,IAAI,CAAC;oBAEH,4CAA4C;oBAC5C,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAC;oBAEhD,IAAG,aAAa,EAAE,CAAC;wBAEjB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAAC,OAAM,WAAW,EAAE,CAAC;oBAEpB,yDAAyD;gBAC3D,CAAC;YACH,CAAC;YAED,oIAAoI;YACpI,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnF,4EAA4E;YAC5E,IAAG,OAAO,GAAG,WAAW,EAAE,CAAC;gBAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;gBAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC;gBAE7C,4CAA4C;gBAC5C,MAAM,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a lightweight elapsed-time closure using performance.now(). Call the returned function to get the elapsed milliseconds since creation.
|
|
3
|
+
* @returns A closure that returns elapsed milliseconds as a number.
|
|
4
|
+
*/
|
|
5
|
+
export declare function startTimer(): () => number;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* Copyright(C) 2024-2026, HJD (https://github.com/hjdhjd). All rights reserved.
|
|
2
|
+
*
|
|
3
|
+
* timing.ts: Timing measurement utilities for PrismCast.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Creates a lightweight elapsed-time closure using performance.now(). Call the returned function to get the elapsed milliseconds since creation.
|
|
7
|
+
* @returns A closure that returns elapsed milliseconds as a number.
|
|
8
|
+
*/
|
|
9
|
+
export function startTimer() {
|
|
10
|
+
const start = performance.now();
|
|
11
|
+
return () => Math.round(performance.now() - start);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=timing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../src/utils/timing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,UAAU;IAExB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,OAAO,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;AAC7D,CAAC"}
|
package/dist/utils/version.js
CHANGED
|
@@ -84,7 +84,7 @@ export async function fetchLatestVersion() {
|
|
|
84
84
|
return latest ? normalizeVersion(latest) : null;
|
|
85
85
|
}
|
|
86
86
|
catch (error) {
|
|
87
|
-
LOG.debug("config", "Failed to fetch latest version from npm: %s.", formatError(error));
|
|
87
|
+
LOG.debug("config:general", "Failed to fetch latest version from npm: %s.", formatError(error));
|
|
88
88
|
return null;
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -101,7 +101,7 @@ async function fetchChangelogContent() {
|
|
|
101
101
|
return await response.text();
|
|
102
102
|
}
|
|
103
103
|
catch (error) {
|
|
104
|
-
LOG.debug("config", "Failed to fetch changelog from GitHub: %s.", formatError(error));
|
|
104
|
+
LOG.debug("config:general", "Failed to fetch changelog from GitHub: %s.", formatError(error));
|
|
105
105
|
return null;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prismcast",
|
|
3
3
|
"displayName": "PrismCast",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0",
|
|
5
5
|
"description": "Browser-based live TV capture server for Channels DVR, Plex, and other streaming clients.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "HJD",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"compression": "^1.8.1",
|
|
67
67
|
"console-stamp": "3.1.2",
|
|
68
68
|
"express": "5.2.1",
|
|
69
|
-
"ffmpeg-for-homebridge": "2.2.
|
|
69
|
+
"ffmpeg-for-homebridge": "2.2.2",
|
|
70
70
|
"morgan": "1.10.1",
|
|
71
|
-
"puppeteer-core": "24.
|
|
71
|
+
"puppeteer-core": "24.40.0",
|
|
72
72
|
"puppeteer-stream": "3.0.21"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
@@ -79,10 +79,10 @@
|
|
|
79
79
|
"@types/morgan": "1.9.10",
|
|
80
80
|
"@types/node": "25.5.0",
|
|
81
81
|
"eslint": "9.39.2",
|
|
82
|
-
"homebridge-plugin-utils": "1.
|
|
82
|
+
"homebridge-plugin-utils": "1.33.0",
|
|
83
83
|
"nodemon": "3.1.14",
|
|
84
84
|
"shx": "0.4.0",
|
|
85
85
|
"typescript": "5.9.3",
|
|
86
|
-
"typescript-eslint": "8.
|
|
86
|
+
"typescript-eslint": "8.58.0"
|
|
87
87
|
}
|
|
88
88
|
}
|