@webex/plugin-meetings 3.4.0-next.9 → 3.5.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 (40) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/interpretation/index.js +1 -1
  4. package/dist/interpretation/siLanguage.js +1 -1
  5. package/dist/meeting/index.js +77 -11
  6. package/dist/meeting/index.js.map +1 -1
  7. package/dist/meeting/util.js +1 -0
  8. package/dist/meeting/util.js.map +1 -1
  9. package/dist/networkQualityMonitor/index.js +227 -0
  10. package/dist/networkQualityMonitor/index.js.map +1 -0
  11. package/dist/types/meeting/index.d.ts +9 -0
  12. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  13. package/dist/webinar/index.js +1 -1
  14. package/package.json +22 -22
  15. package/src/meeting/index.ts +39 -4
  16. package/src/meeting/util.ts +2 -0
  17. package/test/integration/spec/converged-space-meetings.js +1 -1
  18. package/test/unit/spec/breakouts/index.ts +1 -0
  19. package/test/unit/spec/interceptors/locusRetry.ts +11 -10
  20. package/test/unit/spec/media/MediaConnectionAwaiter.ts +1 -0
  21. package/test/unit/spec/media/index.ts +1 -0
  22. package/test/unit/spec/media/properties.ts +1 -1
  23. package/test/unit/spec/meeting/connectionStateHandler.ts +1 -0
  24. package/test/unit/spec/meeting/index.js +28 -0
  25. package/test/unit/spec/meeting/locusMediaRequest.ts +3 -2
  26. package/test/unit/spec/meeting/request.js +1 -0
  27. package/test/unit/spec/meeting/utils.js +4 -0
  28. package/test/unit/spec/meeting-info/meetinginfov2.js +10 -11
  29. package/test/unit/spec/meeting-info/request.js +1 -1
  30. package/test/unit/spec/members/request.js +2 -1
  31. package/test/unit/spec/multistream/mediaRequestManager.ts +1 -0
  32. package/test/unit/spec/multistream/receiveSlot.ts +1 -0
  33. package/test/unit/spec/multistream/receiveSlotManager.ts +1 -0
  34. package/test/unit/spec/multistream/remoteMedia.ts +1 -0
  35. package/test/unit/spec/multistream/remoteMediaGroup.ts +1 -0
  36. package/test/unit/spec/multistream/remoteMediaManager.ts +1 -0
  37. package/test/unit/spec/multistream/sendSlotManager.ts +1 -0
  38. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +0 -1
  39. package/test/unit/spec/reachability/request.js +1 -0
  40. package/test/unit/spec/roap/request.ts +1 -0
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.4.0-next.9"
212
+ version: "3.5.0"
213
213
  });
214
214
  var _default = exports.default = Breakout;
215
215
  //# sourceMappingURL=breakout.js.map
@@ -1046,7 +1046,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1046
1046
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1047
1047
  }
1048
1048
  },
1049
- version: "3.4.0-next.9"
1049
+ version: "3.5.0"
1050
1050
  });
1051
1051
  var _default = exports.default = Breakouts;
1052
1052
  //# sourceMappingURL=index.js.map
@@ -373,7 +373,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
373
373
  throw error;
374
374
  });
375
375
  },
376
- version: "3.4.0-next.9"
376
+ version: "3.5.0"
377
377
  });
378
378
  var _default = exports.default = SimultaneousInterpretation;
379
379
  //# sourceMappingURL=index.js.map
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.4.0-next.9"
21
+ version: "3.5.0"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -22,6 +22,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
22
22
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
23
23
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
24
24
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
25
+ var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
25
26
  var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
26
27
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
27
28
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
@@ -31,6 +32,8 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
31
32
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
32
33
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
33
34
  var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
35
+ var _classPrivateFieldGet2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classPrivateFieldGet"));
36
+ var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classPrivateFieldSet"));
34
37
  var _uuid = _interopRequireDefault(require("uuid"));
35
38
  var _lodash = require("lodash");
36
39
  var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
@@ -90,7 +93,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
90
93
  function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
91
94
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty3.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
92
95
  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); }; }
93
- 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; } } // @ts-ignore - Fix this
96
+ 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; } }
97
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
98
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } // @ts-ignore - Fix this
94
99
  // @ts-ignore - Types not available for @webex/common
95
100
  // default callback so we don't call an undefined function, but in practice it should never be used
96
101
  var DEFAULT_ICE_PHASE_CALLBACK = function DEFAULT_ICE_PHASE_CALLBACK() {
@@ -119,6 +124,7 @@ var ScreenShareFloorStatus = exports.ScreenShareFloorStatus = /*#__PURE__*/funct
119
124
  ScreenShareFloorStatus["RELEASED"] = "floor_released";
120
125
  return ScreenShareFloorStatus;
121
126
  }({});
127
+ var _isoLocalClientMeetingJoinTime = /*#__PURE__*/new _weakMap.default();
122
128
  /**
123
129
  * MediaDirection
124
130
  * @typedef {Object} MediaDirection
@@ -401,6 +407,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
401
407
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "id", void 0);
402
408
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "isMultistream", void 0);
403
409
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
410
+ _classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _isoLocalClientMeetingJoinTime, {
411
+ writable: true,
412
+ value: void 0
413
+ });
404
414
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaConnections", void 0);
405
415
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "mediaId", void 0);
406
416
  (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "meetingFiniteStateMachine", void 0);
@@ -2157,6 +2167,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2157
2167
  * @memberof Meeting
2158
2168
  */
2159
2169
  _this.iceCandidatesCount = 0;
