@webex/plugin-meetings 3.10.0-next.9 → 3.10.0-webex-services-ready.1
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/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/constants.js +11 -3
- package/dist/constants.js.map +1 -1
- package/dist/hashTree/constants.js +20 -0
- package/dist/hashTree/constants.js.map +1 -0
- package/dist/hashTree/hashTree.js +515 -0
- package/dist/hashTree/hashTree.js.map +1 -0
- package/dist/hashTree/hashTreeParser.js +1266 -0
- package/dist/hashTree/hashTreeParser.js.map +1 -0
- package/dist/hashTree/types.js +21 -0
- package/dist/hashTree/types.js.map +1 -0
- package/dist/hashTree/utils.js +48 -0
- package/dist/hashTree/utils.js.map +1 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +511 -48
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/types.js +7 -0
- package/dist/locus-info/types.js.map +1 -0
- package/dist/meeting/index.js +41 -15
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +1 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/index.js +112 -70
- package/dist/meetings/index.js.map +1 -1
- package/dist/metrics/constants.js +3 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/reachability/clusterReachability.js +44 -358
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/reachability.types.js +14 -1
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/reachabilityPeerConnection.js +445 -0
- package/dist/reachability/reachabilityPeerConnection.js.map +1 -0
- package/dist/types/constants.d.ts +26 -21
- package/dist/types/hashTree/constants.d.ts +8 -0
- package/dist/types/hashTree/hashTree.d.ts +129 -0
- package/dist/types/hashTree/hashTreeParser.d.ts +260 -0
- package/dist/types/hashTree/types.d.ts +25 -0
- package/dist/types/hashTree/utils.d.ts +9 -0
- package/dist/types/locus-info/index.d.ts +91 -42
- package/dist/types/locus-info/types.d.ts +46 -0
- package/dist/types/meeting/index.d.ts +22 -9
- package/dist/types/meetings/index.d.ts +9 -2
- package/dist/types/metrics/constants.d.ts +2 -0
- package/dist/types/reachability/clusterReachability.d.ts +10 -88
- package/dist/types/reachability/reachability.types.d.ts +12 -1
- package/dist/types/reachability/reachabilityPeerConnection.d.ts +111 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +22 -21
- package/src/constants.ts +13 -1
- package/src/hashTree/constants.ts +9 -0
- package/src/hashTree/hashTree.ts +463 -0
- package/src/hashTree/hashTreeParser.ts +1161 -0
- package/src/hashTree/types.ts +30 -0
- package/src/hashTree/utils.ts +42 -0
- package/src/locus-info/index.ts +556 -85
- package/src/locus-info/types.ts +48 -0
- package/src/meeting/index.ts +58 -26
- package/src/meeting/util.ts +1 -0
- package/src/meetings/index.ts +104 -51
- package/src/metrics/constants.ts +2 -0
- package/src/reachability/clusterReachability.ts +50 -347
- package/src/reachability/reachability.types.ts +15 -1
- package/src/reachability/reachabilityPeerConnection.ts +416 -0
- package/test/unit/spec/hashTree/hashTree.ts +655 -0
- package/test/unit/spec/hashTree/hashTreeParser.ts +1532 -0
- package/test/unit/spec/hashTree/utils.ts +103 -0
- package/test/unit/spec/locus-info/index.js +667 -1
- package/test/unit/spec/meeting/index.js +91 -20
- package/test/unit/spec/meeting/utils.js +77 -0
- package/test/unit/spec/meetings/index.js +71 -26
- package/test/unit/spec/reachability/clusterReachability.ts +281 -138
|
@@ -23,6 +23,8 @@ import { LocusMediaRequest } from './locusMediaRequest';
|
|
|
23
23
|
import { BrbState } from './brbState';
|
|
24
24
|
import { SetStageOptions } from './request.type';
|
|
25
25
|
import { Invitee } from './type';
|
|
26
|
+
import { DataSet } from '../hashTree/hashTreeParser';
|
|
27
|
+
import { LocusDTO } from '../locus-info/types';
|
|
26
28
|
export type CaptionData = {
|
|
27
29
|
id: string;
|
|
28
30
|
isFinal: boolean;
|
|
@@ -1034,25 +1036,30 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1034
1036
|
*/
|
|
1035
1037
|
setSipUri(sipUri: string): void;
|
|
1036
1038
|
/**
|
|
1037
|
-
* Set the locus info the class instance
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
* @param {
|
|
1041
|
-
* @param {
|
|
1042
|
-
* @param {String}
|
|
1043
|
-
* @param {
|
|
1039
|
+
* Set the locus info the class instance. Should be called with the parsed locus
|
|
1040
|
+
* we got in the join response.
|
|
1041
|
+
*
|
|
1042
|
+
* @param {Object} data
|
|
1043
|
+
* @param {Array} data.mediaConnections
|
|
1044
|
+
* @param {String} data.locusUrl
|
|
1045
|
+
* @param {String} data.locusId
|
|
1046
|
+
* @param {String} data.mediaId
|
|
1047
|
+
* @param {Object} data.host
|
|
1044
1048
|
* @todo change name to genertic parser
|
|
1045
1049
|
* @returns {undefined}
|
|
1046
1050
|
* @private
|
|
1047
1051
|
* @memberof Meeting
|
|
1048
1052
|
*/
|
|
1049
|
-
setLocus(
|
|
1053
|
+
setLocus(data: {
|
|
1054
|
+
locus: LocusDTO;
|
|
1050
1055
|
mediaConnections: Array<any>;
|
|
1051
1056
|
locusUrl: string;
|
|
1052
1057
|
locusId: string;
|
|
1053
1058
|
mediaId: string;
|
|
1054
1059
|
host: object;
|
|
1055
|
-
|
|
1060
|
+
selfId: string;
|
|
1061
|
+
dataSets: DataSet[];
|
|
1062
|
+
}): void;
|
|
1056
1063
|
/**
|
|
1057
1064
|
* Upload logs for the current meeting
|
|
1058
1065
|
* @param {object} options file name and function name
|
|
@@ -1269,6 +1276,12 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
1269
1276
|
startTranscription(options?: {
|
|
1270
1277
|
spokenLanguage?: string;
|
|
1271
1278
|
}): Promise<void>;
|
|
1279
|
+
/** Handles Locus LLM events
|
|
1280
|
+
*
|
|
1281
|
+
* @param {LocusLLMEvent} event - The Locus LLM event to process
|
|
1282
|
+
* @returns {void}
|
|
1283
|
+
*/
|
|
1284
|
+
private processLocusLLMEvent;
|
|
1272
1285
|
/**
|
|
1273
1286
|
* Callback called when a relay event is received from meeting LLM Connection
|
|
1274
1287
|
* @param {RelayEvent} e Event object coming from LLM Connection
|
|
@@ -5,10 +5,17 @@ import { WebexPlugin } from '@webex/webex-core';
|
|
|
5
5
|
import { DeviceRegistrationOptions } from '@webex/internal-plugin-device';
|
|
6
6
|
import * as mediaHelpersModule from '@webex/media-helpers';
|
|
7
7
|
import 'webrtc-adapter';
|
|
8
|
-
import { DESTINATION_TYPE } from '../constants';
|
|
8
|
+
import { LOCUSEVENT, DESTINATION_TYPE } from '../constants';
|
|
9
9
|
import { CallStateForMetrics } from '../meeting';
|
|
10
10
|
import Reachability from '../reachability';
|
|
11
11
|
import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
|
|
12
|
+
import { HashTreeMessage } from '../hashTree/hashTreeParser';
|
|
13
|
+
export type LocusEvent = {
|
|
14
|
+
eventType: LOCUSEVENT;
|
|
15
|
+
locusUrl?: string;
|
|
16
|
+
locus?: any;
|
|
17
|
+
stateElementsMessage?: HashTreeMessage;
|
|
18
|
+
};
|
|
12
19
|
/**
|
|
13
20
|
* Meetings Ready Event
|
|
14
21
|
* Emitted when the meetings instance on webex is ready
|
|
@@ -129,7 +136,7 @@ export default class Meetings extends WebexPlugin {
|
|
|
129
136
|
* @private
|
|
130
137
|
* @memberof Meetings
|
|
131
138
|
*/
|
|
132
|
-
getCorrespondingMeetingByLocus(data:
|
|
139
|
+
getCorrespondingMeetingByLocus(data: LocusEvent): any;
|
|
133
140
|
/**
|
|
134
141
|
* handle locus events and takes meeting actions with them as they come in
|
|
135
142
|
* @param {Object} data a locus event
|
|
@@ -84,5 +84,7 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
84
84
|
VERIFY_REGISTRATION_ID_ERROR: string;
|
|
85
85
|
JOIN_FORBIDDEN_ERROR: string;
|
|
86
86
|
MEDIA_ISSUE_DETECTED: string;
|
|
87
|
+
LOCUS_CLASSIC_VS_HASH_TREE_MISMATCH: string;
|
|
88
|
+
LOCUS_HASH_TREE_UNSUPPORTED_OPERATION: string;
|
|
87
89
|
};
|
|
88
90
|
export { BEHAVIORAL_METRICS as default };
|
|
@@ -23,17 +23,11 @@ export declare const Events: {
|
|
|
23
23
|
export type Events = Enum<typeof Events>;
|
|
24
24
|
/**
|
|
25
25
|
* A class that handles reachability checks for a single cluster.
|
|
26
|
-
*
|
|
26
|
+
* Creates and orchestrates a ReachabilityPeerConnection instance.
|
|
27
|
+
* Listens to events and emits them to consumers.
|
|
27
28
|
*/
|
|
28
29
|
export declare class ClusterReachability extends EventsScope {
|
|
29
|
-
private
|
|
30
|
-
private numTcpUrls;
|
|
31
|
-
private numXTlsUrls;
|
|
32
|
-
private result;
|
|
33
|
-
private pc?;
|
|
34
|
-
private defer;
|
|
35
|
-
private startTimestamp;
|
|
36
|
-
private srflxIceCandidates;
|
|
30
|
+
private reachabilityPeerConnection;
|
|
37
31
|
readonly isVideoMesh: boolean;
|
|
38
32
|
readonly name: any;
|
|
39
33
|
readonly reachedSubnets: Set<string>;
|
|
@@ -44,94 +38,22 @@ export declare class ClusterReachability extends EventsScope {
|
|
|
44
38
|
*/
|
|
45
39
|
constructor(name: string, clusterInfo: ClusterNode);
|
|
46
40
|
/**
|
|
47
|
-
*
|
|
48
|
-
* @returns {
|
|
49
|
-
*/
|
|
50
|
-
private getElapsedTime;
|
|
51
|
-
/**
|
|
52
|
-
* Generate peerConnection config settings
|
|
53
|
-
* @param {ClusterNode} cluster
|
|
54
|
-
* @returns {RTCConfiguration} peerConnectionConfig
|
|
55
|
-
*/
|
|
56
|
-
private buildPeerConnectionConfig;
|
|
57
|
-
/**
|
|
58
|
-
* Creates an RTCPeerConnection
|
|
59
|
-
* @param {ClusterNode} clusterInfo information about the media cluster
|
|
60
|
-
* @returns {RTCPeerConnection} peerConnection
|
|
41
|
+
* Sets up event listeners for the ReachabilityPeerConnection instance
|
|
42
|
+
* @returns {void}
|
|
61
43
|
*/
|
|
62
|
-
private
|
|
44
|
+
private setupReachabilityPeerConnectionEventListeners;
|
|
63
45
|
/**
|
|
64
46
|
* @returns {ClusterReachabilityResult} reachability result for this cluster
|
|
65
47
|
*/
|
|
66
48
|
getResult(): ClusterReachabilityResult;
|
|
67
49
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* @returns {void}
|
|
71
|
-
*/
|
|
72
|
-
private closePeerConnection;
|
|
73
|
-
/**
|
|
74
|
-
* Resolves the defer, indicating that reachability checks for this cluster are completed
|
|
75
|
-
*
|
|
76
|
-
* @returns {void}
|
|
50
|
+
* Starts the process of doing UDP, TCP, and XTLS reachability checks on the media cluster.
|
|
51
|
+
* @returns {Promise<ClusterReachabilityResult>}
|
|
77
52
|
*/
|
|
78
|
-
|
|
53
|
+
start(): Promise<ClusterReachabilityResult>;
|
|
79
54
|
/**
|
|
80
|
-
* Aborts the cluster reachability checks
|
|
81
|
-
*
|
|
55
|
+
* Aborts the cluster reachability checks
|
|
82
56
|
* @returns {void}
|
|
83
57
|
*/
|
|
84
58
|
abort(): void;
|
|
85
|
-
/**
|
|
86
|
-
* Adds public IP (client media IPs)
|
|
87
|
-
* @param {string} protocol
|
|
88
|
-
* @param {string} publicIP
|
|
89
|
-
* @returns {void}
|
|
90
|
-
*/
|
|
91
|
-
private addPublicIP;
|
|
92
|
-
/**
|
|
93
|
-
* Registers a listener for the iceGatheringStateChange event
|
|
94
|
-
*
|
|
95
|
-
* @returns {void}
|
|
96
|
-
*/
|
|
97
|
-
private registerIceGatheringStateChangeListener;
|
|
98
|
-
/**
|
|
99
|
-
* Saves the latency in the result for the given protocol and marks it as reachable,
|
|
100
|
-
* emits the "resultReady" event if this is the first result for that protocol,
|
|
101
|
-
* emits the "clientMediaIpsUpdated" event if we already had a result and only found
|
|
102
|
-
* a new client IP
|
|
103
|
-
*
|
|
104
|
-
* @param {string} protocol
|
|
105
|
-
* @param {number} latency
|
|
106
|
-
* @param {string|null} [publicIp]
|
|
107
|
-
* @param {string|null} [serverIp]
|
|
108
|
-
* @returns {void}
|
|
109
|
-
*/
|
|
110
|
-
private saveResult;
|
|
111
|
-
/**
|
|
112
|
-
* Determines NAT Type.
|
|
113
|
-
*
|
|
114
|
-
* @param {RTCIceCandidate} candidate
|
|
115
|
-
* @returns {void}
|
|
116
|
-
*/
|
|
117
|
-
private determineNatType;
|
|
118
|
-
/**
|
|
119
|
-
* Registers a listener for the icecandidate event
|
|
120
|
-
*
|
|
121
|
-
* @returns {void}
|
|
122
|
-
*/
|
|
123
|
-
private registerIceCandidateListener;
|
|
124
|
-
/**
|
|
125
|
-
* Starts the process of doing UDP and TCP reachability checks on the media cluster.
|
|
126
|
-
* XTLS reachability checking is not supported.
|
|
127
|
-
*
|
|
128
|
-
* @returns {Promise}
|
|
129
|
-
*/
|
|
130
|
-
start(): Promise<ClusterReachabilityResult>;
|
|
131
|
-
/**
|
|
132
|
-
* Starts the process of gathering ICE candidates
|
|
133
|
-
*
|
|
134
|
-
* @returns {Promise} promise that's resolved once reachability checks for this cluster are completed or timeout is reached
|
|
135
|
-
*/
|
|
136
|
-
private gatherIceCandidates;
|
|
137
59
|
}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { IP_VERSION } from '../constants';
|
|
1
|
+
import { IP_VERSION, Enum } from '../constants';
|
|
2
|
+
export type Protocol = 'udp' | 'tcp' | 'xtls';
|
|
3
|
+
/**
|
|
4
|
+
* Events emitted by ReachabilityPeerConnection
|
|
5
|
+
*/
|
|
6
|
+
export declare const ReachabilityPeerConnectionEvents: {
|
|
7
|
+
readonly resultReady: "resultReady";
|
|
8
|
+
readonly clientMediaIpsUpdated: "clientMediaIpsUpdated";
|
|
9
|
+
readonly natTypeUpdated: "natTypeUpdated";
|
|
10
|
+
readonly reachedSubnets: "reachedSubnets";
|
|
11
|
+
};
|
|
12
|
+
export type ReachabilityPeerConnectionEvents = Enum<typeof ReachabilityPeerConnectionEvents>;
|
|
2
13
|
export type TransportResult = {
|
|
3
14
|
result: 'reachable' | 'unreachable' | 'untested';
|
|
4
15
|
latencyInMilliseconds?: number;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ClusterNode } from './request';
|
|
2
|
+
import EventsScope from '../common/events/events-scope';
|
|
3
|
+
import { ClusterReachabilityResult } from './reachability.types';
|
|
4
|
+
/**
|
|
5
|
+
* A class to handle RTCPeerConnection lifecycle and ICE candidate gathering for reachability checks.
|
|
6
|
+
* It will do all the work like PeerConnection lifecycle, candidate processing, result management, and event emission.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ReachabilityPeerConnection extends EventsScope {
|
|
9
|
+
numUdpUrls: number;
|
|
10
|
+
numTcpUrls: number;
|
|
11
|
+
numXTlsUrls: number;
|
|
12
|
+
private pc;
|
|
13
|
+
private defer;
|
|
14
|
+
private startTimestamp;
|
|
15
|
+
private srflxIceCandidates;
|
|
16
|
+
private clusterName;
|
|
17
|
+
private result;
|
|
18
|
+
private emittedSubnets;
|
|
19
|
+
/**
|
|
20
|
+
* Constructor for ReachabilityPeerConnection
|
|
21
|
+
* @param {string} clusterName name of the cluster
|
|
22
|
+
* @param {ClusterNode} clusterInfo information about the media cluster
|
|
23
|
+
*/
|
|
24
|
+
constructor(clusterName: string, clusterInfo: ClusterNode);
|
|
25
|
+
/**
|
|
26
|
+
* Gets total elapsed time, can be called only after start() is called
|
|
27
|
+
* @returns {number} Milliseconds
|
|
28
|
+
*/
|
|
29
|
+
private getElapsedTime;
|
|
30
|
+
/**
|
|
31
|
+
* Generate peerConnection config settings
|
|
32
|
+
* @param {ClusterNode} cluster
|
|
33
|
+
* @returns {RTCConfiguration} peerConnectionConfig
|
|
34
|
+
*/
|
|
35
|
+
private static buildPeerConnectionConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Creates an RTCPeerConnection
|
|
38
|
+
* @param {ClusterNode} clusterInfo information about the media cluster
|
|
39
|
+
* @returns {RTCPeerConnection|null} peerConnection
|
|
40
|
+
*/
|
|
41
|
+
private createPeerConnection;
|
|
42
|
+
/**
|
|
43
|
+
* @returns {ClusterReachabilityResult} reachability result for this instance
|
|
44
|
+
*/
|
|
45
|
+
getResult(): ClusterReachabilityResult;
|
|
46
|
+
/**
|
|
47
|
+
* Closes the peerConnection
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
private closePeerConnection;
|
|
51
|
+
/**
|
|
52
|
+
* Resolves the defer, indicating that reachability checks for this cluster are completed
|
|
53
|
+
*
|
|
54
|
+
* @returns {void}
|
|
55
|
+
*/
|
|
56
|
+
private finishReachabilityCheck;
|
|
57
|
+
/**
|
|
58
|
+
* Aborts the cluster reachability checks by closing the peer connection
|
|
59
|
+
*
|
|
60
|
+
* @returns {void}
|
|
61
|
+
*/
|
|
62
|
+
abort(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Adds public IP (client media IPs)
|
|
65
|
+
* @param {string} protocol
|
|
66
|
+
* @param {string} publicIp
|
|
67
|
+
* @returns {void}
|
|
68
|
+
*/
|
|
69
|
+
private addPublicIp;
|
|
70
|
+
/**
|
|
71
|
+
* Registers a listener for the iceGatheringStateChange event
|
|
72
|
+
*
|
|
73
|
+
* @returns {void}
|
|
74
|
+
*/
|
|
75
|
+
private registerIceGatheringStateChangeListener;
|
|
76
|
+
/**
|
|
77
|
+
* Saves the latency in the result for the given protocol and marks it as reachable,
|
|
78
|
+
* emits the "resultReady" event if this is the first result for that protocol,
|
|
79
|
+
* emits the "clientMediaIpsUpdated" event if we already had a result and only found
|
|
80
|
+
* a new client IP
|
|
81
|
+
*
|
|
82
|
+
* @param {string} protocol
|
|
83
|
+
* @param {number} latency
|
|
84
|
+
* @param {string|null} [publicIp]
|
|
85
|
+
* @param {string|null} [serverIp]
|
|
86
|
+
* @returns {void}
|
|
87
|
+
*/
|
|
88
|
+
private saveResult;
|
|
89
|
+
/**
|
|
90
|
+
* Determines NAT type by analyzing server reflexive candidate patterns
|
|
91
|
+
* @param {RTCIceCandidate} candidate server reflexive candidate
|
|
92
|
+
* @returns {void}
|
|
93
|
+
*/
|
|
94
|
+
private determineNatTypeForSrflxCandidate;
|
|
95
|
+
/**
|
|
96
|
+
* Registers a listener for the icecandidate event
|
|
97
|
+
*
|
|
98
|
+
* @returns {void}
|
|
99
|
+
*/
|
|
100
|
+
private registerIceCandidateListener;
|
|
101
|
+
/**
|
|
102
|
+
* Starts the process of doing UDP, TCP, and XTLS reachability checks.
|
|
103
|
+
* @returns {Promise<ClusterReachabilityResult>}
|
|
104
|
+
*/
|
|
105
|
+
start(): Promise<ClusterReachabilityResult>;
|
|
106
|
+
/**
|
|
107
|
+
* Starts the process of gathering ICE candidates
|
|
108
|
+
* @returns {Promise} promise that's resolved once reachability checks are completed or timeout is reached
|
|
109
|
+
*/
|
|
110
|
+
private gatherIceCandidates;
|
|
111
|
+
}
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-rooms": "3.10.0-
|
|
47
|
-
"@webex/test-helper-chai": "3.
|
|
48
|
-
"@webex/test-helper-mocha": "3.
|
|
49
|
-
"@webex/test-helper-mock-webex": "3.
|
|
50
|
-
"@webex/test-helper-retry": "3.
|
|
51
|
-
"@webex/test-helper-test-users": "3.
|
|
46
|
+
"@webex/plugin-rooms": "3.10.0-webex-services-ready.1",
|
|
47
|
+
"@webex/test-helper-chai": "3.10.0-webex-services-ready.0",
|
|
48
|
+
"@webex/test-helper-mocha": "3.10.0-webex-services-ready.0",
|
|
49
|
+
"@webex/test-helper-mock-webex": "3.10.0-webex-services-ready.0",
|
|
50
|
+
"@webex/test-helper-retry": "3.10.0-webex-services-ready.0",
|
|
51
|
+
"@webex/test-helper-test-users": "3.10.0-webex-services-ready.0",
|
|
52
52
|
"chai": "^4.3.4",
|
|
53
53
|
"chai-as-promised": "^7.1.1",
|
|
54
54
|
"eslint": "^8.24.0",
|
|
@@ -60,23 +60,23 @@
|
|
|
60
60
|
"typescript": "^4.7.4"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@webex/common": "3.
|
|
63
|
+
"@webex/common": "3.10.0-webex-services-ready.0",
|
|
64
64
|
"@webex/event-dictionary-ts": "^1.0.1930",
|
|
65
65
|
"@webex/internal-media-core": "2.20.3",
|
|
66
|
-
"@webex/internal-plugin-conversation": "3.10.0-
|
|
67
|
-
"@webex/internal-plugin-device": "3.10.0-
|
|
68
|
-
"@webex/internal-plugin-llm": "3.10.0-
|
|
69
|
-
"@webex/internal-plugin-mercury": "3.10.0-
|
|
70
|
-
"@webex/internal-plugin-metrics": "3.10.0-
|
|
71
|
-
"@webex/internal-plugin-support": "3.10.0-
|
|
72
|
-
"@webex/internal-plugin-user": "3.10.0-
|
|
73
|
-
"@webex/internal-plugin-voicea": "3.10.0-
|
|
74
|
-
"@webex/media-helpers": "3.10.0-
|
|
75
|
-
"@webex/plugin-people": "3.10.0-
|
|
76
|
-
"@webex/plugin-rooms": "3.10.0-
|
|
66
|
+
"@webex/internal-plugin-conversation": "3.10.0-webex-services-ready.1",
|
|
67
|
+
"@webex/internal-plugin-device": "3.10.0-webex-services-ready.1",
|
|
68
|
+
"@webex/internal-plugin-llm": "3.10.0-webex-services-ready.1",
|
|
69
|
+
"@webex/internal-plugin-mercury": "3.10.0-webex-services-ready.1",
|
|
70
|
+
"@webex/internal-plugin-metrics": "3.10.0-webex-services-ready.1",
|
|
71
|
+
"@webex/internal-plugin-support": "3.10.0-webex-services-ready.1",
|
|
72
|
+
"@webex/internal-plugin-user": "3.10.0-webex-services-ready.1",
|
|
73
|
+
"@webex/internal-plugin-voicea": "3.10.0-webex-services-ready.1",
|
|
74
|
+
"@webex/media-helpers": "3.10.0-webex-services-ready.0",
|
|
75
|
+
"@webex/plugin-people": "3.10.0-webex-services-ready.1",
|
|
76
|
+
"@webex/plugin-rooms": "3.10.0-webex-services-ready.1",
|
|
77
77
|
"@webex/ts-sdp": "^1.8.1",
|
|
78
78
|
"@webex/web-capabilities": "^1.7.1",
|
|
79
|
-
"@webex/webex-core": "3.10.0-
|
|
79
|
+
"@webex/webex-core": "3.10.0-webex-services-ready.1",
|
|
80
80
|
"ampersand-collection": "^2.0.2",
|
|
81
81
|
"bowser": "^2.11.0",
|
|
82
82
|
"btoa": "^1.2.1",
|
|
@@ -87,10 +87,11 @@
|
|
|
87
87
|
"jwt-decode": "3.1.2",
|
|
88
88
|
"lodash": "^4.17.21",
|
|
89
89
|
"uuid": "^3.3.2",
|
|
90
|
-
"webrtc-adapter": "^8.1.2"
|
|
90
|
+
"webrtc-adapter": "^8.1.2",
|
|
91
|
+
"xxh3-ts": "^2.0.1"
|
|
91
92
|
},
|
|
92
93
|
"//": [
|
|
93
94
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
94
95
|
],
|
|
95
|
-
"version": "3.10.0-
|
|
96
|
+
"version": "3.10.0-webex-services-ready.1"
|
|
96
97
|
}
|
package/src/constants.ts
CHANGED
|
@@ -793,7 +793,19 @@ export const LOCUSEVENT = {
|
|
|
793
793
|
RECORDING_STOPPED: 'locus.recording_stopped',
|
|
794
794
|
|
|
795
795
|
SELF_CHANGED: 'locus.self_changed',
|
|
796
|
-
|
|
796
|
+
|
|
797
|
+
HASH_TREE_DATA_UPDATED: 'locus.state_message',
|
|
798
|
+
|
|
799
|
+
// events generated internally by SDK
|
|
800
|
+
SDK_LOCUS_FROM_SYNC_MEETINGS: 'jsSdk.locus_from_sync_meetings', // generated for each meeting from response to GET /loci Locus API call
|
|
801
|
+
SDK_NO_EVENT: 'jsSdk.no_event', // used in cases where eventType is irrelevant
|
|
802
|
+
} as const;
|
|
803
|
+
|
|
804
|
+
export type LOCUSEVENT = Enum<typeof LOCUSEVENT>;
|
|
805
|
+
|
|
806
|
+
// HASH_TREE_DATA_UPDATED event can come over Mercury (so it's listed above with other Mercury events),
|
|
807
|
+
// but also over LLM as an event like this:
|
|
808
|
+
export const LOCUS_LLM_EVENT = `event:${LOCUSEVENT.HASH_TREE_DATA_UPDATED}`;
|
|
797
809
|
|
|
798
810
|
export const MEDIA_TRACK_CONSTRAINT = {
|
|
799
811
|
CURSOR: {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const EMPTY_HASH = '99aa06d3014798d86001c324468d497f';
|
|
2
|
+
|
|
3
|
+
export const DataSetNames = {
|
|
4
|
+
MAIN: 'main', // sent to web client, contains also panelists, over LLM
|
|
5
|
+
ATTENDEES: 'attendees', // NOT SENT to web client, all the attendees in the locus
|
|
6
|
+
ATD_ACTIVE: 'atd-active', // only sent to panelists, over LLM; the attendees that have their hands raised or are allowed to unmute themselves
|
|
7
|
+
ATD_UNMUTED: 'atd-unmuted', // sent to web client, over LLM, not sent to panelists; the attendees that are unmuted
|
|
8
|
+
SELF: 'self', // sent to web client, over Mercury
|
|
9
|
+
};
|