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
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* - ClientState (this file) - the mutable record of streamData / systemData / expandedStreams / staleness counters / rAF gates
|
|
10
10
|
* - ClientExternals (this file) - the readonly handle to sibling-script window.* APIs (channelTable, dropdowns, copyToClipboard, etc.)
|
|
11
11
|
* - HANDLER_CONSTANTS (this file) - the registry of script-side constants (health color CSS vars, label maps, row tints) emitted into the script body
|
|
12
|
-
* - HANDLER_FUNCTIONS (this file) - the registry of
|
|
12
|
+
* - HANDLER_FUNCTIONS (this file) - the registry of free-standing handler functions (formatters, renderers, DOM mutators, and SSE handlers) whose .toString()
|
|
13
|
+
* output is concatenated into the emitted script body
|
|
13
14
|
* - generateStatusScript (status.ts) - the boundary; the only place that builds strings, that wires window.*, and that constructs the EventSource
|
|
14
15
|
*
|
|
15
16
|
* Why this file exists. Free-standing handler functions are directly importable and callable from Node tests with synthetic context literals, which avoids the
|
|
@@ -19,14 +20,15 @@
|
|
|
19
20
|
* Single source of truth. Every function defined here is consumed twice - once by Node tests that import and call it directly, and once by the browser via
|
|
20
21
|
* Function.prototype.toString() concatenation in generateStatusScript(). The TypeScript function IS the source; there is no parallel hand-mirrored implementation
|
|
21
22
|
* to drift away from it. The constraint this places on function bodies is that they may reference only their parameters, browser globals (document, JSON, Date,
|
|
22
|
-
* Math, URL, Object, Number, requestAnimationFrame, setInterval, EventSource, window, CustomEvent
|
|
23
|
-
*
|
|
24
|
-
* identifier.
|
|
23
|
+
* Math, URL, Object, Number, requestAnimationFrame, setInterval, EventSource, window, CustomEvent, and escapeHtml - the shared client-escape SSOT installed on
|
|
24
|
+
* window by shared.ts, treated here as a platform-like global), or sibling functions that are also emitted. No imports, no closures over module-scope TS variables,
|
|
25
|
+
* no Node-only APIs. The constants are emitted via JSON.stringify so handler bodies can reference them by their TS-side identifier.
|
|
25
26
|
*/
|
|
26
27
|
/**
|
|
27
|
-
* Builds an empty client state.
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* Builds an empty client state. This is the test-fixture seed; the production IIFE in status.ts does NOT call it - it constructs the initial state as an inline
|
|
29
|
+
* object literal whose shape must be kept in sync with this function by hand (the two are parallel definitions, not a shared call). Defaults to "no streams, no
|
|
30
|
+
* system data, watchdog timestamps zeroed, rAF gates open." lastStatusEventTime is zeroed here; the IIFE sets it to Date.now() directly in its own literal right
|
|
31
|
+
* before opening the EventSource so the staleness watchdog has a meaningful baseline. Tests that exercise the watchdog seed it explicitly.
|
|
30
32
|
*/
|
|
31
33
|
export function createInitialState() {
|
|
32
34
|
return {
|
|
@@ -39,7 +41,7 @@ export function createInitialState() {
|
|
|
39
41
|
tableRenderPending: false
|
|
40
42
|
};
|
|
41
43
|
}
|
|
42
|
-
// CSS-variable-backed color tokens for the health-state badge dot. The recovering/stalled/etc. literals are the
|
|
44
|
+
// CSS-variable-backed color tokens for the health-state badge dot. The recovering/stalled/etc. literals are the health-state values the server emits. Typed as a wide
|
|
43
45
|
// string-record so script-side handlers can index by any health value with a `?? fallback` pattern (consistent with how the other lookup tables below are
|
|
44
46
|
// structured).
|
|
45
47
|
const healthColorVars = {
|
|
@@ -132,7 +134,7 @@ function formatTime(isoString) {
|
|
|
132
134
|
}
|
|
133
135
|
return timeStr;
|
|
134
136
|
}
|
|
135
|
-
// Format a timestamp as "N {unit}s ago" relative to now.
|
|
137
|
+
// Format a timestamp as "N {unit}s ago" relative to now.
|
|
136
138
|
function formatTimeAgo(ts) {
|
|
137
139
|
const seconds = Math.floor((Date.now() - ts) / 1000);
|
|
138
140
|
if (seconds < 60) {
|
|
@@ -150,7 +152,8 @@ function formatTimeAgo(ts) {
|
|
|
150
152
|
return String(days) + (days === 1 ? " day ago" : " days ago");
|
|
151
153
|
}
|
|
152
154
|
// Extract a concise display domain from a URL (last two hostname parts). Mirrors the server-side extractDomain() in utils/format.ts so the popover label and the
|
|
153
|
-
// table fallback agree on what "the domain" means.
|
|
155
|
+
// table fallback agree on what "the domain" means. Uses the static URL.parse, which returns null on a malformed URL rather than throwing... this is the deliberate
|
|
156
|
+
// browser-side counterpart to the new URL() + try/catch shape used server-side, and it requires the target browser runtime to support URL.parse.
|
|
154
157
|
function getDomain(url) {
|
|
155
158
|
const parsed = URL.parse(url);
|
|
156
159
|
if (!parsed) {
|
|
@@ -160,8 +163,8 @@ function getDomain(url) {
|
|
|
160
163
|
return (parts.length > 2) ? parts.slice(-2).join(".") : parts.join(".");
|
|
161
164
|
}
|
|
162
165
|
// Resolve the recovery-level label for a stream in the recovering state. Kept as a dedicated helper because the mapping is level-based, not string-based, so it
|
|
163
|
-
// cannot fold into the same lookup map as the top-level health labels. Escalation level semantics defined in monitor.ts: L1=play/unmute, L2=
|
|
164
|
-
//
|
|
166
|
+
// cannot fold into the same lookup map as the top-level health labels. Escalation level semantics defined in monitor.ts: L1=play/unmute, L2=source reload,
|
|
167
|
+
// L3=page navigation (escalationLevel maxes at 3); the case 4+ arm below is defensive padding beyond that max.
|
|
165
168
|
function getRecoveringLabel(level) {
|
|
166
169
|
switch (level) {
|
|
167
170
|
case 1: return "Resuming playback";
|
|
@@ -182,7 +185,7 @@ function formatLastIssue(s) {
|
|
|
182
185
|
if (!s.lastIssueType || !s.lastIssueTime) {
|
|
183
186
|
return "None";
|
|
184
187
|
}
|
|
185
|
-
const issueLabel = s.lastIssueType.charAt(0).toUpperCase() + s.lastIssueType.slice(1);
|
|
188
|
+
const issueLabel = escapeHtml(s.lastIssueType.charAt(0).toUpperCase() + s.lastIssueType.slice(1));
|
|
186
189
|
const timeStr = formatTime(new Date(s.lastIssueTime).toISOString());
|
|
187
190
|
const status = (s.health === "healthy") ? " (recovered)" : " (recovering)";
|
|
188
191
|
return issueLabel + " at " + timeStr + status;
|
|
@@ -207,7 +210,7 @@ function formatClients(s) {
|
|
|
207
210
|
}
|
|
208
211
|
const parts = [];
|
|
209
212
|
for (const c of s.clients) {
|
|
210
|
-
parts.push(String(c.count) + " " + (clientTypeLabels[c.type] ?? c.type));
|
|
213
|
+
parts.push(String(c.count) + " " + (clientTypeLabels[c.type] ?? escapeHtml(c.type)));
|
|
211
214
|
}
|
|
212
215
|
return parts.join(", ");
|
|
213
216
|
}
|
|
@@ -224,7 +227,8 @@ function renderHealthCellContent(s) {
|
|
|
224
227
|
// Detail panel codec line: "{Codec} ({Mode}){suffix}" where suffix carries native-HLS bandwidth and resolution if present. Hardware-accelerated codecs prefix
|
|
225
228
|
// the lightning bolt; native HLS without a captureCodec fills "Native HLS" instead.
|
|
226
229
|
function renderDetailCodec(s) {
|
|
227
|
-
const
|
|
230
|
+
const codec = s.captureCodec ? escapeHtml(s.captureCodec) : "";
|
|
231
|
+
const codecLabel = s.captureCodec ? (s.hardwareAccelerated ? "⚡ " + codec : codec) :
|
|
228
232
|
(s.streamingMode === "native" ? "Native HLS" : "Unknown");
|
|
229
233
|
const modeLabel = s.streamingMode === "native" ? "Native HLS" : "Capture";
|
|
230
234
|
let qualitySuffix = "";
|
|
@@ -235,7 +239,7 @@ function renderDetailCodec(s) {
|
|
|
235
239
|
}
|
|
236
240
|
if (s.nativeResolution) {
|
|
237
241
|
const h = s.nativeResolution.split("x")[1];
|
|
238
|
-
qParts.push((h ? nativeResolutionLabels[h] : undefined) ?? s.nativeResolution);
|
|
242
|
+
qParts.push((h ? nativeResolutionLabels[h] : undefined) ?? escapeHtml(s.nativeResolution));
|
|
239
243
|
}
|
|
240
244
|
if (qParts.length > 0) {
|
|
241
245
|
qualitySuffix = " - " + qParts.join(" ");
|
|
@@ -243,7 +247,7 @@ function renderDetailCodec(s) {
|
|
|
243
247
|
}
|
|
244
248
|
return "<strong>Codec:</strong> " + codecLabel + " (" + modeLabel + ")" + qualitySuffix;
|
|
245
249
|
}
|
|
246
|
-
// Detail panel "Started:" line with optional "
|
|
250
|
+
// Detail panel "Started:" line with an optional " · N HLS, M MPEG-TS" client suffix (middot separator, comma-joined list, no parentheses) when clients > 0.
|
|
247
251
|
function renderDetailStarted(s) {
|
|
248
252
|
const clientSuffix = s.clientCount > 0 ? " · " + formatClients(s) : "";
|
|
249
253
|
return "<strong>Started:</strong> " + formatTime(s.startTime) + clientSuffix;
|
|
@@ -293,7 +297,7 @@ function buildStreamPopoverContent(menu, ctx) {
|
|
|
293
297
|
const name = (s.channel ?? "") || (s.serviceName ?? "") || getDomain(s.url);
|
|
294
298
|
const dur = Math.floor((now - new Date(s.startTime).getTime()) / 1000);
|
|
295
299
|
const hwBadge = s.hardwareAccelerated ? " <span title=\"Hardware accelerated\">⚡</span>" : "";
|
|
296
|
-
const showSuffix = s.showName ? " <span class=\"stream-popover-show\">" + s.showName + "</span>" : "";
|
|
300
|
+
const showSuffix = s.showName ? " <span class=\"stream-popover-show\">" + escapeHtml(s.showName) + "</span>" : "";
|
|
297
301
|
html += "<div class=\"stream-popover-row\">";
|
|
298
302
|
html += "<span class=\"status-dot\" style=\"color: " + color + ";\">●</span>";
|
|
299
303
|
html += ctx.externals.channelDisplayHtml(s.logoUrl, name, "stream-popover-logo", "stream-popover-channel");
|
|
@@ -318,7 +322,7 @@ function updateStreamPopover(ctx) {
|
|
|
318
322
|
}
|
|
319
323
|
// Render scheduling. The DOM-writing render functions funnel through requestAnimationFrame gates so multiple SSE events arriving within the same frame produce a
|
|
320
324
|
// single DOM write instead of redundant back-to-back rebuilds that destroy and recreate image elements.
|
|
321
|
-
// Schedule a full-table render on the next animation frame.
|
|
325
|
+
// Schedule a full-table render on the next animation frame. Safe to call repeatedly within the same frame - repeated calls collapse into one render.
|
|
322
326
|
function scheduleTableRender(ctx) {
|
|
323
327
|
if (!ctx.state.tableRenderPending) {
|
|
324
328
|
ctx.state.tableRenderPending = true;
|
|
@@ -328,7 +332,7 @@ function scheduleTableRender(ctx) {
|
|
|
328
332
|
});
|
|
329
333
|
}
|
|
330
334
|
}
|
|
331
|
-
// Schedule a popover refresh on the next animation frame.
|
|
335
|
+
// Schedule a popover refresh on the next animation frame. Safe to call repeatedly within the same frame.
|
|
332
336
|
function schedulePopoverRender(ctx) {
|
|
333
337
|
if (!ctx.state.popoverRenderPending) {
|
|
334
338
|
ctx.state.popoverRenderPending = true;
|
|
@@ -357,7 +361,8 @@ function renderStreamsTable(ctx) {
|
|
|
357
361
|
// The channel/serviceName fallback uses || semantics so empty strings (server may emit them when identification is pending) fall through to the domain.
|
|
358
362
|
const channelText = (s.channel ?? "") || (s.serviceName ?? "") || getDomain(s.url);
|
|
359
363
|
const channelDisplay = ctx.externals.channelDisplayHtml(s.logoUrl, channelText, "channel-logo", "channel-text");
|
|
360
|
-
html += "<tr class=\"stream-row\" data-id=\"" + id + "\"
|
|
364
|
+
html += "<tr class=\"stream-row\" data-id=\"" + id + "\" data-click-action=\"toggle-stream-details\" data-stream-id=\"" + id +
|
|
365
|
+
"\" style=\"background-color: " + rowTint + ";\">";
|
|
361
366
|
html += "<td class=\"chevron\">" + chevron + "</td>";
|
|
362
367
|
const hwIcon = s.hardwareAccelerated ? "⚡ " : "";
|
|
363
368
|
let nativeBadge = "";
|
|
@@ -365,11 +370,11 @@ function renderStreamsTable(ctx) {
|
|
|
365
370
|
nativeBadge = " <span class=\"native-badge\" title=\"Native HLS\">Native</span>";
|
|
366
371
|
}
|
|
367
372
|
else if (s.hardwareAccelerated) {
|
|
368
|
-
nativeBadge = " <span class=\"native-badge\" title=\"Hardware accelerated\">" + hwIcon + (s.captureCodec ?? "") + "</span>";
|
|
373
|
+
nativeBadge = " <span class=\"native-badge\" title=\"Hardware accelerated\">" + hwIcon + escapeHtml(s.captureCodec ?? "") + "</span>";
|
|
369
374
|
}
|
|
370
375
|
const durationSpan = "<span class=\"stream-duration\" id=\"duration-" + id + "\">· " + formatDuration(s.duration) + "</span>";
|
|
371
376
|
html += "<td class=\"stream-info\">" + channelDisplay + nativeBadge + " " + durationSpan + "</td>";
|
|
372
|
-
const showDisplay = s.showName ?? "";
|
|
377
|
+
const showDisplay = escapeHtml(s.showName ?? "");
|
|
373
378
|
html += "<td class=\"stream-show\">" + showDisplay + "</td>";
|
|
374
379
|
html += "<td class=\"stream-health\">" + renderHealthCellContent(s) + "</td>";
|
|
375
380
|
html += "</tr>";
|
|
@@ -378,7 +383,7 @@ function renderStreamsTable(ctx) {
|
|
|
378
383
|
html += "<td colspan=\"4\">";
|
|
379
384
|
html += "<div class=\"details-content\">";
|
|
380
385
|
html += "<div class=\"details-header\">";
|
|
381
|
-
html += "<div class=\"details-url\">" + s.url + "</div>";
|
|
386
|
+
html += "<div class=\"details-url\">" + escapeHtml(s.url) + "</div>";
|
|
382
387
|
html += "<div class=\"details-started\">" + renderDetailStarted(s) + "</div>";
|
|
383
388
|
html += "</div>";
|
|
384
389
|
html += "<div class=\"details-metrics\">";
|
|
@@ -394,8 +399,8 @@ function renderStreamsTable(ctx) {
|
|
|
394
399
|
tbody.innerHTML = html;
|
|
395
400
|
}
|
|
396
401
|
// Targeted update for a single stream row. Updates only the cells that change between health ticks (health badge, show name, client count, row tint, and detail
|
|
397
|
-
// panel metrics if expanded). Leaves the logo, channel name, badge
|
|
398
|
-
// back to a full table render if the row does not exist yet (e.g., race between streamAdded and streamHealthChanged).
|
|
402
|
+
// panel metrics if expanded). Leaves the logo, channel name, and native/hardware badge in the stream-info cell untouched so image elements are never destroyed
|
|
403
|
+
// and recreated. Falls back to a full table render if the row does not exist yet (e.g., race between streamAdded and streamHealthChanged).
|
|
399
404
|
function updateStreamRow(s, ctx) {
|
|
400
405
|
const row = ctx.document.querySelector(".stream-row[data-id=\"" + String(s.id) + "\"]");
|
|
401
406
|
if (!row) {
|
|
@@ -437,7 +442,7 @@ function updateStreamRow(s, ctx) {
|
|
|
437
442
|
}
|
|
438
443
|
}
|
|
439
444
|
}
|
|
440
|
-
// Toggle the expanded/collapsed state of a stream's detail panel. Triggered by
|
|
445
|
+
// Toggle the expanded/collapsed state of a stream's detail panel. Triggered by the project-wide action dispatcher via data-click-action on the table row.
|
|
441
446
|
function toggleStreamDetails(id, ctx) {
|
|
442
447
|
ctx.state.expandedStreams[id] = !ctx.state.expandedStreams[id];
|
|
443
448
|
renderStreamsTable(ctx);
|
|
@@ -455,52 +460,8 @@ function updateDurations(ctx) {
|
|
|
455
460
|
}
|
|
456
461
|
schedulePopoverRender(ctx);
|
|
457
462
|
}
|
|
458
|
-
// Update the per-channel health icon in the Channels tab. Domain match check guards against stale events from a prior service binding - the login button carries
|
|
459
|
-
// a data-auth-domain attribute that must agree with the event's domain (when supplied) for the update to apply.
|
|
460
|
-
function updateChannelHealth(channelKey, status, timestamp, domain, ctx) {
|
|
461
|
-
const row = ctx.document.getElementById("display-row-" + channelKey);
|
|
462
|
-
if (!row) {
|
|
463
|
-
return;
|
|
464
|
-
}
|
|
465
|
-
if (domain) {
|
|
466
|
-
const loginBtn = row.querySelector(".btn-icon-login");
|
|
467
|
-
if (loginBtn && (loginBtn.getAttribute("data-auth-domain") !== domain)) {
|
|
468
|
-
return;
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
const icon = row.querySelector(".btn-icon-health");
|
|
472
|
-
if (!icon) {
|
|
473
|
-
return;
|
|
474
|
-
}
|
|
475
|
-
icon.classList.remove("health-success", "health-failed");
|
|
476
|
-
if (status === "success") {
|
|
477
|
-
icon.classList.add("health-success");
|
|
478
|
-
}
|
|
479
|
-
else {
|
|
480
|
-
icon.classList.add("health-failed");
|
|
481
|
-
}
|
|
482
|
-
icon.title = (status === "success" ? "Succeeded " : "Failed ") + formatTimeAgo(timestamp);
|
|
483
|
-
}
|
|
484
|
-
// Mark every login button bound to the given domain as verified, with a "Verified {time-ago}" tooltip. Called for successful health events and for snapshot
|
|
485
|
-
// domain entries.
|
|
486
|
-
function updateDomainAuth(domain, timestamp, ctx) {
|
|
487
|
-
const buttons = ctx.document.querySelectorAll(".btn-icon-login[data-auth-domain=\"" + domain + "\"]");
|
|
488
|
-
for (const button of Array.from(buttons)) {
|
|
489
|
-
button.classList.add("health-success");
|
|
490
|
-
button.title = "Verified " + formatTimeAgo(timestamp);
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
// Apply a full health snapshot. Walks the channels map then the domains map, applying the per-key updaters for each entry.
|
|
494
|
-
function applyHealthSnapshot(data, ctx) {
|
|
495
|
-
for (const [channelKey, entry] of Object.entries(data.channels)) {
|
|
496
|
-
updateChannelHealth(channelKey, entry.status, entry.timestamp, entry.domain, ctx);
|
|
497
|
-
}
|
|
498
|
-
for (const [domain, timestamp] of Object.entries(data.domains)) {
|
|
499
|
-
updateDomainAuth(domain, timestamp, ctx);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
463
|
// SSE handlers. Each takes the parsed event payload and the HandlerContext. The IIFE wires JSON.parse and event-listener registration; the handlers themselves
|
|
503
|
-
// are pure logic.
|
|
464
|
+
// are pure logic. Channel row state is owned by the server - every reactive update arrives as a channelUpdate patch and is applied via channelTable.applyPatch.
|
|
504
465
|
// Snapshot handler. Replaces all client state with the snapshot's contents and re-renders everything, then applies the optional health snapshot.
|
|
505
466
|
function handleSnapshot(data, ctx) {
|
|
506
467
|
ctx.state.systemData = data.system;
|
|
@@ -511,8 +472,10 @@ function handleSnapshot(data, ctx) {
|
|
|
511
472
|
updateSystemStatus(ctx);
|
|
512
473
|
renderStreamsTable(ctx);
|
|
513
474
|
updateStreamPopover(ctx);
|
|
514
|
-
|
|
515
|
-
|
|
475
|
+
// Channel table catch-up. The server includes a patch covering any rows whose state may have changed during the SSE disconnect gap; routing it through the
|
|
476
|
+
// same applyPatch primitive as live channelUpdate events keeps presentation logic in one place.
|
|
477
|
+
if (data.channelPatch !== undefined) {
|
|
478
|
+
ctx.externals.channelTable.applyPatch(data.channelPatch);
|
|
516
479
|
}
|
|
517
480
|
}
|
|
518
481
|
// streamAdded handler. Inserts the new stream into streamData and triggers a full table render plus popover refresh.
|
|
@@ -542,6 +505,8 @@ function handleStreamHealthChanged(data, ctx) {
|
|
|
542
505
|
if (!prev) {
|
|
543
506
|
return;
|
|
544
507
|
}
|
|
508
|
+
// These four fields are exactly the ones updateStreamRow's targeted-update path does not touch - they live in the stream-info cell (the logo, the
|
|
509
|
+
// native/hardware badge, and the codec label) - so a change to any of them requires the full table rebuild rather than the cheap per-cell update.
|
|
545
510
|
const structuralChange = (prev.logoUrl !== data.logoUrl) || (prev.streamingMode !== data.streamingMode) ||
|
|
546
511
|
(prev.hardwareAccelerated !== data.hardwareAccelerated) || (prev.captureCodec !== data.captureCodec);
|
|
547
512
|
ctx.state.streamData[data.id] = data;
|
|
@@ -558,13 +523,6 @@ function handleSystemStatusChanged(data, ctx) {
|
|
|
558
523
|
ctx.state.systemData = data;
|
|
559
524
|
updateSystemStatus(ctx);
|
|
560
525
|
}
|
|
561
|
-
// healthChanged handler. Targeted update for a single channel; if the result is success, also refreshes the domain-auth icons for that domain.
|
|
562
|
-
function handleHealthChanged(data, ctx) {
|
|
563
|
-
updateChannelHealth(data.channelKey, data.status, data.timestamp, data.domain, ctx);
|
|
564
|
-
if ((data.status === "success") && data.domain) {
|
|
565
|
-
updateDomainAuth(data.domain, data.timestamp, ctx);
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
526
|
// channelUpdate handler. Forwards the patch to the shared channelTable namespace exposed by shared.ts.
|
|
569
527
|
function handleChannelUpdate(data, ctx) {
|
|
570
528
|
ctx.externals.channelTable.applyPatch(data);
|
|
@@ -578,7 +536,7 @@ function handleSseError(ctx) {
|
|
|
578
536
|
}
|
|
579
537
|
}
|
|
580
538
|
// Window-bound trampolines and lifecycle helpers. These are invoked from the IIFE either via window.* assignment or directly.
|
|
581
|
-
// Toggle the stream popover open/closed.
|
|
539
|
+
// Toggle the stream popover open/closed. Triggered by the project-wide action dispatcher via data-click-action on the header stream-count button.
|
|
582
540
|
function toggleStreamPopover(ctx) {
|
|
583
541
|
const ids = Object.keys(ctx.state.streamData);
|
|
584
542
|
if (ids.length === 0) {
|
|
@@ -595,7 +553,7 @@ function toggleStreamPopover(ctx) {
|
|
|
595
553
|
menu.classList.add("show");
|
|
596
554
|
}
|
|
597
555
|
}
|
|
598
|
-
// Copy the Quick Start playlist URL to the clipboard.
|
|
556
|
+
// Copy the Quick Start playlist URL to the clipboard. Triggered by the project-wide action dispatcher via data-click-action on the Copy button.
|
|
599
557
|
function copyOverviewPlaylistUrl(ctx) {
|
|
600
558
|
const urlEl = ctx.document.getElementById("overview-playlist-url");
|
|
601
559
|
if (urlEl) {
|
|
@@ -663,8 +621,9 @@ function initIPadTooltips(ctx) {
|
|
|
663
621
|
}
|
|
664
622
|
/**
|
|
665
623
|
* The script-side function registry. generateStatusScript() emits each entry's .toString() output in order. Order is hoisting-irrelevant for function
|
|
666
|
-
* declarations but reflects the logical groups: pure formatters, state-derived renderers, DOM mutators
|
|
667
|
-
*
|
|
624
|
+
* declarations but reflects the logical groups: pure formatters, state-derived renderers, DOM mutators (updateSystemStatus / buildStreamPopoverContent /
|
|
625
|
+
* updateStreamPopover), the render-scheduler pair, more DOM mutators (renderStreamsTable / updateStreamRow / toggleStreamDetails / updateDurations), SSE
|
|
626
|
+
* handlers, then trampolines and lifecycle helpers. Adding a new function means appending here and using its identifier in the IIFE; nothing else changes.
|
|
668
627
|
*
|
|
669
628
|
* The exported individual functions remain importable for tests; this registry is just the emission order for the script body.
|
|
670
629
|
*/
|
|
@@ -691,15 +650,11 @@ export const HANDLER_FUNCTIONS = [
|
|
|
691
650
|
updateStreamRow,
|
|
692
651
|
toggleStreamDetails,
|
|
693
652
|
updateDurations,
|
|
694
|
-
updateChannelHealth,
|
|
695
|
-
updateDomainAuth,
|
|
696
|
-
applyHealthSnapshot,
|
|
697
653
|
handleSnapshot,
|
|
698
654
|
handleStreamAdded,
|
|
699
655
|
handleStreamRemoved,
|
|
700
656
|
handleStreamHealthChanged,
|
|
701
657
|
handleSystemStatusChanged,
|
|
702
|
-
handleHealthChanged,
|
|
703
658
|
handleChannelUpdate,
|
|
704
659
|
handleSseError,
|
|
705
660
|
toggleStreamPopover,
|
|
@@ -707,7 +662,6 @@ export const HANDLER_FUNCTIONS = [
|
|
|
707
662
|
handleVisibilityChange,
|
|
708
663
|
initIPadTooltips
|
|
709
664
|
];
|
|
710
|
-
// Test surface. Each function is exported so
|
|
711
|
-
|
|
712
|
-
export { applyHealthSnapshot, buildStreamPopoverContent, copyOverviewPlaylistUrl, formatAutoRecovery, formatBytes, formatClients, formatDuration, formatLastIssue, formatTime, formatTimeAgo, getDomain, getHealthBadge, getRecoveringLabel, handleChannelUpdate, handleHealthChanged, handleSnapshot, handleSseError, handleStreamAdded, handleStreamHealthChanged, handleStreamRemoved, handleSystemStatusChanged, handleVisibilityChange, initIPadTooltips, renderDetailCodec, renderDetailStarted, renderHealthCellContent, renderStreamsTable, schedulePopoverRender, scheduleTableRender, toggleStreamDetails, toggleStreamPopover, updateChannelHealth, updateDomainAuth, updateDurations, updateStreamPopover, updateStreamRow, updateSystemStatus };
|
|
665
|
+
// Test surface. Each function is exported so the DOM-runtime suite at test/e2e/dom-runtime/status-handlers-runtime.test.ts can import and call them directly.
|
|
666
|
+
export { buildStreamPopoverContent, copyOverviewPlaylistUrl, formatAutoRecovery, formatBytes, formatClients, formatDuration, formatLastIssue, formatTime, formatTimeAgo, getDomain, getHealthBadge, getRecoveringLabel, handleChannelUpdate, handleSnapshot, handleSseError, handleStreamAdded, handleStreamHealthChanged, handleStreamRemoved, handleSystemStatusChanged, handleVisibilityChange, initIPadTooltips, renderDetailCodec, renderDetailStarted, renderHealthCellContent, renderStreamsTable, schedulePopoverRender, scheduleTableRender, toggleStreamDetails, toggleStreamPopover, updateDurations, updateStreamPopover, updateStreamRow, updateSystemStatus };
|
|
713
667
|
//# sourceMappingURL=status.handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.handlers.js","sourceRoot":"","sources":["../../../../src/routes/root/scripts/status.handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status.handlers.js","sourceRoot":"","sources":["../../../../src/routes/root/scripts/status.handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* EventSource, JSON, document, setInterval, window). The IIFE has no closures over server-side TS state.
|
|
21
21
|
*/
|
|
22
22
|
import { HANDLER_CONSTANTS, HANDLER_FUNCTIONS } from "./status.handlers.js";
|
|
23
|
+
import { ACTIONS } from "../../clientActions.js";
|
|
23
24
|
/**
|
|
24
25
|
* Generates the inline <script> block that drives the status display. Returns a complete <script>...</script> string ready to embed in the page wrapper.
|
|
25
26
|
* @returns The script string.
|
|
@@ -29,15 +30,18 @@ export function generateStatusScript() {
|
|
|
29
30
|
// status.handlers.ts) keeps generation deterministic across calls.
|
|
30
31
|
const constantDecls = HANDLER_CONSTANTS.map((c) => "const " + c.name + " = " + JSON.stringify(c.value) + ";").join("\n");
|
|
31
32
|
// Section 2: emit each handler/helper as its source via Function.prototype.toString(). Function declarations are hoisted in script-tag scope, so cross-handler
|
|
32
|
-
// references resolve regardless of declaration order; the order chosen in HANDLER_FUNCTIONS
|
|
33
|
-
// schedulers, handlers, trampolines
|
|
33
|
+
// references resolve regardless of declaration order; the order chosen in HANDLER_FUNCTIONS groups by logical role - formatters, renderers, the render
|
|
34
|
+
// schedulers, then the DOM mutators (renderStreamsTable, updateStreamRow, toggleStreamDetails, updateDurations), SSE handlers, and trampolines - rather than a
|
|
35
|
+
// strict linear pass through those categories.
|
|
34
36
|
const handlerSources = HANDLER_FUNCTIONS.map((fn) => fn.toString()).join("\n\n");
|
|
35
37
|
// Section 3: the IIFE. Wires the runtime side - constructs the state and externals, opens the EventSource, dispatches events, attaches window.* trampolines,
|
|
36
|
-
// starts the timers. The handler-side state mutations all go through the ctx that is built here. The shared sibling-script
|
|
37
|
-
// channelTable, copyToClipboard, dropdowns) are
|
|
38
|
-
// window.X = ... before this script loads, and bare identifiers in non-strict script-tag scope resolve through the global object.
|
|
39
|
-
//
|
|
40
|
-
//
|
|
38
|
+
// starts the timers. The handler-side state mutations all go through the ctx that is built here. The shared sibling-script collaborators (channelDisplayHtml,
|
|
39
|
+
// channelTable, copyToClipboard, dropdowns) are wired into ctx.externals via bare identifiers, matching the existing client-side idiom - shared.ts assigns them via
|
|
40
|
+
// window.X = ... before this script loads, and bare identifiers in non-strict script-tag scope resolve through the global object. The shared escapeHtml SSOT is NOT
|
|
41
|
+
// wired through externals: the handler bodies reference it directly as a bare global (like Date or requestAnimationFrame), resolving to the window.escapeHtml that
|
|
42
|
+
// shared.ts installs, so it needs no entry here. config.ts's script is emitted before status.ts's script on the page, so updateRestartDialogStatus is already
|
|
43
|
+
// registered on window by the time this IIFE runs; the typeof guard inside the getter is defensive in case that emission order ever changes, so a
|
|
44
|
+
// streamRemoved event still cannot throw if the callback is not yet registered.
|
|
41
45
|
//
|
|
42
46
|
// Trampoline capture: the handlers toggleStreamPopover, toggleStreamDetails, and copyOverviewPlaylistUrl share names with the window.* properties we bind
|
|
43
47
|
// them to. In classic-script scope, function declarations live as properties of the global object, so assigning window.toggleStreamPopover = ... would
|
|
@@ -54,6 +58,11 @@ export function generateStatusScript() {
|
|
|
54
58
|
" systemData: null,",
|
|
55
59
|
" tableRenderPending: false",
|
|
56
60
|
" };",
|
|
61
|
+
// The live count of the streams this script tracks, published for config.ts's restart dialog and upgrade flow. A getter rather than a stored value because
|
|
62
|
+
// state.streamData changes on every SSE stream event, so anything captured at definition time would be stale by the time either consumer read it. config.ts's
|
|
63
|
+
// script is emitted ahead of this one on the page, which means the channel does not exist yet while that script is being evaluated; both consumers run from
|
|
64
|
+
// event handlers long after this IIFE has executed, and each guards its read so an absent channel is handled rather than assumed to mean zero.
|
|
65
|
+
" Object.defineProperty(window, 'activeStreamCount', { configurable: true, get: () => Object.keys(state.streamData).length });",
|
|
57
66
|
" const externals = {",
|
|
58
67
|
" channelDisplayHtml: channelDisplayHtml,",
|
|
59
68
|
" channelTable: channelTable,",
|
|
@@ -79,7 +88,6 @@ export function generateStatusScript() {
|
|
|
79
88
|
" on('streamRemoved', (e) => handleStreamRemoved(JSON.parse(e.data), ctx));",
|
|
80
89
|
" on('streamHealthChanged', (e) => handleStreamHealthChanged(JSON.parse(e.data), ctx));",
|
|
81
90
|
" on('systemStatusChanged', (e) => handleSystemStatusChanged(JSON.parse(e.data), ctx));",
|
|
82
|
-
" on('healthChanged', (e) => handleHealthChanged(JSON.parse(e.data), ctx));",
|
|
83
91
|
" on('channelUpdate', (e) => handleChannelUpdate(JSON.parse(e.data), ctx));",
|
|
84
92
|
" statusEventSource.onerror = () => handleSseError(ctx);",
|
|
85
93
|
" }",
|
|
@@ -96,6 +104,11 @@ export function generateStatusScript() {
|
|
|
96
104
|
" }, 45000);",
|
|
97
105
|
" document.addEventListener('visibilitychange', () => handleVisibilityChange(ctx, connectStatusSSE));",
|
|
98
106
|
" initIPadTooltips(ctx);",
|
|
107
|
+
// Action registrations. Bound to the project-wide dispatcher so the Overview Copy button, the header stream-count toggle, and the per-row stream details
|
|
108
|
+
// toggle (rendered dynamically by status.handlers.ts) dispatch via data-*-action attributes.
|
|
109
|
+
" window.registerAction('" + ACTIONS.copyOverviewPlaylistUrl + "', () => copyOverviewPlaylistUrl());",
|
|
110
|
+
" window.registerAction('" + ACTIONS.toggleStreamDetails + "', (target) => toggleStreamDetails(Number(target.dataset.streamId)));",
|
|
111
|
+
" window.registerAction('" + ACTIONS.toggleStreamPopover + "', () => toggleStreamPopover());",
|
|
99
112
|
"})();"
|
|
100
113
|
].join("\n");
|
|
101
114
|
return ["<script>", constantDecls, handlerSources, iife, "</script>"].join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/routes/root/scripts/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/routes/root/scripts/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAElC,oJAAoJ;IACpJ,mEAAmE;IACnE,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzH,+JAA+J;IAC/J,uJAAuJ;IACvJ,+JAA+J;IAC/J,+CAA+C;IAC/C,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjF,6JAA6J;IAC7J,8JAA8J;IAC9J,oKAAoK;IACpK,oKAAoK;IACpK,mKAAmK;IACnK,8JAA8J;IAC9J,kJAAkJ;IAClJ,gFAAgF;IAChF,EAAE;IACF,0JAA0J;IAC1J,uJAAuJ;IACvJ,wJAAwJ;IACxJ,qJAAqJ;IACrJ,MAAM,IAAI,GAAG;QAEX,eAAe;QACf,mBAAmB;QACnB,0BAA0B;QAC1B,qBAAqB;QACrB,sCAAsC;QACtC,kCAAkC;QAClC,qBAAqB;QACrB,uBAAuB;QACvB,+BAA+B;QAC/B,MAAM;QACN,2JAA2J;QAC3J,8JAA8J;QAC9J,4JAA4J;QAC5J,+IAA+I;QAC/I,gIAAgI;QAChI,uBAAuB;QACvB,6CAA6C;QAC7C,iCAAiC;QACjC,uCAAuC;QACvC,2BAA2B;QAC3B,4IAA4I;QAC5I,MAAM;QACN,2EAA2E;QAC3E,iCAAiC;QACjC,iCAAiC;QACjC,0DAA0D;QAC1D,6DAA6D;QAC7D,6CAA6C;QAC7C,mCAAmC;QACnC,0DAA0D;QAC1D,iDAAiD;QACjD,qCAAqC;QACrC,WAAW;QACX,OAAO;QACP,sBAAsB;QACtB,qEAAqE;QACrE,2EAA2E;QAC3E,+EAA+E;QAC/E,2FAA2F;QAC3F,2FAA2F;QAC3F,+EAA+E;QAC/E,4DAA4D;QAC5D,KAAK;QACL,kDAAkD;QAClD,kDAAkD;QAClD,qDAAqD;QACrD,8DAA8D;QAC9D,oEAAoE;QACpE,iEAAiE;QACjE,uBAAuB;QACvB,kDAAkD;QAClD,uBAAuB;QACvB,kFAAkF;QAClF,cAAc;QACd,uGAAuG;QACvG,0BAA0B;QAC1B,yJAAyJ;QACzJ,6FAA6F;QAC7F,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,GAAG,sCAAsC;QACtG,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,GAAG,uEAAuE;QACnI,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,GAAG,kCAAkC;QAC9F,OAAO;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,CAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/routes/root/styles.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA4qBlD"}
|
|
@@ -360,7 +360,8 @@ export function generateLandingPageStyles() {
|
|
|
360
360
|
".btn-icon-login:hover { color: var(--interactive-primary); }",
|
|
361
361
|
".btn-icon-copy:hover { color: var(--interactive-primary); }",
|
|
362
362
|
".btn-icon-placeholder { display: inline-block; width: 28px; height: 28px; }",
|
|
363
|
-
// Health indicator colors. The login icon
|
|
363
|
+
// Health indicator colors. The login icon uses both: health-success (provider verified) and health-failed (provider needs sign-in). The health icon uses both
|
|
364
|
+
// (channel last-tune result).
|
|
364
365
|
".health-success { color: var(--interactive-success); }",
|
|
365
366
|
".health-failed { color: var(--interactive-delete); }",
|
|
366
367
|
// Health icon is non-interactive - no hover effect, default cursor. The .user-channel override needs matching specificity (0-3-0) to prevent the
|
|
@@ -368,9 +369,11 @@ export function generateLandingPageStyles() {
|
|
|
368
369
|
".btn-icon-health { cursor: default; }",
|
|
369
370
|
".btn-icon-health:hover { background: transparent; color: var(--text-secondary); }",
|
|
370
371
|
".user-channel .btn-icon-health:hover { background: transparent; }",
|
|
371
|
-
// Override hover to preserve health color when set.
|
|
372
|
+
// Override hover to preserve health color when set. The login icon's needs-sign-in red gets the same treatment - without it, the generic
|
|
373
|
+
// .btn-icon-login:hover rule above would swap the red for the interactive-primary color on hover.
|
|
372
374
|
".btn-icon-health.health-success:hover { color: var(--interactive-success); }",
|
|
373
375
|
".btn-icon-health.health-failed:hover { color: var(--interactive-delete); }",
|
|
376
|
+
".btn-icon-login.health-failed:hover { color: var(--interactive-delete); }",
|
|
374
377
|
".copy-dropdown .dropdown-item { font-size: 12px; }",
|
|
375
378
|
// JS tooltip styling. The tooltip element is appended to <body> and positioned via getBoundingClientRect() so it's immune to overflow and stacking contexts.
|
|
376
379
|
// Only activated when the primary input can't hover (hover: none), targeting iPadOS where Safari doesn't show native title tooltips. On pure-touch
|
|
@@ -568,8 +571,8 @@ export function generateLandingPageStyles() {
|
|
|
568
571
|
".browse-search::placeholder { color: var(--text-muted); }",
|
|
569
572
|
// Channel list container. Scrollable area with a maximum height so the modal does not grow unbounded.
|
|
570
573
|
".browse-channel-list { max-height: 50vh; overflow-y: auto; border: 1px solid var(--border-default); border-radius: var(--radius-md); }",
|
|
571
|
-
// Individual channel row. Scoped under .browse-channel-list for specificity (0,2,0) to beat .
|
|
572
|
-
//
|
|
574
|
+
// Individual channel row. Scoped under .browse-channel-list for specificity (0,2,0) to beat ui.ts's .form-row label (0,1,1), which sets display:block
|
|
575
|
+
// on labels inside form rows. The name takes all remaining space (flex: 1) and truncates with ellipsis, keeping the metadata pinned right.
|
|
573
576
|
".browse-channel-list .browse-channel-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; font-size: 13px; ",
|
|
574
577
|
"color: var(--text-primary); cursor: pointer; transition: background 0.15s; border-bottom: 1px solid var(--border-light, var(--border-default)); ",
|
|
575
578
|
"margin-bottom: 0; }",
|