@webex/plugin-meetings 3.0.0-beta.2 → 3.0.0-beta.21
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 +4 -18
- 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 +2 -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
package/UPGRADING.md
CHANGED
|
@@ -25,7 +25,7 @@ When using the phone plugin, this was handled automatically for you via `webex.p
|
|
|
25
25
|
With the meetings plugin, we provide the same method:
|
|
26
26
|
|
|
27
27
|
```js
|
|
28
|
-
webex.meetings.register()
|
|
28
|
+
webex.meetings.register();
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
## Dialing
|
|
@@ -56,7 +56,7 @@ await myMeeting.join();
|
|
|
56
56
|
### Joining a one-on-one meeting
|
|
57
57
|
|
|
58
58
|
```js
|
|
59
|
-
let destination =
|
|
59
|
+
let destination = 'testuser@webex.bot';
|
|
60
60
|
|
|
61
61
|
const myMeeting = await webex.meetings.create(destination);
|
|
62
62
|
|
|
@@ -92,7 +92,7 @@ const mediaSettings = {
|
|
|
92
92
|
receiveShare: true,
|
|
93
93
|
sendVideo: true,
|
|
94
94
|
sendAudio: true,
|
|
95
|
-
sendShare: false
|
|
95
|
+
sendShare: false,
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
const mediaStreams = await meeting.getMediaStreams(mediaSettings);
|
|
@@ -117,7 +117,7 @@ Once you have your local streams and shares, you need to add the media to the me
|
|
|
117
117
|
const mediaResponse = await meeting.addMedia({
|
|
118
118
|
localShare,
|
|
119
119
|
localStream,
|
|
120
|
-
mediaSettings
|
|
120
|
+
mediaSettings,
|
|
121
121
|
});
|
|
122
122
|
```
|
|
123
123
|
|
|
@@ -130,20 +130,20 @@ Just like the phone plugin, the meeting object will emit events that the develop
|
|
|
130
130
|
```js
|
|
131
131
|
myMeeting.on('media:ready', (media) => {
|
|
132
132
|
// Handle media streams
|
|
133
|
-
})
|
|
133
|
+
});
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
This event is emitted when a media stream is ready to be rendered. It contains an object with two properties:
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
- `stream` the actual media stream that can be used in an html srcObject
|
|
139
|
+
- `type` the type of stream that is ready (`local`, `remoteVideo`, etc)
|
|
140
140
|
|
|
141
141
|
### `media:stopped`
|
|
142
142
|
|
|
143
143
|
```js
|
|
144
144
|
myMeeting.on('media:stopped', (media) => {
|
|
145
145
|
// Remove media streams
|
|
146
|
-
})
|
|
146
|
+
});
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
This event is emitted when a stream has stopped sending. It has a `type` property to know which media to remove from the DOM.
|
|
@@ -197,7 +197,7 @@ With a meeting object, you use these functions:
|
|
|
197
197
|
const mediaStreams = await meeting.getMediaStreams(mediaSettings);
|
|
198
198
|
const [localStream, localShare] = mediaStreams;
|
|
199
199
|
// Then, update share
|
|
200
|
-
meeting.updateShare({sendShare: true, receiveShare:true, stream: localShare})
|
|
200
|
+
meeting.updateShare({sendShare: true, receiveShare: true, stream: localShare});
|
|
201
201
|
```
|
|
202
202
|
|
|
203
203
|
### Stop Sending Share
|
package/browsers.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
// eslint-disable-next-line strict
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
/* eslint camelcase: [0] */
|
|
9
8
|
module.exports = function createBrowsers() {
|
|
10
9
|
if (process.env.SC_TUNNEL_IDENTIFIER || process.env.SAUCE) {
|
|
@@ -19,14 +18,14 @@ module.exports = function createBrowsers() {
|
|
|
19
18
|
args: [
|
|
20
19
|
'--disable-features=WebRtcHideLocalIpsWithMdns',
|
|
21
20
|
'--use-fake-device-for-media-stream',
|
|
22
|
-
'--use-fake-ui-for-media-stream'
|
|
23
|
-
]
|
|
21
|
+
'--use-fake-ui-for-media-stream',
|
|
22
|
+
],
|
|
24
23
|
},
|
|
25
24
|
flags: [
|
|
26
25
|
'--disable-features=WebRtcHideLocalIpsWithMdns',
|
|
27
26
|
'--use-fake-device-for-media-stream',
|
|
28
|
-
'--use-fake-ui-for-media-stream'
|
|
29
|
-
]
|
|
27
|
+
'--use-fake-ui-for-media-stream',
|
|
28
|
+
],
|
|
30
29
|
},
|
|
31
30
|
sl_edge_latest_Win_10: {
|
|
32
31
|
base: 'SauceLabs',
|
|
@@ -38,9 +37,9 @@ module.exports = function createBrowsers() {
|
|
|
38
37
|
args: [
|
|
39
38
|
'--disable-features=WebRtcHideLocalIpsWithMdns',
|
|
40
39
|
'--use-fake-device-for-media-stream',
|
|
41
|
-
'--use-fake-ui-for-media-stream'
|
|
42
|
-
]
|
|
43
|
-
}
|
|
40
|
+
'--use-fake-ui-for-media-stream',
|
|
41
|
+
],
|
|
42
|
+
},
|
|
44
43
|
},
|
|
45
44
|
// sl_firefox_latest_linux: {
|
|
46
45
|
// base: 'SauceLabs',
|
|
@@ -54,8 +53,8 @@ module.exports = function createBrowsers() {
|
|
|
54
53
|
browserName: 'Safari',
|
|
55
54
|
version: 'latest',
|
|
56
55
|
'webkit:WebRTC': {
|
|
57
|
-
DisableInsecureMediaCapture: true
|
|
58
|
-
}
|
|
56
|
+
DisableInsecureMediaCapture: true,
|
|
57
|
+
},
|
|
59
58
|
},
|
|
60
59
|
sl_firefox_macOS_Catalina: {
|
|
61
60
|
base: 'SauceLabs',
|
|
@@ -63,10 +62,7 @@ module.exports = function createBrowsers() {
|
|
|
63
62
|
browserName: 'Firefox',
|
|
64
63
|
extendedDebugging: true,
|
|
65
64
|
'moz:firefoxOptions': {
|
|
66
|
-
args: [
|
|
67
|
-
'-start-debugger-server',
|
|
68
|
-
'9222'
|
|
69
|
-
],
|
|
65
|
+
args: ['-start-debugger-server', '9222'],
|
|
70
66
|
prefs: {
|
|
71
67
|
'devtools.chrome.enabled': true,
|
|
72
68
|
'devtools.debugger.prompt-connection': false,
|
|
@@ -76,10 +72,10 @@ module.exports = function createBrowsers() {
|
|
|
76
72
|
'media.getusermedia.screensharing.enabled': true,
|
|
77
73
|
'media.navigator.permission.disabled': true,
|
|
78
74
|
'media.navigator.streams.fake': true,
|
|
79
|
-
'media.peerconnection.video.h264_enabled': true
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
75
|
+
'media.peerconnection.video.h264_enabled': true,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
83
79
|
// sl_firefox_latest_win7: {
|
|
84
80
|
// base: `SauceLabs`,
|
|
85
81
|
// platform: `Windows 7`,
|
|
@@ -97,17 +93,16 @@ module.exports = function createBrowsers() {
|
|
|
97
93
|
'media.getusermedia.screensharing.enabled': true,
|
|
98
94
|
'media.navigator.permission.disabled': true,
|
|
99
95
|
'media.navigator.streams.fake': true,
|
|
100
|
-
'media.peerconnection.video.h264_enabled': true
|
|
101
|
-
}
|
|
96
|
+
'media.peerconnection.video.h264_enabled': true,
|
|
97
|
+
},
|
|
102
98
|
},
|
|
103
99
|
ChromeH264: {
|
|
104
100
|
base: 'ChromeHeadless',
|
|
105
101
|
flags: [
|
|
106
102
|
'--disable-features=WebRtcHideLocalIpsWithMdns',
|
|
107
103
|
'--use-fake-device-for-media-stream',
|
|
108
|
-
'--use-fake-ui-for-media-stream'
|
|
109
|
-
]
|
|
110
|
-
}
|
|
104
|
+
'--use-fake-ui-for-media-stream',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
111
107
|
};
|
|
112
108
|
};
|
|
113
|
-
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _webexCore = require("@webex/webex-core");
|
|
10
|
+
var _constants = require("../constants");
|
|
11
|
+
var _members = _interopRequireDefault(require("../members"));
|
|
12
|
+
/*!
|
|
13
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @class
|
|
18
|
+
*/
|
|
19
|
+
var Breakout = _webexCore.WebexPlugin.extend({
|
|
20
|
+
idAttribute: 'sessionId',
|
|
21
|
+
namespace: _constants.MEETINGS,
|
|
22
|
+
props: {
|
|
23
|
+
active: ['boolean', false, false],
|
|
24
|
+
// this session is active
|
|
25
|
+
allowed: ['boolean', false, false],
|
|
26
|
+
// allowed to join this session
|
|
27
|
+
assigned: ['boolean', false, false],
|
|
28
|
+
// assigned to this session, but not necessarily joined yet
|
|
29
|
+
assignedCurrent: ['boolean', false, false],
|
|
30
|
+
// assigned AND current session
|
|
31
|
+
requested: ['boolean', false, false],
|
|
32
|
+
// requested by the host to join this session
|
|
33
|
+
current: ['boolean', false, false],
|
|
34
|
+
// the current joined session
|
|
35
|
+
name: 'string',
|
|
36
|
+
sessionId: 'string',
|
|
37
|
+
sessionType: 'string',
|
|
38
|
+
groupId: 'string',
|
|
39
|
+
url: 'string' // where to send requests to
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
derived: {
|
|
43
|
+
isMain: {
|
|
44
|
+
deps: ['sessionType'],
|
|
45
|
+
/**
|
|
46
|
+
* If the breakout has no name, assume it is the main session
|
|
47
|
+
* @returns {boolean}
|
|
48
|
+
*/
|
|
49
|
+
fn: function fn() {
|
|
50
|
+
return this.sessionType === 'MAIN';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
initialize: function initialize() {
|
|
55
|
+
this.members = new _members.default({}, {
|
|
56
|
+
parent: this.webex
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* Joins the breakout session
|
|
61
|
+
* @returns {Promise}
|
|
62
|
+
*/
|
|
63
|
+
join: function join() {
|
|
64
|
+
return this.request({
|
|
65
|
+
method: _constants.HTTP_VERBS.POST,
|
|
66
|
+
uri: "".concat(this.url, "/move"),
|
|
67
|
+
body: {
|
|
68
|
+
groupId: this.groupId,
|
|
69
|
+
sessionId: this.sessionId
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
/**
|
|
74
|
+
* Leaves the breakout session to return to the main session
|
|
75
|
+
* @returns {Promise}
|
|
76
|
+
* @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found
|
|
77
|
+
*/
|
|
78
|
+
leave: function leave() {
|
|
79
|
+
if (this.isMain) {
|
|
80
|
+
throw new Error('Cannot leave the main session');
|
|
81
|
+
}
|
|
82
|
+
var mainSession = this.parent.breakouts.filter(function (breakout) {
|
|
83
|
+
return breakout.isMain;
|
|
84
|
+
})[0];
|
|
85
|
+
if (!mainSession) {
|
|
86
|
+
throw new Error('Cannot leave, no main session found');
|
|
87
|
+
}
|
|
88
|
+
return mainSession.join();
|
|
89
|
+
},
|
|
90
|
+
/**
|
|
91
|
+
* Sends a help request for the current breakout
|
|
92
|
+
* @returns {Promise}
|
|
93
|
+
*/
|
|
94
|
+
askForHelp: function askForHelp() {
|
|
95
|
+
return this.request({
|
|
96
|
+
method: _constants.HTTP_VERBS.POST,
|
|
97
|
+
uri: "".concat(this.url, "/help"),
|
|
98
|
+
body: {
|
|
99
|
+
groupId: this.groupId,
|
|
100
|
+
sessionId: this.sessionId
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
/**
|
|
105
|
+
* Parses the participants from the locus object
|
|
106
|
+
* @param locus Locus object
|
|
107
|
+
* @returns {void}
|
|
108
|
+
*/
|
|
109
|
+
parseRoster: function parseRoster(locus) {
|
|
110
|
+
this.members.locusParticipantsUpdate(locus);
|
|
111
|
+
},
|
|
112
|
+
version: "3.0.0-beta.21"
|
|
113
|
+
});
|
|
114
|
+
var _default = Breakout;
|
|
115
|
+
exports.default = _default;
|
|
116
|
+
//# sourceMappingURL=breakout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","derived","isMain","deps","fn","initialize","members","Members","parent","webex","join","request","method","HTTP_VERBS","POST","uri","body","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport {HTTP_VERBS, MEETINGS} from '../constants';\nimport LocusInfo from '../locus-info';\nimport Members from '../members';\n\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n },\n\n derived: {\n isMain: {\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n initialize() {\n this.members = new Members({}, {parent: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n join() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Parses the participants from the locus object\n * @param locus Locus object\n * @returns {void}\n */\n\n parseRoster(locus) {\n this.members.locusParticipantsUpdate(locus);\n },\n});\n\nexport default Breakout;\n"],"mappings":";;;;;;;;AAIA;AAEA;AAEA;AARA;AACA;AACA;;AAQA;AACA;AACA;AACA,IAAMA,QAAQ,GAAGC,sBAAW,CAACC,MAAM,CAAC;EAClCC,WAAW,EAAE,WAAW;EAExBC,SAAS,EAAEC,mBAAQ;EAEnBC,KAAK,EAAE;IACLC,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACnCC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACpCC,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACrCC,eAAe,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IAC5CC,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACtCC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACpCC,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,QAAQ;IACnBC,WAAW,EAAE,QAAQ;IACrBC,OAAO,EAAE,QAAQ;IACjBC,GAAG,EAAE,QAAQ,CAAE;EACjB,CAAC;;EAEDC,OAAO,EAAE;IACPC,MAAM,EAAE;MACNC,IAAI,EAAE,CAAC,aAAa,CAAC;MACrB;AACN;AACA;AACA;MACMC,EAAE,gBAAG;QACH,OAAO,IAAI,CAACN,WAAW,KAAK,MAAM;MACpC;IACF;EACF,CAAC;EAEDO,UAAU,wBAAG;IACX,IAAI,CAACC,OAAO,GAAG,IAAIC,gBAAO,CAAC,CAAC,CAAC,EAAE;MAACC,MAAM,EAAE,IAAI,CAACC;IAAK,CAAC,CAAC;EACtD,CAAC;EAED;AACF;AACA;AACA;EACEC,IAAI,kBAAG;IACL,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;MACvBC,GAAG,YAAK,IAAI,CAACf,GAAG,UAAO;MACvBgB,IAAI,EAAE;QACJjB,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBF,SAAS,EAAE,IAAI,CAACA;MAClB;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;EACEoB,KAAK,mBAAG;IACN,IAAI,IAAI,CAACf,MAAM,EAAE;MACf,MAAM,IAAIgB,KAAK,CAAC,+BAA+B,CAAC;IAClD;IAEA,IAAMC,WAAW,GAAG,IAAI,CAACX,MAAM,CAACY,SAAS,CAACC,MAAM,CAAC,UAACC,QAAQ;MAAA,OAAKA,QAAQ,CAACpB,MAAM;IAAA,EAAC,CAAC,CAAC,CAAC;IAElF,IAAI,CAACiB,WAAW,EAAE;MAChB,MAAM,IAAID,KAAK,CAAC,qCAAqC,CAAC;IACxD;IAEA,OAAOC,WAAW,CAACT,IAAI,EAAE;EAC3B,CAAC;EAED;AACF;AACA;AACA;EACEa,UAAU,wBAAG;IACX,OAAO,IAAI,CAACZ,OAAO,CAAC;MAClBC,MAAM,EAAEC,qBAAU,CAACC,IAAI;MACvBC,GAAG,YAAK,IAAI,CAACf,GAAG,UAAO;MACvBgB,IAAI,EAAE;QACJjB,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBF,SAAS,EAAE,IAAI,CAACA;MAClB;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;EAEE2B,WAAW,uBAACC,KAAK,EAAE;IACjB,IAAI,CAACnB,OAAO,CAACoB,uBAAuB,CAACD,KAAK,CAAC;EAC7C,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEY1C,QAAQ;AAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _ampersandCollection = _interopRequireDefault(require("ampersand-collection"));
|
|
10
|
+
var _constants = require("../constants");
|
|
11
|
+
var _breakout = _interopRequireDefault(require("./breakout"));
|
|
12
|
+
/*!
|
|
13
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
var BreakoutCollection = _ampersandCollection.default.extend({
|
|
17
|
+
model: _breakout.default,
|
|
18
|
+
namespace: _constants.MEETINGS,
|
|
19
|
+
mainIndex: 'sessionId'
|
|
20
|
+
});
|
|
21
|
+
var _default = BreakoutCollection;
|
|
22
|
+
exports.default = _default;
|
|
23
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BreakoutCollection","AmpCollection","extend","model","Breakout","namespace","MEETINGS","mainIndex"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport AmpCollection from 'ampersand-collection';\n\nimport {MEETINGS} from '../constants';\n\nimport Breakout from './breakout';\n\nconst BreakoutCollection = AmpCollection.extend({\n model: Breakout,\n\n namespace: MEETINGS,\n\n mainIndex: 'sessionId',\n});\n\nexport default BreakoutCollection;\n"],"mappings":";;;;;;;;AAIA;AAEA;AAEA;AARA;AACA;AACA;;AAQA,IAAMA,kBAAkB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAC9CC,KAAK,EAAEC,iBAAQ;EAEfC,SAAS,EAAEC,mBAAQ;EAEnBC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,eAEYP,kBAAkB;AAAA"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
11
|
+
var _forEach2 = _interopRequireDefault(require("lodash/forEach"));
|
|
12
|
+
var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
|
|
13
|
+
var _webexCore = require("@webex/webex-core");
|
|
14
|
+
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
15
|
+
var _constants = require("../constants");
|
|
16
|
+
var _breakout = _interopRequireDefault(require("./breakout"));
|
|
17
|
+
var _collection = _interopRequireDefault(require("./collection"));
|
|
18
|
+
/*!
|
|
19
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @class Breakouts
|
|
24
|
+
*/
|
|
25
|
+
var Breakouts = _webexCore.WebexPlugin.extend({
|
|
26
|
+
namespace: _constants.MEETINGS,
|
|
27
|
+
collections: {
|
|
28
|
+
breakouts: _collection.default
|
|
29
|
+
},
|
|
30
|
+
props: {
|
|
31
|
+
allowBackToMain: 'boolean',
|
|
32
|
+
// only present when in a breakout session
|
|
33
|
+
delayCloseTime: 'number',
|
|
34
|
+
// appears once breakouts start
|
|
35
|
+
enableBreakoutSession: 'boolean',
|
|
36
|
+
// appears from the moment you enable breakouts
|
|
37
|
+
groupId: 'string',
|
|
38
|
+
// appears from the moment you enable breakouts
|
|
39
|
+
name: 'string',
|
|
40
|
+
// only present when in a breakout session
|
|
41
|
+
sessionId: 'string',
|
|
42
|
+
// appears from the moment you enable breakouts
|
|
43
|
+
sessionType: 'string',
|
|
44
|
+
// appears from the moment you enable breakouts
|
|
45
|
+
startTime: 'string',
|
|
46
|
+
// appears once breakouts start
|
|
47
|
+
status: 'string',
|
|
48
|
+
// only present when in a breakout session
|
|
49
|
+
url: 'string',
|
|
50
|
+
// appears from the moment you enable breakouts
|
|
51
|
+
locusUrl: 'string' // the current locus url
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
children: {
|
|
55
|
+
currentBreakoutSession: _breakout.default
|
|
56
|
+
},
|
|
57
|
+
derived: {
|
|
58
|
+
isInMainSession: {
|
|
59
|
+
deps: ['sessionType'],
|
|
60
|
+
/**
|
|
61
|
+
* Returns true if the user is in the main session
|
|
62
|
+
* @returns {boolean}
|
|
63
|
+
*/
|
|
64
|
+
fn: function fn() {
|
|
65
|
+
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* initialize for the breakouts
|
|
71
|
+
* @returns {void}
|
|
72
|
+
*/
|
|
73
|
+
initialize: function initialize() {
|
|
74
|
+
var _this = this;
|
|
75
|
+
this.listenTo(this, 'change:status', function () {
|
|
76
|
+
if (_this.status === _constants.BREAKOUTS.STATUS.CLOSING) {
|
|
77
|
+
_this.trigger(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
this.debouncedQueryRosters = (0, _debounce2.default)(this.queryRosters, 10, {
|
|
81
|
+
leading: true,
|
|
82
|
+
trailing: false
|
|
83
|
+
});
|
|
84
|
+
this.listenTo(this.breakouts, 'add', function () {
|
|
85
|
+
_this.debouncedQueryRosters();
|
|
86
|
+
});
|
|
87
|
+
this.listenToBroadcastMessages();
|
|
88
|
+
this.listenToBreakoutRosters();
|
|
89
|
+
},
|
|
90
|
+
/**
|
|
91
|
+
* Calls this to clean up listeners
|
|
92
|
+
* @returns {void}
|
|
93
|
+
*/
|
|
94
|
+
cleanUp: function cleanUp() {
|
|
95
|
+
this.stopListening();
|
|
96
|
+
},
|
|
97
|
+
/**
|
|
98
|
+
* Update the current locus url of the meeting
|
|
99
|
+
* @param {string} locusUrl // locus url
|
|
100
|
+
* @returns {void}
|
|
101
|
+
*/
|
|
102
|
+
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
103
|
+
this.set('locusUrl', locusUrl);
|
|
104
|
+
},
|
|
105
|
+
/**
|
|
106
|
+
* The initial roster lists need to be queried because you don't
|
|
107
|
+
* get a breakout.roster event when you join the meeting
|
|
108
|
+
* @returns {void}
|
|
109
|
+
*/
|
|
110
|
+
queryRosters: function queryRosters() {
|
|
111
|
+
var _this2 = this;
|
|
112
|
+
this.webex.request({
|
|
113
|
+
uri: "".concat(this.url, "/roster"),
|
|
114
|
+
qs: {
|
|
115
|
+
locusUrl: btoa(this.locusUrl)
|
|
116
|
+
}
|
|
117
|
+
}).then(function (result) {
|
|
118
|
+
var rosters = result.body.rosters;
|
|
119
|
+
rosters.forEach(function (_ref) {
|
|
120
|
+
var locus = _ref.locus;
|
|
121
|
+
_this2.handleRosterUpdate(locus);
|
|
122
|
+
});
|
|
123
|
+
_this2.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
|
|
124
|
+
}).catch(function (error) {
|
|
125
|
+
_loggerProxy.default.logger.error('Meeting:breakouts#queryRosters failed', error);
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
/**
|
|
129
|
+
*
|
|
130
|
+
* @param {Object} locus // locus object
|
|
131
|
+
* @returns {void}
|
|
132
|
+
*/
|
|
133
|
+
handleRosterUpdate: function handleRosterUpdate(locus) {
|
|
134
|
+
var _locus$controls, _locus$controls$break;
|
|
135
|
+
var sessionId = (_locus$controls = locus.controls) === null || _locus$controls === void 0 ? void 0 : (_locus$controls$break = _locus$controls.breakout) === null || _locus$controls$break === void 0 ? void 0 : _locus$controls$break.sessionId;
|
|
136
|
+
var session = this.breakouts.get(sessionId);
|
|
137
|
+
if (!session) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
session.parseRoster(locus);
|
|
141
|
+
},
|
|
142
|
+
/**
|
|
143
|
+
* Sets up listener for broadcast messages sent to the breakout session
|
|
144
|
+
* @returns {void}
|
|
145
|
+
*/
|
|
146
|
+
listenToBroadcastMessages: function listenToBroadcastMessages() {
|
|
147
|
+
var _this3 = this;
|
|
148
|
+
this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {
|
|
149
|
+
var _event$data = event.data,
|
|
150
|
+
senderUserId = _event$data.senderUserId,
|
|
151
|
+
sentTime = _event$data.sentTime,
|
|
152
|
+
message = _event$data.message;
|
|
153
|
+
_this3.trigger(_constants.BREAKOUTS.EVENTS.MESSAGE, {
|
|
154
|
+
senderUserId: senderUserId,
|
|
155
|
+
sentTime: sentTime,
|
|
156
|
+
message: message,
|
|
157
|
+
// FIXME: This is only the current sessionId
|
|
158
|
+
// We'd need to check that the dataChannelUrl is still the same
|
|
159
|
+
// to guarantee that this message was sent to this session
|
|
160
|
+
sessionId: _this3.currentBreakoutSession.sessionId
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
/**
|
|
165
|
+
* Sets up a listener for roster messags from mecury
|
|
166
|
+
* @returns {void}
|
|
167
|
+
*/
|
|
168
|
+
listenToBreakoutRosters: function listenToBreakoutRosters() {
|
|
169
|
+
var _this4 = this;
|
|
170
|
+
this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', function (event) {
|
|
171
|
+
_this4.handleRosterUpdate(event.data.locus);
|
|
172
|
+
_this4.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
|
|
173
|
+
});
|
|
174
|
+
},
|
|
175
|
+
/**
|
|
176
|
+
* Updates the information about the current breakout
|
|
177
|
+
* @param {Object} params
|
|
178
|
+
* @returns {void}
|
|
179
|
+
*/
|
|
180
|
+
updateBreakout: function updateBreakout(params) {
|
|
181
|
+
var _this$set;
|
|
182
|
+
this.set(params);
|
|
183
|
+
this.set('currentBreakoutSession', (_this$set = {
|
|
184
|
+
sessionId: params.sessionId,
|
|
185
|
+
groupId: params.groupId,
|
|
186
|
+
name: params.name,
|
|
187
|
+
current: true,
|
|
188
|
+
sessionType: params.sessionType,
|
|
189
|
+
url: params.url
|
|
190
|
+
}, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false), _this$set));
|
|
191
|
+
},
|
|
192
|
+
/**
|
|
193
|
+
* Updates the information about available breakouts
|
|
194
|
+
* @param {Object} payload
|
|
195
|
+
* @returns {void}
|
|
196
|
+
*/
|
|
197
|
+
updateBreakoutSessions: function updateBreakoutSessions(payload) {
|
|
198
|
+
var _this5 = this;
|
|
199
|
+
var breakouts = {};
|
|
200
|
+
if (payload.breakoutSessions) {
|
|
201
|
+
(0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
|
|
202
|
+
(0, _forEach2.default)(payload.breakoutSessions[state], function (breakout) {
|
|
203
|
+
var sessionId = breakout.sessionId;
|
|
204
|
+
if (!breakouts[sessionId]) {
|
|
205
|
+
breakouts[sessionId] = breakout;
|
|
206
|
+
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ACTIVE] = false;
|
|
207
|
+
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED] = false;
|
|
208
|
+
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ALLOWED] = false;
|
|
209
|
+
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;
|
|
210
|
+
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
|
|
211
|
+
}
|
|
212
|
+
breakouts[sessionId][state] = true;
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
(0, _forEach2.default)(breakouts, function (breakout) {
|
|
217
|
+
// eslint-disable-next-line no-param-reassign
|
|
218
|
+
breakout.url = _this5.url;
|
|
219
|
+
});
|
|
220
|
+
this.breakouts.set((0, _values.default)(breakouts));
|
|
221
|
+
},
|
|
222
|
+
version: "3.0.0-beta.21"
|
|
223
|
+
});
|
|
224
|
+
var _default = Breakouts;
|
|
225
|
+
exports.default = _default;
|
|
226
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Breakouts","WebexPlugin","extend","namespace","MEETINGS","collections","breakouts","BreakoutCollection","props","allowBackToMain","delayCloseTime","enableBreakoutSession","groupId","name","sessionId","sessionType","startTime","status","url","locusUrl","children","currentBreakoutSession","Breakout","derived","isInMainSession","deps","fn","BREAKOUTS","SESSION_TYPES","MAIN","initialize","listenTo","STATUS","CLOSING","trigger","EVENTS","BREAKOUTS_CLOSING","debouncedQueryRosters","queryRosters","leading","trailing","listenToBroadcastMessages","listenToBreakoutRosters","cleanUp","stopListening","locusUrlUpdate","set","webex","request","uri","qs","btoa","then","result","rosters","body","forEach","locus","handleRosterUpdate","MEMBERS_UPDATE","catch","error","LoggerProxy","logger","controls","breakout","session","get","parseRoster","internal","llm","event","data","senderUserId","sentTime","message","MESSAGE","mercury","updateBreakout","params","current","SESSION_STATES","ACTIVE","ALLOWED","ASSIGNED_CURRENT","REQUESTED","updateBreakoutSessions","payload","breakoutSessions","state","ASSIGNED"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {debounce, forEach} from 'lodash';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {BREAKOUTS, MEETINGS} from '../constants';\n\nimport Breakout from './breakout';\nimport BreakoutCollection from './collection';\n\n/**\n * @class Breakouts\n */\nconst Breakouts = WebexPlugin.extend({\n namespace: MEETINGS,\n\n collections: {\n breakouts: BreakoutCollection,\n },\n\n props: {\n allowBackToMain: 'boolean', // only present when in a breakout session\n delayCloseTime: 'number', // appears once breakouts start\n enableBreakoutSession: 'boolean', // appears from the moment you enable breakouts\n groupId: 'string', // appears from the moment you enable breakouts\n name: 'string', // only present when in a breakout session\n sessionId: 'string', // appears from the moment you enable breakouts\n sessionType: 'string', // appears from the moment you enable breakouts\n startTime: 'string', // appears once breakouts start\n status: 'string', // only present when in a breakout session\n url: 'string', // appears from the moment you enable breakouts\n locusUrl: 'string', // the current locus url\n },\n\n children: {\n currentBreakoutSession: Breakout,\n },\n\n derived: {\n isInMainSession: {\n deps: ['sessionType'],\n /**\n * Returns true if the user is in the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === BREAKOUTS.SESSION_TYPES.MAIN;\n },\n },\n },\n\n /**\n * initialize for the breakouts\n * @returns {void}\n */\n initialize() {\n this.listenTo(this, 'change:status', () => {\n if (this.status === BREAKOUTS.STATUS.CLOSING) {\n this.trigger(BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);\n }\n });\n this.debouncedQueryRosters = debounce(this.queryRosters, 10, {\n leading: true,\n trailing: false,\n });\n this.listenTo(this.breakouts, 'add', () => {\n this.debouncedQueryRosters();\n });\n this.listenToBroadcastMessages();\n this.listenToBreakoutRosters();\n },\n\n /**\n * Calls this to clean up listeners\n * @returns {void}\n */\n cleanUp() {\n this.stopListening();\n },\n\n /**\n * Update the current locus url of the meeting\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * The initial roster lists need to be queried because you don't\n * get a breakout.roster event when you join the meeting\n * @returns {void}\n */\n queryRosters() {\n this.webex\n .request({uri: `${this.url}/roster`, qs: {locusUrl: btoa(this.locusUrl)}})\n .then((result) => {\n const {\n body: {rosters},\n } = result;\n\n rosters.forEach(({locus}) => {\n this.handleRosterUpdate(locus);\n });\n\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n })\n .catch((error) => {\n LoggerProxy.logger.error('Meeting:breakouts#queryRosters failed', error);\n });\n },\n\n /**\n *\n * @param {Object} locus // locus object\n * @returns {void}\n */\n handleRosterUpdate(locus) {\n const sessionId = locus.controls?.breakout?.sessionId;\n\n const session = this.breakouts.get(sessionId);\n\n if (!session) {\n return;\n }\n\n session.parseRoster(locus);\n },\n\n /**\n * Sets up listener for broadcast messages sent to the breakout session\n * @returns {void}\n */\n listenToBroadcastMessages() {\n this.listenTo(this.webex.internal.llm, 'event:breakout.message', (event) => {\n const {\n data: {senderUserId, sentTime, message},\n } = event;\n\n this.trigger(BREAKOUTS.EVENTS.MESSAGE, {\n senderUserId,\n sentTime,\n message,\n // FIXME: This is only the current sessionId\n // We'd need to check that the dataChannelUrl is still the same\n // to guarantee that this message was sent to this session\n sessionId: this.currentBreakoutSession.sessionId,\n });\n });\n },\n\n /**\n * Sets up a listener for roster messags from mecury\n * @returns {void}\n */\n listenToBreakoutRosters() {\n this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', (event) => {\n this.handleRosterUpdate(event.data.locus);\n this.trigger(BREAKOUTS.EVENTS.MEMBERS_UPDATE);\n });\n },\n\n /**\n * Updates the information about the current breakout\n * @param {Object} params\n * @returns {void}\n */\n updateBreakout(params) {\n this.set(params);\n\n this.set('currentBreakoutSession', {\n sessionId: params.sessionId,\n groupId: params.groupId,\n name: params.name,\n current: true,\n sessionType: params.sessionType,\n url: params.url,\n [BREAKOUTS.SESSION_STATES.ACTIVE]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ALLOWED]: false,\n [BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT]: false,\n [BREAKOUTS.SESSION_STATES.REQUESTED]: false,\n });\n },\n\n /**\n * Updates the information about available breakouts\n * @param {Object} payload\n * @returns {void}\n */\n updateBreakoutSessions(payload) {\n const breakouts = {};\n\n if (payload.breakoutSessions) {\n forEach(BREAKOUTS.SESSION_STATES, (state) => {\n forEach(payload.breakoutSessions[state], (breakout) => {\n const {sessionId} = breakout;\n\n if (!breakouts[sessionId]) {\n breakouts[sessionId] = breakout;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ACTIVE] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ALLOWED] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT] = false;\n breakouts[sessionId][BREAKOUTS.SESSION_STATES.REQUESTED] = false;\n }\n\n breakouts[sessionId][state] = true;\n });\n });\n }\n\n forEach(breakouts, (breakout: typeof Breakout) => {\n // eslint-disable-next-line no-param-reassign\n breakout.url = this.url;\n });\n\n this.breakouts.set(Object.values(breakouts));\n },\n});\n\nexport default Breakouts;\n"],"mappings":"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"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _memoize2 = _interopRequireDefault(require("lodash/memoize"));
|
|
14
|
-
|
|
15
10
|
var _bowser = _interopRequireDefault(require("bowser"));
|
|
16
|
-
|
|
17
11
|
var _window = _interopRequireDefault(require("global/window"));
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
18
13
|
|
|
19
14
|
var mockDetectionObject = {
|
|
20
15
|
/* eslint-disable global-require */
|
|
@@ -24,7 +19,6 @@ var mockDetectionObject = {
|
|
|
24
19
|
getOSVersion: function getOSVersion() {
|
|
25
20
|
return require('os').release();
|
|
26
21
|
},
|
|
27
|
-
|
|
28
22
|
/* eslint-enable global-require */
|
|
29
23
|
getBrowserName: function getBrowserName() {
|
|
30
24
|
return '';
|
|
@@ -36,36 +30,26 @@ var mockDetectionObject = {
|
|
|
36
30
|
return false;
|
|
37
31
|
}
|
|
38
32
|
};
|
|
39
|
-
|
|
40
33
|
var createDetectionObject = function createDetectionObject(results) {
|
|
41
34
|
var getOSName = function getOSName() {
|
|
42
35
|
var _results$getOSName;
|
|
43
|
-
|
|
44
36
|
return (_results$getOSName = results === null || results === void 0 ? void 0 : results.getOSName()) !== null && _results$getOSName !== void 0 ? _results$getOSName : '';
|
|
45
37
|
};
|
|
46
|
-
|
|
47
38
|
var getOSVersion = function getOSVersion() {
|
|
48
39
|
var _results$getOSVersion;
|
|
49
|
-
|
|
50
40
|
return (_results$getOSVersion = results === null || results === void 0 ? void 0 : results.getOSVersion()) !== null && _results$getOSVersion !== void 0 ? _results$getOSVersion : '';
|
|
51
41
|
};
|
|
52
|
-
|
|
53
42
|
var getBrowserName = function getBrowserName() {
|
|
54
43
|
var _results$getBrowserNa;
|
|
55
|
-
|
|
56
44
|
return (_results$getBrowserNa = results === null || results === void 0 ? void 0 : results.getBrowserName()) !== null && _results$getBrowserNa !== void 0 ? _results$getBrowserNa : '';
|
|
57
45
|
};
|
|
58
|
-
|
|
59
46
|
var getBrowserVersion = function getBrowserVersion() {
|
|
60
47
|
var _results$getBrowserVe;
|
|
61
|
-
|
|
62
48
|
return (_results$getBrowserVe = results === null || results === void 0 ? void 0 : results.getBrowserVersion()) !== null && _results$getBrowserVe !== void 0 ? _results$getBrowserVe : '';
|
|
63
49
|
};
|
|
64
|
-
|
|
65
50
|
var isBrowser = function isBrowser(name) {
|
|
66
51
|
return !!(results !== null && results !== void 0 && results.isBrowser(name, true));
|
|
67
52
|
};
|
|
68
|
-
|
|
69
53
|
return {
|
|
70
54
|
getOSName: getOSName,
|
|
71
55
|
getOSVersion: getOSVersion,
|
|
@@ -74,12 +58,9 @@ var createDetectionObject = function createDetectionObject(results) {
|
|
|
74
58
|
isBrowser: isBrowser
|
|
75
59
|
};
|
|
76
60
|
};
|
|
77
|
-
|
|
78
61
|
var _default = (0, _memoize2.default)(function (agent) {
|
|
79
62
|
var _window$navigator;
|
|
80
|
-
|
|
81
63
|
return agent || (_window$navigator = _window.default.navigator) !== null && _window$navigator !== void 0 && _window$navigator.userAgent ? createDetectionObject(_bowser.default.getParser(agent || _window.default.navigator.userAgent)) : mockDetectionObject;
|
|
82
64
|
});
|
|
83
|
-
|
|
84
65
|
exports.default = _default;
|
|
85
66
|
//# sourceMappingURL=browser-detection.js.map
|