@abrar71/lib-jitsi-meet 0.0.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/LICENSE +202 -0
- package/README.md +26 -0
- package/dist/esm/JitsiConference.js +3692 -0
- package/dist/esm/JitsiConference.js.map +1 -0
- package/dist/esm/JitsiConferenceErrors.js +126 -0
- package/dist/esm/JitsiConferenceErrors.js.map +1 -0
- package/dist/esm/JitsiConferenceEventManager.js +424 -0
- package/dist/esm/JitsiConferenceEventManager.js.map +1 -0
- package/dist/esm/JitsiConferenceEvents.js +431 -0
- package/dist/esm/JitsiConferenceEvents.js.map +1 -0
- package/dist/esm/JitsiConnection.js +187 -0
- package/dist/esm/JitsiConnection.js.map +1 -0
- package/dist/esm/JitsiConnectionErrors.js +52 -0
- package/dist/esm/JitsiConnectionErrors.js.map +1 -0
- package/dist/esm/JitsiConnectionEvents.js +57 -0
- package/dist/esm/JitsiConnectionEvents.js.map +1 -0
- package/dist/esm/JitsiMediaDevices.js +221 -0
- package/dist/esm/JitsiMediaDevices.js.map +1 -0
- package/dist/esm/JitsiMediaDevicesEvents.js +29 -0
- package/dist/esm/JitsiMediaDevicesEvents.js.map +1 -0
- package/dist/esm/JitsiMeetJS.js +499 -0
- package/dist/esm/JitsiMeetJS.js.map +1 -0
- package/dist/esm/JitsiParticipant.js +323 -0
- package/dist/esm/JitsiParticipant.js.map +1 -0
- package/dist/esm/JitsiTrackError.js +122 -0
- package/dist/esm/JitsiTrackError.js.map +1 -0
- package/dist/esm/JitsiTrackErrors.js +91 -0
- package/dist/esm/JitsiTrackErrors.js.map +1 -0
- package/dist/esm/JitsiTrackEvents.js +60 -0
- package/dist/esm/JitsiTrackEvents.js.map +1 -0
- package/dist/esm/JitsiTranscriptionStatus.js +15 -0
- package/dist/esm/JitsiTranscriptionStatus.js.map +1 -0
- package/dist/esm/modules/RTC/BridgeChannel.js +398 -0
- package/dist/esm/modules/RTC/BridgeChannel.js.map +1 -0
- package/dist/esm/modules/RTC/JitsiLocalTrack.js +896 -0
- package/dist/esm/modules/RTC/JitsiLocalTrack.js.map +1 -0
- package/dist/esm/modules/RTC/JitsiRemoteTrack.js +427 -0
- package/dist/esm/modules/RTC/JitsiRemoteTrack.js.map +1 -0
- package/dist/esm/modules/RTC/JitsiTrack.js +453 -0
- package/dist/esm/modules/RTC/JitsiTrack.js.map +1 -0
- package/dist/esm/modules/RTC/MockClasses.js +388 -0
- package/dist/esm/modules/RTC/MockClasses.js.map +1 -0
- package/dist/esm/modules/RTC/RTC.js +658 -0
- package/dist/esm/modules/RTC/RTC.js.map +1 -0
- package/dist/esm/modules/RTC/RTCUtils.js +762 -0
- package/dist/esm/modules/RTC/RTCUtils.js.map +1 -0
- package/dist/esm/modules/RTC/ScreenObtainer.js +380 -0
- package/dist/esm/modules/RTC/ScreenObtainer.js.map +1 -0
- package/dist/esm/modules/RTC/TPCUtils.js +803 -0
- package/dist/esm/modules/RTC/TPCUtils.js.map +1 -0
- package/dist/esm/modules/RTC/TraceablePeerConnection.js +2223 -0
- package/dist/esm/modules/RTC/TraceablePeerConnection.js.map +1 -0
- package/dist/esm/modules/RTCStats/DefaulLogStorage.js +35 -0
- package/dist/esm/modules/RTCStats/DefaulLogStorage.js.map +1 -0
- package/dist/esm/modules/RTCStats/RTCStats.js +219 -0
- package/dist/esm/modules/RTCStats/RTCStats.js.map +1 -0
- package/dist/esm/modules/RTCStats/RTCStatsEvents.js +92 -0
- package/dist/esm/modules/RTCStats/RTCStatsEvents.js.map +1 -0
- package/dist/esm/modules/RTCStats/interfaces.js +2 -0
- package/dist/esm/modules/RTCStats/interfaces.js.map +1 -0
- package/dist/esm/modules/browser/BrowserCapabilities.js +345 -0
- package/dist/esm/modules/browser/BrowserCapabilities.js.map +1 -0
- package/dist/esm/modules/browser/index.js +3 -0
- package/dist/esm/modules/browser/index.js.map +1 -0
- package/dist/esm/modules/connectivity/ConnectionQuality.js +389 -0
- package/dist/esm/modules/connectivity/ConnectionQuality.js.map +1 -0
- package/dist/esm/modules/connectivity/IceFailedHandling.js +84 -0
- package/dist/esm/modules/connectivity/IceFailedHandling.js.map +1 -0
- package/dist/esm/modules/connectivity/NetworkInfo.js +49 -0
- package/dist/esm/modules/connectivity/NetworkInfo.js.map +1 -0
- package/dist/esm/modules/connectivity/TrackStreamingStatus.js +453 -0
- package/dist/esm/modules/connectivity/TrackStreamingStatus.js.map +1 -0
- package/dist/esm/modules/detection/ActiveDeviceDetector.js +79 -0
- package/dist/esm/modules/detection/ActiveDeviceDetector.js.map +1 -0
- package/dist/esm/modules/detection/DetectionEvents.js +58 -0
- package/dist/esm/modules/detection/DetectionEvents.js.map +1 -0
- package/dist/esm/modules/detection/NoAudioSignalDetection.js +127 -0
- package/dist/esm/modules/detection/NoAudioSignalDetection.js.map +1 -0
- package/dist/esm/modules/detection/P2PDominantSpeakerDetection.js +47 -0
- package/dist/esm/modules/detection/P2PDominantSpeakerDetection.js.map +1 -0
- package/dist/esm/modules/detection/TrackVADEmitter.js +190 -0
- package/dist/esm/modules/detection/TrackVADEmitter.js.map +1 -0
- package/dist/esm/modules/detection/VADAudioAnalyser.js +199 -0
- package/dist/esm/modules/detection/VADAudioAnalyser.js.map +1 -0
- package/dist/esm/modules/detection/VADNoiseDetection.js +168 -0
- package/dist/esm/modules/detection/VADNoiseDetection.js.map +1 -0
- package/dist/esm/modules/detection/VADReportingService.js +203 -0
- package/dist/esm/modules/detection/VADReportingService.js.map +1 -0
- package/dist/esm/modules/detection/VADTalkMutedDetection.js +131 -0
- package/dist/esm/modules/detection/VADTalkMutedDetection.js.map +1 -0
- package/dist/esm/modules/e2ee/Context.js +274 -0
- package/dist/esm/modules/e2ee/Context.js.map +1 -0
- package/dist/esm/modules/e2ee/E2EEContext.js +158 -0
- package/dist/esm/modules/e2ee/E2EEContext.js.map +1 -0
- package/dist/esm/modules/e2ee/E2EEErrors.js +10 -0
- package/dist/esm/modules/e2ee/E2EEErrors.js.map +1 -0
- package/dist/esm/modules/e2ee/E2EEncryption.js +87 -0
- package/dist/esm/modules/e2ee/E2EEncryption.js.map +1 -0
- package/dist/esm/modules/e2ee/ExternallyManagedKeyHandler.js +24 -0
- package/dist/esm/modules/e2ee/ExternallyManagedKeyHandler.js.map +1 -0
- package/dist/esm/modules/e2ee/KeyHandler.js +137 -0
- package/dist/esm/modules/e2ee/KeyHandler.js.map +1 -0
- package/dist/esm/modules/e2ee/ManagedKeyHandler.js +182 -0
- package/dist/esm/modules/e2ee/ManagedKeyHandler.js.map +1 -0
- package/dist/esm/modules/e2ee/OlmAdapter.js +860 -0
- package/dist/esm/modules/e2ee/OlmAdapter.js.map +1 -0
- package/dist/esm/modules/e2ee/SAS.js +128 -0
- package/dist/esm/modules/e2ee/SAS.js.map +1 -0
- package/dist/esm/modules/e2ee/Worker.js +102 -0
- package/dist/esm/modules/e2ee/Worker.js.map +1 -0
- package/dist/esm/modules/e2ee/crypto-utils.js +53 -0
- package/dist/esm/modules/e2ee/crypto-utils.js.map +1 -0
- package/dist/esm/modules/e2ee/utils.js +15 -0
- package/dist/esm/modules/e2ee/utils.js.map +1 -0
- package/dist/esm/modules/e2eping/e2eping.js +314 -0
- package/dist/esm/modules/e2eping/e2eping.js.map +1 -0
- package/dist/esm/modules/flags/FeatureFlags.js +36 -0
- package/dist/esm/modules/flags/FeatureFlags.js.map +1 -0
- package/dist/esm/modules/litemode/LiteModeContext.js +50 -0
- package/dist/esm/modules/litemode/LiteModeContext.js.map +1 -0
- package/dist/esm/modules/proxyconnection/CustomSignalingLayer.js +98 -0
- package/dist/esm/modules/proxyconnection/CustomSignalingLayer.js.map +1 -0
- package/dist/esm/modules/proxyconnection/ProxyConnectionPC.js +348 -0
- package/dist/esm/modules/proxyconnection/ProxyConnectionPC.js.map +1 -0
- package/dist/esm/modules/proxyconnection/ProxyConnectionService.js +279 -0
- package/dist/esm/modules/proxyconnection/ProxyConnectionService.js.map +1 -0
- package/dist/esm/modules/proxyconnection/constants.js +14 -0
- package/dist/esm/modules/proxyconnection/constants.js.map +1 -0
- package/dist/esm/modules/qualitycontrol/CodecSelection.js +222 -0
- package/dist/esm/modules/qualitycontrol/CodecSelection.js.map +1 -0
- package/dist/esm/modules/qualitycontrol/MockClasses.js +120 -0
- package/dist/esm/modules/qualitycontrol/MockClasses.js.map +1 -0
- package/dist/esm/modules/qualitycontrol/QualityController.js +366 -0
- package/dist/esm/modules/qualitycontrol/QualityController.js.map +1 -0
- package/dist/esm/modules/qualitycontrol/ReceiveAudioController.js +73 -0
- package/dist/esm/modules/qualitycontrol/ReceiveAudioController.js.map +1 -0
- package/dist/esm/modules/qualitycontrol/ReceiveVideoController.js +216 -0
- package/dist/esm/modules/qualitycontrol/ReceiveVideoController.js.map +1 -0
- package/dist/esm/modules/qualitycontrol/SendVideoController.js +133 -0
- package/dist/esm/modules/qualitycontrol/SendVideoController.js.map +1 -0
- package/dist/esm/modules/recording/JibriSession.js +279 -0
- package/dist/esm/modules/recording/JibriSession.js.map +1 -0
- package/dist/esm/modules/recording/RecordingManager.js +257 -0
- package/dist/esm/modules/recording/RecordingManager.js.map +1 -0
- package/dist/esm/modules/recording/recordingConstants.js +21 -0
- package/dist/esm/modules/recording/recordingConstants.js.map +1 -0
- package/dist/esm/modules/recording/recordingXMLUtils.js +69 -0
- package/dist/esm/modules/recording/recordingXMLUtils.js.map +1 -0
- package/dist/esm/modules/red/red.js +108 -0
- package/dist/esm/modules/red/red.js.map +1 -0
- package/dist/esm/modules/sdp/LocalSdpMunger.js +143 -0
- package/dist/esm/modules/sdp/LocalSdpMunger.js.map +1 -0
- package/dist/esm/modules/sdp/RtxModifier.js +179 -0
- package/dist/esm/modules/sdp/RtxModifier.js.map +1 -0
- package/dist/esm/modules/sdp/SDP.js +848 -0
- package/dist/esm/modules/sdp/SDP.js.map +1 -0
- package/dist/esm/modules/sdp/SDPDiffer.js +96 -0
- package/dist/esm/modules/sdp/SDPDiffer.js.map +1 -0
- package/dist/esm/modules/sdp/SDPUtil.js +798 -0
- package/dist/esm/modules/sdp/SDPUtil.js.map +1 -0
- package/dist/esm/modules/sdp/SampleSdpStrings.js +589 -0
- package/dist/esm/modules/sdp/SampleSdpStrings.js.map +1 -0
- package/dist/esm/modules/sdp/SdpSimulcast.js +196 -0
- package/dist/esm/modules/sdp/SdpSimulcast.js.map +1 -0
- package/dist/esm/modules/sdp/SdpTransformUtil.js +337 -0
- package/dist/esm/modules/sdp/SdpTransformUtil.js.map +1 -0
- package/dist/esm/modules/sdp/constants.js +2 -0
- package/dist/esm/modules/sdp/constants.js.map +1 -0
- package/dist/esm/modules/settings/Settings.js +95 -0
- package/dist/esm/modules/settings/Settings.js.map +1 -0
- package/dist/esm/modules/statistics/AnalyticsAdapter.js +277 -0
- package/dist/esm/modules/statistics/AnalyticsAdapter.js.map +1 -0
- package/dist/esm/modules/statistics/AvgRTPStatsReporter.js +817 -0
- package/dist/esm/modules/statistics/AvgRTPStatsReporter.js.map +1 -0
- package/dist/esm/modules/statistics/LocalStatsCollector.js +149 -0
- package/dist/esm/modules/statistics/LocalStatsCollector.js.map +1 -0
- package/dist/esm/modules/statistics/PreCallTest.js +15 -0
- package/dist/esm/modules/statistics/PreCallTest.js.map +1 -0
- package/dist/esm/modules/statistics/RTPStatsCollector.js +601 -0
- package/dist/esm/modules/statistics/RTPStatsCollector.js.map +1 -0
- package/dist/esm/modules/statistics/SpeakerStats.js +163 -0
- package/dist/esm/modules/statistics/SpeakerStats.js.map +1 -0
- package/dist/esm/modules/statistics/SpeakerStatsCollector.js +161 -0
- package/dist/esm/modules/statistics/SpeakerStatsCollector.js.map +1 -0
- package/dist/esm/modules/statistics/constants.js +7 -0
- package/dist/esm/modules/statistics/constants.js.map +1 -0
- package/dist/esm/modules/statistics/statistics.js +362 -0
- package/dist/esm/modules/statistics/statistics.js.map +1 -0
- package/dist/esm/modules/util/AsyncQueue.js +102 -0
- package/dist/esm/modules/util/AsyncQueue.js.map +1 -0
- package/dist/esm/modules/util/Deferred.js +41 -0
- package/dist/esm/modules/util/Deferred.js.map +1 -0
- package/dist/esm/modules/util/EventEmitter.js +17 -0
- package/dist/esm/modules/util/EventEmitter.js.map +1 -0
- package/dist/esm/modules/util/EventEmitterForwarder.js +52 -0
- package/dist/esm/modules/util/EventEmitterForwarder.js.map +1 -0
- package/dist/esm/modules/util/Listenable.js +106 -0
- package/dist/esm/modules/util/Listenable.js.map +1 -0
- package/dist/esm/modules/util/MathUtil.js +103 -0
- package/dist/esm/modules/util/MathUtil.js.map +1 -0
- package/dist/esm/modules/util/RandomUtil.js +66 -0
- package/dist/esm/modules/util/RandomUtil.js.map +1 -0
- package/dist/esm/modules/util/Retry.js +15 -0
- package/dist/esm/modules/util/Retry.js.map +1 -0
- package/dist/esm/modules/util/ScriptUtil.js +58 -0
- package/dist/esm/modules/util/ScriptUtil.js.map +1 -0
- package/dist/esm/modules/util/StringUtils.js +21 -0
- package/dist/esm/modules/util/StringUtils.js.map +1 -0
- package/dist/esm/modules/util/TestUtils.js +14 -0
- package/dist/esm/modules/util/TestUtils.js.map +1 -0
- package/dist/esm/modules/util/UsernameGenerator.js +436 -0
- package/dist/esm/modules/util/UsernameGenerator.js.map +1 -0
- package/dist/esm/modules/util/XMLUtils.js +135 -0
- package/dist/esm/modules/util/XMLUtils.js.map +1 -0
- package/dist/esm/modules/version/ComponentsVersions.js +52 -0
- package/dist/esm/modules/version/ComponentsVersions.js.map +1 -0
- package/dist/esm/modules/videosipgw/JitsiVideoSIPGWSession.js +137 -0
- package/dist/esm/modules/videosipgw/JitsiVideoSIPGWSession.js.map +1 -0
- package/dist/esm/modules/videosipgw/VideoSIPGW.js +102 -0
- package/dist/esm/modules/videosipgw/VideoSIPGW.js.map +1 -0
- package/dist/esm/modules/videosipgw/VideoSIPGWConstants.js +65 -0
- package/dist/esm/modules/videosipgw/VideoSIPGWConstants.js.map +1 -0
- package/dist/esm/modules/watchRTC/WatchRTC.js +69 -0
- package/dist/esm/modules/watchRTC/WatchRTC.js.map +1 -0
- package/dist/esm/modules/watchRTC/functions.js +31 -0
- package/dist/esm/modules/watchRTC/functions.js.map +1 -0
- package/dist/esm/modules/watchRTC/interfaces.js +2 -0
- package/dist/esm/modules/watchRTC/interfaces.js.map +1 -0
- package/dist/esm/modules/webaudio/AudioMixer.js +74 -0
- package/dist/esm/modules/webaudio/AudioMixer.js.map +1 -0
- package/dist/esm/modules/webaudio/WebAudioUtils.js +13 -0
- package/dist/esm/modules/webaudio/WebAudioUtils.js.map +1 -0
- package/dist/esm/modules/xmpp/AVModeration.js +156 -0
- package/dist/esm/modules/xmpp/AVModeration.js.map +1 -0
- package/dist/esm/modules/xmpp/BreakoutRooms.js +230 -0
- package/dist/esm/modules/xmpp/BreakoutRooms.js.map +1 -0
- package/dist/esm/modules/xmpp/Caps.js +223 -0
- package/dist/esm/modules/xmpp/Caps.js.map +1 -0
- package/dist/esm/modules/xmpp/ChatRoom.js +1877 -0
- package/dist/esm/modules/xmpp/ChatRoom.js.map +1 -0
- package/dist/esm/modules/xmpp/ConnectionPlugin.js +37 -0
- package/dist/esm/modules/xmpp/ConnectionPlugin.js.map +1 -0
- package/dist/esm/modules/xmpp/FileSharing.js +95 -0
- package/dist/esm/modules/xmpp/FileSharing.js.map +1 -0
- package/dist/esm/modules/xmpp/JingleHelperFunctions.js +168 -0
- package/dist/esm/modules/xmpp/JingleHelperFunctions.js.map +1 -0
- package/dist/esm/modules/xmpp/JingleSession.js +166 -0
- package/dist/esm/modules/xmpp/JingleSession.js.map +1 -0
- package/dist/esm/modules/xmpp/JingleSessionPC.js +1969 -0
- package/dist/esm/modules/xmpp/JingleSessionPC.js.map +1 -0
- package/dist/esm/modules/xmpp/JingleSessionState.js +23 -0
- package/dist/esm/modules/xmpp/JingleSessionState.js.map +1 -0
- package/dist/esm/modules/xmpp/Lobby.js +384 -0
- package/dist/esm/modules/xmpp/Lobby.js.map +1 -0
- package/dist/esm/modules/xmpp/MediaSessionEvents.js +12 -0
- package/dist/esm/modules/xmpp/MediaSessionEvents.js.map +1 -0
- package/dist/esm/modules/xmpp/MockClasses.js +77 -0
- package/dist/esm/modules/xmpp/MockClasses.js.map +1 -0
- package/dist/esm/modules/xmpp/Polls.js +87 -0
- package/dist/esm/modules/xmpp/Polls.js.map +1 -0
- package/dist/esm/modules/xmpp/ResumeTask.js +149 -0
- package/dist/esm/modules/xmpp/ResumeTask.js.map +1 -0
- package/dist/esm/modules/xmpp/RoomMetadata.js +96 -0
- package/dist/esm/modules/xmpp/RoomMetadata.js.map +1 -0
- package/dist/esm/modules/xmpp/SignalingLayerImpl.js +313 -0
- package/dist/esm/modules/xmpp/SignalingLayerImpl.js.map +1 -0
- package/dist/esm/modules/xmpp/StropheErrorHandler.js +53 -0
- package/dist/esm/modules/xmpp/StropheErrorHandler.js.map +1 -0
- package/dist/esm/modules/xmpp/StropheLastSuccess.js +52 -0
- package/dist/esm/modules/xmpp/StropheLastSuccess.js.map +1 -0
- package/dist/esm/modules/xmpp/XmppConnection.js +579 -0
- package/dist/esm/modules/xmpp/XmppConnection.js.map +1 -0
- package/dist/esm/modules/xmpp/moderator.js +524 -0
- package/dist/esm/modules/xmpp/moderator.js.map +1 -0
- package/dist/esm/modules/xmpp/sha1.js +165 -0
- package/dist/esm/modules/xmpp/sha1.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.disco.js +222 -0
- package/dist/esm/modules/xmpp/strophe.disco.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.emuc.js +206 -0
- package/dist/esm/modules/xmpp/strophe.emuc.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.jingle.js +404 -0
- package/dist/esm/modules/xmpp/strophe.jingle.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.logger.js +44 -0
- package/dist/esm/modules/xmpp/strophe.logger.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.ping.js +170 -0
- package/dist/esm/modules/xmpp/strophe.ping.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.rayo.js +117 -0
- package/dist/esm/modules/xmpp/strophe.rayo.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.stream-management.js +365 -0
- package/dist/esm/modules/xmpp/strophe.stream-management.js.map +1 -0
- package/dist/esm/modules/xmpp/strophe.util.js +116 -0
- package/dist/esm/modules/xmpp/strophe.util.js.map +1 -0
- package/dist/esm/modules/xmpp/xmpp.js +973 -0
- package/dist/esm/modules/xmpp/xmpp.js.map +1 -0
- package/dist/esm/service/RTC/BridgeVideoType.js +24 -0
- package/dist/esm/service/RTC/BridgeVideoType.js.map +1 -0
- package/dist/esm/service/RTC/CameraFacingMode.js +21 -0
- package/dist/esm/service/RTC/CameraFacingMode.js.map +1 -0
- package/dist/esm/service/RTC/CodecMimeType.js +36 -0
- package/dist/esm/service/RTC/CodecMimeType.js.map +1 -0
- package/dist/esm/service/RTC/MediaDirection.js +23 -0
- package/dist/esm/service/RTC/MediaDirection.js.map +1 -0
- package/dist/esm/service/RTC/MediaType.js +20 -0
- package/dist/esm/service/RTC/MediaType.js.map +1 -0
- package/dist/esm/service/RTC/RTCEvents.js +111 -0
- package/dist/esm/service/RTC/RTCEvents.js.map +1 -0
- package/dist/esm/service/RTC/ReceiverAudioSubscription.js +27 -0
- package/dist/esm/service/RTC/ReceiverAudioSubscription.js.map +1 -0
- package/dist/esm/service/RTC/Resolutions.js +56 -0
- package/dist/esm/service/RTC/Resolutions.js.map +1 -0
- package/dist/esm/service/RTC/SignalingEvents.js +42 -0
- package/dist/esm/service/RTC/SignalingEvents.js.map +1 -0
- package/dist/esm/service/RTC/SignalingLayer.js +153 -0
- package/dist/esm/service/RTC/SignalingLayer.js.map +1 -0
- package/dist/esm/service/RTC/StandardVideoQualitySettings.js +180 -0
- package/dist/esm/service/RTC/StandardVideoQualitySettings.js.map +1 -0
- package/dist/esm/service/RTC/VideoEncoderScalabilityMode.js +36 -0
- package/dist/esm/service/RTC/VideoEncoderScalabilityMode.js.map +1 -0
- package/dist/esm/service/RTC/VideoType.js +19 -0
- package/dist/esm/service/RTC/VideoType.js.map +1 -0
- package/dist/esm/service/authentication/AuthenticationEvents.js +13 -0
- package/dist/esm/service/authentication/AuthenticationEvents.js.map +1 -0
- package/dist/esm/service/connectivity/ConnectionQualityEvents.js +13 -0
- package/dist/esm/service/connectivity/ConnectionQualityEvents.js.map +1 -0
- package/dist/esm/service/connectivity/Constants.js +3 -0
- package/dist/esm/service/connectivity/Constants.js.map +1 -0
- package/dist/esm/service/e2eping/E2ePingEvents.js +8 -0
- package/dist/esm/service/e2eping/E2ePingEvents.js.map +1 -0
- package/dist/esm/service/statistics/AnalyticsEvents.js +521 -0
- package/dist/esm/service/statistics/AnalyticsEvents.js.map +1 -0
- package/dist/esm/service/statistics/Events.js +36 -0
- package/dist/esm/service/statistics/Events.js.map +1 -0
- package/dist/esm/service/statistics/constants.js +2 -0
- package/dist/esm/service/statistics/constants.js.map +1 -0
- package/dist/esm/service/xmpp/XMPPEvents.js +359 -0
- package/dist/esm/service/xmpp/XMPPEvents.js.map +1 -0
- package/dist/esm/service/xmpp/XMPPExtensioProtocols.js +64 -0
- package/dist/esm/service/xmpp/XMPPExtensioProtocols.js.map +1 -0
- package/dist/esm/test-setup-polyfill.js +34 -0
- package/dist/esm/test-setup-polyfill.js.map +1 -0
- package/dist/esm/tools/gen-version.js +15 -0
- package/dist/esm/tools/gen-version.js.map +1 -0
- package/dist/esm/version.js +3 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/umd/lib-jitsi-meet.e2ee-worker.js +484 -0
- package/dist/umd/lib-jitsi-meet.min.js +3 -0
- package/dist/umd/lib-jitsi-meet.min.js.LICENSE.txt +18 -0
- package/dist/umd/lib-jitsi-meet.min.map +1 -0
- package/package.json +93 -0
- package/types/index.d.ts +16180 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { getLogger } from '@jitsi/logger';
|
|
2
|
+
import { CodecMimeType } from '../../service/RTC/CodecMimeType';
|
|
3
|
+
import { MediaType } from '../../service/RTC/MediaType';
|
|
4
|
+
import { VIDEO_CODECS_BY_COMPLEXITY } from '../../service/RTC/StandardVideoQualitySettings';
|
|
5
|
+
import { VideoType } from '../../service/RTC/VideoType';
|
|
6
|
+
import browser from '../browser';
|
|
7
|
+
const logger = getLogger('qc:CodecSelection');
|
|
8
|
+
// Default video codec preferences on mobile and desktop endpoints.
|
|
9
|
+
const DESKTOP_VIDEO_CODEC_ORDER = [CodecMimeType.AV1, CodecMimeType.VP9, CodecMimeType.VP8, CodecMimeType.H264];
|
|
10
|
+
const MOBILE_P2P_VIDEO_CODEC_ORDER = [CodecMimeType.H264, CodecMimeType.VP8, CodecMimeType.VP9, CodecMimeType.AV1];
|
|
11
|
+
const MOBILE_VIDEO_CODEC_ORDER = [CodecMimeType.VP8, CodecMimeType.VP9, CodecMimeType.H264, CodecMimeType.AV1];
|
|
12
|
+
/**
|
|
13
|
+
* This class handles the codec selection mechanism for the conference based on the config.js settings.
|
|
14
|
+
* The preferred codec is selected based on the settings and the list of codecs supported by the browser.
|
|
15
|
+
* The preferred codec is published in presence which is then used by the other endpoints in the
|
|
16
|
+
* conference to pick a supported codec at join time and when the call transitions between p2p and jvb
|
|
17
|
+
* connections.
|
|
18
|
+
*/
|
|
19
|
+
export class CodecSelection {
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new instance for a given conference.
|
|
22
|
+
*
|
|
23
|
+
* @param {JitsiConference} conference the conference instance
|
|
24
|
+
* @param {*} options
|
|
25
|
+
* @param {string} options.jvb settings (codec list, preferred and disabled) for the jvb connection.
|
|
26
|
+
* @param {string} options.p2p settings (codec list, preferred and disabled) for the p2p connection.
|
|
27
|
+
*/
|
|
28
|
+
constructor(conference, options) {
|
|
29
|
+
this.codecPreferenceOrder = {};
|
|
30
|
+
this.conference = conference;
|
|
31
|
+
this.encodeTimeStats = new Map();
|
|
32
|
+
this.options = options;
|
|
33
|
+
this.screenshareCodec = {};
|
|
34
|
+
this.visitorCodecs = [];
|
|
35
|
+
for (const connectionType of Object.keys(options)) {
|
|
36
|
+
let { disabledCodec, preferredCodec, preferenceOrder } = options[connectionType];
|
|
37
|
+
const { enableAV1ForFF = false, screenshareCodec } = options[connectionType];
|
|
38
|
+
const supportedCodecs = new Set(this._getSupportedVideoCodecs(connectionType));
|
|
39
|
+
// Default preference codec order when no codec preferences are set in config.js
|
|
40
|
+
let selectedOrder = Array.from(supportedCodecs);
|
|
41
|
+
if (preferenceOrder) {
|
|
42
|
+
preferenceOrder = preferenceOrder.map(codec => codec.toLowerCase());
|
|
43
|
+
// Select all codecs that are supported by the browser.
|
|
44
|
+
selectedOrder = preferenceOrder.filter(codec => supportedCodecs.has(codec));
|
|
45
|
+
// Generate the codec list based on the supported codecs and the preferred/disabled (deprecated) settings
|
|
46
|
+
}
|
|
47
|
+
else if (preferredCodec || disabledCodec) {
|
|
48
|
+
disabledCodec = disabledCodec?.toLowerCase();
|
|
49
|
+
preferredCodec = preferredCodec?.toLowerCase();
|
|
50
|
+
// VP8 cannot be disabled since it the default codec.
|
|
51
|
+
if (disabledCodec && disabledCodec !== CodecMimeType.VP8) {
|
|
52
|
+
selectedOrder = selectedOrder.filter(codec => codec !== disabledCodec);
|
|
53
|
+
}
|
|
54
|
+
const index = selectedOrder.findIndex(codec => codec === preferredCodec);
|
|
55
|
+
// Move the preferred codec to the top of the list.
|
|
56
|
+
if (preferredCodec && index !== -1) {
|
|
57
|
+
selectedOrder.splice(index, 1);
|
|
58
|
+
selectedOrder.unshift(preferredCodec);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Push AV1 and VP9 to the end of the list if they are supported by the browser but has implementation bugs
|
|
62
|
+
// For example, 136 and newer versions of Firefox supports AV1 but only simulcast and not SVC. Even with
|
|
63
|
+
// simulcast, temporal scalability is not supported. This way Firefox will continue to decode AV1 from
|
|
64
|
+
// other endpoints but will use VP8 for encoding. Similar issues exist with VP9 on Safari and Firefox.
|
|
65
|
+
const isVp9EncodeSupported = browser.supportsVP9() || (browser.isWebKitBased() && connectionType === 'p2p');
|
|
66
|
+
[CodecMimeType.AV1, CodecMimeType.VP9].forEach(codec => {
|
|
67
|
+
if ((codec === CodecMimeType.AV1 && browser.isFirefox() && !enableAV1ForFF)
|
|
68
|
+
|| (codec === CodecMimeType.VP9 && !isVp9EncodeSupported)) {
|
|
69
|
+
const index = selectedOrder.findIndex(selectedCodec => selectedCodec === codec);
|
|
70
|
+
if (index !== -1) {
|
|
71
|
+
selectedOrder.splice(index, 1);
|
|
72
|
+
selectedOrder.push(codec);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
// Safari retports AV1 as supported on M3+ macs. Because of some decoder/encoder issues reported AV1 should
|
|
77
|
+
// be disabled until all issues are resolved.
|
|
78
|
+
if (browser.isWebKitBased()) {
|
|
79
|
+
selectedOrder = selectedOrder.filter(codec => codec !== CodecMimeType.AV1);
|
|
80
|
+
}
|
|
81
|
+
logger.info(`Codec preference order for ${connectionType} connection is ${selectedOrder}`);
|
|
82
|
+
this.codecPreferenceOrder[connectionType] = selectedOrder;
|
|
83
|
+
// Set the preferred screenshare codec.
|
|
84
|
+
if (screenshareCodec && supportedCodecs.has(screenshareCodec.toLowerCase())) {
|
|
85
|
+
this.screenshareCodec[connectionType] = screenshareCodec.toLowerCase();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Returns a list of video codecs that are supported by the browser.
|
|
91
|
+
*
|
|
92
|
+
* @param {string} connectionType - media connection type, p2p or jvb.
|
|
93
|
+
* @returns {Array}
|
|
94
|
+
*/
|
|
95
|
+
_getSupportedVideoCodecs(connectionType) {
|
|
96
|
+
const videoCodecMimeTypes = browser.isMobileDevice() && connectionType === 'p2p'
|
|
97
|
+
? MOBILE_P2P_VIDEO_CODEC_ORDER
|
|
98
|
+
: browser.isMobileDevice() ? MOBILE_VIDEO_CODEC_ORDER : DESKTOP_VIDEO_CODEC_ORDER;
|
|
99
|
+
const supportedCodecs = videoCodecMimeTypes.filter(codec => (window.RTCRtpReceiver?.getCapabilities?.(MediaType.VIDEO)?.codecs ?? [])
|
|
100
|
+
.some(supportedCodec => supportedCodec.mimeType.toLowerCase() === `${MediaType.VIDEO}/${codec}`));
|
|
101
|
+
// Select VP8 as the default codec if RTCRtpReceiver.getCapabilities() is not supported by the browser or if it
|
|
102
|
+
// returns an empty set.
|
|
103
|
+
!supportedCodecs.length && supportedCodecs.push(CodecMimeType.VP8);
|
|
104
|
+
return supportedCodecs;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns the current codec preference order for the given connection type.
|
|
108
|
+
*
|
|
109
|
+
* @param {String} connectionType The media connection type, 'p2p' or 'jvb'.
|
|
110
|
+
* @returns {Array<string>}
|
|
111
|
+
*/
|
|
112
|
+
getCodecPreferenceList(connectionType) {
|
|
113
|
+
return this.codecPreferenceOrder[connectionType];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns the preferred screenshare codec for the given connection type.
|
|
117
|
+
*
|
|
118
|
+
* @param {Optional} connectionType The media connection type, 'p2p' or 'jvb'.
|
|
119
|
+
* @returns CodecMimeType
|
|
120
|
+
*/
|
|
121
|
+
getScreenshareCodec(connectionType) {
|
|
122
|
+
return this.screenshareCodec[connectionType];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Sets the codec on the media session based on the codec preference order configured in config.js and the supported
|
|
126
|
+
* codecs published by the remote participants in their presence.
|
|
127
|
+
*
|
|
128
|
+
* @param {JingleSessionPC} mediaSession session for which the codec selection has to be made.
|
|
129
|
+
*/
|
|
130
|
+
selectPreferredCodec(mediaSession) {
|
|
131
|
+
const session = mediaSession ? mediaSession : this.conference.jvbJingleSession;
|
|
132
|
+
if (!session) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
let localPreferredCodecOrder = this.codecPreferenceOrder.jvb;
|
|
136
|
+
// E2EE is curently supported only for VP8 codec.
|
|
137
|
+
if (this.conference.isE2EEEnabled()) {
|
|
138
|
+
localPreferredCodecOrder = [CodecMimeType.VP8];
|
|
139
|
+
}
|
|
140
|
+
const remoteParticipants = this.conference.getParticipants().map(participant => participant.getId());
|
|
141
|
+
const remoteCodecsPerParticipant = remoteParticipants?.map(remote => {
|
|
142
|
+
const peerMediaInfo = session._signalingLayer.getPeerMediaInfo(remote, MediaType.VIDEO);
|
|
143
|
+
if (peerMediaInfo?.codecList) {
|
|
144
|
+
return peerMediaInfo.codecList;
|
|
145
|
+
}
|
|
146
|
+
else if (peerMediaInfo?.codecType) {
|
|
147
|
+
return [peerMediaInfo.codecType];
|
|
148
|
+
}
|
|
149
|
+
return [];
|
|
150
|
+
}) ?? [];
|
|
151
|
+
// Include the visitor codecs.
|
|
152
|
+
this.visitorCodecs.length && remoteCodecsPerParticipant.push(this.visitorCodecs);
|
|
153
|
+
const selectedCodecOrder = localPreferredCodecOrder.reduce((acc, localCodec) => {
|
|
154
|
+
let codecNotSupportedByRemote = false;
|
|
155
|
+
// Remove any codecs that are not supported by any of the remote endpoints. The order of the supported
|
|
156
|
+
// codecs locally however will remain the same since we want to support asymmetric codecs.
|
|
157
|
+
for (const remoteCodecs of remoteCodecsPerParticipant) {
|
|
158
|
+
// Ignore remote participants that do not publish codec preference in presence (transcriber).
|
|
159
|
+
if (remoteCodecs.length) {
|
|
160
|
+
codecNotSupportedByRemote = codecNotSupportedByRemote
|
|
161
|
+
|| !remoteCodecs.find(participantCodec => participantCodec === localCodec);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (!codecNotSupportedByRemote) {
|
|
165
|
+
acc.push(localCodec);
|
|
166
|
+
}
|
|
167
|
+
return acc;
|
|
168
|
+
}, []);
|
|
169
|
+
if (!selectedCodecOrder.length) {
|
|
170
|
+
logger.warn('Invalid codec list generated because of a user joining/leaving the call');
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
session.setVideoCodecs(selectedCodecOrder, this.screenshareCodec?.jvb);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Changes the codec preference order.
|
|
177
|
+
*
|
|
178
|
+
* @param {JitsiLocalTrack} localTrack - The local video track.
|
|
179
|
+
* @param {CodecMimeType} codec - The codec used for encoding the given local video track.
|
|
180
|
+
* @returns boolean - Returns true if the codec order has been updated, false otherwise.
|
|
181
|
+
*/
|
|
182
|
+
changeCodecPreferenceOrder(localTrack, codec) {
|
|
183
|
+
const session = this.conference.getActiveMediaSession();
|
|
184
|
+
const connectionType = session.isP2P ? 'p2p' : 'jvb';
|
|
185
|
+
const codecOrder = this.codecPreferenceOrder[connectionType];
|
|
186
|
+
const videoType = localTrack.getVideoType();
|
|
187
|
+
const codecsByVideoType = VIDEO_CODECS_BY_COMPLEXITY[videoType]
|
|
188
|
+
.filter(val => Boolean(codecOrder.find(supportedCodec => supportedCodec === val)));
|
|
189
|
+
const codecIndex = codecsByVideoType.findIndex(val => val === codec.toLowerCase());
|
|
190
|
+
// Do nothing if we are using the lowest complexity codec already.
|
|
191
|
+
if (codecIndex === codecsByVideoType.length - 1) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
const newCodec = codecsByVideoType[codecIndex + 1];
|
|
195
|
+
if (videoType === VideoType.CAMERA) {
|
|
196
|
+
const idx = codecOrder.findIndex(val => val === newCodec);
|
|
197
|
+
codecOrder.splice(idx, 1);
|
|
198
|
+
codecOrder.unshift(newCodec);
|
|
199
|
+
logger.info(`QualityController - switching camera codec to ${newCodec} because of cpu restriction`);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
this.screenshareCodec[connectionType] = newCodec;
|
|
203
|
+
logger.info(`QualityController - switching screenshare codec to ${newCodec} because of cpu restriction`);
|
|
204
|
+
}
|
|
205
|
+
this.selectPreferredCodec(session);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Updates the aggregate list of the codecs supported by all the visitors in the call and calculates the
|
|
210
|
+
* selected codec if needed.
|
|
211
|
+
* @param {Array} codecList - visitor codecs.
|
|
212
|
+
* @returns {void}
|
|
213
|
+
*/
|
|
214
|
+
updateVisitorCodecs(codecList) {
|
|
215
|
+
if (this.visitorCodecs === codecList) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
this.visitorCodecs = codecList;
|
|
219
|
+
this.selectPreferredCodec();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=CodecSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodecSelection.js","sourceRoot":"","sources":["../../../../modules/qualitycontrol/CodecSelection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { JitsiConferenceEvents } from '../../JitsiConferenceEvents';
|
|
2
|
+
import { MockSignalingLayerImpl } from '../RTC/MockClasses';
|
|
3
|
+
import Listenable from '../util/Listenable';
|
|
4
|
+
/**
|
|
5
|
+
* MockParticipant
|
|
6
|
+
*/
|
|
7
|
+
export class MockParticipant {
|
|
8
|
+
/**
|
|
9
|
+
* A constructor...
|
|
10
|
+
*/
|
|
11
|
+
constructor(id) {
|
|
12
|
+
this.id = id;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the endpoint id of the participant.
|
|
16
|
+
* @returns <string>
|
|
17
|
+
*/
|
|
18
|
+
getId() {
|
|
19
|
+
return this.id;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* MockLocalTrack
|
|
24
|
+
*/
|
|
25
|
+
export class MockLocalTrack {
|
|
26
|
+
/**
|
|
27
|
+
* Constructor
|
|
28
|
+
* @param {number} resolution
|
|
29
|
+
* @param {VideoType} videoType
|
|
30
|
+
*/
|
|
31
|
+
constructor(id, resolution, videoType) {
|
|
32
|
+
this.rtcId = id;
|
|
33
|
+
this.captureResolution = resolution;
|
|
34
|
+
this.maxEnabledResolution = resolution;
|
|
35
|
+
this.videoType = videoType;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Gets the capture resolution of the mock local track.
|
|
39
|
+
* @returns - The capture resolution.
|
|
40
|
+
*/
|
|
41
|
+
getCaptureResolution() {
|
|
42
|
+
return this.captureResolution;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns the video type of the mock local track.
|
|
46
|
+
* @returns {VideoType}
|
|
47
|
+
*/
|
|
48
|
+
getVideoType() {
|
|
49
|
+
return this.videoType;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* MockConference
|
|
54
|
+
*/
|
|
55
|
+
export class MockConference extends Listenable {
|
|
56
|
+
/**
|
|
57
|
+
* A constructor...
|
|
58
|
+
*/
|
|
59
|
+
constructor(rtc) {
|
|
60
|
+
super();
|
|
61
|
+
this.options = {
|
|
62
|
+
config: {}
|
|
63
|
+
};
|
|
64
|
+
this.activeMediaSession = undefined;
|
|
65
|
+
this.jvbJingleSession = null;
|
|
66
|
+
this.mediaSessions = [];
|
|
67
|
+
this.participants = [];
|
|
68
|
+
this.rtc = rtc;
|
|
69
|
+
this._signalingLayer = new MockSignalingLayerImpl();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Add a mock participant to the conference
|
|
73
|
+
* @param {MockParticipant} participant
|
|
74
|
+
* @param {Array<string>} codecList
|
|
75
|
+
* @param {String} codecType
|
|
76
|
+
*/
|
|
77
|
+
addParticipant(participant, codecList, codecType) {
|
|
78
|
+
this.participants.push(participant);
|
|
79
|
+
this._signalingLayer.setPeerMediaInfo(true, participant.getId(), codecList, codecType);
|
|
80
|
+
this.eventEmitter.emit(JitsiConferenceEvents.USER_JOINED);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Returns the active media session.
|
|
84
|
+
* @returns {JingleSessionPC}
|
|
85
|
+
*/
|
|
86
|
+
getActiveMediaSession() {
|
|
87
|
+
return this.jvbJingleSession;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Returns a list of forwarded sources.
|
|
91
|
+
* @returns {Array<string>}
|
|
92
|
+
*/
|
|
93
|
+
getForwardedSources() {
|
|
94
|
+
return this.rtc.getForwardedSources();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns the list of participants.
|
|
98
|
+
* @returns Array<MockParticipant>
|
|
99
|
+
*/
|
|
100
|
+
getParticipants() {
|
|
101
|
+
return this.participants;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Checks if E2EE is enabled.
|
|
105
|
+
* @returns {boolean}
|
|
106
|
+
*/
|
|
107
|
+
isE2EEEnabled() {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Removes the participant from the conference.
|
|
112
|
+
* @param {MockParticipant} endpoint
|
|
113
|
+
*/
|
|
114
|
+
removeParticipant(endpoint) {
|
|
115
|
+
this.participants = this.participants.filter(p => p !== endpoint);
|
|
116
|
+
this._signalingLayer.setPeerMediaInfo(false, endpoint.getId(), undefined, undefined);
|
|
117
|
+
this.eventEmitter.emit(JitsiConferenceEvents.USER_LEFT);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=MockClasses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockClasses.js","sourceRoot":"","sources":["../../../../modules/qualitycontrol/MockClasses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAW,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAG5C;;GAEG;AACH,MAAM,OAAO,eAAe;IAGxB;;OAEG;IACH,YAAY,EAAU;QAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IAMvB;;;;OAIG;IACH,YAAY,EAAU,EAAE,UAAkB,EAAE,SAAoB;QAC5D,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAGD;;;OAGG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAS1C;;OAEG;IACH,YAAY,GAAY;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG;YACX,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,WAA4B,EAAE,SAAwB,EAAE,SAAiB;QACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,aAAa;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,QAAyB;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACJ"}
|