@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.15

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 (252) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/common/browser-detection.js +1 -0
  4. package/dist/common/browser-detection.js.map +1 -1
  5. package/dist/common/collection.js.map +1 -1
  6. package/dist/common/errors/captcha-error.js +5 -5
  7. package/dist/common/errors/captcha-error.js.map +1 -1
  8. package/dist/common/errors/intent-to-join.js +5 -5
  9. package/dist/common/errors/intent-to-join.js.map +1 -1
  10. package/dist/common/errors/join-meeting.js +6 -6
  11. package/dist/common/errors/join-meeting.js.map +1 -1
  12. package/dist/common/errors/media.js +5 -5
  13. package/dist/common/errors/media.js.map +1 -1
  14. package/dist/common/errors/parameter.js +5 -5
  15. package/dist/common/errors/parameter.js.map +1 -1
  16. package/dist/common/errors/password-error.js +5 -5
  17. package/dist/common/errors/password-error.js.map +1 -1
  18. package/dist/common/errors/permission.js +4 -4
  19. package/dist/common/errors/permission.js.map +1 -1
  20. package/dist/common/errors/reconnection.js +5 -5
  21. package/dist/common/errors/reconnection.js.map +1 -1
  22. package/dist/common/errors/stats.js +5 -5
  23. package/dist/common/errors/stats.js.map +1 -1
  24. package/dist/common/errors/webex-errors.js.map +1 -1
  25. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  26. package/dist/common/events/events-scope.js.map +1 -1
  27. package/dist/common/events/events.js.map +1 -1
  28. package/dist/common/events/trigger-proxy.js.map +1 -1
  29. package/dist/common/events/util.js.map +1 -1
  30. package/dist/common/logs/logger-proxy.js.map +1 -1
  31. package/dist/common/logs/request.js.map +1 -1
  32. package/dist/config.js.map +1 -1
  33. package/dist/constants.js.map +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/locus-info/controlsUtils.js.map +1 -1
  36. package/dist/locus-info/fullState.js.map +1 -1
  37. package/dist/locus-info/hostUtils.js.map +1 -1
  38. package/dist/locus-info/index.js +11 -8
  39. package/dist/locus-info/index.js.map +1 -1
  40. package/dist/locus-info/infoUtils.js.map +1 -1
  41. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  42. package/dist/locus-info/parser.js +2 -1
  43. package/dist/locus-info/parser.js.map +1 -1
  44. package/dist/locus-info/selfUtils.js +2 -1
  45. package/dist/locus-info/selfUtils.js.map +1 -1
  46. package/dist/media/index.js.map +1 -1
  47. package/dist/media/internal-media-core-wrapper.js.map +1 -1
  48. package/dist/media/properties.js.map +1 -1
  49. package/dist/media/util.js +1 -1
  50. package/dist/media/util.js.map +1 -1
  51. package/dist/mediaQualityMetrics/config.js.map +1 -1
  52. package/dist/meeting/effectsState.js +1 -1
  53. package/dist/meeting/effectsState.js.map +1 -1
  54. package/dist/meeting/in-meeting-actions.js.map +1 -1
  55. package/dist/meeting/index.js +118 -89
  56. package/dist/meeting/index.js.map +1 -1
  57. package/dist/meeting/muteState.js +1 -1
  58. package/dist/meeting/muteState.js.map +1 -1
  59. package/dist/meeting/request.js +25 -0
  60. package/dist/meeting/request.js.map +1 -1
  61. package/dist/meeting/request.type.js +8 -0
  62. package/dist/meeting/request.type.js.map +1 -0
  63. package/dist/meeting/state.js +5 -5
  64. package/dist/meeting/state.js.map +1 -1
  65. package/dist/meeting/util.js.map +1 -1
  66. package/dist/meeting-info/collection.js.map +1 -1
  67. package/dist/meeting-info/index.js +2 -2
  68. package/dist/meeting-info/index.js.map +1 -1
  69. package/dist/meeting-info/meeting-info-v2.js +48 -48
  70. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  71. package/dist/meeting-info/request.js.map +1 -1
  72. package/dist/meeting-info/util.js.map +1 -1
  73. package/dist/meeting-info/utilv2.js +1 -1
  74. package/dist/meeting-info/utilv2.js.map +1 -1
  75. package/dist/meetings/collection.js.map +1 -1
  76. package/dist/meetings/index.js +251 -250
  77. package/dist/meetings/index.js.map +1 -1
  78. package/dist/meetings/request.js +2 -2
  79. package/dist/meetings/request.js.map +1 -1
  80. package/dist/meetings/util.js +14 -14
  81. package/dist/meetings/util.js.map +1 -1
  82. package/dist/member/index.js +31 -31
  83. package/dist/member/index.js.map +1 -1
  84. package/dist/member/util.js.map +1 -1
  85. package/dist/members/collection.js.map +1 -1
  86. package/dist/members/index.js +43 -43
  87. package/dist/members/index.js.map +1 -1
  88. package/dist/members/request.js.map +1 -1
  89. package/dist/members/util.js.map +1 -1
  90. package/dist/metrics/config.js.map +1 -1
  91. package/dist/metrics/constants.js.map +1 -1
  92. package/dist/metrics/index.js +23 -20
  93. package/dist/metrics/index.js.map +1 -1
  94. package/dist/multistream/multistreamMedia.js +2 -1
  95. package/dist/multistream/multistreamMedia.js.map +1 -1
  96. package/dist/multistream/receiveSlot.js.map +1 -1
  97. package/dist/multistream/receiveSlotManager.js +2 -0
  98. package/dist/multistream/receiveSlotManager.js.map +1 -1
  99. package/dist/multistream/remoteMedia.js.map +1 -1
  100. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  101. package/dist/multistream/remoteMediaManager.js.map +1 -1
  102. package/dist/networkQualityMonitor/index.js +8 -8
  103. package/dist/networkQualityMonitor/index.js.map +1 -1
  104. package/dist/personal-meeting-room/index.js +7 -7
  105. package/dist/personal-meeting-room/index.js.map +1 -1
  106. package/dist/personal-meeting-room/request.js.map +1 -1
  107. package/dist/personal-meeting-room/util.js.map +1 -1
  108. package/dist/reachability/index.js.map +1 -1
  109. package/dist/reachability/request.js.map +1 -1
  110. package/dist/reactions/reactions.js.map +1 -1
  111. package/dist/reactions/reactions.type.js +3 -1
  112. package/dist/reactions/reactions.type.js.map +1 -1
  113. package/dist/reconnection-manager/index.js +4 -4
  114. package/dist/reconnection-manager/index.js.map +1 -1
  115. package/dist/roap/index.js +5 -5
  116. package/dist/roap/index.js.map +1 -1
  117. package/dist/roap/request.js.map +1 -1
  118. package/dist/roap/turnDiscovery.js.map +1 -1
  119. package/dist/statsAnalyzer/global.js.map +1 -1
  120. package/dist/statsAnalyzer/index.js.map +1 -1
  121. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  122. package/dist/transcription/index.js +4 -1
  123. package/dist/transcription/index.js.map +1 -1
  124. package/internal-README.md +7 -6
  125. package/package.json +18 -18
  126. package/src/common/browser-detection.ts +9 -6
  127. package/src/common/collection.ts +3 -1
  128. package/src/common/errors/captcha-error.ts +6 -6
  129. package/src/common/errors/intent-to-join.ts +6 -6
  130. package/src/common/errors/join-meeting.ts +12 -8
  131. package/src/common/errors/media.ts +6 -6
  132. package/src/common/errors/parameter.ts +9 -6
  133. package/src/common/errors/password-error.ts +6 -6
  134. package/src/common/errors/permission.ts +5 -5
  135. package/src/common/errors/reconnection.ts +6 -6
  136. package/src/common/errors/stats.ts +6 -6
  137. package/src/common/errors/webex-errors.ts +7 -5
  138. package/src/common/errors/webex-meetings-error.ts +1 -1
  139. package/src/common/events/events-scope.ts +5 -1
  140. package/src/common/events/events.ts +5 -1
  141. package/src/common/events/trigger-proxy.ts +8 -3
  142. package/src/common/events/util.ts +1 -2
  143. package/src/common/logs/logger-proxy.ts +21 -10
  144. package/src/common/logs/request.ts +11 -8
  145. package/src/config.ts +11 -11
  146. package/src/constants.ts +1 -1
  147. package/src/index.js +1 -1
  148. package/src/locus-info/controlsUtils.ts +34 -24
  149. package/src/locus-info/fullState.ts +15 -11
  150. package/src/locus-info/hostUtils.ts +4 -3
  151. package/src/locus-info/index.ts +25 -34
  152. package/src/locus-info/infoUtils.ts +12 -4
  153. package/src/locus-info/mediaSharesUtils.ts +4 -4
  154. package/src/locus-info/parser.ts +45 -68
  155. package/src/locus-info/selfUtils.ts +106 -57
  156. package/src/media/index.ts +123 -135
  157. package/src/media/internal-media-core-wrapper.ts +2 -2
  158. package/src/media/properties.ts +30 -20
  159. package/src/media/util.ts +1 -1
  160. package/src/mediaQualityMetrics/config.ts +46 -46
  161. package/src/meeting/effectsState.ts +35 -35
  162. package/src/meeting/in-meeting-actions.ts +7 -3
  163. package/src/meeting/index.ts +1576 -1291
  164. package/src/meeting/muteState.ts +62 -31
  165. package/src/meeting/request.ts +174 -113
  166. package/src/meeting/request.type.ts +11 -0
  167. package/src/meeting/state.ts +45 -30
  168. package/src/meeting/util.ts +101 -70
  169. package/src/meeting-info/collection.ts +2 -1
  170. package/src/meeting-info/index.ts +32 -30
  171. package/src/meeting-info/meeting-info-v2.ts +106 -108
  172. package/src/meeting-info/request.ts +9 -3
  173. package/src/meeting-info/util.ts +54 -46
  174. package/src/meeting-info/utilv2.ts +59 -53
  175. package/src/meetings/collection.ts +1 -1
  176. package/src/meetings/index.ts +512 -440
  177. package/src/meetings/request.ts +26 -24
  178. package/src/meetings/util.ts +29 -29
  179. package/src/member/index.ts +55 -49
  180. package/src/member/util.ts +26 -13
  181. package/src/members/collection.ts +0 -1
  182. package/src/members/index.ts +182 -126
  183. package/src/members/request.ts +46 -14
  184. package/src/members/util.ts +44 -42
  185. package/src/metrics/config.ts +254 -81
  186. package/src/metrics/constants.ts +0 -2
  187. package/src/metrics/index.ts +84 -71
  188. package/src/multistream/multistreamMedia.ts +1 -0
  189. package/src/multistream/receiveSlot.ts +1 -0
  190. package/src/multistream/receiveSlotManager.ts +1 -0
  191. package/src/multistream/remoteMedia.ts +1 -1
  192. package/src/multistream/remoteMediaGroup.ts +2 -1
  193. package/src/multistream/remoteMediaManager.ts +3 -0
  194. package/src/networkQualityMonitor/index.ts +20 -23
  195. package/src/personal-meeting-room/index.ts +12 -16
  196. package/src/personal-meeting-room/request.ts +10 -3
  197. package/src/personal-meeting-room/util.ts +3 -3
  198. package/src/reachability/index.ts +61 -59
  199. package/src/reachability/request.ts +36 -32
  200. package/src/reactions/reactions.ts +4 -4
  201. package/src/reactions/reactions.type.ts +4 -3
  202. package/src/reconnection-manager/index.ts +139 -84
  203. package/src/roap/index.ts +46 -38
  204. package/src/roap/request.ts +44 -31
  205. package/src/roap/turnDiscovery.ts +59 -30
  206. package/src/statsAnalyzer/global.ts +30 -33
  207. package/src/statsAnalyzer/index.ts +432 -175
  208. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  209. package/src/transcription/index.ts +34 -32
  210. package/test/integration/spec/journey.js +663 -462
  211. package/test/integration/spec/space-meeting.js +318 -203
  212. package/test/integration/spec/transcription.js +6 -7
  213. package/test/unit/spec/common/browser-detection.js +9 -28
  214. package/test/unit/spec/fixture/locus.js +92 -90
  215. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  216. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  217. package/test/unit/spec/locus-info/index.js +1 -2
  218. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  219. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  220. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  221. package/test/unit/spec/locus-info/parser.js +3 -9
  222. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  223. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  224. package/test/unit/spec/meeting/effectsState.js +36 -46
  225. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  226. package/test/unit/spec/meeting/index.js +1342 -684
  227. package/test/unit/spec/meeting/muteState.js +42 -33
  228. package/test/unit/spec/meeting/request.js +75 -45
  229. package/test/unit/spec/meeting/utils.js +78 -53
  230. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  231. package/test/unit/spec/meeting-info/request.js +7 -9
  232. package/test/unit/spec/meeting-info/util.js +11 -12
  233. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  234. package/test/unit/spec/meetings/collection.js +1 -1
  235. package/test/unit/spec/meetings/index.js +438 -257
  236. package/test/unit/spec/meetings/utils.js +14 -12
  237. package/test/unit/spec/member/index.js +0 -1
  238. package/test/unit/spec/member/util.js +5 -6
  239. package/test/unit/spec/members/index.js +104 -54
  240. package/test/unit/spec/members/request.js +29 -20
  241. package/test/unit/spec/members/utils.js +8 -5
  242. package/test/unit/spec/metrics/index.js +16 -21
  243. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  244. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  245. package/test/unit/spec/reachability/index.ts +9 -11
  246. package/test/unit/spec/reconnection-manager/index.js +16 -18
  247. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  248. package/test/unit/spec/stats-analyzer/index.js +25 -20
  249. package/test/utils/cmr.js +44 -42
  250. package/test/utils/testUtils.js +83 -74
  251. package/test/utils/webex-config.js +18 -18
  252. package/test/utils/webex-test-users.js +53 -50
