@webex/plugin-meetings 1.159.5 → 1.161.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 (134) hide show
  1. package/dist/analyzer/analyzer.js.map +1 -1
  2. package/dist/analyzer/calculator.js.map +1 -1
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.js.map +1 -1
  5. package/dist/common/config.js.map +1 -1
  6. package/dist/common/constants.js.map +1 -1
  7. package/dist/common/errors/captcha-error.js +3 -1
  8. package/dist/common/errors/captcha-error.js.map +1 -1
  9. package/dist/common/errors/intent-to-join.js +3 -1
  10. package/dist/common/errors/intent-to-join.js.map +1 -1
  11. package/dist/common/errors/join-meeting.js +3 -1
  12. package/dist/common/errors/join-meeting.js.map +1 -1
  13. package/dist/common/errors/media.js +3 -1
  14. package/dist/common/errors/media.js.map +1 -1
  15. package/dist/common/errors/parameter.js +3 -1
  16. package/dist/common/errors/parameter.js.map +1 -1
  17. package/dist/common/errors/password-error.js +3 -1
  18. package/dist/common/errors/password-error.js.map +1 -1
  19. package/dist/common/errors/permission.js +3 -1
  20. package/dist/common/errors/permission.js.map +1 -1
  21. package/dist/common/errors/reconnection-in-progress.js +3 -1
  22. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  23. package/dist/common/errors/reconnection.js +3 -1
  24. package/dist/common/errors/reconnection.js.map +1 -1
  25. package/dist/common/errors/stats.js +3 -1
  26. package/dist/common/errors/stats.js.map +1 -1
  27. package/dist/common/errors/webex-errors.js +9 -7
  28. package/dist/common/errors/webex-errors.js.map +1 -1
  29. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  30. package/dist/common/events/events-scope.js.map +1 -1
  31. package/dist/common/events/events.js.map +1 -1
  32. package/dist/common/events/trigger-proxy.js.map +1 -1
  33. package/dist/common/events/util.js.map +1 -1
  34. package/dist/common/logs/logger-config.js.map +1 -1
  35. package/dist/common/logs/logger-proxy.js.map +1 -1
  36. package/dist/common/logs/request.js.map +1 -1
  37. package/dist/common/queue.js.map +1 -1
  38. package/dist/config.js.map +1 -1
  39. package/dist/constants.js +2 -2
  40. package/dist/constants.js.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/locus-info/controlsUtils.js +4 -3
  44. package/dist/locus-info/controlsUtils.js.map +1 -1
  45. package/dist/locus-info/fullState.js.map +1 -1
  46. package/dist/locus-info/hostUtils.js.map +1 -1
  47. package/dist/locus-info/index.js.map +1 -1
  48. package/dist/locus-info/infoUtils.js.map +1 -1
  49. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  50. package/dist/locus-info/parser.js.map +1 -1
  51. package/dist/locus-info/selfUtils.js.map +1 -1
  52. package/dist/media/index.js +2 -2
  53. package/dist/media/index.js.map +1 -1
  54. package/dist/media/properties.js.map +1 -1
  55. package/dist/media/util.js.map +1 -1
  56. package/dist/mediaQualityMetrics/config.js.map +1 -1
  57. package/dist/meeting/in-meeting-actions.js.map +1 -1
  58. package/dist/meeting/index.js +2 -2
  59. package/dist/meeting/index.js.map +1 -1
  60. package/dist/meeting/muteState.js +3 -1
  61. package/dist/meeting/muteState.js.map +1 -1
  62. package/dist/meeting/request.js +2 -2
  63. package/dist/meeting/request.js.map +1 -1
  64. package/dist/meeting/state.js.map +1 -1
  65. package/dist/meeting/util.js +2 -2
  66. package/dist/meeting/util.js.map +1 -1
  67. package/dist/meeting-info/collection.js.map +1 -1
  68. package/dist/meeting-info/index.js.map +1 -1
  69. package/dist/meeting-info/meeting-info-v2.js +6 -6
  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.map +1 -1
  74. package/dist/meetings/collection.js.map +1 -1
  75. package/dist/meetings/index.js +219 -219
  76. package/dist/meetings/index.js.map +1 -1
  77. package/dist/meetings/request.js.map +1 -1
  78. package/dist/meetings/util.js.map +1 -1
  79. package/dist/member/index.js.map +1 -1
  80. package/dist/member/util.js.map +1 -1
  81. package/dist/members/collection.js.map +1 -1
  82. package/dist/members/index.js.map +1 -1
  83. package/dist/members/request.js.map +1 -1
  84. package/dist/members/util.js.map +1 -1
  85. package/dist/metrics/config.js +1 -1
  86. package/dist/metrics/config.js.map +1 -1
  87. package/dist/metrics/constants.js.map +1 -1
  88. package/dist/metrics/index.js.map +1 -1
  89. package/dist/metrics/mqa-processor.js +2 -2
  90. package/dist/metrics/mqa-processor.js.map +1 -1
  91. package/dist/networkQualityMonitor/index.js.map +1 -1
  92. package/dist/peer-connection-manager/index.js.map +1 -1
  93. package/dist/peer-connection-manager/util.js.map +1 -1
  94. package/dist/personal-meeting-room/index.js.map +1 -1
  95. package/dist/personal-meeting-room/request.js.map +1 -1
  96. package/dist/personal-meeting-room/util.js.map +1 -1
  97. package/dist/reachability/index.js.map +1 -1
  98. package/dist/reachability/request.js +4 -3
  99. package/dist/reachability/request.js.map +1 -1
  100. package/dist/reconnection-manager/index.js +2 -2
  101. package/dist/reconnection-manager/index.js.map +1 -1
  102. package/dist/roap/collection.js.map +1 -1
  103. package/dist/roap/handler.js.map +1 -1
  104. package/dist/roap/index.js +7 -7
  105. package/dist/roap/index.js.map +1 -1
  106. package/dist/roap/request.js +2 -2
  107. package/dist/roap/request.js.map +1 -1
  108. package/dist/roap/state.js.map +1 -1
  109. package/dist/roap/util.js.map +1 -1
  110. package/dist/stats/data.js.map +1 -1
  111. package/dist/stats/events.js.map +1 -1
  112. package/dist/stats/filter.js.map +1 -1
  113. package/dist/stats/history.js.map +1 -1
  114. package/dist/stats/index.js +126 -126
  115. package/dist/stats/index.js.map +1 -1
  116. package/dist/stats/metrics.js.map +1 -1
  117. package/dist/stats/stats.js.map +1 -1
  118. package/dist/stats/stream.js.map +1 -1
  119. package/dist/stats/transformer.js.map +1 -1
  120. package/dist/stats/util.js.map +1 -1
  121. package/dist/statsAnalyzer/global.js.map +1 -1
  122. package/dist/statsAnalyzer/index.js +1 -1
  123. package/dist/statsAnalyzer/index.js.map +1 -1
  124. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  125. package/dist/transcription/index.js.map +1 -1
  126. package/package.json +6 -6
  127. package/src/common/errors/webex-errors.js +1 -1
  128. package/src/locus-info/parser.js +2 -2
  129. package/src/meeting/index.js +1 -2
  130. package/src/meeting/util.js +2 -2
  131. package/src/meetings/index.js +554 -557
  132. package/src/roap/index.js +48 -48
  133. package/src/stats/index.js +142 -142
  134. package/src/statsAnalyzer/index.js +1 -1
