prismcast 1.10.2 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +6 -3
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +140 -86
- package/dist/app.js.map +1 -1
- package/dist/browser/blockedPage.d.ts +80 -0
- package/dist/browser/blockedPage.d.ts.map +1 -0
- package/dist/browser/blockedPage.js +209 -0
- package/dist/browser/blockedPage.js.map +1 -0
- package/dist/browser/browserSupervisor.d.ts +80 -0
- package/dist/browser/browserSupervisor.d.ts.map +1 -0
- package/dist/browser/browserSupervisor.js +186 -0
- package/dist/browser/browserSupervisor.js.map +1 -0
- package/dist/browser/cdp.d.ts +1 -0
- package/dist/browser/cdp.d.ts.map +1 -0
- package/dist/browser/cdp.js +6 -5
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +45 -14
- package/dist/browser/channelSelection.d.ts.map +1 -0
- package/dist/browser/channelSelection.js +81 -18
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/consent.d.ts +152 -0
- package/dist/browser/consent.d.ts.map +1 -0
- package/dist/browser/consent.js +418 -0
- package/dist/browser/consent.js.map +1 -0
- package/dist/browser/display.d.ts +1 -0
- package/dist/browser/display.d.ts.map +1 -0
- package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
- package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
- package/dist/browser/hlsPlaylistObserver.js +132 -0
- package/dist/browser/hlsPlaylistObserver.js.map +1 -0
- package/dist/browser/index.d.ts +67 -40
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +508 -300
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/launchGovernor.d.ts +89 -0
- package/dist/browser/launchGovernor.d.ts.map +1 -0
- package/dist/browser/launchGovernor.js +96 -0
- package/dist/browser/launchGovernor.js.map +1 -0
- package/dist/browser/login.d.ts +10 -2
- package/dist/browser/login.d.ts.map +1 -0
- package/dist/browser/login.js +36 -5
- package/dist/browser/login.js.map +1 -1
- package/dist/browser/manifestInterceptor.d.ts +102 -49
- package/dist/browser/manifestInterceptor.d.ts.map +1 -0
- package/dist/browser/manifestInterceptor.js +219 -237
- package/dist/browser/manifestInterceptor.js.map +1 -1
- package/dist/browser/pageStaleness.d.ts +30 -0
- package/dist/browser/pageStaleness.d.ts.map +1 -0
- package/dist/browser/pageStaleness.js +76 -0
- package/dist/browser/pageStaleness.js.map +1 -0
- package/dist/browser/precaching.d.ts +95 -3
- package/dist/browser/precaching.d.ts.map +1 -0
- package/dist/browser/precaching.js +499 -65
- package/dist/browser/precaching.js.map +1 -1
- package/dist/browser/tabNetworkObserver.d.ts +49 -0
- package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
- package/dist/browser/tabNetworkObserver.js +144 -0
- package/dist/browser/tabNetworkObserver.js.map +1 -0
- package/dist/browser/tuning/cache.d.ts +61 -0
- package/dist/browser/tuning/cache.d.ts.map +1 -0
- package/dist/browser/tuning/cache.js +62 -0
- package/dist/browser/tuning/cache.js.map +1 -0
- package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
- package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
- package/dist/browser/tuning/comcastPolymer.js +79 -102
- package/dist/browser/tuning/comcastPolymer.js.map +1 -1
- package/dist/browser/tuning/cox.d.ts +1 -0
- package/dist/browser/tuning/cox.d.ts.map +1 -0
- package/dist/browser/tuning/directv.d.ts +1 -0
- package/dist/browser/tuning/directv.d.ts.map +1 -0
- package/dist/browser/tuning/directv.js +52 -46
- package/dist/browser/tuning/directv.js.map +1 -1
- package/dist/browser/tuning/fox.d.ts +1 -0
- package/dist/browser/tuning/fox.d.ts.map +1 -0
- package/dist/browser/tuning/fox.js +13 -12
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/gridSearch.d.ts +68 -0
- package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
- package/dist/browser/tuning/gridSearch.js +85 -0
- package/dist/browser/tuning/gridSearch.js.map +1 -0
- package/dist/browser/tuning/hbo.d.ts +1 -0
- package/dist/browser/tuning/hbo.d.ts.map +1 -0
- package/dist/browser/tuning/hbo.js +73 -45
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.d.ts +1 -0
- package/dist/browser/tuning/hulu.d.ts.map +1 -0
- package/dist/browser/tuning/hulu.js +128 -173
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/shared.d.ts +75 -5
- package/dist/browser/tuning/shared.d.ts.map +1 -0
- package/dist/browser/tuning/shared.js +216 -6
- package/dist/browser/tuning/shared.js.map +1 -1
- package/dist/browser/tuning/sling.d.ts +1 -0
- package/dist/browser/tuning/sling.d.ts.map +1 -0
- package/dist/browser/tuning/sling.js +105 -126
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/spectrum.d.ts +1 -0
- package/dist/browser/tuning/spectrum.d.ts.map +1 -0
- package/dist/browser/tuning/spectrum.js +80 -125
- package/dist/browser/tuning/spectrum.js.map +1 -1
- package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
- package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
- package/dist/browser/tuning/thumbnailRow.js +8 -2
- package/dist/browser/tuning/thumbnailRow.js.map +1 -1
- package/dist/browser/tuning/tileClick.d.ts +1 -0
- package/dist/browser/tuning/tileClick.d.ts.map +1 -0
- package/dist/browser/tuning/tileClick.js +3 -2
- package/dist/browser/tuning/tileClick.js.map +1 -1
- package/dist/browser/tuning/xfinity.d.ts +1 -0
- package/dist/browser/tuning/xfinity.d.ts.map +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
- package/dist/browser/tuning/youtubeTv.js +74 -127
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +54 -14
- package/dist/browser/video.d.ts.map +1 -0
- package/dist/browser/video.js +296 -138
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.d.ts +1 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +12 -9
- package/dist/channels/index.js.map +1 -1
- package/dist/config/channelForm.d.ts +15 -1
- package/dist/config/channelForm.d.ts.map +1 -0
- package/dist/config/channelForm.js +28 -12
- package/dist/config/channelForm.js.map +1 -1
- package/dist/config/consistencyProbe.d.ts +1 -0
- package/dist/config/consistencyProbe.d.ts.map +1 -0
- package/dist/config/consistencyProbe.js +27 -21
- package/dist/config/consistencyProbe.js.map +1 -1
- package/dist/config/health.d.ts +41 -8
- package/dist/config/health.d.ts.map +1 -0
- package/dist/config/health.js +189 -38
- package/dist/config/health.js.map +1 -1
- package/dist/config/index.d.ts +55 -3
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +320 -69
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.d.ts +10 -9
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +11 -11
- package/dist/config/paths.js.map +1 -1
- package/dist/config/persistence.context.d.ts +1 -0
- package/dist/config/persistence.context.d.ts.map +1 -0
- package/dist/config/persistence.d.ts +13 -10
- package/dist/config/persistence.d.ts.map +1 -0
- package/dist/config/persistence.js +40 -21
- package/dist/config/persistence.js.map +1 -1
- package/dist/config/presets.d.ts +1 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/profiles.d.ts +22 -15
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +81 -47
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providerLineups.d.ts +47 -0
- package/dist/config/providerLineups.d.ts.map +1 -0
- package/dist/config/providerLineups.js +137 -0
- package/dist/config/providerLineups.js.map +1 -0
- package/dist/config/reactivity.d.ts +84 -0
- package/dist/config/reactivity.d.ts.map +1 -0
- package/dist/config/reactivity.js +226 -0
- package/dist/config/reactivity.js.map +1 -0
- package/dist/config/servicePacks.d.ts +18 -2
- package/dist/config/servicePacks.d.ts.map +1 -0
- package/dist/config/servicePacks.js +53 -11
- package/dist/config/servicePacks.js.map +1 -1
- package/dist/config/services.d.ts +21 -15
- package/dist/config/services.d.ts.map +1 -0
- package/dist/config/services.js +35 -24
- package/dist/config/services.js.map +1 -1
- package/dist/config/sites.d.ts +6 -4
- package/dist/config/sites.d.ts.map +1 -0
- package/dist/config/sites.js +15 -11
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +129 -30
- package/dist/config/userChannels.d.ts.map +1 -0
- package/dist/config/userChannels.js +333 -68
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +14 -9
- package/dist/config/userConfig.d.ts.map +1 -0
- package/dist/config/userConfig.js +87 -25
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +10 -6
- package/dist/config/userProfiles.d.ts.map +1 -0
- package/dist/config/userProfiles.js +64 -39
- package/dist/config/userProfiles.js.map +1 -1
- package/dist/hdhr/channelMap.d.ts +1 -0
- package/dist/hdhr/channelMap.d.ts.map +1 -0
- package/dist/hdhr/deviceId.d.ts +1 -0
- package/dist/hdhr/deviceId.d.ts.map +1 -0
- package/dist/hdhr/discover.d.ts +1 -0
- package/dist/hdhr/discover.d.ts.map +1 -0
- package/dist/hdhr/discover.js +48 -47
- package/dist/hdhr/discover.js.map +1 -1
- package/dist/hdhr/getHandlers.d.ts +29 -0
- package/dist/hdhr/getHandlers.d.ts.map +1 -0
- package/dist/hdhr/getHandlers.js +196 -0
- package/dist/hdhr/getHandlers.js.map +1 -0
- package/dist/hdhr/identity.d.ts +36 -0
- package/dist/hdhr/identity.d.ts.map +1 -0
- package/dist/hdhr/identity.js +51 -0
- package/dist/hdhr/identity.js.map +1 -0
- package/dist/hdhr/index.d.ts +22 -4
- package/dist/hdhr/index.d.ts.map +1 -0
- package/dist/hdhr/index.js +229 -54
- package/dist/hdhr/index.js.map +1 -1
- package/dist/hdhr/protocol.d.ts +75 -0
- package/dist/hdhr/protocol.d.ts.map +1 -0
- package/dist/hdhr/protocol.js +264 -0
- package/dist/hdhr/protocol.js.map +1 -0
- package/dist/hdhr/tunerState.d.ts +24 -0
- package/dist/hdhr/tunerState.d.ts.map +1 -0
- package/dist/hdhr/tunerState.js +67 -0
- package/dist/hdhr/tunerState.js.map +1 -0
- package/dist/hdhr/udp.d.ts +43 -0
- package/dist/hdhr/udp.d.ts.map +1 -0
- package/dist/hdhr/udp.js +277 -0
- package/dist/hdhr/udp.js.map +1 -0
- package/dist/identity.d.ts +1 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +13 -11
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -12
- package/dist/index.js.map +1 -1
- package/dist/native/codecInference.d.ts +1 -0
- package/dist/native/codecInference.d.ts.map +1 -0
- package/dist/native/codecInference.js +50 -5
- package/dist/native/codecInference.js.map +1 -1
- package/dist/native/decrypt.d.ts +6 -2
- package/dist/native/decrypt.d.ts.map +1 -0
- package/dist/native/decrypt.js +15 -8
- package/dist/native/decrypt.js.map +1 -1
- package/dist/native/index.d.ts +40 -17
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +281 -120
- package/dist/native/index.js.map +1 -1
- package/dist/native/probe.d.ts +114 -18
- package/dist/native/probe.d.ts.map +1 -0
- package/dist/native/probe.js +452 -115
- package/dist/native/probe.js.map +1 -1
- package/dist/native/proxy.d.ts +57 -5
- package/dist/native/proxy.d.ts.map +1 -0
- package/dist/native/proxy.js +604 -170
- package/dist/native/proxy.js.map +1 -1
- package/dist/native/tokenExpiry.d.ts +1 -0
- package/dist/native/tokenExpiry.d.ts.map +1 -0
- package/dist/native/tokenExpiry.js +1 -1
- package/dist/routes/assets.d.ts +1 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +4 -2
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/auth.d.ts +1 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +0 -1
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/cdp.d.ts +5 -5
- package/dist/routes/cdp.d.ts.map +1 -0
- package/dist/routes/cdp.js +59 -20
- package/dist/routes/cdp.js.map +1 -1
- package/dist/routes/channels.d.ts +1 -0
- package/dist/routes/channels.d.ts.map +1 -0
- package/dist/routes/channels.js +2 -1
- package/dist/routes/channels.js.map +1 -1
- package/dist/routes/clientActions.d.ts +98 -0
- package/dist/routes/clientActions.d.ts.map +1 -0
- package/dist/routes/clientActions.js +113 -0
- package/dist/routes/clientActions.js.map +1 -0
- package/dist/routes/components.d.ts +5 -3
- package/dist/routes/components.d.ts.map +1 -0
- package/dist/routes/components.js +36 -39
- package/dist/routes/components.js.map +1 -1
- package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/browse.js +23 -10
- package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
- package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/bulk.js +5 -3
- package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
- package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/crud.js +85 -93
- package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
- package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/importExport.js +6 -3
- package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
- package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/prefs.js +2 -1
- package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
- package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
- package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/service.js +3 -1
- package/dist/routes/config/channels/endpoints/service.js.map +1 -1
- package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/tags.js +13 -7
- package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
- package/dist/routes/config/channels/healthBridge.d.ts +24 -0
- package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
- package/dist/routes/config/channels/healthBridge.js +71 -0
- package/dist/routes/config/channels/healthBridge.js.map +1 -0
- package/dist/routes/config/channels/http/handler.d.ts +1 -0
- package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
- package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
- package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
- package/dist/routes/config/channels/http/playlistHint.js +16 -2
- package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
- package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
- package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
- package/dist/routes/config/channels/http/serviceWarning.js +3 -2
- package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
- package/dist/routes/config/channels/index.d.ts +1 -0
- package/dist/routes/config/channels/index.d.ts.map +1 -0
- package/dist/routes/config/channels/setup.d.ts +1 -0
- package/dist/routes/config/channels/setup.d.ts.map +1 -0
- package/dist/routes/config/channels/table.d.ts +3 -3
- package/dist/routes/config/channels/table.d.ts.map +1 -0
- package/dist/routes/config/channels/table.js +148 -107
- package/dist/routes/config/channels/table.js.map +1 -1
- package/dist/routes/config/http/envelope.d.ts +1 -0
- package/dist/routes/config/http/envelope.d.ts.map +1 -0
- package/dist/routes/config/index.d.ts +35 -3
- package/dist/routes/config/index.d.ts.map +1 -0
- package/dist/routes/config/index.js +51 -2
- package/dist/routes/config/index.js.map +1 -1
- package/dist/routes/config/services.d.ts +5 -4
- package/dist/routes/config/services.d.ts.map +1 -0
- package/dist/routes/config/services.js +57 -43
- package/dist/routes/config/services.js.map +1 -1
- package/dist/routes/config/settings.d.ts +1 -0
- package/dist/routes/config/settings.d.ts.map +1 -0
- package/dist/routes/config/settings.js +98 -49
- package/dist/routes/config/settings.js.map +1 -1
- package/dist/routes/debug.d.ts +1 -0
- package/dist/routes/debug.d.ts.map +1 -0
- package/dist/routes/debug.js +277 -139
- package/dist/routes/debug.js.map +1 -1
- package/dist/routes/health.d.ts +39 -1
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +33 -27
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/hls.d.ts +1 -0
- package/dist/routes/hls.d.ts.map +1 -0
- package/dist/routes/icons.d.ts +1 -0
- package/dist/routes/icons.d.ts.map +1 -0
- package/dist/routes/icons.js +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/logs.d.ts +1 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +14 -4
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/mpegts.d.ts +1 -0
- package/dist/routes/mpegts.d.ts.map +1 -0
- package/dist/routes/play.d.ts +1 -0
- package/dist/routes/play.d.ts.map +1 -0
- package/dist/routes/playlist.d.ts +1 -0
- package/dist/routes/playlist.d.ts.map +1 -0
- package/dist/routes/playlist.js +7 -2
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/root/content.d.ts +8 -5
- package/dist/routes/root/content.d.ts.map +1 -0
- package/dist/routes/root/content.js +29 -26
- package/dist/routes/root/content.js.map +1 -1
- package/dist/routes/root/index.d.ts +2 -1
- package/dist/routes/root/index.d.ts.map +1 -0
- package/dist/routes/root/index.js +26 -21
- package/dist/routes/root/index.js.map +1 -1
- package/dist/routes/root/scripts/channels.d.ts +6 -0
- package/dist/routes/root/scripts/channels.d.ts.map +1 -0
- package/dist/routes/root/scripts/channels.js +197 -118
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
- package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
- package/dist/routes/root/scripts/clientEscape.js +41 -0
- package/dist/routes/root/scripts/clientEscape.js.map +1 -0
- package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
- package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
- package/dist/routes/root/scripts/clientUrl.js +44 -0
- package/dist/routes/root/scripts/clientUrl.js.map +1 -0
- package/dist/routes/root/scripts/config.d.ts +6 -0
- package/dist/routes/root/scripts/config.d.ts.map +1 -0
- package/dist/routes/root/scripts/config.js +110 -24
- package/dist/routes/root/scripts/config.js.map +1 -1
- package/dist/routes/root/scripts/index.d.ts +1 -0
- package/dist/routes/root/scripts/index.d.ts.map +1 -0
- package/dist/routes/root/scripts/shared.d.ts +1 -0
- package/dist/routes/root/scripts/shared.d.ts.map +1 -0
- package/dist/routes/root/scripts/shared.js +112 -26
- package/dist/routes/root/scripts/shared.js.map +1 -1
- package/dist/routes/root/scripts/status.d.ts +1 -0
- package/dist/routes/root/scripts/status.d.ts.map +1 -0
- package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
- package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
- package/dist/routes/root/scripts/status.handlers.js +46 -92
- package/dist/routes/root/scripts/status.handlers.js.map +1 -1
- package/dist/routes/root/scripts/status.js +21 -8
- package/dist/routes/root/scripts/status.js.map +1 -1
- package/dist/routes/root/styles.d.ts +1 -0
- package/dist/routes/root/styles.d.ts.map +1 -0
- package/dist/routes/root/styles.js +7 -4
- package/dist/routes/root/styles.js.map +1 -1
- package/dist/routes/services.d.ts +13 -1
- package/dist/routes/services.d.ts.map +1 -0
- package/dist/routes/services.js +81 -68
- package/dist/routes/services.js.map +1 -1
- package/dist/routes/sse.d.ts +1 -0
- package/dist/routes/sse.d.ts.map +1 -0
- package/dist/routes/sse.js +1 -1
- package/dist/routes/sse.js.map +1 -1
- package/dist/routes/streams.d.ts +2 -1
- package/dist/routes/streams.d.ts.map +1 -0
- package/dist/routes/streams.js +6 -4
- package/dist/routes/streams.js.map +1 -1
- package/dist/routes/theme.d.ts +3 -2
- package/dist/routes/theme.d.ts.map +1 -0
- package/dist/routes/theme.js +6 -5
- package/dist/routes/theme.js.map +1 -1
- package/dist/routes/ui.d.ts +3 -1
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +16 -4
- package/dist/routes/ui.js.map +1 -1
- package/dist/routes/upgrade.d.ts +1 -0
- package/dist/routes/upgrade.d.ts.map +1 -0
- package/dist/routes/upgrade.js +6 -2
- package/dist/routes/upgrade.js.map +1 -1
- package/dist/service/commands.context.d.ts +1 -0
- package/dist/service/commands.context.d.ts.map +1 -0
- package/dist/service/commands.context.js +4 -3
- package/dist/service/commands.context.js.map +1 -1
- package/dist/service/commands.d.ts +1 -0
- package/dist/service/commands.d.ts.map +1 -0
- package/dist/service/commands.js +10 -13
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.context.d.ts +1 -0
- package/dist/service/generators.context.d.ts.map +1 -0
- package/dist/service/generators.context.js +1 -1
- package/dist/service/generators.context.js.map +1 -1
- package/dist/service/generators.d.ts +4 -3
- package/dist/service/generators.d.ts.map +1 -0
- package/dist/service/generators.js +111 -31
- package/dist/service/generators.js.map +1 -1
- package/dist/service/index.d.ts +1 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/streaming/captureLock.d.ts +44 -0
- package/dist/streaming/captureLock.d.ts.map +1 -0
- package/dist/streaming/captureLock.js +95 -0
- package/dist/streaming/captureLock.js.map +1 -0
- package/dist/streaming/captureSession.d.ts +31 -0
- package/dist/streaming/captureSession.d.ts.map +1 -0
- package/dist/streaming/captureSession.js +54 -0
- package/dist/streaming/captureSession.js.map +1 -0
- package/dist/streaming/clients.d.ts +1 -0
- package/dist/streaming/clients.d.ts.map +1 -0
- package/dist/streaming/codec.d.ts +1 -0
- package/dist/streaming/codec.d.ts.map +1 -0
- package/dist/streaming/fmp4Segmenter.d.ts +29 -2
- package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
- package/dist/streaming/fmp4Segmenter.js +79 -26
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.d.ts +18 -7
- package/dist/streaming/hls.d.ts.map +1 -0
- package/dist/streaming/hls.js +220 -120
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +1 -0
- package/dist/streaming/hlsResume.d.ts.map +1 -0
- package/dist/streaming/hlsResume.js +1 -1
- package/dist/streaming/hlsResume.js.map +1 -1
- package/dist/streaming/hlsSegments.d.ts +59 -2
- package/dist/streaming/hlsSegments.d.ts.map +1 -0
- package/dist/streaming/hlsSegments.js +147 -17
- package/dist/streaming/hlsSegments.js.map +1 -1
- package/dist/streaming/lifecycle.d.ts +4 -1
- package/dist/streaming/lifecycle.d.ts.map +1 -0
- package/dist/streaming/lifecycle.js +65 -85
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.d.ts +6 -4
- package/dist/streaming/monitor.d.ts.map +1 -0
- package/dist/streaming/monitor.js +343 -145
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/mp4Parser.d.ts +5 -4
- package/dist/streaming/mp4Parser.d.ts.map +1 -0
- package/dist/streaming/mp4Parser.js +36 -13
- package/dist/streaming/mp4Parser.js.map +1 -1
- package/dist/streaming/mpegts.d.ts +16 -0
- package/dist/streaming/mpegts.d.ts.map +1 -0
- package/dist/streaming/mpegts.js +61 -17
- package/dist/streaming/mpegts.js.map +1 -1
- package/dist/streaming/playlistBuilder.d.ts +1 -0
- package/dist/streaming/playlistBuilder.d.ts.map +1 -0
- package/dist/streaming/preroll.d.ts +32 -5
- package/dist/streaming/preroll.d.ts.map +1 -0
- package/dist/streaming/preroll.js +70 -32
- package/dist/streaming/preroll.js.map +1 -1
- package/dist/streaming/pretune.d.ts +26 -1
- package/dist/streaming/pretune.d.ts.map +1 -0
- package/dist/streaming/pretune.js +22 -24
- package/dist/streaming/pretune.js.map +1 -1
- package/dist/streaming/pretuneTimers.d.ts +24 -0
- package/dist/streaming/pretuneTimers.d.ts.map +1 -0
- package/dist/streaming/pretuneTimers.js +56 -0
- package/dist/streaming/pretuneTimers.js.map +1 -0
- package/dist/streaming/recovery.d.ts +139 -5
- package/dist/streaming/recovery.d.ts.map +1 -0
- package/dist/streaming/recovery.js +160 -16
- package/dist/streaming/recovery.js.map +1 -1
- package/dist/streaming/registry.d.ts +27 -9
- package/dist/streaming/registry.d.ts.map +1 -0
- package/dist/streaming/registry.js +21 -3
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +157 -29
- package/dist/streaming/setup.d.ts.map +1 -0
- package/dist/streaming/setup.js +1034 -458
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.d.ts +21 -1
- package/dist/streaming/showInfo.d.ts.map +1 -0
- package/dist/streaming/showInfo.js +31 -16
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +10 -10
- package/dist/streaming/statusEmitter.d.ts.map +1 -0
- package/dist/streaming/statusEmitter.js +5 -8
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +16 -4
- package/dist/types/channels.d.ts.map +1 -0
- package/dist/types/channels.js +4 -2
- package/dist/types/channels.js.map +1 -1
- package/dist/types/config.d.ts +16 -5
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/profiles.d.ts +6 -4
- package/dist/types/profiles.d.ts.map +1 -0
- package/dist/types/selection.d.ts +31 -3
- package/dist/types/selection.d.ts.map +1 -0
- package/dist/types/selection.js +4 -2
- package/dist/types/selection.js.map +1 -1
- package/dist/types/shared.d.ts +1 -0
- package/dist/types/shared.d.ts.map +1 -0
- package/dist/types/streaming.d.ts +8 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/upgrade/commands.context.d.ts +1 -0
- package/dist/upgrade/commands.context.d.ts.map +1 -0
- package/dist/upgrade/commands.context.js +14 -10
- package/dist/upgrade/commands.context.js.map +1 -1
- package/dist/upgrade/commands.d.ts +8 -15
- package/dist/upgrade/commands.d.ts.map +1 -0
- package/dist/upgrade/commands.js +27 -28
- package/dist/upgrade/commands.js.map +1 -1
- package/dist/upgrade/detection.context.d.ts +1 -0
- package/dist/upgrade/detection.context.d.ts.map +1 -0
- package/dist/upgrade/detection.context.js +4 -1
- package/dist/upgrade/detection.context.js.map +1 -1
- package/dist/upgrade/detection.d.ts +9 -7
- package/dist/upgrade/detection.d.ts.map +1 -0
- package/dist/upgrade/detection.js +23 -54
- package/dist/upgrade/detection.js.map +1 -1
- package/dist/upgrade/index.d.ts +2 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +1 -0
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/lifecycle.context.d.ts +20 -0
- package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
- package/dist/upgrade/lifecycle.context.js +47 -0
- package/dist/upgrade/lifecycle.context.js.map +1 -0
- package/dist/upgrade/lifecycle.d.ts +72 -0
- package/dist/upgrade/lifecycle.d.ts.map +1 -0
- package/dist/upgrade/lifecycle.js +175 -0
- package/dist/upgrade/lifecycle.js.map +1 -0
- package/dist/upgrade/pathHandle.d.ts +30 -0
- package/dist/upgrade/pathHandle.d.ts.map +1 -0
- package/dist/upgrade/pathHandle.js +102 -0
- package/dist/upgrade/pathHandle.js.map +1 -0
- package/dist/utils/bootSession.context.d.ts +16 -0
- package/dist/utils/bootSession.context.d.ts.map +1 -0
- package/dist/utils/bootSession.context.js +60 -0
- package/dist/utils/bootSession.context.js.map +1 -0
- package/dist/utils/bootSession.d.ts +17 -0
- package/dist/utils/bootSession.d.ts.map +1 -0
- package/dist/utils/bootSession.js +20 -0
- package/dist/utils/bootSession.js.map +1 -0
- package/dist/utils/chromeFetch.d.ts +1 -0
- package/dist/utils/chromeFetch.d.ts.map +1 -0
- package/dist/utils/cliOutput.d.ts +1 -0
- package/dist/utils/cliOutput.d.ts.map +1 -0
- package/dist/utils/clock.d.ts +5 -4
- package/dist/utils/clock.d.ts.map +1 -0
- package/dist/utils/clock.js +19 -16
- package/dist/utils/clock.js.map +1 -1
- package/dist/utils/debugFilter.d.ts +9 -1
- package/dist/utils/debugFilter.d.ts.map +1 -0
- package/dist/utils/debugFilter.js +60 -33
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/delay.d.ts +48 -15
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +73 -20
- package/dist/utils/delay.js.map +1 -1
- package/dist/utils/errors.d.ts +32 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +45 -4
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/evaluate.d.ts +1 -0
- package/dist/utils/evaluate.d.ts.map +1 -0
- package/dist/utils/evaluate.js +29 -23
- package/dist/utils/evaluate.js.map +1 -1
- package/dist/utils/ffmpeg.context.d.ts +1 -0
- package/dist/utils/ffmpeg.context.d.ts.map +1 -0
- package/dist/utils/ffmpeg.context.js.map +1 -1
- package/dist/utils/ffmpeg.d.ts +29 -7
- package/dist/utils/ffmpeg.d.ts.map +1 -0
- package/dist/utils/ffmpeg.js +32 -14
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/fileLogger.d.ts +3 -1
- package/dist/utils/fileLogger.d.ts.map +1 -0
- package/dist/utils/fileLogger.js +64 -29
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/format.d.ts +14 -1
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +19 -5
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logEmitter.d.ts +1 -0
- package/dist/utils/logEmitter.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +10 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/m3u.d.ts +3 -2
- package/dist/utils/m3u.d.ts.map +1 -0
- package/dist/utils/m3u.js +4 -3
- package/dist/utils/m3u.js.map +1 -1
- package/dist/utils/markup.d.ts +13 -1
- package/dist/utils/markup.d.ts.map +1 -0
- package/dist/utils/markup.js +28 -4
- package/dist/utils/markup.js.map +1 -1
- package/dist/utils/memo.d.ts +3 -2
- package/dist/utils/memo.d.ts.map +1 -0
- package/dist/utils/memo.js +3 -3
- package/dist/utils/morganStream.d.ts +1 -0
- package/dist/utils/morganStream.d.ts.map +1 -0
- package/dist/utils/network.d.ts +1 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +2 -2
- package/dist/utils/pid.d.ts +3 -25
- package/dist/utils/pid.d.ts.map +1 -0
- package/dist/utils/pid.js +10 -49
- package/dist/utils/pid.js.map +1 -1
- package/dist/utils/platform.d.ts +3 -1
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +2 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/processInspector.context.d.ts +8 -0
- package/dist/utils/processInspector.context.d.ts.map +1 -0
- package/dist/utils/processInspector.context.js +106 -0
- package/dist/utils/processInspector.context.js.map +1 -0
- package/dist/utils/processInspector.d.ts +55 -0
- package/dist/utils/processInspector.d.ts.map +1 -0
- package/dist/utils/processInspector.js +127 -0
- package/dist/utils/processInspector.js.map +1 -0
- package/dist/utils/retry.d.ts +25 -2
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +33 -6
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/runtimeIdentity.context.d.ts +7 -0
- package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
- package/dist/utils/runtimeIdentity.context.js +43 -0
- package/dist/utils/runtimeIdentity.context.js.map +1 -0
- package/dist/utils/runtimeIdentity.d.ts +98 -0
- package/dist/utils/runtimeIdentity.d.ts.map +1 -0
- package/dist/utils/runtimeIdentity.js +181 -0
- package/dist/utils/runtimeIdentity.js.map +1 -0
- package/dist/utils/sanitize.d.ts +1 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/streamContext.d.ts +2 -1
- package/dist/utils/streamContext.d.ts.map +1 -0
- package/dist/utils/streamContext.js +1 -1
- package/dist/utils/timing.d.ts +2 -1
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/timing.js +0 -5
- package/dist/utils/timing.js.map +1 -1
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +47 -13
- package/dist/utils/version.js.map +1 -1
- package/package.json +26 -20
package/dist/config/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;;;;GAUG;AAEH,mGAAmG;AACnG,IAAI,eAAmC,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IAEnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAErD,IAAG,UAAU,EAAE,CAAC;QAEd,sEAAsE;QACtE,eAAe,GAAG,UAAU,CAAC;IAC/B,CAAC;SAAM,IAAG,UAAU,EAAE,CAAC;QAErB,IAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAEhC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,2DAA2D,GAAG,UAAU,CAAC,CAAC;YAExF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAe,GAAG,UAAU,CAAC;IAC/B,CAAC;SAAM,CAAC;QAEN,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IAExB,IAAG,CAAC,eAAe,EAAE,CAAC;QAEpB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,3 +6,4 @@ import type { StorageBackend } from "./persistence.ts";
|
|
|
6
6
|
* @returns A StorageBackend implementation backed by the real filesystem via node:fs/promises.
|
|
7
7
|
*/
|
|
8
8
|
export declare function createDefaultStorageBackend(): StorageBackend;
|
|
9
|
+
//# sourceMappingURL=persistence.context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.context.d.ts","sourceRoot":"","sources":["../../src/config/persistence.context.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,cAAc,CAiC5D"}
|
|
@@ -66,7 +66,7 @@ export interface FileStoreReadResult<T> {
|
|
|
66
66
|
recoveredFromBackup: boolean;
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
* Options for creating a file store instance. The
|
|
69
|
+
* Options for creating a file store instance. The required fields (defaultValue, label, parse, path) are the minimum surface required for any store. The
|
|
70
70
|
* remaining fields opt in to schema versioning, migrations, and integrity validation - any store can adopt them as its data shape grows.
|
|
71
71
|
* @template T - The in-memory data type that callers mutate.
|
|
72
72
|
*/
|
|
@@ -91,8 +91,8 @@ export interface FileStoreOptions<T> {
|
|
|
91
91
|
*/
|
|
92
92
|
export interface FileStore<T> {
|
|
93
93
|
/**
|
|
94
|
-
* Verifies migrations are up-to-date and persists the upgrade if any were applied.
|
|
95
|
-
* is a single read with no write. Called once per store at startup by the release boot coordinator after snapshots have been captured.
|
|
94
|
+
* Verifies migrations are up-to-date and persists the upgrade if any were applied. A no-op on repeat - when the file is already at the current schema
|
|
95
|
+
* version this is a single read with no write. Called once per store at startup by the release boot coordinator after snapshots have been captured.
|
|
96
96
|
* @returns The migration result so callers can log per-store outcomes.
|
|
97
97
|
*/
|
|
98
98
|
ensureMigrated(): Promise<MigrationResult>;
|
|
@@ -110,9 +110,10 @@ export interface FileStore<T> {
|
|
|
110
110
|
*/
|
|
111
111
|
read(): Promise<FileStoreReadResult<T>>;
|
|
112
112
|
/**
|
|
113
|
-
* Creates a labeled snapshot copy of the current file inside a `snapshots/` subdirectory next to the source file (named `<file>.<label>`).
|
|
114
|
-
* the label - if a snapshot with the same label already exists, this is a no-op. After a successful create, prunes older snapshots for
|
|
115
|
-
* most SNAPSHOT_RETENTION remain (by mtime). Used to preserve a guaranteed restore point at release boundaries before any migrations can
|
|
113
|
+
* Creates a labeled snapshot copy of the current file inside a `snapshots/` subdirectory next to the source file (named `<file>.<label>`). Safe to call more
|
|
114
|
+
* than once for the same label - if a snapshot with the same label already exists, this is a no-op. After a successful create, prunes older snapshots for
|
|
115
|
+
* the same file so at most SNAPSHOT_RETENTION remain (by mtime). Used to preserve a guaranteed restore point at release boundaries before any migrations can
|
|
116
|
+
* mutate the file.
|
|
116
117
|
* @param label - The filename suffix appended after the source file's basename and a dot. Typically a version string like `pre-v1.10.0`.
|
|
117
118
|
*/
|
|
118
119
|
snapshot(label: string): Promise<void>;
|
|
@@ -128,7 +129,8 @@ export interface FileStore<T> {
|
|
|
128
129
|
export declare function snapshotAllForRelease(label: string): Promise<void>;
|
|
129
130
|
/**
|
|
130
131
|
* Runs ensureMigrated() on every registered store. Called once at startup after snapshotAllForRelease so that any pending migrations execute against a file
|
|
131
|
-
* that already has its pre-version snapshot captured.
|
|
132
|
+
* that already has its pre-version snapshot captured. Safe to call more than once within a release - subsequent boots see no pending migrations and skip
|
|
133
|
+
* the upgrade write.
|
|
132
134
|
*/
|
|
133
135
|
export declare function ensureAllMigrated(): Promise<void>;
|
|
134
136
|
/**
|
|
@@ -141,10 +143,10 @@ export declare function ensureAllMigrated(): Promise<void>;
|
|
|
141
143
|
* - **Backup rotation:** before each write, the current file is copied to `.bak`. One-deep rotation provides a recovery path for the previous good version.
|
|
142
144
|
* - **Auto-recovery:** when the main file fails to parse, `read()` transparently restores from `.bak` (atomic temp+rename) and surfaces `recoveredFromBackup`
|
|
143
145
|
* on the result so callers can banner the event. Only when both files are unparseable does the result fall back to defaults with `parseError: true`.
|
|
144
|
-
* - **Versioned snapshots:** `snapshot(label)` writes a copy of the current file into a `snapshots/` subdirectory, named `<file>.<label>`,
|
|
145
|
-
* label. After each successful create the directory is pruned to at most SNAPSHOT_RETENTION entries per file (by mtime).
|
|
146
|
+
* - **Versioned snapshots:** `snapshot(label)` writes a copy of the current file into a `snapshots/` subdirectory, named `<file>.<label>`, safe to call more
|
|
147
|
+
* than once for the same label. After each successful create the directory is pruned to at most SNAPSHOT_RETENTION entries per file (by mtime).
|
|
146
148
|
* - **Declarative migrations:** when `migrations` and `currentSchemaVersion` are provided, `read()` runs any pending migrations in memory and returns the
|
|
147
|
-
* upgraded data. `ensureMigrated()` persists the upgrade if any were applied. Migrations are version-keyed and
|
|
149
|
+
* upgraded data. `ensureMigrated()` persists the upgrade if any were applied. Migrations are version-keyed and safe to call more than once across boots.
|
|
148
150
|
* - **Pre-write validation:** when `validate` is provided, `mutate()` invokes it with the pre-mutation snapshot and post-mutation state, surfacing integrity
|
|
149
151
|
* issues via the log.
|
|
150
152
|
* - **Post-write integrity check:** after every successful rename, the file is read back and byte-compared against what was written. On mismatch, the .bak is
|
|
@@ -155,3 +157,4 @@ export declare function ensureAllMigrated(): Promise<void>;
|
|
|
155
157
|
* @returns A FileStore instance. Auto-registers in the global store registry so the release boot coordinator can snapshot it.
|
|
156
158
|
*/
|
|
157
159
|
export declare function createFileStore<T>(options: FileStoreOptions<T>): FileStore<T>;
|
|
160
|
+
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,8 @@ export async function snapshotAllForRelease(label) {
|
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Runs ensureMigrated() on every registered store. Called once at startup after snapshotAllForRelease so that any pending migrations execute against a file
|
|
60
|
-
* that already has its pre-version snapshot captured.
|
|
60
|
+
* that already has its pre-version snapshot captured. Safe to call more than once within a release - subsequent boots see no pending migrations and skip
|
|
61
|
+
* the upgrade write.
|
|
61
62
|
*/
|
|
62
63
|
export async function ensureAllMigrated() {
|
|
63
64
|
await Promise.all(registeredStores.map(async (store) => store.ensureMigrated()));
|
|
@@ -73,10 +74,10 @@ export async function ensureAllMigrated() {
|
|
|
73
74
|
* - **Backup rotation:** before each write, the current file is copied to `.bak`. One-deep rotation provides a recovery path for the previous good version.
|
|
74
75
|
* - **Auto-recovery:** when the main file fails to parse, `read()` transparently restores from `.bak` (atomic temp+rename) and surfaces `recoveredFromBackup`
|
|
75
76
|
* on the result so callers can banner the event. Only when both files are unparseable does the result fall back to defaults with `parseError: true`.
|
|
76
|
-
* - **Versioned snapshots:** `snapshot(label)` writes a copy of the current file into a `snapshots/` subdirectory, named `<file>.<label>`,
|
|
77
|
-
* label. After each successful create the directory is pruned to at most SNAPSHOT_RETENTION entries per file (by mtime).
|
|
77
|
+
* - **Versioned snapshots:** `snapshot(label)` writes a copy of the current file into a `snapshots/` subdirectory, named `<file>.<label>`, safe to call more
|
|
78
|
+
* than once for the same label. After each successful create the directory is pruned to at most SNAPSHOT_RETENTION entries per file (by mtime).
|
|
78
79
|
* - **Declarative migrations:** when `migrations` and `currentSchemaVersion` are provided, `read()` runs any pending migrations in memory and returns the
|
|
79
|
-
* upgraded data. `ensureMigrated()` persists the upgrade if any were applied. Migrations are version-keyed and
|
|
80
|
+
* upgraded data. `ensureMigrated()` persists the upgrade if any were applied. Migrations are version-keyed and safe to call more than once across boots.
|
|
80
81
|
* - **Pre-write validation:** when `validate` is provided, `mutate()` invokes it with the pre-mutation snapshot and post-mutation state, surfacing integrity
|
|
81
82
|
* issues via the log.
|
|
82
83
|
* - **Post-write integrity check:** after every successful rename, the file is read back and byte-compared against what was written. On mismatch, the .bak is
|
|
@@ -151,8 +152,14 @@ export function createFileStore(options) {
|
|
|
151
152
|
}
|
|
152
153
|
/**
|
|
153
154
|
* Attempts to recover from .bak when the main file fails to parse. Reads .bak, parses it, and on success restores the main file from .bak via atomic temp+
|
|
154
|
-
* rename
|
|
155
|
-
*
|
|
155
|
+
* rename. Returns the parsed recovered data, or null if .bak is missing or also unparseable.
|
|
156
|
+
*
|
|
157
|
+
* The restore-write is best-effort - the in-memory recovered data is what callers act on, and a failed restore leaves the main file corrupt on disk without
|
|
158
|
+
* losing the good copy. The actual protection against rotating a corrupt main into .bak lives in doMutate, which skips the main->bak rotation whenever read()
|
|
159
|
+
* reports recoveredFromBackup; this function's restore is the convenience that lets a subsequent clean read see a non-corrupt main once the write succeeds.
|
|
160
|
+
*
|
|
161
|
+
* The restore uses a recovery-specific temp suffix (.recover.tmp) distinct from doMutate's .tmp. Because read() runs outside the mutate serialization lock,
|
|
162
|
+
* a read-triggered recovery can overlap an in-flight mutate; distinct suffixes guarantee the recovery never clobbers the mutate's temp before its rename.
|
|
156
163
|
*/
|
|
157
164
|
async function tryRecoverFromBackup(filePath) {
|
|
158
165
|
const bakPath = filePath + ".bak";
|
|
@@ -172,7 +179,11 @@ export function createFileStore(options) {
|
|
|
172
179
|
}
|
|
173
180
|
// Restore main from .bak via atomic temp+rename. Best-effort: if the restore write fails, we still return the recovered data so the caller can proceed
|
|
174
181
|
// with valid in-memory state. A subsequent read would attempt recovery again and produce the same result.
|
|
175
|
-
|
|
182
|
+
//
|
|
183
|
+
// The restore uses a recovery-specific temp suffix (.recover.tmp) rather than the .tmp suffix doMutate uses. read() does NOT acquire the mutate
|
|
184
|
+
// serialization lock, so a read-triggered recovery can run concurrently with an in-flight mutate. Sharing the .tmp path would let a recovery's write or
|
|
185
|
+
// rename clobber a mutate's in-flight temp file before the mutate renames it into place. Distinct suffixes keep the two write paths from ever colliding.
|
|
186
|
+
const tmpPath = filePath + ".recover.tmp";
|
|
176
187
|
try {
|
|
177
188
|
await backend.writeFile(tmpPath, bakContent);
|
|
178
189
|
await backend.rename(tmpPath, filePath);
|
|
@@ -291,18 +302,18 @@ export function createFileStore(options) {
|
|
|
291
302
|
}));
|
|
292
303
|
}
|
|
293
304
|
/**
|
|
294
|
-
* Creates a labeled snapshot copy of the current file inside a `snapshots/` subdirectory next to the source file.
|
|
295
|
-
* within the same release are no-ops after the first one. After a successful create, prunes old snapshots for this file so at most
|
|
296
|
-
* retained (by mtime). Snapshots are version-keyed safety nets that survive normal .bak rotation, intended to be the restore
|
|
297
|
-
* introduces a data-shape regression that escapes the primary safeguards.
|
|
305
|
+
* Creates a labeled snapshot copy of the current file inside a `snapshots/` subdirectory next to the source file. Safe to call more than once for the same
|
|
306
|
+
* label, so repeated calls within the same release are no-ops after the first one. After a successful create, prunes old snapshots for this file so at most
|
|
307
|
+
* SNAPSHOT_RETENTION are retained (by mtime). Snapshots are version-keyed safety nets that survive normal .bak rotation, intended to be the restore of last
|
|
308
|
+
* resort when a release introduces a data-shape regression that escapes the primary safeguards.
|
|
298
309
|
*/
|
|
299
310
|
async function snapshot(label) {
|
|
300
311
|
const filePath = options.path();
|
|
301
312
|
const baseName = path.basename(filePath);
|
|
302
313
|
const snapshotDir = path.join(path.dirname(filePath), "snapshots");
|
|
303
314
|
const snapshotPath = path.join(snapshotDir, baseName + "." + label);
|
|
304
|
-
//
|
|
305
|
-
// skip, so the snapshot reflects the file's state at first-boot of that release.
|
|
315
|
+
// A no-op on repeat: skip if a snapshot with this label already exists. The first boot under a given release captures the snapshot; subsequent boots see
|
|
316
|
+
// it and skip, so the snapshot reflects the file's state at first-boot of that release.
|
|
306
317
|
try {
|
|
307
318
|
await backend.access(snapshotPath);
|
|
308
319
|
return;
|
|
@@ -363,13 +374,21 @@ export function createFileStore(options) {
|
|
|
363
374
|
dataDirEnsured = true;
|
|
364
375
|
}
|
|
365
376
|
// Backup: copy the current file to .bak before overwriting. Swallow ENOENT (file does not exist yet on first write).
|
|
377
|
+
//
|
|
378
|
+
// We skip the rotation entirely when read() recovered the in-memory state from .bak. recoveredFromBackup being true means the main file on disk was
|
|
379
|
+
// unparseable and the good copy is the existing .bak - so .bak already holds the prior good state. Had tryRecoverFromBackup's restore-write to main failed,
|
|
380
|
+
// the main file on disk is still corrupt; copying it over .bak would destroy the only good copy. Had the restore succeeded, main now equals .bak and the
|
|
381
|
+
// upcoming atomic write overwrites it with the mutated good data while .bak keeps the prior good state. Either way, rotating is at best redundant and at
|
|
382
|
+
// worst destructive, so we leave the known-good .bak untouched and let the atomic write below replace the (recovered) main.
|
|
366
383
|
const bakPath = filePath + ".bak";
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
384
|
+
if (!result.recoveredFromBackup) {
|
|
385
|
+
try {
|
|
386
|
+
await backend.copyFile(filePath, bakPath);
|
|
387
|
+
}
|
|
388
|
+
catch (backupError) {
|
|
389
|
+
if (backupError.code !== "ENOENT") {
|
|
390
|
+
LOG.warn("Failed to back up %s: %s.", filePath, (backupError instanceof Error) ? backupError.message : String(backupError));
|
|
391
|
+
}
|
|
373
392
|
}
|
|
374
393
|
}
|
|
375
394
|
// Atomic write: write to a temp file, then rename over the original. rename() is atomic on POSIX and NTFS filesystems.
|
|
@@ -425,8 +444,8 @@ export function createFileStore(options) {
|
|
|
425
444
|
return operation;
|
|
426
445
|
}
|
|
427
446
|
/**
|
|
428
|
-
* Verifies the file is at the current schema version, persisting any required upgrade.
|
|
429
|
-
* with no write. The release boot coordinator calls this on every store after snapshots have been captured.
|
|
447
|
+
* Verifies the file is at the current schema version, persisting any required upgrade. A no-op on repeat - when the file is already current this is a
|
|
448
|
+
* single read with no write. The release boot coordinator calls this on every store after snapshots have been captured.
|
|
430
449
|
*/
|
|
431
450
|
async function ensureMigrated() {
|
|
432
451
|
// Peek to determine whether migrations are needed. read() runs migrations in memory but does not persist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/config/persistence.ts"],"names":[],"mappings":"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"}
|
package/dist/config/presets.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/config/presets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAa1D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAE3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8BAA8B,EAAE,MAAM,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAG5B,WAAW,EAAE,MAAM,CAAC;IAGpB,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,YAAY,CAAC;CACtB;AA2FD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAEhD,CAAC;AAQF;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAG5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAcnF;AAYD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAGpC,gBAAgB,EAAE,aAAa,CAAC;IAGhC,QAAQ,EAAE,OAAO,CAAC;IAGlB,eAAe,EAAE,aAAa,CAAC;IAG/B,WAAW,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAgBlG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAuDxE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAStF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAWxE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAG3B,MAAM,EAAE,aAAa,CAAC;IAGtB,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAGlC,WAAW,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAGzD,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,mBAAmB,CAkDrE"}
|
|
@@ -2,17 +2,21 @@ import { DEFAULT_SITE_PROFILE, DOMAIN_CONFIG, PROVIDER_PROFILES, SITE_PROFILES,
|
|
|
2
2
|
import type { ProfileCategory, ProfileResolutionResult, ResolvedSiteProfile } from "../types/index.ts";
|
|
3
3
|
export { DEFAULT_SITE_PROFILE, DOMAIN_CONFIG, PROVIDER_PROFILES, SITE_PROFILES, getBuiltinProfile, getDomainConfig };
|
|
4
4
|
/**
|
|
5
|
-
* Resolves a named profile from
|
|
6
|
-
*
|
|
5
|
+
* Resolves a named profile from any builtin source or the user profile store, following its inheritance chain and merging with the default profile so that every
|
|
6
|
+
* behavior flag has a value.
|
|
7
7
|
*
|
|
8
8
|
* The resolution process:
|
|
9
9
|
*
|
|
10
|
-
* 1.
|
|
11
|
-
* 2.
|
|
12
|
-
* 3.
|
|
13
|
-
* 4. Return the fully-resolved profile with all flags set
|
|
10
|
+
* 1. Follow extends hops outward from the named profile, collecting each profile that resolves into an ordered chain.
|
|
11
|
+
* 2. Start with a copy of DEFAULT_SITE_PROFILE.
|
|
12
|
+
* 3. Apply the collected chain from the root ancestor forward, so that a child's values override the values of what it extends.
|
|
14
13
|
*
|
|
15
|
-
*
|
|
14
|
+
* Resolution is total over any stored data: a name that resolves to nothing, whether it is unknown or is reached through a chain that closes back on itself,
|
|
15
|
+
* contributes nothing, and the flags collected before that point still apply over the defaults. Rule violations in stored profiles are reported by
|
|
16
|
+
* validateProfiles(), not here.
|
|
17
|
+
*
|
|
18
|
+
* Metadata properties (category, description, extends, summary) are stripped from every chain entry during resolution - they exist only for UI categorization,
|
|
19
|
+
* documentation, inheritance specification, and UI display.
|
|
16
20
|
*
|
|
17
21
|
* @param profileName - The name of the profile to resolve.
|
|
18
22
|
* @returns The merged site profile containing all behavior flags.
|
|
@@ -51,17 +55,19 @@ export declare function getProfileForChannel(channel: {
|
|
|
51
55
|
url?: string;
|
|
52
56
|
} | undefined): ProfileResolutionResult;
|
|
53
57
|
/**
|
|
54
|
-
* Validates all profile configurations including inheritance chains, domain mappings, and channel references.
|
|
55
|
-
*
|
|
58
|
+
* Validates all profile configurations including inheritance chains, domain mappings, and channel references. Builtin configuration errors throw and abort startup;
|
|
59
|
+
* user-defined profile and domain validation errors are surfaced as warnings so the server can still start and the user can fix them via the web UI. This function
|
|
60
|
+
* runs at startup before the server begins accepting connections.
|
|
56
61
|
*
|
|
57
62
|
* Validation checks:
|
|
58
63
|
*
|
|
59
|
-
* 1. Circular inheritance detection - walks the extends chain for each profile to detect cycles
|
|
60
|
-
* 2. Invalid extends references - ensures all extends targets exist
|
|
61
|
-
* 3. Domain mapping validation - ensures all domain profile references exist
|
|
62
|
-
* 4. Channel profile validation - ensures all channel profile references exist
|
|
64
|
+
* 1. Circular inheritance detection - walks the extends chain for each profile to detect cycles.
|
|
65
|
+
* 2. Invalid extends references - ensures all extends targets exist.
|
|
66
|
+
* 3. Domain mapping validation - ensures all domain profile references exist.
|
|
67
|
+
* 4. Channel profile validation - ensures all channel profile references exist.
|
|
63
68
|
*
|
|
64
|
-
* @throws If any profile configuration is invalid.
|
|
69
|
+
* @throws If any builtin profile, domain-mapping, or channel-reference configuration is invalid. User-defined profile and domain errors are logged as warnings
|
|
70
|
+
* rather than thrown.
|
|
65
71
|
*/
|
|
66
72
|
export declare function validateProfiles(): void;
|
|
67
73
|
/**
|
|
@@ -75,8 +81,9 @@ export interface ProfileInfo {
|
|
|
75
81
|
summary: string;
|
|
76
82
|
}
|
|
77
83
|
/**
|
|
78
|
-
* Returns all profiles (
|
|
84
|
+
* Returns all profiles (builtin and user-defined) with their descriptions, categories, summaries, and source tags, sorted alphabetically by name. Used by the
|
|
79
85
|
* channel configuration UI to populate the profile dropdown with tooltips and the profile reference section.
|
|
80
86
|
* @returns Array of profile info objects.
|
|
81
87
|
*/
|
|
82
88
|
export declare function getProfiles(): ProfileInfo[];
|
|
89
|
+
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/config/profiles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAC3E,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAgB,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAe,MAAM,mBAAmB,CAAC;AAOlI,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AAqBrH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAqDnF;AA0BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CAkBjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CAC9J,GAAG,SAAS,GAAG,uBAAuB,CAgGtC;AAcD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAuGvC;AAKD;;GAEG;AACH,MAAM,WAAW,WAAW;IAG1B,QAAQ,EAAE,eAAe,CAAC;IAG1B,WAAW,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAG3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAoC3C"}
|
package/dist/config/profiles.js
CHANGED
|
@@ -14,31 +14,35 @@ export { DEFAULT_SITE_PROFILE, DOMAIN_CONFIG, PROVIDER_PROFILES, SITE_PROFILES,
|
|
|
14
14
|
*
|
|
15
15
|
* Resolution order (highest to lowest priority):
|
|
16
16
|
*
|
|
17
|
-
* 1. Channel's explicit profile property (if specified)
|
|
18
|
-
* 2. URL-based detection via DOMAIN_CONFIG
|
|
19
|
-
* 3. DEFAULT_SITE_PROFILE
|
|
17
|
+
* 1. Channel's explicit profile property (if specified).
|
|
18
|
+
* 2. URL-based detection via DOMAIN_CONFIG.
|
|
19
|
+
* 3. DEFAULT_SITE_PROFILE.
|
|
20
20
|
*
|
|
21
21
|
* Within a profile, inheritance works as follows:
|
|
22
22
|
*
|
|
23
|
-
* 1. Start with DEFAULT_SITE_PROFILE for base values
|
|
24
|
-
* 2. Apply parent profile properties (if extends is set)
|
|
25
|
-
* 3. Apply current profile properties (overriding parent)
|
|
23
|
+
* 1. Start with DEFAULT_SITE_PROFILE for base values.
|
|
24
|
+
* 2. Apply parent profile properties (if extends is set).
|
|
25
|
+
* 3. Apply current profile properties (overriding parent).
|
|
26
26
|
*
|
|
27
27
|
* This allows profiles like "embeddedDynamicMultiVideo" to inherit iframe handling from "embeddedPlayer" which inherits API fullscreen from "fullscreenApi",
|
|
28
28
|
* building up the complete set of behavior flags through the inheritance chain.
|
|
29
29
|
*/
|
|
30
30
|
/**
|
|
31
|
-
* Resolves a named profile from
|
|
32
|
-
*
|
|
31
|
+
* Resolves a named profile from any builtin source or the user profile store, following its inheritance chain and merging with the default profile so that every
|
|
32
|
+
* behavior flag has a value.
|
|
33
33
|
*
|
|
34
34
|
* The resolution process:
|
|
35
35
|
*
|
|
36
|
-
* 1.
|
|
37
|
-
* 2.
|
|
38
|
-
* 3.
|
|
39
|
-
* 4. Return the fully-resolved profile with all flags set
|
|
36
|
+
* 1. Follow extends hops outward from the named profile, collecting each profile that resolves into an ordered chain.
|
|
37
|
+
* 2. Start with a copy of DEFAULT_SITE_PROFILE.
|
|
38
|
+
* 3. Apply the collected chain from the root ancestor forward, so that a child's values override the values of what it extends.
|
|
40
39
|
*
|
|
41
|
-
*
|
|
40
|
+
* Resolution is total over any stored data: a name that resolves to nothing, whether it is unknown or is reached through a chain that closes back on itself,
|
|
41
|
+
* contributes nothing, and the flags collected before that point still apply over the defaults. Rule violations in stored profiles are reported by
|
|
42
|
+
* validateProfiles(), not here.
|
|
43
|
+
*
|
|
44
|
+
* Metadata properties (category, description, extends, summary) are stripped from every chain entry during resolution - they exist only for UI categorization,
|
|
45
|
+
* documentation, inheritance specification, and UI display.
|
|
42
46
|
*
|
|
43
47
|
* @param profileName - The name of the profile to resolve.
|
|
44
48
|
* @returns The merged site profile containing all behavior flags.
|
|
@@ -48,24 +52,39 @@ export function resolveProfile(profileName) {
|
|
|
48
52
|
if (!profileName) {
|
|
49
53
|
return { ...DEFAULT_SITE_PROFILE };
|
|
50
54
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
const chain = [];
|
|
56
|
+
const visited = new Set();
|
|
57
|
+
let userProfiles;
|
|
58
|
+
let current = profileName;
|
|
59
|
+
/* Walk the extends chain from the named profile toward its root ancestor. The visited set bounds the walk: a name already collected ends the collection, so a
|
|
60
|
+
* stored profile whose chain points back into itself resolves to the flags gathered before the loop closed instead of exhausting the stack.
|
|
61
|
+
*
|
|
62
|
+
* Resolution stays silent about both a name that resolves to nothing and a chain that closes on itself - it degrades to whatever it collected over the
|
|
63
|
+
* defaults, which is how an entirely unknown name resolves as well. Reporting a rule violation in stored data belongs to the validation layer, which runs at
|
|
64
|
+
* every ingress (startup, profile editor save, service pack import); a message from here would restate a fixed condition at request frequency on the playlist,
|
|
65
|
+
* channel table, and tune paths.
|
|
66
|
+
*/
|
|
67
|
+
while (current && !visited.has(current)) {
|
|
68
|
+
visited.add(current);
|
|
69
|
+
// Check all profile sources: static builtin tables (general + provider) and registered provider module profiles via getBuiltinProfile(), then user-defined
|
|
70
|
+
// profiles. The user map is a snapshot copy, so it is taken at most once per resolution and only once a name misses every builtin source - resolving the
|
|
71
|
+
// builtin chains that the playlist, table, and tune paths ask for never copies it.
|
|
72
|
+
const profile = getBuiltinProfile(current) ?? ((userProfiles ??= getUserProfiles())[current]);
|
|
73
|
+
if (!profile) {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
chain.push(profile);
|
|
77
|
+
current = profile.extends;
|
|
56
78
|
}
|
|
57
|
-
// Start with default values. This ensures all flags have a value even if not specified in the
|
|
79
|
+
// Start with default values. This ensures all flags have a value even if not specified in any profile along the chain.
|
|
58
80
|
let resolved = { ...DEFAULT_SITE_PROFILE };
|
|
59
|
-
// Apply
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
81
|
+
// Apply the chain from the root ancestor forward, which is what gives a child profile precedence over what it extends. Every entry sheds its metadata fields
|
|
82
|
+
// on the way in: the category, description, extends, and summary properties are for UI categorization, documentation, inheritance specification, and UI
|
|
83
|
+
// display only, and belong to no resolved profile at any depth.
|
|
84
|
+
for (const profile of chain.toReversed()) {
|
|
85
|
+
const { category: _category, description: _description, extends: _extends, summary: _summary, ...profileFlags } = profile;
|
|
86
|
+
resolved = { ...resolved, ...profileFlags };
|
|
63
87
|
}
|
|
64
|
-
// Apply current profile properties, excluding metadata fields that should not be in the resolved profile. The category, description, extends, and summary
|
|
65
|
-
// properties are for UI categorization, documentation, inheritance specification, and UI display only.
|
|
66
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
67
|
-
const { category: _category, description: _description, extends: _extends, summary: _summary, ...profileFlags } = profile;
|
|
68
|
-
resolved = { ...resolved, ...profileFlags };
|
|
69
88
|
return resolved;
|
|
70
89
|
}
|
|
71
90
|
/**
|
|
@@ -128,8 +147,12 @@ export function getProfileForChannel(channel) {
|
|
|
128
147
|
if (!channel) {
|
|
129
148
|
return { profile: { ...DEFAULT_SITE_PROFILE }, profileName: "default" };
|
|
130
149
|
}
|
|
150
|
+
// Whether the channel named its own profile rather than leaving resolution to the URL. Only this case can produce an override: refining a URL-detected profile
|
|
151
|
+
// is ordinary resolution, with no choice of the channel's to displace.
|
|
152
|
+
const hasExplicitProfile = Boolean(channel.profile) && (channel.profile !== "auto");
|
|
131
153
|
let profile;
|
|
132
154
|
let profileName;
|
|
155
|
+
let overriddenProfile;
|
|
133
156
|
// If the channel specifies an explicit profile name, use it directly. This takes precedence over URL-based detection. The value "auto" is treated as unset,
|
|
134
157
|
// falling through to URL-based detection below.
|
|
135
158
|
if (channel.profile && (channel.profile !== "auto")) {
|
|
@@ -152,13 +175,19 @@ export function getProfileForChannel(channel) {
|
|
|
152
175
|
if ((profile.channelSelection.strategy !== "none") && !channel.channelSelector && channel.url) {
|
|
153
176
|
const conciseConfig = DOMAIN_CONFIG[extractDomain(channel.url)];
|
|
154
177
|
if (conciseConfig?.profile && (conciseConfig.profile !== profileName)) {
|
|
178
|
+
// Report the displaced choice when the channel named the profile itself, capturing the name before the substitution overwrites it. Resolution only
|
|
179
|
+
// reports - it does not warn - because this resolver also serves per-request render paths (the playlist and the channel table) that would repeat the
|
|
180
|
+
// message on every fetch and every draw. The consumer that tunes decides whether the substitution is worth telling the operator about.
|
|
181
|
+
if (hasExplicitProfile) {
|
|
182
|
+
overriddenProfile = profileName;
|
|
183
|
+
}
|
|
155
184
|
profile = resolveProfile(conciseConfig.profile);
|
|
156
185
|
profileName = conciseConfig.profile;
|
|
157
186
|
}
|
|
158
187
|
}
|
|
159
188
|
// Merge domain-level properties that apply regardless of how the profile was resolved. These represent site-specific behaviors or policies that must always be
|
|
160
189
|
// applied based on the channel's URL even when the player profile is explicitly overridden. For the URL-based path above, getProfileForUrl() already merges
|
|
161
|
-
// these - the re-application here is
|
|
190
|
+
// these - the re-application here is a no-op on repeat. For the explicit-profile path, this fills the gap.
|
|
162
191
|
if (channel.url) {
|
|
163
192
|
profile = mergeDomainProperties(profile, getDomainConfig(channel.url));
|
|
164
193
|
}
|
|
@@ -181,31 +210,34 @@ export function getProfileForChannel(channel) {
|
|
|
181
210
|
if (Object.keys(scrollOverrides).length > 0) {
|
|
182
211
|
profile = { ...profile, channelSelection: { ...profile.channelSelection, ...scrollOverrides } };
|
|
183
212
|
}
|
|
184
|
-
|
|
213
|
+
// The override key is present only when it carries a name, so a consumer can test the field itself rather than telling an absent key apart from an undefined one.
|
|
214
|
+
return overriddenProfile ? { overriddenProfile, profile, profileName } : { profile, profileName };
|
|
185
215
|
}
|
|
186
216
|
/* Before starting the server, we validate all profile configurations to catch errors early. Invalid configurations would cause runtime failures that are difficult
|
|
187
217
|
* to diagnose:
|
|
188
218
|
*
|
|
189
|
-
* - Invalid profile references (typos in extends or profile properties)
|
|
190
|
-
* - Circular inheritance chains (A extends B extends A)
|
|
191
|
-
* - Domain mappings pointing to non-existent profiles
|
|
192
|
-
* - Channel definitions referencing non-existent profiles
|
|
219
|
+
* - Invalid profile references (typos in extends or profile properties).
|
|
220
|
+
* - Circular inheritance chains (A extends B extends A).
|
|
221
|
+
* - Domain mappings pointing to non-existent profiles.
|
|
222
|
+
* - Channel definitions referencing non-existent profiles.
|
|
193
223
|
*
|
|
194
224
|
* By validating upfront at startup, we provide clear error messages and prevent the server from starting in a misconfigured state. This is especially important
|
|
195
225
|
* because profile errors might not surface until a specific channel is streamed, which could be hours after startup.
|
|
196
226
|
*/
|
|
197
227
|
/**
|
|
198
|
-
* Validates all profile configurations including inheritance chains, domain mappings, and channel references.
|
|
199
|
-
*
|
|
228
|
+
* Validates all profile configurations including inheritance chains, domain mappings, and channel references. Builtin configuration errors throw and abort startup;
|
|
229
|
+
* user-defined profile and domain validation errors are surfaced as warnings so the server can still start and the user can fix them via the web UI. This function
|
|
230
|
+
* runs at startup before the server begins accepting connections.
|
|
200
231
|
*
|
|
201
232
|
* Validation checks:
|
|
202
233
|
*
|
|
203
|
-
* 1. Circular inheritance detection - walks the extends chain for each profile to detect cycles
|
|
204
|
-
* 2. Invalid extends references - ensures all extends targets exist
|
|
205
|
-
* 3. Domain mapping validation - ensures all domain profile references exist
|
|
206
|
-
* 4. Channel profile validation - ensures all channel profile references exist
|
|
234
|
+
* 1. Circular inheritance detection - walks the extends chain for each profile to detect cycles.
|
|
235
|
+
* 2. Invalid extends references - ensures all extends targets exist.
|
|
236
|
+
* 3. Domain mapping validation - ensures all domain profile references exist.
|
|
237
|
+
* 4. Channel profile validation - ensures all channel profile references exist.
|
|
207
238
|
*
|
|
208
|
-
* @throws If any profile configuration is invalid.
|
|
239
|
+
* @throws If any builtin profile, domain-mapping, or channel-reference configuration is invalid. User-defined profile and domain errors are logged as warnings
|
|
240
|
+
* rather than thrown.
|
|
209
241
|
*/
|
|
210
242
|
export function validateProfiles() {
|
|
211
243
|
const errors = [];
|
|
@@ -239,7 +271,7 @@ export function validateProfiles() {
|
|
|
239
271
|
}
|
|
240
272
|
}
|
|
241
273
|
}
|
|
242
|
-
// Validate all channel profile references point to existing profiles (
|
|
274
|
+
// Validate all channel profile references point to existing profiles (builtin or user). This catches typos in channel definitions.
|
|
243
275
|
const userProfiles = getUserProfiles();
|
|
244
276
|
for (const [channelName, channel] of Object.entries(CHANNELS)) {
|
|
245
277
|
const channelProfile = channel.profile;
|
|
@@ -247,21 +279,23 @@ export function validateProfiles() {
|
|
|
247
279
|
errors.push("Channel " + channelName + " references non-existent profile: " + channelProfile);
|
|
248
280
|
}
|
|
249
281
|
}
|
|
250
|
-
// If any
|
|
282
|
+
// If any builtin configuration errors were found, throw with all error messages for comprehensive feedback.
|
|
251
283
|
if (errors.length > 0) {
|
|
252
284
|
throw new Error("Profile validation failed:\n " + errors.join("\n "));
|
|
253
285
|
}
|
|
254
286
|
// Validate user-defined profiles and domain mappings. These are warnings, not fatal errors - broken user profiles should not prevent the server from starting.
|
|
255
287
|
// The user can fix them via the web UI.
|
|
256
288
|
const userWarnings = [];
|
|
257
|
-
|
|
289
|
+
// A user domain mapping may reference any builtin profile or any profile in the user store. Profile existence questions go through the single builtin lookup
|
|
290
|
+
// rather than an enumerated table, so a mapping onto a provider profile or a provider module's registered profile validates as known.
|
|
291
|
+
const isKnownProfile = (name) => Boolean(getBuiltinProfile(name)) || (name in userProfiles);
|
|
258
292
|
for (const [key, profile] of Object.entries(userProfiles)) {
|
|
259
293
|
const profileErrors = validateProfile(key, profile);
|
|
260
294
|
userWarnings.push(...profileErrors);
|
|
261
295
|
}
|
|
262
296
|
const userDomains = getUserDomains();
|
|
263
297
|
for (const [domain, config] of Object.entries(userDomains)) {
|
|
264
|
-
const domainErrors = validateDomain(domain, config,
|
|
298
|
+
const domainErrors = validateDomain(domain, config, isKnownProfile);
|
|
265
299
|
userWarnings.push(...domainErrors);
|
|
266
300
|
}
|
|
267
301
|
if (userWarnings.length > 0) {
|
|
@@ -271,13 +305,13 @@ export function validateProfiles() {
|
|
|
271
305
|
}
|
|
272
306
|
}
|
|
273
307
|
/**
|
|
274
|
-
* Returns all profiles (
|
|
308
|
+
* Returns all profiles (builtin and user-defined) with their descriptions, categories, summaries, and source tags, sorted alphabetically by name. Used by the
|
|
275
309
|
* channel configuration UI to populate the profile dropdown with tooltips and the profile reference section.
|
|
276
310
|
* @returns Array of profile info objects.
|
|
277
311
|
*/
|
|
278
312
|
export function getProfiles() {
|
|
279
313
|
const result = [];
|
|
280
|
-
// Add
|
|
314
|
+
// Add builtin profiles. Iterate entries so each profile reference is fully-typed (keys from Object.keys would force a Record lookup per iteration).
|
|
281
315
|
for (const [name, profile] of Object.entries(SITE_PROFILES).toSorted(([a], [b]) => a.localeCompare(b))) {
|
|
282
316
|
result.push({
|
|
283
317
|
category: profile.category ?? "special",
|