prismcast 1.4.1 → 1.5.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 +18 -1
- package/dist/app.js.map +1 -1
- package/dist/browser/cdp.d.ts +2 -1
- package/dist/browser/cdp.js +44 -23
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +45 -1
- package/dist/browser/channelSelection.js +164 -27
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/display.d.ts +0 -4
- package/dist/browser/display.js +0 -7
- package/dist/browser/display.js.map +1 -1
- package/dist/browser/index.d.ts +5 -0
- package/dist/browser/index.js +14 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/precaching.d.ts +5 -0
- package/dist/browser/precaching.js +112 -0
- package/dist/browser/precaching.js.map +1 -0
- package/dist/browser/tuning/directv.d.ts +2 -0
- package/dist/browser/tuning/directv.js +723 -0
- package/dist/browser/tuning/directv.js.map +1 -0
- package/dist/browser/tuning/fox.d.ts +2 -2
- package/dist/browser/tuning/fox.js +141 -22
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/hbo.d.ts +2 -2
- package/dist/browser/tuning/hbo.js +110 -41
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.d.ts +2 -2
- package/dist/browser/tuning/hulu.js +537 -211
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/sling.d.ts +2 -2
- package/dist/browser/tuning/sling.js +200 -56
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/youtubeTv.d.ts +2 -2
- package/dist/browser/tuning/youtubeTv.js +243 -57
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +1 -1
- package/dist/browser/video.js +4 -2
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.js +280 -34
- package/dist/channels/index.js.map +1 -1
- package/dist/config/health.d.ts +78 -0
- package/dist/config/health.js +202 -0
- package/dist/config/health.js.map +1 -0
- package/dist/config/paths.d.ts +10 -0
- package/dist/config/paths.js +14 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/profiles.d.ts +6 -4
- package/dist/config/profiles.js +65 -14
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providerPacks.d.ts +46 -0
- package/dist/config/providerPacks.js +200 -0
- package/dist/config/providerPacks.js.map +1 -0
- package/dist/config/providers.d.ts +47 -6
- package/dist/config/providers.js +211 -17
- package/dist/config/providers.js.map +1 -1
- package/dist/config/sites.d.ts +1 -12
- package/dist/config/sites.js +40 -7
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +41 -19
- package/dist/config/userChannels.js +152 -35
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +5 -1
- package/dist/config/userConfig.js +58 -6
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +81 -0
- package/dist/config/userProfiles.js +424 -0
- package/dist/config/userProfiles.js.map +1 -0
- package/dist/routes/config/channels/index.d.ts +3 -0
- package/dist/routes/config/channels/index.js +3 -0
- package/dist/routes/config/channels/index.js.map +1 -0
- package/dist/routes/config/channels/routes.d.ts +6 -0
- package/dist/routes/config/channels/routes.js +797 -0
- package/dist/routes/config/channels/routes.js.map +1 -0
- package/dist/routes/config/channels/table.d.ts +46 -0
- package/dist/routes/config/channels/table.js +811 -0
- package/dist/routes/config/channels/table.js.map +1 -0
- package/dist/routes/config/index.d.ts +37 -0
- package/dist/routes/config/index.js +81 -0
- package/dist/routes/config/index.js.map +1 -0
- package/dist/routes/config/providers.d.ts +18 -0
- package/dist/routes/config/providers.js +573 -0
- package/dist/routes/config/providers.js.map +1 -0
- package/dist/routes/config/settings.d.ts +39 -0
- package/dist/routes/config/settings.js +820 -0
- package/dist/routes/config/settings.js.map +1 -0
- package/dist/routes/index.d.ts +3 -2
- package/dist/routes/index.js +7 -4
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/playlist.d.ts +5 -1
- package/dist/routes/playlist.js +32 -7
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/providers.d.ts +6 -0
- package/dist/routes/providers.js +166 -0
- package/dist/routes/providers.js.map +1 -0
- package/dist/routes/root/content.d.ts +32 -0
- package/dist/routes/root/content.js +857 -0
- package/dist/routes/root/content.js.map +1 -0
- package/dist/routes/root/index.js +197 -0
- package/dist/routes/root/index.js.map +1 -0
- package/dist/routes/root/scripts/channels.d.ts +1 -0
- package/dist/routes/root/scripts/channels.js +745 -0
- package/dist/routes/root/scripts/channels.js.map +1 -0
- package/dist/routes/root/scripts/config.d.ts +1 -0
- package/dist/routes/root/scripts/config.js +1662 -0
- package/dist/routes/root/scripts/config.js.map +1 -0
- package/dist/routes/root/scripts/index.d.ts +3 -0
- package/dist/routes/root/scripts/index.js +8 -0
- package/dist/routes/root/scripts/index.js.map +1 -0
- package/dist/routes/root/scripts/status.d.ts +1 -0
- package/dist/routes/root/scripts/status.js +436 -0
- package/dist/routes/root/scripts/status.js.map +1 -0
- package/dist/routes/root/styles.d.ts +5 -0
- package/dist/routes/root/styles.js +447 -0
- package/dist/routes/root/styles.js.map +1 -0
- package/dist/routes/theme.js +7 -1
- package/dist/routes/theme.js.map +1 -1
- package/dist/routes/ui.js +8 -3
- package/dist/routes/ui.js.map +1 -1
- package/dist/service/commands.d.ts +5 -3
- package/dist/service/commands.js +117 -33
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.d.ts +27 -0
- package/dist/service/generators.js +97 -6
- package/dist/service/generators.js.map +1 -1
- package/dist/streaming/hls.js +18 -1
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/lifecycle.js +1 -1
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.d.ts +1 -38
- package/dist/streaming/monitor.js +2 -289
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/recovery.d.ts +143 -0
- package/dist/streaming/recovery.js +286 -0
- package/dist/streaming/recovery.js.map +1 -0
- package/dist/streaming/registry.d.ts +1 -1
- package/dist/streaming/setup.d.ts +1 -1
- package/dist/streaming/setup.js +3 -1
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.js +12 -14
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +4 -2
- package/dist/streaming/statusEmitter.js +5 -0
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +68 -0
- package/dist/types/channels.js +2 -0
- package/dist/types/channels.js.map +1 -0
- package/dist/types/config.d.ts +127 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +7 -406
- package/dist/types/index.js +1 -5
- package/dist/types/index.js.map +1 -1
- package/dist/types/profiles.d.ts +141 -0
- package/dist/types/profiles.js +2 -0
- package/dist/types/profiles.js.map +1 -0
- package/dist/types/selection.d.ts +101 -0
- package/dist/types/selection.js +6 -0
- package/dist/types/selection.js.map +1 -0
- package/dist/types/shared.d.ts +7 -0
- package/dist/types/shared.js +6 -0
- package/dist/types/shared.js.map +1 -0
- package/dist/types/streaming.d.ts +96 -0
- package/dist/types/streaming.js +2 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/utils/debugFilter.js +3 -1
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/format.d.ts +7 -0
- package/dist/utils/format.js +22 -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/sanitize.d.ts +14 -0
- package/dist/utils/sanitize.js +37 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/package.json +6 -4
- package/dist/routes/config.d.ts +0 -72
- package/dist/routes/config.js +0 -1987
- package/dist/routes/config.js.map +0 -1
- package/dist/routes/root.js +0 -2959
- package/dist/routes/root.js.map +0 -1
- /package/dist/routes/{root.d.ts → root/index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showInfo.js","sourceRoot":"","sources":["../../src/streaming/showInfo.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"showInfo.js","sourceRoot":"","sources":["../../src/streaming/showInfo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,aAAa;AAEb,6BAA6B;AAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,4DAA4D;AAC5D,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAE5C,wCAAwC;AACxC,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,oDAAoD;AACpD,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,2EAA2E;AAC3E,MAAM,cAAc,GAAG,EAAE,CAAC;AA8F1B,SAAS;AAET,wCAAwC;AACxC,IAAI,YAAY,GAA6C,IAAI,CAAC;AAElE,oCAAoC;AACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,gDAAgD;AAChD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEpE,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,iKAAiK;AACjK,2IAA2I;AAC3I,IAAI,gBAAgB,GAAqB,IAAI,CAAC;AAE9C,6DAA6D;AAC7D,IAAI,cAAc,GAA4C,IAAI,CAAC;AAEnE,cAAc;AAEd;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAElC,IAAG,YAAY,EAAE,CAAC;QAEhB,OAAO;IACT,CAAC;IAED,qDAAqD;IACrD,KAAK,eAAe,EAAE,CAAC;IAEvB,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QAE9B,KAAK,eAAe,EAAE,CAAC;IACzB,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAEjC,IAAG,YAAY,EAAE,CAAC;QAEhB,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,yBAAyB;IACzB,IAAG,cAAc,EAAE,CAAC;QAElB,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,gDAAgD;IAChD,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC7B,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACzB,gBAAgB,GAAG,IAAI,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IAEnC,yDAAyD;IACzD,IAAG,cAAc,EAAE,CAAC;QAElB,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAED,gDAAgD;IAChD,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;QAE/B,cAAc,GAAG,IAAI,CAAC;QAEtB,KAAK,eAAe,EAAE,CAAC;IACzB,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAE1C,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAE5C,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAE/C,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,sBAAsB;AAEtB;;;GAGG;AACH,KAAK,UAAU,eAAe;IAE5B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAEhC,IAAG,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAExB,OAAO;IACT,CAAC;IAED,4FAA4F;IAC5F,MAAM,gBAAgB,GAAyC,EAAE,CAAC;IAClE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAE5B,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3E,IAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YAExB,2EAA2E;YAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAE/G,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,+JAA+J;IAC/J,uEAAuE;IACvE,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAE5C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAErB,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,2FAA2F;IAC3F,IAAG,gBAAgB,EAAE,CAAC;QAEpB,MAAM,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAEjE,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,KAAI,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QAErC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,WAAiD;IAEnG,wCAAwC;IACxC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAG,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAEvB,gFAAgF;QAChF,KAAI,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YAEhC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAiB,IAAI,EAAE,WAAW,CAAC,CAAC;IAEnE,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD,KAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAEtB,qDAAqD;QACrD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAG,CAAC,cAAc,EAAE,CAAC;YAEnB,SAAS;QACX,CAAC;QAED,uDAAuD;QACvD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAG,UAAU,EAAE,CAAC;YAEd,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAErD,0CAA0C;IAC1C,KAAI,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QAEhC,yGAAyG;QACzG,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpG,IAAG,QAAQ,EAAE,CAAC;YAEZ,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAElD,IAAG,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAE7B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAEvC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,mCAAmC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;aAAM,CAAC;YAEN,0EAA0E;YAC1E,IAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAEhC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAEhC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,4DAA4D,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9H,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAE3C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,kDAAkD;IAClD,IAAG,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,4BAA4B,CAAC,EAAE,CAAC;QAEzE,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAoB,IAAI,EAAE,UAAU,CAAC,CAAC;IAExE,qEAAqE;IACrE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAEpE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAE5B,4BAA4B;QAC5B,IAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAE7B,SAAS;QACX,CAAC;QAED,IAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAEtD,SAAS;QACX,CAAC;QAED,+JAA+J;QAC/J,8JAA8J;QAC9J,iHAAiH;QACjH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAI,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAEtC,IAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE7B,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;QAE5C,IAAG,YAAY,GAAG,GAAG,EAAE,CAAC;YAEtB,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,6DAA6D,EAC3F,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;YAE1E,SAAS;QACX,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,wEAAwE,EACtG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;QAE3E,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEnD,KAAI,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAErC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAEtD,mCAAmC;YACnC,IAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEhB,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEtD,IAAG,cAAc,EAAE,CAAC;oBAElB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED,qCAAqC;IACrC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1E,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,qEAAqE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE3I,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAE3C,wEAAwE;IACxE,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAG,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAExD,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,qDAAqD;IACrD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAwB,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAChI,CAAC;IAEF,qDAAqD;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAI,MAAM,YAAY,IAAI,YAAY,EAAE,CAAC;QAEvC,KAAI,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YAE3C,IAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;gBAEzB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,kEAAkE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAE1H,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAI,IAAY,EAAE,IAAY;IAEvD,MAAM,GAAG,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAEtE,IAAI,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAEhC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;YACzC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAEhB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;IACtC,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,IAAG,KAAK,YAAY,KAAK,EAAE,CAAC;YAE1B,gFAAgF;YAChF,IAAG,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAE/B,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,iCAAiC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAW;IAEnC,IAAI,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,sDAAsD;QACtD,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAE/C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QAEP,kDAAkD;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HealthEvent, HealthSnapshot } from "../config/health.js";
|
|
1
2
|
import type { ClientTypeCount } from "./clients.js";
|
|
2
3
|
import type { Nullable } from "../types/index.js";
|
|
3
4
|
/**
|
|
@@ -53,13 +54,14 @@ export interface SystemStatus {
|
|
|
53
54
|
* Initial snapshot sent when an SSE client connects.
|
|
54
55
|
*/
|
|
55
56
|
export interface StatusSnapshot {
|
|
57
|
+
health: HealthSnapshot;
|
|
56
58
|
streams: StreamStatus[];
|
|
57
59
|
system: SystemStatus;
|
|
58
60
|
}
|
|
59
61
|
/**
|
|
60
62
|
* Event types emitted by the status emitter.
|
|
61
63
|
*/
|
|
62
|
-
export type StatusEventType = "snapshot" | "streamAdded" | "streamHealthChanged" | "streamRemoved" | "systemStatusChanged";
|
|
64
|
+
export type StatusEventType = "healthChanged" | "snapshot" | "streamAdded" | "streamHealthChanged" | "streamRemoved" | "systemStatusChanged";
|
|
63
65
|
/**
|
|
64
66
|
* Creates the initial StreamStatus object for a new stream. This provides a consistent starting state with all health metrics at their default values.
|
|
65
67
|
* @param options - The stream initialization options.
|
|
@@ -120,6 +122,6 @@ export declare function removeStreamStatus(streamId: number): void;
|
|
|
120
122
|
* @param callback - Function to call when a status event is emitted.
|
|
121
123
|
* @returns A function to unsubscribe the callback.
|
|
122
124
|
*/
|
|
123
|
-
export declare function subscribeToStatus(callback: (event: StatusEventType, data: StreamStatus | SystemStatus | StatusSnapshot | {
|
|
125
|
+
export declare function subscribeToStatus(callback: (event: StatusEventType, data: HealthEvent | StreamStatus | SystemStatus | StatusSnapshot | {
|
|
124
126
|
id: number;
|
|
125
127
|
}) => void): () => void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getHealthSnapshot, subscribeToHealth } from "../config/health.js";
|
|
1
2
|
import { EventEmitter } from "events";
|
|
2
3
|
/* A singleton EventEmitter that broadcasts status updates to all subscribed SSE clients. The emitter maintains current state for all streams, allowing new clients
|
|
3
4
|
* to receive a snapshot of current status immediately upon connecting.
|
|
@@ -91,6 +92,7 @@ export function updateSystemStatus(status) {
|
|
|
91
92
|
*/
|
|
92
93
|
export function getStatusSnapshot() {
|
|
93
94
|
return {
|
|
95
|
+
health: getHealthSnapshot(),
|
|
94
96
|
streams: Array.from(streamStatuses.values()),
|
|
95
97
|
system: cachedSystemStatus ?? {
|
|
96
98
|
browser: { connected: false, pageCount: 0 },
|
|
@@ -129,11 +131,14 @@ export function subscribeToStatus(callback) {
|
|
|
129
131
|
statusEmitter.on("streamRemoved", streamRemovedHandler);
|
|
130
132
|
statusEmitter.on("streamHealthChanged", streamHealthChangedHandler);
|
|
131
133
|
statusEmitter.on("systemStatusChanged", systemStatusChangedHandler);
|
|
134
|
+
// Forward health events from the health emitter through the same SSE connection. This avoids a separate SSE endpoint for health updates.
|
|
135
|
+
const unsubscribeHealth = subscribeToHealth((event) => { callback("healthChanged", event); });
|
|
132
136
|
return () => {
|
|
133
137
|
statusEmitter.off("streamAdded", streamAddedHandler);
|
|
134
138
|
statusEmitter.off("streamRemoved", streamRemovedHandler);
|
|
135
139
|
statusEmitter.off("streamHealthChanged", streamHealthChangedHandler);
|
|
136
140
|
statusEmitter.off("systemStatusChanged", systemStatusChangedHandler);
|
|
141
|
+
unsubscribeHealth();
|
|
137
142
|
};
|
|
138
143
|
}
|
|
139
144
|
//# sourceMappingURL=statusEmitter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusEmitter.js","sourceRoot":"","sources":["../../src/streaming/statusEmitter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"statusEmitter.js","sourceRoot":"","sources":["../../src/streaming/statusEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Nullable } from "./shared.js";
|
|
2
|
+
/**
|
|
3
|
+
* Channel definition mapping a short name to a streaming URL with optional configuration overrides.
|
|
4
|
+
*/
|
|
5
|
+
export interface Channel {
|
|
6
|
+
channelNumber?: number;
|
|
7
|
+
channelSelector?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
pacificStationId?: string;
|
|
10
|
+
profile?: string;
|
|
11
|
+
provider?: string;
|
|
12
|
+
scrollSelector?: string;
|
|
13
|
+
scrollTarget?: string;
|
|
14
|
+
scrollToBottom?: boolean;
|
|
15
|
+
stationId?: string;
|
|
16
|
+
tvgShift?: number;
|
|
17
|
+
url: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Enriched channel entry returned by getChannelListing(). Wraps a Channel definition with source classification and enabled status metadata, providing the
|
|
21
|
+
* single source of truth for merged channel data across the codebase.
|
|
22
|
+
*/
|
|
23
|
+
export interface ChannelListingEntry {
|
|
24
|
+
availableByProvider: boolean;
|
|
25
|
+
channel: Channel;
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
key: string;
|
|
28
|
+
source: "override" | "predefined" | "user";
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A delta override for a predefined channel. All fields are optional because only fields that differ from the predefined definition are stored. String and number
|
|
32
|
+
* fields use Nullable<T> to distinguish "user cleared this field" (null) from "inherit from predefined" (absent). When a field is null, the predefined value is
|
|
33
|
+
* removed in the resolved channel. When a field is absent, the predefined value is inherited.
|
|
34
|
+
*/
|
|
35
|
+
export interface ChannelDelta {
|
|
36
|
+
channelNumber?: Nullable<number>;
|
|
37
|
+
channelSelector?: Nullable<string>;
|
|
38
|
+
name?: Nullable<string>;
|
|
39
|
+
profile?: Nullable<string>;
|
|
40
|
+
stationId?: Nullable<string>;
|
|
41
|
+
tvgShift?: Nullable<number>;
|
|
42
|
+
url?: Nullable<string>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* What gets stored in channels.json per key. For user-defined channels (no predefined equivalent), this is a full Channel with a required url. For overrides of
|
|
46
|
+
* predefined channels, this can be a ChannelDelta with only the differing fields. Legacy full-override entries (from before the delta model) are also valid — they
|
|
47
|
+
* are just deltas that happen to override every field.
|
|
48
|
+
*/
|
|
49
|
+
export type StoredChannel = Channel | ChannelDelta;
|
|
50
|
+
/**
|
|
51
|
+
* Map of channel keys to stored channel data (full definitions or deltas). This is the raw type for the channels.json file contents.
|
|
52
|
+
*/
|
|
53
|
+
export type StoredChannelMap = Record<string, StoredChannel>;
|
|
54
|
+
/**
|
|
55
|
+
* Map of channel short names to channel definitions. Channel names must be URL-safe strings (lowercase letters, numbers, hyphens) since they appear in stream
|
|
56
|
+
* request URLs.
|
|
57
|
+
*/
|
|
58
|
+
export type ChannelMap = Record<string, Channel>;
|
|
59
|
+
/**
|
|
60
|
+
* Represents a group of provider variants for the same content. Used by the UI to display provider selection dropdowns for multi-provider channels.
|
|
61
|
+
*/
|
|
62
|
+
export interface ProviderGroup {
|
|
63
|
+
canonicalKey: string;
|
|
64
|
+
variants: {
|
|
65
|
+
key: string;
|
|
66
|
+
label: string;
|
|
67
|
+
}[];
|
|
68
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/types/channels.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { ChannelSortField, Nullable, SortDirection } from "./shared.js";
|
|
2
|
+
/**
|
|
3
|
+
* Browser-related configuration controlling Chrome launch behavior. Viewport dimensions are derived from the quality preset via getViewport() and are not stored in
|
|
4
|
+
* this configuration object.
|
|
5
|
+
*/
|
|
6
|
+
export interface BrowserConfig {
|
|
7
|
+
executablePath: Nullable<string>;
|
|
8
|
+
initTimeout: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Filesystem paths for Chrome profile data and extension files.
|
|
12
|
+
*/
|
|
13
|
+
export interface PathsConfig {
|
|
14
|
+
chromeDataDir: Nullable<string>;
|
|
15
|
+
chromeProfileName: string;
|
|
16
|
+
extensionDirName: string;
|
|
17
|
+
logFile: Nullable<string>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Playback monitoring and recovery timing configuration. These values control how quickly the system detects playback problems and how aggressively it attempts
|
|
21
|
+
* recovery. The defaults balance responsiveness against false positives from temporary buffering.
|
|
22
|
+
*/
|
|
23
|
+
export interface PlaybackConfig {
|
|
24
|
+
bufferingGracePeriod: number;
|
|
25
|
+
channelSelectorDelay: number;
|
|
26
|
+
channelSwitchDelay: number;
|
|
27
|
+
clickToPlayDelay: number;
|
|
28
|
+
iframeInitDelay: number;
|
|
29
|
+
maxPageReloads: number;
|
|
30
|
+
monitorInterval: number;
|
|
31
|
+
pageReloadWindow: number;
|
|
32
|
+
sourceReloadDelay: number;
|
|
33
|
+
stallCountThreshold: number;
|
|
34
|
+
stallThreshold: number;
|
|
35
|
+
sustainedPlaybackRequired: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Recovery behavior configuration controlling retry logic, backoff timing, and circuit breaker thresholds. These settings determine how the system handles
|
|
39
|
+
* failures and prevents runaway resource consumption from broken streams.
|
|
40
|
+
*/
|
|
41
|
+
export interface RecoveryConfig {
|
|
42
|
+
backoffJitter: number;
|
|
43
|
+
circuitBreakerThreshold: number;
|
|
44
|
+
circuitBreakerWindow: number;
|
|
45
|
+
maxBackoffDelay: number;
|
|
46
|
+
stalePageCleanupInterval: number;
|
|
47
|
+
stalePageGracePeriod: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* HLS streaming configuration controlling segment generation and lifecycle.
|
|
51
|
+
*/
|
|
52
|
+
export interface HLSConfig {
|
|
53
|
+
idleTimeout: number;
|
|
54
|
+
maxSegments: number;
|
|
55
|
+
segmentDuration: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Channels configuration controlling which predefined channels are enabled.
|
|
59
|
+
*/
|
|
60
|
+
export interface ChannelsConfig {
|
|
61
|
+
channelSortDirection: SortDirection;
|
|
62
|
+
channelSortField: ChannelSortField;
|
|
63
|
+
disabledPredefined: string[];
|
|
64
|
+
enabledProviders: string[];
|
|
65
|
+
precacheProviders: string[];
|
|
66
|
+
visibleColumns: string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* HDHomeRun emulation configuration. When enabled, PrismCast runs a separate HTTP server that emulates the HDHomeRun API, allowing Plex to discover and use
|
|
70
|
+
* PrismCast as a virtual tuner for live TV and DVR recording. The emulated device appears in Plex's tuner setup and serves PrismCast's HLS streams directly.
|
|
71
|
+
*/
|
|
72
|
+
export interface HdhrConfig {
|
|
73
|
+
deviceId: string;
|
|
74
|
+
enabled: boolean;
|
|
75
|
+
friendlyName: string;
|
|
76
|
+
port: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Logging configuration controlling file-based logging behavior.
|
|
80
|
+
*/
|
|
81
|
+
export interface LoggingConfig {
|
|
82
|
+
debugFilter: string;
|
|
83
|
+
httpLogLevel: "all" | "errors" | "filtered" | "none";
|
|
84
|
+
maxSize: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* HTTP server configuration controlling network binding.
|
|
88
|
+
*/
|
|
89
|
+
export interface ServerConfig {
|
|
90
|
+
host: string;
|
|
91
|
+
port: number;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Capture mode for media recording. Determines how video/audio is captured from the browser and processed for HLS output.
|
|
95
|
+
* - "ffmpeg": Captures WebM (H264+Opus) and uses FFmpeg to transcode audio to AAC. More stable for long recordings.
|
|
96
|
+
* - "native": Captures fMP4 (H264+AAC) directly from Chrome. No dependencies but may be unstable with long recordings.
|
|
97
|
+
*/
|
|
98
|
+
export type CaptureMode = "ffmpeg" | "native";
|
|
99
|
+
/**
|
|
100
|
+
* Media streaming configuration controlling video capture quality, timeouts, and concurrency limits.
|
|
101
|
+
*/
|
|
102
|
+
export interface StreamingConfig {
|
|
103
|
+
audioBitsPerSecond: number;
|
|
104
|
+
captureMode: CaptureMode;
|
|
105
|
+
frameRate: number;
|
|
106
|
+
maxConcurrentStreams: number;
|
|
107
|
+
maxNavigationRetries: number;
|
|
108
|
+
navigationTimeout: number;
|
|
109
|
+
qualityPreset: string;
|
|
110
|
+
videoBitsPerSecond: number;
|
|
111
|
+
videoTimeout: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Root configuration object containing all application settings organized by functional area.
|
|
115
|
+
*/
|
|
116
|
+
export interface Config {
|
|
117
|
+
browser: BrowserConfig;
|
|
118
|
+
channels: ChannelsConfig;
|
|
119
|
+
hdhr: HdhrConfig;
|
|
120
|
+
hls: HLSConfig;
|
|
121
|
+
logging: LoggingConfig;
|
|
122
|
+
paths: PathsConfig;
|
|
123
|
+
playback: PlaybackConfig;
|
|
124
|
+
recovery: RecoveryConfig;
|
|
125
|
+
server: ServerConfig;
|
|
126
|
+
streaming: StreamingConfig;
|
|
127
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
|