package/src/roap/index.js CHANGED
@@ -282,55 +282,55 @@ export default class Roap extends StatelessWebexPlugin {
282
282
  * @private
283
283
  * @memberof Roap
284
284
  */
285
- sendRoapCallRequest = (options) => {
286
- const {meeting} = options;
287
- const roapMessage = {
288
- messageType: ROAP.ROAP_TYPES.OFFER,
289
- sdps: [options.sdp],
290
- version: ROAP.ROAP_VERSION,
291
- seq: typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq)) ? 0 : options.roapSeq + 1,
292
- tieBreaker: 4294967294 // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario
293
- };
285
+ sendRoapCallRequest = (options) => {
286
+ const {meeting} = options;
287
+ const roapMessage = {
288
+ messageType: ROAP.ROAP_TYPES.OFFER,
289
+ sdps: [options.sdp],
290
+ version: ROAP.ROAP_VERSION,
291
+ seq: typeof options.roapSeq !== 'number' && Number.isNaN(parseFloat(options.roapSeq)) ? 0 : options.roapSeq + 1,
292
+ tieBreaker: 4294967294 // Math.floor(Math.random() * (2 ** 32) - 1) // TODO: Handle the roap conflict scenario
293
+ };
294
294
 
295
- this.roapHandler.submit({
296
- type: ROAP.SEND_ROAP_MSG,
297
- msg: roapMessage,
298
- correlationId: meeting.correlationId
299
- });
295
+ this.roapHandler.submit({
296
+ type: ROAP.SEND_ROAP_MSG,
297
+ msg: roapMessage,
298
+ correlationId: meeting.correlationId
299
+ });
300
300
 
301
- const roapBody = {
302
- localMedias: [
303
- {
304
- localSdp: JSON.stringify(this.roapRequest.attachRechabilityData({
305
- roapMessage,
306
- // eslint-disable-next-line no-warning-comments
307
- // TODO: check whats the need for video and audiomute
308
- audioMuted: !!meeting.isAudioMuted(),
309
- videoMuted: !!meeting.isVideoMuted()
310
- }))
301
+ const roapBody = {
302
+ localMedias: [
303
+ {
304
+ localSdp: JSON.stringify(this.roapRequest.attachRechabilityData({
305
+ roapMessage,
306
+ // eslint-disable-next-line no-warning-comments
307
+ // TODO: check whats the need for video and audiomute
308
+ audioMuted: !!meeting.isAudioMuted(),
309
+ videoMuted: !!meeting.isVideoMuted()
310
+ }))
311
311
  // mediaId: meeting.mediaId
312
- }
313
- ]
314
- };
312
+ }
313
+ ]
314
+ };
315
315
 
316
- return MeetingUtil.joinMeetingOptions(meeting, {roapMessage: roapBody})
317
- .then((locus) => {
318
- this.roapHandler.submit({
319
- type: ROAP.SEND_ROAP_MSG_SUCCESS,
320
- seq: roapMessage.seq,
321
- correlationId: meeting.correlationId
322
- });
323
- meeting.setRoapSeq(roapMessage.seq);
316
+ return MeetingUtil.joinMeetingOptions(meeting, {roapMessage: roapBody})
317
+ .then((locus) => {
318
+ this.roapHandler.submit({
319
+ type: ROAP.SEND_ROAP_MSG_SUCCESS,
320
+ seq: roapMessage.seq,
321
+ correlationId: meeting.correlationId
322
+ });
323
+ meeting.setRoapSeq(roapMessage.seq);
324
324
 
325
- // eslint-disable-next-line no-warning-comments
326
- // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here
327
- return locus;
325
+ // eslint-disable-next-line no-warning-comments
326
+ // TODO: we need to attach peerconenction to locus not sure if we need to pass everything here
327
+ return locus;
328
328
  // eslint-disable-next-line no-warning-comments
329
329
  // TODO: check where to update the sequence number
330
- });
331
- };
330
+ });
331
+ };
332
332
 
