@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
@@ -2,15 +2,13 @@ import LoggerProxy from '../common/logs/logger-proxy';
2
2
  import ParameterError from '../common/errors/parameter';
3
3
  import PermissionError from '../common/errors/permission';
4
4
  import Media from '../media';
5
- import MeetingUtil from '../meeting/util';
5
+ import MeetingUtil from './util';
6
6
  import {AUDIO, VIDEO} from '../constants';
7
7
 
8
-
9
8
  /* Certain aspects of server interaction for video muting are not implemented as we currently don't support remote muting of video.
10
9
  If we ever need to support it, search for REMOTE_MUTE_VIDEO_MISSING_IMPLEMENTATION string to find the places that need updating
11
10
  */
12
11
 
13
-
14
12
  const createMuteState = (type, meeting, mediaDirection) => {
15
13
  if (type === AUDIO && !mediaDirection.sendAudio) {
16
14
  return null;
@@ -19,7 +17,9 @@ const createMuteState = (type, meeting, mediaDirection) => {
19
17
  return null;
20
18
  }
21
19
 
22
- LoggerProxy.logger.info(`Meeting:muteState#createMuteState --> ${type}: creating MuteState for meeting id ${meeting?.id}`);
20
+ LoggerProxy.logger.info(
21
+ `Meeting:muteState#createMuteState --> ${type}: creating MuteState for meeting id ${meeting?.id}`
22
+ );
23
23
 
24
24
  return new MuteState(type, meeting);
25
25
  };
@@ -42,21 +42,21 @@ class MuteState {
42
42
  * @param {Object} meeting - the meeting object (used for reading current remote mute status)
43
43
  */
44
44
  constructor(type: string, meeting: any) {
45
- if ((type !== AUDIO) && (type !== VIDEO)) {
45
+ if (type !== AUDIO && type !== VIDEO) {
46
46
  throw new ParameterError('Mute state is designed for handling audio or video only');
47
47
  }
48
48
  this.type = type;
49
49
  this.state = {
50
50
  client: {
51
- localMute: false
51
+ localMute: false,
52
52
  },
53
53
  server: {
54
54
  localMute: false,
55
55
  // initial values available only for audio (REMOTE_MUTE_VIDEO_MISSING_IMPLEMENTATION)
56
56
  remoteMute: type === AUDIO ? meeting.remoteMuted : false,
57
- unmuteAllowed: type === AUDIO ? meeting.unmuteAllowed : true
57
+ unmuteAllowed: type === AUDIO ? meeting.unmuteAllowed : true,
58
58
  },
59
- syncToServerInProgress: false
59
+ syncToServerInProgress: false,
60
60
  };
61
61
  // these 2 hold the resolve, reject methods for the promise we returned to the client in last handleClientRequest() call
62
62
  this.pendingPromiseResolve = null;
@@ -78,10 +78,14 @@ class MuteState {
78
78
  * @returns {Promise}
79
79
  */
80
80
  public handleClientRequest(meeting?: object, mute?: boolean) {
81
- LoggerProxy.logger.info(`Meeting:muteState#handleClientRequest --> ${this.type}: user requesting new mute state: ${mute}`);
81
+ LoggerProxy.logger.info(
82
+ `Meeting:muteState#handleClientRequest --> ${this.type}: user requesting new mute state: ${mute}`
83
+ );
82
84
 
83
85
  if (!mute && !this.state.server.unmuteAllowed) {
84
- return Promise.reject(new PermissionError('User is not allowed to unmute self (hard mute feature is being used)'));
86
+ return Promise.reject(
87
+ new PermissionError('User is not allowed to unmute self (hard mute feature is being used)')
88
+ );
85
89
  }
86
90
 
87
91
  // we don't check if we're already in the same state, because even if we were, we would still have to apply the mute state locally,
@@ -111,7 +115,7 @@ class MuteState {
111
115
  public applyClientStateLocally(meeting?: any) {
112
116
  Media.setLocalTrack(
113
117
  !this.state.client.localMute,
114
- (this.type === AUDIO) ? meeting.mediaProperties.audioTrack : meeting.mediaProperties.videoTrack
118
+ this.type === AUDIO ? meeting.mediaProperties.audioTrack : meeting.mediaProperties.videoTrack
115
119
  );
116
120
  }
117
121
 
@@ -125,19 +129,27 @@ class MuteState {
125
129
  */
126
130
  private applyClientStateToServer(meeting?: object) {
127
131
  if (this.state.syncToServerInProgress) {
128
- LoggerProxy.logger.info(`Meeting:muteState#applyClientStateToServer --> ${this.type}: request to server in progress, we need to wait for it to complete`);
132
+ LoggerProxy.logger.info(
133
+ `Meeting:muteState#applyClientStateToServer --> ${this.type}: request to server in progress, we need to wait for it to complete`
134
+ );
129
135
 
130
136
  return;
131
137
  }
132
138
 
133
- const localMuteRequiresSync = (this.state.client.localMute !== this.state.server.localMute);
134
- const remoteMuteRequiresSync = (!this.state.client.localMute && this.state.server.remoteMute);
139
+ const localMuteRequiresSync = this.state.client.localMute !== this.state.server.localMute;
140
+ const remoteMuteRequiresSync = !this.state.client.localMute && this.state.server.remoteMute;
135
141
 
136
- LoggerProxy.logger.info(`Meeting:muteState#applyClientStateToServer --> ${this.type}: localMuteRequiresSync: ${localMuteRequiresSync} (${this.state.client.localMute} ?= ${this.state.server.localMute})`);
137
- LoggerProxy.logger.info(`Meeting:muteState#applyClientStateToServer --> ${this.type}: remoteMuteRequiresSync: ${remoteMuteRequiresSync}`);
142
+ LoggerProxy.logger.info(
143
+ `Meeting:muteState#applyClientStateToServer --> ${this.type}: localMuteRequiresSync: ${localMuteRequiresSync} (${this.state.client.localMute} ?= ${this.state.server.localMute})`
144
+ );
145
+ LoggerProxy.logger.info(
146
+ `Meeting:muteState#applyClientStateToServer --> ${this.type}: remoteMuteRequiresSync: ${remoteMuteRequiresSync}`
147
+ );
138
148
 
139
149
  if (!localMuteRequiresSync && !remoteMuteRequiresSync) {
140
- LoggerProxy.logger.info(`Meeting:muteState#applyClientStateToServer --> ${this.type}: client state already matching server state, nothing to do`);
150
+ LoggerProxy.logger.info(
151
+ `Meeting:muteState#applyClientStateToServer --> ${this.type}: client state already matching server state, nothing to do`
152
+ );
141
153
 
142
154
  if (this.pendingPromiseResolve) {
143
155
  this.pendingPromiseResolve();
@@ -151,15 +163,20 @@ class MuteState {
151
163
  this.state.syncToServerInProgress = true;
152
164
 
153
165
  // first sync local mute with server
154
- const localMuteSyncPromise = (localMuteRequiresSync) ? this.sendLocalMuteRequestToServer(meeting) : Promise.resolve();
166
+ const localMuteSyncPromise = localMuteRequiresSync
167
+ ? this.sendLocalMuteRequestToServer(meeting)
168
+ : Promise.resolve();
155
169
 
156
170
  localMuteSyncPromise
157
171
  .then(() =>
158
172
  // then follow it up with remote mute sync
159
- ((remoteMuteRequiresSync) ? this.sendRemoteMuteRequestToServer(meeting) : Promise.resolve()))
173
+ remoteMuteRequiresSync ? this.sendRemoteMuteRequestToServer(meeting) : Promise.resolve()
174
+ )
160
175
  .then(() => {
161
176
  this.state.syncToServerInProgress = false;
162
- LoggerProxy.logger.info(`Meeting:muteState#applyClientStateToServer --> ${this.type}: sync with server completed`);
177
+ LoggerProxy.logger.info(
178
+ `Meeting:muteState#applyClientStateToServer --> ${this.type}: sync with server completed`
179
+ );
163
180
 
164
181
  // need to check if a new sync is required, because this.state.client may have changed while we were doing the current sync
165
182
  this.applyClientStateToServer(meeting);
@@ -184,10 +201,14 @@ class MuteState {
184
201
  * @returns {Promise}
185
202
  */
186
203
  private sendLocalMuteRequestToServer(meeting?: any) {
187
- const audioMuted = (this.type === AUDIO) ? this.state.client.localMute : meeting.audio?.state.client.localMute;
188
- const videoMuted = (this.type === VIDEO) ? this.state.client.localMute : meeting.video?.state.client.localMute;
204
+ const audioMuted =
205
+ this.type === AUDIO ? this.state.client.localMute : meeting.audio?.state.client.localMute;
206
+ const videoMuted =
207
+ this.type === VIDEO ? this.state.client.localMute : meeting.video?.state.client.localMute;
189
208
 
190
- LoggerProxy.logger.info(`Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: sending local mute (audio=${audioMuted}, video=${videoMuted}) to server`);
209
+ LoggerProxy.logger.info(
210
+ `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: sending local mute (audio=${audioMuted}, video=${videoMuted}) to server`
211
+ );
191
212
 
192
213
  return MeetingUtil.remoteUpdateAudioVideo(audioMuted, videoMuted, meeting)
193
214
  .then((locus) => {
@@ -195,7 +216,7 @@ class MuteState {
195
216
  `Meeting:muteState#sendLocalMuteRequestToServer --> ${this.type}: local mute (audio=${audioMuted}, video=${videoMuted}) applied to server`
196
217
  );
197
218
 
198
- this.state.server.localMute = (this.type === AUDIO) ? audioMuted : videoMuted;
219
+ this.state.server.localMute = this.type === AUDIO ? audioMuted : videoMuted;
199
220
 
200
221
  meeting.locusInfo.onFullLocus(locus);
201
222
 
@@ -210,7 +231,6 @@ class MuteState {
210
231
  });
211
232
  }
212
233
 
213
-
214
234
  /**
215
235
  * Sets the remote mute value in the server
216
236
  *
@@ -223,9 +243,12 @@ class MuteState {
223
243
  if (this.type === AUDIO) {
224
244
  const remoteMute = this.state.client.localMute;
225
245
 
226
- LoggerProxy.logger.info(`Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: sending remote mute:${remoteMute} to server`);
246
+ LoggerProxy.logger.info(
247
+ `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: sending remote mute:${remoteMute} to server`
248
+ );
227
249
 
228
- return meeting.members.muteMember(meeting.members.selfId, remoteMute)
250
+ return meeting.members
251
+ .muteMember(meeting.members.selfId, remoteMute)
229
252
  .then(() => {
230
253
  LoggerProxy.logger.info(
231
254
  `Meeting:muteState#sendRemoteMuteRequestToServer --> ${this.type}: remote mute:${remoteMute} applied to server`
@@ -258,7 +281,9 @@ class MuteState {
258
281
  * @returns {undefined}
259
282
  */
260
283
  public handleServerRemoteMuteUpdate(muted?: boolean, unmuteAllowed?: boolean) {
261
- LoggerProxy.logger.info(`Meeting:muteState#handleServerRemoteMuteUpdate --> ${this.type}: updating server remoteMute to (${muted})`);
284
+ LoggerProxy.logger.info(
285
+ `Meeting:muteState#handleServerRemoteMuteUpdate --> ${this.type}: updating server remoteMute to (${muted})`
286
+ );
262
287
  this.state.server.remoteMute = muted;
263
288
  this.state.server.unmuteAllowed = unmuteAllowed;
264
289
  }
@@ -272,13 +297,17 @@ class MuteState {
272
297
  * @returns {undefined}
273
298
  */
274
299
  public handleServerLocalUnmuteRequired(meeting?: object) {
275
- LoggerProxy.logger.info(`Meeting:muteState#handleServerLocalUnmuteRequired --> ${this.type}: localAudioUnmuteRequired received -> doing local unmute`);
300
+ LoggerProxy.logger.info(
301
+ `Meeting:muteState#handleServerLocalUnmuteRequired --> ${this.type}: localAudioUnmuteRequired received -> doing local unmute`
302
+ );
276
303
 
277
304
  this.state.server.remoteMute = false;
278
305
  this.state.client.localMute = false;
279
306
 
280
307
  if (this.pendingPromiseReject) {
281
- this.pendingPromiseReject(new Error('Server requested local unmute - this overrides any client request in progress'));
308
+ this.pendingPromiseReject(
309
+ new Error('Server requested local unmute - this overrides any client request in progress')
310
+ );
282
311
  this.pendingPromiseResolve = null;
283
312
  this.pendingPromiseReject = null;
284
313
  }
@@ -295,7 +324,9 @@ class MuteState {
295
324
  * @returns {Boolean}
296
325
  */
297
326
  public isMuted() {
298
- return this.state.client.localMute || this.state.server.localMute || this.state.server.remoteMute;
327
+ return (
328
+ this.state.client.localMute || this.state.server.localMute || this.state.server.remoteMute
329
+ );
299
330
  }
300
331
 
301
332
  /**