@webex/plugin-meetings 3.8.1 → 3.9.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 (290) hide show
  1. package/README.md +26 -13
  2. package/dist/breakouts/breakout.js +1 -1
  3. package/dist/breakouts/index.js +1 -1
  4. package/dist/constants.js +32 -3
  5. package/dist/constants.js.map +1 -1
  6. package/dist/controls-options-manager/enums.js +1 -0
  7. package/dist/controls-options-manager/enums.js.map +1 -1
  8. package/dist/controls-options-manager/types.js.map +1 -1
  9. package/dist/controls-options-manager/util.js +26 -0
  10. package/dist/controls-options-manager/util.js.map +1 -1
  11. package/dist/interpretation/index.js +1 -1
  12. package/dist/interpretation/siLanguage.js +1 -1
  13. package/dist/locus-info/controlsUtils.js +11 -3
  14. package/dist/locus-info/controlsUtils.js.map +1 -1
  15. package/dist/locus-info/index.js +68 -84
  16. package/dist/locus-info/index.js.map +1 -1
  17. package/dist/media/index.js +2 -2
  18. package/dist/media/index.js.map +1 -1
  19. package/dist/meeting/brbState.js +17 -14
  20. package/dist/meeting/brbState.js.map +1 -1
  21. package/dist/meeting/in-meeting-actions.js +11 -1
  22. package/dist/meeting/in-meeting-actions.js.map +1 -1
  23. package/dist/meeting/index.js +428 -253
  24. package/dist/meeting/index.js.map +1 -1
  25. package/dist/meeting/request.js +19 -0
  26. package/dist/meeting/request.js.map +1 -1
  27. package/dist/meeting/request.type.js.map +1 -1
  28. package/dist/{rtcMetrics/constants.js → meeting/type.js} +1 -5
  29. package/dist/meeting/type.js.map +1 -0
  30. package/dist/meeting/util.js +68 -2
  31. package/dist/meeting/util.js.map +1 -1
  32. package/dist/meetings/index.js +35 -33
  33. package/dist/meetings/index.js.map +1 -1
  34. package/dist/members/index.js +11 -9
  35. package/dist/members/index.js.map +1 -1
  36. package/dist/members/request.js +3 -3
  37. package/dist/members/request.js.map +1 -1
  38. package/dist/members/util.js +18 -6
  39. package/dist/members/util.js.map +1 -1
  40. package/dist/metrics/constants.js +1 -0
  41. package/dist/metrics/constants.js.map +1 -1
  42. package/dist/multistream/mediaRequestManager.js +1 -1
  43. package/dist/multistream/mediaRequestManager.js.map +1 -1
  44. package/dist/multistream/remoteMedia.js +34 -5
  45. package/dist/multistream/remoteMedia.js.map +1 -1
  46. package/dist/multistream/remoteMediaGroup.js +42 -2
  47. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  48. package/dist/multistream/sendSlotManager.js +32 -2
  49. package/dist/multistream/sendSlotManager.js.map +1 -1
  50. package/dist/reachability/index.js +5 -10
  51. package/dist/reachability/index.js.map +1 -1
  52. package/dist/types/constants.d.ts +28 -0
  53. package/dist/types/controls-options-manager/enums.d.ts +2 -1
  54. package/dist/types/controls-options-manager/types.d.ts +4 -1
  55. package/dist/types/locus-info/index.d.ts +0 -9
  56. package/dist/types/meeting/brbState.d.ts +0 -1
  57. package/dist/types/meeting/in-meeting-actions.d.ts +10 -0
  58. package/dist/types/meeting/index.d.ts +47 -19
  59. package/dist/types/meeting/request.d.ts +9 -1
  60. package/dist/types/meeting/request.type.d.ts +74 -0
  61. package/dist/types/meeting/type.d.ts +9 -0
  62. package/dist/types/meeting/util.d.ts +3 -0
  63. package/dist/types/members/index.d.ts +10 -7
  64. package/dist/types/members/request.d.ts +1 -1
  65. package/dist/types/members/util.d.ts +7 -3
  66. package/dist/types/metrics/constants.d.ts +1 -0
  67. package/dist/types/multistream/remoteMedia.d.ts +20 -1
  68. package/dist/types/multistream/remoteMediaGroup.d.ts +11 -0
  69. package/dist/types/multistream/sendSlotManager.d.ts +16 -0
  70. package/dist/types/reachability/index.d.ts +2 -2
  71. package/dist/webinar/index.js +1 -1
  72. package/package.json +24 -25
  73. package/src/constants.ts +32 -2
  74. package/src/controls-options-manager/enums.ts +1 -0
  75. package/src/controls-options-manager/types.ts +6 -1
  76. package/src/controls-options-manager/util.ts +31 -0
  77. package/src/locus-info/controlsUtils.ts +15 -0
  78. package/src/locus-info/index.ts +88 -82
  79. package/src/media/index.ts +2 -2
  80. package/src/meeting/brbState.ts +13 -9
  81. package/src/meeting/in-meeting-actions.ts +21 -0
  82. package/src/meeting/index.ts +254 -71
  83. package/src/meeting/request.ts +16 -0
  84. package/src/meeting/request.type.ts +64 -0
  85. package/src/meeting/type.ts +9 -0
  86. package/src/meeting/util.ts +73 -2
  87. package/src/meetings/index.ts +3 -2
  88. package/src/members/index.ts +13 -10
  89. package/src/members/request.ts +2 -2
  90. package/src/members/util.ts +16 -4
  91. package/src/metrics/constants.ts +1 -0
  92. package/src/multistream/mediaRequestManager.ts +7 -7
  93. package/src/multistream/remoteMedia.ts +34 -4
  94. package/src/multistream/remoteMediaGroup.ts +37 -2
  95. package/src/multistream/sendSlotManager.ts +34 -2
  96. package/src/reachability/index.ts +5 -13
  97. package/test/unit/spec/controls-options-manager/util.js +58 -0
  98. package/test/unit/spec/locus-info/controlsUtils.js +52 -0
  99. package/test/unit/spec/locus-info/index.js +218 -82
  100. package/test/unit/spec/media/index.ts +107 -0
  101. package/test/unit/spec/meeting/brbState.ts +23 -4
  102. package/test/unit/spec/meeting/in-meeting-actions.ts +10 -0
  103. package/test/unit/spec/meeting/index.js +901 -84
  104. package/test/unit/spec/meeting/request.js +71 -0
  105. package/test/unit/spec/meeting/utils.js +122 -1
  106. package/test/unit/spec/meetings/index.js +2 -0
  107. package/test/unit/spec/members/index.js +68 -9
  108. package/test/unit/spec/members/request.js +2 -2
  109. package/test/unit/spec/members/utils.js +27 -7
  110. package/test/unit/spec/multistream/mediaRequestManager.ts +19 -6
  111. package/test/unit/spec/multistream/remoteMedia.ts +66 -2
  112. package/test/unit/spec/multistream/sendSlotManager.ts +59 -0
  113. package/test/unit/spec/reachability/index.ts +2 -6
  114. package/dist/annotation/annotation.types.d.ts +0 -42
  115. package/dist/annotation/constants.d.ts +0 -31
  116. package/dist/annotation/index.d.ts +0 -117
  117. package/dist/breakouts/breakout.d.ts +0 -8
  118. package/dist/breakouts/collection.d.ts +0 -5
  119. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  120. package/dist/breakouts/events.d.ts +0 -8
  121. package/dist/breakouts/index.d.ts +0 -5
  122. package/dist/breakouts/request.d.ts +0 -22
  123. package/dist/breakouts/utils.d.ts +0 -15
  124. package/dist/common/browser-detection.d.ts +0 -9
  125. package/dist/common/collection.d.ts +0 -48
  126. package/dist/common/config.d.ts +0 -2
  127. package/dist/common/errors/captcha-error.d.ts +0 -15
  128. package/dist/common/errors/intent-to-join.d.ts +0 -16
  129. package/dist/common/errors/join-meeting.d.ts +0 -17
  130. package/dist/common/errors/media.d.ts +0 -15
  131. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  132. package/dist/common/errors/parameter.d.ts +0 -15
  133. package/dist/common/errors/password-error.d.ts +0 -15
  134. package/dist/common/errors/permission.d.ts +0 -14
  135. package/dist/common/errors/reclaim-host-role-error.d.ts +0 -60
  136. package/dist/common/errors/reclaim-host-role-error.js +0 -158
  137. package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
  138. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  139. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  140. package/dist/common/errors/reconnection-in-progress.js +0 -35
  141. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  142. package/dist/common/errors/reconnection.d.ts +0 -15
  143. package/dist/common/errors/stats.d.ts +0 -15
  144. package/dist/common/errors/webex-errors.d.ts +0 -81
  145. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  146. package/dist/common/events/events-scope.d.ts +0 -17
  147. package/dist/common/events/events.d.ts +0 -12
  148. package/dist/common/events/trigger-proxy.d.ts +0 -2
  149. package/dist/common/events/util.d.ts +0 -2
  150. package/dist/common/logs/logger-config.d.ts +0 -2
  151. package/dist/common/logs/logger-proxy.d.ts +0 -2
  152. package/dist/common/logs/request.d.ts +0 -34
  153. package/dist/common/queue.d.ts +0 -32
  154. package/dist/config.d.ts +0 -73
  155. package/dist/constants.d.ts +0 -952
  156. package/dist/controls-options-manager/constants.d.ts +0 -4
  157. package/dist/controls-options-manager/enums.d.ts +0 -5
  158. package/dist/controls-options-manager/index.d.ts +0 -120
  159. package/dist/controls-options-manager/types.d.ts +0 -43
  160. package/dist/controls-options-manager/util.d.ts +0 -7
  161. package/dist/index.d.ts +0 -4
  162. package/dist/interceptors/index.d.ts +0 -2
  163. package/dist/interceptors/locusRetry.d.ts +0 -27
  164. package/dist/interpretation/collection.d.ts +0 -5
  165. package/dist/interpretation/index.d.ts +0 -5
  166. package/dist/interpretation/siLanguage.d.ts +0 -5
  167. package/dist/locus-info/controlsUtils.d.ts +0 -2
  168. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  169. package/dist/locus-info/fullState.d.ts +0 -2
  170. package/dist/locus-info/hostUtils.d.ts +0 -2
  171. package/dist/locus-info/index.d.ts +0 -269
  172. package/dist/locus-info/infoUtils.d.ts +0 -2
  173. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  174. package/dist/locus-info/parser.d.ts +0 -212
  175. package/dist/locus-info/selfUtils.d.ts +0 -2
  176. package/dist/media/index.d.ts +0 -32
  177. package/dist/media/properties.d.ts +0 -108
  178. package/dist/media/util.d.ts +0 -2
  179. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  180. package/dist/mediaQualityMetrics/config.js +0 -513
  181. package/dist/mediaQualityMetrics/config.js.map +0 -1
  182. package/dist/meeting/effectsState.d.ts +0 -42
  183. package/dist/meeting/effectsState.js +0 -260
  184. package/dist/meeting/effectsState.js.map +0 -1
  185. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  186. package/dist/meeting/index.d.ts +0 -1622
  187. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  188. package/dist/meeting/muteState.d.ts +0 -116
  189. package/dist/meeting/request.d.ts +0 -257
  190. package/dist/meeting/request.type.d.ts +0 -11
  191. package/dist/meeting/state.d.ts +0 -9
  192. package/dist/meeting/util.d.ts +0 -2
  193. package/dist/meeting/voicea-meeting.d.ts +0 -16
  194. package/dist/meeting-info/collection.d.ts +0 -20
  195. package/dist/meeting-info/index.d.ts +0 -57
  196. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  197. package/dist/meeting-info/request.d.ts +0 -22
  198. package/dist/meeting-info/util.d.ts +0 -2
  199. package/dist/meeting-info/utilv2.d.ts +0 -2
  200. package/dist/meetings/collection.d.ts +0 -23
  201. package/dist/meetings/index.d.ts +0 -296
  202. package/dist/meetings/meetings.types.d.ts +0 -4
  203. package/dist/meetings/request.d.ts +0 -27
  204. package/dist/meetings/util.d.ts +0 -18
  205. package/dist/member/index.d.ts +0 -148
  206. package/dist/member/member.types.d.ts +0 -11
  207. package/dist/member/member.types.js +0 -18
  208. package/dist/member/member.types.js.map +0 -1
  209. package/dist/member/types.d.ts +0 -32
  210. package/dist/member/util.d.ts +0 -2
  211. package/dist/members/collection.d.ts +0 -24
  212. package/dist/members/index.d.ts +0 -308
  213. package/dist/members/request.d.ts +0 -58
  214. package/dist/members/types.d.ts +0 -25
  215. package/dist/members/util.d.ts +0 -2
  216. package/dist/metrics/config.d.ts +0 -169
  217. package/dist/metrics/config.js +0 -289
  218. package/dist/metrics/config.js.map +0 -1
  219. package/dist/metrics/constants.d.ts +0 -59
  220. package/dist/metrics/index.d.ts +0 -152
  221. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  222. package/dist/multistream/receiveSlot.d.ts +0 -68
  223. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  224. package/dist/multistream/remoteMedia.d.ts +0 -72
  225. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  226. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  227. package/dist/multistream/sendSlotManager.d.ts +0 -69
  228. package/dist/networkQualityMonitor/index.d.ts +0 -70
  229. package/dist/networkQualityMonitor/index.js +0 -226
  230. package/dist/networkQualityMonitor/index.js.map +0 -1
  231. package/dist/peer-connection-manager/index.d.ts +0 -6
  232. package/dist/peer-connection-manager/index.js +0 -671
  233. package/dist/peer-connection-manager/index.js.map +0 -1
  234. package/dist/peer-connection-manager/util.d.ts +0 -6
  235. package/dist/peer-connection-manager/util.js +0 -110
  236. package/dist/peer-connection-manager/util.js.map +0 -1
  237. package/dist/personal-meeting-room/index.d.ts +0 -47
  238. package/dist/personal-meeting-room/request.d.ts +0 -14
  239. package/dist/personal-meeting-room/util.d.ts +0 -2
  240. package/dist/reachability/clusterReachability.d.ts +0 -109
  241. package/dist/reachability/index.d.ts +0 -139
  242. package/dist/reachability/request.d.ts +0 -35
  243. package/dist/reachability/util.d.ts +0 -8
  244. package/dist/reactions/constants.d.ts +0 -3
  245. package/dist/reactions/reactions.d.ts +0 -4
  246. package/dist/reactions/reactions.type.d.ts +0 -32
  247. package/dist/reconnection-manager/index.d.ts +0 -112
  248. package/dist/recording-controller/enums.d.ts +0 -7
  249. package/dist/recording-controller/index.d.ts +0 -193
  250. package/dist/recording-controller/util.d.ts +0 -13
  251. package/dist/roap/collection.d.ts +0 -10
  252. package/dist/roap/collection.js +0 -63
  253. package/dist/roap/collection.js.map +0 -1
  254. package/dist/roap/handler.d.ts +0 -47
  255. package/dist/roap/handler.js +0 -279
  256. package/dist/roap/handler.js.map +0 -1
  257. package/dist/roap/index.d.ts +0 -116
  258. package/dist/roap/request.d.ts +0 -35
  259. package/dist/roap/state.d.ts +0 -9
  260. package/dist/roap/state.js +0 -127
  261. package/dist/roap/state.js.map +0 -1
  262. package/dist/roap/turnDiscovery.d.ts +0 -81
  263. package/dist/roap/util.d.ts +0 -2
  264. package/dist/roap/util.js +0 -76
  265. package/dist/roap/util.js.map +0 -1
  266. package/dist/rtcMetrics/constants.d.ts +0 -4
  267. package/dist/rtcMetrics/constants.js.map +0 -1
  268. package/dist/rtcMetrics/index.d.ts +0 -61
  269. package/dist/rtcMetrics/index.js +0 -197
  270. package/dist/rtcMetrics/index.js.map +0 -1
  271. package/dist/statsAnalyzer/global.d.ts +0 -118
  272. package/dist/statsAnalyzer/global.js +0 -127
  273. package/dist/statsAnalyzer/global.js.map +0 -1
  274. package/dist/statsAnalyzer/index.d.ts +0 -193
  275. package/dist/statsAnalyzer/index.js +0 -1019
  276. package/dist/statsAnalyzer/index.js.map +0 -1
  277. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  278. package/dist/statsAnalyzer/mqaUtil.js +0 -181
  279. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  280. package/dist/transcription/index.d.ts +0 -64
  281. package/dist/types/common/errors/reconnection-in-progress.d.ts +0 -9
  282. package/dist/types/mediaQualityMetrics/config.d.ts +0 -241
  283. package/dist/types/networkQualityMonitor/index.d.ts +0 -70
  284. package/dist/types/rtcMetrics/constants.d.ts +0 -4
  285. package/dist/types/rtcMetrics/index.d.ts +0 -71
  286. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  287. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  288. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  289. package/dist/webinar/collection.d.ts +0 -16
  290. package/dist/webinar/index.d.ts +0 -5
