@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.
Files changed (350) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +26 -0
  3. package/dist/esm/JitsiConference.js +3692 -0
  4. package/dist/esm/JitsiConference.js.map +1 -0
  5. package/dist/esm/JitsiConferenceErrors.js +126 -0
  6. package/dist/esm/JitsiConferenceErrors.js.map +1 -0
  7. package/dist/esm/JitsiConferenceEventManager.js +424 -0
  8. package/dist/esm/JitsiConferenceEventManager.js.map +1 -0
  9. package/dist/esm/JitsiConferenceEvents.js +431 -0
  10. package/dist/esm/JitsiConferenceEvents.js.map +1 -0
  11. package/dist/esm/JitsiConnection.js +187 -0
  12. package/dist/esm/JitsiConnection.js.map +1 -0
  13. package/dist/esm/JitsiConnectionErrors.js +52 -0
  14. package/dist/esm/JitsiConnectionErrors.js.map +1 -0
  15. package/dist/esm/JitsiConnectionEvents.js +57 -0
  16. package/dist/esm/JitsiConnectionEvents.js.map +1 -0
  17. package/dist/esm/JitsiMediaDevices.js +221 -0
  18. package/dist/esm/JitsiMediaDevices.js.map +1 -0
  19. package/dist/esm/JitsiMediaDevicesEvents.js +29 -0
  20. package/dist/esm/JitsiMediaDevicesEvents.js.map +1 -0
  21. package/dist/esm/JitsiMeetJS.js +499 -0
  22. package/dist/esm/JitsiMeetJS.js.map +1 -0
  23. package/dist/esm/JitsiParticipant.js +323 -0
  24. package/dist/esm/JitsiParticipant.js.map +1 -0
  25. package/dist/esm/JitsiTrackError.js +122 -0
  26. package/dist/esm/JitsiTrackError.js.map +1 -0
  27. package/dist/esm/JitsiTrackErrors.js +91 -0
  28. package/dist/esm/JitsiTrackErrors.js.map +1 -0
  29. package/dist/esm/JitsiTrackEvents.js +60 -0
  30. package/dist/esm/JitsiTrackEvents.js.map +1 -0
  31. package/dist/esm/JitsiTranscriptionStatus.js +15 -0
  32. package/dist/esm/JitsiTranscriptionStatus.js.map +1 -0
  33. package/dist/esm/modules/RTC/BridgeChannel.js +398 -0
  34. package/dist/esm/modules/RTC/BridgeChannel.js.map +1 -0
  35. package/dist/esm/modules/RTC/JitsiLocalTrack.js +896 -0
  36. package/dist/esm/modules/RTC/JitsiLocalTrack.js.map +1 -0
  37. package/dist/esm/modules/RTC/JitsiRemoteTrack.js +427 -0
  38. package/dist/esm/modules/RTC/JitsiRemoteTrack.js.map +1 -0
  39. package/dist/esm/modules/RTC/JitsiTrack.js +453 -0
  40. package/dist/esm/modules/RTC/JitsiTrack.js.map +1 -0
  41. package/dist/esm/modules/RTC/MockClasses.js +388 -0
  42. package/dist/esm/modules/RTC/MockClasses.js.map +1 -0
  43. package/dist/esm/modules/RTC/RTC.js +658 -0
  44. package/dist/esm/modules/RTC/RTC.js.map +1 -0
  45. package/dist/esm/modules/RTC/RTCUtils.js +762 -0
  46. package/dist/esm/modules/RTC/RTCUtils.js.map +1 -0
  47. package/dist/esm/modules/RTC/ScreenObtainer.js +380 -0
  48. package/dist/esm/modules/RTC/ScreenObtainer.js.map +1 -0
  49. package/dist/esm/modules/RTC/TPCUtils.js +803 -0
  50. package/dist/esm/modules/RTC/TPCUtils.js.map +1 -0
  51. package/dist/esm/modules/RTC/TraceablePeerConnection.js +2223 -0
  52. package/dist/esm/modules/RTC/TraceablePeerConnection.js.map +1 -0
  53. package/dist/esm/modules/RTCStats/DefaulLogStorage.js +35 -0
  54. package/dist/esm/modules/RTCStats/DefaulLogStorage.js.map +1 -0
  55. package/dist/esm/modules/RTCStats/RTCStats.js +219 -0
  56. package/dist/esm/modules/RTCStats/RTCStats.js.map +1 -0
  57. package/dist/esm/modules/RTCStats/RTCStatsEvents.js +92 -0
  58. package/dist/esm/modules/RTCStats/RTCStatsEvents.js.map +1 -0
  59. package/dist/esm/modules/RTCStats/interfaces.js +2 -0
  60. package/dist/esm/modules/RTCStats/interfaces.js.map +1 -0
  61. package/dist/esm/modules/browser/BrowserCapabilities.js +345 -0
  62. package/dist/esm/modules/browser/BrowserCapabilities.js.map +1 -0
  63. package/dist/esm/modules/browser/index.js +3 -0
  64. package/dist/esm/modules/browser/index.js.map +1 -0
  65. package/dist/esm/modules/connectivity/ConnectionQuality.js +389 -0
  66. package/dist/esm/modules/connectivity/ConnectionQuality.js.map +1 -0
  67. package/dist/esm/modules/connectivity/IceFailedHandling.js +84 -0
  68. package/dist/esm/modules/connectivity/IceFailedHandling.js.map +1 -0
  69. package/dist/esm/modules/connectivity/NetworkInfo.js +49 -0
  70. package/dist/esm/modules/connectivity/NetworkInfo.js.map +1 -0
  71. package/dist/esm/modules/connectivity/TrackStreamingStatus.js +453 -0
  72. package/dist/esm/modules/connectivity/TrackStreamingStatus.js.map +1 -0
  73. package/dist/esm/modules/detection/ActiveDeviceDetector.js +79 -0
  74. package/dist/esm/modules/detection/ActiveDeviceDetector.js.map +1 -0
  75. package/dist/esm/modules/detection/DetectionEvents.js +58 -0
  76. package/dist/esm/modules/detection/DetectionEvents.js.map +1 -0
  77. package/dist/esm/modules/detection/NoAudioSignalDetection.js +127 -0
  78. package/dist/esm/modules/detection/NoAudioSignalDetection.js.map +1 -0
  79. package/dist/esm/modules/detection/P2PDominantSpeakerDetection.js +47 -0
  80. package/dist/esm/modules/detection/P2PDominantSpeakerDetection.js.map +1 -0
  81. package/dist/esm/modules/detection/TrackVADEmitter.js +190 -0
  82. package/dist/esm/modules/detection/TrackVADEmitter.js.map +1 -0
  83. package/dist/esm/modules/detection/VADAudioAnalyser.js +199 -0
  84. package/dist/esm/modules/detection/VADAudioAnalyser.js.map +1 -0
  85. package/dist/esm/modules/detection/VADNoiseDetection.js +168 -0
  86. package/dist/esm/modules/detection/VADNoiseDetection.js.map +1 -0
  87. package/dist/esm/modules/detection/VADReportingService.js +203 -0
  88. package/dist/esm/modules/detection/VADReportingService.js.map +1 -0
  89. package/dist/esm/modules/detection/VADTalkMutedDetection.js +131 -0
  90. package/dist/esm/modules/detection/VADTalkMutedDetection.js.map +1 -0
  91. package/dist/esm/modules/e2ee/Context.js +274 -0
  92. package/dist/esm/modules/e2ee/Context.js.map +1 -0
  93. package/dist/esm/modules/e2ee/E2EEContext.js +158 -0
  94. package/dist/esm/modules/e2ee/E2EEContext.js.map +1 -0
  95. package/dist/esm/modules/e2ee/E2EEErrors.js +10 -0
  96. package/dist/esm/modules/e2ee/E2EEErrors.js.map +1 -0
  97. package/dist/esm/modules/e2ee/E2EEncryption.js +87 -0
  98. package/dist/esm/modules/e2ee/E2EEncryption.js.map +1 -0
  99. package/dist/esm/modules/e2ee/ExternallyManagedKeyHandler.js +24 -0
  100. package/dist/esm/modules/e2ee/ExternallyManagedKeyHandler.js.map +1 -0
  101. package/dist/esm/modules/e2ee/KeyHandler.js +137 -0
  102. package/dist/esm/modules/e2ee/KeyHandler.js.map +1 -0
  103. package/dist/esm/modules/e2ee/ManagedKeyHandler.js +182 -0
  104. package/dist/esm/modules/e2ee/ManagedKeyHandler.js.map +1 -0
  105. package/dist/esm/modules/e2ee/OlmAdapter.js +860 -0
  106. package/dist/esm/modules/e2ee/OlmAdapter.js.map +1 -0
  107. package/dist/esm/modules/e2ee/SAS.js +128 -0
  108. package/dist/esm/modules/e2ee/SAS.js.map +1 -0
  109. package/dist/esm/modules/e2ee/Worker.js +102 -0
  110. package/dist/esm/modules/e2ee/Worker.js.map +1 -0
  111. package/dist/esm/modules/e2ee/crypto-utils.js +53 -0
  112. package/dist/esm/modules/e2ee/crypto-utils.js.map +1 -0
  113. package/dist/esm/modules/e2ee/utils.js +15 -0
  114. package/dist/esm/modules/e2ee/utils.js.map +1 -0
  115. package/dist/esm/modules/e2eping/e2eping.js +314 -0
  116. package/dist/esm/modules/e2eping/e2eping.js.map +1 -0
  117. package/dist/esm/modules/flags/FeatureFlags.js +36 -0
  118. package/dist/esm/modules/flags/FeatureFlags.js.map +1 -0
  119. package/dist/esm/modules/litemode/LiteModeContext.js +50 -0
  120. package/dist/esm/modules/litemode/LiteModeContext.js.map +1 -0
  121. package/dist/esm/modules/proxyconnection/CustomSignalingLayer.js +98 -0
  122. package/dist/esm/modules/proxyconnection/CustomSignalingLayer.js.map +1 -0
  123. package/dist/esm/modules/proxyconnection/ProxyConnectionPC.js +348 -0
  124. package/dist/esm/modules/proxyconnection/ProxyConnectionPC.js.map +1 -0
  125. package/dist/esm/modules/proxyconnection/ProxyConnectionService.js +279 -0
  126. package/dist/esm/modules/proxyconnection/ProxyConnectionService.js.map +1 -0
  127. package/dist/esm/modules/proxyconnection/constants.js +14 -0
  128. package/dist/esm/modules/proxyconnection/constants.js.map +1 -0
  129. package/dist/esm/modules/qualitycontrol/CodecSelection.js +222 -0
  130. package/dist/esm/modules/qualitycontrol/CodecSelection.js.map +1 -0
  131. package/dist/esm/modules/qualitycontrol/MockClasses.js +120 -0
  132. package/dist/esm/modules/qualitycontrol/MockClasses.js.map +1 -0
  133. package/dist/esm/modules/qualitycontrol/QualityController.js +366 -0
  134. package/dist/esm/modules/qualitycontrol/QualityController.js.map +1 -0
  135. package/dist/esm/modules/qualitycontrol/ReceiveAudioController.js +73 -0
  136. package/dist/esm/modules/qualitycontrol/ReceiveAudioController.js.map +1 -0
  137. package/dist/esm/modules/qualitycontrol/ReceiveVideoController.js +216 -0
  138. package/dist/esm/modules/qualitycontrol/ReceiveVideoController.js.map +1 -0
  139. package/dist/esm/modules/qualitycontrol/SendVideoController.js +133 -0
  140. package/dist/esm/modules/qualitycontrol/SendVideoController.js.map +1 -0
  141. package/dist/esm/modules/recording/JibriSession.js +279 -0
  142. package/dist/esm/modules/recording/JibriSession.js.map +1 -0
  143. package/dist/esm/modules/recording/RecordingManager.js +257 -0
  144. package/dist/esm/modules/recording/RecordingManager.js.map +1 -0
  145. package/dist/esm/modules/recording/recordingConstants.js +21 -0
  146. package/dist/esm/modules/recording/recordingConstants.js.map +1 -0
  147. package/dist/esm/modules/recording/recordingXMLUtils.js +69 -0
  148. package/dist/esm/modules/recording/recordingXMLUtils.js.map +1 -0
  149. package/dist/esm/modules/red/red.js +108 -0
  150. package/dist/esm/modules/red/red.js.map +1 -0
  151. package/dist/esm/modules/sdp/LocalSdpMunger.js +143 -0
  152. package/dist/esm/modules/sdp/LocalSdpMunger.js.map +1 -0
  153. package/dist/esm/modules/sdp/RtxModifier.js +179 -0
  154. package/dist/esm/modules/sdp/RtxModifier.js.map +1 -0
  155. package/dist/esm/modules/sdp/SDP.js +848 -0
  156. package/dist/esm/modules/sdp/SDP.js.map +1 -0
  157. package/dist/esm/modules/sdp/SDPDiffer.js +96 -0
  158. package/dist/esm/modules/sdp/SDPDiffer.js.map +1 -0
  159. package/dist/esm/modules/sdp/SDPUtil.js +798 -0
  160. package/dist/esm/modules/sdp/SDPUtil.js.map +1 -0
  161. package/dist/esm/modules/sdp/SampleSdpStrings.js +589 -0
  162. package/dist/esm/modules/sdp/SampleSdpStrings.js.map +1 -0
  163. package/dist/esm/modules/sdp/SdpSimulcast.js +196 -0
  164. package/dist/esm/modules/sdp/SdpSimulcast.js.map +1 -0
  165. package/dist/esm/modules/sdp/SdpTransformUtil.js +337 -0
  166. package/dist/esm/modules/sdp/SdpTransformUtil.js.map +1 -0
  167. package/dist/esm/modules/sdp/constants.js +2 -0
  168. package/dist/esm/modules/sdp/constants.js.map +1 -0
  169. package/dist/esm/modules/settings/Settings.js +95 -0
  170. package/dist/esm/modules/settings/Settings.js.map +1 -0
  171. package/dist/esm/modules/statistics/AnalyticsAdapter.js +277 -0
  172. package/dist/esm/modules/statistics/AnalyticsAdapter.js.map +1 -0
  173. package/dist/esm/modules/statistics/AvgRTPStatsReporter.js +817 -0
  174. package/dist/esm/modules/statistics/AvgRTPStatsReporter.js.map +1 -0
  175. package/dist/esm/modules/statistics/LocalStatsCollector.js +149 -0
  176. package/dist/esm/modules/statistics/LocalStatsCollector.js.map +1 -0
  177. package/dist/esm/modules/statistics/PreCallTest.js +15 -0
  178. package/dist/esm/modules/statistics/PreCallTest.js.map +1 -0
  179. package/dist/esm/modules/statistics/RTPStatsCollector.js +601 -0
  180. package/dist/esm/modules/statistics/RTPStatsCollector.js.map +1 -0
  181. package/dist/esm/modules/statistics/SpeakerStats.js +163 -0
  182. package/dist/esm/modules/statistics/SpeakerStats.js.map +1 -0
  183. package/dist/esm/modules/statistics/SpeakerStatsCollector.js +161 -0
  184. package/dist/esm/modules/statistics/SpeakerStatsCollector.js.map +1 -0
  185. package/dist/esm/modules/statistics/constants.js +7 -0
  186. package/dist/esm/modules/statistics/constants.js.map +1 -0
  187. package/dist/esm/modules/statistics/statistics.js +362 -0
  188. package/dist/esm/modules/statistics/statistics.js.map +1 -0
  189. package/dist/esm/modules/util/AsyncQueue.js +102 -0
  190. package/dist/esm/modules/util/AsyncQueue.js.map +1 -0
  191. package/dist/esm/modules/util/Deferred.js +41 -0
  192. package/dist/esm/modules/util/Deferred.js.map +1 -0
  193. package/dist/esm/modules/util/EventEmitter.js +17 -0
  194. package/dist/esm/modules/util/EventEmitter.js.map +1 -0
  195. package/dist/esm/modules/util/EventEmitterForwarder.js +52 -0
  196. package/dist/esm/modules/util/EventEmitterForwarder.js.map +1 -0
  197. package/dist/esm/modules/util/Listenable.js +106 -0
  198. package/dist/esm/modules/util/Listenable.js.map +1 -0
  199. package/dist/esm/modules/util/MathUtil.js +103 -0
  200. package/dist/esm/modules/util/MathUtil.js.map +1 -0
  201. package/dist/esm/modules/util/RandomUtil.js +66 -0
  202. package/dist/esm/modules/util/RandomUtil.js.map +1 -0
  203. package/dist/esm/modules/util/Retry.js +15 -0
  204. package/dist/esm/modules/util/Retry.js.map +1 -0
  205. package/dist/esm/modules/util/ScriptUtil.js +58 -0
  206. package/dist/esm/modules/util/ScriptUtil.js.map +1 -0
  207. package/dist/esm/modules/util/StringUtils.js +21 -0
  208. package/dist/esm/modules/util/StringUtils.js.map +1 -0
  209. package/dist/esm/modules/util/TestUtils.js +14 -0
  210. package/dist/esm/modules/util/TestUtils.js.map +1 -0
  211. package/dist/esm/modules/util/UsernameGenerator.js +436 -0
  212. package/dist/esm/modules/util/UsernameGenerator.js.map +1 -0
  213. package/dist/esm/modules/util/XMLUtils.js +135 -0
  214. package/dist/esm/modules/util/XMLUtils.js.map +1 -0
  215. package/dist/esm/modules/version/ComponentsVersions.js +52 -0
  216. package/dist/esm/modules/version/ComponentsVersions.js.map +1 -0
  217. package/dist/esm/modules/videosipgw/JitsiVideoSIPGWSession.js +137 -0
  218. package/dist/esm/modules/videosipgw/JitsiVideoSIPGWSession.js.map +1 -0
  219. package/dist/esm/modules/videosipgw/VideoSIPGW.js +102 -0
  220. package/dist/esm/modules/videosipgw/VideoSIPGW.js.map +1 -0
  221. package/dist/esm/modules/videosipgw/VideoSIPGWConstants.js +65 -0
  222. package/dist/esm/modules/videosipgw/VideoSIPGWConstants.js.map +1 -0
  223. package/dist/esm/modules/watchRTC/WatchRTC.js +69 -0
  224. package/dist/esm/modules/watchRTC/WatchRTC.js.map +1 -0
  225. package/dist/esm/modules/watchRTC/functions.js +31 -0
  226. package/dist/esm/modules/watchRTC/functions.js.map +1 -0
  227. package/dist/esm/modules/watchRTC/interfaces.js +2 -0
  228. package/dist/esm/modules/watchRTC/interfaces.js.map +1 -0
  229. package/dist/esm/modules/webaudio/AudioMixer.js +74 -0
  230. package/dist/esm/modules/webaudio/AudioMixer.js.map +1 -0
  231. package/dist/esm/modules/webaudio/WebAudioUtils.js +13 -0
  232. package/dist/esm/modules/webaudio/WebAudioUtils.js.map +1 -0
  233. package/dist/esm/modules/xmpp/AVModeration.js +156 -0
  234. package/dist/esm/modules/xmpp/AVModeration.js.map +1 -0
  235. package/dist/esm/modules/xmpp/BreakoutRooms.js +230 -0
  236. package/dist/esm/modules/xmpp/BreakoutRooms.js.map +1 -0
  237. package/dist/esm/modules/xmpp/Caps.js +223 -0
  238. package/dist/esm/modules/xmpp/Caps.js.map +1 -0
  239. package/dist/esm/modules/xmpp/ChatRoom.js +1877 -0
  240. package/dist/esm/modules/xmpp/ChatRoom.js.map +1 -0
  241. package/dist/esm/modules/xmpp/ConnectionPlugin.js +37 -0
  242. package/dist/esm/modules/xmpp/ConnectionPlugin.js.map +1 -0
  243. package/dist/esm/modules/xmpp/FileSharing.js +95 -0
  244. package/dist/esm/modules/xmpp/FileSharing.js.map +1 -0
  245. package/dist/esm/modules/xmpp/JingleHelperFunctions.js +168 -0
  246. package/dist/esm/modules/xmpp/JingleHelperFunctions.js.map +1 -0
  247. package/dist/esm/modules/xmpp/JingleSession.js +166 -0
  248. package/dist/esm/modules/xmpp/JingleSession.js.map +1 -0
  249. package/dist/esm/modules/xmpp/JingleSessionPC.js +1969 -0
  250. package/dist/esm/modules/xmpp/JingleSessionPC.js.map +1 -0
  251. package/dist/esm/modules/xmpp/JingleSessionState.js +23 -0
  252. package/dist/esm/modules/xmpp/JingleSessionState.js.map +1 -0
  253. package/dist/esm/modules/xmpp/Lobby.js +384 -0
  254. package/dist/esm/modules/xmpp/Lobby.js.map +1 -0
  255. package/dist/esm/modules/xmpp/MediaSessionEvents.js +12 -0
  256. package/dist/esm/modules/xmpp/MediaSessionEvents.js.map +1 -0
  257. package/dist/esm/modules/xmpp/MockClasses.js +77 -0
  258. package/dist/esm/modules/xmpp/MockClasses.js.map +1 -0
  259. package/dist/esm/modules/xmpp/Polls.js +87 -0
  260. package/dist/esm/modules/xmpp/Polls.js.map +1 -0
  261. package/dist/esm/modules/xmpp/ResumeTask.js +149 -0
  262. package/dist/esm/modules/xmpp/ResumeTask.js.map +1 -0
  263. package/dist/esm/modules/xmpp/RoomMetadata.js +96 -0
  264. package/dist/esm/modules/xmpp/RoomMetadata.js.map +1 -0
  265. package/dist/esm/modules/xmpp/SignalingLayerImpl.js +313 -0
  266. package/dist/esm/modules/xmpp/SignalingLayerImpl.js.map +1 -0
  267. package/dist/esm/modules/xmpp/StropheErrorHandler.js +53 -0
  268. package/dist/esm/modules/xmpp/StropheErrorHandler.js.map +1 -0
  269. package/dist/esm/modules/xmpp/StropheLastSuccess.js +52 -0
  270. package/dist/esm/modules/xmpp/StropheLastSuccess.js.map +1 -0
  271. package/dist/esm/modules/xmpp/XmppConnection.js +579 -0
  272. package/dist/esm/modules/xmpp/XmppConnection.js.map +1 -0
  273. package/dist/esm/modules/xmpp/moderator.js +524 -0
  274. package/dist/esm/modules/xmpp/moderator.js.map +1 -0
  275. package/dist/esm/modules/xmpp/sha1.js +165 -0
  276. package/dist/esm/modules/xmpp/sha1.js.map +1 -0
  277. package/dist/esm/modules/xmpp/strophe.disco.js +222 -0
  278. package/dist/esm/modules/xmpp/strophe.disco.js.map +1 -0
  279. package/dist/esm/modules/xmpp/strophe.emuc.js +206 -0
  280. package/dist/esm/modules/xmpp/strophe.emuc.js.map +1 -0
  281. package/dist/esm/modules/xmpp/strophe.jingle.js +404 -0
  282. package/dist/esm/modules/xmpp/strophe.jingle.js.map +1 -0
  283. package/dist/esm/modules/xmpp/strophe.logger.js +44 -0
  284. package/dist/esm/modules/xmpp/strophe.logger.js.map +1 -0
  285. package/dist/esm/modules/xmpp/strophe.ping.js +170 -0
  286. package/dist/esm/modules/xmpp/strophe.ping.js.map +1 -0
  287. package/dist/esm/modules/xmpp/strophe.rayo.js +117 -0
  288. package/dist/esm/modules/xmpp/strophe.rayo.js.map +1 -0
  289. package/dist/esm/modules/xmpp/strophe.stream-management.js +365 -0
  290. package/dist/esm/modules/xmpp/strophe.stream-management.js.map +1 -0
  291. package/dist/esm/modules/xmpp/strophe.util.js +116 -0
  292. package/dist/esm/modules/xmpp/strophe.util.js.map +1 -0
  293. package/dist/esm/modules/xmpp/xmpp.js +973 -0
  294. package/dist/esm/modules/xmpp/xmpp.js.map +1 -0
  295. package/dist/esm/service/RTC/BridgeVideoType.js +24 -0
  296. package/dist/esm/service/RTC/BridgeVideoType.js.map +1 -0
  297. package/dist/esm/service/RTC/CameraFacingMode.js +21 -0
  298. package/dist/esm/service/RTC/CameraFacingMode.js.map +1 -0
  299. package/dist/esm/service/RTC/CodecMimeType.js +36 -0
  300. package/dist/esm/service/RTC/CodecMimeType.js.map +1 -0
  301. package/dist/esm/service/RTC/MediaDirection.js +23 -0
  302. package/dist/esm/service/RTC/MediaDirection.js.map +1 -0
  303. package/dist/esm/service/RTC/MediaType.js +20 -0
  304. package/dist/esm/service/RTC/MediaType.js.map +1 -0
  305. package/dist/esm/service/RTC/RTCEvents.js +111 -0
  306. package/dist/esm/service/RTC/RTCEvents.js.map +1 -0
  307. package/dist/esm/service/RTC/ReceiverAudioSubscription.js +27 -0
  308. package/dist/esm/service/RTC/ReceiverAudioSubscription.js.map +1 -0
  309. package/dist/esm/service/RTC/Resolutions.js +56 -0
  310. package/dist/esm/service/RTC/Resolutions.js.map +1 -0
  311. package/dist/esm/service/RTC/SignalingEvents.js +42 -0
  312. package/dist/esm/service/RTC/SignalingEvents.js.map +1 -0
  313. package/dist/esm/service/RTC/SignalingLayer.js +153 -0
  314. package/dist/esm/service/RTC/SignalingLayer.js.map +1 -0
  315. package/dist/esm/service/RTC/StandardVideoQualitySettings.js +180 -0
  316. package/dist/esm/service/RTC/StandardVideoQualitySettings.js.map +1 -0
  317. package/dist/esm/service/RTC/VideoEncoderScalabilityMode.js +36 -0
  318. package/dist/esm/service/RTC/VideoEncoderScalabilityMode.js.map +1 -0
  319. package/dist/esm/service/RTC/VideoType.js +19 -0
  320. package/dist/esm/service/RTC/VideoType.js.map +1 -0
  321. package/dist/esm/service/authentication/AuthenticationEvents.js +13 -0
  322. package/dist/esm/service/authentication/AuthenticationEvents.js.map +1 -0
  323. package/dist/esm/service/connectivity/ConnectionQualityEvents.js +13 -0
  324. package/dist/esm/service/connectivity/ConnectionQualityEvents.js.map +1 -0
  325. package/dist/esm/service/connectivity/Constants.js +3 -0
  326. package/dist/esm/service/connectivity/Constants.js.map +1 -0
  327. package/dist/esm/service/e2eping/E2ePingEvents.js +8 -0
  328. package/dist/esm/service/e2eping/E2ePingEvents.js.map +1 -0
  329. package/dist/esm/service/statistics/AnalyticsEvents.js +521 -0
  330. package/dist/esm/service/statistics/AnalyticsEvents.js.map +1 -0
  331. package/dist/esm/service/statistics/Events.js +36 -0
  332. package/dist/esm/service/statistics/Events.js.map +1 -0
  333. package/dist/esm/service/statistics/constants.js +2 -0
  334. package/dist/esm/service/statistics/constants.js.map +1 -0
  335. package/dist/esm/service/xmpp/XMPPEvents.js +359 -0
  336. package/dist/esm/service/xmpp/XMPPEvents.js.map +1 -0
  337. package/dist/esm/service/xmpp/XMPPExtensioProtocols.js +64 -0
  338. package/dist/esm/service/xmpp/XMPPExtensioProtocols.js.map +1 -0
  339. package/dist/esm/test-setup-polyfill.js +34 -0
  340. package/dist/esm/test-setup-polyfill.js.map +1 -0
  341. package/dist/esm/tools/gen-version.js +15 -0
  342. package/dist/esm/tools/gen-version.js.map +1 -0
  343. package/dist/esm/version.js +3 -0
  344. package/dist/esm/version.js.map +1 -0
  345. package/dist/umd/lib-jitsi-meet.e2ee-worker.js +484 -0
  346. package/dist/umd/lib-jitsi-meet.min.js +3 -0
  347. package/dist/umd/lib-jitsi-meet.min.js.LICENSE.txt +18 -0
  348. package/dist/umd/lib-jitsi-meet.min.map +1 -0
  349. package/package.json +93 -0
  350. package/types/index.d.ts +16180 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RTCUtils.js","sourceRoot":"","sources":["../../../../modules/RTC/RTCUtils.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,380 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ import JitsiTrackError from '../../JitsiTrackError';
