@webex/plugin-meetings 2.19.1 → 2.19.2

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 (60) hide show
  1. package/README.md +0 -300
  2. package/dist/constants.js +3 -206
  3. package/dist/constants.js.map +1 -1
  4. package/dist/meeting/index.js +352 -489
  5. package/dist/meeting/index.js.map +1 -1
  6. package/dist/meeting/util.js +4 -213
  7. package/dist/meeting/util.js.map +1 -1
  8. package/dist/meetings/index.js +0 -28
  9. package/dist/meetings/index.js.map +1 -1
  10. package/dist/statsAnalyzer/index.js +145 -86
  11. package/dist/statsAnalyzer/index.js.map +1 -1
  12. package/package.json +5 -7
  13. package/src/constants.ts +1 -214
  14. package/src/meeting/index.js +110 -208
  15. package/src/meeting/util.js +4 -252
  16. package/src/meetings/index.js +0 -22
  17. package/src/statsAnalyzer/index.js +164 -99
  18. package/test/integration/spec/journey.js +2 -67
  19. package/test/unit/spec/meeting/index.js +88 -29
  20. package/test/unit/spec/meeting/utils.js +0 -2
  21. package/test/unit/spec/stats-analyzer/index.js +209 -1
  22. package/dist/analyzer/analyzer.js +0 -113
  23. package/dist/analyzer/analyzer.js.map +0 -1
  24. package/dist/analyzer/calculator.js +0 -87
  25. package/dist/analyzer/calculator.js.map +0 -1
  26. package/dist/metrics/mqa-processor.js +0 -170
  27. package/dist/metrics/mqa-processor.js.map +0 -1
  28. package/dist/stats/data.js +0 -93
  29. package/dist/stats/data.js.map +0 -1
  30. package/dist/stats/events.js +0 -222
  31. package/dist/stats/events.js.map +0 -1
  32. package/dist/stats/filter.js +0 -84
  33. package/dist/stats/filter.js.map +0 -1
  34. package/dist/stats/history.js +0 -147
  35. package/dist/stats/history.js.map +0 -1
  36. package/dist/stats/index.js +0 -425
  37. package/dist/stats/index.js.map +0 -1
  38. package/dist/stats/metrics.js +0 -112
  39. package/dist/stats/metrics.js.map +0 -1
  40. package/dist/stats/stats.js +0 -592
  41. package/dist/stats/stats.js.map +0 -1
  42. package/dist/stats/stream.js +0 -156
  43. package/dist/stats/stream.js.map +0 -1
  44. package/dist/stats/transformer.js +0 -126
  45. package/dist/stats/transformer.js.map +0 -1
  46. package/dist/stats/util.js +0 -64
  47. package/dist/stats/util.js.map +0 -1
  48. package/src/analyzer/analyzer.js +0 -78
  49. package/src/analyzer/calculator.js +0 -77
  50. package/src/metrics/mqa-processor.js +0 -118
  51. package/src/stats/data.js +0 -56
  52. package/src/stats/events.js +0 -185
  53. package/src/stats/filter.js +0 -40
  54. package/src/stats/history.js +0 -107
  55. package/src/stats/index.js +0 -320
  56. package/src/stats/metrics.js +0 -95
  57. package/src/stats/stats.js +0 -477
  58. package/src/stats/stream.js +0 -108
  59. package/src/stats/transformer.js +0 -109
  60. package/src/stats/util.js +0 -44
