prismcast 1.12.1 → 1.13.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 +0 -1
- package/dist/app.js +8 -7
- package/dist/app.js.map +1 -1
- package/dist/browser/blockedPage.d.ts +0 -1
- package/dist/browser/browserSupervisor.d.ts +4 -4
- package/dist/browser/browserSupervisor.js.map +1 -1
- package/dist/browser/cdp.d.ts +2 -3
- package/dist/browser/cdp.js +5 -4
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +16 -4
- package/dist/browser/channelSelection.js +42 -31
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/consent.d.ts +17 -4
- package/dist/browser/consent.js +25 -40
- package/dist/browser/consent.js.map +1 -1
- package/dist/browser/display.d.ts +0 -1
- package/dist/browser/hlsPlaylistObserver.d.ts +3 -2
- package/dist/browser/hlsPlaylistObserver.js +9 -4
- package/dist/browser/hlsPlaylistObserver.js.map +1 -1
- package/dist/browser/index.d.ts +76 -26
- package/dist/browser/index.js +201 -101
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/launchGovernor.d.ts +0 -1
- package/dist/browser/login.d.ts +8 -7
- package/dist/browser/login.js +25 -16
- package/dist/browser/login.js.map +1 -1
- package/dist/browser/manifestInterceptor.d.ts +14 -5
- package/dist/browser/manifestInterceptor.js +25 -12
- package/dist/browser/manifestInterceptor.js.map +1 -1
- package/dist/browser/navigation.d.ts +28 -0
- package/dist/browser/navigation.js +57 -0
- package/dist/browser/navigation.js.map +1 -0
- package/dist/browser/pageStaleness.d.ts +0 -1
- package/dist/browser/precaching.d.ts +4 -2
- package/dist/browser/precaching.js +39 -32
- package/dist/browser/precaching.js.map +1 -1
- package/dist/browser/tabCapture.d.ts +7 -10
- package/dist/browser/tabCapture.js +35 -41
- package/dist/browser/tabCapture.js.map +1 -1
- package/dist/browser/tabNetworkObserver.d.ts +0 -1
- package/dist/browser/tabSelection.d.ts +5 -5
- package/dist/browser/tabSelection.js +11 -10
- package/dist/browser/tabSelection.js.map +1 -1
- package/dist/browser/tuning/cache.d.ts +0 -1
- package/dist/browser/tuning/comcastPolymer.d.ts +0 -1
- package/dist/browser/tuning/comcastPolymer.js +16 -17
- package/dist/browser/tuning/comcastPolymer.js.map +1 -1
- package/dist/browser/tuning/cox.d.ts +0 -1
- package/dist/browser/tuning/directv.d.ts +0 -1
- package/dist/browser/tuning/directv.js +11 -12
- package/dist/browser/tuning/directv.js.map +1 -1
- package/dist/browser/tuning/fox.d.ts +0 -1
- package/dist/browser/tuning/fox.js +2 -2
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/gridSearch.d.ts +0 -1
- package/dist/browser/tuning/hbo.d.ts +0 -1
- package/dist/browser/tuning/hulu.d.ts +14 -2
- package/dist/browser/tuning/hulu.js +144 -21
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/shared.d.ts +0 -1
- package/dist/browser/tuning/sling.d.ts +0 -1
- package/dist/browser/tuning/sling.js +17 -22
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/spectrum.d.ts +0 -1
- package/dist/browser/tuning/thumbnailRow.d.ts +0 -1
- package/dist/browser/tuning/tileClick.d.ts +0 -1
- package/dist/browser/tuning/xfinity.d.ts +0 -1
- package/dist/browser/tuning/youtubeTv.d.ts +0 -1
- package/dist/browser/video.d.ts +22 -20
- package/dist/browser/video.js +102 -119
- package/dist/browser/video.js.map +1 -1
- package/dist/browser/windowSync.d.ts +0 -1
- package/dist/channels/index.d.ts +0 -1
- package/dist/config/channelForm.d.ts +0 -1
- package/dist/config/channelIdentity.d.ts +27 -0
- package/dist/config/channelIdentity.js +72 -0
- package/dist/config/channelIdentity.js.map +1 -0
- package/dist/config/channelSort.d.ts +25 -0
- package/dist/config/channelSort.js +101 -0
- package/dist/config/channelSort.js.map +1 -0
- package/dist/config/consistencyProbe.d.ts +0 -1
- package/dist/config/health.d.ts +3 -2
- package/dist/config/health.js +41 -28
- package/dist/config/health.js.map +1 -1
- package/dist/config/index.d.ts +0 -1
- package/dist/config/paths.d.ts +0 -1
- package/dist/config/persistence.context.d.ts +0 -1
- package/dist/config/persistence.d.ts +0 -1
- package/dist/config/presets.d.ts +0 -1
- package/dist/config/profiles.d.ts +9 -4
- package/dist/config/profiles.js +37 -3
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providerLineups.d.ts +0 -1
- package/dist/config/reactivity.d.ts +0 -1
- package/dist/config/servicePacks.d.ts +0 -1
- package/dist/config/services.d.ts +1 -47
- package/dist/config/services.js +3 -134
- package/dist/config/services.js.map +1 -1
- package/dist/config/sites.d.ts +0 -9
- package/dist/config/sites.js +5 -40
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +22 -28
- package/dist/config/userChannels.js +46 -60
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +4 -1
- package/dist/config/userConfig.js +4 -0
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +2 -3
- package/dist/config/userProfiles.js +6 -2
- package/dist/config/userProfiles.js.map +1 -1
- package/dist/hdhr/channelMap.d.ts +0 -1
- package/dist/hdhr/deviceId.d.ts +0 -1
- package/dist/hdhr/discover.d.ts +0 -1
- package/dist/hdhr/getHandlers.d.ts +0 -1
- package/dist/hdhr/identity.d.ts +0 -1
- package/dist/hdhr/index.d.ts +0 -1
- package/dist/hdhr/protocol.d.ts +0 -1
- package/dist/hdhr/tunerState.d.ts +0 -1
- package/dist/hdhr/udp.d.ts +0 -1
- package/dist/identity.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/native/codecInference.d.ts +5 -4
- package/dist/native/codecInference.js +12 -7
- package/dist/native/codecInference.js.map +1 -1
- package/dist/native/decrypt.d.ts +10 -3
- package/dist/native/decrypt.js +9 -5
- package/dist/native/decrypt.js.map +1 -1
- package/dist/native/index.d.ts +25 -23
- package/dist/native/index.js +23 -17
- package/dist/native/index.js.map +1 -1
- package/dist/native/probe.d.ts +7 -10
- package/dist/native/probe.js +40 -36
- package/dist/native/probe.js.map +1 -1
- package/dist/native/proxy.d.ts +2 -3
- package/dist/native/proxy.js +86 -64
- package/dist/native/proxy.js.map +1 -1
- package/dist/native/tokenExpiry.d.ts +0 -1
- package/dist/routes/assets.d.ts +0 -1
- package/dist/routes/auth.d.ts +0 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/cdp.d.ts +11 -5
- package/dist/routes/cdp.js +90 -62
- package/dist/routes/cdp.js.map +1 -1
- package/dist/routes/channels.d.ts +0 -1
- package/dist/routes/clientActions.d.ts +0 -1
- package/dist/routes/components.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/browse.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/bulk.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/bulk.js +1 -1
- package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
- package/dist/routes/config/channels/endpoints/crud.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/crud.js +3 -2
- package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
- package/dist/routes/config/channels/endpoints/importExport.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/importExport.js +7 -3
- package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
- package/dist/routes/config/channels/endpoints/predefined.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/prefs.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/prefs.js +1 -1
- package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
- package/dist/routes/config/channels/endpoints/service.d.ts +0 -1
- package/dist/routes/config/channels/endpoints/service.js +8 -5
- package/dist/routes/config/channels/endpoints/service.js.map +1 -1
- package/dist/routes/config/channels/endpoints/tags.d.ts +0 -1
- package/dist/routes/config/channels/healthBridge.d.ts +0 -1
- package/dist/routes/config/channels/http/handler.d.ts +0 -1
- package/dist/routes/config/channels/http/playlistHint.d.ts +0 -1
- package/dist/routes/config/channels/http/serviceWarning.d.ts +0 -1
- package/dist/routes/config/channels/http/serviceWarning.js +1 -1
- package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
- package/dist/routes/config/channels/index.d.ts +0 -1
- package/dist/routes/config/channels/setup.d.ts +0 -1
- package/dist/routes/config/channels/table.d.ts +0 -1
- package/dist/routes/config/channels/table.js +2 -1
- package/dist/routes/config/channels/table.js.map +1 -1
- package/dist/routes/config/http/envelope.d.ts +0 -1
- package/dist/routes/config/index.d.ts +0 -1
- package/dist/routes/config/index.js +2 -1
- package/dist/routes/config/index.js.map +1 -1
- package/dist/routes/config/services.d.ts +0 -1
- package/dist/routes/config/services.js +4 -3
- package/dist/routes/config/services.js.map +1 -1
- package/dist/routes/config/settings.d.ts +0 -1
- package/dist/routes/config/settings.js +2 -1
- package/dist/routes/config/settings.js.map +1 -1
- package/dist/routes/debug.d.ts +0 -1
- package/dist/routes/health.d.ts +1 -2
- package/dist/routes/health.js +5 -2
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/hls.d.ts +0 -1
- package/dist/routes/icons.d.ts +0 -1
- package/dist/routes/index.d.ts +0 -1
- package/dist/routes/logs.d.ts +3 -2
- package/dist/routes/logs.js +4 -2
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/mpegts.d.ts +0 -1
- package/dist/routes/play.d.ts +0 -1
- package/dist/routes/playlist.d.ts +0 -1
- package/dist/routes/playlist.js +2 -1
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/root/content.d.ts +0 -1
- package/dist/routes/root/index.d.ts +0 -1
- package/dist/routes/root/scripts/channels.d.ts +0 -1
- package/dist/routes/root/scripts/channels.js +2 -2
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/clientEscape.d.ts +0 -1
- package/dist/routes/root/scripts/clientUrl.d.ts +0 -1
- package/dist/routes/root/scripts/config.d.ts +0 -1
- package/dist/routes/root/scripts/config.js +5 -26
- package/dist/routes/root/scripts/config.js.map +1 -1
- package/dist/routes/root/scripts/index.d.ts +0 -1
- package/dist/routes/root/scripts/shared.d.ts +0 -1
- package/dist/routes/root/scripts/status.d.ts +0 -1
- package/dist/routes/root/scripts/status.handlers.d.ts +0 -1
- package/dist/routes/root/scripts/status.handlers.js +3 -2
- package/dist/routes/root/scripts/status.handlers.js.map +1 -1
- package/dist/routes/root/styles.d.ts +0 -1
- package/dist/routes/services.d.ts +0 -1
- package/dist/routes/services.js +1 -1
- package/dist/routes/services.js.map +1 -1
- package/dist/routes/sse.d.ts +3 -2
- package/dist/routes/sse.js +7 -3
- package/dist/routes/sse.js.map +1 -1
- package/dist/routes/streams.d.ts +4 -2
- package/dist/routes/streams.js +8 -5
- package/dist/routes/streams.js.map +1 -1
- package/dist/routes/theme.d.ts +0 -1
- package/dist/routes/ui.d.ts +0 -1
- package/dist/routes/upgrade.d.ts +0 -1
- package/dist/routes/upgrade.js +2 -1
- package/dist/routes/upgrade.js.map +1 -1
- package/dist/service/commands.context.d.ts +0 -1
- package/dist/service/commands.context.js +7 -1
- package/dist/service/commands.context.js.map +1 -1
- package/dist/service/commands.d.ts +0 -1
- package/dist/service/generators.context.d.ts +0 -1
- package/dist/service/generators.d.ts +0 -1
- package/dist/service/index.d.ts +0 -1
- package/dist/streaming/captureLock.d.ts +1 -2
- package/dist/streaming/captureLock.js +6 -5
- package/dist/streaming/captureLock.js.map +1 -1
- package/dist/streaming/captureSession.d.ts +0 -1
- package/dist/streaming/clients.d.ts +4 -3
- package/dist/streaming/clients.js +5 -4
- package/dist/streaming/clients.js.map +1 -1
- package/dist/streaming/codec.d.ts +0 -1
- package/dist/streaming/fmp4Segmenter.d.ts +2 -1
- package/dist/streaming/fmp4Segmenter.js +12 -11
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.d.ts +34 -1
- package/dist/streaming/hls.js +121 -54
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +8 -5
- package/dist/streaming/hlsResume.js +10 -8
- package/dist/streaming/hlsResume.js.map +1 -1
- package/dist/streaming/hlsSegments.d.ts +9 -7
- package/dist/streaming/hlsSegments.js +19 -14
- package/dist/streaming/hlsSegments.js.map +1 -1
- package/dist/streaming/lifecycle.d.ts +5 -4
- package/dist/streaming/lifecycle.js +25 -13
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.d.ts +3 -2
- package/dist/streaming/monitor.js +63 -57
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/mp4Parser.d.ts +0 -1
- package/dist/streaming/mpegts.d.ts +0 -1
- package/dist/streaming/mpegts.js +23 -7
- package/dist/streaming/mpegts.js.map +1 -1
- package/dist/streaming/playlistBuilder.d.ts +0 -1
- package/dist/streaming/preroll.d.ts +34 -15
- package/dist/streaming/preroll.js +30 -28
- package/dist/streaming/preroll.js.map +1 -1
- package/dist/streaming/pretune.d.ts +2 -3
- package/dist/streaming/pretune.js +45 -45
- package/dist/streaming/pretune.js.map +1 -1
- package/dist/streaming/pretuneTimers.d.ts +16 -12
- package/dist/streaming/pretuneTimers.js +27 -37
- package/dist/streaming/pretuneTimers.js.map +1 -1
- package/dist/streaming/recovery.d.ts +7 -5
- package/dist/streaming/recovery.js +10 -7
- package/dist/streaming/recovery.js.map +1 -1
- package/dist/streaming/registry.d.ts +23 -5
- package/dist/streaming/registry.js +17 -3
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +39 -7
- package/dist/streaming/setup.js +130 -65
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.d.ts +8 -4
- package/dist/streaming/showInfo.js +54 -45
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +1 -2
- package/dist/streaming/statusEmitter.js +1 -1
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +0 -1
- package/dist/types/config.d.ts +0 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/profiles.d.ts +1 -1
- package/dist/types/selection.d.ts +10 -1
- package/dist/types/shared.d.ts +0 -1
- package/dist/types/streaming.d.ts +0 -1
- package/dist/upgrade/commands.context.d.ts +0 -1
- package/dist/upgrade/commands.d.ts +0 -1
- package/dist/upgrade/detection.context.d.ts +0 -1
- package/dist/upgrade/detection.d.ts +0 -1
- package/dist/upgrade/index.d.ts +0 -1
- package/dist/upgrade/lifecycle.context.d.ts +2 -1
- package/dist/upgrade/lifecycle.context.js +9 -4
- package/dist/upgrade/lifecycle.context.js.map +1 -1
- package/dist/upgrade/lifecycle.d.ts +0 -1
- package/dist/upgrade/pathHandle.d.ts +0 -1
- package/dist/utils/bootSession.context.d.ts +0 -1
- package/dist/utils/bootSession.context.js +2 -1
- package/dist/utils/bootSession.context.js.map +1 -1
- package/dist/utils/bootSession.d.ts +0 -1
- package/dist/utils/chromeFetch.d.ts +0 -1
- package/dist/utils/cliOutput.d.ts +0 -1
- package/dist/utils/debugFilter.d.ts +0 -1
- package/dist/utils/delay.d.ts +47 -25
- package/dist/utils/delay.js +74 -37
- package/dist/utils/delay.js.map +1 -1
- package/dist/utils/errors.d.ts +0 -1
- package/dist/utils/evaluate.d.ts +11 -3
- package/dist/utils/evaluate.js +4 -3
- package/dist/utils/evaluate.js.map +1 -1
- package/dist/utils/ffmpeg.context.d.ts +0 -1
- package/dist/utils/ffmpeg.d.ts +0 -1
- package/dist/utils/fileLogger.d.ts +3 -2
- package/dist/utils/fileLogger.js +16 -8
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/format.d.ts +12 -3
- package/dist/utils/format.js +29 -11
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logEmitter.d.ts +0 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/m3u.d.ts +0 -1
- package/dist/utils/markup.d.ts +0 -1
- package/dist/utils/memo.d.ts +0 -1
- package/dist/utils/morganStream.d.ts +0 -1
- package/dist/utils/network.d.ts +0 -1
- package/dist/utils/never.d.ts +0 -1
- package/dist/utils/pid.d.ts +0 -1
- package/dist/utils/platform.d.ts +0 -1
- package/dist/utils/processInspector.context.d.ts +32 -2
- package/dist/utils/processInspector.context.js +117 -1
- package/dist/utils/processInspector.context.js.map +1 -1
- package/dist/utils/processInspector.d.ts +0 -32
- package/dist/utils/processInspector.js +10 -117
- package/dist/utils/processInspector.js.map +1 -1
- package/dist/utils/retry.d.ts +5 -4
- package/dist/utils/retry.js +43 -33
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/runtimeIdentity.context.d.ts +0 -1
- package/dist/utils/runtimeIdentity.context.js +3 -1
- package/dist/utils/runtimeIdentity.context.js.map +1 -1
- package/dist/utils/runtimeIdentity.d.ts +1 -1
- package/dist/utils/runtimeIdentity.js +1 -1
- package/dist/utils/runtimeIdentity.js.map +1 -1
- package/dist/utils/sanitize.d.ts +0 -1
- package/dist/utils/streamContext.d.ts +0 -1
- package/dist/utils/timing.d.ts +3 -4
- package/dist/utils/timing.js +4 -4
- package/dist/utils/timing.js.map +1 -1
- package/dist/utils/version.d.ts +5 -4
- package/dist/utils/version.js +35 -24
- package/dist/utils/version.js.map +1 -1
- package/package.json +7 -7
- package/dist/app.d.ts.map +0 -1
- package/dist/browser/blockedPage.d.ts.map +0 -1
- package/dist/browser/browserSupervisor.d.ts.map +0 -1
- package/dist/browser/cdp.d.ts.map +0 -1
- package/dist/browser/channelSelection.d.ts.map +0 -1
- package/dist/browser/consent.d.ts.map +0 -1
- package/dist/browser/display.d.ts.map +0 -1
- package/dist/browser/hlsPlaylistObserver.d.ts.map +0 -1
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/launchGovernor.d.ts.map +0 -1
- package/dist/browser/login.d.ts.map +0 -1
- package/dist/browser/manifestInterceptor.d.ts.map +0 -1
- package/dist/browser/pageStaleness.d.ts.map +0 -1
- package/dist/browser/precaching.d.ts.map +0 -1
- package/dist/browser/tabCapture.d.ts.map +0 -1
- package/dist/browser/tabNetworkObserver.d.ts.map +0 -1
- package/dist/browser/tabSelection.d.ts.map +0 -1
- package/dist/browser/tuning/cache.d.ts.map +0 -1
- package/dist/browser/tuning/comcastPolymer.d.ts.map +0 -1
- package/dist/browser/tuning/cox.d.ts.map +0 -1
- package/dist/browser/tuning/directv.d.ts.map +0 -1
- package/dist/browser/tuning/fox.d.ts.map +0 -1
- package/dist/browser/tuning/gridSearch.d.ts.map +0 -1
- package/dist/browser/tuning/hbo.d.ts.map +0 -1
- package/dist/browser/tuning/hulu.d.ts.map +0 -1
- package/dist/browser/tuning/shared.d.ts.map +0 -1
- package/dist/browser/tuning/sling.d.ts.map +0 -1
- package/dist/browser/tuning/spectrum.d.ts.map +0 -1
- package/dist/browser/tuning/thumbnailRow.d.ts.map +0 -1
- package/dist/browser/tuning/tileClick.d.ts.map +0 -1
- package/dist/browser/tuning/xfinity.d.ts.map +0 -1
- package/dist/browser/tuning/youtubeTv.d.ts.map +0 -1
- package/dist/browser/video.d.ts.map +0 -1
- package/dist/browser/windowSync.d.ts.map +0 -1
- package/dist/channels/index.d.ts.map +0 -1
- package/dist/config/channelForm.d.ts.map +0 -1
- package/dist/config/consistencyProbe.d.ts.map +0 -1
- package/dist/config/health.d.ts.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/paths.d.ts.map +0 -1
- package/dist/config/persistence.context.d.ts.map +0 -1
- package/dist/config/persistence.d.ts.map +0 -1
- package/dist/config/presets.d.ts.map +0 -1
- package/dist/config/profiles.d.ts.map +0 -1
- package/dist/config/providerLineups.d.ts.map +0 -1
- package/dist/config/reactivity.d.ts.map +0 -1
- package/dist/config/servicePacks.d.ts.map +0 -1
- package/dist/config/services.d.ts.map +0 -1
- package/dist/config/sites.d.ts.map +0 -1
- package/dist/config/userChannels.d.ts.map +0 -1
- package/dist/config/userConfig.d.ts.map +0 -1
- package/dist/config/userProfiles.d.ts.map +0 -1
- package/dist/hdhr/channelMap.d.ts.map +0 -1
- package/dist/hdhr/deviceId.d.ts.map +0 -1
- package/dist/hdhr/discover.d.ts.map +0 -1
- package/dist/hdhr/getHandlers.d.ts.map +0 -1
- package/dist/hdhr/identity.d.ts.map +0 -1
- package/dist/hdhr/index.d.ts.map +0 -1
- package/dist/hdhr/protocol.d.ts.map +0 -1
- package/dist/hdhr/tunerState.d.ts.map +0 -1
- package/dist/hdhr/udp.d.ts.map +0 -1
- package/dist/identity.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/native/codecInference.d.ts.map +0 -1
- package/dist/native/decrypt.d.ts.map +0 -1
- package/dist/native/index.d.ts.map +0 -1
- package/dist/native/probe.d.ts.map +0 -1
- package/dist/native/proxy.d.ts.map +0 -1
- package/dist/native/tokenExpiry.d.ts.map +0 -1
- package/dist/routes/assets.d.ts.map +0 -1
- package/dist/routes/auth.d.ts.map +0 -1
- package/dist/routes/cdp.d.ts.map +0 -1
- package/dist/routes/channels.d.ts.map +0 -1
- package/dist/routes/clientActions.d.ts.map +0 -1
- package/dist/routes/components.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/browse.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/bulk.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/crud.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/importExport.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/predefined.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/prefs.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/service.d.ts.map +0 -1
- package/dist/routes/config/channels/endpoints/tags.d.ts.map +0 -1
- package/dist/routes/config/channels/healthBridge.d.ts.map +0 -1
- package/dist/routes/config/channels/http/handler.d.ts.map +0 -1
- package/dist/routes/config/channels/http/playlistHint.d.ts.map +0 -1
- package/dist/routes/config/channels/http/serviceWarning.d.ts.map +0 -1
- package/dist/routes/config/channels/index.d.ts.map +0 -1
- package/dist/routes/config/channels/setup.d.ts.map +0 -1
- package/dist/routes/config/channels/table.d.ts.map +0 -1
- package/dist/routes/config/http/envelope.d.ts.map +0 -1
- package/dist/routes/config/index.d.ts.map +0 -1
- package/dist/routes/config/services.d.ts.map +0 -1
- package/dist/routes/config/settings.d.ts.map +0 -1
- package/dist/routes/debug.d.ts.map +0 -1
- package/dist/routes/health.d.ts.map +0 -1
- package/dist/routes/hls.d.ts.map +0 -1
- package/dist/routes/icons.d.ts.map +0 -1
- package/dist/routes/index.d.ts.map +0 -1
- package/dist/routes/logs.d.ts.map +0 -1
- package/dist/routes/mpegts.d.ts.map +0 -1
- package/dist/routes/play.d.ts.map +0 -1
- package/dist/routes/playlist.d.ts.map +0 -1
- package/dist/routes/root/content.d.ts.map +0 -1
- package/dist/routes/root/index.d.ts.map +0 -1
- package/dist/routes/root/scripts/channels.d.ts.map +0 -1
- package/dist/routes/root/scripts/clientEscape.d.ts.map +0 -1
- package/dist/routes/root/scripts/clientUrl.d.ts.map +0 -1
- package/dist/routes/root/scripts/config.d.ts.map +0 -1
- package/dist/routes/root/scripts/index.d.ts.map +0 -1
- package/dist/routes/root/scripts/shared.d.ts.map +0 -1
- package/dist/routes/root/scripts/status.d.ts.map +0 -1
- package/dist/routes/root/scripts/status.handlers.d.ts.map +0 -1
- package/dist/routes/root/styles.d.ts.map +0 -1
- package/dist/routes/services.d.ts.map +0 -1
- package/dist/routes/sse.d.ts.map +0 -1
- package/dist/routes/streams.d.ts.map +0 -1
- package/dist/routes/theme.d.ts.map +0 -1
- package/dist/routes/ui.d.ts.map +0 -1
- package/dist/routes/upgrade.d.ts.map +0 -1
- package/dist/service/commands.context.d.ts.map +0 -1
- package/dist/service/commands.d.ts.map +0 -1
- package/dist/service/generators.context.d.ts.map +0 -1
- package/dist/service/generators.d.ts.map +0 -1
- package/dist/service/index.d.ts.map +0 -1
- package/dist/streaming/captureLock.d.ts.map +0 -1
- package/dist/streaming/captureSession.d.ts.map +0 -1
- package/dist/streaming/clients.d.ts.map +0 -1
- package/dist/streaming/codec.d.ts.map +0 -1
- package/dist/streaming/fmp4Segmenter.d.ts.map +0 -1
- package/dist/streaming/hls.d.ts.map +0 -1
- package/dist/streaming/hlsResume.d.ts.map +0 -1
- package/dist/streaming/hlsSegments.d.ts.map +0 -1
- package/dist/streaming/lifecycle.d.ts.map +0 -1
- package/dist/streaming/monitor.d.ts.map +0 -1
- package/dist/streaming/mp4Parser.d.ts.map +0 -1
- package/dist/streaming/mpegts.d.ts.map +0 -1
- package/dist/streaming/playlistBuilder.d.ts.map +0 -1
- package/dist/streaming/preroll.d.ts.map +0 -1
- package/dist/streaming/pretune.d.ts.map +0 -1
- package/dist/streaming/pretuneTimers.d.ts.map +0 -1
- package/dist/streaming/recovery.d.ts.map +0 -1
- package/dist/streaming/registry.d.ts.map +0 -1
- package/dist/streaming/setup.d.ts.map +0 -1
- package/dist/streaming/showInfo.d.ts.map +0 -1
- package/dist/streaming/statusEmitter.d.ts.map +0 -1
- package/dist/types/channels.d.ts.map +0 -1
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/profiles.d.ts.map +0 -1
- package/dist/types/selection.d.ts.map +0 -1
- package/dist/types/shared.d.ts.map +0 -1
- package/dist/types/streaming.d.ts.map +0 -1
- package/dist/upgrade/commands.context.d.ts.map +0 -1
- package/dist/upgrade/commands.d.ts.map +0 -1
- package/dist/upgrade/detection.context.d.ts.map +0 -1
- package/dist/upgrade/detection.d.ts.map +0 -1
- package/dist/upgrade/index.d.ts.map +0 -1
- package/dist/upgrade/lifecycle.context.d.ts.map +0 -1
- package/dist/upgrade/lifecycle.d.ts.map +0 -1
- package/dist/upgrade/pathHandle.d.ts.map +0 -1
- package/dist/utils/bootSession.context.d.ts.map +0 -1
- package/dist/utils/bootSession.d.ts.map +0 -1
- package/dist/utils/chromeFetch.d.ts.map +0 -1
- package/dist/utils/cliOutput.d.ts.map +0 -1
- package/dist/utils/clock.d.ts +0 -15
- package/dist/utils/clock.d.ts.map +0 -1
- package/dist/utils/clock.js +0 -31
- package/dist/utils/clock.js.map +0 -1
- package/dist/utils/debugFilter.d.ts.map +0 -1
- package/dist/utils/delay.d.ts.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/evaluate.d.ts.map +0 -1
- package/dist/utils/ffmpeg.context.d.ts.map +0 -1
- package/dist/utils/ffmpeg.d.ts.map +0 -1
- package/dist/utils/fileLogger.d.ts.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/logEmitter.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/m3u.d.ts.map +0 -1
- package/dist/utils/markup.d.ts.map +0 -1
- package/dist/utils/memo.d.ts.map +0 -1
- package/dist/utils/morganStream.d.ts.map +0 -1
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/never.d.ts.map +0 -1
- package/dist/utils/pid.d.ts.map +0 -1
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/processInspector.context.d.ts.map +0 -1
- package/dist/utils/processInspector.d.ts.map +0 -1
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/runtimeIdentity.context.d.ts.map +0 -1
- package/dist/utils/runtimeIdentity.d.ts.map +0 -1
- package/dist/utils/sanitize.d.ts.map +0 -1
- package/dist/utils/streamContext.d.ts.map +0 -1
- package/dist/utils/timing.d.ts.map +0 -1
- package/dist/utils/version.d.ts.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { CONFIG } from "../config/index.js";
|
|
2
|
+
import { LOG } from "../utils/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Puts the page on the given URL and waits for it the way the options ask. Under the network-idle wait, the load returns once network activity settles, allowing
|
|
5
|
+
* up to two concurrent connections for 500 ms, which is what gives a complex JavaScript player time to finish initializing; the wait also carries the navigation
|
|
6
|
+
* timeout, and a timeout under it is tolerated rather than thrown, because the video frequently has loaded even when some background request never completed.
|
|
7
|
+
* Without the network-idle wait the load returns as soon as the page fires its load event, which is the only workable answer for a site whose persistent
|
|
8
|
+
* connections or continuous polling would keep it from ever reaching idle, and a failure there propagates.
|
|
9
|
+
* @param page - The Puppeteer page object.
|
|
10
|
+
* @param url - The URL to load.
|
|
11
|
+
* @param options - The wait preference for this load.
|
|
12
|
+
* @returns The document response, or null when the network-idle wait timed out and the page was left as it loaded.
|
|
13
|
+
*/
|
|
14
|
+
export async function loadDocument(page, url, options) {
|
|
15
|
+
if (options.waitForNetworkIdle) {
|
|
16
|
+
try {
|
|
17
|
+
// Wait for network activity to settle. This ensures complex JavaScript players have fully initialized. The networkidle2 strategy allows up to 2
|
|
18
|
+
// concurrent requests, which handles sites with persistent connections for analytics.
|
|
19
|
+
return await page.goto(url, { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "networkidle2" });
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
// Timeout errors during navigation are common and often non-fatal - the video may have loaded successfully even if some background requests never
|
|
23
|
+
// completed. We log a warning and continue rather than throwing.
|
|
24
|
+
if (error && (error.name === "TimeoutError")) {
|
|
25
|
+
LOG.warn("Page navigation timed out after %sms for %s.", CONFIG.streaming.navigationTimeout, url);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
// Non-timeout errors (network failure, invalid URL, etc.) should be propagated for retry handling.
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Simple navigation without waiting for network idle. Returns after the load event fires. Used for sites that would never reach networkidle due to
|
|
33
|
+
// persistent connections, streaming data, or continuous polling.
|
|
34
|
+
return page.goto(url);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reloads the page it is handed, mirroring loadDocument's wait strategy and its timeout tolerance so a reload and a fresh load of the same site behave the same
|
|
38
|
+
* way. A reload timeout is often non-fatal - the player may already be present even if some background requests never settled - so it warns and continues, and
|
|
39
|
+
* every other error propagates.
|
|
40
|
+
* @param page - The Puppeteer page object.
|
|
41
|
+
* @param options - The wait preference for this reload.
|
|
42
|
+
*/
|
|
43
|
+
export async function reloadDocument(page, options) {
|
|
44
|
+
const waitUntil = options.waitForNetworkIdle ? "networkidle2" : "load";
|
|
45
|
+
try {
|
|
46
|
+
await page.reload({ timeout: CONFIG.streaming.navigationTimeout, waitUntil });
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error && (error.name === "TimeoutError")) {
|
|
50
|
+
LOG.warn("Page reload timed out after %sms.", CONFIG.streaming.navigationTimeout);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/browser/navigation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAqBxC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,GAAW,EAAE,OAA4B;IAEtF,IAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAE9B,IAAI,CAAC;YAEH,gJAAgJ;YAChJ,sFAAsF;YACtF,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1G,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAEd,kJAAkJ;YAClJ,iEAAiE;YACjE,IAAG,KAAK,IAAI,CAAE,KAAe,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;gBAEvD,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAElG,OAAO,IAAI,CAAC;YACd,CAAC;YAED,mGAAmG;YACnG,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,mJAAmJ;IACnJ,iEAAiE;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAU,EAAE,OAA4B;IAE3E,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;IAEvE,IAAI,CAAC;QAEH,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,IAAG,KAAK,IAAI,CAAE,KAAe,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;YAEvD,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YAEN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -27,4 +27,3 @@ export interface StalePageActions {
|
|
|
27
27
|
* @returns The clocks to start, the marks to clear, the entries to forget, and the pages to close.
|
|
28
28
|
*/
|
|
29
29
|
export declare function evaluateStalePages(snapshot: StalePageSnapshot): StalePageActions;
|
|
30
|
-
//# sourceMappingURL=pageStaleness.d.ts.map
|
|
@@ -3,6 +3,7 @@ import { createDiscoveryPage, emulateLayoutSurface, getCurrentBrowser, isGracefu
|
|
|
3
3
|
import { getPersistedLineup, persistProviderLineup } from "../config/providerLineups.ts";
|
|
4
4
|
import { getProviderBySlug, getProvidersForDomain } from "./channelSelection.ts";
|
|
5
5
|
import type { BlockedPageClassification } from "./blockedPage.ts";
|
|
6
|
+
import type { Clock } from "homebridge-plugin-utils";
|
|
6
7
|
import type { Page } from "puppeteer-core";
|
|
7
8
|
import { startOverlayHandling } from "./consent.ts";
|
|
8
9
|
/**
|
|
@@ -13,6 +14,7 @@ export declare class DiscoveryWalkTimeoutError extends Error {
|
|
|
13
14
|
constructor(label: string, timeoutMs: number);
|
|
14
15
|
}
|
|
15
16
|
export interface PrecachingDeps {
|
|
17
|
+
readonly clock: Clock;
|
|
16
18
|
readonly createDiscoveryPage: typeof createDiscoveryPage;
|
|
17
19
|
readonly emulateLayoutSurface: typeof emulateLayoutSurface;
|
|
18
20
|
readonly getCurrentBrowser: typeof getCurrentBrowser;
|
|
@@ -29,7 +31,8 @@ export interface PrecachingDeps {
|
|
|
29
31
|
export declare const defaultPrecachingDeps: PrecachingDeps;
|
|
30
32
|
/**
|
|
31
33
|
* Starts the precaching cycle if services are configured. Called from launchBrowser() after the browser is ready. If no services are selected, a shutdown is in
|
|
32
|
-
* progress, or a precache cycle is already in progress, returns immediately. The actual work is scheduled
|
|
34
|
+
* progress, or a precache cycle is already in progress, returns immediately. The actual work is scheduled on the dependencies' clock to avoid blocking browser
|
|
35
|
+
* launch.
|
|
33
36
|
* @param deps - The injected browser and provider-registry dependencies; defaults to defaultPrecachingDeps.
|
|
34
37
|
*/
|
|
35
38
|
export declare function startPrecaching(deps?: PrecachingDeps): void;
|
|
@@ -106,4 +109,3 @@ export declare function precacheService(provider: ProviderModule, deps?: Precach
|
|
|
106
109
|
*/
|
|
107
110
|
export declare function revalidateDomainAuth(url: string, deps?: PrecachingDeps): Promise<void>;
|
|
108
111
|
export {};
|
|
109
|
-
//# sourceMappingURL=precaching.d.ts.map
|
|
@@ -3,12 +3,12 @@ import { clearDomainAuthRequirement, getDomainAuthState, markDomainAuth, markDom
|
|
|
3
3
|
import { createDiscoveryPage, emulateLayoutSurface, getCurrentBrowser, isGracefulShutdown, registerManagedPage, syncWindowVisibility, unregisterManagedPage } from "./index.js";
|
|
4
4
|
import { getPersistedLineup, persistProviderLineup } from "../config/providerLineups.js";
|
|
5
5
|
import { getProviderBySlug, getProvidersForDomain } from "./channelSelection.js";
|
|
6
|
+
import { systemClock, waitWithSignal } from "homebridge-plugin-utils";
|
|
6
7
|
import { CONFIG } from "../config/index.js";
|
|
7
8
|
import { classifyBlockedPage } from "./blockedPage.js";
|
|
8
9
|
import { getProfileForUrl } from "../config/profiles.js";
|
|
9
10
|
import { isLoginModeActive } from "./login.js";
|
|
10
11
|
import { startOverlayHandling } from "./consent.js";
|
|
11
|
-
import { waitWithSignal } from "homebridge-plugin-utils";
|
|
12
12
|
/* Precaching discovers channel lineups for selected services at startup so that even the first tune benefits from cached lineup data. Each service is precached
|
|
13
13
|
* sequentially - discovery opens a browser page in a window of its own and navigates to a heavy SPA, so running all services concurrently would stress CPU and
|
|
14
14
|
* GPU on resource-constrained systems. The HTTP server starts immediately; precaching begins in the background after a brief delay.
|
|
@@ -22,6 +22,9 @@ import { waitWithSignal } from "homebridge-plugin-utils";
|
|
|
22
22
|
* mutator or the lineup store directly - it calls the recorder, which does. The page session itself is owned by withProviderGuidePage: the single guarded-page
|
|
23
23
|
* primitive both the precache cycle and that endpoint walk their guides through, and the one place the empty-walk retry policy lives, so no provider carries a
|
|
24
24
|
* retry of its own.
|
|
25
|
+
*
|
|
26
|
+
* Every timer and deadline this module arms - the startup cycle's delay, the deferred re-attempt, and each walk's ceiling - runs on the clock its dependencies
|
|
27
|
+
* carry, so one injected clock drives the whole schedule.
|
|
25
28
|
*/
|
|
26
29
|
// Delay in milliseconds before precaching begins after browser launch. This gives the browser time to settle after initialization.
|
|
27
30
|
const PRECACHE_DELAY = 5000;
|
|
@@ -65,24 +68,21 @@ export class DiscoveryWalkTimeoutError extends Error {
|
|
|
65
68
|
}
|
|
66
69
|
// Guard flag preventing overlapping precache cycles. Set to true before the cycle starts, cleared through releasePrecacheGuard in a finally block.
|
|
67
70
|
let precacheInProgress = false;
|
|
68
|
-
//
|
|
69
|
-
let
|
|
70
|
-
/* The pending deferred re-attempt: the services still to re-walk and the timer that will do it. One value rather than two fields, so arming, cancelling, and
|
|
71
|
-
* firing each move the whole thing at once - a slug list with no timer behind it, or a timer whose slugs were cleared, is not a state this can reach.
|
|
72
|
-
*/
|
|
73
|
-
let deferredRetry = null;
|
|
71
|
+
// The scheduler's pending work, or null when it has none.
|
|
72
|
+
let scheduled = null;
|
|
74
73
|
/* Whether a full precache cycle was requested while the single-flight guard was held. The request always comes from a browser relaunch, which cleared every
|
|
75
74
|
* provider cache, so the run holding the guard is walking guides for a browser that no longer exists and its result is worth nothing - dropping the request would
|
|
76
75
|
* leave the new browser with no lineups at all. Whoever releases the guard runs it; releasePrecacheGuard is where that happens, and it is the only place.
|
|
77
76
|
*/
|
|
78
77
|
let fullCycleRequested = false;
|
|
79
78
|
/**
|
|
80
|
-
* Cancels a pending deferred re-attempt and drops its state as one unit. A no-op when nothing is pending
|
|
79
|
+
* Cancels a pending deferred re-attempt and drops its state as one unit. A no-op when nothing is pending, and equally a no-op when what is pending is a cycle -
|
|
80
|
+
* only the re-attempt arm is cancelled here.
|
|
81
81
|
*/
|
|
82
82
|
function clearDeferredRetry() {
|
|
83
|
-
if (
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
if (scheduled?.kind === "deferred") {
|
|
84
|
+
scheduled.timer[Symbol.dispose]();
|
|
85
|
+
scheduled = null;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
@@ -103,6 +103,7 @@ function releasePrecacheGuard(deps) {
|
|
|
103
103
|
startPrecaching(deps);
|
|
104
104
|
}
|
|
105
105
|
export const defaultPrecachingDeps = {
|
|
106
|
+
clock: systemClock,
|
|
106
107
|
createDiscoveryPage,
|
|
107
108
|
emulateLayoutSurface,
|
|
108
109
|
getCurrentBrowser,
|
|
@@ -118,7 +119,8 @@ export const defaultPrecachingDeps = {
|
|
|
118
119
|
};
|
|
119
120
|
/**
|
|
120
121
|
* Starts the precaching cycle if services are configured. Called from launchBrowser() after the browser is ready. If no services are selected, a shutdown is in
|
|
121
|
-
* progress, or a precache cycle is already in progress, returns immediately. The actual work is scheduled
|
|
122
|
+
* progress, or a precache cycle is already in progress, returns immediately. The actual work is scheduled on the dependencies' clock to avoid blocking browser
|
|
123
|
+
* launch.
|
|
122
124
|
* @param deps - The injected browser and provider-registry dependencies; defaults to defaultPrecachingDeps.
|
|
123
125
|
*/
|
|
124
126
|
export function startPrecaching(deps = defaultPrecachingDeps) {
|
|
@@ -144,10 +146,10 @@ export function startPrecaching(deps = defaultPrecachingDeps) {
|
|
|
144
146
|
clearDeferredRetry();
|
|
145
147
|
// Schedule the precache cycle after a brief delay to let the browser settle. The handle is tracked so stopPrecaching() can cancel it if shutdown begins during the
|
|
146
148
|
// delay window; the ref is cleared when the timer fires since it is then spent.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
scheduled = { kind: "cycle", timer: deps.clock.schedule(() => {
|
|
150
|
+
scheduled = null;
|
|
151
|
+
void runPrecacheCycle(deps);
|
|
152
|
+
}, PRECACHE_DELAY) };
|
|
151
153
|
}
|
|
152
154
|
/**
|
|
153
155
|
* Cancels every scheduled precache - the startup cycle and the deferred re-attempt alike - and clears the in-progress guard. Called during graceful shutdown so
|
|
@@ -157,9 +159,9 @@ export function startPrecaching(deps = defaultPrecachingDeps) {
|
|
|
157
159
|
* which is exactly what releasing through the hand-off would do.
|
|
158
160
|
*/
|
|
159
161
|
export function stopPrecaching() {
|
|
160
|
-
if (
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
if (scheduled) {
|
|
163
|
+
scheduled.timer[Symbol.dispose]();
|
|
164
|
+
scheduled = null;
|
|
163
165
|
}
|
|
164
166
|
clearDeferredRetry();
|
|
165
167
|
fullCycleRequested = false;
|
|
@@ -257,12 +259,13 @@ export async function recordDiscoveryOutcome(provider, channels, page, deps, cla
|
|
|
257
259
|
* travels through untouched. Each call gets its own budget, which is what lets an empty walk's retry be bounded exactly like the first attempt.
|
|
258
260
|
* @param provider - The provider whose walk to run.
|
|
259
261
|
* @param page - The guide page the walk runs against, closed if the deadline lapses.
|
|
262
|
+
* @param clock - The clock the deadline arms on.
|
|
260
263
|
* @returns The discovered channels (possibly empty).
|
|
261
264
|
* @throws DiscoveryWalkTimeoutError when the walk outlives its budget, and whatever the walk itself rejected with otherwise.
|
|
262
265
|
*/
|
|
263
|
-
async function walkWithDeadline(provider, page) {
|
|
266
|
+
async function walkWithDeadline(provider, page, clock) {
|
|
264
267
|
const lapse = new DiscoveryWalkTimeoutError(provider.label, DISCOVERY_WALK_TIMEOUT);
|
|
265
|
-
const deadline = timeoutSignal(DISCOVERY_WALK_TIMEOUT, lapse);
|
|
268
|
+
const deadline = timeoutSignal(DISCOVERY_WALK_TIMEOUT, { clock, reason: lapse });
|
|
266
269
|
deadline.signal.addEventListener("abort", () => {
|
|
267
270
|
void page.close().catch(() => { });
|
|
268
271
|
}, { once: true });
|
|
@@ -310,8 +313,8 @@ async function retryAfterEmptyWalk(options) {
|
|
|
310
313
|
// reusing it would silently leave the retry unprotected against a banner that reappears after the reload.
|
|
311
314
|
const retryController = new AbortController();
|
|
312
315
|
try {
|
|
313
|
-
void deps.startOverlayHandling(page, profile, { phase: "discovery", signal: retryController.signal });
|
|
314
|
-
return { channels: await walkWithDeadline(provider, page) };
|
|
316
|
+
void deps.startOverlayHandling(page, profile, { clock: deps.clock, phase: "discovery", signal: retryController.signal });
|
|
317
|
+
return { channels: await walkWithDeadline(provider, page, deps.clock) };
|
|
315
318
|
}
|
|
316
319
|
finally {
|
|
317
320
|
retryController.abort();
|
|
@@ -335,9 +338,10 @@ async function retryAfterEmptyWalk(options) {
|
|
|
335
338
|
export async function withProviderGuidePage(provider, options = {}, deps = defaultPrecachingDeps) {
|
|
336
339
|
const { afterWalk, signal } = options;
|
|
337
340
|
const browser = await deps.getCurrentBrowser("page");
|
|
338
|
-
/* The guide page is the active tab of a browser window of its own, opened in the background at the shared window's placement
|
|
339
|
-
*
|
|
340
|
-
* the user has selected there. The window closes
|
|
341
|
+
/* The guide page is the active tab of a browser window of its own, opened in the background at the shared window's placement and presented by the creator for
|
|
342
|
+
* the page's whole life. A guide renders only while Chrome presents its document, and a walk is never captured, so the page gets a window that never disturbs
|
|
343
|
+
* the shared window's own state or the tab the user has selected there, and a presentation that does not depend on that window being shown. The window closes
|
|
344
|
+
* with the page.
|
|
341
345
|
*/
|
|
342
346
|
const page = await deps.createDiscoveryPage(browser);
|
|
343
347
|
// Close the page the moment the caller aborts, so any in-progress Puppeteer operation throws and propagates the cancellation through discoverChannels without each
|
|
@@ -380,13 +384,13 @@ export async function withProviderGuidePage(provider, options = {}, deps = defau
|
|
|
380
384
|
// the poll survive that navigation. The phase's window is the backstop; the abort after the walk is the terminator. The guide page is not a tune, so the phase
|
|
381
385
|
// forbids the embed-gate accept - only cookie rejection and per-site modal dismissal run here.
|
|
382
386
|
const { profile } = getProfileForUrl(provider.guideUrl);
|
|
383
|
-
void deps.startOverlayHandling(page, profile, { phase: "discovery", signal: overlayController.signal });
|
|
387
|
+
void deps.startOverlayHandling(page, profile, { clock: deps.clock, phase: "discovery", signal: overlayController.signal });
|
|
384
388
|
// Navigate to the service's guide URL unless the provider module handles its own navigation (e.g., sets up response interception before navigating). We use
|
|
385
389
|
// networkidle2 rather than load because SPA-based services (e.g., Hulu) have heavy async initialization that can prevent the load event from firing reliably.
|
|
386
390
|
if (!provider.handlesOwnNavigation) {
|
|
387
391
|
await page.goto(provider.guideUrl, { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "networkidle2" });
|
|
388
392
|
}
|
|
389
|
-
let channels = await walkWithDeadline(provider, page);
|
|
393
|
+
let channels = await walkWithDeadline(provider, page, deps.clock);
|
|
390
394
|
// The walk is complete. Abort the overlay poll so the page is quiet by construction before anything classifies it.
|
|
391
395
|
overlayController.abort();
|
|
392
396
|
let classification;
|
|
@@ -513,7 +517,7 @@ function armDeferredRetry(slugs, deps) {
|
|
|
513
517
|
return;
|
|
514
518
|
}
|
|
515
519
|
LOG.debug("precache", "Scheduling one deferred discovery re-attempt for %d service%s in %d minutes.", slugs.length, (slugs.length === 1) ? "" : "s", PRECACHE_RETRY_DELAY / 60000);
|
|
516
|
-
|
|
520
|
+
scheduled = { kind: "deferred", slugs, timer: deps.clock.schedule(() => void runDeferredRetry(deps), PRECACHE_RETRY_DELAY) };
|
|
517
521
|
}
|
|
518
522
|
/**
|
|
519
523
|
* Runs the deferred re-attempt for the services a cycle could not settle. Never rejects - it is driven by a timer with nobody to hand a rejection to, so every
|
|
@@ -526,11 +530,14 @@ function armDeferredRetry(slugs, deps) {
|
|
|
526
530
|
* @returns A promise that resolves once the pass completes or is skipped.
|
|
527
531
|
*/
|
|
528
532
|
async function runDeferredRetry(deps) {
|
|
529
|
-
|
|
533
|
+
if (scheduled?.kind !== "deferred") {
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
const pending = scheduled;
|
|
530
537
|
// Drop the state before acting on it. This is the only pass there will be, so a handle left standing would tell a later cancellation that something is still
|
|
531
538
|
// scheduled when nothing is.
|
|
532
|
-
|
|
533
|
-
if (
|
|
539
|
+
scheduled = null;
|
|
540
|
+
if (deps.isGracefulShutdown()) {
|
|
534
541
|
return;
|
|
535
542
|
}
|
|
536
543
|
/* A cycle or a post-login revalidation holding the guard is already walking guides, quite possibly these same ones. This pass exists to try again on a settled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precaching.js","sourceRoot":"","sources":["../../src/browser/precaching.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"precaching.js","sourceRoot":"","sources":["../../src/browser/precaching.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { getExtensionPage, wss } from "puppeteer-stream";
|
|
2
|
-
import type { Clock } from "
|
|
2
|
+
import type { Clock } from "homebridge-plugin-utils";
|
|
3
3
|
import type { Page } from "puppeteer-core";
|
|
4
4
|
import type { Readable } from "node:stream";
|
|
5
5
|
import { withTabSelected } from "./tabSelection.ts";
|
|
6
6
|
export declare const EXTENSION_READY_EXPRESSION = "typeof START_RECORDING === 'function'";
|
|
7
7
|
export declare const ACTIVE_TAB_GRANT_PENDING_MESSAGE = "has not been invoked for the current page";
|
|
8
8
|
export declare const EXTENSION_NOT_READY_MESSAGE = "The capture extension is not ready on this browser.";
|
|
9
|
-
export declare const CAPTURE_START_ATTEMPTS = 2;
|
|
10
9
|
export declare const ACTIVE_TAB_GRANT_POLL_MS = 50;
|
|
11
10
|
export declare const ACTIVE_TAB_GRANT_CEILING_MS = 1000;
|
|
12
11
|
export declare const CAPTURE_FRAME_SIZE_MS = 20;
|
|
@@ -76,25 +75,23 @@ export interface TabCaptureDeps {
|
|
|
76
75
|
readonly wss: typeof wss;
|
|
77
76
|
}
|
|
78
77
|
/**
|
|
79
|
-
* Per-call context for an acquisition: the clock its waits run on
|
|
78
|
+
* Per-call context for an acquisition: the clock its waits run on and the collaborators it talks through.
|
|
80
79
|
*/
|
|
81
80
|
export interface AcquireCaptureStreamContext {
|
|
82
81
|
readonly clock?: Clock;
|
|
83
82
|
readonly deps?: TabCaptureDeps;
|
|
84
|
-
readonly signal?: AbortSignal;
|
|
85
83
|
}
|
|
86
84
|
export declare const defaultTabCaptureDeps: TabCaptureDeps;
|
|
87
85
|
/**
|
|
88
86
|
* Acquires a tab capture for a page: one started recording, its chunks arriving as a readable stream, and the two controls that end it.
|
|
89
87
|
*
|
|
90
|
-
* A start Chrome refuses with "Could not start video source" is
|
|
91
|
-
*
|
|
92
|
-
*
|
|
88
|
+
* Exactly one start is made. A start Chrome refuses with "Could not start video source" is logged once with the window's reported state and the selected tab, so
|
|
89
|
+
* the refusal explains itself, and then fails the acquisition unchanged; whether that refusal is the browser's fault and what should follow are the
|
|
90
|
+
* establishment's to decide from its capture probe. Every other rejection fails the acquisition the same way, with no log of its own.
|
|
93
91
|
* @param page - The page to capture.
|
|
94
92
|
* @param options - What the capture is asked for.
|
|
95
|
-
* @param context - The clock
|
|
93
|
+
* @param context - The clock and collaborators. Defaults to the production collaborators on the real clock.
|
|
96
94
|
* @returns The started capture.
|
|
97
|
-
* @throws When the extension is not ready, its tab cannot be selected, or the start fails
|
|
95
|
+
* @throws When the extension is not ready, its tab cannot be selected, or the start fails.
|
|
98
96
|
*/
|
|
99
97
|
export declare function acquireCaptureStream(page: Page, options: CaptureStreamOptions, context?: AcquireCaptureStreamContext): Promise<CaptureStream>;
|
|
100
|
-
//# sourceMappingURL=tabCapture.d.ts.map
|
|
@@ -12,20 +12,22 @@
|
|
|
12
12
|
* in Node rather than in the browser. Owning the start means the only serialization is the one whose deadline, abort signal, and wedge policy the caller already
|
|
13
13
|
* controls.
|
|
14
14
|
*
|
|
15
|
-
* A rejected start is
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* A rejected start is reported rather than judged. Chrome answers a start it cannot serve with "Could not start video source", and the whole response here is one
|
|
16
|
+
* warning carrying the window and selected-tab state that explains it, read while that tab is still selected, with the rejection travelling to the caller
|
|
17
|
+
* unchanged. What such a refusal says about the browser is the establishment's question, settled by its capture probe, so this layer holds no retry policy of its
|
|
18
|
+
* own. The activeTab grant is the one wait that does belong here: rather than sleeping a fixed interval after the keyboard command and hoping the grant landed,
|
|
18
19
|
* the start is attempted and Chrome's own "has not been invoked for the current page" answer drives a short poll, so a grant that lands immediately costs nothing.
|
|
19
20
|
*
|
|
20
21
|
* The coupling this module takes on is the extension's protocol, and it is asserted rather than trusted: tabCapture.test.ts fingerprints the three library files
|
|
21
22
|
* this module was written against and derives the settings-object shape from the extension's own source, so a dependency bump that changes either fails the
|
|
22
23
|
* suite with instructions rather than failing a capture in the field.
|
|
23
24
|
*/
|
|
24
|
-
import { LOG, formatError, pollUntil,
|
|
25
|
+
import { LOG, formatError, pollUntil, startTimer } from "../utils/index.js";
|
|
25
26
|
import { getExtensionPage, wss } from "puppeteer-stream";
|
|
26
27
|
import { CAPTURE_SOURCE_UNAVAILABLE_MESSAGE } from "../types/index.js";
|
|
27
28
|
import { PassThrough } from "node:stream";
|
|
28
29
|
import { readWindowState } from "./cdp.js";
|
|
30
|
+
import { systemClock } from "homebridge-plugin-utils";
|
|
29
31
|
import { withTabSelected } from "./tabSelection.js";
|
|
30
32
|
// Constants.
|
|
31
33
|
// The extension's readiness predicate, stated once. The launch gate waits on it before publishing a browser, and the acquisition asserts it before preparing an
|
|
@@ -37,9 +39,6 @@ export const ACTIVE_TAB_GRANT_PENDING_MESSAGE = "has not been invoked for the cu
|
|
|
37
39
|
// The failure when a browser is serving without a loaded capture extension. The launch gate establishes readiness before a browser is published, so reaching
|
|
38
40
|
// this means the extension went away underneath a published browser.
|
|
39
41
|
export const EXTENSION_NOT_READY_MESSAGE = "The capture extension is not ready on this browser.";
|
|
40
|
-
// How many times a start is attempted before the acquisition fails. Two: the first attempt, and one retry for the source-unavailable answer that a fresh attempt
|
|
41
|
-
// against a fresh socket index has been observed to clear.
|
|
42
|
-
export const CAPTURE_START_ATTEMPTS = 2;
|
|
43
42
|
// The cadence between start attempts while Chrome is still reporting the activeTab grant pending, and the ceiling on that wait. A grant that lands with the
|
|
44
43
|
// keyboard command costs one attempt and no wait at all; the ceiling bounds the case where it never lands, so the caller sees Chrome's own message rather than
|
|
45
44
|
// a hang. One attempt is a handful of CDP round trips - the selection re-assert, the five key events, the start - taken inside a selection held across the whole
|
|
@@ -54,8 +53,8 @@ export const CAPTURE_FRAME_SIZE_MS = 20;
|
|
|
54
53
|
export const CAPTURE_STREAM_HIGH_WATER_MARK = 8 * 1024 * 1024;
|
|
55
54
|
/**
|
|
56
55
|
* A start Chrome refused, carrying the state that explains the refusal. The state is read while the capture's tab is still selected, which is the only moment it
|
|
57
|
-
* describes the conditions the start actually ran under. Chrome's own refusal text is the message, so the capture-infrastructure classifier and the
|
|
58
|
-
*
|
|
56
|
+
* describes the conditions the start actually ran under. Chrome's own refusal text is the message, so the capture-infrastructure classifier and the
|
|
57
|
+
* establishment's refusal test both keep matching on it.
|
|
59
58
|
*
|
|
60
59
|
* Module-private on purpose: the judgment "this is a capture-infrastructure failure" belongs to one mechanism, the pattern list in streaming/recovery.ts, which
|
|
61
60
|
* reads the message. This class is the internal typed carrier for the diagnostics that travel alongside it, not a second way to ask the same question.
|
|
@@ -265,17 +264,17 @@ function attachCaptureControls(attempt, extension, server) {
|
|
|
265
264
|
/**
|
|
266
265
|
* Acquires a tab capture for a page: one started recording, its chunks arriving as a readable stream, and the two controls that end it.
|
|
267
266
|
*
|
|
268
|
-
* A start Chrome refuses with "Could not start video source" is
|
|
269
|
-
*
|
|
270
|
-
*
|
|
267
|
+
* Exactly one start is made. A start Chrome refuses with "Could not start video source" is logged once with the window's reported state and the selected tab, so
|
|
268
|
+
* the refusal explains itself, and then fails the acquisition unchanged; whether that refusal is the browser's fault and what should follow are the
|
|
269
|
+
* establishment's to decide from its capture probe. Every other rejection fails the acquisition the same way, with no log of its own.
|
|
271
270
|
* @param page - The page to capture.
|
|
272
271
|
* @param options - What the capture is asked for.
|
|
273
|
-
* @param context - The clock
|
|
272
|
+
* @param context - The clock and collaborators. Defaults to the production collaborators on the real clock.
|
|
274
273
|
* @returns The started capture.
|
|
275
|
-
* @throws When the extension is not ready, its tab cannot be selected, or the start fails
|
|
274
|
+
* @throws When the extension is not ready, its tab cannot be selected, or the start fails.
|
|
276
275
|
*/
|
|
277
276
|
export async function acquireCaptureStream(page, options, context = {}) {
|
|
278
|
-
const { clock =
|
|
277
|
+
const { clock = systemClock, deps = defaultTabCaptureDeps } = context;
|
|
279
278
|
const acquisitionElapsed = startTimer(clock);
|
|
280
279
|
const extension = await deps.getExtensionPage(page.browser());
|
|
281
280
|
const server = await deps.wss;
|
|
@@ -287,34 +286,29 @@ export async function acquireCaptureStream(page, options, context = {}) {
|
|
|
287
286
|
if (ready !== true) {
|
|
288
287
|
throw new Error(EXTENSION_NOT_READY_MESSAGE);
|
|
289
288
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
if (!formatError(error).includes(CAPTURE_SOURCE_UNAVAILABLE_MESSAGE) || (attempt >= CAPTURE_START_ATTEMPTS) || signal?.aborted) {
|
|
309
|
-
break;
|
|
310
|
-
}
|
|
311
|
-
// The refusal carries the state it was read under, gathered inside the hold while the capture's tab was still the selected one. A refusal that arrives
|
|
312
|
-
// without that state is one no selection was live for, so its fields are simply absent.
|
|
289
|
+
try {
|
|
290
|
+
const started = await acquireOnce(page, options, { clock, deps, extension, server });
|
|
291
|
+
const stream = attachCaptureControls(started, extension, server);
|
|
292
|
+
/* Both close paths end the recording. The owner's disposer destroys the stream, which emits close; a page that dies takes its capture with it and fires
|
|
293
|
+
* the page's own close. Registering here rather than inside the socket handler means a capture whose socket never connected still stops cleanly.
|
|
294
|
+
*/
|
|
295
|
+
page.once("close", () => { void stream.stop(); });
|
|
296
|
+
stream.once("close", () => { void stream.stop(); });
|
|
297
|
+
LOG.debug("timing:startup", "Capture acquired in %dms.", acquisitionElapsed());
|
|
298
|
+
return stream;
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
/* Chrome's refusal earns a line of its own, because the state it was read under is recoverable nowhere else: the window's reported state and the tab the
|
|
302
|
+
* start was aimed at were gathered inside the hold, while that tab was still the selected one, and by the time this rejection reaches any other layer the
|
|
303
|
+
* selection is back where the user left it. A refusal that arrives without that state is one no selection was live for, so its fields are simply absent.
|
|
304
|
+
* The line reports and nothing more - the acquisition draws no conclusion about the browser from a single refusal.
|
|
305
|
+
*/
|
|
306
|
+
if (formatError(error).includes(CAPTURE_SOURCE_UNAVAILABLE_MESSAGE)) {
|
|
313
307
|
const diagnostics = (error instanceof CaptureStartRefusedError) ? error.diagnostics : { activeTab: null, windowState: null };
|
|
314
|
-
LOG.warn("Chrome
|
|
308
|
+
LOG.warn("Chrome refused to start the tab capture.", { activeTab: diagnostics.activeTab, elapsedMs: acquisitionElapsed(), windowState: diagnostics.windowState });
|
|
315
309
|
}
|
|
310
|
+
// The failure is already an Error: acquireOnce normalizes every rejection at the one boundary where a page-side value enters, so it travels unchanged.
|
|
311
|
+
throw error;
|
|
316
312
|
}
|
|
317
|
-
// The failure is already an Error: acquireOnce normalizes every rejection at the one boundary where a page-side value enters, so it travels unchanged.
|
|
318
|
-
throw failure;
|
|
319
313
|
}
|
|
320
314
|
//# sourceMappingURL=tabCapture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabCapture.js","sourceRoot":"","sources":["../../src/browser/tabCapture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tabCapture.js","sourceRoot":"","sources":["../../src/browser/tabCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,4 +46,3 @@ export interface TabNetworkObserver extends Disposable {
|
|
|
46
46
|
* @returns The observer handle, or null if installation failed.
|
|
47
47
|
*/
|
|
48
48
|
export declare function observeTabResponses(page: Page, options: TabNetworkObserverOptions): Promise<Nullable<TabNetworkObserver>>;
|
|
49
|
-
//# sourceMappingURL=tabNetworkObserver.d.ts.map
|