@webex/plugin-meetings 3.0.0-beta.154 → 3.0.0-beta.156

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.
@@ -69,6 +69,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
69
69
  this.breakoutRequest = new _request.default({
70
70
  webex: this.webex
71
71
  });
72
+ this.breakoutRosterLocus = null;
72
73
  },
73
74
  /**
74
75
  * Joins the breakout session
@@ -160,6 +161,20 @@ var Breakout = _webexCore.WebexPlugin.extend({
160
161
  parent: this.webex
161
162
  });
162
163
  },
164
+ /**
165
+ * check sequence and determine whether to update the new roster or not
166
+ * @param {Object} locus Locus object
167
+ * @returns {Boolean}
168
+ */
169
+ isNeedHandleRoster: function isNeedHandleRoster(locus) {
170
+ var _this$breakoutRosterL, _this$breakoutRosterL2, _this$breakoutRosterL3, _locus$sequence, _locus$sequence$entri;
171
+ if (!((_this$breakoutRosterL = this.breakoutRosterLocus) !== null && _this$breakoutRosterL !== void 0 && (_this$breakoutRosterL2 = _this$breakoutRosterL.sequence) !== null && _this$breakoutRosterL2 !== void 0 && (_this$breakoutRosterL3 = _this$breakoutRosterL2.entries) !== null && _this$breakoutRosterL3 !== void 0 && _this$breakoutRosterL3.length) || !(locus !== null && locus !== void 0 && (_locus$sequence = locus.sequence) !== null && _locus$sequence !== void 0 && (_locus$sequence$entri = _locus$sequence.entries) !== null && _locus$sequence$entri !== void 0 && _locus$sequence$entri.length)) {
172
+ return true;
173
+ }
174
+ var prevSequence = this.breakoutRosterLocus.sequence.entries[0];
175
+ var currentSequence = locus.sequence.entries[0];
176
+ return currentSequence > prevSequence;
177
+ },
163
178
  /**
164
179
  * Parses the participants from the locus object
165
180
  * @param {Object} locus Locus object
@@ -169,6 +184,10 @@ var Breakout = _webexCore.WebexPlugin.extend({
169
184
  if (!this.members) {
170
185
  this.initMembers();
171
186
  }
187
+ if (!this.isNeedHandleRoster(locus)) {
188
+ return;
189
+ }
190
+ this.breakoutRosterLocus = locus;
172
191
  this.members.locusParticipantsUpdate(locus);
173
192
  },
174
193
  /**
@@ -186,7 +205,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
186
205
  sessionId: this.sessionId
187
206
  });
188
207
  },
189
- version: "3.0.0-beta.154"
208
+ version: "3.0.0-beta.156"
190
209
  });
191
210
  var _default = Breakout;
192
211
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","derived","isMain","cache","deps","fn","initialize","webex","join","breakoutMoveId","uuid","v4","deviceUrl","internal","device","meetingId","collection","parent","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","request","method","HTTP_VERBS","POST","uri","body","result","onBreakoutMoveResponse","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","initMembers","members","Members","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n requestedLastModifiedTime: 'string',\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n /**\n * initializer for the Breakout class\n * @returns {void}\n */\n initialize() {\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest({currentSession: this, meeting, breakoutMoveId});\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse({currentSession: this, meeting, breakoutMoveId});\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * inits the members object\n * @returns {void}\n */\n initMembers() {\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n this.members = new Members(\n {\n meeting,\n },\n {parent: this.webex}\n );\n },\n\n /**\n * Parses the participants from the locus object\n * @param {Object} locus Locus object\n * @returns {void}\n */\n parseRoster(locus) {\n if (!this.members) {\n this.initMembers();\n }\n\n this.members.locusParticipantsUpdate(locus);\n },\n\n /**\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","derived","isMain","cache","deps","fn","initialize","webex","breakoutRosterLocus","join","breakoutMoveId","uuid","v4","deviceUrl","internal","device","meetingId","collection","parent","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","request","method","HTTP_VERBS","POST","uri","body","result","onBreakoutMoveResponse","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","initMembers","members","Members","isNeedHandleRoster","locus","sequence","entries","length","prevSequence","currentSequence","parseRoster","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n requestedLastModifiedTime: 'string',\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n /**\n * initializer for the Breakout class\n * @returns {void}\n */\n initialize() {\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n this.breakoutRosterLocus = null;\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest({currentSession: this, meeting, breakoutMoveId});\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse({currentSession: this, meeting, breakoutMoveId});\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * inits the members object\n * @returns {void}\n */\n initMembers() {\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n this.members = new Members(\n {\n meeting,\n },\n {parent: this.webex}\n );\n },\n\n /**\n * check sequence and determine whether to update the new roster or not\n * @param {Object} locus Locus object\n * @returns {Boolean}\n */\n isNeedHandleRoster(locus: any) {\n if (!this.breakoutRosterLocus?.sequence?.entries?.length || !locus?.sequence?.entries?.length) {\n return true;\n }\n const prevSequence = this.breakoutRosterLocus.sequence.entries[0];\n const currentSequence = locus.sequence.entries[0];\n\n return currentSequence > prevSequence;\n },\n /**\n * Parses the participants from the locus object\n * @param {Object} locus Locus object\n * @returns {void}\n */\n parseRoster(locus) {\n if (!this.members) {\n this.initMembers();\n }\n if (!this.isNeedHandleRoster(locus)) {\n return;\n }\n this.breakoutRosterLocus = locus;\n this.members.locusParticipantsUpdate(locus);\n },\n\n /**\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
@@ -1039,7 +1039,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1039
1039
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1040
1040
  }
1041
1041
  },
1042
- version: "3.0.0-beta.154"
1042
+ version: "3.0.0-beta.156"
1043
1043
  });
1044
1044
  var _default = Breakouts;
1045
1045
  exports.default = _default;
@@ -781,6 +781,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
781
781
  numLiveSources: numLiveSources,
782
782
  mediaContent: mediaContent
783
783
  });
784
+ if (mediaContent === _internalMediaCore.MediaContent.Main) {
785
+ _this.mediaRequestManagers.video.setNumCurrentSources(numTotalSources, numLiveSources);
786
+ }
784
787
  });
785
788
  _this.mediaProperties.webrtcMediaConnection.on(_internalMediaCore.Event.AUDIO_SOURCES_COUNT_CHANGED, function (numTotalSources, numLiveSources, mediaContent) {
786
789
  _triggerProxy.default.trigger((0, _assertThisInitialized2.default)(_this), {
@@ -1099,7 +1102,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1099
1102
  }, {
1100
1103
  // @ts-ignore - config coming from registerPlugin
1101
1104
  degradationPreferences: _this.config.degradationPreferences,
1102
- kind: 'audio'
1105
+ kind: 'audio',
1106
+ trimRequestsToNumOfSources: false
1103
1107
  }),
1104
1108
  video: new _mediaRequestManager.MediaRequestManager(function (mediaRequests) {
1105
1109
  if (!_this.mediaProperties.webrtcMediaConnection) {
@@ -1110,7 +1114,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1110
1114
  }, {
1111
1115
  // @ts-ignore - config coming from registerPlugin
1112
1116
  degradationPreferences: _this.config.degradationPreferences,
1113
- kind: 'video'
1117
+ kind: 'video',
1118
+ trimRequestsToNumOfSources: true
1114
1119
  }),
1115
1120
  screenShareAudio: new _mediaRequestManager.MediaRequestManager(function (mediaRequests) {
1116
1121
  if (!_this.mediaProperties.webrtcMediaConnection) {
@@ -1121,7 +1126,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1121
1126
  }, {
1122
1127
  // @ts-ignore - config coming from registerPlugin
1123
1128
  degradationPreferences: _this.config.degradationPreferences,
1124
- kind: 'audio'
1129
+ kind: 'audio',
1130
+ trimRequestsToNumOfSources: false
1125
1131
  }),
1126
1132
  screenShareVideo: new _mediaRequestManager.MediaRequestManager(function (mediaRequests) {
1127
1133
  if (!_this.mediaProperties.webrtcMediaConnection) {
@@ -1132,7 +1138,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1132
1138
  }, {
1133
1139
  // @ts-ignore - config coming from registerPlugin
1134
1140
  degradationPreferences: _this.config.degradationPreferences,
1135
- kind: 'video'
1141
+ kind: 'video',
1142
+ trimRequestsToNumOfSources: false
1136
1143
  })
1137
1144
  };
1138
1145
  /**
@@ -4810,8 +4817,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4810
4817
  }).then(function () {
4811
4818
  return (0, _mediaHelpers.getDevices)().then(function (devices) {
4812
4819
  _util.default.handleDeviceLogging(devices);
4813
- });
4814
- }).then(function () {
4820
+ }).catch(function () {});
4821
+ } // getDevices may fail if we don't have browser permissions, that's ok, we still can have a media connection
4822
+ ).then(function () {
4815
4823
  _this35.handleMediaLogging(_this35.mediaProperties);
4816
4824
  _loggerProxy.default.logger.info("".concat(LOG_HEADER, " media connection created"));
4817
4825