@@ -11,7 +11,6 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  value: true
12
12
  });
13
13
  exports.default = void 0;
14
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
15
14
  var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
16
15
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
17
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -69,7 +68,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
69
68
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "aclUrl", void 0);
70
69
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "baseSequence", void 0);
71
70
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "created", void 0);
72
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deltaParticipants", void 0);
73
71
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "identities", void 0);
74
72
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "membership", void 0);
75
73
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "participants", void 0);
@@ -115,6 +113,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
115
113
  var _this2 = this;
116
114
  var isDelta;
117
115
  var url;
116
+ var meetingDestroyed = false;
118
117
  if (this.locusParser.workingCopy.syncUrl) {
119
118
  url = this.locusParser.workingCopy.syncUrl;
120
119
  isDelta = true;
@@ -139,30 +138,59 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
139
138
  code: e.code
140
139
  });
141
140
  isDelta = false;
142
- return meeting.meetingRequest.getLocusDTO({
143
- url: meeting.locusUrl
144
- }).catch(function (err) {
145
- _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
146
- _this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
147
- throw err;
148
- });
141
+
142
+ // Locus sometimes returns 403, for example if meeting has ended, no point trying the fallback to full sync in that case
143
+ if (e.statusCode !== 403) {
144
+ return meeting.meetingRequest.getLocusDTO({
145
+ url: meeting.locusUrl
146
+ }).catch(function (err) {
147
+ _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
148
+ _this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
149
+ meetingDestroyed = true;
150
+ throw err;
151
+ });
152
+ }
153
+ _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> got 403 from Locus, skipping fallback to full sync, destroying the meeting');
154
+ } else {
155
+ _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
149
156
  }
