@webex/plugin-meetings 3.0.0-beta.14 → 3.0.0-beta.16

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 (311) hide show
  1. package/UPGRADING.md +9 -9
  2. package/browsers.js +19 -24
  3. package/dist/common/browser-detection.js +1 -20
  4. package/dist/common/browser-detection.js.map +1 -1
  5. package/dist/common/collection.js +5 -20
  6. package/dist/common/collection.js.map +1 -1
  7. package/dist/common/config.js +0 -7
  8. package/dist/common/config.js.map +1 -1
  9. package/dist/common/errors/captcha-error.js +5 -26
  10. package/dist/common/errors/captcha-error.js.map +1 -1
  11. package/dist/common/errors/intent-to-join.js +5 -26
  12. package/dist/common/errors/intent-to-join.js.map +1 -1
  13. package/dist/common/errors/join-meeting.js +6 -27
  14. package/dist/common/errors/join-meeting.js.map +1 -1
  15. package/dist/common/errors/media.js +5 -26
  16. package/dist/common/errors/media.js.map +1 -1
  17. package/dist/common/errors/parameter.js +5 -33
  18. package/dist/common/errors/parameter.js.map +1 -1
  19. package/dist/common/errors/password-error.js +5 -26
  20. package/dist/common/errors/password-error.js.map +1 -1
  21. package/dist/common/errors/permission.js +4 -25
  22. package/dist/common/errors/permission.js.map +1 -1
  23. package/dist/common/errors/reconnection-in-progress.js +0 -17
  24. package/dist/common/errors/reconnection-in-progress.js.map +1 -1
  25. package/dist/common/errors/reconnection.js +5 -26
  26. package/dist/common/errors/reconnection.js.map +1 -1
  27. package/dist/common/errors/stats.js +5 -26
  28. package/dist/common/errors/stats.js.map +1 -1
  29. package/dist/common/errors/webex-errors.js +6 -41
  30. package/dist/common/errors/webex-errors.js.map +1 -1
  31. package/dist/common/errors/webex-meetings-error.js +1 -24
  32. package/dist/common/errors/webex-meetings-error.js.map +1 -1
  33. package/dist/common/events/events-scope.js +0 -22
  34. package/dist/common/events/events-scope.js.map +1 -1
  35. package/dist/common/events/events.js +0 -23
  36. package/dist/common/events/events.js.map +1 -1
  37. package/dist/common/events/trigger-proxy.js +0 -12
  38. package/dist/common/events/trigger-proxy.js.map +1 -1
  39. package/dist/common/events/util.js +0 -15
  40. package/dist/common/events/util.js.map +1 -1
  41. package/dist/common/logs/logger-config.js +0 -4
  42. package/dist/common/logs/logger-config.js.map +1 -1
  43. package/dist/common/logs/logger-proxy.js +1 -8
  44. package/dist/common/logs/logger-proxy.js.map +1 -1
  45. package/dist/common/logs/request.js +35 -61
  46. package/dist/common/logs/request.js.map +1 -1
  47. package/dist/common/queue.js +4 -14
  48. package/dist/common/queue.js.map +1 -1
  49. package/dist/config.js +1 -5
  50. package/dist/config.js.map +1 -1
  51. package/dist/constants.js +45 -40
  52. package/dist/constants.js.map +1 -1
  53. package/dist/index.js +1 -17
  54. package/dist/index.js.map +1 -1
  55. package/dist/locus-info/controlsUtils.js +10 -28
  56. package/dist/locus-info/controlsUtils.js.map +1 -1
  57. package/dist/locus-info/embeddedAppsUtils.js +3 -26
  58. package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
  59. package/dist/locus-info/fullState.js +0 -15
  60. package/dist/locus-info/fullState.js.map +1 -1
  61. package/dist/locus-info/hostUtils.js +4 -12
  62. package/dist/locus-info/hostUtils.js.map +1 -1
  63. package/dist/locus-info/index.js +101 -193
  64. package/dist/locus-info/index.js.map +1 -1
  65. package/dist/locus-info/infoUtils.js +0 -38
  66. package/dist/locus-info/infoUtils.js.map +1 -1
  67. package/dist/locus-info/mediaSharesUtils.js +12 -38
  68. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  69. package/dist/locus-info/parser.js +87 -123
  70. package/dist/locus-info/parser.js.map +1 -1
  71. package/dist/locus-info/selfUtils.js +16 -81
  72. package/dist/locus-info/selfUtils.js.map +1 -1
  73. package/dist/media/index.js +43 -97
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/internal-media-core-wrapper.js +0 -4
  76. package/dist/media/internal-media-core-wrapper.js.map +1 -1
  77. package/dist/media/properties.js +64 -110
  78. package/dist/media/properties.js.map +1 -1
  79. package/dist/media/util.js +2 -9
  80. package/dist/media/util.js.map +1 -1
  81. package/dist/mediaQualityMetrics/config.js +10 -12
  82. package/dist/mediaQualityMetrics/config.js.map +1 -1
  83. package/dist/meeting/effectsState.js +120 -192
  84. package/dist/meeting/effectsState.js.map +1 -1
  85. package/dist/meeting/in-meeting-actions.js +0 -13
  86. package/dist/meeting/in-meeting-actions.js.map +1 -1
  87. package/dist/meeting/index.js +819 -1591
  88. package/dist/meeting/index.js.map +1 -1
  89. package/dist/meeting/muteState.js +31 -78
  90. package/dist/meeting/muteState.js.map +1 -1
  91. package/dist/meeting/request.js +160 -230
  92. package/dist/meeting/request.js.map +1 -1
  93. package/dist/meeting/request.type.js +0 -1
  94. package/dist/meeting/request.type.js.map +1 -1
  95. package/dist/meeting/state.js +21 -31
  96. package/dist/meeting/state.js.map +1 -1
  97. package/dist/meeting/util.js +19 -158
  98. package/dist/meeting/util.js.map +1 -1
  99. package/dist/meeting-info/collection.js +3 -25
  100. package/dist/meeting-info/collection.js.map +1 -1
  101. package/dist/meeting-info/index.js +10 -33
  102. package/dist/meeting-info/index.js.map +1 -1
  103. package/dist/meeting-info/meeting-info-v2.js +179 -268
  104. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  105. package/dist/meeting-info/request.js +1 -16
  106. package/dist/meeting-info/request.js.map +1 -1
  107. package/dist/meeting-info/util.js +98 -183
  108. package/dist/meeting-info/util.js.map +1 -1
  109. package/dist/meeting-info/utilv2.js +137 -228
  110. package/dist/meeting-info/utilv2.js.map +1 -1
  111. package/dist/meetings/collection.js +3 -21
  112. package/dist/meetings/collection.js.map +1 -1
  113. package/dist/meetings/index.js +450 -582
  114. package/dist/meetings/index.js.map +1 -1
  115. package/dist/meetings/request.js +7 -30
  116. package/dist/meetings/request.js.map +1 -1
  117. package/dist/meetings/util.js +99 -155
  118. package/dist/meetings/util.js.map +1 -1
  119. package/dist/member/index.js +49 -89
  120. package/dist/member/index.js.map +1 -1
  121. package/dist/member/util.js +17 -68
  122. package/dist/member/util.js.map +1 -1
  123. package/dist/members/collection.js +2 -12
  124. package/dist/members/collection.js.map +1 -1
  125. package/dist/members/index.js +72 -194
  126. package/dist/members/index.js.map +1 -1
  127. package/dist/members/request.js +21 -56
  128. package/dist/members/request.js.map +1 -1
  129. package/dist/members/util.js +9 -38
  130. package/dist/members/util.js.map +1 -1
  131. package/dist/metrics/config.js +0 -2
  132. package/dist/metrics/config.js.map +1 -1
  133. package/dist/metrics/constants.js +1 -2
  134. package/dist/metrics/constants.js.map +1 -1
  135. package/dist/metrics/index.js +48 -136
  136. package/dist/metrics/index.js.map +1 -1
  137. package/dist/multistream/mediaRequestManager.js +12 -28
  138. package/dist/multistream/mediaRequestManager.js.map +1 -1
  139. package/dist/multistream/multistreamMedia.js +11 -21
  140. package/dist/multistream/multistreamMedia.js.map +1 -1
  141. package/dist/multistream/receiveSlot.js +7 -47
  142. package/dist/multistream/receiveSlot.js.map +1 -1
  143. package/dist/multistream/receiveSlotManager.js +38 -77
  144. package/dist/multistream/receiveSlotManager.js.map +1 -1
  145. package/dist/multistream/remoteMedia.js +11 -56
  146. package/dist/multistream/remoteMedia.js.map +1 -1
  147. package/dist/multistream/remoteMediaGroup.js +6 -40
  148. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  149. package/dist/multistream/remoteMediaManager.js +221 -380
  150. package/dist/multistream/remoteMediaManager.js.map +1 -1
  151. package/dist/networkQualityMonitor/index.js +28 -57
  152. package/dist/networkQualityMonitor/index.js.map +1 -1
  153. package/dist/personal-meeting-room/index.js +10 -45
  154. package/dist/personal-meeting-room/index.js.map +1 -1
  155. package/dist/personal-meeting-room/request.js +2 -33
  156. package/dist/personal-meeting-room/request.js.map +1 -1
  157. package/dist/personal-meeting-room/util.js +0 -13
  158. package/dist/personal-meeting-room/util.js.map +1 -1
  159. package/dist/reachability/index.js +100 -166
  160. package/dist/reachability/index.js.map +1 -1
  161. package/dist/reachability/request.js +2 -18
  162. package/dist/reachability/request.js.map +1 -1
  163. package/dist/reactions/reactions.js +0 -2
  164. package/dist/reactions/reactions.js.map +1 -1
  165. package/dist/reactions/reactions.type.js +2 -6
  166. package/dist/reactions/reactions.type.js.map +1 -1
  167. package/dist/reconnection-manager/index.js +294 -459
  168. package/dist/reconnection-manager/index.js.map +1 -1
  169. package/dist/roap/index.js +18 -53
  170. package/dist/roap/index.js.map +1 -1
  171. package/dist/roap/request.js +13 -55
  172. package/dist/roap/request.js.map +1 -1
  173. package/dist/roap/turnDiscovery.js +10 -52
  174. package/dist/roap/turnDiscovery.js.map +1 -1
  175. package/dist/statsAnalyzer/global.js +0 -2
  176. package/dist/statsAnalyzer/global.js.map +1 -1
  177. package/dist/statsAnalyzer/index.js +66 -174
  178. package/dist/statsAnalyzer/index.js.map +1 -1
  179. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  180. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  181. package/dist/transcription/index.js +13 -45
  182. package/dist/transcription/index.js.map +1 -1
  183. package/internal-README.md +7 -6
  184. package/package.json +18 -18
  185. package/src/common/browser-detection.ts +9 -6
  186. package/src/common/collection.ts +3 -1
  187. package/src/common/errors/captcha-error.ts +6 -6
  188. package/src/common/errors/intent-to-join.ts +6 -6
  189. package/src/common/errors/join-meeting.ts +12 -8
  190. package/src/common/errors/media.ts +6 -6
  191. package/src/common/errors/parameter.ts +9 -6
  192. package/src/common/errors/password-error.ts +6 -6
  193. package/src/common/errors/permission.ts +5 -5
  194. package/src/common/errors/reconnection.ts +6 -6
  195. package/src/common/errors/stats.ts +6 -6
  196. package/src/common/errors/webex-errors.ts +7 -5
  197. package/src/common/errors/webex-meetings-error.ts +1 -1
  198. package/src/common/events/events-scope.ts +5 -1
  199. package/src/common/events/events.ts +5 -1
  200. package/src/common/events/trigger-proxy.ts +8 -3
  201. package/src/common/events/util.ts +1 -2
  202. package/src/common/logs/logger-proxy.ts +21 -10
  203. package/src/common/logs/request.ts +11 -8
  204. package/src/config.ts +11 -11
  205. package/src/constants.ts +1 -1
  206. package/src/index.js +1 -1
  207. package/src/locus-info/controlsUtils.ts +34 -24
  208. package/src/locus-info/fullState.ts +15 -11
  209. package/src/locus-info/hostUtils.ts +4 -3
  210. package/src/locus-info/index.ts +25 -34
  211. package/src/locus-info/infoUtils.ts +12 -4
  212. package/src/locus-info/mediaSharesUtils.ts +4 -4
  213. package/src/locus-info/parser.ts +45 -68
  214. package/src/locus-info/selfUtils.ts +106 -57
  215. package/src/media/index.ts +123 -135
  216. package/src/media/internal-media-core-wrapper.ts +2 -2
  217. package/src/media/properties.ts +30 -20
  218. package/src/media/util.ts +1 -1
  219. package/src/mediaQualityMetrics/config.ts +46 -46
  220. package/src/meeting/effectsState.ts +35 -35
  221. package/src/meeting/in-meeting-actions.ts +7 -3
  222. package/src/meeting/index.ts +1559 -1292
  223. package/src/meeting/muteState.ts +62 -31
  224. package/src/meeting/request.ts +155 -116
  225. package/src/meeting/request.type.ts +8 -8
  226. package/src/meeting/state.ts +45 -30
  227. package/src/meeting/util.ts +101 -70
  228. package/src/meeting-info/collection.ts +2 -1
  229. package/src/meeting-info/index.ts +32 -30
  230. package/src/meeting-info/meeting-info-v2.ts +106 -108
  231. package/src/meeting-info/request.ts +9 -3
  232. package/src/meeting-info/util.ts +54 -46
  233. package/src/meeting-info/utilv2.ts +59 -53
  234. package/src/meetings/collection.ts +1 -1
  235. package/src/meetings/index.ts +512 -440
  236. package/src/meetings/request.ts +26 -24
  237. package/src/meetings/util.ts +29 -29
  238. package/src/member/index.ts +55 -49
  239. package/src/member/util.ts +26 -13
  240. package/src/members/collection.ts +0 -1
  241. package/src/members/index.ts +182 -126
  242. package/src/members/request.ts +46 -14
  243. package/src/members/util.ts +44 -42
  244. package/src/metrics/config.ts +254 -81
  245. package/src/metrics/constants.ts +0 -2
  246. package/src/metrics/index.ts +84 -71
  247. package/src/multistream/multistreamMedia.ts +1 -0
  248. package/src/multistream/receiveSlot.ts +1 -0
  249. package/src/multistream/receiveSlotManager.ts +1 -0
  250. package/src/multistream/remoteMedia.ts +1 -1
  251. package/src/multistream/remoteMediaGroup.ts +2 -1
  252. package/src/multistream/remoteMediaManager.ts +3 -0
  253. package/src/networkQualityMonitor/index.ts +20 -23
  254. package/src/personal-meeting-room/index.ts +12 -16
  255. package/src/personal-meeting-room/request.ts +10 -3
  256. package/src/personal-meeting-room/util.ts +3 -3
  257. package/src/reachability/index.ts +61 -59
  258. package/src/reachability/request.ts +36 -32
  259. package/src/reactions/reactions.ts +4 -4
  260. package/src/reactions/reactions.type.ts +4 -3
  261. package/src/reconnection-manager/index.ts +139 -84
  262. package/src/roap/index.ts +46 -38
  263. package/src/roap/request.ts +44 -31
  264. package/src/roap/turnDiscovery.ts +59 -30
  265. package/src/statsAnalyzer/global.ts +30 -33
  266. package/src/statsAnalyzer/index.ts +432 -175
  267. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  268. package/src/transcription/index.ts +34 -32
  269. package/test/integration/spec/journey.js +664 -463
  270. package/test/integration/spec/space-meeting.js +319 -204
  271. package/test/integration/spec/transcription.js +7 -8
  272. package/test/unit/spec/common/browser-detection.js +9 -28
  273. package/test/unit/spec/fixture/locus.js +92 -90
  274. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  275. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  276. package/test/unit/spec/locus-info/index.js +1 -2
  277. package/test/unit/spec/locus-info/infoUtils.js +26 -33
  278. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  279. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  280. package/test/unit/spec/locus-info/parser.js +3 -9
  281. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  282. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  283. package/test/unit/spec/meeting/effectsState.js +36 -46
  284. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  285. package/test/unit/spec/meeting/index.js +1279 -685
  286. package/test/unit/spec/meeting/muteState.js +42 -33
  287. package/test/unit/spec/meeting/request.js +57 -46
  288. package/test/unit/spec/meeting/utils.js +78 -53
  289. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  290. package/test/unit/spec/meeting-info/request.js +7 -9
  291. package/test/unit/spec/meeting-info/util.js +11 -12
  292. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  293. package/test/unit/spec/meetings/collection.js +1 -1
  294. package/test/unit/spec/meetings/index.js +438 -257
  295. package/test/unit/spec/meetings/utils.js +14 -12
  296. package/test/unit/spec/member/index.js +0 -1
  297. package/test/unit/spec/member/util.js +5 -6
  298. package/test/unit/spec/members/index.js +104 -54
  299. package/test/unit/spec/members/request.js +29 -20
  300. package/test/unit/spec/members/utils.js +8 -5
  301. package/test/unit/spec/metrics/index.js +16 -21
  302. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  303. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  304. package/test/unit/spec/reachability/index.ts +9 -11
  305. package/test/unit/spec/reconnection-manager/index.js +16 -18
  306. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  307. package/test/unit/spec/stats-analyzer/index.js +25 -20
  308. package/test/utils/cmr.js +44 -42
  309. package/test/utils/testUtils.js +83 -74
  310. package/test/utils/webex-config.js +18 -18
  311. package/test/utils/webex-test-users.js +53 -50