@@ -18,46 +18,46 @@ import {ReceiveSlotManager} from '../multistream/receiveSlotManager';
18
18
  import {MediaRequestManager} from '../multistream/mediaRequestManager';
19
19
 
20
20
  /**
21
- * Members Update Event
22
- * Emitted when something in the roster list needs to be updated
23
- * @event members:update
24
- * @instance
25
- * @property {Object} delta the changes to the members list
26
- * @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
27
- * @property {Array} delta.added array added members to the meeting
28
- * @property {Array} full array the full members collection
29
- * @memberof Members
30
- */
21
+ * Members Update Event
22
+ * Emitted when something in the roster list needs to be updated
23
+ * @event members:update
24
+ * @instance
25
+ * @property {Object} delta the changes to the members list
26
+ * @property {Array} delta.updated array only the updates, includes removals, as they will have updated status and member properties
27
+ * @property {Array} delta.added array added members to the meeting
28
+ * @property {Array} full array the full members collection
29
+ * @memberof Members
30
+ */
31
31
 
32
32
  /**
33
- * Members Content Update Event
34
- * Emitted when who is sharing changes
35
- * @event members:content:update
36
- * @instance
37
- * @property {String} activeContentSharingId
38
- * @property {String} endedContentSharingId
39
- * @memberof Members
40
- */
33
+ * Members Content Update Event
34
+ * Emitted when who is sharing changes
35
+ * @event members:content:update
36
+ * @instance
37
+ * @property {String} activeContentSharingId
38
+ * @property {String} endedContentSharingId
39
+ * @memberof Members
40
+ */
41
41
 
