@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,453 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ import { JitsiTrackEvents } from '../../JitsiTrackEvents';
3
+ import { MediaType } from '../../service/RTC/MediaType';
4
+ import browser from '../browser';
5
+ import Listenable from '../util/Listenable';
6
+ import RTCUtils from './RTCUtils';
7
+ const logger = getLogger('rtc:JitsiTrack');
8
+ /**
9
+ * Maps our handler types to MediaStreamTrack properties.
10
+ */
11
+ const trackHandler2Prop = {
12
+ 'track_ended': 'onended',
13
+ 'track_mute': 'onmute', // Not supported on FF
14
+ 'track_unmute': 'onunmute'
15
+ };
16
+ /**
17
+ * Represents a single media track (either audio or video).
18
+ *
19
+ * @noInheritDoc
20
+ */
21
+ export default class JitsiTrack extends Listenable {
22
+ /* eslint-disable max-params */
23
+ /**
24
+ * Represents a single media track (either audio or video).
25
+ * @param conference the rtc instance
26
+ * @param stream the WebRTC MediaStream instance
27
+ * @param track the WebRTC MediaStreamTrack instance, must be part of
28
+ * the given <tt>stream</tt>.
29
+ * @param streamInactiveHandler the function that will handle
30
+ * onended/oninactive events of the stream.
31
+ * @param trackMediaType the media type of the JitsiTrack
32
+ * @param videoType the VideoType for this track if any
33
+ */
34
+ constructor(conference, stream, track, streamInactiveHandler, trackMediaType, videoType) {
35
+ super();
36
+ /**
37
+ * Array with the HTML elements that are displaying the streams.
38
+ * @type {Array}
39
+ */
40
+ this.containers = [];
41
+ this.conference = conference;
42
+ this.audioLevel = -1;
43
+ this.type = trackMediaType;
44
+ this.track = track;
45
+ this.videoType = videoType;
46
+ this.handlers = new Map();
47
+ /**
48
+ * Indicates whether this JitsiTrack has been disposed. If true, this
49
+ * JitsiTrack is to be considered unusable and operations involving it
50
+ * are to fail (e.g. {@link JitsiConference#addTrack(JitsiTrack)},
51
+ * {@link JitsiConference#removeTrack(JitsiTrack)}).
52
+ * @type {boolean}
53
+ */
54
+ this.disposed = false;
55
+ /**
56
+ * The inactive handler which will be triggered when the underlying
57
+ * <tt>MediaStream</tt> ends.
58
+ *
59
+ * @private
60
+ * @type {Function}
61
+ */
62
+ this._streamInactiveHandler = streamInactiveHandler;
63
+ this._setStream(stream);
64
+ }
65
+ /**
66
+ * Adds onended/oninactive handler to a MediaStream or a MediaStreamTrack.
67
+ * Firefox doesn't fire a inactive event on the MediaStream, instead it fires
68
+ * a onended event on the MediaStreamTrack.
69
+ * @param {Function} handler the handler
70
+ */
71
+ _addMediaStreamInactiveHandler(handler) {
72
+ if (browser.isFirefox() || browser.isWebKitBased()) {
73
+ this.track.onended = handler;
74
+ }
75
+ else {
76
+ this.stream.oninactive = handler;
77
+ }
78
+ }
79
+ /**
80
+ * Attach time to first media tracker only if there is conference and only
81
+ * for the first element.
82
+ *
83
+ * @param {HTMLElement} container the HTML container which can be 'video' or
84
+ * 'audio' element.
85
+ * @internal
86
+ */
87
+ _attachTTFMTracker(_container) {
88
+ // Should be defined by the classes that are extending JitsiTrack
89
+ }
90
+ /**
91
+ * Called when the track has been attached to a new container.
92
+ *
93
+ * @param {HTMLElement} container the HTML container which can be 'video' or
94
+ * 'audio' element.
95
+ */
96
+ _onTrackAttach(_container) {
97
+ // Should be defined by the classes that are extending JitsiTrack
98
+ }
99
+ /**
100
+ * Called when the track has been detached from a container.
101
+ *
102
+ * @param {HTMLElement} container the HTML container which can be 'video' or
103
+ * 'audio' element.
104
+ */
105
+ _onTrackDetach(_container) {
106
+ // Should be defined by the classes that are extending JitsiTrack
107
+ }
108
+ /**
109
+ * Sets the stream property of JitsiTrack object and sets all stored
110
+ * handlers to it.
111
+ *
112
+ * @param {MediaStream} stream the new stream.
113
+ */
114
+ _setStream(stream) {
115
+ if (this.stream === stream) {
116
+ return;
117
+ }
118
+ this.stream = stream;
119
+ // TODO Practically, that's like the opposite of _unregisterHandlers
120
+ // i.e. may be abstracted into a function/method called
121
+ // _registerHandlers for clarity and easing the maintenance of the two
122
+ // pieces of source code.
123
+ if (this.stream) {
124
+ for (const type of this.handlers.keys()) {
125
+ this._setHandler(type, this.handlers.get(type));
126
+ }
127
+ if (this._streamInactiveHandler) {
128
+ this._addMediaStreamInactiveHandler(this._streamInactiveHandler);
129
+ }
130
+ }
131
+ }
132
+ /**
133
+ * Unregisters all event handlers bound to the underlying media stream/track.
134
+ */
135
+ _unregisterHandlers() {
136
+ if (!this.stream) {
137
+ logger.warn(`${this}: unable to unregister handlers - no stream object`);
138
+ return;
139
+ }
140
+ for (const type of this.handlers.keys()) {
141
+ // FIXME Why only video tracks?
142
+ for (const videoTrack of this.stream.getVideoTracks()) {
143
+ videoTrack[trackHandler2Prop[type]] = undefined;
144
+ }
145
+ }
146
+ if (this._streamInactiveHandler) {
147
+ this._addMediaStreamInactiveHandler(undefined);
148
+ }
149
+ }
150
+ /**
151
+ * Sets handler to the WebRTC MediaStream or MediaStreamTrack object
152
+ * depending on the passed type.
153
+ * @param {string} type the type of the handler that is going to be set
154
+ * @param {Function} handler the handler.
155
+ * @internal
156
+ */
157
+ _setHandler(type, handler) {
158
+ if (!trackHandler2Prop.hasOwnProperty(type)) {
159
+ logger.error(`Invalid handler type ${type}`);
160
+ return;
161
+ }
162
+ if (handler) {
163
+ this.handlers.set(type, handler);
164
+ }
165
+ else {
166
+ this.handlers.delete(type);
167
+ }
168
+ if (this.stream) {
169
+ for (const track of this.stream.getTracks()) {
170
+ track[trackHandler2Prop[type]] = handler;
171
+ }
172
+ }
173
+ }
174
+ /**
175
+ * Checks whether the underlying WebRTC <tt>MediaStreamTrack</tt> is muted
176
+ * according to it's 'muted' field status.
177
+ * @return {boolean} <tt>true</tt> if the underlying
178
+ * <tt>MediaStreamTrack</tt> is muted or <tt>false</tt> otherwise.
179
+ * @internal
180
+ */
181
+ isWebRTCTrackMuted() {
182
+ return this.track?.muted;
183
+ }
184
+ /**
185
+ * Attaches the MediaStream of this track to an HTML container.
186
+ * Adds the container to the list of containers that are displaying the
187
+ * track.
188
+ *
189
+ * @param container the HTML container which can be 'video' or 'audio'
190
+ * element.
191
+ *
192
+ * @returns {void}
193
+ */
194
+ attach(container) {
195
+ let result = Promise.resolve();
196
+ if (this.stream) {
197
+ this._onTrackAttach(container);
198
+ result = RTCUtils.attachMediaStream(container, this.stream);
199
+ }
200
+ this.containers.push(container);
201
+ this._attachTTFMTracker(container);
202
+ return result;
203
+ }
204
+ /**
205
+ * Removes this JitsiTrack from the passed HTML container.
206
+ *
207
+ * @param container the HTML container to detach from this JitsiTrack. If
208
+ * <tt>null</tt> or <tt>undefined</tt>, all containers are removed. A
209
+ * container can be a 'video', 'audio' or 'object' HTML element instance to
210
+ * which this JitsiTrack is currently attached.
211
+ */
212
+ detach(container) {
213
+ for (let cs = this.containers, i = cs.length - 1; i >= 0; --i) {
214
+ const c = cs[i];
215
+ if (!container) {
216
+ this._onTrackDetach(c);
217
+ RTCUtils.attachMediaStream(c, null).catch(() => {
218
+ logger.error(`Detach for ${this} failed!`);
219
+ });
220
+ }
221
+ if (!container || c === container) {
222
+ cs.splice(i, 1);
223
+ }
224
+ }
225
+ if (container) {
226
+ this._onTrackDetach(container);
227
+ RTCUtils.attachMediaStream(container, null).catch(() => {
228
+ logger.error(`Detach for ${this} failed!`);
229
+ });
230
+ }
231
+ }
232
+ /**
233
+ * Removes attached event listeners.
234
+ *
235
+ * @returns {Promise}
236
+ */
237
+ dispose() {
238
+ const p = Promise.resolve();
239
+ if (this.disposed) {
240
+ return p;
241
+ }
242
+ this.detach();
243
+ this.removeAllListeners();
244
+ this.disposed = true;
245
+ return p;
246
+ }
247
+ /**
248
+ * Returns id of the track.
249
+ * @returns {string|null} id of the track or null if this is fake track.
250
+ */
251
+ getId() {
252
+ return this.getStreamId();
253
+ }
254
+ /**
255
+ * Returns the WebRTC MediaStream instance.
256
+ */
257
+ getOriginalStream() {
258
+ return this.stream;
259
+ }
260
+ /**
261
+ * Returns the source name of the track.
262
+ * @returns {String|undefined}
263
+ */
264
+ getSourceName() {
265
+ // Should be defined by the classes that are extending JitsiTrack
266
+ return undefined;
267
+ }
268
+ /**
269
+ * Returns the primary SSRC associated with the track.
270
+ * @returns {number}
271
+ */
272
+ getSsrc() {
273
+ // Should be defined by the classes that are extending JitsiTrack
274
+ return undefined;
275
+ }
276
+ /**
277
+ * Returns the ID of the underlying WebRTC Media Stream(if any)
278
+ * @returns {String|null}
279
+ */
280
+ getStreamId() {
281
+ return this.stream ? this.stream.id : null;
282
+ }
283
+ /**
284
+ * Return the underlying WebRTC MediaStreamTrack
285
+ * @returns {MediaStreamTrack}
286
+ */
287
+ getTrack() {
288
+ return this.track;
289
+ }
290
+ /**
291
+ * Return the underlying WebRTC MediaStreamTrack label
292
+ * @returns {string}
293
+ */
294
+ getTrackLabel() {
295
+ return this.track.label;
296
+ }
297
+ /**
298
+ * Returns the ID of the underlying WebRTC MediaStreamTrack(if any)
299
+ * @returns {String|null}
300
+ */
301
+ getTrackId() {
302
+ return this.track ? this.track.id : null;
303
+ }
304
+ /**
305
+ * Returns the type (audio or video) of this track.
306
+ */
307
+ getType() {
308
+ return this.type;
309
+ }
310
+ /**
311
+ * Return meaningful usage label for this track depending on it's media and
312
+ * eventual video type.
313
+ * @returns {string}
314
+ */
315
+ getUsageLabel() {
316
+ if (this.isAudioTrack()) {
317
+ return 'mic';
318
+ }
319
+ return this.videoType ? this.videoType : 'default';
320
+ }
321
+ /**
322
+ * Returns the video type (camera or desktop) of this track.
323
+ */
324
+ getVideoType() {
325
+ return this.videoType;
326
+ }
327
+ /**
328
+ * Returns the height of the track in normalized landscape format.
329
+ */
330
+ getHeight() {
331
+ return Math.min(this.track.getSettings().height, this.track.getSettings().width);
332
+ }
333
+ /**
334
+ * Returns the width of the track in normalized landscape format.
335
+ */
336
+ getWidth() {
337
+ return Math.max(this.track.getSettings().height, this.track.getSettings().width);
338
+ }
339
+ /**
340
+ * Checks whether the MediaStream is active/not ended.
341
+ * When there is no check for active we don't have information and so
342
+ * will return that stream is active (in case of FF).
343
+ * @returns {boolean} whether MediaStream is active.
344
+ */
345
+ isActive() {
346
+ if (typeof this.stream.active !== 'undefined') {
347
+ return this.stream.active;
348
+ }
349
+ return true;
350
+ }
351
+ /**
352
+ * Check if this is an audio track.
353
+ */
354
+ isAudioTrack() {
355
+ return this.getType() === MediaType.AUDIO;
356
+ }
357
+ /**
358
+ * Checks whether this is a local track.
359
+ * @abstract
360
+ * @return {boolean} 'true' if it's a local track or 'false' otherwise.
361
+ */
362
+ isLocal() {
363
+ return false;
364
+ }
365
+ /**
366
+ * Check whether this is a local audio track.
367
+ *
368
+ * @return {boolean} - true if track represents a local audio track, false otherwise.
369
+ */
370
+ isLocalAudioTrack() {
371
+ return this.isAudioTrack() && this.isLocal();
372
+ }
373
+ /**
374
+ * Check if this is a video track.
375
+ */
376
+ isVideoTrack() {
377
+ return this.getType() === MediaType.VIDEO;
378
+ }
379
+ /**
380
+ * Checks whether this track is muted.
381
+ * @abstract
382
+ * @return {boolean}
383
+ */
384
+ isMuted() {
385
+ return false;
386
+ }
387
+ /**
388
+ * Sets the audio level for the stream
389
+ * @param {number} audioLevel value between 0 and 1
390
+ * @param {TraceablePeerConnection} [tpc] the peerconnection instance which
391
+ * is source for the audio level. It can be <tt>undefined</tt> for
392
+ * a local track if the audio level was measured outside of the
393
+ * peerconnection (see /modules/statistics/LocalStatsCollector.js).
394
+ */
395
+ setAudioLevel(audioLevel, tpc) {
396
+ let newAudioLevel = audioLevel;
397
+ // When using getSynchornizationSources on the audio receiver to gather audio levels for
398
+ // remote tracks, browser reports last known audio levels even when the remote user is
399
+ // audio muted, we need to reset the value to zero here so that the audio levels are cleared.
400
+ // Remote tracks have the tpc info present while local tracks do not.
401
+ if (browser.supportsReceiverStats() && typeof tpc !== 'undefined' && this.isMuted()) {
402
+ newAudioLevel = 0;
403
+ }
404
+ if (this.audioLevel !== newAudioLevel) {
405
+ this.audioLevel = newAudioLevel;
406
+ this.emit(JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED, newAudioLevel, tpc);
407
+ // LocalStatsCollector reports a value of 0.008 for muted mics
408
+ // and a value of 0 when there is no audio input.
409
+ }
410
+ else if (this.audioLevel === 0
411
+ && newAudioLevel === 0
412
+ && this.isLocal()
413
+ && !this.isWebRTCTrackMuted()) {
414
+ this.emit(JitsiTrackEvents.NO_AUDIO_INPUT, newAudioLevel);
415
+ }
416
+ }
417
+ /**
418
+ * Sets new audio output device for track's DOM elements. Video tracks are
419
+ * ignored. Emits `JitsiTrackEvents.TRACK_AUDIO_OUTPUT_CHANGED`.
420
+ * @param {string} audioOutputDeviceId - id of 'audiooutput' device from
421
+ * navigator.mediaDevices.enumerateDevices(), '' for default device
422
+ * @returns {Promise}
423
+ */
424
+ setAudioOutput(audioOutputDeviceId) {
425
+ if (!RTCUtils.isDeviceChangeAvailable('output')) {
426
+ return Promise.reject(new Error('Audio output device change is not supported'));
427
+ }
428
+ // All audio communication is done through audio tracks, so ignore
429
+ // changing audio output for video tracks at all.
430
+ if (this.isVideoTrack()) {
431
+ return Promise.resolve();
432
+ }
433
+ return (Promise.all(this.containers.map(element => element.setSinkId(audioOutputDeviceId)
434
+ .catch(error => {
435
+ logger.warn('Failed to change audio output device on'
436
+ + ' element. Default or previously set'
437
+ + ' audio output device will be used.', element, error);
438
+ throw error;
439
+ })))
440
+ .then(() => {
441
+ this.emit(JitsiTrackEvents.TRACK_AUDIO_OUTPUT_CHANGED, audioOutputDeviceId);
442
+ }));
443
+ }
444
+ /**
445
+ * Assigns the source name to a track.
446
+ * @param {String} _name - The name to be assigned to the track.
447
+ * @returns {void}
448
+ */
449
+ setSourceName(_name) {
450
+ // Should be defined by the classes that are extending JitsiTrack
451
+ }
452
+ }
453
+ //# sourceMappingURL=JitsiTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JitsiTrack.js","sourceRoot":"","sources":["../../../../modules/RTC/JitsiTrack.ts"],"names":[],"mappings":"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"}