@webex/plugin-meetings 2.59.6-next.2 → 2.59.7

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 (152) hide show
  1. package/dist/common/browser-detection.d.ts +9 -0
  2. package/dist/common/browser-detection.js +2 -2
  3. package/dist/common/browser-detection.js.map +1 -1
  4. package/dist/common/collection.d.ts +48 -0
  5. package/dist/common/collection.js +2 -2
  6. package/dist/common/collection.js.map +1 -1
  7. package/dist/common/config.d.ts +2 -0
  8. package/dist/common/errors/captcha-error.d.ts +15 -0
  9. package/dist/common/errors/intent-to-join.d.ts +16 -0
  10. package/dist/common/errors/join-meeting.d.ts +17 -0
  11. package/dist/common/errors/media.d.ts +15 -0
  12. package/dist/common/errors/parameter.d.ts +15 -0
  13. package/dist/common/errors/password-error.d.ts +15 -0
  14. package/dist/common/errors/permission.d.ts +14 -0
  15. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  16. package/dist/common/errors/reconnection.d.ts +15 -0
  17. package/dist/common/errors/stats.d.ts +15 -0
  18. package/dist/common/errors/webex-errors.d.ts +81 -0
  19. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  20. package/dist/common/events/events-scope.d.ts +17 -0
  21. package/dist/common/events/events.d.ts +12 -0
  22. package/dist/common/events/trigger-proxy.d.ts +2 -0
  23. package/dist/common/events/util.d.ts +2 -0
  24. package/dist/common/logs/logger-config.d.ts +2 -0
  25. package/dist/common/logs/logger-proxy.d.ts +2 -0
  26. package/dist/common/logs/request.d.ts +34 -0
  27. package/dist/common/queue.d.ts +32 -0
  28. package/dist/config.d.ts +73 -0
  29. package/dist/config.js +2 -2
  30. package/dist/config.js.map +1 -1
  31. package/dist/constants.d.ts +926 -0
  32. package/dist/constants.js +2 -0
  33. package/dist/constants.js.map +1 -1
  34. package/dist/controls-options-manager/constants.d.ts +4 -0
  35. package/dist/controls-options-manager/enums.d.ts +5 -0
  36. package/dist/controls-options-manager/index.d.ts +120 -0
  37. package/dist/controls-options-manager/index.js +2 -2
  38. package/dist/controls-options-manager/index.js.map +1 -1
  39. package/dist/controls-options-manager/util.d.ts +7 -0
  40. package/dist/index.d.ts +4 -0
  41. package/dist/locus-info/controlsUtils.d.ts +2 -0
  42. package/dist/locus-info/controlsUtils.js +6 -6
  43. package/dist/locus-info/controlsUtils.js.map +1 -1
  44. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  45. package/dist/locus-info/fullState.d.ts +2 -0
  46. package/dist/locus-info/hostUtils.d.ts +2 -0
  47. package/dist/locus-info/index.d.ts +269 -0
  48. package/dist/locus-info/index.js +18 -18
  49. package/dist/locus-info/index.js.map +1 -1
  50. package/dist/locus-info/infoUtils.d.ts +2 -0
  51. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  52. package/dist/locus-info/parser.d.ts +212 -0
  53. package/dist/locus-info/parser.js +2 -2
  54. package/dist/locus-info/parser.js.map +1 -1
  55. package/dist/locus-info/selfUtils.d.ts +2 -0
  56. package/dist/media/index.d.ts +32 -0
  57. package/dist/media/properties.d.ts +108 -0
  58. package/dist/media/util.d.ts +2 -0
  59. package/dist/mediaQualityMetrics/config.d.ts +233 -0
  60. package/dist/meeting/effectsState.d.ts +42 -0
  61. package/dist/meeting/in-meeting-actions.d.ts +79 -0
  62. package/dist/meeting/index.d.ts +1622 -0
  63. package/dist/meeting/index.js +51 -28
  64. package/dist/meeting/index.js.map +1 -1
  65. package/dist/meeting/muteState.d.ts +116 -0
  66. package/dist/meeting/request.d.ts +255 -0
  67. package/dist/meeting/request.js +2 -2
  68. package/dist/meeting/request.js.map +1 -1
  69. package/dist/meeting/state.d.ts +9 -0
  70. package/dist/meeting/util.d.ts +2 -0
  71. package/dist/meeting/util.js +4 -4
  72. package/dist/meeting/util.js.map +1 -1
  73. package/dist/meeting-info/collection.d.ts +20 -0
  74. package/dist/meeting-info/collection.js +2 -2
  75. package/dist/meeting-info/collection.js.map +1 -1
  76. package/dist/meeting-info/index.d.ts +57 -0
  77. package/dist/meeting-info/meeting-info-v2.d.ts +93 -0
  78. package/dist/meeting-info/request.d.ts +22 -0
  79. package/dist/meeting-info/util.d.ts +2 -0
  80. package/dist/meeting-info/utilv2.d.ts +2 -0
  81. package/dist/meetings/collection.d.ts +23 -0
  82. package/dist/meetings/collection.js +2 -2
  83. package/dist/meetings/collection.js.map +1 -1
  84. package/dist/meetings/index.d.ts +296 -0
  85. package/dist/meetings/request.d.ts +27 -0
  86. package/dist/meetings/util.d.ts +18 -0
  87. package/dist/member/index.d.ts +147 -0
  88. package/dist/member/member.types.d.ts +11 -0
  89. package/dist/member/util.d.ts +2 -0
  90. package/dist/members/collection.d.ts +24 -0
  91. package/dist/members/index.d.ts +298 -0
  92. package/dist/members/index.js +2 -2
  93. package/dist/members/index.js.map +1 -1
  94. package/dist/members/request.d.ts +50 -0
  95. package/dist/members/util.d.ts +2 -0
  96. package/dist/metrics/config.d.ts +169 -0
  97. package/dist/metrics/constants.d.ts +59 -0
  98. package/dist/metrics/constants.js +2 -0
  99. package/dist/metrics/constants.js.map +1 -1
  100. package/dist/metrics/index.d.ts +152 -0
  101. package/dist/metrics/index.js +2 -2
  102. package/dist/metrics/index.js.map +1 -1
  103. package/dist/networkQualityMonitor/index.d.ts +70 -0
  104. package/dist/peer-connection-manager/index.d.ts +6 -0
  105. package/dist/peer-connection-manager/util.d.ts +6 -0
  106. package/dist/personal-meeting-room/index.d.ts +47 -0
  107. package/dist/personal-meeting-room/request.d.ts +14 -0
  108. package/dist/personal-meeting-room/util.d.ts +2 -0
  109. package/dist/reachability/index.d.ts +139 -0
  110. package/dist/reachability/index.js +2 -9
  111. package/dist/reachability/index.js.map +1 -1
  112. package/dist/reachability/request.d.ts +35 -0
  113. package/dist/reactions/reactions.d.ts +4 -0
  114. package/dist/reactions/reactions.type.d.ts +32 -0
  115. package/dist/reconnection-manager/index.d.ts +112 -0
  116. package/dist/recording-controller/enums.d.ts +7 -0
  117. package/dist/recording-controller/index.d.ts +193 -0
  118. package/dist/recording-controller/util.d.ts +13 -0
  119. package/dist/roap/collection.d.ts +10 -0
  120. package/dist/roap/handler.d.ts +47 -0
  121. package/dist/roap/index.d.ts +116 -0
  122. package/dist/roap/index.js +13 -12
  123. package/dist/roap/index.js.map +1 -1
  124. package/dist/roap/request.d.ts +35 -0
  125. package/dist/roap/state.d.ts +9 -0
  126. package/dist/roap/turnDiscovery.d.ts +81 -0
  127. package/dist/roap/turnDiscovery.js +130 -44
  128. package/dist/roap/turnDiscovery.js.map +1 -1
  129. package/dist/roap/util.d.ts +2 -0
  130. package/dist/statsAnalyzer/global.d.ts +118 -0
  131. package/dist/statsAnalyzer/global.js +4 -12
  132. package/dist/statsAnalyzer/global.js.map +1 -1
  133. package/dist/statsAnalyzer/index.d.ts +193 -0
  134. package/dist/statsAnalyzer/index.js +56 -14
  135. package/dist/statsAnalyzer/index.js.map +1 -1
  136. package/dist/statsAnalyzer/mqaUtil.d.ts +22 -0
  137. package/dist/statsAnalyzer/mqaUtil.js +15 -15
  138. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  139. package/dist/transcription/index.d.ts +64 -0
  140. package/package.json +21 -22
  141. package/src/config.ts +2 -2
  142. package/src/constants.ts +2 -0
  143. package/src/meeting/index.ts +35 -0
  144. package/src/metrics/constants.ts +2 -0
  145. package/src/roap/index.ts +14 -10
  146. package/src/roap/turnDiscovery.ts +48 -20
  147. package/src/statsAnalyzer/global.ts +2 -10
  148. package/src/statsAnalyzer/index.ts +80 -17
  149. package/test/unit/spec/meeting/index.js +77 -6
  150. package/test/unit/spec/roap/index.ts +84 -80
  151. package/test/unit/spec/roap/turnDiscovery.ts +21 -0
  152. package/test/unit/spec/stats-analyzer/index.js +151 -0