@@ -7,11 +7,7 @@
7
7
  import _ from 'lodash';
8
8
 
9
9
  import LoggerProxy from '../common/logs/logger-proxy';
10
- import {
11
- ICE_GATHERING_STATE,
12
- CONNECTION_STATE,
13
- REACHABILITY
14
- } from '../constants';
10
+ import {ICE_GATHERING_STATE, CONNECTION_STATE, REACHABILITY} from '../constants';
15
11
 
16
12
  import ReachabilityRequest from './request';
17
13
 
@@ -54,7 +50,6 @@ export default class Reachability {
54
50
  this.clusterLatencyResults = {};
55
51
  }
56
52
 
57
-
58
53
  /**
59
54
  * fetches reachability data
60
55
  * @returns {Object} reachability data
@@ -68,9 +63,10 @@ export default class Reachability {
68
63
  // Remove stored reachability results to ensure no stale data
69
64
  if (window?.localStorage?.removeItem) {
70
65
  window.localStorage.removeItem(REACHABILITY.localStorage);
71
- }
72
- else {
73
- LoggerProxy.logger.error('Reachability:index#gatherReachability --> Error in accessing LocalStorage.');
66
+ } else {
67
+ LoggerProxy.logger.error(
68
+ 'Reachability:index#gatherReachability --> Error in accessing LocalStorage.'
69
+ );
74
70
 
75
71
  return {};
76
72
  }
@@ -84,12 +80,15 @@ export default class Reachability {
84
80
 
85
81
  window.localStorage.setItem(REACHABILITY.localStorage, JSON.stringify(results));
86
82
 
87
- LoggerProxy.logger.log('Reachability:index#gatherReachability --> Reachability checks completed');
83
+ LoggerProxy.logger.log(
84
+ 'Reachability:index#gatherReachability --> Reachability checks completed'
85
+ );
88
86
 
89
87
  return results;
90
- }
91
- catch (getClusterError) {
92
- LoggerProxy.logger.error(`Reachability:index#gatherReachability --> Error in calling getClusters(): ${getClusterError}`);
88
+ } catch (getClusterError) {
89
+ LoggerProxy.logger.error(
90
+ `Reachability:index#gatherReachability --> Error in calling getClusters(): ${getClusterError}`
91
+ );
93
92
 
94
93
  return {};
95
94
  }
@@ -109,17 +108,19 @@ export default class Reachability {
109
108
  try {
110
109
  const reachabilityResults = JSON.parse(reachabilityData);
111
110
 
112
- reachable = Object.values(reachabilityResults).some((result: any) => result.udp?.reachable === 'true' || result.tcp?.reachable === 'true');
113
- }
114
- catch (e) {
115
- LoggerProxy.logger.error(`Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`);
111
+ reachable = Object.values(reachabilityResults).some(
112
+ (result: any) => result.udp?.reachable === 'true' || result.tcp?.reachable === 'true'
113
+ );
114
+ } catch (e) {
115
+ LoggerProxy.logger.error(
116
+ `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`
117
+ );
116
118
  }
117
119
  }
118
120
 
119
121
  return reachable;
120
122
  }
121
123
 
122
-
123
124
  /**
124
125
  * Generate peerConnection config settings
125
126
  * @param {object} cluster
@@ -128,25 +129,19 @@ export default class Reachability {
128
129
  * @memberof Reachability
129
130
  */
