@webex/plugin-meetings 3.0.0-beta.5 → 3.0.0-beta.51
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/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/breakouts/breakout.js +137 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.js +23 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/index.js +579 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +48 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +1 -20
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +5 -20
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +0 -7
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +10 -24
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +11 -24
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +12 -25
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +10 -24
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -33
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +10 -24
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -23
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection-in-progress.js +0 -17
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +10 -24
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +10 -24
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +6 -41
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +5 -25
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +0 -22
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +0 -23
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +0 -12
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +0 -15
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +0 -4
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -8
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +37 -60
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +4 -14
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +6 -6
- package/dist/config.js.map +1 -1
- package/dist/constants.js +122 -49
- 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 +16 -0
- package/dist/controls-options-manager/enums.js.map +1 -0
- package/dist/controls-options-manager/index.js +240 -0
- package/dist/controls-options-manager/index.js.map +1 -0
- package/dist/controls-options-manager/util.js +39 -0
- package/dist/controls-options-manager/util.js.map +1 -0
- package/dist/index.js +11 -18
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +17 -30
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -26
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +0 -15
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +4 -12
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +220 -192
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +3 -37
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +12 -38
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +92 -118
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +61 -90
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +56 -146
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +83 -117
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +2 -9
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +505 -495
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +25 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2205 -2211
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +102 -100
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +308 -264
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +60 -217
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +14 -32
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +193 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +5 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +490 -560
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +24 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +116 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +78 -86
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +31 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +3 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +110 -203
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +16 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +42 -50
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +1 -13
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -6
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +54 -156
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +74 -52
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +48 -65
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +58 -93
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +60 -76
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +6 -40
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +446 -442
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +40 -59
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +21 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +1 -31
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +0 -13
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js +192 -191
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +15 -23
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +322 -456
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +17 -0
- package/dist/recording-controller/enums.js.map +1 -0
- package/dist/recording-controller/index.js +343 -0
- package/dist/recording-controller/index.js.map +1 -0
- package/dist/recording-controller/util.js +63 -0
- package/dist/recording-controller/util.js.map +1 -0
- package/dist/roap/index.js +48 -70
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +143 -131
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +91 -98
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +1 -95
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +372 -455
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +143 -87
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- 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/index.d.ts +5 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +8 -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 +32 -0
- package/dist/types/config.d.ts +77 -0
- package/dist/types/constants.d.ts +928 -0
- package/dist/types/controls-options-manager/constants.d.ts +4 -0
- package/dist/types/controls-options-manager/enums.d.ts +6 -0
- package/dist/types/controls-options-manager/index.d.ts +128 -0
- package/dist/types/controls-options-manager/util.d.ts +9 -0
- package/dist/types/index.d.ts +6 -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 +276 -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 +212 -0
- package/dist/types/locus-info/selfUtils.d.ts +2 -0
- package/dist/types/media/index.d.ts +32 -0
- package/dist/types/media/properties.d.ts +108 -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 +95 -0
- package/dist/types/meeting/index.d.ts +1719 -0
- package/dist/types/meeting/muteState.d.ts +132 -0
- package/dist/types/meeting/request.d.ts +271 -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 +2 -0
- package/dist/types/meeting-info/collection.d.ts +20 -0
- package/dist/types/meeting-info/index.d.ts +57 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -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 +23 -0
- package/dist/types/meetings/index.d.ts +297 -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 +146 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +24 -0
- package/dist/types/members/index.d.ts +325 -0
- package/dist/types/members/request.d.ts +50 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/config.d.ts +169 -0
- package/dist/types/metrics/constants.d.ts +53 -0
- package/dist/types/metrics/index.d.ts +152 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +51 -0
- package/dist/types/multistream/receiveSlot.d.ts +64 -0
- package/dist/types/multistream/receiveSlotManager.d.ts +49 -0
- package/dist/types/multistream/remoteMedia.d.ts +100 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +259 -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 +117 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +193 -0
- package/dist/types/recording-controller/util.d.ts +13 -0
- package/dist/types/roap/index.d.ts +77 -0
- package/dist/types/roap/request.d.ts +38 -0
- package/dist/types/roap/turnDiscovery.d.ts +74 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +195 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
- package/dist/types/transcription/index.d.ts +64 -0
- package/internal-README.md +7 -6
- package/package.json +27 -21
- package/src/breakouts/README.md +199 -0
- package/src/breakouts/breakout.ts +129 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/index.ts +539 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +39 -0
- package/src/common/{browser-detection.js → browser-detection.ts} +9 -6
- package/src/common/collection.ts +9 -7
- package/src/common/{config.js → config.ts} +1 -1
- package/src/common/errors/{captcha-error.js → captcha-error.ts} +11 -7
- package/src/common/errors/{intent-to-join.js → intent-to-join.ts} +12 -7
- package/src/common/errors/{join-meeting.js → join-meeting.ts} +17 -8
- package/src/common/errors/{media.js → media.ts} +11 -7
- package/src/common/errors/parameter.ts +11 -7
- package/src/common/errors/{password-error.js → password-error.ts} +11 -7
- package/src/common/errors/{permission.js → permission.ts} +10 -6
- package/src/common/errors/{reconnection.js → reconnection.ts} +11 -7
- package/src/common/errors/{stats.js → stats.ts} +11 -7
- package/src/common/errors/{webex-errors.js → webex-errors.ts} +8 -7
- package/src/common/errors/{webex-meetings-error.js → webex-meetings-error.ts} +4 -2
- package/src/common/events/{events-scope.js → events-scope.ts} +6 -2
- package/src/common/events/{events.js → events.ts} +5 -1
- package/src/common/events/{trigger-proxy.js → trigger-proxy.ts} +9 -5
- package/src/common/events/{util.js → util.ts} +2 -3
- package/src/common/logs/{logger-config.js → logger-config.ts} +1 -2
- package/src/common/logs/logger-proxy.ts +44 -0
- package/src/common/logs/{request.js → request.ts} +22 -9
- package/src/common/queue.ts +1 -2
- package/src/{config.js → config.ts} +17 -12
- package/src/constants.ts +76 -5
- package/src/controls-options-manager/constants.ts +5 -0
- package/src/controls-options-manager/enums.ts +7 -0
- package/src/controls-options-manager/index.ts +218 -0
- package/src/controls-options-manager/util.ts +30 -0
- package/src/index.js +4 -1
- package/src/locus-info/controlsUtils.ts +122 -0
- package/src/locus-info/{embeddedAppsUtils.js → embeddedAppsUtils.ts} +5 -6
- package/src/locus-info/{fullState.js → fullState.ts} +16 -12
- package/src/locus-info/{hostUtils.js → hostUtils.ts} +9 -8
- package/src/locus-info/{index.js → index.ts} +192 -67
- package/src/locus-info/{infoUtils.js → infoUtils.ts} +19 -8
- package/src/locus-info/{mediaSharesUtils.js → mediaSharesUtils.ts} +17 -17
- package/src/locus-info/{parser.js → parser.ts} +67 -79
- package/src/locus-info/{selfUtils.js → selfUtils.ts} +157 -68
- package/src/media/{index.js → index.ts} +179 -176
- package/src/media/{properties.js → properties.ts} +60 -37
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/config.ts +384 -0
- package/src/meeting/in-meeting-actions.ts +55 -3
- package/src/meeting/{index.js → index.ts} +2590 -1576
- package/src/meeting/{muteState.js → muteState.ts} +138 -73
- package/src/meeting/{request.js → request.ts} +326 -142
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/{state.js → state.ts} +50 -35
- package/src/meeting/{util.js → util.ts} +128 -115
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/{index.js → index.ts} +42 -36
- package/src/meeting-info/meeting-info-v2.ts +273 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
- package/src/meetings/{collection.js → collection.ts} +6 -3
- package/src/meetings/index.ts +1159 -0
- package/src/meetings/{request.js → request.ts} +32 -25
- package/src/meetings/{util.js → util.ts} +58 -32
- package/src/member/{index.js → index.ts} +102 -56
- package/src/member/{util.js → util.ts} +52 -25
- package/src/members/{collection.js → collection.ts} +2 -2
- package/src/members/{index.js → index.ts} +231 -144
- package/src/members/{request.js → request.ts} +60 -16
- package/src/members/{util.js → util.ts} +69 -54
- package/src/metrics/{config.js → config.ts} +253 -92
- package/src/metrics/{constants.js → constants.ts} +0 -6
- package/src/metrics/{index.js → index.ts} +105 -94
- package/src/multistream/mediaRequestManager.ts +101 -39
- package/src/multistream/receiveSlot.ts +62 -26
- package/src/multistream/receiveSlotManager.ts +50 -38
- package/src/multistream/remoteMedia.ts +38 -5
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +209 -62
- package/src/networkQualityMonitor/{index.js → index.ts} +41 -29
- package/src/personal-meeting-room/{index.js → index.ts} +28 -19
- package/src/personal-meeting-room/{request.js → request.ts} +13 -4
- package/src/personal-meeting-room/{util.js → util.ts} +4 -4
- package/src/reachability/{index.js → index.ts} +157 -94
- package/src/reachability/request.ts +46 -35
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +104 -0
- package/src/reactions/reactions.type.ts +62 -0
- package/src/reconnection-manager/{index.js → index.ts} +196 -103
- package/src/recording-controller/enums.ts +8 -0
- package/src/recording-controller/index.ts +315 -0
- package/src/recording-controller/util.ts +58 -0
- package/src/roap/{index.js → index.ts} +77 -60
- package/src/roap/request.ts +172 -0
- package/src/roap/turnDiscovery.ts +81 -41
- package/src/statsAnalyzer/global.ts +37 -0
- package/src/statsAnalyzer/index.ts +1242 -0
- package/src/statsAnalyzer/mqaUtil.ts +291 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/test/integration/spec/converged-space-meetings.js +176 -0
- package/test/integration/spec/journey.js +665 -464
- package/test/integration/spec/space-meeting.js +320 -206
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/breakouts/breakout.ts +146 -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/index.ts +764 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +47 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/controls-options-manager/index.js +180 -0
- package/test/unit/spec/controls-options-manager/util.js +86 -0
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +112 -34
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +219 -2
- package/test/unit/spec/locus-info/infoUtils.js +41 -32
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +101 -103
- package/test/unit/spec/locus-info/selfUtils.js +128 -12
- package/test/unit/spec/media/index.ts +72 -8
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/in-meeting-actions.ts +23 -2
- package/test/unit/spec/meeting/index.js +2490 -802
- package/test/unit/spec/meeting/muteState.js +146 -61
- package/test/unit/spec/meeting/request.js +141 -43
- package/test/unit/spec/meeting/utils.js +134 -164
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +439 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +31 -7
- package/test/unit/spec/members/index.js +179 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +119 -4
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/multistream/mediaRequestManager.ts +318 -64
- package/test/unit/spec/multistream/receiveSlot.ts +68 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
- package/test/unit/spec/multistream/remoteMedia.ts +38 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +539 -65
- package/test/unit/spec/networkQualityMonitor/index.js +24 -18
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +176 -27
- package/test/unit/spec/reachability/request.js +66 -0
- package/test/unit/spec/reconnection-manager/index.js +58 -30
- package/test/unit/spec/recording-controller/index.js +231 -0
- package/test/unit/spec/recording-controller/util.js +102 -0
- package/test/unit/spec/roap/index.ts +12 -8
- package/test/unit/spec/roap/request.ts +217 -0
- package/test/unit/spec/roap/turnDiscovery.ts +72 -49
- package/test/unit/spec/stats-analyzer/index.js +108 -57
- package/test/utils/cmr.js +44 -42
- package/test/utils/constants.js +9 -0
- package/test/utils/testUtils.js +98 -77
- package/test/utils/webex-config.js +22 -18
- package/test/utils/webex-test-users.js +57 -50
- package/tsconfig.json +6 -0
- package/dist/media/internal-media-core-wrapper.js +0 -22
- package/dist/media/internal-media-core-wrapper.js.map +0 -1
- package/dist/meeting/effectsState.js +0 -327
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/multistream/multistreamMedia.js +0 -116
- package/dist/multistream/multistreamMedia.js.map +0 -1
- package/dist/peer-connection-manager/util.js +0 -124
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/src/common/logs/logger-proxy.js +0 -33
- package/src/locus-info/controlsUtils.js +0 -102
- package/src/media/internal-media-core-wrapper.ts +0 -9
- package/src/mediaQualityMetrics/config.js +0 -382
- package/src/meeting/effectsState.js +0 -205
- package/src/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/multistream/multistreamMedia.ts +0 -92
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/global.js +0 -133
- package/src/statsAnalyzer/index.js +0 -1006
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/meeting/effectsState.js +0 -291
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
- /package/src/common/errors/{reconnection-in-progress.js → reconnection-in-progress.ts} +0 -0
|
@@ -19,14 +19,14 @@ import {
|
|
|
19
19
|
} from '../constants';
|
|
20
20
|
import Metrics from '../metrics';
|
|
21
21
|
import {eventType} from '../metrics/config';
|
|
22
|
-
import InfoUtils from '
|
|
23
|
-
import FullState from '
|
|
24
|
-
import SelfUtils from '
|
|
25
|
-
import HostUtils from '
|
|
26
|
-
import ControlsUtils from '
|
|
27
|
-
import EmbeddedAppsUtils from '
|
|
28
|
-
import MediaSharesUtils from '
|
|
29
|
-
import LocusDeltaParser from '
|
|
22
|
+
import InfoUtils from './infoUtils';
|
|
23
|
+
import FullState from './fullState';
|
|
24
|
+
import SelfUtils from './selfUtils';
|
|
25
|
+
import HostUtils from './hostUtils';
|
|
26
|
+
import ControlsUtils from './controlsUtils';
|
|
27
|
+
import EmbeddedAppsUtils from './embeddedAppsUtils';
|
|
28
|
+
import MediaSharesUtils from './mediaSharesUtils';
|
|
29
|
+
import LocusDeltaParser from './parser';
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* @description LocusInfo extends ChildEmitter to convert locusInfo info a private emitter to parent object
|
|
@@ -35,6 +35,42 @@ import LocusDeltaParser from '../locus-info/parser';
|
|
|
35
35
|
* @class LocusInfo
|
|
36
36
|
*/
|
|
37
37
|
export default class LocusInfo extends EventsScope {
|
|
38
|
+
compareAndUpdateFlags: any;
|
|
39
|
+
emitChange: any;
|
|
40
|
+
locusParser: any;
|
|
41
|
+
meetingId: any;
|
|
42
|
+
parsedLocus: any;
|
|
43
|
+
updateMeeting: any;
|
|
44
|
+
webex: any;
|
|
45
|
+
aclUrl: any;
|
|
46
|
+
baseSequence: any;
|
|
47
|
+
created: any;
|
|
48
|
+
deltaParticipants: any;
|
|
49
|
+
identities: any;
|
|
50
|
+
membership: any;
|
|
51
|
+
participants: any;
|
|
52
|
+
participantsUrl: any;
|
|
53
|
+
replaces: any;
|
|
54
|
+
scheduledMeeting: any;
|
|
55
|
+
sequence: any;
|
|
56
|
+
controls: any;
|
|
57
|
+
conversationUrl: any;
|
|
58
|
+
embeddedApps: any;
|
|
59
|
+
fullState: any;
|
|
60
|
+
host: any;
|
|
61
|
+
info: any;
|
|
62
|
+
mediaShares: any;
|
|
63
|
+
replace: any;
|
|
64
|
+
url: any;
|
|
65
|
+
services: any;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Constructor
|
|
69
|
+
* @param {boolean} updateMeeting true if the meeting should be updated
|
|
70
|
+
* @param {object} webex
|
|
71
|
+
* @param {string} meetingId
|
|
72
|
+
* @returns {undefined}
|
|
73
|
+
*/
|
|
38
74
|
constructor(updateMeeting, webex, meetingId) {
|
|
39
75
|
super();
|
|
40
76
|
this.parsedLocus = {
|
|
@@ -55,7 +91,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
55
91
|
* @param {Meeting} meeting
|
|
56
92
|
* @returns {undefined}
|
|
57
93
|
*/
|
|
58
|
-
applyLocusDeltaData(action, locus, meeting) {
|
|
94
|
+
applyLocusDeltaData(action: string, locus: any, meeting: any) {
|
|
59
95
|
const {DESYNC, USE_CURRENT, USE_INCOMING} = LocusDeltaParser.loci;
|
|
60
96
|
|
|
61
97
|
switch (action) {
|
|
@@ -94,7 +130,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
94
130
|
* @param {Meeting} meeting
|
|
95
131
|
* @returns {undefined}
|
|
96
132
|
*/
|
|
97
|
-
handleLocusDelta(locus, meeting) {
|
|
133
|
+
handleLocusDelta(locus: any, meeting: any) {
|
|
98
134
|
// register a function to process delta actions
|
|
99
135
|
if (!this.locusParser.onDeltaAction) {
|
|
100
136
|
// delta action, along with associated loci
|
|
@@ -112,7 +148,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
112
148
|
* @returns {undefined}
|
|
113
149
|
* @memberof LocusInfo
|
|
114
150
|
*/
|
|
115
|
-
init(locus = {}) {
|
|
151
|
+
init(locus: any = {}) {
|
|
116
152
|
this.created = locus.created || null;
|
|
117
153
|
this.scheduledMeeting = locus.meeting || null;
|
|
118
154
|
this.participantsUrl = locus.participantsUrl || null;
|
|
@@ -157,6 +193,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
157
193
|
this.updateSelf(locus.self, locus.participants);
|
|
158
194
|
this.updateHostInfo(locus.host);
|
|
159
195
|
this.updateMediaShares(locus.mediaShares);
|
|
196
|
+
this.updateServices(locus.links?.services);
|
|
160
197
|
}
|
|
161
198
|
|
|
162
199
|
/**
|
|
@@ -164,7 +201,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
164
201
|
* @returns {undefined}
|
|
165
202
|
* @memberof LocusInfo
|
|
166
203
|
*/
|
|
167
|
-
initialSetup(locus) {
|
|
204
|
+
initialSetup(locus: object) {
|
|
168
205
|
this.onFullLocus(locus);
|
|
169
206
|
|
|
170
207
|
// Change it to true after it receives it first locus object
|
|
@@ -177,7 +214,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
177
214
|
* @returns {undefined}
|
|
178
215
|
* @memberof LocusInfo
|
|
179
216
|
*/
|
|
180
|
-
parse(meeting, data) {
|
|
217
|
+
parse(meeting: any, data: any) {
|
|
218
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
181
219
|
const {eventType} = data;
|
|
182
220
|
|
|
183
221
|
LoggerProxy.logger.info(`Locus-info:index#parse --> received locus data: ${eventType}`);
|
|
@@ -217,18 +255,19 @@ export default class LocusInfo extends EventsScope {
|
|
|
217
255
|
* @returns {undefined}
|
|
218
256
|
* @memberof LocusInfo
|
|
219
257
|
*/
|
|
220
|
-
emitScoped(scope, eventName, args) {
|
|
258
|
+
emitScoped(scope?: any, eventName?: string, args?: any) {
|
|
221
259
|
return this.emit(scope, eventName, args);
|
|
222
260
|
}
|
|
223
261
|
|
|
224
262
|
/**
|
|
225
263
|
* updates the locus with full locus object
|
|
226
264
|
* @param {object} locus locus object
|
|
227
|
-
* @param {
|
|
265
|
+
* @param {string} eventType particulat locus event
|
|
228
266
|
* @returns {object} null
|
|
229
267
|
* @memberof LocusInfo
|
|
230
268
|
*/
|
|
231
|
-
|
|
269
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
270
|
+
onFullLocus(locus: any, eventType?: string) {
|
|
232
271
|
if (!locus) {
|
|
233
272
|
LoggerProxy.logger.error(
|
|
234
273
|
'Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.'
|
|
@@ -252,7 +291,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
252
291
|
* @returns {undefined}
|
|
253
292
|
* @memberof LocusInfo
|
|
254
293
|
*/
|
|
255
|
-
|
|
294
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
295
|
+
handleOneOnOneEvent(eventType: string) {
|
|
256
296
|
if (
|
|
257
297
|
this.parsedLocus.fullState.type === _CALL_ ||
|
|
258
298
|
this.parsedLocus.fullState.type === _SIP_BRIDGE_
|
|
@@ -295,7 +335,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
295
335
|
* @returns {undefined}
|
|
296
336
|
* @memberof LocusInfo
|
|
297
337
|
*/
|
|
298
|
-
onDeltaLocus(locus) {
|
|
338
|
+
onDeltaLocus(locus: any) {
|
|
299
339
|
this.updateLocusInfo(locus);
|
|
300
340
|
this.updateParticipants(locus.participants);
|
|
301
341
|
this.isMeetingActive();
|
|
@@ -307,6 +347,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
307
347
|
* @memberof LocusInfo
|
|
308
348
|
*/
|
|
309
349
|
updateLocusInfo(locus) {
|
|
350
|
+
if (locus.self?.reason === 'MOVED' && locus.self?.state === 'LEFT') {
|
|
351
|
+
// When moved to a breakout session locus sends a message for the previous locus
|
|
352
|
+
// indicating that we have been moved. It isn't helpful to continue parsing this
|
|
353
|
+
// as it gets interpreted as if we have left the call
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
|
|
310
357
|
this.updateControls(locus.controls);
|
|
311
358
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
312
359
|
this.updateCreated(locus.created);
|
|
@@ -324,6 +371,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
324
371
|
this.updateMemberShip(locus.membership);
|
|
325
372
|
this.updateIdentifiers(locus.identities);
|
|
326
373
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
374
|
+
this.updateServices(locus.links?.services);
|
|
327
375
|
this.compareAndUpdate();
|
|
328
376
|
// update which required to compare different objects from locus
|
|
329
377
|
}
|
|
@@ -334,7 +382,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
334
382
|
* @returns {Array}
|
|
335
383
|
* @memberof LocusInfo
|
|
336
384
|
*/
|
|
337
|
-
getLocusPartner(participants
|
|
385
|
+
getLocusPartner(participants: Array<any>, self: any) {
|
|
338
386
|
if (!participants || participants.length === 0) {
|
|
339
387
|
return null;
|
|
340
388
|
}
|
|
@@ -345,6 +393,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
345
393
|
self &&
|
|
346
394
|
participant.identity !== self.identity &&
|
|
347
395
|
(participants.length <= 2 || (participant.type === _USER_ && !participant.removed))
|
|
396
|
+
// @ts-ignore
|
|
348
397
|
) || this.partner
|
|
349
398
|
);
|
|
350
399
|
}
|
|
@@ -359,6 +408,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
359
408
|
this.parsedLocus.fullState.type === _CALL_ ||
|
|
360
409
|
this.parsedLocus.fullState.type === _SIP_BRIDGE_
|
|
361
410
|
) {
|
|
411
|
+
// @ts-ignore
|
|
362
412
|
const partner = this.getLocusPartner(this.participants, this.self);
|
|
363
413
|
|
|
364
414
|
this.updateMeeting({partner});
|
|
@@ -390,8 +440,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
390
440
|
shouldLeave: false,
|
|
391
441
|
}
|
|
392
442
|
);
|
|
393
|
-
}
|
|
394
|
-
else if (
|
|
443
|
+
} else if (
|
|
395
444
|
partner.state === MEETING_STATE.STATES.LEFT &&
|
|
396
445
|
this.parsedLocus.self &&
|
|
397
446
|
(this.parsedLocus.self.state === MEETING_STATE.STATES.DECLINED ||
|
|
@@ -414,8 +463,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
414
463
|
this.parsedLocus.self.joinedWith && this.parsedLocus.self.joinedWith.state !== _LEFT_,
|
|
415
464
|
}
|
|
416
465
|
);
|
|
417
|
-
}
|
|
418
|
-
else if (
|
|
466
|
+
} else if (
|
|
419
467
|
this.parsedLocus.self &&
|
|
420
468
|
this.parsedLocus.self.state === MEETING_STATE.STATES.LEFT &&
|
|
421
469
|
(partner.state === MEETING_STATE.STATES.LEFT ||
|
|
@@ -439,11 +487,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
439
487
|
}
|
|
440
488
|
);
|
|
441
489
|
}
|
|
442
|
-
}
|
|
443
|
-
else if (this.parsedLocus.fullState.type === _MEETING_) {
|
|
490
|
+
} else if (this.parsedLocus.fullState.type === _MEETING_) {
|
|
444
491
|
if (
|
|
445
492
|
this.fullState &&
|
|
446
493
|
(this.fullState.state === LOCUS.STATE.INACTIVE ||
|
|
494
|
+
// @ts-ignore
|
|
447
495
|
this.fullState.state === LOCUS.STATE.TERMINATING)
|
|
448
496
|
) {
|
|
449
497
|
LoggerProxy.logger.warn(
|
|
@@ -464,8 +512,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
464
512
|
shouldLeave: false,
|
|
465
513
|
}
|
|
466
514
|
);
|
|
467
|
-
}
|
|
468
|
-
else if (this.fullState && this.fullState.removed) {
|
|
515
|
+
} else if (this.fullState && this.fullState.removed) {
|
|
469
516
|
// user has been dropped from a meeting
|
|
470
517
|
Metrics.postEvent({
|
|
471
518
|
event: eventType.REMOTE_ENDED,
|
|
@@ -499,8 +546,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
499
546
|
}
|
|
500
547
|
);
|
|
501
548
|
}
|
|
502
|
-
}
|
|
503
|
-
else {
|
|
549
|
+
} else {
|
|
504
550
|
LoggerProxy.logger.warn('Locus-info:index#isMeetingActive --> Meeting Type is unknown.');
|
|
505
551
|
}
|
|
506
552
|
}
|
|
@@ -543,8 +589,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
543
589
|
canAssignHost: true,
|
|
544
590
|
}
|
|
545
591
|
);
|
|
546
|
-
}
|
|
547
|
-
else {
|
|
592
|
+
} else {
|
|
548
593
|
this.emitScoped(
|
|
549
594
|
{
|
|
550
595
|
file: 'locus-info',
|
|
@@ -565,13 +610,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
565
610
|
* @param {Array} [participants] - The participants to update against.
|
|
566
611
|
* @returns {void}
|
|
567
612
|
*/
|
|
568
|
-
updateParticipantDeltas(participants = []) {
|
|
613
|
+
updateParticipantDeltas(participants: Array<any> = []) {
|
|
569
614
|
// Used to find a participant within a participants collection.
|
|
570
615
|
const findParticipant = (participant, collection) =>
|
|
571
616
|
collection.find((item) => item.person.id === participant.person.id);
|
|
572
617
|
|
|
573
618
|
// Generates an object that indicates which state properties have changed.
|
|
574
|
-
const generateDelta = (prevState = {}, newState = {}) => {
|
|
619
|
+
const generateDelta = (prevState: any = {}, newState: any = {}) => {
|
|
575
620
|
// Setup deltas.
|
|
576
621
|
const deltas = {
|
|
577
622
|
audioStatus: prevState.audioStatus !== newState.audioStatus,
|
|
@@ -614,7 +659,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
614
659
|
* @returns {Array} updatedParticipants
|
|
615
660
|
* @memberof LocusInfo
|
|
616
661
|
*/
|
|
617
|
-
updateParticipants(participants) {
|
|
662
|
+
updateParticipants(participants: object) {
|
|
618
663
|
this.emitScoped(
|
|
619
664
|
{
|
|
620
665
|
file: 'locus-info',
|
|
@@ -636,7 +681,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
636
681
|
* @returns {undefined}
|
|
637
682
|
* @memberof LocusInfo
|
|
638
683
|
*/
|
|
639
|
-
updateControls(controls) {
|
|
684
|
+
updateControls(controls: object) {
|
|
640
685
|
if (controls && !isEqual(this.controls, controls)) {
|
|
641
686
|
this.parsedLocus.controls = ControlsUtils.parse(controls);
|
|
642
687
|
const {
|
|
@@ -646,6 +691,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
646
691
|
hasMeetingContainerChanged,
|
|
647
692
|
hasTranscribeChanged,
|
|
648
693
|
hasEntryExitToneChanged,
|
|
694
|
+
hasBreakoutChanged,
|
|
695
|
+
hasVideoEnabledChanged,
|
|
649
696
|
},
|
|
650
697
|
current,
|
|
651
698
|
} = ControlsUtils.getControls(this.controls, controls);
|
|
@@ -656,13 +703,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
656
703
|
if (hasRecordingPausedChanged) {
|
|
657
704
|
if (current.record.paused) {
|
|
658
705
|
state = RECORDING_STATE.PAUSED;
|
|
659
|
-
}
|
|
660
|
-
else {
|
|
706
|
+
} else {
|
|
661
707
|
// state will be `IDLE` if the recording is not active, even when there is a `pause` status change.
|
|
662
708
|
state = current.record.recording ? RECORDING_STATE.RESUMED : RECORDING_STATE.IDLE;
|
|
663
709
|
}
|
|
664
|
-
}
|
|
665
|
-
else if (hasRecordingChanged) {
|
|
710
|
+
} else if (hasRecordingChanged) {
|
|
666
711
|
state = current.record.recording ? RECORDING_STATE.RECORDING : RECORDING_STATE.IDLE;
|
|
667
712
|
}
|
|
668
713
|
|
|
@@ -711,9 +756,26 @@ export default class LocusInfo extends EventsScope {
|
|
|
711
756
|
);
|
|
712
757
|
}
|
|
713
758
|
|
|
759
|
+
if (hasBreakoutChanged) {
|
|
760
|
+
const {breakout} = current;
|
|
761
|
+
|
|
762
|
+
this.emitScoped(
|
|
763
|
+
{
|
|
764
|
+
file: 'locus-info',
|
|
765
|
+
function: 'updateControls',
|
|
766
|
+
},
|
|
767
|
+
LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED,
|
|
768
|
+
{
|
|
769
|
+
breakout,
|
|
770
|
+
}
|
|
771
|
+
);
|
|
772
|
+
}
|
|
773
|
+
|
|
714
774
|
if (hasEntryExitToneChanged) {
|
|
715
775
|
const {entryExitTone} = current;
|
|
716
776
|
|
|
777
|
+
this.updateMeeting({entryExitTone});
|
|
778
|
+
|
|
717
779
|
this.emitScoped(
|
|
718
780
|
{
|
|
719
781
|
file: 'locus-info',
|
|
@@ -721,11 +783,29 @@ export default class LocusInfo extends EventsScope {
|
|
|
721
783
|
},
|
|
722
784
|
LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED,
|
|
723
785
|
{
|
|
724
|
-
entryExitTone
|
|
786
|
+
entryExitTone,
|
|
725
787
|
}
|
|
726
788
|
);
|
|
789
|
+
}
|
|
727
790
|
|
|
728
|
-
|
|
791
|
+
// videoEnabled is handled differently than other controls,
|
|
792
|
+
// to fit with audio mute status logic
|
|
793
|
+
if (hasVideoEnabledChanged) {
|
|
794
|
+
const {videoEnabled} = current;
|
|
795
|
+
|
|
796
|
+
this.updateMeeting({unmuteVideoAllowed: videoEnabled});
|
|
797
|
+
|
|
798
|
+
this.emitScoped(
|
|
799
|
+
{
|
|
800
|
+
file: 'locus-info',
|
|
801
|
+
function: 'updateControls',
|
|
802
|
+
},
|
|
803
|
+
LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
|
|
804
|
+
{
|
|
805
|
+
// muted: not part of locus.controls
|
|
806
|
+
unmuteAllowed: videoEnabled,
|
|
807
|
+
}
|
|
808
|
+
);
|
|
729
809
|
}
|
|
730
810
|
|
|
731
811
|
this.controls = controls;
|
|
@@ -738,12 +818,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
738
818
|
* @returns {undefined}
|
|
739
819
|
* @memberof LocusInfo
|
|
740
820
|
*/
|
|
741
|
-
updateConversationUrl(conversationUrl, info) {
|
|
821
|
+
updateConversationUrl(conversationUrl: string, info: any) {
|
|
742
822
|
if (conversationUrl && !isEqual(this.conversationUrl, conversationUrl)) {
|
|
743
823
|
this.conversationUrl = conversationUrl;
|
|
744
824
|
this.updateMeeting({conversationUrl});
|
|
745
|
-
}
|
|
746
|
-
else if (
|
|
825
|
+
} else if (
|
|
747
826
|
info &&
|
|
748
827
|
info.conversationUrl &&
|
|
749
828
|
!isEqual(this.conversationUrl, info.conversationUrl)
|
|
@@ -758,18 +837,39 @@ export default class LocusInfo extends EventsScope {
|
|
|
758
837
|
* @returns {undefined}
|
|
759
838
|
* @memberof LocusInfo
|
|
760
839
|
*/
|
|
761
|
-
updateCreated(created) {
|
|
840
|
+
updateCreated(created: object) {
|
|
762
841
|
if (created && !isEqual(this.created, created)) {
|
|
763
842
|
this.created = created;
|
|
764
843
|
}
|
|
765
844
|
}
|
|
766
845
|
|
|
846
|
+
/**
|
|
847
|
+
* @param {Object} services
|
|
848
|
+
* @returns {undefined}
|
|
849
|
+
* @memberof LocusInfo
|
|
850
|
+
*/
|
|
851
|
+
updateServices(services: Record<'breakout' | 'record', {url: string}>) {
|
|
852
|
+
if (services && !isEqual(this.services, services)) {
|
|
853
|
+
this.services = services;
|
|
854
|
+
this.emitScoped(
|
|
855
|
+
{
|
|
856
|
+
file: 'locus-info',
|
|
857
|
+
function: 'updateServices',
|
|
858
|
+
},
|
|
859
|
+
LOCUSINFO.EVENTS.LINKS_SERVICES,
|
|
860
|
+
{
|
|
861
|
+
services,
|
|
862
|
+
}
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
|
|
767
867
|
/**
|
|
768
868
|
* @param {Object} fullState
|
|
769
869
|
* @returns {undefined}
|
|
770
870
|
* @memberof LocusInfo
|
|
771
871
|
*/
|
|
772
|
-
updateFullState(fullState) {
|
|
872
|
+
updateFullState(fullState: object) {
|
|
773
873
|
if (fullState && !isEqual(this.fullState, fullState)) {
|
|
774
874
|
const result = FullState.getFullState(this.fullState, fullState);
|
|
775
875
|
|
|
@@ -813,7 +913,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
813
913
|
* @memberof LocusInfo
|
|
814
914
|
* emits internal event locus_info_update_host
|
|
815
915
|
*/
|
|
816
|
-
updateHostInfo(host) {
|
|
916
|
+
updateHostInfo(host: object) {
|
|
817
917
|
if (host && !isEqual(this.host, host)) {
|
|
818
918
|
const parsedHosts = HostUtils.getHosts(this.host, host);
|
|
819
919
|
|
|
@@ -834,8 +934,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
834
934
|
);
|
|
835
935
|
}
|
|
836
936
|
this.host = host;
|
|
837
|
-
}
|
|
838
|
-
else {
|
|
937
|
+
} else {
|
|
839
938
|
this.compareAndUpdateFlags.compareSelfAndHost = false;
|
|
840
939
|
}
|
|
841
940
|
}
|
|
@@ -846,7 +945,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
846
945
|
* @returns {undefined}
|
|
847
946
|
* @memberof LocusInfo
|
|
848
947
|
*/
|
|
849
|
-
updateMeetingInfo(info, self) {
|
|
948
|
+
updateMeetingInfo(info: object, self?: object) {
|
|
850
949
|
if (info && !isEqual(this.info, info)) {
|
|
851
950
|
const roles = self ? SelfUtils.getRoles(self) : this.parsedLocus.self?.roles || [];
|
|
852
951
|
const isJoined = SelfUtils.isJoined(self || this.parsedLocus.self);
|
|
@@ -894,7 +993,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
894
993
|
* @returns {undefined}
|
|
895
994
|
* @memberof LocusInfo
|
|
896
995
|
*/
|
|
897
|
-
updateEmbeddedApps(embeddedApps) {
|
|
996
|
+
updateEmbeddedApps(embeddedApps: object) {
|
|
898
997
|
// don't do anything if the arrays of apps haven't changed significantly
|
|
899
998
|
if (EmbeddedAppsUtils.areSimilar(this.embeddedApps, embeddedApps)) {
|
|
900
999
|
return;
|
|
@@ -922,11 +1021,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
922
1021
|
* @memberof LocusInfo
|
|
923
1022
|
* emits internal event locus_info_update_media_shares
|
|
924
1023
|
*/
|
|
925
|
-
updateMediaShares(mediaShares) {
|
|
1024
|
+
updateMediaShares(mediaShares: object) {
|
|
926
1025
|
if (mediaShares && !isEqual(this.mediaShares, mediaShares)) {
|
|
927
1026
|
const parsedMediaShares = MediaSharesUtils.getMediaShares(this.mediaShares, mediaShares);
|
|
928
1027
|
|
|
929
1028
|
this.updateMeeting(parsedMediaShares.current);
|
|
1029
|
+
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
1030
|
+
this.mediaShares = mediaShares;
|
|
930
1031
|
this.emitScoped(
|
|
931
1032
|
{
|
|
932
1033
|
file: 'locus-info',
|
|
@@ -938,8 +1039,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
938
1039
|
previous: parsedMediaShares.previous,
|
|
939
1040
|
}
|
|
940
1041
|
);
|
|
941
|
-
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
942
|
-
this.mediaShares = mediaShares;
|
|
943
1042
|
}
|
|
944
1043
|
}
|
|
945
1044
|
|
|
@@ -948,7 +1047,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
948
1047
|
* @returns {undefined}
|
|
949
1048
|
* @memberof LocusInfo
|
|
950
1049
|
*/
|
|
951
|
-
updateParticipantsUrl(participantsUrl) {
|
|
1050
|
+
updateParticipantsUrl(participantsUrl: string) {
|
|
952
1051
|
if (participantsUrl && !isEqual(this.participantsUrl, participantsUrl)) {
|
|
953
1052
|
this.participantsUrl = participantsUrl;
|
|
954
1053
|
}
|
|
@@ -959,7 +1058,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
959
1058
|
* @returns {undefined}
|
|
960
1059
|
* @memberof LocusInfo
|
|
961
1060
|
*/
|
|
962
|
-
updateReplace(replace) {
|
|
1061
|
+
updateReplace(replace: object) {
|
|
963
1062
|
if (replace && !isEqual(this.replace, replace)) {
|
|
964
1063
|
this.replace = replace;
|
|
965
1064
|
}
|
|
@@ -973,8 +1072,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
973
1072
|
* @memberof LocusInfo
|
|
974
1073
|
* emits internal events self_admitted_guest, self_unadmitted_guest, locus_info_update_self
|
|
975
1074
|
*/
|
|
976
|
-
updateSelf(self, participants) {
|
|
1075
|
+
updateSelf(self: any, participants: Array<any>) {
|
|
1076
|
+
// @ts-ignore - check where this.self come from
|
|
977
1077
|
if (self && !isEqual(this.self, self)) {
|
|
1078
|
+
// @ts-ignore
|
|
978
1079
|
const parsedSelves = SelfUtils.getSelves(this.self, self, this.webex.internal.device.url);
|
|
979
1080
|
|
|
980
1081
|
this.updateMeeting(parsedSelves.current);
|
|
@@ -1000,8 +1101,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1000
1101
|
|
|
1001
1102
|
if (parsedSelves.updates.moderatorChanged) {
|
|
1002
1103
|
this.compareAndUpdateFlags.compareHostAndSelf = true;
|
|
1003
|
-
}
|
|
1004
|
-
else {
|
|
1104
|
+
} else {
|
|
1005
1105
|
this.compareAndUpdateFlags.compareHostAndSelf = false;
|
|
1006
1106
|
}
|
|
1007
1107
|
|
|
@@ -1016,6 +1116,17 @@ export default class LocusInfo extends EventsScope {
|
|
|
1016
1116
|
);
|
|
1017
1117
|
}
|
|
1018
1118
|
|
|
1119
|
+
if (parsedSelves.updates.breakoutsChanged) {
|
|
1120
|
+
this.emitScoped(
|
|
1121
|
+
{
|
|
1122
|
+
file: 'locus-info',
|
|
1123
|
+
function: 'updateSelf',
|
|
1124
|
+
},
|
|
1125
|
+
LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED,
|
|
1126
|
+
{breakoutSessions: parsedSelves.current.breakoutSessions}
|
|
1127
|
+
);
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1019
1130
|
if (parsedSelves.updates.isMediaInactiveOrReleased) {
|
|
1020
1131
|
this.emitScoped(
|
|
1021
1132
|
{
|
|
@@ -1037,6 +1148,19 @@ export default class LocusInfo extends EventsScope {
|
|
|
1037
1148
|
self
|
|
1038
1149
|
);
|
|
1039
1150
|
}
|
|
1151
|
+
if (parsedSelves.updates.isVideoMutedByOthersChanged) {
|
|
1152
|
+
this.emitScoped(
|
|
1153
|
+
{
|
|
1154
|
+
file: 'locus-info',
|
|
1155
|
+
function: 'updateSelf',
|
|
1156
|
+
},
|
|
1157
|
+
LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
|
|
1158
|
+
{
|
|
1159
|
+
muted: parsedSelves.current.remoteVideoMuted,
|
|
1160
|
+
// unmuteAllowed: not part of .self
|
|
1161
|
+
}
|
|
1162
|
+
);
|
|
1163
|
+
}
|
|
1040
1164
|
if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
|
|
1041
1165
|
this.emitScoped(
|
|
1042
1166
|
{
|
|
@@ -1100,6 +1224,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1100
1224
|
file: 'locus-info',
|
|
1101
1225
|
function: 'updateSelf',
|
|
1102
1226
|
},
|
|
1227
|
+
// @ts-ignore
|
|
1103
1228
|
LOCUSINFO.EVENTS.MEDIA_INACTIVITY,
|
|
1104
1229
|
SelfUtils.getMediaStatus(self.mediaSessions)
|
|
1105
1230
|
);
|
|
@@ -1168,9 +1293,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
1168
1293
|
}
|
|
1169
1294
|
);
|
|
1170
1295
|
this.parsedLocus.self = parsedSelves.current;
|
|
1296
|
+
// @ts-ignore
|
|
1171
1297
|
this.self = self;
|
|
1172
|
-
}
|
|
1173
|
-
else {
|
|
1298
|
+
} else {
|
|
1174
1299
|
this.compareAndUpdateFlags.compareHostAndSelf = false;
|
|
1175
1300
|
}
|
|
1176
1301
|
}
|
|
@@ -1181,7 +1306,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1181
1306
|
* @returns {undefined}
|
|
1182
1307
|
* emits internal event locus_info_update_url
|
|
1183
1308
|
*/
|
|
1184
|
-
updateLocusUrl(url) {
|
|
1309
|
+
updateLocusUrl(url: string) {
|
|
1185
1310
|
if (url && this.url !== url) {
|
|
1186
1311
|
this.url = url;
|
|
1187
1312
|
this.updateMeeting({locusUrl: url});
|
|
@@ -1201,7 +1326,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1201
1326
|
* @returns {undefined}
|
|
1202
1327
|
* @memberof LocusInfo
|
|
1203
1328
|
*/
|
|
1204
|
-
updateAclUrl(aclUrl) {
|
|
1329
|
+
updateAclUrl(aclUrl: string) {
|
|
1205
1330
|
if (aclUrl && !isEqual(this.aclUrl, aclUrl)) {
|
|
1206
1331
|
this.aclUrl = aclUrl;
|
|
1207
1332
|
}
|
|
@@ -1212,7 +1337,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1212
1337
|
* @returns {undefined}
|
|
1213
1338
|
* @memberof LocusInfo
|
|
1214
1339
|
*/
|
|
1215
|
-
updateBasequence(baseSequence) {
|
|
1340
|
+
updateBasequence(baseSequence: number) {
|
|
1216
1341
|
if (baseSequence && !isEqual(this.baseSequence, baseSequence)) {
|
|
1217
1342
|
this.baseSequence = baseSequence;
|
|
1218
1343
|
}
|
|
@@ -1223,7 +1348,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1223
1348
|
* @returns {undefined}
|
|
1224
1349
|
* @memberof LocusInfo
|
|
1225
1350
|
*/
|
|
1226
|
-
updateSequence(sequence) {
|
|
1351
|
+
updateSequence(sequence: number) {
|
|
1227
1352
|
if (sequence && !isEqual(this.sequence, sequence)) {
|
|
1228
1353
|
this.sequence = sequence;
|
|
1229
1354
|
}
|
|
@@ -1234,7 +1359,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1234
1359
|
* @returns {undefined}
|
|
1235
1360
|
* @memberof LocusInfo
|
|
1236
1361
|
*/
|
|
1237
|
-
updateMemberShip(membership) {
|
|
1362
|
+
updateMemberShip(membership: object) {
|
|
1238
1363
|
if (membership && !isEqual(this.membership, membership)) {
|
|
1239
1364
|
this.membership = membership;
|
|
1240
1365
|
}
|
|
@@ -1245,7 +1370,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1245
1370
|
* @returns {undefined}
|
|
1246
1371
|
* @memberof LocusInfo
|
|
1247
1372
|
*/
|
|
1248
|
-
updateIdentifiers(identities) {
|
|
1373
|
+
updateIdentifiers(identities: Array<any>) {
|
|
1249
1374
|
if (identities && !isEqual(this.identities, identities)) {
|
|
1250
1375
|
this.identities = identities;
|
|
1251
1376
|
}
|