prismcast 1.3.3 → 1.4.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.d.ts +3 -2
- package/dist/app.js +32 -17
- package/dist/app.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +3 -2
- package/dist/browser/channelSelection.js +43 -19
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/index.d.ts +9 -13
- package/dist/browser/index.js +65 -75
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/tuning/hulu.js +613 -13
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/sling.js +1 -1
- package/dist/browser/tuning/thumbnailRow.js +69 -71
- package/dist/browser/tuning/thumbnailRow.js.map +1 -1
- package/dist/browser/tuning/tileClick.js +111 -77
- package/dist/browser/tuning/tileClick.js.map +1 -1
- package/dist/browser/tuning/youtubeTv.js +5 -5
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +3 -10
- package/dist/browser/video.js +91 -10
- package/dist/browser/video.js.map +1 -1
- package/dist/config/index.d.ts +9 -3
- package/dist/config/index.js +28 -28
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.d.ts +41 -0
- package/dist/config/paths.js +88 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/providers.js +1 -1
- package/dist/config/sites.js +30 -13
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +1 -1
- package/dist/config/userChannels.js +10 -13
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +14 -7
- package/dist/config/userConfig.js +59 -34
- package/dist/config/userConfig.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +187 -25
- package/dist/index.js.map +1 -1
- package/dist/routes/config.js +15 -7
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/debug.js +41 -6
- package/dist/routes/debug.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.js +3 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/logs.js +3 -3
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/playlist.d.ts +2 -2
- package/dist/routes/playlist.js +11 -9
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/root.js +149 -6
- package/dist/routes/root.js.map +1 -1
- package/dist/routes/theme.js +4 -0
- package/dist/routes/theme.js.map +1 -1
- package/dist/routes/ui.js +2 -0
- package/dist/routes/ui.js.map +1 -1
- package/dist/routes/upgrade.d.ts +6 -0
- package/dist/routes/upgrade.js +68 -0
- package/dist/routes/upgrade.js.map +1 -0
- package/dist/service/commands.js +9 -7
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.js +10 -15
- package/dist/service/generators.js.map +1 -1
- package/dist/streaming/fmp4Segmenter.d.ts +28 -0
- package/dist/streaming/fmp4Segmenter.js +140 -47
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.js +3 -1
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/lifecycle.js +13 -6
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/mp4Parser.d.ts +19 -10
- package/dist/streaming/mp4Parser.js +39 -29
- package/dist/streaming/mp4Parser.js.map +1 -1
- package/dist/streaming/setup.d.ts +2 -0
- package/dist/streaming/setup.js +4 -1
- package/dist/streaming/setup.js.map +1 -1
- package/dist/types/index.d.ts +10 -7
- package/dist/types/index.js.map +1 -1
- package/dist/upgrade/commands.d.ts +6 -0
- package/dist/upgrade/commands.js +210 -0
- package/dist/upgrade/commands.js.map +1 -0
- package/dist/upgrade/detection.d.ts +15 -0
- package/dist/upgrade/detection.js +75 -0
- package/dist/upgrade/detection.js.map +1 -0
- package/dist/upgrade/index.d.ts +2 -0
- package/dist/upgrade/index.js +7 -0
- package/dist/upgrade/index.js.map +1 -0
- package/dist/utils/fileLogger.d.ts +2 -1
- package/dist/utils/fileLogger.js +10 -8
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/m3u.js +1 -7
- package/dist/utils/m3u.js.map +1 -1
- package/dist/utils/platform.d.ts +8 -2
- package/dist/utils/platform.js +26 -6
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/version.d.ts +18 -0
- package/dist/utils/version.js +3 -3
- package/dist/utils/version.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { getConfigFilePath, getDataDir } from "./paths.js";
|
|
1
2
|
import { LOG } from "../utils/index.js";
|
|
2
3
|
import fs from "node:fs";
|
|
3
4
|
import { getValidPresetIds } from "./presets.js";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
import path from "node:path";
|
|
6
5
|
const { promises: fsPromises } = fs;
|
|
7
6
|
/**
|
|
8
7
|
* Metadata for all configurable settings, organized by category.
|
|
@@ -116,6 +115,23 @@ export const CONFIG_METADATA = {
|
|
|
116
115
|
unit: "bytes"
|
|
117
116
|
}
|
|
118
117
|
],
|
|
118
|
+
paths: [
|
|
119
|
+
{
|
|
120
|
+
description: "Absolute path override for Chrome's user data directory. When set, Chrome profile data is stored at this path instead of the default " +
|
|
121
|
+
"location inside the data directory. Useful for placing Chrome data on a different volume.",
|
|
122
|
+
envVar: "PRISMCAST_CHROME_DATA_DIR",
|
|
123
|
+
label: "Chrome Data Directory",
|
|
124
|
+
path: "paths.chromeDataDir",
|
|
125
|
+
type: "path"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
description: "Absolute path override for the log file. When set, logs are written to this path instead of the default location inside the data directory.",
|
|
129
|
+
envVar: "PRISMCAST_LOG_FILE",
|
|
130
|
+
label: "Log File Path",
|
|
131
|
+
path: "paths.logFile",
|
|
132
|
+
type: "path"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
119
135
|
playback: [
|
|
120
136
|
{
|
|
121
137
|
description: "Grace period for buffering before declaring a stall. Prevents false positives from brief network hiccups.",
|
|
@@ -442,17 +458,8 @@ export const CONFIG_METADATA = {
|
|
|
442
458
|
}
|
|
443
459
|
]
|
|
444
460
|
};
|
|
445
|
-
/* The config file is
|
|
446
|
-
*/
|
|
447
|
-
const dataDir = path.join(os.homedir(), ".prismcast");
|
|
448
|
-
const configFilePath = path.join(dataDir, "config.json");
|
|
449
|
-
/**
|
|
450
|
-
* Returns the path to the user configuration file.
|
|
451
|
-
* @returns The absolute path to ~/.prismcast/config.json.
|
|
461
|
+
/* The config file path is resolved via the centralized paths module (config/paths.ts). The data directory is initialized at startup before config loading.
|
|
452
462
|
*/
|
|
453
|
-
export function getConfigFilePath() {
|
|
454
|
-
return configFilePath;
|
|
455
|
-
}
|
|
456
463
|
/* These functions handle reading and writing the config file. All operations are async and handle errors gracefully.
|
|
457
464
|
*/
|
|
458
465
|
/**
|
|
@@ -462,14 +469,14 @@ export function getConfigFilePath() {
|
|
|
462
469
|
*/
|
|
463
470
|
export async function loadUserConfig() {
|
|
464
471
|
try {
|
|
465
|
-
const content = await fsPromises.readFile(
|
|
472
|
+
const content = await fsPromises.readFile(getConfigFilePath(), "utf-8");
|
|
466
473
|
try {
|
|
467
474
|
const config = JSON.parse(content);
|
|
468
475
|
return { config, parseError: false };
|
|
469
476
|
}
|
|
470
477
|
catch (parseError) {
|
|
471
478
|
const message = (parseError instanceof Error) ? parseError.message : String(parseError);
|
|
472
|
-
LOG.warn("Invalid JSON in configuration file %s: %s. Using defaults.",
|
|
479
|
+
LOG.warn("Invalid JSON in configuration file %s: %s. Using defaults.", getConfigFilePath(), message);
|
|
473
480
|
return { config: {}, parseError: true, parseErrorMessage: message };
|
|
474
481
|
}
|
|
475
482
|
}
|
|
@@ -479,7 +486,7 @@ export async function loadUserConfig() {
|
|
|
479
486
|
return { config: {}, parseError: false };
|
|
480
487
|
}
|
|
481
488
|
// Other read errors - log and use defaults.
|
|
482
|
-
LOG.warn("Failed to read configuration file %s: %s. Using defaults.",
|
|
489
|
+
LOG.warn("Failed to read configuration file %s: %s. Using defaults.", getConfigFilePath(), (error instanceof Error) ? error.message : String(error));
|
|
483
490
|
return { config: {}, parseError: false };
|
|
484
491
|
}
|
|
485
492
|
}
|
|
@@ -490,11 +497,11 @@ export async function loadUserConfig() {
|
|
|
490
497
|
*/
|
|
491
498
|
export async function saveUserConfig(config) {
|
|
492
499
|
// Ensure data directory exists.
|
|
493
|
-
await fsPromises.mkdir(
|
|
500
|
+
await fsPromises.mkdir(getDataDir(), { recursive: true });
|
|
494
501
|
// Write config with pretty formatting for readability.
|
|
495
502
|
const content = JSON.stringify(config, null, 2);
|
|
496
|
-
await fsPromises.writeFile(
|
|
497
|
-
LOG.info("Configuration saved to %s.",
|
|
503
|
+
await fsPromises.writeFile(getConfigFilePath(), content + "\n", "utf-8");
|
|
504
|
+
LOG.info("Configuration saved to %s.", getConfigFilePath());
|
|
498
505
|
}
|
|
499
506
|
/* These functions detect which settings are overridden by environment variables, so the UI can disable those fields and show appropriate warnings.
|
|
500
507
|
*/
|
|
@@ -540,12 +547,15 @@ export const DEFAULTS = {
|
|
|
540
547
|
segmentDuration: 2
|
|
541
548
|
},
|
|
542
549
|
logging: {
|
|
550
|
+
debugFilter: "",
|
|
543
551
|
httpLogLevel: "errors",
|
|
544
552
|
maxSize: 1048576
|
|
545
553
|
},
|
|
546
554
|
paths: {
|
|
555
|
+
chromeDataDir: null,
|
|
547
556
|
chromeProfileName: "chromedata",
|
|
548
|
-
extensionDirName: "extension"
|
|
557
|
+
extensionDirName: "extension",
|
|
558
|
+
logFile: null
|
|
549
559
|
},
|
|
550
560
|
playback: {
|
|
551
561
|
bufferingGracePeriod: 10000,
|
|
@@ -582,7 +592,7 @@ export const DEFAULTS = {
|
|
|
582
592
|
navigationTimeout: 10000,
|
|
583
593
|
qualityPreset: "720p-high",
|
|
584
594
|
videoBitsPerSecond: 12000000,
|
|
585
|
-
videoTimeout:
|
|
595
|
+
videoTimeout: 11000
|
|
586
596
|
}
|
|
587
597
|
};
|
|
588
598
|
/**
|
|
@@ -607,10 +617,13 @@ function parseEnvValue(value, type) {
|
|
|
607
617
|
const num = parseInt(value, 10);
|
|
608
618
|
return Number.isNaN(num) ? undefined : num;
|
|
609
619
|
}
|
|
610
|
-
case "host":
|
|
611
|
-
case "path": {
|
|
620
|
+
case "host": {
|
|
612
621
|
return value;
|
|
613
622
|
}
|
|
623
|
+
case "path": {
|
|
624
|
+
// An empty path env var means "use default" — return null so the downstream code sees the same sentinel as an unset config field.
|
|
625
|
+
return (value.trim() === "") ? null : value;
|
|
626
|
+
}
|
|
614
627
|
default: {
|
|
615
628
|
return value;
|
|
616
629
|
}
|
|
@@ -652,11 +665,13 @@ export function setNestedValue(obj, settingPath, value) {
|
|
|
652
665
|
current[parts[parts.length - 1]] = value;
|
|
653
666
|
}
|
|
654
667
|
/**
|
|
655
|
-
* Merges user configuration with defaults and
|
|
668
|
+
* Merges user configuration with defaults, environment overrides, and CLI overrides to produce the final configuration.
|
|
669
|
+
* Priority (highest to lowest): CLI overrides > env vars > user config > defaults.
|
|
656
670
|
* @param userConfig - User configuration from the config file.
|
|
671
|
+
* @param cliOverrides - Optional CLI flag overrides, applied at the highest priority level.
|
|
657
672
|
* @returns The merged configuration.
|
|
658
673
|
*/
|
|
659
|
-
export function mergeConfiguration(userConfig) {
|
|
674
|
+
export function mergeConfiguration(userConfig, cliOverrides) {
|
|
660
675
|
// Start with a deep copy of defaults.
|
|
661
676
|
const config = JSON.parse(JSON.stringify(DEFAULTS));
|
|
662
677
|
// Apply user config values.
|
|
@@ -681,7 +696,10 @@ export function mergeConfiguration(userConfig) {
|
|
|
681
696
|
if ((typeof userConfig.hdhr?.deviceId === "string") && (userConfig.hdhr.deviceId.length > 0)) {
|
|
682
697
|
config.hdhr.deviceId = userConfig.hdhr.deviceId;
|
|
683
698
|
}
|
|
684
|
-
|
|
699
|
+
if ((typeof userConfig.logging?.debugFilter === "string") && (userConfig.logging.debugFilter.length > 0)) {
|
|
700
|
+
config.logging.debugFilter = userConfig.logging.debugFilter;
|
|
701
|
+
}
|
|
702
|
+
// Apply environment variable overrides.
|
|
685
703
|
for (const settings of Object.values(CONFIG_METADATA)) {
|
|
686
704
|
for (const setting of settings) {
|
|
687
705
|
const envValue = setting.envVar ? process.env[setting.envVar] : undefined;
|
|
@@ -693,6 +711,14 @@ export function mergeConfiguration(userConfig) {
|
|
|
693
711
|
}
|
|
694
712
|
}
|
|
695
713
|
}
|
|
714
|
+
// Apply CLI overrides (highest priority). These are already parsed values keyed by CONFIG_METADATA paths.
|
|
715
|
+
if (cliOverrides) {
|
|
716
|
+
for (const [overridePath, value] of Object.entries(cliOverrides)) {
|
|
717
|
+
if (value !== undefined) {
|
|
718
|
+
setNestedValue(config, overridePath, value);
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
696
722
|
return config;
|
|
697
723
|
}
|
|
698
724
|
/* The settings "promoted" to the main Settings tab, organized into visual sections. These are the options most users might actually change. Everything else goes to
|
|
@@ -725,6 +751,7 @@ const SETTINGS_TAB_SECTIONS = [
|
|
|
725
751
|
const ADVANCED_SECTION_META = [
|
|
726
752
|
{ category: "hls", displayName: "HLS" },
|
|
727
753
|
{ category: "logging", displayName: "Logging" },
|
|
754
|
+
{ category: "paths", displayName: "Paths" },
|
|
728
755
|
{ category: "playback", displayName: "Playback" },
|
|
729
756
|
{ category: "recovery", displayName: "Recovery" },
|
|
730
757
|
{ category: "streaming", displayName: "Streaming" }
|
|
@@ -758,9 +785,7 @@ export function getSettingsTabSections() {
|
|
|
758
785
|
return SETTINGS_TAB_SECTIONS.map((section) => ({
|
|
759
786
|
displayName: section.displayName,
|
|
760
787
|
id: section.id,
|
|
761
|
-
settings: section.paths
|
|
762
|
-
.map((p) => getSettingByPath(p))
|
|
763
|
-
.filter((s) => s !== undefined)
|
|
788
|
+
settings: section.paths.map((p) => getSettingByPath(p)).filter((s) => s !== undefined)
|
|
764
789
|
}));
|
|
765
790
|
}
|
|
766
791
|
/**
|
|
@@ -771,14 +796,10 @@ export function getUITabs() {
|
|
|
771
796
|
// Derive settings tab paths from sections.
|
|
772
797
|
const settingsTabPaths = SETTINGS_TAB_SECTIONS.flatMap((s) => s.paths);
|
|
773
798
|
// Build Settings tab from sections.
|
|
774
|
-
const settingsTabSettings = settingsTabPaths
|
|
775
|
-
.map((p) => getSettingByPath(p))
|
|
776
|
-
.filter((s) => s !== undefined);
|
|
799
|
+
const settingsTabSettings = settingsTabPaths.map((p) => getSettingByPath(p)).filter((s) => s !== undefined);
|
|
777
800
|
// Build Advanced tab from everything not in Settings.
|
|
778
801
|
const advancedPaths = getAllSettingPaths().filter((p) => !settingsTabPaths.includes(p));
|
|
779
|
-
const advancedSettings = advancedPaths
|
|
780
|
-
.map((p) => getSettingByPath(p))
|
|
781
|
-
.filter((s) => s !== undefined);
|
|
802
|
+
const advancedSettings = advancedPaths.map((p) => getSettingByPath(p)).filter((s) => s !== undefined);
|
|
782
803
|
return [
|
|
783
804
|
{
|
|
784
805
|
description: "Configure common server and streaming options.",
|
|
@@ -907,6 +928,10 @@ export function filterDefaults(config) {
|
|
|
907
928
|
if ((typeof configDeviceId === "string") && (configDeviceId.length > 0)) {
|
|
908
929
|
setNestedValue(filtered, "hdhr.deviceId", configDeviceId);
|
|
909
930
|
}
|
|
931
|
+
const configDebugFilter = getNestedValue(config, "logging.debugFilter");
|
|
932
|
+
if ((typeof configDebugFilter === "string") && (configDebugFilter.length > 0)) {
|
|
933
|
+
setNestedValue(filtered, "logging.debugFilter", configDebugFilter);
|
|
934
|
+
}
|
|
910
935
|
// Remove any empty nested objects that resulted from filtering.
|
|
911
936
|
return removeEmptyObjects(filtered);
|
|
912
937
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userConfig.js","sourceRoot":"","sources":["../../src/config/userConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAqEpC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsC;IAEhE,OAAO,EAAE;QACP;YAEE,WAAW,EAAE,uDAAuD;YACpE,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,wBAAwB;YAC/B,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,MAAM;SACb;QACD;YAEE,WAAW,EAAE,kIAAkI;gBAC7I,gEAAgE;YAClE,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,sBAAsB;YAC9B,KAAK,EAAE,sBAAsB;YAC7B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;KACF;IAED,IAAI,EAAE;QACJ;YAEE,WAAW,EAAE,uIAAuI;gBAClJ,gJAAgJ;gBAChJ,iDAAiD;YACnD,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE,4IAA4I;YACzJ,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,gBAAgB;YACvB,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM;SACb;QACD;YAEE,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE,+GAA+G;YAC5H,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,QAAQ;SACf;KACF;IAED,GAAG,EAAE;QACH;YAEE,WAAW,EAAE,8FAA8F;YAC3G,MAAM,EAAE,sBAAsB;YAC9B,KAAK,EAAE,kBAAkB;YACzB,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,wFAAwF;YACrG,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,8FAA8F;YAC3G,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;KACF;IAED,OAAO,EAAE;QACP;YAEE,WAAW,EAAE,4IAA4I;gBACvJ,6DAA6D;YAC/D,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,CAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAE;SACrD;QACD;YAEE,WAAW,EAAE,oHAAoH;YACjI,cAAc,EAAE,OAAO;YACvB,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;SACd;KACF;IAED,QAAQ,EAAE;QACR;YAEE,WAAW,EAAE,2GAA2G;YACxH,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,wBAAwB;YAChC,KAAK,EAAE,wBAAwB;YAC/B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,oEAAoE;YACjF,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,wBAAwB;YAChC,KAAK,EAAE,wBAAwB;YAC/B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,qFAAqF;YAClG,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,sBAAsB;YAC9B,KAAK,EAAE,sBAAsB;YAC7B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,6BAA6B;YACnC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,8HAA8H;gBACzI,iCAAiC;YACnC,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,qBAAqB;YAC7B,KAAK,EAAE,qBAAqB;YAC5B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,6EAA6E;YAC1F,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,mBAAmB;YAC3B,KAAK,EAAE,mBAAmB;YAC1B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,0GAA0G;YACvH,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,kBAAkB;YACzB,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,qGAAqG;YAClH,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,kBAAkB;YACzB,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,+FAA+F;YAC5G,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,oBAAoB;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,gEAAgE;YAC7E,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,qBAAqB;YAC7B,KAAK,EAAE,qBAAqB;YAC5B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,wDAAwD;YACrE,MAAM,EAAE,uBAAuB;YAC/B,KAAK,EAAE,uBAAuB;YAC9B,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,iFAAiF;YAC9F,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,iBAAiB;YACxB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,kGAAkG;YAC/G,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,6BAA6B;YACrC,KAAK,EAAE,6BAA6B;YACpC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,oCAAoC;YAC1C,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;KACF;IAED,QAAQ,EAAE;QACR;YAEE,WAAW,EAAE,2EAA2E;YACxF,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,gBAAgB;YACvB,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,yEAAyE;YACtF,MAAM,EAAE,2BAA2B;YACnC,KAAK,EAAE,2BAA2B;YAClC,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,kCAAkC;YACxC,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,2DAA2D;YACxE,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,wBAAwB;YAChC,KAAK,EAAE,wBAAwB;YAC/B,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,oFAAoF;YACjG,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,mBAAmB;YAC3B,KAAK,EAAE,mBAAmB;YAC1B,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,yFAAyF;YACtG,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,6BAA6B;YACrC,KAAK,EAAE,6BAA6B;YACpC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,mCAAmC;YACzC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,wGAAwG;YACrH,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,yBAAyB;YACjC,KAAK,EAAE,yBAAyB;YAChC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;KACF;IAED,MAAM,EAAE;QACN;YAEE,WAAW,EAAE,+FAA+F;YAC5G,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,MAAM;SACb;QACD;YAEE,WAAW,EAAE,4EAA4E;YACzF,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,MAAM;SACb;KACF;IAED,SAAS,EAAE;QACT;YAEE,WAAW,EAAE,oIAAoI;gBAC/I,iFAAiF;YACnF,cAAc,EAAE,iIAAiI;gBAC/I,mHAAmH;YACrH,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,CAAE,QAAQ,EAAE,QAAQ,CAAE;SACpC;QACD;YAEE,WAAW,EAAE,wGAAwG;YACrH,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iBAAiB,EAAE;SACjC;QACD;YAEE,WAAW,EAAE,kIAAkI;YAC/I,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,eAAe;YACtB,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;SACZ;QACD;YAEE,WAAW,EAAE,gFAAgF;YAC7F,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;SACZ;QACD;YAEE,WAAW,EAAE,6EAA6E;YAC1F,MAAM,EAAE,wBAAwB;YAChC,KAAK,EAAE,wBAAwB;YAC/B,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,qDAAqD;YAClE,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,wBAAwB;YAC/B,GAAG,EAAE,EAAE;YACP,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,SAAS;SAChB;QACD;YAEE,WAAW,EAAE,yEAAyE;YACtF,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,oBAAoB;YAC3B,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,6BAA6B;YACnC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;QACD;YAEE,WAAW,EAAE,6HAA6H;YAC1I,cAAc,EAAE,OAAO;YACvB,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,eAAe;YACtB,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;SACZ;QACD;YAEE,WAAW,EAAE,6DAA6D;YAC1E,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,eAAe;YACtB,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,IAAI;YACT,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;SACX;KACF;CACF,CAAC;AA+IF;GACG;AAEH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACtD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAE/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;GACG;AAEH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAElC,IAAI,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEnE,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;YAEjD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAAC,OAAM,UAAU,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,CAAC,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAExF,GAAG,CAAC,IAAI,CAAC,4DAA4D,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAEhG,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,qDAAqD;QACrD,IAAI,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAEtD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC3C,CAAC;QAED,4CAA4C;QAC5C,GAAG,CAAC,IAAI,CAAC,2DAA2D,EAAE,cAAc,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhJ,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAkB;IAErD,gCAAgC;IAChC,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErD,uDAAuD;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAM,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAEpE,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAED;GACG;AAEH;;;GAGG;AACH,MAAM,UAAU,eAAe;IAE7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAI,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAErD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1E,IAAG,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAE1B,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;GACG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAW;IAE9B,OAAO,EAAE;QAEP,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,IAAI;KAClB;IAED,QAAQ,EAAE;QAER,kBAAkB,EAAE,EAAE;QACtB,gBAAgB,EAAE,EAAE;KACrB;IAED,IAAI,EAAE;QAEJ,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,IAAI;KACX;IAED,GAAG,EAAE;QAEH,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC;KACnB;IAED,OAAO,EAAE;QAEP,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,OAAO;KACjB;IAED,KAAK,EAAE;QAGL,iBAAiB,EAAE,YAAY;QAC/B,gBAAgB,EAAE,WAAW;KAC9B;IAED,QAAQ,EAAE;QAGR,oBAAoB,EAAE,KAAK;QAC3B,oBAAoB,EAAE,IAAI;QAC1B,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,IAAI;QACtB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,MAAM;QACxB,iBAAiB,EAAE,IAAI;QACvB,mBAAmB,EAAE,CAAC;QACtB,cAAc,EAAE,GAAG;QACnB,yBAAyB,EAAE,KAAK;KACjC;IAED,QAAQ,EAAE;QAGR,aAAa,EAAE,IAAI;QACnB,uBAAuB,EAAE,EAAE;QAC3B,oBAAoB,EAAE,MAAM;QAC5B,eAAe,EAAE,IAAI;QACrB,wBAAwB,EAAE,KAAK;QAC/B,oBAAoB,EAAE,KAAK;KAC5B;IAED,MAAM,EAAE;QAGN,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;KACX;IAED,SAAS,EAAE;QAET,kBAAkB,EAAE,MAAM;QAC1B,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,EAAE;QACxB,oBAAoB,EAAE,CAAC;QACvB,iBAAiB,EAAE,KAAK;QACxB,aAAa,EAAE,WAAW;QAC1B,kBAAkB,EAAE,QAAQ;QAC5B,YAAY,EAAE,KAAK;KACpB;CACF,CAAC;AAEF;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAa,EAAE,IAA6B;IAEjE,QAAO,IAAI,EAAE,CAAC;QAEZ,KAAK,SAAS,CAAC,CAAC,CAAC;YAEf,yDAAyD;YACzD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAElC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YAEb,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAE9B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,CAAC;QAED,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YAEZ,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEhC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7C,CAAC;QAED,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YAEZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YAER,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,WAAmB;IAE9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAExB,IAAG,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;YAElF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAA4B,EAAE,WAAmB,EAAE,KAAc;IAE9F,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,GAAG,CAAC;IAElB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAE3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAG,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAE/B,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAsB;IAEvD,sCAAsC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAW,CAAC;IAE9D,4BAA4B;IAC5B,KAAI,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAErD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAE9B,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3D,IAAG,SAAS,KAAK,SAAS,EAAE,CAAC;gBAE3B,cAAc,CAAC,MAA4C,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAE1D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACnF,CAAC;IAED,IAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAExD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED,IAAG,CAAC,OAAO,UAAU,CAAC,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAE5F,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,2DAA2D;IAC3D,KAAI,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAErD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1E,IAAG,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAE1B,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAE1D,IAAG,WAAW,KAAK,SAAS,EAAE,CAAC;oBAE7B,cAAc,CAAC,MAA4C,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA6DD;;GAEG;AACH,MAAM,qBAAqB,GAA2D;IAEpF;QAEE,WAAW,EAAE,QAAQ;QACrB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,CAAE,aAAa,EAAE,aAAa,CAAE;KACxC;IACD;QAEE,WAAW,EAAE,SAAS;QACtB,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,CAAE,wBAAwB,EAAE,qBAAqB,CAAE;KAC3D;IACD;QAEE,WAAW,EAAE,SAAS;QACtB,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,CAAE,uBAAuB,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,qBAAqB,CAAE;KACrJ;IACD;QAEE,WAAW,EAAE,kBAAkB;QAC/B,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,CAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,CAAE;KAC5D;CACF,CAAC;AAEF;GACG;AACH,MAAM,qBAAqB,GAAgD;IAEzE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACvC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;IAC/C,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;IACjD,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;IACjD,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;CACpD,CAAC;AAEF;;;GAGG;AACH,SAAS,kBAAkB;IAEzB,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAElD,KAAI,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAE3D,IAAG,KAAK,EAAE,CAAC;YAET,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IAEpC,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE7C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,KAAK;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;KACxD,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IAEvB,2CAA2C;IAC3C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEvE,oCAAoC;IACpC,MAAM,mBAAmB,GAAG,gBAAgB;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAExD,sDAAsD;IACtD,MAAM,aAAa,GAAG,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,gBAAgB,GAAG,aAAa;SACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAExD,OAAO;QACL;YAEE,WAAW,EAAE,gDAAgD;YAC7D,WAAW,EAAE,UAAU;YACvB,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,mBAAmB;SAC9B;QACD;YAEE,WAAW,EAAE,gEAAgE;YAC7E,WAAW,EAAE,UAAU;YACvB,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,gBAAgB;SAC3B;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAEjC,2CAA2C;IAC3C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEvE,2DAA2D;IAC3D,MAAM,aAAa,GAAG,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExF,0CAA0C;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,KAAI,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAG,OAAO,EAAE,CAAC;YAEX,IAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAE7B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,OAAO,qBAAqB;SACzB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEd,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,EAAE,EAAE,IAAI,CAAC,QAAQ;QACjB,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;KAC9C,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;GAEG;AAEH;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,GAA4B;IAEtD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAI,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAElC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvB,oCAAoC;QACpC,IAAG,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAE5E,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAgC,CAAC,CAAC;YAErE,mDAAmD;YACnD,IAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAEnC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YAEN,mCAAmC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,YAAqB;IAEpE,+BAA+B;IAC/B,IAAG,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;QAE7C,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,IAAG,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE,CAAC;QAE3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mIAAmI;IACnI,OAAO,MAAM,CAAC,KAAkC,CAAC,KAAK,MAAM,CAAC,YAAyC,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB;IAE/C,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,mFAAmF;IACnF,KAAI,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAErD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAE9B,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAEnD,yDAAyD;YACzD,IAAG,KAAK,KAAK,SAAS,EAAE,CAAC;gBAEvB,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5D,sDAAsD;YACtD,IAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;gBAE1C,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,EAAE,6BAA6B,CAAyB,CAAC;IAE7G,IAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAEhF,cAAc,CAAC,QAAQ,EAAE,6BAA6B,EAAE,sBAAsB,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,EAAE,2BAA2B,CAAyB,CAAC;IAE3G,IAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAEhF,cAAc,CAAC,QAAQ,EAAE,2BAA2B,EAAE,sBAAsB,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAuB,CAAC;IAErF,IAAG,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAEvE,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,gEAAgE;IAChE,OAAO,kBAAkB,CAAC,QAAQ,CAAe,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"userConfig.js","sourceRoot":"","sources":["../../src/config/userConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Result of parsing command-line arguments. CLI flags have the highest priority in the configuration merge order.
|
|
3
|
+
*/
|
|
4
|
+
export interface ParsedArgs {
|
|
5
|
+
chromeDataDir?: string;
|
|
6
|
+
consoleLogging: boolean;
|
|
7
|
+
dataDir?: string;
|
|
8
|
+
debugLogging: boolean;
|
|
9
|
+
logFile?: string;
|
|
10
|
+
port?: number;
|
|
11
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* index.ts: Entry point for PrismCast.
|
|
4
4
|
*/
|
|
5
5
|
import { LOG, formatError, getPackageVersion, initDebugFilter, setDebugLogging } from "./utils/index.js";
|
|
6
|
-
import { CONFIG } from "./config/index.js";
|
|
7
6
|
import { flushLogBufferSync } from "./utils/fileLogger.js";
|
|
8
7
|
import { handleServiceCommand } from "./service/index.js";
|
|
8
|
+
import { initializeDataDir } from "./config/paths.js";
|
|
9
9
|
import { killStaleChrome } from "./browser/index.js";
|
|
10
|
+
import path from "node:path";
|
|
10
11
|
import { startServer } from "./app.js";
|
|
11
12
|
/* These handlers catch unhandled promise rejections and uncaught exceptions to prevent the process from crashing. For a livestreaming server, process stability is
|
|
12
13
|
* critical - a single unhandled error should not terminate all active streams. The handlers log the error and allow the process to continue. Individual stream
|
|
@@ -28,38 +29,158 @@ function printUsage() {
|
|
|
28
29
|
console.log("Usage: prismcast [command] [options]");
|
|
29
30
|
console.log("");
|
|
30
31
|
console.log("Commands:");
|
|
31
|
-
console.log(" service
|
|
32
|
-
console.log("
|
|
32
|
+
console.log(" service Manage PrismCast as a system service");
|
|
33
|
+
console.log(" Run 'prismcast service --help' for details");
|
|
34
|
+
console.log(" upgrade Upgrade PrismCast to the latest version");
|
|
35
|
+
console.log(" Run 'prismcast upgrade --help' for details");
|
|
33
36
|
console.log("");
|
|
34
37
|
console.log("Options:");
|
|
35
|
-
console.log(" -c, --console
|
|
36
|
-
console.log(" -d, --debug
|
|
37
|
-
console.log(" -h, --help
|
|
38
|
-
console.log(" -p, --port <port>
|
|
39
|
-
console.log(" -v, --version
|
|
38
|
+
console.log(" -c, --console Log to console instead of file (for Docker or debugging)");
|
|
39
|
+
console.log(" -d, --debug Enable debug logging (verbose output for troubleshooting)");
|
|
40
|
+
console.log(" -h, --help Show this help message");
|
|
41
|
+
console.log(" -p, --port <port> Set server port (default: 5589)");
|
|
42
|
+
console.log(" -v, --version Show version number");
|
|
43
|
+
console.log(" --chrome-data-dir <path> Set Chrome profile data directory (default: <data-dir>/chromedata)");
|
|
44
|
+
console.log(" --data-dir <path> Set data directory (default: ~/.prismcast)");
|
|
45
|
+
console.log(" --list-env List all environment variables");
|
|
46
|
+
console.log(" --log-file <path> Set log file path (default: <data-dir>/prismcast.log)");
|
|
40
47
|
console.log("");
|
|
41
48
|
console.log("If no command is specified, starts the PrismCast server.");
|
|
42
49
|
console.log("");
|
|
43
|
-
console.log("Environment Variables:");
|
|
44
|
-
console.log("
|
|
45
|
-
console.log("
|
|
46
|
-
console.log("
|
|
47
|
-
console.log("
|
|
48
|
-
console.log("
|
|
49
|
-
console.log("
|
|
50
|
-
console.log("
|
|
51
|
-
console.log("
|
|
52
|
-
console.log("
|
|
50
|
+
console.log("Common Environment Variables:");
|
|
51
|
+
console.log(" AUDIO_BITRATE Audio bitrate (bps)");
|
|
52
|
+
console.log(" CAPTURE_MODE Capture mode: ffmpeg (recommended) or native");
|
|
53
|
+
console.log(" CHROME_BIN Path to Chrome executable");
|
|
54
|
+
console.log(" FRAME_RATE Target frame rate");
|
|
55
|
+
console.log(" HOST HTTP server bind address");
|
|
56
|
+
console.log(" LOG_MAX_SIZE Maximum log file size in bytes (default: 1048576)");
|
|
57
|
+
console.log(" PORT HTTP server port");
|
|
58
|
+
console.log(" PRISMCAST_CHROME_DATA_DIR Chrome profile data directory path");
|
|
59
|
+
console.log(" PRISMCAST_DATA_DIR Data directory path (default: ~/.prismcast)");
|
|
60
|
+
console.log(" PRISMCAST_DEBUG Debug category filter (e.g., 'tuning:hulu', 'recovery', '*,-streaming:segmenter')");
|
|
61
|
+
console.log(" PRISMCAST_LOG_FILE Log file path");
|
|
62
|
+
console.log(" QUALITY_PRESET Video quality preset (480p, 720p, 720p-high, 1080p, 1080p-high, 4k)");
|
|
63
|
+
console.log(" VIDEO_BITRATE Video bitrate (bps)");
|
|
64
|
+
console.log("");
|
|
65
|
+
console.log(" Run 'prismcast --list-env' for a complete list of all environment variables.");
|
|
66
|
+
/* eslint-enable no-console */
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Prints a complete listing of all environment variables organized by category. Generates output dynamically from CONFIG_METADATA so it is always accurate. Uses a
|
|
70
|
+
* dynamic import to avoid the circular dependency: index.ts -> config/userConfig.js -> utils/index.js -> utils/retry.js -> config/index.js -> config/userConfig.js.
|
|
71
|
+
*/
|
|
72
|
+
async function printEnvironmentVariables() {
|
|
73
|
+
const { CONFIG_METADATA, DEFAULTS, getNestedValue } = await import("./config/userConfig.js");
|
|
74
|
+
/* eslint-disable no-console */
|
|
75
|
+
// Category ordering: server first (most commonly configured), then alphabetical, with Special last.
|
|
76
|
+
const categoryOrder = [
|
|
77
|
+
{ displayName: "Server", key: "server" },
|
|
78
|
+
{ displayName: "Browser", key: "browser" },
|
|
79
|
+
{ displayName: "HDHomeRun", key: "hdhr" },
|
|
80
|
+
{ displayName: "HLS", key: "hls" },
|
|
81
|
+
{ displayName: "Logging", key: "logging" },
|
|
82
|
+
{ displayName: "Paths", key: "paths" },
|
|
83
|
+
{ displayName: "Playback", key: "playback" },
|
|
84
|
+
{ displayName: "Recovery", key: "recovery" },
|
|
85
|
+
{ displayName: "Streaming", key: "streaming" }
|
|
86
|
+
];
|
|
87
|
+
// Dynamic default descriptions for null path settings that resolve at runtime rather than from DEFAULTS.
|
|
88
|
+
const dynamicDefaults = {
|
|
89
|
+
"browser.executablePath": "autodetect",
|
|
90
|
+
"paths.chromeDataDir": "<data-dir>/chromedata",
|
|
91
|
+
"paths.logFile": "<data-dir>/prismcast.log"
|
|
92
|
+
};
|
|
93
|
+
console.log("PrismCast Environment Variables");
|
|
94
|
+
console.log("");
|
|
95
|
+
console.log("All settings can also be configured via the web UI at /config or config.json.");
|
|
96
|
+
console.log("Priority: CLI flags > environment variables > config.json > defaults.");
|
|
97
|
+
for (const category of categoryOrder) {
|
|
98
|
+
const settings = CONFIG_METADATA[category.key];
|
|
99
|
+
// Filter to settings that have an environment variable.
|
|
100
|
+
const envSettings = settings.filter((s) => s.envVar !== null);
|
|
101
|
+
if (envSettings.length === 0) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
console.log("");
|
|
105
|
+
console.log(category.displayName + ":");
|
|
106
|
+
let first = true;
|
|
107
|
+
for (const setting of envSettings) {
|
|
108
|
+
// Type narrowing: envSettings is already filtered to non-null envVar values, but TypeScript can't narrow through .filter() callbacks.
|
|
109
|
+
const envVar = setting.envVar;
|
|
110
|
+
if (!envVar) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (!first) {
|
|
114
|
+
console.log("");
|
|
115
|
+
}
|
|
116
|
+
first = false;
|
|
117
|
+
console.log(" " + envVar);
|
|
118
|
+
// Truncate description to first sentence for brevity. Full descriptions are available in the web UI.
|
|
119
|
+
const desc = setting.description;
|
|
120
|
+
const periodSpace = desc.indexOf(". ");
|
|
121
|
+
const firstSentence = (periodSpace !== -1) ? desc.slice(0, periodSpace + 1) : desc;
|
|
122
|
+
console.log(" " + firstSentence);
|
|
123
|
+
// Format default value with appropriate context for the setting type.
|
|
124
|
+
const dynamicDefault = dynamicDefaults[setting.path];
|
|
125
|
+
let defaultStr;
|
|
126
|
+
if (dynamicDefault) {
|
|
127
|
+
defaultStr = dynamicDefault;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const defaultValue = getNestedValue(DEFAULTS, setting.path);
|
|
131
|
+
defaultStr = String(defaultValue);
|
|
132
|
+
if ((typeof defaultValue === "number") && setting.unit) {
|
|
133
|
+
defaultStr = defaultStr + " (" + setting.unit + ")";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
console.log(" Default: " + defaultStr);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Special environment variables that are not part of CONFIG_METADATA. PRISMCAST_DATA_DIR is resolved before config.json is loaded (chicken-and-egg), so it cannot
|
|
140
|
+
// be in config.json. PRISMCAST_DEBUG is a runtime-only setting parsed in the entry point.
|
|
141
|
+
console.log("");
|
|
142
|
+
console.log("Special:");
|
|
143
|
+
console.log(" PRISMCAST_DATA_DIR");
|
|
144
|
+
console.log(" Data directory path. Must be an absolute path.");
|
|
145
|
+
console.log(" Default: ~/.prismcast");
|
|
146
|
+
console.log("");
|
|
147
|
+
console.log(" PRISMCAST_DEBUG");
|
|
148
|
+
console.log(" Debug category filter (e.g., 'tuning:hulu', 'recovery', '*,-streaming:segmenter').");
|
|
149
|
+
console.log(" Default: (disabled)");
|
|
53
150
|
/* eslint-enable no-console */
|
|
54
151
|
}
|
|
55
152
|
/**
|
|
56
|
-
*
|
|
57
|
-
* @
|
|
153
|
+
* Validates that a path argument is absolute. Prints an error and exits if relative.
|
|
154
|
+
* @param flag - The CLI flag name for the error message.
|
|
155
|
+
* @param value - The path value to validate.
|
|
156
|
+
*/
|
|
157
|
+
function requireAbsolutePath(flag, value) {
|
|
158
|
+
// Guard against missing values when the flag is the last argument. TypeScript types array index access as `string`, but at runtime `args[++i]` returns `undefined`
|
|
159
|
+
// when out of bounds. Checking for falsy catches both `undefined` and empty string.
|
|
160
|
+
if (!value) {
|
|
161
|
+
// eslint-disable-next-line no-console
|
|
162
|
+
console.error("Error: " + flag + " requires a path argument.");
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
if (!path.isAbsolute(value)) {
|
|
166
|
+
// eslint-disable-next-line no-console
|
|
167
|
+
console.error("Error: " + flag + " requires an absolute path, got: " + value);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Parses command-line arguments into a structured result. Values are stored in ParsedArgs rather than written directly to CONFIG, so that the configuration merge
|
|
173
|
+
* system can apply CLI overrides at the correct priority level (CLI > env > config.json > defaults).
|
|
174
|
+
* @returns Parsed argument flags and values.
|
|
58
175
|
*/
|
|
59
176
|
function parseArgs() {
|
|
60
177
|
const args = process.argv.slice(2);
|
|
178
|
+
let chromeDataDir;
|
|
61
179
|
let consoleLogging = false;
|
|
180
|
+
let dataDir;
|
|
62
181
|
let debugLogging = false;
|
|
182
|
+
let logFile;
|
|
183
|
+
let port;
|
|
63
184
|
for (let i = 0; i < args.length; i++) {
|
|
64
185
|
const arg = args[i];
|
|
65
186
|
if ((arg === "-c") || (arg === "--console")) {
|
|
@@ -73,23 +194,38 @@ function parseArgs() {
|
|
|
73
194
|
process.exit(0);
|
|
74
195
|
}
|
|
75
196
|
if ((arg === "-p") || (arg === "--port")) {
|
|
76
|
-
const
|
|
77
|
-
if (!isNaN(
|
|
78
|
-
|
|
197
|
+
const parsed = parseInt(args[++i]);
|
|
198
|
+
if (!isNaN(parsed)) {
|
|
199
|
+
port = parsed;
|
|
79
200
|
}
|
|
80
201
|
}
|
|
202
|
+
if (arg === "--data-dir") {
|
|
203
|
+
dataDir = args[++i];
|
|
204
|
+
requireAbsolutePath("--data-dir", dataDir);
|
|
205
|
+
}
|
|
206
|
+
if (arg === "--chrome-data-dir") {
|
|
207
|
+
chromeDataDir = args[++i];
|
|
208
|
+
requireAbsolutePath("--chrome-data-dir", chromeDataDir);
|
|
209
|
+
}
|
|
210
|
+
if (arg === "--log-file") {
|
|
211
|
+
logFile = args[++i];
|
|
212
|
+
requireAbsolutePath("--log-file", logFile);
|
|
213
|
+
}
|
|
81
214
|
if ((arg === "-v") || (arg === "--version")) {
|
|
82
215
|
// eslint-disable-next-line no-console
|
|
83
216
|
console.log("PrismCast v" + getPackageVersion());
|
|
84
217
|
process.exit(0);
|
|
85
218
|
}
|
|
86
219
|
}
|
|
87
|
-
return { consoleLogging, debugLogging };
|
|
220
|
+
return { chromeDataDir, consoleLogging, dataDir, debugLogging, logFile, port };
|
|
88
221
|
}
|
|
89
222
|
/* Check for subcommands before parsing flags. Subcommands are handled separately and exit after completion.
|
|
90
223
|
*/
|
|
91
224
|
const rawArgs = process.argv.slice(2);
|
|
92
225
|
const subcommand = rawArgs[0];
|
|
226
|
+
// Initialize the data directory early so that all code paths (server and service subcommands) can resolve paths. For service subcommands, only the env var and
|
|
227
|
+
// default are available since --data-dir is a server flag. For the server path, parseArgs() may override this with a CLI flag.
|
|
228
|
+
initializeDataDir();
|
|
93
229
|
// Handle the 'service' subcommand for managing PrismCast as a system service.
|
|
94
230
|
if (subcommand === "service") {
|
|
95
231
|
handleServiceCommand(rawArgs.slice(1)).then((exitCode) => {
|
|
@@ -100,11 +236,37 @@ if (subcommand === "service") {
|
|
|
100
236
|
process.exit(1);
|
|
101
237
|
});
|
|
102
238
|
}
|
|
239
|
+
else if (subcommand === "upgrade") {
|
|
240
|
+
// Handle the 'upgrade' subcommand for self-upgrading PrismCast. Uses a dynamic import to keep the upgrade module out of the main server's import graph.
|
|
241
|
+
import("./upgrade/index.js").then(async ({ handleUpgradeCommand }) => handleUpgradeCommand(rawArgs.slice(1))).then((exitCode) => {
|
|
242
|
+
process.exit(exitCode);
|
|
243
|
+
}).catch((error) => {
|
|
244
|
+
// eslint-disable-next-line no-console
|
|
245
|
+
console.error("Upgrade command failed: " + formatError(error));
|
|
246
|
+
process.exit(1);
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
else if (rawArgs.includes("--list-env")) {
|
|
250
|
+
// Handle --list-env at the top level (like the service subcommand) to avoid starting the server. The dynamic import inside printEnvironmentVariables() is
|
|
251
|
+
// required because a static import of config/userConfig.js creates a circular dependency through the utils barrel.
|
|
252
|
+
printEnvironmentVariables().then(() => {
|
|
253
|
+
process.exit(0);
|
|
254
|
+
}).catch((error) => {
|
|
255
|
+
// eslint-disable-next-line no-console
|
|
256
|
+
console.error("Error: " + formatError(error));
|
|
257
|
+
process.exit(1);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
103
260
|
else {
|
|
104
261
|
/* The main entry point parses command-line arguments, starts the server, and handles any fatal errors that occur during initialization. If startup fails, we exit
|
|
105
262
|
* with a non-zero code to signal the failure to process managers.
|
|
106
263
|
*/
|
|
107
264
|
const parsedArgs = parseArgs();
|
|
265
|
+
// Re-initialize the data directory with the CLI flag if provided. The initial initializeDataDir() call above used only the env var / default, but the CLI
|
|
266
|
+
// --data-dir flag takes precedence over both.
|
|
267
|
+
if (parsedArgs.dataDir) {
|
|
268
|
+
initializeDataDir(parsedArgs.dataDir);
|
|
269
|
+
}
|
|
108
270
|
// Enable debug logging before starting the server so debug messages during startup are captured. The PRISMCAST_DEBUG environment variable takes precedence over
|
|
109
271
|
// the --debug CLI flag, allowing fine-grained category selection.
|
|
110
272
|
const debugEnv = process.env.PRISMCAST_DEBUG;
|
|
@@ -136,7 +298,7 @@ else {
|
|
|
136
298
|
// Best-effort cleanup. If pkill fails for any reason, the process is exiting anyway.
|
|
137
299
|
}
|
|
138
300
|
});
|
|
139
|
-
startServer(parsedArgs
|
|
301
|
+
startServer(parsedArgs).catch((error) => {
|
|
140
302
|
LOG.error("Fatal startup error occurred: %s.", formatError(error));
|
|
141
303
|
process.exit(1);
|
|
142
304
|
});
|