prismcast 1.10.2 → 1.11.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 +6 -3
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +140 -86
- package/dist/app.js.map +1 -1
- package/dist/browser/blockedPage.d.ts +80 -0
- package/dist/browser/blockedPage.d.ts.map +1 -0
- package/dist/browser/blockedPage.js +209 -0
- package/dist/browser/blockedPage.js.map +1 -0
- package/dist/browser/browserSupervisor.d.ts +80 -0
- package/dist/browser/browserSupervisor.d.ts.map +1 -0
- package/dist/browser/browserSupervisor.js +186 -0
- package/dist/browser/browserSupervisor.js.map +1 -0
- package/dist/browser/cdp.d.ts +1 -0
- package/dist/browser/cdp.d.ts.map +1 -0
- package/dist/browser/cdp.js +6 -5
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +45 -14
- package/dist/browser/channelSelection.d.ts.map +1 -0
- package/dist/browser/channelSelection.js +81 -18
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/consent.d.ts +152 -0
- package/dist/browser/consent.d.ts.map +1 -0
- package/dist/browser/consent.js +418 -0
- package/dist/browser/consent.js.map +1 -0
- package/dist/browser/display.d.ts +1 -0
- package/dist/browser/display.d.ts.map +1 -0
- package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
- package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
- package/dist/browser/hlsPlaylistObserver.js +132 -0
- package/dist/browser/hlsPlaylistObserver.js.map +1 -0
- package/dist/browser/index.d.ts +67 -40
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +508 -300
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/launchGovernor.d.ts +89 -0
- package/dist/browser/launchGovernor.d.ts.map +1 -0
- package/dist/browser/launchGovernor.js +96 -0
- package/dist/browser/launchGovernor.js.map +1 -0
- package/dist/browser/login.d.ts +10 -2
- package/dist/browser/login.d.ts.map +1 -0
- package/dist/browser/login.js +36 -5
- package/dist/browser/login.js.map +1 -1
- package/dist/browser/manifestInterceptor.d.ts +102 -49
- package/dist/browser/manifestInterceptor.d.ts.map +1 -0
- package/dist/browser/manifestInterceptor.js +219 -237
- package/dist/browser/manifestInterceptor.js.map +1 -1
- package/dist/browser/pageStaleness.d.ts +30 -0
- package/dist/browser/pageStaleness.d.ts.map +1 -0
- package/dist/browser/pageStaleness.js +76 -0
- package/dist/browser/pageStaleness.js.map +1 -0
- package/dist/browser/precaching.d.ts +95 -3
- package/dist/browser/precaching.d.ts.map +1 -0
- package/dist/browser/precaching.js +499 -65
- package/dist/browser/precaching.js.map +1 -1
- package/dist/browser/tabNetworkObserver.d.ts +49 -0
- package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
- package/dist/browser/tabNetworkObserver.js +144 -0
- package/dist/browser/tabNetworkObserver.js.map +1 -0
- package/dist/browser/tuning/cache.d.ts +61 -0
- package/dist/browser/tuning/cache.d.ts.map +1 -0
- package/dist/browser/tuning/cache.js +62 -0
- package/dist/browser/tuning/cache.js.map +1 -0
- package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
- package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
- package/dist/browser/tuning/comcastPolymer.js +79 -102
- package/dist/browser/tuning/comcastPolymer.js.map +1 -1
- package/dist/browser/tuning/cox.d.ts +1 -0
- package/dist/browser/tuning/cox.d.ts.map +1 -0
- package/dist/browser/tuning/directv.d.ts +1 -0
- package/dist/browser/tuning/directv.d.ts.map +1 -0
- package/dist/browser/tuning/directv.js +52 -46
- package/dist/browser/tuning/directv.js.map +1 -1
- package/dist/browser/tuning/fox.d.ts +1 -0
- package/dist/browser/tuning/fox.d.ts.map +1 -0
- package/dist/browser/tuning/fox.js +13 -12
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/gridSearch.d.ts +68 -0
- package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
- package/dist/browser/tuning/gridSearch.js +85 -0
- package/dist/browser/tuning/gridSearch.js.map +1 -0
- package/dist/browser/tuning/hbo.d.ts +1 -0
- package/dist/browser/tuning/hbo.d.ts.map +1 -0
- package/dist/browser/tuning/hbo.js +73 -45
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.d.ts +1 -0
- package/dist/browser/tuning/hulu.d.ts.map +1 -0
- package/dist/browser/tuning/hulu.js +128 -173
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/shared.d.ts +75 -5
- package/dist/browser/tuning/shared.d.ts.map +1 -0
- package/dist/browser/tuning/shared.js +216 -6
- package/dist/browser/tuning/shared.js.map +1 -1
- package/dist/browser/tuning/sling.d.ts +1 -0
- package/dist/browser/tuning/sling.d.ts.map +1 -0
- package/dist/browser/tuning/sling.js +105 -126
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/spectrum.d.ts +1 -0
- package/dist/browser/tuning/spectrum.d.ts.map +1 -0
- package/dist/browser/tuning/spectrum.js +80 -125
- package/dist/browser/tuning/spectrum.js.map +1 -1
- package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
- package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
- package/dist/browser/tuning/thumbnailRow.js +8 -2
- package/dist/browser/tuning/thumbnailRow.js.map +1 -1
- package/dist/browser/tuning/tileClick.d.ts +1 -0
- package/dist/browser/tuning/tileClick.d.ts.map +1 -0
- package/dist/browser/tuning/tileClick.js +3 -2
- package/dist/browser/tuning/tileClick.js.map +1 -1
- package/dist/browser/tuning/xfinity.d.ts +1 -0
- package/dist/browser/tuning/xfinity.d.ts.map +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
- package/dist/browser/tuning/youtubeTv.js +74 -127
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +54 -14
- package/dist/browser/video.d.ts.map +1 -0
- package/dist/browser/video.js +296 -138
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.d.ts +1 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +12 -9
- package/dist/channels/index.js.map +1 -1
- package/dist/config/channelForm.d.ts +15 -1
- package/dist/config/channelForm.d.ts.map +1 -0
- package/dist/config/channelForm.js +28 -12
- package/dist/config/channelForm.js.map +1 -1
- package/dist/config/consistencyProbe.d.ts +1 -0
- package/dist/config/consistencyProbe.d.ts.map +1 -0
- package/dist/config/consistencyProbe.js +27 -21
- package/dist/config/consistencyProbe.js.map +1 -1
- package/dist/config/health.d.ts +41 -8
- package/dist/config/health.d.ts.map +1 -0
- package/dist/config/health.js +189 -38
- package/dist/config/health.js.map +1 -1
- package/dist/config/index.d.ts +55 -3
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +320 -69
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.d.ts +10 -9
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +11 -11
- package/dist/config/paths.js.map +1 -1
- package/dist/config/persistence.context.d.ts +1 -0
- package/dist/config/persistence.context.d.ts.map +1 -0
- package/dist/config/persistence.d.ts +13 -10
- package/dist/config/persistence.d.ts.map +1 -0
- package/dist/config/persistence.js +40 -21
- package/dist/config/persistence.js.map +1 -1
- package/dist/config/presets.d.ts +1 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/profiles.d.ts +22 -15
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +81 -47
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providerLineups.d.ts +47 -0
- package/dist/config/providerLineups.d.ts.map +1 -0
- package/dist/config/providerLineups.js +137 -0
- package/dist/config/providerLineups.js.map +1 -0
- package/dist/config/reactivity.d.ts +84 -0
- package/dist/config/reactivity.d.ts.map +1 -0
- package/dist/config/reactivity.js +226 -0
- package/dist/config/reactivity.js.map +1 -0
- package/dist/config/servicePacks.d.ts +18 -2
- package/dist/config/servicePacks.d.ts.map +1 -0
- package/dist/config/servicePacks.js +53 -11
- package/dist/config/servicePacks.js.map +1 -1
- package/dist/config/services.d.ts +21 -15
- package/dist/config/services.d.ts.map +1 -0
- package/dist/config/services.js +35 -24
- package/dist/config/services.js.map +1 -1
- package/dist/config/sites.d.ts +6 -4
- package/dist/config/sites.d.ts.map +1 -0
- package/dist/config/sites.js +15 -11
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +129 -30
- package/dist/config/userChannels.d.ts.map +1 -0
- package/dist/config/userChannels.js +333 -68
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +14 -9
- package/dist/config/userConfig.d.ts.map +1 -0
- package/dist/config/userConfig.js +87 -25
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +10 -6
- package/dist/config/userProfiles.d.ts.map +1 -0
- package/dist/config/userProfiles.js +64 -39
- package/dist/config/userProfiles.js.map +1 -1
- package/dist/hdhr/channelMap.d.ts +1 -0
- package/dist/hdhr/channelMap.d.ts.map +1 -0
- package/dist/hdhr/deviceId.d.ts +1 -0
- package/dist/hdhr/deviceId.d.ts.map +1 -0
- package/dist/hdhr/discover.d.ts +1 -0
- package/dist/hdhr/discover.d.ts.map +1 -0
- package/dist/hdhr/discover.js +48 -47
- package/dist/hdhr/discover.js.map +1 -1
- package/dist/hdhr/getHandlers.d.ts +29 -0
- package/dist/hdhr/getHandlers.d.ts.map +1 -0
- package/dist/hdhr/getHandlers.js +196 -0
- package/dist/hdhr/getHandlers.js.map +1 -0
- package/dist/hdhr/identity.d.ts +36 -0
- package/dist/hdhr/identity.d.ts.map +1 -0
- package/dist/hdhr/identity.js +51 -0
- package/dist/hdhr/identity.js.map +1 -0
- package/dist/hdhr/index.d.ts +22 -4
- package/dist/hdhr/index.d.ts.map +1 -0
- package/dist/hdhr/index.js +229 -54
- package/dist/hdhr/index.js.map +1 -1
- package/dist/hdhr/protocol.d.ts +75 -0
- package/dist/hdhr/protocol.d.ts.map +1 -0
- package/dist/hdhr/protocol.js +264 -0
- package/dist/hdhr/protocol.js.map +1 -0
- package/dist/hdhr/tunerState.d.ts +24 -0
- package/dist/hdhr/tunerState.d.ts.map +1 -0
- package/dist/hdhr/tunerState.js +67 -0
- package/dist/hdhr/tunerState.js.map +1 -0
- package/dist/hdhr/udp.d.ts +43 -0
- package/dist/hdhr/udp.d.ts.map +1 -0
- package/dist/hdhr/udp.js +277 -0
- package/dist/hdhr/udp.js.map +1 -0
- package/dist/identity.d.ts +1 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +13 -11
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -12
- package/dist/index.js.map +1 -1
- package/dist/native/codecInference.d.ts +1 -0
- package/dist/native/codecInference.d.ts.map +1 -0
- package/dist/native/codecInference.js +50 -5
- package/dist/native/codecInference.js.map +1 -1
- package/dist/native/decrypt.d.ts +6 -2
- package/dist/native/decrypt.d.ts.map +1 -0
- package/dist/native/decrypt.js +15 -8
- package/dist/native/decrypt.js.map +1 -1
- package/dist/native/index.d.ts +40 -17
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +281 -120
- package/dist/native/index.js.map +1 -1
- package/dist/native/probe.d.ts +114 -18
- package/dist/native/probe.d.ts.map +1 -0
- package/dist/native/probe.js +452 -115
- package/dist/native/probe.js.map +1 -1
- package/dist/native/proxy.d.ts +57 -5
- package/dist/native/proxy.d.ts.map +1 -0
- package/dist/native/proxy.js +604 -170
- package/dist/native/proxy.js.map +1 -1
- package/dist/native/tokenExpiry.d.ts +1 -0
- package/dist/native/tokenExpiry.d.ts.map +1 -0
- package/dist/native/tokenExpiry.js +1 -1
- package/dist/routes/assets.d.ts +1 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +4 -2
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/auth.d.ts +1 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +0 -1
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/cdp.d.ts +5 -5
- package/dist/routes/cdp.d.ts.map +1 -0
- package/dist/routes/cdp.js +59 -20
- package/dist/routes/cdp.js.map +1 -1
- package/dist/routes/channels.d.ts +1 -0
- package/dist/routes/channels.d.ts.map +1 -0
- package/dist/routes/channels.js +2 -1
- package/dist/routes/channels.js.map +1 -1
- package/dist/routes/clientActions.d.ts +98 -0
- package/dist/routes/clientActions.d.ts.map +1 -0
- package/dist/routes/clientActions.js +113 -0
- package/dist/routes/clientActions.js.map +1 -0
- package/dist/routes/components.d.ts +5 -3
- package/dist/routes/components.d.ts.map +1 -0
- package/dist/routes/components.js +36 -39
- package/dist/routes/components.js.map +1 -1
- package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/browse.js +23 -10
- package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
- package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/bulk.js +5 -3
- package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
- package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/crud.js +85 -93
- package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
- package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/importExport.js +6 -3
- package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
- package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/prefs.js +2 -1
- package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
- package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
- package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/service.js +3 -1
- package/dist/routes/config/channels/endpoints/service.js.map +1 -1
- package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/tags.js +13 -7
- package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
- package/dist/routes/config/channels/healthBridge.d.ts +24 -0
- package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
- package/dist/routes/config/channels/healthBridge.js +71 -0
- package/dist/routes/config/channels/healthBridge.js.map +1 -0
- package/dist/routes/config/channels/http/handler.d.ts +1 -0
- package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
- package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
- package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
- package/dist/routes/config/channels/http/playlistHint.js +16 -2
- package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
- package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
- package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
- package/dist/routes/config/channels/http/serviceWarning.js +3 -2
- package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
- package/dist/routes/config/channels/index.d.ts +1 -0
- package/dist/routes/config/channels/index.d.ts.map +1 -0
- package/dist/routes/config/channels/setup.d.ts +1 -0
- package/dist/routes/config/channels/setup.d.ts.map +1 -0
- package/dist/routes/config/channels/table.d.ts +3 -3
- package/dist/routes/config/channels/table.d.ts.map +1 -0
- package/dist/routes/config/channels/table.js +148 -107
- package/dist/routes/config/channels/table.js.map +1 -1
- package/dist/routes/config/http/envelope.d.ts +1 -0
- package/dist/routes/config/http/envelope.d.ts.map +1 -0
- package/dist/routes/config/index.d.ts +35 -3
- package/dist/routes/config/index.d.ts.map +1 -0
- package/dist/routes/config/index.js +51 -2
- package/dist/routes/config/index.js.map +1 -1
- package/dist/routes/config/services.d.ts +5 -4
- package/dist/routes/config/services.d.ts.map +1 -0
- package/dist/routes/config/services.js +57 -43
- package/dist/routes/config/services.js.map +1 -1
- package/dist/routes/config/settings.d.ts +1 -0
- package/dist/routes/config/settings.d.ts.map +1 -0
- package/dist/routes/config/settings.js +98 -49
- package/dist/routes/config/settings.js.map +1 -1
- package/dist/routes/debug.d.ts +1 -0
- package/dist/routes/debug.d.ts.map +1 -0
- package/dist/routes/debug.js +277 -139
- package/dist/routes/debug.js.map +1 -1
- package/dist/routes/health.d.ts +39 -1
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +33 -27
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/hls.d.ts +1 -0
- package/dist/routes/hls.d.ts.map +1 -0
- package/dist/routes/icons.d.ts +1 -0
- package/dist/routes/icons.d.ts.map +1 -0
- package/dist/routes/icons.js +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/logs.d.ts +1 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +14 -4
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/mpegts.d.ts +1 -0
- package/dist/routes/mpegts.d.ts.map +1 -0
- package/dist/routes/play.d.ts +1 -0
- package/dist/routes/play.d.ts.map +1 -0
- package/dist/routes/playlist.d.ts +1 -0
- package/dist/routes/playlist.d.ts.map +1 -0
- package/dist/routes/playlist.js +7 -2
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/root/content.d.ts +8 -5
- package/dist/routes/root/content.d.ts.map +1 -0
- package/dist/routes/root/content.js +29 -26
- package/dist/routes/root/content.js.map +1 -1
- package/dist/routes/root/index.d.ts +2 -1
- package/dist/routes/root/index.d.ts.map +1 -0
- package/dist/routes/root/index.js +26 -21
- package/dist/routes/root/index.js.map +1 -1
- package/dist/routes/root/scripts/channels.d.ts +6 -0
- package/dist/routes/root/scripts/channels.d.ts.map +1 -0
- package/dist/routes/root/scripts/channels.js +197 -118
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
- package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
- package/dist/routes/root/scripts/clientEscape.js +41 -0
- package/dist/routes/root/scripts/clientEscape.js.map +1 -0
- package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
- package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
- package/dist/routes/root/scripts/clientUrl.js +44 -0
- package/dist/routes/root/scripts/clientUrl.js.map +1 -0
- package/dist/routes/root/scripts/config.d.ts +6 -0
- package/dist/routes/root/scripts/config.d.ts.map +1 -0
- package/dist/routes/root/scripts/config.js +110 -24
- 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.d.ts.map +1 -0
- package/dist/routes/root/scripts/shared.d.ts +1 -0
- package/dist/routes/root/scripts/shared.d.ts.map +1 -0
- package/dist/routes/root/scripts/shared.js +112 -26
- package/dist/routes/root/scripts/shared.js.map +1 -1
- package/dist/routes/root/scripts/status.d.ts +1 -0
- package/dist/routes/root/scripts/status.d.ts.map +1 -0
- package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
- package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
- package/dist/routes/root/scripts/status.handlers.js +46 -92
- package/dist/routes/root/scripts/status.handlers.js.map +1 -1
- package/dist/routes/root/scripts/status.js +21 -8
- package/dist/routes/root/scripts/status.js.map +1 -1
- package/dist/routes/root/styles.d.ts +1 -0
- package/dist/routes/root/styles.d.ts.map +1 -0
- package/dist/routes/root/styles.js +7 -4
- package/dist/routes/root/styles.js.map +1 -1
- package/dist/routes/services.d.ts +13 -1
- package/dist/routes/services.d.ts.map +1 -0
- package/dist/routes/services.js +81 -68
- package/dist/routes/services.js.map +1 -1
- package/dist/routes/sse.d.ts +1 -0
- package/dist/routes/sse.d.ts.map +1 -0
- package/dist/routes/sse.js +1 -1
- package/dist/routes/sse.js.map +1 -1
- package/dist/routes/streams.d.ts +2 -1
- package/dist/routes/streams.d.ts.map +1 -0
- package/dist/routes/streams.js +6 -4
- package/dist/routes/streams.js.map +1 -1
- package/dist/routes/theme.d.ts +3 -2
- package/dist/routes/theme.d.ts.map +1 -0
- package/dist/routes/theme.js +6 -5
- package/dist/routes/theme.js.map +1 -1
- package/dist/routes/ui.d.ts +3 -1
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +16 -4
- package/dist/routes/ui.js.map +1 -1
- package/dist/routes/upgrade.d.ts +1 -0
- package/dist/routes/upgrade.d.ts.map +1 -0
- package/dist/routes/upgrade.js +6 -2
- package/dist/routes/upgrade.js.map +1 -1
- package/dist/service/commands.context.d.ts +1 -0
- package/dist/service/commands.context.d.ts.map +1 -0
- package/dist/service/commands.context.js +4 -3
- package/dist/service/commands.context.js.map +1 -1
- package/dist/service/commands.d.ts +1 -0
- package/dist/service/commands.d.ts.map +1 -0
- package/dist/service/commands.js +10 -13
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.context.d.ts +1 -0
- package/dist/service/generators.context.d.ts.map +1 -0
- package/dist/service/generators.context.js +1 -1
- package/dist/service/generators.context.js.map +1 -1
- package/dist/service/generators.d.ts +4 -3
- package/dist/service/generators.d.ts.map +1 -0
- package/dist/service/generators.js +111 -31
- package/dist/service/generators.js.map +1 -1
- package/dist/service/index.d.ts +1 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/streaming/captureLock.d.ts +44 -0
- package/dist/streaming/captureLock.d.ts.map +1 -0
- package/dist/streaming/captureLock.js +95 -0
- package/dist/streaming/captureLock.js.map +1 -0
- package/dist/streaming/captureSession.d.ts +31 -0
- package/dist/streaming/captureSession.d.ts.map +1 -0
- package/dist/streaming/captureSession.js +54 -0
- package/dist/streaming/captureSession.js.map +1 -0
- package/dist/streaming/clients.d.ts +1 -0
- package/dist/streaming/clients.d.ts.map +1 -0
- package/dist/streaming/codec.d.ts +1 -0
- package/dist/streaming/codec.d.ts.map +1 -0
- package/dist/streaming/fmp4Segmenter.d.ts +29 -2
- package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
- package/dist/streaming/fmp4Segmenter.js +79 -26
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.d.ts +18 -7
- package/dist/streaming/hls.d.ts.map +1 -0
- package/dist/streaming/hls.js +220 -120
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +1 -0
- package/dist/streaming/hlsResume.d.ts.map +1 -0
- package/dist/streaming/hlsResume.js +1 -1
- package/dist/streaming/hlsResume.js.map +1 -1
- package/dist/streaming/hlsSegments.d.ts +59 -2
- package/dist/streaming/hlsSegments.d.ts.map +1 -0
- package/dist/streaming/hlsSegments.js +147 -17
- package/dist/streaming/hlsSegments.js.map +1 -1
- package/dist/streaming/lifecycle.d.ts +4 -1
- package/dist/streaming/lifecycle.d.ts.map +1 -0
- package/dist/streaming/lifecycle.js +65 -85
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.d.ts +6 -4
- package/dist/streaming/monitor.d.ts.map +1 -0
- package/dist/streaming/monitor.js +343 -145
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/mp4Parser.d.ts +5 -4
- package/dist/streaming/mp4Parser.d.ts.map +1 -0
- package/dist/streaming/mp4Parser.js +36 -13
- package/dist/streaming/mp4Parser.js.map +1 -1
- package/dist/streaming/mpegts.d.ts +16 -0
- package/dist/streaming/mpegts.d.ts.map +1 -0
- package/dist/streaming/mpegts.js +61 -17
- package/dist/streaming/mpegts.js.map +1 -1
- package/dist/streaming/playlistBuilder.d.ts +1 -0
- package/dist/streaming/playlistBuilder.d.ts.map +1 -0
- package/dist/streaming/preroll.d.ts +32 -5
- package/dist/streaming/preroll.d.ts.map +1 -0
- package/dist/streaming/preroll.js +70 -32
- package/dist/streaming/preroll.js.map +1 -1
- package/dist/streaming/pretune.d.ts +26 -1
- package/dist/streaming/pretune.d.ts.map +1 -0
- package/dist/streaming/pretune.js +22 -24
- package/dist/streaming/pretune.js.map +1 -1
- package/dist/streaming/pretuneTimers.d.ts +24 -0
- package/dist/streaming/pretuneTimers.d.ts.map +1 -0
- package/dist/streaming/pretuneTimers.js +56 -0
- package/dist/streaming/pretuneTimers.js.map +1 -0
- package/dist/streaming/recovery.d.ts +139 -5
- package/dist/streaming/recovery.d.ts.map +1 -0
- package/dist/streaming/recovery.js +160 -16
- package/dist/streaming/recovery.js.map +1 -1
- package/dist/streaming/registry.d.ts +27 -9
- package/dist/streaming/registry.d.ts.map +1 -0
- package/dist/streaming/registry.js +21 -3
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +157 -29
- package/dist/streaming/setup.d.ts.map +1 -0
- package/dist/streaming/setup.js +1034 -458
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.d.ts +21 -1
- package/dist/streaming/showInfo.d.ts.map +1 -0
- package/dist/streaming/showInfo.js +31 -16
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +10 -10
- package/dist/streaming/statusEmitter.d.ts.map +1 -0
- package/dist/streaming/statusEmitter.js +5 -8
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +16 -4
- package/dist/types/channels.d.ts.map +1 -0
- package/dist/types/channels.js +4 -2
- package/dist/types/channels.js.map +1 -1
- package/dist/types/config.d.ts +16 -5
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/profiles.d.ts +6 -4
- package/dist/types/profiles.d.ts.map +1 -0
- package/dist/types/selection.d.ts +31 -3
- package/dist/types/selection.d.ts.map +1 -0
- package/dist/types/selection.js +4 -2
- package/dist/types/selection.js.map +1 -1
- package/dist/types/shared.d.ts +1 -0
- package/dist/types/shared.d.ts.map +1 -0
- package/dist/types/streaming.d.ts +8 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/upgrade/commands.context.d.ts +1 -0
- package/dist/upgrade/commands.context.d.ts.map +1 -0
- package/dist/upgrade/commands.context.js +14 -10
- package/dist/upgrade/commands.context.js.map +1 -1
- package/dist/upgrade/commands.d.ts +8 -15
- package/dist/upgrade/commands.d.ts.map +1 -0
- package/dist/upgrade/commands.js +27 -28
- package/dist/upgrade/commands.js.map +1 -1
- package/dist/upgrade/detection.context.d.ts +1 -0
- package/dist/upgrade/detection.context.d.ts.map +1 -0
- package/dist/upgrade/detection.context.js +4 -1
- package/dist/upgrade/detection.context.js.map +1 -1
- package/dist/upgrade/detection.d.ts +9 -7
- package/dist/upgrade/detection.d.ts.map +1 -0
- package/dist/upgrade/detection.js +23 -54
- package/dist/upgrade/detection.js.map +1 -1
- package/dist/upgrade/index.d.ts +2 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +1 -0
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/lifecycle.context.d.ts +20 -0
- package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
- package/dist/upgrade/lifecycle.context.js +47 -0
- package/dist/upgrade/lifecycle.context.js.map +1 -0
- package/dist/upgrade/lifecycle.d.ts +72 -0
- package/dist/upgrade/lifecycle.d.ts.map +1 -0
- package/dist/upgrade/lifecycle.js +175 -0
- package/dist/upgrade/lifecycle.js.map +1 -0
- package/dist/upgrade/pathHandle.d.ts +30 -0
- package/dist/upgrade/pathHandle.d.ts.map +1 -0
- package/dist/upgrade/pathHandle.js +102 -0
- package/dist/upgrade/pathHandle.js.map +1 -0
- package/dist/utils/bootSession.context.d.ts +16 -0
- package/dist/utils/bootSession.context.d.ts.map +1 -0
- package/dist/utils/bootSession.context.js +60 -0
- package/dist/utils/bootSession.context.js.map +1 -0
- package/dist/utils/bootSession.d.ts +17 -0
- package/dist/utils/bootSession.d.ts.map +1 -0
- package/dist/utils/bootSession.js +20 -0
- package/dist/utils/bootSession.js.map +1 -0
- package/dist/utils/chromeFetch.d.ts +1 -0
- package/dist/utils/chromeFetch.d.ts.map +1 -0
- package/dist/utils/cliOutput.d.ts +1 -0
- package/dist/utils/cliOutput.d.ts.map +1 -0
- package/dist/utils/clock.d.ts +5 -4
- package/dist/utils/clock.d.ts.map +1 -0
- package/dist/utils/clock.js +19 -16
- package/dist/utils/clock.js.map +1 -1
- package/dist/utils/debugFilter.d.ts +9 -1
- package/dist/utils/debugFilter.d.ts.map +1 -0
- package/dist/utils/debugFilter.js +60 -33
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/delay.d.ts +48 -15
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +73 -20
- package/dist/utils/delay.js.map +1 -1
- package/dist/utils/errors.d.ts +32 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +45 -4
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/evaluate.d.ts +1 -0
- package/dist/utils/evaluate.d.ts.map +1 -0
- package/dist/utils/evaluate.js +29 -23
- package/dist/utils/evaluate.js.map +1 -1
- package/dist/utils/ffmpeg.context.d.ts +1 -0
- package/dist/utils/ffmpeg.context.d.ts.map +1 -0
- package/dist/utils/ffmpeg.context.js.map +1 -1
- package/dist/utils/ffmpeg.d.ts +29 -7
- package/dist/utils/ffmpeg.d.ts.map +1 -0
- package/dist/utils/ffmpeg.js +32 -14
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/fileLogger.d.ts +3 -1
- package/dist/utils/fileLogger.d.ts.map +1 -0
- package/dist/utils/fileLogger.js +64 -29
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/format.d.ts +14 -1
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +19 -5
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logEmitter.d.ts +1 -0
- package/dist/utils/logEmitter.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +10 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/m3u.d.ts +3 -2
- package/dist/utils/m3u.d.ts.map +1 -0
- package/dist/utils/m3u.js +4 -3
- package/dist/utils/m3u.js.map +1 -1
- package/dist/utils/markup.d.ts +13 -1
- package/dist/utils/markup.d.ts.map +1 -0
- package/dist/utils/markup.js +28 -4
- package/dist/utils/markup.js.map +1 -1
- package/dist/utils/memo.d.ts +3 -2
- package/dist/utils/memo.d.ts.map +1 -0
- package/dist/utils/memo.js +3 -3
- package/dist/utils/morganStream.d.ts +1 -0
- package/dist/utils/morganStream.d.ts.map +1 -0
- package/dist/utils/network.d.ts +1 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +2 -2
- package/dist/utils/pid.d.ts +3 -25
- package/dist/utils/pid.d.ts.map +1 -0
- package/dist/utils/pid.js +10 -49
- package/dist/utils/pid.js.map +1 -1
- package/dist/utils/platform.d.ts +3 -1
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +2 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/processInspector.context.d.ts +8 -0
- package/dist/utils/processInspector.context.d.ts.map +1 -0
- package/dist/utils/processInspector.context.js +106 -0
- package/dist/utils/processInspector.context.js.map +1 -0
- package/dist/utils/processInspector.d.ts +55 -0
- package/dist/utils/processInspector.d.ts.map +1 -0
- package/dist/utils/processInspector.js +127 -0
- package/dist/utils/processInspector.js.map +1 -0
- package/dist/utils/retry.d.ts +25 -2
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +33 -6
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/runtimeIdentity.context.d.ts +7 -0
- package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
- package/dist/utils/runtimeIdentity.context.js +43 -0
- package/dist/utils/runtimeIdentity.context.js.map +1 -0
- package/dist/utils/runtimeIdentity.d.ts +98 -0
- package/dist/utils/runtimeIdentity.d.ts.map +1 -0
- package/dist/utils/runtimeIdentity.js +181 -0
- package/dist/utils/runtimeIdentity.js.map +1 -0
- package/dist/utils/sanitize.d.ts +1 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/streamContext.d.ts +2 -1
- package/dist/utils/streamContext.d.ts.map +1 -0
- package/dist/utils/streamContext.js +1 -1
- package/dist/utils/timing.d.ts +2 -1
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/timing.js +0 -5
- package/dist/utils/timing.js.map +1 -1
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +47 -13
- package/dist/utils/version.js.map +1 -1
- package/package.json +26 -20
package/dist/routes/health.d.ts
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
import type { Express } from "express";
|
|
2
|
+
import { getAllStreams, getStreamCount, getTotalSegmentMemory } from "../streaming/registry.ts";
|
|
3
|
+
import { getBrowserPages, getChromeVersion, isBrowserConnected } from "../browser/index.ts";
|
|
4
|
+
import { getClientSummary } from "../streaming/clients.ts";
|
|
5
|
+
/**
|
|
6
|
+
* HealthDeps is the state-reader boundary the /health handler folds into its payload: browser connection/pages/version, the stream registry counts and memory, and
|
|
7
|
+
* the per-stream client summary. It is injected as a default parameter so a test can substitute in-memory readers through the same HealthDeps parameter - no
|
|
8
|
+
* loader mock - while production uses the real defaultHealthDeps. isFFmpegAvailable, CONFIG, and the process memory/version are read directly because they are
|
|
9
|
+
* not the substituted boundary. This mirrors the Clock port (utils/clock.ts): a typed interface plus a module-const default, consumed through a defaulted parameter.
|
|
10
|
+
*/
|
|
11
|
+
export interface HealthDeps {
|
|
12
|
+
readonly getAllStreams: typeof getAllStreams;
|
|
13
|
+
readonly getBrowserPages: typeof getBrowserPages;
|
|
14
|
+
readonly getChromeVersion: typeof getChromeVersion;
|
|
15
|
+
readonly getClientSummary: typeof getClientSummary;
|
|
16
|
+
readonly getStreamCount: typeof getStreamCount;
|
|
17
|
+
readonly getTotalSegmentMemory: typeof getTotalSegmentMemory;
|
|
18
|
+
readonly isBrowserConnected: typeof isBrowserConnected;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The health decision: the tri-state status, its HTTP code, and the operator message. Deriving it in one place collapses what were three separate evaluations of
|
|
22
|
+
* the same two conditions (status, message, and HTTP code) into a single source of truth.
|
|
23
|
+
*/
|
|
24
|
+
interface HealthDecision {
|
|
25
|
+
readonly httpStatus: 200 | 503;
|
|
26
|
+
readonly message?: string;
|
|
27
|
+
readonly status: "degraded" | "healthy" | "unhealthy";
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Derives the health status, HTTP code, and operator message from browser connectivity and stream utilization. Unhealthy (browser down) outranks degraded
|
|
31
|
+
* (utilization at or past the 0.8 threshold); otherwise healthy. Pure and total - no I/O - so the branch precedence and the threshold live in exactly one place.
|
|
32
|
+
* @param browserConnected - Whether the shared browser is currently connected.
|
|
33
|
+
* @param streamUtilization - Active streams divided by the configured concurrency limit.
|
|
34
|
+
* @returns The tri-state decision consumed by the /health handler.
|
|
35
|
+
*/
|
|
36
|
+
export declare function deriveHealthStatus(browserConnected: boolean, streamUtilization: number): HealthDecision;
|
|
2
37
|
/**
|
|
3
38
|
* Creates a health check endpoint for monitoring application status with detailed metrics.
|
|
4
39
|
* @param app - The Express application.
|
|
40
|
+
* @param deps - The state readers the handler folds into its payload; defaults to defaultHealthDeps, injectable so a test can drive every branch in memory.
|
|
5
41
|
*/
|
|
6
|
-
export declare function setupHealthEndpoint(app: Express): void;
|
|
42
|
+
export declare function setupHealthEndpoint(app: Express, deps?: HealthDeps): void;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM3D;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAEzB,QAAQ,CAAC,aAAa,EAAE,OAAO,aAAa,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,OAAO,eAAe,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,OAAO,cAAc,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CACxD;AAID;;;GAGG;AACH,UAAU,cAAc;IAEtB,QAAQ,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;CACvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAavG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,UAA8B,GAAG,IAAI,CAuF5F"}
|
package/dist/routes/health.js
CHANGED
|
@@ -3,20 +3,35 @@ import { getBrowserPages, getChromeVersion, isBrowserConnected } from "../browse
|
|
|
3
3
|
import { getPackageVersion, isFFmpegAvailable } from "../utils/index.js";
|
|
4
4
|
import { CONFIG } from "../config/index.js";
|
|
5
5
|
import { getClientSummary } from "../streaming/clients.js";
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const defaultHealthDeps = { getAllStreams, getBrowserPages, getChromeVersion, getClientSummary, getStreamCount, getTotalSegmentMemory, isBrowserConnected };
|
|
7
|
+
/**
|
|
8
|
+
* Derives the health status, HTTP code, and operator message from browser connectivity and stream utilization. Unhealthy (browser down) outranks degraded
|
|
9
|
+
* (utilization at or past the 0.8 threshold); otherwise healthy. Pure and total - no I/O - so the branch precedence and the threshold live in exactly one place.
|
|
10
|
+
* @param browserConnected - Whether the shared browser is currently connected.
|
|
11
|
+
* @param streamUtilization - Active streams divided by the configured concurrency limit.
|
|
12
|
+
* @returns The tri-state decision consumed by the /health handler.
|
|
8
13
|
*/
|
|
14
|
+
export function deriveHealthStatus(browserConnected, streamUtilization) {
|
|
15
|
+
if (!browserConnected) {
|
|
16
|
+
return { httpStatus: 503, message: "Browser is not connected.", status: "unhealthy" };
|
|
17
|
+
}
|
|
18
|
+
if (streamUtilization >= 0.8) {
|
|
19
|
+
return { httpStatus: 200, message: "Approaching stream capacity limit.", status: "degraded" };
|
|
20
|
+
}
|
|
21
|
+
return { httpStatus: 200, status: "healthy" };
|
|
22
|
+
}
|
|
9
23
|
/**
|
|
10
24
|
* Creates a health check endpoint for monitoring application status with detailed metrics.
|
|
11
25
|
* @param app - The Express application.
|
|
26
|
+
* @param deps - The state readers the handler folds into its payload; defaults to defaultHealthDeps, injectable so a test can drive every branch in memory.
|
|
12
27
|
*/
|
|
13
|
-
export function setupHealthEndpoint(app) {
|
|
28
|
+
export function setupHealthEndpoint(app, deps = defaultHealthDeps) {
|
|
14
29
|
app.get("/health", async (_req, res) => {
|
|
15
|
-
const browserConnected = isBrowserConnected();
|
|
30
|
+
const browserConnected = deps.isBrowserConnected();
|
|
16
31
|
let pageCount = 0;
|
|
17
32
|
if (browserConnected) {
|
|
18
33
|
try {
|
|
19
|
-
const pages = await getBrowserPages();
|
|
34
|
+
const pages = await deps.getBrowserPages();
|
|
20
35
|
pageCount = pages.length;
|
|
21
36
|
}
|
|
22
37
|
catch (_error) {
|
|
@@ -24,33 +39,29 @@ export function setupHealthEndpoint(app) {
|
|
|
24
39
|
}
|
|
25
40
|
}
|
|
26
41
|
const memoryUsage = process.memoryUsage();
|
|
27
|
-
const segmentMemory = getTotalSegmentMemory();
|
|
42
|
+
const segmentMemory = deps.getTotalSegmentMemory();
|
|
28
43
|
const ffmpegAvailable = await isFFmpegAvailable();
|
|
29
44
|
// Aggregate client data across all active streams for the system-wide summary.
|
|
30
45
|
const allClientTypes = new Map();
|
|
31
46
|
let totalClients = 0;
|
|
32
|
-
for (const streamInfo of getAllStreams()) {
|
|
33
|
-
const summary = getClientSummary(streamInfo.id);
|
|
47
|
+
for (const streamInfo of deps.getAllStreams()) {
|
|
48
|
+
const summary = deps.getClientSummary(streamInfo.id);
|
|
34
49
|
totalClients += summary.total;
|
|
35
50
|
for (const entry of summary.clients) {
|
|
36
51
|
allClientTypes.set(entry.type, (allClientTypes.get(entry.type) ?? 0) + entry.count);
|
|
37
52
|
}
|
|
38
53
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
else if (streamUtilization >= 0.8) {
|
|
45
|
-
status = "degraded";
|
|
46
|
-
}
|
|
54
|
+
// Stream utilization is the fraction of the configured concurrency limit currently in use. Once it reaches 80% we report "degraded" and surface a capacity
|
|
55
|
+
// warning below, giving monitoring and alerting systems headroom to react while streams can still be served rather than only flagging trouble at full saturation.
|
|
56
|
+
const streamUtilization = deps.getStreamCount() / CONFIG.streaming.maxConcurrentStreams;
|
|
57
|
+
const decision = deriveHealthStatus(browserConnected, streamUtilization);
|
|
47
58
|
const health = {
|
|
48
59
|
browser: {
|
|
49
60
|
connected: browserConnected,
|
|
50
61
|
pageCount: pageCount
|
|
51
62
|
},
|
|
52
63
|
captureMode: CONFIG.streaming.captureMode,
|
|
53
|
-
chrome: getChromeVersion(),
|
|
64
|
+
chrome: deps.getChromeVersion(),
|
|
54
65
|
clients: {
|
|
55
66
|
byType: Array.from(allClientTypes.entries()).toSorted(([a], [b]) => a.localeCompare(b)).map(([type, count]) => ({ count, type })),
|
|
56
67
|
total: totalClients
|
|
@@ -62,24 +73,19 @@ export function setupHealthEndpoint(app) {
|
|
|
62
73
|
rss: memoryUsage.rss,
|
|
63
74
|
segmentBuffers: segmentMemory
|
|
64
75
|
},
|
|
65
|
-
status: status,
|
|
76
|
+
status: decision.status,
|
|
66
77
|
streams: {
|
|
67
|
-
active: getStreamCount(),
|
|
78
|
+
active: deps.getStreamCount(),
|
|
68
79
|
limit: CONFIG.streaming.maxConcurrentStreams
|
|
69
80
|
},
|
|
70
81
|
timestamp: new Date().toISOString(),
|
|
71
82
|
uptime: process.uptime(),
|
|
72
83
|
version: getPackageVersion()
|
|
73
84
|
};
|
|
74
|
-
if (
|
|
75
|
-
health.message =
|
|
76
|
-
}
|
|
77
|
-
else if (streamUtilization >= 0.8) {
|
|
78
|
-
health.message = "Approaching stream capacity limit.";
|
|
85
|
+
if (decision.message !== undefined) {
|
|
86
|
+
health.message = decision.message;
|
|
79
87
|
}
|
|
80
|
-
|
|
81
|
-
const httpStatus = status === "unhealthy" ? 503 : 200;
|
|
82
|
-
res.status(httpStatus).json(health);
|
|
88
|
+
res.status(decision.httpStatus).json(health);
|
|
83
89
|
});
|
|
84
90
|
}
|
|
85
91
|
//# sourceMappingURL=health.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/hls.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../src/routes/hls.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAUvC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAyBjD"}
|
package/dist/routes/icons.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/routes/icons.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,QACoE,CAAC;AAE1F,eAAO,MAAM,SAAS,QACsF,CAAC;AAE7G,eAAO,MAAM,SAAS,QACuI,CAAC;AAE9J,eAAO,MAAM,WAAW,QAEG,CAAC;AAE5B,eAAO,MAAM,YAAY,QACwE,CAAC;AAElG,eAAO,MAAM,SAAS,QAC6D,CAAC;AAEpF,eAAO,MAAM,WAAW,QAC6E,CAAC;AAEtG,eAAO,MAAM,WAAW,QACyH,CAAC;AAElJ,eAAO,MAAM,WAAW,QACyE,CAAC;AAElG,eAAO,MAAM,WAAW,QACwH,CAAC;AAEjJ,eAAO,MAAM,SAAS,QAGoD,CAAC;AAE3E,eAAO,MAAM,UAAU,QAC0H,CAAC;AAElJ,eAAO,MAAM,WAAW,QAEuC,CAAC;AAEhE,eAAO,MAAM,WAAW,QACsE,CAAC;AAE/F,eAAO,MAAM,aAAa,QACwG,CAAC;AAInI,eAAO,MAAM,WAAW,QAC2F,CAAC"}
|
package/dist/routes/icons.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Copyright(C) 2024-2026, HJD (https://github.com/hjdhjd). All rights reserved.
|
|
2
2
|
*
|
|
3
3
|
* icons.ts: Shared SVG icon constants for the PrismCast web UI. All icons are 14x14 with stroke-based rendering using currentColor so they adapt to their
|
|
4
|
-
* container's text color. Icons are organized alphabetically by name.
|
|
4
|
+
* container's text color. Icons are organized into labeled sections (Action, Status) with entries listed alphabetically by name within each section.
|
|
5
5
|
*/
|
|
6
6
|
// Action Icons.
|
|
7
7
|
export const ICON_ADD = "<svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" " +
|
package/dist/routes/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAsBvC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAmB9C"}
|
package/dist/routes/logs.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/routes/logs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAgL1D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA8DpD"}
|
package/dist/routes/logs.js
CHANGED
|
@@ -34,6 +34,8 @@ function parseLogLine(line) {
|
|
|
34
34
|
if (!match) {
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
|
+
// LOG_LINE_PATTERN always yields exactly three capture groups in this positional order, so the cast onto a fixed tuple is sound: group 1 (timestamp) and
|
|
38
|
+
// group 3 (message) always participate, while group 2 (the level) is the only optional one and is therefore typed as string | undefined.
|
|
37
39
|
const [, timestamp, levelStr, message] = match;
|
|
38
40
|
let level = "info";
|
|
39
41
|
let categoryTag;
|
|
@@ -73,7 +75,8 @@ async function readLogEntries(lines, levelFilter) {
|
|
|
73
75
|
try {
|
|
74
76
|
const content = await fsPromises.readFile(logFilePath, "utf-8");
|
|
75
77
|
const allLines = content.split("\n").filter((line) => line.trim().length > 0);
|
|
76
|
-
//
|
|
78
|
+
// parseLogLine returns null for a line that fails to match LOG_LINE_PATTERN; such lines are silently skipped here rather than surfaced as parse errors,
|
|
79
|
+
// since partial writes and non-log content in the file are an expected artifact, not an exceptional condition worth reporting to the caller.
|
|
77
80
|
const allEntries = [];
|
|
78
81
|
for (const line of allLines) {
|
|
79
82
|
const entry = parseLogLine(line);
|
|
@@ -82,7 +85,9 @@ async function readLogEntries(lines, levelFilter) {
|
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
87
|
const total = allEntries.length;
|
|
85
|
-
//
|
|
88
|
+
// The total above already reflects every parsed entry; filtering below only narrows what is returned in filteredEntries. The allowlist covers error,
|
|
89
|
+
// info, and warn only, since debug entries are gated at the logging source via the PRISMCAST_DEBUG category filter (see utils/debugFilter.ts) rather
|
|
90
|
+
// than through this query parameter, so debug is never a selectable level here.
|
|
86
91
|
let filteredEntries = allEntries;
|
|
87
92
|
if (levelFilter && ["error", "info", "warn"].includes(levelFilter)) {
|
|
88
93
|
filteredEntries = allEntries.filter((entry) => entry.level === levelFilter);
|
|
@@ -111,7 +116,9 @@ export function setupLogsEndpoint(app) {
|
|
|
111
116
|
app.get("/logs", async (req, res) => {
|
|
112
117
|
// Parse query parameters.
|
|
113
118
|
const linesParam = parseInt(req.query["lines"], 10);
|
|
114
|
-
|
|
119
|
+
// The 1000-line ceiling bounds how much log content a single request can pull into a JSON response; 100 is the default because it matches the log
|
|
120
|
+
// viewer's initial page size, so an unqualified request returns exactly what the UI renders on first load.
|
|
121
|
+
const lines = (!Number.isNaN(linesParam) && (linesParam > 0) && (linesParam <= 1000)) ? linesParam : 100;
|
|
115
122
|
const level = req.query["level"];
|
|
116
123
|
try {
|
|
117
124
|
const logsResponse = await readLogEntries(lines, level);
|
|
@@ -133,7 +140,8 @@ export function setupLogsEndpoint(app) {
|
|
|
133
140
|
*/
|
|
134
141
|
app.get("/logs/stream", (req, res) => {
|
|
135
142
|
const sse = installSseStream(res);
|
|
136
|
-
// Optional level filter from query parameter.
|
|
143
|
+
// Optional level filter from query parameter. As with the /logs allowlist above, debug is never a selectable level here: debug entries are gated at
|
|
144
|
+
// the logging source via the PRISMCAST_DEBUG category filter (see utils/debugFilter.ts), not through this parameter.
|
|
137
145
|
const levelFilter = req.query["level"];
|
|
138
146
|
const validLevels = ["error", "info", "warn"];
|
|
139
147
|
const filterLevel = (levelFilter && validLevels.includes(levelFilter)) ? levelFilter : null;
|
|
@@ -144,6 +152,8 @@ export function setupLogsEndpoint(app) {
|
|
|
144
152
|
}
|
|
145
153
|
sse.sendEvent(null, entry);
|
|
146
154
|
});
|
|
155
|
+
// Unsubscribe from the shared log emitter and stop the SSE heartbeat when the client disconnects, so a departed client does not leave a listener
|
|
156
|
+
// registered on subscribeToLogs or receive writes attempted against an already-closed connection.
|
|
147
157
|
req.on("close", () => {
|
|
148
158
|
sse.close();
|
|
149
159
|
unsubscribe();
|
package/dist/routes/logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/routes/logs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/routes/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/mpegts.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mpegts.d.ts","sourceRoot":"","sources":["../../src/routes/mpegts.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAWvC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAOpD"}
|
package/dist/routes/play.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"play.d.ts","sourceRoot":"","sources":["../../src/routes/play.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAWvC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAMpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playlist.d.ts","sourceRoot":"","sources":["../../src/routes/playlist.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAY,MAAM,SAAS,CAAC;AAkB1D,UAAU,oBAAoB;IAE5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;CACzB;AA6ED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAkBnD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,oBAAoB,EAC7H,IAAI,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,aAAa,GAAG,MAAM,CA+F5D;AAKD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAmExD"}
|
package/dist/routes/playlist.js
CHANGED
|
@@ -80,7 +80,11 @@ export function resolveBaseUrl(req) {
|
|
|
80
80
|
const forwardedHost = req.get("x-forwarded-host");
|
|
81
81
|
const host = forwardedHost ? (forwardedHost.split(",")[0] ?? "").trim() : req.get("host");
|
|
82
82
|
const fallbackHost = CONFIG.server.host + ":" + String(CONFIG.server.port);
|
|
83
|
-
|
|
83
|
+
// We fall back on an empty host rather than just a nullish one. A present-but-empty X-Forwarded-Host (for example " " or ",") trims its first entry to "", which
|
|
84
|
+
// is non-nullish and would slip past ??, producing a hostless "http:///hls/..." URL. Guarding on truthiness collapses both the undefined and empty-string cases
|
|
85
|
+
// onto the configured server settings.
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- an empty-string host must fall back; ?? would let "" through and emit a hostless URL.
|
|
87
|
+
const resolvedHost = host || fallbackHost;
|
|
84
88
|
return protocol + "://" + resolvedHost;
|
|
85
89
|
}
|
|
86
90
|
/**
|
|
@@ -127,7 +131,8 @@ export function generatePlaylistContent(baseUrl, serviceFilter, tagFilter, sort,
|
|
|
127
131
|
continue;
|
|
128
132
|
}
|
|
129
133
|
}
|
|
130
|
-
// We use the channel key as the channel-id and the guide title
|
|
134
|
+
// We use the channel key as the channel-id and the guide title, falling back to the channel name and then to the channel key, for display. HLS URLs are used
|
|
135
|
+
// for Channels DVR compatibility.
|
|
131
136
|
const displayName = channel.guideTitle ?? channel.name ?? name;
|
|
132
137
|
const streamUrl = baseUrl + "/hls/" + name + "/stream.m3u8";
|
|
133
138
|
// Build the EXTINF line with required channel-id attribute and tvg-name for the friendly display name. Include channel-number when the user has specified one,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playlist.js","sourceRoot":"","sources":["../../src/routes/playlist.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"playlist.js","sourceRoot":"","sources":["../../src/routes/playlist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generates the Overview tab content with a comprehensive user guide covering what PrismCast is, video quality expectations, quick start instructions,
|
|
3
|
-
* channel authentication, working with channels, and system requirements.
|
|
2
|
+
* Generates the Overview tab content with a comprehensive user guide covering what PrismCast is, video quality expectations, quick start instructions,
|
|
3
|
+
* Plex integration, tuning speed, channel authentication, working with channels, and system requirements.
|
|
4
4
|
* @param baseUrl - The base URL for the server.
|
|
5
5
|
* @returns HTML content for the Overview tab.
|
|
6
6
|
*/
|
|
7
7
|
export declare function generateOverviewContent(baseUrl: string): string;
|
|
8
8
|
/**
|
|
9
|
-
* Generates the Help tab content with updating instructions,
|
|
9
|
+
* Generates the Help tab content with updating instructions, backup and migration guidance, display and resolution requirements, platform notes,
|
|
10
|
+
* troubleshooting, and known limitations.
|
|
10
11
|
* @returns HTML content for the Help tab.
|
|
11
12
|
*/
|
|
12
13
|
export declare function generateHelpContent(): string;
|
|
@@ -16,7 +17,8 @@ export declare function generateHelpContent(): string;
|
|
|
16
17
|
*/
|
|
17
18
|
export declare function generateApiReferenceContent(): string;
|
|
18
19
|
/**
|
|
19
|
-
* Generates the Channels tab content. This wraps the channels panel from config.ts
|
|
20
|
+
* Generates the Channels tab content. This wraps the channels panel from routes/config/channels/table.ts, the Custom Profiles panel and
|
|
21
|
+
* profile wizard modal from routes/config/services.ts, and includes the profile-test dialog and the login modal for channel authentication.
|
|
20
22
|
* @returns HTML content for the Channels tab.
|
|
21
23
|
*/
|
|
22
24
|
export declare function generateChannelsTabContent(): string;
|
|
@@ -26,7 +28,8 @@ export declare function generateChannelsTabContent(): string;
|
|
|
26
28
|
*/
|
|
27
29
|
export declare function generateLogsContent(): string;
|
|
28
30
|
/**
|
|
29
|
-
* Generates the Configuration tab content with subtabs for
|
|
31
|
+
* Generates the Configuration tab content with subtabs for settings, advanced, and backup.
|
|
30
32
|
* @returns HTML content for the Configuration tab.
|
|
31
33
|
*/
|
|
32
34
|
export declare function generateConfigContent(): string;
|
|
35
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/routes/root/content.ts"],"names":[],"mappings":"AAkFA;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiL/D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAiJ5C;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAkXpD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAuDnD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA4K5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAiE9C"}
|