@webex/plugin-meetings 3.1.0-next.9 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/annotation/annotation.types.d.ts +42 -0
  2. package/dist/annotation/constants.d.ts +31 -0
  3. package/dist/annotation/index.d.ts +117 -0
  4. package/dist/breakouts/breakout.d.ts +8 -0
  5. package/dist/breakouts/breakout.js +1 -1
  6. package/dist/breakouts/collection.d.ts +5 -0
  7. package/dist/breakouts/edit-lock-error.d.ts +15 -0
  8. package/dist/breakouts/events.d.ts +8 -0
  9. package/dist/breakouts/index.d.ts +5 -0
  10. package/dist/breakouts/index.js +1 -1
  11. package/dist/breakouts/request.d.ts +22 -0
  12. package/dist/breakouts/utils.d.ts +15 -0
  13. package/dist/common/browser-detection.d.ts +9 -0
  14. package/dist/common/collection.d.ts +48 -0
  15. package/dist/common/config.d.ts +2 -0
  16. package/dist/common/errors/captcha-error.d.ts +15 -0
  17. package/dist/common/errors/intent-to-join.d.ts +16 -0
  18. package/dist/common/errors/join-meeting.d.ts +17 -0
  19. package/dist/common/errors/media.d.ts +15 -0
  20. package/dist/common/errors/no-meeting-info.d.ts +14 -0
  21. package/dist/common/errors/parameter.d.ts +15 -0
  22. package/dist/common/errors/password-error.d.ts +15 -0
  23. package/dist/common/errors/permission.d.ts +14 -0
  24. package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
  25. package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
  26. package/dist/common/errors/reconnection-in-progress.js +34 -0
  27. package/dist/common/errors/reconnection-in-progress.js.map +1 -0
  28. package/dist/common/errors/reconnection.d.ts +15 -0
  29. package/dist/common/errors/stats.d.ts +15 -0
  30. package/dist/common/errors/webex-errors.d.ts +93 -0
  31. package/dist/common/errors/webex-meetings-error.d.ts +20 -0
  32. package/dist/common/events/events-scope.d.ts +17 -0
  33. package/dist/common/events/events.d.ts +12 -0
  34. package/dist/common/events/trigger-proxy.d.ts +2 -0
  35. package/dist/common/events/util.d.ts +2 -0
  36. package/dist/common/logs/logger-config.d.ts +2 -0
  37. package/dist/common/logs/logger-proxy.d.ts +2 -0
  38. package/dist/common/logs/request.d.ts +36 -0
  39. package/dist/common/queue.d.ts +34 -0
  40. package/dist/config.d.ts +73 -0
  41. package/dist/constants.d.ts +1088 -0
  42. package/dist/constants.js +6 -3
  43. package/dist/constants.js.map +1 -1
  44. package/dist/controls-options-manager/constants.d.ts +4 -0
  45. package/dist/controls-options-manager/enums.d.ts +15 -0
  46. package/dist/controls-options-manager/index.d.ts +136 -0
  47. package/dist/controls-options-manager/types.d.ts +43 -0
  48. package/dist/controls-options-manager/util.d.ts +1 -0
  49. package/dist/index.d.ts +7 -0
  50. package/dist/interceptors/index.d.ts +2 -0
  51. package/dist/interceptors/locusRetry.d.ts +27 -0
  52. package/dist/interpretation/collection.d.ts +5 -0
  53. package/dist/interpretation/index.d.ts +5 -0
  54. package/dist/interpretation/index.js +1 -1
  55. package/dist/interpretation/siLanguage.d.ts +5 -0
  56. package/dist/interpretation/siLanguage.js +1 -1
  57. package/dist/locus-info/controlsUtils.d.ts +2 -0
  58. package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
  59. package/dist/locus-info/fullState.d.ts +2 -0
  60. package/dist/locus-info/hostUtils.d.ts +2 -0
  61. package/dist/locus-info/index.d.ts +322 -0
  62. package/dist/locus-info/infoUtils.d.ts +2 -0
  63. package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
  64. package/dist/locus-info/parser.d.ts +272 -0
  65. package/dist/locus-info/selfUtils.d.ts +2 -0
  66. package/dist/media/MediaConnectionAwaiter.d.ts +61 -0
  67. package/dist/media/index.d.ts +34 -0
  68. package/dist/media/properties.d.ts +93 -0
  69. package/dist/media/util.d.ts +2 -0
  70. package/dist/mediaQualityMetrics/config.d.ts +241 -0
  71. package/dist/mediaQualityMetrics/config.js +10 -10
  72. package/dist/mediaQualityMetrics/config.js.map +1 -1
  73. package/dist/meeting/in-meeting-actions.d.ts +167 -0
  74. package/dist/meeting/index.d.ts +1825 -0
  75. package/dist/meeting/index.js +112 -64
  76. package/dist/meeting/index.js.map +1 -1
  77. package/dist/meeting/locusMediaRequest.d.ts +74 -0
  78. package/dist/meeting/locusMediaRequest.js +27 -0
  79. package/dist/meeting/locusMediaRequest.js.map +1 -1
  80. package/dist/meeting/muteState.d.ts +178 -0
  81. package/dist/meeting/request.d.ts +295 -0
  82. package/dist/meeting/request.type.d.ts +11 -0
  83. package/dist/meeting/state.d.ts +9 -0
  84. package/dist/meeting/util.d.ts +119 -0
  85. package/dist/meeting/util.js +0 -16
  86. package/dist/meeting/util.js.map +1 -1
  87. package/dist/meeting/voicea-meeting.d.ts +16 -0
  88. package/dist/meeting/voicea-meeting.js +37 -49
  89. package/dist/meeting/voicea-meeting.js.map +1 -1
  90. package/dist/meeting-info/collection.d.ts +20 -0
  91. package/dist/meeting-info/index.d.ts +69 -0
  92. package/dist/meeting-info/meeting-info-v2.d.ts +123 -0
  93. package/dist/meeting-info/request.d.ts +22 -0
  94. package/dist/meeting-info/util.d.ts +2 -0
  95. package/dist/meeting-info/utilv2.d.ts +2 -0
  96. package/dist/meetings/collection.d.ts +40 -0
  97. package/dist/meetings/index.d.ts +398 -0
  98. package/dist/meetings/index.js +12 -28
  99. package/dist/meetings/index.js.map +1 -1
  100. package/dist/meetings/meetings.types.d.ts +4 -0
  101. package/dist/meetings/request.d.ts +27 -0
  102. package/dist/meetings/util.d.ts +18 -0
  103. package/dist/member/index.d.ts +160 -0
  104. package/dist/member/types.d.ts +32 -0
  105. package/dist/member/util.d.ts +2 -0
  106. package/dist/members/collection.d.ts +29 -0
  107. package/dist/members/index.d.ts +353 -0
  108. package/dist/members/request.d.ts +114 -0
  109. package/dist/members/types.d.ts +25 -0
  110. package/dist/members/util.d.ts +215 -0
  111. package/dist/metrics/constants.d.ts +70 -0
  112. package/dist/metrics/index.d.ts +45 -0
  113. package/dist/multistream/mediaRequestManager.d.ts +119 -0
  114. package/dist/multistream/receiveSlot.d.ts +68 -0
  115. package/dist/multistream/receiveSlotManager.d.ts +56 -0
  116. package/dist/multistream/remoteMedia.d.ts +72 -0
  117. package/dist/multistream/remoteMediaGroup.d.ts +49 -0
  118. package/dist/multistream/remoteMediaManager.d.ts +300 -0
  119. package/dist/multistream/sendSlotManager.d.ts +69 -0
  120. package/dist/networkQualityMonitor/index.d.ts +70 -0
  121. package/dist/personal-meeting-room/index.d.ts +47 -0
  122. package/dist/personal-meeting-room/request.d.ts +14 -0
  123. package/dist/personal-meeting-room/util.d.ts +2 -0
  124. package/dist/reachability/clusterReachability.d.ts +110 -0
  125. package/dist/reachability/index.d.ts +109 -0
  126. package/dist/reachability/index.js +88 -9
  127. package/dist/reachability/index.js.map +1 -1
  128. package/dist/reachability/request.d.ts +39 -0
  129. package/dist/reachability/util.d.ts +15 -0
  130. package/dist/reactions/constants.d.ts +3 -0
  131. package/dist/reactions/reactions.d.ts +4 -0
  132. package/dist/reactions/reactions.type.d.ts +52 -0
  133. package/dist/reconnection-manager/index.d.ts +136 -0
  134. package/dist/recording-controller/enums.d.ts +7 -0
  135. package/dist/recording-controller/index.d.ts +207 -0
  136. package/dist/recording-controller/util.d.ts +14 -0
  137. package/dist/roap/index.d.ts +86 -0
  138. package/dist/roap/request.d.ts +39 -0
  139. package/dist/roap/request.js +3 -27
  140. package/dist/roap/request.js.map +1 -1
  141. package/dist/roap/turnDiscovery.d.ts +155 -0
  142. package/dist/rtcMetrics/constants.d.ts +4 -0
  143. package/dist/rtcMetrics/index.d.ts +61 -0
  144. package/dist/statsAnalyzer/global.d.ts +36 -0
  145. package/dist/statsAnalyzer/index.d.ts +217 -0
  146. package/dist/statsAnalyzer/index.js +4 -2
  147. package/dist/statsAnalyzer/index.js.map +1 -1
  148. package/dist/statsAnalyzer/mqaUtil.d.ts +48 -0
  149. package/dist/statsAnalyzer/mqaUtil.js +14 -0
  150. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  151. package/dist/transcription/index.d.ts +64 -0
  152. package/dist/types/constants.d.ts +3 -1
  153. package/dist/types/mediaQualityMetrics/config.d.ts +8 -2
  154. package/dist/types/meeting/index.d.ts +10 -1
  155. package/dist/types/meeting/locusMediaRequest.d.ts +1 -0
  156. package/dist/types/meeting/voicea-meeting.d.ts +3 -2
  157. package/dist/types/meetings/index.d.ts +1 -16
  158. package/dist/types/reachability/index.d.ts +11 -0
  159. package/dist/webinar/collection.d.ts +16 -0
  160. package/dist/webinar/index.d.ts +5 -0
  161. package/dist/webinar/index.js +1 -1
  162. package/package.json +21 -21
  163. package/src/constants.ts +3 -2
  164. package/src/mediaQualityMetrics/config.ts +13 -7
  165. package/src/meeting/index.ts +73 -30
  166. package/src/meeting/locusMediaRequest.ts +31 -0
  167. package/src/meeting/util.ts +1 -16
  168. package/src/meeting/voicea-meeting.ts +44 -46
  169. package/src/meetings/index.ts +15 -27
  170. package/src/reachability/index.ts +60 -0
  171. package/src/roap/request.ts +1 -24
  172. package/src/statsAnalyzer/index.ts +6 -3
  173. package/src/statsAnalyzer/mqaUtil.ts +18 -0
  174. package/test/unit/spec/meeting/index.js +70 -33
  175. package/test/unit/spec/meeting/locusMediaRequest.ts +49 -0
  176. package/test/unit/spec/meeting/utils.js +0 -10
  177. package/test/unit/spec/meeting/voicea-meeting.ts +5 -14
  178. package/test/unit/spec/meetings/index.js +59 -17
  179. package/test/unit/spec/reachability/index.ts +266 -0
  180. package/test/unit/spec/roap/request.ts +0 -37
  181. package/test/unit/spec/stats-analyzer/index.js +89 -8
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_webexErrors","_loggerProxy","_interopRequireDefault","_constants","_browserDetection","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","_triggerProxy","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","r","t","_Object$keys","_Object$getOwnPropertySymbols","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_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","meeting","audioMuted","videoMuted","webex","getWebexObject","_promise","reject","ParameterError","locusMediaRequest","internal","newMetrics","submitClientEvent","options","meetingId","send","type","selfUrl","sequence","locusInfo","muteOptions","then","_response$body","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","_err$body","errorCode","INTENT_TO_JOIN","includes","getIpVersion","_webex$internal$devic","device","ipNetworkDetector","supportsIpV4","supportsIpV6","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","_meeting$meetingInfo","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","reachability","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","_meeting$config","config","enableAutomaticLLM","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","concat","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","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","setLocus","IntentToJoinError","JoinMeetingError","buildLeaveFetchRequestOptions","buildLeaveMeetingRequestOptions","getTrack","stream","audioTrack","videoTrack","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","canManageBreakout","BREAKOUT_MANAGEMENT","canBroadcastMessageToBreakout","policies","BROADCAST_MESSAGE_TO_BREAKOUT","SELF_POLICY","SUPPORT_BROADCAST_MESSAGE","isSuppressBreakoutSupport","UCF_SUPPRESS_BREAKOUTS_SUPPORT","canAdmitLobbyToBreakout","DISABLE_LOBBY_TO_BREAKOUT","isBreakoutPreassignmentsEnabled","DISABLE_BREAKOUT_PREASSIGNMENTS","canUserAskForHelp","DISABLE_ASK_FOR_HELP","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","audioStream","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","videoStream","handleDeviceLogging","devices","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","isSaveTranscriptsEnabled","SAVE_TRANSCRIPTS_ENABLED","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","canStartManualCaption","MANUAL_CAPTION_START","canStopManualCaption","MANUAL_CAPTION_STOP","isManualCaptionActive","MANUAL_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","canSendReactions","originalValue","REACTIONS_ACTIVE","REACTIONS_INACTIVE","canUserRenameSelfAndObserved","CAN_RENAME_SELF_AND_OBSERVED","canUserRenameOthers","CAN_RENAME_OTHERS","canShareWhiteBoard","SHARE_WHITEBOARD","addSequence","requestBody","_meeting$locusInfo","updateLocusWithDelta","_response$body2","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","cloneDeep","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","_meetingInfo$meetingS","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","_meeting$simultaneous","_meeting$simultaneous2","lanuagesInfo","siLanguages","_iterator","_step","language","updateInterpretation","Trigger","file","function","EVENT_TRIGGERS","MEETING_INTERPRETATION_UPDATE","getChangeMeetingFloorErrorPayload","errorPayload","errorDescription","shownToUser","LOCAL_SHARE_ERRORS","UNDEFINED","fatal","category","DEVICE_NOT_JOINED","NO_MEDIA_FOR_DEVICE","NO_CONFLUENCE_ID","CONTENT_SHARING_DISABLED","LOCUS_PARTICIPANT_DNE","CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {LocalCameraStream, LocalMicrophoneStream} from '@webex/media-helpers';\n\nimport {cloneDeep} from 'lodash';\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\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 SELF_POLICY,\n EVENT_TRIGGERS,\n LOCAL_SHARE_ERRORS,\n IP_VERSION,\n} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\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';\nimport Trigger from '../common/events/trigger-proxy';\n\nconst MeetingUtil = {\n 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\n remoteUpdateAudioVideo: (meeting, audioMuted?: boolean, videoMuted?: boolean) => {\n const webex = meeting.getWebexObject();\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n if (!meeting.locusMediaRequest) {\n return Promise.reject(\n new ParameterError(\n 'You need a meeting with a media connection, call Meeting.addMedia() first.'\n )\n );\n }\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.request',\n options: {meetingId: meeting.id},\n });\n\n return meeting.locusMediaRequest\n .send({\n type: 'LocalMute',\n selfUrl: meeting.selfUrl,\n mediaId: meeting.mediaId,\n sequence: meeting.locusInfo.sequence,\n muteOptions: {\n audioMuted,\n videoMuted,\n },\n })\n .then((response) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.media.response',\n options: {meetingId: meeting.id},\n });\n\n return response?.body?.locus;\n });\n },\n\n hasOwner: (info) => info && info.owner,\n\n isOwnerSelf: (owner, selfId) => owner === selfId,\n\n isPinOrGuest: (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode),\n\n /**\n * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.\n * The return value matches the possible values of \"ipver\" parameter used by the backend APIs.\n *\n * @param {Object} webex webex instance\n * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend\n */\n getIpVersion(webex: any): IP_VERSION | undefined {\n const {supportsIpV4, supportsIpV6} = webex.internal.device.ipNetworkDetector;\n\n if (BrowserDetection().isBrowser('firefox')) {\n // our ipv6 solution relies on FQDN ICE candidates, but Firefox doesn't support them,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1713128\n // so for Firefox we don't want the backend to activate the \"ipv6 feature\"\n return undefined;\n }\n\n if (supportsIpV4 && supportsIpV6) {\n return IP_VERSION.ipv4_and_ipv6;\n }\n\n if (supportsIpV4) {\n return IP_VERSION.only_ipv4;\n }\n\n if (supportsIpV6) {\n return IP_VERSION.only_ipv6;\n }\n\n return IP_VERSION.unknown;\n },\n\n joinMeeting: (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const webex = meeting.getWebexObject();\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.request',\n options: {meetingId: meeting.id},\n });\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 locusClusterUrl: meeting.meetingInfo?.locusClusterUrl,\n correlationId: meeting.correlationId,\n reachability: options.reachability,\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: !meeting.isMultistream,\n asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject()),\n })\n .then((res) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.response',\n payload: {\n trigger: 'loci-update',\n identifiers: {\n trackingId: res.headers.trackingid,\n },\n },\n options: {\n meetingId: meeting.id,\n mediaConnections: res.body.mediaConnections,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n },\n\n cleanUp: (meeting) => {\n meeting.breakouts.cleanUp();\n meeting.simultaneousInterpretation.cleanUp();\n\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.closeRemoteStreams())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.cleanupLocalStreams();\n meeting.unsetRemoteStreams();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => {\n if (meeting.config?.enableAutomaticLLM) {\n meeting.updateLLMConnection();\n }\n });\n },\n\n 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.disconnectPhoneAudio(options).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 /**\n * Returns options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} leave options\n */\n prepareLeaveMeetingOptions: (meeting, options: any = {}) => {\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 return {...defaultOptions, ...options};\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\n 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 leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\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 },\n declineMeeting: (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n }),\n\n isUserInLeftState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_,\n\n isUserInIdleState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_,\n\n isUserInJoinedState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_,\n\n isMediaEstablished: (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share),\n\n joinMeetingOptions: (meeting, options: any = {}) => {\n const webex = meeting.getWebexObject();\n\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.collected',\n options: {\n meetingId: meeting.id,\n },\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.prompt',\n options: {\n meetingId: meeting.id,\n },\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(\n 'Meeting:util#joinMeetingOptions --> Error joining the call, ',\n err\n );\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n },\n\n /**\n * Returns request options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} request options\n */\n buildLeaveFetchRequestOptions: (meeting, options: any = {}) => {\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest.buildLeaveMeetingRequestOptions(leaveOptions);\n },\n\n 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\n getModeratorFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator,\n\n getPolicyFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy,\n\n getUserDisplayHintsFromLocusInfo: (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [],\n\n canInviteNewParticipants: (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST),\n\n canAdmitParticipant: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN),\n\n canUserLock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED),\n\n canUserUnlock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED),\n\n canUserRaiseHand: (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND),\n\n canUserLowerAllHands: (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS),\n\n canUserLowerSomeoneElsesHand: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND),\n\n bothLeaveAndEndMeetingAvailable: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING),\n\n canManageBreakout: (displayHints) => displayHints.includes(DISPLAY_HINTS.BREAKOUT_MANAGEMENT),\n canBroadcastMessageToBreakout: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.BROADCAST_MESSAGE_TO_BREAKOUT) &&\n !!policies[SELF_POLICY.SUPPORT_BROADCAST_MESSAGE],\n\n isSuppressBreakoutSupport: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT),\n\n canAdmitLobbyToBreakout: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT),\n\n isBreakoutPreassignmentsEnabled: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS),\n\n canUserAskForHelp: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_ASK_FOR_HELP),\n\n 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\n 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\n handleAudioLogging: (audioStream?: LocalMicrophoneStream) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioStream) {\n const settings = audioStream.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\n handleVideoLogging: (videoStream?: LocalCameraStream) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoStream) {\n const settings = videoStream.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\n 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\n 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(() => 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\n canEnableClosedCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START),\n\n isSaveTranscriptsEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED),\n\n canStartTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START),\n\n canStopTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP),\n\n isClosedCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE),\n\n canStartManualCaption: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_START),\n\n canStopManualCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STOP),\n\n isManualCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STATUS_ACTIVE),\n\n isWebexAssistantActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE),\n\n canViewCaptionPanel: (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL),\n\n isRealTimeTranslationEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION),\n\n canSelectSpokenLanguages: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR),\n\n waitingForOthersToJoin: (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS),\n\n canSendReactions: (originalValue, displayHints) => {\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_ACTIVE)) {\n return true;\n }\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_INACTIVE)) {\n return false;\n }\n\n return originalValue;\n },\n canUserRenameSelfAndObserved: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n canShareWhiteBoard: (displayHints) => displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD),\n\n /**\n * Adds the current locus sequence information to a request body\n * @param {Object} meeting The meeting object\n * @param {Object} requestBody The body of a request to locus\n * @returns {void}\n */\n addSequence: (meeting, requestBody) => {\n const sequence = meeting?.locusInfo?.sequence;\n\n if (!sequence) {\n return;\n }\n\n requestBody.sequence = sequence;\n },\n\n /**\n * Updates the locus info for the meeting with the delta locus\n * returned from requests that include the sequence information\n * Returns the original response object\n * @param {Object} meeting The meeting object\n * @param {Object} response The response of the http request\n * @returns {Object}\n */\n updateLocusWithDelta: (meeting, response) => {\n if (!meeting) {\n return response;\n }\n\n const locus = response?.body?.locus;\n\n if (locus) {\n meeting.locusInfo.handleLocusDelta(locus, meeting);\n }\n\n return response;\n },\n\n generateBuildLocusDeltaRequestOptions: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return originalOptions;\n }\n\n const options = cloneDeep(originalOptions);\n\n if (!options.body) {\n options.body = {};\n }\n\n MeetingUtil.addSequence(meeting, options.body);\n\n return options;\n };\n\n return buildLocusDeltaRequestOptions;\n },\n\n generateLocusDeltaRequest: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions =\n MeetingUtil.generateBuildLocusDeltaRequestOptions(originalMeeting);\n\n const locusDeltaRequest = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return Promise.resolve();\n }\n\n const options = buildLocusDeltaRequestOptions(originalOptions);\n\n return meeting\n .request(options)\n .then((response) => MeetingUtil.updateLocusWithDelta(meeting, response));\n };\n\n return locusDeltaRequest;\n },\n\n selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => {\n if (!userPolicies) {\n return true;\n }\n\n return userPolicies[feature];\n },\n\n parseInterpretationInfo: (meeting, meetingInfo) => {\n if (!meeting || !meetingInfo) {\n return;\n }\n const siInfo = meetingInfo.simultaneousInterpretation;\n meeting.simultaneousInterpretation.updateMeetingSIEnabled(\n !!meetingInfo.turnOnSimultaneousInterpretation,\n !!siInfo?.currentSIInterpreter\n );\n const hostSIEnabled = !!(\n meetingInfo.turnOnSimultaneousInterpretation &&\n meetingInfo?.meetingSiteSetting?.enableHostInterpreterControlSI\n );\n meeting.simultaneousInterpretation.updateHostSIEnabled(hostSIEnabled);\n\n function renameKey(obj, oldKey, newKey) {\n if (oldKey in obj) {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n }\n }\n if (siInfo) {\n const lanuagesInfo = cloneDeep(siInfo.siLanguages);\n for (const language of lanuagesInfo) {\n renameKey(language, 'languageCode', 'languageName');\n renameKey(language, 'languageGroupId', 'languageCode');\n }\n if (!meeting.simultaneousInterpretation?.siLanguages?.length) {\n meeting.simultaneousInterpretation.updateInterpretation({siLanguages: lanuagesInfo});\n }\n }\n Trigger.trigger(\n meeting,\n {\n file: 'meeting/util',\n function: 'parseInterpretationInfo',\n },\n EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE\n );\n },\n\n /**\n * Returns a CA-recognized error payload for the specified raw error message/reason.\n *\n * New errors can be added to this function for handling in the future\n *\n * @param {String} reason the raw error message\n * @returns {Array<object>} an array of payload objects\n */\n getChangeMeetingFloorErrorPayload: (reason: string) => {\n const errorPayload = {\n errorDescription: reason,\n name: 'locus.response',\n shownToUser: false,\n };\n if (reason.includes(LOCAL_SHARE_ERRORS.UNDEFINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4050,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'media',\n errorCode: 2048,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4064,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4065,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4066,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4067,\n },\n ];\n }\n\n // return unknown error\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n },\n};\n\nexport default MeetingUtil;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_webexErrors","_loggerProxy","_interopRequireDefault","_constants","_browserDetection","_intentToJoin","_joinMeeting","_parameter","_permission","_passwordError","_captchaError","_triggerProxy","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","r","t","_Object$keys","_Object$getOwnPropertySymbols","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_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","meeting","audioMuted","videoMuted","_promise","reject","ParameterError","locusMediaRequest","send","type","selfUrl","sequence","locusInfo","muteOptions","then","_response$body","hasOwner","info","owner","isOwnerSelf","isPinOrGuest","_err$body","errorCode","INTENT_TO_JOIN","includes","getIpVersion","webex","_webex$internal$devic","internal","device","ipNetworkDetector","supportsIpV4","supportsIpV6","BrowserDetection","isBrowser","undefined","IP_VERSION","ipv4_and_ipv6","only_ipv4","only_ipv6","unknown","joinMeeting","options","_meeting$meetingInfo","getWebexObject","newMetrics","submitClientEvent","meetingId","meetingRequest","inviteeAddress","meetingJoinUrl","sipUri","meetingNumber","deviceUrl","locusClusterUrl","meetingInfo","correlationId","reachability","roapMessage","permissionToken","resourceId","moderator","pin","moveToResource","preferTranscoding","isMultistream","asResourceOccupant","breakoutsSupported","locale","deviceCapabilities","liveAnnotationSupported","ipVersion","res","payload","trigger","identifiers","trackingId","headers","trackingid","cleanUp","breakouts","simultaneousInterpretation","stopStatsAnalyzer","statsAnalyzer","stopAnalyzer","resolve","closeRemoteStreams","closePeerConnections","cleanupLocalStreams","unsetRemoteStreams","unsetPeerConnections","reconnectionManager","stopKeepAlive","_meeting$config","config","enableAutomaticLLM","updateLLMConnection","disconnectPhoneAudio","phoneUrl","meetingState","FULL_STATE","INACTIVE","MeetingNotActiveError","catch","LoggerProxy","logger","error","concat","prepareLeaveMeetingOptions","defaultOptions","leaveMeeting","isUserInLeftState","UserNotJoinedError","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","setLocus","IntentToJoinError","JoinMeetingError","buildLeaveFetchRequestOptions","buildLeaveMeetingRequestOptions","getTrack","stream","audioTrack","videoTrack","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","canManageBreakout","BREAKOUT_MANAGEMENT","canBroadcastMessageToBreakout","policies","BROADCAST_MESSAGE_TO_BREAKOUT","SELF_POLICY","SUPPORT_BROADCAST_MESSAGE","isSuppressBreakoutSupport","UCF_SUPPRESS_BREAKOUTS_SUPPORT","canAdmitLobbyToBreakout","DISABLE_LOBBY_TO_BREAKOUT","isBreakoutPreassignmentsEnabled","DISABLE_BREAKOUT_PREASSIGNMENTS","canUserAskForHelp","DISABLE_ASK_FOR_HELP","lockMeeting","actions","request","canLock","lock","PermissionError","unlockMeeting","canUnlock","handleAudioLogging","audioStream","LOG_HEADER","settings","getSettings","deviceId","log","_stringify","handleVideoLogging","videoStream","handleDeviceLogging","devices","endMeetingForAll","endOptions","canEnableClosedCaption","CAPTION_START","isSaveTranscriptsEnabled","SAVE_TRANSCRIPTS_ENABLED","canStartTranscribing","TRANSCRIPTION_CONTROL_START","canStopTranscribing","TRANSCRIPTION_CONTROL_STOP","isClosedCaptionActive","CAPTION_STATUS_ACTIVE","canStartManualCaption","MANUAL_CAPTION_START","canStopManualCaption","MANUAL_CAPTION_STOP","isManualCaptionActive","MANUAL_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","canSendReactions","originalValue","REACTIONS_ACTIVE","REACTIONS_INACTIVE","canUserRenameSelfAndObserved","CAN_RENAME_SELF_AND_OBSERVED","canUserRenameOthers","CAN_RENAME_OTHERS","canShareWhiteBoard","SHARE_WHITEBOARD","addSequence","requestBody","_meeting$locusInfo","updateLocusWithDelta","_response$body2","handleLocusDelta","generateBuildLocusDeltaRequestOptions","originalMeeting","meetingRef","WeakRef","buildLocusDeltaRequestOptions","originalOptions","deref","cloneDeep","generateLocusDeltaRequest","locusDeltaRequest","selfSupportsFeature","feature","userPolicies","parseInterpretationInfo","_meetingInfo$meetingS","siInfo","updateMeetingSIEnabled","turnOnSimultaneousInterpretation","currentSIInterpreter","hostSIEnabled","meetingSiteSetting","enableHostInterpreterControlSI","updateHostSIEnabled","renameKey","obj","oldKey","newKey","_meeting$simultaneous","_meeting$simultaneous2","lanuagesInfo","siLanguages","_iterator","_step","language","updateInterpretation","Trigger","file","function","EVENT_TRIGGERS","MEETING_INTERPRETATION_UPDATE","getChangeMeetingFloorErrorPayload","errorPayload","errorDescription","shownToUser","LOCAL_SHARE_ERRORS","UNDEFINED","fatal","category","DEVICE_NOT_JOINED","NO_MEDIA_FOR_DEVICE","NO_CONFLUENCE_ID","CONTENT_SHARING_DISABLED","LOCUS_PARTICIPANT_DNE","CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD","_default","exports"],"sources":["util.ts"],"sourcesContent":["import {LocalCameraStream, LocalMicrophoneStream} from '@webex/media-helpers';\n\nimport {cloneDeep} from 'lodash';\nimport {MeetingNotActiveError, UserNotJoinedError} from '../common/errors/webex-errors';\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 SELF_POLICY,\n EVENT_TRIGGERS,\n LOCAL_SHARE_ERRORS,\n IP_VERSION,\n} from '../constants';\nimport BrowserDetection from '../common/browser-detection';\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';\nimport Trigger from '../common/events/trigger-proxy';\n\nconst MeetingUtil = {\n 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\n remoteUpdateAudioVideo: (meeting, audioMuted?: boolean, videoMuted?: boolean) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n\n if (!meeting.locusMediaRequest) {\n return Promise.reject(\n new ParameterError(\n 'You need a meeting with a media connection, call Meeting.addMedia() first.'\n )\n );\n }\n\n return meeting.locusMediaRequest\n .send({\n type: 'LocalMute',\n selfUrl: meeting.selfUrl,\n mediaId: meeting.mediaId,\n sequence: meeting.locusInfo.sequence,\n muteOptions: {\n audioMuted,\n videoMuted,\n },\n })\n .then((response) => response?.body?.locus);\n },\n\n hasOwner: (info) => info && info.owner,\n\n isOwnerSelf: (owner, selfId) => owner === selfId,\n\n isPinOrGuest: (err) => err?.body?.errorCode && INTENT_TO_JOIN.includes(err.body.errorCode),\n\n /**\n * Returns the current state of knowledge about whether we are on an ipv4-only or ipv6-only or mixed (ipv4 and ipv6) network.\n * The return value matches the possible values of \"ipver\" parameter used by the backend APIs.\n *\n * @param {Object} webex webex instance\n * @returns {IP_VERSION|undefined} ipver value to be passed to the backend APIs or undefined if we should not pass any value to the backend\n */\n getIpVersion(webex: any): IP_VERSION | undefined {\n const {supportsIpV4, supportsIpV6} = webex.internal.device.ipNetworkDetector;\n\n if (BrowserDetection().isBrowser('firefox')) {\n // our ipv6 solution relies on FQDN ICE candidates, but Firefox doesn't support them,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1713128\n // so for Firefox we don't want the backend to activate the \"ipv6 feature\"\n return undefined;\n }\n\n if (supportsIpV4 && supportsIpV6) {\n return IP_VERSION.ipv4_and_ipv6;\n }\n\n if (supportsIpV4) {\n return IP_VERSION.only_ipv4;\n }\n\n if (supportsIpV6) {\n return IP_VERSION.only_ipv6;\n }\n\n return IP_VERSION.unknown;\n },\n\n joinMeeting: (meeting, options) => {\n if (!meeting) {\n return Promise.reject(new ParameterError('You need a meeting object.'));\n }\n const webex = meeting.getWebexObject();\n\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.request',\n options: {meetingId: meeting.id},\n });\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 locusClusterUrl: meeting.meetingInfo?.locusClusterUrl,\n correlationId: meeting.correlationId,\n reachability: options.reachability,\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: !meeting.isMultistream,\n asResourceOccupant: options.asResourceOccupant,\n breakoutsSupported: options.breakoutsSupported,\n locale: options.locale,\n deviceCapabilities: options.deviceCapabilities,\n liveAnnotationSupported: options.liveAnnotationSupported,\n ipVersion: MeetingUtil.getIpVersion(meeting.getWebexObject()),\n })\n .then((res) => {\n // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.locus.join.response',\n payload: {\n trigger: 'loci-update',\n identifiers: {\n trackingId: res.headers.trackingid,\n },\n },\n options: {\n meetingId: meeting.id,\n mediaConnections: res.body.mediaConnections,\n },\n });\n\n return MeetingUtil.parseLocusJoin(res);\n });\n },\n\n cleanUp: (meeting) => {\n meeting.breakouts.cleanUp();\n meeting.simultaneousInterpretation.cleanUp();\n\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.closeRemoteStreams())\n .then(() => meeting.closePeerConnections())\n .then(() => {\n meeting.cleanupLocalStreams();\n meeting.unsetRemoteStreams();\n meeting.unsetPeerConnections();\n meeting.reconnectionManager.cleanUp();\n })\n .then(() => meeting.stopKeepAlive())\n .then(() => {\n if (meeting.config?.enableAutomaticLLM) {\n meeting.updateLLMConnection();\n }\n });\n },\n\n 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.disconnectPhoneAudio(options).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 /**\n * Returns options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} leave options\n */\n prepareLeaveMeetingOptions: (meeting, options: any = {}) => {\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 return {...defaultOptions, ...options};\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\n 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 leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest\n .leaveMeeting(leaveOptions)\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 },\n declineMeeting: (meeting, reason) =>\n meeting.meetingRequest.declineMeeting({\n locusUrl: meeting.locusUrl,\n deviceUrl: meeting.deviceUrl,\n reason,\n }),\n\n isUserInLeftState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _LEFT_,\n\n isUserInIdleState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _IDLE_,\n\n isUserInJoinedState: (locusInfo) => locusInfo.parsedLocus?.self?.state === _JOINED_,\n\n isMediaEstablished: (currentMediaStatus) =>\n currentMediaStatus &&\n (currentMediaStatus.audio || currentMediaStatus.video || currentMediaStatus.share),\n\n joinMeetingOptions: (meeting, options: any = {}) => {\n const webex = meeting.getWebexObject();\n\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.collected',\n options: {\n meetingId: meeting.id,\n },\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 // @ts-ignore\n webex.internal.newMetrics.submitClientEvent({\n name: 'client.pin.prompt',\n options: {\n meetingId: meeting.id,\n },\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(\n 'Meeting:util#joinMeetingOptions --> Error joining the call, ',\n err\n );\n\n return Promise.reject(new JoinMeetingError(options, 'Error Joining Meeting', err));\n });\n },\n\n /**\n * Returns request options for leaving a meeting.\n * @param {any} meeting\n * @param {any} options\n * @returns {any} request options\n */\n buildLeaveFetchRequestOptions: (meeting, options: any = {}) => {\n const leaveOptions = MeetingUtil.prepareLeaveMeetingOptions(meeting, options);\n\n return meeting.meetingRequest.buildLeaveMeetingRequestOptions(leaveOptions);\n },\n\n 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\n getModeratorFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.moderator,\n\n getPolicyFromLocusInfo: (locusInfo) =>\n locusInfo &&\n locusInfo.parsedLocus &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info &&\n locusInfo.parsedLocus.info.policy,\n\n getUserDisplayHintsFromLocusInfo: (locusInfo) =>\n locusInfo?.parsedLocus?.info?.userDisplayHints || [],\n\n canInviteNewParticipants: (displayHints) => displayHints.includes(DISPLAY_HINTS.ADD_GUEST),\n\n canAdmitParticipant: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.ROSTER_WAITING_TO_JOIN),\n\n canUserLock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_LOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_UNLOCKED),\n\n canUserUnlock: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOCK_CONTROL_UNLOCK) &&\n displayHints.includes(DISPLAY_HINTS.LOCK_STATUS_LOCKED),\n\n canUserRaiseHand: (displayHints) => displayHints.includes(DISPLAY_HINTS.RAISE_HAND),\n\n canUserLowerAllHands: (displayHints) => displayHints.includes(DISPLAY_HINTS.LOWER_ALL_HANDS),\n\n canUserLowerSomeoneElsesHand: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LOWER_SOMEONE_ELSES_HAND),\n\n bothLeaveAndEndMeetingAvailable: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.LEAVE_TRANSFER_HOST_END_MEETING) ||\n displayHints.includes(DISPLAY_HINTS.LEAVE_END_MEETING),\n\n canManageBreakout: (displayHints) => displayHints.includes(DISPLAY_HINTS.BREAKOUT_MANAGEMENT),\n canBroadcastMessageToBreakout: (displayHints, policies = {}) =>\n displayHints.includes(DISPLAY_HINTS.BROADCAST_MESSAGE_TO_BREAKOUT) &&\n !!policies[SELF_POLICY.SUPPORT_BROADCAST_MESSAGE],\n\n isSuppressBreakoutSupport: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.UCF_SUPPRESS_BREAKOUTS_SUPPORT),\n\n canAdmitLobbyToBreakout: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_LOBBY_TO_BREAKOUT),\n\n isBreakoutPreassignmentsEnabled: (displayHints) =>\n !displayHints.includes(DISPLAY_HINTS.DISABLE_BREAKOUT_PREASSIGNMENTS),\n\n canUserAskForHelp: (displayHints) => !displayHints.includes(DISPLAY_HINTS.DISABLE_ASK_FOR_HELP),\n\n 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\n 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\n handleAudioLogging: (audioStream?: LocalMicrophoneStream) => {\n const LOG_HEADER = 'MeetingUtil#handleAudioLogging -->';\n\n if (audioStream) {\n const settings = audioStream.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\n handleVideoLogging: (videoStream?: LocalCameraStream) => {\n const LOG_HEADER = 'MeetingUtil#handleVideoLogging -->';\n\n if (videoStream) {\n const settings = videoStream.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\n 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\n 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(() => 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\n canEnableClosedCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAPTION_START),\n\n isSaveTranscriptsEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.SAVE_TRANSCRIPTS_ENABLED),\n\n canStartTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_START),\n\n canStopTranscribing: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.TRANSCRIPTION_CONTROL_STOP),\n\n isClosedCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAPTION_STATUS_ACTIVE),\n\n canStartManualCaption: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_START),\n\n canStopManualCaption: (displayHints) => displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STOP),\n\n isManualCaptionActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.MANUAL_CAPTION_STATUS_ACTIVE),\n\n isWebexAssistantActive: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.WEBEX_ASSISTANT_STATUS_ACTIVE),\n\n canViewCaptionPanel: (displayHints) => displayHints.includes(DISPLAY_HINTS.ENABLE_CAPTION_PANEL),\n\n isRealTimeTranslationEnabled: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_REAL_TIME_TRANSLATION),\n\n canSelectSpokenLanguages: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.DISPLAY_NON_ENGLISH_ASR),\n\n waitingForOthersToJoin: (displayHints) => displayHints.includes(DISPLAY_HINTS.WAITING_FOR_OTHERS),\n\n canSendReactions: (originalValue, displayHints) => {\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_ACTIVE)) {\n return true;\n }\n if (displayHints.includes(DISPLAY_HINTS.REACTIONS_INACTIVE)) {\n return false;\n }\n\n return originalValue;\n },\n canUserRenameSelfAndObserved: (displayHints) =>\n displayHints.includes(DISPLAY_HINTS.CAN_RENAME_SELF_AND_OBSERVED),\n\n canUserRenameOthers: (displayHints) => displayHints.includes(DISPLAY_HINTS.CAN_RENAME_OTHERS),\n\n canShareWhiteBoard: (displayHints) => displayHints.includes(DISPLAY_HINTS.SHARE_WHITEBOARD),\n\n /**\n * Adds the current locus sequence information to a request body\n * @param {Object} meeting The meeting object\n * @param {Object} requestBody The body of a request to locus\n * @returns {void}\n */\n addSequence: (meeting, requestBody) => {\n const sequence = meeting?.locusInfo?.sequence;\n\n if (!sequence) {\n return;\n }\n\n requestBody.sequence = sequence;\n },\n\n /**\n * Updates the locus info for the meeting with the delta locus\n * returned from requests that include the sequence information\n * Returns the original response object\n * @param {Object} meeting The meeting object\n * @param {Object} response The response of the http request\n * @returns {Object}\n */\n updateLocusWithDelta: (meeting, response) => {\n if (!meeting) {\n return response;\n }\n\n const locus = response?.body?.locus;\n\n if (locus) {\n meeting.locusInfo.handleLocusDelta(locus, meeting);\n }\n\n return response;\n },\n\n generateBuildLocusDeltaRequestOptions: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return originalOptions;\n }\n\n const options = cloneDeep(originalOptions);\n\n if (!options.body) {\n options.body = {};\n }\n\n MeetingUtil.addSequence(meeting, options.body);\n\n return options;\n };\n\n return buildLocusDeltaRequestOptions;\n },\n\n generateLocusDeltaRequest: (originalMeeting) => {\n const meetingRef = new WeakRef(originalMeeting);\n\n const buildLocusDeltaRequestOptions =\n MeetingUtil.generateBuildLocusDeltaRequestOptions(originalMeeting);\n\n const locusDeltaRequest = (originalOptions) => {\n const meeting = meetingRef.deref();\n\n if (!meeting) {\n return Promise.resolve();\n }\n\n const options = buildLocusDeltaRequestOptions(originalOptions);\n\n return meeting\n .request(options)\n .then((response) => MeetingUtil.updateLocusWithDelta(meeting, response));\n };\n\n return locusDeltaRequest;\n },\n\n selfSupportsFeature: (feature: SELF_POLICY, userPolicies: Record<SELF_POLICY, boolean>) => {\n if (!userPolicies) {\n return true;\n }\n\n return userPolicies[feature];\n },\n\n parseInterpretationInfo: (meeting, meetingInfo) => {\n if (!meeting || !meetingInfo) {\n return;\n }\n const siInfo = meetingInfo.simultaneousInterpretation;\n meeting.simultaneousInterpretation.updateMeetingSIEnabled(\n !!meetingInfo.turnOnSimultaneousInterpretation,\n !!siInfo?.currentSIInterpreter\n );\n const hostSIEnabled = !!(\n meetingInfo.turnOnSimultaneousInterpretation &&\n meetingInfo?.meetingSiteSetting?.enableHostInterpreterControlSI\n );\n meeting.simultaneousInterpretation.updateHostSIEnabled(hostSIEnabled);\n\n function renameKey(obj, oldKey, newKey) {\n if (oldKey in obj) {\n obj[newKey] = obj[oldKey];\n delete obj[oldKey];\n }\n }\n if (siInfo) {\n const lanuagesInfo = cloneDeep(siInfo.siLanguages);\n for (const language of lanuagesInfo) {\n renameKey(language, 'languageCode', 'languageName');\n renameKey(language, 'languageGroupId', 'languageCode');\n }\n if (!meeting.simultaneousInterpretation?.siLanguages?.length) {\n meeting.simultaneousInterpretation.updateInterpretation({siLanguages: lanuagesInfo});\n }\n }\n Trigger.trigger(\n meeting,\n {\n file: 'meeting/util',\n function: 'parseInterpretationInfo',\n },\n EVENT_TRIGGERS.MEETING_INTERPRETATION_UPDATE\n );\n },\n\n /**\n * Returns a CA-recognized error payload for the specified raw error message/reason.\n *\n * New errors can be added to this function for handling in the future\n *\n * @param {String} reason the raw error message\n * @returns {Array<object>} an array of payload objects\n */\n getChangeMeetingFloorErrorPayload: (reason: string) => {\n const errorPayload = {\n errorDescription: reason,\n name: 'locus.response',\n shownToUser: false,\n };\n if (reason.includes(LOCAL_SHARE_ERRORS.UNDEFINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.DEVICE_NOT_JOINED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4050,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_MEDIA_FOR_DEVICE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'media',\n errorCode: 2048,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.NO_CONFLUENCE_ID)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4064,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_SHARING_DISABLED)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4065,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.LOCUS_PARTICIPANT_DNE)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 4066,\n },\n ];\n }\n if (reason.includes(LOCAL_SHARE_ERRORS.CONTENT_REQUEST_WHILE_PENDING_WHITEBOARD)) {\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'expected',\n errorCode: 4067,\n },\n ];\n }\n\n // return unknown error\n return [\n {\n ...errorPayload,\n fatal: true,\n category: 'signaling',\n errorCode: 1100,\n },\n ];\n },\n};\n\nexport default MeetingUtil;\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare const getSpeaker: (members: any, csis?: any[]) => unknown;
2
+ export declare const getSpeakerFromProxyOrStore: ({ csisKey, meetingMembers, transcriptData }: {
3
+ csisKey: any;
4
+ meetingMembers: any;
5
+ transcriptData: any;
6
+ }) => {
7
+ speaker: {
8
+ speakerId: string;
9
+ name: string;
10
+ };
11
+ needsCaching: boolean;
12
+ };
13
+ export declare const processNewCaptions: ({ data, meeting }: {
14
+ data: any;
15
+ meeting: any;
16
+ }) => void;
@@ -4,15 +4,23 @@ var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
4
4
  var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
5
5
  var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
6
6
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
7
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
8
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
9
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
11
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
7
12
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
8
13
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
9
14
  _Object$defineProperty(exports, "__esModule", {
10
15
  value: true
11
16
  });
12
17
  exports.processNewCaptions = exports.getSpeakerFromProxyOrStore = exports.getSpeaker = void 0;
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
13
19
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
14
20
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
15
21
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
22
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
16
24
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
17
25
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
26
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
@@ -59,39 +67,6 @@ var processNewCaptions = exports.processNewCaptions = function processNewCaption
59
67
  meeting = _ref2.meeting;
60
68
  var transcriptId = data.transcriptId;
61
69
  var transcriptData = meeting.transcription;
62
- if (data.isFinal) {
63
- var _data$transcript, _data$transcript2, _data$transcript3;
64
- transcriptData.interimCaptions[transcriptId].forEach(function (interimId) {
65
- var interimTranscriptIndex = transcriptData.captions.findIndex(function (transcript) {
66
- return transcript.id === interimId;
67
- });
68
- if (interimTranscriptIndex !== -1) {
69
- transcriptData.captions.splice(interimTranscriptIndex, 1);
70
- }
71
- });
72
- delete transcriptData.interimCaptions[transcriptId];
73
- var csisKey = (_data$transcript = data.transcript) === null || _data$transcript === void 0 ? void 0 : _data$transcript.csis[0];
74
- var _getSpeakerFromProxyO = getSpeakerFromProxyOrStore({
75
- meetingMembers: meeting.members.membersCollection.members,
76
- transcriptData: transcriptData,
77
- csisKey: csisKey
78
- }),
79
- needsCaching = _getSpeakerFromProxyO.needsCaching,
80
- speaker = _getSpeakerFromProxyO.speaker;
81
- if (needsCaching) {
82
- transcriptData.speakerProxy[csisKey] = speaker;
83
- }
84
- var captionData = {
85
- id: transcriptId,
86
- isFinal: data.isFinal,
87
- translations: data.translations,
88
- text: (_data$transcript2 = data.transcript) === null || _data$transcript2 === void 0 ? void 0 : _data$transcript2.text,
89
- currentSpokenLanguage: (_data$transcript3 = data.transcript) === null || _data$transcript3 === void 0 ? void 0 : _data$transcript3.transcript_language_code,
90
- timestamp: data.timestamp,
91
- speaker: speaker
92
- };
93
- transcriptData.captions.push(captionData);
94
- }
95
70
  var _data$transcripts = data.transcripts,
96
71
  transcripts = _data$transcripts === void 0 ? [] : _data$transcripts;
97
72
  var transcriptsPerCsis = new _map.default();
@@ -106,12 +81,10 @@ var processNewCaptions = exports.processNewCaptions = function processNewCaption
106
81
  _transcript$csis = (0, _slicedToArray2.default)(transcript.csis, 1),
107
82
  csisMember = _transcript$csis[0];
108
83
  var newCaption = "".concat((_transcriptsPerCsis$g = (_transcriptsPerCsis$g2 = transcriptsPerCsis.get(csisMember)) === null || _transcriptsPerCsis$g2 === void 0 ? void 0 : _transcriptsPerCsis$g2.text) !== null && _transcriptsPerCsis$g !== void 0 ? _transcriptsPerCsis$g : '', " ").concat(text).trim();
109
-
110
- // eslint-disable-next-line camelcase
111
- transcriptsPerCsis.set(csisMember, {
84
+ transcriptsPerCsis.set(csisMember, _objectSpread(_objectSpread({}, transcript), {}, {
112
85
  text: newCaption,
113
86
  currentSpokenLanguage: currentSpokenLanguage
114
- });
87
+ }));
115
88
  }