2170
+
2171
+ /**
2172
+ * Start time of meeting as an ISO string
2173
+ * based on browser time, so can only be used to compute durations client side
2174
+ * undefined if meeting has not been joined, set once on meeting join, and not updated again
2175
+ * @instance
2176
+ * @type {string}
2177
+ * @private
2178
+ * @memberof Meeting
2179
+ */
2180
+ (0, _classPrivateFieldSet2.default)((0, _assertThisInitialized2.default)(_this), _isoLocalClientMeetingJoinTime, undefined);
2160
2181
  return _this;
2161
2182
  }
2162
2183
 
@@ -2215,6 +2236,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
2215
2236
  this.callStateForMetrics.correlationId = correlationId;
2216
2237
  }
2217
2238
 
2239
+ /**
2240
+ * Getter - Returns isoLocalClientMeetingJoinTime
2241
+ * This will be set once on meeting join, and not updated again
2242
+ * @returns {string | undefined}
2243
+ */
2244
+ }, {
2245
+ key: "isoLocalClientMeetingJoinTime",
2246
+ get: function get() {
2247
+ return (0, _classPrivateFieldGet2.default)(this, _isoLocalClientMeetingJoinTime);
2248
+ }
2249
+
2218
2250
  /**
2219
2251
  * Set meeting info and trigger `MEETING_INFO_AVAILABLE` event
2220
2252
  * @param {any} info
@@ -5609,6 +5641,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
5609
5641
  return _context18.abrupt("return", _util2.default.joinMeetingOptions(this, options).then(function (join) {
5610
5642
  _this32.meetingFiniteStateMachine.join();
5611
5643
  _this32.setupLocusMediaRequest();
5644
+
5645
+ // @ts-ignore
5646
+ _this32.webex.internal.device.meetingStarted();
5647
+ (0, _classPrivateFieldSet2.default)(_this32, _isoLocalClientMeetingJoinTime, new Date().toISOString());
5612
5648
  _loggerProxy.default.logger.log('Meeting:index#join --> Success');
5613
5649
  _metrics.default.sendBehavioralMetric(_constants2.default.JOIN_SUCCESS, {
5614
5650
  correlation_id: _this32.correlationId
@@ -6324,6 +6360,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6324
6360
  *
6325
6361
  * @private
6326
6362
  * @static
6363
+ * @param {boolean} isAudioEnabled
6364
+ * @param {boolean} isVideoEnabled
6327
6365
  * @returns {Promise<void>}
6328
6366
  */
6329
6367
  }, {
@@ -6947,7 +6985,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6947
6985
  break;
6948
6986
  }
6949
6987
  _context32.next = 28;
6950
- return Meeting.handleDeviceLogging();
6988
+ return Meeting.handleDeviceLogging(audioEnabled, videoEnabled);
6951
6989
  case 28:
6952
6990
  _context32.next = 31;
6953
6991
  break;
@@ -8550,29 +8588,57 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
8550
8588
  }], [{
8551
8589
  key: "handleDeviceLogging",
8552
8590
  value: (function () {
8553
- var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39() {
8591
+ var _handleDeviceLogging = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee39(isAudioEnabled, isVideoEnabled) {
8554
8592
  var devices;
8555
8593
  return _regenerator.default.wrap(function _callee39$(_context39) {
8556
8594
  while (1) switch (_context39.prev = _context39.next) {
8557
8595
  case 0:
8558
8596
  _context39.prev = 0;
8559
- _context39.next = 3;
8597
+ devices = [];
8598
+ if (!(isVideoEnabled && isAudioEnabled)) {
8599
+ _context39.next = 8;
8600
+ break;
8601
+ }
8602
+ _context39.next = 5;
8560
8603
  return (0, _mediaHelpers.getDevices)();
8561
- case 3:
8604
+ case 5:
8605
+ devices = _context39.sent;
8606
+ _context39.next = 18;
8607
+ break;
8608
+ case 8:
8609
+ if (!isVideoEnabled) {
8610
+ _context39.next = 14;
8611
+ break;
8612
+ }
8613
+ _context39.next = 11;
8614
+ return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.VIDEO_INPUT);
8615
+ case 11:
8616
+ devices = _context39.sent;
8617
+ _context39.next = 18;
8618
+ break;
8619
+ case 14:
8620
+ if (!isAudioEnabled) {
8621
+ _context39.next = 18;
8622
+ break;
8623
+ }
8624
+ _context39.next = 17;
8625
+ return (0, _mediaHelpers.getDevices)(_media.default.DeviceKind.AUDIO_INPUT);
8626
+ case 17:
8562
8627
  devices = _context39.sent;
8628
+ case 18:
8563
8629
  _util2.default.handleDeviceLogging(devices);
8564
- _context39.next = 9;
8630
+ _context39.next = 23;
8565
8631
  break;
8566
- case 7:
8567
- _context39.prev = 7;
8632
+ case 21:
8633
+ _context39.prev = 21;
8568
8634
  _context39.t0 = _context39["catch"](0);
8569
- case 9:
8635
+ case 23:
8570
8636
  case "end":
8571
8637
  return _context39.stop();
8572
8638
  }
8573
- }, _callee39, null, [[0, 7]]);
8639
+ }, _callee39, null, [[0, 21]]);
8574
8640
  }));
8575
- function handleDeviceLogging() {
8641
+ function handleDeviceLogging(_x43, _x44) {
8576
8642
  return _handleDeviceLogging.apply(this, arguments);
8577
8643
  }
8578
8644
  return handleDeviceLogging;