@@ -28,8 +28,11 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
28
28
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
29
29
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
30
30
  var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
31
+ var _isString2 = _interopRequireDefault(require("lodash/isString"));
32
+ var _pick2 = _interopRequireDefault(require("lodash/pick"));
33
+ var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
34
+ var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
31
35
  var _uuid = _interopRequireDefault(require("uuid"));
32
- var _lodash = require("lodash");
33
36
  var _webexCore = require("@webex/webex-core");
34
37
  var _internalMediaCore = require("@webex/internal-media-core");
35
38
  var _webexErrors = require("../common/errors/webex-errors");
@@ -506,7 +509,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
506
509
  _loggerProxy.default.logger.warn('Meeting:index#getMediaStreams --> Enabling `sendShare` along with `sendAudio` & `sendVideo`, on Safari, causes a failure while setting up a screen share at the same time as the camera+mic stream');
507
510
  _loggerProxy.default.logger.warn('Meeting:index#getMediaStreams --> Please use `meeting.shareScreen()` to manually start the screen share after successfully joining the meeting');
508
511
  }
509
- if (audioVideo && (0, _lodash.isString)(audioVideo)) {
512
+ if (audioVideo && (0, _isString2.default)(audioVideo)) {
510
513
  if ((0, _keys.default)(_constants.VIDEO_RESOLUTIONS).includes(audioVideo)) {
511
514
  _this.mediaProperties.setLocalQualityLevel(audioVideo);
512
515
  audioVideo = {
@@ -669,6 +672,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
669
672
  }
670
673
  });
671
674
  });
