@webex/plugin-meetings 2.60.0 → 2.60.1-next.2
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 +46 -8
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +20 -8
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +6 -7
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +217 -97
- package/dist/constants.js +416 -441
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -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.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4732 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +93 -21
- package/dist/meetings/index.js +490 -127
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +13 -1
- package/dist/member/index.js +45 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +120 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +56 -11
- package/dist/members/index.js +174 -47
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +67 -11
- package/dist/members/request.js +102 -54
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -284
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +61 -95
- package/dist/reachability/index.js +300 -393
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +50 -30
- package/dist/statsAnalyzer/index.js +435 -510
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +120 -83
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +38 -26
- 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 +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +36 -12
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +6 -7
- package/src/constants.ts +244 -97
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -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 +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3944 -2489
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +487 -126
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +43 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +125 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +187 -52
- package/src/members/request.ts +87 -27
- package/src/members/util.ts +332 -291
- package/src/metrics/constants.ts +15 -6
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +243 -347
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +477 -643
- package/src/statsAnalyzer/mqaUtil.ts +115 -114
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- 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 +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- 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 +1790 -0
- 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 +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRetry.ts +131 -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 +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8187 -2769
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1313 -243
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +32 -9
- package/test/unit/spec/member/util.js +499 -61
- package/test/unit/spec/members/index.js +394 -5
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +173 -38
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +531 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +162 -24
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -76
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +261 -167
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- 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 +7 -3
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
- /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
package/dist/locus-info/index.js
CHANGED
|
@@ -15,12 +15,10 @@ 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
|
|
18
|
+
var _lodash = require("lodash");
|
|
19
19
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
20
20
|
var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
|
|
21
21
|
var _constants = require("../constants");
|
|
22
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
23
|
-
var _config = require("../metrics/config");
|
|
24
22
|
var _infoUtils = _interopRequireDefault(require("./infoUtils"));
|
|
25
23
|
var _fullState = _interopRequireDefault(require("./fullState"));
|
|
26
24
|
var _selfUtils = _interopRequireDefault(require("./selfUtils"));
|
|
@@ -29,6 +27,8 @@ var _controlsUtils = _interopRequireDefault(require("./controlsUtils"));
|
|
|
29
27
|
var _embeddedAppsUtils = _interopRequireDefault(require("./embeddedAppsUtils"));
|
|
30
28
|
var _mediaSharesUtils = _interopRequireDefault(require("./mediaSharesUtils"));
|
|
31
29
|
var _parser = _interopRequireDefault(require("./parser"));
|
|
30
|
+
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
31
|
+
var _constants2 = _interopRequireDefault(require("../metrics/constants"));
|
|
32
32
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
33
33
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
34
34
|
/**
|
|
@@ -37,9 +37,16 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
37
37
|
* @private
|
|
38
38
|
* @class LocusInfo
|
|
39
39
|
*/
|
|
40
|
-
var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
40
|
+
var LocusInfo = exports.default = /*#__PURE__*/function (_EventsScope) {
|
|
41
41
|
(0, _inherits2.default)(LocusInfo, _EventsScope);
|
|
42
42
|
var _super = _createSuper(LocusInfo);
|
|
43
|
+
/**
|
|
44
|
+
* Constructor
|
|
45
|
+
* @param {function} updateMeeting callback to update the meeting object from an object
|
|
46
|
+
* @param {object} webex
|
|
47
|
+
* @param {string} meetingId
|
|
48
|
+
* @returns {undefined}
|
|
49
|
+
*/
|
|
43
50
|
function LocusInfo(updateMeeting, webex, meetingId) {
|
|
44
51
|
var _this;
|
|
45
52
|
(0, _classCallCheck2.default)(this, LocusInfo);
|
|
@@ -68,10 +75,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
68
75
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fullState", void 0);
|
|
69
76
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "host", void 0);
|
|
70
77
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "info", void 0);
|
|
78
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roles", void 0);
|
|
71
79
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaShares", void 0);
|
|
72
80
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "replace", void 0);
|
|
73
81
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "url", void 0);
|
|
74
82
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "services", void 0);
|
|
83
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mainSessionLocusCache", void 0);
|
|
75
84
|
_this.parsedLocus = {
|
|
76
85
|
states: []
|
|
77
86
|
};
|
|
@@ -85,38 +94,95 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
85
94
|
}
|
|
86
95
|
|
|
87
96
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* @param {Locus} locus
|
|
97
|
+
* 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.
|
|
98
|
+
*
|
|
91
99
|
* @param {Meeting} meeting
|
|
92
100
|
* @returns {undefined}
|
|
93
101
|
*/
|
|
94
102
|
(0, _createClass2.default)(LocusInfo, [{
|
|
103
|
+
key: "doLocusSync",
|
|
104
|
+
value: function doLocusSync(meeting) {
|
|
105
|
+
var _this2 = this;
|
|
106
|
+
var isDelta;
|
|
107
|
+
var url;
|
|
108
|
+
if (this.locusParser.workingCopy.syncUrl) {
|
|
109
|
+
url = this.locusParser.workingCopy.syncUrl;
|
|
110
|
+
isDelta = true;
|
|
111
|
+
} else {
|
|
112
|
+
url = meeting.locusUrl;
|
|
113
|
+
isDelta = false;
|
|
114
|
+
}
|
|
115
|
+
_loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> doing Locus sync (getting ".concat(isDelta ? 'delta' : 'full', " DTO)"));
|
|
116
|
+
|
|
117
|
+
// return value ignored on purpose
|
|
118
|
+
meeting.meetingRequest.getLocusDTO({
|
|
119
|
+
url: url
|
|
120
|
+
}).catch(function (e) {
|
|
121
|
+
if (isDelta) {
|
|
122
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> delta sync failed, falling back to full sync');
|
|
123
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.LOCUS_DELTA_SYNC_FAILED, {
|
|
124
|
+
correlationId: meeting.correlationId,
|
|
125
|
+
url: url,
|
|
126
|
+
reason: e.message,
|
|
127
|
+
errorName: e.name,
|
|
128
|
+
stack: e.stack,
|
|
129
|
+
code: e.code
|
|
130
|
+
});
|
|
131
|
+
isDelta = false;
|
|
132
|
+
return meeting.meetingRequest.getLocusDTO({
|
|
133
|
+
url: meeting.locusUrl
|
|
134
|
+
}).catch(function (err) {
|
|
135
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
|
136
|
+
_this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
137
|
+
throw err;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
|
141
|
+
_this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
142
|
+
throw e;
|
|
143
|
+
}).then(function (res) {
|
|
144
|
+
if (isDelta) {
|
|
145
|
+
if (!(0, _lodash.isEmpty)(res.body)) {
|
|
146
|
+
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
|
147
|
+
} else {
|
|
148
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
meeting.locusInfo.onFullLocus(res.body);
|
|
152
|
+
}
|
|
153
|
+
// Notify parser to resume processing delta events.
|
|
154
|
+
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
|
155
|
+
_this2.locusParser.resume();
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Apply locus delta data to meeting
|
|
161
|
+
* @param {string} action Locus delta action
|
|
162
|
+
* @param {Locus} locus
|
|
163
|
+
* @param {Meeting} meeting
|
|
164
|
+
* @returns {undefined}
|
|
165
|
+
*/
|
|
166
|
+
}, {
|
|
95
167
|
key: "applyLocusDeltaData",
|
|
96
168
|
value: function applyLocusDeltaData(action, locus, meeting) {
|
|
97
|
-
var _this2 = this;
|
|
98
169
|
var _LocusDeltaParser$loc = _parser.default.loci,
|
|
99
170
|
DESYNC = _LocusDeltaParser$loc.DESYNC,
|
|
100
171
|
USE_CURRENT = _LocusDeltaParser$loc.USE_CURRENT,
|
|
101
|
-
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING
|
|
172
|
+
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING,
|
|
173
|
+
WAIT = _LocusDeltaParser$loc.WAIT,
|
|
174
|
+
LOCUS_URL_CHANGED = _LocusDeltaParser$loc.LOCUS_URL_CHANGED;
|
|
102
175
|
switch (action) {
|
|
103
176
|
case USE_INCOMING:
|
|
104
177
|
meeting.locusInfo.onDeltaLocus(locus);
|
|
105
178
|
break;
|
|
106
179
|
case USE_CURRENT:
|
|
107
|
-
|
|
108
|
-
|
|
180
|
+
case WAIT:
|
|
181
|
+
// do nothing
|
|
109
182
|
break;
|
|
110
183
|
case DESYNC:
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
});
|
|
184
|
+
case LOCUS_URL_CHANGED:
|
|
185
|
+
this.doLocusSync(meeting);
|
|
120
186
|
break;
|
|
121
187
|
default:
|
|
122
188
|
_loggerProxy.default.logger.info("Locus-info:index#applyLocusDeltaData --> Unknown locus delta action: ".concat(action));
|
|
@@ -186,13 +252,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
186
252
|
* @member LocusInfo
|
|
187
253
|
*/
|
|
188
254
|
this.deltaParticipants = [];
|
|
189
|
-
|
|
255
|
+
this.updateLocusCache(locus);
|
|
190
256
|
// above section only updates the locusInfo object
|
|
191
257
|
// The below section makes sure it updates the locusInfo as well as updates the meeting object
|
|
192
258
|
this.updateParticipants(locus.participants);
|
|
193
259
|
// For 1:1 space meeting the conversation Url does not exist in locus.conversation
|
|
194
260
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
195
|
-
this.updateControls(locus.controls);
|
|
261
|
+
this.updateControls(locus.controls, locus.self);
|
|
196
262
|
this.updateLocusUrl(locus.url);
|
|
197
263
|
this.updateFullState(locus.fullState);
|
|
198
264
|
this.updateMeetingInfo(locus.info);
|
|
@@ -212,6 +278,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
212
278
|
}, {
|
|
213
279
|
key: "initialSetup",
|
|
214
280
|
value: function initialSetup(locus) {
|
|
281
|
+
this.updateLocusCache(locus);
|
|
215
282
|
this.onFullLocus(locus);
|
|
216
283
|
|
|
217
284
|
// Change it to true after it receives it first locus object
|
|
@@ -229,6 +296,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
229
296
|
value: function parse(meeting, data) {
|
|
230
297
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
231
298
|
var eventType = data.eventType;
|
|
299
|
+
var locus = this.getTheLocusToUpdate(data.locus);
|
|
232
300
|
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus data: ".concat(eventType));
|
|
233
301
|
switch (eventType) {
|
|
234
302
|
case _constants.LOCUSEVENT.PARTICIPANT_JOIN:
|
|
@@ -245,15 +313,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
245
313
|
case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:
|
|
246
314
|
case _constants.LOCUSEVENT.FLOOR_GRANTED:
|
|
247
315
|
case _constants.LOCUSEVENT.FLOOR_RELEASED:
|
|
248
|
-
this.onFullLocus(
|
|
316
|
+
this.onFullLocus(locus, eventType);
|
|
249
317
|
break;
|
|
250
318
|
case _constants.LOCUSEVENT.DIFFERENCE:
|
|
251
|
-
this.handleLocusDelta(
|
|
319
|
+
this.handleLocusDelta(locus, meeting);
|
|
252
320
|
break;
|
|
253
321
|
default:
|
|
254
322
|
// Why will there be a event with no eventType ????
|
|
255
323
|
// we may not need this, we can get full locus
|
|
256
|
-
this.handleLocusDelta(
|
|
324
|
+
this.handleLocusDelta(locus, meeting);
|
|
257
325
|
}
|
|
258
326
|
}
|
|
259
327
|
|
|
@@ -277,18 +345,22 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
277
345
|
* @returns {object} null
|
|
278
346
|
* @memberof LocusInfo
|
|
279
347
|
*/
|
|
280
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
281
348
|
}, {
|
|
282
349
|
key: "onFullLocus",
|
|
283
350
|
value: function onFullLocus(locus, eventType) {
|
|
284
351
|
if (!locus) {
|
|
285
352
|
_loggerProxy.default.logger.error('Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.');
|
|
286
353
|
}
|
|
354
|
+
if (!this.locusParser.isNewFullLocus(locus)) {
|
|
355
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
287
358
|
this.updateParticipantDeltas(locus.participants);
|
|
288
359
|
this.scheduledMeeting = locus.meeting || null;
|
|
289
360
|
this.participants = locus.participants;
|
|
361
|
+
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
290
362
|
this.updateLocusInfo(locus);
|
|
291
|
-
this.updateParticipants(locus.participants);
|
|
363
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
292
364
|
this.isMeetingActive();
|
|
293
365
|
this.handleOneOnOneEvent(eventType);
|
|
294
366
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
@@ -340,8 +412,9 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
340
412
|
}, {
|
|
341
413
|
key: "onDeltaLocus",
|
|
342
414
|
value: function onDeltaLocus(locus) {
|
|
415
|
+
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
343
416
|
this.updateLocusInfo(locus);
|
|
344
|
-
this.updateParticipants(locus.participants);
|
|
417
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
345
418
|
this.isMeetingActive();
|
|
346
419
|
}
|
|
347
420
|
|
|
@@ -353,8 +426,14 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
353
426
|
}, {
|
|
354
427
|
key: "updateLocusInfo",
|
|
355
428
|
value: function updateLocusInfo(locus) {
|
|
356
|
-
var _locus$links2;
|
|
357
|
-
|
|
429
|
+
var _locus$self, _locus$self2, _locus$links2;
|
|
430
|
+
if (((_locus$self = locus.self) === null || _locus$self === void 0 ? void 0 : _locus$self.reason) === 'MOVED' && ((_locus$self2 = locus.self) === null || _locus$self2 === void 0 ? void 0 : _locus$self2.state) === 'LEFT') {
|
|
431
|
+
// When moved to a breakout session locus sends a message for the previous locus
|
|
432
|
+
// indicating that we have been moved. It isn't helpful to continue parsing this
|
|
433
|
+
// as it gets interpreted as if we have left the call
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
this.updateControls(locus.controls, locus.self);
|
|
358
437
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
359
438
|
this.updateCreated(locus.created);
|
|
360
439
|
this.updateFullState(locus.fullState);
|
|
@@ -420,9 +499,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
420
499
|
if (this.fullState && this.fullState.state === _constants.LOCUS.STATE.INACTIVE) {
|
|
421
500
|
// TODO: update the meeting state
|
|
422
501
|
_loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.');
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
502
|
+
|
|
503
|
+
// @ts-ignore
|
|
504
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
505
|
+
name: 'client.call.remote-ended',
|
|
506
|
+
options: {
|
|
507
|
+
meetingId: this.meetingId
|
|
508
|
+
}
|
|
426
509
|
});
|
|
427
510
|
this.emitScoped({
|
|
428
511
|
file: 'locus-info',
|
|
@@ -432,9 +515,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
432
515
|
shouldLeave: false
|
|
433
516
|
});
|
|
434
517
|
} 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)) {
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
518
|
+
// @ts-ignore
|
|
519
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
520
|
+
name: 'client.call.remote-ended',
|
|
521
|
+
options: {
|
|
522
|
+
meetingId: this.meetingId
|
|
523
|
+
}
|
|
438
524
|
});
|
|
439
525
|
this.emitScoped({
|
|
440
526
|
file: 'locus-info',
|
|
@@ -445,9 +531,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
445
531
|
});
|
|
446
532
|
} 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
|
|
447
533
|
) {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
534
|
+
// @ts-ignore
|
|
535
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
536
|
+
name: 'client.call.remote-ended',
|
|
537
|
+
options: {
|
|
538
|
+
meetingId: this.meetingId
|
|
539
|
+
}
|
|
451
540
|
});
|
|
452
541
|
this.emitScoped({
|
|
453
542
|
file: 'locus-info',
|
|
@@ -462,9 +551,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
462
551
|
// @ts-ignore
|
|
463
552
|
this.fullState.state === _constants.LOCUS.STATE.TERMINATING)) {
|
|
464
553
|
_loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating');
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
554
|
+
|
|
555
|
+
// @ts-ignore
|
|
556
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
557
|
+
name: 'client.call.remote-ended',
|
|
558
|
+
options: {
|
|
559
|
+
meetingId: this.meetingId
|
|
560
|
+
}
|
|
468
561
|
});
|
|
469
562
|
this.emitScoped({
|
|
470
563
|
file: 'locus-info',
|
|
@@ -475,9 +568,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
475
568
|
});
|
|
476
569
|
} else if (this.fullState && this.fullState.removed) {
|
|
477
570
|
// user has been dropped from a meeting
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
571
|
+
|
|
572
|
+
// @ts-ignore
|
|
573
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
574
|
+
name: 'client.call.remote-ended',
|
|
575
|
+
options: {
|
|
576
|
+
meetingId: this.meetingId
|
|
577
|
+
}
|
|
481
578
|
});
|
|
482
579
|
this.emitScoped({
|
|
483
580
|
file: 'locus-info',
|
|
@@ -600,15 +697,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
600
697
|
}
|
|
601
698
|
|
|
602
699
|
/**
|
|
603
|
-
*
|
|
700
|
+
* update meeting's members
|
|
604
701
|
* @param {Object} participants new participants object
|
|
605
|
-
* @param {
|
|
702
|
+
* @param {Boolean} isReplace is replace the whole members
|
|
606
703
|
* @returns {Array} updatedParticipants
|
|
607
704
|
* @memberof LocusInfo
|
|
608
705
|
*/
|
|
609
706
|
}, {
|
|
610
707
|
key: "updateParticipants",
|
|
611
|
-
value: function updateParticipants(participants) {
|
|
708
|
+
value: function updateParticipants(participants, isReplace) {
|
|
612
709
|
var _this$parsedLocus$con;
|
|
613
710
|
this.emitScoped({
|
|
614
711
|
file: 'locus-info',
|
|
@@ -618,19 +715,21 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
618
715
|
recordingId: this.parsedLocus.controls && ((_this$parsedLocus$con = this.parsedLocus.controls.record) === null || _this$parsedLocus$con === void 0 ? void 0 : _this$parsedLocus$con.modifiedBy),
|
|
619
716
|
selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
|
|
620
717
|
selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
|
|
621
|
-
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId
|
|
718
|
+
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,
|
|
719
|
+
isReplace: isReplace
|
|
622
720
|
});
|
|
623
721
|
}
|
|
624
722
|
|
|
625
723
|
/**
|
|
626
724
|
* @param {Object} controls
|
|
725
|
+
* @param {Object} self
|
|
627
726
|
* @returns {undefined}
|
|
628
727
|
* @memberof LocusInfo
|
|
629
728
|
*/
|
|
630
729
|
}, {
|
|
631
730
|
key: "updateControls",
|
|
632
|
-
value: function updateControls(controls) {
|
|
633
|
-
if (controls && !(0,
|
|
731
|
+
value: function updateControls(controls, self) {
|
|
732
|
+
if (controls && !(0, _lodash.isEqual)(this.controls, controls)) {
|
|
634
733
|
this.parsedLocus.controls = _controlsUtils.default.parse(controls);
|
|
635
734
|
var _ControlsUtils$getCon = _controlsUtils.default.getControls(this.controls, controls),
|
|
636
735
|
_ControlsUtils$getCon2 = _ControlsUtils$getCon.updates,
|
|
@@ -639,7 +738,74 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
639
738
|
hasMeetingContainerChanged = _ControlsUtils$getCon2.hasMeetingContainerChanged,
|
|
640
739
|
hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,
|
|
641
740
|
hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,
|
|
741
|
+
hasBreakoutChanged = _ControlsUtils$getCon2.hasBreakoutChanged,
|
|
742
|
+
hasVideoEnabledChanged = _ControlsUtils$getCon2.hasVideoEnabledChanged,
|
|
743
|
+
hasMuteOnEntryChanged = _ControlsUtils$getCon2.hasMuteOnEntryChanged,
|
|
744
|
+
hasShareControlChanged = _ControlsUtils$getCon2.hasShareControlChanged,
|
|
745
|
+
hasDisallowUnmuteChanged = _ControlsUtils$getCon2.hasDisallowUnmuteChanged,
|
|
746
|
+
hasReactionsChanged = _ControlsUtils$getCon2.hasReactionsChanged,
|
|
747
|
+
hasReactionDisplayNamesChanged = _ControlsUtils$getCon2.hasReactionDisplayNamesChanged,
|
|
748
|
+
hasViewTheParticipantListChanged = _ControlsUtils$getCon2.hasViewTheParticipantListChanged,
|
|
749
|
+
hasRaiseHandChanged = _ControlsUtils$getCon2.hasRaiseHandChanged,
|
|
750
|
+
hasVideoChanged = _ControlsUtils$getCon2.hasVideoChanged,
|
|
751
|
+
hasInterpretationChanged = _ControlsUtils$getCon2.hasInterpretationChanged,
|
|
642
752
|
current = _ControlsUtils$getCon.current;
|
|
753
|
+
if (hasMuteOnEntryChanged) {
|
|
754
|
+
this.emitScoped({
|
|
755
|
+
file: 'locus-info',
|
|
756
|
+
function: 'updateControls'
|
|
757
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, {
|
|
758
|
+
state: current.muteOnEntry
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
if (hasShareControlChanged) {
|
|
762
|
+
this.emitScoped({
|
|
763
|
+
file: 'locus-info',
|
|
764
|
+
function: 'updateControls'
|
|
765
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, {
|
|
766
|
+
state: current.shareControl
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
if (hasDisallowUnmuteChanged) {
|
|
770
|
+
this.emitScoped({
|
|
771
|
+
file: 'locus-info',
|
|
772
|
+
function: 'updateControls'
|
|
773
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, {
|
|
774
|
+
state: current.disallowUnmute
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
if (hasReactionsChanged || hasReactionDisplayNamesChanged) {
|
|
778
|
+
this.emitScoped({
|
|
779
|
+
file: 'locus-info',
|
|
780
|
+
function: 'updateControls'
|
|
781
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, {
|
|
782
|
+
state: current.reactions
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
if (hasViewTheParticipantListChanged) {
|
|
786
|
+
this.emitScoped({
|
|
787
|
+
file: 'locus-info',
|
|
788
|
+
function: 'updateControls'
|
|
789
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, {
|
|
790
|
+
state: current.viewTheParticipantList
|
|
791
|
+
});
|
|
792
|
+
}
|
|
793
|
+
if (hasRaiseHandChanged) {
|
|
794
|
+
this.emitScoped({
|
|
795
|
+
file: 'locus-info',
|
|
796
|
+
function: 'updateControls'
|
|
797
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, {
|
|
798
|
+
state: current.raiseHand
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
if (hasVideoChanged) {
|
|
802
|
+
this.emitScoped({
|
|
803
|
+
file: 'locus-info',
|
|
804
|
+
function: 'updateControls'
|
|
805
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, {
|
|
806
|
+
state: current.video
|
|
807
|
+
});
|
|
808
|
+
}
|
|
643
809
|
if (hasRecordingChanged || hasRecordingPausedChanged) {
|
|
644
810
|
var state = null;
|
|
645
811
|
if (hasRecordingPausedChanged) {
|
|
@@ -682,16 +848,51 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
682
848
|
caption: caption
|
|
683
849
|
});
|
|
684
850
|
}
|
|
851
|
+
if (hasBreakoutChanged) {
|
|
852
|
+
var breakout = current.breakout;
|
|
853
|
+
breakout.breakoutMoveId = _selfUtils.default.getReplacedBreakoutMoveId(self, this.webex.internal.device.url);
|
|
854
|
+
this.emitScoped({
|
|
855
|
+
file: 'locus-info',
|
|
856
|
+
function: 'updateControls'
|
|
857
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED, {
|
|
858
|
+
breakout: breakout
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
if (hasInterpretationChanged) {
|
|
862
|
+
var interpretation = current.interpretation;
|
|
863
|
+
this.emitScoped({
|
|
864
|
+
file: 'locus-info',
|
|
865
|
+
function: 'updateControls'
|
|
866
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, {
|
|
867
|
+
interpretation: interpretation
|
|
868
|
+
});
|
|
869
|
+
}
|
|
685
870
|
if (hasEntryExitToneChanged) {
|
|
686
871
|
var entryExitTone = current.entryExitTone;
|
|
872
|
+
this.updateMeeting({
|
|
873
|
+
entryExitTone: entryExitTone
|
|
874
|
+
});
|
|
687
875
|
this.emitScoped({
|
|
688
876
|
file: 'locus-info',
|
|
689
877
|
function: 'updateControls'
|
|
690
878
|
}, _constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, {
|
|
691
879
|
entryExitTone: entryExitTone
|
|
692
880
|
});
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
// videoEnabled is handled differently than other controls,
|
|
884
|
+
// to fit with audio mute status logic
|
|
885
|
+
if (hasVideoEnabledChanged) {
|
|
886
|
+
var videoEnabled = current.videoEnabled;
|
|
693
887
|
this.updateMeeting({
|
|
694
|
-
|
|
888
|
+
unmuteVideoAllowed: videoEnabled
|
|
889
|
+
});
|
|
890
|
+
this.emitScoped({
|
|
891
|
+
file: 'locus-info',
|
|
892
|
+
function: 'updateControls'
|
|
893
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {
|
|
894
|
+
// muted: not part of locus.controls
|
|
895
|
+
unmuteAllowed: videoEnabled
|
|
695
896
|
});
|
|
696
897
|
}
|
|
697
898
|
this.controls = controls;
|
|
@@ -707,12 +908,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
707
908
|
}, {
|
|
708
909
|
key: "updateConversationUrl",
|
|
709
910
|
value: function updateConversationUrl(conversationUrl, info) {
|
|
710
|
-
if (conversationUrl && !(0,
|
|
911
|
+
if (conversationUrl && !(0, _lodash.isEqual)(this.conversationUrl, conversationUrl)) {
|
|
711
912
|
this.conversationUrl = conversationUrl;
|
|
712
913
|
this.updateMeeting({
|
|
713
914
|
conversationUrl: conversationUrl
|
|
714
915
|
});
|
|
715
|
-
} else if (info && info.conversationUrl && !(0,
|
|
916
|
+
} else if (info && info.conversationUrl && !(0, _lodash.isEqual)(this.conversationUrl, info.conversationUrl)) {
|
|
716
917
|
this.conversationUrl = info.conversationUrl;
|
|
717
918
|
this.updateMeeting({
|
|
718
919
|
conversationUrl: info.conversationUrl
|
|
@@ -728,7 +929,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
728
929
|
}, {
|
|
729
930
|
key: "updateCreated",
|
|
730
931
|
value: function updateCreated(created) {
|
|
731
|
-
if (created && !(0,
|
|
932
|
+
if (created && !(0, _lodash.isEqual)(this.created, created)) {
|
|
732
933
|
this.created = created;
|
|
733
934
|
}
|
|
734
935
|
}
|
|
@@ -741,7 +942,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
741
942
|
}, {
|
|
742
943
|
key: "updateServices",
|
|
743
944
|
value: function updateServices(services) {
|
|
744
|
-
if (services && !(0,
|
|
945
|
+
if (services && !(0, _lodash.isEqual)(this.services, services)) {
|
|
745
946
|
this.services = services;
|
|
746
947
|
this.emitScoped({
|
|
747
948
|
file: 'locus-info',
|
|
@@ -760,7 +961,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
760
961
|
}, {
|
|
761
962
|
key: "updateFullState",
|
|
762
963
|
value: function updateFullState(fullState) {
|
|
763
|
-
if (fullState && !(0,
|
|
964
|
+
if (fullState && !(0, _lodash.isEqual)(this.fullState, fullState)) {
|
|
764
965
|
var result = _fullState.default.getFullState(this.fullState, fullState);
|
|
765
966
|
this.updateMeeting(result.current);
|
|
766
967
|
if (result.updates.meetingStateChangedTo) {
|
|
@@ -795,7 +996,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
795
996
|
}, {
|
|
796
997
|
key: "updateHostInfo",
|
|
797
998
|
value: function updateHostInfo(host) {
|
|
798
|
-
if (host && !(0,
|
|
999
|
+
if (host && !(0, _lodash.isEqual)(this.host, host)) {
|
|
799
1000
|
var parsedHosts = _hostUtils.default.getHosts(this.host, host);
|
|
800
1001
|
this.updateMeeting(parsedHosts.current);
|
|
801
1002
|
this.parsedLocus.host = parsedHosts.current;
|
|
@@ -824,18 +1025,11 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
824
1025
|
}, {
|
|
825
1026
|
key: "updateMeetingInfo",
|
|
826
1027
|
value: function updateMeetingInfo(info, self) {
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
1028
|
+
var _this$parsedLocus$sel;
|
|
1029
|
+
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) || [];
|
|
1030
|
+
if (info && !(0, _lodash.isEqual)(this.info, info) || roles.length && !(0, _lodash.isEqual)(this.roles, roles) && info) {
|
|
830
1031
|
var isJoined = _selfUtils.default.isJoined(self || this.parsedLocus.self);
|
|
831
1032
|
var parsedInfo = _infoUtils.default.getInfos(this.parsedLocus.info, info, roles, isJoined);
|
|
832
|
-
this.emitScoped({
|
|
833
|
-
file: 'locus-info',
|
|
834
|
-
function: 'updateMeetingInfo'
|
|
835
|
-
}, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, {
|
|
836
|
-
info: parsedInfo.current,
|
|
837
|
-
self: self
|
|
838
|
-
});
|
|
839
1033
|
if (parsedInfo.updates.isLocked) {
|
|
840
1034
|
this.emitScoped({
|
|
841
1035
|
file: 'locus-info',
|
|
@@ -852,7 +1046,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
852
1046
|
this.parsedLocus.info = parsedInfo.current;
|
|
853
1047
|
// Parses the info and adds necessary values
|
|
854
1048
|
this.updateMeeting(parsedInfo.current);
|
|
1049
|
+
this.emitScoped({
|
|
1050
|
+
file: 'locus-info',
|
|
1051
|
+
function: 'updateMeetingInfo'
|
|
1052
|
+
}, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED);
|
|
855
1053
|
}
|
|
1054
|
+
this.roles = roles;
|
|
856
1055
|
}
|
|
857
1056
|
|
|
858
1057
|
/**
|
|
@@ -888,9 +1087,11 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
888
1087
|
}, {
|
|
889
1088
|
key: "updateMediaShares",
|
|
890
1089
|
value: function updateMediaShares(mediaShares) {
|
|
891
|
-
if (mediaShares && !(0,
|
|
1090
|
+
if (mediaShares && !(0, _lodash.isEqual)(this.mediaShares, mediaShares)) {
|
|
892
1091
|
var parsedMediaShares = _mediaSharesUtils.default.getMediaShares(this.mediaShares, mediaShares);
|
|
893
1092
|
this.updateMeeting(parsedMediaShares.current);
|
|
1093
|
+
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
1094
|
+
this.mediaShares = mediaShares;
|
|
894
1095
|
this.emitScoped({
|
|
895
1096
|
file: 'locus-info',
|
|
896
1097
|
function: 'updateMediaShares'
|
|
@@ -898,8 +1099,6 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
898
1099
|
current: parsedMediaShares.current,
|
|
899
1100
|
previous: parsedMediaShares.previous
|
|
900
1101
|
});
|
|
901
|
-
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
902
|
-
this.mediaShares = mediaShares;
|
|
903
1102
|
}
|
|
904
1103
|
}
|
|
905
1104
|
|
|
@@ -911,7 +1110,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
911
1110
|
}, {
|
|
912
1111
|
key: "updateParticipantsUrl",
|
|
913
1112
|
value: function updateParticipantsUrl(participantsUrl) {
|
|
914
|
-
if (participantsUrl && !(0,
|
|
1113
|
+
if (participantsUrl && !(0, _lodash.isEqual)(this.participantsUrl, participantsUrl)) {
|
|
915
1114
|
this.participantsUrl = participantsUrl;
|
|
916
1115
|
}
|
|
917
1116
|
}
|
|
@@ -924,7 +1123,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
924
1123
|
}, {
|
|
925
1124
|
key: "updateReplace",
|
|
926
1125
|
value: function updateReplace(replace) {
|
|
927
|
-
if (replace && !(0,
|
|
1126
|
+
if (replace && !(0, _lodash.isEqual)(this.replace, replace)) {
|
|
928
1127
|
this.replace = replace;
|
|
929
1128
|
}
|
|
930
1129
|
}
|
|
@@ -941,7 +1140,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
941
1140
|
key: "updateSelf",
|
|
942
1141
|
value: function updateSelf(self, participants) {
|
|
943
1142
|
// @ts-ignore - check where this.self come from
|
|
944
|
-
if (self && !(0,
|
|
1143
|
+
if (self && !(0, _lodash.isEqual)(this.self, self)) {
|
|
945
1144
|
// @ts-ignore
|
|
946
1145
|
var parsedSelves = _selfUtils.default.getSelves(this.self, self, this.webex.internal.device.url);
|
|
947
1146
|
this.updateMeeting(parsedSelves.current);
|
|
@@ -970,6 +1169,23 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
970
1169
|
layout: parsedSelves.current.layout
|
|
971
1170
|
});
|
|
972
1171
|
}
|
|
1172
|
+
if (parsedSelves.updates.breakoutsChanged) {
|
|
1173
|
+
this.emitScoped({
|
|
1174
|
+
file: 'locus-info',
|
|
1175
|
+
function: 'updateSelf'
|
|
1176
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED, {
|
|
1177
|
+
breakoutSessions: parsedSelves.current.breakoutSessions
|
|
1178
|
+
});
|
|
1179
|
+
}
|
|
1180
|
+
if (parsedSelves.updates.interpretationChanged) {
|
|
1181
|
+
this.emitScoped({
|
|
1182
|
+
file: 'locus-info',
|
|
1183
|
+
function: 'updateSelf'
|
|
1184
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED, {
|
|
1185
|
+
interpretation: parsedSelves.current.interpretation,
|
|
1186
|
+
selfParticipantId: parsedSelves.current.selfId
|
|
1187
|
+
});
|
|
1188
|
+
}
|
|
973
1189
|
if (parsedSelves.updates.isMediaInactiveOrReleased) {
|
|
974
1190
|
this.emitScoped({
|
|
975
1191
|
file: 'locus-info',
|
|
@@ -984,6 +1200,26 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
984
1200
|
function: 'updateSelf'
|
|
985
1201
|
}, _constants.LOCUSINFO.EVENTS.SELF_MODERATOR_CHANGED, self);
|
|
986
1202
|
}
|
|
1203
|
+
if (parsedSelves.updates.isRolesChanged) {
|
|
1204
|
+
var _parsedSelves$previou, _parsedSelves$current;
|
|
1205
|
+
this.emitScoped({
|
|
1206
|
+
file: 'locus-info',
|
|
1207
|
+
function: 'updateSelf'
|
|
1208
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, {
|
|
1209
|
+
oldRoles: (_parsedSelves$previou = parsedSelves.previous) === null || _parsedSelves$previou === void 0 ? void 0 : _parsedSelves$previou.roles,
|
|
1210
|
+
newRoles: (_parsedSelves$current = parsedSelves.current) === null || _parsedSelves$current === void 0 ? void 0 : _parsedSelves$current.roles
|
|
1211
|
+
});
|
|
1212
|
+
}
|
|
1213
|
+
if (parsedSelves.updates.isVideoMutedByOthersChanged) {
|
|
1214
|
+
this.emitScoped({
|
|
1215
|
+
file: 'locus-info',
|
|
1216
|
+
function: 'updateSelf'
|
|
1217
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {
|
|
1218
|
+
muted: parsedSelves.current.remoteVideoMuted
|
|
1219
|
+
// unmuteAllowed: not part of .self
|
|
1220
|
+
});
|
|
1221
|
+
}
|
|
1222
|
+
|
|
987
1223
|
if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
|
|
988
1224
|
this.emitScoped({
|
|
989
1225
|
file: 'locus-info',
|
|
@@ -1029,14 +1265,14 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1029
1265
|
_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, _selfUtils.default.getMediaStatus(self.mediaSessions));
|
|
1030
1266
|
}
|
|
1031
1267
|
if (parsedSelves.updates.audioStateChange || parsedSelves.updates.videoStateChange || parsedSelves.updates.shareStateChange) {
|
|
1032
|
-
var _parsedSelves$
|
|
1268
|
+
var _parsedSelves$current2, _parsedSelves$current3, _parsedSelves$current4;
|
|
1033
1269
|
this.emitScoped({
|
|
1034
1270
|
file: 'locus-info',
|
|
1035
1271
|
function: 'updateSelf'
|
|
1036
1272
|
}, _constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, {
|
|
1037
|
-
audioStatus: (_parsedSelves$
|
|
1038
|
-
videoStatus: (_parsedSelves$
|
|
1039
|
-
shareStatus: (_parsedSelves$
|
|
1273
|
+
audioStatus: (_parsedSelves$current2 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current2 === void 0 ? void 0 : _parsedSelves$current2.audio,
|
|
1274
|
+
videoStatus: (_parsedSelves$current3 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current3 === void 0 ? void 0 : _parsedSelves$current3.video,
|
|
1275
|
+
shareStatus: (_parsedSelves$current4 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current4 === void 0 ? void 0 : _parsedSelves$current4.share
|
|
1040
1276
|
});
|
|
1041
1277
|
}
|
|
1042
1278
|
if (parsedSelves.updates.isUserObserving) {
|
|
@@ -1105,7 +1341,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1105
1341
|
}, {
|
|
1106
1342
|
key: "updateAclUrl",
|
|
1107
1343
|
value: function updateAclUrl(aclUrl) {
|
|
1108
|
-
if (aclUrl && !(0,
|
|
1344
|
+
if (aclUrl && !(0, _lodash.isEqual)(this.aclUrl, aclUrl)) {
|
|
1109
1345
|
this.aclUrl = aclUrl;
|
|
1110
1346
|
}
|
|
1111
1347
|
}
|
|
@@ -1118,7 +1354,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1118
1354
|
}, {
|
|
1119
1355
|
key: "updateBasequence",
|
|
1120
1356
|
value: function updateBasequence(baseSequence) {
|
|
1121
|
-
if (baseSequence && !(0,
|
|
1357
|
+
if (baseSequence && !(0, _lodash.isEqual)(this.baseSequence, baseSequence)) {
|
|
1122
1358
|
this.baseSequence = baseSequence;
|
|
1123
1359
|
}
|
|
1124
1360
|
}
|
|
@@ -1131,7 +1367,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1131
1367
|
}, {
|
|
1132
1368
|
key: "updateSequence",
|
|
1133
1369
|
value: function updateSequence(sequence) {
|
|
1134
|
-
if (sequence && !(0,
|
|
1370
|
+
if (sequence && !(0, _lodash.isEqual)(this.sequence, sequence)) {
|
|
1135
1371
|
this.sequence = sequence;
|
|
1136
1372
|
}
|
|
1137
1373
|
}
|
|
@@ -1144,7 +1380,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1144
1380
|
}, {
|
|
1145
1381
|
key: "updateMemberShip",
|
|
1146
1382
|
value: function updateMemberShip(membership) {
|
|
1147
|
-
if (membership && !(0,
|
|
1383
|
+
if (membership && !(0, _lodash.isEqual)(this.membership, membership)) {
|
|
1148
1384
|
this.membership = membership;
|
|
1149
1385
|
}
|
|
1150
1386
|
}
|
|
@@ -1157,12 +1393,117 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1157
1393
|
}, {
|
|
1158
1394
|
key: "updateIdentifiers",
|
|
1159
1395
|
value: function updateIdentifiers(identities) {
|
|
1160
|
-
if (identities && !(0,
|
|
1396
|
+
if (identities && !(0, _lodash.isEqual)(this.identities, identities)) {
|
|
1161
1397
|
this.identities = identities;
|
|
1162
1398
|
}
|
|
1163
1399
|
}
|
|
1400
|
+
|
|
1401
|
+
/**
|
|
1402
|
+
* check the locus is main session's one or not, if is main session's, update main session cache
|
|
1403
|
+
* @param {Object} locus
|
|
1404
|
+
* @returns {undefined}
|
|
1405
|
+
* @memberof LocusInfo
|
|
1406
|
+
*/
|
|
1407
|
+
}, {
|
|
1408
|
+
key: "updateLocusCache",
|
|
1409
|
+
value: function updateLocusCache(locus) {
|
|
1410
|
+
var isMainSessionDTO = _controlsUtils.default.isMainSessionDTO(locus);
|
|
1411
|
+
if (isMainSessionDTO) {
|
|
1412
|
+
this.updateMainSessionLocusCache(locus);
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
/**
|
|
1417
|
+
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
1418
|
+
* if join breakout from main session, need to query main locus url (if response with 403 means no privilege, need to clear the cache)
|
|
1419
|
+
* @param {Object} newLocus
|
|
1420
|
+
* @returns {Object}
|
|
1421
|
+
* @memberof LocusInfo
|
|
1422
|
+
*/
|
|
1423
|
+
}, {
|
|
1424
|
+
key: "getTheLocusToUpdate",
|
|
1425
|
+
value: function getTheLocusToUpdate(newLocus) {
|
|
1426
|
+
var switchStatus = _controlsUtils.default.getSessionSwitchStatus(this.controls, newLocus === null || newLocus === void 0 ? void 0 : newLocus.controls);
|
|
1427
|
+
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
|
1428
|
+
return (0, _lodash.cloneDeep)(this.mainSessionLocusCache);
|
|
1429
|
+
}
|
|
1430
|
+
if (switchStatus.isJoinToBreakout) {
|
|
1431
|
+
this.emitScoped({
|
|
1432
|
+
file: 'locus-info',
|
|
1433
|
+
function: 'updateControls'
|
|
1434
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN, {
|
|
1435
|
+
mainLocusUrl: this.url
|
|
1436
|
+
});
|
|
1437
|
+
}
|
|
1438
|
+
return newLocus;
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
/**
|
|
1442
|
+
* merge participants by participant id
|
|
1443
|
+
* @param {Array} participants
|
|
1444
|
+
* @param {Array} sourceParticipants
|
|
1445
|
+
* @returns {Array} merged participants
|
|
1446
|
+
* @memberof LocusInfo
|
|
1447
|
+
*/
|
|
1448
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1449
|
+
}, {
|
|
1450
|
+
key: "mergeParticipants",
|
|
1451
|
+
value: function mergeParticipants(participants, sourceParticipants) {
|
|
1452
|
+
if (!sourceParticipants || !sourceParticipants.length) return participants;
|
|
1453
|
+
if (!participants || !participants.length) {
|
|
1454
|
+
return sourceParticipants;
|
|
1455
|
+
}
|
|
1456
|
+
sourceParticipants.forEach(function (participant) {
|
|
1457
|
+
var existIndex = participants.findIndex(function (p) {
|
|
1458
|
+
return p.id === participant.id;
|
|
1459
|
+
});
|
|
1460
|
+
if (existIndex > -1) {
|
|
1461
|
+
participants.splice(existIndex, 1, participant);
|
|
1462
|
+
} else {
|
|
1463
|
+
participants.push(participant);
|
|
1464
|
+
}
|
|
1465
|
+
});
|
|
1466
|
+
return participants;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
/**
|
|
1470
|
+
* need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
|
|
1471
|
+
* @param {Object} mainLocus
|
|
1472
|
+
* @returns {undefined}
|
|
1473
|
+
* @memberof LocusInfo
|
|
1474
|
+
*/
|
|
1475
|
+
}, {
|
|
1476
|
+
key: "updateMainSessionLocusCache",
|
|
1477
|
+
value: function updateMainSessionLocusCache(mainLocus) {
|
|
1478
|
+
var _this5 = this;
|
|
1479
|
+
if (!mainLocus) {
|
|
1480
|
+
return;
|
|
1481
|
+
}
|
|
1482
|
+
var locusClone = (0, _lodash.cloneDeep)(mainLocus);
|
|
1483
|
+
if (this.mainSessionLocusCache) {
|
|
1484
|
+
// shallow merge and do special merge for participants
|
|
1485
|
+
(0, _lodash.assignWith)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {
|
|
1486
|
+
if (key === 'participants') {
|
|
1487
|
+
return _this5.mergeParticipants(objValue, srcValue);
|
|
1488
|
+
}
|
|
1489
|
+
return srcValue || objValue;
|
|
1490
|
+
});
|
|
1491
|
+
} else {
|
|
1492
|
+
this.mainSessionLocusCache = locusClone;
|
|
1493
|
+
}
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
/**
|
|
1497
|
+
* clear main session cache
|
|
1498
|
+
* @returns {undefined}
|
|
1499
|
+
* @memberof LocusInfo
|
|
1500
|
+
*/
|
|
1501
|
+
}, {
|
|
1502
|
+
key: "clearMainSessionLocusCache",
|
|
1503
|
+
value: function clearMainSessionLocusCache() {
|
|
1504
|
+
this.mainSessionLocusCache = null;
|
|
1505
|
+
}
|
|
1164
1506
|
}]);
|
|
1165
1507
|
return LocusInfo;
|
|
1166
1508
|
}(_eventsScope.default);
|
|
1167
|
-
exports.default = LocusInfo;
|
|
1168
1509
|
//# sourceMappingURL=index.js.map
|