@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,165 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/*
|
|
3
|
+
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
|
|
4
|
+
* in FIPS PUB 180-1
|
|
5
|
+
* Version 2.1a Copyright Paul Johnston 2000 - 2002.
|
|
6
|
+
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
|
7
|
+
* Distributed under the BSD License
|
|
8
|
+
* See http://pajhome.org.uk/crypt/md5 for details.
|
|
9
|
+
*/
|
|
10
|
+
/* global define */
|
|
11
|
+
/* Some functions and variables have been stripped for use with Strophe */
|
|
12
|
+
/*
|
|
13
|
+
* Calculate the SHA-1 of an array of big-endian words, and a bit length
|
|
14
|
+
*/
|
|
15
|
+
function core_sha1(x, len) {
|
|
16
|
+
/* append padding */
|
|
17
|
+
x[len >> 5] |= 0x80 << (24 - len % 32);
|
|
18
|
+
x[((len + 64 >> 9) << 4) + 15] = len;
|
|
19
|
+
var w = new Array(80);
|
|
20
|
+
var a = 1732584193;
|
|
21
|
+
var b = -271733879;
|
|
22
|
+
var c = -1732584194;
|
|
23
|
+
var d = 271733878;
|
|
24
|
+
var e = -1009589776;
|
|
25
|
+
var i, j, t, olda, oldb, oldc, oldd, olde;
|
|
26
|
+
for (i = 0; i < x.length; i += 16) {
|
|
27
|
+
olda = a;
|
|
28
|
+
oldb = b;
|
|
29
|
+
oldc = c;
|
|
30
|
+
oldd = d;
|
|
31
|
+
olde = e;
|
|
32
|
+
for (j = 0; j < 80; j++) {
|
|
33
|
+
if (j < 16) {
|
|
34
|
+
w[j] = x[i + j];
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
|
|
38
|
+
}
|
|
39
|
+
t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
|
|
40
|
+
e = d;
|
|
41
|
+
d = c;
|
|
42
|
+
c = rol(b, 30);
|
|
43
|
+
b = a;
|
|
44
|
+
a = t;
|
|
45
|
+
}
|
|
46
|
+
a = safe_add(a, olda);
|
|
47
|
+
b = safe_add(b, oldb);
|
|
48
|
+
c = safe_add(c, oldc);
|
|
49
|
+
d = safe_add(d, oldd);
|
|
50
|
+
e = safe_add(e, olde);
|
|
51
|
+
}
|
|
52
|
+
return [a, b, c, d, e];
|
|
53
|
+
}
|
|
54
|
+
/*
|
|
55
|
+
* Perform the appropriate triplet combination function for the current
|
|
56
|
+
* iteration
|
|
57
|
+
*/
|
|
58
|
+
function sha1_ft(t, b, c, d) {
|
|
59
|
+
if (t < 20) {
|
|
60
|
+
return (b & c) | ((~b) & d);
|
|
61
|
+
}
|
|
62
|
+
if (t < 40) {
|
|
63
|
+
return b ^ c ^ d;
|
|
64
|
+
}
|
|
65
|
+
if (t < 60) {
|
|
66
|
+
return (b & c) | (b & d) | (c & d);
|
|
67
|
+
}
|
|
68
|
+
return b ^ c ^ d;
|
|
69
|
+
}
|
|
70
|
+
/*
|
|
71
|
+
* Determine the appropriate additive constant for the current iteration
|
|
72
|
+
*/
|
|
73
|
+
function sha1_kt(t) {
|
|
74
|
+
return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;
|
|
75
|
+
}
|
|
76
|
+
/*
|
|
77
|
+
* Calculate the HMAC-SHA1 of a key and some data
|
|
78
|
+
*/
|
|
79
|
+
function core_hmac_sha1(key, data) {
|
|
80
|
+
var bkey = str2binb(key);
|
|
81
|
+
if (bkey.length > 16) {
|
|
82
|
+
bkey = core_sha1(bkey, key.length * 8);
|
|
83
|
+
}
|
|
84
|
+
var ipad = new Array(16), opad = new Array(16);
|
|
85
|
+
for (var i = 0; i < 16; i++) {
|
|
86
|
+
ipad[i] = bkey[i] ^ 0x36363636;
|
|
87
|
+
opad[i] = bkey[i] ^ 0x5C5C5C5C;
|
|
88
|
+
}
|
|
89
|
+
var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * 8);
|
|
90
|
+
return core_sha1(opad.concat(hash), 512 + 160);
|
|
91
|
+
}
|
|
92
|
+
/*
|
|
93
|
+
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
|
94
|
+
* to work around bugs in some JS interpreters.
|
|
95
|
+
*/
|
|
96
|
+
function safe_add(x, y) {
|
|
97
|
+
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
|
|
98
|
+
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
99
|
+
return (msw << 16) | (lsw & 0xFFFF);
|
|
100
|
+
}
|
|
101
|
+
/*
|
|
102
|
+
* Bitwise rotate a 32-bit number to the left.
|
|
103
|
+
*/
|
|
104
|
+
function rol(num, cnt) {
|
|
105
|
+
return (num << cnt) | (num >>> (32 - cnt));
|
|
106
|
+
}
|
|
107
|
+
/*
|
|
108
|
+
* Convert an 8-bit or 16-bit string to an array of big-endian words
|
|
109
|
+
* In 8-bit function, characters >255 have their hi-byte silently ignored.
|
|
110
|
+
*/
|
|
111
|
+
function str2binb(str) {
|
|
112
|
+
var bin = [];
|
|
113
|
+
var mask = 255;
|
|
114
|
+
for (var i = 0; i < str.length * 8; i += 8) {
|
|
115
|
+
bin[i >> 5] |= (str.charCodeAt(i / 8) & mask) << (24 - i % 32);
|
|
116
|
+
}
|
|
117
|
+
return bin;
|
|
118
|
+
}
|
|
119
|
+
/*
|
|
120
|
+
* Convert an array of big-endian words to a base-64 string
|
|
121
|
+
*/
|
|
122
|
+
function binb2b64(binarray) {
|
|
123
|
+
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
124
|
+
var str = "";
|
|
125
|
+
var triplet, j;
|
|
126
|
+
for (var i = 0; i < binarray.length * 4; i += 3) {
|
|
127
|
+
triplet = (((binarray[i >> 2] >> 8 * (3 - i % 4)) & 0xFF) << 16) |
|
|
128
|
+
(((binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4)) & 0xFF) << 8) |
|
|
129
|
+
((binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4)) & 0xFF);
|
|
130
|
+
for (j = 0; j < 4; j++) {
|
|
131
|
+
if (i * 8 + j * 6 > binarray.length * 32) {
|
|
132
|
+
str += "=";
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return str;
|
|
140
|
+
}
|
|
141
|
+
/*
|
|
142
|
+
* Convert an array of big-endian words to a string
|
|
143
|
+
*/
|
|
144
|
+
function binb2str(bin) {
|
|
145
|
+
var str = "";
|
|
146
|
+
var mask = 255;
|
|
147
|
+
for (var i = 0; i < bin.length * 32; i += 8) {
|
|
148
|
+
str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask);
|
|
149
|
+
}
|
|
150
|
+
return str;
|
|
151
|
+
}
|
|
152
|
+
/*
|
|
153
|
+
* These are the functions you'll usually want to call
|
|
154
|
+
* They take string arguments and return either hex or base-64 encoded strings
|
|
155
|
+
*/
|
|
156
|
+
const SHA1 = {
|
|
157
|
+
b64_hmac_sha1: function (key, data) { return binb2b64(core_hmac_sha1(key, data)); },
|
|
158
|
+
b64_sha1: function (s) { return binb2b64(core_sha1(str2binb(s), s.length * 8)); },
|
|
159
|
+
binb2str: binb2str,
|
|
160
|
+
core_hmac_sha1: core_hmac_sha1,
|
|
161
|
+
str_hmac_sha1: function (key, data) { return binb2str(core_hmac_sha1(key, data)); },
|
|
162
|
+
str_sha1: function (s) { return binb2str(core_sha1(str2binb(s), s.length * 8)); },
|
|
163
|
+
};
|
|
164
|
+
export { SHA1 as default };
|
|
165
|
+
//# sourceMappingURL=sha1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sha1.js","sourceRoot":"","sources":["../../../../modules/xmpp/sha1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import { $iq, Strophe } from 'strophe.js';
|
|
3
|
+
import { handleStropheError } from './StropheErrorHandler';
|
|
4
|
+
Strophe.addConnectionPlugin('disco', {
|
|
5
|
+
_connection: null,
|
|
6
|
+
_identities: [],
|
|
7
|
+
_features: [],
|
|
8
|
+
_items: [],
|
|
9
|
+
/** Function: init
|
|
10
|
+
* Plugin init
|
|
11
|
+
*
|
|
12
|
+
* Parameters:
|
|
13
|
+
* (Strophe.Connection) conn - Strophe connection
|
|
14
|
+
*/
|
|
15
|
+
init: function (conn) {
|
|
16
|
+
this._connection = conn;
|
|
17
|
+
this._identities = [];
|
|
18
|
+
this._features = [];
|
|
19
|
+
this._items = [];
|
|
20
|
+
// disco info
|
|
21
|
+
conn.addHandler(this._onDiscoInfo.bind(this), Strophe.NS.DISCO_INFO, 'iq', 'get', null, null);
|
|
22
|
+
// disco items
|
|
23
|
+
conn.addHandler(this._onDiscoItems.bind(this), Strophe.NS.DISCO_ITEMS, 'iq', 'get', null, null);
|
|
24
|
+
},
|
|
25
|
+
/** Function: addIdentity
|
|
26
|
+
* See http://xmpp.org/registrar/disco-categories.html
|
|
27
|
+
* Parameters:
|
|
28
|
+
* (String) category - category of identity (like client, automation, etc ...)
|
|
29
|
+
* (String) type - type of identity (like pc, web, bot , etc ...)
|
|
30
|
+
* (String) name - name of identity in natural language
|
|
31
|
+
* (String) lang - lang of name parameter
|
|
32
|
+
*
|
|
33
|
+
* Returns:
|
|
34
|
+
* Boolean
|
|
35
|
+
*/
|
|
36
|
+
addIdentity: function (category, type, name, lang) {
|
|
37
|
+
if (typeof name === 'undefined') {
|
|
38
|
+
name = '';
|
|
39
|
+
}
|
|
40
|
+
if (typeof lang === 'undefined') {
|
|
41
|
+
lang = '';
|
|
42
|
+
}
|
|
43
|
+
for (var i = 0; i < this._identities.length; i++) {
|
|
44
|
+
if (this._identities[i].category == category &&
|
|
45
|
+
this._identities[i].type == type &&
|
|
46
|
+
this._identities[i].name == name &&
|
|
47
|
+
this._identities[i].lang == lang) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
this._identities.push({ category: category, type: type, name: name, lang: lang });
|
|
52
|
+
return true;
|
|
53
|
+
},
|
|
54
|
+
/** Function: addFeature
|
|
55
|
+
*
|
|
56
|
+
* Parameters:
|
|
57
|
+
* (String) var_name - feature name (like jabber:iq:version)
|
|
58
|
+
*
|
|
59
|
+
* Returns:
|
|
60
|
+
* boolean
|
|
61
|
+
*/
|
|
62
|
+
addFeature: function (var_name) {
|
|
63
|
+
for (var i = 0; i < this._features.length; i++) {
|
|
64
|
+
if (this._features[i] == var_name)
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
this._features.push(var_name);
|
|
68
|
+
return true;
|
|
69
|
+
},
|
|
70
|
+
/** Function: removeFeature
|
|
71
|
+
*
|
|
72
|
+
* Parameters:
|
|
73
|
+
* (String) var_name - feature name (like jabber:iq:version)
|
|
74
|
+
*
|
|
75
|
+
* Returns:
|
|
76
|
+
* boolean
|
|
77
|
+
*/
|
|
78
|
+
removeFeature: function (var_name) {
|
|
79
|
+
for (var i = 0; i < this._features.length; i++) {
|
|
80
|
+
if (this._features[i] === var_name) {
|
|
81
|
+
this._features.splice(i, 1);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
},
|
|
87
|
+
/** Function: addItem
|
|
88
|
+
*
|
|
89
|
+
* Parameters:
|
|
90
|
+
* (String) jid
|
|
91
|
+
* (String) name
|
|
92
|
+
* (String) node
|
|
93
|
+
* (Function) call_back
|
|
94
|
+
*
|
|
95
|
+
* Returns:
|
|
96
|
+
* boolean
|
|
97
|
+
*/
|
|
98
|
+
addItem: function (jid, name, node, call_back) {
|
|
99
|
+
if (node && !call_back)
|
|
100
|
+
return false;
|
|
101
|
+
this._items.push({ jid: jid, name: name, node: node, call_back: call_back });
|
|
102
|
+
return true;
|
|
103
|
+
},
|
|
104
|
+
/** Function: info
|
|
105
|
+
* Info query
|
|
106
|
+
*
|
|
107
|
+
* Parameters:
|
|
108
|
+
* (Function) call_back
|
|
109
|
+
* (String) jid
|
|
110
|
+
* (String) node
|
|
111
|
+
*/
|
|
112
|
+
info: function (jid, node, success, error, timeout) {
|
|
113
|
+
var attrs = { xmlns: Strophe.NS.DISCO_INFO };
|
|
114
|
+
if (node)
|
|
115
|
+
attrs.node = node;
|
|
116
|
+
var info = $iq({ from: this._connection.jid,
|
|
117
|
+
to: jid, type: 'get' }).c('query', attrs);
|
|
118
|
+
this._connection.sendIQ(info, success, error ? err => {
|
|
119
|
+
handleStropheError(err, {
|
|
120
|
+
jid,
|
|
121
|
+
node,
|
|
122
|
+
operation: 'disco info query',
|
|
123
|
+
userJid: this._connection.jid
|
|
124
|
+
});
|
|
125
|
+
error(err);
|
|
126
|
+
} : undefined, timeout);
|
|
127
|
+
},
|
|
128
|
+
/** Function: items
|
|
129
|
+
* Items query
|
|
130
|
+
*
|
|
131
|
+
* Parameters:
|
|
132
|
+
* (Function) call_back
|
|
133
|
+
* (String) jid
|
|
134
|
+
* (String) node
|
|
135
|
+
*/
|
|
136
|
+
items: function (jid, node, success, error, timeout) {
|
|
137
|
+
var attrs = { xmlns: Strophe.NS.DISCO_ITEMS };
|
|
138
|
+
if (node)
|
|
139
|
+
attrs.node = node;
|
|
140
|
+
var items = $iq({ from: this._connection.jid,
|
|
141
|
+
to: jid, type: 'get' }).c('query', attrs);
|
|
142
|
+
this._connection.sendIQ(items, success, error ? err => {
|
|
143
|
+
handleStropheError(err, {
|
|
144
|
+
jid,
|
|
145
|
+
node,
|
|
146
|
+
operation: 'disco items query',
|
|
147
|
+
userJid: this._connection.jid
|
|
148
|
+
});
|
|
149
|
+
error(err);
|
|
150
|
+
} : undefined, timeout);
|
|
151
|
+
},
|
|
152
|
+
/** PrivateFunction: _buildIQResult
|
|
153
|
+
*/
|
|
154
|
+
_buildIQResult: function (stanza, query_attrs) {
|
|
155
|
+
var id = stanza.getAttribute('id');
|
|
156
|
+
var from = stanza.getAttribute('from');
|
|
157
|
+
var iqresult = $iq({ type: 'result', id: id });
|
|
158
|
+
if (from !== null) {
|
|
159
|
+
iqresult.attrs({ to: from });
|
|
160
|
+
}
|
|
161
|
+
return iqresult.c('query', query_attrs);
|
|
162
|
+
},
|
|
163
|
+
/** PrivateFunction: _onDiscoInfo
|
|
164
|
+
* Called when receive info request
|
|
165
|
+
*/
|
|
166
|
+
_onDiscoInfo: function (stanza) {
|
|
167
|
+
var node = stanza.getElementsByTagName('query')[0].getAttribute('node');
|
|
168
|
+
var attrs = { xmlns: Strophe.NS.DISCO_INFO };
|
|
169
|
+
var i;
|
|
170
|
+
if (node) {
|
|
171
|
+
attrs.node = node;
|
|
172
|
+
}
|
|
173
|
+
var iqresult = this._buildIQResult(stanza, attrs);
|
|
174
|
+
for (i = 0; i < this._identities.length; i++) {
|
|
175
|
+
attrs = { category: this._identities[i].category,
|
|
176
|
+
type: this._identities[i].type };
|
|
177
|
+
if (this._identities[i].name)
|
|
178
|
+
attrs.name = this._identities[i].name;
|
|
179
|
+
if (this._identities[i].lang)
|
|
180
|
+
attrs['xml:lang'] = this._identities[i].lang;
|
|
181
|
+
iqresult.c('identity', attrs).up();
|
|
182
|
+
}
|
|
183
|
+
for (i = 0; i < this._features.length; i++) {
|
|
184
|
+
iqresult.c('feature', { 'var': this._features[i] }).up();
|
|
185
|
+
}
|
|
186
|
+
this._connection.send(iqresult.tree());
|
|
187
|
+
return true;
|
|
188
|
+
},
|
|
189
|
+
/** PrivateFunction: _onDiscoItems
|
|
190
|
+
* Called when receive items request
|
|
191
|
+
*/
|
|
192
|
+
_onDiscoItems: function (stanza) {
|
|
193
|
+
var query_attrs = { xmlns: Strophe.NS.DISCO_ITEMS };
|
|
194
|
+
var node = stanza.getElementsByTagName('query')[0].getAttribute('node');
|
|
195
|
+
var items, i;
|
|
196
|
+
if (node) {
|
|
197
|
+
query_attrs.node = node;
|
|
198
|
+
items = [];
|
|
199
|
+
for (i = 0; i < this._items.length; i++) {
|
|
200
|
+
if (this._items[i].node == node) {
|
|
201
|
+
items = this._items[i].call_back(stanza);
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
items = this._items;
|
|
208
|
+
}
|
|
209
|
+
var iqresult = this._buildIQResult(stanza, query_attrs);
|
|
210
|
+
for (i = 0; i < items.length; i++) {
|
|
211
|
+
var attrs = { jid: items[i].jid };
|
|
212
|
+
if (items[i].name)
|
|
213
|
+
attrs.name = items[i].name;
|
|
214
|
+
if (items[i].node)
|
|
215
|
+
attrs.node = items[i].node;
|
|
216
|
+
iqresult.c('item', attrs).up();
|
|
217
|
+
}
|
|
218
|
+
this._connection.send(iqresult.tree());
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
//# sourceMappingURL=strophe.disco.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strophe.disco.js","sourceRoot":"","sources":["../../../../modules/xmpp/strophe.disco.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { getLogger } from '@jitsi/logger';
|
|
2
|
+
import { Strophe } from 'strophe.js';
|
|
3
|
+
import { CONNECTION_REDIRECTED } from '../../JitsiConnectionEvents';
|
|
4
|
+
import { XMPPEvents } from '../../service/xmpp/XMPPEvents';
|
|
5
|
+
import { exists, findFirst, getAttribute } from '../util/XMLUtils';
|
|
6
|
+
import ChatRoom from './ChatRoom';
|
|
7
|
+
import { ConnectionPluginListenable } from './ConnectionPlugin';
|
|
8
|
+
const logger = getLogger('xmpp:strophe.emuc');
|
|
9
|
+
/**
|
|
10
|
+
* MUC connection plugin.
|
|
11
|
+
*/
|
|
12
|
+
export default class MucConnectionPlugin extends ConnectionPluginListenable {
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param xmpp
|
|
16
|
+
*/
|
|
17
|
+
constructor(xmpp) {
|
|
18
|
+
super();
|
|
19
|
+
this.xmpp = xmpp;
|
|
20
|
+
this.rooms = {};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param connection
|
|
25
|
+
*/
|
|
26
|
+
init(connection) {
|
|
27
|
+
super.init(connection);
|
|
28
|
+
// add handlers (just once)
|
|
29
|
+
this.connection.addHandler(this.onPresence.bind(this), null, 'presence', null, null, null, null);
|
|
30
|
+
this.connection.addHandler(this.onPresenceUnavailable.bind(this), null, 'presence', 'unavailable', null);
|
|
31
|
+
this.connection.addHandler(this.onPresenceError.bind(this), null, 'presence', 'error', null);
|
|
32
|
+
this.connection.addHandler(this.onMessage.bind(this), null, 'message', null, null);
|
|
33
|
+
this.connection.addHandler(this.onMute.bind(this), 'http://jitsi.org/jitmeet/audio', 'iq', 'set', null, null);
|
|
34
|
+
this.connection.addHandler(this.onMuteVideo.bind(this), 'http://jitsi.org/jitmeet/video', 'iq', 'set', null, null);
|
|
35
|
+
this.connection.addHandler(this.onMuteDesktop.bind(this), 'http://jitsi.org/jitmeet/desktop', 'iq', 'set', null, null);
|
|
36
|
+
this.connection.addHandler(this.onVisitors.bind(this), 'jitsi:visitors', 'iq', 'set', null, null);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param jid
|
|
41
|
+
* @param password
|
|
42
|
+
* @param options
|
|
43
|
+
*/
|
|
44
|
+
createRoom(jid, password, options) {
|
|
45
|
+
const roomJid = Strophe.getBareJidFromJid(jid);
|
|
46
|
+
if (this.isRoomCreated(roomJid)) {
|
|
47
|
+
const errmsg = 'You are already in the room!';
|
|
48
|
+
logger.error(errmsg);
|
|
49
|
+
throw new Error(errmsg);
|
|
50
|
+
}
|
|
51
|
+
this.rooms[roomJid] = new ChatRoom(this.connection, jid, password, this.xmpp, options);
|
|
52
|
+
this.eventEmitter.emit(XMPPEvents.EMUC_ROOM_ADDED, this.rooms[roomJid]);
|
|
53
|
+
return this.rooms[roomJid];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if a room with the passed JID is already created.
|
|
57
|
+
*
|
|
58
|
+
* @param {string} roomJid - The JID of the room.
|
|
59
|
+
* @returns {boolean}
|
|
60
|
+
*/
|
|
61
|
+
isRoomCreated(roomJid) {
|
|
62
|
+
return roomJid in this.rooms;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* @param jid
|
|
67
|
+
*/
|
|
68
|
+
doLeave(jid) {
|
|
69
|
+
this.eventEmitter.emit(XMPPEvents.EMUC_ROOM_REMOVED, this.rooms[jid]);
|
|
70
|
+
delete this.rooms[jid];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
* @param pres
|
|
75
|
+
*/
|
|
76
|
+
onPresence(pres) {
|
|
77
|
+
const from = pres.getAttribute('from');
|
|
78
|
+
// What is this for? A workaround for something?
|
|
79
|
+
if (pres.getAttribute('type')) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
83
|
+
if (!room) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
// Parse status.
|
|
87
|
+
// Use *|xmlns to match xmlns attributes across any namespace (CSS Selectors Level 3)
|
|
88
|
+
if (exists(pres, ':scope>x[*|xmlns="http://jabber.org/protocol/muc#user"]>status[code="201"]')) {
|
|
89
|
+
room.createNonAnonymousRoom();
|
|
90
|
+
}
|
|
91
|
+
room.onPresence(pres);
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* @param pres
|
|
97
|
+
*/
|
|
98
|
+
onPresenceUnavailable(pres) {
|
|
99
|
+
const from = pres.getAttribute('from');
|
|
100
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
101
|
+
if (!room) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
room.onPresenceUnavailable(pres, from);
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
*
|
|
109
|
+
* @param pres
|
|
110
|
+
*/
|
|
111
|
+
onPresenceError(pres) {
|
|
112
|
+
const from = pres.getAttribute('from');
|
|
113
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
114
|
+
if (!room) {
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
room.onPresenceError(pres, from);
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
*
|
|
122
|
+
* @param msg
|
|
123
|
+
*/
|
|
124
|
+
onMessage(msg) {
|
|
125
|
+
// FIXME: this is a hack. but jingle on muc makes nickchanges hard
|
|
126
|
+
const from = msg.getAttribute('from');
|
|
127
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
128
|
+
if (!room) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
room.onMessage(msg, from);
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Handle remote mute request from focus.
|
|
136
|
+
*
|
|
137
|
+
* @param iq
|
|
138
|
+
*/
|
|
139
|
+
onMute(iq) {
|
|
140
|
+
const from = iq.getAttribute('from');
|
|
141
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
142
|
+
// Returning false would result in the listener being deregistered by Strophe
|
|
143
|
+
if (!room) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
room.onMute(iq);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Handle remote video mute request from focus.
|
|
151
|
+
*
|
|
152
|
+
* @param iq
|
|
153
|
+
*/
|
|
154
|
+
onMuteVideo(iq) {
|
|
155
|
+
const from = iq.getAttribute('from');
|
|
156
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
157
|
+
// Returning false would result in the listener being deregistered by Strophe
|
|
158
|
+
if (!room) {
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
room.onMuteVideo(iq);
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Handle remote desktop sharing mute request from focus.
|
|
166
|
+
*
|
|
167
|
+
* @param iq
|
|
168
|
+
*/
|
|
169
|
+
onMuteDesktop(iq) {
|
|
170
|
+
const from = iq.getAttribute('from');
|
|
171
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
172
|
+
// Returning false would result in the listener being deregistered by Strophe
|
|
173
|
+
if (!room) {
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
room.onMuteDesktop(iq);
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* A visitor IQ is received, pass it to the room.
|
|
181
|
+
* @param iq The received iq.
|
|
182
|
+
* @returns {boolean}
|
|
183
|
+
*/
|
|
184
|
+
onVisitors(iq) {
|
|
185
|
+
const from = iq.getAttribute('from');
|
|
186
|
+
const room = this.rooms[Strophe.getBareJidFromJid(from)];
|
|
187
|
+
if (!room) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
// Use *|xmlns to match xmlns attributes across any namespace (CSS Selectors Level 3)
|
|
191
|
+
const visitors = findFirst(iq, ':scope>visitors[*|xmlns="jitsi:visitors"]');
|
|
192
|
+
const response = findFirst(visitors, ':scope>promotion-response');
|
|
193
|
+
if (visitors && response) {
|
|
194
|
+
if (String(getAttribute(response, 'allow')).toLowerCase() === 'true') {
|
|
195
|
+
logger.info('Promotion request accepted. Redirected to main room.');
|
|
196
|
+
this.xmpp.eventEmitter.emit(CONNECTION_REDIRECTED, undefined, getAttribute(visitors, 'focusjid'), getAttribute(response, 'username'));
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
logger.info('Promotion request rejected.');
|
|
200
|
+
this.xmpp.eventEmitter.emit(XMPPEvents.VISITORS_REJECTION);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=strophe.emuc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strophe.emuc.js","sourceRoot":"","sources":["../../../../modules/xmpp/strophe.emuc.ts"],"names":[],"mappings":"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"}
|