675
+ _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.NO_VIDEO_ENCODED, function (data) {
676
+ _metrics.default.sendBehavioralMetric(_constants2.default.NO_VIDEO_ENCODED);
677
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
678
+ file: 'meeting/index',
679
+ function: 'compareLastStatsResult'
680
+ }, _constants.EVENT_TRIGGERS.MEETING_NO_VIDEO_ENCODED, data);
681
+ });
682
+ _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.NO_FRAMES_SENT, function (data) {
683
+ var _this$mediaProperties, _this$mediaProperties2;
684
+ if ((_this$mediaProperties = _this.mediaProperties.mediaDirection) !== null && _this$mediaProperties !== void 0 && _this$mediaProperties.sendVideo && data.mediaType === 'video' || (_this$mediaProperties2 = _this.mediaProperties.mediaDirection) !== null && _this$mediaProperties2 !== void 0 && _this$mediaProperties2.sendShare && data.mediaType === 'share') {
685
+ _metrics.default.sendBehavioralMetric(_constants2.default.NO_FRAMES_SENT);
686
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
687
+ file: 'meeting/index',
688
+ function: 'compareLastStatsResult'
689
+ }, _constants.EVENT_TRIGGERS.MEETING_NO_FRAMES_SENT, data);
690
+ }
691
+ });
672
692
  });
673
693
  /**
674
694
  * emits event when the negotation is completed
@@ -1045,7 +1065,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1045
1065
  * @memberof Meeting
1046
1066
  */
