@webex/plugin-meetings 3.10.0-next.1 → 3.10.0-next.10

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.
Files changed (246) hide show
  1. package/dist/annotation/annotation.types.js.map +1 -1
  2. package/dist/annotation/constants.js.map +1 -1
  3. package/dist/annotation/index.js +19 -22
  4. package/dist/annotation/index.js.map +1 -1
  5. package/dist/breakouts/breakout.js +6 -6
  6. package/dist/breakouts/breakout.js.map +1 -1
  7. package/dist/breakouts/collection.js.map +1 -1
  8. package/dist/breakouts/edit-lock-error.js +9 -11
  9. package/dist/breakouts/edit-lock-error.js.map +1 -1
  10. package/dist/breakouts/events.js.map +1 -1
  11. package/dist/breakouts/index.js +126 -127
  12. package/dist/breakouts/index.js.map +1 -1
  13. package/dist/breakouts/request.js +6 -8
  14. package/dist/breakouts/request.js.map +1 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/browser-detection.js.map +1 -1
  17. package/dist/common/collection.js +1 -2
  18. package/dist/common/collection.js.map +1 -1
  19. package/dist/common/config.js.map +1 -1
  20. package/dist/common/errors/captcha-error.js +9 -11
  21. package/dist/common/errors/captcha-error.js.map +1 -1
  22. package/dist/common/errors/intent-to-join.js +10 -12
  23. package/dist/common/errors/intent-to-join.js.map +1 -1
  24. package/dist/common/errors/join-forbidden-error.js +10 -12
  25. package/dist/common/errors/join-forbidden-error.js.map +1 -1
  26. package/dist/common/errors/join-meeting.js +10 -12
  27. package/dist/common/errors/join-meeting.js.map +1 -1
  28. package/dist/common/errors/join-webinar-error.js +9 -11
  29. package/dist/common/errors/join-webinar-error.js.map +1 -1
  30. package/dist/common/errors/media.js +9 -11
  31. package/dist/common/errors/media.js.map +1 -1
  32. package/dist/common/errors/multistream-not-supported-error.js +9 -11
  33. package/dist/common/errors/multistream-not-supported-error.js.map +1 -1
  34. package/dist/common/errors/no-meeting-info.js +9 -11
  35. package/dist/common/errors/no-meeting-info.js.map +1 -1
  36. package/dist/common/errors/parameter.js +11 -14
  37. package/dist/common/errors/parameter.js.map +1 -1
  38. package/dist/common/errors/password-error.js +9 -11
  39. package/dist/common/errors/password-error.js.map +1 -1
  40. package/dist/common/errors/permission.js +9 -11
  41. package/dist/common/errors/permission.js.map +1 -1
  42. package/dist/common/errors/reclaim-host-role-errors.js +32 -38
  43. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -1
  44. package/dist/common/errors/reconnection-not-started.js +5 -6
  45. package/dist/common/errors/reconnection-not-started.js.map +1 -1
  46. package/dist/common/errors/reconnection.js +9 -11
  47. package/dist/common/errors/reconnection.js.map +1 -1
  48. package/dist/common/errors/stats.js +9 -11
  49. package/dist/common/errors/stats.js.map +1 -1
  50. package/dist/common/errors/webex-errors.js +38 -27
  51. package/dist/common/errors/webex-errors.js.map +1 -1
  52. package/dist/common/errors/webex-meetings-error.js +9 -12
  53. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  54. package/dist/common/events/events-scope.js +9 -10
  55. package/dist/common/events/events-scope.js.map +1 -1
  56. package/dist/common/events/events.js +9 -10
  57. package/dist/common/events/events.js.map +1 -1
  58. package/dist/common/events/trigger-proxy.js.map +1 -1
  59. package/dist/common/events/util.js.map +1 -1
  60. package/dist/common/logs/logger-config.js.map +1 -1
  61. package/dist/common/logs/logger-proxy.js.map +1 -1
  62. package/dist/common/logs/request.js +17 -17
  63. package/dist/common/logs/request.js.map +1 -1
  64. package/dist/common/queue.js +1 -2
  65. package/dist/common/queue.js.map +1 -1
  66. package/dist/config.js +0 -1
  67. package/dist/config.js.map +1 -1
  68. package/dist/constants.js +12 -8
  69. package/dist/constants.js.map +1 -1
  70. package/dist/controls-options-manager/constants.js.map +1 -1
  71. package/dist/controls-options-manager/enums.js.map +1 -1
  72. package/dist/controls-options-manager/index.js +1 -2
  73. package/dist/controls-options-manager/index.js.map +1 -1
  74. package/dist/controls-options-manager/types.js.map +1 -1
  75. package/dist/controls-options-manager/util.js +1 -2
  76. package/dist/controls-options-manager/util.js.map +1 -1
  77. package/dist/hashTree/hashTreeParser.js +165 -0
  78. package/dist/hashTree/hashTreeParser.js.map +1 -0
  79. package/dist/hashTree/types.js +15 -0
  80. package/dist/hashTree/types.js.map +1 -0
  81. package/dist/index.js +8 -2
  82. package/dist/index.js.map +1 -1
  83. package/dist/interceptors/index.js.map +1 -1
  84. package/dist/interceptors/locusRetry.js +6 -8
  85. package/dist/interceptors/locusRetry.js.map +1 -1
  86. package/dist/interceptors/locusRouteToken.js +6 -8
  87. package/dist/interceptors/locusRouteToken.js.map +1 -1
  88. package/dist/interpretation/collection.js.map +1 -1
  89. package/dist/interpretation/index.js +1 -2
  90. package/dist/interpretation/index.js.map +1 -1
  91. package/dist/interpretation/siLanguage.js +1 -1
  92. package/dist/interpretation/siLanguage.js.map +1 -1
  93. package/dist/locus-info/controlsUtils.js.map +1 -1
  94. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  95. package/dist/locus-info/fullState.js.map +1 -1
  96. package/dist/locus-info/hostUtils.js.map +1 -1
  97. package/dist/locus-info/index.js +532 -94
  98. package/dist/locus-info/index.js.map +1 -1
  99. package/dist/locus-info/infoUtils.js.map +1 -1
  100. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  101. package/dist/locus-info/parser.js +3 -4
  102. package/dist/locus-info/parser.js.map +1 -1
  103. package/dist/locus-info/selfUtils.js.map +1 -1
  104. package/dist/locus-info/types.js +7 -0
  105. package/dist/locus-info/types.js.map +1 -0
  106. package/dist/media/MediaConnectionAwaiter.js +1 -2
  107. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  108. package/dist/media/index.js +5 -2
  109. package/dist/media/index.js.map +1 -1
  110. package/dist/media/properties.js +15 -17
  111. package/dist/media/properties.js.map +1 -1
  112. package/dist/media/util.js.map +1 -1
  113. package/dist/meeting/brbState.js +8 -9
  114. package/dist/meeting/brbState.js.map +1 -1
  115. package/dist/meeting/connectionStateHandler.js +10 -13
  116. package/dist/meeting/connectionStateHandler.js.map +1 -1
  117. package/dist/meeting/in-meeting-actions.js.map +1 -1
  118. package/dist/meeting/index.js +1556 -1528
  119. package/dist/meeting/index.js.map +1 -1
  120. package/dist/meeting/locusMediaRequest.js +13 -17
  121. package/dist/meeting/locusMediaRequest.js.map +1 -1
  122. package/dist/meeting/muteState.js +11 -12
  123. package/dist/meeting/muteState.js.map +1 -1
  124. package/dist/meeting/request.js +101 -104
  125. package/dist/meeting/request.js.map +1 -1
  126. package/dist/meeting/request.type.js.map +1 -1
  127. package/dist/meeting/state.js.map +1 -1
  128. package/dist/meeting/type.js.map +1 -1
  129. package/dist/meeting/util.js +24 -23
  130. package/dist/meeting/util.js.map +1 -1
  131. package/dist/meeting/voicea-meeting.js +3 -3
  132. package/dist/meeting/voicea-meeting.js.map +1 -1
  133. package/dist/meeting-info/collection.js +7 -10
  134. package/dist/meeting-info/collection.js.map +1 -1
  135. package/dist/meeting-info/index.js +1 -2
  136. package/dist/meeting-info/index.js.map +1 -1
  137. package/dist/meeting-info/meeting-info-v2.js +135 -146
  138. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  139. package/dist/meeting-info/request.js +1 -2
  140. package/dist/meeting-info/request.js.map +1 -1
  141. package/dist/meeting-info/util.js +36 -37
  142. package/dist/meeting-info/util.js.map +1 -1
  143. package/dist/meeting-info/utilv2.js +30 -31
  144. package/dist/meeting-info/utilv2.js.map +1 -1
  145. package/dist/meetings/collection.js +6 -8
  146. package/dist/meetings/collection.js.map +1 -1
  147. package/dist/meetings/index.js +179 -141
  148. package/dist/meetings/index.js.map +1 -1
  149. package/dist/meetings/meetings.types.js.map +1 -1
  150. package/dist/meetings/request.js +6 -8
  151. package/dist/meetings/request.js.map +1 -1
  152. package/dist/meetings/util.js +25 -23
  153. package/dist/meetings/util.js.map +1 -1
  154. package/dist/member/index.js +1 -2
  155. package/dist/member/index.js.map +1 -1
  156. package/dist/member/types.js +6 -3
  157. package/dist/member/types.js.map +1 -1
  158. package/dist/member/util.js.map +1 -1
  159. package/dist/members/collection.js +1 -2
  160. package/dist/members/collection.js.map +1 -1
  161. package/dist/members/index.js +18 -21
  162. package/dist/members/index.js.map +1 -1
  163. package/dist/members/request.js +8 -11
  164. package/dist/members/request.js.map +1 -1
  165. package/dist/members/types.js.map +1 -1
  166. package/dist/members/util.js.map +1 -1
  167. package/dist/metrics/constants.js +3 -1
  168. package/dist/metrics/constants.js.map +1 -1
  169. package/dist/metrics/index.js +3 -4
  170. package/dist/metrics/index.js.map +1 -1
  171. package/dist/multistream/mediaRequestManager.js +1 -2
  172. package/dist/multistream/mediaRequestManager.js.map +1 -1
  173. package/dist/multistream/receiveSlot.js +34 -45
  174. package/dist/multistream/receiveSlot.js.map +1 -1
  175. package/dist/multistream/receiveSlotManager.js +8 -9
  176. package/dist/multistream/receiveSlotManager.js.map +1 -1
  177. package/dist/multistream/remoteMedia.js +12 -15
  178. package/dist/multistream/remoteMedia.js.map +1 -1
  179. package/dist/multistream/remoteMediaGroup.js +1 -2
  180. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  181. package/dist/multistream/remoteMediaManager.js +122 -123
  182. package/dist/multistream/remoteMediaManager.js.map +1 -1
  183. package/dist/multistream/sendSlotManager.js +29 -30
  184. package/dist/multistream/sendSlotManager.js.map +1 -1
  185. package/dist/personal-meeting-room/index.js +16 -19
  186. package/dist/personal-meeting-room/index.js.map +1 -1
  187. package/dist/personal-meeting-room/request.js +7 -10
  188. package/dist/personal-meeting-room/request.js.map +1 -1
  189. package/dist/personal-meeting-room/util.js.map +1 -1
  190. package/dist/reachability/clusterReachability.js +36 -39
  191. package/dist/reachability/clusterReachability.js.map +1 -1
  192. package/dist/reachability/index.js +203 -205
  193. package/dist/reachability/index.js.map +1 -1
  194. package/dist/reachability/reachability.types.js.map +1 -1
  195. package/dist/reachability/request.js.map +1 -1
  196. package/dist/reachability/util.js.map +1 -1
  197. package/dist/reactions/constants.js.map +1 -1
  198. package/dist/reactions/reactions.js.map +1 -1
  199. package/dist/reactions/reactions.type.js.map +1 -1
  200. package/dist/reconnection-manager/index.js +178 -176
  201. package/dist/reconnection-manager/index.js.map +1 -1
  202. package/dist/recording-controller/enums.js.map +1 -1
  203. package/dist/recording-controller/index.js +1 -2
  204. package/dist/recording-controller/index.js.map +1 -1
  205. package/dist/recording-controller/util.js.map +1 -1
  206. package/dist/roap/index.js +12 -15
  207. package/dist/roap/index.js.map +1 -1
  208. package/dist/roap/request.js +24 -26
  209. package/dist/roap/request.js.map +1 -1
  210. package/dist/roap/turnDiscovery.js +75 -76
  211. package/dist/roap/turnDiscovery.js.map +1 -1
  212. package/dist/roap/types.js.map +1 -1
  213. package/dist/transcription/index.js +4 -5
  214. package/dist/transcription/index.js.map +1 -1
  215. package/dist/types/common/errors/webex-errors.d.ts +12 -0
  216. package/dist/types/constants.d.ts +26 -21
  217. package/dist/types/hashTree/hashTreeParser.d.ts +109 -0
  218. package/dist/types/hashTree/types.d.ts +16 -0
  219. package/dist/types/index.d.ts +2 -1
  220. package/dist/types/locus-info/index.d.ts +91 -42
  221. package/dist/types/locus-info/types.d.ts +45 -0
  222. package/dist/types/meeting/index.d.ts +22 -9
  223. package/dist/types/meetings/index.d.ts +9 -2
  224. package/dist/types/metrics/constants.d.ts +2 -0
  225. package/dist/webinar/collection.js +1 -2
  226. package/dist/webinar/collection.js.map +1 -1
  227. package/dist/webinar/index.js +148 -158
  228. package/dist/webinar/index.js.map +1 -1
  229. package/package.json +16 -16
  230. package/src/common/errors/webex-errors.ts +19 -0
  231. package/src/constants.ts +14 -2
  232. package/src/hashTree/hashTreeParser.ts +146 -0
  233. package/src/hashTree/types.ts +20 -0
  234. package/src/index.ts +2 -0
  235. package/src/locus-info/index.ts +534 -85
  236. package/src/locus-info/types.ts +46 -0
  237. package/src/media/index.ts +6 -0
  238. package/src/meeting/index.ts +61 -27
  239. package/src/meeting/util.ts +1 -0
  240. package/src/meetings/index.ts +104 -51
  241. package/src/metrics/constants.ts +2 -0
  242. package/test/unit/spec/locus-info/index.js +576 -1
  243. package/test/unit/spec/media/index.ts +140 -9
  244. package/test/unit/spec/meeting/index.js +178 -94
  245. package/test/unit/spec/meeting/utils.js +77 -0
  246. package/test/unit/spec/meetings/index.js +71 -28
