@webex/plugin-meetings 3.6.0-next.1 → 3.6.0-next.3

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.
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
62
62
  updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
63
63
  this.set('canManageWebcast', canManageWebcast);
64
64
  },
65
- version: "3.6.0-next.1"
65
+ version: "3.6.0-next.3"
66
66
  });
67
67
  var _default = exports.default = Webinar;
68
68
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.6.0-next.1",
46
+ "@webex/plugin-meetings": "3.6.0-next.3",
47
47
  "@webex/plugin-rooms": "3.5.0-next.23",
48
48
  "@webex/test-helper-chai": "3.5.0-next.21",
49
49
  "@webex/test-helper-mocha": "3.5.0-next.21",
@@ -70,7 +70,7 @@
70
70
  "@webex/internal-plugin-metrics": "3.5.0-next.21",
71
71
  "@webex/internal-plugin-support": "3.5.0-next.23",
72
72
  "@webex/internal-plugin-user": "3.5.0-next.21",
73
- "@webex/internal-plugin-voicea": "3.6.0-next.1",
73
+ "@webex/internal-plugin-voicea": "3.6.0-next.3",
74
74
  "@webex/media-helpers": "3.5.0-next.22",
75
75
  "@webex/plugin-people": "3.5.0-next.21",
76
76
  "@webex/plugin-rooms": "3.5.0-next.23",
@@ -91,5 +91,5 @@
91
91
  "//": [
92
92
  "TODO: upgrade jwt-decode when moving to node 18"
93
93
  ],
94
- "version": "3.6.0-next.1"
94
+ "version": "3.6.0-next.3"
95
95
  }
@@ -2739,6 +2739,9 @@ export default class Meeting extends StatelessWebexPlugin {
2739
2739
  newShareStatus = SHARE_STATUS.NO_SHARE;
2740
2740
  }
2741
2741
 
