prismcast 1.10.2 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +6 -3
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +140 -86
- package/dist/app.js.map +1 -1
- package/dist/browser/blockedPage.d.ts +80 -0
- package/dist/browser/blockedPage.d.ts.map +1 -0
- package/dist/browser/blockedPage.js +209 -0
- package/dist/browser/blockedPage.js.map +1 -0
- package/dist/browser/browserSupervisor.d.ts +80 -0
- package/dist/browser/browserSupervisor.d.ts.map +1 -0
- package/dist/browser/browserSupervisor.js +186 -0
- package/dist/browser/browserSupervisor.js.map +1 -0
- package/dist/browser/cdp.d.ts +1 -0
- package/dist/browser/cdp.d.ts.map +1 -0
- package/dist/browser/cdp.js +6 -5
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +45 -14
- package/dist/browser/channelSelection.d.ts.map +1 -0
- package/dist/browser/channelSelection.js +81 -18
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/consent.d.ts +152 -0
- package/dist/browser/consent.d.ts.map +1 -0
- package/dist/browser/consent.js +418 -0
- package/dist/browser/consent.js.map +1 -0
- package/dist/browser/display.d.ts +1 -0
- package/dist/browser/display.d.ts.map +1 -0
- package/dist/browser/hlsPlaylistObserver.d.ts +55 -0
- package/dist/browser/hlsPlaylistObserver.d.ts.map +1 -0
- package/dist/browser/hlsPlaylistObserver.js +132 -0
- package/dist/browser/hlsPlaylistObserver.js.map +1 -0
- package/dist/browser/index.d.ts +67 -40
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +508 -300
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/launchGovernor.d.ts +89 -0
- package/dist/browser/launchGovernor.d.ts.map +1 -0
- package/dist/browser/launchGovernor.js +96 -0
- package/dist/browser/launchGovernor.js.map +1 -0
- package/dist/browser/login.d.ts +10 -2
- package/dist/browser/login.d.ts.map +1 -0
- package/dist/browser/login.js +36 -5
- package/dist/browser/login.js.map +1 -1
- package/dist/browser/manifestInterceptor.d.ts +102 -49
- package/dist/browser/manifestInterceptor.d.ts.map +1 -0
- package/dist/browser/manifestInterceptor.js +219 -237
- package/dist/browser/manifestInterceptor.js.map +1 -1
- package/dist/browser/pageStaleness.d.ts +30 -0
- package/dist/browser/pageStaleness.d.ts.map +1 -0
- package/dist/browser/pageStaleness.js +76 -0
- package/dist/browser/pageStaleness.js.map +1 -0
- package/dist/browser/precaching.d.ts +95 -3
- package/dist/browser/precaching.d.ts.map +1 -0
- package/dist/browser/precaching.js +499 -65
- package/dist/browser/precaching.js.map +1 -1
- package/dist/browser/tabNetworkObserver.d.ts +49 -0
- package/dist/browser/tabNetworkObserver.d.ts.map +1 -0
- package/dist/browser/tabNetworkObserver.js +144 -0
- package/dist/browser/tabNetworkObserver.js.map +1 -0
- package/dist/browser/tuning/cache.d.ts +61 -0
- package/dist/browser/tuning/cache.d.ts.map +1 -0
- package/dist/browser/tuning/cache.js +62 -0
- package/dist/browser/tuning/cache.js.map +1 -0
- package/dist/browser/tuning/comcastPolymer.d.ts +3 -2
- package/dist/browser/tuning/comcastPolymer.d.ts.map +1 -0
- package/dist/browser/tuning/comcastPolymer.js +79 -102
- package/dist/browser/tuning/comcastPolymer.js.map +1 -1
- package/dist/browser/tuning/cox.d.ts +1 -0
- package/dist/browser/tuning/cox.d.ts.map +1 -0
- package/dist/browser/tuning/directv.d.ts +1 -0
- package/dist/browser/tuning/directv.d.ts.map +1 -0
- package/dist/browser/tuning/directv.js +52 -46
- package/dist/browser/tuning/directv.js.map +1 -1
- package/dist/browser/tuning/fox.d.ts +1 -0
- package/dist/browser/tuning/fox.d.ts.map +1 -0
- package/dist/browser/tuning/fox.js +13 -12
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/gridSearch.d.ts +68 -0
- package/dist/browser/tuning/gridSearch.d.ts.map +1 -0
- package/dist/browser/tuning/gridSearch.js +85 -0
- package/dist/browser/tuning/gridSearch.js.map +1 -0
- package/dist/browser/tuning/hbo.d.ts +1 -0
- package/dist/browser/tuning/hbo.d.ts.map +1 -0
- package/dist/browser/tuning/hbo.js +73 -45
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.d.ts +1 -0
- package/dist/browser/tuning/hulu.d.ts.map +1 -0
- package/dist/browser/tuning/hulu.js +128 -173
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/shared.d.ts +75 -5
- package/dist/browser/tuning/shared.d.ts.map +1 -0
- package/dist/browser/tuning/shared.js +216 -6
- package/dist/browser/tuning/shared.js.map +1 -1
- package/dist/browser/tuning/sling.d.ts +1 -0
- package/dist/browser/tuning/sling.d.ts.map +1 -0
- package/dist/browser/tuning/sling.js +105 -126
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/spectrum.d.ts +1 -0
- package/dist/browser/tuning/spectrum.d.ts.map +1 -0
- package/dist/browser/tuning/spectrum.js +80 -125
- package/dist/browser/tuning/spectrum.js.map +1 -1
- package/dist/browser/tuning/thumbnailRow.d.ts +1 -0
- package/dist/browser/tuning/thumbnailRow.d.ts.map +1 -0
- package/dist/browser/tuning/thumbnailRow.js +8 -2
- package/dist/browser/tuning/thumbnailRow.js.map +1 -1
- package/dist/browser/tuning/tileClick.d.ts +1 -0
- package/dist/browser/tuning/tileClick.d.ts.map +1 -0
- package/dist/browser/tuning/tileClick.js +3 -2
- package/dist/browser/tuning/tileClick.js.map +1 -1
- package/dist/browser/tuning/xfinity.d.ts +1 -0
- package/dist/browser/tuning/xfinity.d.ts.map +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts.map +1 -0
- package/dist/browser/tuning/youtubeTv.js +74 -127
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +54 -14
- package/dist/browser/video.d.ts.map +1 -0
- package/dist/browser/video.js +296 -138
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.d.ts +1 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +12 -9
- package/dist/channels/index.js.map +1 -1
- package/dist/config/channelForm.d.ts +15 -1
- package/dist/config/channelForm.d.ts.map +1 -0
- package/dist/config/channelForm.js +28 -12
- package/dist/config/channelForm.js.map +1 -1
- package/dist/config/consistencyProbe.d.ts +1 -0
- package/dist/config/consistencyProbe.d.ts.map +1 -0
- package/dist/config/consistencyProbe.js +27 -21
- package/dist/config/consistencyProbe.js.map +1 -1
- package/dist/config/health.d.ts +41 -8
- package/dist/config/health.d.ts.map +1 -0
- package/dist/config/health.js +189 -38
- package/dist/config/health.js.map +1 -1
- package/dist/config/index.d.ts +55 -3
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +320 -69
- package/dist/config/index.js.map +1 -1
- package/dist/config/paths.d.ts +10 -9
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +11 -11
- package/dist/config/paths.js.map +1 -1
- package/dist/config/persistence.context.d.ts +1 -0
- package/dist/config/persistence.context.d.ts.map +1 -0
- package/dist/config/persistence.d.ts +13 -10
- package/dist/config/persistence.d.ts.map +1 -0
- package/dist/config/persistence.js +40 -21
- package/dist/config/persistence.js.map +1 -1
- package/dist/config/presets.d.ts +1 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/profiles.d.ts +22 -15
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +81 -47
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providerLineups.d.ts +47 -0
- package/dist/config/providerLineups.d.ts.map +1 -0
- package/dist/config/providerLineups.js +137 -0
- package/dist/config/providerLineups.js.map +1 -0
- package/dist/config/reactivity.d.ts +84 -0
- package/dist/config/reactivity.d.ts.map +1 -0
- package/dist/config/reactivity.js +226 -0
- package/dist/config/reactivity.js.map +1 -0
- package/dist/config/servicePacks.d.ts +18 -2
- package/dist/config/servicePacks.d.ts.map +1 -0
- package/dist/config/servicePacks.js +53 -11
- package/dist/config/servicePacks.js.map +1 -1
- package/dist/config/services.d.ts +21 -15
- package/dist/config/services.d.ts.map +1 -0
- package/dist/config/services.js +35 -24
- package/dist/config/services.js.map +1 -1
- package/dist/config/sites.d.ts +6 -4
- package/dist/config/sites.d.ts.map +1 -0
- package/dist/config/sites.js +15 -11
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +129 -30
- package/dist/config/userChannels.d.ts.map +1 -0
- package/dist/config/userChannels.js +333 -68
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +14 -9
- package/dist/config/userConfig.d.ts.map +1 -0
- package/dist/config/userConfig.js +87 -25
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +10 -6
- package/dist/config/userProfiles.d.ts.map +1 -0
- package/dist/config/userProfiles.js +64 -39
- package/dist/config/userProfiles.js.map +1 -1
- package/dist/hdhr/channelMap.d.ts +1 -0
- package/dist/hdhr/channelMap.d.ts.map +1 -0
- package/dist/hdhr/deviceId.d.ts +1 -0
- package/dist/hdhr/deviceId.d.ts.map +1 -0
- package/dist/hdhr/discover.d.ts +1 -0
- package/dist/hdhr/discover.d.ts.map +1 -0
- package/dist/hdhr/discover.js +48 -47
- package/dist/hdhr/discover.js.map +1 -1
- package/dist/hdhr/getHandlers.d.ts +29 -0
- package/dist/hdhr/getHandlers.d.ts.map +1 -0
- package/dist/hdhr/getHandlers.js +196 -0
- package/dist/hdhr/getHandlers.js.map +1 -0
- package/dist/hdhr/identity.d.ts +36 -0
- package/dist/hdhr/identity.d.ts.map +1 -0
- package/dist/hdhr/identity.js +51 -0
- package/dist/hdhr/identity.js.map +1 -0
- package/dist/hdhr/index.d.ts +22 -4
- package/dist/hdhr/index.d.ts.map +1 -0
- package/dist/hdhr/index.js +229 -54
- package/dist/hdhr/index.js.map +1 -1
- package/dist/hdhr/protocol.d.ts +75 -0
- package/dist/hdhr/protocol.d.ts.map +1 -0
- package/dist/hdhr/protocol.js +264 -0
- package/dist/hdhr/protocol.js.map +1 -0
- package/dist/hdhr/tunerState.d.ts +24 -0
- package/dist/hdhr/tunerState.d.ts.map +1 -0
- package/dist/hdhr/tunerState.js +67 -0
- package/dist/hdhr/tunerState.js.map +1 -0
- package/dist/hdhr/udp.d.ts +43 -0
- package/dist/hdhr/udp.d.ts.map +1 -0
- package/dist/hdhr/udp.js +277 -0
- package/dist/hdhr/udp.js.map +1 -0
- package/dist/identity.d.ts +1 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +13 -11
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -12
- package/dist/index.js.map +1 -1
- package/dist/native/codecInference.d.ts +1 -0
- package/dist/native/codecInference.d.ts.map +1 -0
- package/dist/native/codecInference.js +50 -5
- package/dist/native/codecInference.js.map +1 -1
- package/dist/native/decrypt.d.ts +6 -2
- package/dist/native/decrypt.d.ts.map +1 -0
- package/dist/native/decrypt.js +15 -8
- package/dist/native/decrypt.js.map +1 -1
- package/dist/native/index.d.ts +40 -17
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +281 -120
- package/dist/native/index.js.map +1 -1
- package/dist/native/probe.d.ts +114 -18
- package/dist/native/probe.d.ts.map +1 -0
- package/dist/native/probe.js +452 -115
- package/dist/native/probe.js.map +1 -1
- package/dist/native/proxy.d.ts +57 -5
- package/dist/native/proxy.d.ts.map +1 -0
- package/dist/native/proxy.js +604 -170
- package/dist/native/proxy.js.map +1 -1
- package/dist/native/tokenExpiry.d.ts +1 -0
- package/dist/native/tokenExpiry.d.ts.map +1 -0
- package/dist/native/tokenExpiry.js +1 -1
- package/dist/routes/assets.d.ts +1 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +4 -2
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/auth.d.ts +1 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +0 -1
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/cdp.d.ts +5 -5
- package/dist/routes/cdp.d.ts.map +1 -0
- package/dist/routes/cdp.js +59 -20
- package/dist/routes/cdp.js.map +1 -1
- package/dist/routes/channels.d.ts +1 -0
- package/dist/routes/channels.d.ts.map +1 -0
- package/dist/routes/channels.js +2 -1
- package/dist/routes/channels.js.map +1 -1
- package/dist/routes/clientActions.d.ts +98 -0
- package/dist/routes/clientActions.d.ts.map +1 -0
- package/dist/routes/clientActions.js +113 -0
- package/dist/routes/clientActions.js.map +1 -0
- package/dist/routes/components.d.ts +5 -3
- package/dist/routes/components.d.ts.map +1 -0
- package/dist/routes/components.js +36 -39
- package/dist/routes/components.js.map +1 -1
- package/dist/routes/config/channels/endpoints/browse.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/browse.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/browse.js +23 -10
- package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
- package/dist/routes/config/channels/endpoints/bulk.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/bulk.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/bulk.js +5 -3
- package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
- package/dist/routes/config/channels/endpoints/crud.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/crud.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/crud.js +85 -93
- package/dist/routes/config/channels/endpoints/crud.js.map +1 -1
- package/dist/routes/config/channels/endpoints/importExport.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/importExport.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/importExport.js +6 -3
- package/dist/routes/config/channels/endpoints/importExport.js.map +1 -1
- package/dist/routes/config/channels/endpoints/predefined.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/predefined.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/prefs.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/prefs.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/prefs.js +2 -1
- package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
- package/dist/routes/config/channels/endpoints/service.d.ts +2 -1
- package/dist/routes/config/channels/endpoints/service.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/service.js +3 -1
- package/dist/routes/config/channels/endpoints/service.js.map +1 -1
- package/dist/routes/config/channels/endpoints/tags.d.ts +1 -0
- package/dist/routes/config/channels/endpoints/tags.d.ts.map +1 -0
- package/dist/routes/config/channels/endpoints/tags.js +13 -7
- package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
- package/dist/routes/config/channels/healthBridge.d.ts +24 -0
- package/dist/routes/config/channels/healthBridge.d.ts.map +1 -0
- package/dist/routes/config/channels/healthBridge.js +71 -0
- package/dist/routes/config/channels/healthBridge.js.map +1 -0
- package/dist/routes/config/channels/http/handler.d.ts +1 -0
- package/dist/routes/config/channels/http/handler.d.ts.map +1 -0
- package/dist/routes/config/channels/http/playlistHint.d.ts +2 -1
- package/dist/routes/config/channels/http/playlistHint.d.ts.map +1 -0
- package/dist/routes/config/channels/http/playlistHint.js +16 -2
- package/dist/routes/config/channels/http/playlistHint.js.map +1 -1
- package/dist/routes/config/channels/http/serviceWarning.d.ts +4 -2
- package/dist/routes/config/channels/http/serviceWarning.d.ts.map +1 -0
- package/dist/routes/config/channels/http/serviceWarning.js +3 -2
- package/dist/routes/config/channels/http/serviceWarning.js.map +1 -1
- package/dist/routes/config/channels/index.d.ts +1 -0
- package/dist/routes/config/channels/index.d.ts.map +1 -0
- package/dist/routes/config/channels/setup.d.ts +1 -0
- package/dist/routes/config/channels/setup.d.ts.map +1 -0
- package/dist/routes/config/channels/table.d.ts +3 -3
- package/dist/routes/config/channels/table.d.ts.map +1 -0
- package/dist/routes/config/channels/table.js +148 -107
- package/dist/routes/config/channels/table.js.map +1 -1
- package/dist/routes/config/http/envelope.d.ts +1 -0
- package/dist/routes/config/http/envelope.d.ts.map +1 -0
- package/dist/routes/config/index.d.ts +35 -3
- package/dist/routes/config/index.d.ts.map +1 -0
- package/dist/routes/config/index.js +51 -2
- package/dist/routes/config/index.js.map +1 -1
- package/dist/routes/config/services.d.ts +5 -4
- package/dist/routes/config/services.d.ts.map +1 -0
- package/dist/routes/config/services.js +57 -43
- package/dist/routes/config/services.js.map +1 -1
- package/dist/routes/config/settings.d.ts +1 -0
- package/dist/routes/config/settings.d.ts.map +1 -0
- package/dist/routes/config/settings.js +98 -49
- package/dist/routes/config/settings.js.map +1 -1
- package/dist/routes/debug.d.ts +1 -0
- package/dist/routes/debug.d.ts.map +1 -0
- package/dist/routes/debug.js +277 -139
- package/dist/routes/debug.js.map +1 -1
- package/dist/routes/health.d.ts +39 -1
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +33 -27
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/hls.d.ts +1 -0
- package/dist/routes/hls.d.ts.map +1 -0
- package/dist/routes/icons.d.ts +1 -0
- package/dist/routes/icons.d.ts.map +1 -0
- package/dist/routes/icons.js +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/logs.d.ts +1 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +14 -4
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/mpegts.d.ts +1 -0
- package/dist/routes/mpegts.d.ts.map +1 -0
- package/dist/routes/play.d.ts +1 -0
- package/dist/routes/play.d.ts.map +1 -0
- package/dist/routes/playlist.d.ts +1 -0
- package/dist/routes/playlist.d.ts.map +1 -0
- package/dist/routes/playlist.js +7 -2
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/root/content.d.ts +8 -5
- package/dist/routes/root/content.d.ts.map +1 -0
- package/dist/routes/root/content.js +29 -26
- package/dist/routes/root/content.js.map +1 -1
- package/dist/routes/root/index.d.ts +2 -1
- package/dist/routes/root/index.d.ts.map +1 -0
- package/dist/routes/root/index.js +26 -21
- package/dist/routes/root/index.js.map +1 -1
- package/dist/routes/root/scripts/channels.d.ts +6 -0
- package/dist/routes/root/scripts/channels.d.ts.map +1 -0
- package/dist/routes/root/scripts/channels.js +197 -118
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/clientEscape.d.ts +22 -0
- package/dist/routes/root/scripts/clientEscape.d.ts.map +1 -0
- package/dist/routes/root/scripts/clientEscape.js +41 -0
- package/dist/routes/root/scripts/clientEscape.js.map +1 -0
- package/dist/routes/root/scripts/clientUrl.d.ts +23 -0
- package/dist/routes/root/scripts/clientUrl.d.ts.map +1 -0
- package/dist/routes/root/scripts/clientUrl.js +44 -0
- package/dist/routes/root/scripts/clientUrl.js.map +1 -0
- package/dist/routes/root/scripts/config.d.ts +6 -0
- package/dist/routes/root/scripts/config.d.ts.map +1 -0
- package/dist/routes/root/scripts/config.js +110 -24
- package/dist/routes/root/scripts/config.js.map +1 -1
- package/dist/routes/root/scripts/index.d.ts +1 -0
- package/dist/routes/root/scripts/index.d.ts.map +1 -0
- package/dist/routes/root/scripts/shared.d.ts +1 -0
- package/dist/routes/root/scripts/shared.d.ts.map +1 -0
- package/dist/routes/root/scripts/shared.js +112 -26
- package/dist/routes/root/scripts/shared.js.map +1 -1
- package/dist/routes/root/scripts/status.d.ts +1 -0
- package/dist/routes/root/scripts/status.d.ts.map +1 -0
- package/dist/routes/root/scripts/status.handlers.d.ts +23 -33
- package/dist/routes/root/scripts/status.handlers.d.ts.map +1 -0
- package/dist/routes/root/scripts/status.handlers.js +46 -92
- package/dist/routes/root/scripts/status.handlers.js.map +1 -1
- package/dist/routes/root/scripts/status.js +21 -8
- package/dist/routes/root/scripts/status.js.map +1 -1
- package/dist/routes/root/styles.d.ts +1 -0
- package/dist/routes/root/styles.d.ts.map +1 -0
- package/dist/routes/root/styles.js +7 -4
- package/dist/routes/root/styles.js.map +1 -1
- package/dist/routes/services.d.ts +13 -1
- package/dist/routes/services.d.ts.map +1 -0
- package/dist/routes/services.js +81 -68
- package/dist/routes/services.js.map +1 -1
- package/dist/routes/sse.d.ts +1 -0
- package/dist/routes/sse.d.ts.map +1 -0
- package/dist/routes/sse.js +1 -1
- package/dist/routes/sse.js.map +1 -1
- package/dist/routes/streams.d.ts +2 -1
- package/dist/routes/streams.d.ts.map +1 -0
- package/dist/routes/streams.js +6 -4
- package/dist/routes/streams.js.map +1 -1
- package/dist/routes/theme.d.ts +3 -2
- package/dist/routes/theme.d.ts.map +1 -0
- package/dist/routes/theme.js +6 -5
- package/dist/routes/theme.js.map +1 -1
- package/dist/routes/ui.d.ts +3 -1
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +16 -4
- package/dist/routes/ui.js.map +1 -1
- package/dist/routes/upgrade.d.ts +1 -0
- package/dist/routes/upgrade.d.ts.map +1 -0
- package/dist/routes/upgrade.js +6 -2
- package/dist/routes/upgrade.js.map +1 -1
- package/dist/service/commands.context.d.ts +1 -0
- package/dist/service/commands.context.d.ts.map +1 -0
- package/dist/service/commands.context.js +4 -3
- package/dist/service/commands.context.js.map +1 -1
- package/dist/service/commands.d.ts +1 -0
- package/dist/service/commands.d.ts.map +1 -0
- package/dist/service/commands.js +10 -13
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.context.d.ts +1 -0
- package/dist/service/generators.context.d.ts.map +1 -0
- package/dist/service/generators.context.js +1 -1
- package/dist/service/generators.context.js.map +1 -1
- package/dist/service/generators.d.ts +4 -3
- package/dist/service/generators.d.ts.map +1 -0
- package/dist/service/generators.js +111 -31
- package/dist/service/generators.js.map +1 -1
- package/dist/service/index.d.ts +1 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/streaming/captureLock.d.ts +44 -0
- package/dist/streaming/captureLock.d.ts.map +1 -0
- package/dist/streaming/captureLock.js +95 -0
- package/dist/streaming/captureLock.js.map +1 -0
- package/dist/streaming/captureSession.d.ts +31 -0
- package/dist/streaming/captureSession.d.ts.map +1 -0
- package/dist/streaming/captureSession.js +54 -0
- package/dist/streaming/captureSession.js.map +1 -0
- package/dist/streaming/clients.d.ts +1 -0
- package/dist/streaming/clients.d.ts.map +1 -0
- package/dist/streaming/codec.d.ts +1 -0
- package/dist/streaming/codec.d.ts.map +1 -0
- package/dist/streaming/fmp4Segmenter.d.ts +29 -2
- package/dist/streaming/fmp4Segmenter.d.ts.map +1 -0
- package/dist/streaming/fmp4Segmenter.js +79 -26
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.d.ts +18 -7
- package/dist/streaming/hls.d.ts.map +1 -0
- package/dist/streaming/hls.js +220 -120
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +1 -0
- package/dist/streaming/hlsResume.d.ts.map +1 -0
- package/dist/streaming/hlsResume.js +1 -1
- package/dist/streaming/hlsResume.js.map +1 -1
- package/dist/streaming/hlsSegments.d.ts +59 -2
- package/dist/streaming/hlsSegments.d.ts.map +1 -0
- package/dist/streaming/hlsSegments.js +147 -17
- package/dist/streaming/hlsSegments.js.map +1 -1
- package/dist/streaming/lifecycle.d.ts +4 -1
- package/dist/streaming/lifecycle.d.ts.map +1 -0
- package/dist/streaming/lifecycle.js +65 -85
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.d.ts +6 -4
- package/dist/streaming/monitor.d.ts.map +1 -0
- package/dist/streaming/monitor.js +343 -145
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/mp4Parser.d.ts +5 -4
- package/dist/streaming/mp4Parser.d.ts.map +1 -0
- package/dist/streaming/mp4Parser.js +36 -13
- package/dist/streaming/mp4Parser.js.map +1 -1
- package/dist/streaming/mpegts.d.ts +16 -0
- package/dist/streaming/mpegts.d.ts.map +1 -0
- package/dist/streaming/mpegts.js +61 -17
- package/dist/streaming/mpegts.js.map +1 -1
- package/dist/streaming/playlistBuilder.d.ts +1 -0
- package/dist/streaming/playlistBuilder.d.ts.map +1 -0
- package/dist/streaming/preroll.d.ts +32 -5
- package/dist/streaming/preroll.d.ts.map +1 -0
- package/dist/streaming/preroll.js +70 -32
- package/dist/streaming/preroll.js.map +1 -1
- package/dist/streaming/pretune.d.ts +26 -1
- package/dist/streaming/pretune.d.ts.map +1 -0
- package/dist/streaming/pretune.js +22 -24
- package/dist/streaming/pretune.js.map +1 -1
- package/dist/streaming/pretuneTimers.d.ts +24 -0
- package/dist/streaming/pretuneTimers.d.ts.map +1 -0
- package/dist/streaming/pretuneTimers.js +56 -0
- package/dist/streaming/pretuneTimers.js.map +1 -0
- package/dist/streaming/recovery.d.ts +139 -5
- package/dist/streaming/recovery.d.ts.map +1 -0
- package/dist/streaming/recovery.js +160 -16
- package/dist/streaming/recovery.js.map +1 -1
- package/dist/streaming/registry.d.ts +27 -9
- package/dist/streaming/registry.d.ts.map +1 -0
- package/dist/streaming/registry.js +21 -3
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +157 -29
- package/dist/streaming/setup.d.ts.map +1 -0
- package/dist/streaming/setup.js +1034 -458
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.d.ts +21 -1
- package/dist/streaming/showInfo.d.ts.map +1 -0
- package/dist/streaming/showInfo.js +31 -16
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +10 -10
- package/dist/streaming/statusEmitter.d.ts.map +1 -0
- package/dist/streaming/statusEmitter.js +5 -8
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +16 -4
- package/dist/types/channels.d.ts.map +1 -0
- package/dist/types/channels.js +4 -2
- package/dist/types/channels.js.map +1 -1
- package/dist/types/config.d.ts +16 -5
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/profiles.d.ts +6 -4
- package/dist/types/profiles.d.ts.map +1 -0
- package/dist/types/selection.d.ts +31 -3
- package/dist/types/selection.d.ts.map +1 -0
- package/dist/types/selection.js +4 -2
- package/dist/types/selection.js.map +1 -1
- package/dist/types/shared.d.ts +1 -0
- package/dist/types/shared.d.ts.map +1 -0
- package/dist/types/streaming.d.ts +8 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/upgrade/commands.context.d.ts +1 -0
- package/dist/upgrade/commands.context.d.ts.map +1 -0
- package/dist/upgrade/commands.context.js +14 -10
- package/dist/upgrade/commands.context.js.map +1 -1
- package/dist/upgrade/commands.d.ts +8 -15
- package/dist/upgrade/commands.d.ts.map +1 -0
- package/dist/upgrade/commands.js +27 -28
- package/dist/upgrade/commands.js.map +1 -1
- package/dist/upgrade/detection.context.d.ts +1 -0
- package/dist/upgrade/detection.context.d.ts.map +1 -0
- package/dist/upgrade/detection.context.js +4 -1
- package/dist/upgrade/detection.context.js.map +1 -1
- package/dist/upgrade/detection.d.ts +9 -7
- package/dist/upgrade/detection.d.ts.map +1 -0
- package/dist/upgrade/detection.js +23 -54
- package/dist/upgrade/detection.js.map +1 -1
- package/dist/upgrade/index.d.ts +2 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +1 -0
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/lifecycle.context.d.ts +20 -0
- package/dist/upgrade/lifecycle.context.d.ts.map +1 -0
- package/dist/upgrade/lifecycle.context.js +47 -0
- package/dist/upgrade/lifecycle.context.js.map +1 -0
- package/dist/upgrade/lifecycle.d.ts +72 -0
- package/dist/upgrade/lifecycle.d.ts.map +1 -0
- package/dist/upgrade/lifecycle.js +175 -0
- package/dist/upgrade/lifecycle.js.map +1 -0
- package/dist/upgrade/pathHandle.d.ts +30 -0
- package/dist/upgrade/pathHandle.d.ts.map +1 -0
- package/dist/upgrade/pathHandle.js +102 -0
- package/dist/upgrade/pathHandle.js.map +1 -0
- package/dist/utils/bootSession.context.d.ts +16 -0
- package/dist/utils/bootSession.context.d.ts.map +1 -0
- package/dist/utils/bootSession.context.js +60 -0
- package/dist/utils/bootSession.context.js.map +1 -0
- package/dist/utils/bootSession.d.ts +17 -0
- package/dist/utils/bootSession.d.ts.map +1 -0
- package/dist/utils/bootSession.js +20 -0
- package/dist/utils/bootSession.js.map +1 -0
- package/dist/utils/chromeFetch.d.ts +1 -0
- package/dist/utils/chromeFetch.d.ts.map +1 -0
- package/dist/utils/cliOutput.d.ts +1 -0
- package/dist/utils/cliOutput.d.ts.map +1 -0
- package/dist/utils/clock.d.ts +5 -4
- package/dist/utils/clock.d.ts.map +1 -0
- package/dist/utils/clock.js +19 -16
- package/dist/utils/clock.js.map +1 -1
- package/dist/utils/debugFilter.d.ts +9 -1
- package/dist/utils/debugFilter.d.ts.map +1 -0
- package/dist/utils/debugFilter.js +60 -33
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/delay.d.ts +48 -15
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +73 -20
- package/dist/utils/delay.js.map +1 -1
- package/dist/utils/errors.d.ts +32 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +45 -4
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/evaluate.d.ts +1 -0
- package/dist/utils/evaluate.d.ts.map +1 -0
- package/dist/utils/evaluate.js +29 -23
- package/dist/utils/evaluate.js.map +1 -1
- package/dist/utils/ffmpeg.context.d.ts +1 -0
- package/dist/utils/ffmpeg.context.d.ts.map +1 -0
- package/dist/utils/ffmpeg.context.js.map +1 -1
- package/dist/utils/ffmpeg.d.ts +29 -7
- package/dist/utils/ffmpeg.d.ts.map +1 -0
- package/dist/utils/ffmpeg.js +32 -14
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/fileLogger.d.ts +3 -1
- package/dist/utils/fileLogger.d.ts.map +1 -0
- package/dist/utils/fileLogger.js +64 -29
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/format.d.ts +14 -1
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +19 -5
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logEmitter.d.ts +1 -0
- package/dist/utils/logEmitter.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +10 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/m3u.d.ts +3 -2
- package/dist/utils/m3u.d.ts.map +1 -0
- package/dist/utils/m3u.js +4 -3
- package/dist/utils/m3u.js.map +1 -1
- package/dist/utils/markup.d.ts +13 -1
- package/dist/utils/markup.d.ts.map +1 -0
- package/dist/utils/markup.js +28 -4
- package/dist/utils/markup.js.map +1 -1
- package/dist/utils/memo.d.ts +3 -2
- package/dist/utils/memo.d.ts.map +1 -0
- package/dist/utils/memo.js +3 -3
- package/dist/utils/morganStream.d.ts +1 -0
- package/dist/utils/morganStream.d.ts.map +1 -0
- package/dist/utils/network.d.ts +1 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +2 -2
- package/dist/utils/pid.d.ts +3 -25
- package/dist/utils/pid.d.ts.map +1 -0
- package/dist/utils/pid.js +10 -49
- package/dist/utils/pid.js.map +1 -1
- package/dist/utils/platform.d.ts +3 -1
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +2 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/processInspector.context.d.ts +8 -0
- package/dist/utils/processInspector.context.d.ts.map +1 -0
- package/dist/utils/processInspector.context.js +106 -0
- package/dist/utils/processInspector.context.js.map +1 -0
- package/dist/utils/processInspector.d.ts +55 -0
- package/dist/utils/processInspector.d.ts.map +1 -0
- package/dist/utils/processInspector.js +127 -0
- package/dist/utils/processInspector.js.map +1 -0
- package/dist/utils/retry.d.ts +25 -2
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +33 -6
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/runtimeIdentity.context.d.ts +7 -0
- package/dist/utils/runtimeIdentity.context.d.ts.map +1 -0
- package/dist/utils/runtimeIdentity.context.js +43 -0
- package/dist/utils/runtimeIdentity.context.js.map +1 -0
- package/dist/utils/runtimeIdentity.d.ts +98 -0
- package/dist/utils/runtimeIdentity.d.ts.map +1 -0
- package/dist/utils/runtimeIdentity.js +181 -0
- package/dist/utils/runtimeIdentity.js.map +1 -0
- package/dist/utils/sanitize.d.ts +1 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/streamContext.d.ts +2 -1
- package/dist/utils/streamContext.d.ts.map +1 -0
- package/dist/utils/streamContext.js +1 -1
- package/dist/utils/timing.d.ts +2 -1
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/timing.js +0 -5
- package/dist/utils/timing.js.map +1 -1
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +47 -13
- package/dist/utils/version.js.map +1 -1
- package/package.json +26 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/service/generators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/service/generators.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,IAAI,MAAM,WAAW,CAAC;AAkH7B;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,GAA2B;IAEjF,IAAI,CAAC;QAEH,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,IAAG,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;YAE7B,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAI,KAA8B,CAAC,MAAM,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7G,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,OAAyC;IAEjE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,UAAU,CAAC,EAAe,EAAE,QAAgB;IAEzD,IAAI,CAAC;QAEH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AAEH;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,EAAe;IAE7C;;;;OAIG;IACH,SAAS,aAAa,CAAC,UAA6B;QAElD,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC;aACpD,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,CAAE,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,WAAW,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpI,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;YACL,4CAA4C;YAC5C,4GAA4G;YAC5G,yBAAyB;YACzB,QAAQ;YACR,oBAAoB;YACpB,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,WAAW;YAClD,EAAE;YACF,+BAA+B;YAC/B,WAAW;YACX,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,WAAW;YAC7D,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,WAAW;YAC/D,YAAY;YACZ,EAAE;YACF,+BAA+B;YAC/B,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,WAAW;YAC7D,EAAE;YACF,mCAAmC;YACnC,UAAU;YACV,UAAU;YACV,WAAW;YACX,EAAE;YACF,wBAAwB;YACxB,WAAW;YACX,EAAE;YACF,wBAAwB;YACxB,WAAW;YACX,EAAE;YACF,8BAA8B;YAC9B,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,GAAG,WAAW;YAC3F,EAAE;YACF,gCAAgC;YAChC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,GAAG,WAAW;YAC3F,SAAS;YACT,UAAU;YACV,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO;QAEL,KAAK,CAAC,OAAO,CAAC,UAA6B;YAEzC,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAEhD,4BAA4B;YAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAExD,mBAAmB;YACnB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YAE3D,2IAA2I;YAC3I,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBAEP,IAAI,CAAC;oBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,WAAW,CAAE,CAAC,CAAC;gBAC5D,CAAC;gBAAC,MAAM,CAAC;oBAEP,wBAAwB;gBAC1B,CAAC;gBAED,MAAM,mBAAmB,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC,CAAC;YAC1H,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YAEf,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,CAAC,SAAS;YAEb,IAAI,CAAC;gBAEH,wJAAwJ;gBACxJ,wDAAwD;gBACxD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAExE,IAAG,CAAC,IAAI,EAAE,CAAC;oBAET,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBAEP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,QAAQ;QAElB,cAAc,EAAE,SAAS;QAEzB,KAAK,CAAC,KAAK;YAET,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAE5C,yJAAyJ;YACzJ,iFAAiF;YACjF,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,WAAW,CAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBAEP,8BAA8B;YAChC,CAAC;YAED,MAAM,mBAAmB,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC,CAAC;YACxH,MAAM,mBAAmB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,OAAO,EAAE,UAAU,CAAE,CAAC,CAAC,CAAC;QACrH,CAAC;QAED,KAAK,CAAC,IAAI;YAER,MAAM,mBAAmB,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,EAAE,CAAC,kBAAkB,EAAE,CAAE,CAAC,CAAC,CAAC;QACpI,CAAC;QAED,KAAK,CAAC,SAAS;YAEb,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAE5C,4BAA4B;YAC5B,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,WAAW,CAAE,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBAEP,+CAA+C;YACjD,CAAC;YAED,yBAAyB;YACzB,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAa;IAEnC;;;OAGG;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;IAEzJ,OAAO,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,SAAiB;IAE7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAE/B,oEAAoE;QACpE,IAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAEnC,KAAK,EAAE,CAAC;YAER,SAAS;QACX,CAAC;QAED,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAEpC,KAAK,EAAE,CAAC;YAER;;;eAGG;YACH,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,OAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;gBAE/B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE1C,IAAG,SAAS,KAAK,IAAI,EAAE,CAAC;oBAEtB,MAAM,GAAG,IAAI,CAAC;oBACd,KAAK,EAAE,CAAC;oBAER,MAAM;gBACR,CAAC;gBAED,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAEzC,IAAG,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;oBAEhE,KAAK,IAAI,IAAI,CAAC;oBACd,KAAK,IAAI,CAAC,CAAC;oBAEX,SAAS;gBACX,CAAC;gBAED,IAAG,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;oBAExE,KAAK,IAAI,SAAS,CAAC;oBACnB,KAAK,IAAI,CAAC,CAAC;oBAEX,SAAS;gBACX,CAAC;gBAED,KAAK,IAAI,SAAS,CAAC;gBACnB,KAAK,EAAE,CAAC;YACV,CAAC;YAED,+FAA+F;YAC/F,IAAG,CAAC,MAAM,EAAE,CAAC;gBAEX,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YAEN,wCAAwC;YACxC,OAAM,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAEtE,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjC,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,CAAE,QAAQ,EAAE,UAAU,CAAE,GAAG,MAAM,CAAC;IAExC;;;OAGG;IACH,IAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QAErD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,EAAe;IAE7C;;;;OAIG;IACH,SAAS,YAAY,CAAC,UAA6B;QAEjD,4JAA4J;QAC5J,qJAAqJ;QACrJ,uGAAuG;QACvG,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,gBAAgB,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtI,OAAO;YACL,QAAQ;YACR,cAAc,GAAG,YAAY,GAAG,mBAAmB;YACnD,sBAAsB;YACtB,EAAE;YACF,WAAW;YACX,aAAa;YACb,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;YAChG,mBAAmB,GAAG,UAAU,CAAC,UAAU;YAC3C,gBAAgB;YAChB,cAAc;YACd,QAAQ;YACR,EAAE;YACF,WAAW;YACX,yBAAyB;YACzB,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO;QAEL,KAAK,CAAC,OAAO,CAAC,UAA6B;YAEzC,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAEhD,4BAA4B;YAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAExD,uBAAuB;YACvB,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;YAE1D,+CAA+C;YAC/C,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,eAAe,CAAE,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBAEP,6EAA6E;YAC/E,CAAC;YAED;;;eAGG;YACH,MAAM,mBAAmB,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAE,CAAC,CAAC,CAAC;YACxI,MAAM,mBAAmB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAE,CAAC,CAAC,CAAC;QAC5I,CAAC;QAED,KAAK,CAAC,WAAW;YAEf,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,CAAC,SAAS;YAEb,IAAI,CAAC;gBAEH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAE,CAAC,CAAC;gBAElG,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBAEP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,OAAO;QAEjB,cAAc,EAAE,SAAS;QAEzB,KAAK,CAAC,KAAK;YAET,MAAM,mBAAmB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAE,CAAC,CAAC,CAAC;QACxI,CAAC;QAED,KAAK,CAAC,IAAI;YAER,MAAM,mBAAmB,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAE,CAAC,CAAC,CAAC;QACtI,CAAC;QAED,KAAK,CAAC,SAAS;YAEb,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAE5C,gCAAgC;YAChC,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAE,CAAC,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBAEP,yBAAyB;YAC3B,CAAC;YAED,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,MAAM,CAAC;gBAEP,yBAAyB;YAC3B,CAAC;YAED,wBAAwB;YACxB,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,kBAAkB;YAClB,IAAI,CAAC;gBAEH,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAE,QAAQ,EAAE,eAAe,CAAE,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBAEP,UAAU;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,KAAa;IAEjD,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAa;IAEtC,OAAO,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,qBAAqB,CAAC,EAAe;IAE5C,OAAO,KAAK,EAAE,UAAkB,EAAE,OAAiB,EAAE,EAAiB,EAAE;QAEtE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;QAEzD,MAAM,mBAAmB,CAAC,8BAA8B,EACtD,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAE,CAAC,CAAC,CAAC;IACvI,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,uBAAuB,GAAG;IAC9B,6BAA6B;IAC7B,iFAAiF;IACjF,iBAAiB;IACjB,mFAAmF;IACnF,yCAAyC;IACzC,qCAAqC;IACrC,0FAA0F;IAC1F,iEAAiE;IACjE,mCAAmC;IACnC,KAAK;IACL,GAAG;IACH,kDAAkD;IAClD,iFAAiF;IACjF,iHAAiH;IACjH,gFAAgF;IAChF,4DAA4D;IAC5D,8IAA8I;QAC5I,yFAAyF;IAC3F,kGAAkG;IAClG,0IAA0I;CAC3I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;GACG;AACH,MAAM,yBAAyB,GAAG;IAChC,kBAAkB;IAClB,uGAAuG;CACxG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;GACG;AACH,MAAM,oBAAoB,GAAG;IAC3B,kBAAkB;IAClB,mFAAmF;IACnF,oDAAoD;CACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,kBAAkB;IAClB,oFAAoF;IACpF,iFAAiF;CAClF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;GACG;AACH,MAAM,2BAA2B,GAAG;IAClC,kBAAkB;IAClB,oGAAoG;CACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;GACG;AACH,MAAM,yBAAyB,GAAG;IAChC,kBAAkB;IAClB,6EAA6E;IAC7E,uEAAuE;CACxE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;GAIG;AACH,SAAS,+BAA+B,CAAC,EAAe;IAEtD,MAAM,QAAQ,GAAG,YAAY,CAAC;IAC9B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAEnD;;;;;;;;;;;;;OAaG;IACH,SAAS,gBAAgB,CAAC,UAA6B;QAErD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,EAAE,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhI,8JAA8J;QAC9J,mDAAmD;QACnD,MAAM,YAAY,GAAG,KAAK,GAAG,4BAA4B,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAEzF,6JAA6J;QAC7J,6GAA6G;QAC7G,OAAO,QAAQ,GAAG;YAChB,+BAA+B;YAC/B,GAAG;YACH,qJAAqJ;YACrJ,GAAG;YACH,iJAAiJ;YACjJ,UAAU,GAAG,UAAU,CAAC,QAAQ;YAChC,WAAW,GAAG,UAAU,CAAC,UAAU;YACnC,EAAE;YACF,kDAAkD;YAClD,GAAG,QAAQ;YACX,EAAE;YACF,8JAA8J;YAC9J,+JAA+J;YAC/J,6JAA6J;YAC7J,gKAAgK;YAChK,iBAAiB;YACjB,mBAAmB,GAAG,YAAY;YAClC,eAAe,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACxD,oBAAoB;YACpB,4BAA4B,GAAG,iBAAiB,CAAC,SAAS,CAAC;YAC3D,6BAA6B,GAAG,iBAAiB,CAAC,SAAS,CAAC;YAC5D,gBAAgB;YAChB,0BAA0B;YAC1B,uBAAuB,GAAG,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC;YAClE,GAAG;YACH,EAAE;YACF,qCAAqC;YACrC,wBAAwB;YACxB,EAAE;SACH,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,4BAA4B,CAAC,UAAkB;QAE5D,MAAM,WAAW,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,0BAA0B,CAAC;SAClD,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO;QAEL,KAAK,CAAC,OAAO,CAAC,UAA6B;YAEzC,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAEhD,4BAA4B;YAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAExD,iHAAiH;YACjH,MAAM,4BAA4B,CAAC,UAAU,CAAC,CAAC;YAE/C,+FAA+F;YAC/F,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;YAE/D,iGAAiG;YACjG,MAAM,gBAAgB,CAAC,uBAAuB,EAAE,CAAE,QAAQ,EAAE,YAAY,CAAE,CAAC,CAAC;YAE5E,+EAA+E;YAC/E,IAAI,CAAC;gBAEH,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3D,CAAC;YAAC,MAAM,CAAC;gBAEP,oFAAoF;YACtF,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW;YAEf,IAAI,CAAC;gBAEH,MAAM,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEhE,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBAEP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK,CAAC,SAAS;YAEb,IAAI,CAAC;gBAEH,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAE9D,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBAEP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,QAAQ,EAAE,SAAS;QAEnB,cAAc,EAAE,mBAAmB;QAEnC,KAAK,CAAC,KAAK;YAET,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,KAAK,CAAC,IAAI;YAER,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,SAAS;YAEb,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAEhD,2GAA2G;YAC3G,IAAI,CAAC;gBAEH,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBAEP,+BAA+B;YACjC,CAAC;YAED,yDAAyD;YACzD,MAAM,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,4BAA4B,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC;AA6BD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAkB,wBAAwB,EAAE;IAE1E,MAAM,QAAQ,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAEzC,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAe,CAAC;IAEpB,IAAI,CAAC;QAEH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAExB,gKAAgK;QAChK,2JAA2J;QAC3J,KAAK,QAAQ,CAAC,CAAC,CAAC;YAEd,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YAExE,IAAG,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAE3B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAE,QAAQ,EAAE,UAAU,CAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;iBAC7D,QAAQ,CAAC,4BAA4B,CAAC;iBACtC,IAAI,CAAC,CAAC,CAAC;iBACP,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACxB,OAAO,EAAE,CAAC;YAEb,IAAG,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAE5B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAClC,CAAC;QAED,uJAAuJ;QACvJ,qBAAqB;QACrB,KAAK,OAAO,CAAC,CAAC,CAAC;YAEb,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEzD,IAAG,CAAC,SAAS,EAAE,CAAC;gBAEd,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,wJAAwJ;QACxJ,uDAAuD;QACvD,KAAK,SAAS,CAAC,CAAC,CAAC;YAEf,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAEhE,IAAG,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAE5B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YAER,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB,wBAAwB,EAAE;IAE3E,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IAElC,IAAG,CAAC,KAAK,EAAE,CAAC;QAEV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEpD,OAAO;QAEL,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAChD,KAAK,EAAE,SAAS,IAAI,UAAU;KAC/B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB,wBAAwB,EAAE;IAE9E,QAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAExB,KAAK,QAAQ,CAAC,CAAC,CAAC;YAEd,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YAEb,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YAEf,OAAO,+BAA+B,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YAER,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAE,oBAAoB,EAAE,iBAAiB,CAAW,CAAC;AAEhF;;;;;GAKG;AACH,SAAS,0BAA0B;IAEjC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAEhI,OAAO,CAAE,GAAG,YAAY,EAAE,GAAG,kBAAkB,CAAE,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IAEvC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,+JAA+J;IAC/J,kEAAkE;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpC,IAAG,OAAO,EAAE,CAAC;QAEX,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,KAAI,MAAM,GAAG,IAAI,0BAA0B,EAAE,EAAE,CAAC;QAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAG,KAAK,KAAK,SAAS,EAAE,CAAC;YAEvB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IAEpC,MAAM,OAAO,GAA2B,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,yBAAyB,EAAE,EAAE,CAAC;IAEnG,OAAO;QAEL,UAAU,EAAE,sBAAsB,EAAE;QACpC,OAAO;QACP,OAAO,EAAE,gBAAgB,EAAE;QAC3B,QAAQ,EAAE,qBAAqB,EAAE;QACjC,UAAU,EAAE,4BAA4B,EAAE;KAC3C,CAAC;AACJ,CAAC"}
|
package/dist/service/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Clock } from "../utils/index.ts";
|
|
2
|
+
export declare class CaptureTurnTimeoutError extends Error {
|
|
3
|
+
constructor();
|
|
4
|
+
}
|
|
5
|
+
export declare class CaptureDeadlineError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class CaptureAbandonedError extends Error {
|
|
9
|
+
constructor();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Construction options for the capture lock. The clock is injected so tests drive time deterministically; the wedge-derivation policy is fixed for the lock's
|
|
13
|
+
* lifetime because it encodes an operational safety bound rather than a per-task choice.
|
|
14
|
+
*/
|
|
15
|
+
export interface CaptureLockOptions {
|
|
16
|
+
readonly clock?: Clock;
|
|
17
|
+
readonly wedgeFloorMs: number;
|
|
18
|
+
readonly wedgeMarginMs: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Per-call options for a single run() invocation. Every timing bound is supplied here rather than captured at construction, because the production lock is built
|
|
22
|
+
* before configuration is available and configuration can change mid-process.
|
|
23
|
+
*/
|
|
24
|
+
export interface CaptureRunOptions {
|
|
25
|
+
readonly deadlineMessage: string;
|
|
26
|
+
readonly deadlineMs: number;
|
|
27
|
+
readonly onWedge?: () => void;
|
|
28
|
+
readonly turnWaitMs: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The capture lock's public surface: a single run() method that serializes the supplied task against every other task on this lock.
|
|
32
|
+
*/
|
|
33
|
+
export interface CaptureLock {
|
|
34
|
+
readonly run: <T>(task: (signal: AbortSignal) => Promise<T>, options: CaptureRunOptions) => Promise<T>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates a capture lock. The returned lock serializes every task passed to run(): no task begins while another runs, and the turn releases only when the running
|
|
38
|
+
* task's promise settles. A wedged task (one that holds its turn past the derived wedge bound without settling) invokes its onWedge callback once, so the call site
|
|
39
|
+
* can route it into recovery, but the turn still releases only on true settlement.
|
|
40
|
+
* @param options - The injected clock and the wedge-derivation policy.
|
|
41
|
+
* @returns A capture lock.
|
|
42
|
+
*/
|
|
43
|
+
export declare function createCaptureLock(options: CaptureLockOptions): CaptureLock;
|
|
44
|
+
//# sourceMappingURL=captureLock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureLock.d.ts","sourceRoot":"","sources":["../../src/streaming/captureLock.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,qBAAa,uBAAwB,SAAQ,KAAK;;CAOjD;AAID,qBAAa,oBAAqB,SAAQ,KAAK;gBAE1B,OAAO,EAAE,MAAM;CAKnC;AAKD,qBAAa,qBAAsB,SAAQ,KAAK;;CAO/C;AAID;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAGjC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAIvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAGhC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAIjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAI5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAI9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAK1B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACxG;AAID;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAgF1E"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { realClock } from "../utils/index.js";
|
|
2
|
+
// Error classes. The messages of the turn-timeout and deadline errors are part of the compatibility contract: isCaptureInfrastructureError (recovery.ts) classifies
|
|
3
|
+
// by substring, so callers rely on the exact text. Each class carries its narrative comment above it.
|
|
4
|
+
// Raised when a waiter's turn-wait bound elapses before its predecessor settles. The message is fixed here so both the primitive and its pin test read from one
|
|
5
|
+
// place; "queue" remains accurate vocabulary because the lock still maintains a FIFO of waiting turns.
|
|
6
|
+
export class CaptureTurnTimeoutError extends Error {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("Capture queue wait timed out.");
|
|
9
|
+
this.name = "CaptureTurnTimeoutError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
// Raised when a task holds its turn past the caller-supplied deadline. The message is supplied per call site (CaptureRunOptions.deadlineMessage) because the stream
|
|
13
|
+
// path and the probe path surface different, individually-pinned strings, both of which must keep matching the capture-infrastructure classifier.
|
|
14
|
+
export class CaptureDeadlineError extends Error {
|
|
15
|
+
constructor(message) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.name = "CaptureDeadlineError";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Thrown by a task after it retires a resource it produced once the caller had already abandoned the turn (the deadline fired). Rejecting rather than resolving with
|
|
21
|
+
// the retired resource guarantees no code path can mistake a torn-down capture stream for a usable one. This rejection never reaches the caller - the caller already
|
|
22
|
+
// settled on the deadline error - so it is a purely internal settlement signal that releases the turn.
|
|
23
|
+
export class CaptureAbandonedError extends Error {
|
|
24
|
+
constructor() {
|
|
25
|
+
super("Capture stream retired after the caller abandoned its turn.");
|
|
26
|
+
this.name = "CaptureAbandonedError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Factory.
|
|
30
|
+
/**
|
|
31
|
+
* Creates a capture lock. The returned lock serializes every task passed to run(): no task begins while another runs, and the turn releases only when the running
|
|
32
|
+
* task's promise settles. A wedged task (one that holds its turn past the derived wedge bound without settling) invokes its onWedge callback once, so the call site
|
|
33
|
+
* can route it into recovery, but the turn still releases only on true settlement.
|
|
34
|
+
* @param options - The injected clock and the wedge-derivation policy.
|
|
35
|
+
* @returns A capture lock.
|
|
36
|
+
*/
|
|
37
|
+
export function createCaptureLock(options) {
|
|
38
|
+
const { clock = realClock, wedgeFloorMs, wedgeMarginMs } = options;
|
|
39
|
+
// The FIFO tail. Each run() call reads this as its predecessor and replaces it with its own settlement promise, synchronously, before any await. The first call
|
|
40
|
+
// sees an already-resolved predecessor and is granted its turn immediately.
|
|
41
|
+
let tail = Promise.resolve();
|
|
42
|
+
const run = async (task, runOptions) => {
|
|
43
|
+
// Derive the wedge bound from this call's own deadline so it is always strictly later than the caller-visible deadline. No separate deadline-versus-wedge
|
|
44
|
+
// validation is possible to mis-wire because the derivation guarantees the ordering.
|
|
45
|
+
const wedgeBoundMs = Math.max(wedgeFloorMs, runOptions.deadlineMs + wedgeMarginMs);
|
|
46
|
+
// Link this node into the FIFO synchronously, before any await, so concurrent run() calls establish a deterministic order: our predecessor is whatever tail was,
|
|
47
|
+
// and our own settlement becomes the new tail for the next caller to wait on.
|
|
48
|
+
const predecessor = tail;
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- Standard pattern for signal promises.
|
|
50
|
+
const { promise: settled, resolve: signalSettled } = Promise.withResolvers();
|
|
51
|
+
tail = settled;
|
|
52
|
+
// Turn-wait phase: wait for the predecessor to settle, bounded by the caller's turn-wait. On timeout, forward our settlement to the predecessor's own settlement
|
|
53
|
+
// so a later caller still cannot begin until the running operation actually settles, then reject the waiter. Forwarding (rather than resolving our node directly)
|
|
54
|
+
// is what keeps a give-up from advancing the chain past an unsettled predecessor.
|
|
55
|
+
try {
|
|
56
|
+
await clock.waitWithTimeout(predecessor, runOptions.turnWaitMs, new CaptureTurnTimeoutError());
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
void predecessor.then(signalSettled, signalSettled);
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
// Turn granted. From here the turn is held until the task's promise settles, whatever the caller does.
|
|
63
|
+
const controller = new AbortController();
|
|
64
|
+
const work = task(controller.signal);
|
|
65
|
+
// Track settlement independently of the caller-facing deadline wait below. This single subscription both releases the turn when the task truly settles and
|
|
66
|
+
// deliberately consumes a late rejection, so an abandoned task (whose caller already moved on) never surfaces an unhandled rejection. Attaching both callbacks is
|
|
67
|
+
// required: the bounded wait in the deadline path already observes the work's rejection, and a fulfillment-only handler here would create unhandled-rejection noise.
|
|
68
|
+
let workSettled = false;
|
|
69
|
+
const markSettled = () => {
|
|
70
|
+
workSettled = true;
|
|
71
|
+
signalSettled();
|
|
72
|
+
};
|
|
73
|
+
void work.then(markSettled, markSettled);
|
|
74
|
+
// Arm the wedge as a flag-guarded sleep rather than a cancellable timer: if the task has not settled by the derived bound, invoke onWedge once. A late wakeup
|
|
75
|
+
// after the task already settled is a cheap no-op, so no timer handle or cancellation bookkeeping is needed. The wedge only signals; it never releases the turn.
|
|
76
|
+
void clock.sleep(wedgeBoundMs).then(() => {
|
|
77
|
+
if (!workSettled) {
|
|
78
|
+
runOptions.onWedge?.();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
// Deadline phase: the caller waits up to its task deadline for the work to settle. If the deadline wins, abort the signal - letting a task that later produces a
|
|
82
|
+
// resource retire it - and reject the caller. The turn is NOT released here; the settlement subscription above keeps holding it until the work truly settles.
|
|
83
|
+
try {
|
|
84
|
+
return await clock.waitWithTimeout(work, runOptions.deadlineMs, new CaptureDeadlineError(runOptions.deadlineMessage));
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof CaptureDeadlineError) {
|
|
88
|
+
controller.abort();
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
return { run };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=captureLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureLock.js","sourceRoot":"","sources":["../../src/streaming/captureLock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FFmpegProcess } from "../utils/index.ts";
|
|
2
|
+
import type { FMP4SegmenterResult } from "./fmp4Segmenter.ts";
|
|
3
|
+
import type { Nullable } from "../types/index.ts";
|
|
4
|
+
import type { Readable } from "node:stream";
|
|
5
|
+
/**
|
|
6
|
+
* The composite handle owning a capture-mode stream's pipeline resources. Implements the project's dispose() convention and TC39 Symbol.dispose so owners may tear
|
|
7
|
+
* the pipeline down explicitly (terminateStream, tab replacement, the native upgrade) or via a scope-bound "using" declaration during setup. The segmenter is
|
|
8
|
+
* attached after construction because it is created one phase later than the capture stream and FFmpeg child (see attachSegmenter).
|
|
9
|
+
*/
|
|
10
|
+
export interface CaptureSession extends Disposable {
|
|
11
|
+
readonly attachSegmenter: (segmenter: FMP4SegmenterResult) => void;
|
|
12
|
+
readonly disposed: boolean;
|
|
13
|
+
readonly dispose: () => void;
|
|
14
|
+
readonly segmenter: Nullable<FMP4SegmenterResult>;
|
|
15
|
+
readonly [Symbol.dispose]: () => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for createCaptureSession. The segmenter is intentionally absent: it is created in a later phase and wired via the returned handle's attachSegmenter().
|
|
19
|
+
*/
|
|
20
|
+
export interface CreateCaptureSessionOptions {
|
|
21
|
+
readonly ffmpegProcess: Nullable<FFmpegProcess>;
|
|
22
|
+
readonly rawCaptureStream: Readable;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates a CaptureSession over an already-acquired capture stream and optional FFmpeg child. The pipeline output - the stream the segmenter will consume - is
|
|
26
|
+
* derived here: FFmpeg's stdout when transcoding, otherwise the raw capture stream itself.
|
|
27
|
+
* @param options - The capture stream and optional FFmpeg child to own.
|
|
28
|
+
* @returns A CaptureSession handle.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createCaptureSession(options: CreateCaptureSessionOptions): CaptureSession;
|
|
31
|
+
//# sourceMappingURL=captureSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureSession.d.ts","sourceRoot":"","sources":["../../src/streaming/captureSession.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAKhD,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAGnE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAG3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAK7B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAIlD,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAG1C,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAGhD,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;CACrC;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,cAAc,CAmEzF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { LOG } from "../utils/index.js";
|
|
2
|
+
// Factory.
|
|
3
|
+
/**
|
|
4
|
+
* Creates a CaptureSession over an already-acquired capture stream and optional FFmpeg child. The pipeline output - the stream the segmenter will consume - is
|
|
5
|
+
* derived here: FFmpeg's stdout when transcoding, otherwise the raw capture stream itself.
|
|
6
|
+
* @param options - The capture stream and optional FFmpeg child to own.
|
|
7
|
+
* @returns A CaptureSession handle.
|
|
8
|
+
*/
|
|
9
|
+
export function createCaptureSession(options) {
|
|
10
|
+
const { ffmpegProcess, rawCaptureStream } = options;
|
|
11
|
+
// The pipeline output the segmenter consumes. In FFmpeg mode this is FFmpeg's fMP4 stdout; in native-fMP4 mode the raw capture stream is already fMP4 and is its
|
|
12
|
+
// own output. Computed once because both handles are stable for the session's lifetime.
|
|
13
|
+
const outputStream = ffmpegProcess?.stdout ?? rawCaptureStream;
|
|
14
|
+
let disposed = false;
|
|
15
|
+
let segmenter = null;
|
|
16
|
+
const attachSegmenter = (incoming) => {
|
|
17
|
+
// The stream was terminated before the segmenter could be wired (a rare mid-setup race). Stop the orphan rather than piping it into a pipeline that has already
|
|
18
|
+
// been torn down; the debug breadcrumb keeps this rare race observable. This is the single home for that cleanup, so callers never replicate it.
|
|
19
|
+
if (disposed) {
|
|
20
|
+
LOG.debug("streaming:setup", "Segmenter attached to an already-disposed capture session; stopping the orphan.");
|
|
21
|
+
incoming.stop();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
segmenter = incoming;
|
|
25
|
+
// Pipe the pipeline output into the segmenter. The segmenter attaches its own data/end/error listeners to the output stream.
|
|
26
|
+
incoming.pipe(outputStream);
|
|
27
|
+
};
|
|
28
|
+
const dispose = () => {
|
|
29
|
+
if (disposed) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
disposed = true;
|
|
33
|
+
// Step 1: kill FFmpeg first so its shuttingDown flag is set before the capture stream's EOF can reach its stdin. See the module header for why the order matters.
|
|
34
|
+
ffmpegProcess?.kill();
|
|
35
|
+
// Step 2: destroy the raw capture stream to fire STOP_RECORDING while the browser is still connected and to carry EOF down the pipeline.
|
|
36
|
+
if (!rawCaptureStream.destroyed) {
|
|
37
|
+
rawCaptureStream.destroy();
|
|
38
|
+
}
|
|
39
|
+
// Step 3: stop the segmenter, whose input pipeline has now ended.
|
|
40
|
+
segmenter?.stop();
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
attachSegmenter,
|
|
44
|
+
dispose,
|
|
45
|
+
[Symbol.dispose]: dispose,
|
|
46
|
+
get disposed() {
|
|
47
|
+
return disposed;
|
|
48
|
+
},
|
|
49
|
+
get segmenter() {
|
|
50
|
+
return segmenter;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=captureSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureSession.js","sourceRoot":"","sources":["../../src/streaming/captureSession.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AA8CxC,WAAW;AAEX;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IAEvE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEpD,iKAAiK;IACjK,wFAAwF;IACxF,MAAM,YAAY,GAAa,aAAa,EAAE,MAAM,IAAI,gBAAgB,CAAC;IAEzE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAkC,IAAI,CAAC;IAEpD,MAAM,eAAe,GAAG,CAAC,QAA6B,EAAQ,EAAE;QAE9D,gKAAgK;QAChK,iJAAiJ;QACjJ,IAAG,QAAQ,EAAE,CAAC;YAEZ,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,iFAAiF,CAAC,CAAC;YAChH,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEhB,OAAO;QACT,CAAC;QAED,SAAS,GAAG,QAAQ,CAAC;QAErB,6HAA6H;QAC7H,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAS,EAAE;QAEzB,IAAG,QAAQ,EAAE,CAAC;YAEZ,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,IAAI,CAAC;QAEhB,kKAAkK;QAClK,aAAa,EAAE,IAAI,EAAE,CAAC;QAEtB,yIAAyI;QACzI,IAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAE/B,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,kEAAkE;QAClE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QAEL,eAAe;QACf,OAAO;QACP,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO;QAEzB,IAAI,QAAQ;YAEV,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,SAAS;YAEX,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/streaming/clients.ts"],"names":[],"mappings":"AAiBA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAiB1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAG9B,KAAK,EAAE,MAAM,CAAC;IAGd,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAG5B,OAAO,EAAE,eAAe,EAAE,CAAC;IAG3B,KAAK,EAAE,MAAM,CAAC;CACf;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAyBlG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAmBpG;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CA+ChE;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/streaming/codec.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAwBtD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,CAcvD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAqBtD"}
|
|
@@ -86,9 +86,36 @@ export declare function formatKeyframeStatsSummary(stats: KeyframeStats): string
|
|
|
86
86
|
*/
|
|
87
87
|
export declare function formatSessionStatsSummary(stats: SessionStats, segmentCount: number): string;
|
|
88
88
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
89
|
+
* Prunes discontinuity indices that have scrolled below the sliding-window floor, returning how many were removed. Keeping the set bounded over a long stream is the
|
|
90
|
+
* whole point of pruning, but the removed indices still contributed to the HLS #EXT-X-DISCONTINUITY-SEQUENCE (the count of discontinuity tags removed from the front
|
|
91
|
+
* of the playlist), so the caller folds the returned count into a running prunedDiscontinuityCount that computeDiscontinuitySequence() adds back. Every index below the
|
|
92
|
+
* threshold has, by construction, also scrolled below every possible playlist window start (the prune threshold is segmentIndex - maxSegments, which is never greater
|
|
93
|
+
* than any window start the generator computes), so removing it can never drop a discontinuity that is still visible.
|
|
94
|
+
*
|
|
95
|
+
* @param indices - The set of segment indices carrying a discontinuity marker. Mutated in place to remove entries below the threshold.
|
|
96
|
+
* @param threshold - The sliding-window floor index. Indices strictly below this have scrolled out of every possible playlist window.
|
|
97
|
+
* @returns The number of indices removed from the set.
|
|
98
|
+
*/
|
|
99
|
+
export declare function pruneDiscontinuityIndices(indices: Set<number>, threshold: number): number;
|
|
100
|
+
/**
|
|
101
|
+
* Computes the #EXT-X-DISCONTINUITY-SEQUENCE value for a playlist window, or undefined when no discontinuities exist in the stream's history (in which case the builder
|
|
102
|
+
* omits the tag entirely). The value is the total number of discontinuities that have scrolled off the front of the playlist: those still tracked in the set at indices
|
|
103
|
+
* below the window start, plus those already pruned from the set (prunedDiscontinuityCount). Because pruned indices are always below the window start, this sum exactly
|
|
104
|
+
* reproduces the never-pruned count of "discontinuities below startIndex" while staying bounded, and it is monotonic since prunedDiscontinuityCount only ever grows.
|
|
105
|
+
*
|
|
106
|
+
* @param options - The discontinuity index set, the running pruned count, and the window start index.
|
|
107
|
+
* @returns The discontinuity-sequence value, or undefined when the stream has no discontinuity history.
|
|
108
|
+
*/
|
|
109
|
+
export declare function computeDiscontinuitySequence(options: {
|
|
110
|
+
discontinuityIndices: Set<number>;
|
|
111
|
+
prunedDiscontinuityCount: number;
|
|
112
|
+
startIndex: number;
|
|
113
|
+
}): number | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, optionally detects keyframes
|
|
116
|
+
* in each moof fragment when KEYFRAME_DEBUG is enabled, and accumulates media fragments into segments based on the configured duration.
|
|
91
117
|
* @param options - Segmenter options including stream ID and callbacks.
|
|
92
118
|
* @returns The segmenter interface with pipe, stop, and keyframe stats methods.
|
|
93
119
|
*/
|
|
94
120
|
export declare function createFMP4Segmenter(options: FMP4SegmenterOptions): FMP4SegmenterResult;
|
|
121
|
+
//# sourceMappingURL=fmp4Segmenter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fmp4Segmenter.d.ts","sourceRoot":"","sources":["../../src/streaming/fmp4Segmenter.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@ import { CONFIG } from "../config/index.js";
|
|
|
9
9
|
import { LOG } from "../utils/index.js";
|
|
10
10
|
import { buildPlaylist } from "./playlistBuilder.js";
|
|
11
11
|
import { getStream } from "./registry.js";
|
|
12
|
-
/* This module transforms a puppeteer-stream MP4 capture into HLS fMP4 segments. The overall flow is: (1) receive MP4 data from puppeteer-stream (
|
|
13
|
-
* either native capture or FFmpeg transcoding), (2) parse MP4 box structure to identify ftyp
|
|
12
|
+
/* This module transforms a puppeteer-stream MP4 capture into HLS fMP4 segments. The overall flow is: (1) receive MP4 data from puppeteer-stream (the configured
|
|
13
|
+
* capture codec, H.264 or HEVC per codec.ts, paired with AAC audio, from either native capture or FFmpeg transcoding), (2) parse MP4 box structure to identify ftyp
|
|
14
|
+
* + moov (initialization segment) and moof + mdat pairs (media fragments),
|
|
14
15
|
* (3) store init segment and accumulate media fragments into segments, and (4) generate and update the m3u8 playlist.
|
|
15
16
|
*
|
|
16
17
|
* Keyframe detection is available for diagnostics by setting KEYFRAME_DEBUG to true. When enabled, each moof's traf/trun sample flags are parsed (ISO 14496-12) to
|
|
@@ -93,10 +94,57 @@ export function formatSessionStatsSummary(stats, segmentCount) {
|
|
|
93
94
|
parts.push(".");
|
|
94
95
|
return parts.join("");
|
|
95
96
|
}
|
|
97
|
+
// Discontinuity Sequence.
|
|
98
|
+
/**
|
|
99
|
+
* Prunes discontinuity indices that have scrolled below the sliding-window floor, returning how many were removed. Keeping the set bounded over a long stream is the
|
|
100
|
+
* whole point of pruning, but the removed indices still contributed to the HLS #EXT-X-DISCONTINUITY-SEQUENCE (the count of discontinuity tags removed from the front
|
|
101
|
+
* of the playlist), so the caller folds the returned count into a running prunedDiscontinuityCount that computeDiscontinuitySequence() adds back. Every index below the
|
|
102
|
+
* threshold has, by construction, also scrolled below every possible playlist window start (the prune threshold is segmentIndex - maxSegments, which is never greater
|
|
103
|
+
* than any window start the generator computes), so removing it can never drop a discontinuity that is still visible.
|
|
104
|
+
*
|
|
105
|
+
* @param indices - The set of segment indices carrying a discontinuity marker. Mutated in place to remove entries below the threshold.
|
|
106
|
+
* @param threshold - The sliding-window floor index. Indices strictly below this have scrolled out of every possible playlist window.
|
|
107
|
+
* @returns The number of indices removed from the set.
|
|
108
|
+
*/
|
|
109
|
+
export function pruneDiscontinuityIndices(indices, threshold) {
|
|
110
|
+
let prunedCount = 0;
|
|
111
|
+
for (const idx of indices) {
|
|
112
|
+
if (idx < threshold) {
|
|
113
|
+
indices.delete(idx);
|
|
114
|
+
prunedCount++;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return prunedCount;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Computes the #EXT-X-DISCONTINUITY-SEQUENCE value for a playlist window, or undefined when no discontinuities exist in the stream's history (in which case the builder
|
|
121
|
+
* omits the tag entirely). The value is the total number of discontinuities that have scrolled off the front of the playlist: those still tracked in the set at indices
|
|
122
|
+
* below the window start, plus those already pruned from the set (prunedDiscontinuityCount). Because pruned indices are always below the window start, this sum exactly
|
|
123
|
+
* reproduces the never-pruned count of "discontinuities below startIndex" while staying bounded, and it is monotonic since prunedDiscontinuityCount only ever grows.
|
|
124
|
+
*
|
|
125
|
+
* @param options - The discontinuity index set, the running pruned count, and the window start index.
|
|
126
|
+
* @returns The discontinuity-sequence value, or undefined when the stream has no discontinuity history.
|
|
127
|
+
*/
|
|
128
|
+
export function computeDiscontinuitySequence(options) {
|
|
129
|
+
const { discontinuityIndices, prunedDiscontinuityCount, startIndex } = options;
|
|
130
|
+
// When neither a tracked nor a pruned discontinuity exists, the stream has never had one - signal "omit the tag" with undefined.
|
|
131
|
+
if ((discontinuityIndices.size === 0) && (prunedDiscontinuityCount === 0)) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
// Count discontinuities still tracked in the set that have scrolled below the window start, then add those already pruned (all of which were below the start when
|
|
135
|
+
// they were removed). The result equals what an unbounded set would have counted as "indices below startIndex".
|
|
136
|
+
let discSeq = prunedDiscontinuityCount;
|
|
137
|
+
for (const idx of discontinuityIndices) {
|
|
138
|
+
if (idx < startIndex) {
|
|
139
|
+
discSeq++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return discSeq;
|
|
143
|
+
}
|
|
96
144
|
// Segmenter Implementation.
|
|
97
145
|
/**
|
|
98
|
-
* Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, detects keyframes
|
|
99
|
-
* fragment, and accumulates media fragments into segments based on the configured duration.
|
|
146
|
+
* Creates an fMP4 segmenter that transforms MP4 input into HLS segments. The segmenter parses MP4 boxes, extracts the init segment, optionally detects keyframes
|
|
147
|
+
* in each moof fragment when KEYFRAME_DEBUG is enabled, and accumulates media fragments into segments based on the configured duration.
|
|
100
148
|
* @param options - Segmenter options including stream ID and callbacks.
|
|
101
149
|
* @returns The segmenter interface with pipe, stop, and keyframe stats methods.
|
|
102
150
|
*/
|
|
@@ -124,6 +172,7 @@ export function createFMP4Segmenter(options) {
|
|
|
124
172
|
prerollBaseUrl: prerollBaseUrl ?? null,
|
|
125
173
|
prerollCodec: prerollCodec ?? "h264",
|
|
126
174
|
prerollSegmentCount: prerollSegmentCount ?? 0,
|
|
175
|
+
prunedDiscontinuityCount: 0,
|
|
127
176
|
segmentDurations: new Map(),
|
|
128
177
|
segmentFirstMoofChecked: false,
|
|
129
178
|
segmentIndex: startingSegmentIndex ?? 0,
|
|
@@ -207,18 +256,14 @@ export function createFMP4Segmenter(options) {
|
|
|
207
256
|
}
|
|
208
257
|
realEntries.push(entry);
|
|
209
258
|
}
|
|
210
|
-
// Compute DISCONTINUITY-SEQUENCE: the count of discontinuities that have scrolled off the beginning of the playlist window.
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
discontinuitySequence = discSeq;
|
|
221
|
-
}
|
|
259
|
+
// Compute DISCONTINUITY-SEQUENCE: the count of discontinuities that have scrolled off the beginning of the playlist window. This counts both discontinuities still
|
|
260
|
+
// tracked in discontinuityIndices below the window start and those already pruned from the set as their segments aged out, so the emitted value stays correct and
|
|
261
|
+
// monotonic even though the set is bounded. Returns undefined when the stream has no discontinuity history, in which case the builder omits the tag entirely.
|
|
262
|
+
const discontinuitySequence = computeDiscontinuitySequence({
|
|
263
|
+
discontinuityIndices: state.discontinuityIndices,
|
|
264
|
+
prunedDiscontinuityCount: state.prunedDiscontinuityCount,
|
|
265
|
+
startIndex
|
|
266
|
+
});
|
|
222
267
|
// Determine the initial MAP URI. When the window starts with preroll entries, use the preroll init segment. Otherwise, use the real init segment. The
|
|
223
268
|
// prerollBaseUrl is guaranteed non-null when prerollEntries is non-empty (guarded by the conditional above).
|
|
224
269
|
const initialMapUri = ((prerollEntries.length > 0) && state.prerollBaseUrl) ?
|
|
@@ -233,7 +278,8 @@ export function createFMP4Segmenter(options) {
|
|
|
233
278
|
}, entries);
|
|
234
279
|
}
|
|
235
280
|
/**
|
|
236
|
-
* Resets per-segment tracking state
|
|
281
|
+
* Resets the per-segment tracking state once a segment has been emitted, grouping the reset in one place so outputSegment reads cleanly and the next segment
|
|
282
|
+
* starts from a known baseline.
|
|
237
283
|
*/
|
|
238
284
|
function resetSegmentTracking() {
|
|
239
285
|
state.fragmentBuffer = [];
|
|
@@ -321,6 +367,10 @@ export function createFMP4Segmenter(options) {
|
|
|
321
367
|
state.segmentTimestamps.delete(idx);
|
|
322
368
|
}
|
|
323
369
|
}
|
|
370
|
+
// Prune discontinuity indices that have scrolled below the same window floor, folding each removed entry into prunedDiscontinuityCount so the
|
|
371
|
+
// #EXT-X-DISCONTINUITY-SEQUENCE generatePlaylist() emits still accounts for every discontinuity that has left the front of the playlist. Without this carry, a long
|
|
372
|
+
// stream would both leak the set unbounded and, once pruned, under-report the sequence and violate HLS monotonicity.
|
|
373
|
+
state.prunedDiscontinuityCount += pruneDiscontinuityIndices(state.discontinuityIndices, pruneThreshold);
|
|
324
374
|
// Clear the fragment buffer and reset segment-level tracking for the next segment.
|
|
325
375
|
resetSegmentTracking();
|
|
326
376
|
// Update the playlist.
|
|
@@ -422,6 +472,7 @@ export function createFMP4Segmenter(options) {
|
|
|
422
472
|
LOG.debug("streaming:segmenter", "Video codec: profile=%d, profileCompatibility=0x%s, level=%d.", codecConfig.video.profile, codecConfig.video.profileCompatibility.toString(16).padStart(2, "0"), codecConfig.video.level);
|
|
423
473
|
}
|
|
424
474
|
if (codecConfig.audio) {
|
|
475
|
+
// ISO/IEC 14496-3 AAC sampling-frequency index table, indexed by codecConfig.audio.sampleRateIndex.
|
|
425
476
|
const sampleRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];
|
|
426
477
|
const sampleRate = sampleRates[codecConfig.audio.sampleRateIndex] ?? 0;
|
|
427
478
|
LOG.debug("streaming:segmenter", "Audio codec: objectType=%d (AAC-LC=%d), sampleRate=%dHz (index=%d).", codecConfig.audio.objectType, codecConfig.audio.objectType === 2 ? 1 : 0, sampleRate, codecConfig.audio.sampleRateIndex);
|
|
@@ -487,12 +538,12 @@ export function createFMP4Segmenter(options) {
|
|
|
487
538
|
// original timestamps, which is better than dropping it entirely.
|
|
488
539
|
try {
|
|
489
540
|
const trackResults = offsetMoofTimestamps(box.data, state.trackOffsets);
|
|
490
|
-
//
|
|
491
|
-
//
|
|
492
|
-
//
|
|
493
|
-
//
|
|
494
|
-
//
|
|
495
|
-
|
|
541
|
+
// Two-pass offset handling. The first call above applied every already-known track's stored offset in place, leaving any track first seen in this moof at
|
|
542
|
+
// Chrome's original tfdt (an absent trackId is a 0n no-op write). This loop computes and stores each newly seen track's offset and records it in newOffsets -
|
|
543
|
+
// the offsets finalized this moof, and only those. The corrective call below applies exactly newOffsets, so a track the first call already offset stays
|
|
544
|
+
// untouched (absent from newOffsets, a 0n no-op) while a track initialized here is offset exactly once. No track's offset can be applied twice regardless of
|
|
545
|
+
// how tracks stagger their first trafs across moofs.
|
|
546
|
+
const newOffsets = new Map();
|
|
496
547
|
let needsRewrite = false;
|
|
497
548
|
for (const [trackId, result] of trackResults) {
|
|
498
549
|
if (!state.trackOffsetsInitialized.has(trackId)) {
|
|
@@ -509,16 +560,18 @@ export function createFMP4Segmenter(options) {
|
|
|
509
560
|
}
|
|
510
561
|
state.trackOffsets.set(trackId, offset);
|
|
511
562
|
state.trackOffsetsInitialized.add(trackId);
|
|
563
|
+
newOffsets.set(trackId, offset);
|
|
512
564
|
if (offset !== 0n) {
|
|
513
565
|
needsRewrite = true;
|
|
514
566
|
}
|
|
515
567
|
LOG.debug("streaming:segmenter", "Initialized offset for track %d: %s (initial=%s, chrome=%s).", trackId, String(offset), String(initialValue ?? 0n), String(result.originalTfdt));
|
|
516
568
|
}
|
|
517
569
|
}
|
|
518
|
-
//
|
|
519
|
-
//
|
|
570
|
+
// Corrective rewrite, scoped to the tracks initialized this moof. Those tracks still hold Chrome's original tfdt (the first call left them at 0n), so this
|
|
571
|
+
// single re-call with newOffsets applies each of their offsets exactly once. Already-known tracks are absent from newOffsets and pass through as 0n no-op
|
|
572
|
+
// writes, so they cannot be offset a second time. Skipped entirely when no newly initialized track carries a nonzero offset.
|
|
520
573
|
if (needsRewrite) {
|
|
521
|
-
offsetMoofTimestamps(box.data,
|
|
574
|
+
offsetMoofTimestamps(box.data, newOffsets);
|
|
522
575
|
}
|
|
523
576
|
// Check whether this moof contains a traf for the video track. The trackResults map contains an entry for every traf in the moof, keyed by trackId.
|
|
524
577
|
// If the video trackId is present, we know the capture pipeline is producing video data (even if the frame content is static/low-motion).
|