@webex/plugin-meetings 3.11.0-next.4 → 3.11.0-next.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aiEnableRequest/index.js +184 -0
- package/dist/aiEnableRequest/index.js.map +1 -0
- package/dist/aiEnableRequest/utils.js +36 -0
- package/dist/aiEnableRequest/utils.js.map +1 -0
- package/dist/annotation/index.js +3 -3
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +26 -6
- package/dist/constants.js.map +1 -1
- package/dist/hashTree/constants.js +3 -1
- package/dist/hashTree/constants.js.map +1 -1
- package/dist/hashTree/hashTree.js +18 -0
- package/dist/hashTree/hashTree.js.map +1 -1
- package/dist/hashTree/hashTreeParser.js +709 -380
- package/dist/hashTree/hashTreeParser.js.map +1 -1
- package/dist/hashTree/types.js +4 -2
- package/dist/hashTree/types.js.map +1 -1
- package/dist/hashTree/utils.js +10 -0
- package/dist/hashTree/utils.js.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/constant.js +12 -0
- package/dist/interceptors/constant.js.map +1 -0
- package/dist/interceptors/dataChannelAuthToken.js +233 -0
- package/dist/interceptors/dataChannelAuthToken.js.map +1 -0
- package/dist/interceptors/index.js +7 -0
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interpretation/index.js +2 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.js +5 -3
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +125 -68
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +1 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/locus-info/types.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +57 -1
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/properties.js +4 -2
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +7 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +209 -90
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/request.js +50 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/util.js +128 -2
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +78 -36
- package/dist/meetings/index.js.map +1 -1
- package/dist/member/index.js +10 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +10 -0
- package/dist/member/util.js.map +1 -1
- package/dist/metrics/constants.js +2 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +11 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/types/aiEnableRequest/index.d.ts +5 -0
- package/dist/types/aiEnableRequest/utils.d.ts +2 -0
- package/dist/types/config.d.ts +3 -0
- package/dist/types/constants.d.ts +21 -1
- package/dist/types/hashTree/constants.d.ts +1 -0
- package/dist/types/hashTree/hashTree.d.ts +7 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +99 -14
- package/dist/types/hashTree/types.d.ts +3 -0
- package/dist/types/hashTree/utils.d.ts +6 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interceptors/constant.d.ts +5 -0
- package/dist/types/interceptors/dataChannelAuthToken.d.ts +35 -0
- package/dist/types/interceptors/index.d.ts +2 -1
- package/dist/types/locus-info/index.d.ts +9 -2
- package/dist/types/locus-info/types.d.ts +1 -0
- package/dist/types/media/MediaConnectionAwaiter.d.ts +10 -1
- package/dist/types/media/properties.d.ts +2 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +24 -2
- package/dist/types/meeting/request.d.ts +16 -1
- package/dist/types/meeting/request.type.d.ts +5 -0
- package/dist/types/meeting/util.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +4 -2
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/member/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +1 -0
- package/dist/types/reactions/reactions.type.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -22
- package/src/aiEnableRequest/README.md +84 -0
- package/src/aiEnableRequest/index.ts +170 -0
- package/src/aiEnableRequest/utils.ts +25 -0
- package/src/annotation/index.ts +7 -4
- package/src/config.ts +3 -0
- package/src/constants.ts +26 -1
- package/src/hashTree/constants.ts +1 -0
- package/src/hashTree/hashTree.ts +17 -0
- package/src/hashTree/hashTreeParser.ts +627 -249
- package/src/hashTree/types.ts +4 -0
- package/src/hashTree/utils.ts +9 -0
- package/src/index.ts +8 -1
- package/src/interceptors/constant.ts +6 -0
- package/src/interceptors/dataChannelAuthToken.ts +142 -0
- package/src/interceptors/index.ts +2 -1
- package/src/interpretation/index.ts +2 -2
- package/src/locus-info/controlsUtils.ts +11 -0
- package/src/locus-info/index.ts +146 -58
- package/src/locus-info/selfUtils.ts +1 -0
- package/src/locus-info/types.ts +1 -0
- package/src/media/MediaConnectionAwaiter.ts +41 -1
- package/src/media/properties.ts +3 -1
- package/src/meeting/in-meeting-actions.ts +12 -0
- package/src/meeting/index.ts +127 -17
- package/src/meeting/request.ts +42 -0
- package/src/meeting/request.type.ts +6 -0
- package/src/meeting/util.ts +156 -1
- package/src/meetings/index.ts +94 -9
- package/src/member/index.ts +10 -0
- package/src/member/util.ts +12 -0
- package/src/metrics/constants.ts +1 -0
- package/src/multistream/mediaRequestManager.ts +1 -1
- package/src/multistream/remoteMediaManager.ts +13 -0
- package/src/reactions/reactions.type.ts +1 -0
- package/test/unit/spec/aiEnableRequest/index.ts +981 -0
- package/test/unit/spec/aiEnableRequest/utils.ts +130 -0
- package/test/unit/spec/hashTree/hashTree.ts +66 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +1869 -189
- package/test/unit/spec/interceptors/dataChannelAuthToken.ts +141 -0
- package/test/unit/spec/locus-info/controlsUtils.js +29 -0
- package/test/unit/spec/locus-info/index.js +201 -45
- package/test/unit/spec/media/MediaConnectionAwaiter.ts +41 -1
- package/test/unit/spec/media/properties.ts +12 -3
- package/test/unit/spec/meeting/in-meeting-actions.ts +8 -2
- package/test/unit/spec/meeting/index.js +441 -75
- package/test/unit/spec/meeting/request.js +64 -0
- package/test/unit/spec/meeting/utils.js +433 -22
- package/test/unit/spec/meetings/index.js +550 -10
- package/test/unit/spec/member/index.js +28 -4
- package/test/unit/spec/member/util.js +65 -27
- package/test/unit/spec/multistream/remoteMediaManager.ts +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","spokenLanguage","hesiodLlmId","manualCaptionControl","enabled","entryExitTone","mode","video","videoEnabled","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","_controls$viewThePart","_controls$viewThePart2","_controls$viewThePart3","_controls$viewThePart4","_controls$viewThePart5","_controls$viewThePart6","panelistEnabled","attendeeCount","raiseHand","webcastControl","streaming","meetingFull","_controls$meetingFull","_controls$meetingFull2","_controls$meetingFull3","_controls$meetingFull4","meetingPanelistFull","practiceSession","annotationControl","rdcControl","pollingQAControl","autoEndMeetingWarning","extensionDurationMinutes","countdownDurationMinutes","countdownStartedAt","getControls","oldControls","newControls","_current$muteOnEntry","_previous$muteOnEntry","_current$shareControl","_previous$shareContro","_current$disallowUnmu","_previous$disallowUnm","_current$reactions","_previous$reactions","_current$reactions2","_previous$reactions2","_current$viewTheParti","_previous$viewThePart","_current$viewTheParti2","_previous$viewThePart2","_current$viewTheParti3","_previous$viewThePart3","_current$raiseHand","_previous$raiseHand","_current$video","_previous$video","_previous$record","_previous$record2","_current$record","_previous$record3","_current$record2","_previous$record4","_current$record3","_previous$meetingCont","_current$meetingConta","_previous$transcribe","_current$transcribe","_previous$transcribe2","_current$transcribe2","_previous$transcribe3","_current$transcribe3","_previous$transcribe4","_current$transcribe4","_previous$transcribe5","_current$transcribe5","_previous$transcribe6","_current$transcribe6","_previous$manualCapti","_current$manualCaptio","_previous$manualCapti2","_current$manualCaptio2","_newControls$video","_previous$webcastCont","_current$webcastContr","_previous$meetingFull","_current$meetingFull","_previous$meetingFull2","_current$meetingFull2","_previous$practiceSes","_current$practiceSess","_current$annotationCo","_previous$annotationC","_current$rdcControl","_previous$rdcControl","_current$pollingQACon","_previous$pollingQACo","_current$autoEndMeeti","_previous$autoEndMeet","_current$autoEndMeeti2","_previous$autoEndMeet2","_current$autoEndMeeti3","_previous$autoEndMeet3","_current$autoEndMeeti4","_previous$autoEndMeet4","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","isEqual","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasHesiodLLMIdChanged","hasTranscribeSpokenLanguageChanged","hasManualCaptionChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasInterpretationChanged","interpretation","hasVideoEnabledChanged","undefined","hasWebcastChanged","hasMeetingFullChanged","hasPracticeSessionEnabledChanged","hasStageViewChanged","videoLayout","hasAnnotationControlChanged","hasRemoteDesktopControlChanged","hasPollingQAControlChanged","hasAutoEndMeetingChanged","isNeedReplaceMembers","_oldControls$breakout","_controls$breakout","_oldControls$breakout2","_controls$breakout2","groupId","sessionId","getSessionSwitchStatus","oldLocus","newLocus","_oldLocus$controls","_newLocus$controls","_oldLocus$self","_newLocus$participant","_newLocus$participant2","_newLocus$participant3","_newLocus$controls2","_newLocus$controls2$b","_newLocus$controls3","_newLocus$controls3$b","_newLocus$controls3$b2","status","isReturnToMain","isJoinToBreakout","needUseCache","self","isCreator","participants","state","MEETING_STATE","STATES","JOINED","sessionType","BREAKOUTS","SESSION_TYPES","MAIN","groups","BREAKOUT","isMainSessionDTO","locus","_locus$controls","_locus$controls$break","_default","exports"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS, MEETING_STATE} from '../constants';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n spokenLanguage: controls.transcribe.spokenLanguage,\n hesiodLlmId: controls.transcribe.hesiodLlmId,\n };\n }\n\n if (controls && controls.manualCaptionControl) {\n parsedControls.manualCaptionControl = {\n enabled: controls.manualCaptionControl.enabled,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {\n enabled: controls.viewTheParticipantList?.enabled ?? false,\n panelistEnabled: controls.viewTheParticipantList?.panelistEnabled ?? false,\n attendeeCount: controls.viewTheParticipantList?.attendeeCount ?? 0,\n };\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: controls.video.enabled};\n }\n\n if (controls?.webcastControl) {\n parsedControls.webcastControl = {streaming: controls.webcastControl.streaming};\n }\n\n if (controls?.meetingFull) {\n parsedControls.meetingFull = {\n meetingFull: controls.meetingFull?.meetingFull ?? false,\n meetingPanelistFull: controls.meetingFull?.meetingPanelistFull ?? false,\n };\n }\n\n if (controls?.practiceSession) {\n parsedControls.practiceSession = {\n enabled: controls.practiceSession.enabled,\n };\n }\n\n if (controls?.annotationControl) {\n parsedControls.annotationControl = {\n enabled: controls.annotationControl.enabled,\n };\n }\n\n if (controls?.rdcControl) {\n parsedControls.rdcControl = {\n enabled: controls.rdcControl.enabled,\n };\n }\n\n if (controls?.pollingQAControl) {\n parsedControls.pollingQAControl = {\n enabled: controls.pollingQAControl.enabled,\n };\n }\n\n if (controls?.autoEndMeetingWarning) {\n parsedControls.autoEndMeetingWarning = {\n enabled: controls.autoEndMeetingWarning.enabled,\n extensionDurationMinutes: controls.autoEndMeetingWarning.extensionDurationMinutes,\n countdownDurationMinutes: controls.autoEndMeetingWarning.countdownDurationMinutes,\n countdownStartedAt: controls.autoEndMeetingWarning.countdownStartedAt,\n };\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled ||\n current?.viewTheParticipantList?.panelistEnabled !==\n previous?.viewTheParticipantList?.panelistEnabled ||\n current?.viewTheParticipantList?.attendeeCount !==\n previous?.viewTheParticipantList?.attendeeCount,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasHesiodLLMIdChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.hesiodLlmId, current?.transcribe?.hesiodLlmId) &&\n !!(previous?.transcribe?.hesiodLlmId || current?.transcribe?.hesiodLlmId),\n\n hasTranscribeSpokenLanguageChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.spokenLanguage, current?.transcribe?.spokenLanguage) &&\n !!(previous?.transcribe?.spokenLanguage || current?.transcribe?.spokenLanguage),\n\n hasManualCaptionChanged:\n current?.manualCaptionControl &&\n !isEqual(previous?.manualCaptionControl?.enabled, current?.manualCaptionControl?.enabled) &&\n (previous?.manualCaptionControl?.enabled || current?.manualCaptionControl?.enabled),\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasInterpretationChanged: !isEqual(previous?.interpretation, current?.interpretation),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n\n hasWebcastChanged: !isEqual(\n previous?.webcastControl?.streaming,\n current?.webcastControl?.streaming\n ),\n\n hasMeetingFullChanged:\n !isEqual(previous?.meetingFull?.meetingFull, current?.meetingFull?.meetingFull) ||\n !isEqual(\n previous?.meetingFull?.meetingPanelistFull,\n current?.meetingFull?.meetingPanelistFull\n ),\n\n hasPracticeSessionEnabledChanged: !isEqual(\n !!previous?.practiceSession?.enabled,\n !!current?.practiceSession?.enabled\n ),\n\n hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),\n\n hasAnnotationControlChanged:\n current?.annotationControl?.enabled !== previous?.annotationControl?.enabled,\n\n hasRemoteDesktopControlChanged:\n current?.rdcControl?.enabled !== previous?.rdcControl?.enabled,\n\n hasPollingQAControlChanged:\n current?.pollingQAControl?.enabled !== previous?.pollingQAControl?.enabled,\n\n hasAutoEndMeetingChanged:\n current?.autoEndMeetingWarning?.enabled !== previous?.autoEndMeetingWarning?.enabled ||\n current?.autoEndMeetingWarning?.extensionDurationMinutes !==\n previous?.autoEndMeetingWarning?.extensionDurationMinutes ||\n current?.autoEndMeetingWarning?.countdownDurationMinutes !==\n previous?.autoEndMeetingWarning?.countdownDurationMinutes ||\n current?.autoEndMeetingWarning?.countdownStartedAt !==\n previous?.autoEndMeetingWarning?.countdownStartedAt,\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls?.breakout?.groupId !== controls?.breakout?.groupId ||\n oldControls?.breakout?.sessionId !== controls?.breakout?.sessionId\n );\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusInfo} oldLocus\n * @param {LocusInfo} newLocus\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldLocus: any, newLocus: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldLocus.controls?.breakout || !newLocus.controls?.breakout) {\n return status;\n }\n\n // It is used to fix the timing issue triggered when the creator leaves session to ensure that the member list is complete\n const needUseCache = !!(\n oldLocus.self?.isCreator &&\n newLocus.participants?.length === 1 &&\n newLocus.participants?.[0].isCreator &&\n newLocus.participants?.[0].state === MEETING_STATE.STATES.JOINED &&\n newLocus.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls?.breakout?.groups?.length\n );\n\n const isReturnToMain =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n\n status.isReturnToMain = needUseCache || isReturnToMain;\n status.isJoinToBreakout =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lodash","require","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ControlsUtils","parse","controls","parsedControls","record","modifiedBy","getId","paused","recording","lastModified","meta","meetingContainer","meetingContainerUrl","transcribe","transcribing","caption","spokenLanguage","hesiodLlmId","aiSummaryNotification","manualCaptionControl","enabled","entryExitTone","mode","video","videoEnabled","muteOnEntry","shareControl","control","disallowUnmute","reactions","showDisplayNameWithReactions","viewTheParticipantList","_controls$viewThePart","_controls$viewThePart2","_controls$viewThePart3","_controls$viewThePart4","_controls$viewThePart5","_controls$viewThePart6","panelistEnabled","attendeeCount","raiseHand","webcastControl","streaming","meetingFull","_controls$meetingFull","_controls$meetingFull2","_controls$meetingFull3","_controls$meetingFull4","meetingPanelistFull","practiceSession","annotationControl","rdcControl","pollingQAControl","autoEndMeetingWarning","extensionDurationMinutes","countdownDurationMinutes","countdownStartedAt","getControls","oldControls","newControls","_current$muteOnEntry","_previous$muteOnEntry","_current$shareControl","_previous$shareContro","_current$disallowUnmu","_previous$disallowUnm","_current$reactions","_previous$reactions","_current$reactions2","_previous$reactions2","_current$viewTheParti","_previous$viewThePart","_current$viewTheParti2","_previous$viewThePart2","_current$viewTheParti3","_previous$viewThePart3","_current$raiseHand","_previous$raiseHand","_current$video","_previous$video","_previous$record","_previous$record2","_current$record","_previous$record3","_current$record2","_previous$record4","_current$record3","_previous$meetingCont","_current$meetingConta","_previous$transcribe","_current$transcribe","_previous$transcribe2","_current$transcribe2","_previous$transcribe3","_current$transcribe3","_previous$transcribe4","_current$transcribe4","_previous$transcribe5","_current$transcribe5","_previous$transcribe6","_current$transcribe6","_previous$transcribe7","_current$transcribe7","_previous$transcribe8","_current$transcribe8","_previous$manualCapti","_current$manualCaptio","_previous$manualCapti2","_current$manualCaptio2","_newControls$video","_previous$webcastCont","_current$webcastContr","_previous$meetingFull","_current$meetingFull","_previous$meetingFull2","_current$meetingFull2","_previous$practiceSes","_current$practiceSess","_current$annotationCo","_previous$annotationC","_current$rdcControl","_previous$rdcControl","_current$pollingQACon","_previous$pollingQACo","_current$autoEndMeeti","_previous$autoEndMeet","_current$autoEndMeeti2","_previous$autoEndMeet2","_current$autoEndMeeti3","_previous$autoEndMeet3","_current$autoEndMeeti4","_previous$autoEndMeet4","previous","current","updates","hasMuteOnEntryChanged","hasShareControlChanged","hasDisallowUnmuteChanged","hasReactionsChanged","hasReactionDisplayNamesChanged","hasViewTheParticipantListChanged","hasRaiseHandChanged","hasVideoChanged","hasRecordingPausedChanged","isEqual","hasRecordingChanged","hasMeetingContainerChanged","hasTranscribeChanged","hasHesiodLLMIdChanged","hasAiSummaryNotificationChanged","hasTranscribeSpokenLanguageChanged","hasManualCaptionChanged","hasEntryExitToneChanged","hasBreakoutChanged","breakout","hasInterpretationChanged","interpretation","hasVideoEnabledChanged","undefined","hasWebcastChanged","hasMeetingFullChanged","hasPracticeSessionEnabledChanged","hasStageViewChanged","videoLayout","hasAnnotationControlChanged","hasRemoteDesktopControlChanged","hasPollingQAControlChanged","hasAutoEndMeetingChanged","isNeedReplaceMembers","_oldControls$breakout","_controls$breakout","_oldControls$breakout2","_controls$breakout2","groupId","sessionId","getSessionSwitchStatus","oldLocus","newLocus","_oldLocus$controls","_newLocus$controls","_oldLocus$self","_newLocus$participant","_newLocus$participant2","_newLocus$participant3","_newLocus$controls2","_newLocus$controls2$b","_newLocus$controls3","_newLocus$controls3$b","_newLocus$controls3$b2","status","isReturnToMain","isJoinToBreakout","needUseCache","self","isCreator","participants","state","MEETING_STATE","STATES","JOINED","sessionType","BREAKOUTS","SESSION_TYPES","MAIN","groups","BREAKOUT","isMainSessionDTO","locus","_locus$controls","_locus$controls$break","_default","exports"],"sources":["controlsUtils.ts"],"sourcesContent":["import {isEqual} from 'lodash';\nimport {BREAKOUTS, MEETING_STATE} from '../constants';\n\nconst ControlsUtils: any = {};\n\n/**\n * Controls\n * @typedef {Object} LocusControls\n * @property {Object} record\n * @property {Boolean} record.recording\n * @property {Object} record.meta\n * @property {String} record.meta.modifiedBy\n */\n\n/**\n * parse the relevant host values that we care about: id\n * @param {LocusControls} controls\n * @returns {Object} parsedObject - parsed host or null if host was undefined\n * @returns {String} parsedObject.recordingId\n */\nControlsUtils.parse = (controls: any) => {\n const parsedControls = {...controls};\n\n if (controls && controls.record) {\n parsedControls.record = {\n modifiedBy: ControlsUtils.getId(controls),\n paused: controls.record.paused ? controls.record.paused : false,\n recording: controls.record.recording,\n lastModified: controls.record.meta.lastModified,\n };\n }\n\n if (controls && controls.meetingContainer) {\n parsedControls.meetingContainer = {\n meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,\n };\n }\n\n if (controls && controls.transcribe) {\n parsedControls.transcribe = {\n transcribing: controls.transcribe.transcribing,\n caption: controls.transcribe.caption,\n spokenLanguage: controls.transcribe.spokenLanguage,\n hesiodLlmId: controls.transcribe.hesiodLlmId,\n aiSummaryNotification: controls.transcribe.aiSummaryNotification,\n };\n }\n\n if (controls && controls.manualCaptionControl) {\n parsedControls.manualCaptionControl = {\n enabled: controls.manualCaptionControl.enabled,\n };\n }\n\n if (controls && controls.entryExitTone) {\n parsedControls.entryExitTone = controls.entryExitTone.enabled\n ? controls.entryExitTone.mode\n : null;\n }\n\n if (controls && controls.video) {\n parsedControls.videoEnabled = controls.video.enabled;\n }\n\n if (controls?.muteOnEntry) {\n parsedControls.muteOnEntry = {enabled: controls.muteOnEntry.enabled};\n }\n\n if (controls?.shareControl) {\n parsedControls.shareControl = {control: controls.shareControl.control};\n }\n\n if (controls?.disallowUnmute) {\n parsedControls.disallowUnmute = {enabled: controls.disallowUnmute.enabled};\n }\n\n if (controls?.reactions) {\n parsedControls.reactions = {\n enabled: controls.reactions.enabled,\n showDisplayNameWithReactions: controls.reactions.showDisplayNameWithReactions,\n };\n }\n\n if (controls?.viewTheParticipantList) {\n parsedControls.viewTheParticipantList = {\n enabled: controls.viewTheParticipantList?.enabled ?? false,\n panelistEnabled: controls.viewTheParticipantList?.panelistEnabled ?? false,\n attendeeCount: controls.viewTheParticipantList?.attendeeCount ?? 0,\n };\n }\n\n if (controls?.raiseHand) {\n parsedControls.raiseHand = {enabled: controls.raiseHand.enabled};\n }\n\n if (controls?.video) {\n parsedControls.video = {enabled: controls.video.enabled};\n }\n\n if (controls?.webcastControl) {\n parsedControls.webcastControl = {streaming: controls.webcastControl.streaming};\n }\n\n if (controls?.meetingFull) {\n parsedControls.meetingFull = {\n meetingFull: controls.meetingFull?.meetingFull ?? false,\n meetingPanelistFull: controls.meetingFull?.meetingPanelistFull ?? false,\n };\n }\n\n if (controls?.practiceSession) {\n parsedControls.practiceSession = {\n enabled: controls.practiceSession.enabled,\n };\n }\n\n if (controls?.annotationControl) {\n parsedControls.annotationControl = {\n enabled: controls.annotationControl.enabled,\n };\n }\n\n if (controls?.rdcControl) {\n parsedControls.rdcControl = {\n enabled: controls.rdcControl.enabled,\n };\n }\n\n if (controls?.pollingQAControl) {\n parsedControls.pollingQAControl = {\n enabled: controls.pollingQAControl.enabled,\n };\n }\n\n if (controls?.autoEndMeetingWarning) {\n parsedControls.autoEndMeetingWarning = {\n enabled: controls.autoEndMeetingWarning.enabled,\n extensionDurationMinutes: controls.autoEndMeetingWarning.extensionDurationMinutes,\n countdownDurationMinutes: controls.autoEndMeetingWarning.countdownDurationMinutes,\n countdownStartedAt: controls.autoEndMeetingWarning.countdownStartedAt,\n };\n }\n\n return parsedControls;\n};\n\n/**\n * parses and returns previous state vs current state and triggers the changes.\n * @param {LocusControls} oldControls previous state\n * @param {LocusControls} newControls current state\n * @returns {Object} combination of state plus the changes\n */\nControlsUtils.getControls = (oldControls: any, newControls: any) => {\n const previous = ControlsUtils.parse(oldControls);\n const current = ControlsUtils.parse(newControls);\n\n return {\n previous,\n current,\n updates: {\n hasMuteOnEntryChanged: current?.muteOnEntry?.enabled !== previous?.muteOnEntry?.enabled,\n\n hasShareControlChanged: current?.shareControl?.control !== previous?.shareControl?.control,\n\n hasDisallowUnmuteChanged:\n current?.disallowUnmute?.enabled !== previous?.disallowUnmute?.enabled,\n\n hasReactionsChanged: current?.reactions?.enabled !== previous?.reactions?.enabled,\n\n hasReactionDisplayNamesChanged:\n current?.reactions?.showDisplayNameWithReactions !==\n previous?.reactions?.showDisplayNameWithReactions,\n\n hasViewTheParticipantListChanged:\n current?.viewTheParticipantList?.enabled !== previous?.viewTheParticipantList?.enabled ||\n current?.viewTheParticipantList?.panelistEnabled !==\n previous?.viewTheParticipantList?.panelistEnabled ||\n current?.viewTheParticipantList?.attendeeCount !==\n previous?.viewTheParticipantList?.attendeeCount,\n\n hasRaiseHandChanged: current?.raiseHand?.enabled !== previous?.raiseHand?.enabled,\n\n hasVideoChanged: current?.video?.enabled !== previous?.video?.enabled,\n\n hasRecordingPausedChanged:\n current?.record &&\n !isEqual(previous?.record?.paused, current.record.paused) &&\n (previous?.record?.recording || current?.record?.recording), // see comments directly below\n\n hasRecordingChanged:\n current?.record &&\n !isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasMeetingContainerChanged:\n current?.meetingContainer &&\n !isEqual(\n previous?.meetingContainer?.meetingContainerUrl,\n current?.meetingContainer?.meetingContainerUrl\n ),\n\n hasTranscribeChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true\n (previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting\n\n hasHesiodLLMIdChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.hesiodLlmId, current?.transcribe?.hesiodLlmId) &&\n !!(previous?.transcribe?.hesiodLlmId || current?.transcribe?.hesiodLlmId),\n\n hasAiSummaryNotificationChanged:\n current?.transcribe &&\n !isEqual(\n previous?.transcribe?.aiSummaryNotification,\n current?.transcribe?.aiSummaryNotification\n ) &&\n !!(\n previous?.transcribe?.aiSummaryNotification || current?.transcribe?.aiSummaryNotification\n ),\n\n hasTranscribeSpokenLanguageChanged:\n current?.transcribe &&\n !isEqual(previous?.transcribe?.spokenLanguage, current?.transcribe?.spokenLanguage) &&\n !!(previous?.transcribe?.spokenLanguage || current?.transcribe?.spokenLanguage),\n\n hasManualCaptionChanged:\n current?.manualCaptionControl &&\n !isEqual(previous?.manualCaptionControl?.enabled, current?.manualCaptionControl?.enabled) &&\n (previous?.manualCaptionControl?.enabled || current?.manualCaptionControl?.enabled),\n\n hasEntryExitToneChanged: !!(\n newControls.entryExitTone &&\n !isEqual(previous?.entryExitTone, current?.entryExitTone) &&\n (previous?.entryExitTone || current?.entryExitTone)\n ),\n\n hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),\n\n hasInterpretationChanged: !isEqual(previous?.interpretation, current?.interpretation),\n\n hasVideoEnabledChanged:\n newControls.video?.enabled !== undefined &&\n !isEqual(previous?.videoEnabled, current?.videoEnabled),\n\n hasWebcastChanged: !isEqual(\n previous?.webcastControl?.streaming,\n current?.webcastControl?.streaming\n ),\n\n hasMeetingFullChanged:\n !isEqual(previous?.meetingFull?.meetingFull, current?.meetingFull?.meetingFull) ||\n !isEqual(\n previous?.meetingFull?.meetingPanelistFull,\n current?.meetingFull?.meetingPanelistFull\n ),\n\n hasPracticeSessionEnabledChanged: !isEqual(\n !!previous?.practiceSession?.enabled,\n !!current?.practiceSession?.enabled\n ),\n\n hasStageViewChanged: !isEqual(previous?.videoLayout, current?.videoLayout),\n\n hasAnnotationControlChanged:\n current?.annotationControl?.enabled !== previous?.annotationControl?.enabled,\n\n hasRemoteDesktopControlChanged:\n current?.rdcControl?.enabled !== previous?.rdcControl?.enabled,\n\n hasPollingQAControlChanged:\n current?.pollingQAControl?.enabled !== previous?.pollingQAControl?.enabled,\n\n hasAutoEndMeetingChanged:\n current?.autoEndMeetingWarning?.enabled !== previous?.autoEndMeetingWarning?.enabled ||\n current?.autoEndMeetingWarning?.extensionDurationMinutes !==\n previous?.autoEndMeetingWarning?.extensionDurationMinutes ||\n current?.autoEndMeetingWarning?.countdownDurationMinutes !==\n previous?.autoEndMeetingWarning?.countdownDurationMinutes ||\n current?.autoEndMeetingWarning?.countdownStartedAt !==\n previous?.autoEndMeetingWarning?.countdownStartedAt,\n },\n };\n};\n\n/**\n * Extract the id from the record controls object\n * @param {LocusControls} controls\n * @returns {String|null}\n */\nControlsUtils.getId = (controls: any) => {\n if (controls.record.meta) {\n return controls.record.meta.modifiedBy;\n }\n\n return null;\n};\n\n/**\n * check whether to replace the meeting's members or not.\n * For case joined breakout session, need replace meeting's members\n * @param {LocusControls} oldControls\n * @param {LocusControls} controls\n * @returns {Boolean}\n */\nControlsUtils.isNeedReplaceMembers = (oldControls: any, controls: any) => {\n // no breakout case\n if (!oldControls?.breakout || !controls?.breakout) {\n return false;\n }\n\n return (\n oldControls?.breakout?.groupId !== controls?.breakout?.groupId ||\n oldControls?.breakout?.sessionId !== controls?.breakout?.sessionId\n );\n};\n\n/**\n * determine the switch status between breakout session and main session.\n * @param {LocusInfo} oldLocus\n * @param {LocusInfo} newLocus\n * @returns {Object}\n */\nControlsUtils.getSessionSwitchStatus = (oldLocus: any, newLocus: any) => {\n const status = {isReturnToMain: false, isJoinToBreakout: false};\n // no breakout case\n if (!oldLocus.controls?.breakout || !newLocus.controls?.breakout) {\n return status;\n }\n\n // It is used to fix the timing issue triggered when the creator leaves session to ensure that the member list is complete\n const needUseCache = !!(\n oldLocus.self?.isCreator &&\n newLocus.participants?.length === 1 &&\n newLocus.participants?.[0].isCreator &&\n newLocus.participants?.[0].state === MEETING_STATE.STATES.JOINED &&\n newLocus.controls?.breakout?.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls?.breakout?.groups?.length\n );\n\n const isReturnToMain =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n\n status.isReturnToMain = needUseCache || isReturnToMain;\n status.isJoinToBreakout =\n oldLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.MAIN &&\n newLocus.controls.breakout.sessionType === BREAKOUTS.SESSION_TYPES.BREAKOUT;\n\n return status;\n};\n\nControlsUtils.isMainSessionDTO = (locus: any) => {\n return locus?.controls?.breakout?.sessionType !== BREAKOUTS.SESSION_TYPES.BREAKOUT;\n};\n\nexport default ControlsUtils;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/locus-info/index.js
CHANGED
|
@@ -59,7 +59,7 @@ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0,
|
|
|
59
59
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
60
60
|
// list of top level keys in Locus DTO relevant for Hash Tree DTOs processing
|
|
61
61
|
// it does not contain fields specific to classic Locus DTOs like sequence or baseSequence
|
|
62
|
-
var LocusDtoTopLevelKeys = ['controls', 'fullState', 'host', 'info', 'links', 'mediaShares', 'meetings', 'participants', 'replaces', 'self', 'sequence', 'syncUrl', 'url', 'htMeta' // only exists when hash trees are used
|
|
62
|
+
var LocusDtoTopLevelKeys = ['controls', 'fullState', 'embeddedApps', 'host', 'info', 'links', 'mediaShares', 'meetings', 'participants', 'replaces', 'self', 'sequence', 'syncUrl', 'url', 'htMeta' // only exists when hash trees are used
|
|
63
63
|
];
|
|
64
64
|
var LocusObjectStateAfterUpdates = {
|
|
65
65
|
unchanged: 'unchanged',
|
|
@@ -210,7 +210,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
210
210
|
// in some cases Locus might return us full DTO even when we asked for a delta
|
|
211
211
|
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> got full DTO when we asked for delta');
|
|
212
212
|
}
|
|
213
|
-
meeting.locusInfo.onFullLocus(res.body);
|
|
213
|
+
meeting.locusInfo.onFullLocus('classic Locus sync', res.body);
|
|
214
214
|
}).catch(function (e) {
|
|
215
215
|
_loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> getLocusDTO succeeded but failed to handle result, locus parser will resume but not all data may be synced (".concat(e.toString(), ")"));
|
|
216
216
|
_metrics.default.sendBehavioralMetric(_constants2.default.LOCUS_SYNC_HANDLING_FAILED, {
|
|
@@ -339,12 +339,16 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
339
339
|
}, {
|
|
340
340
|
key: "createHashTreeParser",
|
|
341
341
|
value: function createHashTreeParser(_ref) {
|
|
342
|
-
var
|
|
342
|
+
var _this$webex$config$me;
|
|
343
|
+
var initialLocus = _ref.initialLocus,
|
|
344
|
+
metadata = _ref.metadata;
|
|
343
345
|
return new _hashTreeParser.default({
|
|
344
346
|
initialLocus: initialLocus,
|
|
347
|
+
metadata: metadata,
|
|
345
348
|
webexRequest: this.webex.request.bind(this.webex),
|
|
346
349
|
locusInfoUpdateCallback: this.updateFromHashTree.bind(this),
|
|
347
|
-
debugId: "HT-".concat(this.meetingId.substring(0, 4))
|
|
350
|
+
debugId: "HT-".concat(this.meetingId.substring(0, 4)),
|
|
351
|
+
excludedDataSets: (_this$webex$config$me = this.webex.config.meetings.locus) === null || _this$webex$config$me === void 0 ? void 0 : _this$webex$config$me.excludedDataSets
|
|
348
352
|
});
|
|
349
353
|
}
|
|
350
354
|
|
|
@@ -358,7 +362,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
358
362
|
value: (function () {
|
|
359
363
|
var _initialSetup = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(data) {
|
|
360
364
|
var _data$locus, _data$locus$links, _data$locus$links$res, _data$locus$links$res2;
|
|
361
|
-
var _data$hashTreeMessage,
|
|
365
|
+
var _data$hashTreeMessage, _metadataObject$data, metadataObject, _t;
|
|
362
366
|
return _regenerator.default.wrap(function (_context) {
|
|
363
367
|
while (1) switch (_context.prev = _context.next) {
|
|
364
368
|
case 0:
|
|
@@ -370,29 +374,32 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
370
374
|
_context.next = 4;
|
|
371
375
|
break;
|
|
372
376
|
}
|
|
373
|
-
// we need the
|
|
377
|
+
// we need the Metadata object to be in the received message, because it contains visibleDataSets
|
|
374
378
|
// and these are needed to initialize all the hash trees
|
|
375
|
-
|
|
376
|
-
return (0, _utils.
|
|
379
|
+
metadataObject = (_data$hashTreeMessage = data.hashTreeMessage.locusStateElements) === null || _data$hashTreeMessage === void 0 ? void 0 : _data$hashTreeMessage.find(function (el) {
|
|
380
|
+
return (0, _utils.isMetadata)(el);
|
|
377
381
|
});
|
|
378
|
-
if (
|
|
382
|
+
if (metadataObject !== null && metadataObject !== void 0 && (_metadataObject$data = metadataObject.data) !== null && _metadataObject$data !== void 0 && _metadataObject$data.visibleDataSets) {
|
|
379
383
|
_context.next = 2;
|
|
380
384
|
break;
|
|
381
385
|
}
|
|
382
|
-
|
|
383
|
-
|
|
386
|
+
// this is a common case (not an error)
|
|
387
|
+
// it happens for example after we leave the meeting and still get some heartbeats or delayed messages
|
|
388
|
+
_loggerProxy.default.logger.info("Locus-info:index#initialSetup --> cannot initialize HashTreeParser, Metadata object with visibleDataSets is missing in the message");
|
|
389
|
+
|
|
390
|
+
// throw so that handleLocusEvent() catches it and destroys the partially created meeting object
|
|
391
|
+
throw new Error('Metadata object with visibleDataSets is missing in the message');
|
|
384
392
|
case 2:
|
|
385
393
|
_loggerProxy.default.logger.info('Locus-info:index#initialSetup --> creating HashTreeParser from message');
|
|
386
394
|
// first create the HashTreeParser, but don't initialize it with any data yet
|
|
387
|
-
// pass just a fake locus that contains only the visibleDataSets
|
|
388
395
|
this.hashTreeParser = this.createHashTreeParser({
|
|
389
396
|
initialLocus: {
|
|
390
|
-
locus:
|
|
391
|
-
self: {
|
|
392
|
-
visibleDataSets: selfObject.data.visibleDataSets
|
|
393
|
-
}
|
|
394
|
-
},
|
|
397
|
+
locus: null,
|
|
395
398
|
dataSets: [] // empty, because they will be populated in initializeFromMessage() call // dataSets: data.hashTreeMessage.dataSets,
|
|
399
|
+
},
|
|
400
|
+
metadata: {
|
|
401
|
+
htMeta: metadataObject.htMeta,
|
|
402
|
+
visibleDataSets: metadataObject.data.visibleDataSets
|
|
396
403
|
}
|
|
397
404
|
});
|
|
398
405
|
|
|
@@ -405,12 +412,12 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
405
412
|
case 4:
|
|
406
413
|
// "classic" Locus case, no hash trees involved
|
|
407
414
|
this.updateLocusCache(data.locus);
|
|
408
|
-
this.onFullLocus(data.locus, undefined);
|
|
415
|
+
this.onFullLocus('classic locus message', data.locus, undefined);
|
|
409
416
|
case 5:
|
|
410
417
|
return _context.abrupt("continue", 10);
|
|
411
418
|
case 6:
|
|
412
419
|
this.updateLocusCache(data.locus);
|
|
413
|
-
this.onFullLocus(data.locus, undefined, data.dataSets);
|
|
420
|
+
this.onFullLocus('join response', data.locus, undefined, data.dataSets, data.metadata);
|
|
414
421
|
return _context.abrupt("continue", 10);
|
|
415
422
|
case 7:
|
|
416
423
|
if (!((_data$locus = data.locus) !== null && _data$locus !== void 0 && (_data$locus$links = _data$locus.links) !== null && _data$locus$links !== void 0 && (_data$locus$links$res = _data$locus$links.resources) !== null && _data$locus$links$res !== void 0 && (_data$locus$links$res2 = _data$locus$links$res.visibleDataSets) !== null && _data$locus$links$res2 !== void 0 && _data$locus$links$res2.url)) {
|
|
@@ -419,16 +426,12 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
419
426
|
}
|
|
420
427
|
_loggerProxy.default.logger.info('Locus-info:index#initialSetup --> creating HashTreeParser from get-loci-response');
|
|
421
428
|
// first create the HashTreeParser, but don't initialize it with any data yet
|
|
422
|
-
// pass just a fake locus that contains only the visibleDataSets
|
|
423
429
|
this.hashTreeParser = this.createHashTreeParser({
|
|
424
430
|
initialLocus: {
|
|
425
|
-
locus:
|
|
426
|
-
self: {
|
|
427
|
-
visibleDataSets: (_data$locus2 = data.locus) === null || _data$locus2 === void 0 ? void 0 : (_data$locus2$self = _data$locus2.self) === null || _data$locus2$self === void 0 ? void 0 : _data$locus2$self.visibleDataSets
|
|
428
|
-
}
|
|
429
|
-
},
|
|
431
|
+
locus: null,
|
|
430
432
|
dataSets: [] // empty, because we don't have them yet
|
|
431
|
-
}
|
|
433
|
+
},
|
|
434
|
+
metadata: null // get-loci-response doesn't contain Metadata object
|
|
432
435
|
});
|
|
433
436
|
|
|
434
437
|
// now initialize all the data
|
|
@@ -440,7 +443,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
440
443
|
case 9:
|
|
441
444
|
// "classic" Locus case, no hash trees involved
|
|
442
445
|
this.updateLocusCache(data.locus);
|
|
443
|
-
this.onFullLocus(data.locus, undefined);
|
|
446
|
+
this.onFullLocus('classic get-loci-response', data.locus, undefined);
|
|
444
447
|
case 10:
|
|
445
448
|
// Change it to true after it receives it first locus object
|
|
446
449
|
this.emitChange = true;
|
|
@@ -543,6 +546,27 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
543
546
|
});
|
|
544
547
|
}
|
|
545
548
|
break;
|
|
549
|
+
case _types.ObjectType.embeddedApp:
|
|
550
|
+
if (object.data) {
|
|
551
|
+
var _locus$embeddedApps;
|
|
552
|
+
_loggerProxy.default.logger.info("Locus-info:index#updateLocusFromHashTreeObject --> embeddedApp id=".concat(object.htMeta.elementId.id, " url='").concat(object.data.url, "' updated version=").concat(object.htMeta.elementId.version, ":"), object.data);
|
|
553
|
+
var existingEmbeddedApp = (_locus$embeddedApps = locus.embeddedApps) === null || _locus$embeddedApps === void 0 ? void 0 : _locus$embeddedApps.find(function (ms) {
|
|
554
|
+
return ms.htMeta.elementId.id === object.htMeta.elementId.id;
|
|
555
|
+
});
|
|
556
|
+
if (existingEmbeddedApp) {
|
|
557
|
+
(0, _assign.default)(existingEmbeddedApp, object.data);
|
|
558
|
+
} else {
|
|
559
|
+
locus.embeddedApps = locus.embeddedApps || [];
|
|
560
|
+
locus.embeddedApps.push(object.data);
|
|
561
|
+
}
|
|
562
|
+
} else {
|
|
563
|
+
var _locus$embeddedApps2;
|
|
564
|
+
_loggerProxy.default.logger.info("Locus-info:index#updateLocusFromHashTreeObject --> embeddedApp id=".concat(object.htMeta.elementId.id, " removed, version=").concat(object.htMeta.elementId.version));
|
|
565
|
+
locus.embeddedApps = (_locus$embeddedApps2 = locus.embeddedApps) === null || _locus$embeddedApps2 === void 0 ? void 0 : _locus$embeddedApps2.filter(function (ms) {
|
|
566
|
+
return ms.htMeta.elementId.id !== object.htMeta.elementId.id;
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
break;
|
|
546
570
|
case _types.ObjectType.participant:
|
|
547
571
|
_loggerProxy.default.logger.info("Locus-info:index#updateLocusFromHashTreeObject --> participant id=".concat(object.htMeta.elementId.id, " ").concat(object.data ? 'updated' : 'removed', " version=").concat(object.htMeta.elementId.version));
|
|
548
572
|
if (object.data) {
|
|
@@ -598,6 +622,10 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
598
622
|
}
|
|
599
623
|
}
|
|
600
624
|
break;
|
|
625
|
+
case _types.ObjectType.metadata:
|
|
626
|
+
_loggerProxy.default.logger.info("Locus-info:index#updateLocusFromHashTreeObject --> metadata object updated to version ".concat(object.htMeta.elementId.version));
|
|
627
|
+
// we don't use hash tree metadata right now for anything, it's mainly used internally by HashTreeParser
|
|
628
|
+
break;
|
|
601
629
|
default:
|
|
602
630
|
_loggerProxy.default.logger.warn("Locus-info:index#updateLocusFromHashTreeObject --> received unsupported object type ".concat(type));
|
|
603
631
|
break;
|
|
@@ -637,14 +665,30 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
637
665
|
*/
|
|
638
666
|
}, {
|
|
639
667
|
key: "handleHashTreeMessage",
|
|
640
|
-
value: function
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
668
|
+
value: (function () {
|
|
669
|
+
var _handleHashTreeMessage = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(meeting, eventType, message) {
|
|
670
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
671
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
672
|
+
case 0:
|
|
673
|
+
if (!(eventType !== _constants.LOCUSEVENT.HASH_TREE_DATA_UPDATED)) {
|
|
674
|
+
_context2.next = 1;
|
|
675
|
+
break;
|
|
676
|
+
}
|
|
677
|
+
this.sendClassicVsHashTreeMismatchMetric(meeting, "got ".concat(eventType, ", expected ").concat(_constants.LOCUSEVENT.HASH_TREE_DATA_UPDATED));
|
|
678
|
+
return _context2.abrupt("return");
|
|
679
|
+
case 1:
|
|
680
|
+
this.hashTreeParser.handleMessage(message);
|
|
681
|
+
case 2:
|
|
682
|
+
case "end":
|
|
683
|
+
return _context2.stop();
|
|
684
|
+
}
|
|
685
|
+
}, _callee2, this);
|
|
686
|
+
}));
|
|
687
|
+
function handleHashTreeMessage(_x2, _x3, _x4) {
|
|
688
|
+
return _handleHashTreeMessage.apply(this, arguments);
|
|
644
689
|
}
|
|
645
|
-
|
|
646
|
-
}
|
|
647
|
-
|
|
690
|
+
return handleHashTreeMessage;
|
|
691
|
+
}()
|
|
648
692
|
/**
|
|
649
693
|
* Callback registered with HashTreeParser to receive locus info updates.
|
|
650
694
|
* Updates our locus info based on the data parsed by the hash tree parser.
|
|
@@ -653,6 +697,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
653
697
|
* @param {Object} [data] - Additional data for the update, if applicable.
|
|
654
698
|
* @returns {void}
|
|
655
699
|
*/
|
|
700
|
+
)
|
|
656
701
|
}, {
|
|
657
702
|
key: "updateFromHashTree",
|
|
658
703
|
value: function updateFromHashTree(updateType, data) {
|
|
@@ -749,8 +794,13 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
749
794
|
if (this.hashTreeParser) {
|
|
750
795
|
this.handleHashTreeMessage(meeting, data.eventType, data.stateElementsMessage);
|
|
751
796
|
} else {
|
|
752
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
753
797
|
var eventType = data.eventType;
|
|
798
|
+
if (eventType === _constants.LOCUSEVENT.HASH_TREE_DATA_UPDATED) {
|
|
799
|
+
// this can happen when we get an event before join http response
|
|
800
|
+
// it's OK to just ignore it
|
|
801
|
+
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus hash tree event before hashTreeParser is created");
|
|
802
|
+
return;
|
|
803
|
+
}
|
|
754
804
|
var locus = this.getTheLocusToUpdate(data.locus);
|
|
755
805
|
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus data: ".concat(eventType));
|
|
756
806
|
locus.jsSdkMeta = {
|
|
@@ -771,14 +821,11 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
771
821
|
case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:
|
|
772
822
|
case _constants.LOCUSEVENT.FLOOR_GRANTED:
|
|
773
823
|
case _constants.LOCUSEVENT.FLOOR_RELEASED:
|
|
774
|
-
this.onFullLocus(locus, eventType);
|
|
824
|
+
this.onFullLocus("classic locus event ".concat(eventType), locus, eventType);
|
|
775
825
|
break;
|
|
776
826
|
case _constants.LOCUSEVENT.DIFFERENCE:
|
|
777
827
|
this.handleLocusDelta(locus, meeting);
|
|
778
828
|
break;
|
|
779
|
-
case _constants.LOCUSEVENT.HASH_TREE_DATA_UPDATED:
|
|
780
|
-
this.sendClassicVsHashTreeMismatchMetric(meeting, "got ".concat(eventType, ", expected classic events"));
|
|
781
|
-
break;
|
|
782
829
|
default:
|
|
783
830
|
// Why will there be a event with no eventType ????
|
|
784
831
|
// we may not need this, we can get full locus
|
|
@@ -803,32 +850,36 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
803
850
|
/**
|
|
804
851
|
* Function for handling full locus when it's using hash trees (so not the "classic" one).
|
|
805
852
|
*
|
|
853
|
+
* @param {string} debugText string explaining the trigger for this call, added to logs for debugging purposes
|
|
806
854
|
* @param {object} locus locus object
|
|
855
|
+
* @param {object} metadata locus hash trees metadata
|
|
807
856
|
* @param {string} eventType locus event
|
|
808
857
|
* @param {DataSet[]} dataSets
|
|
809
858
|
* @returns {void}
|
|
810
859
|
*/
|
|
811
860
|
}, {
|
|
812
861
|
key: "onFullLocusWithHashTrees",
|
|
813
|
-
value: function onFullLocusWithHashTrees(locus, eventType, dataSets) {
|
|
862
|
+
value: function onFullLocusWithHashTrees(debugText, locus, metadata, eventType, dataSets) {
|
|
814
863
|
if (!this.hashTreeParser) {
|
|
815
|
-
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> creating hash tree parser");
|
|
816
|
-
_loggerProxy.default.logger.info(
|
|
864
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus (".concat(debugText, ") --> creating hash tree parser"));
|
|
865
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus (".concat(debugText, ") --> dataSets:"), dataSets, ' and locus:', locus, ' and metadata:', metadata);
|
|
817
866
|
this.hashTreeParser = this.createHashTreeParser({
|
|
818
867
|
initialLocus: {
|
|
819
868
|
locus: locus,
|
|
820
869
|
dataSets: dataSets
|
|
821
|
-
}
|
|
870
|
+
},
|
|
871
|
+
metadata: metadata
|
|
822
872
|
});
|
|
823
873
|
this.onFullLocusCommon(locus, eventType);
|
|
824
874
|
} else {
|
|
825
875
|
// in this case the Locus we're getting is not necessarily the full one
|
|
826
876
|
// so treat it like if we just got it in any api response
|
|
827
877
|
|
|
828
|
-
_loggerProxy.default.logger.info(
|
|
878
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus (".concat(debugText, ") --> hash tree parser already exists, handling it like a normal API response"));
|
|
829
879
|
this.handleLocusAPIResponse(undefined, {
|
|
830
880
|
dataSets: dataSets,
|
|
831
|
-
locus: locus
|
|
881
|
+
locus: locus,
|
|
882
|
+
metadata: metadata
|
|
832
883
|
});
|
|
833
884
|
}
|
|
834
885
|
}
|
|
@@ -836,15 +887,16 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
836
887
|
/**
|
|
837
888
|
* Function for handling full locus when it's the "classic" one (not hash trees)
|
|
838
889
|
*
|
|
890
|
+
* @param {string} debugText string explaining the trigger for this call, added to logs for debugging purposes
|
|
839
891
|
* @param {object} locus locus object
|
|
840
892
|
* @param {string} eventType locus event
|
|
841
893
|
* @returns {void}
|
|
842
894
|
*/
|
|
843
895
|
}, {
|
|
844
896
|
key: "onFullLocusClassic",
|
|
845
|
-
value: function onFullLocusClassic(locus, eventType) {
|
|
897
|
+
value: function onFullLocusClassic(debugText, locus, eventType) {
|
|
846
898
|
if (!this.locusParser.isNewFullLocus(locus)) {
|
|
847
|
-
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
|
|
899
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus (".concat(debugText, ") --> ignoring old full locus DTO, eventType=").concat(eventType));
|
|
848
900
|
return;
|
|
849
901
|
}
|
|
850
902
|
this.onFullLocusCommon(locus, eventType);
|
|
@@ -852,23 +904,28 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
852
904
|
|
|
853
905
|
/**
|
|
854
906
|
* updates the locus with full locus object
|
|
907
|
+
* @param {string} debugText string explaining the trigger for this call, added to logs for debugging purposes
|
|
855
908
|
* @param {object} locus locus object
|
|
856
909
|
* @param {string} eventType locus event
|
|
857
910
|
* @param {DataSet[]} dataSets
|
|
911
|
+
* @param {object} metadata locus hash trees metadata
|
|
858
912
|
* @returns {object} null
|
|
859
913
|
* @memberof LocusInfo
|
|
860
914
|
*/
|
|
861
915
|
}, {
|
|
862
916
|
key: "onFullLocus",
|
|
863
|
-
value: function onFullLocus(locus, eventType, dataSets) {
|
|
917
|
+
value: function onFullLocus(debugText, locus, eventType, dataSets, metadata) {
|
|
864
918
|
if (!locus) {
|
|
865
|
-
_loggerProxy.default.logger.error(
|
|
919
|
+
_loggerProxy.default.logger.error("Locus-info:index#onFullLocus (".concat(debugText, ") --> object passed as argument was invalid, continuing."));
|
|
866
920
|
}
|
|
867
921
|
if (dataSets) {
|
|
922
|
+
if (!metadata) {
|
|
923
|
+
throw new Error("Locus-info:index#onFullLocus (".concat(debugText, ") --> hash tree metadata is missing with full Locus"));
|
|
924
|
+
}
|
|
868
925
|
// this is the new hashmap Locus DTO format (only applicable to webinars for now)
|
|
869
|
-
this.onFullLocusWithHashTrees(locus, eventType, dataSets);
|
|
926
|
+
this.onFullLocusWithHashTrees(debugText, locus, metadata, eventType, dataSets);
|
|
870
927
|
} else {
|
|
871
|
-
this.onFullLocusClassic(locus, eventType);
|
|
928
|
+
this.onFullLocusClassic(debugText, locus, eventType);
|
|
872
929
|
}
|
|
873
930
|
}
|
|
874
931
|
|
|
@@ -1102,23 +1159,6 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1102
1159
|
reason: _constants.MEETING_REMOVED_REASON.MEETING_INACTIVE_TERMINATING,
|
|
1103
1160
|
shouldLeave: false
|
|
1104
1161
|
});
|
|
1105
|
-
} else if (this.fullState && this.fullState.removed) {
|
|
1106
|
-
// user has been dropped from a meeting
|
|
1107
|
-
|
|
1108
|
-
// @ts-ignore
|
|
1109
|
-
this.webex.internal.newMetrics.submitClientEvent({
|
|
1110
|
-
name: 'client.call.remote-ended',
|
|
1111
|
-
options: {
|
|
1112
|
-
meetingId: this.meetingId
|
|
1113
|
-
}
|
|
1114
|
-
});
|
|
1115
|
-
this.emitScoped({
|
|
1116
|
-
file: 'locus-info',
|
|
1117
|
-
function: 'isMeetingActive'
|
|
1118
|
-
}, _constants.EVENTS.DESTROY_MEETING, {
|
|
1119
|
-
reason: _constants.MEETING_REMOVED_REASON.FULLSTATE_REMOVED,
|
|
1120
|
-
shouldLeave: false
|
|
1121
|
-
});
|
|
1122
1162
|
}
|
|
1123
1163
|
// If you are guest and you are removed from the meeting
|
|
1124
1164
|
// You wont get any further events
|
|
@@ -1246,6 +1286,7 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1246
1286
|
hasMeetingContainerChanged = _ControlsUtils$getCon2.hasMeetingContainerChanged,
|
|
1247
1287
|
hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,
|
|
1248
1288
|
hasHesiodLLMIdChanged = _ControlsUtils$getCon2.hasHesiodLLMIdChanged,
|
|
1289
|
+
hasAiSummaryNotificationChanged = _ControlsUtils$getCon2.hasAiSummaryNotificationChanged,
|
|
1249
1290
|
hasTranscribeSpokenLanguageChanged = _ControlsUtils$getCon2.hasTranscribeSpokenLanguageChanged,
|
|
1250
1291
|
hasManualCaptionChanged = _ControlsUtils$getCon2.hasManualCaptionChanged,
|
|
1251
1292
|
hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,
|
|
@@ -1376,6 +1417,14 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1376
1417
|
hesiodLlmId: hesiodLlmId
|
|
1377
1418
|
});
|
|
1378
1419
|
}
|
|
1420
|
+
if (hasAiSummaryNotificationChanged) {
|
|
1421
|
+
this.emitScoped({
|
|
1422
|
+
file: 'locus-info',
|
|
1423
|
+
function: 'updateControls'
|
|
1424
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_AI_SUMMARY_NOTIFICATION_UPDATED, {
|
|
1425
|
+
aiSummaryNotification: current.transcribe.aiSummaryNotification
|
|
1426
|
+
});
|
|
1427
|
+
}
|
|
1379
1428
|
if (hasTranscribeSpokenLanguageChanged) {
|
|
1380
1429
|
var spokenLanguage = current.transcribe.spokenLanguage;
|
|
1381
1430
|
this.emitScoped({
|
|
@@ -1800,6 +1849,14 @@ var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
|
1800
1849
|
brb: parsedSelves.current.brb
|
|
1801
1850
|
});
|
|
1802
1851
|
}
|
|
1852
|
+
if (parsedSelves.updates.selfIdChanged) {
|
|
1853
|
+
this.emitScoped({
|
|
1854
|
+
file: 'locus-info',
|
|
1855
|
+
function: 'updateSelf'
|
|
1856
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_ID_CHANGED, {
|
|
1857
|
+
selfId: parsedSelves.current.selfId
|
|
1858
|
+
});
|
|
1859
|
+
}
|
|
1803
1860
|
if (parsedSelves.updates.interpretationChanged) {
|
|
1804
1861
|
this.emitScoped({
|
|
1805
1862
|
file: 'locus-info',
|