@webex/plugin-meetings 2.59.4 → 2.59.6-next.1

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 (148) hide show
  1. package/dist/common/browser-detection.js +2 -2
  2. package/dist/common/browser-detection.js.map +1 -1
  3. package/dist/common/collection.js +2 -2
  4. package/dist/common/collection.js.map +1 -1
  5. package/dist/config.js +2 -2
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.js +0 -2
  8. package/dist/constants.js.map +1 -1
  9. package/dist/controls-options-manager/index.js +2 -2
  10. package/dist/controls-options-manager/index.js.map +1 -1
  11. package/dist/locus-info/controlsUtils.js +6 -6
  12. package/dist/locus-info/controlsUtils.js.map +1 -1
  13. package/dist/locus-info/index.js +18 -18
  14. package/dist/locus-info/index.js.map +1 -1
  15. package/dist/locus-info/parser.js +2 -2
  16. package/dist/locus-info/parser.js.map +1 -1
  17. package/dist/meeting/index.js +28 -51
  18. package/dist/meeting/index.js.map +1 -1
  19. package/dist/meeting/request.js +2 -2
  20. package/dist/meeting/request.js.map +1 -1
  21. package/dist/meeting/util.js +4 -4
  22. package/dist/meeting/util.js.map +1 -1
  23. package/dist/meeting-info/collection.js +2 -2
  24. package/dist/meeting-info/collection.js.map +1 -1
  25. package/dist/meeting-info/meeting-info-v2.js +7 -1
  26. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  27. package/dist/meetings/collection.js +2 -2
  28. package/dist/meetings/collection.js.map +1 -1
  29. package/dist/members/index.js +2 -2
  30. package/dist/members/index.js.map +1 -1
  31. package/dist/metrics/constants.js +0 -2
  32. package/dist/metrics/constants.js.map +1 -1
  33. package/dist/metrics/index.js +2 -2
  34. package/dist/metrics/index.js.map +1 -1
  35. package/dist/reachability/index.js +9 -2
  36. package/dist/reachability/index.js.map +1 -1
  37. package/dist/statsAnalyzer/global.js +12 -4
  38. package/dist/statsAnalyzer/global.js.map +1 -1
  39. package/dist/statsAnalyzer/index.js +14 -56
  40. package/dist/statsAnalyzer/index.js.map +1 -1
  41. package/dist/statsAnalyzer/mqaUtil.js +15 -15
  42. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  43. package/package.json +22 -21
  44. package/src/config.ts +2 -2
  45. package/src/constants.ts +0 -2
  46. package/src/meeting/index.ts +0 -35
  47. package/src/meeting-info/meeting-info-v2.ts +1 -1
  48. package/src/metrics/constants.ts +0 -2
  49. package/src/statsAnalyzer/global.ts +10 -2
  50. package/src/statsAnalyzer/index.ts +17 -80
  51. package/test/unit/spec/meeting/index.js +6 -77
  52. package/test/unit/spec/meeting-info/meetinginfov2.js +1 -1
  53. package/test/unit/spec/stats-analyzer/index.js +0 -151
  54. package/dist/common/browser-detection.d.ts +0 -9
  55. package/dist/common/collection.d.ts +0 -48
  56. package/dist/common/config.d.ts +0 -2
  57. package/dist/common/errors/captcha-error.d.ts +0 -15
  58. package/dist/common/errors/intent-to-join.d.ts +0 -16
  59. package/dist/common/errors/join-meeting.d.ts +0 -17
  60. package/dist/common/errors/media.d.ts +0 -15
  61. package/dist/common/errors/parameter.d.ts +0 -15
  62. package/dist/common/errors/password-error.d.ts +0 -15
  63. package/dist/common/errors/permission.d.ts +0 -14
  64. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  65. package/dist/common/errors/reconnection.d.ts +0 -15
  66. package/dist/common/errors/stats.d.ts +0 -15
  67. package/dist/common/errors/webex-errors.d.ts +0 -81
  68. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  69. package/dist/common/events/events-scope.d.ts +0 -17
  70. package/dist/common/events/events.d.ts +0 -12
  71. package/dist/common/events/trigger-proxy.d.ts +0 -2
  72. package/dist/common/events/util.d.ts +0 -2
  73. package/dist/common/logs/logger-config.d.ts +0 -2
  74. package/dist/common/logs/logger-proxy.d.ts +0 -2
  75. package/dist/common/logs/request.d.ts +0 -34
  76. package/dist/common/queue.d.ts +0 -32
  77. package/dist/config.d.ts +0 -73
  78. package/dist/constants.d.ts +0 -926
  79. package/dist/controls-options-manager/constants.d.ts +0 -4
  80. package/dist/controls-options-manager/enums.d.ts +0 -5
  81. package/dist/controls-options-manager/index.d.ts +0 -120
  82. package/dist/controls-options-manager/util.d.ts +0 -7
  83. package/dist/index.d.ts +0 -4
  84. package/dist/locus-info/controlsUtils.d.ts +0 -2
  85. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  86. package/dist/locus-info/fullState.d.ts +0 -2
  87. package/dist/locus-info/hostUtils.d.ts +0 -2
  88. package/dist/locus-info/index.d.ts +0 -269
  89. package/dist/locus-info/infoUtils.d.ts +0 -2
  90. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  91. package/dist/locus-info/parser.d.ts +0 -212
  92. package/dist/locus-info/selfUtils.d.ts +0 -2
  93. package/dist/media/index.d.ts +0 -32
  94. package/dist/media/properties.d.ts +0 -108
  95. package/dist/media/util.d.ts +0 -2
  96. package/dist/mediaQualityMetrics/config.d.ts +0 -233
  97. package/dist/meeting/effectsState.d.ts +0 -42
  98. package/dist/meeting/in-meeting-actions.d.ts +0 -79
  99. package/dist/meeting/index.d.ts +0 -1621
  100. package/dist/meeting/muteState.d.ts +0 -116
  101. package/dist/meeting/request.d.ts +0 -255
  102. package/dist/meeting/state.d.ts +0 -9
  103. package/dist/meeting/util.d.ts +0 -2
  104. package/dist/meeting-info/collection.d.ts +0 -20
  105. package/dist/meeting-info/index.d.ts +0 -57
  106. package/dist/meeting-info/meeting-info-v2.d.ts +0 -93
  107. package/dist/meeting-info/request.d.ts +0 -22
  108. package/dist/meeting-info/util.d.ts +0 -2
  109. package/dist/meeting-info/utilv2.d.ts +0 -2
  110. package/dist/meetings/collection.d.ts +0 -23
  111. package/dist/meetings/index.d.ts +0 -296
  112. package/dist/meetings/request.d.ts +0 -27
  113. package/dist/meetings/util.d.ts +0 -18
  114. package/dist/member/index.d.ts +0 -147
  115. package/dist/member/member.types.d.ts +0 -11
  116. package/dist/member/util.d.ts +0 -2
  117. package/dist/members/collection.d.ts +0 -24
  118. package/dist/members/index.d.ts +0 -298
  119. package/dist/members/request.d.ts +0 -50
  120. package/dist/members/util.d.ts +0 -2
  121. package/dist/metrics/config.d.ts +0 -169
  122. package/dist/metrics/constants.d.ts +0 -59
  123. package/dist/metrics/index.d.ts +0 -152
  124. package/dist/networkQualityMonitor/index.d.ts +0 -70
  125. package/dist/peer-connection-manager/index.d.ts +0 -6
  126. package/dist/peer-connection-manager/util.d.ts +0 -6
  127. package/dist/personal-meeting-room/index.d.ts +0 -47
  128. package/dist/personal-meeting-room/request.d.ts +0 -14
  129. package/dist/personal-meeting-room/util.d.ts +0 -2
  130. package/dist/reachability/index.d.ts +0 -139
  131. package/dist/reachability/request.d.ts +0 -35
  132. package/dist/reactions/reactions.d.ts +0 -4
  133. package/dist/reactions/reactions.type.d.ts +0 -32
  134. package/dist/reconnection-manager/index.d.ts +0 -112
  135. package/dist/recording-controller/enums.d.ts +0 -7
  136. package/dist/recording-controller/index.d.ts +0 -193
  137. package/dist/recording-controller/util.d.ts +0 -13
  138. package/dist/roap/collection.d.ts +0 -10
  139. package/dist/roap/handler.d.ts +0 -47
  140. package/dist/roap/index.d.ts +0 -116
  141. package/dist/roap/request.d.ts +0 -35
  142. package/dist/roap/state.d.ts +0 -9
  143. package/dist/roap/turnDiscovery.d.ts +0 -67
  144. package/dist/roap/util.d.ts +0 -2
  145. package/dist/statsAnalyzer/global.d.ts +0 -118
  146. package/dist/statsAnalyzer/index.d.ts +0 -193
  147. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -22
  148. package/dist/transcription/index.d.ts +0 -64
@@ -23,8 +23,8 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
23
23
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
24
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
25
25
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
26
- var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
27
26
  var _uuid = _interopRequireDefault(require("uuid"));
27
+ var _lodash = require("lodash");
28
28
  var _webexCore = require("@webex/webex-core");
29
29
  var _common = require("@webex/common");
30
30
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
@@ -44,7 +44,7 @@ var MeetingRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
44
44
  (0, _classCallCheck2.default)(this, MeetingRequest);
45
45
  _this = _super.call(this, attrs, options);