150
- _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
151
157
  _this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
158
+ meetingDestroyed = true;
152
159
  throw e;
153
160
  }).then(function (res) {
161
+ if ((0, _lodash.isEmpty)(res.body)) {
162
+ if (isDelta) {
163
+ _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');
164
+ } else {
165
+ _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from full DTO sync request');
166
+ }
167
+ return;
168
+ }
154
169
  if (isDelta) {
155
- if (!(0, _lodash.isEmpty)(res.body)) {
170
+ if (res.body.baseSequence) {
156
171
  meeting.locusInfo.handleLocusDelta(res.body, meeting);
157
- } else {
158
- _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');
172
+ return;
159
173
  }
160
- } else {
161
- meeting.locusInfo.onFullLocus(res.body);
174
+ // in some cases Locus might return us full DTO even when we asked for a delta
175
+ _loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> got full DTO when we asked for delta');
176
+ }
177
+ meeting.locusInfo.onFullLocus(res.body);
178
+ }).catch(function (e) {
179
+ _loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> getLocusDTO succeeded but failed to handle result, locus parser will resume but not all data may be synced (".concat(e.toString(), ")"));
180
+ _metrics.default.sendBehavioralMetric(_constants2.default.LOCUS_SYNC_HANDLING_FAILED, {
181
+ correlationId: meeting.correlationId,
182
+ url: url,
183
+ reason: e.message,
184
+ errorName: e.name,
185
+ stack: e.stack,
186
+ code: e.code
187
+ });
188
+ }).finally(function () {
189
+ if (!meetingDestroyed) {
190
+ // Notify parser to resume processing delta events.
191
+ // Any deltas in the queue that have now been superseded by this sync will simply be ignored
192
+ _this2.locusParser.resume();
162
193
  }
163
- // Notify parser to resume processing delta events.
164
- // Any deltas in the queue that have now been superseded by this sync will simply be ignored
165
- _this2.locusParser.resume();
166
194
  });
167
195
  }
