@webex/plugin-meetings 3.0.0-beta.116 → 3.0.0-beta.117

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/breakouts/breakout.js +23 -6
  2. package/dist/breakouts/breakout.js.map +1 -1
  3. package/dist/breakouts/index.js +178 -139
  4. package/dist/breakouts/index.js.map +1 -1
  5. package/dist/meeting/index.js +5 -41
  6. package/dist/meeting/index.js.map +1 -1
  7. package/dist/meeting/locusMediaRequest.js +3 -0
  8. package/dist/meeting/locusMediaRequest.js.map +1 -1
  9. package/dist/meeting/muteState.js +1 -1
  10. package/dist/meeting/muteState.js.map +1 -1
  11. package/dist/meeting/request.js +27 -20
  12. package/dist/meeting/request.js.map +1 -1
  13. package/dist/meeting/util.js +463 -426
  14. package/dist/meeting/util.js.map +1 -1
  15. package/dist/members/index.js +4 -1
  16. package/dist/members/index.js.map +1 -1
  17. package/dist/members/request.js +75 -45
  18. package/dist/members/request.js.map +1 -1
  19. package/dist/members/util.js +308 -317
  20. package/dist/members/util.js.map +1 -1
  21. package/dist/types/meeting/index.d.ts +20 -21
  22. package/dist/types/meeting/locusMediaRequest.d.ts +2 -0
  23. package/dist/types/meeting/request.d.ts +16 -8
  24. package/dist/types/meeting/util.d.ts +75 -1
  25. package/dist/types/members/request.d.ts +56 -11
  26. package/dist/types/members/util.d.ts +209 -1
  27. package/package.json +19 -19
  28. package/src/breakouts/breakout.ts +26 -4
  29. package/src/breakouts/index.ts +32 -17
  30. package/src/meeting/index.ts +8 -42
  31. package/src/meeting/locusMediaRequest.ts +6 -0
  32. package/src/meeting/muteState.ts +1 -1
  33. package/src/meeting/request.ts +26 -17
  34. package/src/meeting/util.ts +446 -410
  35. package/src/members/index.ts +7 -1
  36. package/src/members/request.ts +61 -21
  37. package/src/members/util.ts +316 -326
  38. package/test/unit/spec/breakouts/breakout.ts +26 -7
  39. package/test/unit/spec/breakouts/index.ts +48 -3
  40. package/test/unit/spec/meeting/index.js +27 -30
  41. package/test/unit/spec/meeting/locusMediaRequest.ts +25 -3
  42. package/test/unit/spec/meeting/muteState.js +5 -2
  43. package/test/unit/spec/meeting/request.js +215 -42
  44. package/test/unit/spec/meeting/utils.js +151 -7
  45. package/test/unit/spec/members/index.js +22 -1
  46. package/test/unit/spec/members/request.js +167 -35
