@webex/plugin-meetings 2.60.0 → 2.60.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/constants.js +41 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/annotation/index.js +357 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +215 -0
- package/dist/breakouts/breakout.js.map +1 -0
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/collection.js +22 -0
- package/dist/breakouts/collection.js.map +1 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/edit-lock-error.js +51 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/events.js +44 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1047 -0
- package/dist/breakouts/index.js.map +1 -0
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/request.js +77 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/breakouts/utils.js +64 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/browser-detection.js +2 -3
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +3 -4
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js +1 -2
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +1 -2
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +1 -2
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +1 -2
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +1 -2
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/no-meeting-info.js +50 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/parameter.js +3 -4
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +1 -2
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +1 -2
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/{reclaim-host-role-error.js → reclaim-host-role-errors.js} +7 -11
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/reconnection-in-progress.js +1 -2
- package/dist/common/errors/reconnection-in-progress.js.map +1 -1
- package/dist/common/errors/reconnection.js +1 -2
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +1 -2
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.d.ts +20 -8
- package/dist/common/errors/webex-errors.js +48 -28
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +1 -2
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +1 -2
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +1 -2
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js +1 -2
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js +1 -2
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js +1 -2
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +2 -3
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.d.ts +3 -1
- package/dist/common/logs/request.js +8 -5
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.d.ts +9 -7
- package/dist/common/queue.js +22 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.d.ts +6 -7
- package/dist/config.js +8 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +217 -97
- package/dist/constants.js +416 -441
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js +3 -6
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.d.ts +11 -1
- package/dist/controls-options-manager/enums.js +15 -6
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +17 -1
- package/dist/controls-options-manager/index.js +127 -38
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.d.ts +1 -7
- package/dist/controls-options-manager/util.js +309 -19
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +121 -5
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interceptors/locusRetry.js +94 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/collection.js +22 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +365 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +24 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +100 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js +3 -4
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js +1 -2
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js +1 -2
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.d.ts +57 -4
- package/dist/locus-info/index.js +425 -84
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +13 -5
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +58 -3
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.d.ts +66 -6
- package/dist/locus-info/parser.js +253 -80
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +97 -13
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +107 -319
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.d.ts +38 -53
- package/dist/media/properties.js +96 -153
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -22
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.d.ts +234 -230
- package/dist/mediaQualityMetrics/config.js +302 -498
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.d.ts +88 -0
- package/dist/meeting/in-meeting-actions.js +94 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +591 -494
- package/dist/meeting/index.js +4732 -2990
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/locusMediaRequest.js +291 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.d.ts +93 -25
- package/dist/meeting/muteState.js +224 -133
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.d.ts +82 -47
- package/dist/meeting/request.js +297 -199
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/request.type.js +7 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +1 -2
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.d.ts +102 -1
- package/dist/meeting/util.js +605 -435
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js +3 -4
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.d.ts +13 -1
- package/dist/meeting-info/index.js +74 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/meeting-info/meeting-info-v2.js +200 -63
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +2 -3
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +39 -41
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.d.ts +17 -0
- package/dist/meetings/collection.js +42 -4
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.d.ts +93 -21
- package/dist/meetings/index.js +490 -127
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +4 -3
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +107 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.d.ts +13 -1
- package/dist/member/index.js +45 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/member.types.js +3 -4
- package/dist/member/member.types.js.map +1 -1
- package/dist/member/types.d.ts +32 -0
- package/dist/member/types.js +23 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +120 -29
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.d.ts +5 -0
- package/dist/members/collection.js +11 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.d.ts +56 -11
- package/dist/members/index.js +174 -47
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.d.ts +67 -11
- package/dist/members/request.js +102 -54
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +3 -4
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.d.ts +214 -1
- package/dist/members/util.js +327 -284
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.d.ts +15 -6
- package/dist/metrics/constants.js +17 -9
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +4 -111
- package/dist/metrics/index.js +4 -452
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.d.ts +118 -0
- package/dist/multistream/mediaRequestManager.js +344 -0
- package/dist/multistream/mediaRequestManager.js.map +1 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlot.js +200 -0
- package/dist/multistream/receiveSlot.js.map +1 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/receiveSlotManager.js +174 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMedia.js +268 -0
- package/dist/multistream/remoteMedia.js.map +1 -0
- package/dist/multistream/remoteMediaGroup.d.ts +47 -0
- package/dist/multistream/remoteMediaGroup.js +267 -0
- package/dist/multistream/remoteMediaGroup.js.map +1 -0
- package/dist/multistream/remoteMediaManager.d.ts +285 -0
- package/dist/multistream/remoteMediaManager.js +1211 -0
- package/dist/multistream/remoteMediaManager.js.map +1 -0
- package/dist/multistream/sendSlotManager.d.ts +61 -0
- package/dist/multistream/sendSlotManager.js +236 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/networkQualityMonitor/index.js +5 -4
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +2 -3
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +2 -3
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js +1 -2
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/clusterReachability.js +357 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.d.ts +61 -95
- package/dist/reachability/index.js +300 -393
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +7 -3
- package/dist/reachability/request.js +18 -10
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/constants.js +12 -0
- package/dist/reactions/constants.js.map +1 -0
- package/dist/reactions/reactions.d.ts +2 -2
- package/dist/reactions/reactions.js +4 -6
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.d.ts +23 -3
- package/dist/reactions/reactions.type.js +21 -23
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.d.ts +32 -8
- package/dist/reconnection-manager/index.js +282 -231
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js +4 -5
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.d.ts +15 -1
- package/dist/recording-controller/index.js +57 -46
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.d.ts +5 -4
- package/dist/recording-controller/util.js +10 -10
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.d.ts +9 -47
- package/dist/roap/index.js +101 -235
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.d.ts +18 -12
- package/dist/roap/request.js +126 -180
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.d.ts +27 -16
- package/dist/roap/turnDiscovery.js +115 -105
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +54 -0
- package/dist/rtcMetrics/index.js +140 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +1 -83
- package/dist/statsAnalyzer/global.js +2 -85
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.d.ts +50 -30
- package/dist/statsAnalyzer/index.js +435 -510
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.d.ts +8 -6
- package/dist/statsAnalyzer/mqaUtil.js +120 -83
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +1 -2
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/collection.js +43 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +68 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +38 -26
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +220 -0
- package/src/breakouts/breakout.ts +188 -0
- package/src/breakouts/collection.ts +19 -0
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +925 -0
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +36 -12
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +6 -7
- package/src/constants.ts +244 -97
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +44 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +110 -0
- package/src/locus-info/index.ts +449 -61
- package/src/locus-info/infoUtils.ts +14 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +85 -2
- package/src/media/index.ts +153 -370
- package/src/media/properties.ts +106 -136
- package/src/media/util.ts +0 -21
- package/src/mediaQualityMetrics/config.ts +244 -377
- package/src/meeting/in-meeting-actions.ts +176 -0
- package/src/meeting/index.ts +3944 -2489
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +224 -138
- package/src/meeting/request.ts +207 -127
- package/src/meeting/request.type.ts +13 -0
- package/src/meeting/util.ts +590 -423
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +163 -13
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +28 -28
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +487 -126
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +116 -5
- package/src/member/index.ts +43 -1
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +125 -28
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +187 -52
- package/src/members/request.ts +87 -27
- package/src/members/util.ts +332 -291
- package/src/metrics/constants.ts +15 -6
- package/src/metrics/index.ts +1 -471
- package/src/multistream/mediaRequestManager.ts +440 -0
- package/src/multistream/receiveSlot.ts +184 -0
- package/src/multistream/receiveSlotManager.ts +166 -0
- package/src/multistream/remoteMedia.ts +254 -0
- package/src/multistream/remoteMediaGroup.ts +284 -0
- package/src/multistream/remoteMediaManager.ts +1145 -0
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/networkQualityMonitor/index.ts +6 -6
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +243 -347
- package/src/reachability/request.ts +17 -8
- package/src/reachability/util.ts +24 -0
- package/src/reactions/constants.ts +4 -0
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +30 -4
- package/src/reconnection-manager/index.ts +168 -156
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +98 -241
- package/src/roap/request.ts +74 -148
- package/src/roap/turnDiscovery.ts +62 -56
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +124 -0
- package/src/statsAnalyzer/global.ts +1 -84
- package/src/statsAnalyzer/index.ts +477 -643
- package/src/statsAnalyzer/mqaUtil.ts +115 -114
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +233 -0
- package/test/integration/spec/journey.js +320 -264
- package/test/integration/spec/space-meeting.js +77 -4
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +237 -0
- package/test/unit/spec/breakouts/collection.ts +15 -0
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1790 -0
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +323 -30
- package/test/unit/spec/locus-info/index.js +1390 -16
- package/test/unit/spec/locus-info/infoUtils.js +54 -16
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/lib/selfConstant.js +48 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfUtils.js +275 -0
- package/test/unit/spec/media/index.ts +290 -0
- package/test/unit/spec/media/properties.ts +75 -84
- package/test/unit/spec/meeting/in-meeting-actions.ts +86 -0
- package/test/unit/spec/meeting/index.js +8187 -2769
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +409 -213
- package/test/unit/spec/meeting/request.js +512 -42
- package/test/unit/spec/meeting/utils.js +741 -24
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +527 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1313 -243
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +32 -9
- package/test/unit/spec/member/util.js +499 -61
- package/test/unit/spec/members/index.js +394 -5
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +173 -38
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +1418 -0
- package/test/unit/spec/multistream/receiveSlot.ts +163 -0
- package/test/unit/spec/multistream/receiveSlotManager.ts +203 -0
- package/test/unit/spec/multistream/remoteMedia.ts +255 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +662 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +1924 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/networkQualityMonitor/index.js +4 -4
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +531 -24
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +162 -24
- package/test/unit/spec/recording-controller/index.js +293 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +200 -76
- package/test/unit/spec/roap/request.ts +255 -0
- package/test/unit/spec/roap/turnDiscovery.ts +86 -48
- package/test/unit/spec/rtcMetrics/index.ts +93 -0
- package/test/unit/spec/stats-analyzer/index.js +261 -167
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/constants.js +9 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -45
- package/test/utils/webex-config.js +4 -0
- package/test/utils/webex-test-users.js +7 -3
- package/dist/common/errors/reclaim-host-role-error.js.map +0 -1
- package/dist/meeting/effectsState.d.ts +0 -42
- package/dist/meeting/effectsState.js +0 -260
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.d.ts +0 -169
- package/dist/metrics/config.js +0 -289
- package/dist/metrics/config.js.map +0 -1
- package/dist/peer-connection-manager/index.d.ts +0 -6
- package/dist/peer-connection-manager/index.js +0 -671
- package/dist/peer-connection-manager/index.js.map +0 -1
- package/dist/peer-connection-manager/util.d.ts +0 -6
- package/dist/peer-connection-manager/util.js +0 -110
- package/dist/peer-connection-manager/util.js.map +0 -1
- package/dist/roap/collection.d.ts +0 -10
- package/dist/roap/collection.js +0 -63
- package/dist/roap/collection.js.map +0 -1
- package/dist/roap/handler.d.ts +0 -47
- package/dist/roap/handler.js +0 -279
- package/dist/roap/handler.js.map +0 -1
- package/dist/roap/state.d.ts +0 -9
- package/dist/roap/state.js +0 -127
- package/dist/roap/state.js.map +0 -1
- package/dist/roap/util.d.ts +0 -2
- package/dist/roap/util.js +0 -76
- package/dist/roap/util.js.map +0 -1
- package/src/index.js +0 -15
- package/src/meeting/effectsState.ts +0 -209
- package/src/metrics/config.ts +0 -485
- package/src/peer-connection-manager/index.ts +0 -847
- package/src/peer-connection-manager/util.ts +0 -119
- package/src/roap/collection.ts +0 -62
- package/src/roap/handler.ts +0 -294
- package/src/roap/state.ts +0 -156
- package/src/roap/util.ts +0 -100
- package/test/unit/spec/meeting/effectsState.js +0 -281
- package/test/unit/spec/peerconnection-manager/index.js +0 -218
- package/test/unit/spec/peerconnection-manager/utils.js +0 -49
- package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +0 -388
- package/test/unit/spec/roap/util.js +0 -30
- /package/dist/common/errors/{reclaim-host-role-error.d.ts → reclaim-host-role-errors.d.ts} +0 -0
- /package/src/common/errors/{reclaim-host-role-error.ts → reclaim-host-role-errors.ts} +0 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.default = void 0;
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
15
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
17
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
19
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
20
|
+
var _webexCore = require("@webex/webex-core");
|
|
21
|
+
var _triggerProxy = _interopRequireDefault(require("../common/events/trigger-proxy"));
|
|
22
|
+
var _constants = require("./constants");
|
|
23
|
+
var _constants2 = require("../constants");
|
|
24
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
25
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // eslint-disable-next-line import/no-extraneous-dependencies
|
|
26
|
+
/**
|
|
27
|
+
* @description Annotation to handle LLM and Mercury message and locus API
|
|
28
|
+
* @class
|
|
29
|
+
*/
|
|
30
|
+
var AnnotationChannel = /*#__PURE__*/function (_WebexPlugin) {
|
|
31
|
+
(0, _inherits2.default)(AnnotationChannel, _WebexPlugin);
|
|
32
|
+
var _super = _createSuper(AnnotationChannel);
|
|
33
|
+
/**
|
|
34
|
+
* Initializes annotation module
|
|
35
|
+
*/
|
|
36
|
+
function AnnotationChannel() {
|
|
37
|
+
var _this;
|
|
38
|
+
(0, _classCallCheck2.default)(this, AnnotationChannel);
|
|
39
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
40
|
+
args[_key] = arguments[_key];
|
|
41
|
+
}
|
|
42
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
43
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.ANNOTATION);
|
|
44
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "seqNum", void 0);
|
|
45
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasSubscribedToEvents", void 0);
|
|
46
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "approvalUrl", void 0);
|
|
47
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
|
|
48
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "deviceUrl", void 0);
|
|
49
|
+
/**
|
|
50
|
+
* send annotation command
|
|
51
|
+
* @param {ANNOTATION_ACTION_TYPE} actionType
|
|
52
|
+
* @param {RequestData} requestData
|
|
53
|
+
* @returns {Promise}
|
|
54
|
+
*/
|
|
55
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendAnnotationAction", /*#__PURE__*/function () {
|
|
56
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(actionType, requestData) {
|
|
57
|
+
var body;
|
|
58
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
59
|
+
while (1) switch (_context.prev = _context.next) {
|
|
60
|
+
case 0:
|
|
61
|
+
body = {
|
|
62
|
+
actionType: actionType,
|
|
63
|
+
resourceType: 'AnnotationOnShare',
|
|
64
|
+
shareInstanceId: requestData.shareInstanceId
|
|
65
|
+
};
|
|
66
|
+
if (requestData !== null && requestData !== void 0 && requestData.toUserId) {
|
|
67
|
+
body.receivers = [{
|
|
68
|
+
participantId: requestData.toUserId,
|
|
69
|
+
deviceUrl: requestData.toDeviceUrl
|
|
70
|
+
}];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
return _context.abrupt("return", _this.request({
|
|
75
|
+
method: _constants2.HTTP_VERBS.POST,
|
|
76
|
+
url: "".concat(_this.approvalUrl),
|
|
77
|
+
body: body
|
|
78
|
+
}));
|
|
79
|
+
case 3:
|
|
80
|
+
case "end":
|
|
81
|
+
return _context.stop();
|
|
82
|
+
}
|
|
83
|
+
}, _callee);
|
|
84
|
+
}));
|
|
85
|
+
return function (_x, _x2) {
|
|
86
|
+
return _ref.apply(this, arguments);
|
|
87
|
+
};
|
|
88
|
+
}());
|
|
89
|
+
/**
|
|
90
|
+
* decrypt data
|
|
91
|
+
* @param {string} encryptionKeyUrl
|
|
92
|
+
* @param {string} content encrypted content
|
|
93
|
+
* @returns {string} decrypted content
|
|
94
|
+
*/
|
|
95
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "decryptContent", function (encryptionKeyUrl, content) {
|
|
96
|
+
// @ts-ignore
|
|
97
|
+
return _this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then(function (res) {
|
|
98
|
+
return res;
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* encrypt data
|
|
103
|
+
* @param {string} encryptionKeyUrl
|
|
104
|
+
* @param {string} content original content
|
|
105
|
+
* @returns {string} encrypted content
|
|
106
|
+
*/
|
|
107
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "encryptContent", function (encryptionKeyUrl, content) {
|
|
108
|
+
// @ts-ignore
|
|
109
|
+
return _this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then(function (res) {
|
|
110
|
+
return res;
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
/**
|
|
114
|
+
* Sends stroke data to presenter
|
|
115
|
+
* @param {StrokeData} strokeData
|
|
116
|
+
* @returns {void}
|
|
117
|
+
*/
|
|
118
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sendStrokeData", function (strokeData) {
|
|
119
|
+
// @ts-ignore
|
|
120
|
+
if (!_this.webex.internal.llm.isConnected()) return;
|
|
121
|
+
_this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(function (encryptedContent) {
|
|
122
|
+
_this.publishEncrypted(encryptedContent, strokeData);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
_this.seqNum = 1;
|
|
126
|
+
return _this;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Process Stroke Data
|
|
131
|
+
* @param {object} data
|
|
132
|
+
* @returns {void}
|
|
133
|
+
*/
|
|
134
|
+
(0, _createClass2.default)(AnnotationChannel, [{
|
|
135
|
+
key: "processStrokeMessage",
|
|
136
|
+
value: function processStrokeMessage(data) {
|
|
137
|
+
var _this2 = this;
|
|
138
|
+
var request = data.request;
|
|
139
|
+
this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(function (decryptedContent) {
|
|
140
|
+
request.value.content = decryptedContent;
|
|
141
|
+
_triggerProxy.default.trigger(_this2, {
|
|
142
|
+
file: 'annotation',
|
|
143
|
+
function: 'processStrokeMessage'
|
|
144
|
+
}, _constants.EVENT_TRIGGERS.ANNOTATION_STROKE_DATA, {
|
|
145
|
+
payload: data
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** bind all events from mercury
|
|
151
|
+
* @param {Object} e
|
|
152
|
+
* @returns {undefined}
|
|
153
|
+
*/
|
|
154
|
+
}, {
|
|
155
|
+
key: "eventCommandProcessor",
|
|
156
|
+
value: function eventCommandProcessor(e) {
|
|
157
|
+
var _e$data, _e$data2, _e$data2$approval, _e$data3, _e$data3$approval;
|
|
158
|
+
if ((e === null || e === void 0 ? void 0 : (_e$data = e.data) === null || _e$data === void 0 ? void 0 : _e$data.eventType) === 'locus.approval_request' && (e === null || e === void 0 ? void 0 : (_e$data2 = e.data) === null || _e$data2 === void 0 ? void 0 : (_e$data2$approval = _e$data2.approval) === null || _e$data2$approval === void 0 ? void 0 : _e$data2$approval.resourceType) === _constants.ANNOTATION_RESOURCE_TYPE && e !== null && e !== void 0 && (_e$data3 = e.data) !== null && _e$data3 !== void 0 && (_e$data3$approval = _e$data3.approval) !== null && _e$data3$approval !== void 0 && _e$data3$approval.actionType) {
|
|
159
|
+
_triggerProxy.default.trigger(this, {
|
|
160
|
+
file: 'annotation',
|
|
161
|
+
function: 'approval_request'
|
|
162
|
+
}, _constants.EVENT_TRIGGERS.ANNOTATION_COMMAND, {
|
|
163
|
+
type: e.data.approval.actionType,
|
|
164
|
+
payload: e.data.approval
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/** bind all events from llm
|
|
170
|
+
* @param {Object} e
|
|
171
|
+
* @returns {undefined}
|
|
172
|
+
*/
|
|
173
|
+
}, {
|
|
174
|
+
key: "eventDataProcessor",
|
|
175
|
+
value: function eventDataProcessor(e) {
|
|
176
|
+
var _e$data4;
|
|
177
|
+
switch (e === null || e === void 0 ? void 0 : (_e$data4 = e.data) === null || _e$data4 === void 0 ? void 0 : _e$data4.relayType) {
|
|
178
|
+
case _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:
|
|
179
|
+
this.processStrokeMessage(e.data);
|
|
180
|
+
break;
|
|
181
|
+
default:
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Listen to websocket messages
|
|
188
|
+
* @returns {undefined}
|
|
189
|
+
*/
|
|
190
|
+
}, {
|
|
191
|
+
key: "listenToEvents",
|
|
192
|
+
value: function listenToEvents() {
|
|
193
|
+
if (!this.hasSubscribedToEvents) {
|
|
194
|
+
// @ts-ignore
|
|
195
|
+
this.webex.internal.mercury.on('event:locus.approval_request', this.eventCommandProcessor, this);
|
|
196
|
+
// @ts-ignore
|
|
197
|
+
this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);
|
|
198
|
+
this.hasSubscribedToEvents = true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* set locusUrl
|
|
204
|
+
* @param {string} locusUrl
|
|
205
|
+
* @returns {void}
|
|
206
|
+
*/
|
|
207
|
+
}, {
|
|
208
|
+
key: "locusUrlUpdate",
|
|
209
|
+
value: function locusUrlUpdate(locusUrl) {
|
|
210
|
+
this.locusUrl = locusUrl;
|
|
211
|
+
this.listenToEvents();
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* set approved url
|
|
216
|
+
* @param {string} approvalUrl
|
|
217
|
+
* @returns {void}
|
|
218
|
+
*/
|
|
219
|
+
}, {
|
|
220
|
+
key: "approvalUrlUpdate",
|
|
221
|
+
value: function approvalUrlUpdate(approvalUrl) {
|
|
222
|
+
this.approvalUrl = approvalUrl;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* accept request
|
|
227
|
+
* @param {object} approval
|
|
228
|
+
* @returns {Promise}
|
|
229
|
+
*/
|
|
230
|
+
}, {
|
|
231
|
+
key: "acceptRequest",
|
|
232
|
+
value: function acceptRequest(approval) {
|
|
233
|
+
// @ts-ignore
|
|
234
|
+
return this.request({
|
|
235
|
+
method: _constants2.HTTP_VERBS.PUT,
|
|
236
|
+
url: approval.url,
|
|
237
|
+
body: {
|
|
238
|
+
resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
|
|
239
|
+
actionType: _constants.ANNOTATION_ACTION_TYPE.ACCEPTED
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* presenter declined request annotation
|
|
246
|
+
* @param {approval} approval
|
|
247
|
+
* @returns {Promise}
|
|
248
|
+
*/
|
|
249
|
+
}, {
|
|
250
|
+
key: "declineRequest",
|
|
251
|
+
value: function declineRequest(approval) {
|
|
252
|
+
// @ts-ignore
|
|
253
|
+
return this.request({
|
|
254
|
+
method: _constants2.HTTP_VERBS.PUT,
|
|
255
|
+
url: approval.url,
|
|
256
|
+
body: {
|
|
257
|
+
resourceType: _constants.ANNOTATION_RESOURCE_TYPE,
|
|
258
|
+
actionType: _constants.ANNOTATION_ACTION_TYPE.DECLINED
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* request approved annotation
|
|
265
|
+
* @param {RequestData} requestData
|
|
266
|
+
* @returns {Promise}
|
|
267
|
+
*/
|
|
268
|
+
}, {
|
|
269
|
+
key: "approveAnnotation",
|
|
270
|
+
value: function approveAnnotation(requestData) {
|
|
271
|
+
return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.REQUESTED, requestData);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* cancel approved annotation
|
|
276
|
+
* @param {object} requestData
|
|
277
|
+
* @param {object} approval
|
|
278
|
+
* @returns {Promise}
|
|
279
|
+
*/
|
|
280
|
+
}, {
|
|
281
|
+
key: "cancelApproveAnnotation",
|
|
282
|
+
value: function cancelApproveAnnotation(requestData, approval) {
|
|
283
|
+
var body = {
|
|
284
|
+
actionType: _constants.ANNOTATION_ACTION_TYPE.CANCELED,
|
|
285
|
+
resourceType: 'AnnotationOnShare',
|
|
286
|
+
shareInstanceId: requestData.shareInstanceId
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
// @ts-ignore
|
|
290
|
+
return this.request({
|
|
291
|
+
method: _constants2.HTTP_VERBS.PUT,
|
|
292
|
+
url: "".concat(approval.url),
|
|
293
|
+
body: body
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* close annotation
|
|
299
|
+
* @param {object} requestData
|
|
300
|
+
* @returns {Promise}
|
|
301
|
+
*/
|
|
302
|
+
}, {
|
|
303
|
+
key: "closeAnnotation",
|
|
304
|
+
value: function closeAnnotation(requestData) {
|
|
305
|
+
return this.sendAnnotationAction(_constants.ANNOTATION_ACTION_TYPE.CLOSED, requestData);
|
|
306
|
+
}
|
|
307
|
+
}, {
|
|
308
|
+
key: "publishEncrypted",
|
|
309
|
+
value:
|
|
310
|
+
/**
|
|
311
|
+
* private encrypted the strokes data
|
|
312
|
+
* @param {string} encryptedContent
|
|
313
|
+
* @param {StrokeData} strokeData
|
|
314
|
+
* @returns {void}
|
|
315
|
+
*/
|
|
316
|
+
function publishEncrypted(encryptedContent, strokeData) {
|
|
317
|
+
var data = {
|
|
318
|
+
id: "".concat(this.seqNum),
|
|
319
|
+
type: 'publishRequest',
|
|
320
|
+
recipients: {
|
|
321
|
+
// @ts-ignore
|
|
322
|
+
route: this.webex.internal.llm.getBinding()
|
|
323
|
+
},
|
|
324
|
+
headers: {
|
|
325
|
+
to: strokeData.toUserId
|
|
326
|
+
},
|
|
327
|
+
data: {
|
|
328
|
+
eventType: 'relay.event',
|
|
329
|
+
relayType: _constants.ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,
|
|
330
|
+
request: {
|
|
331
|
+
value: {
|
|
332
|
+
type: _constants.ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,
|
|
333
|
+
content: encryptedContent,
|
|
334
|
+
deviceId: strokeData.deviceId,
|
|
335
|
+
seq: this.seqNum,
|
|
336
|
+
requesterId: strokeData.requesterId,
|
|
337
|
+
version: strokeData.version,
|
|
338
|
+
shareInstanceId: strokeData.shareInstanceId,
|
|
339
|
+
encryptionKeyUrl: strokeData.encryptionKeyUrl
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
trackingId: "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString()),
|
|
344
|
+
timestamp: new Date().getTime(),
|
|
345
|
+
sequenceNumber: this.seqNum,
|
|
346
|
+
filterMessage: false
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
// @ts-ignore
|
|
350
|
+
this.webex.internal.llm.socket.send(data);
|
|
351
|
+
this.seqNum += 1;
|
|
352
|
+
}
|
|
353
|
+
}]);
|
|
354
|
+
return AnnotationChannel;
|
|
355
|
+
}(_webexCore.WebexPlugin);
|
|
356
|
+
var _default = exports.default = AnnotationChannel;
|
|
357
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_triggerProxy","_constants","_constants2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","AnnotationChannel","_WebexPlugin","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","_defineProperty2","_assertThisInitialized2","ANNOTATION","_ref","_asyncToGenerator2","_regenerator","mark","_callee","actionType","requestData","body","wrap","_callee$","_context","prev","next","resourceType","shareInstanceId","toUserId","receivers","participantId","deviceUrl","toDeviceUrl","abrupt","request","method","HTTP_VERBS","POST","url","approvalUrl","stop","_x","_x2","encryptionKeyUrl","content","webex","internal","encryption","decryptText","then","res","encryptText","strokeData","llm","isConnected","encryptContent","encryptedContent","publishEncrypted","seqNum","_createClass2","key","value","processStrokeMessage","data","_this2","decryptContent","decryptedContent","TriggerProxy","trigger","file","function","EVENT_TRIGGERS","ANNOTATION_STROKE_DATA","payload","eventCommandProcessor","_e$data","_e$data2","_e$data2$approval","_e$data3","_e$data3$approval","eventType","approval","ANNOTATION_RESOURCE_TYPE","ANNOTATION_COMMAND","type","eventDataProcessor","_e$data4","relayType","ANNOTATION_RELAY_TYPES","ANNOTATION_CLIENT","listenToEvents","hasSubscribedToEvents","mercury","on","locusUrlUpdate","locusUrl","approvalUrlUpdate","acceptRequest","PUT","ANNOTATION_ACTION_TYPE","ACCEPTED","declineRequest","DECLINED","approveAnnotation","sendAnnotationAction","REQUESTED","cancelApproveAnnotation","CANCELED","closeAnnotation","CLOSED","id","recipients","route","getBinding","headers","to","ANNOTATION_REQUEST_TYPE","ANNOTATION_MESSAGE","deviceId","seq","requesterId","version","trackingId","config","trackingIdPrefix","uuid","v4","toString","timestamp","Date","getTime","sequenceNumber","filterMessage","socket","send","WebexPlugin","_default","exports"],"sources":["index.ts"],"sourcesContent":["import uuid from 'uuid';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {WebexPlugin, config} from '@webex/webex-core';\nimport TriggerProxy from '../common/events/trigger-proxy';\n\nimport {\n EVENT_TRIGGERS,\n ANNOTATION_RELAY_TYPES,\n ANNOTATION,\n ANNOTATION_REQUEST_TYPE,\n ANNOTATION_ACTION_TYPE,\n ANNOTATION_RESOURCE_TYPE,\n} from './constants';\n\nimport {StrokeData, RequestData, IAnnotationChannel, CommandRequestBody} from './annotation.types';\nimport {HTTP_VERBS} from '../constants';\n\n/**\n * @description Annotation to handle LLM and Mercury message and locus API\n * @class\n */\nclass AnnotationChannel extends WebexPlugin implements IAnnotationChannel {\n namespace = ANNOTATION;\n\n private seqNum: number;\n\n hasSubscribedToEvents: boolean;\n\n approvalUrl: string;\n locusUrl: string;\n deviceUrl: string;\n\n /**\n * Initializes annotation module\n */\n constructor(...args) {\n super(...args);\n this.seqNum = 1;\n }\n\n /**\n * Process Stroke Data\n * @param {object} data\n * @returns {void}\n */\n private processStrokeMessage(data) {\n const {request} = data;\n this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(\n (decryptedContent) => {\n request.value.content = decryptedContent;\n TriggerProxy.trigger(\n this,\n {\n file: 'annotation',\n function: 'processStrokeMessage',\n },\n EVENT_TRIGGERS.ANNOTATION_STROKE_DATA,\n {\n payload: data,\n }\n );\n }\n );\n }\n\n /** bind all events from mercury\n * @param {Object} e\n * @returns {undefined}\n */\n private eventCommandProcessor(e) {\n if (\n e?.data?.eventType === 'locus.approval_request' &&\n e?.data?.approval?.resourceType === ANNOTATION_RESOURCE_TYPE &&\n e?.data?.approval?.actionType\n ) {\n TriggerProxy.trigger(\n this,\n {\n file: 'annotation',\n function: 'approval_request',\n },\n EVENT_TRIGGERS.ANNOTATION_COMMAND,\n {\n type: e.data.approval.actionType,\n payload: e.data.approval,\n }\n );\n }\n }\n\n /** bind all events from llm\n * @param {Object} e\n * @returns {undefined}\n */\n private eventDataProcessor(e) {\n switch (e?.data?.relayType) {\n case ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:\n this.processStrokeMessage(e.data);\n break;\n default:\n break;\n }\n }\n\n /**\n * Listen to websocket messages\n * @returns {undefined}\n */\n private listenToEvents() {\n if (!this.hasSubscribedToEvents) {\n // @ts-ignore\n this.webex.internal.mercury.on(\n 'event:locus.approval_request',\n this.eventCommandProcessor,\n this\n );\n // @ts-ignore\n this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);\n this.hasSubscribedToEvents = true;\n }\n }\n\n /**\n * set locusUrl\n * @param {string} locusUrl\n * @returns {void}\n */\n public locusUrlUpdate(locusUrl: string) {\n this.locusUrl = locusUrl;\n this.listenToEvents();\n }\n\n /**\n * set approved url\n * @param {string} approvalUrl\n * @returns {void}\n */\n public approvalUrlUpdate(approvalUrl: string) {\n this.approvalUrl = approvalUrl;\n }\n\n /**\n * accept request\n * @param {object} approval\n * @returns {Promise}\n */\n public acceptRequest(approval) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n url: approval.url,\n body: {\n resourceType: ANNOTATION_RESOURCE_TYPE,\n actionType: ANNOTATION_ACTION_TYPE.ACCEPTED,\n },\n });\n }\n\n /**\n * presenter declined request annotation\n * @param {approval} approval\n * @returns {Promise}\n */\n public declineRequest(approval) {\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n url: approval.url,\n body: {\n resourceType: ANNOTATION_RESOURCE_TYPE,\n actionType: ANNOTATION_ACTION_TYPE.DECLINED,\n },\n });\n }\n\n /**\n * request approved annotation\n * @param {RequestData} requestData\n * @returns {Promise}\n */\n public approveAnnotation(requestData: RequestData) {\n return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.REQUESTED, requestData);\n }\n\n /**\n * cancel approved annotation\n * @param {object} requestData\n * @param {object} approval\n * @returns {Promise}\n */\n public cancelApproveAnnotation(requestData: RequestData, approval) {\n const body: CommandRequestBody = {\n actionType: ANNOTATION_ACTION_TYPE.CANCELED,\n resourceType: 'AnnotationOnShare',\n shareInstanceId: requestData.shareInstanceId,\n };\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.PUT,\n url: `${approval.url}`,\n body,\n });\n }\n\n /**\n * close annotation\n * @param {object} requestData\n * @returns {Promise}\n */\n public closeAnnotation(requestData: RequestData) {\n return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.CLOSED, requestData);\n }\n\n /**\n * send annotation command\n * @param {ANNOTATION_ACTION_TYPE} actionType\n * @param {RequestData} requestData\n * @returns {Promise}\n */\n private sendAnnotationAction = async (\n actionType: ANNOTATION_ACTION_TYPE,\n requestData: RequestData\n ): Promise<void> => {\n const body: CommandRequestBody = {\n actionType,\n resourceType: 'AnnotationOnShare',\n shareInstanceId: requestData.shareInstanceId,\n };\n if (requestData?.toUserId) {\n body.receivers = [{participantId: requestData.toUserId, deviceUrl: requestData.toDeviceUrl}];\n }\n\n // @ts-ignore\n return this.request({\n method: HTTP_VERBS.POST,\n url: `${this.approvalUrl}`,\n body,\n });\n };\n\n /**\n * decrypt data\n * @param {string} encryptionKeyUrl\n * @param {string} content encrypted content\n * @returns {string} decrypted content\n */\n private decryptContent = (encryptionKeyUrl: string, content: string): Promise<any> => {\n // @ts-ignore\n return this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then((res) => {\n return res;\n });\n };\n\n /**\n * encrypt data\n * @param {string} encryptionKeyUrl\n * @param {string} content original content\n * @returns {string} encrypted content\n */\n private encryptContent = (encryptionKeyUrl: string, content: string): Promise<any> => {\n // @ts-ignore\n return this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then((res) => {\n return res;\n });\n };\n\n /**\n * Sends stroke data to presenter\n * @param {StrokeData} strokeData\n * @returns {void}\n */\n public sendStrokeData = (strokeData: StrokeData): void => {\n // @ts-ignore\n if (!this.webex.internal.llm.isConnected()) return;\n this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(\n (encryptedContent) => {\n this.publishEncrypted(encryptedContent, strokeData);\n }\n );\n };\n\n /**\n * private encrypted the strokes data\n * @param {string} encryptedContent\n * @param {StrokeData} strokeData\n * @returns {void}\n */\n private publishEncrypted(encryptedContent: string, strokeData: StrokeData) {\n const data = {\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: this.webex.internal.llm.getBinding(),\n },\n headers: {\n to: strokeData.toUserId,\n },\n data: {\n eventType: 'relay.event',\n relayType: ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,\n request: {\n value: {\n type: ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,\n content: encryptedContent,\n deviceId: strokeData.deviceId,\n seq: this.seqNum,\n requesterId: strokeData.requesterId,\n version: strokeData.version,\n shareInstanceId: strokeData.shareInstanceId,\n encryptionKeyUrl: strokeData.encryptionKeyUrl,\n },\n },\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n timestamp: new Date().getTime(),\n sequenceNumber: this.seqNum,\n filterMessage: false,\n };\n\n // @ts-ignore\n this.webex.internal.llm.socket.send(data);\n this.seqNum += 1;\n }\n}\n\nexport default AnnotationChannel;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
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 _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
11
|
+
var _webexCore = require("@webex/webex-core");
|
|
12
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
|
+
var _constants = require("../constants");
|
|
14
|
+
var _members = _interopRequireDefault(require("../members"));
|
|
15
|
+
var _request = _interopRequireDefault(require("./request"));
|
|
16
|
+
var _events = _interopRequireDefault(require("./events"));
|
|
17
|
+
/*!
|
|
18
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @class
|
|
23
|
+
*/
|
|
24
|
+
var Breakout = _webexCore.WebexPlugin.extend({
|
|
25
|
+
idAttribute: 'sessionId',
|
|
26
|
+
namespace: _constants.MEETINGS,
|
|
27
|
+
breakoutRequest: _request.default,
|
|
28
|
+
props: {
|
|
29
|
+
active: ['boolean', false, false],
|
|
30
|
+
// this session is active
|
|
31
|
+
allowed: ['boolean', false, false],
|
|
32
|
+
// allowed to join this session
|
|
33
|
+
assigned: ['boolean', false, false],
|
|
34
|
+
// assigned to this session, but not necessarily joined yet
|
|
35
|
+
assignedCurrent: ['boolean', false, false],
|
|
36
|
+
// assigned AND current session
|
|
37
|
+
requested: ['boolean', false, false],
|
|
38
|
+
// requested by the host to join this session
|
|
39
|
+
current: ['boolean', false, false],
|
|
40
|
+
// the current joined session
|
|
41
|
+
name: 'string',
|
|
42
|
+
sessionId: 'string',
|
|
43
|
+
sessionType: 'string',
|
|
44
|
+
groupId: 'string',
|
|
45
|
+
url: 'string',
|
|
46
|
+
// where to send requests to
|
|
47
|
+
requestedLastModifiedTime: 'string'
|
|
48
|
+
},
|
|
49
|
+
derived: {
|
|
50
|
+
isMain: {
|
|
51
|
+
cache: false,
|
|
52
|
+
// fix issue: sometimes the derived will not change even if the deps changed
|
|
53
|
+
deps: ['sessionType'],
|
|
54
|
+
/**
|
|
55
|
+
* If the breakout has no name, assume it is the main session
|
|
56
|
+
* @returns {boolean}
|
|
57
|
+
*/
|
|
58
|
+
fn: function fn() {
|
|
59
|
+
return this.sessionType === 'MAIN';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* initializer for the Breakout class
|
|
65
|
+
* @returns {void}
|
|
66
|
+
*/
|
|
67
|
+
initialize: function initialize() {
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
this.breakoutRequest = new _request.default({
|
|
70
|
+
webex: this.webex
|
|
71
|
+
});
|
|
72
|
+
this.breakoutRosterLocus = null;
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Joins the breakout session
|
|
76
|
+
* @returns {Promise}
|
|
77
|
+
*/
|
|
78
|
+
join: function join() {
|
|
79
|
+
var _this = this;
|
|
80
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
81
|
+
var breakoutMoveId, deviceUrl, meetingId, meeting, result;
|
|
82
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
83
|
+
while (1) switch (_context.prev = _context.next) {
|
|
84
|
+
case 0:
|
|
85
|
+
breakoutMoveId = _uuid.default.v4();
|
|
86
|
+
deviceUrl = _this.webex.internal.device.url;
|
|
87
|
+
meetingId = _this.collection.parent.meetingId;
|
|
88
|
+
meeting = _this.webex.meetings.getMeetingByType(_constants._ID_, meetingId);
|
|
89
|
+
_events.default.onBreakoutMoveRequest({
|
|
90
|
+
currentSession: _this,
|
|
91
|
+
meeting: meeting,
|
|
92
|
+
breakoutMoveId: breakoutMoveId
|
|
93
|
+
},
|
|
94
|
+
// @ts-ignore
|
|
95
|
+
_this.webex.internal.newMetrics.submitClientEvent.bind(_this.webex.internal.newMetrics));
|
|
96
|
+
_context.next = 7;
|
|
97
|
+
return _this.request({
|
|
98
|
+
method: _constants.HTTP_VERBS.POST,
|
|
99
|
+
uri: "".concat(_this.url, "/move"),
|
|
100
|
+
body: {
|
|
101
|
+
breakoutMoveId: breakoutMoveId,
|
|
102
|
+
deviceUrl: deviceUrl,
|
|
103
|
+
groupId: _this.groupId,
|
|
104
|
+
sessionId: _this.sessionId
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
case 7:
|
|
108
|
+
result = _context.sent;
|
|
109
|
+
_events.default.onBreakoutMoveResponse({
|
|
110
|
+
currentSession: _this,
|
|
111
|
+
meeting: meeting,
|
|
112
|
+
breakoutMoveId: breakoutMoveId
|
|
113
|
+
},
|
|
114
|
+
// @ts-ignore
|
|
115
|
+
_this.webex.internal.newMetrics.submitClientEvent.bind(_this.webex.internal.newMetrics));
|
|
116
|
+
return _context.abrupt("return", result);
|
|
117
|
+
case 10:
|
|
118
|
+
case "end":
|
|
119
|
+
return _context.stop();
|
|
120
|
+
}
|
|
121
|
+
}, _callee);
|
|
122
|
+
}))();
|
|
123
|
+
},
|
|
124
|
+
/**
|
|
125
|
+
* Leaves the breakout session to return to the main session
|
|
126
|
+
* @returns {Promise}
|
|
127
|
+
* @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found
|
|
128
|
+
*/
|
|
129
|
+
leave: function leave() {
|
|
130
|
+
if (this.isMain) {
|
|
131
|
+
throw new Error('Cannot leave the main session');
|
|
132
|
+
}
|
|
133
|
+
var mainSession = this.parent.breakouts.filter(function (breakout) {
|
|
134
|
+
return breakout.isMain;
|
|
135
|
+
})[0];
|
|
136
|
+
if (!mainSession) {
|
|
137
|
+
throw new Error('Cannot leave, no main session found');
|
|
138
|
+
}
|
|
139
|
+
return mainSession.join();
|
|
140
|
+
},
|
|
141
|
+
/**
|
|
142
|
+
* Sends a help request for the current breakout
|
|
143
|
+
* @returns {Promise}
|
|
144
|
+
*/
|
|
145
|
+
askForHelp: function askForHelp() {
|
|
146
|
+
return this.request({
|
|
147
|
+
method: _constants.HTTP_VERBS.POST,
|
|
148
|
+
uri: "".concat(this.url, "/help"),
|
|
149
|
+
body: {
|
|
150
|
+
groupId: this.groupId,
|
|
151
|
+
sessionId: this.sessionId
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
},
|
|
155
|
+
/**
|
|
156
|
+
* inits the members object
|
|
157
|
+
* @returns {void}
|
|
158
|
+
*/
|
|
159
|
+
initMembers: function initMembers() {
|
|
160
|
+
var meetingId = this.collection.parent.meetingId;
|
|
161
|
+
var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, meetingId);
|
|
162
|
+
this.members = new _members.default({
|
|
163
|
+
meeting: meeting
|
|
164
|
+
}, {
|
|
165
|
+
parent: this.webex
|
|
166
|
+
});
|
|
167
|
+
},
|
|
168
|
+
/**
|
|
169
|
+
* check sequence and determine whether to update the new roster or not
|
|
170
|
+
* @param {Object} locus Locus object
|
|
171
|
+
* @returns {Boolean}
|
|
172
|
+
*/
|
|
173
|
+
isNeedHandleRoster: function isNeedHandleRoster(locus) {
|
|
174
|
+
var _this$breakoutRosterL, _this$breakoutRosterL2, _this$breakoutRosterL3, _locus$sequence, _locus$sequence$entri;
|
|
175
|
+
if (!((_this$breakoutRosterL = this.breakoutRosterLocus) !== null && _this$breakoutRosterL !== void 0 && (_this$breakoutRosterL2 = _this$breakoutRosterL.sequence) !== null && _this$breakoutRosterL2 !== void 0 && (_this$breakoutRosterL3 = _this$breakoutRosterL2.entries) !== null && _this$breakoutRosterL3 !== void 0 && _this$breakoutRosterL3.length) || !(locus !== null && locus !== void 0 && (_locus$sequence = locus.sequence) !== null && _locus$sequence !== void 0 && (_locus$sequence$entri = _locus$sequence.entries) !== null && _locus$sequence$entri !== void 0 && _locus$sequence$entri.length)) {
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
var prevSequence = this.breakoutRosterLocus.sequence.entries[0];
|
|
179
|
+
var currentSequence = locus.sequence.entries[0];
|
|
180
|
+
return currentSequence > prevSequence;
|
|
181
|
+
},
|
|
182
|
+
/**
|
|
183
|
+
* Parses the participants from the locus object
|
|
184
|
+
* @param {Object} locus Locus object
|
|
185
|
+
* @returns {void}
|
|
186
|
+
*/
|
|
187
|
+
parseRoster: function parseRoster(locus) {
|
|
188
|
+
if (!this.members) {
|
|
189
|
+
this.initMembers();
|
|
190
|
+
}
|
|
191
|
+
if (!this.isNeedHandleRoster(locus)) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
this.breakoutRosterLocus = locus;
|
|
195
|
+
this.members.locusParticipantsUpdate(locus);
|
|
196
|
+
},
|
|
197
|
+
/**
|
|
198
|
+
* Broadcast message to this breakout session's participants
|
|
199
|
+
* @param {String} message
|
|
200
|
+
* @param {Object} options
|
|
201
|
+
* @returns {Promise}
|
|
202
|
+
*/
|
|
203
|
+
broadcast: function broadcast(message, options) {
|
|
204
|
+
return this.breakoutRequest.broadcast({
|
|
205
|
+
url: this.url,
|
|
206
|
+
message: message,
|
|
207
|
+
options: options,
|
|
208
|
+
groupId: this.groupId,
|
|
209
|
+
sessionId: this.sessionId
|
|
210
|
+
});
|
|
211
|
+
},
|
|
212
|
+
version: "2.60.1-next.2"
|
|
213
|
+
});
|
|
214
|
+
var _default = exports.default = Breakout;
|
|
215
|
+
//# sourceMappingURL=breakout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_uuid","_interopRequireDefault","_constants","_members","_request","_events","Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","derived","isMain","cache","deps","fn","initialize","webex","breakoutRosterLocus","join","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","breakoutMoveId","deviceUrl","meetingId","meeting","result","wrap","_callee$","_context","prev","next","uuid","v4","internal","device","collection","parent","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","newMetrics","submitClientEvent","bind","request","method","HTTP_VERBS","POST","uri","concat","body","sent","onBreakoutMoveResponse","abrupt","stop","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","initMembers","members","Members","isNeedHandleRoster","locus","_this$breakoutRosterL","_this$breakoutRosterL2","_this$breakoutRosterL3","_locus$sequence","_locus$sequence$entri","sequence","entries","length","prevSequence","currentSequence","parseRoster","locusParticipantsUpdate","broadcast","message","options","version","_default","exports"],"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 uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\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 requestedLastModifiedTime: 'string',\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\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 * initializer for the Breakout class\n * @returns {void}\n */\n initialize() {\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n this.breakoutRosterLocus = null;\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest(\n {currentSession: this, meeting, breakoutMoveId},\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse(\n {currentSession: this, meeting, breakoutMoveId},\n // @ts-ignore\n this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics)\n );\n\n return result;\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 * inits the members object\n * @returns {void}\n */\n initMembers() {\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n this.members = new Members(\n {\n meeting,\n },\n {parent: this.webex}\n );\n },\n\n /**\n * check sequence and determine whether to update the new roster or not\n * @param {Object} locus Locus object\n * @returns {Boolean}\n */\n isNeedHandleRoster(locus: any) {\n if (!this.breakoutRosterLocus?.sequence?.entries?.length || !locus?.sequence?.entries?.length) {\n return true;\n }\n const prevSequence = this.breakoutRosterLocus.sequence.entries[0];\n const currentSequence = locus.sequence.entries[0];\n\n return currentSequence > prevSequence;\n },\n /**\n * Parses the participants from the locus object\n * @param {Object} locus Locus object\n * @returns {void}\n */\n parseRoster(locus) {\n if (!this.members) {\n this.initMembers();\n }\n if (!this.isNeedHandleRoster(locus)) {\n return;\n }\n this.breakoutRosterLocus = locus;\n this.members.locusParticipantsUpdate(locus);\n },\n\n /**\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
|