@webex/plugin-meetings 2.59.4-next.1 → 2.59.5

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 +1621 -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");
@@ -505,7 +508,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
505
508
  _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');
506
509
  _loggerProxy.default.logger.warn('Meeting:index#getMediaStreams --> Please use `meeting.shareScreen()` to manually start the screen share after successfully joining the meeting');
507
510
  }
508
- if (audioVideo && (0, _lodash.isString)(audioVideo)) {
511
+ if (audioVideo && (0, _isString2.default)(audioVideo)) {
509
512
  if ((0, _keys.default)(_constants.VIDEO_RESOLUTIONS).includes(audioVideo)) {
510
513
  _this.mediaProperties.setLocalQualityLevel(audioVideo);
511
514
  audioVideo = {
@@ -668,6 +671,23 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
668
671
  }
669
672
  });
670
673
  });
674
+ _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.NO_VIDEO_ENCODED, function (data) {
675
+ _metrics.default.sendBehavioralMetric(_constants2.default.NO_VIDEO_ENCODED);
676
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
677
+ file: 'meeting/index',
678
+ function: 'compareLastStatsResult'
679
+ }, _constants.EVENT_TRIGGERS.MEETING_NO_VIDEO_ENCODED, data);
680
+ });
681
+ _this.statsAnalyzer.on(_statsAnalyzer.EVENTS.NO_FRAMES_SENT, function (data) {
682
+ var _this$mediaProperties, _this$mediaProperties2;
683
+ 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') {
684
+ _metrics.default.sendBehavioralMetric(_constants2.default.NO_FRAMES_SENT);
685
+ _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
686
+ file: 'meeting/index',
687
+ function: 'compareLastStatsResult'
688
+ }, _constants.EVENT_TRIGGERS.MEETING_NO_FRAMES_SENT, data);
689
+ }
690
+ });
671
691
  });
672
692
  /**
673
693
  * emits event when the negotation is completed
@@ -1044,7 +1064,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1044
1064
  * @memberof Meeting
1045
1065
  */
1046
1066
  _this.updateMediaConnections = function (mediaConnections) {
1047
- if (!(0, _lodash.isEqual)(_this.mediaConnections, mediaConnections)) {
1067
+ if (!(0, _isEqual2.default)(_this.mediaConnections, mediaConnections)) {
1048
1068
  // grab last/latest item in the new mediaConnections information
1049
1069
  _this.mediaConnections = mediaConnections.slice(-1);
1050
1070
  }
@@ -1735,7 +1755,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1735
1755
  }, {
1736
1756
  key: "sendCallAnalyzerMetrics",
1737
1757
  value: function sendCallAnalyzerMetrics(options) {
1738
- var payload = this.getAnalyzerMetricsPrePayload(_objectSpread(_objectSpread({}, (0, _lodash.pick)(this.config.metrics, ['clientType', 'subClientType'])), options));
1758
+ var payload = this.getAnalyzerMetricsPrePayload(_objectSpread(_objectSpread({}, (0, _pick2.default)(this.config.metrics, ['clientType', 'subClientType'])), options));
1739
1759
 
1740
1760
  // @ts-ignore - fix type
1741
1761
  return this.webex.internal.metrics.submitCallDiagnosticEvents(payload);
@@ -1756,7 +1776,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1756
1776
  value: function sendMediaQualityAnalyzerMetrics(options) {
1757
1777
  var payload = this.getAnalyzerMetricsPrePayload(_objectSpread(_objectSpread({
1758
1778
  type: _constants.MQA_STATS.CA_TYPE
1759
- }, (0, _lodash.pick)(this.config.metrics, ['clientType', 'subClientType'])), options));
1779
+ }, (0, _pick2.default)(this.config.metrics, ['clientType', 'subClientType'])), options));
1760
1780
 
1761
1781
  // @ts-ignore
1762
1782
  return this.webex.internal.metrics.submitCallDiagnosticEvents(payload);
@@ -2984,10 +3004,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
2984
3004
  key: "closeRemoteTracks",