@@ -1 +1 @@
1
- {"version":3,"names":["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","shouldFetchPreassignments","editLock","intervalID","meetingId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","length","CLOSED","id","initialize","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","debouncedQueryRosters","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBroadcastMessages","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","locusUrlUpdate","set","breakoutServiceUrlUpdate","request","uri","qs","btoa","then","result","rosters","body","forEach","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","controls","session","get","parseRoster","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","internal","llm","event","data","senderUserId","sentTime","message","MESSAGE","mercury","participant","ASK_FOR_HELP","updateBreakout","params","preEnableBreakoutSession","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED_CURRENT","REQUESTED","queryPreAssignments","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","updateBreakoutSessions","payload","breakoutSessions","state","ASSIGNED","requestedLastModifiedTime","modifiedAt","getMainSession","mainSession","filter","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","token","editlock","PUT","create","boServiceErrorHandler","breakInfo","_clearEditLockInfo","resolve","clearSessions","action","ACTION","DELETE","start","START","allowToJoinLater","duration","DEFAULT_DURATION","refresh","end","CLOSE","update","unlockEdit","breakoutInfo","getBreakout","GET","keepEditLockAlive","enableAndLockBreakout","lockBreakout","EDIT_LOCK_STATUS","LOCKED","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","dynamicAssign","updatedSessions","participants","targetState","requested","ASK_RETURN_TO_MAIN"],"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 shouldFetchPreassignments: 'boolean', // Controlling the lifecycle of the pre-assign API\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\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 actived 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 },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:status', () => {\n if (this.status === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\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 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 * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n const preEnableBreakoutSession = this.get('enableBreakoutSession');\n this.set(params);\n\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.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n // We need to call queryPreAssignments when enableBreakoutSession become true\n if (preEnableBreakoutSession !== params.enableBreakoutSession) {\n this.queryPreAssignments(params);\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 currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\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\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\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 * 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 if (!enable) {\n // if enable is false, updateBreakout set the param then set enableBreakoutSession as false\n this.updateBreakout(info.body);\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 * 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 breakInfo = 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 if (breakInfo.body?.groups) {\n this.set('manageGroups', breakInfo.body.groups);\n }\n\n // clear edit lock info after save breakout session info\n this._clearEditLockInfo();\n\n return Promise.resolve(breakInfo);\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 breakInfo = 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 if (breakInfo.body?.groups) {\n this.set('manageGroups', breakInfo.body.groups);\n }\n this.shouldFetchPreassignments = false;\n\n return Promise.resolve(breakInfo);\n },\n\n /**\n * Host or cohost starts breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n start(params = {}) {\n const action = BREAKOUTS.ACTION.START;\n const payload = {\n id: this.breakoutGroupId,\n action,\n allowBackToMain: false,\n allowToJoinLater: false,\n duration: BREAKOUTS.DEFAULT_DURATION,\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 return 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\n /**\n * Host or cohost ends breakout sessions\n * @param {object} params\n * @returns {Promise}\n */\n 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 return 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\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 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 if (breakout.body?.groups) {\n this.set('manageGroups', breakout.body.groups);\n }\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 * 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 * The pre-assignments need to be queried when \"hasBreakoutPreAssignments\" is true\n * @param {Object} params\n * @returns {void}\n */\n queryPreAssignments(params) {\n if (!params || !params.enableBreakoutSession || !params.hasBreakoutPreAssignments) {\n return;\n }\n if (!this.shouldFetchPreassignments) {\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 }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n this.shouldFetchPreassignments = true;\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":["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","shouldFetchPreassignments","editLock","intervalID","meetingId","children","currentBreakoutSession","Breakout","derived","isInMainSession","cache","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","isActiveBreakout","BREAKOUT","STATUS","OPEN","CLOSING","breakoutGroupId","length","CLOSED","id","initialize","listenTo","trigger","EVENTS","BREAKOUTS_CLOSING","debouncedQueryRosters","queryRosters","leading","trailing","breakout","triggerReturnToMainEvent","listenToCurrentSessionTypeChange","listenToBroadcastMessages","listenToBreakoutRosters","listenToBreakoutHelp","webex","cleanUp","stopListening","locusUrlUpdate","set","breakoutServiceUrlUpdate","request","uri","qs","btoa","then","result","rosters","body","forEach","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","controls","session","get","parseRoster","isSessionTypeChangedFromSessionToMain","LEAVE_BREAKOUT","internal","llm","event","data","senderUserId","sentTime","message","MESSAGE","mercury","participant","ASK_FOR_HELP","updateBreakout","params","preEnableBreakoutSession","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED_CURRENT","REQUESTED","queryPreAssignments","previous","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutJoinResponse","currentSession","breakoutMoveId","updateBreakoutSessions","payload","breakoutSessions","state","ASSIGNED","requestedLastModifiedTime","modifiedAt","getMainSession","mainSession","filter","isMain","Error","askAllToReturn","method","HTTP_VERBS","POST","broadcast","options","enableBreakouts","err","reject","toggleBreakout","enable","undefined","info","doToggleBreakout","token","editlock","PUT","_setManageGroups","breakoutInfo","create","boServiceErrorHandler","_clearEditLockInfo","clearSessions","action","ACTION","DELETE","start","START","allowToJoinLater","duration","DEFAULT_DURATION","refresh","end","CLOSE","update","unlockEdit","getBreakout","GET","keepEditLockAlive","enableAndLockBreakout","lockBreakout","EDIT_LOCK_STATUS","LOCKED","ttl","DEFAULT_TTL","window","clearInterval","setInterval","unLockEditBreakout","assign","sessions","internalSessions","map","item","assigned","memberIds","assignedEmails","emails","anyoneCanJoin","anyone","dynamicAssign","updatedSessions","participants","targetState","requested","ASK_RETURN_TO_MAIN"],"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 shouldFetchPreassignments: 'boolean', // Controlling the lifecycle of the pre-assign API\n editLock: 'object', // appears when getBreakout info editlock = true\n intervalID: 'number',\n meetingId: 'string',\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 actived 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 },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:status', () => {\n if (this.status === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\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 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 * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n const preEnableBreakoutSession = this.get('enableBreakoutSession');\n this.set(params);\n\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.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n\n // We need to call queryPreAssignments when enableBreakoutSession become true\n if (preEnableBreakoutSession !== params.enableBreakoutSession) {\n this.queryPreAssignments(params);\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 currentSession: this.currentBreakoutSession,\n meeting,\n breakoutMoveId: params.breakoutMoveId,\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\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\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 * 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 if (!enable) {\n // if enable is false, updateBreakout set the param then set enableBreakoutSession as false\n this.updateBreakout(info.body);\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 this.shouldFetchPreassignments = false;\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 duration: BREAKOUTS.DEFAULT_DURATION,\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 * 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 * The pre-assignments need to be queried when \"hasBreakoutPreAssignments\" is true\n * @param {Object} params\n * @returns {void}\n */\n queryPreAssignments(params) {\n if (!params || !params.enableBreakoutSession || !params.hasBreakoutPreAssignments) {\n return;\n }\n if (!this.shouldFetchPreassignments) {\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 }\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryPreAssignments failed', error);\n });\n this.shouldFetchPreassignments = true;\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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"}
@@ -1288,7 +1288,8 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1288
1288
  _this.members = new _index2.default({
1289
1289
  locusUrl: attrs.locus && attrs.locus.url,
1290
1290
  receiveSlotManager: _this.receiveSlotManager,
1291
- mediaRequestManagers: _this.mediaRequestManagers
1291
+ mediaRequestManagers: _this.mediaRequestManagers,
1292
+ meeting: (0, _assertThisInitialized2.default)(_this)
1292
1293
  },
1293
1294
  // @ts-ignore - Fix type
1294
1295
  {
@@ -1434,7 +1435,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
1434
1435
  * @private
1435
1436
  * @memberof Meeting
1436
1437
  */
1437
- _this.meetingRequest = new _request.default({}, _options);
1438
+ _this.meetingRequest = new _request.default({
1439
+ meeting: (0, _assertThisInitialized2.default)(_this)
1440
+ }, _options);
1438
1441
  /**
1439
1442
  * @instance
1440
1443
  * @type {Array}
@@ -3540,37 +3543,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3540
3543
  }
3541
3544
  }
3542
3545
 
3543
- /**
3544
- * Sets the first locus info on the class instance
3545
- * @param {Object} locus
3546
- * @param {String} locus.url
3547
- * @param {Array} locus.participants
3548
- * @param {Object} locus.self
3549
- * @returns {undefined}
3550
- * @private
3551
- * @memberof Meeting
3552
- */
3553
- }, {
3554
- key: "parseLocus",
3555
- value: function parseLocus(locus) {
3556
- if (locus) {
3557
- this.locusUrl = locus.url;
3558
- // TODO: move this to parse participants module
3559
- this.setLocus(locus);
3560
-
3561
- // check if we can extract this info from partner
3562
- // Parsing of locus object must be finished at this state
3563
- if (locus.participants && locus.self) {
3564
- this.partner = _util.default.getLocusPartner(locus.participants, locus.self);
3565
- }
3566
-
3567
- // For webex meeting the sipUrl gets updated in info parser
3568
- if (!this.sipUri && this.partner && this.type === _constants._CALL_) {
3569
- this.setSipUri(this.partner.person.sipUrl || this.partner.person.id);
3570
- }
3571
- }
3572
- }
3573
-
3574
3546
  /**
3575
3547
  * Sets the sip uri on the class instance
3576
3548
  * uses meeting info as precedence
@@ -4865,8 +4837,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4865
4837
  dialInUrl: this.dialInUrl,
4866
4838
  locusUrl: locusUrl,
4867
4839
  clientUrl: this.deviceUrl
4868
- }).then(function (res) {
4869
- _this35.locusInfo.onFullLocus(res.body.locus);
4870
4840
  }).catch(function (error) {
4871
4841
  var _error$error2;
4872
4842
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_IN_FAILURE, {
@@ -4905,8 +4875,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4905
4875
  phoneNumber: phoneNumber,
4906
4876
  locusUrl: locusUrl,
4907
4877
  clientUrl: this.deviceUrl
4908
- }).then(function (res) {
4909
- _this36.locusInfo.onFullLocus(res.body.locus);
4910
4878
  }).catch(function (error) {
4911
4879
  var _error$error3;
4912
4880
  _metrics.default.sendBehavioralMetric(_constants2.default.ADD_DIAL_OUT_FAILURE, {
@@ -6331,10 +6299,6 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
6331
6299
  layoutType: layoutType,
6332
6300
  main: layoutInfo.main,
6333
6301
  content: layoutInfo.content
6334
- }).then(function (response) {
6335
- if (response && response.body && response.body.locus) {
6336
- _this53.locusInfo.onFullLocus(response.body.locus);
6337
- }
6338
6302
  }).catch(function (error) {
6339
6303
  _loggerProxy.default.logger.error('Meeting:index#changeVideoLayout --> Error ', error);
6340
6304
  return _promise.default.reject(error);