@webex/plugin-meetings 2.37.0 → 2.37.2

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 (308) 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 +7 -46
  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 +46 -42
  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 -37
  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 +74 -137
  74. package/dist/media/index.js.map +1 -1
  75. package/dist/media/properties.js +64 -110
  76. package/dist/media/properties.js.map +1 -1
  77. package/dist/media/util.js +3 -17
  78. package/dist/media/util.js.map +1 -1
  79. package/dist/mediaQualityMetrics/config.js +10 -12
  80. package/dist/mediaQualityMetrics/config.js.map +1 -1
  81. package/dist/meeting/effectsState.js +120 -192
  82. package/dist/meeting/effectsState.js.map +1 -1
  83. package/dist/meeting/in-meeting-actions.js +0 -13
  84. package/dist/meeting/in-meeting-actions.js.map +1 -1
  85. package/dist/meeting/index.js +812 -1487
  86. package/dist/meeting/index.js.map +1 -1
  87. package/dist/meeting/muteState.js +31 -78
  88. package/dist/meeting/muteState.js.map +1 -1
  89. package/dist/meeting/request.js +157 -227
  90. package/dist/meeting/request.js.map +1 -1
  91. package/dist/meeting/state.js +21 -31
  92. package/dist/meeting/state.js.map +1 -1
  93. package/dist/meeting/util.js +25 -169
  94. package/dist/meeting/util.js.map +1 -1
  95. package/dist/meeting-info/collection.js +3 -25
  96. package/dist/meeting-info/collection.js.map +1 -1
  97. package/dist/meeting-info/index.js +10 -33
  98. package/dist/meeting-info/index.js.map +1 -1
  99. package/dist/meeting-info/meeting-info-v2.js +179 -268
  100. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  101. package/dist/meeting-info/request.js +1 -16
  102. package/dist/meeting-info/request.js.map +1 -1
  103. package/dist/meeting-info/util.js +98 -183
  104. package/dist/meeting-info/util.js.map +1 -1
  105. package/dist/meeting-info/utilv2.js +137 -228
  106. package/dist/meeting-info/utilv2.js.map +1 -1
  107. package/dist/meetings/collection.js +3 -21
  108. package/dist/meetings/collection.js.map +1 -1
  109. package/dist/meetings/index.js +451 -570
  110. package/dist/meetings/index.js.map +1 -1
  111. package/dist/meetings/request.js +7 -30
  112. package/dist/meetings/request.js.map +1 -1
  113. package/dist/meetings/util.js +94 -148
  114. package/dist/meetings/util.js.map +1 -1
  115. package/dist/member/index.js +49 -89
  116. package/dist/member/index.js.map +1 -1
  117. package/dist/member/util.js +17 -68
  118. package/dist/member/util.js.map +1 -1
  119. package/dist/members/collection.js +2 -12
  120. package/dist/members/collection.js.map +1 -1
  121. package/dist/members/index.js +68 -184
  122. package/dist/members/index.js.map +1 -1
  123. package/dist/members/request.js +21 -56
  124. package/dist/members/request.js.map +1 -1
  125. package/dist/members/util.js +9 -38
  126. package/dist/members/util.js.map +1 -1
  127. package/dist/metrics/config.js +0 -2
  128. package/dist/metrics/config.js.map +1 -1
  129. package/dist/metrics/constants.js +1 -2
  130. package/dist/metrics/constants.js.map +1 -1
  131. package/dist/metrics/index.js +48 -136
  132. package/dist/metrics/index.js.map +1 -1
  133. package/dist/networkQualityMonitor/index.js +28 -57
  134. package/dist/networkQualityMonitor/index.js.map +1 -1
  135. package/dist/peer-connection-manager/index.js +60 -190
  136. package/dist/peer-connection-manager/index.js.map +1 -1
  137. package/dist/peer-connection-manager/util.js +10 -24
  138. package/dist/peer-connection-manager/util.js.map +1 -1
  139. package/dist/personal-meeting-room/index.js +10 -45
  140. package/dist/personal-meeting-room/index.js.map +1 -1
  141. package/dist/personal-meeting-room/request.js +2 -33
  142. package/dist/personal-meeting-room/request.js.map +1 -1
  143. package/dist/personal-meeting-room/util.js +0 -13
  144. package/dist/personal-meeting-room/util.js.map +1 -1
  145. package/dist/reachability/index.js +100 -166
  146. package/dist/reachability/index.js.map +1 -1
  147. package/dist/reachability/request.js +2 -18
  148. package/dist/reachability/request.js.map +1 -1
  149. package/dist/reactions/reactions.js +0 -2
  150. package/dist/reactions/reactions.js.map +1 -1
  151. package/dist/reactions/reactions.type.js +0 -5
  152. package/dist/reactions/reactions.type.js.map +1 -1
  153. package/dist/reconnection-manager/index.js +294 -468
  154. package/dist/reconnection-manager/index.js.map +1 -1
  155. package/dist/roap/collection.js +1 -12
  156. package/dist/roap/collection.js.map +1 -1
  157. package/dist/roap/handler.js +15 -85
  158. package/dist/roap/handler.js.map +1 -1
  159. package/dist/roap/index.js +42 -94
  160. package/dist/roap/index.js.map +1 -1
  161. package/dist/roap/request.js +81 -148
  162. package/dist/roap/request.js.map +1 -1
  163. package/dist/roap/state.js +2 -39
  164. package/dist/roap/state.js.map +1 -1
  165. package/dist/roap/turnDiscovery.js +8 -52
  166. package/dist/roap/turnDiscovery.js.map +1 -1
  167. package/dist/roap/util.js +0 -26
  168. package/dist/roap/util.js.map +1 -1
  169. package/dist/statsAnalyzer/global.js +0 -2
  170. package/dist/statsAnalyzer/global.js.map +1 -1
  171. package/dist/statsAnalyzer/index.js +68 -168
  172. package/dist/statsAnalyzer/index.js.map +1 -1
  173. package/dist/statsAnalyzer/mqaUtil.js +54 -53
  174. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  175. package/dist/transcription/index.js +13 -45
  176. package/dist/transcription/index.js.map +1 -1
  177. package/internal-README.md +7 -6
  178. package/package.json +17 -17
  179. package/src/common/browser-detection.ts +9 -6
  180. package/src/common/collection.ts +3 -1
  181. package/src/common/errors/captcha-error.ts +6 -6
  182. package/src/common/errors/intent-to-join.ts +6 -6
  183. package/src/common/errors/join-meeting.ts +12 -8
  184. package/src/common/errors/media.ts +6 -6
  185. package/src/common/errors/parameter.ts +9 -6
  186. package/src/common/errors/password-error.ts +6 -6
  187. package/src/common/errors/permission.ts +5 -5
  188. package/src/common/errors/reconnection.ts +6 -6
  189. package/src/common/errors/stats.ts +6 -6
  190. package/src/common/errors/webex-errors.ts +7 -5
  191. package/src/common/errors/webex-meetings-error.ts +1 -1
  192. package/src/common/events/events-scope.ts +5 -1
  193. package/src/common/events/events.ts +5 -1
  194. package/src/common/events/trigger-proxy.ts +8 -3
  195. package/src/common/events/util.ts +1 -2
  196. package/src/common/logs/logger-proxy.ts +21 -10
  197. package/src/common/logs/request.ts +11 -8
  198. package/src/config.ts +11 -11
  199. package/src/constants.ts +138 -119
  200. package/src/index.js +1 -1
  201. package/src/locus-info/controlsUtils.ts +34 -24
  202. package/src/locus-info/fullState.ts +15 -11
  203. package/src/locus-info/hostUtils.ts +4 -3
  204. package/src/locus-info/index.ts +25 -34
  205. package/src/locus-info/infoUtils.ts +12 -4
  206. package/src/locus-info/mediaSharesUtils.ts +4 -4
  207. package/src/locus-info/parser.ts +45 -68
  208. package/src/locus-info/selfUtils.ts +106 -57
  209. package/src/media/index.ts +118 -109
  210. package/src/media/properties.ts +26 -20
  211. package/src/media/util.ts +2 -2
  212. package/src/mediaQualityMetrics/config.ts +46 -46
  213. package/src/meeting/effectsState.ts +35 -35
  214. package/src/meeting/in-meeting-actions.ts +7 -3
  215. package/src/meeting/index.ts +1435 -1210
  216. package/src/meeting/muteState.ts +62 -31
  217. package/src/meeting/request.ts +160 -113
  218. package/src/meeting/state.ts +45 -30
  219. package/src/meeting/util.ts +131 -90
  220. package/src/meeting-info/collection.ts +2 -1
  221. package/src/meeting-info/index.ts +32 -30
  222. package/src/meeting-info/meeting-info-v2.ts +106 -108
  223. package/src/meeting-info/request.ts +9 -3
  224. package/src/meeting-info/util.ts +54 -46
  225. package/src/meeting-info/utilv2.ts +59 -53
  226. package/src/meetings/collection.ts +1 -1
  227. package/src/meetings/index.ts +513 -441
  228. package/src/meetings/request.ts +26 -24
  229. package/src/meetings/util.ts +26 -23
  230. package/src/member/index.ts +55 -49
  231. package/src/member/util.ts +26 -13
  232. package/src/members/collection.ts +0 -1
  233. package/src/members/index.ts +172 -121
  234. package/src/members/request.ts +46 -14
  235. package/src/members/util.ts +44 -42
  236. package/src/metrics/config.ts +254 -81
  237. package/src/metrics/constants.ts +0 -2
  238. package/src/metrics/index.ts +84 -71
  239. package/src/networkQualityMonitor/index.ts +20 -23
  240. package/src/peer-connection-manager/index.ts +321 -241
  241. package/src/peer-connection-manager/util.ts +4 -2
  242. package/src/personal-meeting-room/index.ts +12 -16
  243. package/src/personal-meeting-room/request.ts +10 -3
  244. package/src/personal-meeting-room/util.ts +3 -3
  245. package/src/reachability/index.ts +61 -59
  246. package/src/reachability/request.ts +36 -32
  247. package/src/reactions/reactions.ts +4 -4
  248. package/src/reactions/reactions.type.ts +2 -3
  249. package/src/reconnection-manager/index.ts +159 -98
  250. package/src/roap/collection.ts +2 -4
  251. package/src/roap/handler.ts +63 -32
  252. package/src/roap/index.ts +78 -58
  253. package/src/roap/request.ts +69 -54
  254. package/src/roap/state.ts +17 -11
  255. package/src/roap/turnDiscovery.ts +60 -31
  256. package/src/roap/util.ts +39 -31
  257. package/src/statsAnalyzer/global.ts +30 -33
  258. package/src/statsAnalyzer/index.ts +397 -169
  259. package/src/statsAnalyzer/mqaUtil.ts +178 -72
  260. package/src/transcription/index.ts +34 -32
  261. package/test/integration/spec/journey.js +666 -462
  262. package/test/integration/spec/space-meeting.js +318 -203
  263. package/test/integration/spec/transcription.js +6 -7
  264. package/test/unit/spec/common/browser-detection.js +9 -28
  265. package/test/unit/spec/fixture/locus.js +92 -90
  266. package/test/unit/spec/locus-info/controlsUtils.js +5 -5
  267. package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
  268. package/test/unit/spec/locus-info/index.js +1 -2
  269. package/test/unit/spec/locus-info/infoUtils.js +24 -31
  270. package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
  271. package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
  272. package/test/unit/spec/locus-info/parser.js +3 -9
  273. package/test/unit/spec/locus-info/selfConstant.js +72 -103
  274. package/test/unit/spec/locus-info/selfUtils.js +21 -12
  275. package/test/unit/spec/meeting/effectsState.js +33 -45
  276. package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
  277. package/test/unit/spec/meeting/index.js +1141 -649
  278. package/test/unit/spec/meeting/muteState.js +42 -33
  279. package/test/unit/spec/meeting/request.js +56 -45
  280. package/test/unit/spec/meeting/utils.js +66 -49
  281. package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
  282. package/test/unit/spec/meeting-info/request.js +7 -9
  283. package/test/unit/spec/meeting-info/util.js +11 -12
  284. package/test/unit/spec/meeting-info/utilv2.js +110 -74
  285. package/test/unit/spec/meetings/collection.js +1 -1
  286. package/test/unit/spec/meetings/index.js +438 -257
  287. package/test/unit/spec/meetings/utils.js +14 -12
  288. package/test/unit/spec/member/index.js +0 -1
  289. package/test/unit/spec/member/util.js +5 -6
  290. package/test/unit/spec/members/index.js +84 -35
  291. package/test/unit/spec/members/request.js +29 -20
  292. package/test/unit/spec/members/utils.js +8 -5
  293. package/test/unit/spec/metrics/index.js +16 -21
  294. package/test/unit/spec/networkQualityMonitor/index.js +21 -15
  295. package/test/unit/spec/peerconnection-manager/index.js +88 -58
  296. package/test/unit/spec/peerconnection-manager/utils.js +5 -4
  297. package/test/unit/spec/peerconnection-manager/utils.test-fixtures.ts +7 -8
  298. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
  299. package/test/unit/spec/reachability/index.ts +9 -11
  300. package/test/unit/spec/reconnection-manager/index.js +14 -17
  301. package/test/unit/spec/roap/index.ts +18 -8
  302. package/test/unit/spec/roap/turnDiscovery.ts +22 -19
  303. package/test/unit/spec/roap/util.js +3 -3
  304. package/test/unit/spec/stats-analyzer/index.js +29 -24
  305. package/test/utils/cmr.js +44 -42
  306. package/test/utils/testUtils.js +83 -74
  307. package/test/utils/webex-config.js +18 -18
  308. package/test/utils/webex-test-users.js +53 -50