333
- /**
333
+ /**
334
334
  * Called when the roap sequence is finished (completed successfully or failed)
335
335
  * @param {String} correlationId id of the meeting affected
336
336
  * @param {String} sequenceId the id of the finished sequence
@@ -338,13 +338,13 @@ sendRoapCallRequest = (options) => {
338
338
  * @private
339
339
  * @memberof Roap
340
340
  */
341
- roapFinished(correlationId, sequenceId) {
342
- RoapCollection.onSessionSequenceFinish(correlationId, sequenceId);
343
- const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);
341
+ roapFinished(correlationId, sequenceId) {
342
+ RoapCollection.onSessionSequenceFinish(correlationId, sequenceId);
343
+ const meeting = this.webex.meetings.meetingCollection.getByKey('correlationId', correlationId);
344
344
 
345
- meeting.mediaNegotiatedEvent();
346
- if (!RoapCollection.isBusy(correlationId)) {
347
- meeting.processNextQueuedMediaUpdate();
345
+ meeting.mediaNegotiatedEvent();
346
+ if (!RoapCollection.isBusy(correlationId)) {
347
+ meeting.processNextQueuedMediaUpdate();
348
+ }
348
349
  }
349
350
  }
350
- }
@@ -12,62 +12,62 @@ import StatsUtil from '../stats/util';
12
12
  * @class WebRTCStats