2985
3005
  value: function closeRemoteTracks() {
2986
3006
  var _this21 = this;
2987
- var _this$mediaProperties = this.mediaProperties,
2988
- remoteAudioTrack = _this$mediaProperties.remoteAudioTrack,
2989
- remoteVideoTrack = _this$mediaProperties.remoteVideoTrack,
2990
- remoteShare = _this$mediaProperties.remoteShare;
3007
+ var _this$mediaProperties3 = this.mediaProperties,
3008
+ remoteAudioTrack = _this$mediaProperties3.remoteAudioTrack,
3009
+ remoteVideoTrack = _this$mediaProperties3.remoteVideoTrack,
3010
+ remoteShare = _this$mediaProperties3.remoteShare;
2991
3011
 
2992
3012
  /**
2993
3013
  * Triggers an event to the developer
@@ -3186,9 +3206,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3186
3206
  key: "closeLocalStream",
3187
3207
  value: function closeLocalStream() {
3188
3208
  var _this23 = this;
3189
- var _this$mediaProperties2 = this.mediaProperties,
3190
- audioTrack = _this$mediaProperties2.audioTrack,
3191
- videoTrack = _this$mediaProperties2.videoTrack;
3209
+ var _this$mediaProperties4 = this.mediaProperties,
3210
+ audioTrack = _this$mediaProperties4.audioTrack,
3211
+ videoTrack = _this$mediaProperties4.videoTrack;
3192
3212
  return _media.default.stopTracks(audioTrack).then(function () {
3193
3213
  return _media.default.stopTracks(videoTrack);
3194
3214
  }).then(function () {
@@ -3749,6 +3769,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3749
3769
  // @ts-ignore - fix type
3750
3770
  this.webex.sessionId, this.members);
3751
3771
  _loggerProxy.default.logger.info("Meeting:index#receiveTranscription -->\n opened LLM web socket connection successfully.");
3772
+ if (!this.inMeetingActions.isClosedCaptionActive) {
3773
+ _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> Transcription cannot be started until a licensed user enables it");
3774
+ }
3752
3775
 
3753
3776
  // retrieve and pass the payload
3754
3777
  this.transcription.subscribe(function (payload) {
@@ -3760,10 +3783,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3760
3783
  this.monitorTranscriptionSocketConnection();
3761
3784
  // @ts-ignore - fix type
3762
3785
  this.transcription.connect(this.webex.credentials.supertoken.access_token);
3763
- _context2.next = 19;
3786
+ _context2.next = 20;
3764
3787
  break;
3765
- case 15:
3766
- _context2.prev = 15;
3788
+ case 16:
3789
+ _context2.prev = 16;
3767
3790
  _context2.t0 = _context2["catch"](1);
3768
3791
  _loggerProxy.default.logger.error("Meeting:index#receiveTranscription --> ".concat(_context2.t0));
3769
3792
  _metrics.default.sendBehavioralMetric(_constants2.default.RECEIVE_TRANSCRIPTION_FAILURE, {
@@ -3771,11 +3794,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3771
3794
  reason: _context2.t0.message,
3772
3795
  stack: _context2.t0.stack
3773
3796
  });
3774
- case 19:
3797
+ case 20:
3775
3798
  case "end":
3776
3799
  return _context2.stop();
3777
3800
  }
3778
- }, _callee2, this, [[1, 15]]);
3801
+ }, _callee2, this, [[1, 16]]);
3779
3802
  }));
3780
3803
  function receiveTranscription() {
3781
3804
  return _receiveTranscription.apply(this, arguments);
@@ -5326,11 +5349,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5326
5349
  var renderInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5327
5350
  var main = renderInfo.main,
5328
5351
  content = renderInfo.content;
5329
- var _this$mediaProperties3 = this.mediaProperties,
5330
- mediaDirection = _this$mediaProperties3.mediaDirection,
5331
- remoteShare = _this$mediaProperties3.remoteShare,
5332
- remoteVideoTrack = _this$mediaProperties3.remoteVideoTrack;
5333
- var layoutInfo = (0, _lodash.cloneDeep)(this.lastVideoLayoutInfo);
5352
+ var _this$mediaProperties5 = this.mediaProperties,
5353
+ mediaDirection = _this$mediaProperties5.mediaDirection,
5354
+ remoteShare = _this$mediaProperties5.remoteShare,
5355
+ remoteVideoTrack = _this$mediaProperties5.remoteVideoTrack;
5356
+ var layoutInfo = (0, _cloneDeep2.default)(this.lastVideoLayoutInfo);
5334
5357
 
5335
5358
  // TODO: We need a real time value for Audio, Video and Share send indicator
5336
5359
  if (mediaDirection.receiveVideo !== true || !remoteVideoTrack) {
@@ -5370,11 +5393,11 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5370
5393
  return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> unable to send renderInfo for content, you are not receiving remote share');
5371
5394
  }
5372
5395
  }
5373
- if ((0, _lodash.isEqual)(layoutInfo, this.lastVideoLayoutInfo)) {
5396
+ if ((0, _isEqual2.default)(layoutInfo, this.lastVideoLayoutInfo)) {
5374
5397
  // nothing changed, no need to send any request
5375
5398
  return _promise.default.resolve();
5376
5399
  }
5377
- this.lastVideoLayoutInfo = (0, _lodash.cloneDeep)(layoutInfo);
5400
+ this.lastVideoLayoutInfo = (0, _cloneDeep2.default)(layoutInfo);
5378
5401
  this.locusInfo.once(_constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_LAYOUT_UPDATED, function (envelope) {
5379
5402
  _triggerProxy.default.trigger(_this52, {
5380
5403
  file: 'meeting/index',
@@ -5517,10 +5540,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5517
5540
  }
5518
5541
 
5519
5542
  // Determine the direction of our current media
5520
- var _this$mediaProperties4 = this.mediaProperties.mediaDirection,
5521
- receiveAudio = _this$mediaProperties4.receiveAudio,
5522
- receiveVideo = _this$mediaProperties4.receiveVideo,
5523
- sendVideo = _this$mediaProperties4.sendVideo;
5543
+ var _this$mediaProperties6 = this.mediaProperties.mediaDirection,
5544
+ receiveAudio = _this$mediaProperties6.receiveAudio,
5545
+ receiveVideo = _this$mediaProperties6.receiveVideo,
5546
+ sendVideo = _this$mediaProperties6.sendVideo;
5524
5547
  return (sendVideo ? this.setLocalVideoQuality(level) : _promise.default.resolve()).then(function () {
5525
5548
  return receiveAudio || receiveVideo ? _this54.setRemoteQualityLevel(level) : _promise.default.resolve();
5526
5549
  }).catch(function (error) {