@@ -10,24 +10,27 @@ describe('plugin-meetings', () => {
10
10
  sites: [
11
11
  {
12
12
  siteUrl: 'site1-example.webex.com',
13
- default: false
13
+ default: false,
14
14
  },
15
15
  {
16
16
  siteUrl: 'site2-example.webex.com',
17
- default: false
17
+ default: false,
18
18
  },
19
19
  {
20
20
  siteUrl: 'go.webex.com',
21
- default: true
21
+ default: true,
22
22
  },
23
23
  {
24
24
  siteUrl: 'site3-example.webex.com',
25
- default: false
26
- }
27
- ]
25
+ default: false,
26
+ },
27
+ ],
28
28
  };
29
29
 
30
- assert.equal(MeetingsUtil.parseDefaultSiteFromMeetingPreferences(userPreferences), 'go.webex.com');
30
+ assert.equal(
31
+ MeetingsUtil.parseDefaultSiteFromMeetingPreferences(userPreferences),
32
+ 'go.webex.com'
33
+ );
31
34
  });
32
35
 
33
36
  it('should work fine if no default true site', () => {
@@ -35,16 +38,16 @@ describe('plugin-meetings', () => {
35
38
  sites: [
36
39
  {
37
40
  siteUrl: 'site1-example.webex.com',
38
- default: false
41
+ default: false,
39
42
  },
40
43
  {
41
44
  siteUrl: 'site2-example.webex.com',
42
- default: false
45
+ default: false,
43
46
  },
44
47
  {
45
48
  siteUrl: 'site3-example.webex.com',
46
- default: false
47
- }
49
+ default: false,
50
+ },
48
51
  ],
49
52
  };
50
53
 
@@ -61,4 +64,3 @@ describe('plugin-meetings', () => {
61
64
  });
62
65
  });