13
13
  */
14
14
  export default class WebRTCStats extends StatelessWebexPlugin {
15
- namespace = MEETINGS;
15
+ namespace = MEETINGS;
16
16
 
17
- /**
17
+ /**
18
18
  *
19
19
  * @param {Object} attrs
20
20
  * @param {Object} options
21
21
  * @param {Object} [optionalCreateOptions]
22
22
  */
23
- constructor(attrs, options, optionalCreateOptions) {
24
- super({}, options);
25
- /**
23
+ constructor(attrs, options, optionalCreateOptions) {
24
+ super({}, options);
25
+ /**
26
26
  * @instance
27
27
  * @type {Object}
28
28
  * @private
29
29
  * @memberof WebRTCStats
30
30
  */
31
- this.attrs = attrs;
32
- /**
31
+ this.attrs = attrs;
32
+ /**
33
33
  * @instance
34
34
  * @type {Object}
35
35
  * @private
36
36
  * @memberof WebRTCStats
37
37
  */
38
- this.options = options;
39
- /**
38
+ this.options = options;
39
+ /**
40
40
  * @instance
41
41
  * @type {Object}
42
42
  * @public
43
43
  * @memberof WebRTCStats
44
44
  */
45
- this.senders = {};
46
- /**
45
+ this.senders = {};
46
+ /**
47
47
  * @instance
48
48
  * @type {Object}
49
49
  * @public
50
50
  * @memberof WebRTCStats
51
51
  */
52
- this.receivers = {};
53
- /**
52
+ this.receivers = {};
53
+ /**
54
54
  * @instance
55
55
  * @type {Meeting}
56
56
  * @private
57
57
  * @memberof WebRTCStats
58
58
  */
59
- this.meetingRef = null;
60
- /**
59
+ this.meetingRef = null;
60
+ /**
61
61
  * @instance
62
62
  * @type {Object}
63
63
  * @public
64
64
  * @memberof WebRTCStats
65
65
  */
66
- this.statsConfig = null;
67
- this.populate(optionalCreateOptions);
68
- }
66
+ this.statsConfig = null;
67
+ this.populate(optionalCreateOptions);
68
+ }
69
69
 
70
- /**
70
+ /**
71
71
  * @param {Object} [optionalCreateOptions]
72
72
  * @param {Object} optionalCreateOptions.config
73
73
  * @param {Meeting} optionalCreateOptions.meeting
@@ -77,244 +77,244 @@ export default class WebRTCStats extends StatelessWebexPlugin {
77
77
  * @private
78
78
  * @memberof WebRTCStats
79
79
  */