42
42
  /**
43
- * Members Host Update Event
44
- * Emitted when who is the host changes
45
- * @event members:host:update
46
- * @instance
47
- * @property {String} activeHostId
48
- * @property {String} endedHostId
49
- * @memberof Members
50
- */
43
+ * Members Host Update Event
44
+ * Emitted when who is the host changes
45
+ * @event members:host:update
46
+ * @instance
47
+ * @property {String} activeHostId
48
+ * @property {String} endedHostId
49
+ * @memberof Members
50
+ */
51
51
 
52
52
  /**
53
- * Members Self Update Event
54
- * Emitted when who is the self changes
55
- * @event members:self:update
56
- * @instance
57
- * @property {String} activeSelfId
58
- * @property {String} endedSelfId
59
- * @memberof Members
60
- */
53
+ * Members Self Update Event
54
+ * Emitted when who is the self changes
55
+ * @event members:self:update
56
+ * @instance
57
+ * @property {String} activeSelfId
58
+ * @property {String} endedSelfId
59
+ * @memberof Members
60
+ */
61
61
 
62
62
  /**
63
63
  * @class Members
@@ -74,6 +74,7 @@ export default class Members extends StatelessWebexPlugin {
74
74
  audio: MediaRequestManager;
75
75
  video: MediaRequestManager;
76
76
  };
77
+
77
78
  recordingId: any;
78
79
  selfId: any;
79
80
  type: any;
@@ -94,8 +95,8 @@ export default class Members extends StatelessWebexPlugin {
94
95
  * @type {MembersRequest}
95
96
  * @private
96
97
  * @memberof Members
97
- */
98
- // @ts-ignore
98
+ */
99
+ // @ts-ignore
99
100
  this.membersRequest = new MembersRequest({}, options);
