@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,222 @@
1
+ import { getLogger } from '@jitsi/logger';
2
+ import { CodecMimeType } from '../../service/RTC/CodecMimeType';
3
+ import { MediaType } from '../../service/RTC/MediaType';
4
+ import { VIDEO_CODECS_BY_COMPLEXITY } from '../../service/RTC/StandardVideoQualitySettings';
5
+ import { VideoType } from '../../service/RTC/VideoType';
6
+ import browser from '../browser';
7
+ const logger = getLogger('qc:CodecSelection');
8
+ // Default video codec preferences on mobile and desktop endpoints.
9
+ const DESKTOP_VIDEO_CODEC_ORDER = [CodecMimeType.AV1, CodecMimeType.VP9, CodecMimeType.VP8, CodecMimeType.H264];
10
+ const MOBILE_P2P_VIDEO_CODEC_ORDER = [CodecMimeType.H264, CodecMimeType.VP8, CodecMimeType.VP9, CodecMimeType.AV1];
11
+ const MOBILE_VIDEO_CODEC_ORDER = [CodecMimeType.VP8, CodecMimeType.VP9, CodecMimeType.H264, CodecMimeType.AV1];
12
+ /**
13
+ * This class handles the codec selection mechanism for the conference based on the config.js settings.
14
+ * The preferred codec is selected based on the settings and the list of codecs supported by the browser.
15
+ * The preferred codec is published in presence which is then used by the other endpoints in the
16
+ * conference to pick a supported codec at join time and when the call transitions between p2p and jvb
17
+ * connections.
18
+ */
19
+ export class CodecSelection {
20
+ /**
21
+ * Creates a new instance for a given conference.
22
+ *
23
+ * @param {JitsiConference} conference the conference instance
24
+ * @param {*} options
25
+ * @param {string} options.jvb settings (codec list, preferred and disabled) for the jvb connection.
26
+ * @param {string} options.p2p settings (codec list, preferred and disabled) for the p2p connection.
27
+ */
28
+ constructor(conference, options) {
29
+ this.codecPreferenceOrder = {};
30
+ this.conference = conference;
31
+ this.encodeTimeStats = new Map();
32
+ this.options = options;
33
+ this.screenshareCodec = {};
34
+ this.visitorCodecs = [];
35
+ for (const connectionType of Object.keys(options)) {
36
+ let { disabledCodec, preferredCodec, preferenceOrder } = options[connectionType];
37
+ const { enableAV1ForFF = false, screenshareCodec } = options[connectionType];
38
+ const supportedCodecs = new Set(this._getSupportedVideoCodecs(connectionType));
39
+ // Default preference codec order when no codec preferences are set in config.js
40
+ let selectedOrder = Array.from(supportedCodecs);
41
+ if (preferenceOrder) {
42
+ preferenceOrder = preferenceOrder.map(codec => codec.toLowerCase());
43
+ // Select all codecs that are supported by the browser.
44
+ selectedOrder = preferenceOrder.filter(codec => supportedCodecs.has(codec));
45
+ // Generate the codec list based on the supported codecs and the preferred/disabled (deprecated) settings
46
+ }
47
+ else if (preferredCodec || disabledCodec) {
48
+ disabledCodec = disabledCodec?.toLowerCase();
49
+ preferredCodec = preferredCodec?.toLowerCase();
50
+ // VP8 cannot be disabled since it the default codec.
51
+ if (disabledCodec && disabledCodec !== CodecMimeType.VP8) {
52
+ selectedOrder = selectedOrder.filter(codec => codec !== disabledCodec);
53
+ }
54
+ const index = selectedOrder.findIndex(codec => codec === preferredCodec);
55
+ // Move the preferred codec to the top of the list.
56
+ if (preferredCodec && index !== -1) {
57
+ selectedOrder.splice(index, 1);
58
+ selectedOrder.unshift(preferredCodec);
59
+ }
60
+ }
61
+ // Push AV1 and VP9 to the end of the list if they are supported by the browser but has implementation bugs
62
+ // For example, 136 and newer versions of Firefox supports AV1 but only simulcast and not SVC. Even with
63
+ // simulcast, temporal scalability is not supported. This way Firefox will continue to decode AV1 from
64
+ // other endpoints but will use VP8 for encoding. Similar issues exist with VP9 on Safari and Firefox.
65
+ const isVp9EncodeSupported = browser.supportsVP9() || (browser.isWebKitBased() && connectionType === 'p2p');
66
+ [CodecMimeType.AV1, CodecMimeType.VP9].forEach(codec => {
67
+ if ((codec === CodecMimeType.AV1 && browser.isFirefox() && !enableAV1ForFF)
68
+ || (codec === CodecMimeType.VP9 && !isVp9EncodeSupported)) {
69
+ const index = selectedOrder.findIndex(selectedCodec => selectedCodec === codec);
70
+ if (index !== -1) {
71
+ selectedOrder.splice(index, 1);
72
+ selectedOrder.push(codec);
73
+ }
74
+ }
75
+ });
76
+ // Safari retports AV1 as supported on M3+ macs. Because of some decoder/encoder issues reported AV1 should
77
+ // be disabled until all issues are resolved.
78
+ if (browser.isWebKitBased()) {
79
+ selectedOrder = selectedOrder.filter(codec => codec !== CodecMimeType.AV1);
80
+ }
81
+ logger.info(`Codec preference order for ${connectionType} connection is ${selectedOrder}`);
82
+ this.codecPreferenceOrder[connectionType] = selectedOrder;
83
+ // Set the preferred screenshare codec.
84
+ if (screenshareCodec && supportedCodecs.has(screenshareCodec.toLowerCase())) {
85
+ this.screenshareCodec[connectionType] = screenshareCodec.toLowerCase();
86
+ }
87
+ }
88
+ }
89
+ /**
90
+ * Returns a list of video codecs that are supported by the browser.
91
+ *
92
+ * @param {string} connectionType - media connection type, p2p or jvb.
93
+ * @returns {Array}
94
+ */
95
+ _getSupportedVideoCodecs(connectionType) {
96
+ const videoCodecMimeTypes = browser.isMobileDevice() && connectionType === 'p2p'
97
+ ? MOBILE_P2P_VIDEO_CODEC_ORDER
98
+ : browser.isMobileDevice() ? MOBILE_VIDEO_CODEC_ORDER : DESKTOP_VIDEO_CODEC_ORDER;
99
+ const supportedCodecs = videoCodecMimeTypes.filter(codec => (window.RTCRtpReceiver?.getCapabilities?.(MediaType.VIDEO)?.codecs ?? [])
100
+ .some(supportedCodec => supportedCodec.mimeType.toLowerCase() === `${MediaType.VIDEO}/${codec}`));
101
+ // Select VP8 as the default codec if RTCRtpReceiver.getCapabilities() is not supported by the browser or if it
102
+ // returns an empty set.
103
+ !supportedCodecs.length && supportedCodecs.push(CodecMimeType.VP8);
104
+ return supportedCodecs;
105
+ }
106
+ /**
107
+ * Returns the current codec preference order for the given connection type.
108
+ *
109
+ * @param {String} connectionType The media connection type, 'p2p' or 'jvb'.
110
+ * @returns {Array<string>}
111
+ */
112
+ getCodecPreferenceList(connectionType) {
113
+ return this.codecPreferenceOrder[connectionType];
114
+ }
115
+ /**
116
+ * Returns the preferred screenshare codec for the given connection type.
117
+ *
118
+ * @param {Optional} connectionType The media connection type, 'p2p' or 'jvb'.
119
+ * @returns CodecMimeType
120
+ */
121
+ getScreenshareCodec(connectionType) {
122
+ return this.screenshareCodec[connectionType];
123
+ }
124
+ /**
125
+ * Sets the codec on the media session based on the codec preference order configured in config.js and the supported
126
+ * codecs published by the remote participants in their presence.
127
+ *
128
+ * @param {JingleSessionPC} mediaSession session for which the codec selection has to be made.
129
+ */
130
+ selectPreferredCodec(mediaSession) {
131
+ const session = mediaSession ? mediaSession : this.conference.jvbJingleSession;
132
+ if (!session) {
133
+ return;
134
+ }
135
+ let localPreferredCodecOrder = this.codecPreferenceOrder.jvb;
136
+ // E2EE is curently supported only for VP8 codec.
137
+ if (this.conference.isE2EEEnabled()) {
138
+ localPreferredCodecOrder = [CodecMimeType.VP8];
139
+ }
140
+ const remoteParticipants = this.conference.getParticipants().map(participant => participant.getId());
141
+ const remoteCodecsPerParticipant = remoteParticipants?.map(remote => {
142
+ const peerMediaInfo = session._signalingLayer.getPeerMediaInfo(remote, MediaType.VIDEO);
143
+ if (peerMediaInfo?.codecList) {
144
+ return peerMediaInfo.codecList;
145
+ }
146
+ else if (peerMediaInfo?.codecType) {
147
+ return [peerMediaInfo.codecType];
148
+ }
149
+ return [];
150
+ }) ?? [];
151
+ // Include the visitor codecs.
152
+ this.visitorCodecs.length && remoteCodecsPerParticipant.push(this.visitorCodecs);
153
+ const selectedCodecOrder = localPreferredCodecOrder.reduce((acc, localCodec) => {
154
+ let codecNotSupportedByRemote = false;
155
+ // Remove any codecs that are not supported by any of the remote endpoints. The order of the supported
156
+ // codecs locally however will remain the same since we want to support asymmetric codecs.
157
+ for (const remoteCodecs of remoteCodecsPerParticipant) {
158
+ // Ignore remote participants that do not publish codec preference in presence (transcriber).
159
+ if (remoteCodecs.length) {
160
+ codecNotSupportedByRemote = codecNotSupportedByRemote
161
+ || !remoteCodecs.find(participantCodec => participantCodec === localCodec);
162
+ }
163
+ }
164
+ if (!codecNotSupportedByRemote) {
165
+ acc.push(localCodec);
166
+ }
167
+ return acc;
168
+ }, []);
169
+ if (!selectedCodecOrder.length) {
170
+ logger.warn('Invalid codec list generated because of a user joining/leaving the call');
171
+ return;
172
+ }
173
+ session.setVideoCodecs(selectedCodecOrder, this.screenshareCodec?.jvb);
174
+ }
175
+ /**
176
+ * Changes the codec preference order.
177
+ *
178
+ * @param {JitsiLocalTrack} localTrack - The local video track.
179
+ * @param {CodecMimeType} codec - The codec used for encoding the given local video track.
180
+ * @returns boolean - Returns true if the codec order has been updated, false otherwise.
181
+ */
182
+ changeCodecPreferenceOrder(localTrack, codec) {
183
+ const session = this.conference.getActiveMediaSession();
184
+ const connectionType = session.isP2P ? 'p2p' : 'jvb';
185
+ const codecOrder = this.codecPreferenceOrder[connectionType];
186
+ const videoType = localTrack.getVideoType();
187
+ const codecsByVideoType = VIDEO_CODECS_BY_COMPLEXITY[videoType]
188
+ .filter(val => Boolean(codecOrder.find(supportedCodec => supportedCodec === val)));
189
+ const codecIndex = codecsByVideoType.findIndex(val => val === codec.toLowerCase());
190
+ // Do nothing if we are using the lowest complexity codec already.
191
+ if (codecIndex === codecsByVideoType.length - 1) {
192
+ return false;
193
+ }
194
+ const newCodec = codecsByVideoType[codecIndex + 1];
195
+ if (videoType === VideoType.CAMERA) {
196
+ const idx = codecOrder.findIndex(val => val === newCodec);
197
+ codecOrder.splice(idx, 1);
198
+ codecOrder.unshift(newCodec);
199
+ logger.info(`QualityController - switching camera codec to ${newCodec} because of cpu restriction`);
200
+ }
201
+ else {
202
+ this.screenshareCodec[connectionType] = newCodec;
203
+ logger.info(`QualityController - switching screenshare codec to ${newCodec} because of cpu restriction`);
204
+ }
205
+ this.selectPreferredCodec(session);
206
+ return true;
207
+ }
208
+ /**
209
+ * Updates the aggregate list of the codecs supported by all the visitors in the call and calculates the
210
+ * selected codec if needed.
211
+ * @param {Array} codecList - visitor codecs.
212
+ * @returns {void}
213
+ */
214
+ updateVisitorCodecs(codecList) {
215
+ if (this.visitorCodecs === codecList) {
216
+ return;
217
+ }
218
+ this.visitorCodecs = codecList;
219
+ this.selectPreferredCodec();
220
+ }
221
+ }
222
+ //# sourceMappingURL=CodecSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodecSelection.js","sourceRoot":"","sources":["../../../../modules/qualitycontrol/CodecSelection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { JitsiConferenceEvents } from '../../JitsiConferenceEvents';
2
+ import { MockSignalingLayerImpl } from '../RTC/MockClasses';
3
+ import Listenable from '../util/Listenable';
4
+ /**
5
+ * MockParticipant
6
+ */
7
+ export class MockParticipant {
8
+ /**
9
+ * A constructor...
10
+ */
11
+ constructor(id) {
12
+ this.id = id;
13
+ }
14
+ /**
15
+ * Returns the endpoint id of the participant.
16
+ * @returns <string>
17
+ */
18
+ getId() {
19
+ return this.id;
20
+ }
21
+ }
22
+ /**
23
+ * MockLocalTrack
24
+ */
25
+ export class MockLocalTrack {
26
+ /**
27
+ * Constructor
28
+ * @param {number} resolution
29
+ * @param {VideoType} videoType
30
+ */
31
+ constructor(id, resolution, videoType) {
32
+ this.rtcId = id;
33
+ this.captureResolution = resolution;
34
+ this.maxEnabledResolution = resolution;
35
+ this.videoType = videoType;
36
+ }
37
+ /**
38
+ * Gets the capture resolution of the mock local track.
39
+ * @returns - The capture resolution.
40
+ */
41
+ getCaptureResolution() {
42
+ return this.captureResolution;
43
+ }
44
+ /**
45
+ * Returns the video type of the mock local track.
46
+ * @returns {VideoType}
47
+ */
48
+ getVideoType() {
49
+ return this.videoType;
50
+ }
51
+ }
52
+ /**
53
+ * MockConference
54
+ */
55
+ export class MockConference extends Listenable {
56
+ /**
57
+ * A constructor...
58
+ */
59
+ constructor(rtc) {
60
+ super();
61
+ this.options = {
62
+ config: {}
63
+ };
64
+ this.activeMediaSession = undefined;
65
+ this.jvbJingleSession = null;
66
+ this.mediaSessions = [];
67
+ this.participants = [];
68
+ this.rtc = rtc;
69
+ this._signalingLayer = new MockSignalingLayerImpl();
70
+ }
71
+ /**
72
+ * Add a mock participant to the conference
73
+ * @param {MockParticipant} participant
74
+ * @param {Array<string>} codecList
75
+ * @param {String} codecType
76
+ */
77
+ addParticipant(participant, codecList, codecType) {
78
+ this.participants.push(participant);
79
+ this._signalingLayer.setPeerMediaInfo(true, participant.getId(), codecList, codecType);
80
+ this.eventEmitter.emit(JitsiConferenceEvents.USER_JOINED);
81
+ }
82
+ /**
83
+ * Returns the active media session.
84
+ * @returns {JingleSessionPC}
85
+ */
86
+ getActiveMediaSession() {
87
+ return this.jvbJingleSession;
88
+ }
89
+ /**
90
+ * Returns a list of forwarded sources.
91
+ * @returns {Array<string>}
92
+ */
93
+ getForwardedSources() {
94
+ return this.rtc.getForwardedSources();
95
+ }
96
+ /**
97
+ * Returns the list of participants.
98
+ * @returns Array<MockParticipant>
99
+ */
100
+ getParticipants() {
101
+ return this.participants;
102
+ }
103
+ /**
104
+ * Checks if E2EE is enabled.
105
+ * @returns {boolean}
106
+ */
107
+ isE2EEEnabled() {
108
+ return false;
109
+ }
110
+ /**
111
+ * Removes the participant from the conference.
112
+ * @param {MockParticipant} endpoint
113
+ */
114
+ removeParticipant(endpoint) {
115
+ this.participants = this.participants.filter(p => p !== endpoint);
116
+ this._signalingLayer.setPeerMediaInfo(false, endpoint.getId(), undefined, undefined);
117
+ this.eventEmitter.emit(JitsiConferenceEvents.USER_LEFT);
118
+ }
119
+ }
120
+ //# sourceMappingURL=MockClasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockClasses.js","sourceRoot":"","sources":["../../../../modules/qualitycontrol/MockClasses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAW,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAG5C;;GAEG;AACH,MAAM,OAAO,eAAe;IAGxB;;OAEG;IACH,YAAY,EAAU;QAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IAMvB;;;;OAIG;IACH,YAAY,EAAU,EAAE,UAAkB,EAAE,SAAoB;QAC5D,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAGD;;;OAGG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAS1C;;OAEG;IACH,YAAY,GAAY;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG;YACX,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,WAA4B,EAAE,SAAwB,EAAE,SAAiB;QACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,aAAa;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,QAAyB;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACJ"}