63
66
  });
64
-
@@ -4,7 +4,6 @@ import {assert} from '@webex/test-helper-chai';
4
4
  import MemberUtil from '@webex/plugin-meetings/src/member/util';
5
5
  import Member from '@webex/plugin-meetings/src/member';
6
6
 
7
-
8
7
  describe('member', () => {
9
8
  afterEach(() => {
10
9
  sinon.restore();
@@ -2,7 +2,6 @@ import {assert} from '@webex/test-helper-chai';
2
2
 
3
3
  import MemberUtil from '@webex/plugin-meetings/src/member/util';
4
4
 
5
-
6
5
  describe('isHandRaised', () => {
7
6
  it('throws error when there is no participant', () => {
8
7
  assert.throws(() => {
@@ -18,7 +17,7 @@ describe('isHandRaised', () => {
18
17
 
19
18
  it('returns false when hand is not there in controls', () => {
20
19
  const participant = {
21
- controls: {}
20
+ controls: {},
22
21
  };
23
22
 
24
23
  assert.isFalse(MemberUtil.isHandRaised(participant));
@@ -28,9 +27,9 @@ describe('isHandRaised', () => {
28
27
  const participant = {
29
28
  controls: {
30
29
  hand: {
31
- raised: true
30
+ raised: true,
32
31
  },
33
- }
32
+ },
34
33
  };
35
34
 
36
35
  assert.isTrue(MemberUtil.isHandRaised(participant));
@@ -40,9 +39,9 @@ describe('isHandRaised', () => {
40
39
  const participant = {
41
40
  controls: {
42
41
  hand: {
43
- raised: false
42
+ raised: false,
44
43
  },
45
- }
44
+ },
46
45
  };
47
46
 
48
47
  assert.isFalse(MemberUtil.isHandRaised(participant));
@@ -21,7 +21,6 @@ const {assert} = chai;
21
21
  chai.use(chaiAsPromised);
22
22
  sinon.assert.expose(chai.assert, {prefix: ''});
23
23
 
24
-
25
24
  describe('plugin-meetings', () => {
26
25
  let webex;
27
26
  let url1;
@@ -35,37 +34,33 @@ describe('plugin-meetings', () => {
35
34
  id: '6eb08f8b-bf69-3251-a126-b161bead2d21',
36
35
  phoneNumber: '+18578675309',
37
36
  isExternal: true,
38
- primaryDisplayString: '+18578675309'
37
+ primaryDisplayString: '+18578675309',
39
38
  },
40
39
  devices: [
41
40
  {
42
41
  url: 'https://fakeURL.com',
43
42
  deviceType: 'SIP',
44
43
  state: 'JOINED',
45
- intents: [
46
- null
47
- ],
44
+ intents: [null],
48
45
  correlationId: '1234',
49
46
  provisionalUrl: 'dialout:///fake',
50
- isSparkPstn: true
47
+ isSparkPstn: true,
51
48
  },
52
49
  {
53
50
  url: 'dialout:///fakeagain',
54
51
  deviceType: 'PROVISIONAL',
55
52
  state: 'JOINED',
56
- intents: [
57
- null
58
- ],
53
+ intents: [null],
59
54
  correlationId: '4321',
60
55
  isVideoCallback: false,
61
56
  clientUrl: 'https://fakeURL',
62
57
  provisionalType: 'DIAL_OUT_ONLY',
63
- dialingStatus: 'SUCCESS'
64
- }
58
+ dialingStatus: 'SUCCESS',
59
+ },
65
60
  ],
66
61
  status: {
67
62
  audioStatus: 'SENDRECV',
68
- videoStatus: 'INACTIVE'
63
+ videoStatus: 'INACTIVE',
69
64
  },
70
65
  id: 'abc-123-abc-123',
71
66
  guest: true,
@@ -73,16 +68,15 @@ describe('plugin-meetings', () => {
73
68
  moderator: false,
74
69
  panelist: false,
75
70
  moveToLobbyNotAllowed: true,
76
- deviceUrl: 'https://fakeDeviceurl'
71
+ deviceUrl: 'https://fakeDeviceurl',
77
72
  },
78
73
  id: 'abc-123-abc-123',
79
74
  status: 'IN_MEETING',
80
75
  type: 'MEETING',
81
- isModerator: false
82
- }
76
+ isModerator: false,
77
+ },
83
78
  };
84
79
 
85
-
86
80
  describe('members', () => {
87
81
  const sandbox = sinon.createSandbox();
88
82
  let createMembers;
@@ -92,21 +86,21 @@ describe('plugin-meetings', () => {
92
86
  children: {
93
87
  meetings: Meetings,
94
88
  credentials: Credentials,
95
- support: Support
89
+ support: Support,
96
90
  },
97
91
  config: {
98
92
  credentials: {
99
- client_id: 'mock-client-id'
93
+ client_id: 'mock-client-id',
100
94
  },
101
95
  meetings: {
102
96
  reconnection: {
103
- enabled: false
97
+ enabled: false,
104
98
  },
105
99
  mediaSettings: {},
106
100
  metrics: {},
107
- stats: {}
108
- }
109
- }
101
+ stats: {},
102
+ },
103
+ },
110
104
  });
111
105
 
112
106
  url1 = `https://example.com/${uuid.v4()}`;
@@ -156,7 +150,13 @@ describe('plugin-meetings', () => {
156
150
 
157
151
  members.membersCollection.setAll(fakeMembersCollection);
158
152
  await members.sendDialPadKey('1', 'test1');
159
- assert.calledWith(MembersUtil.genderateSendDTMFOptions, 'https://fakeURL.com', '1', 'test1', url1);
153
+ assert.calledWith(
154
+ MembersUtil.genderateSendDTMFOptions,
155
+ 'https://fakeURL.com',
156
+ '1',
157
+ 'test1',
158
+ url1
159
+ );
160
160
  });
161
161
 
162
162
  it('should call the sendDialPadKey method on membersRequest if the member is valid', async () => {
@@ -197,7 +197,10 @@ describe('plugin-meetings', () => {
197
197
  const members = createMembers({url: locusUrl});
198
198
 
199
199
  const spies = {
200
- generateRaiseHandMemberOptions: sandbox.spy(MembersUtil, 'generateRaiseHandMemberOptions'),
200
+ generateRaiseHandMemberOptions: sandbox.spy(
201
+ MembersUtil,
202
+ 'generateRaiseHandMemberOptions'
203
+ ),
201
204
  raiseOrLowerHandMember: sandbox.spy(members.membersRequest, 'raiseOrLowerHandMember'),
202
205
  };
203
206
 
@@ -210,10 +213,25 @@ describe('plugin-meetings', () => {
210
213
  assert.notCalled(spies.raiseOrLowerHandMember);
211
214
  };
212
215
 
213
- const checkValid = async (resultPromise, spies, expectedMemberId, expectedRaise, expectedLocusUrl) => {
216
+ const checkValid = async (
217
+ resultPromise,
218
+ spies,
219
+ expectedMemberId,
220
+ expectedRaise,
221
+ expectedLocusUrl
222
+ ) => {
214
223
  await assert.isFulfilled(resultPromise);
215
- assert.calledOnceWithExactly(spies.generateRaiseHandMemberOptions, expectedMemberId, expectedRaise, expectedLocusUrl);
216
- assert.calledOnceWithExactly(spies.raiseOrLowerHandMember, {memberId: expectedMemberId, raised: expectedRaise, locusUrl: expectedLocusUrl});
224
+ assert.calledOnceWithExactly(
225
+ spies.generateRaiseHandMemberOptions,
226
+ expectedMemberId,
227
+ expectedRaise,
228
+ expectedLocusUrl
229
+ );
230
+ assert.calledOnceWithExactly(spies.raiseOrLowerHandMember, {
231
+ memberId: expectedMemberId,
232
+ raised: expectedRaise,
233
+ locusUrl: expectedLocusUrl,
234
+ });
217
235
  assert.strictEqual(resultPromise, spies.raiseOrLowerHandMember.getCall(0).returnValue);
218
236
  };
219
237
 
@@ -222,7 +240,11 @@ describe('plugin-meetings', () => {
222
240
 
223
241
  const resultPromise = members.raiseOrLowerHand();
224
242
 
225
- await checkInvalid(resultPromise, 'The member id must be defined to raise/lower the hand of the member.', spies);
243
+ await checkInvalid(
244
+ resultPromise,
245
+ 'The member id must be defined to raise/lower the hand of the member.',
246
+ spies
247
+ );
226
248
  });
227
249
 
228
250
  it('should not make a request if there is no locus url', async () => {
@@ -230,7 +252,11 @@ describe('plugin-meetings', () => {
230
252
 
231
253
  const resultPromise = members.raiseOrLowerHand(uuid.v4());
232
254
 
233
- await checkInvalid(resultPromise, 'The associated locus url for this meetings members object must be defined.', spies);
255
+ await checkInvalid(
256
+ resultPromise,
257
+ 'The associated locus url for this meetings members object must be defined.',
258
+ spies
259
+ );
234
260
  });
235
261
 
236
262
  it('should make the correct request when called with raise as true', async () => {
@@ -266,7 +292,10 @@ describe('plugin-meetings', () => {
266
292
  const members = createMembers({url: locusUrl});
267
293
 
268
294
  const spies = {
269
- generateLowerAllHandsMemberOptions: sandbox.spy(MembersUtil, 'generateLowerAllHandsMemberOptions'),
295
+ generateLowerAllHandsMemberOptions: sandbox.spy(
296
+ MembersUtil,
297
+ 'generateLowerAllHandsMemberOptions'
298
+ ),
270
299
  lowerAllHandsMember: sandbox.spy(members.membersRequest, 'lowerAllHandsMember'),
271
300
  };
272
301
 
@@ -279,10 +308,22 @@ describe('plugin-meetings', () => {
279
308
  assert.notCalled(spies.lowerAllHandsMember);
280
309
  };
281
310
 
282
- const checkValid = async (resultPromise, spies, expectedRequestingMemberId, expectedLocusUrl) => {
311
+ const checkValid = async (
312
+ resultPromise,
313
+ spies,
314
+ expectedRequestingMemberId,
315
+ expectedLocusUrl
316
+ ) => {
283
317
  await assert.isFulfilled(resultPromise);
284
- assert.calledOnceWithExactly(spies.generateLowerAllHandsMemberOptions, expectedRequestingMemberId, expectedLocusUrl);
285
- assert.calledOnceWithExactly(spies.lowerAllHandsMember, {requestingParticipantId: expectedRequestingMemberId, locusUrl: expectedLocusUrl});
318
+ assert.calledOnceWithExactly(
319
+ spies.generateLowerAllHandsMemberOptions,
320
+ expectedRequestingMemberId,
321
+ expectedLocusUrl
322
+ );
323
+ assert.calledOnceWithExactly(spies.lowerAllHandsMember, {
324
+ requestingParticipantId: expectedRequestingMemberId,
325
+ locusUrl: expectedLocusUrl,
326
+ });
286
327
  assert.strictEqual(resultPromise, spies.lowerAllHandsMember.getCall(0).returnValue);
287
328
  };
288
329
 
@@ -291,7 +332,11 @@ describe('plugin-meetings', () => {
291
332
 
292
333
  const resultPromise = members.lowerAllHands();
293
334
 
294
- await checkInvalid(resultPromise, 'The requestingMemberId must be defined to lower all hands in a meeting.', spies);
335
+ await checkInvalid(
336
+ resultPromise,
337
+ 'The requestingMemberId must be defined to lower all hands in a meeting.',
338
+ spies
339
+ );
295
340
  });
296
341
 
297
342
  it('should not make a request if there is no locus url', async () => {
@@ -299,7 +344,11 @@ describe('plugin-meetings', () => {
299
344
 
300
345
  const resultPromise = members.lowerAllHands(uuid.v4());
301
346
 
302
- await checkInvalid(resultPromise, 'The associated locus url for this meetings members object must be defined.', spies);
347
+ await checkInvalid(
348
+ resultPromise,
349
+ 'The associated locus url for this meetings members object must be defined.',
350
+ spies
351
+ );
303
352
  });
304
353
 
305
354
  it('should make the correct request when called with requestingMemberId', async () => {
@@ -22,17 +22,20 @@ describe('plugin-meetings', () => {
22
22
  beforeEach(() => {
23
23
  const webex = new MockWebex({
24
24
  children: {
25
- meetings: Meetings
26
- }
25
+ meetings: Meetings,
26
+ },
27
27
  });
28
28
 
29
29
  sandbox = sinon.createSandbox();
30
30
 
31
31
  url1 = `https://example.com/${uuid.v4()}`;
32
32
 
33
- membersRequest = new MembersRequest({}, {
34
- parent: webex
35
- });
33
+ membersRequest = new MembersRequest(
34
+ {},
35
+ {
36
+ parent: webex,
37
+ }
38
+ );
36
39
  membersRequest.request = sinon.mock().returns(Promise.resolve({}));
37
40
  });
38
41
 
@@ -40,7 +43,6 @@ describe('plugin-meetings', () => {
40
43
  sandbox.restore();
41
44
  });
42
45
 
43
-
44
46
  describe('members request library', () => {
45
47
  describe('#sendDialPadKey', () => {
46
48
  it('sends a POST to the sendDtmf locus endpoint', async () => {
@@ -53,7 +55,7 @@ describe('plugin-meetings', () => {
53
55
  url,
54
56
  tones,
55
57
  memberId,
56
- locusUrl
58
+ locusUrl,
57
59
  });
58
60
  const requestParams = membersRequest.request.getCall(0).args[0];
59
61
 
@@ -68,9 +70,9 @@ describe('plugin-meetings', () => {
68
70
  it('sends a PUT to the locus endpoint', async () => {
69
71
  const options = {
70
72
  invitee: {
71
- phoneNumber: '+18578675309'
73
+ phoneNumber: '+18578675309',
72
74
  },
73
- locusUrl: url1
75
+ locusUrl: url1,
74
76
  };
75
77
 
76
78
  await membersRequest.addMembers(options);
@@ -86,9 +88,9 @@ describe('plugin-meetings', () => {
86
88
  it('sends a PUT to the locus endpoint', async () => {
87
89
  const options = {
88
90
  invitee: {
89
- phoneNumber: '+18578675309'
91
+ phoneNumber: '+18578675309',
90
92
  },
91
- locusUrl: url1
93
+ locusUrl: url1,
92
94
  };
93
95
 
94
96
  await membersRequest.cancelPhoneInvite(options);
@@ -109,7 +111,7 @@ describe('plugin-meetings', () => {
109
111
  const options = {
110
112
  memberId,
111
113
  locusUrl,
112
- raised: true
114
+ raised: true,
113
115
  };
114
116
 
115
117
  await membersRequest.raiseOrLowerHandMember(options);
@@ -122,10 +124,15 @@ describe('plugin-meetings', () => {
122
124
  });
123
125
 
124
126
  describe('#lowerAllHands', () => {
125
- const parameterErrorMessage = 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.';
127
+ const parameterErrorMessage =
128
+ 'requestingParticipantId must be defined, and the associated locus url for this meeting object must be defined.';
126
129
 
127
130
  const checkInvalid = async (functionParams) => {
128
- assert.throws(() => membersRequest.lowerAllHandsMember(functionParams), ParameterError, parameterErrorMessage);
131
+ assert.throws(
132
+ () => membersRequest.lowerAllHandsMember(functionParams),
133
+ ParameterError,
134
+ parameterErrorMessage
135
+ );
129
136
  assert(membersRequest.request.notCalled);
130
137
  assert(membersUtil.getLowerAllHandsMemberRequestParams.notCalled);
131
138
  };
@@ -151,7 +158,10 @@ describe('plugin-meetings', () => {
151
158
  locusUrl,
152
159
  };
153
160
 
154
- assert.strictEqual(membersRequest.lowerAllHandsMember(options), membersRequest.request.getCall(0).returnValue);
161
+ assert.strictEqual(
162
+ membersRequest.lowerAllHandsMember(options),
163
+ membersRequest.request.getCall(0).returnValue
164
+ );
155
165
  });
156
166
 
157
167
  it('sends a PATCH to the locus endpoint', async () => {
@@ -163,14 +173,13 @@ describe('plugin-meetings', () => {
163
173
  locusUrl,
164
174
  };
165
175
 
166
-
167
176
  const getRequestParamsSpy = sandbox.spy(membersUtil, 'getLowerAllHandsMemberRequestParams');
168
177
 
169
178
  await membersRequest.lowerAllHandsMember(options);
170
179
 
171
180
  assert.calledOnceWithExactly(getRequestParamsSpy, {
172
181
  requestingParticipantId: memberId,
173
- locusUrl: url1
182
+ locusUrl: url1,
174
183
  });
175
184
 
176
185
  const requestParams = membersRequest.request.getCall(0).args[0];
@@ -180,10 +189,10 @@ describe('plugin-meetings', () => {
180
189
  uri: `${locusUrl}/controls`,
181
190
  body: {
182
191
  hand: {
183
- raised: false
192
+ raised: false,
184
193
  },
185
- requestingParticipantId: memberId
186
- }
194
+ requestingParticipantId: memberId,
195
+ },
187
196
  });
188
197
  });
189
198
  });
@@ -20,7 +20,7 @@ describe('plugin-meetings', () => {
20
20
  assert.deepEqual(MembersUtil.generateRaiseHandMemberOptions(memberId, status, locusUrl), {
21
21
  memberId,
22
22
  raised: status,
23
- locusUrl
23
+ locusUrl,
24
24
  });
25
25
  });
26
26
  });
@@ -29,10 +29,13 @@ describe('plugin-meetings', () => {
29
29
  const requestingParticipantId = 'test';
30
30
  const locusUrl = 'urlTest1';
31
31
 
32
- assert.deepEqual(MembersUtil.generateLowerAllHandsMemberOptions(requestingParticipantId, locusUrl), {
33
- requestingParticipantId,
34
- locusUrl
35
- });
32
+ assert.deepEqual(
33
+ MembersUtil.generateLowerAllHandsMemberOptions(requestingParticipantId, locusUrl),
34
+ {
35
+ requestingParticipantId,
36
+ locusUrl,
37
+ }
38
+ );
36
39
  });
37
40
  });
38
41
  });
@@ -10,7 +10,6 @@ import {assert} from '@webex/test-helper-chai';
10
10
 
11
11
  import metrics from '@webex/plugin-meetings/src/metrics';
12
12
 
13
-
14
13
  /**
15
14
  * Meeting can only run in a browser, so we can only send metrics for
16
15
  * browser usage.
@@ -23,7 +22,7 @@ browserOnly(describe)('Meeting metrics', () => {
23
22
  clientRegion: 'US-WEST',
24
23
  countryCode: 'US',
25
24
  regionCode: 'US-WEST',
26
- timezone: 'America/Los_Angeles'
25
+ timezone: 'America/Los_Angeles',
27
26
  };
28
27
 
29
28
  beforeEach(() => {
@@ -31,16 +30,16 @@ browserOnly(describe)('Meeting metrics', () => {
31
30
  mockSubmitMetric = sandbox.stub();
32
31
  webex = new MockWebex({
33
32
  children: {
34
- metrics: Metrics
35
- }
33
+ metrics: Metrics,
34
+ },
36
35
  });
37
36
 
38
37
  webex.version = '1.2.3';
39
38
  webex.credentials.getOrgId = sinon.fake.returns('7890');
40
39
  webex.credentials.config = {
41
40
  _values: {
42
- clientId: 'mock-client-id'
43
- }
41
+ clientId: 'mock-client-id',
42
+ },
44
43
  };
45
44
  webex.config.metrics.type = ['behavioral'];
46
45
  webex.internal.metrics.submitClientMetrics = mockSubmitMetric;
@@ -55,7 +54,7 @@ browserOnly(describe)('Meeting metrics', () => {
55
54
  it('should create payload with masked IPv4', () => {
56
55
  geoHintInfo.clientAddress = '128.0.0.1';
57
56
  webex.meetings = {
58
- geoHintInfo
57
+ geoHintInfo,
59
58
  };
60
59
  metrics.initialSetup({}, webex);
61
60
  const payload = metrics.initPayload('myMetric', {}, {clientType: 'TEAMS_CLIENT'});
@@ -71,7 +70,7 @@ browserOnly(describe)('Meeting metrics', () => {
71
70
  it('should create payload with masked IPv6', () => {
72
71
  geoHintInfo.clientAddress = '2001:0db8:0000:08d3:0000:0000:0070:0000';
73
72
  webex.meetings = {
74
- geoHintInfo
73
+ geoHintInfo,
75
74
  };
76
75
  metrics.initialSetup({}, webex);
77
76
  const payload = metrics.initPayload('myIPv6Metric', {}, {clientType: 'TEAMS_CLIENT'});
@@ -98,19 +97,15 @@ browserOnly(describe)('Meeting metrics', () => {
98
97
 
99
98
  metrics.sendBehavioralMetric('myMetric', fields, metricTags);
100
99
 
101
- assert.calledWithMatch(
102
- mockSubmitMetric,
103
- 'myMetric',
104
- {
105
- type: ['behavioral'],
106
- fields: {
107
- value: 567
108
- },
109
- tags: {
110
- test: true
111
- }
112
- }
113
- );
100
+ assert.calledWithMatch(mockSubmitMetric, 'myMetric', {
101
+ type: ['behavioral'],
102
+ fields: {
103
+ value: 567,
104
+ },
105
+ tags: {
106
+ test: true,
107
+ },
108
+ });
114
109
  });
115
110
  });
116
111
  });
@@ -20,7 +20,7 @@ describe('plugin-meetings', () => {
20
20
  const initialConfig = {
21
21
  videoPacketLossRatioThreshold: 9,
22
22
  rttThreshold: 500,
23
- jitterThreshold: 500
23
+ jitterThreshold: 500,
24
24
  };
25
25
 
26
26
  const configObject = {
@@ -39,20 +39,20 @@ describe('plugin-meetings', () => {
39
39
  roundTripTime: 0.648,
40
40
  fractionLost: 0,
41
41
  totalRoundTripTime: 3.554,
42
- roundTripTimeMeasurements: 14
42
+ roundTripTimeMeasurements: 14,
43
43
  },
44
44
  statsAnalyzerCurrentStats: {
45
45
  audio: {
46
46
  send: {
47
- currentPacketLossRatio: 8
48
- }
47
+ currentPacketLossRatio: 8,
48
+ },
49
49
  },
50
50
  video: {
51
51
  send: {
52
- currentPacketLossRatio: 10
53
- }
54
- }
55
- }
52
+ currentPacketLossRatio: 10,
53
+ },
54
+ },
55
+ },
56
56
  };
57
57
 
58
58
  const sandbox = sinon.createSandbox();
@@ -75,13 +75,19 @@ describe('plugin-meetings', () => {
75
75
 
76
76
  it('should emit a network quality judgement event with the proper payload', async () => {
77
77
  await networkQualityMonitor.determineUplinkNetworkQuality(configObject);
78
- assert(sandBoxEmitSpy.calledWith(sinon.match({
79
- file: 'networkQualityMonitor',
80
- function: 'emitNetworkQuality'
81
- }), sinon.match(EVENT_TRIGGERS.NETWORK_QUALITY), sinon.match({
82
- mediaType: 'video',
83
- networkQualityScore: 0
84
- })));
78
+ assert(
79
+ sandBoxEmitSpy.calledWith(
80
+ sinon.match({
81
+ file: 'networkQualityMonitor',
82
+ function: 'emitNetworkQuality',
83
+ }),
84
+ sinon.match(EVENT_TRIGGERS.NETWORK_QUALITY),
85
+ sinon.match({
86
+ mediaType: 'video',
87
+ networkQualityScore: 0,
88
+ })
89
+ )
90
+ );
85
91
  });
86
92
 
87
93
  it('should reset to default values after determineUplinkNetworkQuality call stack is complete', async () => {