@webex/plugin-meetings 3.3.1 → 3.4.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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +7 -2
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +11 -4
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/selfUtils.js +0 -5
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +70 -15
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/index.js +12 -0
- package/dist/media/index.js.map +1 -1
- package/dist/meeting/connectionStateHandler.js +67 -0
- package/dist/meeting/connectionStateHandler.js.map +1 -0
- package/dist/meeting/index.js +552 -357
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +7 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +6 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +1 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +4 -4
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +2 -2
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +17 -17
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +16 -16
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +1 -1
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +37 -33
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +8 -0
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/util.js +3 -2
- package/dist/meetings/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +57 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +1 -1
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/reachability/clusterReachability.js +108 -53
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +415 -56
- package/dist/reachability/index.js.map +1 -1
- package/dist/types/constants.d.ts +11 -3
- package/dist/types/media/MediaConnectionAwaiter.d.ts +24 -4
- package/dist/types/meeting/connectionStateHandler.d.ts +30 -0
- package/dist/types/meeting/index.d.ts +27 -7
- package/dist/types/meeting/locusMediaRequest.d.ts +2 -0
- package/dist/types/meeting-info/index.d.ts +3 -2
- package/dist/types/meeting-info/meeting-info-v2.d.ts +3 -2
- package/dist/types/meeting-info/util.d.ts +5 -4
- package/dist/types/meeting-info/utilv2.d.ts +3 -2
- package/dist/types/meetings/collection.d.ts +3 -2
- package/dist/types/meetings/index.d.ts +4 -3
- package/dist/types/meetings/meetings.types.d.ts +9 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/metrics/index.d.ts +15 -0
- package/dist/types/reachability/clusterReachability.d.ts +31 -3
- package/dist/types/reachability/index.d.ts +93 -2
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/breakouts/index.ts +7 -1
- package/src/constants.ts +13 -17
- package/src/locus-info/selfUtils.ts +0 -5
- package/src/media/MediaConnectionAwaiter.ts +89 -14
- package/src/media/index.ts +13 -0
- package/src/meeting/connectionStateHandler.ts +65 -0
- package/src/meeting/index.ts +526 -292
- package/src/meeting/locusMediaRequest.ts +5 -0
- package/src/meeting/muteState.ts +6 -1
- package/src/meeting/util.ts +1 -0
- package/src/meeting-info/index.ts +9 -6
- package/src/meeting-info/meeting-info-v2.ts +4 -4
- package/src/meeting-info/util.ts +23 -28
- package/src/meeting-info/utilv2.ts +18 -24
- package/src/meetings/collection.ts +3 -3
- package/src/meetings/index.ts +39 -40
- package/src/meetings/meetings.types.ts +11 -0
- package/src/meetings/util.ts +5 -4
- package/src/metrics/constants.ts +1 -0
- package/src/metrics/index.ts +44 -0
- package/src/personal-meeting-room/index.ts +2 -2
- package/src/reachability/clusterReachability.ts +86 -25
- package/src/reachability/index.ts +316 -27
- package/test/unit/spec/breakouts/index.ts +51 -32
- package/test/unit/spec/locus-info/selfUtils.js +25 -23
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +131 -32
- package/test/unit/spec/media/index.ts +42 -27
- package/test/unit/spec/meeting/connectionStateHandler.ts +102 -0
- package/test/unit/spec/meeting/index.js +758 -179
- package/test/unit/spec/meeting/locusMediaRequest.ts +7 -0
- package/test/unit/spec/meeting/muteState.js +24 -0
- package/test/unit/spec/meeting-info/index.js +4 -4
- package/test/unit/spec/meeting-info/meetinginfov2.js +24 -28
- package/test/unit/spec/meeting-info/request.js +2 -2
- package/test/unit/spec/meeting-info/utilv2.js +41 -49
- package/test/unit/spec/meetings/index.js +14 -0
- package/test/unit/spec/metrics/index.js +126 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +2 -2
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -2
- package/test/unit/spec/reachability/clusterReachability.ts +116 -22
- package/test/unit/spec/reachability/index.ts +1153 -84
- package/test/unit/spec/rtcMetrics/index.ts +1 -0
- package/dist/mediaQualityMetrics/config.js +0 -321
- package/dist/mediaQualityMetrics/config.js.map +0 -1
- package/dist/statsAnalyzer/global.js +0 -44
- package/dist/statsAnalyzer/global.js.map +0 -1
- package/dist/statsAnalyzer/index.js +0 -1072
- package/dist/statsAnalyzer/index.js.map +0 -1
- package/dist/statsAnalyzer/mqaUtil.js +0 -368
- package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
- package/dist/types/mediaQualityMetrics/config.d.ts +0 -247
- package/dist/types/statsAnalyzer/global.d.ts +0 -36
- package/dist/types/statsAnalyzer/index.d.ts +0 -217
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
- package/src/mediaQualityMetrics/config.ts +0 -255
- package/src/statsAnalyzer/global.ts +0 -37
- package/src/statsAnalyzer/index.ts +0 -1318
- package/src/statsAnalyzer/mqaUtil.ts +0 -463
- package/test/unit/spec/stats-analyzer/index.js +0 -1819
package/dist/breakouts/index.js
CHANGED
|
@@ -174,7 +174,6 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
174
174
|
_this.triggerReturnToMainEvent(breakout);
|
|
175
175
|
});
|
|
176
176
|
this.listenToCurrentSessionTypeChange();
|
|
177
|
-
this.listenToBroadcastMessages();
|
|
178
177
|
this.listenToBreakoutRosters();
|
|
179
178
|
this.listenToBreakoutHelp();
|
|
180
179
|
// @ts-ignore
|
|
@@ -188,6 +187,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
188
187
|
*/
|
|
189
188
|
cleanUp: function cleanUp() {
|
|
190
189
|
this.stopListening();
|
|
190
|
+
this.hasSubscribedToMessage = undefined;
|
|
191
191
|
},
|
|
192
192
|
/**
|
|
193
193
|
* Update the current locus url of the meeting
|
|
@@ -196,6 +196,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
196
196
|
*/
|
|
197
197
|
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
198
198
|
this.set('locusUrl', locusUrl);
|
|
199
|
+
this.listenToBroadcastMessages();
|
|
199
200
|
var isInMainSession = this.isInMainSession,
|
|
200
201
|
mainLocusUrl = this.mainLocusUrl;
|
|
201
202
|
if (isInMainSession || !mainLocusUrl) {
|
|
@@ -273,6 +274,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
273
274
|
*/
|
|
274
275
|
listenToBroadcastMessages: function listenToBroadcastMessages() {
|
|
275
276
|
var _this4 = this;
|
|
277
|
+
if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
276
280
|
this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {
|
|
277
281
|
var _event$data = event.data,
|
|
278
282
|
senderUserId = _event$data.senderUserId,
|
|
@@ -288,6 +292,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
288
292
|
sessionId: _this4.currentBreakoutSession.sessionId
|
|
289
293
|
});
|
|
290
294
|
});
|
|
295
|
+
this.hasSubscribedToMessage = true;
|
|
291
296
|
},
|
|
292
297
|
/**
|
|
293
298
|
* Sets up a listener for roster messags from mecury
|
|
@@ -1041,7 +1046,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1041
1046
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1042
1047
|
}
|
|
1043
1048
|
},
|
|
1044
|
-
version: "3.
|
|
1049
|
+
version: "3.4.0"
|
|
1045
1050
|
});
|
|
1046
1051
|
var _default = exports.default = Breakouts;
|
|
1047
1052
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBroadcastMessages","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","locusUrlUpdate","set","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_callee$","_context","prev","next","undefined","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","create","_this9","_callee2","_callee2$","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this10","_callee3","_callee3$","_context3","action","ACTION","DELETE","start","_arguments","_this11","_callee4","_callee4$","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this12","_callee5","_callee5$","_context5","CLOSE","update","unlockEdit","_this13","_callee6","_this13$editLock","_callee6$","_context6","getBreakout","_this14","_callee7","_breakout$body","_breakout$body$editlo","_callee7$","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this15","_callee8","_callee8$","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this16","_callee9","_breakout$body2","_callee9$","_context9","_this17","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this18","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this19","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBroadcastMessages();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_lodash","_loggerProxy","_interopRequireDefault","_constants","_breakout","_collection","_request","_events","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Breakouts","WebexPlugin","extend","namespace","MEETINGS","breakoutRequest","BreakoutRequest","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","hasBreakoutPreAssignments","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","breakoutServiceUrl","mainLocusUrl","groups","manageGroups","preAssignments","editLock","intervalID","meetingId","canManageBreakouts","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","_this$manageGroups","CLOSED","id","breakoutStatus","_this$groups","_this$groups$","shouldQueryPreAssignments","initialize","_this","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","queryPreAssignments","debouncedQueryRosters","debounce","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","hasSubscribedToMessage","undefined","locusUrlUpdate","set","listenToBroadcastMessages","updateCanManageBreakouts","breakoutServiceUrlUpdate","concat","_this2","request","uri","qs","btoa","then","result","rosters","body","_ref","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","_locus$controls","_locus$controls$break","controls","session","get","parseRoster","_this3","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","_this4","internal","llm","isConnected","event","_event$data","data","senderUserId","sentTime","message","MESSAGE","_this5","mercury","_this6","_event$data2","participant","ASK_FOR_HELP","isBreakoutInProgress","_this$groups2","_this$groups2$","currentStatus","isBreakoutIClosing","_this$groups3","_this$groups3$","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED","ASSIGNED_CURRENT","REQUESTED","clearBreakouts","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","newMetrics","submitClientEvent","bind","updateBreakoutSessions","payload","_this7","breakoutSessions","state","requestedLastModifiedTime","modifiedAt","_values","reset","getMainSession","mainSession","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","_promise","reject","toggleBreakout","enable","_this8","_asyncToGenerator2","_regenerator","mark","_callee","info","wrap","_callee$","_context","prev","next","sent","doToggleBreakout","stop","token","editlock","PUT","_setManageGroups","breakoutInfo","_breakoutInfo$body","create","_this9","_callee2","_callee2$","_context2","boServiceErrorHandler","_clearEditLockInfo","abrupt","clearSessions","_this10","_callee3","_callee3$","_context3","action","ACTION","DELETE","start","_arguments","_this11","_callee4","_callee4$","_context4","START","allowToJoinLater","refresh","end","_arguments2","_this12","_callee5","_callee5$","_context5","CLOSE","update","unlockEdit","_this13","_callee6","_this13$editLock","_callee6$","_context6","getBreakout","_this14","_callee7","_breakout$body","_breakout$body$editlo","_callee7$","_context7","GET","keepEditLockAlive","enableAndLockBreakout","_this15","_callee8","_callee8$","_context8","lockBreakout","hasBreakoutLocked","EDIT_LOCK_STATUS","LOCKED","_this16","_callee9","_breakout$body2","_callee9$","_context9","_this17","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","_this18","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","_this19","_result$body","PRE_ASSIGNMENTS_UPDATE","dynamicAssign","updatedSessions","participants","targetState","requested","ASK_RETURN_TO_MAIN","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS, HTTP_VERBS, _ID_} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\nimport {boServiceErrorHandler, isSessionTypeChangedFromSessionToMain} from './utils';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n breakoutRequest: BreakoutRequest,\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n hasBreakoutPreAssignments: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n breakoutServiceUrl: 'string', // the current breakout resource url\n mainLocusUrl: 'string', // the locus url of the main session\n groups: 'array', // appears when create breakouts\n manageGroups: 'array', // appears when manage breakouts\n preAssignments: 'array', // appears when getPreAssignments info hasBreakoutPreAssignments = true\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\n canManageBreakouts: 'boolean', // appear the ability to manage breakouts\n },\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n cache: false,\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n isActiveBreakout: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType', 'status'],\n /**\n * Returns true if the breakout status is active\n * @returns {boolean}\n */\n fn() {\n return (\n this.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n (this.status === BREAKOUTS.STATUS.OPEN || this.status === BREAKOUTS.STATUS.CLOSING)\n );\n },\n },\n breakoutGroupId: {\n cache: false,\n deps: ['manageGroups'],\n /**\n * Returns the active group id\n * @returns {boolean}\n */\n fn() {\n if (this.manageGroups?.length) {\n return this.manageGroups[0].status !== BREAKOUTS.STATUS.CLOSED\n ? this.manageGroups[0].id\n : '';\n }\n\n return '';\n },\n },\n breakoutStatus: {\n cache: true,\n deps: ['isInMainSession', 'status', 'groups'],\n /**\n * Returns the breakout status\n * @returns {boolean}\n */\n fn() {\n return this.isInMainSession ? this.groups?.[0]?.status : this.status;\n },\n },\n shouldQueryPreAssignments: {\n cache: false,\n deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],\n /**\n * Returns should query preAssignments or not\n * @returns {boolean}\n */\n fn() {\n return !!(\n this.canManageBreakouts &&\n this.enableBreakoutSession &&\n this.hasBreakoutPreAssignments\n );\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:breakoutStatus', () => {\n if (this.breakoutStatus === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.listenTo(this, 'change:shouldQueryPreAssignments', () => {\n if (this.shouldQueryPreAssignments && !this.preAssignments) {\n this.queryPreAssignments();\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', (breakout) => {\n this.debouncedQueryRosters();\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', (breakout) => {\n this.triggerReturnToMainEvent(breakout);\n });\n this.listenToCurrentSessionTypeChange();\n this.listenToBreakoutRosters();\n this.listenToBreakoutHelp();\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n this.hasSubscribedToMessage = undefined;\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n this.listenToBroadcastMessages();\n const {isInMainSession, mainLocusUrl} = this;\n if (isInMainSession || !mainLocusUrl) {\n this.set('mainLocusUrl', locusUrl);\n }\n },\n\n /**\n * Update whether self is moderator/cohost or not\n * @param {boolean} canManageBreakouts\n * @returns {void}\n */\n updateCanManageBreakouts(canManageBreakouts) {\n this.set('canManageBreakouts', canManageBreakouts);\n },\n\n /**\n * Update the current breakout resource url\n * @param {string} breakoutServiceUrl\n * @returns {void}\n */\n breakoutServiceUrlUpdate(breakoutServiceUrl) {\n this.set('breakoutServiceUrl', `${breakoutServiceUrl}/breakout/`);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters?.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n /**\n *Sets up listener for currentBreakoutSession sessionType changed\n * @returns {void}\n */\n listenToCurrentSessionTypeChange(): void {\n this.listenTo(\n this.currentBreakoutSession,\n 'change:sessionType',\n (currentBreakoutSession, sessionType) => {\n if (isSessionTypeChangedFromSessionToMain(currentBreakoutSession, sessionType)) {\n this.trigger(BREAKOUTS.EVENTS.LEAVE_BREAKOUT);\n }\n }\n );\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n if (!this.webex.internal.llm.isConnected() || this.hasSubscribedToMessage) {\n return;\n }\n\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n this.hasSubscribedToMessage = true;\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Sets up a listener for ask help notify from mecury\n * @returns {void}\n */\n listenToBreakoutHelp() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.help', (event) => {\n const {\n data: {participant, sessionId},\n } = event;\n this.trigger(BREAKOUTS.EVENTS.ASK_FOR_HELP, {participant, sessionId});\n });\n },\n\n /**\n * get current breakout is in progress or not\n * @returns {boolean}\n */\n isBreakoutInProgress() {\n const currentStatus = this.groups?.[0]?.status || this.status;\n\n return currentStatus === BREAKOUTS.STATUS.OPEN || currentStatus === BREAKOUTS.STATUS.CLOSING;\n },\n\n /**\n * get current breakout is in closing or not\n * @returns {boolean}\n */\n isBreakoutIClosing() {\n return (this.groups?.[0]?.status || this.status) === BREAKOUTS.STATUS.CLOSING;\n },\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n // These values are set manually so they are unset when they are not included in params\n this.set('groups', params.groups);\n this.set('startTime', params.startTime);\n this.set('status', params.status);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n if (!this.isBreakoutInProgress()) {\n this.clearBreakouts();\n }\n\n if (\n this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId ||\n this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId\n ) {\n // should report joined session changed\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n breakoutEvent.onBreakoutJoinResponse(\n {\n currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\n },\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n }\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n if (this.isBreakoutIClosing()) {\n // fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or\n // only the MAIN session info here, if just update it, will miss the breakout roster info during\n // count down to end breakouts\n return;\n }\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n\n if (state === BREAKOUTS.SESSION_STATES.REQUESTED) {\n breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;\n }\n });\n });\n }\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n /**\n * clear breakouts collection\n * @returns {void}\n */\n clearBreakouts() {\n if (this.breakouts.length > 0) {\n this.breakouts.reset();\n }\n },\n /**\n * get main session\n * @returns {Breakout}\n */\n getMainSession() {\n if (this.isInMainSession) {\n return this.currentBreakoutSession;\n }\n\n const mainSession = this.breakouts.filter((breakout) => breakout.isMain)[0];\n if (!mainSession) {\n throw new Error('no main session found');\n }\n\n return mainSession;\n },\n /**\n * Host/CoHost ask all participants return to main session\n * @returns {Promise}\n */\n askAllToReturn() {\n const mainSession = this.getMainSession();\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/requestMove`,\n body: {\n groupId: mainSession.groupId,\n sessionId: mainSession.sessionId,\n },\n });\n },\n\n /**\n * Broadcast message to all breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n const {breakoutGroupId} = this;\n if (!breakoutGroupId) {\n throw new Error('Cannot broadcast, no breakout session found');\n }\n\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: breakoutGroupId,\n });\n },\n /**\n * Make enable breakout resource\n * @returns {Promise}\n */\n enableBreakouts() {\n if (this.breakoutServiceUrl) {\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: this.breakoutServiceUrl,\n body: {\n locusUrl: this.locusUrl,\n },\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#touchBreakout --> Error provisioning error ${err}`\n );\n throw err;\n });\n }\n\n return Promise.reject(new Error(`enableBreakouts: the breakoutServiceUrl is empty`));\n },\n\n /**\n * Make the meeting enable or disable breakout session\n * @param {boolean} enable\n * @returns {Promise}\n */\n async toggleBreakout(enable) {\n if (this.enableBreakoutSession === undefined) {\n const info = await this.enableBreakouts();\n // first time enable, set the initial data\n this.updateBreakout(info?.body);\n if (!enable) {\n await this.doToggleBreakout(enable);\n }\n } else {\n await this.doToggleBreakout(enable);\n }\n },\n\n /**\n * do toggle meeting breakout session enable or disable\n * @param {boolean} enable\n * @returns {Promise}\n */\n doToggleBreakout(enable) {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{enableBreakoutSession: enable},\n };\n\n // @ts-ignore\n return this.webex.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * set groups to manageGroups prop\n * @param {Object} breakoutInfo -- breakout groups\n * @returns {void}\n */\n _setManageGroups(breakoutInfo) {\n if (breakoutInfo?.body?.groups) {\n this.set('manageGroups', breakoutInfo.body.groups);\n }\n },\n\n /**\n * Create new breakout sessions\n * @param {object} params -- breakout session group\n * @returns {Promise}\n */\n async create(params) {\n const payload = {...params};\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [payload]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#create'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return breakoutInfo;\n },\n\n /**\n * Delete all breakout sessions\n * @returns {Promise}\n */\n async clearSessions() {\n const body = {\n ...(this.editLock && !!this.editLock.token ? {editlock: {token: this.editLock.token}} : {}),\n ...{groups: [{action: BREAKOUTS.ACTION.DELETE}]},\n };\n // @ts-ignore\n const breakoutInfo = await this.webex\n .request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#clearSessions'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#start'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n async end(params = {}) {\n const {delayCloseTime, breakoutGroupId: id} = this;\n const action = BREAKOUTS.ACTION.CLOSE;\n const payload = {\n id,\n action,\n delayCloseTime,\n ...params,\n };\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#end'));\n });\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * Host or cohost update breakout sessions\n * @param {Object} params\n * @param {String} params.id\n * @param {Boolean} unlockEdit\n * @returns {Promise}\n */\n async update(params: {id: string}, unlockEdit?: boolean) {\n if (!params.id) {\n return Promise.reject(new Error('Missing breakout group id'));\n }\n const payload = {...params};\n\n const body = {\n ...(this.editLock?.token\n ? {editlock: {token: this.editLock.token, refresh: !unlockEdit}}\n : {}),\n ...{groups: [payload]},\n };\n\n const breakoutInfo = await this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n }).catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#update'));\n });\n\n if (unlockEdit) {\n this._clearEditLockInfo();\n }\n\n this._setManageGroups(breakoutInfo);\n\n return breakoutInfo;\n },\n\n /**\n * get existed breakout sessions\n * @param {boolean} editlock -- lock operations of the breakout sessions\n * @returns {Promise}\n */\n async getBreakout(editlock) {\n const breakout = await this.request({\n method: HTTP_VERBS.GET,\n uri: this.url + (editlock ? `?editlock=${editlock}` : ''),\n });\n\n this._setManageGroups(breakout);\n if (editlock && breakout.body?.editlock?.token) {\n this.set('editLock', breakout.body.editlock);\n this.keepEditLockAlive();\n }\n\n return breakout;\n },\n\n /**\n * enable and edit lock breakout\n * @returns {void}\n */\n async enableAndLockBreakout() {\n if (this.enableBreakoutSession) {\n this.lockBreakout();\n } else {\n const info = await this.enableBreakouts();\n\n if (info.body) {\n this.lockBreakout();\n }\n }\n },\n\n /**\n * breakout edit locked by yourself or not\n * @returns {boolean}\n */\n hasBreakoutLocked() {\n return (\n this.editLock &&\n this.editLock.token &&\n this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED\n );\n },\n\n /**\n * send breakout edit lock\n * @returns {void}\n */\n async lockBreakout() {\n if (this.editLock && !!this.editLock.token) {\n if (this.editLock.state === BREAKOUTS.EDIT_LOCK_STATUS.LOCKED) {\n throw new Error('Breakout already locked');\n } else {\n this.keepEditLockAlive();\n }\n } else {\n const breakout = await this.getBreakout(true);\n if (breakout.body?.editlock) {\n this.keepEditLockAlive();\n }\n }\n },\n\n /**\n * keep edit lock alive\n * @returns {void}\n */\n keepEditLockAlive() {\n if (this.editLock && !!this.editLock.token) {\n const ttl = this.editLock.ttl < 30 ? BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;\n if (this.intervalID) {\n window.clearInterval(this.intervalID);\n }\n\n this.intervalID = window.setInterval(() => {\n this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n }).catch((error) => {\n this._clearEditLockInfo();\n\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#keepEditLockAlive'));\n });\n }, (ttl / 2) * 1000);\n }\n },\n\n /**\n * unlock edit breakout\n * @returns {void}\n */\n unLockEditBreakout() {\n if (this.editLock && !!this.editLock.token) {\n this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.url}/editlock/${this.editLock.token}`,\n })\n .then(() => {\n this._clearEditLockInfo();\n })\n .catch((error) => {\n return Promise.reject(boServiceErrorHandler(error, 'Breakouts#unLockEditBreakout'));\n });\n }\n },\n\n /**\n * clear interval and edit lock info\n * @private\n * @returns {void}\n */\n _clearEditLockInfo() {\n if (this.intervalID) {\n clearInterval(this.intervalID);\n }\n this.set('editLock', {});\n },\n\n /**\n * assign participants to breakout session\n * @param {Array} sessions\n * @returns {void}\n */\n assign(sessions: any[]) {\n const internalSessions = sessions.map((item) => {\n return {\n id: item.id,\n assigned: item.memberIds,\n assignedEmails: item.emails,\n anyoneCanJoin: !!item.anyone,\n };\n });\n\n const body = {\n ...(this.editLock && !!this.editLock.token\n ? {editlock: {token: this.editLock.token, refresh: true}}\n : {}),\n ...{\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: internalSessions,\n },\n ],\n },\n };\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: this.url,\n body,\n });\n },\n\n /**\n * query preAssignments\n * @returns {void}\n */\n queryPreAssignments() {\n this.webex\n .request({uri: `${this.url}/preassignments`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n if (result.body?.groups) {\n this.set('preAssignments', result.body.groups);\n this.trigger(BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);\n }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n },\n /**\n * assign participants dynamically after breakout sessions started,\n * but currently it only used for admitting participants from lobby into breakout directly\n * @param {Array} sessions\n * @returns {void}\n */\n dynamicAssign(sessions: any[]) {\n const updatedSessions = sessions.map((item) => {\n return {\n id: item.id,\n participants: item.participants,\n targetState: item.targetState,\n };\n });\n\n const body = {\n groups: [\n {\n id: this.breakoutGroupId,\n sessions: updatedSessions,\n },\n ],\n editlock: null,\n };\n\n if (this.editLock && this.editLock.token) {\n body.editlock = this.editLock;\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.url}/dynamicAssign`,\n body,\n });\n },\n /**\n * trigger ASK_RETURN_TO_MAIN event when main session requested\n * @param {Object} breakout\n * @returns {void}\n */\n triggerReturnToMainEvent(breakout) {\n if (breakout.isMain && breakout.requested) {\n this.trigger(BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);\n }\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
|
|
|
4
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.NETWORK_STATUS = exports.NAMED_MEDIA_GROUP_TYPE_AUDIO = exports.MediaContent = exports.MQA_STATS = exports.MQA_INTERVAL = exports.MODERATOR_TRUE = exports.MODERATOR_FALSE = exports.MEET_M = exports.MEET_CO = exports.MEET_CISCO = exports.MEETING_VIDEO_STATE_MACHINE = exports.MEETING_STATE_MACHINE = exports.MEETING_STATE = exports.MEETING_REMOVED_REASON = exports.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = exports.MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_INFO_FAILURE_REASON = exports.MEETING_ERRORS = exports.MEETING_END_REASON = exports.MEETING_AUDIO_STATE_MACHINE = exports.MEETINGS = exports.MEETINGNUMBER = exports.MEETINGINFO = exports.MEET = exports.MEDIA_TRACK_CONSTRAINT = exports.MEDIA_STATE = exports.MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_DEVICES = exports.MEDIA = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.LOCUS_URL = exports.LOCUSINFO = exports.LOCUSEVENT = exports.LOCUS = exports.LOCI = exports.LOCAL_SHARE_ERRORS = exports.LOCAL = exports.LIVE = exports.LEAVE = exports.LAYOUT_TYPES = exports.LANGUAGE_ENGLISH = exports.JOIN = exports.IP_VERSION = exports.IPV4_REGEX = exports.INTERSTITIAL_DISPLAY_HINTS = exports.INTERPRETATION = exports.INTENT_TO_JOIN = exports.ICE_TIMEOUT = exports.ICE_STATE = exports.ICE_GATHERING_STATE = exports.ICE_FAIL_TIMEOUT = exports.ICE_AND_DTLS_CONNECTION_TIMEOUT = exports.HTTP_VERBS = exports.HTTPS_PROTOCOL = exports.HOST = exports.HECATE = exports.GATHERING = exports.FULL_STATE = exports.FLOOR_ACTION = exports.EVENT_TYPES = exports.EVENT_TRIGGERS = exports.EVENTS = exports.ERROR_DICTIONARY = exports.ERROR = exports.ENDED = exports.END = exports.EMBEDDED_APP_TYPES = exports.DISPLAY_HINTS = exports.DIALER_REGEX = exports.DEVELOPMENT = exports.
|
|
7
|
+
exports.NETWORK_STATUS = exports.NAMED_MEDIA_GROUP_TYPE_AUDIO = exports.MediaContent = exports.MQA_STATS = exports.MQA_INTERVAL = exports.MODERATOR_TRUE = exports.MODERATOR_FALSE = exports.MEET_M = exports.MEET_CO = exports.MEET_CISCO = exports.MEETING_VIDEO_STATE_MACHINE = exports.MEETING_STATE_MACHINE = exports.MEETING_STATE = exports.MEETING_REMOVED_REASON = exports.MEETING_PERMISSION_TOKEN_REFRESH_THRESHOLD_IN_SEC = exports.MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_INFO_FAILURE_REASON = exports.MEETING_ERRORS = exports.MEETING_END_REASON = exports.MEETING_AUDIO_STATE_MACHINE = exports.MEETINGS = exports.MEETINGNUMBER = exports.MEETINGINFO = exports.MEET = exports.MEDIA_TRACK_CONSTRAINT = exports.MEDIA_STATE = exports.MEDIA_PEER_CONNECTION_NAME = exports.MEDIA_DEVICES = exports.MEDIA = exports.MAX_RANDOM_DELAY_FOR_MEETING_INFO = exports.LOCUS_URL = exports.LOCUSINFO = exports.LOCUSEVENT = exports.LOCUS = exports.LOCI = exports.LOCAL_SHARE_ERRORS = exports.LOCAL = exports.LIVE = exports.LEAVE = exports.LAYOUT_TYPES = exports.LANGUAGE_ENGLISH = exports.JOIN = exports.IP_VERSION = exports.IPV4_REGEX = exports.INTERSTITIAL_DISPLAY_HINTS = exports.INTERPRETATION = exports.INTENT_TO_JOIN = exports.ICE_TIMEOUT = exports.ICE_STATE = exports.ICE_GATHERING_STATE = exports.ICE_FAIL_TIMEOUT = exports.ICE_AND_DTLS_CONNECTION_TIMEOUT = exports.HTTP_VERBS = exports.HTTPS_PROTOCOL = exports.HOST = exports.HECATE = exports.GATHERING = exports.FULL_STATE = exports.FLOOR_ACTION = exports.EVENT_TYPES = exports.EVENT_TRIGGERS = exports.EVENTS = exports.ERROR_DICTIONARY = exports.ERROR = exports.ENDED = exports.END = exports.EMBEDDED_APP_TYPES = exports.DISPLAY_HINTS = exports.DIALER_REGEX = exports.DEVELOPMENT = exports.DESTINATION_TYPE = exports.DEFAULT_MEETING_INFO_REQUEST_BODY = exports.DEFAULT_EXCLUDED_STATS = exports.DECLINE = exports.CORRELATION_ID = exports.CONVERSATION_URL = exports.CONVERSATION_SERVICE = exports.CONTROLS = exports.CONTENT = exports.CONNECTION_STATE = exports.COMPLETE = exports.CMR_MEETINGS = exports.CLAIM = exports.CALL_REMOVED_REASON = exports.CALL = exports.CALENDAR_EVENTS_API = exports.CALENDAR_EVENTS = exports.CALENDAR = exports.BREAKOUTS = exports.BNR_STATUS = exports.AVAILABLE_RESOLUTIONS = exports.AUDIO_STATUS = exports.AUDIO = exports.ASSIGN_ROLES_ERROR_CODES = exports.API = exports.ANSWER = exports.ANNOTATION = exports.ALTERNATE_REDIRECT_TRUE = exports.ALIAS = exports.ALERT = void 0;
|
|
8
8
|
exports._WEBEX_MEETING_ = exports._WAIT_ = exports._USER_ = exports._UNKNOWN_ = exports._S_LINE = exports._SLIDES_ = exports._SIP_URI_ = exports._SIP_BRIDGE_ = exports._SEND_RECEIVE_ = exports._SEND_ONLY_ = exports._ROOM_ = exports._RESOURCE_ROOM_ = exports._REQUESTED_ = exports._REMOVE_ = exports._RECEIVE_ONLY_ = exports._PERSONAL_ROOM_ = exports._PEOPLE_ = exports._ON_HOLD_LOBBY_ = exports._OBSERVE_ = exports._NOT_IN_MEETING_ = exports._NONE_ = exports._MOVE_MEDIA_ = exports._MOVED_ = exports._MEETING_UUID_ = exports._MEETING_LINK_ = exports._MEETING_ID_ = exports._MEETING_CENTER_ = exports._MEETING_ = exports._LOCUS_ID_ = exports._LEFT_ = exports._JOIN_ = exports._JOINED_ = exports._IN_MEETING_ = exports._IN_LOBBY_ = exports._IN_ = exports._INCOMING_ = exports._INACTIVE_ = exports._ID_ = exports._IDLE_ = exports._FORCED_ = exports._ERROR_ = exports._CREATED_ = exports._CONVERSATION_URL_ = exports._CONFLICT_ = exports._CALL_ = exports._ANSWER_ = exports._ACTIVE_ = exports.WWW_DOT = exports.WHITEBOARD = exports.WEBEX_DOT_COM = exports.WBXAPPAPI_SERVICE = exports.VIDEO_STATUS = exports.VIDEO = exports.VALID_PMR_LINK = exports.VALID_PMR_ADDRESS = exports.VALID_PIN = exports.VALID_EMAIL_ADDRESS = exports.UUID_REG = exports.USE_URI_LOOKUP_FALSE = exports.TYPE = exports.STATS = exports.SIP_URI = exports.SHARE_STOPPED_REASON = exports.SHARE_STATUS = exports.SHARE_PEER_CONNECTION_NAME = exports.SHARE = exports.SEND_DTMF_ENDPOINT = exports.SENDRECV = exports.SELF_ROLES = exports.SELF_POLICY = exports.ROAP_OFFER_ANSWER_EXCHANGE_TIMEOUT = exports.ROAP = exports.RETRY_TIMEOUT = exports.RESOURCE = exports.REMOTE = exports.RECORDING_STATE = exports.RECONNECTION = exports.READY = exports.REACHABILITY = exports.QUALITY_LEVELS = exports.PSTN_STATUS = exports.PROVISIONAL_TYPE_DIAL_OUT = exports.PROVISIONAL_TYPE_DIAL_IN = exports.PEER_CONNECTION_STATE = exports.PASSWORD_STATUS = exports.PARTICIPANT_DELTAS = exports.PARTICIPANT = exports.ONLINE = exports.OFFLINE = exports.NETWORK_TYPE = void 0;
|
|
9
9
|
var _common = require("@webex/common");
|
|
10
10
|
// @ts-ignore
|
|
@@ -208,9 +208,6 @@ var ASSIGN_ROLES_ERROR_CODES = exports.ASSIGN_ROLES_ERROR_CODES = {
|
|
|
208
208
|
ReclaimHostEmptyWrongKeyErrorCode: 2403136,
|
|
209
209
|
ReclaimHostIsHostAlreadyErrorCode: 2409150
|
|
210
210
|
};
|
|
211
|
-
var DEFAULT_GET_STATS_FILTER = exports.DEFAULT_GET_STATS_FILTER = {
|
|
212
|
-
types: ['track', 'transport', 'candidate-pair', 'outbound-rtp', 'outboundrtp', 'inbound-rtp', 'inboundrtp', 'remote-inbound-rtp', 'remote-outbound-rtp', 'remote-candidate', 'local-candidate', 'media-source']
|
|
213
|
-
};
|
|
214
211
|
var RECORDING_STATE = exports.RECORDING_STATE = {
|
|
215
212
|
RECORDING: 'recording',
|
|
216
213
|
IDLE: 'idle',
|
|
@@ -1248,4 +1245,14 @@ var MEETING_PERMISSION_TOKEN_REFRESH_REASON = exports.MEETING_PERMISSION_TOKEN_R
|
|
|
1248
1245
|
|
|
1249
1246
|
// constant for named media group type
|
|
1250
1247
|
var NAMED_MEDIA_GROUP_TYPE_AUDIO = exports.NAMED_MEDIA_GROUP_TYPE_AUDIO = 1;
|
|
1248
|
+
var DESTINATION_TYPE = exports.DESTINATION_TYPE = {
|
|
1249
|
+
CONVERSATION_URL: 'CONVERSATION_URL',
|
|
1250
|
+
MEETING_LINK: 'MEETING_LINK',
|
|
1251
|
+
SIP_URI: 'SIP_URI',
|
|
1252
|
+
PERSONAL_ROOM: 'PERSONAL_ROOM',
|
|
1253
|
+
ONE_ON_ONE_CALL: 'ONE_ON_ONE_CALL',
|
|
1254
|
+
LOCUS_ID: 'LOCUS_ID',
|
|
1255
|
+
MEETING_ID: 'MEETING_ID',
|
|
1256
|
+
MEETING_UUID: 'MEETING_UUID'
|
|
1257
|
+
};
|
|
1251
1258
|
//# sourceMappingURL=constants.js.map
|