@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.20
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 +116 -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/index.js +226 -0
- package/dist/breakouts/index.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 +88 -46
- 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 +12 -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 +184 -190
- 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 +34 -91
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +67 -111
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +80 -114
- 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 +125 -190
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +5 -14
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1692 -1925
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +36 -77
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +224 -230
- 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 +43 -215
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +6 -25
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +14 -32
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +193 -268
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +3 -15
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +98 -183
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +137 -228
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +5 -20
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +490 -560
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +24 -41
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +99 -155
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +78 -86
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +31 -68
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +3 -12
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +93 -200
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +16 -39
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +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 +55 -135
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +57 -32
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +15 -21
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -50
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +45 -82
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +18 -58
- 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 +362 -416
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +36 -57
- 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 +138 -182
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +3 -18
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/constants.js +13 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.js +109 -0
- package/dist/reactions/reactions.js.map +1 -0
- package/dist/reactions/reactions.type.js +36 -0
- package/dist/reactions/reactions.type.js.map +1 -0
- package/dist/reconnection-manager/index.js +322 -455
- 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 +39 -64
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +94 -113
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +85 -94
- 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 +85 -175
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +72 -53
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +22 -47
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +25 -20
- package/src/breakouts/README.md +190 -0
- package/src/breakouts/breakout.ts +110 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/index.ts +225 -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-in-progress.js → reconnection-in-progress.ts} +0 -0
- 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 +40 -1
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +114 -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} +148 -64
- 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} +123 -68
- package/src/media/{index.js → index.ts} +181 -131
- package/src/media/{properties.js → properties.ts} +47 -28
- package/src/media/{util.js → util.ts} +2 -2
- package/src/mediaQualityMetrics/{config.js → config.ts} +46 -46
- package/src/meeting/{effectsState.js → effectsState.ts} +47 -41
- package/src/meeting/in-meeting-actions.ts +15 -3
- package/src/meeting/{index.js → index.ts} +2263 -1427
- package/src/meeting/{muteState.js → muteState.ts} +78 -42
- package/src/meeting/{request.js → request.ts} +292 -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} +112 -115
- package/src/meeting-info/{collection.js → collection.ts} +6 -2
- package/src/meeting-info/{index.js → index.ts} +42 -36
- package/src/meeting-info/meeting-info-v2.ts +273 -0
- package/src/meeting-info/{request.js → request.ts} +14 -4
- package/src/meeting-info/{util.js → util.ts} +60 -51
- package/src/meeting-info/{utilv2.js → utilv2.ts} +65 -58
- package/src/meetings/{collection.js → collection.ts} +6 -3
- package/src/meetings/index.ts +1159 -0
- package/src/meetings/{request.js → request.ts} +32 -25
- package/src/meetings/{util.js → util.ts} +34 -32
- package/src/member/{index.js → index.ts} +102 -56
- package/src/member/{util.js → util.ts} +52 -25
- package/src/members/{collection.js → collection.ts} +2 -2
- package/src/members/{index.js → index.ts} +219 -142
- package/src/members/{request.js → request.ts} +60 -16
- package/src/members/{util.js → util.ts} +50 -48
- package/src/metrics/{config.js → config.ts} +254 -83
- package/src/metrics/{constants.js → constants.ts} +0 -2
- package/src/metrics/{index.js → index.ts} +106 -74
- package/src/multistream/mediaRequestManager.ts +81 -15
- package/src/multistream/multistreamMedia.ts +5 -0
- package/src/multistream/receiveSlot.ts +18 -12
- package/src/multistream/receiveSlotManager.ts +23 -21
- package/src/multistream/remoteMedia.ts +15 -5
- package/src/multistream/remoteMediaGroup.ts +4 -3
- package/src/multistream/remoteMediaManager.ts +153 -37
- package/src/networkQualityMonitor/{index.js → index.ts} +37 -25
- 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} +99 -83
- package/src/reachability/request.ts +39 -33
- 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} +195 -102
- 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} +73 -56
- package/src/roap/request.ts +157 -0
- package/src/roap/turnDiscovery.ts +77 -37
- package/src/statsAnalyzer/{global.js → global.ts} +30 -33
- package/src/statsAnalyzer/{index.js → index.ts} +468 -192
- package/src/statsAnalyzer/mqaUtil.ts +290 -0
- package/src/transcription/{index.js → index.ts} +46 -39
- package/test/integration/spec/journey.js +664 -463
- package/test/integration/spec/space-meeting.js +320 -206
- package/test/integration/spec/transcription.js +7 -8
- package/test/unit/spec/breakouts/breakout.ts +119 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/index.ts +293 -0
- 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 +25 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +104 -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 +97 -103
- package/test/unit/spec/locus-info/selfUtils.js +105 -12
- package/test/unit/spec/media/index.ts +31 -47
- package/test/unit/spec/media/properties.ts +9 -9
- package/test/unit/spec/meeting/effectsState.js +39 -45
- package/test/unit/spec/meeting/in-meeting-actions.ts +5 -2
- package/test/unit/spec/meeting/index.js +2017 -742
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +115 -44
- package/test/unit/spec/meeting/utils.js +104 -171
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +439 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +31 -7
- package/test/unit/spec/members/index.js +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/multistream/mediaRequestManager.ts +316 -50
- package/test/unit/spec/multistream/receiveSlot.ts +6 -6
- package/test/unit/spec/multistream/receiveSlotManager.ts +13 -13
- package/test/unit/spec/multistream/remoteMedia.ts +10 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +5 -5
- package/test/unit/spec/multistream/remoteMediaManager.ts +412 -65
- 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 +58 -26
- package/test/unit/spec/reconnection-manager/index.js +102 -9
- 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 +2 -1
- package/test/unit/spec/roap/request.ts +114 -0
- package/test/unit/spec/roap/turnDiscovery.ts +64 -45
- package/test/unit/spec/stats-analyzer/index.js +27 -22
- 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 +54 -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/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/meeting-info/meeting-info-v2.js +0 -255
- package/src/meetings/index.js +0 -1015
- package/src/peer-connection-manager/util.ts +0 -117
- package/src/roap/request.js +0 -127
- package/src/statsAnalyzer/mqaUtil.js +0 -173
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -389
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* @property {number} code - Error code
|
|
4
4
|
*/
|
|
5
5
|
export default class WebexMeetingsError extends Error {
|
|
6
|
+
code: any;
|
|
7
|
+
|
|
6
8
|
/**
|
|
7
9
|
* Creates a new {@link WebexMeetingsError}
|
|
8
10
|
* @param {number} code - Error code
|
|
@@ -10,14 +12,14 @@ export default class WebexMeetingsError extends Error {
|
|
|
10
12
|
* @param {string} [fileName] - Name of the script file where error was generated
|
|
11
13
|
* @param {number} [lineNumber] - Line number of the script file where error was generated
|
|
12
14
|
*/
|
|
13
|
-
constructor(code, ...args) {
|
|
15
|
+
constructor(code: number, ...args: any[]) {
|
|
14
16
|
super(...args);
|
|
15
17
|
|
|
16
18
|
this.name = 'WebexMeetingsError';
|
|
17
19
|
|
|
18
20
|
Object.defineProperty(this, 'code', {
|
|
19
21
|
value: code,
|
|
20
|
-
enumerable: true
|
|
22
|
+
enumerable: true,
|
|
21
23
|
});
|
|
22
24
|
}
|
|
23
25
|
|
|
@@ -18,8 +18,12 @@ export default class EventsScope extends ChildEmitter {
|
|
|
18
18
|
* @param {*} args
|
|
19
19
|
* @returns {Function}
|
|
20
20
|
*/
|
|
21
|
-
emit(scope, eventName, args) {
|
|
22
|
-
LoggerProxy.logger.debug(
|
|
21
|
+
emit(scope: any, eventName: any, args: any) {
|
|
22
|
+
LoggerProxy.logger.debug(
|
|
23
|
+
`${EventsUtil.getScopeLog(scope)}event#${eventName}${
|
|
24
|
+
LoggerConfig.verboseEvents ? ` -- ${EventsUtil.getEventLog(args)}` : ''
|
|
25
|
+
}`
|
|
26
|
+
);
|
|
23
27
|
|
|
24
28
|
return super.emit(eventName, args);
|
|
25
29
|
}
|
|
@@ -12,7 +12,11 @@ import EventsUtil from './util';
|
|
|
12
12
|
*/
|
|
13
13
|
class Events extends EventEmitter {
|
|
14
14
|
emit(scope, eventName, args) {
|
|
15
|
-
LoggerProxy.logger.debug(
|
|
15
|
+
LoggerProxy.logger.debug(
|
|
16
|
+
`${EventsUtil.getScopeLog(scope)}event#${eventName}${
|
|
17
|
+
LoggerConfig.verboseEvents ? ` -- ${EventsUtil.getEventLog(args)}` : ''
|
|
18
|
+
}`
|
|
19
|
+
);
|
|
16
20
|
|
|
17
21
|
return super.emit(eventName, args);
|
|
18
22
|
}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
|
|
2
1
|
import LoggerProxy from '../logs/logger-proxy';
|
|
3
2
|
import LoggerConfig from '../logs/logger-config';
|
|
4
3
|
import ParameterError from '../errors/parameter';
|
|
5
4
|
|
|
6
5
|
import EventsUtil from './util';
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
const TriggerProxy = {};
|
|
7
|
+
const TriggerProxy: any = {};
|
|
10
8
|
|
|
11
9
|
TriggerProxy.trigger = (instance, scope, trigger, payload) => {
|
|
12
10
|
if (!instance || !instance.trigger) {
|
|
13
|
-
throw new ParameterError(
|
|
11
|
+
throw new ParameterError(
|
|
12
|
+
'Instance to trigger from must be defined and have a trigger function.'
|
|
13
|
+
);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
LoggerProxy.logger.debug(
|
|
16
|
+
LoggerProxy.logger.debug(
|
|
17
|
+
`${EventsUtil.getScopeLog(scope)}event#${trigger}${
|
|
18
|
+
LoggerConfig.verboseEvents ? ` -- ${EventsUtil.getEventLog(payload)}` : ''
|
|
19
|
+
}`
|
|
20
|
+
);
|
|
17
21
|
|
|
18
22
|
return instance.trigger(trigger, payload);
|
|
19
23
|
};
|
|
@@ -2,15 +2,14 @@ import {inspect} from 'util';
|
|
|
2
2
|
|
|
3
3
|
import LoggerProxy from '../logs/logger-proxy';
|
|
4
4
|
|
|
5
|
-
const EventsUtil = {};
|
|
5
|
+
const EventsUtil: any = {};
|
|
6
6
|
|
|
7
7
|
EventsUtil.getEventLog = (args) => {
|
|
8
8
|
let argString = '';
|
|
9
9
|
|
|
10
10
|
try {
|
|
11
11
|
argString = inspect(args);
|
|
12
|
-
}
|
|
13
|
-
catch (e) {
|
|
12
|
+
} catch (e) {
|
|
14
13
|
LoggerProxy.logger.warn(`Events:util#getEventLog --> ${e}`);
|
|
15
14
|
}
|
|
16
15
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
import LoggerConfig from './logger-config';
|
|
3
|
+
|
|
4
|
+
const LoggerProxy: any = {
|
|
5
|
+
logger: {
|
|
6
|
+
info: (args) => {
|
|
7
|
+
console.error('LoggerProxy->info#NO LOGGER DEFINED');
|
|
8
|
+
},
|
|
9
|
+
log: (args) => {
|
|
10
|
+
console.error('LoggerProxy->log#NO LOGGER DEFINED');
|
|
11
|
+
},
|
|
12
|
+
error: (args) => {
|
|
13
|
+
console.error('LoggerProxy->error#NO LOGGER DEFINED');
|
|
14
|
+
},
|
|
15
|
+
warn: (args) => {
|
|
16
|
+
console.error('LoggerProxy->warn#NO LOGGER DEFINED');
|
|
17
|
+
},
|
|
18
|
+
trace: (args) => {
|
|
19
|
+
console.error('LoggerProxy->trace#NO LOGGER DEFINED');
|
|
20
|
+
},
|
|
21
|
+
debug: (args) => {
|
|
22
|
+
console.error('LoggerProxy->debug#NO LOGGER DEFINED');
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
LoggerProxy.set = (logger) => {
|
|
28
|
+
if (!LoggerConfig.enable) {
|
|
29
|
+
LoggerProxy.logger = {
|
|
30
|
+
info: () => {},
|
|
31
|
+
log: () => {},
|
|
32
|
+
error: () => {},
|
|
33
|
+
warn: () => {},
|
|
34
|
+
trace: () => {},
|
|
35
|
+
debug: () => {},
|
|
36
|
+
};
|
|
37
|
+
} else {
|
|
38
|
+
LoggerProxy.logger = logger;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
LoggerProxy.get = () => LoggerProxy.logger;
|
|
43
|
+
|
|
44
|
+
export default LoggerProxy;
|
|
@@ -6,13 +6,15 @@ import LoggerProxy from './logger-proxy';
|
|
|
6
6
|
* @class LogsRequest
|
|
7
7
|
*/
|
|
8
8
|
export default class LogsRequest {
|
|
9
|
+
webex: any;
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
12
|
*
|
|
11
13
|
* @param {Object} options
|
|
12
14
|
* @param {Object} options.webex Webex SDK instance
|
|
13
15
|
* @param {ClientMetrics} metrics
|
|
14
16
|
*/
|
|
15
|
-
constructor(options) {
|
|
17
|
+
constructor(options: {webex: object}) {
|
|
16
18
|
this.webex = options.webex;
|
|
17
19
|
}
|
|
18
20
|
|
|
@@ -28,20 +30,31 @@ export default class LogsRequest {
|
|
|
28
30
|
* @returns {Promise.<String>} Feedback ID
|
|
29
31
|
* @memberof LogsRequest
|
|
30
32
|
*/
|
|
31
|
-
async uploadLogs(
|
|
33
|
+
async uploadLogs(
|
|
34
|
+
options: {
|
|
35
|
+
feedbackId?: string;
|
|
36
|
+
locusId?: string;
|
|
37
|
+
correlationId?: string;
|
|
38
|
+
callStart?: string;
|
|
39
|
+
meetingId?: string;
|
|
40
|
+
} = {}
|
|
41
|
+
) {
|
|
32
42
|
const id = options.feedbackId || uuid.v4();
|
|
33
|
-
const {
|
|
34
|
-
locusId, correlationId, meetingId, callStart
|
|
35
|
-
} = options;
|
|
43
|
+
const {locusId, correlationId, meetingId, callStart} = options;
|
|
36
44
|
|
|
37
|
-
LoggerProxy.logger.info(
|
|
45
|
+
LoggerProxy.logger.info(
|
|
46
|
+
`Logs:request#uploadLogs --> uploading user logs for feedbackId: ${id}`
|
|
47
|
+
);
|
|
38
48
|
|
|
39
49
|
try {
|
|
40
50
|
await this.webex.internal.support.submitLogs({
|
|
41
|
-
feedbackId: id,
|
|
51
|
+
feedbackId: id,
|
|
52
|
+
locusId,
|
|
53
|
+
correlationId,
|
|
54
|
+
meetingId,
|
|
55
|
+
callStart,
|
|
42
56
|
});
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
57
|
+
} catch (error) {
|
|
45
58
|
LoggerProxy.logger.error('Logs:request#uploadLogs --> uploading user logs failed', error);
|
|
46
59
|
|
|
47
60
|
return Promise.reject(error);
|
package/src/common/queue.ts
CHANGED
|
@@ -23,7 +23,7 @@ export default class SimpleQueue {
|
|
|
23
23
|
* @param {object} item
|
|
24
24
|
* @returns {undefined}
|
|
25
25
|
*/
|
|
26
|
-
enqueue(item) {
|
|
26
|
+
enqueue(item: object) {
|
|
27
27
|
this.queue.push(item);
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -48,4 +48,3 @@ export default class SimpleQueue {
|
|
|
48
48
|
return this.queue.length;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
deviceType,
|
|
3
4
|
} from '@webex/common';
|
|
4
5
|
|
|
5
6
|
export default {
|
|
@@ -15,7 +16,7 @@ export default {
|
|
|
15
16
|
receiveVideo: true,
|
|
16
17
|
pstn: false,
|
|
17
18
|
sendShare: false,
|
|
18
|
-
receiveShare: false
|
|
19
|
+
receiveShare: false,
|
|
19
20
|
},
|
|
20
21
|
reconnection: {
|
|
21
22
|
enabled: false,
|
|
@@ -24,7 +25,7 @@ export default {
|
|
|
24
25
|
// Timeout duration to wait for ICE to reconnect if a disconnect is received.
|
|
25
26
|
iceReconnectionTimeout: 10000,
|
|
26
27
|
// Amount of times attempting to rejoin a meeting during reconnect
|
|
27
|
-
maxRejoinAttempts: 3
|
|
28
|
+
maxRejoinAttempts: 3,
|
|
28
29
|
},
|
|
29
30
|
stats: {
|
|
30
31
|
// Enable the webrtc stats analyzer that emits quality degradation events
|
|
@@ -40,7 +41,7 @@ export default {
|
|
|
40
41
|
// Once packet loss hits this ratio, the video will downgrade
|
|
41
42
|
videoPacketLossRatioThreshold: 9, // comparison of packets lost / packets received
|
|
42
43
|
rttThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user
|
|
43
|
-
jitterThreshold: 500 // 500 ms noticeable quality lag begins based on bandwidth of user
|
|
44
|
+
jitterThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user
|
|
44
45
|
},
|
|
45
46
|
metrics: {
|
|
46
47
|
// change to your client name else data will be muddled
|
|
@@ -54,30 +55,30 @@ export default {
|
|
|
54
55
|
mqaMetricsInterval: 60000,
|
|
55
56
|
// send to cisco internal MQA data automatically
|
|
56
57
|
// we already send CA
|
|
57
|
-
autoSendMQA: true
|
|
58
|
+
autoSendMQA: true,
|
|
58
59
|
},
|
|
59
60
|
logging: {
|
|
60
61
|
enable: true,
|
|
61
|
-
verboseEvents: true
|
|
62
|
+
verboseEvents: true,
|
|
62
63
|
},
|
|
63
64
|
resolution: {
|
|
64
65
|
maxWidth: 1280,
|
|
65
66
|
maxHeight: 720,
|
|
66
67
|
idealWidth: 1280,
|
|
67
|
-
idealHeight: 720
|
|
68
|
+
idealHeight: 720,
|
|
68
69
|
},
|
|
69
70
|
screenResolution: {
|
|
70
71
|
maxWidth: 1920,
|
|
71
72
|
maxHeight: 1080,
|
|
72
73
|
idealWidth: 1920,
|
|
73
|
-
idealHeight: 1080
|
|
74
|
+
idealHeight: 1080,
|
|
74
75
|
},
|
|
75
76
|
bandwidth: {
|
|
76
77
|
// please note, these are the maximum bandwidth values
|
|
77
78
|
// the server supports, minimums have to be tested
|
|
78
79
|
audio: 64000,
|
|
79
80
|
video: 4000000,
|
|
80
|
-
startBitrate: 2000
|
|
81
|
+
startBitrate: 2000,
|
|
81
82
|
},
|
|
82
83
|
screenFrameRate: 10,
|
|
83
84
|
videoShareFrameRate: 30,
|
|
@@ -87,11 +88,15 @@ export default {
|
|
|
87
88
|
enableRtx: true,
|
|
88
89
|
receiveTranscription: false,
|
|
89
90
|
enableExtmap: false,
|
|
91
|
+
enableAutomaticLLM: false,
|
|
90
92
|
experimental: {
|
|
91
93
|
enableMediaNegotiatedEvent: false,
|
|
92
94
|
enableUnifiedMeetings: false,
|
|
93
95
|
enableAdhocMeetings: false,
|
|
94
|
-
enableTurnDiscovery:
|
|
95
|
-
}
|
|
96
|
-
|
|
96
|
+
enableTurnDiscovery: true,
|
|
97
|
+
},
|
|
98
|
+
degradationPreferences: {
|
|
99
|
+
maxMacroblocksLimit: 32400,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
97
102
|
};
|
package/src/constants.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-ignore
|
|
1
2
|
import {hydraTypes} from '@webex/common';
|
|
2
3
|
|
|
3
4
|
// *********** LOWERCASE / CAMELCASE STRINGS ************
|
|
@@ -287,6 +288,7 @@ export const EVENT_TRIGGERS = {
|
|
|
287
288
|
MEETING_STOPPED_RECORDING: 'meeting:recording:stopped',
|
|
288
289
|
MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',
|
|
289
290
|
MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
|
|
291
|
+
MEETING_RECEIVE_REACTIONS: 'meeting:receiveReactions',
|
|
290
292
|
MEETING_PAUSED_RECORDING: 'meeting:recording:paused',
|
|
291
293
|
MEETING_RESUMED_RECORDING: 'meeting:recording:resumed',
|
|
292
294
|
MEETING_ADDED: 'meeting:added',
|
|
@@ -303,6 +305,9 @@ export const EVENT_TRIGGERS = {
|
|
|
303
305
|
MEETING_SELF_IS_SHARING_BLOCKED: 'meeting:self:isSharingBlocked',
|
|
304
306
|
MEETING_CONTROLS_LAYOUT_UPDATE: 'meeting:layout:update',
|
|
305
307
|
MEETING_ENTRY_EXIT_TONE_UPDATE: 'meeting:entryExitTone:update',
|
|
308
|
+
MEETING_BREAKOUTS_UPDATE: 'meeting:breakouts:update',
|
|
309
|
+
MEETING_BREAKOUTS_CLOSING: 'meeting:breakouts:closing',
|
|
310
|
+
MEETING_BREAKOUTS_MESSAGE: 'meeting:breakouts:message',
|
|
306
311
|
MEMBERS_UPDATE: 'members:update',
|
|
307
312
|
MEMBERS_CONTENT_UPDATE: 'members:content:update',
|
|
308
313
|
MEMBERS_HOST_UPDATE: 'members:host:update',
|
|
@@ -330,7 +335,7 @@ export const EVENT_TRIGGERS = {
|
|
|
330
335
|
REMOTE_VIDEO_SOURCE_COUNT_CHANGED: 'media:remoteVideoSourceCountChanged',
|
|
331
336
|
REMOTE_AUDIO_SOURCE_COUNT_CHANGED: 'media:remoteAudioSourceCountChanged',
|
|
332
337
|
REMOTE_MEDIA_AUDIO_CREATED: 'media:remoteAudio:created',
|
|
333
|
-
REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED: 'media:
|
|
338
|
+
REMOTE_MEDIA_SCREEN_SHARE_AUDIO_CREATED: 'media:remoteScreenShareAudio:created',
|
|
334
339
|
REMOTE_MEDIA_VIDEO_LAYOUT_CHANGED: 'media:remoteVideo:layoutChanged',
|
|
335
340
|
};
|
|
336
341
|
|
|
@@ -513,11 +518,34 @@ export const LOCUS = {
|
|
|
513
518
|
SYNCDEBUG: 'sync_debug',
|
|
514
519
|
};
|
|
515
520
|
|
|
521
|
+
export const BREAKOUTS = {
|
|
522
|
+
STATUS: {
|
|
523
|
+
CLOSING: 'CLOSING',
|
|
524
|
+
},
|
|
525
|
+
EVENTS: {
|
|
526
|
+
BREAKOUTS_CLOSING: 'BREAKOUTS_CLOSING',
|
|
527
|
+
MESSAGE: 'MESSAGE',
|
|
528
|
+
MEMBERS_UPDATE: 'MEMBERS_UPDATE',
|
|
529
|
+
},
|
|
530
|
+
SESSION_TYPES: {
|
|
531
|
+
MAIN: 'MAIN',
|
|
532
|
+
},
|
|
533
|
+
SESSION_STATES: {
|
|
534
|
+
ACTIVE: 'active',
|
|
535
|
+
ASSIGNED: 'assigned',
|
|
536
|
+
ALLOWED: 'allowed',
|
|
537
|
+
ASSIGNED_CURRENT: 'assignedCurrent',
|
|
538
|
+
REQUESTED: 'requested',
|
|
539
|
+
},
|
|
540
|
+
BREAKOUTS_SUPPORTED: 'BREAKOUTS_SUPPORTED',
|
|
541
|
+
};
|
|
542
|
+
|
|
516
543
|
export const LOCUSINFO = {
|
|
517
544
|
EVENTS: {
|
|
518
545
|
CONTROLS_MEETING_LAYOUT_UPDATED: 'CONTROLS_MEETING_LAYOUT_UPDATED',
|
|
519
546
|
CONTROLS_RECORDING_UPDATED: 'CONTROLS_RECORDING_UPDATED',
|
|
520
547
|
CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',
|
|
548
|
+
CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',
|
|
521
549
|
CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
|
|
522
550
|
CONTROLS_ENTRY_EXIT_TONE_UPDATED: 'CONTROLS_ENTRY_EXIT_TONE_UPDATED',
|
|
523
551
|
SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
|
|
@@ -539,6 +567,9 @@ export const LOCUSINFO = {
|
|
|
539
567
|
EMBEDDED_APPS_UPDATED: 'EMBEDDED_APPS_UPDATED',
|
|
540
568
|
SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE: 'SELF_CANNOT_VIEW_PARTICIPANT_LIST_CHANGE',
|
|
541
569
|
SELF_IS_SHARING_BLOCKED_CHANGE: 'SELF_IS_SHARING_BLOCKED_CHANGE',
|
|
570
|
+
SELF_MEETING_BREAKOUTS_CHANGED: 'SELF_MEETING_BREAKOUTS_CHANGED',
|
|
571
|
+
MEDIA_INACTIVITY: 'MEDIA_INACTIVITY',
|
|
572
|
+
LINKS_SERVICES: 'LINKS_SERVICES',
|
|
542
573
|
},
|
|
543
574
|
};
|
|
544
575
|
|
|
@@ -551,6 +582,9 @@ export const LOCUSEVENT = {
|
|
|
551
582
|
// delta events
|
|
552
583
|
DIFFERENCE: 'locus.difference',
|
|
553
584
|
|
|
585
|
+
// Breakout sessions
|
|
586
|
+
BREAKOUT_ROSTER: 'breakout.roster',
|
|
587
|
+
|
|
554
588
|
// screen sharing
|
|
555
589
|
FLOOR_GRANTED: 'locus.floor_granted',
|
|
556
590
|
FLOOR_RELEASED: 'locus.floor_released',
|
|
@@ -723,6 +757,10 @@ export const DISPLAY_HINTS = {
|
|
|
723
757
|
TRANSCRIPTION_CONTROL_STOP: 'TRANSCRIPTION_CONTROL_STOP',
|
|
724
758
|
WEBEX_ASSISTANT_STATUS_ACTIVE: 'WEBEX_ASSISTANT_STATUS_ACTIVE',
|
|
725
759
|
WAITING_FOR_OTHERS: 'WAITING_FOR_OTHERS',
|
|
760
|
+
ENABLE_REACTIONS: 'ENABLE_REACTIONS',
|
|
761
|
+
DISABLE_REACTIONS: 'DISABLE_REACTIONS',
|
|
762
|
+
REACTIONS_ACTIVE: 'REACTIONS_ACTIVE',
|
|
763
|
+
REACTIONS_INACTIVE: 'REACTIONS_INACTIVE',
|
|
726
764
|
};
|
|
727
765
|
|
|
728
766
|
export const SELF_ROLES = {
|
|
@@ -813,6 +851,7 @@ export const RESOURCE = {
|
|
|
813
851
|
|
|
814
852
|
export const REACHABILITY = {
|
|
815
853
|
localStorage: 'reachability.result',
|
|
854
|
+
namespace: 'Reachability',
|
|
816
855
|
};
|
|
817
856
|
|
|
818
857
|
export const ROAP = {
|
package/src/index.js
CHANGED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import {isEqual} from 'lodash';
|
|
2
|
+
|
|
3
|
+
const ControlsUtils: any = {};
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Controls
|
|
7
|
+
* @typedef {Object} LocusControls
|
|
8
|
+
* @property {Object} record
|
|
9
|
+
* @property {Boolean} record.recording
|
|
10
|
+
* @property {Object} record.meta
|
|
11
|
+
* @property {String} record.meta.modifiedBy
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* parse the relevant host values that we care about: id
|
|
16
|
+
* @param {LocusControls} controls
|
|
17
|
+
* @returns {Object} parsedObject - parsed host or null if host was undefined
|
|
18
|
+
* @returns {String} parsedObject.recordingId
|
|
19
|
+
*/
|
|
20
|
+
ControlsUtils.parse = (controls: any) => {
|
|
21
|
+
const parsedControls = {...controls};
|
|
22
|
+
|
|
23
|
+
if (controls && controls.record) {
|
|
24
|
+
parsedControls.record = {
|
|
25
|
+
modifiedBy: ControlsUtils.getId(controls),
|
|
26
|
+
paused: controls.record.paused ? controls.record.paused : false,
|
|
27
|
+
recording: controls.record.recording,
|
|
28
|
+
lastModified: controls.record.meta.lastModified,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (controls && controls.meetingContainer) {
|
|
33
|
+
parsedControls.meetingContainer = {
|
|
34
|
+
meetingContainerUrl: controls.meetingContainer.meetingContainerUrl,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (controls && controls.transcribe) {
|
|
39
|
+
parsedControls.transcribe = {
|
|
40
|
+
transcribing: controls.transcribe.transcribing,
|
|
41
|
+
caption: controls.transcribe.caption,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (controls && controls.entryExitTone) {
|
|
46
|
+
parsedControls.entryExitTone = controls.entryExitTone.enabled
|
|
47
|
+
? controls.entryExitTone.mode
|
|
48
|
+
: null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return parsedControls;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* parses and returns previous state vs current state and triggers the changes.
|
|
56
|
+
* @param {LocusControls} oldControls previous state
|
|
57
|
+
* @param {LocusControls} newControls current state
|
|
58
|
+
* @returns {Object} combination of state plus the changes
|
|
59
|
+
*/
|
|
60
|
+
ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
61
|
+
const previous = ControlsUtils.parse(oldControls);
|
|
62
|
+
const current = ControlsUtils.parse(newControls);
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
previous,
|
|
66
|
+
current,
|
|
67
|
+
updates: {
|
|
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
|
+
|
|
96
|
+
hasBreakoutChanged: !isEqual(previous?.breakout, current?.breakout),
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Extract the id from the record controls object
|
|
103
|
+
* @param {LocusControls} controls
|
|
104
|
+
* @returns {String|null}
|
|
105
|
+
*/
|
|
106
|
+
ControlsUtils.getId = (controls: any) => {
|
|
107
|
+
if (controls.record.meta) {
|
|
108
|
+
return controls.record.meta.modifiedBy;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return null;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export default ControlsUtils;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {EMBEDDED_APP_TYPES} from '../constants';
|
|
2
2
|
|
|
3
|
-
const EmbeddedAppsUtils = {};
|
|
4
|
-
|
|
3
|
+
const EmbeddedAppsUtils: any = {};
|
|
5
4
|
const SLIDO_REGEX = /.sli.do\//;
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -9,8 +8,8 @@ const SLIDO_REGEX = /.sli.do\//;
|
|
|
9
8
|
* @param {Object} embeddedApp - raw embedded app object
|
|
10
9
|
* @returns {Object} parsedObject - parsed embedded app object
|
|
11
10
|
*/
|
|
12
|
-
EmbeddedAppsUtils.parseApp = (embeddedApp) => {
|
|
13
|
-
const parsedApp = {...embeddedApp};
|
|
11
|
+
EmbeddedAppsUtils.parseApp = (embeddedApp: object) => {
|
|
12
|
+
const parsedApp: any = {...embeddedApp};
|
|
14
13
|
|
|
15
14
|
parsedApp.type = EMBEDDED_APP_TYPES.OTHER;
|
|
16
15
|
const url = parsedApp.instanceInfo?.appInstanceUrl;
|
|
@@ -29,7 +28,7 @@ EmbeddedAppsUtils.parseApp = (embeddedApp) => {
|
|
|
29
28
|
* @param {any[]} apps2 - an array of apps
|
|
30
29
|
* @returns {boolean} true if the arrays are different
|
|
31
30
|
*/
|
|
32
|
-
EmbeddedAppsUtils.areSimilar = (apps1, apps2) => {
|
|
31
|
+
EmbeddedAppsUtils.areSimilar = (apps1: any[], apps2: any[]) => {
|
|
33
32
|
if (!apps1 || !apps2) {
|
|
34
33
|
return apps1 === apps2;
|
|
35
34
|
}
|
|
@@ -52,7 +51,7 @@ EmbeddedAppsUtils.areSimilar = (apps1, apps2) => {
|
|
|
52
51
|
* @param {array} embeddedApps
|
|
53
52
|
* @returns {array} result - new array of parsed embedded app objects
|
|
54
53
|
*/
|
|
55
|
-
EmbeddedAppsUtils.parse = (embeddedApps) =>
|
|
54
|
+
EmbeddedAppsUtils.parse = (embeddedApps: Array<any>) =>
|
|
56
55
|
embeddedApps && embeddedApps.map(EmbeddedAppsUtils.parseApp);
|
|
57
56
|
|
|
58
57
|
export default EmbeddedAppsUtils;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import {FULL_STATE} from '../constants';
|
|
2
2
|
|
|
3
|
-
const FullState = {};
|
|
3
|
+
const FullState: any = {};
|
|
4
4
|
|
|
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
|
|