130
131
  private buildPeerConnectionConfig(cluster: any) {
131
- const iceServers = _.uniq([
132
- ...cluster.udp,
133
- ...cluster.tcp
134
- ]).map((url) => ({
132
+ const iceServers = _.uniq([...cluster.udp, ...cluster.tcp]).map((url) => ({
135
133
  username: '',
136
134
  credential: '',
137
- urls: [url]
135
+ urls: [url],
138
136
  }));
139
137
 
140
138
  return {
141
- iceServers: [
142
- ...iceServers
143
- ],
139
+ iceServers: [...iceServers],
144
140
  iceCandidatePoolSize: '0',
145
- iceTransportPolicy: 'all'
141
+ iceTransportPolicy: 'all',
146
142
  };
147
143
  }
148
144
 
149
-
150
145
  /**
151
146
  * Creates an RTCPeerConnection
152
147
  * @param {object} cluster
@@ -164,15 +159,15 @@ export default class Reachability {
164
159
  peerConnection.key = key;
165
160
 
166
161
  return peerConnection;
167
- }
168
- catch (peerConnectionError) {
169
- LoggerProxy.logger.log(`Reachability:index#createPeerConnection --> Error creating peerConnection: ${peerConnectionError}`);
162
+ } catch (peerConnectionError) {
163
+ LoggerProxy.logger.log(
164
+ `Reachability:index#createPeerConnection --> Error creating peerConnection: ${peerConnectionError}`
165
+ );
170
166
 
171
167
  return null;
172
168
  }
173
169
  }
174
170
 
175
-
176
171
  /**
177
172
  * Gets total elapsed time
178
173
  * @param {RTCPeerConnection} peerConnection
@@ -188,7 +183,6 @@ export default class Reachability {
188
183
  return Date.now() - startTime;
189
184
  }
190
185
 
191
-
192
186
  /**
193
187
  * creates offer and generates localSDP
194
188
  * @param {object} clusterList cluster List
@@ -209,10 +203,14 @@ export default class Reachability {
209
203
  peerConnection.begin = Date.now();
210
204
  peerConnection.setLocalDescription(description);
211
205
 
212
- return this.iceGatheringState(peerConnection, cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT)
213
- .catch((iceGatheringStateError) => {
214
- LoggerProxy.logger.log(`Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ${iceGatheringStateError}`);
215
- });
206
+ return this.iceGatheringState(
207
+ peerConnection,
208
+ cluster.isVideoMesh ? VIDEO_MESH_TIMEOUT : DEFAULT_TIMEOUT
209
+ ).catch((iceGatheringStateError) => {
210
+ LoggerProxy.logger.log(
211
+ `Reachability:index#getLocalSDPForClusters --> Error in getLocalSDP : ${iceGatheringStateError}`
212
+ );
213
+ });
216
214
  });
217
215
 
218
216
  return Promise.all(clusters)
@@ -225,7 +223,6 @@ export default class Reachability {
225
223
  });
226
224
  }
227
225
 
228
-
229
226
  /**
230
227
  * Get list of all unreachable clusters
231
228
  * @returns {array} Unreachable clusters
@@ -247,7 +244,6 @@ export default class Reachability {
247
244
  return unreachableList;
248
245
  }
249
246
 
250
-
251
247
  /**
252
248
  * Attach an event handler for the icegatheringstatechange
253
249
  * event and measure latency.
@@ -264,13 +260,15 @@ export default class Reachability {
264
260
  const elapsed = this.getElapsedTime(peerConnection);
265
261
 
266
262
  // @ts-ignore
267
- LoggerProxy.logger.log(`Reachability:index#onIceGatheringStateChange --> Successfully pinged ${peerConnection.key}:`, elapsed);
263
+ LoggerProxy.logger.log(
264
+ `Reachability:index#onIceGatheringStateChange --> Successfully pinged ${peerConnection.key}:`,
265
+ elapsed
266
+ );
268
267
  this.setLatencyAndClose(peerConnection, elapsed);
269
268
  }
270
269
  };
271
270
  }
272
271
 
273
-
274
272
  /**
275
273
  * Attach an event handler for the icecandidate
276
274
  * event and measure latency.
@@ -287,7 +285,10 @@ export default class Reachability {
287
285
  const elapsed = this.getElapsedTime(peerConnection);
288
286
 
289
287
  // @ts-ignore
290
- LoggerProxy.logger.log(`Reachability:index#onIceCandidate --> Successfully pinged ${peerConnection.key}:`, elapsed);
288
+ LoggerProxy.logger.log(
289
+ `Reachability:index#onIceCandidate --> Successfully pinged ${peerConnection.key}:`,
290
+ elapsed
291
+ );
291
292
  this.setLatencyAndClose(peerConnection, elapsed);
292
293
  }
293
294
  };
@@ -310,7 +311,7 @@ export default class Reachability {
310
311
  get(target, property) {
311
312
  const targetMember = target[property];
312
313
 
313
- if (typeof (targetMember) === 'function') {
314
+ if (typeof targetMember === 'function') {
314
315
  return targetMember.bind(target);
315
316
  }
316
317
 
@@ -327,7 +328,7 @@ export default class Reachability {
327
328
 
328
329
  // pass thru
329
330
  return window.Reflect.set(target, property, value);
330
- }
331
+ },
331
332
  });
332
333
 
333
334
  // Using peerConnection proxy so handle functions below
@@ -347,7 +348,6 @@ export default class Reachability {
347
348
  });
348
349
  }
349
350
 
350
-
351
351
  /**
352
352
  * Make a log of unreachable clusters.
353
353
  * @returns {undefined}
@@ -358,11 +358,12 @@ export default class Reachability {
358
358
  const list = this.getUnreachablClusters();
359
359
 
360
360
  list.forEach((cluster) => {
361
- LoggerProxy.logger.log(`Reachability:index#logUnreachableClusters --> No ice candidate for ${cluster}.`);
361
+ LoggerProxy.logger.log(
362
+ `Reachability:index#logUnreachableClusters --> No ice candidate for ${cluster}.`
363
+ );
362
364
  });
363
365
  }
364
366
 
365
-
366
367
  /**
367
368
  * Calculates time to establish connection
368
369
  * @param {array} iceResults iceResults
@@ -378,24 +379,22 @@ export default class Reachability {
378
379
 
379
380
  if (elapsed === null) {
380
381
  latencyResult = {reachable: 'false'};
381
- }
382
- else {
382
+ } else {
383
383
  latencyResult = {
384
384
  reachable: 'true',
385
- latencyInMilliseconds: (elapsed).toString()
385
+ latencyInMilliseconds: elapsed.toString(),
386
386
  };
387
387
  }
388
388
 
389
389
  reachabilityMap[clusterId] = {
390
390
  udp: latencyResult,
391
- tcp: latencyResult
391
+ tcp: latencyResult,
392
392
  };
393
393
  });
394
394
 
395
395
  return reachabilityMap;
396
396
  }
397
397
 
398
-
399
398
  /**
400
399
  * fetches reachability data
401
400
  * @param {object} clusterList
@@ -413,21 +412,23 @@ export default class Reachability {
413
412
  .then((localSDPData) => {
414
413
  if (!localSDPData || !Object.keys(localSDPData).length) {
415
414
  // TODO: handle the error condition properly and try retry
416
- LoggerProxy.logger.log('Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning');
415
+ LoggerProxy.logger.log(
416
+ 'Reachability:index#performReachabilityCheck --> Local SDP is empty or has missing elements..returning'
417
+ );
417
418
  resolve({});
418
- }
419
- else {
419
+ } else {
420
420
  resolve(localSDPData);
421
421
  }
422
422
  })
423
423
  .catch((error) => {
424
- LoggerProxy.logger.error(`Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ${error}`);
424
+ LoggerProxy.logger.error(
425
+ `Reachability:index#performReachabilityCheck --> Error in getLocalSDPForClusters: ${error}`
426
+ );
425
427
  resolve({});
426
428
  });
427
429
  });
428
430
  }
429
431
 
430
-
431
432
  /**
432
433
  * Records latency and closes the peerConnection
433
434
  * @param {RTCPeerConnection} peerConnection
@@ -446,7 +447,9 @@ export default class Reachability {
446
447
  const intialState = {[REACHABLE]: 0, [UNREACHABLE]: 0};
447
448
 
448
449
  if (peerConnection.connectionState === CLOSED) {
449
- LoggerProxy.logger.log(`Reachability:index#setLatencyAndClose --> Attempting to set latency of ${elapsed} on closed peerConnection.`);
450
+ LoggerProxy.logger.log(
451
+ `Reachability:index#setLatencyAndClose --> Attempting to set latency of ${elapsed} on closed peerConnection.`
452
+ );
450
453
 
451
454
  return;
452
455
  }
@@ -462,7 +465,6 @@ export default class Reachability {
462
465
  peerConnection.elapsed = elapsed;
463
466
  }
464
467
 
465
-
466
468
  /**
467
469
  * utility function
468
470
  * @returns {undefined}
@@ -1,9 +1,5 @@
1
1
  import LoggerProxy from '../common/logs/logger-proxy';
2
- import {
3
- HTTP_VERBS,
4
- RESOURCE,
5
- API
6
- } from '../constants';
2
+ import {HTTP_VERBS, RESOURCE, API} from '../constants';
7
3
 
8
4
  export interface ClusterNode {
9
5
  isVideoMesh: boolean;
@@ -13,8 +9,8 @@ export interface ClusterNode {
13
9
  }
14
10
 
15
11
  export type ClusterList = {
16
- [key:string]: ClusterNode;
17
- }
12
+ [key: string]: ClusterNode;
13
+ };
18
14
 
19
15
  /**
20
16
  * @class ReachabilityRequest
@@ -37,41 +33,49 @@ class ReachabilityRequest {
37
33
  * @param {boolean} includeVideoMesh whether to include the video mesh clusters in the result or not
38
34
  * @returns {Promise}
39
35
  */
40
- getClusters = (): Promise<ClusterList> => this.webex.request({
41
- method: HTTP_VERBS.GET,
42
- shouldRefreshAccessToken: false,
43
- api: API.CALLIOPEDISCOVERY,
44
- resource: RESOURCE.CLUSTERS
45
- })
46
- .then((res) => {
47
- const {clusters} = res.body;
36
+ getClusters = (): Promise<ClusterList> =>
37
+ this.webex
38
+ .request({
39
+ method: HTTP_VERBS.GET,
40
+ shouldRefreshAccessToken: false,
41
+ api: API.CALLIOPEDISCOVERY,
42
+ resource: RESOURCE.CLUSTERS,
43
+ })
44
+ .then((res) => {
45
+ const {clusters} = res.body;
48
46
 
49
- Object.keys(clusters).forEach((key) => {
50
- clusters[key].isVideoMesh = res.body.clusterClasses?.hybridMedia?.includes(key);
51
- });
47
+ Object.keys(clusters).forEach((key) => {
48
+ clusters[key].isVideoMesh = res.body.clusterClasses?.hybridMedia?.includes(key);
49
+ });
52
50
 
53
- LoggerProxy.logger.log(`Reachability:request#getClusters --> get clusters successful:${JSON.stringify(clusters)}`);
51
+ LoggerProxy.logger.log(
52
+ `Reachability:request#getClusters --> get clusters successful:${JSON.stringify(clusters)}`
53
+ );
54
54
 
55
- return clusters;
56
- });
55
+ return clusters;
56
+ });
57
57
 
58
58
  /**
59
59
  * gets remote SDP For Clusters
60
60
  * @param {Object} localSDPList localSDPs for the cluster
61
61
  * @returns {Object}
62
62
  */
63
- remoteSDPForClusters = (localSDPList: object) => this.webex.request({
64
- method: HTTP_VERBS.POST,
65
- shouldRefreshAccessToken: false,
66
- api: API.CALLIOPEDISCOVERY,
67
- resource: RESOURCE.REACHABILITY,
68
- body: {offers: localSDPList}
69
- })
70
- .then((res) => {
71
- LoggerProxy.logger.log('Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully');
63
+ remoteSDPForClusters = (localSDPList: object) =>
64
+ this.webex
65
+ .request({
66
+ method: HTTP_VERBS.POST,
67
+ shouldRefreshAccessToken: false,
68
+ api: API.CALLIOPEDISCOVERY,
69
+ resource: RESOURCE.REACHABILITY,
70
+ body: {offers: localSDPList},
71
+ })
72
+ .then((res) => {
73
+ LoggerProxy.logger.log(
74
+ 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'
75
+ );
72
76
 
73
- return res.body;
74
- });
77
+ return res.body;
78
+ });
75
79
  }
76
80
 
77
81
  export default ReachabilityRequest;
@@ -4,7 +4,7 @@ const Reactions: Record<ReactionType, Reaction> = {
4
4
  smile: {
5
5
  type: 'smile',
6
6
  codepoints: '1F642',
7
- shortcodes: ':slightly_smiling_face:'
7
+ shortcodes: ':slightly_smiling_face:',
8
8
  },
9
9
  sad: {
10
10
  type: 'sad',
@@ -19,7 +19,7 @@ const Reactions: Record<ReactionType, Reaction> = {
19
19
  haha: {
20
20
  type: 'haha',
21
21
  codepoints: '1F603',
22
- shortcodes: ':smiley:'
22
+ shortcodes: ':smiley:',
23
23
  },
24
24
  celebrate: {
25
25
  type: 'celebrate',
@@ -65,7 +65,7 @@ const Reactions: Record<ReactionType, Reaction> = {
65
65
  type: 'slow_down',
66
66
  codepoints: '1F422',
67
67
  shortcodes: ':turtle:',
68
- }
68
+ },
69
69
  };
70
70
 
71
71
  const SkinTones: Record<SkinToneType, SkinTone> = {
@@ -98,7 +98,7 @@ const SkinTones: Record<SkinToneType, SkinTone> = {
98
98
  type: 'dark_skin_tone',
99
99
  codepoints: '1F3FF',
100
100
  shortcodes: ':skin-tone-6:',
101
- }
101
+ },
102
102
  };
103
103
 
104
104
  export {Reactions, SkinTones};
@@ -1,15 +1,15 @@
1
-
2
1
  export type EmoticonData = {
3
2
  type: string;
4
3
  codepoints?: string;
5
4
  shortcodes?: string;
6
- }
5
+ };
7
6
 
8
7
  export type SkinTone = EmoticonData;
9
8
  export type Reaction = EmoticonData & {
10
9
  tone?: SkinTone;
11
- }
10
+ };
12
11
 
12
+ // eslint-disable-next-line no-shadow
13
13
  export enum ReactionType {
14
14
  smile = 'smile',
15
15
  sad = 'sad',
@@ -26,6 +26,7 @@ export enum ReactionType {
26
26
  slow_down = 'slow_down',
27
27
  }
28
28
 
29
+ // eslint-disable-next-line no-shadow
29
30
  export enum SkinToneType {
30
31
  normal = 'normal',
31
32
  light = 'light',