3
+ import * as JitsiTrackErrors from '../../JitsiTrackErrors';
4
+ import browser from '../browser';
5
+ const logger = getLogger('rtc:ScreenObtainer');
6
+ /**
7
+ * The default frame rate for Screen Sharing.
8
+ */
9
+ export const SS_DEFAULT_FRAME_RATE = 5;
10
+ /**
11
+ * Handles obtaining a stream from a screen capture on different browsers.
12
+ */
13
+ class ScreenObtainer {
14
+ constructor() {
15
+ this.obtainStream = this._createObtainStreamMethod();
16
+ this.options = {};
17
+ this._electronSkipDisplayMedia = false;
18
+ }
19
+ /**
20
+ * Initializes the function used to obtain a screen capture
21
+ * (this.obtainStream).
22
+ *
23
+ * @param {object} options
24
+ */
25
+ init(options = {}) {
26
+ this.options = options;
27
+ if (!this.obtainStream) {
28
+ logger.warn('Desktop sharing not supported');
29
+ }
30
+ }
31
+ /**
32
+ * Returns a method which will be used to obtain the screen sharing stream
33
+ * (based on the browser type).
34
+ *
35
+ * @returns {Function}
36
+ * @private
37
+ */
38
+ _createObtainStreamMethod() {
39
+ const supportsGetDisplayMedia = browser.supportsGetDisplayMedia();
40
+ if (browser.isElectron()) {
41
+ return this._obtainScreenOnElectron;
42
+ }
43
+ else if (browser.isReactNative() && supportsGetDisplayMedia) {
44
+ return this.obtainScreenFromGetDisplayMediaRN;
45
+ }
46
+ else if (supportsGetDisplayMedia) {
47
+ return this._obtainScreenFromGetDisplayMedia;
48
+ }
49
+ logger.warn('Screen sharing not supported on ', browser.getName());
50
+ return null;
51
+ }
52
+ /**
53
+ * Gets the appropriate constraints for audio sharing.
54
+ *
55
+ * @returns {IAudioQuality | boolean}
56
+ */
57
+ _getAudioConstraints() {
58
+ const { audioQuality } = this.options;
59
+ const isTestModeEnabled = this.options.testing?.testMode;
60
+ // Chrome 140+ requires 'restrictOwnAudio' for proper audio sharing when not using stereo.
61
+ // Starting Chrome 137 'echoCancellation' was turned off by default for screen share audio and needs to be
62
+ // enabled explicity to avoid echo issues.
63
+ // See https://issues.chromium.org/issues/422611724 and https://chromestatus.com/feature/5128140732760064 for more details.
64
+ const supportsRestrictOwnAudio = browser.isChromiumBased()
65
+ && browser.isEngineVersionGreaterThan(141)
66
+ && !browser.isElectron();
67
+ const needsEchoCancellation = !audioQuality?.stereo
68
+ && browser.isChromiumBased()
69
+ && browser.isEngineVersionGreaterThan(136)
70
+ && !supportsRestrictOwnAudio;
71
+ const defaultAudioConstraints = {
72
+ autoGainControl: !audioQuality?.stereo,
73
+ channelCount: audioQuality?.stereo ? 2 : 1,
74
+ echoCancellation: !audioQuality?.stereo,
75
+ noiseSuppression: !audioQuality?.stereo
76
+ };
77
+ let audio = (audioQuality?.stereo || needsEchoCancellation)
78
+ ? defaultAudioConstraints
79
+ : !isTestModeEnabled;
80
+ if (supportsRestrictOwnAudio && !isTestModeEnabled) {
81
+ if (typeof audio === 'boolean') {
82
+ audio = {
83
+ restrictOwnAudio: true
84
+ };
85
+ }
86
+ else {
87
+ audio.restrictOwnAudio = true;
88
+ }
89
+ }
90
+ return audio;
91
+ }
92
+ /**
93
+ * Obtains a screen capture stream on Electron.
94
+ *
95
+ * @param onSuccess - Success callback.
96
+ * @param onFailure - Failure callback.
97
+ * @param {Object} options - Optional parameters.
98
+ */
99
+ _obtainScreenOnElectron(onSuccess, onFailure, options = {}) {
100
+ if (!this._electronSkipDisplayMedia) {
101
+ // Fall-back to the old API in case of not supported error. This can happen if
102
+ // an old Electron SDK is used with a new Jitsi Meet + lib-jitsi-meet version.
103
+ this._obtainScreenFromGetDisplayMedia(onSuccess, err => {
104
+ if (err.name === JitsiTrackErrors.SCREENSHARING_NOT_SUPPORTED_ERROR) {
105
+ // Make sure we don't recurse infinitely.
106
+ this._electronSkipDisplayMedia = true;
107
+ this._obtainScreenOnElectron(onSuccess, onFailure);
108
+ }
109
+ else {
110
+ onFailure(err);
111
+ }
112
+ });
113
+ return;
114
+ }
115
+ // @ts-ignore TODO: legacy flow, remove after the Electron SDK supporting gDM has been out for a while.
116
+ if (typeof window.JitsiMeetScreenObtainer?.openDesktopPicker === 'function') {
117
+ const { desktopSharingFrameRate, desktopSharingResolution, desktopSharingSources } = this.options;
118
+ // @ts-ignore TODO: legacy flow, remove after the Electron SDK supporting gDM has been out for a while.
119
+ window.JitsiMeetScreenObtainer.openDesktopPicker({
120
+ desktopSharingSources: options.desktopSharingSources || desktopSharingSources || ['screen', 'window']
121
+ }, (streamId, streamType, screenShareAudio = false) => {
122
+ if (streamId) {
123
+ let audioConstraints = false;
124
+ if (screenShareAudio) {
125
+ audioConstraints = {};
126
+ const optionalConstraints = this._getAudioConstraints();
127
+ if (typeof optionalConstraints !== 'boolean') {
128
+ audioConstraints = {
129
+ optional: optionalConstraints
130
+ };
131
+ }
132
+ // Audio screen sharing for electron only works for screen type devices.
133
+ // i.e. when the user shares the whole desktop.
134
+ // Note. The documentation specifies that chromeMediaSourceId should not be present
135
+ // which, in the case a users has multiple monitors, leads to them being shared all
136
+ // at once. However we tested with chromeMediaSourceId present and it seems to be
137
+ // working properly.
138
+ if (streamType === 'screen') {
139
+ audioConstraints.mandatory = {
140
+ chromeMediaSource: 'desktop'
141
+ };
142
+ }
143
+ }
144
+ const constraints = {
145
+ audio: audioConstraints,
146
+ video: {
147
+ mandatory: {
148
+ chromeMediaSource: 'desktop',
149
+ chromeMediaSourceId: streamId,
150
+ maxFrameRate: desktopSharingFrameRate?.max ?? SS_DEFAULT_FRAME_RATE,
151
+ maxHeight: desktopSharingResolution?.height?.max ?? window.screen.height,
152
+ maxWidth: desktopSharingResolution?.width?.max ?? window.screen.width,
153
+ minFrameRate: desktopSharingFrameRate?.min ?? SS_DEFAULT_FRAME_RATE,
154
+ minHeight: desktopSharingResolution?.height?.min,
155
+ minWidth: desktopSharingResolution?.width?.min
156
+ }
157
+ }
158
+ };
159
+ // We have to use the old API on Electron to get a desktop stream.
160
+ navigator.mediaDevices.getUserMedia(constraints)
161
+ .then(stream => {
162
+ this.setContentHint(stream);
163
+ onSuccess({
164
+ sourceId: streamId,
165
+ sourceType: streamType,
166
+ stream
167
+ });
168
+ })
169
+ .catch(err => onFailure(err));
170
+ }
171
+ else {
172
+ // As noted in Chrome Desktop Capture API:
173
+ // If user didn't select any source (i.e. canceled the prompt)
174
+ // then the callback is called with an empty streamId.
175
+ onFailure(new JitsiTrackError(JitsiTrackErrors.SCREENSHARING_USER_CANCELED));
176
+ }
177
+ }, err => onFailure(new JitsiTrackError(JitsiTrackErrors.ELECTRON_DESKTOP_PICKER_ERROR, err)));
178
+ }
179
+ else {
180
+ onFailure(new JitsiTrackError(JitsiTrackErrors.ELECTRON_DESKTOP_PICKER_NOT_FOUND));
181
+ }
182
+ }
183
+ /**
184
+ * Obtains a screen capture stream using getDisplayMedia.
185
+ *
186
+ * @param callback - The success callback.
187
+ * @param errorCallback - The error callback.
188
+ * @param {Object} options - Optional parameters.
189
+ */
190
+ _obtainScreenFromGetDisplayMedia(callback, errorCallback, options = {}) {
191
+ let getDisplayMedia;
192
+ // @ts-ignore Property 'getDisplayMedia' does not exist on type 'Navigator'
193
+ if (navigator.getDisplayMedia) {
194
+ // @ts-ignore Property 'getDisplayMedia' does not exist on type 'Navigator'
195
+ getDisplayMedia = navigator.getDisplayMedia.bind(navigator);
196
+ }
197
+ else {
198
+ // eslint-disable-next-line max-len
199
+ getDisplayMedia = navigator.mediaDevices.getDisplayMedia.bind(navigator.mediaDevices);
200
+ }
201
+ const audio = this._getAudioConstraints();
202
+ let video = {};
203
+ const constraintOpts = {};
204
+ // The options passed to this method should take precedence over the global settings.
205
+ const { desktopSharingFrameRate = this.options?.desktopSharingFrameRate, resolution = this.options?.resolution, screenShareSettings = this.options?.screenShareSettings } = options;
206
+ if (typeof desktopSharingFrameRate === 'object') {
207
+ video.frameRate = desktopSharingFrameRate;
208
+ }
209
+ // At the time of this writing 'min' constraint for fps is not supported by getDisplayMedia on any of the
210
+ // browsers. getDisplayMedia will fail with an error "invalid constraints" in this case.
211
+ video.frameRate && delete video.frameRate.min;
212
+ if (browser.isChromiumBased()) {
213
+ // Show users the current tab is the preferred capture source, default: false.
214
+ browser.isEngineVersionGreaterThan(93)
215
+ && (constraintOpts.preferCurrentTab = screenShareSettings?.desktopPreferCurrentTab || false);
216
+ // Allow users to select system audio, default: include.
217
+ browser.isEngineVersionGreaterThan(104)
218
+ && (constraintOpts.systemAudio = screenShareSettings?.desktopSystemAudio || 'include');
219
+ // Allow users to seamlessly switch which tab they are sharing without having to select the tab again.
220
+ browser.isEngineVersionGreaterThan(106)
221
+ && (constraintOpts.surfaceSwitching = screenShareSettings?.desktopSurfaceSwitching || 'include');
222
+ // Allow a user to be shown a preference for what screen is to be captured, default: unset.
223
+ browser.isEngineVersionGreaterThan(106) && screenShareSettings?.desktopDisplaySurface
224
+ && (video.displaySurface = screenShareSettings?.desktopDisplaySurface);
225
+ // Allow users to select the current tab as a capture source, default: exclude.
226
+ browser.isEngineVersionGreaterThan(111)
227
+ && (constraintOpts.selfBrowserSurface = screenShareSettings?.desktopSelfBrowserSurface || 'exclude');
228
+ // Set bogus resolution constraints to work around
229
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=1056311 for low fps screenshare. Capturing SS at
230
+ // very high resolutions restricts the framerate. Therefore, skip this hack when capture fps > 5 fps.
231
+ if (!(desktopSharingFrameRate?.max > SS_DEFAULT_FRAME_RATE)) {
232
+ video.height = 99999;
233
+ video.width = 99999;
234
+ }
235
+ }
236
+ // Allow a user to be shown a preference for what screen is to be captured.
237
+ if (browser.isSafari() && screenShareSettings?.desktopDisplaySurface) {
238
+ video.displaySurface = screenShareSettings?.desktopDisplaySurface;
239
+ }
240
+ if (Object.keys(video).length === 0) {
241
+ video = true;
242
+ }
243
+ const constraints = {
244
+ audio,
245
+ video,
246
+ ...constraintOpts,
247
+ cursor: 'always'
248
+ };
249
+ logger.info('Using getDisplayMedia for screen sharing', constraints);
250
+ getDisplayMedia(constraints)
251
+ .then(stream => {
252
+ this.setContentHint(stream);
253
+ // Apply min fps constraints to the track so that 0Hz mode doesn't kick in.
254
+ // https://bugs.chromium.org/p/webrtc/issues/detail?id=15539
255
+ if (browser.isChromiumBased()) {
256
+ const track = stream.getVideoTracks()[0];
257
+ let minFps = SS_DEFAULT_FRAME_RATE;
258
+ if (typeof desktopSharingFrameRate?.min === 'number' && desktopSharingFrameRate.min > 0) {
259
+ minFps = desktopSharingFrameRate.min;
260
+ }
261
+ const trackConstraints = {
262
+ frameRate: {
263
+ min: minFps
264
+ }
265
+ };
266
+ // Set the resolution if it is specified in the options. This is currently only enabled for testing.
267
+ // Note that this may result in browser crashes if the shared window is resized due to browser bugs
268
+ // like https://issues.chromium.org/issues/40672396
269
+ if (resolution && this.options.testing?.testMode) {
270
+ trackConstraints.height = resolution;
271
+ trackConstraints.width = Math.floor(resolution * 16 / 9);
272
+ }
273
+ try {
274
+ track.applyConstraints(trackConstraints);
275
+ }
276
+ catch (err) {
277
+ logger.warn(`Min fps=${minFps} constraint could not be applied on the desktop track,`
278
+ + `${err.message}`);
279
+ }
280
+ }
281
+ const videoTracks = stream?.getVideoTracks();
282
+ const track = videoTracks?.length > 0 ? videoTracks[0] : undefined;
283
+ const { deviceId } = track?.getSettings() ?? {};
284
+ callback({
285
+ // Used by remote-control to identify the display that is currently shared.
286
+ sourceId: deviceId ?? stream.id,
287
+ stream
288
+ });
289
+ })
290
+ .catch(error => {
291
+ const errorDetails = {
292
+ errorCode: error.code,
293
+ errorMsg: error.message,
294
+ errorName: error.name,
295
+ errorStack: error.stack
296
+ };
297
+ logger.warn('getDisplayMedia error', JSON.stringify(constraints), JSON.stringify(errorDetails));
298
+ if (errorDetails.errorCode === DOMException.NOT_SUPPORTED_ERR) {
299
+ // This error is thrown when an Electron client has not set a permissions handler.
300
+ errorCallback(new JitsiTrackError(JitsiTrackErrors.SCREENSHARING_NOT_SUPPORTED_ERROR));
301
+ }
302
+ else if (errorDetails.errorMsg?.indexOf('denied by system') !== -1) {
303
+ // On Chrome this is the only thing different between error returned when user cancels
304
+ // and when no permission was given on the OS level.
305
+ errorCallback(new JitsiTrackError(JitsiTrackErrors.PERMISSION_DENIED));
306
+ }
307
+ else if (errorDetails.errorMsg === 'NotReadableError') {
308
+ // This can happen under some weird conditions:
309
+ // - https://issues.chromium.org/issues/369103607
310
+ // - https://issues.chromium.org/issues/353555347
311
+ errorCallback(new JitsiTrackError(JitsiTrackErrors.SCREENSHARING_GENERIC_ERROR));
312
+ }
313
+ else {
314
+ errorCallback(new JitsiTrackError(JitsiTrackErrors.SCREENSHARING_USER_CANCELED));
315
+ }
316
+ });
317
+ }
318
+ /**
319
+ * Obtains a screen capture stream using getDisplayMedia.
320
+ *
321
+ * @param callback - The success callback.
322
+ * @param errorCallback - The error callback.
323
+ * @internal
324
+ */
325
+ obtainScreenFromGetDisplayMediaRN(callback, errorCallback) {
326
+ logger.info('Using getDisplayMedia for screen sharing');
327
+ navigator.mediaDevices.getDisplayMedia({ video: true })
328
+ .then(stream => {
329
+ this.setContentHint(stream);
330
+ callback({
331
+ sourceId: stream.id,
332
+ stream
333
+ });
334
+ })
335
+ .catch(() => {
336
+ errorCallback(new JitsiTrackError(JitsiTrackErrors
337
+ .SCREENSHARING_USER_CANCELED));
338
+ });
339
+ }
340
+ /** Sets the contentHint on the transmitted MediaStreamTrack to indicate charaterstics in the video stream, which
341
+ * informs RTCPeerConnection on how to encode the track (to prefer motion or individual frame detail).
342
+ *
343
+ * @param {MediaStream} stream - The captured desktop stream.
344
+ * @returns {void}
345
+ */
346
+ setContentHint(stream) {
347
+ const { desktopSharingFrameRate } = this.options;
348
+ const desktopTrack = stream.getVideoTracks()[0];
349
+ // Set contentHint on the desktop track based on the fps requested.
350
+ if ('contentHint' in desktopTrack) {
351
+ desktopTrack.contentHint = desktopSharingFrameRate?.max > SS_DEFAULT_FRAME_RATE ? 'motion' : 'detail';
352
+ }
353
+ else {
354
+ logger.warn('MediaStreamTrack contentHint attribute not supported');
355
+ }
356
+ }
357
+ /**
358
+ * Checks whether obtaining a screen capture is supported in the current
359
+ * environment.
360
+ * @returns {boolean}
361
+ */
362
+ isSupported() {
363
+ return this.obtainStream !== null;
364
+ }
365
+ /**
366
+ * Sets the max frame rate to be used for a desktop track capture.
367
+ *
368
+ * @param {number} maxFps capture frame rate to be used for desktop tracks.
369
+ * @returns {void}
370
+ */
371
+ setDesktopSharingFrameRate(maxFps) {
372
+ logger.info(`Setting the desktop capture rate to ${maxFps}`);
373
+ this.options.desktopSharingFrameRate = {
374
+ max: maxFps,
375
+ min: SS_DEFAULT_FRAME_RATE
376
+ };
377
+ }
378
+ }
379
+ export default new ScreenObtainer();
380
+ //# sourceMappingURL=ScreenObtainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenObtainer.js","sourceRoot":"","sources":["../../../../modules/RTC/ScreenObtainer.ts"],"names":[],"mappings":"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"}