100
101
  /**
101
102
  * The Members Collection cache
@@ -103,7 +104,7 @@ export default class Members extends StatelessWebexPlugin {
103
104
  * @type {MembersCollection}
104
105
  * @private
105
106
  * @memberof Members
106
- */
107
+ */
107
108
  this.membersCollection = new MembersCollection();
108
109
  /**
109
110
  * The current locus url for the active meeting
@@ -111,7 +112,7 @@ export default class Members extends StatelessWebexPlugin {
111
112
  * @type {String}
112
113
  * @private
113
114
  * @memberof Members
114
- */
115
+ */
115
116
  this.locusUrl = attrs.locusUrl || null;
116
117
  /**
117
118
  * The current hostId for the meeting
@@ -119,7 +120,7 @@ export default class Members extends StatelessWebexPlugin {
119
120
  * @type {String}
120
121
  * @private
121
122
  * @memberof Members
122
- */
123
+ */
123
124
  this.hostId = null;
124
125
  /**
125
126
  * The current type for the meeting, could be MEETING or CALL
@@ -127,7 +128,7 @@ export default class Members extends StatelessWebexPlugin {
127
128
  * @type {String}
128
129
  * @private
129
130
  * @memberof Members
130
- */
131
+ */
131
132
  this.type = null;
132
133
  /**
133
134
  * Locus has a self object, sent individually to the client
@@ -141,7 +142,7 @@ export default class Members extends StatelessWebexPlugin {
141
142
  * @type {String}
142
143
  * @private
143
144
  * @memberof Members
144
- */
145
+ */
145
146
  this.selfId = null;
146
147
  /**
147
148
  * The current mediaShareContentId for the meeting
@@ -149,7 +150,7 @@ export default class Members extends StatelessWebexPlugin {
149
150
  * @type {String}
150
151
  * @private
151
152
  * @memberof Members
152
- */
153
+ */
153
154
  this.mediaShareContentId = null;
154
155
  /**
155
156
  * The current mediaShareWhiteboardId for the meeting
@@ -157,7 +158,7 @@ export default class Members extends StatelessWebexPlugin {
157
158
  * @type {String}
158
159
  * @private
159
160
  * @memberof Members
160
- */
161
+ */
161
162
  this.mediaShareWhiteboardId = null;
162
163
  /**
163
164
  * The current recordingId for the meeting, if it exists
@@ -165,7 +166,7 @@ export default class Members extends StatelessWebexPlugin {
165
166
  * @type {String}
166
167
  * @private
167
168
  * @memberof Members
168
- */
169
+ */
169
170
  this.recordingId = null;
170
171
 
171
172
  /**
@@ -190,7 +191,7 @@ export default class Members extends StatelessWebexPlugin {
190
191
  * @private
191
192
  * @memberof Members
192
193
  */