168
196
 
@@ -252,16 +280,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
252
280
  * @property {Object} person - Contains person data.
253
281
  */
254
282
 
255
- /**
256
- * Stored participant changes between the last event and the current event.
257
- * All previously stored events are overwritten between events.
258
- *
259
- * @instance
260
- * @type {Array<DeltaParticipant>}
261
- * @private
262
- * @member LocusInfo
263
- */
264
- this.deltaParticipants = [];
265
283
  this.updateLocusCache(locus);
266
284
  // above section only updates the locusInfo object
267
285
  // The below section makes sure it updates the locusInfo as well as updates the meeting object
@@ -366,7 +384,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
366
384
  _loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
367
385
  return;
368
386
  }
369
- this.updateParticipantDeltas(locus.participants);
370
387
  this.scheduledMeeting = locus.meeting || null;
371
388
  this.participants = locus.participants;
372
389
  var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
@@ -450,12 +467,12 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
450
467
  this.updateCreated(locus.created);
451
468
  this.updateFullState(locus.fullState);
452
469
  this.updateHostInfo(locus.host);
470
+ this.updateLocusUrl(locus.url);
453
471
  this.updateMeetingInfo(locus.info, locus.self);
454
472
  this.updateMediaShares(locus.mediaShares);
455
473
  this.updateParticipantsUrl(locus.participantsUrl);