116
89
  } catch (err) {
117
90
  _iterator.e(err);
@@ -123,37 +96,52 @@ var processNewCaptions = exports.processNewCaptions = function processNewCaption
123
96
  _step2;
124
97
  try {
125
98
  var _loop = function _loop() {
99
+ var _meeting$transcriptio, _meeting$transcriptio2, _meeting$transcriptio3, _meeting$transcriptio4, _data$transcripts$;
126
100
  var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
127
101
  key = _step2$value[0],
128
102
  value = _step2$value[1];
129
- var _getSpeakerFromProxyO2 = getSpeakerFromProxyOrStore({
103
+ var _getSpeakerFromProxyO = getSpeakerFromProxyOrStore({
130
104
  meetingMembers: meeting.members.membersCollection.members,
131
105
  transcriptData: transcriptData,
132
106
  csisKey: key
133
107
  }),
134
- needsCaching = _getSpeakerFromProxyO2.needsCaching,
135
- speaker = _getSpeakerFromProxyO2.speaker;
108
+ needsCaching = _getSpeakerFromProxyO.needsCaching,
109
+ speaker = _getSpeakerFromProxyO.speaker;
110
+ var speakerId = speaker.speakerId;
111
+ var interimId = "".concat(transcriptId, "_").concat(speakerId);
136
112
  if (needsCaching) {
137
113
  transcriptData.speakerProxy[key] = speaker;
138
114
  }
139
- var speakerId = speaker.speakerId;
140
- var interimId = "".concat(transcriptId, "_").concat(speakerId);
141
115
  var captionData = {
142
116
  id: interimId,
143
117
  isFinal: data.isFinal,
144
118
  translations: value.translations,
145
119
  text: value.text,
146
- currentCaptionLanguage: value.currentSpokenLanguage,
120
+ currentCaptionLanguage: ((_meeting$transcriptio = meeting.transcription) === null || _meeting$transcriptio === void 0 ? void 0 : (_meeting$transcriptio2 = _meeting$transcriptio.languageOptions) === null || _meeting$transcriptio2 === void 0 ? void 0 : _meeting$transcriptio2.currentCaptionLanguage) || value.currentSpokenLanguage,
121
+ currentSpokenLanguage: ((_meeting$transcriptio3 = meeting.transcription) === null || _meeting$transcriptio3 === void 0 ? void 0 : (_meeting$transcriptio4 = _meeting$transcriptio3.languageOptions) === null || _meeting$transcriptio4 === void 0 ? void 0 : _meeting$transcriptio4.currentSpokenLanguage) || ((_data$transcripts$ = data.transcripts[0]) === null || _data$transcripts$ === void 0 ? void 0 : _data$transcripts$.transcript_language_code),
147
122
  timestamp: value === null || value === void 0 ? void 0 : value.timestamp,
148
123
  speaker: speaker
149
124
  };
150
- var interimTranscriptIndex = transcriptData.captions.findIndex(function (transcript) {
151
- return transcript.id === interimId;
152
- });
153
- if (interimTranscriptIndex !== -1) {
154
- transcriptData.captions.splice(interimTranscriptIndex, 1);
125
+ if (!data.isFinal) {
126
+ var interimTranscriptIndex = transcriptData.captions.findIndex(function (transcript) {
127
+ return transcript.id === interimId;
128
+ });
129
+ if (interimTranscriptIndex !== -1) {
130
+ transcriptData.captions.splice(interimTranscriptIndex, 1);
131
+ }
132
+ interimTranscriptionIds.push(interimId);
133
+ } else {
134
+ transcriptData.interimCaptions[transcriptId].forEach(function (innerInterimId) {
135
+ var interimTranscriptIndex = transcriptData.captions.findIndex(function (transcript) {
136
+ return transcript.id === innerInterimId;
137
+ });
138
+ if (interimTranscriptIndex !== -1) {
139
+ transcriptData.captions.splice(interimTranscriptIndex, 1);
140
+ }
141
+ });
142
+ delete transcriptData.interimCaptions[transcriptId];
143
+ captionData.id = transcriptId;
155
144
  }
156
- interimTranscriptionIds.push(interimId);
157
145
  transcriptData.captions.push(captionData);
158
146
  };
159
147
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -1 +1 @@
1
- {"version":3,"names":["getSpeaker","exports","members","csis","arguments","length","undefined","_values","default","find","member","_member$participant$s","memberCSIs","participant","status","some","csi","includes","getSpeakerFromProxyOrStore","_ref","_meetingMember$partic","_meetingMember$partic2","csisKey","meetingMembers","transcriptData","speaker","speakerId","name","needsCaching","speakerProxy","meetingMember","person","id","processNewCaptions","_ref2","data","meeting","transcriptId","transcription","isFinal","_data$transcript","_data$transcript2","_data$transcript3","interimCaptions","forEach","interimId","interimTranscriptIndex","captions","findIndex","transcript","splice","_getSpeakerFromProxyO","membersCollection","captionData","translations","text","currentSpokenLanguage","transcript_language_code","timestamp","push","_data$transcripts","transcripts","transcriptsPerCsis","_map","_iterator","_createForOfIteratorHelper","_step","s","n","done","_transcriptsPerCsis$g","_transcriptsPerCsis$g2","value","_transcript$csis","_slicedToArray2","csisMember","newCaption","concat","get","trim","set","err","e","f","interimTranscriptionIds","_iterator2","_step2","_loop","_step2$value","key","_getSpeakerFromProxyO2","currentCaptionLanguage"],"sources":["voicea-meeting.ts"],"sourcesContent":["export const getSpeaker = (members, csis = []) =>\n Object.values(members).find((member: any) => {\n const memberCSIs = member.participant.status.csis ?? [];\n\n return csis.some((csi) => memberCSIs.includes(csi));\n });\n\nexport const getSpeakerFromProxyOrStore = ({csisKey, meetingMembers, transcriptData}) => {\n let speaker = {\n speakerId: '',\n name: '',\n };\n\n let needsCaching = false;\n\n if (csisKey && transcriptData.speakerProxy[csisKey]) {\n speaker = transcriptData.speakerProxy[csisKey];\n\n return {speaker, needsCaching};\n }\n\n const meetingMember: any = getSpeaker(meetingMembers, [csisKey]);\n\n speaker = {\n speakerId: meetingMember?.participant.person.id ?? '',\n name: meetingMember?.participant.person.name ?? '',\n };\n\n needsCaching = true;\n\n return {speaker, needsCaching};\n};\n\nexport const processNewCaptions = ({data, meeting}) => {\n const {transcriptId} = data;\n const transcriptData = meeting.transcription;\n\n if (data.isFinal) {\n transcriptData.interimCaptions[transcriptId].forEach((interimId) => {\n const interimTranscriptIndex = transcriptData.captions.findIndex(\n (transcript) => transcript.id === interimId\n );\n\n if (interimTranscriptIndex !== -1) {\n transcriptData.captions.splice(interimTranscriptIndex, 1);\n }\n });\n delete transcriptData.interimCaptions[transcriptId];\n const csisKey = data.transcript?.csis[0];\n\n const {needsCaching, speaker} = getSpeakerFromProxyOrStore({\n meetingMembers: meeting.members.membersCollection.members,\n transcriptData,\n csisKey,\n });\n\n if (needsCaching) {\n transcriptData.speakerProxy[csisKey] = speaker;\n }\n const captionData = {\n id: transcriptId,\n isFinal: data.isFinal,\n translations: data.translations,\n text: data.transcript?.text,\n currentSpokenLanguage: data.transcript?.transcript_language_code,\n timestamp: data.timestamp,\n speaker,\n };\n transcriptData.captions.push(captionData);\n }\n const {transcripts = []} = data;\n const transcriptsPerCsis = new Map();\n\n for (const transcript of transcripts) {\n const {\n text,\n transcript_language_code: currentSpokenLanguage,\n csis: [csisMember],\n } = transcript;\n\n const newCaption = `${transcriptsPerCsis.get(csisMember)?.text ?? ''} ${text}`.trim();\n\n // eslint-disable-next-line camelcase\n transcriptsPerCsis.set(csisMember, {text: newCaption, currentSpokenLanguage});\n }\n const interimTranscriptionIds = [];\n\n for (const [key, value] of transcriptsPerCsis) {\n const {needsCaching, speaker} = getSpeakerFromProxyOrStore({\n meetingMembers: meeting.members.membersCollection.members,\n transcriptData,\n csisKey: key,\n });\n\n if (needsCaching) {\n transcriptData.speakerProxy[key] = speaker;\n }\n const {speakerId} = speaker;\n const interimId = `${transcriptId}_${speakerId}`;\n const captionData = {\n id: interimId,\n isFinal: data.isFinal,\n translations: value.translations,\n text: value.text,\n currentCaptionLanguage: value.currentSpokenLanguage,\n timestamp: value?.timestamp,\n speaker,\n };\n\n const interimTranscriptIndex = transcriptData.captions.findIndex(\n (transcript) => transcript.id === interimId\n );\n\n if (interimTranscriptIndex !== -1) {\n transcriptData.captions.splice(interimTranscriptIndex, 1);\n }\n\n interimTranscriptionIds.push(interimId);\n transcriptData.captions.push(captionData);\n }\n transcriptData.interimCaptions[transcriptId] = interimTranscriptionIds;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getSpeaker","exports","members","csis","arguments","length","undefined","_values","default","find","member","_member$participant$s","memberCSIs","participant","status","some","csi","includes","getSpeakerFromProxyOrStore","_ref","_meetingMember$partic","_meetingMember$partic2","csisKey","meetingMembers","transcriptData","speaker","speakerId","name","needsCaching","speakerProxy","meetingMember","person","id","processNewCaptions","_ref2","data","meeting","transcriptId","transcription","_data$transcripts","transcripts","transcriptsPerCsis","_map","_iterator","_createForOfIteratorHelper","_step","s","n","done","_transcriptsPerCsis$g","_transcriptsPerCsis$g2","transcript","value","text","currentSpokenLanguage","transcript_language_code","_transcript$csis","_slicedToArray2","csisMember","newCaption","concat","get","trim","set","_objectSpread","err","e","f","interimTranscriptionIds","_iterator2","_step2","_loop","_meeting$transcriptio","_meeting$transcriptio2","_meeting$transcriptio3","_meeting$transcriptio4","_data$transcripts$","_step2$value","key","_getSpeakerFromProxyO","membersCollection","interimId","captionData","isFinal","translations","currentCaptionLanguage","languageOptions","timestamp","interimTranscriptIndex","captions","findIndex","splice","push","interimCaptions","forEach","innerInterimId"],"sources":["voicea-meeting.ts"],"sourcesContent":["import {type MeetingTranscriptPayload} from '@webex/internal-plugin-voicea';\n\nexport const getSpeaker = (members, csis = []) =>\n Object.values(members).find((member: any) => {\n const memberCSIs = member.participant.status.csis ?? [];\n\n return csis.some((csi) => memberCSIs.includes(csi));\n });\n\nexport const getSpeakerFromProxyOrStore = ({csisKey, meetingMembers, transcriptData}) => {\n let speaker = {\n speakerId: '',\n name: '',\n };\n\n let needsCaching = false;\n\n if (csisKey && transcriptData.speakerProxy[csisKey]) {\n speaker = transcriptData.speakerProxy[csisKey];\n\n return {speaker, needsCaching};\n }\n\n const meetingMember: any = getSpeaker(meetingMembers, [csisKey]);\n\n speaker = {\n speakerId: meetingMember?.participant.person.id ?? '',\n name: meetingMember?.participant.person.name ?? '',\n };\n\n needsCaching = true;\n\n return {speaker, needsCaching};\n};\n\nexport const processNewCaptions = ({\n data,\n meeting,\n}: {\n data: MeetingTranscriptPayload;\n meeting: any;\n}) => {\n const {transcriptId} = data;\n const transcriptData = meeting.transcription;\n\n const {transcripts = []} = data;\n const transcriptsPerCsis = new Map();\n\n for (const transcript of transcripts) {\n const {\n text,\n transcript_language_code: currentSpokenLanguage,\n csis: [csisMember],\n } = transcript;\n\n const newCaption = `${transcriptsPerCsis.get(csisMember)?.text ?? ''} ${text}`.trim();\n\n transcriptsPerCsis.set(csisMember, {\n ...transcript,\n text: newCaption,\n currentSpokenLanguage,\n });\n }\n const interimTranscriptionIds = [];\n\n for (const [key, value] of transcriptsPerCsis) {\n const {needsCaching, speaker} = getSpeakerFromProxyOrStore({\n meetingMembers: meeting.members.membersCollection.members,\n transcriptData,\n csisKey: key,\n });\n const {speakerId} = speaker;\n const interimId = `${transcriptId}_${speakerId}`;\n\n if (needsCaching) {\n transcriptData.speakerProxy[key] = speaker;\n }\n\n const captionData = {\n id: interimId,\n isFinal: data.isFinal,\n translations: value.translations,\n text: value.text,\n currentCaptionLanguage:\n meeting.transcription?.languageOptions?.currentCaptionLanguage ||\n value.currentSpokenLanguage,\n currentSpokenLanguage:\n meeting.transcription?.languageOptions?.currentSpokenLanguage ||\n data.transcripts[0]?.transcript_language_code,\n timestamp: value?.timestamp,\n speaker,\n };\n\n if (!data.isFinal) {\n const interimTranscriptIndex = transcriptData.captions.findIndex(\n (transcript) => transcript.id === interimId\n );\n\n if (interimTranscriptIndex !== -1) {\n transcriptData.captions.splice(interimTranscriptIndex, 1);\n }\n\n interimTranscriptionIds.push(interimId);\n } else {\n transcriptData.interimCaptions[transcriptId].forEach((innerInterimId) => {\n const interimTranscriptIndex = transcriptData.captions.findIndex(\n (transcript) => transcript.id === innerInterimId\n );\n\n if (interimTranscriptIndex !== -1) {\n transcriptData.captions.splice(interimTranscriptIndex, 1);\n }\n });\n delete transcriptData.interimCaptions[transcriptId];\n captionData.id = transcriptId;\n }\n transcriptData.captions.push(captionData);\n }\n transcriptData.interimCaptions[transcriptId] = interimTranscriptionIds;\n};\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import Collection from '../common/collection';
2
+ /**
3
+ * @class MeetingInfoCollection
4
+ */
5
+ export default class MeetingInfoCollection extends Collection {
6
+ namespace: string;
7
+ /**
8
+ * @memberof MeetingInfoCollection
9
+ * @constructor
10
+ * @public
11
+ */
12
+ constructor();
13
+ /**
14
+ * @param {String} id ID of the meeting info you wish to retreive
15
+ * @returns {MeetingInfo} returns a meeting info instance
16
+ * @public
17
+ * @memberof MeetingInfoCollection
18
+ */
19
+ get(id: string): any;
20
+ }
@@ -0,0 +1,69 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ /**
5
+ * @class MeetingInfo
6
+ */
7
+ export default class MeetingInfo {
8
+ meetingInfoCollection: any;
9
+ meetingInfoRequest: any;
10
+ webex: any;
11
+ /**
12
+ *
13
+ * @param {WebexSDK} webex
14
+ */
15
+ constructor(webex: any);
16
+ /**
17
+ * @param {string} id
18
+ * @returns {object}
19
+ * @public
20
+ * @memberof MeetingInfo
21
+ */
22
+ getMeetingInfo(id: string): any;
23
+ /**
24
+ * @param {string} id
25
+ * @param {object} info
26
+ * @returns {null}
27
+ * @public
28
+ * @memberof MeetingInfo
29
+ */
30
+ setMeetingInfo(id: string, info: object): void;
31
+ /**
32
+ * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject
33
+ * @param {Object} options
34
+ * @returns {Promise}
35
+ * @private
36
+ * @memberof MeetingInfo
37
+ */
38
+ private requestFetchInfo;
39
+ /**
40
+ * Helper to generate the options for the MeetingInfo request
41
+ * @param {String} destination
42
+ * @param {String} type
43
+ * @returns {Promise}
44
+ * @private
45
+ * @memberof MeetingInfo
46
+ */
47
+ private fetchInfoOptions;
48
+ /**
49
+ * Fetches meeting info from the server
50
+ * @param {String} destination one of many different types of destinations to look up info for
51
+ * @param {String} [type] to match up with the destination value
52
+ * @param {String} [password] meeting password
53
+ * @param {Object} [captchaInfo] captcha code and id
54
+ * @param {String} [installedOrgID]
55
+ * @param {String} [locusId]
56
+ * @param {Object} [extraParams]
57
+ * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent
58
+ * @returns {Promise} returns a meeting info object
59
+ * @public
60
+ * @memberof MeetingInfo
61
+ */
62
+ fetchMeetingInfo(destination: string, type?: string, password?: string, captchaInfo?: {
63
+ code: string;
64
+ id: string;
65
+ }, installedOrgID?: any, locusId?: any, extraParams?: object, options?: {
66
+ meetingId?: string;
67
+ sendCAevents?: boolean;
68
+ }): any;
69
+ }