@webex/plugin-meetings 3.0.0-beta.21 → 3.0.0-beta.211
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/README.md +45 -7
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +114 -14
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +841 -19
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/errors/webex-errors.js +3 -2
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +3 -8
- package/dist/config.js.map +1 -1
- package/dist/constants.js +179 -30
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +14 -0
- package/dist/controls-options-manager/constants.js.map +1 -0
- package/dist/controls-options-manager/enums.js +27 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +297 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +319 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +106 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +359 -64
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +43 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +219 -63
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +48 -135
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +29 -90
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -493
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +90 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2770 -2547
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +229 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +199 -193
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +532 -414
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +171 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +20 -5
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +357 -66
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +88 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +121 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +86 -5
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +3 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +49 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +52 -34
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +173 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +4 -2
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/reachability/index.js +72 -27
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +12 -5
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +196 -155
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +21 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +110 -89
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +93 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.js +1 -93
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +326 -311
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +90 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/breakout.d.ts +8 -0
- package/dist/types/breakouts/collection.d.ts +5 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/browser-detection.d.ts +9 -0
- package/dist/types/common/collection.d.ts +48 -0
- package/dist/types/common/config.d.ts +2 -0
- package/dist/types/common/errors/captcha-error.d.ts +15 -0
- package/dist/types/common/errors/intent-to-join.d.ts +16 -0
- package/dist/types/common/errors/join-meeting.d.ts +17 -0
- package/dist/types/common/errors/media.d.ts +15 -0
- package/dist/types/common/errors/parameter.d.ts +15 -0
- package/dist/types/common/errors/password-error.d.ts +15 -0
- package/dist/types/common/errors/permission.d.ts +14 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/common/errors/reconnection.d.ts +15 -0
- package/dist/types/common/errors/stats.d.ts +15 -0
- package/dist/types/common/errors/webex-errors.d.ts +69 -0
- package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/types/common/events/events-scope.d.ts +17 -0
- package/dist/types/common/events/events.d.ts +12 -0
- package/dist/types/common/events/trigger-proxy.d.ts +2 -0
- package/dist/types/common/events/util.d.ts +2 -0
- package/dist/types/common/logs/logger-config.d.ts +2 -0
- package/dist/types/common/logs/logger-proxy.d.ts +2 -0
- package/dist/types/common/logs/request.d.ts +34 -0
- package/dist/types/common/queue.d.ts +34 -0
- package/dist/types/config.d.ts +72 -0
- package/dist/types/constants.d.ts +1020 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +15 -0
- package/dist/types/controls-options-manager/index.d.ts +136 -0
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/controlsUtils.d.ts +2 -0
- package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/types/locus-info/fullState.d.ts +2 -0
- package/dist/types/locus-info/hostUtils.d.ts +2 -0
- package/dist/types/locus-info/index.d.ts +322 -0
- package/dist/types/locus-info/infoUtils.d.ts +2 -0
- package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/types/locus-info/parser.d.ts +271 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +34 -0
- package/dist/types/media/properties.d.ts +93 -0
- package/dist/types/media/util.d.ts +2 -0
- package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +163 -0
- package/dist/types/meeting/index.d.ts +1482 -0
- package/dist/types/meeting/locusMediaRequest.d.ts +72 -0
- package/dist/types/meeting/muteState.d.ts +184 -0
- package/dist/types/meeting/request.d.ts +257 -0
- package/dist/types/meeting/request.type.d.ts +11 -0
- package/dist/types/meeting/state.d.ts +9 -0
- package/dist/types/meeting/util.d.ts +79 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +62 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +122 -0
- package/dist/types/meeting-info/request.d.ts +22 -0
- package/dist/types/meeting-info/util.d.ts +2 -0
- package/dist/types/meeting-info/utilv2.d.ts +2 -0
- package/dist/types/meetings/collection.d.ts +31 -0
- package/dist/types/meetings/index.d.ts +367 -0
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/meetings/request.d.ts +27 -0
- package/dist/types/meetings/util.d.ts +18 -0
- package/dist/types/member/index.d.ts +159 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +353 -0
- package/dist/types/members/request.d.ts +114 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +210 -0
- package/dist/types/metrics/constants.d.ts +55 -0
- package/dist/types/metrics/index.d.ts +45 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/types/multistream/remoteMedia.d.ts +72 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +277 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +207 -0
- package/dist/types/recording-controller/util.d.ts +14 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +36 -0
- package/dist/types/roap/turnDiscovery.d.ts +91 -0
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +46 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +200 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +44 -14
- package/src/breakouts/breakout.ts +87 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +710 -10
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/webex-errors.ts +6 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +2 -7
- package/src/constants.ts +165 -21
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +18 -0
- package/src/controls-options-manager/index.ts +278 -0
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +300 -0
- package/src/index.ts +39 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +383 -61
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +48 -0
- package/src/locus-info/parser.ts +224 -39
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +87 -140
- package/src/media/properties.ts +49 -90
- package/src/mediaQualityMetrics/config.ts +379 -377
- package/src/meeting/in-meeting-actions.ts +179 -3
- package/src/meeting/index.ts +2099 -2083
- package/src/meeting/locusMediaRequest.ts +311 -0
- package/src/meeting/muteState.ts +228 -132
- package/src/meeting/request.ts +105 -115
- package/src/meeting/util.ts +511 -397
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +148 -14
- package/src/meeting-info/utilv2.ts +13 -3
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +392 -84
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +103 -4
- package/src/member/index.ts +49 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +127 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +107 -6
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +2 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +55 -18
- package/src/multistream/receiveSlotManager.ts +46 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +113 -32
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/index.ts +62 -15
- package/src/reachability/request.ts +10 -5
- package/src/reconnection-manager/index.ts +68 -43
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +21 -30
- package/src/roap/request.ts +101 -95
- package/src/roap/turnDiscovery.ts +47 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/global.ts +1 -94
- package/src/statsAnalyzer/index.ts +376 -386
- package/src/statsAnalyzer/mqaUtil.ts +100 -99
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +336 -259
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +142 -24
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1545 -48
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +287 -0
- package/test/unit/spec/controls-options-manager/util.js +582 -0
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1169 -36
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +22 -0
- package/test/unit/spec/locus-info/parser.js +62 -22
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +138 -28
- package/test/unit/spec/meeting/in-meeting-actions.ts +89 -3
- package/test/unit/spec/meeting/index.js +3573 -1663
- package/test/unit/spec/meeting/locusMediaRequest.ts +438 -0
- package/test/unit/spec/meeting/muteState.js +370 -208
- package/test/unit/spec/meeting/request.js +339 -44
- package/test/unit/spec/meeting/utils.js +456 -53
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +383 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +867 -125
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +58 -4
- package/test/unit/spec/member/util.js +479 -35
- package/test/unit/spec/members/index.js +319 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +72 -13
- package/test/unit/spec/multistream/receiveSlotManager.ts +58 -28
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +318 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/index.ts +125 -8
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +59 -6
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +26 -51
- package/test/unit/spec/roap/request.ts +196 -85
- package/test/unit/spec/roap/turnDiscovery.ts +30 -7
- package/test/unit/spec/rtcMetrics/index.ts +60 -0
- package/test/unit/spec/stats-analyzer/index.js +92 -41
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +6 -3
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -110
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/src/multistream/multistreamMedia.ts +0 -97
- package/test/unit/spec/meeting/effectsState.js +0 -285
package/dist/locus-info/index.js
CHANGED
|
@@ -15,12 +15,13 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
|
|
|
15
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
18
|
+
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
|
19
|
+
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
20
|
+
var _assignWith2 = _interopRequireDefault(require("lodash/assignWith"));
|
|
18
21
|
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
|
19
22
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
20
23
|
var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
|
|
21
24
|
var _constants = require("../constants");
|
|
22
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
23
|
-
var _config = require("../metrics/config");
|
|
24
25
|
var _infoUtils = _interopRequireDefault(require("./infoUtils"));
|
|
25
26
|
var _fullState = _interopRequireDefault(require("./fullState"));
|
|
26
27
|
var _selfUtils = _interopRequireDefault(require("./selfUtils"));
|
|
@@ -40,6 +41,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
40
41
|
var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
41
42
|
(0, _inherits2.default)(LocusInfo, _EventsScope);
|
|
42
43
|
var _super = _createSuper(LocusInfo);
|
|
44
|
+
/**
|
|
45
|
+
* Constructor
|
|
46
|
+
* @param {function} updateMeeting callback to update the meeting object from an object
|
|
47
|
+
* @param {object} webex
|
|
48
|
+
* @param {string} meetingId
|
|
49
|
+
* @returns {undefined}
|
|
50
|
+
*/
|
|
43
51
|
function LocusInfo(updateMeeting, webex, meetingId) {
|
|
44
52
|
var _this;
|
|
45
53
|
(0, _classCallCheck2.default)(this, LocusInfo);
|
|
@@ -68,10 +76,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
68
76
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fullState", void 0);
|
|
69
77
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "host", void 0);
|
|
70
78
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "info", void 0);
|
|
79
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roles", void 0);
|
|
71
80
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaShares", void 0);
|
|
72
81
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "replace", void 0);
|
|
73
82
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "url", void 0);
|
|
74
83
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "services", void 0);
|
|
84
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mainSessionLocusCache", void 0);
|
|
75
85
|
_this.parsedLocus = {
|
|
76
86
|
states: []
|
|
77
87
|
};
|
|
@@ -85,38 +95,71 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
85
95
|
}
|
|
86
96
|
|
|
87
97
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* @param {Locus} locus
|
|
98
|
+
* Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.
|
|
99
|
+
*
|
|
91
100
|
* @param {Meeting} meeting
|
|
92
101
|
* @returns {undefined}
|
|
93
102
|
*/
|
|
94
103
|
(0, _createClass2.default)(LocusInfo, [{
|
|
104
|
+
key: "doLocusSync",
|
|
105
|
+
value: function doLocusSync(meeting) {
|
|
106
|
+
var _this2 = this;
|
|
107
|
+
var isDelta;
|
|
108
|
+
var url;
|
|
109
|
+
if (this.locusParser.workingCopy.syncUrl) {
|
|
110
|
+
url = this.locusParser.workingCopy.syncUrl;
|
|
111
|
+
isDelta = true;
|
|
112
|
+
} else {
|
|
113
|
+
url = meeting.locusUrl;
|
|
114
|
+
isDelta = false;
|
|
115
|
+
}
|
|
116
|
+
_loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> doing Locus sync (getting ".concat(isDelta ? 'delta' : 'full', " DTO)"));
|
|
117
|
+
|
|
118
|
+
// return value ignored on purpose
|
|
119
|
+
meeting.meetingRequest.getLocusDTO({
|
|
120
|
+
url: url
|
|
121
|
+
}).then(function (res) {
|
|
122
|
+
if (isDelta) {
|
|
123
|
+
if (!(0, _isEmpty2.default)(res.body)) {
|
|
124
|
+
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
|
125
|
+
} else {
|
|
126
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');
|
|
127
|
+
}
|
|
128
|
+
} else {
|
|
129
|
+
meeting.locusInfo.onFullLocus(res.body);
|
|
130
|
+
}
|
|
131
|
+
}).finally(function () {
|
|
132
|
+
// Notify parser to resume processing delta events.
|
|
133
|
+
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
|
134
|
+
_this2.locusParser.resume();
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Apply locus delta data to meeting
|
|
140
|
+
* @param {string} action Locus delta action
|
|
141
|
+
* @param {Locus} locus
|
|
142
|
+
* @param {Meeting} meeting
|
|
143
|
+
* @returns {undefined}
|
|
144
|
+
*/
|
|
145
|
+
}, {
|
|
95
146
|
key: "applyLocusDeltaData",
|
|
96
147
|
value: function applyLocusDeltaData(action, locus, meeting) {
|
|
97
|
-
var _this2 = this;
|
|
98
148
|
var _LocusDeltaParser$loc = _parser.default.loci,
|
|
99
149
|
DESYNC = _LocusDeltaParser$loc.DESYNC,
|
|
100
150
|
USE_CURRENT = _LocusDeltaParser$loc.USE_CURRENT,
|
|
101
|
-
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING
|
|
151
|
+
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING,
|
|
152
|
+
WAIT = _LocusDeltaParser$loc.WAIT;
|
|
102
153
|
switch (action) {
|
|
103
154
|
case USE_INCOMING:
|
|
104
155
|
meeting.locusInfo.onDeltaLocus(locus);
|
|
105
156
|
break;
|
|
106
157
|
case USE_CURRENT:
|
|
107
|
-
|
|
108
|
-
|
|
158
|
+
case WAIT:
|
|
159
|
+
// do nothing
|
|
109
160
|
break;
|
|
110
161
|
case DESYNC:
|
|
111
|
-
|
|
112
|
-
desync: true,
|
|
113
|
-
locusUrl: meeting.locusUrl
|
|
114
|
-
}).then(function (res) {
|
|
115
|
-
meeting.locusInfo.onFullLocus(res.body);
|
|
116
|
-
// Notify parser to resume processing delta events
|
|
117
|
-
// now that we have full locus from DESYNC.
|
|
118
|
-
_this2.locusParser.resume();
|
|
119
|
-
});
|
|
162
|
+
this.doLocusSync(meeting);
|
|
120
163
|
break;
|
|
121
164
|
default:
|
|
122
165
|
_loggerProxy.default.logger.info("Locus-info:index#applyLocusDeltaData --> Unknown locus delta action: ".concat(action));
|
|
@@ -186,13 +229,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
186
229
|
* @member LocusInfo
|
|
187
230
|
*/
|
|
188
231
|
this.deltaParticipants = [];
|
|
189
|
-
|
|
232
|
+
this.updateLocusCache(locus);
|
|
190
233
|
// above section only updates the locusInfo object
|
|
191
234
|
// The below section makes sure it updates the locusInfo as well as updates the meeting object
|
|
192
235
|
this.updateParticipants(locus.participants);
|
|
193
236
|
// For 1:1 space meeting the conversation Url does not exist in locus.conversation
|
|
194
237
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
195
|
-
this.updateControls(locus.controls);
|
|
238
|
+
this.updateControls(locus.controls, locus.self);
|
|
196
239
|
this.updateLocusUrl(locus.url);
|
|
197
240
|
this.updateFullState(locus.fullState);
|
|
198
241
|
this.updateMeetingInfo(locus.info);
|
|
@@ -212,6 +255,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
212
255
|
}, {
|
|
213
256
|
key: "initialSetup",
|
|
214
257
|
value: function initialSetup(locus) {
|
|
258
|
+
this.updateLocusCache(locus);
|
|
215
259
|
this.onFullLocus(locus);
|
|
216
260
|
|
|
217
261
|
// Change it to true after it receives it first locus object
|
|
@@ -229,6 +273,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
229
273
|
value: function parse(meeting, data) {
|
|
230
274
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
231
275
|
var eventType = data.eventType;
|
|
276
|
+
var locus = this.getTheLocusToUpdate(data.locus);
|
|
232
277
|
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus data: ".concat(eventType));
|
|
233
278
|
switch (eventType) {
|
|
234
279
|
case _constants.LOCUSEVENT.PARTICIPANT_JOIN:
|
|
@@ -245,15 +290,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
245
290
|
case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:
|
|
246
291
|
case _constants.LOCUSEVENT.FLOOR_GRANTED:
|
|
247
292
|
case _constants.LOCUSEVENT.FLOOR_RELEASED:
|
|
248
|
-
this.onFullLocus(
|
|
293
|
+
this.onFullLocus(locus, eventType);
|
|
249
294
|
break;
|
|
250
295
|
case _constants.LOCUSEVENT.DIFFERENCE:
|
|
251
|
-
this.handleLocusDelta(
|
|
296
|
+
this.handleLocusDelta(locus, meeting);
|
|
252
297
|
break;
|
|
253
298
|
default:
|
|
254
299
|
// Why will there be a event with no eventType ????
|
|
255
300
|
// we may not need this, we can get full locus
|
|
256
|
-
this.handleLocusDelta(
|
|
301
|
+
this.handleLocusDelta(locus, meeting);
|
|
257
302
|
}
|
|
258
303
|
}
|
|
259
304
|
|
|
@@ -277,18 +322,22 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
277
322
|
* @returns {object} null
|
|
278
323
|
* @memberof LocusInfo
|
|
279
324
|
*/
|
|
280
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
281
325
|
}, {
|
|
282
326
|
key: "onFullLocus",
|
|
283
327
|
value: function onFullLocus(locus, eventType) {
|
|
284
328
|
if (!locus) {
|
|
285
329
|
_loggerProxy.default.logger.error('Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.');
|
|
286
330
|
}
|
|
331
|
+
if (!this.locusParser.isNewFullLocus(locus)) {
|
|
332
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
287
335
|
this.updateParticipantDeltas(locus.participants);
|
|
288
336
|
this.scheduledMeeting = locus.meeting || null;
|
|
289
337
|
this.participants = locus.participants;
|
|
338
|
+
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
290
339
|
this.updateLocusInfo(locus);
|
|
291
|
-
this.updateParticipants(locus.participants);
|
|
340
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
292
341
|
this.isMeetingActive();
|
|
293
342
|
this.handleOneOnOneEvent(eventType);
|
|
294
343
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
@@ -340,8 +389,9 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
340
389
|
}, {
|
|
341
390
|
key: "onDeltaLocus",
|
|
342
391
|
value: function onDeltaLocus(locus) {
|
|
392
|
+
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
343
393
|
this.updateLocusInfo(locus);
|
|
344
|
-
this.updateParticipants(locus.participants);
|
|
394
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
345
395
|
this.isMeetingActive();
|
|
346
396
|
}
|
|
347
397
|
|
|
@@ -360,7 +410,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
360
410
|
// as it gets interpreted as if we have left the call
|
|
361
411
|
return;
|
|
362
412
|
}
|
|
363
|
-
this.updateControls(locus.controls);
|
|
413
|
+
this.updateControls(locus.controls, locus.self);
|
|
364
414
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
365
415
|
this.updateCreated(locus.created);
|
|
366
416
|
this.updateFullState(locus.fullState);
|
|
@@ -426,9 +476,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
426
476
|
if (this.fullState && this.fullState.state === _constants.LOCUS.STATE.INACTIVE) {
|
|
427
477
|
// TODO: update the meeting state
|
|
428
478
|
_loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.');
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
479
|
+
|
|
480
|
+
// @ts-ignore
|
|
481
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
482
|
+
name: 'client.call.remote-ended',
|
|
483
|
+
options: {
|
|
484
|
+
meetingId: this.meetingId
|
|
485
|
+
}
|
|
432
486
|
});
|
|
433
487
|
this.emitScoped({
|
|
434
488
|
file: 'locus-info',
|
|
@@ -438,9 +492,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
438
492
|
shouldLeave: false
|
|
439
493
|
});
|
|
440
494
|
} else if (partner.state === _constants.MEETING_STATE.STATES.LEFT && this.parsedLocus.self && (this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.DECLINED || this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.NOTIFIED || this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.JOINED)) {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
495
|
+
// @ts-ignore
|
|
496
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
497
|
+
name: 'client.call.remote-ended',
|
|
498
|
+
options: {
|
|
499
|
+
meetingId: this.meetingId
|
|
500
|
+
}
|
|
444
501
|
});
|
|
445
502
|
this.emitScoped({
|
|
446
503
|
file: 'locus-info',
|
|
@@ -451,9 +508,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
451
508
|
});
|
|
452
509
|
} else if (this.parsedLocus.self && this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.LEFT && (partner.state === _constants.MEETING_STATE.STATES.LEFT || partner.state === _constants.MEETING_STATE.STATES.DECLINED || partner.state === _constants.MEETING_STATE.STATES.NOTIFIED || partner.state === _constants.MEETING_STATE.STATES.IDLE) // Happens when user just joins and adds no Media
|
|
453
510
|
) {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
511
|
+
// @ts-ignore
|
|
512
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
513
|
+
name: 'client.call.remote-ended',
|
|
514
|
+
options: {
|
|
515
|
+
meetingId: this.meetingId
|
|
516
|
+
}
|
|
457
517
|
});
|
|
458
518
|
this.emitScoped({
|
|
459
519
|
file: 'locus-info',
|
|
@@ -468,9 +528,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
468
528
|
// @ts-ignore
|
|
469
529
|
this.fullState.state === _constants.LOCUS.STATE.TERMINATING)) {
|
|
470
530
|
_loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating');
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
531
|
+
|
|
532
|
+
// @ts-ignore
|
|
533
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
534
|
+
name: 'client.call.remote-ended',
|
|
535
|
+
options: {
|
|
536
|
+
meetingId: this.meetingId
|
|
537
|
+
}
|
|
474
538
|
});
|
|
475
539
|
this.emitScoped({
|
|
476
540
|
file: 'locus-info',
|
|
@@ -481,9 +545,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
481
545
|
});
|
|
482
546
|
} else if (this.fullState && this.fullState.removed) {
|
|
483
547
|
// user has been dropped from a meeting
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
548
|
+
|
|
549
|
+
// @ts-ignore
|
|
550
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
551
|
+
name: 'client.call.remote-ended',
|
|
552
|
+
options: {
|
|
553
|
+
meetingId: this.meetingId
|
|
554
|
+
}
|
|
487
555
|
});
|
|
488
556
|
this.emitScoped({
|
|
489
557
|
file: 'locus-info',
|
|
@@ -606,15 +674,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
606
674
|
}
|
|
607
675
|
|
|
608
676
|
/**
|
|
609
|
-
*
|
|
677
|
+
* update meeting's members
|
|
610
678
|
* @param {Object} participants new participants object
|
|
611
|
-
* @param {
|
|
679
|
+
* @param {Boolean} isReplace is replace the whole members
|
|
612
680
|
* @returns {Array} updatedParticipants
|
|
613
681
|
* @memberof LocusInfo
|
|
614
682
|
*/
|
|
615
683
|
}, {
|
|
616
684
|
key: "updateParticipants",
|
|
617
|
-
value: function updateParticipants(participants) {
|
|
685
|
+
value: function updateParticipants(participants, isReplace) {
|
|
618
686
|
var _this$parsedLocus$con;
|
|
619
687
|
this.emitScoped({
|
|
620
688
|
file: 'locus-info',
|
|
@@ -624,18 +692,20 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
624
692
|
recordingId: this.parsedLocus.controls && ((_this$parsedLocus$con = this.parsedLocus.controls.record) === null || _this$parsedLocus$con === void 0 ? void 0 : _this$parsedLocus$con.modifiedBy),
|
|
625
693
|
selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
|
|
626
694
|
selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
|
|
627
|
-
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId
|
|
695
|
+
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,
|
|
696
|
+
isReplace: isReplace
|
|
628
697
|
});
|
|
629
698
|
}
|
|
630
699
|
|
|
631
700
|
/**
|
|
632
701
|
* @param {Object} controls
|
|
702
|
+
* @param {Object} self
|
|
633
703
|
* @returns {undefined}
|
|
634
704
|
* @memberof LocusInfo
|
|
635
705
|
*/
|
|
636
706
|
}, {
|
|
637
707
|
key: "updateControls",
|
|
638
|
-
value: function updateControls(controls) {
|
|
708
|
+
value: function updateControls(controls, self) {
|
|
639
709
|
if (controls && !(0, _isEqual2.default)(this.controls, controls)) {
|
|
640
710
|
this.parsedLocus.controls = _controlsUtils.default.parse(controls);
|
|
641
711
|
var _ControlsUtils$getCon = _controlsUtils.default.getControls(this.controls, controls),
|
|
@@ -646,7 +716,73 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
646
716
|
hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,
|
|
647
717
|
hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,
|
|
648
718
|
hasBreakoutChanged = _ControlsUtils$getCon2.hasBreakoutChanged,
|
|
719
|
+
hasVideoEnabledChanged = _ControlsUtils$getCon2.hasVideoEnabledChanged,
|
|
720
|
+
hasMuteOnEntryChanged = _ControlsUtils$getCon2.hasMuteOnEntryChanged,
|
|
721
|
+
hasShareControlChanged = _ControlsUtils$getCon2.hasShareControlChanged,
|
|
722
|
+
hasDisallowUnmuteChanged = _ControlsUtils$getCon2.hasDisallowUnmuteChanged,
|
|
723
|
+
hasReactionsChanged = _ControlsUtils$getCon2.hasReactionsChanged,
|
|
724
|
+
hasReactionDisplayNamesChanged = _ControlsUtils$getCon2.hasReactionDisplayNamesChanged,
|
|
725
|
+
hasViewTheParticipantListChanged = _ControlsUtils$getCon2.hasViewTheParticipantListChanged,
|
|
726
|
+
hasRaiseHandChanged = _ControlsUtils$getCon2.hasRaiseHandChanged,
|
|
727
|
+
hasVideoChanged = _ControlsUtils$getCon2.hasVideoChanged,
|
|
728
|
+
hasInterpretationChanged = _ControlsUtils$getCon2.hasInterpretationChanged,
|
|
649
729
|
current = _ControlsUtils$getCon.current;
|
|
730
|
+
if (hasMuteOnEntryChanged) {
|
|
731
|
+
this.emitScoped({
|
|
732
|
+
file: 'locus-info',
|
|
733
|
+
function: 'updateControls'
|
|
734
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, {
|
|
735
|
+
state: current.muteOnEntry
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
if (hasShareControlChanged) {
|
|
739
|
+
this.emitScoped({
|
|
740
|
+
file: 'locus-info',
|
|
741
|
+
function: 'updateControls'
|
|
742
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, {
|
|
743
|
+
state: current.shareControl
|
|
744
|
+
});
|
|
745
|
+
}
|
|
746
|
+
if (hasDisallowUnmuteChanged) {
|
|
747
|
+
this.emitScoped({
|
|
748
|
+
file: 'locus-info',
|
|
749
|
+
function: 'updateControls'
|
|
750
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, {
|
|
751
|
+
state: current.disallowUnmute
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
if (hasReactionsChanged || hasReactionDisplayNamesChanged) {
|
|
755
|
+
this.emitScoped({
|
|
756
|
+
file: 'locus-info',
|
|
757
|
+
function: 'updateControls'
|
|
758
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, {
|
|
759
|
+
state: current.reactions
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
if (hasViewTheParticipantListChanged) {
|
|
763
|
+
this.emitScoped({
|
|
764
|
+
file: 'locus-info',
|
|
765
|
+
function: 'updateControls'
|
|
766
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, {
|
|
767
|
+
state: current.viewTheParticipantList
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
if (hasRaiseHandChanged) {
|
|
771
|
+
this.emitScoped({
|
|
772
|
+
file: 'locus-info',
|
|
773
|
+
function: 'updateControls'
|
|
774
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, {
|
|
775
|
+
state: current.raiseHand
|
|
776
|
+
});
|
|
777
|
+
}
|
|
778
|
+
if (hasVideoChanged) {
|
|
779
|
+
this.emitScoped({
|
|
780
|
+
file: 'locus-info',
|
|
781
|
+
function: 'updateControls'
|
|
782
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, {
|
|
783
|
+
state: current.video
|
|
784
|
+
});
|
|
785
|
+
}
|
|
650
786
|
if (hasRecordingChanged || hasRecordingPausedChanged) {
|
|
651
787
|
var state = null;
|
|
652
788
|
if (hasRecordingPausedChanged) {
|
|
@@ -691,6 +827,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
691
827
|
}
|
|
692
828
|
if (hasBreakoutChanged) {
|
|
693
829
|
var breakout = current.breakout;
|
|
830
|
+
breakout.breakoutMoveId = _selfUtils.default.getReplacedBreakoutMoveId(self, this.webex.internal.device.url);
|
|
694
831
|
this.emitScoped({
|
|
695
832
|
file: 'locus-info',
|
|
696
833
|
function: 'updateControls'
|
|
@@ -698,16 +835,41 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
698
835
|
breakout: breakout
|
|
699
836
|
});
|
|
700
837
|
}
|
|
838
|
+
if (hasInterpretationChanged) {
|
|
839
|
+
var interpretation = current.interpretation;
|
|
840
|
+
this.emitScoped({
|
|
841
|
+
file: 'locus-info',
|
|
842
|
+
function: 'updateControls'
|
|
843
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, {
|
|
844
|
+
interpretation: interpretation
|
|
845
|
+
});
|
|
846
|
+
}
|
|
701
847
|
if (hasEntryExitToneChanged) {
|
|
702
848
|
var entryExitTone = current.entryExitTone;
|
|
849
|
+
this.updateMeeting({
|
|
850
|
+
entryExitTone: entryExitTone
|
|
851
|
+
});
|
|
703
852
|
this.emitScoped({
|
|
704
853
|
file: 'locus-info',
|
|
705
854
|
function: 'updateControls'
|
|
706
855
|
}, _constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, {
|
|
707
856
|
entryExitTone: entryExitTone
|
|
708
857
|
});
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
// videoEnabled is handled differently than other controls,
|
|
861
|
+
// to fit with audio mute status logic
|
|
862
|
+
if (hasVideoEnabledChanged) {
|
|
863
|
+
var videoEnabled = current.videoEnabled;
|
|
709
864
|
this.updateMeeting({
|
|
710
|
-
|
|
865
|
+
unmuteVideoAllowed: videoEnabled
|
|
866
|
+
});
|
|
867
|
+
this.emitScoped({
|
|
868
|
+
file: 'locus-info',
|
|
869
|
+
function: 'updateControls'
|
|
870
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {
|
|
871
|
+
// muted: not part of locus.controls
|
|
872
|
+
unmuteAllowed: videoEnabled
|
|
711
873
|
});
|
|
712
874
|
}
|
|
713
875
|
this.controls = controls;
|
|
@@ -840,18 +1002,11 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
840
1002
|
}, {
|
|
841
1003
|
key: "updateMeetingInfo",
|
|
842
1004
|
value: function updateMeetingInfo(info, self) {
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
1005
|
+
var _this$parsedLocus$sel;
|
|
1006
|
+
var roles = self ? _selfUtils.default.getRoles(self) : ((_this$parsedLocus$sel = this.parsedLocus.self) === null || _this$parsedLocus$sel === void 0 ? void 0 : _this$parsedLocus$sel.roles) || [];
|
|
1007
|
+
if (info && !(0, _isEqual2.default)(this.info, info) || roles.length && !(0, _isEqual2.default)(this.roles, roles) && info) {
|
|
846
1008
|
var isJoined = _selfUtils.default.isJoined(self || this.parsedLocus.self);
|
|
847
1009
|
var parsedInfo = _infoUtils.default.getInfos(this.parsedLocus.info, info, roles, isJoined);
|
|
848
|
-
this.emitScoped({
|
|
849
|
-
file: 'locus-info',
|
|
850
|
-
function: 'updateMeetingInfo'
|
|
851
|
-
}, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, {
|
|
852
|
-
info: parsedInfo.current,
|
|
853
|
-
self: self
|
|
854
|
-
});
|
|
855
1010
|
if (parsedInfo.updates.isLocked) {
|
|
856
1011
|
this.emitScoped({
|
|
857
1012
|
file: 'locus-info',
|
|
@@ -868,7 +1023,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
868
1023
|
this.parsedLocus.info = parsedInfo.current;
|
|
869
1024
|
// Parses the info and adds necessary values
|
|
870
1025
|
this.updateMeeting(parsedInfo.current);
|
|
1026
|
+
this.emitScoped({
|
|
1027
|
+
file: 'locus-info',
|
|
1028
|
+
function: 'updateMeetingInfo'
|
|
1029
|
+
}, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED);
|
|
871
1030
|
}
|
|
1031
|
+
this.roles = roles;
|
|
872
1032
|
}
|
|
873
1033
|
|
|
874
1034
|
/**
|
|
@@ -907,6 +1067,8 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
907
1067
|
if (mediaShares && !(0, _isEqual2.default)(this.mediaShares, mediaShares)) {
|
|
908
1068
|
var parsedMediaShares = _mediaSharesUtils.default.getMediaShares(this.mediaShares, mediaShares);
|
|
909
1069
|
this.updateMeeting(parsedMediaShares.current);
|
|
1070
|
+
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
1071
|
+
this.mediaShares = mediaShares;
|
|
910
1072
|
this.emitScoped({
|
|
911
1073
|
file: 'locus-info',
|
|
912
1074
|
function: 'updateMediaShares'
|
|
@@ -914,8 +1076,6 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
914
1076
|
current: parsedMediaShares.current,
|
|
915
1077
|
previous: parsedMediaShares.previous
|
|
916
1078
|
});
|
|
917
|
-
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
918
|
-
this.mediaShares = mediaShares;
|
|
919
1079
|
}
|
|
920
1080
|
}
|
|
921
1081
|
|
|
@@ -994,6 +1154,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
994
1154
|
breakoutSessions: parsedSelves.current.breakoutSessions
|
|
995
1155
|
});
|
|
996
1156
|
}
|
|
1157
|
+
if (parsedSelves.updates.interpretationChanged) {
|
|
1158
|
+
this.emitScoped({
|
|
1159
|
+
file: 'locus-info',
|
|
1160
|
+
function: 'updateSelf'
|
|
1161
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED, {
|
|
1162
|
+
interpretation: parsedSelves.current.interpretation,
|
|
1163
|
+
selfParticipantId: parsedSelves.current.selfId
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
997
1166
|
if (parsedSelves.updates.isMediaInactiveOrReleased) {
|
|
998
1167
|
this.emitScoped({
|
|
999
1168
|
file: 'locus-info',
|
|
@@ -1008,6 +1177,26 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1008
1177
|
function: 'updateSelf'
|
|
1009
1178
|
}, _constants.LOCUSINFO.EVENTS.SELF_MODERATOR_CHANGED, self);
|
|
1010
1179
|
}
|
|
1180
|
+
if (parsedSelves.updates.isRolesChanged) {
|
|
1181
|
+
var _parsedSelves$previou, _parsedSelves$current;
|
|
1182
|
+
this.emitScoped({
|
|
1183
|
+
file: 'locus-info',
|
|
1184
|
+
function: 'updateSelf'
|
|
1185
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, {
|
|
1186
|
+
oldRoles: (_parsedSelves$previou = parsedSelves.previous) === null || _parsedSelves$previou === void 0 ? void 0 : _parsedSelves$previou.roles,
|
|
1187
|
+
newRoles: (_parsedSelves$current = parsedSelves.current) === null || _parsedSelves$current === void 0 ? void 0 : _parsedSelves$current.roles
|
|
1188
|
+
});
|
|
1189
|
+
}
|
|
1190
|
+
if (parsedSelves.updates.isVideoMutedByOthersChanged) {
|
|
1191
|
+
this.emitScoped({
|
|
1192
|
+
file: 'locus-info',
|
|
1193
|
+
function: 'updateSelf'
|
|
1194
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {
|
|
1195
|
+
muted: parsedSelves.current.remoteVideoMuted
|
|
1196
|
+
// unmuteAllowed: not part of .self
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1011
1200
|
if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
|
|
1012
1201
|
this.emitScoped({
|
|
1013
1202
|
file: 'locus-info',
|
|
@@ -1053,14 +1242,14 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1053
1242
|
_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, _selfUtils.default.getMediaStatus(self.mediaSessions));
|
|
1054
1243
|
}
|
|
1055
1244
|
if (parsedSelves.updates.audioStateChange || parsedSelves.updates.videoStateChange || parsedSelves.updates.shareStateChange) {
|
|
1056
|
-
var _parsedSelves$
|
|
1245
|
+
var _parsedSelves$current2, _parsedSelves$current3, _parsedSelves$current4;
|
|
1057
1246
|
this.emitScoped({
|
|
1058
1247
|
file: 'locus-info',
|
|
1059
1248
|
function: 'updateSelf'
|
|
1060
1249
|
}, _constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, {
|
|
1061
|
-
audioStatus: (_parsedSelves$
|
|
1062
|
-
videoStatus: (_parsedSelves$
|
|
1063
|
-
shareStatus: (_parsedSelves$
|
|
1250
|
+
audioStatus: (_parsedSelves$current2 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current2 === void 0 ? void 0 : _parsedSelves$current2.audio,
|
|
1251
|
+
videoStatus: (_parsedSelves$current3 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current3 === void 0 ? void 0 : _parsedSelves$current3.video,
|
|
1252
|
+
shareStatus: (_parsedSelves$current4 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current4 === void 0 ? void 0 : _parsedSelves$current4.share
|
|
1064
1253
|
});
|
|
1065
1254
|
}
|
|
1066
1255
|
if (parsedSelves.updates.isUserObserving) {
|
|
@@ -1185,6 +1374,112 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1185
1374
|
this.identities = identities;
|
|
1186
1375
|
}
|
|
1187
1376
|
}
|
|
1377
|
+
|
|
1378
|
+
/**
|
|
1379
|
+
* check the locus is main session's one or not, if is main session's, update main session cache
|
|
1380
|
+
* @param {Object} locus
|
|
1381
|
+
* @returns {undefined}
|
|
1382
|
+
* @memberof LocusInfo
|
|
1383
|
+
*/
|
|
1384
|
+
}, {
|
|
1385
|
+
key: "updateLocusCache",
|
|
1386
|
+
value: function updateLocusCache(locus) {
|
|
1387
|
+
var isMainSessionDTO = _controlsUtils.default.isMainSessionDTO(locus);
|
|
1388
|
+
if (isMainSessionDTO) {
|
|
1389
|
+
this.updateMainSessionLocusCache(locus);
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
/**
|
|
1394
|
+
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
1395
|
+
* if join breakout from main session, need to query main locus url (if response with 403 means no privilege, need to clear the cache)
|
|
1396
|
+
* @param {Object} newLocus
|
|
1397
|
+
* @returns {Object}
|
|
1398
|
+
* @memberof LocusInfo
|
|
1399
|
+
*/
|
|
1400
|
+
}, {
|
|
1401
|
+
key: "getTheLocusToUpdate",
|
|
1402
|
+
value: function getTheLocusToUpdate(newLocus) {
|
|
1403
|
+
var switchStatus = _controlsUtils.default.getSessionSwitchStatus(this.controls, newLocus === null || newLocus === void 0 ? void 0 : newLocus.controls);
|
|
1404
|
+
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
|
1405
|
+
return (0, _cloneDeep2.default)(this.mainSessionLocusCache);
|
|
1406
|
+
}
|
|
1407
|
+
if (switchStatus.isJoinToBreakout) {
|
|
1408
|
+
this.emitScoped({
|
|
1409
|
+
file: 'locus-info',
|
|
1410
|
+
function: 'updateControls'
|
|
1411
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN, {
|
|
1412
|
+
mainLocusUrl: this.url
|
|
1413
|
+
});
|
|
1414
|
+
}
|
|
1415
|
+
return newLocus;
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
/**
|
|
1419
|
+
* merge participants by participant id
|
|
1420
|
+
* @param {Array} participants
|
|
1421
|
+
* @param {Array} sourceParticipants
|
|
1422
|
+
* @returns {Array} merged participants
|
|
1423
|
+
* @memberof LocusInfo
|
|
1424
|
+
*/
|
|
1425
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1426
|
+
}, {
|
|
1427
|
+
key: "mergeParticipants",
|
|
1428
|
+
value: function mergeParticipants(participants, sourceParticipants) {
|
|
1429
|
+
if (!sourceParticipants || !sourceParticipants.length) return participants;
|
|
1430
|
+
if (!participants || !participants.length) {
|
|
1431
|
+
return sourceParticipants;
|
|
1432
|
+
}
|
|
1433
|
+
sourceParticipants.forEach(function (participant) {
|
|
1434
|
+
var existIndex = participants.findIndex(function (p) {
|
|
1435
|
+
return p.id === participant.id;
|
|
1436
|
+
});
|
|
1437
|
+
if (existIndex > -1) {
|
|
1438
|
+
participants.splice(existIndex, 1, participant);
|
|
1439
|
+
} else {
|
|
1440
|
+
participants.push(participant);
|
|
1441
|
+
}
|
|
1442
|
+
});
|
|
1443
|
+
return participants;
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
/**
|
|
1447
|
+
* need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
|
|
1448
|
+
* @param {Object} mainLocus
|
|
1449
|
+
* @returns {undefined}
|
|
1450
|
+
* @memberof LocusInfo
|
|
1451
|
+
*/
|
|
1452
|
+
}, {
|
|
1453
|
+
key: "updateMainSessionLocusCache",
|
|
1454
|
+
value: function updateMainSessionLocusCache(mainLocus) {
|
|
1455
|
+
var _this5 = this;
|
|
1456
|
+
if (!mainLocus) {
|
|
1457
|
+
return;
|
|
1458
|
+
}
|
|
1459
|
+
var locusClone = (0, _cloneDeep2.default)(mainLocus);
|
|
1460
|
+
if (this.mainSessionLocusCache) {
|
|
1461
|
+
// shallow merge and do special merge for participants
|
|
1462
|
+
(0, _assignWith2.default)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {
|
|
1463
|
+
if (key === 'participants') {
|
|
1464
|
+
return _this5.mergeParticipants(objValue, srcValue);
|
|
1465
|
+
}
|
|
1466
|
+
return srcValue || objValue;
|
|
1467
|
+
});
|
|
1468
|
+
} else {
|
|
1469
|
+
this.mainSessionLocusCache = locusClone;
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
/**
|
|
1474
|
+
* clear main session cache
|
|
1475
|
+
* @returns {undefined}
|
|
1476
|
+
* @memberof LocusInfo
|
|
1477
|
+
*/
|
|
1478
|
+
}, {
|
|
1479
|
+
key: "clearMainSessionLocusCache",
|
|
1480
|
+
value: function clearMainSessionLocusCache() {
|
|
1481
|
+
this.mainSessionLocusCache = null;
|
|
1482
|
+
}
|
|
1188
1483
|
}]);
|
|
1189
1484
|
return LocusInfo;
|
|
1190
1485
|
}(_eventsScope.default);
|