@webex/plugin-meetings 3.0.0-beta.31 → 3.0.0-beta.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +94 -15
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +709 -35
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +45 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +48 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -11
- package/dist/config.js.map +1 -1
- package/dist/constants.js +233 -29
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +383 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +61 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +73 -124
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3777 -2929
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +260 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +39 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +415 -115
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +72 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +58 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +132 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +102 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +326 -232
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +13 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +29 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +201 -156
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +62 -32
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +95 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +86 -78
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +11 -10
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/utils.d.ts +14 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +25 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -7
- package/dist/types/constants.d.ts +194 -24
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
- package/dist/types/meeting/index.d.ts +463 -510
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +17 -0
- package/dist/types/meetings/index.d.ts +98 -20
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +14 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +25 -0
- package/dist/types/members/util.d.ts +214 -1
- package/dist/types/metrics/constants.d.ts +12 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +21 -3
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/index.d.ts +7 -1
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +42 -12
- package/src/breakouts/breakout.ts +67 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +592 -20
- package/src/breakouts/utils.ts +42 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +44 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/logs/request.ts +5 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -10
- package/src/constants.ts +221 -19
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +102 -122
- package/src/media/properties.ts +87 -110
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +3132 -2541
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +177 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +33 -0
- package/src/meetings/index.ts +445 -123
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +80 -11
- package/src/member/index.ts +58 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +141 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +134 -8
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +29 -0
- package/src/members/util.ts +333 -240
- package/src/metrics/constants.ts +12 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +31 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +83 -56
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +63 -32
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +48 -26
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +105 -91
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +118 -28
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1395 -69
- package/test/unit/spec/breakouts/utils.js +52 -1
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +5216 -1956
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +483 -49
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +300 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +26 -0
- package/test/unit/spec/meetings/index.js +1011 -205
- package/test/unit/spec/meetings/utils.js +202 -2
- package/test/unit/spec/member/index.js +61 -6
- package/test/unit/spec/member/util.js +510 -34
- package/test/unit/spec/members/index.js +432 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +210 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +28 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +85 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +178 -64
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +82 -36
- package/test/unit/spec/rtcMetrics/index.ts +73 -0
- package/test/unit/spec/stats-analyzer/index.js +136 -2
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastUrl","webinarAttendeesSearchingUrl","canManageWebcast","locusUrlUpdate","set","webcastUrlUpdate","webinarAttendeesSearchingUrlUpdate","updateCanManageWebcast"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {MEETINGS} from '../constants';\n\nimport WebinarCollection from './collection';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastUrl: 'string', // current webinar's webcast url\n webinarAttendeesSearchingUrl: 'string', // current webinarAttendeesSearching url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast url of the meeting\n * @param {string} webcastUrl // webcast url\n * @returns {void}\n */\n webcastUrlUpdate(webcastUrl) {\n this.set('webcastUrl', webcastUrl);\n },\n\n /**\n * Update the current webinarAttendeesSearching url of the meeting\n * @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url\n * @returns {void}\n */\n webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {\n this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n});\n\nexport default Webinar;\n"],"mappings":";;;;;;;;AAGA;AACA;AAEA;AANA;AACA;AACA;;AAMA;AACA;AACA;AACA,IAAMA,OAAO,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACjCC,SAAS,EAAEC,mBAAQ;EACnBC,WAAW,EAAE;IACXC,OAAO,EAAEC;EACX,CAAC;EAEDC,KAAK,EAAE;IACLC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,UAAU,EAAE,QAAQ;IAAE;IACtBC,4BAA4B,EAAE,QAAQ;IAAE;IACxCC,gBAAgB,EAAE,SAAS,CAAE;EAC/B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,cAAc,0BAACJ,QAAQ,EAAE;IACvB,IAAI,CAACK,GAAG,CAAC,UAAU,EAAEL,QAAQ,CAAC;EAChC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,gBAAgB,4BAACL,UAAU,EAAE;IAC3B,IAAI,CAACI,GAAG,CAAC,YAAY,EAAEJ,UAAU,CAAC;EACpC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,kCAAkC,8CAACL,4BAA4B,EAAE;IAC/D,IAAI,CAACG,GAAG,CAAC,8BAA8B,EAAEH,4BAA4B,CAAC;EACxE,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,sBAAsB,kCAACL,gBAAgB,EAAE;IACvC,IAAI,CAACE,GAAG,CAAC,kBAAkB,EAAEF,gBAAgB,CAAC;EAChD,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYZ,OAAO;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.310",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -32,31 +32,33 @@
|
|
|
32
32
|
"build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@webex/plugin-meetings": "3.0.0-beta.
|
|
36
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
37
|
-
"@webex/test-helper-mocha": "3.0.0-beta.
|
|
38
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
39
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
40
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
35
|
+
"@webex/plugin-meetings": "3.0.0-beta.310",
|
|
36
|
+
"@webex/test-helper-chai": "3.0.0-beta.310",
|
|
37
|
+
"@webex/test-helper-mocha": "3.0.0-beta.310",
|
|
38
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.310",
|
|
39
|
+
"@webex/test-helper-retry": "3.0.0-beta.310",
|
|
40
|
+
"@webex/test-helper-test-users": "3.0.0-beta.310",
|
|
41
41
|
"chai": "^4.3.4",
|
|
42
42
|
"chai-as-promised": "^7.1.1",
|
|
43
43
|
"jsdom-global": "3.0.2",
|
|
44
44
|
"sinon": "^9.2.4",
|
|
45
|
-
"typed-emitter": "^2.1.0"
|
|
45
|
+
"typed-emitter": "^2.1.0",
|
|
46
|
+
"typescript": "^4.7.4"
|
|
46
47
|
},
|
|
47
48
|
"dependencies": {
|
|
48
|
-
"@webex/common": "3.0.0-beta.
|
|
49
|
-
"@webex/internal-media-core": "
|
|
50
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
51
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
52
|
-
"@webex/internal-plugin-llm": "3.0.0-beta.
|
|
53
|
-
"@webex/internal-plugin-mercury": "3.0.0-beta.
|
|
54
|
-
"@webex/internal-plugin-metrics": "3.0.0-beta.
|
|
55
|
-
"@webex/internal-plugin-support": "3.0.0-beta.
|
|
56
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
57
|
-
"@webex/
|
|
58
|
-
"@webex/plugin-
|
|
59
|
-
"@webex/
|
|
49
|
+
"@webex/common": "3.0.0-beta.310",
|
|
50
|
+
"@webex/internal-media-core": "2.2.1",
|
|
51
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.310",
|
|
52
|
+
"@webex/internal-plugin-device": "3.0.0-beta.310",
|
|
53
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.310",
|
|
54
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.310",
|
|
55
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.310",
|
|
56
|
+
"@webex/internal-plugin-support": "3.0.0-beta.310",
|
|
57
|
+
"@webex/internal-plugin-user": "3.0.0-beta.310",
|
|
58
|
+
"@webex/media-helpers": "3.0.0-beta.310",
|
|
59
|
+
"@webex/plugin-people": "3.0.0-beta.310",
|
|
60
|
+
"@webex/plugin-rooms": "3.0.0-beta.310",
|
|
61
|
+
"@webex/webex-core": "3.0.0-beta.310",
|
|
60
62
|
"ampersand-collection": "^2.0.2",
|
|
61
63
|
"bowser": "^2.11.0",
|
|
62
64
|
"btoa": "^1.2.1",
|
|
@@ -64,6 +66,7 @@
|
|
|
64
66
|
"global": "^4.4.0",
|
|
65
67
|
"ip-anonymize": "^0.1.0",
|
|
66
68
|
"javascript-state-machine": "^3.1.0",
|
|
69
|
+
"jsonwebtoken": "^8.5.1",
|
|
67
70
|
"lodash": "^4.17.21",
|
|
68
71
|
"sdp-transform": "^2.12.0",
|
|
69
72
|
"uuid": "^3.3.2",
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {ANNOTATION_POLICY} from './constants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Type for an StrokeData Object
|
|
5
|
+
*/
|
|
6
|
+
type StrokeData = {
|
|
7
|
+
deviceId: string;
|
|
8
|
+
toUserId: string;
|
|
9
|
+
requesterId: string;
|
|
10
|
+
content: string;
|
|
11
|
+
shareInstanceId: string;
|
|
12
|
+
encryptionKeyUrl: string;
|
|
13
|
+
version: string;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type RequestData = {
|
|
17
|
+
toUserId: string;
|
|
18
|
+
toDeviceUrl: string;
|
|
19
|
+
shareInstanceId: string;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
type CommandRequestBody = {
|
|
23
|
+
actionType: string;
|
|
24
|
+
resourceType: string;
|
|
25
|
+
shareInstanceId: string;
|
|
26
|
+
receivers?: any[];
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Type for an annotation Object include annotation version and privilege
|
|
30
|
+
*/
|
|
31
|
+
type AnnotationInfo = {
|
|
32
|
+
version: string;
|
|
33
|
+
policy: ANNOTATION_POLICY;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
interface IAnnotationChannel {
|
|
37
|
+
// === below is for presenter
|
|
38
|
+
acceptRequest: (approval) => undefined | Promise<void>;
|
|
39
|
+
declineRequest: (approval) => undefined | Promise<void>;
|
|
40
|
+
closeAnnotation: (requestData: RequestData) => undefined | Promise<void>;
|
|
41
|
+
// === below is for attendee
|
|
42
|
+
approveAnnotation: (requestData: RequestData) => undefined | Promise<void>;
|
|
43
|
+
cancelApproveAnnotation: (requestData: RequestData, approval) => undefined | Promise<void>;
|
|
44
|
+
sendStrokeData: (strokeData: StrokeData) => void;
|
|
45
|
+
// =====
|
|
46
|
+
approvalUrlUpdate: (approvalUrl: string) => void;
|
|
47
|
+
locusUrlUpdate: (locusUrl: string) => void;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type {StrokeData, RequestData, CommandRequestBody, IAnnotationChannel, AnnotationInfo};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const EVENT_TRIGGERS = {
|
|
2
|
+
ANNOTATION_STROKE_DATA: 'annotation:strokeData',
|
|
3
|
+
ANNOTATION_COMMAND: 'annotation:command',
|
|
4
|
+
};
|
|
5
|
+
export const ANNOTATION_RESOURCE_TYPE = 'AnnotationOnShare';
|
|
6
|
+
export const ANNOTATION_RELAY_TYPES = {
|
|
7
|
+
ANNOTATION_CLIENT: 'annotation.client',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const ANNOTATION_STATUS = {
|
|
11
|
+
NO_ANNOTATION: 'NO_ANNOTATION',
|
|
12
|
+
RUNNING_ANNOTATION: 'RUNNING_ANNOTATION',
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export enum ANNOTATION_POLICY {
|
|
16
|
+
ANYONE_CAN_ANNOTATE = 'AnyoneCanAnnotate',
|
|
17
|
+
APPROVAL = 'Approval',
|
|
18
|
+
ANNOTATION_NOT_ALLOWED = 'AnnotationNotAllowed',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const ANNOTATION_REQUEST_TYPE = {
|
|
22
|
+
ANNOTATION_MESSAGE: 'annotation_message',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const enum ANNOTATION_ACTION_TYPE {
|
|
26
|
+
REQUESTED = 'REQUESTED',
|
|
27
|
+
ACCEPTED = 'ACCEPTED',
|
|
28
|
+
DECLINED = 'DECLINED',
|
|
29
|
+
OFFERED = 'OFFERED',
|
|
30
|
+
CANCELED = 'CANCELED',
|
|
31
|
+
EXPIRED = 'EXPIRED',
|
|
32
|
+
REVOKED = 'REVOKED',
|
|
33
|
+
CLOSED = 'CLOSED',
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const ANNOTATION = 'annotation';
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import uuid from 'uuid';
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
|
+
import {WebexPlugin, config} from '@webex/webex-core';
|
|
4
|
+
import TriggerProxy from '../common/events/trigger-proxy';
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
EVENT_TRIGGERS,
|
|
8
|
+
ANNOTATION_RELAY_TYPES,
|
|
9
|
+
ANNOTATION,
|
|
10
|
+
ANNOTATION_REQUEST_TYPE,
|
|
11
|
+
ANNOTATION_ACTION_TYPE,
|
|
12
|
+
ANNOTATION_RESOURCE_TYPE,
|
|
13
|
+
} from './constants';
|
|
14
|
+
|
|
15
|
+
import {StrokeData, RequestData, IAnnotationChannel, CommandRequestBody} from './annotation.types';
|
|
16
|
+
import {HTTP_VERBS} from '../constants';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @description Annotation to handle LLM and Mercury message and locus API
|
|
20
|
+
* @class
|
|
21
|
+
*/
|
|
22
|
+
class AnnotationChannel extends WebexPlugin implements IAnnotationChannel {
|
|
23
|
+
namespace = ANNOTATION;
|
|
24
|
+
|
|
25
|
+
private seqNum: number;
|
|
26
|
+
|
|
27
|
+
hasSubscribedToEvents: boolean;
|
|
28
|
+
|
|
29
|
+
approvalUrl: string;
|
|
30
|
+
locusUrl: string;
|
|
31
|
+
deviceUrl: string;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Initializes annotation module
|
|
35
|
+
*/
|
|
36
|
+
constructor(...args) {
|
|
37
|
+
super(...args);
|
|
38
|
+
this.seqNum = 1;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Process Stroke Data
|
|
43
|
+
* @param {object} data
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
private processStrokeMessage(data) {
|
|
47
|
+
const {request} = data;
|
|
48
|
+
this.decryptContent(request.value.encryptionKeyUrl, request.value.content).then(
|
|
49
|
+
(decryptedContent) => {
|
|
50
|
+
request.value.content = decryptedContent;
|
|
51
|
+
TriggerProxy.trigger(
|
|
52
|
+
this,
|
|
53
|
+
{
|
|
54
|
+
file: 'annotation',
|
|
55
|
+
function: 'processStrokeMessage',
|
|
56
|
+
},
|
|
57
|
+
EVENT_TRIGGERS.ANNOTATION_STROKE_DATA,
|
|
58
|
+
{
|
|
59
|
+
payload: data,
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** bind all events from mercury
|
|
67
|
+
* @param {Object} e
|
|
68
|
+
* @returns {undefined}
|
|
69
|
+
*/
|
|
70
|
+
private eventCommandProcessor(e) {
|
|
71
|
+
if (
|
|
72
|
+
e?.data?.eventType === 'locus.approval_request' &&
|
|
73
|
+
e?.data?.approval?.resourceType === ANNOTATION_RESOURCE_TYPE &&
|
|
74
|
+
e?.data?.approval?.actionType
|
|
75
|
+
) {
|
|
76
|
+
TriggerProxy.trigger(
|
|
77
|
+
this,
|
|
78
|
+
{
|
|
79
|
+
file: 'annotation',
|
|
80
|
+
function: 'approval_request',
|
|
81
|
+
},
|
|
82
|
+
EVENT_TRIGGERS.ANNOTATION_COMMAND,
|
|
83
|
+
{
|
|
84
|
+
type: e.data.approval.actionType,
|
|
85
|
+
payload: e.data.approval,
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** bind all events from llm
|
|
92
|
+
* @param {Object} e
|
|
93
|
+
* @returns {undefined}
|
|
94
|
+
*/
|
|
95
|
+
private eventDataProcessor(e) {
|
|
96
|
+
switch (e?.data?.relayType) {
|
|
97
|
+
case ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT:
|
|
98
|
+
this.processStrokeMessage(e.data);
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Listen to websocket messages
|
|
107
|
+
* @returns {undefined}
|
|
108
|
+
*/
|
|
109
|
+
private listenToEvents() {
|
|
110
|
+
if (!this.hasSubscribedToEvents) {
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
this.webex.internal.mercury.on(
|
|
113
|
+
'event:locus.approval_request',
|
|
114
|
+
this.eventCommandProcessor,
|
|
115
|
+
this
|
|
116
|
+
);
|
|
117
|
+
// @ts-ignore
|
|
118
|
+
this.webex.internal.llm.on('event:relay.event', this.eventDataProcessor, this);
|
|
119
|
+
this.hasSubscribedToEvents = true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* set locusUrl
|
|
125
|
+
* @param {string} locusUrl
|
|
126
|
+
* @returns {void}
|
|
127
|
+
*/
|
|
128
|
+
public locusUrlUpdate(locusUrl: string) {
|
|
129
|
+
this.locusUrl = locusUrl;
|
|
130
|
+
this.listenToEvents();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* set approved url
|
|
135
|
+
* @param {string} approvalUrl
|
|
136
|
+
* @returns {void}
|
|
137
|
+
*/
|
|
138
|
+
public approvalUrlUpdate(approvalUrl: string) {
|
|
139
|
+
this.approvalUrl = approvalUrl;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* accept request
|
|
144
|
+
* @param {object} approval
|
|
145
|
+
* @returns {Promise}
|
|
146
|
+
*/
|
|
147
|
+
public acceptRequest(approval) {
|
|
148
|
+
// @ts-ignore
|
|
149
|
+
return this.request({
|
|
150
|
+
method: HTTP_VERBS.PUT,
|
|
151
|
+
url: approval.url,
|
|
152
|
+
body: {
|
|
153
|
+
resourceType: ANNOTATION_RESOURCE_TYPE,
|
|
154
|
+
actionType: ANNOTATION_ACTION_TYPE.ACCEPTED,
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* presenter declined request annotation
|
|
161
|
+
* @param {approval} approval
|
|
162
|
+
* @returns {Promise}
|
|
163
|
+
*/
|
|
164
|
+
public declineRequest(approval) {
|
|
165
|
+
// @ts-ignore
|
|
166
|
+
return this.request({
|
|
167
|
+
method: HTTP_VERBS.PUT,
|
|
168
|
+
url: approval.url,
|
|
169
|
+
body: {
|
|
170
|
+
resourceType: ANNOTATION_RESOURCE_TYPE,
|
|
171
|
+
actionType: ANNOTATION_ACTION_TYPE.DECLINED,
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* request approved annotation
|
|
178
|
+
* @param {RequestData} requestData
|
|
179
|
+
* @returns {Promise}
|
|
180
|
+
*/
|
|
181
|
+
public approveAnnotation(requestData: RequestData) {
|
|
182
|
+
return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.REQUESTED, requestData);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* cancel approved annotation
|
|
187
|
+
* @param {object} requestData
|
|
188
|
+
* @param {object} approval
|
|
189
|
+
* @returns {Promise}
|
|
190
|
+
*/
|
|
191
|
+
public cancelApproveAnnotation(requestData: RequestData, approval) {
|
|
192
|
+
const body: CommandRequestBody = {
|
|
193
|
+
actionType: ANNOTATION_ACTION_TYPE.CANCELED,
|
|
194
|
+
resourceType: 'AnnotationOnShare',
|
|
195
|
+
shareInstanceId: requestData.shareInstanceId,
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
// @ts-ignore
|
|
199
|
+
return this.request({
|
|
200
|
+
method: HTTP_VERBS.PUT,
|
|
201
|
+
url: `${approval.url}`,
|
|
202
|
+
body,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* close annotation
|
|
208
|
+
* @param {object} requestData
|
|
209
|
+
* @returns {Promise}
|
|
210
|
+
*/
|
|
211
|
+
public closeAnnotation(requestData: RequestData) {
|
|
212
|
+
return this.sendAnnotationAction(ANNOTATION_ACTION_TYPE.CLOSED, requestData);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* send annotation command
|
|
217
|
+
* @param {ANNOTATION_ACTION_TYPE} actionType
|
|
218
|
+
* @param {RequestData} requestData
|
|
219
|
+
* @returns {Promise}
|
|
220
|
+
*/
|
|
221
|
+
private sendAnnotationAction = async (
|
|
222
|
+
actionType: ANNOTATION_ACTION_TYPE,
|
|
223
|
+
requestData: RequestData
|
|
224
|
+
): Promise<void> => {
|
|
225
|
+
const body: CommandRequestBody = {
|
|
226
|
+
actionType,
|
|
227
|
+
resourceType: 'AnnotationOnShare',
|
|
228
|
+
shareInstanceId: requestData.shareInstanceId,
|
|
229
|
+
};
|
|
230
|
+
if (requestData?.toUserId) {
|
|
231
|
+
body.receivers = [{participantId: requestData.toUserId, deviceUrl: requestData.toDeviceUrl}];
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// @ts-ignore
|
|
235
|
+
return this.request({
|
|
236
|
+
method: HTTP_VERBS.POST,
|
|
237
|
+
url: `${this.approvalUrl}`,
|
|
238
|
+
body,
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* decrypt data
|
|
244
|
+
* @param {string} encryptionKeyUrl
|
|
245
|
+
* @param {string} content encrypted content
|
|
246
|
+
* @returns {string} decrypted content
|
|
247
|
+
*/
|
|
248
|
+
private decryptContent = (encryptionKeyUrl: string, content: string): Promise<any> => {
|
|
249
|
+
// @ts-ignore
|
|
250
|
+
return this.webex.internal.encryption.decryptText(encryptionKeyUrl, content).then((res) => {
|
|
251
|
+
return res;
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* encrypt data
|
|
257
|
+
* @param {string} encryptionKeyUrl
|
|
258
|
+
* @param {string} content original content
|
|
259
|
+
* @returns {string} encrypted content
|
|
260
|
+
*/
|
|
261
|
+
private encryptContent = (encryptionKeyUrl: string, content: string): Promise<any> => {
|
|
262
|
+
// @ts-ignore
|
|
263
|
+
return this.webex.internal.encryption.encryptText(encryptionKeyUrl, content).then((res) => {
|
|
264
|
+
return res;
|
|
265
|
+
});
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Sends stroke data to presenter
|
|
270
|
+
* @param {StrokeData} strokeData
|
|
271
|
+
* @returns {void}
|
|
272
|
+
*/
|
|
273
|
+
public sendStrokeData = (strokeData: StrokeData): void => {
|
|
274
|
+
// @ts-ignore
|
|
275
|
+
if (!this.webex.internal.llm.isConnected()) return;
|
|
276
|
+
this.encryptContent(strokeData.encryptionKeyUrl, strokeData.content).then(
|
|
277
|
+
(encryptedContent) => {
|
|
278
|
+
this.publishEncrypted(encryptedContent, strokeData);
|
|
279
|
+
}
|
|
280
|
+
);
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* private encrypted the strokes data
|
|
285
|
+
* @param {string} encryptedContent
|
|
286
|
+
* @param {StrokeData} strokeData
|
|
287
|
+
* @returns {void}
|
|
288
|
+
*/
|
|
289
|
+
private publishEncrypted(encryptedContent: string, strokeData: StrokeData) {
|
|
290
|
+
const data = {
|
|
291
|
+
id: `${this.seqNum}`,
|
|
292
|
+
type: 'publishRequest',
|
|
293
|
+
recipients: {
|
|
294
|
+
// @ts-ignore
|
|
295
|
+
route: this.webex.internal.llm.getBinding(),
|
|
296
|
+
},
|
|
297
|
+
headers: {
|
|
298
|
+
to: strokeData.toUserId,
|
|
299
|
+
},
|
|
300
|
+
data: {
|
|
301
|
+
eventType: 'relay.event',
|
|
302
|
+
relayType: ANNOTATION_RELAY_TYPES.ANNOTATION_CLIENT,
|
|
303
|
+
request: {
|
|
304
|
+
value: {
|
|
305
|
+
type: ANNOTATION_REQUEST_TYPE.ANNOTATION_MESSAGE,
|
|
306
|
+
content: encryptedContent,
|
|
307
|
+
deviceId: strokeData.deviceId,
|
|
308
|
+
seq: this.seqNum,
|
|
309
|
+
requesterId: strokeData.requesterId,
|
|
310
|
+
version: strokeData.version,
|
|
311
|
+
shareInstanceId: strokeData.shareInstanceId,
|
|
312
|
+
encryptionKeyUrl: strokeData.encryptionKeyUrl,
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,
|
|
317
|
+
timestamp: new Date().getTime(),
|
|
318
|
+
sequenceNumber: this.seqNum,
|
|
319
|
+
filterMessage: false,
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
// @ts-ignore
|
|
323
|
+
this.webex.internal.llm.socket.send(data);
|
|
324
|
+
this.seqNum += 1;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export default AnnotationChannel;
|
package/src/breakouts/README.md
CHANGED
|
@@ -41,6 +41,12 @@ The following are methods available to attendees of a meeting:
|
|
|
41
41
|
```javascript
|
|
42
42
|
// Join a breakout
|
|
43
43
|
// This can be used when the participant is in the main session or in a different breakout session
|
|
44
|
+
// when call join function, should send message to metrics
|
|
45
|
+
/* Breakout Sessions created during meetings allow participants to move into smaller breakout sessions and then
|
|
46
|
+
return to the main meeting at a later time. These moves can be initiated by the user or by the meeting
|
|
47
|
+
host/co-host. The goal of this metric is to track these moves in production by instrumenting them for
|
|
48
|
+
analysis from the end user's experience perspective.
|
|
49
|
+
*/
|
|
44
50
|
breakout.join();
|
|
45
51
|
|
|
46
52
|
// Leave a breakout
|
|
@@ -107,10 +113,6 @@ note: None of these are currently implemented
|
|
|
107
113
|
// Move a participant to breakout
|
|
108
114
|
breakout.move(participant)
|
|
109
115
|
|
|
110
|
-
// Assign a particpant to a breakout
|
|
111
|
-
// Not sure whether there is any difference from move
|
|
112
|
-
breakout.assign(participant)
|
|
113
|
-
|
|
114
116
|
// Remove someone from a breakout session
|
|
115
117
|
// This returns them to the main session
|
|
116
118
|
breakout.remove(participant)
|
|
@@ -119,21 +121,49 @@ breakout.remove(participant)
|
|
|
119
121
|
// This can only be done when breakouts are inactive
|
|
120
122
|
breakout.delete()
|
|
121
123
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
/*
|
|
125
|
+
Create breakout sessions, Type is array
|
|
126
|
+
Format: [{'name':'session1', "anyoneCanJoin" : true}]
|
|
127
|
+
*/
|
|
128
|
+
breakouts.create(sessions)
|
|
129
|
+
|
|
130
|
+
// Delete all breakout sessions
|
|
131
|
+
breakouts.clearSessions()
|
|
132
|
+
|
|
133
|
+
// update breakout session with params
|
|
134
|
+
// if unlockEdit is true, will release lock editing after update finish
|
|
135
|
+
breakout.update(params, unlockEdit)
|
|
136
|
+
|
|
137
|
+
// Start breakout sessions with necessary params
|
|
138
|
+
breakouts.start(params)
|
|
124
139
|
|
|
125
|
-
//
|
|
126
|
-
|
|
140
|
+
// Assign a particpant/participants to breakouts/a breakout
|
|
141
|
+
// sessions should be like: [{id:'xx',memberIds:['111'],emails:['111@ss.com',anyone: true]},...]
|
|
142
|
+
breakouts.assign(sessions)
|
|
127
143
|
|
|
128
|
-
//
|
|
129
|
-
|
|
144
|
+
// Dynammic assign a particpant/participants to breakouts/main (not used by now)
|
|
145
|
+
// Admit lobby waiting participants to a breakout directly
|
|
146
|
+
// sessions should be like: [{id:'xx',participants:['111'],targetState:'JOINED'},...]
|
|
147
|
+
breakouts.dynamicAssign(sessions)
|
|
130
148
|
|
|
131
|
-
// End breakout sessions
|
|
132
|
-
breakouts.end()
|
|
149
|
+
// End breakout sessions with necessary params
|
|
150
|
+
breakouts.end(params)
|
|
151
|
+
|
|
152
|
+
// get breakout sessions with/without param editlock
|
|
153
|
+
breakouts.getBreakout(editlock?)
|
|
133
154
|
|
|
134
155
|
// Enable breakout sessions
|
|
135
156
|
breakouts.enable()
|
|
136
157
|
|
|
158
|
+
// Enable and lock breakout
|
|
159
|
+
breakouts.enableAndLockBreakout()
|
|
160
|
+
|
|
161
|
+
// Lock breakout
|
|
162
|
+
breakouts.lockBreakout()
|
|
163
|
+
|
|
164
|
+
// Unlock breakout
|
|
165
|
+
breakouts.unLockEditBreakout()
|
|
166
|
+
|
|
137
167
|
// Disable breakout sessions
|
|
138
168
|
breakouts.disable()
|
|
139
169
|
|