@webex/plugin-meetings 3.8.0-next.7 → 3.8.0-next.71

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 (167) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/common/errors/webex-errors.js +12 -2
  4. package/dist/common/errors/webex-errors.js.map +1 -1
  5. package/dist/config.js +4 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.js +17 -121
  8. package/dist/constants.js.map +1 -1
  9. package/dist/controls-options-manager/enums.js +2 -0
  10. package/dist/controls-options-manager/enums.js.map +1 -1
  11. package/dist/controls-options-manager/types.js.map +1 -1
  12. package/dist/controls-options-manager/util.js +52 -0
  13. package/dist/controls-options-manager/util.js.map +1 -1
  14. package/dist/interpretation/index.js +1 -1
  15. package/dist/interpretation/siLanguage.js +1 -1
  16. package/dist/locus-info/controlsUtils.js +28 -10
  17. package/dist/locus-info/controlsUtils.js.map +1 -1
  18. package/dist/locus-info/index.js +32 -12
  19. package/dist/locus-info/index.js.map +1 -1
  20. package/dist/locus-info/selfUtils.js +432 -418
  21. package/dist/locus-info/selfUtils.js.map +1 -1
  22. package/dist/media/index.js +14 -16
  23. package/dist/media/index.js.map +1 -1
  24. package/dist/media/properties.js +94 -6
  25. package/dist/media/properties.js.map +1 -1
  26. package/dist/meeting/brbState.js +6 -0
  27. package/dist/meeting/brbState.js.map +1 -1
  28. package/dist/meeting/in-meeting-actions.js +17 -1
  29. package/dist/meeting/in-meeting-actions.js.map +1 -1
  30. package/dist/meeting/index.js +541 -302
  31. package/dist/meeting/index.js.map +1 -1
  32. package/dist/meeting/locusMediaRequest.js +0 -17
  33. package/dist/meeting/locusMediaRequest.js.map +1 -1
  34. package/dist/meeting/muteState.js +0 -2
  35. package/dist/meeting/muteState.js.map +1 -1
  36. package/dist/meeting/request.js +30 -0
  37. package/dist/meeting/request.js.map +1 -1
  38. package/dist/meeting/request.type.js.map +1 -1
  39. package/dist/meeting/util.js +13 -2
  40. package/dist/meeting/util.js.map +1 -1
  41. package/dist/meeting-info/meeting-info-v2.js +359 -60
  42. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  43. package/dist/meetings/index.js +114 -1
  44. package/dist/meetings/index.js.map +1 -1
  45. package/dist/meetings/util.js +14 -0
  46. package/dist/meetings/util.js.map +1 -1
  47. package/dist/member/index.js +10 -0
  48. package/dist/member/index.js.map +1 -1
  49. package/dist/member/util.js +330 -353
  50. package/dist/member/util.js.map +1 -1
  51. package/dist/members/index.js +23 -0
  52. package/dist/members/index.js.map +1 -1
  53. package/dist/members/request.js +21 -0
  54. package/dist/members/request.js.map +1 -1
  55. package/dist/members/util.js +15 -0
  56. package/dist/members/util.js.map +1 -1
  57. package/dist/metrics/constants.js +9 -0
  58. package/dist/metrics/constants.js.map +1 -1
  59. package/dist/reachability/clusterReachability.js +63 -27
  60. package/dist/reachability/clusterReachability.js.map +1 -1
  61. package/dist/reachability/index.js +112 -47
  62. package/dist/reachability/index.js.map +1 -1
  63. package/dist/reachability/reachability.types.js +14 -0
  64. package/dist/reachability/reachability.types.js.map +1 -1
  65. package/dist/reachability/request.js +19 -3
  66. package/dist/reachability/request.js.map +1 -1
  67. package/dist/reconnection-manager/index.js +2 -2
  68. package/dist/reconnection-manager/index.js.map +1 -1
  69. package/dist/recording-controller/util.js +5 -5
  70. package/dist/recording-controller/util.js.map +1 -1
  71. package/dist/roap/index.js.map +1 -1
  72. package/dist/roap/turnDiscovery.js +45 -27
  73. package/dist/roap/turnDiscovery.js.map +1 -1
  74. package/dist/roap/types.js +17 -0
  75. package/dist/roap/types.js.map +1 -0
  76. package/dist/types/common/errors/webex-errors.d.ts +7 -1
  77. package/dist/types/config.d.ts +2 -0
  78. package/dist/types/constants.d.ts +12 -85
  79. package/dist/types/controls-options-manager/enums.d.ts +3 -1
  80. package/dist/types/controls-options-manager/types.d.ts +7 -1
  81. package/dist/types/locus-info/index.d.ts +3 -3
  82. package/dist/types/locus-info/selfUtils.d.ts +216 -1
  83. package/dist/types/media/properties.d.ts +15 -0
  84. package/dist/types/meeting/in-meeting-actions.d.ts +16 -0
  85. package/dist/types/meeting/index.d.ts +32 -1
  86. package/dist/types/meeting/muteState.d.ts +0 -1
  87. package/dist/types/meeting/request.d.ts +12 -1
  88. package/dist/types/meeting/request.type.d.ts +6 -0
  89. package/dist/types/meeting/util.d.ts +3 -1
  90. package/dist/types/meeting-info/meeting-info-v2.d.ts +80 -0
  91. package/dist/types/meetings/index.d.ts +48 -0
  92. package/dist/types/member/index.d.ts +1 -0
  93. package/dist/types/member/util.d.ts +159 -1
  94. package/dist/types/members/index.d.ts +8 -0
  95. package/dist/types/members/request.d.ts +19 -0
  96. package/dist/types/members/util.d.ts +13 -0
  97. package/dist/types/metrics/constants.d.ts +9 -0
  98. package/dist/types/reachability/clusterReachability.d.ts +15 -7
  99. package/dist/types/reachability/index.d.ts +10 -1
  100. package/dist/types/reachability/reachability.types.d.ts +5 -0
  101. package/dist/types/roap/index.d.ts +3 -2
  102. package/dist/types/roap/turnDiscovery.d.ts +5 -17
  103. package/dist/types/roap/types.d.ts +16 -0
  104. package/dist/webinar/index.js +1 -1
  105. package/package.json +24 -23
  106. package/src/common/errors/webex-errors.ts +8 -1
  107. package/src/config.ts +2 -0
  108. package/src/constants.ts +19 -90
  109. package/src/controls-options-manager/enums.ts +2 -0
  110. package/src/controls-options-manager/types.ts +11 -1
  111. package/src/controls-options-manager/util.ts +62 -0
  112. package/src/locus-info/controlsUtils.ts +44 -14
  113. package/src/locus-info/index.ts +38 -12
  114. package/src/locus-info/selfUtils.ts +496 -442
  115. package/src/media/index.ts +20 -21
  116. package/src/media/properties.ts +96 -0
  117. package/src/meeting/brbState.ts +7 -0
  118. package/src/meeting/in-meeting-actions.ts +32 -0
  119. package/src/meeting/index.ts +346 -93
  120. package/src/meeting/locusMediaRequest.ts +0 -18
  121. package/src/meeting/muteState.ts +0 -2
  122. package/src/meeting/request.ts +36 -1
  123. package/src/meeting/request.type.ts +7 -0
  124. package/src/meeting/util.ts +11 -2
  125. package/src/meeting-info/meeting-info-v2.ts +247 -6
  126. package/src/meetings/index.ts +128 -1
  127. package/src/meetings/util.ts +18 -0
  128. package/src/member/index.ts +13 -2
  129. package/src/member/util.ts +351 -348
  130. package/src/members/index.ts +25 -0
  131. package/src/members/request.ts +26 -0
  132. package/src/members/util.ts +16 -0
  133. package/src/metrics/constants.ts +9 -0
  134. package/src/reachability/clusterReachability.ts +73 -26
  135. package/src/reachability/index.ts +70 -1
  136. package/src/reachability/reachability.types.ts +6 -0
  137. package/src/reachability/request.ts +7 -0
  138. package/src/reconnection-manager/index.ts +2 -2
  139. package/src/recording-controller/util.ts +17 -13
  140. package/src/roap/index.ts +3 -7
  141. package/src/roap/turnDiscovery.ts +34 -39
  142. package/src/roap/types.ts +23 -0
  143. package/test/unit/spec/controls-options-manager/util.js +120 -0
  144. package/test/unit/spec/locus-info/controlsUtils.js +103 -9
  145. package/test/unit/spec/locus-info/index.js +141 -73
  146. package/test/unit/spec/locus-info/selfUtils.js +98 -24
  147. package/test/unit/spec/media/index.ts +98 -16
  148. package/test/unit/spec/media/properties.ts +130 -0
  149. package/test/unit/spec/meeting/brbState.ts +19 -0
  150. package/test/unit/spec/meeting/in-meeting-actions.ts +19 -4
  151. package/test/unit/spec/meeting/index.js +524 -35
  152. package/test/unit/spec/meeting/locusMediaRequest.ts +0 -30
  153. package/test/unit/spec/meeting/muteState.js +0 -2
  154. package/test/unit/spec/meeting/request.js +32 -1
  155. package/test/unit/spec/meeting/utils.js +119 -18
  156. package/test/unit/spec/meeting-info/meetinginfov2.js +443 -114
  157. package/test/unit/spec/meetings/index.js +133 -2
  158. package/test/unit/spec/member/index.js +7 -0
  159. package/test/unit/spec/member/util.js +24 -0
  160. package/test/unit/spec/members/index.js +103 -26
  161. package/test/unit/spec/members/request.js +45 -22
  162. package/test/unit/spec/members/utils.js +33 -0
  163. package/test/unit/spec/reachability/clusterReachability.ts +88 -56
  164. package/test/unit/spec/reachability/index.ts +101 -0
  165. package/test/unit/spec/reachability/request.js +47 -2
  166. package/test/unit/spec/reconnection-manager/index.js +4 -4
  167. package/test/unit/spec/roap/turnDiscovery.ts +110 -28
