@webex/plugin-meetings 3.0.0-beta.14 → 3.0.0-beta.16
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/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 +5 -26
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -26
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -27
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -26
- 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 +5 -26
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -25
- 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 +5 -26
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -26
- 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 +1 -24
- 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 +35 -61
- 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 +1 -5
- package/dist/config.js.map +1 -1
- package/dist/constants.js +45 -40
- package/dist/constants.js.map +1 -1
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +10 -28
- 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 +101 -193
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +0 -38
- 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 +87 -123
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +16 -81
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +43 -97
- package/dist/media/index.js.map +1 -1
- package/dist/media/internal-media-core-wrapper.js +0 -4
- package/dist/media/internal-media-core-wrapper.js.map +1 -1
- package/dist/media/properties.js +64 -110
- 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 +10 -12
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +120 -192
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +0 -13
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +819 -1591
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +31 -78
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +160 -230
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +0 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.js +21 -31
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js +19 -158
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +10 -33
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +179 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -16
- 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 +3 -21
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +450 -582
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +7 -30
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +99 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -89
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +17 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +2 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +72 -194
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +21 -56
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +9 -38
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +0 -2
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js +1 -2
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +48 -136
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +12 -28
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +11 -21
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +7 -47
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +38 -77
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +11 -56
- 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 +221 -380
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +28 -57
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +10 -45
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -33
- 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 +100 -166
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +2 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.js +0 -2
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +2 -6
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +294 -459
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +18 -53
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +13 -55
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +10 -52
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js +0 -2
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js +66 -174
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +54 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +13 -45
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +18 -18
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +11 -11
- package/src/constants.ts +1 -1
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +34 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +25 -34
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +4 -4
- package/src/locus-info/parser.ts +45 -68
- package/src/locus-info/selfUtils.ts +106 -57
- package/src/media/index.ts +123 -135
- package/src/media/internal-media-core-wrapper.ts +2 -2
- package/src/media/properties.ts +30 -20
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +46 -46
- package/src/meeting/effectsState.ts +35 -35
- package/src/meeting/in-meeting-actions.ts +7 -3
- package/src/meeting/index.ts +1559 -1292
- package/src/meeting/muteState.ts +62 -31
- package/src/meeting/request.ts +155 -116
- package/src/meeting/request.type.ts +8 -8
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +101 -70
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +106 -108
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +59 -53
- package/src/meetings/collection.ts +1 -1
- package/src/meetings/index.ts +512 -440
- package/src/meetings/request.ts +26 -24
- package/src/meetings/util.ts +29 -29
- package/src/member/index.ts +55 -49
- package/src/member/util.ts +26 -13
- package/src/members/collection.ts +0 -1
- package/src/members/index.ts +182 -126
- package/src/members/request.ts +46 -14
- package/src/members/util.ts +44 -42
- package/src/metrics/config.ts +254 -81
- package/src/metrics/constants.ts +0 -2
- package/src/metrics/index.ts +84 -71
- package/src/multistream/multistreamMedia.ts +1 -0
- package/src/multistream/receiveSlot.ts +1 -0
- package/src/multistream/receiveSlotManager.ts +1 -0
- package/src/multistream/remoteMedia.ts +1 -1
- package/src/multistream/remoteMediaGroup.ts +2 -1
- package/src/multistream/remoteMediaManager.ts +3 -0
- package/src/networkQualityMonitor/index.ts +20 -23
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +61 -59
- package/src/reachability/request.ts +36 -32
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +4 -3
- package/src/reconnection-manager/index.ts +139 -84
- package/src/roap/index.ts +46 -38
- package/src/roap/request.ts +44 -31
- package/src/roap/turnDiscovery.ts +59 -30
- package/src/statsAnalyzer/global.ts +30 -33
- package/src/statsAnalyzer/index.ts +432 -175
- package/src/statsAnalyzer/mqaUtil.ts +178 -72
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/journey.js +664 -463
- package/test/integration/spec/space-meeting.js +319 -204
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +5 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1 -2
- package/test/unit/spec/locus-info/infoUtils.js +26 -33
- 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 +72 -103
- package/test/unit/spec/locus-info/selfUtils.js +21 -12
- package/test/unit/spec/meeting/effectsState.js +36 -46
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
- package/test/unit/spec/meeting/index.js +1279 -685
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +57 -46
- package/test/unit/spec/meeting/utils.js +78 -53
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +438 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +5 -6
- package/test/unit/spec/members/index.js +104 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/networkQualityMonitor/index.js +21 -15
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +9 -11
- package/test/unit/spec/reconnection-manager/index.js +16 -18
- package/test/unit/spec/roap/turnDiscovery.ts +22 -19
- package/test/unit/spec/stats-analyzer/index.js +25 -20
- package/test/utils/cmr.js +44 -42
- package/test/utils/testUtils.js +83 -74
- package/test/utils/webex-config.js +18 -18
- package/test/utils/webex-test-users.js +53 -50
package/src/constants.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -25,25 +25,27 @@ ControlsUtils.parse = (controls: any) => {
|
|
|
25
25
|
modifiedBy: ControlsUtils.getId(controls),
|
|
26
26
|
paused: controls.record.paused ? controls.record.paused : false,
|
|
27
27
|
recording: controls.record.recording,
|
|
28
|
-
lastModified: controls.record.meta.lastModified
|
|
28
|
+
lastModified: controls.record.meta.lastModified,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
if (controls && controls.meetingContainer) {
|
|
33
33
|
parsedControls.meetingContainer = {
|
|
34
|
-
meetingContainerUrl: controls.meetingContainer.meetingContainerUrl
|
|
34
|
+
meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
if (controls && controls.transcribe) {
|
|
39
39
|
parsedControls.transcribe = {
|
|
40
40
|
transcribing: controls.transcribe.transcribing,
|
|
41
|
-
caption: controls.transcribe.caption
|
|
41
|
+
caption: controls.transcribe.caption,
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
if (controls && controls.entryExitTone) {
|
|
46
|
-
parsedControls.entryExitTone = controls.entryExitTone.enabled
|
|
46
|
+
parsedControls.entryExitTone = controls.entryExitTone.enabled
|
|
47
|
+
? controls.entryExitTone.mode
|
|
48
|
+
: null;
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
return parsedControls;
|
|
@@ -63,26 +65,34 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
|
63
65
|
previous,
|
|
64
66
|
current,
|
|
65
67
|
updates: {
|
|
66
|
-
hasRecordingPausedChanged:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
68
|
+
hasRecordingPausedChanged:
|
|
69
|
+
current?.record &&
|
|
70
|
+
!isEqual(previous?.record?.paused, current.record.paused) &&
|
|
71
|
+
(previous?.record?.recording || current?.record?.recording), // see comments directly below
|
|
72
|
+
|
|
73
|
+
hasRecordingChanged:
|
|
74
|
+
current?.record &&
|
|
75
|
+
!isEqual(previous?.record?.recording, current?.record?.recording) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
|
|
76
|
+
(previous?.record?.recording || current?.record?.recording), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
|
|
77
|
+
|
|
78
|
+
hasMeetingContainerChanged:
|
|
79
|
+
current?.meetingContainer &&
|
|
80
|
+
!isEqual(
|
|
81
|
+
previous?.meetingContainer?.meetingContainerUrl,
|
|
82
|
+
current?.meetingContainer?.meetingContainerUrl
|
|
83
|
+
),
|
|
84
|
+
|
|
85
|
+
hasTranscribeChanged:
|
|
86
|
+
current?.transcribe &&
|
|
87
|
+
!isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
|
|
88
|
+
(previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
|
|
89
|
+
|
|
90
|
+
hasEntryExitToneChanged: !!(
|
|
91
|
+
newControls.entryExitTone &&
|
|
92
|
+
!isEqual(previous?.entryExitTone, current?.entryExitTone) &&
|
|
93
|
+
(previous?.entryExitTone || current?.entryExitTone)
|
|
94
|
+
),
|
|
95
|
+
},
|
|
86
96
|
};
|
|
87
97
|
};
|
|
88
98
|
|
|
@@ -5,10 +5,9 @@ const FullState: any = {};
|
|
|
5
5
|
FullState.parse = (fullState) => ({
|
|
6
6
|
type: fullState.type || FULL_STATE.UNKNOWN,
|
|
7
7
|
meetingState: fullState.state,
|
|
8
|
-
locked: fullState.locked
|
|
8
|
+
locked: fullState.locked,
|
|
9
9
|
});
|
|
10
10
|
|
|
11
|
-
|
|
12
11
|
FullState.getFullState = (oldFullState, newFullState) => {
|
|
13
12
|
const previous = oldFullState && FullState.parse(oldFullState);
|
|
14
13
|
const current = newFullState && FullState.parse(newFullState);
|
|
@@ -20,16 +19,19 @@ FullState.getFullState = (oldFullState, newFullState) => {
|
|
|
20
19
|
isMeetingEnded: FullState.isMeetingEnded(previous, current),
|
|
21
20
|
isMeetingTerminating: FullState.isMeetingTerminating(previous, current),
|
|
22
21
|
meetingTypeChangedTo: FullState.isTypeChanged(previous, current),
|
|
23
|
-
meetingStateChangedTo: FullState.meetingStateChange(previous, current)
|
|
24
|
-
}
|
|
22
|
+
meetingStateChangedTo: FullState.meetingStateChange(previous, current),
|
|
23
|
+
},
|
|
25
24
|
};
|
|
26
25
|
};
|
|
27
26
|
|
|
28
27
|
FullState.isMeetingEnded = (previous, current) => {
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
previous
|
|
32
|
-
previous.state === FULL_STATE.
|
|
28
|
+
if (
|
|
29
|
+
current.state === FULL_STATE.INACTIVE &&
|
|
30
|
+
previous &&
|
|
31
|
+
(previous.state === FULL_STATE.ACTIVE ||
|
|
32
|
+
previous.state === FULL_STATE.INITIALIZING ||
|
|
33
|
+
previous.state === FULL_STATE.TERMINATING)
|
|
34
|
+
) {
|
|
33
35
|
return true;
|
|
34
36
|
}
|
|
35
37
|
|
|
@@ -37,9 +39,11 @@ FullState.isMeetingEnded = (previous, current) => {
|
|
|
37
39
|
};
|
|
38
40
|
|
|
39
41
|
FullState.isMeetingTerminating = (previous, current) => {
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
previous
|
|
42
|
+
if (
|
|
43
|
+
current.state === FULL_STATE.TERMINATING &&
|
|
44
|
+
previous &&
|
|
45
|
+
(previous.state === FULL_STATE.ACTIVE || previous.state === FULL_STATE.INITIALIZING)
|
|
46
|
+
) {
|
|
43
47
|
return true;
|
|
44
48
|
}
|
|
45
49
|
|
|
@@ -8,7 +8,7 @@ const HostUtils: any = {};
|
|
|
8
8
|
HostUtils.parse = (host: object) => {
|
|
9
9
|
if (host) {
|
|
10
10
|
return {
|
|
11
|
-
hostId: HostUtils.getId(host)
|
|
11
|
+
hostId: HostUtils.getId(host),
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -30,8 +30,9 @@ HostUtils.getHosts = (oldHost: object, newHost: object) => {
|
|
|
30
30
|
previous,
|
|
31
31
|
current,
|
|
32
32
|
updates: {
|
|
33
|
-
isNewHost:
|
|
34
|
-
|
|
33
|
+
isNewHost:
|
|
34
|
+
previous && current ? HostUtils.isDifferentHosts(previous.hostId, current.hostId) : true,
|
|
35
|
+
},
|
|
35
36
|
};
|
|
36
37
|
};
|
|
37
38
|
|
package/src/locus-info/index.ts
CHANGED
|
@@ -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
|
|
@@ -206,6 +206,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
206
206
|
* @memberof LocusInfo
|
|
207
207
|
*/
|
|
208
208
|
parse(meeting: any, data: any) {
|
|
209
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
209
210
|
const {eventType} = data;
|
|
210
211
|
|
|
211
212
|
LoggerProxy.logger.info(`Locus-info:index#parse --> received locus data: ${eventType}`);
|
|
@@ -256,6 +257,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
256
257
|
* @returns {object} null
|
|
257
258
|
* @memberof LocusInfo
|
|
258
259
|
*/
|
|
260
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
259
261
|
onFullLocus(locus: any, eventType?: string) {
|
|
260
262
|
if (!locus) {
|
|
261
263
|
LoggerProxy.logger.error(
|
|
@@ -280,6 +282,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
280
282
|
* @returns {undefined}
|
|
281
283
|
* @memberof LocusInfo
|
|
282
284
|
*/
|
|
285
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
283
286
|
handleOneOnOneEvent(eventType: string) {
|
|
284
287
|
if (
|
|
285
288
|
this.parsedLocus.fullState.type === _CALL_ ||
|
|
@@ -373,7 +376,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
373
376
|
self &&
|
|
374
377
|
participant.identity !== self.identity &&
|
|
375
378
|
(participants.length <= 2 || (participant.type === _USER_ && !participant.removed))
|
|
376
|
-
|
|
379
|
+
// @ts-ignore
|
|
377
380
|
) || this.partner
|
|
378
381
|
);
|
|
379
382
|
}
|
|
@@ -420,8 +423,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
420
423
|
shouldLeave: false,
|
|
421
424
|
}
|
|
422
425
|
);
|
|
423
|
-
}
|
|
424
|
-
else if (
|
|
426
|
+
} else if (
|
|
425
427
|
partner.state === MEETING_STATE.STATES.LEFT &&
|
|
426
428
|
this.parsedLocus.self &&
|
|
427
429
|
(this.parsedLocus.self.state === MEETING_STATE.STATES.DECLINED ||
|
|
@@ -444,8 +446,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
444
446
|
this.parsedLocus.self.joinedWith && this.parsedLocus.self.joinedWith.state !== _LEFT_,
|
|
445
447
|
}
|
|
446
448
|
);
|
|
447
|
-
}
|
|
448
|
-
else if (
|
|
449
|
+
} else if (
|
|
449
450
|
this.parsedLocus.self &&
|
|
450
451
|
this.parsedLocus.self.state === MEETING_STATE.STATES.LEFT &&
|
|
451
452
|
(partner.state === MEETING_STATE.STATES.LEFT ||
|
|
@@ -469,8 +470,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
469
470
|
}
|
|
470
471
|
);
|
|
471
472
|
}
|
|
472
|
-
}
|
|
473
|
-
else if (this.parsedLocus.fullState.type === _MEETING_) {
|
|
473
|
+
} else if (this.parsedLocus.fullState.type === _MEETING_) {
|
|
474
474
|
if (
|
|
475
475
|
this.fullState &&
|
|
476
476
|
(this.fullState.state === LOCUS.STATE.INACTIVE ||
|
|
@@ -495,8 +495,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
495
495
|
shouldLeave: false,
|
|
496
496
|
}
|
|
497
497
|
);
|
|
498
|
-
}
|
|
499
|
-
else if (this.fullState && this.fullState.removed) {
|
|
498
|
+
} else if (this.fullState && this.fullState.removed) {
|
|
500
499
|
// user has been dropped from a meeting
|
|
501
500
|
Metrics.postEvent({
|
|
502
501
|
event: eventType.REMOTE_ENDED,
|
|
@@ -530,8 +529,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
530
529
|
}
|
|
531
530
|
);
|
|
532
531
|
}
|
|
533
|
-
}
|
|
534
|
-
else {
|
|
532
|
+
} else {
|
|
535
533
|
LoggerProxy.logger.warn('Locus-info:index#isMeetingActive --> Meeting Type is unknown.');
|
|
536
534
|
}
|
|
537
535
|
}
|
|
@@ -574,8 +572,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
574
572
|
canAssignHost: true,
|
|
575
573
|
}
|
|
576
574
|
);
|
|
577
|
-
}
|
|
578
|
-
else {
|
|
575
|
+
} else {
|
|
579
576
|
this.emitScoped(
|
|
580
577
|
{
|
|
581
578
|
file: 'locus-info',
|
|
@@ -687,13 +684,11 @@ export default class LocusInfo extends EventsScope {
|
|
|
687
684
|
if (hasRecordingPausedChanged) {
|
|
688
685
|
if (current.record.paused) {
|
|
689
686
|
state = RECORDING_STATE.PAUSED;
|
|
690
|
-
}
|
|
691
|
-
else {
|
|
687
|
+
} else {
|
|
692
688
|
// state will be `IDLE` if the recording is not active, even when there is a `pause` status change.
|
|
693
689
|
state = current.record.recording ? RECORDING_STATE.RESUMED : RECORDING_STATE.IDLE;
|
|
694
690
|
}
|
|
695
|
-
}
|
|
696
|
-
else if (hasRecordingChanged) {
|
|
691
|
+
} else if (hasRecordingChanged) {
|
|
697
692
|
state = current.record.recording ? RECORDING_STATE.RECORDING : RECORDING_STATE.IDLE;
|
|
698
693
|
}
|
|
699
694
|
|
|
@@ -752,7 +747,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
752
747
|
},
|
|
753
748
|
LOCUSINFO.EVENTS.CONTROLS_ENTRY_EXIT_TONE_UPDATED,
|
|
754
749
|
{
|
|
755
|
-
entryExitTone
|
|
750
|
+
entryExitTone,
|
|
756
751
|
}
|
|
757
752
|
);
|
|
758
753
|
|
|
@@ -773,8 +768,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
773
768
|
if (conversationUrl && !isEqual(this.conversationUrl, conversationUrl)) {
|
|
774
769
|
this.conversationUrl = conversationUrl;
|
|
775
770
|
this.updateMeeting({conversationUrl});
|
|
776
|
-
}
|
|
777
|
-
else if (
|
|
771
|
+
} else if (
|
|
778
772
|
info &&
|
|
779
773
|
info.conversationUrl &&
|
|
780
774
|
!isEqual(this.conversationUrl, info.conversationUrl)
|
|
@@ -865,8 +859,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
865
859
|
);
|
|
866
860
|
}
|
|
867
861
|
this.host = host;
|
|
868
|
-
}
|
|
869
|
-
else {
|
|
862
|
+
} else {
|
|
870
863
|
this.compareAndUpdateFlags.compareSelfAndHost = false;
|
|
871
864
|
}
|
|
872
865
|
}
|
|
@@ -1033,8 +1026,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1033
1026
|
|
|
1034
1027
|
if (parsedSelves.updates.moderatorChanged) {
|
|
1035
1028
|
this.compareAndUpdateFlags.compareHostAndSelf = true;
|
|
1036
|
-
}
|
|
1037
|
-
else {
|
|
1029
|
+
} else {
|
|
1038
1030
|
this.compareAndUpdateFlags.compareHostAndSelf = false;
|
|
1039
1031
|
}
|
|
1040
1032
|
|
|
@@ -1204,8 +1196,7 @@ export default class LocusInfo extends EventsScope {
|
|
|
1204
1196
|
this.parsedLocus.self = parsedSelves.current;
|
|
1205
1197
|
// @ts-ignore
|
|
1206
1198
|
this.self = self;
|
|
1207
|
-
}
|
|
1208
|
-
else {
|
|
1199
|
+
} else {
|
|
1209
1200
|
this.compareAndUpdateFlags.compareHostAndSelf = false;
|
|
1210
1201
|
}
|
|
1211
1202
|
}
|
|
@@ -39,7 +39,12 @@ InfoUtils.parse = (info, roles, isJoined = true) => {
|
|
|
39
39
|
InfoUtils.parseDisplayHintSection = (info, displayHintKey) => {
|
|
40
40
|
const displayHints = {};
|
|
41
41
|
|
|
42
|
-
if (
|
|
42
|
+
if (
|
|
43
|
+
info &&
|
|
44
|
+
info.displayHints &&
|
|
45
|
+
info.displayHints[displayHintKey] &&
|
|
46
|
+
info.displayHints[displayHintKey].length > 0
|
|
47
|
+
) {
|
|
43
48
|
info.displayHints[displayHintKey].forEach((key) => {
|
|
44
49
|
displayHints[key] = true;
|
|
45
50
|
});
|
|
@@ -79,10 +84,13 @@ InfoUtils.getInfos = (oldInfo, newInfo, roles, isJoined) => {
|
|
|
79
84
|
current.isLocked = InfoUtils.isLocked(current.policy);
|
|
80
85
|
current.isUnlocked = InfoUtils.isUnlocked(current.policy);
|
|
81
86
|
|
|
82
|
-
if (previous && previous.isUnlocked && current.isLocked || !previous && current.isLocked) {
|
|
87
|
+
if ((previous && previous.isUnlocked && current.isLocked) || (!previous && current.isLocked)) {
|
|
83
88
|
updates.isLocked = current.isLocked;
|
|
84
89
|
}
|
|
85
|
-
if (
|
|
90
|
+
if (
|
|
91
|
+
(previous && previous.isLocked && current.isUnlocked) ||
|
|
92
|
+
(!previous && current.isUnlocked)
|
|
93
|
+
) {
|
|
86
94
|
updates.isUnlocked = current.isUnlocked;
|
|
87
95
|
}
|
|
88
96
|
}
|
|
@@ -90,7 +98,7 @@ InfoUtils.getInfos = (oldInfo, newInfo, roles, isJoined) => {
|
|
|
90
98
|
return {
|
|
91
99
|
previous,
|
|
92
100
|
current,
|
|
93
|
-
updates
|
|
101
|
+
updates,
|
|
94
102
|
};
|
|
95
103
|
};
|
|
96
104
|
|
|
@@ -12,13 +12,13 @@ MediaSharesUtils.parse = (mediaShares: object) => {
|
|
|
12
12
|
return {
|
|
13
13
|
content: {
|
|
14
14
|
beneficiaryId: MediaSharesUtils.getContentBeneficiaryId(mediaShares),
|
|
15
|
-
disposition: MediaSharesUtils.getContentDisposition(mediaShares)
|
|
15
|
+
disposition: MediaSharesUtils.getContentDisposition(mediaShares),
|
|
16
16
|
},
|
|
17
17
|
whiteboard: {
|
|
18
18
|
beneficiaryId: MediaSharesUtils.getWhiteboardBeneficiaryId(mediaShares),
|
|
19
19
|
disposition: MediaSharesUtils.getWhiteboardDisposition(mediaShares),
|
|
20
|
-
resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares)
|
|
21
|
-
}
|
|
20
|
+
resourceUrl: MediaSharesUtils.getWhiteboardResourceUrl(mediaShares),
|
|
21
|
+
},
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -38,7 +38,7 @@ MediaSharesUtils.getMediaShares = (oldShare: object, newShare: object) => {
|
|
|
38
38
|
|
|
39
39
|
return {
|
|
40
40
|
previous,
|
|
41
|
-
current
|
|
41
|
+
current,
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
44
|
|