1047
1067
  _this.updateMediaConnections = function (mediaConnections) {
1048
- if (!(0, _lodash.isEqual)(_this.mediaConnections, mediaConnections)) {
1068
+ if (!(0, _isEqual2.default)(_this.mediaConnections, mediaConnections)) {
1049
1069
  // grab last/latest item in the new mediaConnections information
1050
1070
  _this.mediaConnections = mediaConnections.slice(-1);
1051
1071
  }
@@ -1736,7 +1756,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1736
1756
  }, {
1737
1757
  key: "sendCallAnalyzerMetrics",
1738
1758
  value: function sendCallAnalyzerMetrics(options) {
1739
- var payload = this.getAnalyzerMetricsPrePayload(_objectSpread(_objectSpread({}, (0, _lodash.pick)(this.config.metrics, ['clientType', 'subClientType'])), options));
1759
+ var payload = this.getAnalyzerMetricsPrePayload(_objectSpread(_objectSpread({}, (0, _pick2.default)(this.config.metrics, ['clientType', 'subClientType'])), options));
1740
1760
 
1741
1761
  // @ts-ignore - fix type
1742
1762
  return this.webex.internal.metrics.submitCallDiagnosticEvents(payload);
@@ -1757,7 +1777,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1757
1777
  value: function sendMediaQualityAnalyzerMetrics(options) {
1758
1778
  var payload = this.getAnalyzerMetricsPrePayload(_objectSpread(_objectSpread({
1759
1779
  type: _constants.MQA_STATS.CA_TYPE
1760
- }, (0, _lodash.pick)(this.config.metrics, ['clientType', 'subClientType'])), options));
1780
+ }, (0, _pick2.default)(this.config.metrics, ['clientType', 'subClientType'])), options));
1761
1781
 
1762
1782
  // @ts-ignore
1763
1783
  return this.webex.internal.metrics.submitCallDiagnosticEvents(payload);
@@ -3012,10 +3032,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3012
3032
  key: "closeRemoteTracks",