@@ -1,320 +0,0 @@
1
- import {forEach} from 'lodash';
2
- import {StatelessWebexPlugin} from '@webex/webex-core';
3
-
4
- import {
5
- MEETINGS,
6
- STATS
7
- } from '../constants';
8
- import MeetingStats from '../stats/stats';
9
- import StatsUtil from '../stats/util';
10
-
11
- /**
12
- * @class WebRTCStats
13
- */
14
- export default class WebRTCStats extends StatelessWebexPlugin {
15
- namespace = MEETINGS;
16
-
17
- /**
18
- *
19
- * @param {Object} attrs
20
- * @param {Object} options
21
- * @param {Object} [optionalCreateOptions]
22
- */
23
- constructor(attrs, options, optionalCreateOptions) {
24
- super({}, options);
25
- /**
26
- * @instance
27
- * @type {Object}
28
- * @private
29
- * @memberof WebRTCStats
30
- */
31
- this.attrs = attrs;
32
- /**
33
- * @instance
34
- * @type {Object}
35
- * @private
36
- * @memberof WebRTCStats
37
- */
38
- this.options = options;
39
- /**
40
- * @instance
41
- * @type {Object}
42
- * @public
43
- * @memberof WebRTCStats
44
- */
45
- this.senders = {};
46
- /**
47
- * @instance
48
- * @type {Object}
49
- * @public
50
- * @memberof WebRTCStats
51
- */
52
- this.receivers = {};
53
- /**
54
- * @instance
55
- * @type {Meeting}
56
- * @private
57
- * @memberof WebRTCStats
58
- */
59
- this.meetingRef = null;
60
- /**
61
- * @instance
62
- * @type {Object}
63
- * @public
64
- * @memberof WebRTCStats
65
- */
66
- this.statsConfig = null;
67
- this.populate(optionalCreateOptions);
68
- }
69
-
70
- /**
71
- * @param {Object} [optionalCreateOptions]
72
- * @param {Object} optionalCreateOptions.config
73
- * @param {Meeting} optionalCreateOptions.meeting
74
- * @param {Object} optionalCreateOptions.senders
75
- * @param {Object} optionalCreateOptions.receivers
76
- * @returns {WebRTCStats}
77
- * @private
78
- * @memberof WebRTCStats
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
- }
94
- }
95
-
96
- return this;
97
- }
98
-
99
- /**
100
- * @param {Object} config
101
- * @returns {WebRTCStats}
102
- * @public
103
- * @memberof WebRTCStats
104
- */
105
- setConfig(config) {
106
- this.statsConfig = config;
107
- }
108
-
109
- /**
110
- * @param {Meeting} meeting
111
- * @returns {WebRTCStats}
112
- * @public
113
- * @memberof WebRTCStats
114
- */
115
- associateMeeting(meeting) {
116
- this.meetingRef = meeting;
117
-
118
- return this;
119
- }
120
-
121
- /**
122
- * @param {Object} senders
123
- * @param {Boolean} useConfig
124
- * @returns {WebRTCStats}
125
- * @public
126
- * @memberof WebRTCStats
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;
137
- }
138
-
139
- /**
140
- * @param {Object} sender
141
- * @param {Boolean} useConfig
142
- * @returns {WebRTCStats}
143
- * @public
144
- * @memberof WebRTCStats
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);
153
- }
154
-
155
- return this;
156
- }
157
-
158
- /**
159
- *
160
- * @param {String} id
161
- * @returns {WebRTCStats}
162
- * @public
163
- * @memberof WebRTCStats
164
- */
165
- addSenderStats(id) {
166
- const newSender = new MeetingStats(this.attrs, this.options);
167
-
168
- this.senders[id] = newSender;
169
-
170
- return newSender;
171
- }
172
-
173
- /**
174
- *
175
- * @param {String} id
176
- * @returns {WebRTCStats}
177
- * @public
178
- * @memberof WebRTCStats
179
- */
180
- addReceiverStats(id) {
181
- const newReceiver = new MeetingStats(this.attrs, this.options);
182
-
183
- this.receivers[id] = newReceiver;
184
-
185
- return newReceiver;
186
- }
187
-
188
- /**
189
- * @param {Object} receivers
190
- * @param {boolean} useConfig
191
- * @returns {WebRTCStats}
192
- * @public
193
- * @memberof WebRTCStats
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;
204
- }
205
-
206
- /**
207
- * @param {Object} receiver
208
- * @param {boolean} useConfig
209
- * @returns {WebRTCStats}
210
- * @public
211
- * @memberof WebRTCStats
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);
220
- }
221
-
222
- return this;
223
- }
224
-
225
- /**
226
- * @returns {Object}
227
- * @public
228
- * @memberof WebRTCStats
229
- */
230
- getReceivers() {
231
- return this.receivers;
232
- }
233
-
234
- /**
235
- * @returns {Object}
236
- * @public
237
- * @memberof WebRTCStats
238
- */
239
- getSenders() {
240
- return this.senders;
241
- }
242
-
243
- /**
244
- * @param {String} id
245
- * @returns {Object}
246
- * @public
247
- * @memberof WebRTCStats
248
- */
249
- getSender(id) {
250
- return this.senders[id];
251
- }
252
-
253
- /**
254
- * @param {String} id
255
- * @returns {Object}
256
- * @public
257
- * @memberof WebRTCStats
258
- */
259
- getReceiver(id) {
260
- return this.receivers[id];
261
- }
262
-
263
- /**
264
- * @returns {Object}
265
- * @public
266
- * @memberof WebRTCStats
267
- */
268
- destroySenders() {
269
- forEach(this.senders, (v, k) => {
270
- this.destroySender(k);
271
- });
272
- }
273
-
274
- /**
275
- * @returns {undefined}
276
- * @public
277
- * @memberof WebRTCStats
278
- */
279
- destroyReceivers() {
280
- forEach(this.receivers, (v, k) => {
281
- this.destroyReceiver(k);
282
- });
283
- }
284
-
285
- /**
286
- * @param {String} id
287
- * @returns {undefined}
288
- * @public
289
- * @memberof WebRTCStats
290
- */
291
- destroySender(id) {
292
- let sender = this.getSender(id);
293
-
294
- if (sender) {
295
- if (sender.stream) {
296
- sender.stream.destroy();
297
- }
298
- }
299
- sender = null;
300
- delete this.receivers[id];
301
- }
302
-
303
- /**
304
- * @param {String} id
305
- * @returns {undefined}
306
- * @public
307
- * @memberof WebRTCStats
308
- */
309
- destroyReceiver(id) {
310
- let receiver = this.getReceiver(id);
311
-
312
- if (receiver) {
313
- if (receiver.stream) {
314
- receiver.stream.destroy();
315
- }
316
- }
317
- receiver = null;
318
- delete this.receivers[id];
319
- }
320
- }
@@ -1,95 +0,0 @@
1
- import {
2
- MEETINGS,
3
- STATS
4
- } from '../constants';
5
-
6
- /**
7
- * Metrics Payload Event
8
- * Emitted when a Metric Payload is available
9
- * @event metrics:payload
10
- * @instance
11
- * @type {Object}
12
- * @memberof MediaMetrics
13
- */
14
-
15
- /**
16
- * @class MediaMetrics
17
- * @private
18
- */
19
- export default class MediaMetrics {
20
- namespace = MEETINGS;
21
-
22
- /**
23
- * @param {Object} options
24
- * @param {Object} options.config
25
- * @memberof MediaMetrics
26
- * @constructor
27
- */
28
- constructor(options = {}) {
29
- this.config = options.config;
30
- this.stats = null;
31
- }
32
-
33
- /**
34
- * @param {MeetingStats} stats
35
- * @returns {undefined}
36
- * @memberof MediaMetrics
37
- */
38
- setStats(stats) {
39
- this.stats = stats;
40
- }
41
-
42
- /**
43
- * sets up all the default senders and receivers getStats to collect data
44
- * @returns {Object}
45
- * @public
46
- * @memberof MediaMetrics
47
- */
48
- initialize() {
49
- const mqa = this.config.metrics.autoSendMQA;
50
-
51
- return {
52
- useConfig: true,
53
- senders: [
54
- {
55
- id: STATS.AUDIO_SENDER_ID,
56
- correlate: STATS.AUDIO_CORRELATE,
57
- mqa,
58
- onData: () => {}
59
- },
60
- {
61
- id: STATS.VIDEO_SENDER_ID,
62
- correlate: STATS.VIDEO_CORRELATE,
63
- mqa,
64
- onData: () => {}
65
- },
66
- {
67
- id: STATS.SHARE_SENDER_ID,
68
- correlate: STATS.SHARE_CORRELATE,
69
- mqa,
70
- onData: () => {}
71
- }
72
- ],
73
- receivers: [
74
- {
75
- id: STATS.AUDIO_RECEIVER_ID,
76
- correlate: STATS.AUDIO_CORRELATE,
77
- mqa,
78
- onData: () => {}
79
- },
80
- {
81
- id: STATS.VIDEO_RECEIVER_ID,
82
- correlate: STATS.VIDEO_CORRELATE,
83
- mqa,
84
- onData: () => {}
85
- },
86
- {
87
- id: STATS.SHARE_RECEIVER_ID,
88
- correlate: STATS.SHARE_CORRELATE,
89
- mqa,
90
- onData: () => {}
91
- }
92
- ]
93
- };
94
- }
95
- }