@webex/plugin-meetings 3.0.0-beta.7 → 3.0.0-beta.71
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 +178 -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 +843 -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 +56 -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 +143 -52
- 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 +261 -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 +31 -29
- 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 +237 -198
- 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 +80 -89
- 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 +31 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2225 -2244
- 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 +63 -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 +26 -19
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +565 -552
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +26 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +151 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +100 -85
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +15 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +90 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +13 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +152 -204
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +35 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +76 -46
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +4 -14
- 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 +59 -156
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +116 -52
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +58 -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 +55 -74
- 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 +466 -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 +342 -460
- 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 +944 -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 +101 -0
- package/dist/types/meeting/index.d.ts +1720 -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 +31 -0
- package/dist/types/meetings/index.d.ts +315 -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 +156 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/member/util.d.ts +2 -0
- package/dist/types/members/collection.d.ts +29 -0
- package/dist/types/members/index.d.ts +343 -0
- package/dist/types/members/request.d.ts +58 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +2 -0
- package/dist/types/metrics/config.d.ts +171 -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 +68 -0
- package/dist/types/multistream/receiveSlot.d.ts +68 -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 +263 -0
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/personal-meeting-room/index.d.ts +47 -0
- package/dist/types/personal-meeting-room/request.d.ts +14 -0
- package/dist/types/personal-meeting-room/util.d.ts +2 -0
- package/dist/types/reachability/index.d.ts +152 -0
- package/dist/types/reachability/request.d.ts +37 -0
- package/dist/types/reactions/constants.d.ts +3 -0
- package/dist/types/reactions/reactions.d.ts +4 -0
- package/dist/types/reactions/reactions.type.d.ts +52 -0
- package/dist/types/reconnection-manager/index.d.ts +126 -0
- package/dist/types/recording-controller/enums.d.ts +7 -0
- package/dist/types/recording-controller/index.d.ts +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 +219 -0
- package/src/breakouts/breakout.ts +153 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/index.ts +745 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +44 -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 +92 -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 +240 -0
- package/src/controls-options-manager/util.ts +30 -0
- package/src/index.js +4 -1
- package/src/locus-info/controlsUtils.ts +141 -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} +211 -71
- 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} +183 -67
- 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 +67 -3
- package/src/meeting/{index.js → index.ts} +2605 -1605
- 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} +131 -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} +26 -3
- package/src/meetings/index.ts +1275 -0
- package/src/meetings/{request.js → request.ts} +34 -25
- package/src/meetings/{util.js → util.ts} +99 -33
- package/src/member/{index.js → index.ts} +124 -56
- package/src/member/types.ts +24 -0
- package/src/member/{util.js → util.ts} +105 -25
- package/src/members/{collection.js → collection.ts} +10 -2
- package/src/members/{index.js → index.ts} +281 -144
- package/src/members/{request.js → request.ts} +80 -16
- package/src/members/types.ts +28 -0
- package/src/members/{util.js → util.ts} +108 -55
- package/src/metrics/{config.js → config.ts} +255 -92
- package/src/metrics/{constants.js → constants.ts} +0 -6
- package/src/metrics/{index.js → index.ts} +110 -94
- package/src/multistream/mediaRequestManager.ts +144 -40
- package/src/multistream/receiveSlot.ts +69 -26
- package/src/multistream/receiveSlotManager.ts +50 -38
- package/src/multistream/remoteMedia.ts +30 -4
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +230 -66
- 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} +228 -120
- 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 +178 -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 +1252 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +54 -0
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/controls-options-manager/index.js +204 -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 +133 -34
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +303 -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 +165 -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 +29 -2
- package/test/unit/spec/meeting/index.js +2503 -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 +135 -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 +15 -1
- package/test/unit/spec/meetings/index.js +622 -263
- package/test/unit/spec/meetings/utils.js +65 -14
- package/test/unit/spec/member/index.js +24 -1
- package/test/unit/spec/member/util.js +359 -32
- package/test/unit/spec/members/index.js +294 -54
- package/test/unit/spec/members/request.js +50 -20
- package/test/unit/spec/members/utils.js +147 -4
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/multistream/mediaRequestManager.ts +369 -68
- package/test/unit/spec/multistream/receiveSlot.ts +76 -17
- package/test/unit/spec/multistream/receiveSlotManager.ts +60 -38
- package/test/unit/spec/multistream/remoteMedia.ts +32 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +549 -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.'
|
|
@@ -237,8 +276,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
237
276
|
this.updateParticipantDeltas(locus.participants);
|
|
238
277
|
this.scheduledMeeting = locus.meeting || null;
|
|
239
278
|
this.participants = locus.participants;
|
|
279
|
+
const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
|
|
240
280
|
this.updateLocusInfo(locus);
|
|
241
|
-
this.updateParticipants(locus.participants);
|
|
281
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
242
282
|
this.isMeetingActive();
|
|
243
283
|
this.handleOneOnOneEvent(eventType);
|
|
244
284
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
@@ -252,7 +292,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
252
292
|
* @returns {undefined}
|
|
253
293
|
* @memberof LocusInfo
|
|
254
294
|
*/
|
|
255
|
-
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
296
|
+
handleOneOnOneEvent(eventType: string) {
|
|
256
297
|
if (
|
|
257
298
|
this.parsedLocus.fullState.type === _CALL_ ||
|
|
258
299
|
this.parsedLocus.fullState.type === _SIP_BRIDGE_
|
|
@@ -295,9 +336,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
295
336
|
* @returns {undefined}
|
|
296
337
|
* @memberof LocusInfo
|
|
297
338
|
*/
|
|
298
|
-
onDeltaLocus(locus) {
|
|
339
|
+
onDeltaLocus(locus: any) {
|
|
340
|
+
const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
|
|
299
341
|
this.updateLocusInfo(locus);
|
|
300
|
-
this.updateParticipants(locus.participants);
|
|
342
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
301
343
|
this.isMeetingActive();
|
|
302
344
|
}
|
|
303
345
|
|
|
@@ -307,6 +349,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
307
349
|
* @memberof LocusInfo
|
|
308
350
|
*/
|
|
309
351
|
updateLocusInfo(locus) {
|
|
352
|
+
if (locus.self?.reason === 'MOVED' && locus.self?.state === 'LEFT') {
|
|
353
|
+
// When moved to a breakout session locus sends a message for the previous locus
|
|
354
|
+
// indicating that we have been moved. It isn't helpful to continue parsing this
|
|
355
|
+
// as it gets interpreted as if we have left the call
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
|
|
310
359
|
this.updateControls(locus.controls);
|
|
311
360
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
312
361
|
this.updateCreated(locus.created);
|
|
@@ -324,6 +373,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
324
373
|
this.updateMemberShip(locus.membership);
|
|
325
374
|
this.updateIdentifiers(locus.identities);
|
|
326
375
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
376
|
+
this.updateServices(locus.links?.services);
|
|
327
377
|
this.compareAndUpdate();
|
|
328
378
|
// update which required to compare different objects from locus
|
|
329
379
|
}
|
|
@@ -334,7 +384,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
334
384
|
* @returns {Array}
|
|
335
385
|
* @memberof LocusInfo
|
|
336
386
|
*/
|
|
337
|
-
getLocusPartner(participants
|
|
387
|
+
getLocusPartner(participants: Array<any>, self: any) {
|
|
338
388
|
if (!participants || participants.length === 0) {
|
|
339
389
|
return null;
|
|
340
390
|
}
|
|
@@ -345,6 +395,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
345
395
|
self &&
|
|
346
396
|
participant.identity !== self.identity &&
|
|
347
397
|
(participants.length <= 2 || (participant.type === _USER_ && !participant.removed))
|
|
398
|
+
// @ts-ignore
|
|
348
399
|
) || this.partner
|
|
349
400
|
);
|
|
350
401
|
}
|
|
@@ -359,6 +410,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
359
410
|
this.parsedLocus.fullState.type === _CALL_ ||
|
|
360
411
|
this.parsedLocus.fullState.type === _SIP_BRIDGE_
|
|
361
412
|
) {
|
|
413
|
+
// @ts-ignore
|
|
362
414
|
const partner = this.getLocusPartner(this.participants, this.self);
|
|
363
415
|
|
|
364
416
|
this.updateMeeting({partner});
|
|
@@ -390,8 +442,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
390
442
|
shouldLeave: false,
|
|
391
443
|
}
|
|
392
444
|
);
|
|
393
|
-
}
|
|
394
|
-
else if (
|
|
445
|
+
} else if (
|
|
395
446
|
partner.state === MEETING_STATE.STATES.LEFT &&
|
|
396
447
|
this.parsedLocus.self &&
|
|
397
448
|
(this.parsedLocus.self.state === MEETING_STATE.STATES.DECLINED ||
|
|
@@ -414,8 +465,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
414
465
|
this.parsedLocus.self.joinedWith && this.parsedLocus.self.joinedWith.state !== _LEFT_,
|
|
415
466
|
}
|
|
416
467
|
);
|
|
417
|
-
}
|
|
418
|
-
else if (
|
|
468
|
+
} else if (
|
|
419
469
|
this.parsedLocus.self &&
|
|
420
470
|
this.parsedLocus.self.state === MEETING_STATE.STATES.LEFT &&
|
|
421
471
|
(partner.state === MEETING_STATE.STATES.LEFT ||
|
|
@@ -439,11 +489,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
439
489
|
}
|
|
440
490
|
);
|
|
441
491
|
}
|
|
442
|
-
}
|
|
443
|
-
else if (this.parsedLocus.fullState.type === _MEETING_) {
|
|
492
|
+
} else if (this.parsedLocus.fullState.type === _MEETING_) {
|
|
444
493
|
if (
|
|
445
494
|
this.fullState &&
|
|
446
495
|
(this.fullState.state === LOCUS.STATE.INACTIVE ||
|
|
496
|
+
// @ts-ignore
|
|
447
497
|
this.fullState.state === LOCUS.STATE.TERMINATING)
|
|
448
498
|
) {
|
|
449
499
|
LoggerProxy.logger.warn(
|
|
@@ -464,8 +514,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
464
514
|
shouldLeave: false,
|
|
465
515
|
}
|
|
466
516
|
);
|
|
467
|
-
}
|
|
468
|
-
else if (this.fullState && this.fullState.removed) {
|
|
517
|
+
} else if (this.fullState && this.fullState.removed) {
|
|
469
518
|
// user has been dropped from a meeting
|
|
470
519
|
Metrics.postEvent({
|
|
471
520
|
event: eventType.REMOTE_ENDED,
|
|
@@ -499,8 +548,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
499
548
|
}
|
|
500
549
|
);
|
|
501
550
|
}
|
|
502
|
-
}
|
|
503
|
-
else {
|
|
551
|
+
} else {
|
|
504
552
|
LoggerProxy.logger.warn('Locus-info:index#isMeetingActive --> Meeting Type is unknown.');
|
|
505
553
|
}
|
|
506
554
|
}
|
|
@@ -543,8 +591,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
543
591
|
canAssignHost: true,
|
|
544
592
|
}
|
|
545
593
|
);
|
|
546
|
-
}
|
|
547
|
-
else {
|
|
594
|
+
} else {
|
|
548
595
|
this.emitScoped(
|
|
549
596
|
{
|
|
550
597
|
file: 'locus-info',
|
|
@@ -565,13 +612,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
565
612
|
* @param {Array} [participants] - The participants to update against.
|
|
566
613
|
* @returns {void}
|
|
567
614
|
*/
|
|
568
|
-
updateParticipantDeltas(participants = []) {
|
|
615
|
+
updateParticipantDeltas(participants: Array<any> = []) {
|
|
569
616
|
// Used to find a participant within a participants collection.
|
|
570
617
|
const findParticipant = (participant, collection) =>
|
|
571
618
|
collection.find((item) => item.person.id === participant.person.id);
|
|
572
619
|
|
|
573
620
|
// Generates an object that indicates which state properties have changed.
|
|
574
|
-
const generateDelta = (prevState = {}, newState = {}) => {
|
|
621
|
+
const generateDelta = (prevState: any = {}, newState: any = {}) => {
|
|
575
622
|
// Setup deltas.
|
|
576
623
|
const deltas = {
|
|
577
624
|
audioStatus: prevState.audioStatus !== newState.audioStatus,
|
|
@@ -608,13 +655,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
608
655
|
}
|
|
609
656
|
|
|
610
657
|
/**
|
|
611
|
-
*
|
|
658
|
+
* update meeting's members
|
|
612
659
|
* @param {Object} participants new participants object
|
|
613
|
-
* @param {
|
|
660
|
+
* @param {Boolean} isReplace is replace the whole members
|
|
614
661
|
* @returns {Array} updatedParticipants
|
|
615
662
|
* @memberof LocusInfo
|
|
616
663
|
*/
|
|
617
|
-
updateParticipants(participants) {
|
|
664
|
+
updateParticipants(participants: object, isReplace?: boolean) {
|
|
618
665
|
this.emitScoped(
|
|
619
666
|
{
|
|
620
667
|
file: 'locus-info',
|
|
@@ -627,6 +674,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
627
674
|
selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
|
|
628
675
|
selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
|
|
629
676
|
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,
|
|
677
|
+
isReplace,
|
|
630
678
|
}
|
|
631
679
|
);
|
|
632
680
|
}
|
|
@@ -636,7 +684,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
636
684
|
* @returns {undefined}
|
|
637
685
|
* @memberof LocusInfo
|
|
638
686
|
*/
|
|
639
|
-
updateControls(controls) {
|
|
687
|
+
updateControls(controls: object) {
|
|
640
688
|
if (controls && !isEqual(this.controls, controls)) {
|
|
641
689
|
this.parsedLocus.controls = ControlsUtils.parse(controls);
|
|
642
690
|
const {
|
|
@@ -646,6 +694,8 @@ export default class LocusInfo extends EventsScope {
|
|
|
646
694
|
hasMeetingContainerChanged,
|
|
647
695
|
hasTranscribeChanged,
|
|
648
696
|
hasEntryExitToneChanged,
|
|
697
|
+
hasBreakoutChanged,
|
|
698
|
+
hasVideoEnabledChanged,
|
|
649
699
|
},
|
|
650
700
|
current,
|
|
651
701
|
} = ControlsUtils.getControls(this.controls, controls);
|
|
@@ -656,13 +706,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
656
706
|
if (hasRecordingPausedChanged) {
|
|
657
707
|
if (current.record.paused) {
|
|
658
708
|
state = RECORDING_STATE.PAUSED;
|
|
659
|
-
}
|
|
660
|
-
else {
|
|
709
|
+
} else {
|
|
661
710
|
// state will be `IDLE` if the recording is not active, even when there is a `pause` status change.
|
|
662
711
|
state = current.record.recording ? RECORDING_STATE.RESUMED : RECORDING_STATE.IDLE;
|
|
663
712
|
}
|
|
664
|
-
}
|
|
665
|
-
else if (hasRecordingChanged) {
|
|
713
|
+
} else if (hasRecordingChanged) {
|
|
666
714
|
state = current.record.recording ? RECORDING_STATE.RECORDING : RECORDING_STATE.IDLE;
|
|
667
715
|
}
|
|
668
716
|
|
|
@@ -711,9 +759,26 @@ export default class LocusInfo extends EventsScope {
|
|
|
711
759
|
);
|
|
712
760
|
}
|
|
713
761
|
|
|
762
|
+
if (hasBreakoutChanged) {
|
|
763
|
+
const {breakout} = current;
|
|
764
|
+
|
|
765
|
+
this.emitScoped(
|
|
766
|
+
{
|
|
767
|
+
file: 'locus-info',
|
|
768
|
+
function: 'updateControls',
|
|
769
|
+
},
|
|
770
|
+
LOCUSINFO.EVENTS.CONTROLS_MEETING_BREAKOUT_UPDATED,
|
|
771
|
+
{
|
|
772
|
+
breakout,
|
|
773
|
+
}
|
|
774
|
+
);
|
|
775
|
+
}
|
|
776
|
+
|
|
714
777
|
if (hasEntryExitToneChanged) {
|
|
715
778
|
const {entryExitTone} = current;
|
|
716
779
|
|
|
780
|
+
this.updateMeeting({entryExitTone});
|
|
781
|
+
|
|
717
782
|
this.emitScoped(
|
|
718
783
|
{
|
|
719
784
|
file: 'locus-info',
|
|
@@ -721,11 +786,29 @@ export default class LocusInfo extends EventsScope {
|
|
|
721
786
|
},
|
|
722
787
|
LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED,
|
|
723
788
|
{
|
|
724
|
-
entryExitTone
|
|
789
|
+
entryExitTone,
|
|
725
790
|
}
|
|
726
791
|
);
|
|
792
|
+
}
|
|
727
793
|
|
|
728
|
-
|
|
794
|
+
// videoEnabled is handled differently than other controls,
|
|
795
|
+
// to fit with audio mute status logic
|
|
796
|
+
if (hasVideoEnabledChanged) {
|
|
797
|
+
const {videoEnabled} = current;
|
|
798
|
+
|
|
799
|
+
this.updateMeeting({unmuteVideoAllowed: videoEnabled});
|
|
800
|
+
|
|
801
|
+
this.emitScoped(
|
|
802
|
+
{
|
|
803
|
+
file: 'locus-info',
|
|
804
|
+
function: 'updateControls',
|
|
805
|
+
},
|
|
806
|
+
LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
|
|
807
|
+
{
|
|
808
|
+
// muted: not part of locus.controls
|
|
809
|
+
unmuteAllowed: videoEnabled,
|
|
810
|
+
}
|
|
811
|
+
);
|
|
729
812
|
}
|
|
730
813
|
|
|
731
814
|
this.controls = controls;
|
|
@@ -738,12 +821,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
738
821
|
* @returns {undefined}
|
|
739
822
|
* @memberof LocusInfo
|
|
740
823
|
*/
|
|
741
|
-
updateConversationUrl(conversationUrl, info) {
|
|
824
|
+
updateConversationUrl(conversationUrl: string, info: any) {
|
|
742
825
|
if (conversationUrl && !isEqual(this.conversationUrl, conversationUrl)) {
|
|
743
826
|
this.conversationUrl = conversationUrl;
|
|
744
827
|
this.updateMeeting({conversationUrl});
|
|
745
|
-
}
|
|
746
|
-
else if (
|
|
828
|
+
} else if (
|
|
747
829
|
info &&
|
|
748
830
|
info.conversationUrl &&
|
|
749
831
|
!isEqual(this.conversationUrl, info.conversationUrl)
|
|
@@ -758,18 +840,39 @@ export default class LocusInfo extends EventsScope {
|
|
|
758
840
|
* @returns {undefined}
|
|
759
841
|
* @memberof LocusInfo
|
|
760
842
|
*/
|
|
761
|
-
updateCreated(created) {
|
|
843
|
+
updateCreated(created: object) {
|
|
762
844
|
if (created && !isEqual(this.created, created)) {
|
|
763
845
|
this.created = created;
|
|
764
846
|
}
|
|
765
847
|
}
|
|
766
848
|
|
|
849
|
+
/**
|
|
850
|
+
* @param {Object} services
|
|
851
|
+
* @returns {undefined}
|
|
852
|
+
* @memberof LocusInfo
|
|
853
|
+
*/
|
|
854
|
+
updateServices(services: Record<'breakout' | 'record', {url: string}>) {
|
|
855
|
+
if (services && !isEqual(this.services, services)) {
|
|
856
|
+
this.services = services;
|
|
857
|
+
this.emitScoped(
|
|
858
|
+
{
|
|
859
|
+
file: 'locus-info',
|
|
860
|
+
function: 'updateServices',
|
|
861
|
+
},
|
|
862
|
+
LOCUSINFO.EVENTS.LINKS_SERVICES,
|
|
863
|
+
{
|
|
864
|
+
services,
|
|
865
|
+
}
|
|
866
|
+
);
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
|
|
767
870
|
/**
|
|
768
871
|
* @param {Object} fullState
|
|
769
872
|
* @returns {undefined}
|
|
770
873
|
* @memberof LocusInfo
|
|
771
874
|
*/
|
|
772
|
-
updateFullState(fullState) {
|
|
875
|
+
updateFullState(fullState: object) {
|
|
773
876
|
if (fullState && !isEqual(this.fullState, fullState)) {
|
|
774
877
|
const result = FullState.getFullState(this.fullState, fullState);
|
|
775
878
|
|
|
@@ -813,7 +916,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
813
916
|
* @memberof LocusInfo
|
|
814
917
|
* emits internal event locus_info_update_host
|
|
815
918
|
*/
|
|
816
|
-
updateHostInfo(host) {
|
|
919
|
+
updateHostInfo(host: object) {
|
|
817
920
|
if (host && !isEqual(this.host, host)) {
|
|
818
921
|
const parsedHosts = HostUtils.getHosts(this.host, host);
|
|
819
922
|
|
|
@@ -834,8 +937,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
834
937
|
);
|
|
835
938
|
}
|
|
836
939
|
this.host = host;
|
|
837
|
-
}
|
|
838
|
-
else {
|
|
940
|
+
} else {
|
|
839
941
|
this.compareAndUpdateFlags.compareSelfAndHost = false;
|
|
840
942
|
}
|
|
841
943
|
}
|
|
@@ -846,7 +948,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
846
948
|
* @returns {undefined}
|
|
847
949
|
* @memberof LocusInfo
|
|
848
950
|
*/
|
|
849
|
-
updateMeetingInfo(info, self) {
|
|
951
|
+
updateMeetingInfo(info: object, self?: object) {
|
|
850
952
|
if (info && !isEqual(this.info, info)) {
|
|
851
953
|
const roles = self ? SelfUtils.getRoles(self) : this.parsedLocus.self?.roles || [];
|
|
852
954
|
const isJoined = SelfUtils.isJoined(self || this.parsedLocus.self);
|
|
@@ -894,7 +996,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
894
996
|
* @returns {undefined}
|
|
895
997
|
* @memberof LocusInfo
|
|
896
998
|
*/
|
|
897
|
-
updateEmbeddedApps(embeddedApps) {
|
|
999
|
+
updateEmbeddedApps(embeddedApps: object) {
|
|
898
1000
|
// don't do anything if the arrays of apps haven't changed significantly
|
|
899
1001
|
if (EmbeddedAppsUtils.areSimilar(this.embeddedApps, embeddedApps)) {
|
|
900
1002
|
return;
|
|
@@ -922,11 +1024,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
922
1024
|
* @memberof LocusInfo
|
|
923
1025
|
* emits internal event locus_info_update_media_shares
|
|
924
1026
|
*/
|
|
925
|
-
updateMediaShares(mediaShares) {
|
|
1027
|
+
updateMediaShares(mediaShares: object) {
|
|
926
1028
|
if (mediaShares && !isEqual(this.mediaShares, mediaShares)) {
|
|
927
1029
|
const parsedMediaShares = MediaSharesUtils.getMediaShares(this.mediaShares, mediaShares);
|
|
928
1030
|
|
|
929
1031
|
this.updateMeeting(parsedMediaShares.current);
|
|
1032
|
+
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
1033
|
+
this.mediaShares = mediaShares;
|
|
930
1034
|
this.emitScoped(
|
|
931
1035
|
{
|
|
932
1036
|
file: 'locus-info',
|
|
@@ -938,8 +1042,6 @@ export default class LocusInfo extends EventsScope {
|
|
|
938
1042
|
previous: parsedMediaShares.previous,
|
|
939
1043
|
}
|
|
940
1044
|
);
|
|
941
|
-
this.parsedLocus.mediaShares = parsedMediaShares.current;
|
|
942
|
-
this.mediaShares = mediaShares;
|
|
943
1045
|
}
|
|
944
1046
|
}
|
|
945
1047
|
|
|
@@ -948,7 +1050,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
948
1050
|
* @returns {undefined}
|
|
949
1051
|
* @memberof LocusInfo
|
|
950
1052
|
*/
|
|
951
|
-
updateParticipantsUrl(participantsUrl) {
|
|
1053
|
+
updateParticipantsUrl(participantsUrl: string) {
|
|
952
1054
|
if (participantsUrl && !isEqual(this.participantsUrl, participantsUrl)) {
|
|
953
1055
|
this.participantsUrl = participantsUrl;
|
|
954
1056
|
}
|
|
@@ -959,7 +1061,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
959
1061
|
* @returns {undefined}
|
|
960
1062
|
* @memberof LocusInfo
|
|
961
1063
|
*/
|
|
962
|
-
updateReplace(replace) {
|
|
1064
|
+
updateReplace(replace: object) {
|
|
963
1065
|
if (replace && !isEqual(this.replace, replace)) {
|
|
964
1066
|
this.replace = replace;
|
|
965
1067
|
}
|
|
@@ -973,8 +1075,10 @@ export default class LocusInfo extends EventsScope {
|
|
|
973
1075
|
* @memberof LocusInfo
|
|
974
1076
|
* emits internal events self_admitted_guest, self_unadmitted_guest, locus_info_update_self
|
|
975
1077
|
*/
|
|
976
|
-
updateSelf(self, participants) {
|
|
1078
|
+
updateSelf(self: any, participants: Array<any>) {
|
|
1079
|
+
// @ts-ignore - check where this.self come from
|
|
977
1080
|
if (self && !isEqual(this.self, self)) {
|
|
1081
|
+
// @ts-ignore
|
|
978
1082
|
const parsedSelves = SelfUtils.getSelves(this.self, self, this.webex.internal.device.url);
|
|
979
1083
|
|
|
980
1084
|
this.updateMeeting(parsedSelves.current);
|
|
@@ -1000,8 +1104,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1000
1104
|
|
|
1001
1105
|
if (parsedSelves.updates.moderatorChanged) {
|
|
1002
1106
|
this.compareAndUpdateFlags.compareHostAndSelf = true;
|
|
1003
|
-
}
|
|
1004
|
-
else {
|
|
1107
|
+
} else {
|
|
1005
1108
|
this.compareAndUpdateFlags.compareHostAndSelf = false;
|
|
1006
1109
|
}
|
|
1007
1110
|
|
|
@@ -1016,6 +1119,17 @@ export default class LocusInfo extends EventsScope {
|
|
|
1016
1119
|
);
|
|
1017
1120
|
}
|
|
1018
1121
|
|
|
1122
|
+
if (parsedSelves.updates.breakoutsChanged) {
|
|
1123
|
+
this.emitScoped(
|
|
1124
|
+
{
|
|
1125
|
+
file: 'locus-info',
|
|
1126
|
+
function: 'updateSelf',
|
|
1127
|
+
},
|
|
1128
|
+
LOCUSINFO.EVENTS.SELF_MEETING_BREAKOUTS_CHANGED,
|
|
1129
|
+
{breakoutSessions: parsedSelves.current.breakoutSessions}
|
|
1130
|
+
);
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1019
1133
|
if (parsedSelves.updates.isMediaInactiveOrReleased) {
|
|
1020
1134
|
this.emitScoped(
|
|
1021
1135
|
{
|
|
@@ -1037,6 +1151,31 @@ export default class LocusInfo extends EventsScope {
|
|
|
1037
1151
|
self
|
|
1038
1152
|
);
|
|
1039
1153
|
}
|
|
1154
|
+
// When the user upgrades to moderator or cohost
|
|
1155
|
+
if (parsedSelves.updates.isUpgradeToModeratorOrCohost) {
|
|
1156
|
+
this.emitScoped(
|
|
1157
|
+
{
|
|
1158
|
+
file: 'locus-info',
|
|
1159
|
+
function: 'updateSelf',
|
|
1160
|
+
},
|
|
1161
|
+
LOCUSINFO.EVENTS.SELF_MODERATOR_OR_COHOST_UPGRADE,
|
|
1162
|
+
self
|
|
1163
|
+
);
|
|
1164
|
+
}
|
|
1165
|
+
//
|
|
1166
|
+
if (parsedSelves.updates.isVideoMutedByOthersChanged) {
|
|
1167
|
+
this.emitScoped(
|
|
1168
|
+
{
|
|
1169
|
+
file: 'locus-info',
|
|
1170
|
+
function: 'updateSelf',
|
|
1171
|
+
},
|
|
1172
|
+
LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED,
|
|
1173
|
+
{
|
|
1174
|
+
muted: parsedSelves.current.remoteVideoMuted,
|
|
1175
|
+
// unmuteAllowed: not part of .self
|
|
1176
|
+
}
|
|
1177
|
+
);
|
|
1178
|
+
}
|
|
1040
1179
|
if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
|
|
1041
1180
|
this.emitScoped(
|
|
1042
1181
|
{
|
|
@@ -1100,6 +1239,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1100
1239
|
file: 'locus-info',
|
|
1101
1240
|
function: 'updateSelf',
|
|
1102
1241
|
},
|
|
1242
|
+
// @ts-ignore
|
|
1103
1243
|
LOCUSINFO.EVENTS.MEDIA_INACTIVITY,
|
|
1104
1244
|
SelfUtils.getMediaStatus(self.mediaSessions)
|
|
1105
1245
|
);
|
|
@@ -1168,9 +1308,9 @@ export default class LocusInfo extends EventsScope {
|
|
|
1168
1308
|
}
|
|
1169
1309
|
);
|
|
1170
1310
|
this.parsedLocus.self = parsedSelves.current;
|
|
1311
|
+
// @ts-ignore
|
|
1171
1312
|
this.self = self;
|
|
1172
|
-
}
|
|
1173
|
-
else {
|
|
1313
|
+
} else {
|
|
1174
1314
|
this.compareAndUpdateFlags.compareHostAndSelf = false;
|
|
1175
1315
|
}
|
|
1176
1316
|
}
|
|
@@ -1181,7 +1321,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1181
1321
|
* @returns {undefined}
|
|
1182
1322
|
* emits internal event locus_info_update_url
|
|
1183
1323
|
*/
|
|
1184
|
-
updateLocusUrl(url) {
|
|
1324
|
+
updateLocusUrl(url: string) {
|
|
1185
1325
|
if (url && this.url !== url) {
|
|
1186
1326
|
this.url = url;
|
|
1187
1327
|
this.updateMeeting({locusUrl: url});
|
|
@@ -1201,7 +1341,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1201
1341
|
* @returns {undefined}
|
|
1202
1342
|
* @memberof LocusInfo
|
|
1203
1343
|
*/
|
|
1204
|
-
updateAclUrl(aclUrl) {
|
|
1344
|
+
updateAclUrl(aclUrl: string) {
|
|
1205
1345
|
if (aclUrl && !isEqual(this.aclUrl, aclUrl)) {
|
|
1206
1346
|
this.aclUrl = aclUrl;
|
|
1207
1347
|
}
|
|
@@ -1212,7 +1352,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1212
1352
|
* @returns {undefined}
|
|
1213
1353
|
* @memberof LocusInfo
|
|
1214
1354
|
*/
|
|
1215
|
-
updateBasequence(baseSequence) {
|
|
1355
|
+
updateBasequence(baseSequence: number) {
|
|
1216
1356
|
if (baseSequence && !isEqual(this.baseSequence, baseSequence)) {
|
|
1217
1357
|
this.baseSequence = baseSequence;
|
|
1218
1358
|
}
|
|
@@ -1223,7 +1363,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1223
1363
|
* @returns {undefined}
|
|
1224
1364
|
* @memberof LocusInfo
|
|
1225
1365
|
*/
|
|
1226
|
-
updateSequence(sequence) {
|
|
1366
|
+
updateSequence(sequence: number) {
|
|
1227
1367
|
if (sequence && !isEqual(this.sequence, sequence)) {
|
|
1228
1368
|
this.sequence = sequence;
|
|
1229
1369
|
}
|
|
@@ -1234,7 +1374,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1234
1374
|
* @returns {undefined}
|
|
1235
1375
|
* @memberof LocusInfo
|
|
1236
1376
|
*/
|
|
1237
|
-
updateMemberShip(membership) {
|
|
1377
|
+
updateMemberShip(membership: object) {
|
|
1238
1378
|
if (membership && !isEqual(this.membership, membership)) {
|
|
1239
1379
|
this.membership = membership;
|
|
1240
1380
|
}
|
|
@@ -1245,7 +1385,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1245
1385
|
* @returns {undefined}
|
|
1246
1386
|
* @memberof LocusInfo
|
|
1247
1387
|
*/
|
|
1248
|
-
updateIdentifiers(identities) {
|
|
1388
|
+
updateIdentifiers(identities: Array<any>) {
|
|
1249
1389
|
if (identities && !isEqual(this.identities, identities)) {
|
|
1250
1390
|
this.identities = identities;
|
|
1251
1391
|
}
|