3013
3033
  value: function closeRemoteTracks() {
3014
3034
  var _this21 = this;
3015
- var _this$mediaProperties = this.mediaProperties,
3016
- remoteAudioTrack = _this$mediaProperties.remoteAudioTrack,
3017
- remoteVideoTrack = _this$mediaProperties.remoteVideoTrack,
3018
- remoteShare = _this$mediaProperties.remoteShare;
3035
+ var _this$mediaProperties3 = this.mediaProperties,
3036
+ remoteAudioTrack = _this$mediaProperties3.remoteAudioTrack,
3037
+ remoteVideoTrack = _this$mediaProperties3.remoteVideoTrack,
3038
+ remoteShare = _this$mediaProperties3.remoteShare;
3019
3039
 
3020
3040
  /**
3021
3041
  * Triggers an event to the developer
@@ -3214,9 +3234,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3214
3234
  key: "closeLocalStream",
3215
3235
  value: function closeLocalStream() {
3216
3236
  var _this23 = this;
3217
- var _this$mediaProperties2 = this.mediaProperties,
3218
- audioTrack = _this$mediaProperties2.audioTrack,
3219
- videoTrack = _this$mediaProperties2.videoTrack;
3237
+ var _this$mediaProperties4 = this.mediaProperties,
3238
+ audioTrack = _this$mediaProperties4.audioTrack,
3239
+ videoTrack = _this$mediaProperties4.videoTrack;
3220
3240
  return _media.default.stopTracks(audioTrack).then(function () {
3221
3241
  return _media.default.stopTracks(videoTrack);
3222
3242
  }).then(function () {
@@ -3777,6 +3797,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3777
3797
  // @ts-ignore - fix type
3778
3798
  this.webex.sessionId, this.members);
3779
3799
  _loggerProxy.default.logger.info("Meeting:index#startTranscription -->\n opened LLM web socket connection successfully.");
3800
+ if (!this.inMeetingActions.isClosedCaptionActive) {
3801
+ _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> Transcription cannot be started until a licensed user enables it");
3802
+ }
3780
3803
 
3781
3804
  // retrieve and pass the payload
3782
3805
  this.transcription.subscribe(function (payload) {
@@ -3788,10 +3811,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3788
3811
  this.monitorTranscriptionSocketConnection();
3789
3812
  // @ts-ignore - fix type
3790
3813
  this.transcription.connect(this.webex.credentials.supertoken.access_token);
3791
- _context3.next = 19;
3814
+ _context3.next = 20;
3792
3815
  break;
3793
- case 15:
3794
- _context3.prev = 15;
3816
+ case 16:
3817
+ _context3.prev = 16;
3795
3818
  _context3.t0 = _context3["catch"](1);
3796
3819
  _loggerProxy.default.logger.error("Meeting:index#startTranscription --> ".concat(_context3.t0));
3797
3820
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
@@ -3799,11 +3822,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3799
3822
  reason: _context3.t0.message,
3800
3823
  stack: _context3.t0.stack
3801
3824
  });
3802
- case 19:
3825
+ case 20:
3803
3826
  case "end":
3804
3827
  return _context3.stop();
3805
3828
  }
3806
- }, _callee3, this, [[1, 15]]);
3829
+ }, _callee3, this, [[1, 16]]);
3807
3830
  }));
3808
3831
  function startTranscription() {
3809
3832
  return _startTranscription.apply(this, arguments);
@@ -5355,11 +5378,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5355
5378
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5356
5379
  var main = renderInfo.main,
5357
5380
  content = renderInfo.content;
5358
- var _this$mediaProperties3 = this.mediaProperties,
5359
- mediaDirection = _this$mediaProperties3.mediaDirection,
5360
- remoteShare = _this$mediaProperties3.remoteShare,
5361
- remoteVideoTrack = _this$mediaProperties3.remoteVideoTrack;
5362
- var layoutInfo = (0, _lodash.cloneDeep)(this.lastVideoLayoutInfo);
5381
+ var _this$mediaProperties5 = this.mediaProperties,
5382
+ mediaDirection = _this$mediaProperties5.mediaDirection,
5383
+ remoteShare = _this$mediaProperties5.remoteShare,
5384
+ remoteVideoTrack = _this$mediaProperties5.remoteVideoTrack;
5385
+ var layoutInfo = (0, _cloneDeep2.default)(this.lastVideoLayoutInfo);
5363
5386
 
5364
5387
  // TODO: We need a real time value for Audio, Video and Share send indicator
5365
5388
  if (mediaDirection.receiveVideo !== true || !remoteVideoTrack) {
@@ -5399,11 +5422,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5399
5422
  return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> unable to send renderInfo for content, you are not receiving remote share');
5400
5423
  }
5401
5424
  }
5402
- if ((0, _lodash.isEqual)(layoutInfo, this.lastVideoLayoutInfo)) {
5425
+ if ((0, _isEqual2.default)(layoutInfo, this.lastVideoLayoutInfo)) {
5403
5426
  // nothing changed, no need to send any request
5404
5427
  return _promise.default.resolve();
5405
5428
  }
5406
- this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
5429
+ this.lastVideoLayoutInfo = (0, _cloneDeep2.default)(layoutInfo);
5407
5430
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
5408
5431
  _triggerProxy.default.trigger(_this52, {
5409
5432
  file: 'meeting/index',
@@ -5546,10 +5569,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5546
5569
  }
5547
5570
 
5548
5571
  // Determine the direction of our current media
5549
- var _this$mediaProperties4 = this.mediaProperties.mediaDirection,
5550
- receiveAudio = _this$mediaProperties4.receiveAudio,
5551
- receiveVideo = _this$mediaProperties4.receiveVideo,
5552
- sendVideo = _this$mediaProperties4.sendVideo;
5572
+ var _this$mediaProperties6 = this.mediaProperties.mediaDirection,
5573
+ receiveAudio = _this$mediaProperties6.receiveAudio,
5574
+ receiveVideo = _this$mediaProperties6.receiveVideo,
5575
+ sendVideo = _this$mediaProperties6.sendVideo;
5553
5576
  return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
5554
5577
  return receiveAudio || receiveVideo ? _this54.setRemoteQualityLevel(level) : _promise.default.resolve();
5555
5578
  }).catch(function (error) {