@webex/plugin-meetings 3.8.0-next.1 → 3.8.0-next.11
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 +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +4 -4
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +38 -0
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +21 -5
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meetings/index.js +1 -1
- package/dist/meetings/index.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +40 -8
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reachability/index.js +16 -10
- package/dist/reachability/index.js.map +1 -1
- package/dist/recording-controller/util.js +5 -5
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/meeting/index.d.ts +22 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +10 -1
- package/dist/webinar/index.js +2 -2
- package/dist/webinar/index.js.map +1 -1
- package/package.json +21 -21
- package/src/config.ts +1 -0
- package/src/constants.ts +1 -0
- package/src/interpretation/index.ts +3 -3
- package/src/meeting/index.ts +34 -0
- package/src/meeting/locusMediaRequest.ts +27 -4
- package/src/meetings/index.ts +1 -1
- package/src/multistream/remoteMediaManager.ts +32 -10
- package/src/reachability/index.ts +4 -0
- package/src/recording-controller/util.ts +17 -13
- package/src/webinar/index.ts +1 -1
- package/test/unit/spec/interpretation/index.ts +39 -1
- package/test/unit/spec/meeting/index.js +138 -104
- package/test/unit/spec/meeting/locusMediaRequest.ts +96 -58
- package/test/unit/spec/meetings/index.js +13 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +397 -118
- package/test/unit/spec/reachability/index.ts +8 -0
- package/test/unit/spec/webinar/index.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_lodash","_constants","_collection","_loggerProxy","Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastInstanceUrl","canManageWebcast","selfIsPanelist","selfIsAttendee","practiceSessionEnabled","meetingId","locusUrlUpdate","set","updateWebcastUrl","payload","get","updateCanManageWebcast","updateRoleChanged","oldRoles","newRoles","isPromoted","includes","SELF_ROLES","ATTENDEE","PANELIST","isDemoted","MODERATOR","updateStatusByRole","_ref","meeting","webex","meetings","getMeetingByType","_ID_","shareStatus","SHARE_STATUS","WHITEBOARD_SHARE_ACTIVE","_meeting$locusInfo","_meeting$locusInfo2","locusInfo","updateMediaShares","mediaShares","updateLLMConnection","isJoinPracticeSessionDataChannel","setPracticeSessionState","enabled","request","method","HTTP_VERBS","PATCH","uri","concat","body","practiceSession","catch","error","LoggerProxy","logger","updatePracticeSessionStatus","startWebcast","layout","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","t0","t1","PUT","t2","t3","_defineProperty2","credentials","getUserToken","t4","sent","t5","config","trackingIdPrefix","uuid","v4","toString","t6","authorization","trackingId","t7","HEADERS","CONTENT_TYPE","t8","CONTENT_TYPE_VALUE","APPLICATION_JSON","t9","t10","action","meetingInfo","locusId","correlationId","t11","headers","abrupt","call","stop","stopWebcast","_this2","_callee2","_callee2$","_context2","queryWebcastLayout","_this3","_callee3","_callee3$","_context3","GET","updateWebcastLayout","_this4","_callee4","_callee4$","_context4","videoLayout","contentLayout","syncStageLayout","syncStageInMeeting","viewAllWebcastAttendees","_this5","_callee5","_callee5$","_context5","searchWebcastAttendees","_arguments","arguments","_this6","_callee6","queryString","_callee6$","_context6","length","undefined","encodeURIComponent","expelWebcastAttendee","participantId","_this7","_callee7","_callee7$","_context7","DELETE","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport uuid from 'uuid';\nimport {get} from 'lodash';\nimport {_ID_, HEADERS, HTTP_VERBS, MEETINGS, SELF_ROLES, SHARE_STATUS} from '../constants';\n\nimport WebinarCollection from './collection';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastInstanceUrl: 'string', // current webinar's webcast instance url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n selfIsPanelist: 'boolean', // self is panelist\n selfIsAttendee: 'boolean', // self is attendee\n practiceSessionEnabled: 'boolean', // practice session enabled\n meetingId: 'string',\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast instance url of the meeting\n * @param {object} payload\n * @returns {void}\n */\n updateWebcastUrl(payload) {\n this.set('webcastInstanceUrl', get(payload, 'resources.webcastInstance.url'));\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n\n /**\n * Updates user roles and manages associated state transitions\n * @param {object} payload\n * @param {string[]} payload.oldRoles - Previous roles of the user\n * @param {string[]} payload.newRoles - New roles of the user\n * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states\n */\n updateRoleChanged(payload) {\n const oldRoles = get(payload, 'oldRoles', []);\n const newRoles = get(payload, 'newRoles', []);\n\n const isPromoted =\n oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.PANELIST);\n const isDemoted =\n (oldRoles.includes(SELF_ROLES.PANELIST) && newRoles.includes(SELF_ROLES.ATTENDEE)) ||\n (!oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.ATTENDEE)); // for attendee just join meeting case\n this.set('selfIsPanelist', newRoles.includes(SELF_ROLES.PANELIST));\n this.set('selfIsAttendee', newRoles.includes(SELF_ROLES.ATTENDEE));\n this.updateCanManageWebcast(newRoles.includes(SELF_ROLES.MODERATOR));\n this.updateStatusByRole({isPromoted, isDemoted});\n\n return {isPromoted, isDemoted};\n },\n\n /**\n * should join practice session data channel or not\n * @param {Object} {isPromoted: boolean, isDemoted: boolean}} Role transition states\n * @returns {void}\n */\n updateStatusByRole({isPromoted, isDemoted}) {\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n\n if (\n (isDemoted && meeting?.shareStatus === SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) ||\n isPromoted\n ) {\n // attendees in webinar should subscribe streaming for whiteboard sharing\n // while panelist still need subscribe native mode so trigger force update here\n meeting?.locusInfo?.updateMediaShares(meeting?.locusInfo?.mediaShares, true);\n }\n\n if (this.practiceSessionEnabled) {\n // may need change data channel in practice session\n meeting?.updateLLMConnection();\n }\n },\n\n /**\n * should join practice session data channel or not\n * @returns {boolean}\n */\n isJoinPracticeSessionDataChannel() {\n return this.selfIsPanelist && this.practiceSessionEnabled;\n },\n\n /**\n * start or stop practice session for webinar\n * @param {boolean} enabled\n * @returns {Promise}\n */\n setPracticeSessionState(enabled) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n practiceSession: {\n enabled,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#setPracticeSessionState failed', error);\n throw error;\n });\n },\n\n /**\n * update practice session status\n * @param {object} payload\n * @returns {void}\n */\n updatePracticeSessionStatus(payload) {\n this.set('practiceSessionEnabled', payload.enabled);\n },\n\n /**\n * start webcast mode for webinar\n * @param {object} meeting\n * @param {object} layout\n * @returns {Promise}\n */\n async startWebcast(meeting, layout) {\n if (!meeting) {\n LoggerProxy.logger.error(\n `Meeting:webinar#startWebcast failed --> meeting parameter : ${meeting}`\n );\n throw new Error('Meeting parameter does not meet expectations');\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'start',\n meetingInfo: {\n locusId: meeting.locusId,\n correlationId: meeting.correlationId,\n },\n layout,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#startWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * stop webcast mode for webinar\n * @returns {Promise}\n */\n async stopWebcast() {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'stop',\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#stopWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * query webcast layout for webinar\n * @returns {Promise}\n */\n async queryWebcastLayout() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#queryWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * update webcast layout for webinar\n * @param {object} layout\n * @returns {Promise}\n */\n async updateWebcastLayout(layout) {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n videoLayout: layout.videoLayout,\n contentLayout: layout.contentLayout,\n syncStageLayout: layout.syncStageLayout,\n syncStageInMeeting: layout.syncStageInMeeting,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#updateWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * view all webcast attendees\n * @param {string} queryString\n * @returns {Promise}\n */\n async viewAllWebcastAttendees() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * search webcast attendees by query string\n * @param {string} queryString\n * @returns {Promise}\n */\n async searchWebcastAttendees(queryString = '') {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(queryString)}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * expel webcast attendee by participantId\n * @param {string} participantId\n * @returns {Promise}\n */\n async expelWebcastAttendee(participantId) {\n return this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.webcastInstanceUrl}/attendees/${participantId}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);\n throw error;\n });\n },\n});\n\nexport default Webinar;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_lodash","_constants","_collection","_loggerProxy","Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastInstanceUrl","canManageWebcast","selfIsPanelist","selfIsAttendee","practiceSessionEnabled","meetingId","locusUrlUpdate","set","updateWebcastUrl","payload","get","updateCanManageWebcast","updateRoleChanged","oldRoles","newRoles","isPromoted","includes","SELF_ROLES","ATTENDEE","PANELIST","isDemoted","MODERATOR","updateStatusByRole","_ref","meeting","webex","meetings","getMeetingByType","_ID_","shareStatus","SHARE_STATUS","WHITEBOARD_SHARE_ACTIVE","_meeting$locusInfo","_meeting$locusInfo2","locusInfo","updateMediaShares","mediaShares","updateLLMConnection","isJoinPracticeSessionDataChannel","setPracticeSessionState","enabled","request","method","HTTP_VERBS","PATCH","uri","concat","body","practiceSession","catch","error","LoggerProxy","logger","updatePracticeSessionStatus","startWebcast","layout","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","Error","t0","t1","PUT","t2","t3","_defineProperty2","credentials","getUserToken","t4","sent","t5","config","trackingIdPrefix","uuid","v4","toString","t6","authorization","trackingId","t7","HEADERS","CONTENT_TYPE","t8","CONTENT_TYPE_VALUE","APPLICATION_JSON","t9","t10","action","meetingInfo","locusId","correlationId","t11","headers","abrupt","call","stop","stopWebcast","_this2","_callee2","_callee2$","_context2","queryWebcastLayout","_this3","_callee3","_callee3$","_context3","GET","updateWebcastLayout","_this4","_callee4","_callee4$","_context4","videoLayout","contentLayout","syncStageLayout","syncStageInMeeting","viewAllWebcastAttendees","_this5","_callee5","_callee5$","_context5","searchWebcastAttendees","_arguments","arguments","_this6","_callee6","queryString","_callee6$","_context6","length","undefined","encodeURIComponent","expelWebcastAttendee","participantId","_this7","_callee7","_callee7$","_context7","DELETE","version","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport uuid from 'uuid';\nimport {get} from 'lodash';\nimport {_ID_, HEADERS, HTTP_VERBS, MEETINGS, SELF_ROLES, SHARE_STATUS} from '../constants';\n\nimport WebinarCollection from './collection';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastInstanceUrl: 'string', // current webinar's webcast instance url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n selfIsPanelist: 'boolean', // self is panelist\n selfIsAttendee: 'boolean', // self is attendee\n practiceSessionEnabled: 'boolean', // practice session enabled\n meetingId: 'string',\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast instance url of the meeting\n * @param {object} payload\n * @returns {void}\n */\n updateWebcastUrl(payload) {\n this.set('webcastInstanceUrl', get(payload, 'resources.webcastInstance.url'));\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n\n /**\n * Updates user roles and manages associated state transitions\n * @param {object} payload\n * @param {string[]} payload.oldRoles - Previous roles of the user\n * @param {string[]} payload.newRoles - New roles of the user\n * @returns {{isPromoted: boolean, isDemoted: boolean}} Role transition states\n */\n updateRoleChanged(payload) {\n const oldRoles = get(payload, 'oldRoles', []);\n const newRoles = get(payload, 'newRoles', []);\n\n const isPromoted =\n oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.PANELIST);\n const isDemoted =\n (oldRoles.includes(SELF_ROLES.PANELIST) && newRoles.includes(SELF_ROLES.ATTENDEE)) ||\n (!oldRoles.includes(SELF_ROLES.ATTENDEE) && newRoles.includes(SELF_ROLES.ATTENDEE)); // for attendee just join meeting case\n this.set('selfIsPanelist', newRoles.includes(SELF_ROLES.PANELIST));\n this.set('selfIsAttendee', newRoles.includes(SELF_ROLES.ATTENDEE));\n this.updateCanManageWebcast(newRoles.includes(SELF_ROLES.MODERATOR));\n this.updateStatusByRole({isPromoted, isDemoted});\n\n return {isPromoted, isDemoted};\n },\n\n /**\n * should join practice session data channel or not\n * @param {Object} {isPromoted: boolean, isDemoted: boolean}} Role transition states\n * @returns {void}\n */\n updateStatusByRole({isPromoted, isDemoted}) {\n const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);\n\n if (\n (isDemoted && meeting?.shareStatus === SHARE_STATUS.WHITEBOARD_SHARE_ACTIVE) ||\n isPromoted\n ) {\n // attendees in webinar should subscribe streaming for whiteboard sharing\n // while panelist still need subscribe native mode so trigger force update here\n meeting?.locusInfo?.updateMediaShares(meeting?.locusInfo?.mediaShares, true);\n }\n\n if (this.practiceSessionEnabled) {\n // may need change data channel in practice session\n meeting?.updateLLMConnection();\n }\n },\n\n /**\n * should join practice session data channel or not\n * @returns {boolean}\n */\n isJoinPracticeSessionDataChannel() {\n return this.selfIsPanelist && this.practiceSessionEnabled;\n },\n\n /**\n * start or stop practice session for webinar\n * @param {boolean} enabled\n * @returns {Promise}\n */\n setPracticeSessionState(enabled) {\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri: `${this.locusUrl}/controls`,\n body: {\n practiceSession: {\n enabled,\n },\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#setPracticeSessionState failed', error);\n throw error;\n });\n },\n\n /**\n * update practice session status\n * @param {object} payload\n * @returns {void}\n */\n updatePracticeSessionStatus(payload) {\n this.set('practiceSessionEnabled', !!payload?.enabled);\n },\n\n /**\n * start webcast mode for webinar\n * @param {object} meeting\n * @param {object} layout\n * @returns {Promise}\n */\n async startWebcast(meeting, layout) {\n if (!meeting) {\n LoggerProxy.logger.error(\n `Meeting:webinar#startWebcast failed --> meeting parameter : ${meeting}`\n );\n throw new Error('Meeting parameter does not meet expectations');\n }\n\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'start',\n meetingInfo: {\n locusId: meeting.locusId,\n correlationId: meeting.correlationId,\n },\n layout,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#startWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * stop webcast mode for webinar\n * @returns {Promise}\n */\n async stopWebcast() {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/streaming`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n action: 'stop',\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#stopWebcast failed', error);\n throw error;\n });\n },\n\n /**\n * query webcast layout for webinar\n * @returns {Promise}\n */\n async queryWebcastLayout() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#queryWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * update webcast layout for webinar\n * @param {object} layout\n * @returns {Promise}\n */\n async updateWebcastLayout(layout) {\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${this.webcastInstanceUrl}/layout`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n [HEADERS.CONTENT_TYPE]: HEADERS.CONTENT_TYPE_VALUE.APPLICATION_JSON,\n },\n body: {\n videoLayout: layout.videoLayout,\n contentLayout: layout.contentLayout,\n syncStageLayout: layout.syncStageLayout,\n syncStageInMeeting: layout.syncStageInMeeting,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#updateWebcastLayout failed', error);\n throw error;\n });\n },\n\n /**\n * view all webcast attendees\n * @param {string} queryString\n * @returns {Promise}\n */\n async viewAllWebcastAttendees() {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#viewAllWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * search webcast attendees by query string\n * @param {string} queryString\n * @returns {Promise}\n */\n async searchWebcastAttendees(queryString = '') {\n return this.request({\n method: HTTP_VERBS.GET,\n uri: `${this.webcastInstanceUrl}/attendees?keyword=${encodeURIComponent(queryString)}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#searchWebcastAttendees failed', error);\n throw error;\n });\n },\n\n /**\n * expel webcast attendee by participantId\n * @param {string} participantId\n * @returns {Promise}\n */\n async expelWebcastAttendee(participantId) {\n return this.request({\n method: HTTP_VERBS.DELETE,\n uri: `${this.webcastInstanceUrl}/attendees/${participantId}`,\n headers: {\n authorization: await this.webex.credentials.getUserToken(),\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n },\n }).catch((error) => {\n LoggerProxy.logger.error('Meeting:webinar#expelWebcastAttendee failed', error);\n throw error;\n });\n },\n});\n\nexport default Webinar;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-meetings": "3.8.0-next.
|
|
47
|
-
"@webex/plugin-rooms": "3.
|
|
48
|
-
"@webex/test-helper-chai": "3.
|
|
49
|
-
"@webex/test-helper-mocha": "3.
|
|
50
|
-
"@webex/test-helper-mock-webex": "3.
|
|
51
|
-
"@webex/test-helper-retry": "3.
|
|
52
|
-
"@webex/test-helper-test-users": "3.
|
|
46
|
+
"@webex/plugin-meetings": "3.8.0-next.11",
|
|
47
|
+
"@webex/plugin-rooms": "3.8.0-next.5",
|
|
48
|
+
"@webex/test-helper-chai": "3.8.0-next.5",
|
|
49
|
+
"@webex/test-helper-mocha": "3.8.0-next.5",
|
|
50
|
+
"@webex/test-helper-mock-webex": "3.8.0-next.5",
|
|
51
|
+
"@webex/test-helper-retry": "3.8.0-next.5",
|
|
52
|
+
"@webex/test-helper-test-users": "3.8.0-next.5",
|
|
53
53
|
"chai": "^4.3.4",
|
|
54
54
|
"chai-as-promised": "^7.1.1",
|
|
55
55
|
"eslint": "^8.24.0",
|
|
@@ -61,22 +61,22 @@
|
|
|
61
61
|
"typescript": "^4.7.4"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@webex/common": "3.
|
|
64
|
+
"@webex/common": "3.8.0-next.5",
|
|
65
65
|
"@webex/event-dictionary-ts": "^1.0.1688",
|
|
66
66
|
"@webex/internal-media-core": "2.14.4",
|
|
67
|
-
"@webex/internal-plugin-conversation": "3.
|
|
68
|
-
"@webex/internal-plugin-device": "3.
|
|
69
|
-
"@webex/internal-plugin-llm": "3.8.0-next.
|
|
70
|
-
"@webex/internal-plugin-mercury": "3.
|
|
71
|
-
"@webex/internal-plugin-metrics": "3.
|
|
72
|
-
"@webex/internal-plugin-support": "3.
|
|
73
|
-
"@webex/internal-plugin-user": "3.
|
|
74
|
-
"@webex/internal-plugin-voicea": "3.8.0-next.
|
|
75
|
-
"@webex/media-helpers": "3.
|
|
76
|
-
"@webex/plugin-people": "3.
|
|
77
|
-
"@webex/plugin-rooms": "3.
|
|
67
|
+
"@webex/internal-plugin-conversation": "3.8.0-next.5",
|
|
68
|
+
"@webex/internal-plugin-device": "3.8.0-next.5",
|
|
69
|
+
"@webex/internal-plugin-llm": "3.8.0-next.6",
|
|
70
|
+
"@webex/internal-plugin-mercury": "3.8.0-next.5",
|
|
71
|
+
"@webex/internal-plugin-metrics": "3.8.0-next.5",
|
|
72
|
+
"@webex/internal-plugin-support": "3.8.0-next.5",
|
|
73
|
+
"@webex/internal-plugin-user": "3.8.0-next.5",
|
|
74
|
+
"@webex/internal-plugin-voicea": "3.8.0-next.11",
|
|
75
|
+
"@webex/media-helpers": "3.8.0-next.5",
|
|
76
|
+
"@webex/plugin-people": "3.8.0-next.5",
|
|
77
|
+
"@webex/plugin-rooms": "3.8.0-next.5",
|
|
78
78
|
"@webex/web-capabilities": "^1.4.0",
|
|
79
|
-
"@webex/webex-core": "3.
|
|
79
|
+
"@webex/webex-core": "3.8.0-next.5",
|
|
80
80
|
"ampersand-collection": "^2.0.2",
|
|
81
81
|
"bowser": "^2.11.0",
|
|
82
82
|
"btoa": "^1.2.1",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"//": [
|
|
93
93
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
94
94
|
],
|
|
95
|
-
"version": "3.8.0-next.
|
|
95
|
+
"version": "3.8.0-next.11"
|
|
96
96
|
}
|
package/src/config.ts
CHANGED
|
@@ -95,6 +95,7 @@ export default {
|
|
|
95
95
|
// This only applies to non-multistream meetings
|
|
96
96
|
iceCandidatesGatheringTimeout: undefined,
|
|
97
97
|
backendIpv6NativeSupport: false,
|
|
98
|
+
enableReachabilityChecks: true,
|
|
98
99
|
reachabilityGetClusterTimeout: 5000,
|
|
99
100
|
logUploadIntervalMultiplicationFactor: 0, // if set to 0 or undefined, logs won't be uploaded periodically, if you want periodic logs, recommended value is 1
|
|
100
101
|
},
|
package/src/constants.ts
CHANGED
|
@@ -904,6 +904,7 @@ export enum SELF_POLICY {
|
|
|
904
904
|
ENFORCE_VIRTUAL_BACKGROUND = 'enforceVirtualBackground',
|
|
905
905
|
SUPPORT_LOCAL_RECORD = 'supportLocalRecord',
|
|
906
906
|
SUPPORT_NETWORK_BASED_RECORD = 'supportNetworkBasedRecord',
|
|
907
|
+
SUPPORT_PREMISE_RECORD = 'supportPremiseRecord',
|
|
907
908
|
SUPPORT_REALTIME_CLOSE_CAPTION = 'supportRealtimeCloseCaption',
|
|
908
909
|
SUPPORT_CHAT = 'supportChat',
|
|
909
910
|
SUPPORT_DESKTOP_SHARE_REMOTE = 'supportDesktopShareRemote',
|
|
@@ -35,13 +35,13 @@ const SimultaneousInterpretation = WebexPlugin.extend({
|
|
|
35
35
|
derived: {
|
|
36
36
|
shouldQuerySupportLanguages: {
|
|
37
37
|
cache: false,
|
|
38
|
-
deps: ['canManageInterpreters', 'hostSIEnabled'],
|
|
38
|
+
deps: ['canManageInterpreters', 'hostSIEnabled', 'locusUrl'],
|
|
39
39
|
/**
|
|
40
40
|
* Returns should query support languages or not
|
|
41
41
|
* @returns {boolean}
|
|
42
42
|
*/
|
|
43
43
|
fn() {
|
|
44
|
-
return !!(this.canManageInterpreters && this.hostSIEnabled);
|
|
44
|
+
return !!(this.canManageInterpreters && this.hostSIEnabled && this.locusUrl);
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
},
|
|
@@ -51,7 +51,7 @@ const SimultaneousInterpretation = WebexPlugin.extend({
|
|
|
51
51
|
*/
|
|
52
52
|
initialize() {
|
|
53
53
|
this.listenTo(this, 'change:shouldQuerySupportLanguages', () => {
|
|
54
|
-
if (this.
|
|
54
|
+
if (this.shouldQuerySupportLanguages && !this.supportLanguages) {
|
|
55
55
|
this.querySupportLanguages();
|
|
56
56
|
}
|
|
57
57
|
});
|
package/src/meeting/index.ts
CHANGED
|
@@ -241,6 +241,8 @@ export type CallStateForMetrics = {
|
|
|
241
241
|
sessionCorrelationId?: string;
|
|
242
242
|
joinTrigger?: string;
|
|
243
243
|
loginType?: string;
|
|
244
|
+
userNameInput?: string;
|
|
245
|
+
emailInput?: string;
|
|
244
246
|
};
|
|
245
247
|
|
|
246
248
|
export const MEDIA_UPDATE_TYPE = {
|
|
@@ -1627,6 +1629,38 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1627
1629
|
this.callStateForMetrics.correlationId = correlationId;
|
|
1628
1630
|
}
|
|
1629
1631
|
|
|
1632
|
+
/**
|
|
1633
|
+
* Getter - Returns callStateForMetrics.userNameInput
|
|
1634
|
+
* @returns {string}
|
|
1635
|
+
*/
|
|
1636
|
+
get userNameInput() {
|
|
1637
|
+
return this.callStateForMetrics?.userNameInput;
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
/**
|
|
1641
|
+
* Setter - sets callStateForMetrics.userNameInput
|
|
1642
|
+
* @param {string} userNameInput
|
|
1643
|
+
*/
|
|
1644
|
+
set userNameInput(userNameInput: string) {
|
|
1645
|
+
this.callStateForMetrics.userNameInput = userNameInput;
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
/**
|
|
1649
|
+
* Getter - Returns callStateForMetrics.emailInput
|
|
1650
|
+
* @returns {string}
|
|
1651
|
+
*/
|
|
1652
|
+
get emailInput() {
|
|
1653
|
+
return this.callStateForMetrics?.emailInput;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
/**
|
|
1657
|
+
* Setter - sets callStateForMetrics.emailInput
|
|
1658
|
+
* @param {string} emailInput
|
|
1659
|
+
*/
|
|
1660
|
+
set emailInput(emailInput: string) {
|
|
1661
|
+
this.callStateForMetrics.emailInput = emailInput;
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1630
1664
|
/**
|
|
1631
1665
|
* Getter - Returns callStateForMetrics.sessionCorrelationId
|
|
1632
1666
|
* @returns {string}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable valid-jsdoc */
|
|
2
2
|
import {defer} from 'lodash';
|
|
3
|
-
import {Defer} from '@webex/common';
|
|
3
|
+
import {Defer, transferEvents} from '@webex/common';
|
|
4
|
+
import {EventEmitter} from 'events';
|
|
4
5
|
import {WebexPlugin} from '@webex/webex-core';
|
|
5
6
|
import {MEDIA, HTTP_VERBS, ROAP} from '../constants';
|
|
6
7
|
import LoggerProxy from '../common/logs/logger-proxy';
|
|
@@ -250,12 +251,19 @@ export class LocusMediaRequest extends WebexPlugin {
|
|
|
250
251
|
this.confluenceState = 'creation in progress';
|
|
251
252
|
}
|
|
252
253
|
|
|
253
|
-
|
|
254
|
-
|
|
254
|
+
const upload = new EventEmitter();
|
|
255
|
+
const download = new EventEmitter();
|
|
256
|
+
|
|
257
|
+
const options = {
|
|
255
258
|
method: HTTP_VERBS.PUT,
|
|
256
259
|
uri,
|
|
257
260
|
body,
|
|
258
|
-
|
|
261
|
+
upload,
|
|
262
|
+
download,
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
// @ts-ignore
|
|
266
|
+
const promise = this.request(options)
|
|
259
267
|
.then((result) => {
|
|
260
268
|
if (isRequestAffectingConfluenceState(request)) {
|
|
261
269
|
this.confluenceState = 'created';
|
|
@@ -294,6 +302,21 @@ export class LocusMediaRequest extends WebexPlugin {
|
|
|
294
302
|
|
|
295
303
|
throw e;
|
|
296
304
|
});
|
|
305
|
+
|
|
306
|
+
if (request.type === 'RoapMessage') {
|
|
307
|
+
const setupProgressListener = (direction: string, eventEmitter: EventEmitter) => {
|
|
308
|
+
eventEmitter.on('progress', (progressEvent: ProgressEvent) => {
|
|
309
|
+
LoggerProxy.logger.info(
|
|
310
|
+
`${request.type}: ${direction} Progress, Timestamp: ${progressEvent.timeStamp}, Progress: ${progressEvent.loaded}/${progressEvent.total}`
|
|
311
|
+
);
|
|
312
|
+
});
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
setupProgressListener('Upload', options.upload);
|
|
316
|
+
setupProgressListener('Download', options.download);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
return promise;
|
|
297
320
|
}
|
|
298
321
|
|
|
299
322
|
/**
|
package/src/meetings/index.ts
CHANGED
|
@@ -854,7 +854,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
854
854
|
this.executeRegistrationStep(
|
|
855
855
|
() =>
|
|
856
856
|
this.startReachability('registration').catch((error) => {
|
|
857
|
-
LoggerProxy.logger.
|
|
857
|
+
LoggerProxy.logger.warn(`Meetings:index#register --> startReachability failed:`, error);
|
|
858
858
|
}),
|
|
859
859
|
'startReachability'
|
|
860
860
|
),
|
|
@@ -1054,22 +1054,44 @@ export class RemoteMediaManager extends EventsScope {
|
|
|
1054
1054
|
);
|
|
1055
1055
|
}
|
|
1056
1056
|
|
|
1057
|
+
/**
|
|
1058
|
+
* Set multiple remote video CSIs at once
|
|
1059
|
+
* @param remoteMediaCsis The remote medias and CSIs to set them to
|
|
1060
|
+
* @returns {void}
|
|
1061
|
+
*/
|
|
1062
|
+
public setRemoteVideoCsis(remoteMediaCsis: {remoteMedia: RemoteMedia; csi?: CSI | null}[]) {
|
|
1063
|
+
if (!remoteMediaCsis.length) {
|
|
1064
|
+
return;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
// Check all remote medias are known
|
|
1068
|
+
remoteMediaCsis.forEach(({remoteMedia}) => {
|
|
1069
|
+
if (!Object.values(this.media.video.memberPanes).includes(remoteMedia)) {
|
|
1070
|
+
throw new Error(`remoteMedia ${remoteMedia.id} not found`);
|
|
1071
|
+
}
|
|
1072
|
+
});
|
|
1073
|
+
|
|
1074
|
+
// Set remote video CSIs
|
|
1075
|
+
remoteMediaCsis.forEach(({remoteMedia, csi}) => {
|
|
1076
|
+
if (csi) {
|
|
1077
|
+
remoteMedia.sendMediaRequest(csi, false);
|
|
1078
|
+
} else {
|
|
1079
|
+
remoteMedia.cancelMediaRequest(false);
|
|
1080
|
+
}
|
|
1081
|
+
});
|
|
1082
|
+
|
|
1083
|
+
// Commit the changes
|
|
1084
|
+
this.mediaRequestManagers.video.commit();
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1057
1087
|
/**
|
|
1058
1088
|
* Sets a new CSI on a given remote media object
|
|
1059
1089
|
*
|
|
1060
1090
|
* @param {RemoteMedia} remoteMedia remote Media object to modify
|
|
1061
1091
|
* @param {CSI} csi new CSI value, can be null if we want to stop receiving media
|
|
1062
1092
|
*/
|
|
1063
|
-
public setRemoteVideoCsi(remoteMedia: RemoteMedia, csi
|
|
1064
|
-
|
|
1065
|
-
throw new Error('remoteMedia not found');
|
|
1066
|
-
}
|
|
1067
|
-
|
|
1068
|
-
if (csi) {
|
|
1069
|
-
remoteMedia.sendMediaRequest(csi, true);
|
|
1070
|
-
} else {
|
|
1071
|
-
remoteMedia.cancelMediaRequest(true);
|
|
1072
|
-
}
|
|
1093
|
+
public setRemoteVideoCsi(remoteMedia: RemoteMedia, csi?: CSI | null) {
|
|
1094
|
+
this.setRemoteVideoCsis([{remoteMedia, csi}]);
|
|
1073
1095
|
}
|
|
1074
1096
|
|
|
1075
1097
|
/**
|
|
@@ -143,6 +143,10 @@ export default class Reachability extends EventsScope {
|
|
|
143
143
|
* @memberof Reachability
|
|
144
144
|
*/
|
|
145
145
|
public async gatherReachability(trigger: string): Promise<ReachabilityResults> {
|
|
146
|
+
// @ts-ignore
|
|
147
|
+
if (!this.webex.config.meetings.enableReachabilityChecks) {
|
|
148
|
+
throw new Error('enableReachabilityChecks is disabled in config');
|
|
149
|
+
}
|
|
146
150
|
// Fetch clusters and measure latency
|
|
147
151
|
try {
|
|
148
152
|
this.lastTrigger = trigger;
|
|
@@ -6,33 +6,37 @@ const canUserStart = (
|
|
|
6
6
|
displayHints: Array<string>,
|
|
7
7
|
userPolicies: Record<SELF_POLICY, boolean>
|
|
8
8
|
): boolean =>
|
|
9
|
-
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_START)
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_START) &&
|
|
10
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD, userPolicies)) ||
|
|
11
|
+
(displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_START) &&
|
|
12
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_PREMISE_RECORD, userPolicies));
|
|
12
13
|
|
|
13
14
|
const canUserPause = (
|
|
14
15
|
displayHints: Array<string>,
|
|
15
16
|
userPolicies: Record<SELF_POLICY, boolean>
|
|
16
17
|
): boolean =>
|
|
17
|
-
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_PAUSE)
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_PAUSE) &&
|
|
19
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD, userPolicies)) ||
|
|
20
|
+
(displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_PAUSE) &&
|
|
21
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_PREMISE_RECORD, userPolicies));
|
|
20
22
|
|
|
21
23
|
const canUserResume = (
|
|
22
24
|
displayHints: Array<string>,
|
|
23
25
|
userPolicies: Record<SELF_POLICY, boolean>
|
|
24
26
|
): boolean =>
|
|
25
|
-
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_RESUME)
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_RESUME) &&
|
|
28
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD, userPolicies)) ||
|
|
29
|
+
(displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_RESUME) &&
|
|
30
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_PREMISE_RECORD, userPolicies));
|
|
28
31
|
|
|
29
32
|
const canUserStop = (
|
|
30
33
|
displayHints: Array<string>,
|
|
31
34
|
userPolicies: Record<SELF_POLICY, boolean>
|
|
32
35
|
): boolean =>
|
|
33
|
-
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_STOP)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
(displayHints.includes(DISPLAY_HINTS.RECORDING_CONTROL_STOP) &&
|
|
37
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_NETWORK_BASED_RECORD, userPolicies)) ||
|
|
38
|
+
(displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_STOP) &&
|
|
39
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_PREMISE_RECORD, userPolicies));
|
|
36
40
|
|
|
37
41
|
const isPremiseRecordingEnabled = (
|
|
38
42
|
displayHints: Array<string>,
|
|
@@ -42,7 +46,7 @@ const isPremiseRecordingEnabled = (
|
|
|
42
46
|
displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_PAUSE) ||
|
|
43
47
|
displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_STOP) ||
|
|
44
48
|
displayHints.includes(DISPLAY_HINTS.PREMISE_RECORDING_CONTROL_RESUME)) &&
|
|
45
|
-
MeetingUtil.selfSupportsFeature(SELF_POLICY.
|
|
49
|
+
MeetingUtil.selfSupportsFeature(SELF_POLICY.SUPPORT_PREMISE_RECORD, userPolicies);
|
|
46
50
|
|
|
47
51
|
const extractLocusId = (url: string) => {
|
|
48
52
|
return url?.split('/').pop();
|
package/src/webinar/index.ts
CHANGED
|
@@ -22,16 +22,54 @@ describe('plugin-meetings', () => {
|
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
describe('#initialize', () => {
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
interpretation.querySupportLanguages = sinon.stub();
|
|
27
|
+
interpretation.set({
|
|
28
|
+
canManageInterpreters: undefined,
|
|
29
|
+
hostSIEnabled: undefined,
|
|
30
|
+
locusUrl: undefined
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
afterEach(() => {
|
|
35
|
+
interpretation.querySupportLanguages.reset();
|
|
36
|
+
});
|
|
37
|
+
|
|
25
38
|
it('creates SimultaneousInterpretation as expected', () => {
|
|
26
39
|
assert.equal(interpretation.namespace, 'Meetings');
|
|
27
40
|
});
|
|
28
41
|
it('call querySupportLanguages correctly when meet the conditions', () => {
|
|
29
|
-
interpretation.querySupportLanguages = sinon.stub();
|
|
30
42
|
interpretation.set({
|
|
31
43
|
canManageInterpreters: true,
|
|
44
|
+
hostSIEnabled: true,
|
|
45
|
+
locusUrl: "MOCK_LOCUS_URL"
|
|
32
46
|
});
|
|
33
47
|
assert.called(interpretation.querySupportLanguages);
|
|
34
48
|
});
|
|
49
|
+
|
|
50
|
+
it('does not call querySupportLanguages when canManageInterpreters is not set', () => {
|
|
51
|
+
interpretation.set({
|
|
52
|
+
hostSIEnabled: true,
|
|
53
|
+
locusUrl: "MOCK_LOCUS_URL"
|
|
54
|
+
});
|
|
55
|
+
assert.notCalled(interpretation.querySupportLanguages);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('does not call querySupportLanguages when hostSIEnabled is not set', () => {
|
|
59
|
+
interpretation.set({
|
|
60
|
+
canManageInterpreters: true,
|
|
61
|
+
locusUrl: "MOCK_LOCUS_URL"
|
|
62
|
+
});
|
|
63
|
+
assert.notCalled(interpretation.querySupportLanguages);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('does not call querySupportLanguages when locusUrl is not set', () => {
|
|
67
|
+
interpretation.set({
|
|
68
|
+
canManageInterpreters: true,
|
|
69
|
+
hostSIEnabled: true,
|
|
70
|
+
});
|
|
71
|
+
assert.notCalled(interpretation.querySupportLanguages);
|
|
72
|
+
});
|
|
35
73
|
});
|
|
36
74
|
|
|
37
75
|
describe('#cleanUp', () => {
|