@@ -1,45 +1,15 @@
1
1
  import EventsScope from '../common/events/events-scope';
2
- export type LocusDTO = {
3
- controls?: any;
4
- fullState?: {
5
- active: boolean;
6
- count: number;
7
- lastActive: string;
8
- locked: boolean;
9
- sessionId: string;
10
- seessionIds: string[];
11
- startTime: number;
12
- state: string;
13
- type: string;
2
+ import { LOCUSEVENT } from '../constants';
3
+ import HashTreeParser, { DataSet, HashTreeMessage, HashTreeObject } from '../hashTree/hashTreeParser';
4
+ import { LocusDTO } from './types';
5
+ export type LocusLLMEvent = {
6
+ data: {
7
+ eventType: typeof LOCUSEVENT.HASH_TREE_DATA_UPDATED;
8
+ stateElementsMessage: HashTreeMessage;
14
9
  };
15
- host?: {
16
- id: string;
17
- incomingCallProtocols: any[];
18
- isExternal: boolean;
19
- name: string;
20
- orgId: string;
21
- };
22
- info?: any;
23
- links?: any;
24
- mediaShares?: any[];
25
- meetings?: any[];
26
- participants: any[];
27
- replaces?: any[];
28
- self?: any;
29
- sequence?: {
30
- dirtyParticipants: number;
31
- entries: number[];
32
- rangeEnd: number;
33
- rangeStart: number;
34
- sequenceHash: number;
35
- sessionToken: string;
36
- since: string;
37
- totalParticipants: number;
38
- };
39
- syncUrl?: string;
40
- url?: string;
41
10
  };
42
11
  export type LocusApiResponseBody = {
12
+ dataSets?: DataSet[];
43
13
  locus: LocusDTO;
44
14
  };
45
15
  /**
@@ -80,6 +50,9 @@ export default class LocusInfo extends EventsScope {
80
50
  resources: any;
81
51
  mainSessionLocusCache: any;
82
52
  self: any;
53
+ hashTreeParser?: HashTreeParser;
54
+ hashTreeObjectId2ParticipantId: Map<number, string>;
55
+ classicVsHashTreeMismatchMetricCounter: number;
83
56
  /**
84
57
  * Constructor
85
58
  * @param {function} updateMeeting callback to update the meeting object from an object
@@ -90,6 +63,7 @@ export default class LocusInfo extends EventsScope {
90
63
  constructor(updateMeeting: any, webex: any, meetingId: any);
91
64
  /**
92
65
  * Does a Locus sync. It tries to get the latest delta DTO or if it can't, it falls back to getting the full Locus DTO.
66
+ * WARNING: This function must not be used for hash tree based Locus meetings.
93
67
  *
94
68
  * @param {Meeting} meeting
95
69
  * @param {boolean} isLocusUrlChanged
@@ -121,11 +95,28 @@ export default class LocusInfo extends EventsScope {
121
95
  */
122
96
  init(locus?: any): void;
123
97
  /**
124
- * @param {Object} locus
98
+ * Creates the HashTreeParser instance.
99
+ * @param {Object} initial locus data
100
+ * @returns {void}
101
+ */
102
+ private createHashTreeParser;
103
+ /**
104
+ * @param {Object} data - data to initialize locus info with. It may be from a join or GET /loci response or from a Mercury event that triggers a creation of meeting object
125
105
  * @returns {undefined}
126
106
  * @memberof LocusInfo
127
107
  */
128
- initialSetup(locus: object): void;
108
+ initialSetup(data: {
109
+ trigger: 'join-response';
110
+ locus: LocusDTO;
111
+ dataSets?: DataSet[];
112
+ } | {
113
+ trigger: 'locus-message';
114
+ locus?: LocusDTO;
115
+ hashTreeMessage?: HashTreeMessage;
116
+ } | {
117
+ trigger: 'get-loci-response';
118
+ locus?: LocusDTO;
119
+ }): Promise<void>;
129
120
  /**
130
121
  * Handles HTTP response from Locus API call.
131
122
  * @param {Meeting} meeting meeting object
@@ -133,6 +124,39 @@ export default class LocusInfo extends EventsScope {
133
124
  * @returns {void}
134
125
  */
135
126
  handleLocusAPIResponse(meeting: any, responseBody: LocusApiResponseBody): void;
127
+ /**
128
+ *
129
+ * @param {HashTreeObject} object data set object
130
+ * @param {any} locus
131
+ * @returns {void}
132
+ */
133
+ updateLocusFromHashTreeObject(object: HashTreeObject, locus: LocusDTO): LocusDTO;
134
+ /**
135
+ * Sends a metric when we receive something from Locus that uses hash trees while we
136
+ * expect classic deltas or the other way around.
137
+ * @param {Meeting} meeting
138
+ * @param {string} message
139
+ * @returns {void}
140
+ */
141
+ sendClassicVsHashTreeMismatchMetric(meeting: any, message: string): void;
142
+ /**
143
+ * Handles a hash tree message received from Locus.
144
+ *
145
+ * @param {Meeting} meeting - The meeting object
146
+ * @param {eventType} eventType - The event type
147
+ * @param {HashTreeMessage} message incoming hash tree message
148
+ * @returns {void}
149
+ */
150
+ private handleHashTreeMessage;
151
+ /**
152
+ * Callback registered with HashTreeParser to receive locus info updates.
153
+ * Updates our locus info based on the data parsed by the hash tree parser.
154
+ *
155
+ * @param {LocusInfoUpdateType} updateType - The type of update received.
156
+ * @param {Object} [data] - Additional data for the update, if applicable.
157
+ * @returns {void}
158
+ */
159
+ private updateFromHashTree;
136
160
  /**
137
161
  * @param {Meeting} meeting
138
162
  * @param {Object} data
@@ -148,14 +172,39 @@ export default class LocusInfo extends EventsScope {
148
172
  * @memberof LocusInfo
149
173
  */
150
174
  emitScoped(scope?: any, eventName?: string, args?: any): boolean;
175
+ /**
176
+ * Function for handling full locus when it's using hash trees (so not the "classic" one).
177
+ *
178
+ * @param {object} locus locus object
179
+ * @param {string} eventType locus event
180
+ * @param {DataSet[]} dataSets
181
+ * @returns {void}
182
+ */
183
+ private onFullLocusWithHashTrees;
184
+ /**
185
+ * Function for handling full locus when it's the "classic" one (not hash trees)
186
+ *
187
+ * @param {object} locus locus object
188
+ * @param {string} eventType locus event
189
+ * @returns {void}
190
+ */
191
+ private onFullLocusClassic;
151
192
  /**
152
193
  * updates the locus with full locus object
153
194
  * @param {object} locus locus object
154
- * @param {string} eventType particulat locus event
195
+ * @param {string} eventType locus event
196
+ * @param {DataSet[]} dataSets
155
197
  * @returns {object} null
156
198
  * @memberof LocusInfo
157
199
  */
158
- onFullLocus(locus: any, eventType?: string): void;
200
+ onFullLocus(locus: any, eventType?: string, dataSets?: Array<DataSet>): void;
201
+ /**
202
+ * Common part of handling full locus, used by both classic and hash tree based locus handling
203
+ * @param {object} locus locus object
204
+ * @param {string} eventType locus event
205
+ * @returns {void}
206
+ */
207
+ private onFullLocusCommon;
159
208
  /**
160
209
  * @param {String} eventType
161
210
  * @returns {undefined}
@@ -0,0 +1,45 @@
1
+ import { HtMeta } from '../hashTree/types';
2
+ export type LocusDTO = {
3
+ controls?: any;
4
+ fullState?: {
5
+ active: boolean;
6
+ count: number;
7
+ lastActive: string;
8
+ locked: boolean;
9
+ sessionId: string;
10
+ seessionIds: string[];
11
+ startTime: number;
12
+ state: string;
13
+ type: string;
14
+ };
15
+ host?: {
16
+ id: string;
17
+ incomingCallProtocols: any[];
18
+ isExternal: boolean;
19
+ name: string;
20
+ orgId: string;
21
+ };
22
+ htMeta?: HtMeta;
23
+ info?: any;
24
+ jsSdkMeta?: {
25
+ removedParticipantIds: string[];
26
+ };
27
+ links?: any;
28
+ mediaShares?: any[];
29
+ meetings?: any[];
30
+ participants: any[];
31
+ replaces?: any[];
32
+ self?: any;
33
+ sequence?: {
34
+ dirtyParticipants: number;
35
+ entries: number[];
36
+ rangeEnd: number;
37
+ rangeStart: number;
38
+ sequenceHash: number;
39
+ sessionToken: string;
40
+ since: string;
41
+ totalParticipants: number;
42
+ };
43
+ syncUrl?: string;
44
+ url?: string;
45
+ };
@@ -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
- * @param {Object} locus
1039
- * @param {Array} locus.mediaConnections
1040
- * @param {String} locus.locusUrl
1041
- * @param {String} locus.locusId
1042
- * @param {String} locus.mediaId
1043
- * @param {Object} locus.host
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(locus: {
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
- } | any): void;
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: any): any;
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 };
@@ -21,7 +21,7 @@ var WebinarCollection = /*#__PURE__*/function () {
21
21
  (0, _defineProperty2.default)(this, "mainIndex", 'sessionId');
22
22
  this.webinarInfo = {};
23
23
  }
24
- (0, _createClass2.default)(WebinarCollection, [{
24
+ return (0, _createClass2.default)(WebinarCollection, [{
25
25
  key: "set",
26
26
  value: function set(id, info) {
27
27
  this.webinarInfo[id] = info;
@@ -37,7 +37,6 @@ var WebinarCollection = /*#__PURE__*/function () {
37
37
  return this.webinarInfo[id];
38
38
  }
39
39
  }]);
40
- return WebinarCollection;
41
40
  }();
42
41
  var _default = exports.default = WebinarCollection;
43
42
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","WebinarCollection","_classCallCheck2","default","_defineProperty2","MEETINGS","webinarInfo","_createClass2","key","value","set","id","info","get","_default","exports"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\nclass WebinarCollection {\n webinarInfo: any;\n\n namespace = MEETINGS;\n\n mainIndex = 'sessionId';\n\n constructor() {\n this.webinarInfo = {};\n }\n\n set(id, info) {\n this.webinarInfo[id] = info;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.webinarInfo[id];\n }\n}\n\nexport default WebinarCollection;\n"],"mappings":";;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAJA;AACA;AACA;AAFA,IAMMC,iBAAiB;EAOrB,SAAAA,kBAAA,EAAc;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,iBAAA;IAAA,IAAAG,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,qBAJFE,mBAAQ;IAAA,IAAAD,gBAAA,CAAAD,OAAA,qBAER,WAAW;IAGrB,IAAI,CAACG,WAAW,GAAG,CAAC,CAAC;EACvB;EAAC,IAAAC,aAAA,CAAAJ,OAAA,EAAAF,iBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,EAAE,EAAEC,IAAI,EAAE;MACZ,IAAI,CAACN,WAAW,CAACK,EAAE,CAAC,GAAGC,IAAI;IAC7B;;IAEA;AACF;AACA;AACA;EAHE;IAAAJ,GAAA;IAAAC,KAAA,EAIA,SAAAI,IAAIF,EAAU,EAAE;MACd,OAAO,IAAI,CAACL,WAAW,CAACK,EAAE,CAAC;IAC7B;EAAC;EAAA,OAAAV,iBAAA;AAAA;AAAA,IAAAa,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAGYF,iBAAiB"}
1
+ {"version":3,"names":["_constants","require","WebinarCollection","_classCallCheck2","default","_defineProperty2","MEETINGS","webinarInfo","_createClass2","key","value","set","id","info","get","_default","exports"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\nclass WebinarCollection {\n webinarInfo: any;\n\n namespace = MEETINGS;\n\n mainIndex = 'sessionId';\n\n constructor() {\n this.webinarInfo = {};\n }\n\n set(id, info) {\n this.webinarInfo[id] = info;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.webinarInfo[id];\n }\n}\n\nexport default WebinarCollection;\n"],"mappings":";;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAJA;AACA;AACA;AAFA,IAMMC,iBAAiB;EAOrB,SAAAA,kBAAA,EAAc;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,iBAAA;IAAA,IAAAG,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,qBAJFE,mBAAQ;IAAA,IAAAD,gBAAA,CAAAD,OAAA,qBAER,WAAW;IAGrB,IAAI,CAACG,WAAW,GAAG,CAAC,CAAC;EACvB;EAAC,WAAAC,aAAA,CAAAJ,OAAA,EAAAF,iBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAE;MACZ,IAAI,CAACN,WAAW,CAACK,EAAE,CAAC,GAAGC,IAAI;IAC7B;;IAEA;AACF;AACA;AACA;EAHE;IAAAJ,GAAA;IAAAC,KAAA,EAIA,SAAAI,GAAGA,CAACF,EAAU,EAAE;MACd,OAAO,IAAI,CAACL,WAAW,CAACK,EAAE,CAAC;IAC7B;EAAC;AAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAGYF,iBAAiB","ignoreList":[]}