@@ -17,7 +17,9 @@ import {
17
17
  MEETING_REMOVED_REASON,
18
18
  CALL_REMOVED_REASON,
19
19
  RECORDING_STATE,
20
+ BREAKOUTS,
20
21
  } from '../constants';
22
+
21
23
  import InfoUtils from './infoUtils';
22
24
  import FullState from './fullState';
23
25
  import SelfUtils from './selfUtils';
@@ -67,6 +69,7 @@ export default class LocusInfo extends EventsScope {
67
69
  services: any;
68
70
  resources: any;
69
71
  mainSessionLocusCache: any;
72
+ self: any;
70
73
  /**
71
74
  * Constructor
72
75
  * @param {function} updateMeeting callback to update the meeting object from an object
@@ -261,7 +264,7 @@ export default class LocusInfo extends EventsScope {
261
264
  this.updateMeetingInfo(locus.info);
262
265
  this.updateEmbeddedApps(locus.embeddedApps);
263
266
  // self and participants generate sipUrl for 1:1 meeting
264
- this.updateSelf(locus.self, locus.participants);
267
+ this.updateSelf(locus.self);
265
268
  this.updateHostInfo(locus.host);
266
269
  this.updateMediaShares(locus.mediaShares);
267
270
  this.updateServices(locus.links?.services);
@@ -419,6 +422,7 @@ export default class LocusInfo extends EventsScope {
419
422
  */
420
423
  onDeltaLocus(locus: any) {
421
424
  const isReplaceMembers = ControlsUtils.isNeedReplaceMembers(this.controls, locus.controls);
425
+ this.mergeParticipants(this.participants, locus.participants);
422
426
  this.updateLocusInfo(locus);
423
427
  this.updateParticipants(locus.participants, isReplaceMembers);
424
428
  this.isMeetingActive();
@@ -446,7 +450,7 @@ export default class LocusInfo extends EventsScope {
446
450
  this.updateMediaShares(locus.mediaShares);
447
451
  this.updateParticipantsUrl(locus.participantsUrl);
448
452
  this.updateReplace(locus.replace);
449
- this.updateSelf(locus.self, locus.participants);
453
+ this.updateSelf(locus.self);
450
454
  this.updateLocusUrl(locus.url);
451
455
  this.updateAclUrl(locus.aclUrl);
452
456
  this.updateBasequence(locus.baseSequence);
@@ -814,6 +818,8 @@ export default class LocusInfo extends EventsScope {
814
818
  hasMeetingFullChanged,
815
819
  hasPracticeSessionEnabledChanged,
816
820
  hasStageViewChanged,
821
+ hasAnnotationControlChanged,
822
+ hasRemoteDesktopControlChanged,
817
823
  },
818
824
  current,
819
825
  } = ControlsUtils.getControls(this.controls, controls);
@@ -1049,6 +1055,22 @@ export default class LocusInfo extends EventsScope {
1049
1055
  );
1050
1056
  }
1051
1057
 
1058
+ if (hasAnnotationControlChanged) {
1059
+ this.emitScoped(
1060
+ {file: 'locus-info', function: 'updateControls'},
1061
+ LOCUSINFO.EVENTS.CONTROLS_ANNOTATION_CHANGED,
1062
+ {state: current.annotationControl}
1063
+ );
1064
+ }
1065
+
1066
+ if (hasRemoteDesktopControlChanged) {
1067
+ this.emitScoped(
1068
+ {file: 'locus-info', function: 'updateControls'},
1069
+ LOCUSINFO.EVENTS.CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED,
1070
+ {state: current.rdcControl}
1071
+ );
1072
+ }
1073
+
1052
1074
  this.controls = controls;
1053
1075
  }
