@webex/plugin-meetings 3.0.0-beta.28 → 3.0.0-beta.280
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 +114 -14
- 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 +763 -31
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- 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/webex-errors.js +28 -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/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +203 -28
- 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 +58 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +72 -123
- 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 +3123 -2814
- 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 +256 -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 +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +394 -94
- 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 +71 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -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 +121 -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 +86 -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 +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +12 -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 +40 -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 +199 -154
- 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 +23 -29
- 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 +96 -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 +67 -73
- 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/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -6
- package/dist/types/constants.d.ts +161 -21
- 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 +345 -507
- 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 +8 -0
- package/dist/types/meetings/index.d.ts +88 -12
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +13 -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 +24 -0
- package/dist/types/members/util.d.ts +209 -1
- package/dist/types/metrics/constants.d.ts +11 -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/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +18 -1
- 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 +6 -1
- 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 +44 -14
- package/src/breakouts/breakout.ts +87 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +646 -18
- 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 +27 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -9
- package/src/constants.ts +184 -18
- 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 +100 -122
- package/src/media/properties.ts +85 -108
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +2541 -2309
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +172 -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 +20 -0
- package/src/meetings/index.ts +428 -108
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +79 -4
- package/src/member/index.ts +49 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +127 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +106 -7
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +11 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +47 -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 +81 -54
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +23 -30
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +88 -88
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- 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 +142 -24
- 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 +1488 -67
- 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/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/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +4515 -1932
- 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 +440 -45
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +295 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +521 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +1007 -177
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +58 -4
- package/test/unit/spec/member/util.js +479 -35
- package/test/unit/spec/members/index.js +319 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -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 +43 -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 +84 -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 +31 -51
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +48 -13
- package/test/unit/spec/rtcMetrics/index.ts +68 -0
- package/test/unit/spec/stats-analyzer/index.js +64 -2
- 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
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
|
+
export type ReachabilityMetrics = {
|
|
5
|
+
reachability_public_udp_success: number;
|
|
6
|
+
reachability_public_udp_failed: number;
|
|
7
|
+
reachability_public_tcp_success: number;
|
|
8
|
+
reachability_public_tcp_failed: number;
|
|
9
|
+
reachability_vmn_udp_success: number;
|
|
10
|
+
reachability_vmn_udp_failed: number;
|
|
11
|
+
reachability_vmn_tcp_success: number;
|
|
12
|
+
reachability_vmn_tcp_failed: number;
|
|
13
|
+
};
|
|
14
|
+
export type TransportResult = {
|
|
15
|
+
reachable?: 'true' | 'false';
|
|
16
|
+
latencyInMilliseconds?: string;
|
|
17
|
+
clientMediaIPs?: string[];
|
|
18
|
+
untested?: 'true';
|
|
19
|
+
};
|
|
20
|
+
type ReachabilityResult = {
|
|
21
|
+
udp: TransportResult;
|
|
22
|
+
tcp: TransportResult;
|
|
23
|
+
xtls: {
|
|
24
|
+
untested: 'true';
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export type ReachabilityResults = Record<string, ReachabilityResult>;
|
|
28
|
+
type InternalReachabilityResults = Record<string, ReachabilityResult & {
|
|
29
|
+
isVideoMesh?: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
export type ICECandidateResult = {
|
|
32
|
+
clusterId: string;
|
|
33
|
+
isVideoMesh: boolean;
|
|
34
|
+
elapsed?: string | null;
|
|
35
|
+
publicIPs?: string[];
|
|
36
|
+
};
|
|
4
37
|
/**
|
|
5
38
|
* @class Reachability
|
|
6
39
|
* @export
|
|
@@ -23,14 +56,27 @@ export default class Reachability {
|
|
|
23
56
|
* @async
|
|
24
57
|
* @memberof Reachability
|
|
25
58
|
*/
|
|
26
|
-
gatherReachability(): Promise<
|
|
59
|
+
gatherReachability(): Promise<InternalReachabilityResults>;
|
|
60
|
+
/**
|
|
61
|
+
* Returns statistics about last reachability results. The returned value is an object
|
|
62
|
+
* with a flat list of properties so that it can be easily sent with metrics
|
|
63
|
+
*
|
|
64
|
+
* @returns {Promise} Promise with metrics values, it never rejects/throws.
|
|
65
|
+
*/
|
|
66
|
+
getReachabilityMetrics(): Promise<ReachabilityMetrics>;
|
|
67
|
+
/**
|
|
68
|
+
* Reachability results as an object in the format that backend expects
|
|
69
|
+
*
|
|
70
|
+
* @returns {any} reachability results that need to be sent to the backend
|
|
71
|
+
*/
|
|
72
|
+
getReachabilityResults(): Promise<ReachabilityResults | undefined>;
|
|
27
73
|
/**
|
|
28
74
|
* fetches reachability data and checks for cluster reachability
|
|
29
75
|
* @returns {boolean}
|
|
30
76
|
* @public
|
|
31
77
|
* @memberof Reachability
|
|
32
78
|
*/
|
|
33
|
-
|
|
79
|
+
isAnyPublicClusterReachable(): Promise<boolean>;
|
|
34
80
|
/**
|
|
35
81
|
* Generate peerConnection config settings
|
|
36
82
|
* @param {object} cluster
|
|
@@ -94,7 +140,7 @@ export default class Reachability {
|
|
|
94
140
|
* speed.
|
|
95
141
|
* @private
|
|
96
142
|
* @param {RTCPeerConnection} peerConnection
|
|
97
|
-
* @param {
|
|
143
|
+
* @param {boolean} isVideoMesh
|
|
98
144
|
* @returns {Promise}
|
|
99
145
|
*/
|
|
100
146
|
private iceGatheringState;
|
|
@@ -107,20 +153,27 @@ export default class Reachability {
|
|
|
107
153
|
private logUnreachableClusters;
|
|
108
154
|
/**
|
|
109
155
|
* Calculates time to establish connection
|
|
110
|
-
* @param {
|
|
156
|
+
* @param {Array<ICECandidateResult>} iceResults iceResults
|
|
111
157
|
* @returns {object} reachabilityMap
|
|
112
|
-
* @
|
|
158
|
+
* @protected
|
|
113
159
|
* @memberof Reachability
|
|
114
160
|
*/
|
|
115
|
-
|
|
161
|
+
protected parseIceResultsToInternalReachabilityResults(iceResults: Array<ICECandidateResult>): InternalReachabilityResults;
|
|
116
162
|
/**
|
|
117
163
|
* fetches reachability data
|
|
118
164
|
* @param {object} clusterList
|
|
119
|
-
* @returns {Promise<
|
|
165
|
+
* @returns {Promise<InternalReachabilityResults>} reachability check results
|
|
120
166
|
* @private
|
|
121
167
|
* @memberof Reachability
|
|
122
168
|
*/
|
|
123
169
|
private performReachabilityCheck;
|
|
170
|
+
/**
|
|
171
|
+
* Adds public IP (client media IPs)
|
|
172
|
+
* @param {RTCPeerConnection} peerConnection
|
|
173
|
+
* @param {string} publicIP
|
|
174
|
+
* @returns {void}
|
|
175
|
+
*/
|
|
176
|
+
protected addPublicIP(peerConnection: RTCPeerConnection, publicIP?: string | null): void;
|
|
124
177
|
/**
|
|
125
178
|
* Records latency and closes the peerConnection
|
|
126
179
|
* @param {RTCPeerConnection} peerConnection
|
|
@@ -138,3 +191,4 @@ export default class Reachability {
|
|
|
138
191
|
*/
|
|
139
192
|
private setup;
|
|
140
193
|
}
|
|
194
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IP_VERSION } from '../constants';
|
|
1
2
|
export interface ClusterNode {
|
|
2
3
|
isVideoMesh: boolean;
|
|
3
4
|
udp: Array<string>;
|
|
@@ -19,12 +20,15 @@ declare class ReachabilityRequest {
|
|
|
19
20
|
*/
|
|
20
21
|
constructor(webex: object);
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
+
* Gets the cluster information
|
|
23
24
|
*
|
|
24
|
-
* @param {
|
|
25
|
+
* @param {IP_VERSION} ipVersion information about current ip network we're on
|
|
25
26
|
* @returns {Promise}
|
|
26
27
|
*/
|
|
27
|
-
getClusters: () => Promise<
|
|
28
|
+
getClusters: (ipVersion?: IP_VERSION) => Promise<{
|
|
29
|
+
clusters: ClusterList;
|
|
30
|
+
joinCookie: any;
|
|
31
|
+
}>;
|
|
28
32
|
/**
|
|
29
33
|
* gets remote SDP For Clusters
|
|
30
34
|
* @param {Object} localSDPList localSDPs for the cluster
|
|
@@ -58,6 +58,15 @@ export default class ReconnectionManager {
|
|
|
58
58
|
* @memberof ReconnectionManager
|
|
59
59
|
*/
|
|
60
60
|
cleanUp(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Stop the local share stream.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} reason a {@link SHARE_STOPPED_REASON}
|
|
65
|
+
* @returns {undefined}
|
|
66
|
+
* @private
|
|
67
|
+
* @memberof ReconnectionManager
|
|
68
|
+
*/
|
|
69
|
+
private stopLocalShareStream;
|
|
61
70
|
/**
|
|
62
71
|
* @public
|
|
63
72
|
* @memberof ReconnectionManager
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SELF_POLICY } from '../constants';
|
|
1
2
|
import MeetingRequest from '../meeting/request';
|
|
2
3
|
/**
|
|
3
4
|
* @description Recording manages the recording functionality of the meeting object, there should only be one instantation of recording per meeting
|
|
@@ -20,6 +21,13 @@ export default class RecordingController {
|
|
|
20
21
|
* @memberof RecordingInfo
|
|
21
22
|
*/
|
|
22
23
|
private displayHints;
|
|
24
|
+
/**
|
|
25
|
+
* @instance
|
|
26
|
+
* @type {Object}
|
|
27
|
+
* @private
|
|
28
|
+
* @memberof RecordingInfo
|
|
29
|
+
*/
|
|
30
|
+
private selfUserPolicies;
|
|
23
31
|
/**
|
|
24
32
|
* @instance
|
|
25
33
|
* @type {string}
|
|
@@ -62,7 +70,6 @@ export default class RecordingController {
|
|
|
62
70
|
});
|
|
63
71
|
/**
|
|
64
72
|
* @param {MeetingRequest} request
|
|
65
|
-
* @param {LocusInfo} info
|
|
66
73
|
* @returns {void}
|
|
67
74
|
* @private
|
|
68
75
|
* @memberof RecordingController
|
|
@@ -94,6 +101,13 @@ export default class RecordingController {
|
|
|
94
101
|
* @memberof RecordingController
|
|
95
102
|
*/
|
|
96
103
|
setDisplayHints(hints: Array<string>): void;
|
|
104
|
+
/**
|
|
105
|
+
* @param {Object} selfUserPolicies
|
|
106
|
+
* @returns {void}
|
|
107
|
+
* @public
|
|
108
|
+
* @memberof RecordingController
|
|
109
|
+
*/
|
|
110
|
+
setUserPolicy(selfUserPolicies: Record<SELF_POLICY, boolean>): void;
|
|
97
111
|
/**
|
|
98
112
|
* @param {string} id
|
|
99
113
|
* @returns {void}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { SELF_POLICY } from '../constants';
|
|
1
2
|
import RecordingAction from './enums';
|
|
2
3
|
declare const _default: {
|
|
3
|
-
canUserStart: (displayHints: string[]) => boolean;
|
|
4
|
-
canUserPause: (displayHints: string[]) => boolean;
|
|
5
|
-
canUserResume: (displayHints: string[]) => boolean;
|
|
6
|
-
canUserStop: (displayHints: string[]) => boolean;
|
|
4
|
+
canUserStart: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
5
|
+
canUserPause: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
6
|
+
canUserResume: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
7
|
+
canUserStop: (displayHints: string[], userPolicies: Record<SELF_POLICY, boolean>) => boolean;
|
|
7
8
|
deriveRecordingStates: (action: RecordingAction) => {
|
|
8
9
|
recording: boolean;
|
|
9
10
|
paused: boolean;
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
import { IP_VERSION } from '../constants';
|
|
3
|
+
import { LocusMediaRequest } from '../meeting/locusMediaRequest';
|
|
2
4
|
/**
|
|
3
5
|
* @class RoapRequest
|
|
4
6
|
*/
|
|
5
7
|
export default class RoapRequest extends StatelessWebexPlugin {
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Returns reachability data.
|
|
8
10
|
* @param {Object} localSdp
|
|
9
|
-
* @returns {
|
|
11
|
+
* @returns {Object}
|
|
10
12
|
*/
|
|
11
|
-
|
|
13
|
+
attachReachabilityData(localSdp: any): Promise<{
|
|
14
|
+
localSdp: any;
|
|
15
|
+
joinCookie: any;
|
|
16
|
+
}>;
|
|
12
17
|
/**
|
|
13
18
|
* Sends a ROAP message
|
|
14
19
|
* @param {Object} options
|
|
@@ -16,20 +21,19 @@ export default class RoapRequest extends StatelessWebexPlugin {
|
|
|
16
21
|
* @param {String} options.locusSelfUrl
|
|
17
22
|
* @param {String} options.mediaId
|
|
18
23
|
* @param {String} options.correlationId
|
|
19
|
-
* @param {Boolean} options.audioMuted
|
|
20
|
-
* @param {Boolean} options.videoMuted
|
|
21
24
|
* @param {String} options.meetingId
|
|
22
|
-
* @param {
|
|
25
|
+
* @param {IP_VERSION} options.ipVersion only required for offers
|
|
23
26
|
* @returns {Promise} returns the response/failure of the request
|
|
24
27
|
*/
|
|
25
28
|
sendRoap(options: {
|
|
26
29
|
roapMessage: any;
|
|
27
30
|
locusSelfUrl: string;
|
|
28
31
|
mediaId: string;
|
|
29
|
-
correlationId: string;
|
|
30
|
-
audioMuted: boolean;
|
|
31
|
-
videoMuted: boolean;
|
|
32
32
|
meetingId: string;
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
ipVersion?: IP_VERSION;
|
|
34
|
+
locusMediaRequest?: LocusMediaRequest;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
mediaConnections: any;
|
|
37
|
+
locus: any;
|
|
38
|
+
}>;
|
|
35
39
|
}
|
|
@@ -49,7 +49,24 @@ export default class TurnDiscovery {
|
|
|
49
49
|
* @param {Meeting} meeting
|
|
50
50
|
* @returns {Promise}
|
|
51
51
|
*/
|
|
52
|
-
sendRoapOK(meeting: Meeting): Promise<
|
|
52
|
+
sendRoapOK(meeting: Meeting): Promise<{
|
|
53
|
+
mediaConnections: any;
|
|
54
|
+
locus: any;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the reason why reachability is skipped.
|
|
58
|
+
*
|
|
59
|
+
* @param {Meeting} meeting
|
|
60
|
+
* @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
|
|
61
|
+
*/
|
|
62
|
+
private getSkipReason;
|
|
63
|
+
/**
|
|
64
|
+
* Checks if TURN discovery is skipped.
|
|
65
|
+
*
|
|
66
|
+
* @param {Meeting} meeting
|
|
67
|
+
* @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
|
|
68
|
+
*/
|
|
69
|
+
isSkipped(meeting: any): Promise<boolean>;
|
|
53
70
|
/**
|
|
54
71
|
* Retrieves TURN server information from the backend by doing
|
|
55
72
|
* a roap message exchange:
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rtc Metrics
|
|
3
|
+
*/
|
|
4
|
+
export default class RtcMetrics {
|
|
5
|
+
/**
|
|
6
|
+
* Array of MetricData items to be sent to the metrics service.
|
|
7
|
+
*/
|
|
8
|
+
metricsQueue: any[];
|
|
9
|
+
intervalId: number;
|
|
10
|
+
webex: any;
|
|
11
|
+
meetingId: string;
|
|
12
|
+
correlationId: string;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the interval.
|
|
15
|
+
*
|
|
16
|
+
* @param {object} webex - The main `webex` object.
|
|
17
|
+
* @param {string} meetingId - The meeting id.
|
|
18
|
+
* @param {string} correlationId - The correlation id.
|
|
19
|
+
*/
|
|
20
|
+
constructor(webex: any, meetingId: any, correlationId: any);
|
|
21
|
+
/**
|
|
22
|
+
* Check to see if the metrics queue has any items.
|
|
23
|
+
*
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
private checkMetrics;
|
|
27
|
+
/**
|
|
28
|
+
* Add metrics items to the metrics queue.
|
|
29
|
+
*
|
|
30
|
+
* @param {object} data - An object with a payload array of metrics items.
|
|
31
|
+
*
|
|
32
|
+
* @returns {void}
|
|
33
|
+
*/
|
|
34
|
+
addMetrics(data: any): void;
|
|
35
|
+
/**
|
|
36
|
+
* Clear the metrics interval.
|
|
37
|
+
*
|
|
38
|
+
* @returns {void}
|
|
39
|
+
*/
|
|
40
|
+
closeMetrics(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Send metrics to the metrics service.
|
|
43
|
+
*
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
private sendMetrics;
|
|
47
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import EventsScope from '../common/events/events-scope';
|
|
3
|
+
import { ReceiveSlot } from '../multistream/receiveSlot';
|
|
3
4
|
export declare const EVENTS: {
|
|
4
5
|
MEDIA_QUALITY: string;
|
|
5
6
|
LOCAL_MEDIA_STARTED: string;
|
|
@@ -7,6 +8,7 @@ export declare const EVENTS: {
|
|
|
7
8
|
REMOTE_MEDIA_STARTED: string;
|
|
8
9
|
REMOTE_MEDIA_STOPPED: string;
|
|
9
10
|
};
|
|
11
|
+
type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
|
|
10
12
|
/**
|
|
11
13
|
* Stats Analyzer class that will emit events based on detected quality
|
|
12
14
|
*
|
|
@@ -28,15 +30,17 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
28
30
|
statsInterval: NodeJS.Timeout;
|
|
29
31
|
statsResults: any;
|
|
30
32
|
statsStarted: any;
|
|
33
|
+
receiveSlotCallback: ReceiveSlotCallback;
|
|
31
34
|
/**
|
|
32
35
|
* Creates a new instance of StatsAnalyzer
|
|
33
36
|
* @constructor
|
|
34
37
|
* @public
|
|
35
38
|
* @param {Object} config SDK Configuration Object
|
|
39
|
+
* @param {Function} receiveSlotCallback Callback used to access receive slots.
|
|
36
40
|
* @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
|
|
37
41
|
* @param {Object} statsResults Default properties for stats
|
|
38
42
|
*/
|
|
39
|
-
constructor(config: any, networkQualityMonitor?: object, statsResults?: object);
|
|
43
|
+
constructor(config: any, receiveSlotCallback?: ReceiveSlotCallback, networkQualityMonitor?: object, statsResults?: object);
|
|
40
44
|
/**
|
|
41
45
|
* Resets cumulative stats arrays.
|
|
42
46
|
*
|
|
@@ -193,3 +197,4 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
193
197
|
*/
|
|
194
198
|
compareSentAndReceived(result: any, type: any): void;
|
|
195
199
|
}
|
|
200
|
+
export {};
|
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.280",
|
|
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.280",
|
|
36
|
+
"@webex/test-helper-chai": "3.0.0-beta.280",
|
|
37
|
+
"@webex/test-helper-mocha": "3.0.0-beta.280",
|
|
38
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.280",
|
|
39
|
+
"@webex/test-helper-retry": "3.0.0-beta.280",
|
|
40
|
+
"@webex/test-helper-test-users": "3.0.0-beta.280",
|
|
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.280",
|
|
50
|
+
"@webex/internal-media-core": "2.0.6",
|
|
51
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.280",
|
|
52
|
+
"@webex/internal-plugin-device": "3.0.0-beta.280",
|
|
53
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.280",
|
|
54
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.280",
|
|
55
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.280",
|
|
56
|
+
"@webex/internal-plugin-support": "3.0.0-beta.280",
|
|
57
|
+
"@webex/internal-plugin-user": "3.0.0-beta.280",
|
|
58
|
+
"@webex/media-helpers": "3.0.0-beta.280",
|
|
59
|
+
"@webex/plugin-people": "3.0.0-beta.280",
|
|
60
|
+
"@webex/plugin-rooms": "3.0.0-beta.280",
|
|
61
|
+
"@webex/webex-core": "3.0.0-beta.280",
|
|
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';
|