80
- populate(optionalCreateOptions) {
81
- if (optionalCreateOptions) {
82
- if (optionalCreateOptions.config) {
83
- this.setConfig(optionalCreateOptions.config);
84
- }
85
- if (optionalCreateOptions.meeting) {
86
- this.associateMeeting(optionalCreateOptions.meeting);
87
- }
88
- if (optionalCreateOptions.senders) {
89
- this.addSenders(optionalCreateOptions.senders);
90
- }
91
- if (optionalCreateOptions.receivers) {
92
- this.addReceivers(optionalCreateOptions.receivers);
93
- }
80
+ populate(optionalCreateOptions) {
81
+ if (optionalCreateOptions) {
82
+ if (optionalCreateOptions.config) {
83
+ this.setConfig(optionalCreateOptions.config);
84
+ }
85
+ if (optionalCreateOptions.meeting) {
86
+ this.associateMeeting(optionalCreateOptions.meeting);
87
+ }
88
+ if (optionalCreateOptions.senders) {
89
+ this.addSenders(optionalCreateOptions.senders);
90
+ }
91
+ if (optionalCreateOptions.receivers) {
92
+ this.addReceivers(optionalCreateOptions.receivers);
94
93
  }
95
-
96
- return this;
97
94
  }
98
95
 
99
- /**
96
+ return this;
97
+ }
98
+
99
+ /**
100
100
  * @param {Object} config
101
101
  * @returns {WebRTCStats}
102
102
  * @public
103
103
  * @memberof WebRTCStats
104
104
  */
105
- setConfig(config) {
106
- this.statsConfig = config;
107
- }
105
+ setConfig(config) {
106
+ this.statsConfig = config;
107
+ }
108
108
 
109
- /**
109
+ /**
110
110
  * @param {Meeting} meeting
111
111
  * @returns {WebRTCStats}
112
112
  * @public
113
113
  * @memberof WebRTCStats
114
114
  */
115
- associateMeeting(meeting) {
116
- this.meetingRef = meeting;
115
+ associateMeeting(meeting) {
116
+ this.meetingRef = meeting;
117
117
 
118
- return this;
119
- }
118
+ return this;
119
+ }
120
120
 
121
- /**
121
+ /**
122
122
  * @param {Object} senders
123
123
  * @param {Boolean} useConfig
124
124
  * @returns {WebRTCStats}
125
125
  * @public
126
126
  * @memberof WebRTCStats
127
127
  */
128
- addSenders(senders, useConfig = false) {
129
- if (!senders.forEach) {
130
- throw new TypeError('Stats senders must be created with an iterable array of senders to act on.');
131
- }
132
- senders.forEach((sender) => {
133
- this.addSender(sender, useConfig);
134
- });
135
-
136
- return this;
128
+ addSenders(senders, useConfig = false) {
129
+ if (!senders.forEach) {
130
+ throw new TypeError('Stats senders must be created with an iterable array of senders to act on.');
137
131
  }
132
+ senders.forEach((sender) => {
133
+ this.addSender(sender, useConfig);
134
+ });
138
135
 
139
- /**
136
+ return this;
137
+ }
138
+
139
+ /**
140
140
  * @param {Object} sender
141
141
  * @param {Boolean} useConfig
142
142
  * @returns {WebRTCStats}
143
143
  * @public
144
144
  * @memberof WebRTCStats
145
145
  */
146
- addSender(sender, useConfig = false) {
147
- if (sender) {
148
- if (useConfig) {
149
- StatsUtil.generateSingularOptions(sender, this.statsConfig, this.meetingRef, STATS.SENDERS);
150
- }
151
- sender.type = STATS.SENDER;
152
- this.senders[sender.id] = new MeetingStats(this.attrs, this.options, sender);
146
+ addSender(sender, useConfig = false) {
147
+ if (sender) {
148
+ if (useConfig) {
149
+ StatsUtil.generateSingularOptions(sender, this.statsConfig, this.meetingRef, STATS.SENDERS);
153
150
  }
154
-
155
- return this;
151
+ sender.type = STATS.SENDER;
152
+ this.senders[sender.id] = new MeetingStats(this.attrs, this.options, sender);
156
153
  }
157
154
 
158
- /**
155
+ return this;
156
+ }
157
+
158
+ /**
159
159
  *
160
160
  * @param {String} id
161
161
  * @returns {WebRTCStats}
162
162
  * @public
163
163
  * @memberof WebRTCStats
164
164
  */
165
- addSenderStats(id) {
166
- const newSender = new MeetingStats(this.attrs, this.options);
165
+ addSenderStats(id) {
166
+ const newSender = new MeetingStats(this.attrs, this.options);
167
167
 
168
- this.senders[id] = newSender;
168
+ this.senders[id] = newSender;
169
169
 
170
- return newSender;
171
- }
170
+ return newSender;
171
+ }
172
172
 
173
- /**
173
+ /**
174
174
  *
175
175
  * @param {String} id
176
176
  * @returns {WebRTCStats}
177
177
  * @public
178
178
  * @memberof WebRTCStats
179
179
  */
180
- addReceiverStats(id) {
181
- const newReceiver = new MeetingStats(this.attrs, this.options);
180
+ addReceiverStats(id) {
181
+ const newReceiver = new MeetingStats(this.attrs, this.options);
182
182
 
183
- this.receivers[id] = newReceiver;
183
+ this.receivers[id] = newReceiver;
184
184
 
185
- return newReceiver;
186
- }
185
+ return newReceiver;
186
+ }
187
187
 
188
- /**
188
+ /**
189
189
  * @param {Object} receivers
190
190
  * @param {boolean} useConfig
191
191
  * @returns {WebRTCStats}
192
192
  * @public
193
193
  * @memberof WebRTCStats
194
194
  */
195
- addReceivers(receivers, useConfig = false) {
196
- if (!receivers.forEach) {
197
- throw new TypeError('Stats receivers must be created with an iterable array of receivers to act on.');
198
- }
199
- receivers.forEach((receiver) => {
200
- this.addReceiver(receiver, useConfig);
201
- });
202
-
203
- return this;
195
+ addReceivers(receivers, useConfig = false) {
196
+ if (!receivers.forEach) {
197
+ throw new TypeError('Stats receivers must be created with an iterable array of receivers to act on.');
204
198
  }
199
+ receivers.forEach((receiver) => {
200
+ this.addReceiver(receiver, useConfig);
201
+ });
205
202
 
206
- /**
203
+ return this;
204
+ }
205
+
206
+ /**
207
207
  * @param {Object} receiver
208
208
  * @param {boolean} useConfig
209
209
  * @returns {WebRTCStats}
210
210
  * @public
211
211
  * @memberof WebRTCStats
212
212
  */
213
- addReceiver(receiver, useConfig = false) {
214
- if (receiver) {
215
- if (useConfig) {
216
- StatsUtil.generateSingularOptions(receiver, this.statsConfig, this.meetingRef, STATS.RECEIVERS);
217
- }
218
- receiver.type = STATS.RECEIVER;
219
- this.receivers[receiver.id] = new MeetingStats(this.attrs, this.options, receiver);
213
+ addReceiver(receiver, useConfig = false) {
214
+ if (receiver) {
215
+ if (useConfig) {
216
+ StatsUtil.generateSingularOptions(receiver, this.statsConfig, this.meetingRef, STATS.RECEIVERS);
220
217
  }
221
-
222
- return this;
218
+ receiver.type = STATS.RECEIVER;
219
+ this.receivers[receiver.id] = new MeetingStats(this.attrs, this.options, receiver);
223
220
  }
224
221
 
225
- /**
222
+ return this;
223
+ }
224
+
225
+ /**
226
226
  * @returns {Object}
227
227
  * @public
228
228
  * @memberof WebRTCStats
229
229
  */
230
- getReceivers() {
231
- return this.receivers;
232
- }
230
+ getReceivers() {
231
+ return this.receivers;
232
+ }
233
233
 
234
- /**
234
+ /**
235
235
  * @returns {Object}
236
236
  * @public
237
237
  * @memberof WebRTCStats
238
238
  */
239
- getSenders() {
240
- return this.senders;
241
- }
239
+ getSenders() {
240
+ return this.senders;
241
+ }
242
242
 
243
- /**
243
+ /**
244
244
  * @param {String} id
245
245
  * @returns {Object}
246
246
  * @public
247
247
  * @memberof WebRTCStats
248
248
  */
249
- getSender(id) {
250
- return this.senders[id];
251
- }
249
+ getSender(id) {
250
+ return this.senders[id];
251
+ }
252
252
 
253
- /**
253
+ /**
254
254
  * @param {String} id
255
255
  * @returns {Object}
256
256
  * @public
257
257
  * @memberof WebRTCStats
258
258
  */
259
- getReceiver(id) {
260
- return this.receivers[id];
261
- }
259
+ getReceiver(id) {
260
+ return this.receivers[id];
261
+ }
262
262
 
263
- /**
263
+ /**
264
264
  * @returns {Object}
265
265
  * @public
266
266
  * @memberof WebRTCStats
267
267
  */
268
- destroySenders() {
269
- forEach(this.senders, (v, k) => {
270
- this.destroySender(k);
271
- });
272
- }
268
+ destroySenders() {
269
+ forEach(this.senders, (v, k) => {
270
+ this.destroySender(k);
271
+ });
272
+ }
273
273
 
274
- /**
274
+ /**
275
275
  * @returns {undefined}
276
276
  * @public
277
277
  * @memberof WebRTCStats
278
278
  */
279
- destroyReceivers() {
280
- forEach(this.receivers, (v, k) => {
281
- this.destroyReceiver(k);
282
- });
283
- }
279
+ destroyReceivers() {
280
+ forEach(this.receivers, (v, k) => {
281
+ this.destroyReceiver(k);
282
+ });
283
+ }
284
284
 
285
- /**
285
+ /**
286
286
  * @param {String} id
287
287
  * @returns {undefined}
288
288
  * @public
289
289
  * @memberof WebRTCStats
290
290
  */
291
- destroySender(id) {
292
- let sender = this.getSender(id);
291
+ destroySender(id) {
292
+ let sender = this.getSender(id);
293
293
 
294
- if (sender) {
295
- if (sender.stream) {
296
- sender.stream.destroy();
297
- }
294
+ if (sender) {
295
+ if (sender.stream) {
296
+ sender.stream.destroy();
298
297
  }
299
- sender = null;
300
- delete this.receivers[id];
301
298
  }
299
+ sender = null;
300
+ delete this.receivers[id];
301
+ }
302
302
 
303
- /**
303
+ /**
304
304
  * @param {String} id
305
305
  * @returns {undefined}
306
306
  * @public
307
307
  * @memberof WebRTCStats
308
308
  */
309
- destroyReceiver(id) {
310
- let receiver = this.getReceiver(id);
309
+ destroyReceiver(id) {
310
+ let receiver = this.getReceiver(id);
311
311
 
312
- if (receiver) {
313
- if (receiver.stream) {
314
- receiver.stream.destroy();
315
- }
312
+ if (receiver) {
313
+ if (receiver.stream) {
314
+ receiver.stream.destroy();
316
315
  }
317
- receiver = null;
318
- delete this.receivers[id];
319
316
  }
317
+ receiver = null;
318
+ delete this.receivers[id];
319
+ }
320
320
  }
@@ -228,7 +228,7 @@ export default class StatsAnalyzer extends EventsScope {
228
228
 
229
229
  mqaData.networkType = this.statsResults.connectionType.local.networkType;
230
230
 
231
- this.mqaSentCount = this.mqaSentCount + 1;
231
+ this.mqaSentCount += 1;
232
232
 
233
233
  mqaData.intervals[0].intervalNumber = this.mqaSentCount;
234
234