1054
1076
  }
@@ -1336,17 +1358,20 @@ export default class LocusInfo extends EventsScope {
1336
1358
 
1337
1359
  /**
1338
1360
  * handles when the locus.self is updated
1339
- * @param {Object} self the locus.mediaShares property
1340
- * @param {Array} participants the locus.participants property
1361
+ * @param {Object} self the new locus.self
1341
1362
  * @returns {undefined}
1342
1363
  * @memberof LocusInfo
1343
1364
  * emits internal events self_admitted_guest, self_unadmitted_guest, locus_info_update_self
1344
1365
  */
1345
- updateSelf(self: any, participants: Array<any>) {
1346
- // @ts-ignore - check where this.self come from
1347
- if (self && !isEqual(this.self, self)) {
1366
+ updateSelf(self: any) {
1367
+ if (self) {
1348
1368
  // @ts-ignore
1349
- const parsedSelves = SelfUtils.getSelves(this.self, self, this.webex.internal.device.url);
1369
+ const parsedSelves = SelfUtils.getSelves(
1370
+ this.parsedLocus.self,
1371
+ self,
1372
+ this.webex.internal.device.url,
1373
+ this.participants // using this.participants instead of locus.participants here, because with delta DTOs locus.participants will only contain a small subset of participants
1374
+ );
1350
1375
 
1351
1376
  this.updateMeeting(parsedSelves.current);
1352
1377
  this.parsedLocus.self = parsedSelves.current;
@@ -1360,7 +1385,7 @@ export default class LocusInfo extends EventsScope {
1360
1385
  // TODO: check if we need to save the sipUri here as well
1361
1386
  // this.emit(LOCUSINFO.EVENTS.MEETING_UPDATE, SelfUtils.getSipUrl(this.getLocusPartner(participants, self), this.parsedLocus.fullState.type, this.parsedLocus.info.sipUri));
1362
1387
  const result = SelfUtils.getSipUrl(
1363
- this.getLocusPartner(participants, self),
1388
+ this.getLocusPartner(this.participants, self),
1364
1389
  this.parsedLocus.fullState.type,
1365
1390
  this.parsedLocus.info.sipUri
1366
1391
  );
@@ -1506,7 +1531,7 @@ export default class LocusInfo extends EventsScope {
1506
1531
  {}
1507
1532
  );
1508
1533
  }
1509
- if (parsedSelves.updates.isUserUnadmitted) {
1534
+ if (parsedSelves.updates.hasUserEnteredLobby) {
1510
1535
  this.emitScoped(
1511
1536
  {
1512
1537
  file: 'locus-info',
@@ -1516,7 +1541,7 @@ export default class LocusInfo extends EventsScope {
1516
1541
  self
1517
1542
  );
1518
1543
  }
1519
- if (parsedSelves.updates.isUserAdmitted) {
1544
+ if (parsedSelves.updates.hasUserBeenAdmitted) {
1520
1545
  this.emitScoped(
1521
1546
  {
1522
1547
  file: 'locus-info',
@@ -1706,7 +1731,8 @@ export default class LocusInfo extends EventsScope {
1706
1731
  * @memberof LocusInfo
1707
1732
  */
1708
1733
  getTheLocusToUpdate(newLocus: any) {
1709
- const switchStatus = ControlsUtils.getSessionSwitchStatus(this.controls, newLocus?.controls);
1734
+ const switchStatus = ControlsUtils.getSessionSwitchStatus(this, newLocus);
1735
+
1710
1736
  if (switchStatus.isReturnToMain && this.mainSessionLocusCache) {
1711
1737
  return cloneDeep(this.mainSessionLocusCache);
1712
1738
  }