456
474
  this.updateReplace(locus.replace);
457
475
  this.updateSelf(locus.self);
458
- this.updateLocusUrl(locus.url);
459
476
  this.updateAclUrl(locus.aclUrl);
460
477
  this.updateBasequence(locus.baseSequence);
461
478
  this.updateSequence(locus.sequence);
@@ -657,58 +674,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
657
674
  }
658
675
  }
659
676
 
660
- /**
661
- * Update the deltaParticipants property of this object based on a list of
662
- * provided participants.
663
- *
664
- * @param {Array} [participants] - The participants to update against.
665
- * @returns {void}
666
- */
667
- }, {
668
- key: "updateParticipantDeltas",
669
- value: function updateParticipantDeltas() {
670
- var _this4 = this;
671
- var participants = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
672
- // Used to find a participant within a participants collection.
673
- var findParticipant = function findParticipant(participant, collection) {
674
- return collection.find(function (item) {
675
- return item.person.id === participant.person.id;
676
- });
677
- };
678
-
679
- // Generates an object that indicates which state properties have changed.
680
- var generateDelta = function generateDelta() {
681
- var prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
682
- var newState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
683
- // Setup deltas.
684
- var deltas = {
685
- audioStatus: prevState.audioStatus !== newState.audioStatus,
686
- videoSlidesStatus: prevState.videoSlidesStatus !== newState.videoSlidesStatus,
687
- videoStatus: prevState.videoStatus !== newState.videoStatus
688
- };
689
-
690
- // Clean the object
691
- (0, _keys.default)(deltas).forEach(function (key) {
692
- if (deltas[key] !== true) {
693
- delete deltas[key];
694
- }
695
- });
696
- return deltas;
697
- };
698
- this.deltaParticipants = participants.reduce(function (collection, participant) {
699
- var existingParticipant = findParticipant(participant, _this4.participants || []) || {};
700
- var delta = generateDelta(existingParticipant.status, participant.status);
701
- var changed = (0, _keys.default)(delta).length > 0;
702
- if (changed) {
703
- collection.push({
704
- person: participant.person,
705
- delta: delta
706
- });
707
- }
708
- return collection;
709
- }, []);
710
- }
711
-
712
677
  /**
713
678
  * update meeting's members
714
679
  * @param {Object} participants new participants object
@@ -772,6 +737,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
772
737
  hasRecordingPausedChanged = _ControlsUtils$getCon2.hasRecordingPausedChanged,
773
738
  hasMeetingContainerChanged = _ControlsUtils$getCon2.hasMeetingContainerChanged,
774
739
  hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,
740
+ hasTranscribeSpokenLanguageChanged = _ControlsUtils$getCon2.hasTranscribeSpokenLanguageChanged,
775
741
  hasManualCaptionChanged = _ControlsUtils$getCon2.hasManualCaptionChanged,
776
742
  hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,
777
743
  hasBreakoutChanged = _ControlsUtils$getCon2.hasBreakoutChanged,
@@ -791,6 +757,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
791
757
  hasStageViewChanged = _ControlsUtils$getCon2.hasStageViewChanged,
792
758
  hasAnnotationControlChanged = _ControlsUtils$getCon2.hasAnnotationControlChanged,
793
759
  hasRemoteDesktopControlChanged = _ControlsUtils$getCon2.hasRemoteDesktopControlChanged,
760
+ hasPollingQAControlChanged = _ControlsUtils$getCon2.hasPollingQAControlChanged,
794
761
  current = _ControlsUtils$getCon.current;
795
762
  if (hasMuteOnEntryChanged) {
796
763
  this.emitScoped({
@@ -890,6 +857,15 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
890
857
  caption: caption
891
858
  });
892
859
  }
860
+ if (hasTranscribeSpokenLanguageChanged) {
861
+ var spokenLanguage = current.transcribe.spokenLanguage;
862
+ this.emitScoped({
863
+ file: 'locus-info',
864
+ function: 'updateControls'
865
+ }, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED, {
866
+ spokenLanguage: spokenLanguage
867
+ });
868
+ }
893
869
  if (hasManualCaptionChanged) {
894
870
  var enabled = current.manualCaptionControl.enabled;
895
871
  this.emitScoped({
@@ -994,6 +970,14 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
994
970
  state: current.rdcControl
995
971
  });
996
972
  }
973
+ if (hasPollingQAControlChanged) {
974
+ this.emitScoped({
975
+ file: 'locus-info',
976
+ function: 'updateControls'
977
+ }, _constants.LOCUSINFO.EVENTS.CONTROLS_POLLING_QA_CHANGED, {
978
+ state: current.pollingQAControl
979
+ });
980
+ }
997
981
  this.controls = controls;
998
982
  }
999
983
  }
@@ -1607,7 +1591,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
1607
1591
  }, {
1608
1592
  key: "updateMainSessionLocusCache",
1609
1593
  value: function updateMainSessionLocusCache(mainLocus) {
1610
- var _this5 = this;
1594
+ var _this4 = this;
1611
1595
  if (!mainLocus) {
1612
1596
  return;
1613
1597
  }
@@ -1616,7 +1600,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
1616
1600
  // shallow merge and do special merge for participants
1617
1601
  (0, _lodash.assignWith)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {
1618
1602
  if (key === 'participants') {
1619
- return _this5.mergeParticipants(objValue, srcValue);
1603
+ return _this4.mergeParticipants(objValue, srcValue);
1620
1604
  }
1621
1605
  return srcValue || objValue;
1622
1606
  });