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,9 +1,24 @@
|
|
|
1
|
-
import type { Frame, Page } from "puppeteer-core";
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import
|
|
1
|
+
import type { Browser, Frame, Page } from "puppeteer-core";
|
|
2
|
+
import { getCurrentBrowser, getStream } from "../browser/index.ts";
|
|
3
|
+
import type { ManifestInterceptionResult, ManifestInterceptorHandle } from "../browser/manifestInterceptor.ts";
|
|
4
|
+
import type { MonitorHandle, TabReplacementResult } from "./recovery.ts";
|
|
5
|
+
import type { Nullable, ResolvedChannel, ResolvedSiteProfile, TuneResult, UrlValidationResult } from "../types/index.ts";
|
|
6
|
+
import { initializePlayback } from "../browser/video.ts";
|
|
7
|
+
import type { CaptureSession } from "./captureSession.ts";
|
|
8
|
+
import type { InitializePlaybackOptions } from "../browser/video.ts";
|
|
9
|
+
import type { ProbeCacheIdentity } from "../native/probe.ts";
|
|
10
|
+
import { startOverlayHandling } from "../browser/consent.ts";
|
|
11
|
+
export declare const STREAM_INIT_TIMEOUT_MESSAGE = "Stream initialization timed out.";
|
|
12
|
+
export declare const CAPTURE_PROBE_TIMEOUT_MESSAGE = "Capture probe timed out.";
|
|
13
|
+
/**
|
|
14
|
+
* Thrown by createPageWithCapture when an establishment that navigated to a resolved direct watch URL failed on evidence against that URL - the coordinator's own
|
|
15
|
+
* verdict, read from invalidateDirectUrl, never re-derived here. It says one thing to the caller: the hint has already been evicted, and a fresh attempt down the
|
|
16
|
+
* guide path is worth making. setupStream is the one caller that acts on it; every other caller sees an ordinary establishment failure carrying the original
|
|
17
|
+
* rejection as its cause.
|
|
18
|
+
*/
|
|
19
|
+
export declare class DirectUrlEstablishmentError extends Error {
|
|
20
|
+
constructor(cause: unknown);
|
|
21
|
+
}
|
|
7
22
|
/**
|
|
8
23
|
* Factory function type for creating tab replacement handlers. Called by setupStream after generating stream IDs and resolving the profile, allowing the caller to
|
|
9
24
|
* create a handler with access to all necessary context.
|
|
@@ -20,6 +35,7 @@ export interface StreamSetupOptions {
|
|
|
20
35
|
clickToPlay?: boolean;
|
|
21
36
|
numericStreamId?: number;
|
|
22
37
|
onTabReplacementFactory?: TabReplacementHandlerFactory;
|
|
38
|
+
probeIdentity: ProbeCacheIdentity;
|
|
23
39
|
profileOverride?: string;
|
|
24
40
|
staticCapture?: boolean;
|
|
25
41
|
streamId?: string;
|
|
@@ -29,20 +45,19 @@ export interface StreamSetupOptions {
|
|
|
29
45
|
* Result from setting up a stream.
|
|
30
46
|
*/
|
|
31
47
|
export interface StreamSetupResult {
|
|
32
|
-
|
|
48
|
+
captureSession: CaptureSession;
|
|
33
49
|
channelName: Nullable<string>;
|
|
34
50
|
directTune: boolean;
|
|
35
51
|
cleanup: () => Promise<void>;
|
|
36
|
-
ffmpegProcess: Nullable<FFmpegProcess>;
|
|
37
52
|
manifestInterception: Nullable<ManifestInterceptorHandle>;
|
|
38
53
|
numericStreamId: number;
|
|
39
54
|
page: Page;
|
|
55
|
+
probeIdentity: ProbeCacheIdentity;
|
|
40
56
|
profile: ResolvedSiteProfile;
|
|
41
57
|
profileName: string;
|
|
42
58
|
serviceName: string;
|
|
43
|
-
rawCaptureStream: Readable;
|
|
44
59
|
startTime: Date;
|
|
45
|
-
|
|
60
|
+
monitor: MonitorHandle;
|
|
46
61
|
streamId: string;
|
|
47
62
|
url: string;
|
|
48
63
|
}
|
|
@@ -54,14 +69,29 @@ export declare class StreamSetupError extends Error {
|
|
|
54
69
|
readonly userMessage: string;
|
|
55
70
|
constructor(message: string, statusCode: number, userMessage: string, options?: ErrorOptions);
|
|
56
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Prepends sign-in guidance to a user-facing failure message when the failing channel's service domain is currently marked needs-sign-in. A confirmed
|
|
74
|
+
* authentication wall on the service is the most likely cause of a failed tune there, and the channel table's login icon is the remedy - the underlying error
|
|
75
|
+
* stays in the message so the original failure remains identifiable. Returns the message unchanged for ad-hoc URL streams without a channel identity, for
|
|
76
|
+
* channels whose domain cannot be resolved, and for domains not marked needs-sign-in.
|
|
77
|
+
*
|
|
78
|
+
* Exported for unit-test coverage of the guidance composition. Production callers reach this only through setupStream's failure paths, never directly.
|
|
79
|
+
* @param userMessage - The user-facing failure message being composed.
|
|
80
|
+
* @param channelKey - The failing channel's key, or null/undefined for ad-hoc URL streams.
|
|
81
|
+
* @param serviceName - The service's display name, used to name who needs the sign-in.
|
|
82
|
+
* @returns The user message, led by sign-in guidance when the channel's domain is marked needs-sign-in.
|
|
83
|
+
*/
|
|
84
|
+
export declare function withSignInGuidance(userMessage: string, channelKey: Nullable<string> | undefined, serviceName: string): string;
|
|
57
85
|
/**
|
|
58
86
|
* Options for creating a page with capture.
|
|
59
87
|
*/
|
|
60
88
|
export interface CreatePageWithCaptureOptions {
|
|
61
89
|
comment?: string;
|
|
90
|
+
numericStreamId: number;
|
|
62
91
|
onFFmpegError?: (error: Error) => void;
|
|
63
92
|
persistResolution?: (resolvedSelector: string) => Promise<void>;
|
|
64
93
|
profile: ResolvedSiteProfile;
|
|
94
|
+
skipDirectUrl?: boolean;
|
|
65
95
|
skipManifestInterception?: boolean;
|
|
66
96
|
streamId: string;
|
|
67
97
|
tabReplacement?: boolean;
|
|
@@ -72,13 +102,11 @@ export interface CreatePageWithCaptureOptions {
|
|
|
72
102
|
* Result from creating a page with capture. Contains everything needed to create a segmenter and continue with stream setup.
|
|
73
103
|
*/
|
|
74
104
|
export interface CreatePageWithCaptureResult {
|
|
75
|
-
|
|
105
|
+
captureSession: CaptureSession;
|
|
76
106
|
context: Frame | Page;
|
|
77
107
|
directTune: boolean;
|
|
78
|
-
ffmpegProcess: Nullable<FFmpegProcess>;
|
|
79
108
|
manifestInterception: Nullable<ManifestInterceptorHandle>;
|
|
80
109
|
page: Page;
|
|
81
|
-
rawCaptureStream: Readable;
|
|
82
110
|
}
|
|
83
111
|
/**
|
|
84
112
|
* Generates a concise stream identifier for logging purposes. The identifier combines the channel name or hostname with a unique request ID, making it easy to
|
|
@@ -95,6 +123,11 @@ export declare function generateStreamId(channelName: string | undefined, url: s
|
|
|
95
123
|
* @returns Validation result with optional reason for failure.
|
|
96
124
|
*/
|
|
97
125
|
export declare function validateStreamUrl(url: string | undefined): UrlValidationResult;
|
|
126
|
+
export interface CreatePageWithCaptureDeps {
|
|
127
|
+
readonly getCurrentBrowser: typeof getCurrentBrowser;
|
|
128
|
+
readonly getStream: typeof getStream;
|
|
129
|
+
readonly startOverlayHandling: typeof startOverlayHandling;
|
|
130
|
+
}
|
|
98
131
|
/**
|
|
99
132
|
* Creates a browser page with media capture and navigates to the URL. This is the reusable core function used by both initial stream setup and tab replacement
|
|
100
133
|
* recovery. It handles:
|
|
@@ -104,42 +137,137 @@ export declare function validateStreamUrl(url: string | undefined): UrlValidatio
|
|
|
104
137
|
* - Setting up video playback via navigateToPage() + initializePlayback()
|
|
105
138
|
*
|
|
106
139
|
* The caller is responsible for:
|
|
107
|
-
* - Creating the segmenter and
|
|
140
|
+
* - Creating the segmenter and attaching it to the capture session via captureSession.attachSegmenter()
|
|
108
141
|
* - Registering/updating the stream in the registry
|
|
109
142
|
* - Starting/updating the health monitor
|
|
110
143
|
* - Handling cleanup on failure
|
|
111
144
|
*
|
|
112
145
|
* @param options - Options for page and capture creation.
|
|
113
|
-
* @
|
|
146
|
+
* @param deps - The injected browser and overlay-poll collaborators; defaults to defaultCreatePageWithCaptureDeps. Threaded so a test drives this function without a
|
|
147
|
+
* live Chrome by substituting the shared-browser accessor, the capture launcher, and the static-capture overlay poll.
|
|
148
|
+
* @returns The page, context, and capture session (which owns the raw capture stream and any FFmpeg child).
|
|
114
149
|
* @throws Error if page creation, capture initialization, or navigation fails.
|
|
115
150
|
*/
|
|
116
|
-
export declare function createPageWithCapture(options: CreatePageWithCaptureOptions): Promise<CreatePageWithCaptureResult>;
|
|
151
|
+
export declare function createPageWithCapture(options: CreatePageWithCaptureOptions, deps?: CreatePageWithCaptureDeps): Promise<CreatePageWithCaptureResult>;
|
|
152
|
+
export declare function verifyManifestSelection(interceptionPromise: Promise<Nullable<ManifestInterceptionResult>>, profile: ResolvedSiteProfile): Promise<Nullable<string>>;
|
|
153
|
+
/**
|
|
154
|
+
* Sizes the interception observation window for one establishment run. The observer has to outlive every phase that can feed it: the caller's own navigation
|
|
155
|
+
* allowance (retry-aware on the tune path, a single attempt on the refresh path), the bounded playback initialization, the settle the interceptor waits out
|
|
156
|
+
* before it resolves, and a margin covering the small span between those phases. A window that expired mid-establishment would resolve with whatever the page
|
|
157
|
+
* load captured rather than the channel the selection landed on, which is the outcome this budget forecloses. Because no healthy path waits on the timer - it is
|
|
158
|
+
* a leak bound for an establishment that dies without unwinding - its generosity costs nothing.
|
|
159
|
+
* @param navigationAllowanceMs - The caller's worst-case navigation allowance, including any retry backoff its own policy performs.
|
|
160
|
+
* @returns The observation window, in milliseconds.
|
|
161
|
+
*/
|
|
162
|
+
export declare function establishmentBudgetMs(navigationAllowanceMs: number): number;
|
|
163
|
+
/**
|
|
164
|
+
* Derives the direct-tune kind the interception is finalized against. A tune is direct when the route was a cached direct watch URL, when the strategy itself
|
|
165
|
+
* resolved a direct tune through API interception, or when the profile has no DOM-based channel-selection step to run at all. The refresh path always navigates
|
|
166
|
+
* the configured channel url with full selection, so it never has a cached direct URL to report and omits that term entirely.
|
|
167
|
+
* @param options - The resolved profile plus the tune facts the kind reads: whether a cached direct URL was taken (absent on paths that cannot take one) and
|
|
168
|
+
* whether the strategy resolved a direct tune of its own.
|
|
169
|
+
* @returns True when the interception should adjudicate as a direct tune.
|
|
170
|
+
*/
|
|
171
|
+
export declare function computeDirectTuneKind(options: {
|
|
172
|
+
profile: ResolvedSiteProfile;
|
|
173
|
+
strategyDirectTune: boolean;
|
|
174
|
+
usedDirectUrl?: boolean;
|
|
175
|
+
}): boolean;
|
|
176
|
+
export interface EstablishChannelPlaybackDeps {
|
|
177
|
+
readonly initializePlayback: typeof initializePlayback;
|
|
178
|
+
}
|
|
179
|
+
export interface EstablishChannelPlaybackOptions {
|
|
180
|
+
initOptions: InitializePlaybackOptions;
|
|
181
|
+
navigate: () => Promise<void>;
|
|
182
|
+
onInitSettled?: () => void;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Establishes a channel on a page: navigate under the caller's own policy, stamp the interception's observation epoch, then run playback initialization under
|
|
186
|
+
* the module's safety-net bound. The tune path and the native refresh capability both run this, so the sequence and its ordering are written exactly once and
|
|
187
|
+
* only per-path policy differs.
|
|
188
|
+
* @param page - The page being established.
|
|
189
|
+
* @param profile - The resolved site profile whose strategy drives navigation and channel selection.
|
|
190
|
+
* @param handle - The interceptor observing this establishment, or null when nothing is observing it (a tab replacement, or an install that failed).
|
|
191
|
+
* @param options - The caller's navigation policy, its initialization options, and an optional settlement hook. See EstablishChannelPlaybackOptions.
|
|
192
|
+
* @param deps - Injected browser-boundary collaborator; defaults to the real playback initializer in production.
|
|
193
|
+
* @returns The result playback initialization produced: the video context for subsequent monitoring, and the strategy's direct-tune flag where it resolved one.
|
|
194
|
+
* @throws The caller's navigation failure, the initialization's own failure, or the bound's timeout error when the bound lapses first.
|
|
195
|
+
*/
|
|
196
|
+
export declare function establishChannelPlayback(page: Page, profile: ResolvedSiteProfile, handle: Nullable<ManifestInterceptorHandle>, options: EstablishChannelPlaybackOptions, deps?: EstablishChannelPlaybackDeps): Promise<TuneResult>;
|
|
197
|
+
/**
|
|
198
|
+
* Adjudicates what an establishment's interception selected: finalize it against the honest direct-tune kind, then confirm the manifest belongs to the channel
|
|
199
|
+
* the profile names. The tune path and the native refresh capability both run this, so finalize-then-verify is written exactly once.
|
|
200
|
+
*
|
|
201
|
+
* The stage hands on the interception promise rather than a resolved result, which is what keeps verifyManifestSelection's latency rule holding - its provider
|
|
202
|
+
* and selector gates run before the promise is awaited, so a stream with nothing to verify never waits on the interception here.
|
|
203
|
+
* @param handle - The interceptor this establishment installed, still observing.
|
|
204
|
+
* @param profile - The resolved site profile whose strategy names the provider and whose channelSelector names the expected channel.
|
|
205
|
+
* @param directTune - The direct-tune kind to finalize against.
|
|
206
|
+
* @returns A human-readable failure reason when the manifest belongs to a different channel, or null when it verifies (including every vacuous case).
|
|
207
|
+
*/
|
|
208
|
+
export declare function adjudicateChannelSelection(handle: ManifestInterceptorHandle, profile: ResolvedSiteProfile, directTune: boolean): Promise<Nullable<string>>;
|
|
117
209
|
/**
|
|
118
210
|
* Sets up a stream: validates input, creates browser page, initializes capture, navigates to URL, and starts health monitoring.
|
|
119
211
|
*
|
|
120
212
|
* This function handles all common stream setup logic. The caller is responsible for:
|
|
121
|
-
* -
|
|
213
|
+
* - Creating the segmenter and attaching it to the returned capture session (via captureSession.attachSegmenter), or upgrading to native streaming
|
|
122
214
|
* - Registering the stream in the registry
|
|
123
215
|
* - Triggering cleanup when the stream ends
|
|
124
216
|
*
|
|
125
217
|
* @param options - Stream configuration options.
|
|
126
218
|
* @param onCircuitBreak - Callback invoked when the circuit breaker trips (stream unrecoverable).
|
|
127
|
-
* @
|
|
219
|
+
* @param deps - The injected browser and overlay-poll collaborators, forwarded to every establishment attempt this function makes; defaults to
|
|
220
|
+
* defaultCreatePageWithCaptureDeps. Threaded for the same reason createPageWithCapture takes them: a test drives the establishment sequence - including its guide
|
|
221
|
+
* fallback - without a live Chrome by substituting the shared-browser accessor, the capture launcher, and the overlay poll.
|
|
222
|
+
* @returns Setup result with capture session, cleanup function, and metadata.
|
|
128
223
|
* @throws StreamSetupError if setup fails with appropriate status code and message.
|
|
129
224
|
*/
|
|
130
|
-
export declare function setupStream(options: StreamSetupOptions, onCircuitBreak: () => void): Promise<StreamSetupResult>;
|
|
225
|
+
export declare function setupStream(options: StreamSetupOptions, onCircuitBreak: () => void, deps?: CreatePageWithCaptureDeps): Promise<StreamSetupResult>;
|
|
226
|
+
/**
|
|
227
|
+
* Options for re-establishing a stream's channel on its page.
|
|
228
|
+
*/
|
|
229
|
+
export interface ReestablishChannelManifestOptions {
|
|
230
|
+
channelName: Nullable<string>;
|
|
231
|
+
page: Page;
|
|
232
|
+
profile: ResolvedSiteProfile;
|
|
233
|
+
streamIdStr: string;
|
|
234
|
+
url: string;
|
|
235
|
+
}
|
|
236
|
+
export declare function reestablishChannelManifest(options: ReestablishChannelManifestOptions): Promise<Nullable<ManifestInterceptionResult>>;
|
|
131
237
|
/**
|
|
132
|
-
* Verifies that Chrome
|
|
133
|
-
*
|
|
134
|
-
*
|
|
238
|
+
* Verifies that a freshly-launched Chrome instance can actually capture, by running a real getStream against a throwaway page on it. This is the capability tier of
|
|
239
|
+
* the browser launch gate: browser/index.ts injects it via setCaptureProbe and runs it inside launchReadyBrowser, so a browser is published as ready only after its
|
|
240
|
+
* capture capability is verified - at boot AND at every relaunch, not just startup. It exercises the exact getStream path that hangs when the puppeteer-stream
|
|
241
|
+
* extension is unregistered, so a dead extension is detected immediately rather than causing every subsequent stream request to hang.
|
|
135
242
|
*
|
|
136
|
-
*
|
|
137
|
-
* puppeteer-stream's fire-and-forget STOP_RECORDING chain to complete before closing the page, preventing
|
|
243
|
+
* Each attempt creates a temporary page, attempts a short capture, and tears down both cleanly. A 500ms delay after destroying the capture stream allows
|
|
244
|
+
* puppeteer-stream's fire-and-forget STOP_RECORDING chain to complete before closing the page, preventing a stale capture cascade on the first real request.
|
|
138
245
|
*
|
|
139
|
-
* After a system reboot, Chrome's display stack or capture extension may not be ready
|
|
140
|
-
*
|
|
141
|
-
*
|
|
246
|
+
* After a system reboot or a fresh relaunch, Chrome's display stack or capture extension may not be ready immediately. The probe retries up to PROBE_MAX_ATTEMPTS
|
|
247
|
+
* times with a delay between attempts, giving the system time to settle before giving up. At boot this prevents a rapid restart storm where the service manager
|
|
248
|
+
* relaunches PrismCast repeatedly, each attempt orphaning a Chrome process; at relaunch it provides in-launch settling before the supervisor counts a launch failure.
|
|
142
249
|
*
|
|
143
|
-
* If stale capture state is detected, the process exits immediately - Chrome restart cannot fix the leaked mutex, only a fresh process can.
|
|
250
|
+
* If stale capture state is detected, the process exits immediately - a Chrome restart cannot fix the leaked module-level mutex, only a fresh process can.
|
|
251
|
+
* @param browser - The Chrome instance to verify (the local instance being launched, passed in rather than re-acquired to avoid re-entering the launch in flight).
|
|
252
|
+
*/
|
|
253
|
+
export declare function verifyCaptureSystem(browser: Browser): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Pure decision for whether a mid-life capture-infrastructure failure warrants re-verifying the browser. Re-verification is warranted iff no other re-verification
|
|
256
|
+
* is already in flight, a browser is published to probe, and the failing stream is the only active stream - any other active stream means either the browser is
|
|
257
|
+
* demonstrably capturing (so this failure is stream-specific - never invalidate) or those streams will trip their own circuit breakers and drain, after which a
|
|
258
|
+
* later failure reaches the zero-other case. An empty registry (setup failed before the stream was registered) satisfies the isolation check vacuously and is the
|
|
259
|
+
* common real-world shape of this failure.
|
|
260
|
+
* @param inputs - The decision inputs.
|
|
261
|
+
* @param inputs.activeStreamIds - The ids of every stream currently in the registry.
|
|
262
|
+
* @param inputs.failingStreamId - The id of the stream whose setup just failed, excluded from the isolation check.
|
|
263
|
+
* @param inputs.hasBrowser - Whether a browser instance is currently published to probe.
|
|
264
|
+
* @param inputs.reverificationInProgress - Whether a re-verification is already deciding the browser's fate.
|
|
265
|
+
* @returns True when the failure should trigger a re-verification probe.
|
|
144
266
|
*/
|
|
145
|
-
export declare function
|
|
267
|
+
export declare function shouldReverifyCapture(inputs: {
|
|
268
|
+
activeStreamIds: readonly number[];
|
|
269
|
+
failingStreamId: number;
|
|
270
|
+
hasBrowser: boolean;
|
|
271
|
+
reverificationInProgress: boolean;
|
|
272
|
+
}): boolean;
|
|
273
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/streaming/setup.ts"],"names":[],"mappings":"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"}
|