@webex/plugin-meetings 2.18.0 → 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 (64) 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/effectsState.js +1 -2
  5. package/dist/meeting/effectsState.js.map +1 -1
  6. package/dist/meeting/index.js +366 -496
  7. package/dist/meeting/index.js.map +1 -1
  8. package/dist/meeting/util.js +4 -213
  9. package/dist/meeting/util.js.map +1 -1
  10. package/dist/meetings/index.js +0 -28
  11. package/dist/meetings/index.js.map +1 -1
  12. package/dist/statsAnalyzer/index.js +145 -86
  13. package/dist/statsAnalyzer/index.js.map +1 -1
  14. package/package.json +6 -8
  15. package/src/constants.ts +1 -214
  16. package/src/meeting/effectsState.js +1 -2
  17. package/src/meeting/index.js +120 -213
  18. package/src/meeting/util.js +4 -252
  19. package/src/meetings/index.js +0 -22
  20. package/src/statsAnalyzer/index.js +164 -99
  21. package/test/integration/spec/journey.js +2 -67
  22. package/test/unit/spec/meeting/effectsState.js +2 -1
  23. package/test/unit/spec/meeting/index.js +88 -29
  24. package/test/unit/spec/meeting/utils.js +0 -2
  25. package/test/unit/spec/stats-analyzer/index.js +209 -1
  26. package/dist/analyzer/analyzer.js +0 -113
  27. package/dist/analyzer/analyzer.js.map +0 -1
  28. package/dist/analyzer/calculator.js +0 -87
  29. package/dist/analyzer/calculator.js.map +0 -1
  30. package/dist/metrics/mqa-processor.js +0 -170
  31. package/dist/metrics/mqa-processor.js.map +0 -1
  32. package/dist/stats/data.js +0 -93
  33. package/dist/stats/data.js.map +0 -1
  34. package/dist/stats/events.js +0 -222
  35. package/dist/stats/events.js.map +0 -1
  36. package/dist/stats/filter.js +0 -84
  37. package/dist/stats/filter.js.map +0 -1
  38. package/dist/stats/history.js +0 -147
  39. package/dist/stats/history.js.map +0 -1
  40. package/dist/stats/index.js +0 -425
  41. package/dist/stats/index.js.map +0 -1
  42. package/dist/stats/metrics.js +0 -112
  43. package/dist/stats/metrics.js.map +0 -1
  44. package/dist/stats/stats.js +0 -592
  45. package/dist/stats/stats.js.map +0 -1
  46. package/dist/stats/stream.js +0 -156
  47. package/dist/stats/stream.js.map +0 -1
  48. package/dist/stats/transformer.js +0 -126
  49. package/dist/stats/transformer.js.map +0 -1
  50. package/dist/stats/util.js +0 -64
  51. package/dist/stats/util.js.map +0 -1
  52. package/src/analyzer/analyzer.js +0 -78
  53. package/src/analyzer/calculator.js +0 -77
  54. package/src/metrics/mqa-processor.js +0 -118
  55. package/src/stats/data.js +0 -56
  56. package/src/stats/events.js +0 -185
  57. package/src/stats/filter.js +0 -40
  58. package/src/stats/history.js +0 -107
  59. package/src/stats/index.js +0 -320
  60. package/src/stats/metrics.js +0 -95
  61. package/src/stats/stats.js +0 -477
  62. package/src/stats/stream.js +0 -108
  63. package/src/stats/transformer.js +0 -109
  64. package/src/stats/util.js +0 -44
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
- _Object$defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
-
11
- exports.default = void 0;
12
-
13
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
-
15
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
- /**
18
- * stores the last x filtered stream datas
19
- */
20
-
21
- /**
22
- * @export
23
- * @class StatsHistory
24
- */
25
- var StatsHistory = /*#__PURE__*/function () {
26
- /**
27
- * instantiate our wrapped history array
28
- * @param {Number} max
29
- */
30
- function StatsHistory(max) {
31
- (0, _classCallCheck2.default)(this, StatsHistory);
32
-
33
- /**
34
- * @instance
35
- * @type {Array}
36
- * @public
37
- * @memberof StatsHistory
38
- */
39
- this.history = [];
40
- /**
41
- * @instance
42
- * @type {Number}
43
- * @public
44
- * @memberof StatsHistory
45
- */
46
-
47
- this.max = max;
48
- }
49
- /**
50
- * @returns {Array} the array of stats reports, read from [0] = most recent to [length - 1] = least recent
51
- * @public
52
- * @memberof StatsHistory
53
- */
54
-
55
-
56
- (0, _createClass2.default)(StatsHistory, [{
57
- key: "get",
58
- value: function get() {
59
- return this.history;
60
- }
61
- /**
62
- * deletes the history array and resets it
63
- * @returns {undefined}
64
- * @public
65
- * @memberof StatsHistory
66
- */
67
-
68
- }, {
69
- key: "clear",
70
- value: function clear() {
71
- this.history = [];
72
- }
73
- /**
74
- * gets the stored stat
75
- * @param {Number} index the location
76
- * @returns {Object} the stat at location index
77
- * @public
78
- * @memberof StatsHistory
79
- */
80
-
81
- }, {
82
- key: "getAt",
83
- value: function getAt(index) {
84
- return this.history[index];
85
- }
86
- /**
87
- * gets the most recently stored stat
88
- * @returns {Object} the most recently added stat to the history recorder
89
- * @public
90
- * @memberof StatsHistory
91
- */
92
-
93
- }, {
94
- key: "getMostRecent",
95
- value: function getMostRecent() {
96
- return this.history.length > 1 ? this.getAt(0) : null;
97
- }
98
- /**
99
- * gets the last two values, that can be used to compare
100
- * @returns {Object} {previous: WebRTCData, current: WebRTCData}
101
- */
102
-
103
- }, {
104
- key: "getComparable",
105
- value: function getComparable() {
106
- return {
107
- previous: this.getMostRecent(),
108
- current: this.history.length > 2 ? this.getAt(1) : null
109
- };
110
- }
111
- /**
112
- * gets a cut of the n most recent WebRTC datas stored
113
- * @param {Number} exclusiveEnd
114
- * @returns {Array}
115
- */
116
-
117
- }, {
118
- key: "getSlice",
119
- value: function getSlice(exclusiveEnd) {
120
- return this.history.slice(0, exclusiveEnd);
121
- }
122
- /**
123
- * adds a history entry into tshe array at the head, removes from the tail
124
- * if too large, returns the old tail if removed
125
- * @param {WebRTCData} data filtered stats report to add to the history array
126
- * @returns {Object} the removed stats report at the end if that had to be removed
127
- * to make space for the new stats data report to be added to the front
128
- */
129
-
130
- }, {
131
- key: "add",
132
- value: function add(data) {
133
- var removed = null;
134
-
135
- if (this.history.length >= this.max) {
136
- removed = this.history.pop();
137
- }
138
-
139
- this.history.unshift(data);
140
- return removed;
141
- }
142
- }]);
143
- return StatsHistory;
144
- }();
145
-
146
- exports.default = StatsHistory;
147
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["StatsHistory","max","history","index","length","getAt","previous","getMostRecent","current","exclusiveEnd","slice","data","removed","pop","unshift"],"sources":["history.js"],"sourcesContent":["/**\n * stores the last x filtered stream datas\n */\n/**\n * @export\n * @class StatsHistory\n */\nexport default class StatsHistory {\n /**\n * instantiate our wrapped history array\n * @param {Number} max\n */\n constructor(max) {\n /**\n * @instance\n * @type {Array}\n * @public\n * @memberof StatsHistory\n */\n this.history = [];\n /**\n * @instance\n * @type {Number}\n * @public\n * @memberof StatsHistory\n */\n this.max = max;\n }\n\n /**\n * @returns {Array} the array of stats reports, read from [0] = most recent to [length - 1] = least recent\n * @public\n * @memberof StatsHistory\n */\n get() {\n return this.history;\n }\n\n /**\n * deletes the history array and resets it\n * @returns {undefined}\n * @public\n * @memberof StatsHistory\n */\n clear() {\n this.history = [];\n }\n\n /**\n * gets the stored stat\n * @param {Number} index the location\n * @returns {Object} the stat at location index\n * @public\n * @memberof StatsHistory\n */\n getAt(index) {\n return this.history[index];\n }\n\n /**\n * gets the most recently stored stat\n * @returns {Object} the most recently added stat to the history recorder\n * @public\n * @memberof StatsHistory\n */\n getMostRecent() {\n return this.history.length > 1 ? this.getAt(0) : null;\n }\n\n /**\n * gets the last two values, that can be used to compare\n * @returns {Object} {previous: WebRTCData, current: WebRTCData}\n */\n getComparable() {\n return {\n previous: this.getMostRecent(),\n current: this.history.length > 2 ? this.getAt(1) : null\n };\n }\n\n /**\n * gets a cut of the n most recent WebRTC datas stored\n * @param {Number} exclusiveEnd\n * @returns {Array}\n */\n getSlice(exclusiveEnd) {\n return this.history.slice(0, exclusiveEnd);\n }\n\n /**\n * adds a history entry into tshe array at the head, removes from the tail\n * if too large, returns the old tail if removed\n * @param {WebRTCData} data filtered stats report to add to the history array\n * @returns {Object} the removed stats report at the end if that had to be removed\n * to make space for the new stats data report to be added to the front\n */\n add(data) {\n let removed = null;\n\n if (this.history.length >= this.max) {\n removed = this.history.pop();\n }\n this.history.unshift(data);\n\n return removed;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;;AACA;AACA;AACA;AACA;IACqBA,Y;EACnB;AACF;AACA;AACA;EACE,sBAAYC,GAAZ,EAAiB;IAAA;;IACf;AACJ;AACA;AACA;AACA;AACA;IACI,KAAKC,OAAL,GAAe,EAAf;IACA;AACJ;AACA;AACA;AACA;AACA;;IACI,KAAKD,GAAL,GAAWA,GAAX;EACD;EAED;AACF;AACA;AACA;AACA;;;;;WACE,eAAM;MACJ,OAAO,KAAKC,OAAZ;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,iBAAQ;MACN,KAAKA,OAAL,GAAe,EAAf;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,eAAMC,KAAN,EAAa;MACX,OAAO,KAAKD,OAAL,CAAaC,KAAb,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,yBAAgB;MACd,OAAO,KAAKD,OAAL,CAAaE,MAAb,GAAsB,CAAtB,GAA0B,KAAKC,KAAL,CAAW,CAAX,CAA1B,GAA0C,IAAjD;IACD;IAED;AACF;AACA;AACA;;;;WACE,yBAAgB;MACd,OAAO;QACLC,QAAQ,EAAE,KAAKC,aAAL,EADL;QAELC,OAAO,EAAE,KAAKN,OAAL,CAAaE,MAAb,GAAsB,CAAtB,GAA0B,KAAKC,KAAL,CAAW,CAAX,CAA1B,GAA0C;MAF9C,CAAP;IAID;IAED;AACF;AACA;AACA;AACA;;;;WACE,kBAASI,YAAT,EAAuB;MACrB,OAAO,KAAKP,OAAL,CAAaQ,KAAb,CAAmB,CAAnB,EAAsBD,YAAtB,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,aAAIE,IAAJ,EAAU;MACR,IAAIC,OAAO,GAAG,IAAd;;MAEA,IAAI,KAAKV,OAAL,CAAaE,MAAb,IAAuB,KAAKH,GAAhC,EAAqC;QACnCW,OAAO,GAAG,KAAKV,OAAL,CAAaW,GAAb,EAAV;MACD;;MACD,KAAKX,OAAL,CAAaY,OAAb,CAAqBH,IAArB;MAEA,OAAOC,OAAP;IACD"}
@@ -1,425 +0,0 @@
1
- "use strict";
2
-
3
- var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
-
7
- var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
-
9
- _Object$defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
-
13
- exports.default = void 0;
14
-
15
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
16
-
17
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
18
-
19
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
20
-
21
- var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
22
-
23
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
24
-
25
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
26
-
27
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
28
-
29
- var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
30
-
31
- var _webexCore = require("@webex/webex-core");
32
-
33
- var _constants = require("../constants");
34
-
35
- var _stats = _interopRequireDefault(require("../stats/stats"));
36
-
37
- var _util = _interopRequireDefault(require("../stats/util"));
38
-
39
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
40
-
41
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
42
-
43
- /**
44
- * @class WebRTCStats
45
- */
46
- var WebRTCStats = /*#__PURE__*/function (_StatelessWebexPlugin) {
47
- (0, _inherits2.default)(WebRTCStats, _StatelessWebexPlugin);
48
-
49
- var _super = _createSuper(WebRTCStats);
50
-
51
- /**
52
- *
53
- * @param {Object} attrs
54
- * @param {Object} options
55
- * @param {Object} [optionalCreateOptions]
56
- */
57
- function WebRTCStats(attrs, options, optionalCreateOptions) {
58
- var _this;
59
-
60
- (0, _classCallCheck2.default)(this, WebRTCStats);
61
- _this = _super.call(this, {}, options);
62
- /**
63
- * @instance
64
- * @type {Object}
65
- * @private
66
- * @memberof WebRTCStats
67
- */
68
-
69
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.MEETINGS);
70
- _this.attrs = attrs;
71
- /**
72
- * @instance
73
- * @type {Object}
74
- * @private
75
- * @memberof WebRTCStats
76
- */
77
-
78
- _this.options = options;
79
- /**
80
- * @instance
81
- * @type {Object}
82
- * @public
83
- * @memberof WebRTCStats
84
- */
85
-
86
- _this.senders = {};
87
- /**
88
- * @instance
89
- * @type {Object}
90
- * @public
91
- * @memberof WebRTCStats
92
- */
93
-
94
- _this.receivers = {};
95
- /**
96
- * @instance
97
- * @type {Meeting}
98
- * @private
99
- * @memberof WebRTCStats
100
- */
101
-
102
- _this.meetingRef = null;
103
- /**
104
- * @instance
105
- * @type {Object}
106
- * @public
107
- * @memberof WebRTCStats
108
- */
109
-
110
- _this.statsConfig = null;
111
-
112
- _this.populate(optionalCreateOptions);
113
-
114
- return _this;
115
- }
116
- /**
117
- * @param {Object} [optionalCreateOptions]
118
- * @param {Object} optionalCreateOptions.config
119
- * @param {Meeting} optionalCreateOptions.meeting
120
- * @param {Object} optionalCreateOptions.senders
121
- * @param {Object} optionalCreateOptions.receivers
122
- * @returns {WebRTCStats}
123
- * @private
124
- * @memberof WebRTCStats
125
- */
126
-
127
-
128
- (0, _createClass2.default)(WebRTCStats, [{
129
- key: "populate",
130
- value: function populate(optionalCreateOptions) {
131
- if (optionalCreateOptions) {
132
- if (optionalCreateOptions.config) {
133
- this.setConfig(optionalCreateOptions.config);
134
- }
135
-
136
- if (optionalCreateOptions.meeting) {
137
- this.associateMeeting(optionalCreateOptions.meeting);
138
- }
139
-
140
- if (optionalCreateOptions.senders) {
141
- this.addSenders(optionalCreateOptions.senders);
142
- }
143
-
144
- if (optionalCreateOptions.receivers) {
145
- this.addReceivers(optionalCreateOptions.receivers);
146
- }
147
- }
148
-
149
- return this;
150
- }
151
- /**
152
- * @param {Object} config
153
- * @returns {WebRTCStats}
154
- * @public
155
- * @memberof WebRTCStats
156
- */
157
-
158
- }, {
159
- key: "setConfig",
160
- value: function setConfig(config) {
161
- this.statsConfig = config;
162
- }
163
- /**
164
- * @param {Meeting} meeting
165
- * @returns {WebRTCStats}
166
- * @public
167
- * @memberof WebRTCStats
168
- */
169
-
170
- }, {
171
- key: "associateMeeting",
172
- value: function associateMeeting(meeting) {
173
- this.meetingRef = meeting;
174
- return this;
175
- }
176
- /**
177
- * @param {Object} senders
178
- * @param {Boolean} useConfig
179
- * @returns {WebRTCStats}
180
- * @public
181
- * @memberof WebRTCStats
182
- */
183
-
184
- }, {
185
- key: "addSenders",
186
- value: function addSenders(senders) {
187
- var _this2 = this;
188
-
189
- var useConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
190
-
191
- if (!senders.forEach) {
192
- throw new TypeError('Stats senders must be created with an iterable array of senders to act on.');
193
- }
194
-
195
- senders.forEach(function (sender) {
196
- _this2.addSender(sender, useConfig);
197
- });
198
- return this;
199
- }
200
- /**
201
- * @param {Object} sender
202
- * @param {Boolean} useConfig
203
- * @returns {WebRTCStats}
204
- * @public
205
- * @memberof WebRTCStats
206
- */
207
-
208
- }, {
209
- key: "addSender",
210
- value: function addSender(sender) {
211
- var useConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
212
-
213
- if (sender) {
214
- if (useConfig) {
215
- _util.default.generateSingularOptions(sender, this.statsConfig, this.meetingRef, _constants.STATS.SENDERS);
216
- }
217
-
218
- sender.type = _constants.STATS.SENDER;
219
- this.senders[sender.id] = new _stats.default(this.attrs, this.options, sender);
220
- }
221
-
222
- return this;
223
- }
224
- /**
225
- *
226
- * @param {String} id
227
- * @returns {WebRTCStats}
228
- * @public
229
- * @memberof WebRTCStats
230
- */
231
-
232
- }, {
233
- key: "addSenderStats",
234
- value: function addSenderStats(id) {
235
- var newSender = new _stats.default(this.attrs, this.options);
236
- this.senders[id] = newSender;
237
- return newSender;
238
- }
239
- /**
240
- *
241
- * @param {String} id
242
- * @returns {WebRTCStats}
243
- * @public
244
- * @memberof WebRTCStats
245
- */
246
-
247
- }, {
248
- key: "addReceiverStats",
249
- value: function addReceiverStats(id) {
250
- var newReceiver = new _stats.default(this.attrs, this.options);
251
- this.receivers[id] = newReceiver;
252
- return newReceiver;
253
- }
254
- /**
255
- * @param {Object} receivers
256
- * @param {boolean} useConfig
257
- * @returns {WebRTCStats}
258
- * @public
259
- * @memberof WebRTCStats
260
- */
261
-
262
- }, {
263
- key: "addReceivers",
264
- value: function addReceivers(receivers) {
265
- var _this3 = this;
266
-
267
- var useConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
268
-
269
- if (!receivers.forEach) {
270
- throw new TypeError('Stats receivers must be created with an iterable array of receivers to act on.');
271
- }
272
-
273
- receivers.forEach(function (receiver) {
274
- _this3.addReceiver(receiver, useConfig);
275
- });
276
- return this;
277
- }
278
- /**
279
- * @param {Object} receiver
280
- * @param {boolean} useConfig
281
- * @returns {WebRTCStats}
282
- * @public
283
- * @memberof WebRTCStats
284
- */
285
-
286
- }, {
287
- key: "addReceiver",
288
- value: function addReceiver(receiver) {
289
- var useConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
290
-
291
- if (receiver) {
292
- if (useConfig) {
293
- _util.default.generateSingularOptions(receiver, this.statsConfig, this.meetingRef, _constants.STATS.RECEIVERS);
294
- }
295
-
296
- receiver.type = _constants.STATS.RECEIVER;
297
- this.receivers[receiver.id] = new _stats.default(this.attrs, this.options, receiver);
298
- }
299
-
300
- return this;
301
- }
302
- /**
303
- * @returns {Object}
304
- * @public
305
- * @memberof WebRTCStats
306
- */
307
-
308
- }, {
309
- key: "getReceivers",
310
- value: function getReceivers() {
311
- return this.receivers;
312
- }
313
- /**
314
- * @returns {Object}
315
- * @public
316
- * @memberof WebRTCStats
317
- */
318
-
319
- }, {
320
- key: "getSenders",
321
- value: function getSenders() {
322
- return this.senders;
323
- }
324
- /**
325
- * @param {String} id
326
- * @returns {Object}
327
- * @public
328
- * @memberof WebRTCStats
329
- */
330
-
331
- }, {
332
- key: "getSender",
333
- value: function getSender(id) {
334
- return this.senders[id];
335
- }
336
- /**
337
- * @param {String} id
338
- * @returns {Object}
339
- * @public
340
- * @memberof WebRTCStats
341
- */
342
-
343
- }, {
344
- key: "getReceiver",
345
- value: function getReceiver(id) {
346
- return this.receivers[id];
347
- }
348
- /**
349
- * @returns {Object}
350
- * @public
351
- * @memberof WebRTCStats
352
- */
353
-
354
- }, {
355
- key: "destroySenders",
356
- value: function destroySenders() {
357
- var _this4 = this;
358
-
359
- (0, _forEach2.default)(this.senders, function (v, k) {
360
- _this4.destroySender(k);
361
- });
362
- }
363
- /**
364
- * @returns {undefined}
365
- * @public
366
- * @memberof WebRTCStats
367
- */
368
-
369
- }, {
370
- key: "destroyReceivers",
371
- value: function destroyReceivers() {
372
- var _this5 = this;
373
-
374
- (0, _forEach2.default)(this.receivers, function (v, k) {
375
- _this5.destroyReceiver(k);
376
- });
377
- }
378
- /**
379
- * @param {String} id
380
- * @returns {undefined}
381
- * @public
382
- * @memberof WebRTCStats
383
- */
384
-
385
- }, {
386
- key: "destroySender",
387
- value: function destroySender(id) {
388
- var sender = this.getSender(id);
389
-
390
- if (sender) {
391
- if (sender.stream) {
392
- sender.stream.destroy();
393
- }
394
- }
395
-
396
- sender = null;
397
- delete this.receivers[id];
398
- }
399
- /**
400
- * @param {String} id
401
- * @returns {undefined}
402
- * @public
403
- * @memberof WebRTCStats
404
- */
405
-
406
- }, {
407
- key: "destroyReceiver",
408
- value: function destroyReceiver(id) {
409
- var receiver = this.getReceiver(id);
410
-
411
- if (receiver) {
412
- if (receiver.stream) {
413
- receiver.stream.destroy();
414
- }
415
- }
416
-
417
- receiver = null;
418
- delete this.receivers[id];
419
- }
420
- }]);
421
- return WebRTCStats;
422
- }(_webexCore.StatelessWebexPlugin);
423
-
424
- exports.default = WebRTCStats;
425
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["WebRTCStats","attrs","options","optionalCreateOptions","MEETINGS","senders","receivers","meetingRef","statsConfig","populate","config","setConfig","meeting","associateMeeting","addSenders","addReceivers","useConfig","forEach","TypeError","sender","addSender","StatsUtil","generateSingularOptions","STATS","SENDERS","type","SENDER","id","MeetingStats","newSender","newReceiver","receiver","addReceiver","RECEIVERS","RECEIVER","v","k","destroySender","destroyReceiver","getSender","stream","destroy","getReceiver","StatelessWebexPlugin"],"sources":["index.js"],"sourcesContent":["import {forEach} from 'lodash';\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport {\n MEETINGS,\n STATS\n} from '../constants';\nimport MeetingStats from '../stats/stats';\nimport StatsUtil from '../stats/util';\n\n/**\n * @class WebRTCStats\n */\nexport default class WebRTCStats extends StatelessWebexPlugin {\n namespace = MEETINGS;\n\n /**\n *\n * @param {Object} attrs\n * @param {Object} options\n * @param {Object} [optionalCreateOptions]\n */\n constructor(attrs, options, optionalCreateOptions) {\n super({}, options);\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof WebRTCStats\n */\n this.attrs = attrs;\n /**\n * @instance\n * @type {Object}\n * @private\n * @memberof WebRTCStats\n */\n this.options = options;\n /**\n * @instance\n * @type {Object}\n * @public\n * @memberof WebRTCStats\n */\n this.senders = {};\n /**\n * @instance\n * @type {Object}\n * @public\n * @memberof WebRTCStats\n */\n this.receivers = {};\n /**\n * @instance\n * @type {Meeting}\n * @private\n * @memberof WebRTCStats\n */\n this.meetingRef = null;\n /**\n * @instance\n * @type {Object}\n * @public\n * @memberof WebRTCStats\n */\n this.statsConfig = null;\n this.populate(optionalCreateOptions);\n }\n\n /**\n * @param {Object} [optionalCreateOptions]\n * @param {Object} optionalCreateOptions.config\n * @param {Meeting} optionalCreateOptions.meeting\n * @param {Object} optionalCreateOptions.senders\n * @param {Object} optionalCreateOptions.receivers\n * @returns {WebRTCStats}\n * @private\n * @memberof WebRTCStats\n */\n populate(optionalCreateOptions) {\n if (optionalCreateOptions) {\n if (optionalCreateOptions.config) {\n this.setConfig(optionalCreateOptions.config);\n }\n if (optionalCreateOptions.meeting) {\n this.associateMeeting(optionalCreateOptions.meeting);\n }\n if (optionalCreateOptions.senders) {\n this.addSenders(optionalCreateOptions.senders);\n }\n if (optionalCreateOptions.receivers) {\n this.addReceivers(optionalCreateOptions.receivers);\n }\n }\n\n return this;\n }\n\n /**\n * @param {Object} config\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n setConfig(config) {\n this.statsConfig = config;\n }\n\n /**\n * @param {Meeting} meeting\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n associateMeeting(meeting) {\n this.meetingRef = meeting;\n\n return this;\n }\n\n /**\n * @param {Object} senders\n * @param {Boolean} useConfig\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n addSenders(senders, useConfig = false) {\n if (!senders.forEach) {\n throw new TypeError('Stats senders must be created with an iterable array of senders to act on.');\n }\n senders.forEach((sender) => {\n this.addSender(sender, useConfig);\n });\n\n return this;\n }\n\n /**\n * @param {Object} sender\n * @param {Boolean} useConfig\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n addSender(sender, useConfig = false) {\n if (sender) {\n if (useConfig) {\n StatsUtil.generateSingularOptions(sender, this.statsConfig, this.meetingRef, STATS.SENDERS);\n }\n sender.type = STATS.SENDER;\n this.senders[sender.id] = new MeetingStats(this.attrs, this.options, sender);\n }\n\n return this;\n }\n\n /**\n *\n * @param {String} id\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n addSenderStats(id) {\n const newSender = new MeetingStats(this.attrs, this.options);\n\n this.senders[id] = newSender;\n\n return newSender;\n }\n\n /**\n *\n * @param {String} id\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n addReceiverStats(id) {\n const newReceiver = new MeetingStats(this.attrs, this.options);\n\n this.receivers[id] = newReceiver;\n\n return newReceiver;\n }\n\n /**\n * @param {Object} receivers\n * @param {boolean} useConfig\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n addReceivers(receivers, useConfig = false) {\n if (!receivers.forEach) {\n throw new TypeError('Stats receivers must be created with an iterable array of receivers to act on.');\n }\n receivers.forEach((receiver) => {\n this.addReceiver(receiver, useConfig);\n });\n\n return this;\n }\n\n /**\n * @param {Object} receiver\n * @param {boolean} useConfig\n * @returns {WebRTCStats}\n * @public\n * @memberof WebRTCStats\n */\n addReceiver(receiver, useConfig = false) {\n if (receiver) {\n if (useConfig) {\n StatsUtil.generateSingularOptions(receiver, this.statsConfig, this.meetingRef, STATS.RECEIVERS);\n }\n receiver.type = STATS.RECEIVER;\n this.receivers[receiver.id] = new MeetingStats(this.attrs, this.options, receiver);\n }\n\n return this;\n }\n\n /**\n * @returns {Object}\n * @public\n * @memberof WebRTCStats\n */\n getReceivers() {\n return this.receivers;\n }\n\n /**\n * @returns {Object}\n * @public\n * @memberof WebRTCStats\n */\n getSenders() {\n return this.senders;\n }\n\n /**\n * @param {String} id\n * @returns {Object}\n * @public\n * @memberof WebRTCStats\n */\n getSender(id) {\n return this.senders[id];\n }\n\n /**\n * @param {String} id\n * @returns {Object}\n * @public\n * @memberof WebRTCStats\n */\n getReceiver(id) {\n return this.receivers[id];\n }\n\n /**\n * @returns {Object}\n * @public\n * @memberof WebRTCStats\n */\n destroySenders() {\n forEach(this.senders, (v, k) => {\n this.destroySender(k);\n });\n }\n\n /**\n * @returns {undefined}\n * @public\n * @memberof WebRTCStats\n */\n destroyReceivers() {\n forEach(this.receivers, (v, k) => {\n this.destroyReceiver(k);\n });\n }\n\n /**\n * @param {String} id\n * @returns {undefined}\n * @public\n * @memberof WebRTCStats\n */\n destroySender(id) {\n let sender = this.getSender(id);\n\n if (sender) {\n if (sender.stream) {\n sender.stream.destroy();\n }\n }\n sender = null;\n delete this.receivers[id];\n }\n\n /**\n * @param {String} id\n * @returns {undefined}\n * @public\n * @memberof WebRTCStats\n */\n destroyReceiver(id) {\n let receiver = this.getReceiver(id);\n\n if (receiver) {\n if (receiver.stream) {\n receiver.stream.destroy();\n }\n }\n receiver = null;\n delete this.receivers[id];\n }\n}\n"],"mappings":"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"}