2742
+ LoggerProxy.logger.info(
2743
+ `Meeting:index#setUpLocusInfoMediaInactiveListener --> this.shareStatus=${this.shareStatus} newShareStatus=${newShareStatus}`
2744
+ );
2742
2745
  if (newShareStatus !== this.shareStatus) {
2743
2746
  const oldShareStatus = this.shareStatus;
2744
2747
 
@@ -8182,6 +8185,9 @@ export default class Meeting extends StatelessWebexPlugin {
8182
8185
  * @returns {undefined}
8183
8186
  */
8184
8187
  private handleShareAudioStreamEnded = async () => {
8188
+ LoggerProxy.logger.info(
8189
+ `Meeting:index#handleShareAudioStreamEnded --> audio share stream ended`
8190
+ );
8185
8191
  // current share audio stream has ended, but there might be an active
8186
8192
  // share video stream. we only leave from wireless share if share has
8187
8193
  // completely ended, which means no share audio or video streams active
@@ -8224,6 +8230,9 @@ export default class Meeting extends StatelessWebexPlugin {
8224
8230
  * @returns {undefined}
8225
8231
  */
8226
8232
  private handleShareVideoStreamEnded = async () => {
8233
+ LoggerProxy.logger.info(
8234
+ `Meeting:index#handleShareVideoStreamEnded --> video share stream ended`
8235
+ );
8227
8236
  // current share video stream has ended, but there might be an active
8228
8237
  // share audio stream. we only leave from wireless share if share has
8229
8238
  // completely ended, which means no share audio or video streams active
@@ -8712,6 +8721,9 @@ export default class Meeting extends StatelessWebexPlugin {
8712
8721
  * @returns {Promise}
8713
8722
  */
8714
8723
  async publishStreams(streams: LocalStreams): Promise<void> {
8724
+ LoggerProxy.logger.info(
8725
+ `Meeting:index#publishStreams --> called with: ${JSON.stringify(streams)}`
8726
+ );
8715
8727
  this.checkMediaConnection();
8716
8728
  if (
8717
8729
  !streams.microphone &&
@@ -8723,15 +8735,19 @@ export default class Meeting extends StatelessWebexPlugin {
8723
8735
  return;
8724
8736
  }
8725
8737
 
8726
- if (
8727
- streams?.microphone?.readyState === 'ended' ||
8728
- streams?.camera?.readyState === 'ended' ||
8729
- streams?.screenShare?.audio?.readyState === 'ended' ||
8730
- streams?.screenShare?.video?.readyState === 'ended'
8731
- ) {
8732
- throw new Error(
8733
- `Attempted to publish stream with ended readyState, correlationId=${this.correlationId}`
8734
- );
8738
+ const streamChecks = [
8739
+ {stream: streams?.microphone, name: 'microphone'},
8740
+ {stream: streams?.camera, name: 'camera'},
8741
+ {stream: streams?.screenShare?.audio, name: 'screenShare audio'},
8742
+ {stream: streams?.screenShare?.video, name: 'screenShare video'},
8743
+ ];
8744
+
8745
+ for (const {stream, name} of streamChecks) {
8746
+ if (stream?.readyState === 'ended') {
8747
+ throw new Error(
8748
+ `Attempted to publish ${name} stream with ended readyState, correlationId=${this.correlationId}`
8749
+ );
8750
+ }
8735
8751
  }
8736
8752
 
8737
8753
  let floorRequestNeeded = false;
@@ -8793,6 +8809,9 @@ export default class Meeting extends StatelessWebexPlugin {
8793
8809
  * @returns {Promise}
8794
8810
  */
8795
8811
  async unpublishStreams(streams: LocalStream[]): Promise<void> {
8812
+ LoggerProxy.logger.info(
8813
+ `Meeting:index#unpublishStreams --> called with: ${JSON.stringify(streams)}`
8814
+ );
8796
8815
  this.checkMediaConnection();
8797
8816
 
8798
8817
  const promises = [];
@@ -3991,6 +3991,7 @@ describe('plugin-meetings', () => {
3991
3991
  assert.notCalled(
3992
3992
  meeting.sendSlotManager.getSlot(MediaType.AudioMain).publishStream
3993
3993
  );
3994
+ assert.throws(meeting.publishStreams(localStreams), `Attempted to publish microphone stream with ended readyState, correlationId=${meeting.correlationId}`);
3994
3995
  } else {
3995
3996
  assert.calledOnceWithExactly(
3996
3997
  meeting.sendSlotManager.getSlot(MediaType.AudioMain).publishStream,
@@ -4003,6 +4004,7 @@ describe('plugin-meetings', () => {
4003
4004
  assert.notCalled(
4004
4005
  meeting.sendSlotManager.getSlot(MediaType.VideoMain).publishStream
4005
4006
  );
4007
+ assert.throws(meeting.publishStreams(localStreams), `Attempted to publish camera stream with ended readyState, correlationId=${meeting.correlationId}`);
4006
4008
  } else {
4007
4009
  assert.calledOnceWithExactly(
4008
4010
  meeting.sendSlotManager.getSlot(MediaType.VideoMain).publishStream,
@@ -4015,6 +4017,7 @@ describe('plugin-meetings', () => {
4015
4017
  assert.notCalled(
4016
4018
  meeting.sendSlotManager.getSlot(MediaType.AudioSlides).publishStream
4017
4019
  );
4020
+ assert.throws(meeting.publishStreams(localStreams), `Attempted to publish screenShare audio stream with ended readyState, correlationId=${meeting.correlationId}`);
4018
4021
  } else {
4019
4022
  assert.calledOnceWithExactly(
4020
4023
  meeting.sendSlotManager.getSlot(MediaType.AudioSlides).publishStream,
@@ -4027,6 +4030,7 @@ describe('plugin-meetings', () => {
4027
4030
  assert.notCalled(
4028
4031
  meeting.sendSlotManager.getSlot(MediaType.VideoSlides).publishStream
4029
4032
  );
4033
+ assert.throws(meeting.publishStreams(localStreams), `Attempted to publish screenShare video stream with ended readyState, correlationId=${meeting.correlationId}`);
4030
4034
  } else {
4031
4035
  assert.calledOnceWithExactly(
4032
4036
  meeting.sendSlotManager.getSlot(MediaType.VideoSlides).publishStream,