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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/routes/root/styles.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/routes/root/styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { Express } from "express";
|
|
2
|
+
import { recordDiscoveryOutcome, withProviderGuidePage } from "../browser/precaching.ts";
|
|
3
|
+
import { getProviderBySlug } from "../browser/channelSelection.ts";
|
|
4
|
+
import type { PrecachingDeps } from "../browser/precaching.ts";
|
|
5
|
+
export interface ServiceDiscoveryDeps {
|
|
6
|
+
readonly getProviderBySlug: typeof getProviderBySlug;
|
|
7
|
+
readonly precachingDeps: PrecachingDeps;
|
|
8
|
+
readonly recordDiscoveryOutcome: typeof recordDiscoveryOutcome;
|
|
9
|
+
readonly withProviderGuidePage: typeof withProviderGuidePage;
|
|
10
|
+
}
|
|
2
11
|
/**
|
|
3
12
|
* Creates the service channel discovery endpoint.
|
|
4
13
|
* @param app - The Express application.
|
|
14
|
+
* @param deps - The injected discovery collaborators; defaults to defaultServiceDiscoveryDeps. Threaded into the handler so a test drives the route with a stub
|
|
15
|
+
* provider and a stubbed guide-page session without a loader mock.
|
|
5
16
|
*/
|
|
6
|
-
export declare function setupServicesEndpoint(app: Express): void;
|
|
17
|
+
export declare function setupServicesEndpoint(app: Express, deps?: ServiceDiscoveryDeps): void;
|
|
18
|
+
//# sourceMappingURL=services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/routes/services.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAyB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIhH,OAAO,EAAE,iBAAiB,EAAwB,MAAM,gCAAgC,CAAC;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA0D/D,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAKrD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;IAC/D,QAAQ,CAAC,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;CAC9D;AA2OD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,oBAAkD,GAAG,IAAI,CA4IlH"}
|
package/dist/routes/services.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { LOG, waitWithTimeout } from "../utils/index.js";
|
|
2
|
+
import { defaultPrecachingDeps, recordDiscoveryOutcome, withProviderGuidePage } from "../browser/precaching.js";
|
|
1
3
|
import { getChannelListing, getChannelLogo, isPredefinedChannel } from "../config/userChannels.js";
|
|
2
4
|
import { getChannelServiceLabel, getResolvedChannel, getServiceGroup, getServiceTagForChannel, isServiceTagEnabled, resolveServiceKey } from "../config/services.js";
|
|
3
|
-
import { getCurrentBrowser, minimizeBrowserWindow, registerManagedPage, unregisterManagedPage } from "../browser/index.js";
|
|
4
5
|
import { getProviderBySlug, normalizeChannelName } from "../browser/channelSelection.js";
|
|
5
6
|
import { sendError, sendNotFoundError } from "./config/http/envelope.js";
|
|
6
|
-
import { CONFIG } from "../config/index.js";
|
|
7
|
-
import { LOG } from "../utils/index.js";
|
|
8
7
|
/* The services endpoint exposes channel discovery for each registered service. A GET request to /services/:slug/channels creates a temporary browser page,
|
|
9
8
|
* navigates to the service's guide, runs the service's discoverChannels implementation, and returns a sorted JSON array of discovered channels. The temporary
|
|
10
9
|
* page is always closed in a finally block to prevent resource leaks. Concurrent requests for the same service are coalesced - only one discovery walk runs at a
|
|
@@ -19,6 +18,10 @@ class DiscoveryAbortError extends Error {
|
|
|
19
18
|
}
|
|
20
19
|
}
|
|
21
20
|
const inflight = new Map();
|
|
21
|
+
// The bound on how long a replacement discovery waits for its doomed predecessor's teardown to settle before proceeding. That teardown awaits CDP calls which
|
|
22
|
+
// Puppeteer bounds only at its 180-second default protocol timeout, so a wedged browser degrades the refresh to clearing while the doomed teardown is still
|
|
23
|
+
// running - the narrow race the sequencing below exists to close, confined to the pathological case - rather than chain-stalling every later refresh behind it.
|
|
24
|
+
const DISCOVERY_SETTLEMENT_TIMEOUT_MS = 10000;
|
|
22
25
|
/**
|
|
23
26
|
* Logs a discovery failure and sends a 500 error response.
|
|
24
27
|
* @param res - The Express response object.
|
|
@@ -28,47 +31,35 @@ const inflight = new Map();
|
|
|
28
31
|
function sendDiscoveryError(res, label, error) {
|
|
29
32
|
const message = (error instanceof Error) ? error.message : String(error);
|
|
30
33
|
// Channel discovery failures are warnings rather than errors because they typically reflect provider DOM drift, network blips, or transient site outages
|
|
31
|
-
// (recoverable by retry) rather than server-side faults. The envelope helper normalizes the response shape
|
|
34
|
+
// (recoverable by retry) rather than server-side faults. The envelope helper normalizes the response shape.
|
|
32
35
|
LOG.warn("Channel discovery failed for %s: %s.", label, message);
|
|
33
36
|
sendError(res, 500, { error: "Channel discovery failed: " + message + "." });
|
|
34
37
|
}
|
|
38
|
+
const defaultServiceDiscoveryDeps = { getProviderBySlug, precachingDeps: defaultPrecachingDeps, recordDiscoveryOutcome,
|
|
39
|
+
withProviderGuidePage };
|
|
35
40
|
/**
|
|
36
|
-
* Runs service channel discovery
|
|
37
|
-
* the
|
|
38
|
-
*
|
|
41
|
+
* Runs service channel discovery through the shared guarded guide-page session, applying this endpoint's discovery-outcome policy. The helper owns the page
|
|
42
|
+
* lifecycle, the consent-overlay poll, and the close-on-abort mechanics; this function contributes only the endpoint's policy: record the discovery outcome unless
|
|
43
|
+
* the walk was aborted, sort the results, and translate any abort into a DiscoveryAbortError the retry loop understands.
|
|
39
44
|
* @param provider - The provider module to discover channels for.
|
|
40
45
|
* @param signal - Abort signal for cancellation by refresh requests.
|
|
46
|
+
* @param deps - The injected discovery collaborators; the walk and the outcome recording run through deps.withProviderGuidePage and deps.recordDiscoveryOutcome.
|
|
41
47
|
* @returns Sorted array of discovered channels.
|
|
42
48
|
*/
|
|
43
|
-
async function runDiscovery(provider, signal) {
|
|
44
|
-
let page = null;
|
|
45
|
-
// Close the page when the abort signal fires. This causes any in-progress Puppeteer operations to throw, propagating the cancellation through the discovery
|
|
46
|
-
// function without requiring explicit signal checking in each provider's implementation. The finally block also closes the page unconditionally - the
|
|
47
|
-
// redundant close is idempotent (caught by try/catch).
|
|
48
|
-
const onAbort = () => {
|
|
49
|
-
if (page) {
|
|
50
|
-
void page.close().catch(() => {
|
|
51
|
-
// Page may already be closed.
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
49
|
+
async function runDiscovery(provider, signal, deps) {
|
|
56
50
|
try {
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
await page.goto(provider.guideUrl, { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "networkidle2" });
|
|
70
|
-
}
|
|
71
|
-
const channels = await provider.discoverChannels(page);
|
|
51
|
+
const channels = await deps.withProviderGuidePage(provider, {
|
|
52
|
+
afterWalk: async (page, discovered, classification) => {
|
|
53
|
+
// Record the outcome of this discovery while the page is still open - an empty result classifies the page it walked, and a non-empty result supplies the
|
|
54
|
+
// success evidence that verifies the domain or clears a standing needs-sign-in flag, and the lineup that is worth persisting. Skipped when the walk was
|
|
55
|
+
// aborted by a refresh=true request, since an aborted walk says nothing about the provider. The recorder's own collaborators come from this route's
|
|
56
|
+
// injection port rather than from a default inside the recorder, so a call site that forgets them is a compile error instead of a silent fall-through.
|
|
57
|
+
if (!signal.aborted) {
|
|
58
|
+
await deps.recordDiscoveryOutcome(provider, discovered, page, deps.precachingDeps, classification);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
signal
|
|
62
|
+
});
|
|
72
63
|
// Sort by name for consistent output. Discovery functions sort at cache time, but fresh (uncached) results from the first call may not be sorted yet.
|
|
73
64
|
channels.sort((a, b) => a.name.localeCompare(b.name));
|
|
74
65
|
return channels;
|
|
@@ -81,20 +72,6 @@ async function runDiscovery(provider, signal) {
|
|
|
81
72
|
}
|
|
82
73
|
throw error;
|
|
83
74
|
}
|
|
84
|
-
finally {
|
|
85
|
-
signal.removeEventListener("abort", onAbort);
|
|
86
|
-
if (page) {
|
|
87
|
-
unregisterManagedPage(page);
|
|
88
|
-
try {
|
|
89
|
-
await page.close();
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
// Page may already be closed if the browser disconnected or the abort handler already closed it.
|
|
93
|
-
}
|
|
94
|
-
// Re-minimize the browser window. Opening the temporary discovery page may have restored the window on macOS, and we want it minimized to reduce GPU usage.
|
|
95
|
-
await minimizeBrowserWindow();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
75
|
}
|
|
99
76
|
/**
|
|
100
77
|
* Annotates discovered channels with lineup state by matching each channel's channelSelector against the service variants for the browsed service. This
|
|
@@ -199,31 +176,35 @@ function annotateWithLineupState(channels, serviceSlug) {
|
|
|
199
176
|
/**
|
|
200
177
|
* Creates the service channel discovery endpoint.
|
|
201
178
|
* @param app - The Express application.
|
|
179
|
+
* @param deps - The injected discovery collaborators; defaults to defaultServiceDiscoveryDeps. Threaded into the handler so a test drives the route with a stub
|
|
180
|
+
* provider and a stubbed guide-page session without a loader mock.
|
|
202
181
|
*/
|
|
203
|
-
export function setupServicesEndpoint(app) {
|
|
182
|
+
export function setupServicesEndpoint(app, deps = defaultServiceDiscoveryDeps) {
|
|
204
183
|
app.get("/services/:slug/channels", async (req, res) => {
|
|
205
184
|
const slug = req.params["slug"];
|
|
206
|
-
const provider = getProviderBySlug(slug);
|
|
185
|
+
const provider = deps.getProviderBySlug(slug);
|
|
207
186
|
if (!provider) {
|
|
208
187
|
sendNotFoundError(res, "Unknown service: " + slug + ".");
|
|
209
188
|
return;
|
|
210
189
|
}
|
|
211
|
-
//
|
|
212
|
-
//
|
|
213
|
-
// subsequent tune resolves from the freshly populated cache as normal.
|
|
214
|
-
// discovery is progressively populating it would corrupt its state.
|
|
190
|
+
// A refresh=true request rebuilds the service's caches (unified channel cache, row caches, fully-enumerated flags, etc.) so the discovery walk runs against
|
|
191
|
+
// fresh data. Clearing them also resets warm tuning state (watch URLs, GUIDs), but the discovery walk repopulates the unified cache before returning - any
|
|
192
|
+
// subsequent tune resolves from the freshly populated cache as normal.
|
|
215
193
|
const lineup = req.query["lineup"] === "true";
|
|
216
194
|
const refresh = req.query["refresh"] === "true";
|
|
195
|
+
// The in-flight entry is read once and serves both the abort below and the replacement's reference to its predecessor. Nothing mutates the map between
|
|
196
|
+
// those two uses in this synchronous turn, so one read is the whole truth.
|
|
197
|
+
let entry = inflight.get(slug);
|
|
198
|
+
// A refresh only SIGNALS the in-flight walk here. The doomed walk's page teardown settles asynchronously, and its interceptor callbacks keep writing into
|
|
199
|
+
// the provider's caches until that page is actually closed, so clearing on this statement would let the dying walk's stragglers seed the very lineup the
|
|
200
|
+
// refresh asked to rebuild. The clear is sequenced inside the replacement entry below, after the predecessor has settled; entry removal belongs to the
|
|
201
|
+
// walk's own finally, which is the single removal path.
|
|
217
202
|
if (refresh) {
|
|
218
|
-
|
|
219
|
-
if (existing) {
|
|
220
|
-
existing.controller.abort();
|
|
221
|
-
inflight.delete(slug);
|
|
222
|
-
}
|
|
223
|
-
provider.strategy.clearCache?.();
|
|
203
|
+
entry?.controller.abort();
|
|
224
204
|
}
|
|
225
205
|
// Check for cached discovery results before creating a browser page. When a prior tune or discovery call has already enumerated the service's lineup, the
|
|
226
|
-
// cache is warm and we can return immediately without any browser interaction. Skipped when refresh=true since
|
|
206
|
+
// cache is warm and we can return immediately without any browser interaction. Skipped when refresh=true, since the sequenced replacement below owns the
|
|
207
|
+
// clear and a refresh must be answered from the rebuilt lineup.
|
|
227
208
|
if (!refresh) {
|
|
228
209
|
const cached = provider.getCachedChannels();
|
|
229
210
|
if (cached) {
|
|
@@ -231,13 +212,45 @@ export function setupServicesEndpoint(app) {
|
|
|
231
212
|
return;
|
|
232
213
|
}
|
|
233
214
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
215
|
+
/* Coalesce concurrent requests. If a discovery is already in flight for this service, piggyback on the existing promise instead of spawning a redundant
|
|
216
|
+
* browser page. If the in-flight discovery was aborted (by a refresh=true request that arrived after we checked above), the promise rejects with a
|
|
217
|
+
* DiscoveryAbortError and we retry against whatever new entry replaced it in the map.
|
|
218
|
+
*
|
|
219
|
+
* A refresh always creates its own entry - it must never piggyback on the walk it just aborted - and creating that replacement in the same synchronous turn
|
|
220
|
+
* as the abort is what guarantees a piggybacking requester always finds a successor. The inflight.set below overwrites the doomed entry, whose own finally
|
|
221
|
+
* then sees a different controller in the map and correctly leaves it alone.
|
|
222
|
+
*/
|
|
223
|
+
if (refresh || !entry) {
|
|
239
224
|
const controller = new AbortController();
|
|
240
|
-
const
|
|
225
|
+
const doomed = entry;
|
|
226
|
+
const promise = (async () => {
|
|
227
|
+
/* The predecessor's settlement gates everything that follows: the guarded guide-page session awaits its page close before the walk promise settles, so
|
|
228
|
+
* once this await returns no interceptor callback of that walk can write into the caches we are about to clear. How it settled is its own business -
|
|
229
|
+
* the refresh cares only THAT it settled. The timeout bounds the wait: a teardown wedged inside a CDP call would otherwise hold every later refresh
|
|
230
|
+
* hostage to Puppeteer's 180-second default protocol timeout, so past the bound we proceed and accept the clear-while-settling race for that
|
|
231
|
+
* pathological case alone.
|
|
232
|
+
*/
|
|
233
|
+
if (doomed) {
|
|
234
|
+
const settlementTimeout = new Error("The previous discovery walk's teardown did not settle in time.");
|
|
235
|
+
try {
|
|
236
|
+
await waitWithTimeout(doomed.promise, DISCOVERY_SETTLEMENT_TIMEOUT_MS, settlementTimeout);
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
// An aborted walk rejects by design and stays quiet, and a genuine walk failure was already reported to that walk's own requesters. The timeout
|
|
240
|
+
// sentinel is ours alone - reference identity tells it apart - and a wedged teardown is exactly the in-trouble signal an operator wants while it is
|
|
241
|
+
// still happening.
|
|
242
|
+
if (error === settlementTimeout) {
|
|
243
|
+
LOG.warn("Clearing %s discovery caches while the previous walk's teardown is still settling.", provider.label);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// With no predecessor to await, this body runs synchronously to here inside the request's own turn, so a refresh with nothing in flight still clears
|
|
248
|
+
// before anything else can observe the caches - and before the walk below starts reading them.
|
|
249
|
+
if (refresh) {
|
|
250
|
+
provider.strategy.clearCache?.();
|
|
251
|
+
}
|
|
252
|
+
return runDiscovery(provider, controller.signal, deps);
|
|
253
|
+
})().finally(() => {
|
|
241
254
|
// Only remove our own entry. A refresh=true request may have already replaced it with a new one.
|
|
242
255
|
if (inflight.get(slug)?.controller === controller) {
|
|
243
256
|
inflight.delete(slug);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/routes/services.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/routes/services.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/sse.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/routes/sse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC;;;GAGG;AACH,MAAM,WAAW,SAAS;IAExB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,CA2BzD"}
|
package/dist/routes/sse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Heartbeat cadence in milliseconds. Sent as a named heartbeat event to keep the connection alive through proxies and let clients detect staleness.
|
|
2
|
-
const HEARTBEAT_INTERVAL_MS =
|
|
2
|
+
const HEARTBEAT_INTERVAL_MS = 30000;
|
|
3
3
|
/**
|
|
4
4
|
* Sets the SSE response headers, flushes them so the connection opens immediately, and starts the heartbeat. Returns helpers the caller uses to push events
|
|
5
5
|
* and to clean up the heartbeat timer when the connection closes.
|
package/dist/routes/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/routes/sse.ts"],"names":[],"mappings":"AAOA,oJAAoJ;AACpJ,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/routes/sse.ts"],"names":[],"mappings":"AAOA,oJAAoJ;AACpJ,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAYpC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAa;IAE5C,yJAAyJ;IACzJ,mFAAmF;IACnF,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC3C,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IAEnD,mGAAmG;IACnG,GAAG,CAAC,YAAY,EAAE,CAAC;IAEnB,+IAA+I;IAC/I,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAEtG,OAAO;QAEL,KAAK,EAAE,GAAS,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChD,SAAS,EAAE,CAAC,SAAwB,EAAE,IAAa,EAAQ,EAAE;YAE3D,IAAG,SAAS,KAAK,IAAI,EAAE,CAAC;gBAEtB,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;YAC1C,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/routes/streams.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Express } from "express";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Configures the stream management endpoints: listing, termination, and real-time status.
|
|
4
4
|
* @param app - The Express application.
|
|
5
5
|
*/
|
|
6
6
|
export declare function setupStreamsEndpoint(app: Express): void;
|
|
7
|
+
//# sourceMappingURL=streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/routes/streams.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,SAAS,CAAC;AAiB1D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAqGvD"}
|
package/dist/routes/streams.js
CHANGED
|
@@ -2,6 +2,7 @@ import { getAllStreams, getStream, getStreamCount, getStreamMemoryUsage } from "
|
|
|
2
2
|
import { getStatusSnapshot, getStreamStatus, subscribeToStatus } from "../streaming/statusEmitter.js";
|
|
3
3
|
import { sendNotFoundError, sendSuccess, sendValidationError } from "./config/http/envelope.js";
|
|
4
4
|
import { CONFIG } from "../config/index.js";
|
|
5
|
+
import { buildSnapshotChannelPatch } from "./config/channels/healthBridge.js";
|
|
5
6
|
import { emitCurrentSystemStatus } from "../browser/index.js";
|
|
6
7
|
import { installSseStream } from "./sse.js";
|
|
7
8
|
import { terminateStream } from "../streaming/lifecycle.js";
|
|
@@ -9,7 +10,7 @@ import { terminateStream } from "../streaming/lifecycle.js";
|
|
|
9
10
|
* integrations that need to manage stream lifecycle.
|
|
10
11
|
*/
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* Configures the stream management endpoints: listing, termination, and real-time status.
|
|
13
14
|
* @param app - The Express application.
|
|
14
15
|
*/
|
|
15
16
|
export function setupStreamsEndpoint(app) {
|
|
@@ -44,7 +45,7 @@ export function setupStreamsEndpoint(app) {
|
|
|
44
45
|
// channel mapping, client tracking, SSE events).
|
|
45
46
|
app.delete("/streams/:id", (req, res) => {
|
|
46
47
|
const streamIdParam = parseInt(req.params.id);
|
|
47
|
-
if (isNaN(streamIdParam)) {
|
|
48
|
+
if (Number.isNaN(streamIdParam)) {
|
|
48
49
|
sendValidationError(res, "Invalid stream ID.");
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
@@ -62,8 +63,9 @@ export function setupStreamsEndpoint(app) {
|
|
|
62
63
|
*/
|
|
63
64
|
app.get("/streams/status", (req, res) => {
|
|
64
65
|
const sse = installSseStream(res);
|
|
65
|
-
// Send the initial snapshot so clients have current state.
|
|
66
|
-
|
|
66
|
+
// Send the initial snapshot so clients have current state. The wire shape composes the stream/system snapshot owned by statusEmitter with the channel table
|
|
67
|
+
// catch-up patch owned by healthBridge - assembled here at the route layer so neither module needs to know about the other.
|
|
68
|
+
sse.sendEvent("snapshot", { ...getStatusSnapshot(), channelPatch: buildSnapshotChannelPatch() });
|
|
67
69
|
// Subscribe to status events and forward them to the client; the heartbeat is owned by installSseStream.
|
|
68
70
|
const unsubscribe = subscribeToStatus((eventType, data) => { sse.sendEvent(eventType, data); });
|
|
69
71
|
req.on("close", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/routes/streams.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;GAEG;AAEH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAE/C,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAa,EAAE,GAAa,EAAQ,EAAE;QAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,OAAO,GAcP,EAAE,CAAC;QAET,KAAI,MAAM,UAAU,IAAI,aAAa,EAAE,EAAE,CAAC;YAExC,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAE9C,OAAO,CAAC,IAAI,CAAC;gBAEX,OAAO,EAAE,UAAU,CAAC,WAAW;gBAC/B,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,CAAC;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;gBAC9B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;gBACnE,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,CAAC;gBAC7C,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS;gBACnC,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;gBAC9B,MAAM,EAAE,oBAAoB,CAAC,UAAU,CAAC;gBACxC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC;gBAC/C,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;gBAChC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;gBAC7C,GAAG,EAAE,UAAU,CAAC,GAAG;aACpB,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YAEP,KAAK,EAAE,cAAc,EAAE;YACvB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB;YAC5C,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6JAA6J;IAC7J,iDAAiD;IACjD,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;QAE/D,MAAM,aAAa,GAAG,QAAQ,CAAE,GAAG,CAAC,MAAyB,CAAC,EAAE,CAAC,CAAC;QAElE,IAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/routes/streams.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/theme.d.ts
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare function generateThemeStyles(): string;
|
|
6
6
|
/**
|
|
7
|
-
* Returns CSS variable references for stream health colors
|
|
7
|
+
* Returns CSS variable references for stream health colors, mapping each health state to its corresponding CSS variable name.
|
|
8
8
|
* @returns Object mapping health states to CSS variable names.
|
|
9
9
|
*/
|
|
10
10
|
export declare function getStreamHealthColorVars(): Record<string, string>;
|
|
11
11
|
/**
|
|
12
|
-
* Returns CSS variable references for log level colors
|
|
12
|
+
* Returns CSS variable references for log level colors, mapping each log level to its corresponding CSS variable name.
|
|
13
13
|
* @returns Object mapping log levels to CSS variable names.
|
|
14
14
|
*/
|
|
15
15
|
export declare function getLogLevelColorVars(): Record<string, string>;
|
|
16
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/routes/theme.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkR5C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ7D"}
|
package/dist/routes/theme.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/* This module provides a centralized color and styling system for all PrismCast web pages. It uses CSS custom properties (variables) to enable consistent theming
|
|
6
6
|
* and automatic dark mode support via the prefers-color-scheme media query.
|
|
7
7
|
*
|
|
8
|
-
* Color tokens are organized semantically:
|
|
8
|
+
* Color tokens are organized semantically, including but not limited to:
|
|
9
9
|
* - Surface: Background colors for pages, cards, sections
|
|
10
10
|
* - Text: Typography colors at various emphasis levels
|
|
11
11
|
* - Border: Dividers and boundaries
|
|
@@ -118,7 +118,7 @@ export function generateThemeStyles() {
|
|
|
118
118
|
" --table-header-bg: #f4f4f4;",
|
|
119
119
|
" --table-row-even: #fafafa;",
|
|
120
120
|
" --table-row-hover: #f5f5f5;",
|
|
121
|
-
// Dark surface colors
|
|
121
|
+
// Dark surface, text, and scrollbar colors that back the log viewer in both light and dark themes.
|
|
122
122
|
" --dark-surface-bg: #1e1e1e;",
|
|
123
123
|
" --dark-surface-elevated: #2d2d2d;",
|
|
124
124
|
" --dark-surface-header: #3d3d3d;",
|
|
@@ -193,7 +193,8 @@ export function generateThemeStyles() {
|
|
|
193
193
|
" --status-info-bg: #1e2d3d;",
|
|
194
194
|
" --status-info-border: #2a4a5a;",
|
|
195
195
|
" --status-info-text: #7dc4f5;",
|
|
196
|
-
// Stream health indicator colors
|
|
196
|
+
// Stream health indicator colors. Recovering, stalled, and error match their light-mode values. Healthy is brightened to match --interactive-success
|
|
197
|
+
// exactly, while buffering is independently brightened for dark-mode contrast and does not correspond to any interactive-* token.
|
|
197
198
|
" --stream-healthy: #2ecc71;",
|
|
198
199
|
" --stream-buffering: #f1c40f;",
|
|
199
200
|
" --stream-recovering: #e67e22;",
|
|
@@ -259,7 +260,7 @@ export function generateThemeStyles() {
|
|
|
259
260
|
].join("\n");
|
|
260
261
|
}
|
|
261
262
|
/**
|
|
262
|
-
* Returns CSS variable references for stream health colors
|
|
263
|
+
* Returns CSS variable references for stream health colors, mapping each health state to its corresponding CSS variable name.
|
|
263
264
|
* @returns Object mapping health states to CSS variable names.
|
|
264
265
|
*/
|
|
265
266
|
export function getStreamHealthColorVars() {
|
|
@@ -272,7 +273,7 @@ export function getStreamHealthColorVars() {
|
|
|
272
273
|
};
|
|
273
274
|
}
|
|
274
275
|
/**
|
|
275
|
-
* Returns CSS variable references for log level colors
|
|
276
|
+
* Returns CSS variable references for log level colors, mapping each log level to its corresponding CSS variable name.
|
|
276
277
|
* @returns Object mapping log levels to CSS variable names.
|
|
277
278
|
*/
|
|
278
279
|
export function getLogLevelColorVars() {
|
package/dist/routes/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/routes/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAEjC,OAAO;QAEL,yBAAyB;QACzB,SAAS;QAET,8DAA8D;QAC9D,4BAA4B;QAC5B,gCAAgC;QAChC,8BAA8B;QAC9B,+BAA+B;QAC/B,6BAA6B;QAC7B,4BAA4B;QAC5B,2BAA2B;QAE3B,yDAAyD;QACzD,4BAA4B;QAC5B,8BAA8B;QAC9B,0BAA0B;QAC1B,6BAA6B;QAC7B,6BAA6B;QAC7B,4BAA4B;QAC5B,sCAAsC;QACtC,4BAA4B;QAE5B,2CAA2C;QAC3C,8BAA8B;QAC9B,4BAA4B;QAC5B,6BAA6B;QAC7B,4CAA4C;QAE5C,qDAAqD;QACrD,mCAAmC;QACnC,yCAAyC;QACzC,qCAAqC;QACrC,2CAA2C;QAC3C,kCAAkC;QAClC,wCAAwC;QACxC,mCAAmC;QACnC,yCAAyC;QACzC,gCAAgC;QAChC,sCAAsC;QACtC,kCAAkC;QAClC,wCAAwC;QAExC,qCAAqC;QACrC,iCAAiC;QACjC,qCAAqC;QACrC,mCAAmC;QACnC,iCAAiC;QACjC,qCAAqC;QACrC,mCAAmC;QACnC,+BAA+B;QAC/B,mCAAmC;QACnC,iCAAiC;QACjC,8BAA8B;QAC9B,kCAAkC;QAClC,gCAAgC;QAEhC,kCAAkC;QAClC,8BAA8B;QAC9B,gCAAgC;QAChC,iCAAiC;QACjC,8BAA8B;QAC9B,4BAA4B;QAE5B,sEAAsE;QACtE,sDAAsD;QACtD,uDAAuD;QACvD,oDAAoD;QACpD,gDAAgD;QAEhD,gBAAgB;QAChB,gCAAgC;QAChC,kCAAkC;QAClC,+BAA+B;QAC/B,iCAAiC;QACjC,iCAAiC;QACjC,mCAAmC;QACnC,4BAA4B;QAC5B,8BAA8B;QAC9B,6BAA6B;QAC7B,+BAA+B;QAE/B,yEAAyE;QACzE,kDAAkD;QAClD,wDAAwD;QAExD,cAAc;QACd,sBAAsB;QACtB,4BAA4B;QAC5B,6BAA6B;QAC7B,wBAAwB;QACxB,8BAA8B;QAC9B,+BAA+B;QAC/B,0BAA0B;QAC1B,yBAAyB;QAEzB,iBAAiB;QACjB,yBAAyB;QACzB,+BAA+B;QAC/B,gCAAgC;QAChC,kCAAkC;QAClC,oCAAoC;QAEpC,eAAe;QACf,uBAAuB;QACvB,gCAAgC;QAChC,6BAA6B;QAC7B,iCAAiC;QAEjC,gBAAgB;QAChB,+BAA+B;QAC/B,8BAA8B;QAC9B,+BAA+B;QAE/B,
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/routes/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/ui.d.ts
CHANGED
|
@@ -23,7 +23,8 @@ export declare function generateBaseStyles(): string;
|
|
|
23
23
|
export declare function generateTabStyles(): string;
|
|
24
24
|
/**
|
|
25
25
|
* Generates the JavaScript for tab switching functionality. This script handles click events on tab buttons, keyboard navigation, hash-based URL navigation,
|
|
26
|
-
* and localStorage persistence of the selected tab.
|
|
26
|
+
* and localStorage persistence of the selected tab. It dispatches a "tabactivated" CustomEvent (detail: { category }) on every tab switch, including the
|
|
27
|
+
* initial load; subtab controllers (config, channels) listen for this event to initialize their content when their parent tab becomes active.
|
|
27
28
|
* @param options - Configuration options for the tab script.
|
|
28
29
|
* @returns JavaScript code as a string wrapped in script tags.
|
|
29
30
|
*/
|
|
@@ -54,3 +55,4 @@ export declare function generateTabPanel(category: string, content: string, isAc
|
|
|
54
55
|
* @returns Complete HTML document string.
|
|
55
56
|
*/
|
|
56
57
|
export declare function generatePageWrapper(title: string, styles: string, bodyContent: string, scripts?: string): string;
|
|
58
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/routes/ui.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAC9H,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExJ;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAG/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,gBAAgB,CAAC,EAAE;QAEjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAmK3C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAqB1C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAmJxE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAS9G;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAK7F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM,CA0B5G"}
|
package/dist/routes/ui.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* ui.ts: Shared UI components and utilities for PrismCast web pages.
|
|
4
4
|
*/
|
|
5
5
|
import { generateThemeStyles } from "./theme.js";
|
|
6
|
-
/* This module provides reusable UI components used across PrismCast
|
|
7
|
-
*
|
|
6
|
+
/* This module provides reusable UI components used across PrismCast's server-rendered pages, including the landing page and the debug page. It ensures
|
|
7
|
+
* consistent styling and behavior by extracting common CSS and JavaScript patterns. All styles use CSS custom properties from theme.ts for automatic
|
|
8
|
+
* dark mode support.
|
|
8
9
|
*/
|
|
9
10
|
// Re-export components for convenience.
|
|
10
11
|
export { generateAlert, generateBadge, generateButton, generatePanelHeader, generateSection, generateSelect, generateSimpleAlert, generateStatusIndicator, generateTextInput } from "./components.js";
|
|
@@ -177,7 +178,8 @@ export function generateTabStyles() {
|
|
|
177
178
|
}
|
|
178
179
|
/**
|
|
179
180
|
* Generates the JavaScript for tab switching functionality. This script handles click events on tab buttons, keyboard navigation, hash-based URL navigation,
|
|
180
|
-
* and localStorage persistence of the selected tab.
|
|
181
|
+
* and localStorage persistence of the selected tab. It dispatches a "tabactivated" CustomEvent (detail: { category }) on every tab switch, including the
|
|
182
|
+
* initial load; subtab controllers (config, channels) listen for this event to initialize their content when their parent tab becomes active.
|
|
181
183
|
* @param options - Configuration options for the tab script.
|
|
182
184
|
* @returns JavaScript code as a string wrapped in script tags.
|
|
183
185
|
*/
|
|
@@ -231,12 +233,19 @@ export function generateTabScript(options = {}) {
|
|
|
231
233
|
" }",
|
|
232
234
|
" }",
|
|
233
235
|
hideLogic,
|
|
236
|
+
// Persist the selected tab to localStorage for restoration on the next visit. A failure here (private browsing, disabled storage, quota errors)
|
|
237
|
+
// is non-fatal because tab selection still resolves via the hash or the default active tab on the next load.
|
|
234
238
|
" try { localStorage.setItem('" + localStorageKey + "', category); } catch(e) {}",
|
|
235
239
|
" if(updateUrl !== false) {",
|
|
236
240
|
" var parsed = parseHash();",
|
|
237
|
-
|
|
241
|
+
// A subtab id belongs to the tab it was parsed from, so it carries only when the switch stays on that tab. A cross-tab switch writes a bare tab hash and
|
|
242
|
+
// the destination's own subtab controller keeps whatever state it already had - no restore mechanism runs or needs to. Adding a new subtabbed tab needs
|
|
243
|
+
// no change here; the tab-specific wiring lives in the hashchange handler below and in the matching window.switch*Subtab registrations.
|
|
244
|
+
" var subtab = (category === parsed.tab) ? parsed.subtab : null;",
|
|
238
245
|
" updateHash(category, subtab);",
|
|
239
246
|
" }",
|
|
247
|
+
// Signal that a tab has been activated. Subtab controllers (config, channels) listen for this event to initialize their content when their
|
|
248
|
+
// parent tab becomes active.
|
|
240
249
|
" document.dispatchEvent(new CustomEvent('tabactivated', { detail: { category: category } }));",
|
|
241
250
|
" }",
|
|
242
251
|
// Expose switchTab globally for subtab script to use.
|
|
@@ -281,6 +290,8 @@ export function generateTabScript(options = {}) {
|
|
|
281
290
|
" var parsed = parseHash();",
|
|
282
291
|
" var initialTab = parsed.tab;",
|
|
283
292
|
" if(!initialTab) {",
|
|
293
|
+
// A failure reading localStorage (private browsing, disabled storage, quota errors) is non-fatal here: initialTab simply stays undefined and
|
|
294
|
+
// falls through to the default-active-tab branch below.
|
|
284
295
|
" try { initialTab = localStorage.getItem('" + localStorageKey + "'); } catch(e) {}",
|
|
285
296
|
" }",
|
|
286
297
|
" if(initialTab && document.querySelector('.tab-btn[data-category=\"' + initialTab + '\"]')) {",
|
|
@@ -290,6 +301,7 @@ export function generateTabScript(options = {}) {
|
|
|
290
301
|
" if(activeTab) {",
|
|
291
302
|
" var category = activeTab.getAttribute('data-category');",
|
|
292
303
|
" if(!parsed.tab) updateHash(category, null);",
|
|
304
|
+
// Dispatch the same tabactivated signal as switchTab above, so subtab controllers initialize consistently on this default-tab, first-load path.
|
|
293
305
|
" document.dispatchEvent(new CustomEvent('tabactivated', { detail: { category: category } }));",
|
|
294
306
|
" }",
|
|
295
307
|
" }",
|