@webex/plugin-meetings 3.0.0-beta.31 → 3.0.0-beta.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +709 -35
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.js +233 -29
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +383 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +61 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3777 -2929
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +260 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +415 -115
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +72 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +102 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +13 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +201 -156
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +62 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +95 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +86 -78
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +11 -10
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -7
- package/dist/types/constants.d.ts +194 -24
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
- package/dist/types/meeting/index.d.ts +463 -510
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +98 -20
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +12 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +21 -3
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- package/src/breakouts/utils.ts +42 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +44 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -10
- package/src/constants.ts +221 -19
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +3132 -2541
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +177 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +445 -123
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +80 -11
- package/src/member/index.ts +58 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +134 -8
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +12 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +31 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +83 -56
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +63 -32
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +48 -26
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +105 -91
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +118 -28
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1395 -69
- package/test/unit/spec/breakouts/utils.js +52 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +5216 -1956
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +483 -49
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1011 -205
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +28 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +85 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +178 -64
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +82 -36
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +136 -2
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
package/dist/locus-info/index.js
CHANGED
|
@@ -15,12 +15,13 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
|
|
|
15
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
17
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
18
|
+
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
|
19
|
+
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
20
|
+
var _assignWith2 = _interopRequireDefault(require("lodash/assignWith"));
|
|
18
21
|
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
|
19
22
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
20
23
|
var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
|
|
21
24
|
var _constants = require("../constants");
|
|
22
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
23
|
-
var _config = require("../metrics/config");
|
|
24
25
|
var _infoUtils = _interopRequireDefault(require("./infoUtils"));
|
|
25
26
|
var _fullState = _interopRequireDefault(require("./fullState"));
|
|
26
27
|
var _selfUtils = _interopRequireDefault(require("./selfUtils"));
|
|
@@ -29,6 +30,8 @@ var _controlsUtils = _interopRequireDefault(require("./controlsUtils"));
|
|
|
29
30
|
var _embeddedAppsUtils = _interopRequireDefault(require("./embeddedAppsUtils"));
|
|
30
31
|
var _mediaSharesUtils = _interopRequireDefault(require("./mediaSharesUtils"));
|
|
31
32
|
var _parser = _interopRequireDefault(require("./parser"));
|
|
33
|
+
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
34
|
+
var _constants2 = _interopRequireDefault(require("../metrics/constants"));
|
|
32
35
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
33
36
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
34
37
|
/**
|
|
@@ -40,6 +43,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
40
43
|
var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
41
44
|
(0, _inherits2.default)(LocusInfo, _EventsScope);
|
|
42
45
|
var _super = _createSuper(LocusInfo);
|
|
46
|
+
/**
|
|
47
|
+
* Constructor
|
|
48
|
+
* @param {function} updateMeeting callback to update the meeting object from an object
|
|
49
|
+
* @param {object} webex
|
|
50
|
+
* @param {string} meetingId
|
|
51
|
+
* @returns {undefined}
|
|
52
|
+
*/
|
|
43
53
|
function LocusInfo(updateMeeting, webex, meetingId) {
|
|
44
54
|
var _this;
|
|
45
55
|
(0, _classCallCheck2.default)(this, LocusInfo);
|
|
@@ -68,10 +78,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
68
78
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fullState", void 0);
|
|
69
79
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "host", void 0);
|
|
70
80
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "info", void 0);
|
|
81
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "roles", void 0);
|
|
71
82
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mediaShares", void 0);
|
|
72
83
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "replace", void 0);
|
|
73
84
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "url", void 0);
|
|
74
85
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "services", void 0);
|
|
86
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mainSessionLocusCache", void 0);
|
|
75
87
|
_this.parsedLocus = {
|
|
76
88
|
states: []
|
|
77
89
|
};
|
|
@@ -85,38 +97,95 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
85
97
|
}
|
|
86
98
|
|
|
87
99
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* @param {Locus} locus
|
|
100
|
+
* Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.
|
|
101
|
+
*
|
|
91
102
|
* @param {Meeting} meeting
|
|
92
103
|
* @returns {undefined}
|
|
93
104
|
*/
|
|
94
105
|
(0, _createClass2.default)(LocusInfo, [{
|
|
106
|
+
key: "doLocusSync",
|
|
107
|
+
value: function doLocusSync(meeting) {
|
|
108
|
+
var _this2 = this;
|
|
109
|
+
var isDelta;
|
|
110
|
+
var url;
|
|
111
|
+
if (this.locusParser.workingCopy.syncUrl) {
|
|
112
|
+
url = this.locusParser.workingCopy.syncUrl;
|
|
113
|
+
isDelta = true;
|
|
114
|
+
} else {
|
|
115
|
+
url = meeting.locusUrl;
|
|
116
|
+
isDelta = false;
|
|
117
|
+
}
|
|
118
|
+
_loggerProxy.default.logger.info("Locus-info:index#doLocusSync --> doing Locus sync (getting ".concat(isDelta ? 'delta' : 'full', " DTO)"));
|
|
119
|
+
|
|
120
|
+
// return value ignored on purpose
|
|
121
|
+
meeting.meetingRequest.getLocusDTO({
|
|
122
|
+
url: url
|
|
123
|
+
}).catch(function (e) {
|
|
124
|
+
if (isDelta) {
|
|
125
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> delta sync failed, falling back to full sync');
|
|
126
|
+
_metrics.default.sendBehavioralMetric(_constants2.default.LOCUS_DELTA_SYNC_FAILED, {
|
|
127
|
+
correlationId: meeting.correlationId,
|
|
128
|
+
url: url,
|
|
129
|
+
reason: e.message,
|
|
130
|
+
errorName: e.name,
|
|
131
|
+
stack: e.stack,
|
|
132
|
+
code: e.code
|
|
133
|
+
});
|
|
134
|
+
isDelta = false;
|
|
135
|
+
return meeting.meetingRequest.getLocusDTO({
|
|
136
|
+
url: meeting.locusUrl
|
|
137
|
+
}).catch(function (err) {
|
|
138
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
|
139
|
+
_this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
140
|
+
throw err;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> fallback full sync failed, destroying the meeting');
|
|
144
|
+
_this2.webex.meetings.destroy(meeting, _constants.MEETING_REMOVED_REASON.LOCUS_DTO_SYNC_FAILED);
|
|
145
|
+
throw e;
|
|
146
|
+
}).then(function (res) {
|
|
147
|
+
if (isDelta) {
|
|
148
|
+
if (!(0, _isEmpty2.default)(res.body)) {
|
|
149
|
+
meeting.locusInfo.handleLocusDelta(res.body, meeting);
|
|
150
|
+
} else {
|
|
151
|
+
_loggerProxy.default.logger.info('Locus-info:index#doLocusSync --> received empty body from syncUrl, so we already have latest Locus DTO');
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
meeting.locusInfo.onFullLocus(res.body);
|
|
155
|
+
}
|
|
156
|
+
// Notify parser to resume processing delta events.
|
|
157
|
+
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
|
158
|
+
_this2.locusParser.resume();
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Apply locus delta data to meeting
|
|
164
|
+
* @param {string} action Locus delta action
|
|
165
|
+
* @param {Locus} locus
|
|
166
|
+
* @param {Meeting} meeting
|
|
167
|
+
* @returns {undefined}
|
|
168
|
+
*/
|
|
169
|
+
}, {
|
|
95
170
|
key: "applyLocusDeltaData",
|
|
96
171
|
value: function applyLocusDeltaData(action, locus, meeting) {
|
|
97
|
-
var _this2 = this;
|
|
98
172
|
var _LocusDeltaParser$loc = _parser.default.loci,
|
|
99
173
|
DESYNC = _LocusDeltaParser$loc.DESYNC,
|
|
100
174
|
USE_CURRENT = _LocusDeltaParser$loc.USE_CURRENT,
|
|
101
|
-
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING
|
|
175
|
+
USE_INCOMING = _LocusDeltaParser$loc.USE_INCOMING,
|
|
176
|
+
WAIT = _LocusDeltaParser$loc.WAIT,
|
|
177
|
+
LOCUS_URL_CHANGED = _LocusDeltaParser$loc.LOCUS_URL_CHANGED;
|
|
102
178
|
switch (action) {
|
|
103
179
|
case USE_INCOMING:
|
|
104
180
|
meeting.locusInfo.onDeltaLocus(locus);
|
|
105
181
|
break;
|
|
106
182
|
case USE_CURRENT:
|
|
107
|
-
|
|
108
|
-
|
|
183
|
+
case WAIT:
|
|
184
|
+
// do nothing
|
|
109
185
|
break;
|
|
110
186
|
case DESYNC:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
locusUrl: meeting.locusUrl
|
|
114
|
-
}).then(function (res) {
|
|
115
|
-
meeting.locusInfo.onFullLocus(res.body);
|
|
116
|
-
// Notify parser to resume processing delta events
|
|
117
|
-
// now that we have full locus from DESYNC.
|
|
118
|
-
_this2.locusParser.resume();
|
|
119
|
-
});
|
|
187
|
+
case LOCUS_URL_CHANGED:
|
|
188
|
+
this.doLocusSync(meeting);
|
|
120
189
|
break;
|
|
121
190
|
default:
|
|
122
191
|
_loggerProxy.default.logger.info("Locus-info:index#applyLocusDeltaData --> Unknown locus delta action: ".concat(action));
|
|
@@ -186,13 +255,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
186
255
|
* @member LocusInfo
|
|
187
256
|
*/
|
|
188
257
|
this.deltaParticipants = [];
|
|
189
|
-
|
|
258
|
+
this.updateLocusCache(locus);
|
|
190
259
|
// above section only updates the locusInfo object
|
|
191
260
|
// The below section makes sure it updates the locusInfo as well as updates the meeting object
|
|
192
261
|
this.updateParticipants(locus.participants);
|
|
193
262
|
// For 1:1 space meeting the conversation Url does not exist in locus.conversation
|
|
194
263
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
195
|
-
this.updateControls(locus.controls);
|
|
264
|
+
this.updateControls(locus.controls, locus.self);
|
|
196
265
|
this.updateLocusUrl(locus.url);
|
|
197
266
|
this.updateFullState(locus.fullState);
|
|
198
267
|
this.updateMeetingInfo(locus.info);
|
|
@@ -212,6 +281,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
212
281
|
}, {
|
|
213
282
|
key: "initialSetup",
|
|
214
283
|
value: function initialSetup(locus) {
|
|
284
|
+
this.updateLocusCache(locus);
|
|
215
285
|
this.onFullLocus(locus);
|
|
216
286
|
|
|
217
287
|
// Change it to true after it receives it first locus object
|
|
@@ -229,6 +299,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
229
299
|
value: function parse(meeting, data) {
|
|
230
300
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
231
301
|
var eventType = data.eventType;
|
|
302
|
+
var locus = this.getTheLocusToUpdate(data.locus);
|
|
232
303
|
_loggerProxy.default.logger.info("Locus-info:index#parse --> received locus data: ".concat(eventType));
|
|
233
304
|
switch (eventType) {
|
|
234
305
|
case _constants.LOCUSEVENT.PARTICIPANT_JOIN:
|
|
@@ -245,15 +316,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
245
316
|
case _constants.LOCUSEVENT.PARTICIPANT_DECLINED:
|
|
246
317
|
case _constants.LOCUSEVENT.FLOOR_GRANTED:
|
|
247
318
|
case _constants.LOCUSEVENT.FLOOR_RELEASED:
|
|
248
|
-
this.onFullLocus(
|
|
319
|
+
this.onFullLocus(locus, eventType);
|
|
249
320
|
break;
|
|
250
321
|
case _constants.LOCUSEVENT.DIFFERENCE:
|
|
251
|
-
this.handleLocusDelta(
|
|
322
|
+
this.handleLocusDelta(locus, meeting);
|
|
252
323
|
break;
|
|
253
324
|
default:
|
|
254
325
|
// Why will there be a event with no eventType ????
|
|
255
326
|
// we may not need this, we can get full locus
|
|
256
|
-
this.handleLocusDelta(
|
|
327
|
+
this.handleLocusDelta(locus, meeting);
|
|
257
328
|
}
|
|
258
329
|
}
|
|
259
330
|
|
|
@@ -277,18 +348,22 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
277
348
|
* @returns {object} null
|
|
278
349
|
* @memberof LocusInfo
|
|
279
350
|
*/
|
|
280
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
281
351
|
}, {
|
|
282
352
|
key: "onFullLocus",
|
|
283
353
|
value: function onFullLocus(locus, eventType) {
|
|
284
354
|
if (!locus) {
|
|
285
355
|
_loggerProxy.default.logger.error('Locus-info:index#onFullLocus --> object passed as argument was invalid, continuing.');
|
|
286
356
|
}
|
|
357
|
+
if (!this.locusParser.isNewFullLocus(locus)) {
|
|
358
|
+
_loggerProxy.default.logger.info("Locus-info:index#onFullLocus --> ignoring old full locus DTO, eventType=".concat(eventType));
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
287
361
|
this.updateParticipantDeltas(locus.participants);
|
|
288
362
|
this.scheduledMeeting = locus.meeting || null;
|
|
289
363
|
this.participants = locus.participants;
|
|
364
|
+
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
290
365
|
this.updateLocusInfo(locus);
|
|
291
|
-
this.updateParticipants(locus.participants);
|
|
366
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
292
367
|
this.isMeetingActive();
|
|
293
368
|
this.handleOneOnOneEvent(eventType);
|
|
294
369
|
this.updateEmbeddedApps(locus.embeddedApps);
|
|
@@ -340,8 +415,9 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
340
415
|
}, {
|
|
341
416
|
key: "onDeltaLocus",
|
|
342
417
|
value: function onDeltaLocus(locus) {
|
|
418
|
+
var isReplaceMembers = _controlsUtils.default.isNeedReplaceMembers(this.controls, locus.controls);
|
|
343
419
|
this.updateLocusInfo(locus);
|
|
344
|
-
this.updateParticipants(locus.participants);
|
|
420
|
+
this.updateParticipants(locus.participants, isReplaceMembers);
|
|
345
421
|
this.isMeetingActive();
|
|
346
422
|
}
|
|
347
423
|
|
|
@@ -360,7 +436,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
360
436
|
// as it gets interpreted as if we have left the call
|
|
361
437
|
return;
|
|
362
438
|
}
|
|
363
|
-
this.updateControls(locus.controls);
|
|
439
|
+
this.updateControls(locus.controls, locus.self);
|
|
364
440
|
this.updateConversationUrl(locus.conversationUrl, locus.info);
|
|
365
441
|
this.updateCreated(locus.created);
|
|
366
442
|
this.updateFullState(locus.fullState);
|
|
@@ -426,9 +502,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
426
502
|
if (this.fullState && this.fullState.state === _constants.LOCUS.STATE.INACTIVE) {
|
|
427
503
|
// TODO: update the meeting state
|
|
428
504
|
_loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.');
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
505
|
+
|
|
506
|
+
// @ts-ignore
|
|
507
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
508
|
+
name: 'client.call.remote-ended',
|
|
509
|
+
options: {
|
|
510
|
+
meetingId: this.meetingId
|
|
511
|
+
}
|
|
432
512
|
});
|
|
433
513
|
this.emitScoped({
|
|
434
514
|
file: 'locus-info',
|
|
@@ -438,9 +518,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
438
518
|
shouldLeave: false
|
|
439
519
|
});
|
|
440
520
|
} else if (partner.state === _constants.MEETING_STATE.STATES.LEFT && this.parsedLocus.self && (this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.DECLINED || this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.NOTIFIED || this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.JOINED)) {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
521
|
+
// @ts-ignore
|
|
522
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
523
|
+
name: 'client.call.remote-ended',
|
|
524
|
+
options: {
|
|
525
|
+
meetingId: this.meetingId
|
|
526
|
+
}
|
|
444
527
|
});
|
|
445
528
|
this.emitScoped({
|
|
446
529
|
file: 'locus-info',
|
|
@@ -451,9 +534,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
451
534
|
});
|
|
452
535
|
} else if (this.parsedLocus.self && this.parsedLocus.self.state === _constants.MEETING_STATE.STATES.LEFT && (partner.state === _constants.MEETING_STATE.STATES.LEFT || partner.state === _constants.MEETING_STATE.STATES.DECLINED || partner.state === _constants.MEETING_STATE.STATES.NOTIFIED || partner.state === _constants.MEETING_STATE.STATES.IDLE) // Happens when user just joins and adds no Media
|
|
453
536
|
) {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
537
|
+
// @ts-ignore
|
|
538
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
539
|
+
name: 'client.call.remote-ended',
|
|
540
|
+
options: {
|
|
541
|
+
meetingId: this.meetingId
|
|
542
|
+
}
|
|
457
543
|
});
|
|
458
544
|
this.emitScoped({
|
|
459
545
|
file: 'locus-info',
|
|
@@ -468,9 +554,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
468
554
|
// @ts-ignore
|
|
469
555
|
this.fullState.state === _constants.LOCUS.STATE.TERMINATING)) {
|
|
470
556
|
_loggerProxy.default.logger.warn('Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating');
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
557
|
+
|
|
558
|
+
// @ts-ignore
|
|
559
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
560
|
+
name: 'client.call.remote-ended',
|
|
561
|
+
options: {
|
|
562
|
+
meetingId: this.meetingId
|
|
563
|
+
}
|
|
474
564
|
});
|
|
475
565
|
this.emitScoped({
|
|
476
566
|
file: 'locus-info',
|
|
@@ -481,9 +571,13 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
481
571
|
});
|
|
482
572
|
} else if (this.fullState && this.fullState.removed) {
|
|
483
573
|
// user has been dropped from a meeting
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
574
|
+
|
|
575
|
+
// @ts-ignore
|
|
576
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
577
|
+
name: 'client.call.remote-ended',
|
|
578
|
+
options: {
|
|
579
|
+
meetingId: this.meetingId
|
|
580
|
+
}
|
|
487
581
|
});
|
|
488
582
|
this.emitScoped({
|
|
489
583
|
file: 'locus-info',
|
|
@@ -606,15 +700,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
606
700
|
}
|
|
607
701
|
|
|
608
702
|
/**
|
|
609
|
-
*
|
|
703
|
+
* update meeting's members
|
|
610
704
|
* @param {Object} participants new participants object
|
|
611
|
-
* @param {
|
|
705
|
+
* @param {Boolean} isReplace is replace the whole members
|
|
612
706
|
* @returns {Array} updatedParticipants
|
|
613
707
|
* @memberof LocusInfo
|
|
614
708
|
*/
|
|
615
709
|
}, {
|
|
616
710
|
key: "updateParticipants",
|
|
617
|
-
value: function updateParticipants(participants) {
|
|
711
|
+
value: function updateParticipants(participants, isReplace) {
|
|
618
712
|
var _this$parsedLocus$con;
|
|
619
713
|
this.emitScoped({
|
|
620
714
|
file: 'locus-info',
|
|
@@ -624,18 +718,20 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
624
718
|
recordingId: this.parsedLocus.controls && ((_this$parsedLocus$con = this.parsedLocus.controls.record) === null || _this$parsedLocus$con === void 0 ? void 0 : _this$parsedLocus$con.modifiedBy),
|
|
625
719
|
selfIdentity: this.parsedLocus.self && this.parsedLocus.self.selfIdentity,
|
|
626
720
|
selfId: this.parsedLocus.self && this.parsedLocus.self.selfId,
|
|
627
|
-
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId
|
|
721
|
+
hostId: this.parsedLocus.host && this.parsedLocus.host.hostId,
|
|
722
|
+
isReplace: isReplace
|
|
628
723
|
});
|
|
629
724
|
}
|
|
630
725
|
|
|
631
726
|
/**
|
|
632
727
|
* @param {Object} controls
|
|
728
|
+
* @param {Object} self
|
|
633
729
|
* @returns {undefined}
|
|
634
730
|
* @memberof LocusInfo
|
|
635
731
|
*/
|
|
636
732
|
}, {
|
|
637
733
|
key: "updateControls",
|
|
638
|
-
value: function updateControls(controls) {
|
|
734
|
+
value: function updateControls(controls, self) {
|
|
639
735
|
if (controls && !(0, _isEqual2.default)(this.controls, controls)) {
|
|
640
736
|
this.parsedLocus.controls = _controlsUtils.default.parse(controls);
|
|
641
737
|
var _ControlsUtils$getCon = _controlsUtils.default.getControls(this.controls, controls),
|
|
@@ -646,7 +742,73 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
646
742
|
hasTranscribeChanged = _ControlsUtils$getCon2.hasTranscribeChanged,
|
|
647
743
|
hasEntryExitToneChanged = _ControlsUtils$getCon2.hasEntryExitToneChanged,
|
|
648
744
|
hasBreakoutChanged = _ControlsUtils$getCon2.hasBreakoutChanged,
|
|
745
|
+
hasVideoEnabledChanged = _ControlsUtils$getCon2.hasVideoEnabledChanged,
|
|
746
|
+
hasMuteOnEntryChanged = _ControlsUtils$getCon2.hasMuteOnEntryChanged,
|
|
747
|
+
hasShareControlChanged = _ControlsUtils$getCon2.hasShareControlChanged,
|
|
748
|
+
hasDisallowUnmuteChanged = _ControlsUtils$getCon2.hasDisallowUnmuteChanged,
|
|
749
|
+
hasReactionsChanged = _ControlsUtils$getCon2.hasReactionsChanged,
|
|
750
|
+
hasReactionDisplayNamesChanged = _ControlsUtils$getCon2.hasReactionDisplayNamesChanged,
|
|
751
|
+
hasViewTheParticipantListChanged = _ControlsUtils$getCon2.hasViewTheParticipantListChanged,
|
|
752
|
+
hasRaiseHandChanged = _ControlsUtils$getCon2.hasRaiseHandChanged,
|
|
753
|
+
hasVideoChanged = _ControlsUtils$getCon2.hasVideoChanged,
|
|
754
|
+
hasInterpretationChanged = _ControlsUtils$getCon2.hasInterpretationChanged,
|
|
649
755
|
current = _ControlsUtils$getCon.current;
|
|
756
|
+
if (hasMuteOnEntryChanged) {
|
|
757
|
+
this.emitScoped({
|
|
758
|
+
file: 'locus-info',
|
|
759
|
+
function: 'updateControls'
|
|
760
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MUTE_ON_ENTRY_CHANGED, {
|
|
761
|
+
state: current.muteOnEntry
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
if (hasShareControlChanged) {
|
|
765
|
+
this.emitScoped({
|
|
766
|
+
file: 'locus-info',
|
|
767
|
+
function: 'updateControls'
|
|
768
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_SHARE_CONTROL_CHANGED, {
|
|
769
|
+
state: current.shareControl
|
|
770
|
+
});
|
|
771
|
+
}
|
|
772
|
+
if (hasDisallowUnmuteChanged) {
|
|
773
|
+
this.emitScoped({
|
|
774
|
+
file: 'locus-info',
|
|
775
|
+
function: 'updateControls'
|
|
776
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_DISALLOW_UNMUTE_CHANGED, {
|
|
777
|
+
state: current.disallowUnmute
|
|
778
|
+
});
|
|
779
|
+
}
|
|
780
|
+
if (hasReactionsChanged || hasReactionDisplayNamesChanged) {
|
|
781
|
+
this.emitScoped({
|
|
782
|
+
file: 'locus-info',
|
|
783
|
+
function: 'updateControls'
|
|
784
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_REACTIONS_CHANGED, {
|
|
785
|
+
state: current.reactions
|
|
786
|
+
});
|
|
787
|
+
}
|
|
788
|
+
if (hasViewTheParticipantListChanged) {
|
|
789
|
+
this.emitScoped({
|
|
790
|
+
file: 'locus-info',
|
|
791
|
+
function: 'updateControls'
|
|
792
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_VIEW_THE_PARTICIPANTS_LIST_CHANGED, {
|
|
793
|
+
state: current.viewTheParticipantList
|
|
794
|
+
});
|
|
795
|
+
}
|
|
796
|
+
if (hasRaiseHandChanged) {
|
|
797
|
+
this.emitScoped({
|
|
798
|
+
file: 'locus-info',
|
|
799
|
+
function: 'updateControls'
|
|
800
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_RAISE_HAND_CHANGED, {
|
|
801
|
+
state: current.raiseHand
|
|
802
|
+
});
|
|
803
|
+
}
|
|
804
|
+
if (hasVideoChanged) {
|
|
805
|
+
this.emitScoped({
|
|
806
|
+
file: 'locus-info',
|
|
807
|
+
function: 'updateControls'
|
|
808
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_VIDEO_CHANGED, {
|
|
809
|
+
state: current.video
|
|
810
|
+
});
|
|
811
|
+
}
|
|
650
812
|
if (hasRecordingChanged || hasRecordingPausedChanged) {
|
|
651
813
|
var state = null;
|
|
652
814
|
if (hasRecordingPausedChanged) {
|
|
@@ -691,6 +853,7 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
691
853
|
}
|
|
692
854
|
if (hasBreakoutChanged) {
|
|
693
855
|
var breakout = current.breakout;
|
|
856
|
+
breakout.breakoutMoveId = _selfUtils.default.getReplacedBreakoutMoveId(self, this.webex.internal.device.url);
|
|
694
857
|
this.emitScoped({
|
|
695
858
|
file: 'locus-info',
|
|
696
859
|
function: 'updateControls'
|
|
@@ -698,16 +861,41 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
698
861
|
breakout: breakout
|
|
699
862
|
});
|
|
700
863
|
}
|
|
864
|
+
if (hasInterpretationChanged) {
|
|
865
|
+
var interpretation = current.interpretation;
|
|
866
|
+
this.emitScoped({
|
|
867
|
+
file: 'locus-info',
|
|
868
|
+
function: 'updateControls'
|
|
869
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_MEETING_INTERPRETATION_UPDATED, {
|
|
870
|
+
interpretation: interpretation
|
|
871
|
+
});
|
|
872
|
+
}
|
|
701
873
|
if (hasEntryExitToneChanged) {
|
|
702
874
|
var entryExitTone = current.entryExitTone;
|
|
875
|
+
this.updateMeeting({
|
|
876
|
+
entryExitTone: entryExitTone
|
|
877
|
+
});
|
|
703
878
|
this.emitScoped({
|
|
704
879
|
file: 'locus-info',
|
|
705
880
|
function: 'updateControls'
|
|
706
881
|
}, _constants.LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED, {
|
|
707
882
|
entryExitTone: entryExitTone
|
|
708
883
|
});
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
// videoEnabled is handled differently than other controls,
|
|
887
|
+
// to fit with audio mute status logic
|
|
888
|
+
if (hasVideoEnabledChanged) {
|
|
889
|
+
var videoEnabled = current.videoEnabled;
|
|
709
890
|
this.updateMeeting({
|
|
710
|
-
|
|
891
|
+
unmuteVideoAllowed: videoEnabled
|
|
892
|
+
});
|
|
893
|
+
this.emitScoped({
|
|
894
|
+
file: 'locus-info',
|
|
895
|
+
function: 'updateControls'
|
|
896
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {
|
|
897
|
+
// muted: not part of locus.controls
|
|
898
|
+
unmuteAllowed: videoEnabled
|
|
711
899
|
});
|
|
712
900
|
}
|
|
713
901
|
this.controls = controls;
|
|
@@ -840,18 +1028,11 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
840
1028
|
}, {
|
|
841
1029
|
key: "updateMeetingInfo",
|
|
842
1030
|
value: function updateMeetingInfo(info, self) {
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
1031
|
+
var _this$parsedLocus$sel;
|
|
1032
|
+
var roles = self ? _selfUtils.default.getRoles(self) : ((_this$parsedLocus$sel = this.parsedLocus.self) === null || _this$parsedLocus$sel === void 0 ? void 0 : _this$parsedLocus$sel.roles) || [];
|
|
1033
|
+
if (info && !(0, _isEqual2.default)(this.info, info) || roles.length && !(0, _isEqual2.default)(this.roles, roles) && info) {
|
|
846
1034
|
var isJoined = _selfUtils.default.isJoined(self || this.parsedLocus.self);
|
|
847
1035
|
var parsedInfo = _infoUtils.default.getInfos(this.parsedLocus.info, info, roles, isJoined);
|
|
848
|
-
this.emitScoped({
|
|
849
|
-
file: 'locus-info',
|
|
850
|
-
function: 'updateMeetingInfo'
|
|
851
|
-
}, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED, {
|
|
852
|
-
info: parsedInfo.current,
|
|
853
|
-
self: self
|
|
854
|
-
});
|
|
855
1036
|
if (parsedInfo.updates.isLocked) {
|
|
856
1037
|
this.emitScoped({
|
|
857
1038
|
file: 'locus-info',
|
|
@@ -868,7 +1049,12 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
868
1049
|
this.parsedLocus.info = parsedInfo.current;
|
|
869
1050
|
// Parses the info and adds necessary values
|
|
870
1051
|
this.updateMeeting(parsedInfo.current);
|
|
1052
|
+
this.emitScoped({
|
|
1053
|
+
file: 'locus-info',
|
|
1054
|
+
function: 'updateMeetingInfo'
|
|
1055
|
+
}, _constants.LOCUSINFO.EVENTS.MEETING_INFO_UPDATED);
|
|
871
1056
|
}
|
|
1057
|
+
this.roles = roles;
|
|
872
1058
|
}
|
|
873
1059
|
|
|
874
1060
|
/**
|
|
@@ -994,6 +1180,15 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
994
1180
|
breakoutSessions: parsedSelves.current.breakoutSessions
|
|
995
1181
|
});
|
|
996
1182
|
}
|
|
1183
|
+
if (parsedSelves.updates.interpretationChanged) {
|
|
1184
|
+
this.emitScoped({
|
|
1185
|
+
file: 'locus-info',
|
|
1186
|
+
function: 'updateSelf'
|
|
1187
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_MEETING_INTERPRETATION_CHANGED, {
|
|
1188
|
+
interpretation: parsedSelves.current.interpretation,
|
|
1189
|
+
selfParticipantId: parsedSelves.current.selfId
|
|
1190
|
+
});
|
|
1191
|
+
}
|
|
997
1192
|
if (parsedSelves.updates.isMediaInactiveOrReleased) {
|
|
998
1193
|
this.emitScoped({
|
|
999
1194
|
file: 'locus-info',
|
|
@@ -1008,6 +1203,26 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1008
1203
|
function: 'updateSelf'
|
|
1009
1204
|
}, _constants.LOCUSINFO.EVENTS.SELF_MODERATOR_CHANGED, self);
|
|
1010
1205
|
}
|
|
1206
|
+
if (parsedSelves.updates.isRolesChanged) {
|
|
1207
|
+
var _parsedSelves$previou, _parsedSelves$current;
|
|
1208
|
+
this.emitScoped({
|
|
1209
|
+
file: 'locus-info',
|
|
1210
|
+
function: 'updateSelf'
|
|
1211
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_ROLES_CHANGED, {
|
|
1212
|
+
oldRoles: (_parsedSelves$previou = parsedSelves.previous) === null || _parsedSelves$previou === void 0 ? void 0 : _parsedSelves$previou.roles,
|
|
1213
|
+
newRoles: (_parsedSelves$current = parsedSelves.current) === null || _parsedSelves$current === void 0 ? void 0 : _parsedSelves$current.roles
|
|
1214
|
+
});
|
|
1215
|
+
}
|
|
1216
|
+
if (parsedSelves.updates.isVideoMutedByOthersChanged) {
|
|
1217
|
+
this.emitScoped({
|
|
1218
|
+
file: 'locus-info',
|
|
1219
|
+
function: 'updateSelf'
|
|
1220
|
+
}, _constants.LOCUSINFO.EVENTS.SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED, {
|
|
1221
|
+
muted: parsedSelves.current.remoteVideoMuted
|
|
1222
|
+
// unmuteAllowed: not part of .self
|
|
1223
|
+
});
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1011
1226
|
if (parsedSelves.updates.localAudioUnmuteRequiredByServer) {
|
|
1012
1227
|
this.emitScoped({
|
|
1013
1228
|
file: 'locus-info',
|
|
@@ -1053,14 +1268,14 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1053
1268
|
_constants.LOCUSINFO.EVENTS.MEDIA_INACTIVITY, _selfUtils.default.getMediaStatus(self.mediaSessions));
|
|
1054
1269
|
}
|
|
1055
1270
|
if (parsedSelves.updates.audioStateChange || parsedSelves.updates.videoStateChange || parsedSelves.updates.shareStateChange) {
|
|
1056
|
-
var _parsedSelves$
|
|
1271
|
+
var _parsedSelves$current2, _parsedSelves$current3, _parsedSelves$current4;
|
|
1057
1272
|
this.emitScoped({
|
|
1058
1273
|
file: 'locus-info',
|
|
1059
1274
|
function: 'updateSelf'
|
|
1060
1275
|
}, _constants.LOCUSINFO.EVENTS.MEDIA_STATUS_CHANGE, {
|
|
1061
|
-
audioStatus: (_parsedSelves$
|
|
1062
|
-
videoStatus: (_parsedSelves$
|
|
1063
|
-
shareStatus: (_parsedSelves$
|
|
1276
|
+
audioStatus: (_parsedSelves$current2 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current2 === void 0 ? void 0 : _parsedSelves$current2.audio,
|
|
1277
|
+
videoStatus: (_parsedSelves$current3 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current3 === void 0 ? void 0 : _parsedSelves$current3.video,
|
|
1278
|
+
shareStatus: (_parsedSelves$current4 = parsedSelves.current.currentMediaStatus) === null || _parsedSelves$current4 === void 0 ? void 0 : _parsedSelves$current4.share
|
|
1064
1279
|
});
|
|
1065
1280
|
}
|
|
1066
1281
|
if (parsedSelves.updates.isUserObserving) {
|
|
@@ -1185,6 +1400,112 @@ var LocusInfo = /*#__PURE__*/function (_EventsScope) {
|
|
|
1185
1400
|
this.identities = identities;
|
|
1186
1401
|
}
|
|
1187
1402
|
}
|
|
1403
|
+
|
|
1404
|
+
/**
|
|
1405
|
+
* check the locus is main session's one or not, if is main session's, update main session cache
|
|
1406
|
+
* @param {Object} locus
|
|
1407
|
+
* @returns {undefined}
|
|
1408
|
+
* @memberof LocusInfo
|
|
1409
|
+
*/
|
|
1410
|
+
}, {
|
|
1411
|
+
key: "updateLocusCache",
|
|
1412
|
+
value: function updateLocusCache(locus) {
|
|
1413
|
+
var isMainSessionDTO = _controlsUtils.default.isMainSessionDTO(locus);
|
|
1414
|
+
if (isMainSessionDTO) {
|
|
1415
|
+
this.updateMainSessionLocusCache(locus);
|
|
1416
|
+
}
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
/**
|
|
1420
|
+
* if return from breakout to main session, need to use cached main session DTO since locus won't send the full locus (participants)
|
|
1421
|
+
* if join breakout from main session, need to query main locus url (if response with 403 means no privilege, need to clear the cache)
|
|
1422
|
+
* @param {Object} newLocus
|
|
1423
|
+
* @returns {Object}
|
|
1424
|
+
* @memberof LocusInfo
|
|
1425
|
+
*/
|
|
1426
|
+
}, {
|
|
1427
|
+
key: "getTheLocusToUpdate",
|
|
1428
|
+
value: function getTheLocusToUpdate(newLocus) {
|
|
1429
|
+
var switchStatus = _controlsUtils.default.getSessionSwitchStatus(this.controls, newLocus === null || newLocus === void 0 ? void 0 : newLocus.controls);
|
|
1430
|
+
if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
|
|
1431
|
+
return (0, _cloneDeep2.default)(this.mainSessionLocusCache);
|
|
1432
|
+
}
|
|
1433
|
+
if (switchStatus.isJoinToBreakout) {
|
|
1434
|
+
this.emitScoped({
|
|
1435
|
+
file: 'locus-info',
|
|
1436
|
+
function: 'updateControls'
|
|
1437
|
+
}, _constants.LOCUSINFO.EVENTS.CONTROLS_JOIN_BREAKOUT_FROM_MAIN, {
|
|
1438
|
+
mainLocusUrl: this.url
|
|
1439
|
+
});
|
|
1440
|
+
}
|
|
1441
|
+
return newLocus;
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
/**
|
|
1445
|
+
* merge participants by participant id
|
|
1446
|
+
* @param {Array} participants
|
|
1447
|
+
* @param {Array} sourceParticipants
|
|
1448
|
+
* @returns {Array} merged participants
|
|
1449
|
+
* @memberof LocusInfo
|
|
1450
|
+
*/
|
|
1451
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1452
|
+
}, {
|
|
1453
|
+
key: "mergeParticipants",
|
|
1454
|
+
value: function mergeParticipants(participants, sourceParticipants) {
|
|
1455
|
+
if (!sourceParticipants || !sourceParticipants.length) return participants;
|
|
1456
|
+
if (!participants || !participants.length) {
|
|
1457
|
+
return sourceParticipants;
|
|
1458
|
+
}
|
|
1459
|
+
sourceParticipants.forEach(function (participant) {
|
|
1460
|
+
var existIndex = participants.findIndex(function (p) {
|
|
1461
|
+
return p.id === participant.id;
|
|
1462
|
+
});
|
|
1463
|
+
if (existIndex > -1) {
|
|
1464
|
+
participants.splice(existIndex, 1, participant);
|
|
1465
|
+
} else {
|
|
1466
|
+
participants.push(participant);
|
|
1467
|
+
}
|
|
1468
|
+
});
|
|
1469
|
+
return participants;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
/**
|
|
1473
|
+
* need cache main sessions' participants since locus will not send the full list when cohost/host leave breakout
|
|
1474
|
+
* @param {Object} mainLocus
|
|
1475
|
+
* @returns {undefined}
|
|
1476
|
+
* @memberof LocusInfo
|
|
1477
|
+
*/
|
|
1478
|
+
}, {
|
|
1479
|
+
key: "updateMainSessionLocusCache",
|
|
1480
|
+
value: function updateMainSessionLocusCache(mainLocus) {
|
|
1481
|
+
var _this5 = this;
|
|
1482
|
+
if (!mainLocus) {
|
|
1483
|
+
return;
|
|
1484
|
+
}
|
|
1485
|
+
var locusClone = (0, _cloneDeep2.default)(mainLocus);
|
|
1486
|
+
if (this.mainSessionLocusCache) {
|
|
1487
|
+
// shallow merge and do special merge for participants
|
|
1488
|
+
(0, _assignWith2.default)(this.mainSessionLocusCache, locusClone, function (objValue, srcValue, key) {
|
|
1489
|
+
if (key === 'participants') {
|
|
1490
|
+
return _this5.mergeParticipants(objValue, srcValue);
|
|
1491
|
+
}
|
|
1492
|
+
return srcValue || objValue;
|
|
1493
|
+
});
|
|
1494
|
+
} else {
|
|
1495
|
+
this.mainSessionLocusCache = locusClone;
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
/**
|
|
1500
|
+
* clear main session cache
|
|
1501
|
+
* @returns {undefined}
|
|
1502
|
+
* @memberof LocusInfo
|
|
1503
|
+
*/
|
|
1504
|
+
}, {
|
|
1505
|
+
key: "clearMainSessionLocusCache",
|
|
1506
|
+
value: function clearMainSessionLocusCache() {
|
|
1507
|
+
this.mainSessionLocusCache = null;
|
|
1508
|
+
}
|
|
1188
1509
|
}]);
|
|
1189
1510
|
return LocusInfo;
|
|
1190
1511
|
}(_eventsScope.default);
|