193
- locusSelfUpdate(payload: { newSelf: any; oldSelf: any }) {
194
+ locusSelfUpdate(payload: {newSelf: any; oldSelf: any}) {
194
195
  let newSelfId = null;
195
196
  let oldSelfId = null;
196
197
 
@@ -221,12 +222,12 @@ export default class Members extends StatelessWebexPlugin {
221
222
  this,
222
223
  {
223
224
  file: 'members',
224
- function: 'locusSelfUpdate'
225
+ function: 'locusSelfUpdate',
225
226
  },
226
227
  EVENT_TRIGGERS.MEMBERS_SELF_UPDATE,
227
228
  {
228
229
  activeSelfId: newSelfId,
229
- endedSelfId: oldSelfId
230
+ endedSelfId: oldSelfId,
230
231
  }
231
232
  );
232
233
  }
@@ -240,7 +241,7 @@ export default class Members extends StatelessWebexPlugin {
240
241
  * @private
241
242
  * @memberof Members
242
243
  */
243
- locusHostUpdate(payload: { newHost: any; oldHost: any }) {
244
+ locusHostUpdate(payload: {newHost: any; oldHost: any}) {
244
245
  let newHostId = null;
245
246
  let oldHostId = null;
246
247
 
@@ -271,12 +272,12 @@ export default class Members extends StatelessWebexPlugin {
271
272
  this,
272
273
  {
273
274
  file: 'members',
274
- function: 'locusHostUpdate'
275
+ function: 'locusHostUpdate',
275
276
  },
276
277
  EVENT_TRIGGERS.MEMBERS_HOST_UPDATE,
277
278
  {
278
279
  activeHostId: newHostId,
279
- endedHostId: oldHostId
280
+ endedHostId: oldHostId,
280
281
  }
281
282
  );
282
283
  }
@@ -290,7 +291,7 @@ export default class Members extends StatelessWebexPlugin {
290
291
  * @private
291
292
  * @memberof Members
292
293
  */
293
- locusParticipantsUpdate(payload: { participants: object }) {
294
+ locusParticipantsUpdate(payload: {participants: object}) {
294
295
  if (payload) {
295
296
  const delta = this.handleLocusInfoUpdatedParticipants(payload);
296
297
  const full = this.handleMembersUpdate(delta); // SDK should propagate the full list for both delta and non delta updates
@@ -299,12 +300,12 @@ export default class Members extends StatelessWebexPlugin {
299
300
  this,
300
301
  {
301
302
  file: 'members',
302
- function: 'locusParticipantsUpdate'
303
+ function: 'locusParticipantsUpdate',
303
304
  },
304
305
  EVENT_TRIGGERS.MEMBERS_UPDATE,
305
306
  {
306
307
  delta,
307
- full
308
+ full,
308
309
  }
309
310
  );
310
311
  }
@@ -319,7 +320,7 @@ export default class Members extends StatelessWebexPlugin {
319
320
  * @private
320
321
  * @memberof Members
321
322
  */
322
- locusMediaSharesUpdate(payload: { current: any; previous: any }) {
323
+ locusMediaSharesUpdate(payload: {current: any; previous: any}) {
323
324
  const currentContent = payload.current?.content;
324
325
  const previousContent = payload.previous?.content;
325
326
  const currentWhiteboard = payload.current?.whiteboard;
@@ -338,8 +339,10 @@ export default class Members extends StatelessWebexPlugin {
338
339
  if (currentContent.disposition === FLOOR_ACTION.RELEASED) {
339
340
  whoStopped = currentContent.beneficiaryId;
340
341
  this.mediaShareContentId = null;
341
- }
342
- else if (currentContent.disposition === FLOOR_ACTION.GRANTED && currentContent.beneficiaryId !== previousContent.beneficiaryId) {
342
+ } else if (
343
+ currentContent.disposition === FLOOR_ACTION.GRANTED &&
344
+ currentContent.beneficiaryId !== previousContent.beneficiaryId
345
+ ) {
343
346
  whoStopped = previousContent.beneficiaryId;
344
347
  }
345
348
  }
@@ -356,8 +359,10 @@ export default class Members extends StatelessWebexPlugin {
356
359
  if (currentWhiteboard.disposition === FLOOR_ACTION.RELEASED) {
357
360
  whoStopped = currentWhiteboard.beneficiaryId;
358
361
  this.mediaShareWhiteboardId = null;
359
- }
360
- else if (currentWhiteboard.disposition === FLOOR_ACTION.GRANTED && currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId) {
362
+ } else if (
363
+ currentWhiteboard.disposition === FLOOR_ACTION.GRANTED &&
364
+ currentWhiteboard.beneficiaryId !== previousWhiteboard.beneficiaryId
365
+ ) {
361
366
  whoStopped = previousWhiteboard.beneficiaryId;
362
367
  }
363
368
  }
@@ -382,17 +387,16 @@ export default class Members extends StatelessWebexPlugin {
382
387
  this,
383
388
  {
384
389
  file: 'members',
385
- function: 'locusMediaSharesUpdate'
390
+ function: 'locusMediaSharesUpdate',
386
391
  },
387
392
  EVENT_TRIGGERS.MEMBERS_CONTENT_UPDATE,
388
393
  {
389
394
  activeSharingId: whoSharing,
390
- endedSharingId: whoStopped
395
+ endedSharingId: whoStopped,
391
396
  }
392
397
  );
393
398
  }
394
399
 
395
-
396
400
  /**
397
401
  * Internal update the locus url value
398
402
  * @param {Object} payload
@@ -415,7 +419,7 @@ export default class Members extends StatelessWebexPlugin {
415
419
  * @private
416
420
  * @memberof Members
417
421
  */
418
- locusFullStateTypeUpdate(payload: { type: string }) {
422
+ locusFullStateTypeUpdate(payload: {type: string}) {
419
423
  // TODO: at some point there could be a timing issue here, for updating each member
420
424
  // ie., if the type changes AND there is no locus update, then each member will not know the type of call
421
425
  // which means they cannot determine isMutable && isRemovable
@@ -472,7 +476,9 @@ export default class Members extends StatelessWebexPlugin {
472
476
  this.selfId = payload.selfId || this.selfId;
473
477
  this.recordingId = payload.recordingId;
474
478
  if (!payload.participants) {
475
- LoggerProxy.logger.warn('Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.');
479
+ LoggerProxy.logger.warn(
480
+ 'Members:index#handleLocusInfoUpdatedParticipants --> participants payload is missing.'
481
+ );
476
482
  }
477
483
  const memberUpdate = this.update(payload.participants);
478
484
 
@@ -491,12 +497,12 @@ export default class Members extends StatelessWebexPlugin {
491
497
  public setLocusUrl(locus: any, locusUrl: string = null) {
492
498
  if (locusUrl) {
493
499
  this.locusUrl = locusUrl;
494
- }
495
- else if (locus && (locus.locusUrl || locus.url)) {
500
+ } else if (locus && (locus.locusUrl || locus.url)) {
496
501
  this.locusUrl = locus.locusUrl || locus.url;
497
- }
498
- else {
499
- throw new ParameterError('Setting locusUrl for the Members module should be done with a locus object or locusUrl');
502
+ } else {
503
+ throw new ParameterError(
504
+ 'Setting locusUrl for the Members module should be done with a locus object or locusUrl'
505
+ );
500
506
  }
501
507
  }
502
508
 
@@ -512,12 +518,12 @@ export default class Members extends StatelessWebexPlugin {
512
518
  public setHostId(locus: any, hostId: string = null) {
513
519
  if (hostId) {
514
520
  this.hostId = hostId;
515
- }
516
- else if (locus) {
521
+ } else if (locus) {
517
522
  this.hostId = locus && locus.owner && locus.owner.info ? locus.owner.info : null;
518
- }
519
- else {
520
- throw new ParameterError('Setting hostid for the Members module should be done with a locus object or hostId');
523
+ } else {
524
+ throw new ParameterError(
525
+ 'Setting hostid for the Members module should be done with a locus object or hostId'
526
+ );
521
527
  }
522
528
  }
523
529
 
@@ -533,12 +539,12 @@ export default class Members extends StatelessWebexPlugin {
533
539
  public setType(fullState: any, type: string = null) {
534
540
  if (type) {
535
541
  this.type = type;
536
- }
537
- else if (fullState) {
542
+ } else if (fullState) {
538
543
  this.type = (fullState && fullState.type) || null;
539
- }
540
- else {
541
- throw new ParameterError('Setting type for the Members module should be done with a fullstate object or type string');
544
+ } else {
545
+ throw new ParameterError(
546
+ 'Setting type for the Members module should be done with a fullstate object or type string'
547
+ );
542
548
  }
543
549
  }
544
550
 
@@ -553,12 +559,15 @@ export default class Members extends StatelessWebexPlugin {
553
559
  setSelfId(locus: any, selfId: string = null) {
554
560
  if (selfId) {
555
561
  this.selfId = selfId;
556
- }
557
- else if (locus) {
558
- this.selfId = locus && locus.self && locus.self.person && locus.self.person.id ? locus.self.person.id : null;
559
- }
560
- else {
561
- throw new ParameterError('Setting selfid for the Members module should be done with a locus object or selfId');
562
+ } else if (locus) {
563
+ this.selfId =
564
+ locus && locus.self && locus.self.person && locus.self.person.id
565
+ ? locus.self.person.id
566
+ : null;
567
+ } else {
568
+ throw new ParameterError(
569
+ 'Setting selfid for the Members module should be done with a locus object or selfId'
570
+ );
562
571
  }
563
572
  }
564
573
 
@@ -573,8 +582,7 @@ export default class Members extends StatelessWebexPlugin {
573
582
  setMediaShareContentId(locus: any, contentId?: string) {
574
583
  if (contentId) {
575
584
  this.mediaShareContentId = contentId;
576
- }
577
- else if (locus) {
585
+ } else if (locus) {
578
586
  const contentMediaShare =
579
587
  locus.mediaShares &&
580
588
  locus.mediaShares.length &&
@@ -586,9 +594,10 @@ export default class Members extends StatelessWebexPlugin {
586
594
  contentMediaShare.floor.beneficiary &&
587
595
  contentMediaShare.floor.beneficiary.id) ||
588
596
  null;
589
- }
590
- else {
591
- throw new ParameterError('Setting hostid for the Members module should be done with a locus object or hostId');
597
+ } else {
598
+ throw new ParameterError(
599
+ 'Setting hostid for the Members module should be done with a locus object or hostId'
600
+ );
592
601
  }
593
602
  }
594
603
 
@@ -603,8 +612,7 @@ export default class Members extends StatelessWebexPlugin {
603
612
  setMediaShareWhiteboardId(locus: any, whiteboardId?: string) {
604
613
  if (whiteboardId) {
605
614
  this.mediaShareWhiteboardId = whiteboardId;
606
- }
607
- else if (locus) {
615
+ } else if (locus) {
608
616
  const whiteboardMediaShare =
609
617
  locus.mediaShares &&
610
618
  locus.mediaShares.length &&
@@ -616,9 +624,10 @@ export default class Members extends StatelessWebexPlugin {
616
624
  whiteboardMediaShare.floor.beneficiary &&
617
625
  whiteboardMediaShare.floor.beneficiary.id) ||
618
626
  null;
619
- }
620
- else {
621
- throw new ParameterError('Setting hostid for the Members module should be done with a locus object or hostId');
627
+ } else {
628
+ throw new ParameterError(
629
+ 'Setting hostid for the Members module should be done with a locus object or hostId'
630
+ );
622
631
  }
623
632
  }
624
633
 
@@ -651,11 +660,10 @@ export default class Members extends StatelessWebexPlugin {
651
660
  hostId: this.hostId,
652
661
  contentSharingId: this.mediaShareContentId,
653
662
  whiteboardSharingId: this.mediaShareWhiteboardId,
654
- type: this.type
663
+ type: this.type,
655
664
  })
656
665
  );
657
- }
658
- else {
666
+ } else {
659
667
  membersUpdate.added.push(
660
668
  new Member(participant, {
661
669
  recordingId: this.recordingId,
@@ -663,7 +671,7 @@ export default class Members extends StatelessWebexPlugin {
663
671
  hostId: this.hostId,
664
672
  contentSharingId: this.mediaShareContentId,
665
673
  whiteboardSharingId: this.mediaShareWhiteboardId,
666
- type: this.type
674
+ type: this.type,
667
675
  })
668
676
  );
669
677
  }
@@ -682,11 +690,15 @@ export default class Members extends StatelessWebexPlugin {
682
690
  */
683
691
  addMember(invitee: any, alertIfActive?: boolean) {
684
692
  if (!this.locusUrl) {
685
- return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
693
+ return Promise.reject(
694
+ new ParameterError('The associated locus url for this meeting object must be defined.')
695
+ );
686
696
  }
687
697
  if (MembersUtil.isInvalidInvitee(invitee)) {
688
698
  return Promise.reject(
689
- new ParameterError('The invitee must be defined with either a valid email, emailAddress or phoneNumber property.')
699
+ new ParameterError(
700
+ 'The invitee must be defined with either a valid email, emailAddress or phoneNumber property.'
701
+ )
690
702
  );
691
703
  }
692
704
  const options = MembersUtil.generateAddMemberOptions(invitee, this.locusUrl, alertIfActive);
@@ -702,7 +714,9 @@ export default class Members extends StatelessWebexPlugin {
702
714
  */
703
715
  cancelPhoneInvite(invitee: any) {
704
716
  if (!this.locusUrl) {
705
- return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
717
+ return Promise.reject(
718
+ new ParameterError('The associated locus url for this meeting object must be defined.')
719
+ );
706
720
  }
707
721
  if (MembersUtil.isInvalidInvitee(invitee)) {
708
722
  return Promise.reject(
@@ -711,7 +725,6 @@ export default class Members extends StatelessWebexPlugin {
711
725
  }
712
726
  const options = MembersUtil.cancelPhoneInviteOptions(invitee, this.locusUrl);
713
727
 
714
-
715
728
  return this.membersRequest.cancelPhoneInvite(options);
716
729
  }
717
730
 
@@ -740,10 +753,14 @@ export default class Members extends StatelessWebexPlugin {
740
753
  */
741
754
  public removeMember(memberId: string) {
742
755
  if (!this.locusUrl) {
743
- return Promise.reject(new ParameterError('The associated locus url for this meeting object must be defined.'));
756
+ return Promise.reject(
757
+ new ParameterError('The associated locus url for this meeting object must be defined.')
758
+ );
744
759
  }
745
760
  if (!memberId) {
746
- return Promise.reject(new ParameterError('The member id must be defined to remove the member.'));
761
+ return Promise.reject(
762
+ new ParameterError('The member id must be defined to remove the member.')
763
+ );
747
764
  }
748
765
  const options = MembersUtil.generateRemoveMemberOptions(memberId, this.locusUrl);
749
766
 
@@ -758,12 +775,18 @@ export default class Members extends StatelessWebexPlugin {
758
775
  * @public
759
776
  * @memberof Members
760
777
  */
761
- public muteMember(memberId: string, mute: boolean = true) {
778
+ public muteMember(memberId: string, mute = true) {
762
779
  if (!this.locusUrl) {
763
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
780
+ return Promise.reject(
781
+ new ParameterError(
782
+ 'The associated locus url for this meetings members object must be defined.'
783
+ )
784
+ );
764
785
  }
765
786
  if (!memberId) {
766
- return Promise.reject(new ParameterError('The member id must be defined to mute the member.'));
787
+ return Promise.reject(
788
+ new ParameterError('The member id must be defined to mute the member.')
789
+ );
767
790
  }
768
791
  const options = MembersUtil.generateMuteMemberOptions(memberId, mute, this.locusUrl);
769
792
 
@@ -778,12 +801,18 @@ export default class Members extends StatelessWebexPlugin {
778
801
  * @public
779
802
  * @memberof Members
780
803
  */
781
- public raiseOrLowerHand(memberId: string, raise: boolean = true) {
804
+ public raiseOrLowerHand(memberId: string, raise = true) {
782
805
  if (!this.locusUrl) {
783
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
806
+ return Promise.reject(
807
+ new ParameterError(
808
+ 'The associated locus url for this meetings members object must be defined.'
809
+ )
810
+ );
784
811
  }
785
812
  if (!memberId) {
786
- return Promise.reject(new ParameterError('The member id must be defined to raise/lower the hand of the member.'));
813
+ return Promise.reject(
814
+ new ParameterError('The member id must be defined to raise/lower the hand of the member.')
815
+ );
787
816
  }
788
817
  const options = MembersUtil.generateRaiseHandMemberOptions(memberId, raise, this.locusUrl);
789
818
 
@@ -799,17 +828,27 @@ export default class Members extends StatelessWebexPlugin {
799
828
  */
800
829
  public lowerAllHands(requestingMemberId: string) {
801
830
  if (!this.locusUrl) {
802
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
831
+ return Promise.reject(
832
+ new ParameterError(
833
+ 'The associated locus url for this meetings members object must be defined.'
834
+ )
835
+ );
803
836
  }
804
837
  if (!requestingMemberId) {
805
- return Promise.reject(new ParameterError('The requestingMemberId must be defined to lower all hands in a meeting.'));
838
+ return Promise.reject(
839
+ new ParameterError(
840
+ 'The requestingMemberId must be defined to lower all hands in a meeting.'
841
+ )
842
+ );
806
843
  }
807
- const options = MembersUtil.generateLowerAllHandsMemberOptions(requestingMemberId, this.locusUrl);
844
+ const options = MembersUtil.generateLowerAllHandsMemberOptions(
845
+ requestingMemberId,
846
+ this.locusUrl
847
+ );
808
848
 
809
849
  return this.membersRequest.lowerAllHandsMember(options);
810
850
  }
811
851
 
812
-
813
852
  /**
814
853
  * Transfers the host to another member
815
854
  * @param {String} memberId
@@ -818,19 +857,28 @@ export default class Members extends StatelessWebexPlugin {
818
857
  * @public
819
858
  * @memberof Members
820
859
  */
821
- public transferHostToMember(memberId: string, moderator: boolean = true) {
860
+ public transferHostToMember(memberId: string, moderator = true) {
822
861
  if (!this.locusUrl) {
823
- return Promise.reject(new ParameterError('The associated locus url for this meetings members object must be defined.'));
862
+ return Promise.reject(
863
+ new ParameterError(
864
+ 'The associated locus url for this meetings members object must be defined.'
865
+ )
866
+ );
824
867
  }
825
868
  if (!memberId) {
826
- return Promise.reject(new ParameterError('The member id must be defined to transfer host to the member.'));
869
+ return Promise.reject(
870
+ new ParameterError('The member id must be defined to transfer host to the member.')
871
+ );
827
872
  }
828
- const options = MembersUtil.generateTransferHostMemberOptions(memberId, moderator, this.locusUrl);
873
+ const options = MembersUtil.generateTransferHostMemberOptions(
874
+ memberId,
875
+ moderator,
876
+ this.locusUrl
877
+ );
829
878
 
830
879
  return this.membersRequest.transferHostToMember(options);
831
880
  }
832
881
 
833
-
834
882
  /**
835
883
  * Sends DTMF tones for the PSTN member of a meeting
836
884
  * @param {String} tones a string of one or more DTMF tones to send
@@ -839,7 +887,7 @@ export default class Members extends StatelessWebexPlugin {
839
887
  * @public
840
888
  * @memberof Members
841
889
  */
842
- public sendDialPadKey(tones: string = '', memberId: string = '') {
890
+ public sendDialPadKey(tones = '', memberId = '') {
843
891
  // @ts-ignore
844
892
  if (!tones && tones !== 0) {
845
893
  return Promise.reject(new ParameterError('DMTF tones must be passed in'));
@@ -863,7 +911,11 @@ export default class Members extends StatelessWebexPlugin {
863
911
  return this.membersRequest.sendDialPadKey(options);
864
912
  }
865
913
 
866
- return Promise.reject(new Error('Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'));
914
+ return Promise.reject(
915
+ new Error(
916
+ 'Members:index#sendDialPadKey --> cannot send DTMF, meeting does not have a connection to the "locus" call control service.'
917
+ )
918
+ );
867
919
  }
868
920
 
869
921
  /** Finds a member that has any device with a csi matching provided value
@@ -872,10 +924,11 @@ export default class Members extends StatelessWebexPlugin {
872
924
  * @returns {Member}
873
925
  */
874
926
  findMemberByCsi(csi) {
875
- return Object.values(this.membersCollection.getAll())
876
- .find((member) => (
877
- member.participant?.devices?.find((device) => (
878
- device.csis?.find((memberCsi) => memberCsi === csi)))));
927
+ return Object.values(this.membersCollection.getAll()).find((member) =>
928
+ member.participant?.devices?.find((device) =>
929
+ device.csis?.find((memberCsi) => memberCsi === csi)
930
+ )
931
+ );
879
932
  }
880
933
 
881
934
  /**
@@ -892,7 +945,10 @@ export default class Members extends StatelessWebexPlugin {
892
945
  this.membersCollection.get(memberId)?.participant?.devices?.forEach((device) => {
893
946
  if (device.mediaSessions) {
894
947
  const deviceCsis = device.mediaSessions
895
- ?.filter((mediaSession) => mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent)
948
+ ?.filter(
949
+ (mediaSession) =>
950
+ mediaSession.mediaType === mediaType && mediaSession.mediaContent === mediaContent
951
+ )
896
952
  .map((mediaSession) => mediaSession.csi);
897
953
 
898
954
  csis.push(...deviceCsis);