46
46
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "changeVideoLayoutDebounced", void 0);
47
- _this.changeVideoLayoutDebounced = (0, _debounce2.default)(_this.changeVideoLayout, 2000, {
47
+ _this.changeVideoLayoutDebounced = (0, _lodash.debounce)(_this.changeVideoLayout, 2000, {
48
48
  leading: true,
49
49
  trailing: true
50
50
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_common","_loggerProxy","_constants","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingRequest","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_assertThisInitialized2","changeVideoLayoutDebounced","_debounce2","changeVideoLayout","leading","trailing","_createClass2","value","_joinMeeting","_asyncToGenerator2","_regenerator","mark","_callee","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","url","body","wrap","_callee$","_context","prev","next","LoggerProxy","logger","info","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","concat","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","t0","error","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","abrupt","request","method","HTTP_VERBS","POST","uri","stop","joinMeeting","_x","refreshCaptcha","_ref","captchaRefreshUrl","captchaId","catch","err","dialIn","_ref2","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOut","_ref3","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","syncMeeting","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","getFullLocus","_promise","reject","disconnectPhoneAudio","_ref4","phoneUrl","selfId","LEAVE","PUT","leaveMeeting","_ref5","acknowledgeMeeting","ALERT","lockMeeting","CONTROLS","lock","locked","PATCH","declineMeeting","DECLINE","reason","remoteAudioVideoToggle","_options$preferTransc","MEDIA","changeMeetingFloor","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","sendDTMF","_ref6","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","_ref7","layoutType","main","content","width","height","Error","_stringify","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","endMeetingForAll","_ref8","END","keepAlive","_ref9","keepAliveUrl","sendReaction","_ref10","reactionChannelUrl","reaction","participantId","sender","StatelessWebexPlugin","exports"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n} from '../constants';\nimport {Reaction} from '../reactions/reactions.type';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n\n constructor(attrs: any, options: any) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n if (this.webex.meetings.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options: {desync: boolean; syncUrl: string}) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl\n .concat(syncUrl.split('?')[1] ? '&' : '?')\n .concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl,\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`\n );\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options: {desync: boolean; locusUrl: string}) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`\n );\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @returns {Promise}\n */\n remoteAudioVideoToggle(\n options:\n | {\n selfId: string;\n locusUrl: string;\n deviceUrl: string;\n resourceId: string;\n localMedias: string;\n }\n | any\n ) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({\n reactionChannelUrl,\n reaction,\n participantId,\n }: {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n }) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAkBsB,SAAAK,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,YAAA,CAAAH,MAAA,OAAAI,6BAAA,QAAAC,OAAA,GAAAD,6BAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAC,gCAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAmB,MAAA,CAAAD,MAAA,OAAAE,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAT,MAAA,EAAAO,GAAA,EAAAH,MAAA,CAAAG,GAAA,SAAAG,iCAAA,GAAAC,wBAAA,CAAAX,MAAA,EAAAU,iCAAA,CAAAN,MAAA,KAAAlB,OAAA,CAAAmB,MAAA,CAAAD,MAAA,GAAAE,OAAA,WAAAC,GAAA,IAAAK,sBAAA,CAAAZ,MAAA,EAAAO,GAAA,EAAAZ,gCAAA,CAAAS,MAAA,EAAAG,GAAA,iBAAAP,MAAA;AAAA,SAAAa,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAV,OAAA,EAAAK,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAAV,OAAA,QAAAa,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAL,KAAA,EAAAhB,SAAA,EAAAmB,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAApB,KAAA,OAAAI,SAAA,gBAAAsB,2BAAA,CAAAf,OAAA,QAAAW,MAAA;AAAA,SAAAJ,0BAAA,eAAAS,OAAA,qBAAAF,kBAAA,oBAAAA,kBAAA,CAAAG,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAR,kBAAA,CAAAK,OAAA,8CAAAI,CAAA;AAGtB;AACA;AACA;AAFA,IAGqBC,cAAc,0BAAAC,qBAAA;EAAA,IAAAC,UAAA,CAAA1B,OAAA,EAAAwB,cAAA,EAAAC,qBAAA;EAAA,IAAAE,MAAA,GAAAvB,YAAA,CAAAoB,cAAA;EAGjC,SAAAA,eAAYI,KAAU,EAAEC,OAAY,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAA/B,OAAA,QAAAwB,cAAA;IACpCM,KAAA,GAAAH,MAAA,CAAAL,IAAA,OAAMM,KAAK,EAAEC,OAAO;IAAE,IAAA9B,gBAAA,CAAAC,OAAA,MAAAgC,uBAAA,CAAAhC,OAAA,EAAA8B,KAAA;IACtBA,KAAA,CAAKG,0BAA0B,GAAG,IAAAC,UAAA,CAAAlC,OAAA,EAAS8B,KAAA,CAAKK,iBAAiB,EAAE,IAAI,EAAE;MACvEC,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAAC,OAAAP,KAAA;EACL;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAdE,IAAAQ,aAAA,CAAAtC,OAAA,EAAAwB,cAAA;IAAA1B,GAAA;IAAAyC,KAAA;MAAA,IAAAC,YAAA,OAAAC,kBAAA,CAAAzC,OAAA,gBAAA0C,YAAA,CAAA1C,OAAA,CAAA2C,IAAA,CAeA,SAAAC,QAAkBf,OAgBjB;QAAA,IAAAgB,kBAAA,EAAAC,cAAA,EAAAC,aAAA,EAAAC,eAAA,EAAAC,SAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,aAAA,EAAAC,kBAAA,EAAAC,SAAA,EAAAC,GAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,iBAAA,EAAAC,GAAA,EAAAC,IAAA;QAAA,OAAAlB,YAAA,CAAA1C,OAAA,CAAA6D,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAEGpB,kBAAkB,GAchBhB,OAAO,CAdTgB,kBAAkB,EAClBC,cAAc,GAaZjB,OAAO,CAbTiB,cAAc,EACdC,aAAa,GAYXlB,OAAO,CAZTkB,aAAa,EACbC,eAAe,GAWbnB,OAAO,CAXTmB,eAAe,EACfC,SAAS,GAUPpB,OAAO,CAVToB,SAAS,EACTC,QAAQ,GASNrB,OAAO,CATTqB,QAAQ,EACRC,UAAU,GAQRtB,OAAO,CARTsB,UAAU,EACVC,aAAa,GAOXvB,OAAO,CAPTuB,aAAa,EACbC,kBAAkB,GAMhBxB,OAAO,CANTwB,kBAAkB,EAClBC,SAAS,GAKPzB,OAAO,CALTyB,SAAS,EACTC,GAAG,GAID1B,OAAO,CAJT0B,GAAG,EACHC,cAAc,GAGZ3B,OAAO,CAHT2B,cAAc,EACdC,WAAW,GAET5B,OAAO,CAFT4B,WAAW,EACXC,iBAAiB,GACf7B,OAAO,CADT6B,iBAAiB;cAGnBQ,oBAAW,CAACC,MAAM,CAACC,IAAI,CAAC,mDAAmD,EAAEhB,aAAa,CAAC;cAEvFO,GAAG,GAAG,EAAE;cAENC,IAAS,GAAG;gBAChBf,kBAAkB,EAAlBA,kBAAkB;gBAClBwB,MAAM,EAAE;kBACNV,GAAG,EAAEV,SAAS;kBACd;kBACAqB,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF;gBACnC,CAAC;gBACDG,aAAa,EAAEtB,UAAU,IAAI,IAAI;gBACjCuB,mBAAmB,EAAGvB,UAAU,IAAIK,cAAc,IAAK,KAAK;gBAC5DJ,aAAa,EAAbA,aAAa;gBACbuB,WAAW,EAAE,IAAI;gBACjBC,gBAAgB,EAAE,IAAI;gBACtBvB,kBAAkB,EAAEA,kBAAkB,IAAI,KAAK;gBAC/CwB,mBAAmB,EAAE,CAAC;gBACtBC,sBAAsB,EAAE;kBACtBpB,iBAAiB,EAAEA,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI;gBAC1C;cACF,CAAC,EAED;cACA,IAAI,IAAI,CAACqB,KAAK,CAACP,QAAQ,CAACQ,YAAY,EAAE;gBACpC;gBACApB,IAAI,CAACS,MAAM,CAACY,WAAW,GAAG,IAAI,CAACF,KAAK,CAACP,QAAQ,CAACQ,YAAY,CAACC,WAAW;gBACtE;gBACArB,IAAI,CAACS,MAAM,CAACa,UAAU,GAAG,IAAI,CAACH,KAAK,CAACP,QAAQ,CAACQ,YAAY,CAACE,UAAU;cACtE;cAEA,IAAI5B,SAAS,KAAK6B,SAAS,EAAE;gBAC3BvB,IAAI,CAACN,SAAS,GAAGA,SAAS;cAC5B;cAEA,IAAIN,eAAe,EAAE;gBACnBY,IAAI,CAACZ,eAAe,GAAGA,eAAe;cACxC;cAEA,IAAIO,GAAG,KAAK4B,SAAS,EAAE;gBACrBvB,IAAI,CAACL,GAAG,GAAGA,GAAG;cAChB;cAAC,KAEGL,QAAQ;gBAAAa,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACVN,GAAG,MAAAyB,MAAA,CAAMlC,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,CAAE;cAACtB,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,MAC1BnB,cAAc,IAAIC,aAAa;gBAAAgB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAGhC,IAAI,CAACc,KAAK,CAACO,QAAQ,CAACC,QAAQ,CAACC,cAAc,CAAC,UAAU,CAAC;YAAA;cAC7D;cACA7B,GAAG,MAAAyB,MAAA,CAAM,IAAI,CAACL,KAAK,CAACO,QAAQ,CAACC,QAAQ,CAACE,GAAG,CAAC,OAAO,CAAC,OAAAL,MAAA,CAAIM,eAAI,OAAAN,MAAA,CAAIO,eAAI,CAAE;cACpE/B,IAAI,CAACgC,OAAO,GAAG;gBACbC,OAAO,EAAE/C,cAAc,aAAAsC,MAAA,CAAarC,aAAa;cACnD,CAAC;cAACgB,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAA+B,EAAA,GAAA/B,QAAA;cAEFG,oBAAW,CAACC,MAAM,CAAC4B,KAAK,8CAAAX,MAAA,CACuBtC,cAAc,IAAIC,aAAa,WAAAqC,MAAA,CAAArB,QAAA,CAAA+B,EAAA,EAC7E;cAAC,MAAA/B,QAAA,CAAA+B,EAAA;YAAA;cAKN;cACAnC,GAAG,GAAGA,GAAG,CAACyB,MAAM,KAAAA,MAAA,CAAKY,kCAAuB,EAAG;cAE/C,IAAI7C,UAAU,KAAKL,cAAc,EAAE;gBACjCc,IAAI,CAACqC,eAAe,GAAG;kBACrBC,cAAc,EAAE,CAACC,mBAAQ;gBAC3B,CAAC;cACH;cAEA,IAAI1C,WAAW,EAAE;gBACfG,IAAI,CAACwC,WAAW,GAAG3C,WAAW,CAAC2C,WAAW;cAC5C;;cAEA;cAAA,OAAArC,QAAA,CAAAsC,MAAA,WACO,IAAI,CAACC,OAAO,CAAC;gBAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;gBACvBC,GAAG,EAAE/C,GAAG;gBACRC,IAAI,EAAJA;cACF,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAA4C,IAAA;UAAA;QAAA,GAAA/D,OAAA;MAAA,CACH;MAAA,SAAAgE,YAAAC,EAAA;QAAA,OAAArE,YAAA,CAAAnD,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAmH,WAAA;IAAA;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA9G,GAAA;IAAAyC,KAAA,EAQA,SAAAuE,eAAAC,IAAA,EAMG;MAAA,IALDC,iBAAiB,GAAAD,IAAA,CAAjBC,iBAAiB;QACjBC,SAAS,GAAAF,IAAA,CAATE,SAAS;MAKT,IAAMrD,IAAI,GAAG;QACXqD,SAAS,EAATA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACX,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAEM,iBAAiB;QACtBpD,IAAI,EAAJA;MACF,CAAC,CAAC,CAACsD,KAAK,CAAC,UAACC,GAAG,EAAK;QAChBjD,oBAAW,CAACC,MAAM,CAAC4B,KAAK,8CAAAX,MAAA,CAA8C+B,GAAG,EAAG;QAE5E,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAArH,GAAA;IAAAyC,KAAA,EAUA,SAAA6E,OAAAC,KAAA,EAUG;MAAA,IATDnE,QAAQ,GAAAmE,KAAA,CAARnE,QAAQ;QACRoE,SAAS,GAAAD,KAAA,CAATC,SAAS;QACTC,SAAS,GAAAF,KAAA,CAATE,SAAS;QACTnE,aAAa,GAAAiE,KAAA,CAAbjE,aAAa;MAObc,oBAAW,CAACC,MAAM,CAACC,IAAI,CACrB,0DAA0D,EAC1DhB,aAAa,CACd;MACD,IAAMsD,GAAG,MAAAtB,MAAA,CAAMlC,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,CAAE;MAExC,IAAMzB,IAAI,GAAG;QACXS,MAAM,EAAE;UACNC,UAAU,EAAEA,kBAAU,CAACkD,WAAW;UAClCC,eAAe,EAAEC,mCAAwB;UACzC/D,GAAG,EAAE2D,SAAS;UACdC,SAAS,EAATA;QACF,CAAC;QACDnE,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACkD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC,CAACsD,KAAK,CAAC,UAACC,GAAG,EAAK;QAChBjD,oBAAW,CAACC,MAAM,CAAC4B,KAAK,0EAAAX,MAAA,CACmD+B,GAAG,EAC7E;QAED,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAVE;IAAArH,GAAA;IAAAyC,KAAA,EAWA,SAAAoF,QAAAC,KAAA,EAYG;MAAA,IAXD1E,QAAQ,GAAA0E,KAAA,CAAR1E,QAAQ;QACR2E,UAAU,GAAAD,KAAA,CAAVC,UAAU;QACVC,WAAW,GAAAF,KAAA,CAAXE,WAAW;QACXP,SAAS,GAAAK,KAAA,CAATL,SAAS;QACTnE,aAAa,GAAAwE,KAAA,CAAbxE,aAAa;MAQbc,oBAAW,CAACC,MAAM,CAACC,IAAI,CACrB,4DAA4D,EAC5DhB,aAAa,CACd;MACD,IAAMsD,GAAG,MAAAtB,MAAA,CAAMlC,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,CAAE;MAExC,IAAMzB,IAAI,GAAG;QACXS,MAAM,EAAE;UACNC,UAAU,EAAEA,kBAAU,CAACkD,WAAW;UAClCC,eAAe,EAAEM,oCAAyB;UAC1CpE,GAAG,EAAEkE,UAAU;UACfG,cAAc,EAAEF,WAAW;UAC3BP,SAAS,EAATA;QACF,CAAC;QACDnE,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACkD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC,CAACsD,KAAK,CAAC,UAACC,GAAG,EAAK;QAChBjD,oBAAW,CAACC,MAAM,CAAC4B,KAAK,4EAAAX,MAAA,CACqD+B,GAAG,EAC/E;QAED,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAArH,GAAA;IAAAyC,KAAA,EAOA,SAAA0F,YAAYpG,OAA2C,EAAE;MACvD;MACA,IAAOqG,MAAM,GAAIrG,OAAO,CAAjBqG,MAAM;MACb,IAAKC,OAAO,GAAItG,OAAO,CAAlBsG,OAAO;;MAEZ;MACA,IAAID,MAAM,EAAE;QACV;QACAC,OAAO,GAAGA,OAAO,CACd/C,MAAM,CAAC+C,OAAO,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CACzChD,MAAM,IAAAA,MAAA,CAAIiD,gBAAK,CAACC,SAAS,OAAAlD,MAAA,CAAI8C,MAAM,EAAG;MAC3C;;MAEA;MACA,OAAO,IAAI,CAAC5B,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAAC+B,GAAG;QACtB7B,GAAG,EAAEyB;MACP,CAAC,CAAC,CAAC;MAAA,CACAjB,KAAK,CAAC,UAACC,GAAG,EAAK;QACdjD,oBAAW,CAACC,MAAM,CAAC4B,KAAK,iEAAAX,MAAA,CAC0C+B,GAAG,EACpE;QAED,OAAOA,GAAG;MACZ,CAAC,CAAC;IACN;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAArH,GAAA;IAAAyC,KAAA,EAOA,SAAAiG,aAAa3G,OAA4C,EAAE;MACzD,IAAKqB,QAAQ,GAAIrB,OAAO,CAAnBqB,QAAQ;MACb,IAAOgF,MAAM,GAAIrG,OAAO,CAAjBqG,MAAM;MAEb,IAAIhF,QAAQ,EAAE;QACZ,IAAIgF,MAAM,EAAE;UACVhF,QAAQ,QAAAkC,MAAA,CAAQiD,gBAAK,CAACC,SAAS,OAAAlD,MAAA,CAAI8C,MAAM,CAAE;QAC7C;;QAEA;QACA,OAAO,IAAI,CAAC5B,OAAO,CAAC;UAClBC,MAAM,EAAEC,qBAAU,CAAC+B,GAAG;UACtB7B,GAAG,EAAExD;QACP,CAAC,CAAC,CAACgE,KAAK,CAAC,UAACC,GAAG,EAAK;UAChBjD,oBAAW,CAACC,MAAM,CAAC4B,KAAK,qEAAAX,MAAA,CAC8C+B,GAAG,EACxE;UAED,OAAOA,GAAG;QACZ,CAAC,CAAC;MACJ;MAEA,OAAOsB,QAAA,CAAAzI,OAAA,CAAQ0I,MAAM,EAAE;IACzB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAA5I,GAAA;IAAAyC,KAAA,EAUA,SAAAoG,qBAAAC,KAAA,EAUG;MAAA,IATD1F,QAAQ,GAAA0F,KAAA,CAAR1F,QAAQ;QACR2F,QAAQ,GAAAD,KAAA,CAARC,QAAQ;QACRzF,aAAa,GAAAwF,KAAA,CAAbxF,aAAa;QACb0F,MAAM,GAAAF,KAAA,CAANE,MAAM;MAON5E,oBAAW,CAACC,MAAM,CAACC,IAAI,2DAAAgB,MAAA,CACqCyD,QAAQ,gBAClEzF,aAAa,CACd;MACD,IAAMsD,GAAG,MAAAtB,MAAA,CAAMlC,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,OAAAD,MAAA,CAAI0D,MAAM,OAAA1D,MAAA,CAAI2D,gBAAK,CAAE;MAE3D,IAAMnF,IAAI,GAAG;QACXS,MAAM,EAAE;UACNC,UAAU,EAAEA,kBAAU,CAACkD,WAAW;UAClC7D,GAAG,EAAEkF;QACP,CAAC;QACDzF,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACkD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBtC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC,CAACsD,KAAK,CAAC,UAACC,GAAG,EAAK;QAChBjD,oBAAW,CAACC,MAAM,CAAC4B,KAAK,yEAAAX,MAAA,CACkDyD,QAAQ,uBAAAzD,MAAA,CAAoB+B,GAAG,EACxG;QAED,MAAMA,GAAG;MACX,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAArH,GAAA;IAAAyC,KAAA,EAUA,SAAA0G,aAAAC,KAAA,EAYG;MAAA,IAXDhG,QAAQ,GAAAgG,KAAA,CAARhG,QAAQ;QACR4F,MAAM,GAAAI,KAAA,CAANJ,MAAM;QACKnF,GAAG,GAAAuF,KAAA,CAAdjG,SAAS;QACTE,UAAU,GAAA+F,KAAA,CAAV/F,UAAU;QACVC,aAAa,GAAA8F,KAAA,CAAb9F,aAAa;MAQbc,oBAAW,CAACC,MAAM,CAACC,IAAI,CAAC,oDAAoD,EAAEhB,aAAa,CAAC;MAE5F,IAAMsD,GAAG,MAAAtB,MAAA,CAAMlC,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,OAAAD,MAAA,CAAI0D,MAAM,OAAA1D,MAAA,CAAI2D,gBAAK,CAAE;MAC3D,IAAMnF,IAAI,GAAG;QACXS,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CX,GAAG,EAAHA;QACF,CAAC;QACDc,aAAa,EAAEtB,UAAU,IAAI,IAAI;QACjCC,aAAa,EAAbA;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACkD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBtC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA9D,GAAA;IAAAyC,KAAA,EAQA,SAAA4G,mBAAmBtH,OAAqE,EAAE;MACxF,IAAM6E,GAAG,MAAAtB,MAAA,CAAMvD,OAAO,CAACqB,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,OAAAD,MAAA,CAAIgE,gBAAK,CAAE;MACzD,IAAMxF,IAAI,GAAG;QACXS,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CX,GAAG,EAAE9B,OAAO,CAACoB;QACf,CAAC;QACDG,aAAa,EAAEvB,OAAO,CAACuB;MACzB,CAAC;;MAED;MACA,OAAO,IAAI,CAACkD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBtC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;EAAC;IAAA9D,GAAA;IAAAyC,KAAA,EAED,SAAA8G,YAAYxH,OAAO,EAAE;MACnB,IAAM6E,GAAG,MAAAtB,MAAA,CAAMvD,OAAO,CAACqB,QAAQ,OAAAkC,MAAA,CAAIkE,mBAAQ,CAAE;MAC7C,IAAM1F,IAAI,GAAG;QACX2F,IAAI,EAAE;UACJC,MAAM,EAAE3H,OAAO,CAAC0H;QAClB;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACjD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACiD,KAAK;QACxB/C,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA9D,GAAA;IAAAyC,KAAA,EAQA,SAAAmH,eAAe7H,OAA8D,EAAE;MAC7E,IAAM6E,GAAG,MAAAtB,MAAA,CAAMvD,OAAO,CAACqB,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,OAAAD,MAAA,CAAIuE,kBAAO,CAAE;MAC3D,IAAM/F,IAAI,GAAAtE,aAAA;QACR+E,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CX,GAAG,EAAE9B,OAAO,CAACoB;QACf;MAAC,GACGpB,OAAO,CAAC+H,MAAM,IAAI;QAACA,MAAM,EAAE/H,OAAO,CAAC+H;MAAM,CAAC,CAC/C;;MAED;MACA,OAAO,IAAI,CAACtD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBtC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAA9D,GAAA;IAAAyC,KAAA,EAUA,SAAAsH,uBACEhI,OAQO,EACP;MAAA,IAAAiI,qBAAA;MACA,IAAMpD,GAAG,MAAAtB,MAAA,CAAMvD,OAAO,CAACqB,QAAQ,OAAAkC,MAAA,CAAIC,sBAAW,OAAAD,MAAA,CAAIvD,OAAO,CAACiH,MAAM,OAAA1D,MAAA,CAAI2E,gBAAK,CAAE;MAC3E,IAAMnG,IAAI,GAAG;QACXS,MAAM,EAAE;UACN;UACAC,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;UAC3CX,GAAG,EAAE9B,OAAO,CAACoB;QACf,CAAC;QACDwB,aAAa,EAAE5C,OAAO,CAACsB,UAAU,IAAI,IAAI;QACzCC,aAAa,EAAEvB,OAAO,CAACuB,aAAa;QACpCuB,WAAW,EAAE,IAAI;QACjByB,WAAW,EAAEvE,OAAO,CAACuE,WAAW;QAChCtB,sBAAsB,EAAE;UACtBpB,iBAAiB,GAAAoG,qBAAA,GAAEjI,OAAO,CAAC6B,iBAAiB,cAAAoG,qBAAA,cAAAA,qBAAA,GAAI;QAClD;MACF,CAAC;;MAED;MACA,OAAO,IAAI,CAACxD,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBtC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EATE;IAAA9D,GAAA;IAAAyC,KAAA,EAUA,SAAAyH,mBACEnI,OAQO,EACP;MACA,IAAIoI,QAAa,GAAG;QAACC,WAAW,EAAErI,OAAO,CAACqI;MAAW,CAAC;;MAEtD;MACA,IAAIrI,OAAO,CAACqI,WAAW,KAAKC,uBAAY,CAACC,OAAO,EAAE;QAChDH,QAAQ,GAAG;UACTI,WAAW,EAAE;YACX1G,GAAG,EAAE9B,OAAO,CAACyI,SAAS;YACtBC,OAAO,EAAE,CACP;cACE;cACAjG,UAAU,EAAE,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,UAAU;cAC3CX,GAAG,EAAE9B,OAAO,CAACoB;YACf,CAAC;UAEL,CAAC;UACDiH,WAAW,EAAErI,OAAO,CAACqI,WAAW;UAChCM,SAAS,EAAE;YACT7G,GAAG,EAAE9B,OAAO,CAACyI;UACf;QACF,CAAC;MACH;MAEA,IAAM1G,IAAS,GAAG;QAChB6G,KAAK,EAAER,QAAQ;QACfS,WAAW,EAAE7I,OAAO,CAAC6I;MACvB,CAAC;MAED,IAAI7I,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE8I,aAAa,EAAE;QAC1B/G,IAAI,CAAC+G,aAAa,GAAG9I,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE8I,aAAa;MAC7C;;MAEA;MACA,OAAO,IAAI,CAACrE,OAAO,CAAC;QAClBI,GAAG,EAAE7E,OAAO,CAAC6E,GAAG;QAChBH,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBpF,IAAI,EAAJA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAA9D,GAAA;IAAAyC,KAAA,EAQA,SAAAqI,SAAAC,KAAA,EAA6F;MAAA,IAAnF3H,QAAQ,GAAA2H,KAAA,CAAR3H,QAAQ;QAAED,SAAS,GAAA4H,KAAA,CAAT5H,SAAS;QAAE6H,KAAK,GAAAD,KAAA,CAALC,KAAK;MAClC;MACA,OAAO,IAAI,CAACxE,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,KAAAtB,MAAA,CAAKlC,QAAQ,OAAAkC,MAAA,CAAI2F,6BAAkB,CAAE;QACxCnH,IAAI,EAAE;UACJX,SAAS,EAATA,SAAS;UACT+H,IAAI,EAAE;YACJ5H,aAAa,EAAE6H,aAAI,CAACC,EAAE,EAAE;YACxBJ,KAAK,EAALA;UACF;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAbE;IAAAhL,GAAA;IAAAyC,KAAA,EAcA,SAAAJ,kBAAAgJ,KAAA,EAkBG;MAAA,IAjBDjI,QAAQ,GAAAiI,KAAA,CAARjI,QAAQ;QACRD,SAAS,GAAAkI,KAAA,CAATlI,SAAS;QACTmI,UAAU,GAAAD,KAAA,CAAVC,UAAU;QACVC,IAAI,GAAAF,KAAA,CAAJE,IAAI;QACJC,OAAO,GAAAH,KAAA,CAAPG,OAAO;MAcP;MACA,IAAID,IAAI,KAAK,CAACA,IAAI,CAACE,KAAK,IAAI,CAACF,IAAI,CAACG,MAAM,CAAC,EAAE;QACzC,OAAO/C,QAAA,CAAAzI,OAAA,CAAQ0I,MAAM,CACnB,IAAI+C,KAAK,8EAAArG,MAAA,CACsE,IAAAsG,UAAA,CAAA1L,OAAA,EAC3EqL,IAAI,CACL,EACF,CACF;MACH;MAEA,IAAIC,OAAO,KAAK,CAACA,OAAO,CAACC,KAAK,IAAI,CAACD,OAAO,CAACE,MAAM,CAAC,EAAE;QAClD,OAAO/C,QAAA,CAAAzI,OAAA,CAAQ0I,MAAM,CACnB,IAAI+C,KAAK,iFAAArG,MAAA,CACyE,IAAAsG,UAAA,CAAA1L,OAAA,EAC9EsL,OAAO,CACR,EACF,CACF;MACH;MAEA,IAAMK,cAAc,GAAGN,IAAI,GAAG;QAACE,KAAK,EAAEF,IAAI,CAACE,KAAK;QAAEC,MAAM,EAAEH,IAAI,CAACG;MAAM,CAAC,GAAGrG,SAAS;MAClF,IAAMyG,iBAAiB,GAAGN,OAAO,GAAG;QAACC,KAAK,EAAED,OAAO,CAACC,KAAK;QAAEC,MAAM,EAAEF,OAAO,CAACE;MAAM,CAAC,GAAGrG,SAAS;MAE9F,IAAM0G,YAAY,GAChBF,cAAc,IAAIC,iBAAiB,GAC/B;QACEE,UAAU,EAAE;UACVT,IAAI,EAAEM,cAAc;UACpBL,OAAO,EAAEM;QACX;MACF,CAAC,GACDzG,SAAS;;MAEf;MACA,OAAO,IAAI,CAACmB,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACwC,GAAG;QACtBtC,GAAG,KAAAtB,MAAA,CAAKlC,QAAQ,OAAAkC,MAAA,CAAIkE,mBAAQ,CAAE;QAC9B1F,IAAI,EAAE;UACJmI,MAAM,EAAE;YACN9I,SAAS,EAATA,SAAS;YACT+I,IAAI,EAAEZ,UAAU;YAChBS,YAAY,EAAZA;UACF;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA/L,GAAA;IAAAyC,KAAA,EAMA,SAAA0J,iBAAAC,KAAA,EAAiD;MAAA,IAA/BhJ,QAAQ,GAAAgJ,KAAA,CAARhJ,QAAQ;MACxB,IAAMwD,GAAG,MAAAtB,MAAA,CAAMlC,QAAQ,OAAAkC,MAAA,CAAI+G,cAAG,CAAE;;MAEhC;MACA,OAAO,IAAI,CAAC7F,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA;MACF,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA5G,GAAA;IAAAyC,KAAA,EAMA,SAAA6J,UAAAC,KAAA,EAAkD;MAAA,IAAvCC,YAAY,GAAAD,KAAA,CAAZC,YAAY;MACrB;MACA,OAAO,IAAI,CAAChG,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAAC+B,GAAG;QACtB7B,GAAG,EAAE4F;MACP,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAxM,GAAA;IAAAyC,KAAA,EAQA,SAAAgK,aAAAC,MAAA,EAQG;MAAA,IAPDC,kBAAkB,GAAAD,MAAA,CAAlBC,kBAAkB;QAClBC,QAAQ,GAAAF,MAAA,CAARE,QAAQ;QACRC,aAAa,GAAAH,MAAA,CAAbG,aAAa;MAMb,IAAMjG,GAAG,GAAG+F,kBAAkB;;MAE9B;MACA,OAAO,IAAI,CAACnG,OAAO,CAAC;QAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;QACvBC,GAAG,EAAHA,GAAG;QACH9C,IAAI,EAAE;UACJgJ,MAAM,EAAE;YAACD,aAAa,EAAbA;UAAa,CAAC;UACvBD,QAAQ,EAARA;QACF;MACF,CAAC,CAAC;IACJ;EAAC;EAAA,OAAAlL,cAAA;AAAA,EAxwByCqL,+BAAoB;AAAAC,OAAA,CAAA9M,OAAA,GAAAwB,cAAA"}
1
+ {"version":3,"names":["_uuid","_interopRequireDefault","require","_lodash","_webexCore","_common","_loggerProxy","_constants","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingRequest","_StatelessWebexPlugin","_inherits2","_super","attrs","options","_this","_classCallCheck2","_assertThisInitialized2","changeVideoLayoutDebounced","debounce","changeVideoLayout","leading","trailing","_createClass2","value","_joinMeeting","_asyncToGenerator2","_regenerator","mark","_callee","asResourceOccupant","inviteeAddress","meetingNumber","permissionToken","deviceUrl","locusUrl","resourceId","correlationId","ensureConversation","moderator","pin","moveToResource","roapMessage","preferTranscoding","url","body","wrap","_callee$","_context","prev","next","LoggerProxy","logger","info","device","deviceType","config","meetings","usingResource","moveMediaToResource","respOnlySdp","allowMultiDevice","supportsNativeLobby","clientMediaPreferences","webex","clientRegion","countryCode","regionCode","undefined","concat","PARTICIPANT","internal","services","waitForCatalog","get","LOCI","CALL","invitee","address","t0","error","ALTERNATE_REDIRECT_TRUE","callPreferences","requestedMedia","_SLIDES_","localMedias","abrupt","request","method","HTTP_VERBS","POST","uri","stop","joinMeeting","_x","refreshCaptcha","_ref","captchaRefreshUrl","captchaId","catch","err","dialIn","_ref2","dialInUrl","clientUrl","PROVISIONAL","provisionalType","PROVISIONAL_TYPE_DIAL_IN","dialOut","_ref3","dialOutUrl","phoneNumber","PROVISIONAL_TYPE_DIAL_OUT","dialoutAddress","syncMeeting","desync","syncUrl","split","LOCUS","SYNCDEBUG","GET","getFullLocus","_promise","reject","disconnectPhoneAudio","_ref4","phoneUrl","selfId","LEAVE","PUT","leaveMeeting","_ref5","acknowledgeMeeting","ALERT","lockMeeting","CONTROLS","lock","locked","PATCH","declineMeeting","DECLINE","reason","remoteAudioVideoToggle","_options$preferTransc","MEDIA","changeMeetingFloor","floorReq","disposition","FLOOR_ACTION","GRANTED","beneficiary","personUrl","devices","requester","floor","resourceUrl","resourceToken","sendDTMF","_ref6","tones","SEND_DTMF_ENDPOINT","dtmf","uuid","v4","_ref7","layoutType","main","content","width","height","Error","_stringify","renderInfoMain","renderInfoContent","layoutParams","renderInfo","layout","type","endMeetingForAll","_ref8","END","keepAlive","_ref9","keepAliveUrl","sendReaction","_ref10","reactionChannelUrl","reaction","participantId","sender","StatelessWebexPlugin","exports"],"sources":["request.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {debounce} from 'lodash';\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n// @ts-ignore\nimport {deviceType} from '@webex/common';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n ALERT,\n ALTERNATE_REDIRECT_TRUE,\n CALL,\n CONTROLS,\n DECLINE,\n END,\n FLOOR_ACTION,\n HTTP_VERBS,\n LEAVE,\n LOCI,\n LOCUS,\n MEDIA,\n PARTICIPANT,\n PROVISIONAL_TYPE_DIAL_IN,\n PROVISIONAL_TYPE_DIAL_OUT,\n SEND_DTMF_ENDPOINT,\n _SLIDES_,\n} from '../constants';\nimport {Reaction} from '../reactions/reactions.type';\n\n/**\n * @class MeetingRequest\n */\nexport default class MeetingRequest extends StatelessWebexPlugin {\n changeVideoLayoutDebounced: any;\n\n constructor(attrs: any, options: any) {\n super(attrs, options);\n this.changeVideoLayoutDebounced = debounce(this.changeVideoLayout, 2000, {\n leading: true,\n trailing: true,\n });\n }\n\n /**\n * Make a network request to join a meeting\n * @param {Object} options\n * @param {String} options.sipUri\n * @param {String} options.deviceUrl\n * @param {String} options.locusUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @param {boolean} options.ensureConversation\n * @param {boolean} options.moderator\n * @param {boolean} options.pin\n * @param {boolean} options.moveToResource\n * @param {Object} options.roapMessage\n * @returns {Promise}\n */\n async joinMeeting(options: {\n sipUri: string;\n deviceUrl: string;\n locusUrl: string;\n resourceId: string;\n correlationId: string;\n ensureConversation: boolean;\n moderator: boolean;\n pin: boolean;\n moveToResource: boolean;\n roapMessage: any;\n asResourceOccupant: any;\n inviteeAddress: any;\n meetingNumber: any;\n permissionToken: any;\n preferTranscoding: any;\n }) {\n const {\n asResourceOccupant,\n inviteeAddress,\n meetingNumber,\n permissionToken,\n deviceUrl,\n locusUrl,\n resourceId,\n correlationId,\n ensureConversation,\n moderator,\n pin,\n moveToResource,\n roapMessage,\n preferTranscoding,\n } = options;\n\n LoggerProxy.logger.info('Meeting:request#joinMeeting --> Joining a meeting', correlationId);\n\n let url = '';\n\n const body: any = {\n asResourceOccupant,\n device: {\n url: deviceUrl,\n // @ts-ignore - config comes from registerPlugin\n deviceType: this.config.meetings.deviceType,\n },\n usingResource: resourceId || null,\n moveMediaToResource: (resourceId && moveToResource) || false,\n correlationId,\n respOnlySdp: true,\n allowMultiDevice: true,\n ensureConversation: ensureConversation || false,\n supportsNativeLobby: 1,\n clientMediaPreferences: {\n preferTranscoding: preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n if (this.webex.meetings.clientRegion) {\n // @ts-ignore\n body.device.countryCode = this.webex.meetings.clientRegion.countryCode;\n // @ts-ignore\n body.device.regionCode = this.webex.meetings.clientRegion.regionCode;\n }\n\n if (moderator !== undefined) {\n body.moderator = moderator;\n }\n\n if (permissionToken) {\n body.permissionToken = permissionToken;\n }\n\n if (pin !== undefined) {\n body.pin = pin;\n }\n\n if (locusUrl) {\n url = `${locusUrl}/${PARTICIPANT}`;\n } else if (inviteeAddress || meetingNumber) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: inviteeAddress || `wbxmn:${meetingNumber}`,\n };\n } catch (e) {\n LoggerProxy.logger.error(\n `Meeting:request#joinMeeting Error Joining ${inviteeAddress || meetingNumber} --> ${e}`\n );\n throw e;\n }\n }\n\n // TODO: -- this will be resolved in SDK request\n url = url.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n\n if (resourceId === inviteeAddress) {\n body.callPreferences = {\n requestedMedia: [_SLIDES_],\n };\n }\n\n if (roapMessage) {\n body.localMedias = roapMessage.localMedias;\n }\n\n /// @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n });\n }\n\n /**\n * Send a request to refresh the captcha\n * @param {Object} options\n * @param {String} options.captchaRefreshUrl\n * @param {String} options.captchaId\n * @returns {Promise}\n * @private\n */\n private refreshCaptcha({\n captchaRefreshUrl,\n captchaId,\n }: {\n captchaRefreshUrl: string;\n captchaId: string;\n }) {\n const body = {\n captchaId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: captchaRefreshUrl,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(`Meeting:request#refreshCaptcha --> Error: ${err}`);\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial in device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialInUrl identifier for the to-be provisioned device\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialIn({\n locusUrl,\n dialInUrl,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialInUrl: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialIn --> Provisioning a dial in device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_IN,\n url: dialInUrl,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialIn --> Error provisioning a dial in device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to add a dial out device\n * @param {Object} options\n * @param {String} options.correlationId\n * @param {String} options.locusUrl url for the meeting\n * @param {String} options.dialOutUrl identifier for the to-be provisioned device\n * @param {String} options.phoneNumber phone number to dial out to\n * @param {String} options.clientUrl identifier for the web device\n * @returns {Promise}\n * @private\n */\n private dialOut({\n locusUrl,\n dialOutUrl,\n phoneNumber,\n clientUrl,\n correlationId,\n }: {\n correlationId: string;\n locusUrl: string;\n dialOutUrl: string;\n phoneNumber: string;\n clientUrl: string;\n }) {\n LoggerProxy.logger.info(\n 'Meeting:request#dialOut --> Provisioning a dial out device',\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n provisionalType: PROVISIONAL_TYPE_DIAL_OUT,\n url: dialOutUrl,\n dialoutAddress: phoneNumber,\n clientUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#dialOut --> Error provisioning a dial out device, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Syns the missed delta event\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.syncUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n syncMeeting(options: {desync: boolean; syncUrl: string}) {\n /* eslint-disable no-else-return */\n const {desync} = options;\n let {syncUrl} = options;\n\n /* istanbul ignore else */\n if (desync) {\n // check for existing URL parameters\n syncUrl = syncUrl\n .concat(syncUrl.split('?')[1] ? '&' : '?')\n .concat(`${LOCUS.SYNCDEBUG}=${desync}`);\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: syncUrl,\n }) // TODO: Handle if delta sync failed . Get the full locus object\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#syncMeeting --> Error syncing meeting, error ${err}`\n );\n\n return err;\n });\n }\n\n /**\n * Request to get the complete locus object\n * @param {Object} options\n * @param {boolean} options.desync flag to get partial or whole locus object\n * @param {String} options.locusUrl sync url to get ht elatest locus delta\n * @returns {Promise}\n */\n getFullLocus(options: {desync: boolean; locusUrl: string}) {\n let {locusUrl} = options;\n const {desync} = options;\n\n if (locusUrl) {\n if (desync) {\n locusUrl += `?${LOCUS.SYNCDEBUG}=${desync}`;\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: locusUrl,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#getFullLocus --> Error getting full locus, error ${err}`\n );\n\n return err;\n });\n }\n\n return Promise.reject();\n }\n\n /**\n * Make a network request to make a provisioned phone leave the meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.phoneUrl\n * @param {String} options.correlationId\n * @param {String} options.selfId\n * @returns {Promise}\n * @private\n */\n private disconnectPhoneAudio({\n locusUrl,\n phoneUrl,\n correlationId,\n selfId,\n }: {\n locusUrl: string;\n phoneUrl: string;\n correlationId: string;\n selfId: string;\n }) {\n LoggerProxy.logger.info(\n `Meeting:request#disconnectPhoneAudio --> request phone ${phoneUrl} to leave`,\n correlationId\n );\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n\n const body = {\n device: {\n deviceType: deviceType.PROVISIONAL,\n url: phoneUrl,\n },\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n }).catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:request#disconnectPhoneAudio --> Error when requesting phone ${phoneUrl} to leave, error ${err}`\n );\n\n throw err;\n });\n }\n\n /**\n * Make a network request to leave a meeting\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @param {String} options.selfId\n * @param {Url} options.deviceUrl\n * @param {String} options.resourceId,\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n leaveMeeting({\n locusUrl,\n selfId,\n deviceUrl: url,\n resourceId,\n correlationId,\n }: {\n locusUrl: string;\n selfId: string;\n deviceUrl: string;\n resourceId: string;\n correlationId: string;\n }) {\n LoggerProxy.logger.info('Meeting:request#leaveMeeting --> Leaving a meeting', correlationId);\n\n const uri = `${locusUrl}/${PARTICIPANT}/${selfId}/${LEAVE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url,\n },\n usingResource: resourceId || null,\n correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to acknowledge a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.correlationId\n * @returns {Promise}\n */\n acknowledgeMeeting(options: {locusUrl: string; deviceUrl: string; correlationId: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${ALERT}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n correlationId: options.correlationId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n lockMeeting(options) {\n const uri = `${options.locusUrl}/${CONTROLS}`;\n const body = {\n lock: {\n locked: options.lock,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PATCH,\n uri,\n body,\n });\n }\n\n /**\n * Make a network request to decline a meeting\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.reason\n * @returns {Promise}\n */\n declineMeeting(options: {locusUrl: string; deviceUrl: string; reason: string}) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${DECLINE}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ...(options.reason && {reason: options.reason}),\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * Toggle remote audio and/or video\n * @param {Object} options options for toggling\n * @param {String} options.selfId Locus self id??\n * @param {String} options.locusUrl Locus url\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.localMedias local sdps\n * @returns {Promise}\n */\n remoteAudioVideoToggle(\n options:\n | {\n selfId: string;\n locusUrl: string;\n deviceUrl: string;\n resourceId: string;\n localMedias: string;\n }\n | any\n ) {\n const uri = `${options.locusUrl}/${PARTICIPANT}/${options.selfId}/${MEDIA}`;\n const body = {\n device: {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n respOnlySdp: true,\n localMedias: options.localMedias,\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri,\n body,\n });\n }\n\n /**\n * change the content floor grant\n * @param {Object} options options for floor grant\n * @param {String} options.disposition floor action (granted/released)\n * @param {String} options.personUrl personUrl who is requesting floor\n * @param {String} options.deviceUrl Url of a device\n * @param {String} options.resourceId Populated if you are paired to a device\n * @param {String} options.uri floor grant uri\n * @returns {Promise}\n */\n changeMeetingFloor(\n options:\n | {\n disposition: string;\n personUrl: string;\n deviceUrl: string;\n resourceId: string;\n uri: string;\n }\n | any\n ) {\n let floorReq: any = {disposition: options.disposition};\n\n /* istanbul ignore else */\n if (options.disposition === FLOOR_ACTION.GRANTED) {\n floorReq = {\n beneficiary: {\n url: options.personUrl,\n devices: [\n {\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n url: options.deviceUrl,\n },\n ],\n },\n disposition: options.disposition,\n requester: {\n url: options.personUrl,\n },\n };\n }\n\n const body: any = {\n floor: floorReq,\n resourceUrl: options.resourceUrl,\n };\n\n if (options?.resourceToken) {\n body.resourceToken = options?.resourceToken;\n }\n\n // @ts-ignore\n return this.request({\n uri: options.uri,\n method: HTTP_VERBS.PUT,\n body,\n });\n }\n\n /**\n * Sends a request to the DTMF endpoint to send tones\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.tones a string of one or more DTMF tones to send\n * @returns {Promise}\n */\n sendDTMF({locusUrl, deviceUrl, tones}: {locusUrl: string; deviceUrl: string; tones: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${locusUrl}/${SEND_DTMF_ENDPOINT}`,\n body: {\n deviceUrl,\n dtmf: {\n correlationId: uuid.v4(),\n tones,\n },\n },\n });\n }\n\n /**\n * Sends a request to the controls endpoint to set the video layout\n * @param {Object} options\n * @param {String} options.locusUrl\n * @param {String} options.deviceUrl\n * @param {String} options.layoutType a layout type that should be available in meeting constants {@link #layout_types}\n * @param {Object} options.main preferred dimensions for the remote main video stream\n * @param {Number} options.main.width preferred width of main video stream\n * @param {Number} options.main.height preferred height of main video stream\n * @param {Object} options.content preferred dimensions for the remote content share stream\n * @param {Number} options.content.width preferred width of content share stream\n * @param {Number} options.content.height preferred height of content share stream\n * @returns {Promise}\n */\n changeVideoLayout({\n locusUrl,\n deviceUrl,\n layoutType,\n main,\n content,\n }: {\n locusUrl: string;\n deviceUrl: string;\n layoutType: string;\n main: {\n width: number;\n height: number;\n };\n content: {\n width: number;\n height: number;\n };\n }) {\n // send main/content renderInfo only if both width and height are specified\n if (main && (!main.width || !main.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for main: ${JSON.stringify(\n main\n )}`\n )\n );\n }\n\n if (content && (!content.width || !content.height)) {\n return Promise.reject(\n new Error(\n `Both width and height must be specified. One of them is missing for content: ${JSON.stringify(\n content\n )}`\n )\n );\n }\n\n const renderInfoMain = main ? {width: main.width, height: main.height} : undefined;\n const renderInfoContent = content ? {width: content.width, height: content.height} : undefined;\n\n const layoutParams =\n renderInfoMain || renderInfoContent\n ? {\n renderInfo: {\n main: renderInfoMain,\n content: renderInfoContent,\n },\n }\n : undefined;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n uri: `${locusUrl}/${CONTROLS}`,\n body: {\n layout: {\n deviceUrl,\n type: layoutType,\n layoutParams,\n },\n },\n });\n }\n\n /**\n * Make a network request to end meeting for all\n * @param {Object} options\n * @param {Url} options.locusUrl\n * @returns {Promise}\n */\n endMeetingForAll({locusUrl}: {locusUrl: string}) {\n const uri = `${locusUrl}/${END}`;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n });\n }\n\n /**\n * Send a locus keepAlive (used in lobby)\n * @param {Object} options\n * @param {Url} options.keepAliveUrl\n * @returns {Promise}\n */\n keepAlive({keepAliveUrl}: {keepAliveUrl: string}) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.GET,\n uri: keepAliveUrl,\n });\n }\n\n /**\n * Make a network request to send a reaction.\n * @param {Object} options\n * @param {Url} options.reactionChannelUrl\n * @param {Reaction} options.reaction\n * @param {string} options.senderID\n * @returns {Promise}\n */\n sendReaction({\n reactionChannelUrl,\n reaction,\n participantId,\n }: {\n reactionChannelUrl: string;\n reaction: Reaction;\n participantId: string;\n }) {\n const uri = reactionChannelUrl;\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n uri,\n body: {\n sender: {participantId},\n reaction,\n },\n });\n }\n}\n"],"mappings":"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"}
@@ -11,11 +11,11 @@ _Object$defineProperty(exports, "__esModule", {
11
11
  value: true
12
12
  });
13
13
  exports.default = void 0;
14
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
15
- var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
17
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
16
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
18
+ var _lodash = require("lodash");
19
19
  var _webexErrors = require("../common/errors/webex-errors");
20
20
  var _metrics = _interopRequireDefault(require("../metrics"));
21
21
  var _config = require("../metrics/config");
@@ -54,7 +54,7 @@ MeetingUtil.remoteUpdateAudioVideo = function (audioMuted, videoMuted, meeting)
54
54
  return _promise.default.reject(new _parameter.default('You need a meeting object.'));
55
55
  }
56
56
  var localMedias = _media.default.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);
57
- if ((0, _isEmpty2.default)(localMedias)) {
57
+ if ((0, _lodash.isEmpty)(localMedias)) {
58
58
  return _promise.default.reject(new _parameter.default('You need a media id on the meeting to change remote audio.'));
59
59
  }
60
60
  _metrics.default.postEvent({
@@ -1 +1 @@
1
- {"version":3,"names":["_webexErrors","require","_metrics","_interopRequireDefault","_config","_media","_loggerProxy","_constants","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","_promise","reject","ParameterError","localMedias","Media","generateLocalMedias","_isEmpty2","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","_err$body","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","roap","stop","roapSeq","stopKeepAlive","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","_response$body","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","concat","leaveMeeting","undefined","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","updateTransceiver","meetingOptions","type","sendTrack","receiveTrack","track","transceiver","peerConnection","previousMediaDirection","meetingId","remoteQualityLevel","mediaProperties","enableRtx","config","enableExtmap","sendRoapMediaRequest","sdp","e","sender","replaceTrack","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\n\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport Metrics from '../metrics';\nimport {eventType, trigger} from '../metrics/config';\nimport Media from '../media';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n} from '../constants';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\n\nconst MeetingUtil: any = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n};\n\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\n\n if (isEmpty(localMedias)) {\n return Promise.reject(\n new ParameterError('You need a media id on the meeting to change remote audio.')\n );\n }\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\n\n return meeting.meetingRequest\n .remoteAudioVideoToggle({\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n localMedias,\n deviceUrl: meeting.deviceUrl,\n correlationId: meeting.correlationId,\n })\n .then((response) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\n\n return response.body.locus;\n });\n};\n\nMeetingUtil.hasOwner = (info) => info && info.owner;\n\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\n\nMeetingUtil.isPinOrGuest = (err) =>\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\n\nMeetingUtil.joinMeeting = (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: options.preferTranscoding,\n asResourceOccupant: options.asResourceOccupant,\n })\n .then((res) => {\n Metrics.postEvent({\n event: eventType.LOCUS_JOIN_RESPONSE,\n meeting,\n data: {\n trigger: trigger.LOCI_UPDATE,\n locus: res.body.locus,\n mediaConnections: res.body.mediaConnections,\n trackingId: res.headers.trackingid,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n};\n\nMeetingUtil.cleanUp = (meeting) => {\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeLocalStream())\n .then(() => meeting.closeLocalShare())\n .then(() => meeting.closeRemoteTracks())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.unsetLocalVideoTrack();\n meeting.unsetLocalShareTrack();\n meeting.unsetRemoteTracks();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.roap.stop(meeting.correlationId, meeting.roapSeq))\n .then(() => meeting.stopKeepAlive());\n};\n\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest\n .disconnectPhoneAudio(options)\n .then((response) => {\n if (response?.body?.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\n// by default will leave on meeting's resourceId\n// if you explicity want it not to leave on resource id, pass\n// {resourceId: null}\n// TODO: chris, you can modify this however you want\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n const leaveOptions = {...defaultOptions, ...options};\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n // && !options.moveMeeting) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\nMeetingUtil.declineMeeting = (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n });\n\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\n\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\n\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\n\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\n\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n Metrics.postEvent({\n event: eventType.PIN_COLLECTED,\n meeting,\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n Metrics.postEvent({\n event: eventType.PIN_PROMPT,\n meeting,\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n};\n\nMeetingUtil.updateTransceiver = (options, meetingOptions) => {\n const {\n type,\n sendTrack,\n receiveTrack,\n track,\n transceiver,\n peerConnection,\n previousMediaDirection,\n } = options;\n\n if (\n (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||\n (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)\n ) {\n return Media.updateTransceiver(\n {\n meetingId: meetingOptions.meeting.id,\n remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,\n enableRtx: meetingOptions.meeting.config.enableRtx,\n enableExtmap: meetingOptions.meeting.config.enableExtmap,\n },\n peerConnection,\n transceiver,\n {\n track,\n type,\n receiveTrack,\n sendTrack,\n }\n )\n .then(() =>\n meetingOptions.meeting.roap.sendRoapMediaRequest({\n sdp: meetingOptions.mediaProperties.peerConnection.sdp,\n roapSeq: meetingOptions.meeting.roapSeq,\n meeting: meetingOptions.meeting, // or can pass meeting ID\n })\n )\n .catch((e) => {\n LoggerProxy.logger.error(\n `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`\n );\n });\n }\n if (track) {\n transceiver.sender.replaceTrack(track);\n\n return Promise.resolve();\n }\n\n return Promise.reject(new ParameterError('update Failed: please pass valid parameter'));\n};\n\nMeetingUtil.validateOptions = (options) => {\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\n\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid video streams'));\n }\n\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\n return Promise.reject(new ParameterError('please pass valid audio streams'));\n }\n\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid share streams'));\n }\n\n return Promise.resolve();\n};\n\nMeetingUtil.getTrack = (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n};\n\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator;\n\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy;\n\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\n\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\n\nMeetingUtil.canAdmitParticipant = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\n\nMeetingUtil.canUserLock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\n\nMeetingUtil.canUserUnlock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\n\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\n\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\n\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\n\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\n\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n};\n\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n};\n\nMeetingUtil.handleAudioLogging = (audioTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioTrack) {\n const settings = audioTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleVideoLogging = (videoTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoTrack) {\n const settings = videoTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleDeviceLogging = (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n};\n\nMeetingUtil.endMeetingForAll = (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\n\nMeetingUtil.canStartTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\n\nMeetingUtil.canStopTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\n\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\n\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\n\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\n\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\n\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\n\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\n\nexport default MeetingUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_webexErrors","_metrics","_interopRequireDefault","_config","_media","_loggerProxy","_constants","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingUtil","parseLocusJoin","response","parsed","locus","body","mediaConnections","locusUrl","url","locusId","split","pop","selfId","self","id","mediaConnection","mediaId","remoteUpdateAudioVideo","audioMuted","videoMuted","meeting","_promise","reject","ParameterError","localMedias","Media","generateLocalMedias","isEmpty","Metrics","postEvent","event","eventType","MEDIA_REQUEST","meetingRequest","remoteAudioVideoToggle","deviceUrl","correlationId","then","MEDIA_RESPONSE","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","err","_err$body","errorCode","INTENT_TO_JOIN","includes","joinMeeting","options","LOCUS_JOIN_REQUEST","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","asResourceOccupant","res","LOCUS_JOIN_RESPONSE","data","trigger","LOCI_UPDATE","trackingId","headers","trackingid","cleanUp","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeLocalStream","closeLocalShare","closeRemoteTracks","closePeerConnections","unsetLocalVideoTrack","unsetLocalShareTrack","unsetRemoteTracks","unsetPeerConnections","reconnectionManager","roap","stop","roapSeq","stopKeepAlive","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","_response$body","locusInfo","onFullLocus","catch","LoggerProxy","logger","error","concat","leaveMeeting","undefined","isUserInLeftState","UserNotJoinedError","defaultOptions","leaveOptions","moveMeeting","declineMeeting","reason","_locusInfo$parsedLocu","_locusInfo$parsedLocu2","parsedLocus","state","_LEFT_","isUserInIdleState","_locusInfo$parsedLocu3","_locusInfo$parsedLocu4","_IDLE_","isUserInJoinedState","_locusInfo$parsedLocu5","_locusInfo$parsedLocu6","_JOINED_","isMediaEstablished","currentMediaStatus","audio","video","share","joinMeetingOptions","requiredCaptcha","CaptchaError","passwordStatus","PASSWORD_STATUS","REQUIRED","PasswordError","PIN_COLLECTED","setLocus","PIN_PROMPT","IntentToJoinError","JoinMeetingError","updateTransceiver","meetingOptions","type","sendTrack","receiveTrack","track","transceiver","peerConnection","previousMediaDirection","meetingId","remoteQualityLevel","mediaProperties","enableRtx","config","enableExtmap","sendRoapMediaRequest","sdp","e","sender","replaceTrack","validateOptions","sendVideo","sendAudio","sendShare","localStream","localShare","getTrack","videoTrack","audioTrack","stream","audioTracks","videoTracks","getAudioTracks","getVideoTracks","_audioTracks","_audioTracks2","_slicedToArray2","_videoTracks","_videoTracks2","getModeratorFromLocusInfo","getPolicyFromLocusInfo","policy","getUserDisplayHintsFromLocusInfo","_locusInfo$parsedLocu7","_locusInfo$parsedLocu8","userDisplayHints","canInviteNewParticipants","displayHints","DISPLAY_HINTS","ADD_GUEST","canAdmitParticipant","ROSTER_WAITING_TO_JOIN","canUserLock","LOCK_CONTROL_LOCK","LOCK_STATUS_UNLOCKED","canUserUnlock","LOCK_CONTROL_UNLOCK","LOCK_STATUS_LOCKED","canUserRaiseHand","RAISE_HAND","canUserLowerAllHands","LOWER_ALL_HANDS","canUserLowerSomeoneElsesHand","LOWER_SOMEONE_ELSES_HAND","bothLeaveAndEndMeetingAvailable","LEAVE_TRANSFER_HOST_END_MEETING","LEAVE_END_MEETING","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","handleDeviceLogging","devices","device","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","isWebexAssistantActive","WEBEX_ASSISTANT_STATUS_ACTIVE","canViewCaptionPanel","ENABLE_CAPTION_PANEL","isRealTimeTranslationEnabled","DISPLAY_REAL_TIME_TRANSLATION","canSelectSpokenLanguages","DISPLAY_NON_ENGLISH_ASR","waitingForOthersToJoin","WAITING_FOR_OTHERS","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {isEmpty} from 'lodash';\n\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\nimport Metrics from '../metrics';\nimport {eventType, trigger} from '../metrics/config';\nimport Media from '../media';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n INTENT_TO_JOIN,\n _LEFT_,\n _IDLE_,\n _JOINED_,\n PASSWORD_STATUS,\n DISPLAY_HINTS,\n FULL_STATE,\n} from '../constants';\nimport IntentToJoinError from '../common/errors/intent-to-join';\nimport JoinMeetingError from '../common/errors/join-meeting';\nimport ParameterError from '../common/errors/parameter';\nimport PermissionError from '../common/errors/permission';\nimport PasswordError from '../common/errors/password-error';\nimport CaptchaError from '../common/errors/captcha-error';\n\nconst MeetingUtil: any = {};\n\nMeetingUtil.parseLocusJoin = (response) => {\n const parsed: any = {};\n\n // First todo: add check for existance\n parsed.locus = response.body.locus;\n parsed.mediaConnections = response.body.mediaConnections;\n parsed.locusUrl = parsed.locus.url;\n parsed.locusId = parsed.locus.url.split('/').pop();\n parsed.selfId = parsed.locus.self.id;\n\n // we need mediaId before making roap calls\n parsed.mediaConnections.forEach((mediaConnection) => {\n if (mediaConnection.mediaId) {\n parsed.mediaId = mediaConnection.mediaId;\n }\n });\n\n return parsed;\n};\n\nMeetingUtil.remoteUpdateAudioVideo = (audioMuted, videoMuted, meeting) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const localMedias = Media.generateLocalMedias(meeting.mediaId, audioMuted, videoMuted);\n\n if (isEmpty(localMedias)) {\n return Promise.reject(\n new ParameterError('You need a media id on the meeting to change remote audio.')\n );\n }\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meeting});\n\n return meeting.meetingRequest\n .remoteAudioVideoToggle({\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n localMedias,\n deviceUrl: meeting.deviceUrl,\n correlationId: meeting.correlationId,\n })\n .then((response) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meeting});\n\n return response.body.locus;\n });\n};\n\nMeetingUtil.hasOwner = (info) => info && info.owner;\n\nMeetingUtil.isOwnerSelf = (owner, selfId) => owner === selfId;\n\nMeetingUtil.isPinOrGuest = (err) =>\n err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode);\n\nMeetingUtil.joinMeeting = (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n Metrics.postEvent({event: eventType.LOCUS_JOIN_REQUEST, meeting});\n\n // eslint-disable-next-line no-warning-comments\n // TODO: check if the meeting is in JOINING state\n // if Joining state termintate the request as user might click multiple times\n return meeting.meetingRequest\n .joinMeeting({\n inviteeAddress: meeting.meetingJoinUrl || meeting.sipUri,\n meetingNumber: meeting.meetingNumber,\n deviceUrl: meeting.deviceUrl,\n locusUrl: meeting.locusUrl,\n correlationId: meeting.correlationId,\n roapMessage: options.roapMessage,\n permissionToken: meeting.permissionToken,\n resourceId: options.resourceId || null,\n moderator: options.moderator,\n pin: options.pin,\n moveToResource: options.moveToResource,\n preferTranscoding: options.preferTranscoding,\n asResourceOccupant: options.asResourceOccupant,\n })\n .then((res) => {\n Metrics.postEvent({\n event: eventType.LOCUS_JOIN_RESPONSE,\n meeting,\n data: {\n trigger: trigger.LOCI_UPDATE,\n locus: res.body.locus,\n mediaConnections: res.body.mediaConnections,\n trackingId: res.headers.trackingid,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n};\n\nMeetingUtil.cleanUp = (meeting) => {\n // make sure we send last metrics before we close the peerconnection\n const stopStatsAnalyzer = meeting.statsAnalyzer\n ? meeting.statsAnalyzer.stopAnalyzer()\n : Promise.resolve();\n\n return stopStatsAnalyzer\n .then(() => meeting.closeLocalStream())\n .then(() => meeting.closeLocalShare())\n .then(() => meeting.closeRemoteTracks())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.unsetLocalVideoTrack();\n meeting.unsetLocalShareTrack();\n meeting.unsetRemoteTracks();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.roap.stop(meeting.correlationId, meeting.roapSeq))\n .then(() => meeting.stopKeepAlive());\n};\n\nMeetingUtil.disconnectPhoneAudio = (meeting, phoneUrl) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const options = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n phoneUrl,\n };\n\n return meeting.meetingRequest\n .disconnectPhoneAudio(options)\n .then((response) => {\n if (response?.body?.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#disconnectPhoneAudio --> An error occured while disconnecting phone audio in meeting ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\n// by default will leave on meeting's resourceId\n// if you explicity want it not to leave on resource id, pass\n// {resourceId: null}\n// TODO: chris, you can modify this however you want\nMeetingUtil.leaveMeeting = (meeting, options: any = {}) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n // TODO: clean up if the meeting is already inactive\n return Promise.reject(new MeetingNotActiveError());\n }\n\n if (MeetingUtil.isUserInLeftState(meeting.locusInfo)) {\n return Promise.reject(new UserNotJoinedError());\n }\n\n const defaultOptions = {\n locusUrl: meeting.locusUrl,\n selfId: meeting.selfId,\n correlationId: meeting.correlationId,\n resourceId: meeting.resourceId,\n deviceUrl: meeting.deviceUrl,\n };\n\n const leaveOptions = {...defaultOptions, ...options};\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n // && !options.moveMeeting) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => {\n if (options.moveMeeting) {\n return Promise.resolve();\n }\n\n return MeetingUtil.cleanUp(meeting);\n })\n .catch((err) => {\n // TODO: If the meeting state comes as LEFT or INACTIVE as response then\n // 1) on leave clean up the meeting or simply do a sync on the meeting\n // 2) If the error says meeting is inactive then destroy the meeting object\n LoggerProxy.logger.error(\n `Meeting:util#leaveMeeting --> An error occured while trying to leave meeting with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\nMeetingUtil.declineMeeting = (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n });\n\nMeetingUtil.isUserInLeftState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_;\n\nMeetingUtil.isUserInIdleState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_;\n\nMeetingUtil.isUserInJoinedState = (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_;\n\nMeetingUtil.isMediaEstablished = (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share);\n\nMeetingUtil.joinMeetingOptions = (meeting, options: any = {}) => {\n meeting.resourceId = meeting.resourceId || options.resourceId;\n\n if (meeting.requiredCaptcha) {\n return Promise.reject(new CaptchaError());\n }\n if (meeting.passwordStatus === PASSWORD_STATUS.REQUIRED) {\n return Promise.reject(new PasswordError());\n }\n\n if (options.pin) {\n Metrics.postEvent({\n event: eventType.PIN_COLLECTED,\n meeting,\n });\n }\n\n // normal join meeting, scenario A, D\n return MeetingUtil.joinMeeting(meeting, options)\n .then((response) => {\n meeting.setLocus(response);\n\n return Promise.resolve(response);\n })\n .catch((err) => {\n // joining a claimed PMR that is not my own, scenario B\n if (MeetingUtil.isPinOrGuest(err)) {\n Metrics.postEvent({\n event: eventType.PIN_PROMPT,\n meeting,\n });\n\n // request host pin or non host for unclaimed PMR, start of Scenario C\n // see https://sqbu-github.cisco.com/WebExSquared/locus/wiki/Locus-Lobby-and--IVR-Feature\n return Promise.reject(new IntentToJoinError('Error Joining Meeting', err));\n }\n LoggerProxy.logger.error('Meeting:util#joinMeetingOptions --> Error joining the call, ', err);\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n};\n\nMeetingUtil.updateTransceiver = (options, meetingOptions) => {\n const {\n type,\n sendTrack,\n receiveTrack,\n track,\n transceiver,\n peerConnection,\n previousMediaDirection,\n } = options;\n\n if (\n (sendTrack !== undefined && sendTrack !== previousMediaDirection.sendTrack) ||\n (receiveTrack !== undefined && receiveTrack !== previousMediaDirection.receiveTrack)\n ) {\n return Media.updateTransceiver(\n {\n meetingId: meetingOptions.meeting.id,\n remoteQualityLevel: meetingOptions.mediaProperties.remoteQualityLevel,\n enableRtx: meetingOptions.meeting.config.enableRtx,\n enableExtmap: meetingOptions.meeting.config.enableExtmap,\n },\n peerConnection,\n transceiver,\n {\n track,\n type,\n receiveTrack,\n sendTrack,\n }\n )\n .then(() =>\n meetingOptions.meeting.roap.sendRoapMediaRequest({\n sdp: meetingOptions.mediaProperties.peerConnection.sdp,\n roapSeq: meetingOptions.meeting.roapSeq,\n meeting: meetingOptions.meeting, // or can pass meeting ID\n })\n )\n .catch((e) => {\n LoggerProxy.logger.error(\n `Meeting:util#updateTransceiver --> Error updating the ${type} streams with error: ${e}`\n );\n });\n }\n if (track) {\n transceiver.sender.replaceTrack(track);\n\n return Promise.resolve();\n }\n\n return Promise.reject(new ParameterError('update Failed: please pass valid parameter'));\n};\n\nMeetingUtil.validateOptions = (options) => {\n const {sendVideo, sendAudio, sendShare, localStream, localShare} = options;\n\n if (sendVideo && !MeetingUtil.getTrack(localStream).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid video streams'));\n }\n\n if (sendAudio && !MeetingUtil.getTrack(localStream).audioTrack) {\n return Promise.reject(new ParameterError('please pass valid audio streams'));\n }\n\n if (sendShare && !MeetingUtil.getTrack(localShare).videoTrack) {\n return Promise.reject(new ParameterError('please pass valid share streams'));\n }\n\n return Promise.resolve();\n};\n\nMeetingUtil.getTrack = (stream) => {\n let audioTrack = null;\n let videoTrack = null;\n let audioTracks = null;\n let videoTracks = null;\n\n if (!stream) {\n return {audioTrack: null, videoTrack: null};\n }\n if (stream.getAudioTracks) {\n audioTracks = stream.getAudioTracks();\n }\n if (stream.getVideoTracks) {\n videoTracks = stream.getVideoTracks();\n }\n\n if (audioTracks && audioTracks.length > 0) {\n [audioTrack] = audioTracks;\n }\n\n if (videoTracks && videoTracks.length > 0) {\n [videoTrack] = videoTracks;\n }\n\n return {audioTrack, videoTrack};\n};\n\nMeetingUtil.getModeratorFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator;\n\nMeetingUtil.getPolicyFromLocusInfo = (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy;\n\nMeetingUtil.getUserDisplayHintsFromLocusInfo = (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [];\n\nMeetingUtil.canInviteNewParticipants = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ADD_GUEST);\n\nMeetingUtil.canAdmitParticipant = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN);\n\nMeetingUtil.canUserLock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED);\n\nMeetingUtil.canUserUnlock = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED);\n\nMeetingUtil.canUserRaiseHand = (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND);\n\nMeetingUtil.canUserLowerAllHands = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS);\n\nMeetingUtil.canUserLowerSomeoneElsesHand = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND);\n\nMeetingUtil.bothLeaveAndEndMeetingAvailable = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING);\n\nMeetingUtil.lockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canLock) {\n return request.lockMeeting({locusUrl, lock: true});\n }\n\n return Promise.reject(new PermissionError('Lock not allowed, due to joined property.'));\n};\n\nMeetingUtil.unlockMeeting = (actions, request, locusUrl) => {\n if (actions && actions.canUnlock) {\n return request.lockMeeting({locusUrl, lock: false});\n }\n\n return Promise.reject(new PermissionError('Unlock not allowed, due to joined property.'));\n};\n\nMeetingUtil.handleAudioLogging = (audioTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioTrack) {\n const settings = audioTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleVideoLogging = (videoTrack) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoTrack) {\n const settings = videoTrack.getSettings();\n const {deviceId} = settings;\n\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings =', JSON.stringify(settings));\n }\n};\n\nMeetingUtil.handleDeviceLogging = (devices = []) => {\n const LOG_HEADER = 'MeetingUtil#handleDeviceLogging -->';\n\n devices.forEach((device) => {\n LoggerProxy.logger.log(LOG_HEADER, `deviceId = ${device.deviceId}`);\n LoggerProxy.logger.log(LOG_HEADER, 'settings', JSON.stringify(device));\n });\n};\n\nMeetingUtil.endMeetingForAll = (meeting) => {\n if (meeting.meetingState === FULL_STATE.INACTIVE) {\n return Promise.reject(new MeetingNotActiveError());\n }\n\n const endOptions = {\n locusUrl: meeting.locusUrl,\n };\n\n return meeting.meetingRequest\n .endMeetingForAll(endOptions)\n .then((response) => {\n if (response && response.body && response.body.locus) {\n meeting.locusInfo.onFullLocus(response.body.locus);\n }\n\n return Promise.resolve();\n })\n .then(() => MeetingUtil.cleanUp(meeting))\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting:util#endMeetingForAll An error occured while trying to end meeting for all with an id of ${meeting.id}, error: ${err}`\n );\n\n return Promise.reject(err);\n });\n};\n\nMeetingUtil.canEnableClosedCaption = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_START);\n\nMeetingUtil.canStartTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START);\n\nMeetingUtil.canStopTranscribing = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP);\n\nMeetingUtil.isClosedCaptionActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE);\n\nMeetingUtil.isWebexAssistantActive = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE);\n\nMeetingUtil.canViewCaptionPanel = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL);\n\nMeetingUtil.isRealTimeTranslationEnabled = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION);\n\nMeetingUtil.canSelectSpokenLanguages = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR);\n\nMeetingUtil.waitingForOthersToJoin = (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS);\n\nexport default MeetingUtil;\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
14
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
17
- var _find2 = _interopRequireDefault(require("lodash/find"));
17
+ var _lodash = require("lodash");
18
18
  var _collection = _interopRequireDefault(require("../common/collection"));
19
19
  var _constants = require("../constants");
20
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
@@ -52,7 +52,7 @@ var MeetingInfoCollection = /*#__PURE__*/function (_Collection) {
52
52
  // @ts-ignore
53
53
  return this.meetingInfos[id];
54
54
  }
55
- return (0, _find2.default)(
55
+ return (0, _lodash.find)(
56
56
  // @ts-ignore
57
57
  this.meetingInfos, function (info) {
58
58
  return info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id;
@@ -1 +1 @@
1
- {"version":3,"names":["_collection","_interopRequireDefault","require","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingInfoCollection","_Collection","_inherits2","_super","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","MEETINGS","_createClass2","key","value","get","id","meetingInfos","_find2","info","sipUrl","locusId","userId","meetingLink","Collection","exports"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\nimport {MEETINGS} from '../constants';\n\n/**\n * @class MeetingInfoCollection\n */\nexport default class MeetingInfoCollection extends Collection {\n namespace = MEETINGS;\n\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n constructor() {\n super('meetingInfos');\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n public get(id: string) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n\n return find(\n // @ts-ignore\n this.meetingInfos,\n (info) =>\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAAsC,SAAAE,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAEtC;AACA;AACA;AAFA,IAGqBC,qBAAqB,0BAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,qBAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,qBAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,SAAAA,sBAAA,EAAc;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,qBAAA;IACZI,KAAA,GAAAD,MAAA,CAAAL,IAAA,OAAM,cAAc;IAAE,IAAAQ,gBAAA,CAAAtB,OAAA,MAAAuB,uBAAA,CAAAvB,OAAA,EAAAoB,KAAA,gBARZI,mBAAQ;IAAA,OAAAJ,KAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAK,aAAA,CAAAzB,OAAA,EAAAgB,qBAAA;IAAAU,GAAA;IAAAC,KAAA,EAMA,SAAAC,IAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO,IAAAE,MAAA,CAAA/B,OAAA;MACL;MACA,IAAI,CAAC8B,YAAY,EACjB,UAACE,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKJ,EAAE,IAAIG,IAAI,CAACE,OAAO,KAAKL,EAAE,IAAIG,IAAI,CAACG,MAAM,KAAKN,EAAE,IAAIG,IAAI,CAACI,WAAW,KAAKP,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA,OAAAb,qBAAA;AAAA,EA/BgDqB,mBAAU;AAAAC,OAAA,CAAAtC,OAAA,GAAAgB,qBAAA"}
1
+ {"version":3,"names":["_lodash","require","_collection","_interopRequireDefault","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingInfoCollection","_Collection","_inherits2","_super","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","MEETINGS","_createClass2","key","value","get","id","meetingInfos","find","info","sipUrl","locusId","userId","meetingLink","Collection","exports"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\nimport {MEETINGS} from '../constants';\n\n/**\n * @class MeetingInfoCollection\n */\nexport default class MeetingInfoCollection extends Collection {\n namespace = MEETINGS;\n\n /**\n * @memberof MeetingInfoCollection\n * @constructor\n * @public\n */\n constructor() {\n super('meetingInfos');\n }\n\n /**\n * @param {String} id ID of the meeting info you wish to retreive\n * @returns {MeetingInfo} returns a meeting info instance\n * @public\n * @memberof MeetingInfoCollection\n */\n public get(id: string) {\n // @ts-ignore\n if (this.meetingInfos[id]) {\n // @ts-ignore\n return this.meetingInfos[id];\n }\n\n return find(\n // @ts-ignore\n this.meetingInfos,\n (info) =>\n info.sipUrl === id || info.locusId === id || info.userId === id || info.meetingLink === id\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAAsC,SAAAI,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAEtC;AACA;AACA;AAFA,IAGqBC,qBAAqB,0BAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,qBAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,qBAAA;EAGxC;AACF;AACA;AACA;AACA;EACE,SAAAA,sBAAA,EAAc;IAAA,IAAAI,KAAA;IAAA,IAAAC,gBAAA,CAAArB,OAAA,QAAAgB,qBAAA;IACZI,KAAA,GAAAD,MAAA,CAAAL,IAAA,OAAM,cAAc;IAAE,IAAAQ,gBAAA,CAAAtB,OAAA,MAAAuB,uBAAA,CAAAvB,OAAA,EAAAoB,KAAA,gBARZI,mBAAQ;IAAA,OAAAJ,KAAA;EASpB;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,IAAAK,aAAA,CAAAzB,OAAA,EAAAgB,qBAAA;IAAAU,GAAA;IAAAC,KAAA,EAMA,SAAAC,IAAWC,EAAU,EAAE;MACrB;MACA,IAAI,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC,EAAE;QACzB;QACA,OAAO,IAAI,CAACC,YAAY,CAACD,EAAE,CAAC;MAC9B;MAEA,OAAO,IAAAE,YAAI;MACT;MACA,IAAI,CAACD,YAAY,EACjB,UAACE,IAAI;QAAA,OACHA,IAAI,CAACC,MAAM,KAAKJ,EAAE,IAAIG,IAAI,CAACE,OAAO,KAAKL,EAAE,IAAIG,IAAI,CAACG,MAAM,KAAKN,EAAE,IAAIG,IAAI,CAACI,WAAW,KAAKP,EAAE;MAAA,EAC7F;IACH;EAAC;EAAA,OAAAb,qBAAA;AAAA,EA/BgDqB,mBAAU;AAAAC,OAAA,CAAAtC,OAAA,GAAAgB,qBAAA"}
@@ -197,7 +197,13 @@ var MeetingInfoV2 = /*#__PURE__*/function () {
197
197
  }
198
198
  return invitees;
199
199
  };
200
- return _context.abrupt("return", this.webex.request(conversationUrl).then(function (_ref) {
200
+ return _context.abrupt("return", this.webex.request({
201
+ uri: conversationUrl,
202
+ qs: {
203
+ includeParticipants: true
204
+ },
205
+ disableTransform: true
206
+ }).then(function (_ref) {
201
207
  var _conversation$partici;
202
208
  var conversation = _ref.body;
203
209
  var body = {