@webex/plugin-meetings 2.37.0 → 2.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -2,11 +2,7 @@
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
4
 
5
- import {
6
- _MEETING_LINK_,
7
- _SIP_URI_,
8
- _PERSONAL_ROOM_
9
- } from '../constants';
5
+ import {_MEETING_LINK_, _SIP_URI_, _PERSONAL_ROOM_} from '../constants';
10
6
  import LoggerProxy from '../common/logs/logger-proxy';
11
7
 
12
8
  import MeetingInfoCollection from './collection';
@@ -34,7 +30,7 @@ export default class MeetingInfo {
34
30
  * @type {Object}
35
31
  * @private
36
32
  * @memberof MeetingInfo
37
- */
33
+ */
38
34
  this.meetingInfoRequest = new MeetingInfoRequest(this.webex);
39
35
  /**
40
36
  * The meeting information collection interface
@@ -42,7 +38,7 @@ export default class MeetingInfo {
42
38
  * @type {Object}
43
39
  * @private
44
40
  * @memberof MeetingInfo
45
- */
41
+ */
46
42
  this.meetingInfoCollection = new MeetingInfoCollection();
47
43
  }
48
44
 
@@ -75,17 +71,22 @@ export default class MeetingInfo {
75
71
  * @memberof MeetingInfo
76
72
  */
77
73
  private requestFetchInfo(options: object) {
78
- return this.meetingInfoRequest.fetchMeetingInfo(options).then((info) => {
79
- if (info && info.body) {
80
- this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
81
- }
74
+ return this.meetingInfoRequest
75
+ .fetchMeetingInfo(options)
76
+ .then((info) => {
77
+ if (info && info.body) {
78
+ this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);
79
+ }
82
80
 
83
- return info;
84
- }).catch((error) => {
85
- LoggerProxy.logger.error(`Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`);
81
+ return info;
82
+ })
83
+ .catch((error) => {
84
+ LoggerProxy.logger.error(
85
+ `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`
86
+ );
86
87
 
87
- return Promise.reject(error);
88
- });
88
+ return Promise.reject(error);
89
+ });
89
90
  }
90
91
 
91
92
  /**
@@ -100,7 +101,7 @@ export default class MeetingInfo {
100
101
  return MeetingInfoUtil.generateOptions({
101
102
  destination,
102
103
  type,
103
- webex: this.webex
104
+ webex: this.webex,
104
105
  });
105
106
  }
106
107
 
@@ -117,19 +118,20 @@ export default class MeetingInfo {
117
118
  destination = this.webex.internal.device.userId;
118
119
  }
119
120
 
120
- return this.fetchInfoOptions(
121
- MeetingInfoUtil.extractDestination(destination, type),
122
- type
123
- ).then((options) =>
124
- // fetch meeting info
125
- this.requestFetchInfo(options).catch((error) => {
126
- // if it failed the first time as meeting link
127
- if (options.type === _MEETING_LINK_) {
128
- // convert the meeting link to sip URI and retry
129
- return this.requestFetchInfo(this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_));
130
- }
121
+ return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(
122
+ (options) =>
123
+ // fetch meeting info
124
+ this.requestFetchInfo(options).catch((error) => {
125
+ // if it failed the first time as meeting link
126
+ if (options.type === _MEETING_LINK_) {
127
+ // convert the meeting link to sip URI and retry
128
+ return this.requestFetchInfo(
129
+ this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_)
130
+ );
131
+ }
131
132
 
132
- return Promise.reject(error);
133
- }));
133
+ return Promise.reject(error);
134
+ })
135
+ );
134
136
  }
135
137
  }
@@ -1,12 +1,15 @@
1
- import { HTTP_VERBS, _CONVERSATION_URL_, WBXAPPAPI_SERVICE } from '../constants';
1
+ import {HTTP_VERBS, _CONVERSATION_URL_, WBXAPPAPI_SERVICE} from '../constants';
2
2
  import Metrics from '../metrics';
3
3
  import BEHAVIORAL_METRICS from '../metrics/constants';
4
4
 
5
5
  import MeetingInfoUtil from './utilv2';
6
6
 
7
- const PASSWORD_ERROR_DEFAULT_MESSAGE = 'Password required. Call fetchMeetingInfo() with password argument';
8
- const CAPTCHA_ERROR_DEFAULT_MESSAGE = 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';
9
- const ADHOC_MEETING_DEFAULT_ERROR = 'Failed starting the adhoc meeting, Please contact support team ';
7
+ const PASSWORD_ERROR_DEFAULT_MESSAGE =
8
+ 'Password required. Call fetchMeetingInfo() with password argument';
9
+ const CAPTCHA_ERROR_DEFAULT_MESSAGE =
10
+ 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';
11
+ const ADHOC_MEETING_DEFAULT_ERROR =
12
+ 'Failed starting the adhoc meeting, Please contact support team ';
10
13
  const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
11
14
 
12
15
  /**
@@ -18,17 +21,21 @@ export class MeetingInfoV2PasswordError extends Error {
18
21
  wbxAppApiCode: any;
19
22
 
20
23
  /**
21
- *
22
- * @constructor
23
- * @param {Number} [wbxAppApiErrorCode]
24
- * @param {Object} [meetingInfo]
25
- * @param {String} [message]
26
- */
27
- constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message: string = PASSWORD_ERROR_DEFAULT_MESSAGE) {
24
+ *
25
+ * @constructor
26
+ * @param {Number} [wbxAppApiErrorCode]
27
+ * @param {Object} [meetingInfo]
28
+ * @param {String} [message]
29
+ */
30
+ constructor(
31
+ wbxAppApiErrorCode?: number,
32
+ meetingInfo?: object,
33
+ message: string = PASSWORD_ERROR_DEFAULT_MESSAGE
34
+ ) {
28
35
  super(`${message}, code=${wbxAppApiErrorCode}`);
29
36
  this.name = 'MeetingInfoV2PasswordError';
30
37
  this.sdkMessage = message;
31
- this.stack = (new Error()).stack;
38
+ this.stack = new Error().stack;
32
39
  this.wbxAppApiCode = wbxAppApiErrorCode;
33
40
  this.meetingInfo = meetingInfo;
34
41
  }
@@ -41,40 +48,44 @@ export class MeetingInfoV2AdhocMeetingError extends Error {
41
48
  sdkMessage: any;
42
49
  wbxAppApiCode: any;
43
50
  /**
44
- *
45
- * @constructor
46
- * @param {Number} [wbxAppApiErrorCode]
47
- * @param {String} [message]
48
- */
51
+ *
52
+ * @constructor
53
+ * @param {Number} [wbxAppApiErrorCode]
54
+ * @param {String} [message]
55
+ */
49
56
  constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {
50
57
  super(`${message}, code=${wbxAppApiErrorCode}`);
51
58
  this.name = 'MeetingInfoV2AdhocMeetingError';
52
59
  this.sdkMessage = message;
53
- this.stack = (new Error()).stack;
60
+ this.stack = new Error().stack;
54
61
  this.wbxAppApiCode = wbxAppApiErrorCode;
55
62
  }
56
63
  }
57
64
 
58
65
  /**
59
- * Error to indicate that preferred webex site not present to start adhoc meeting
60
- */
66
+ * Error to indicate that preferred webex site not present to start adhoc meeting
67
+ */
61
68
  export class MeetingInfoV2CaptchaError extends Error {
62
69
  captchaInfo: any;
63
70
  isPasswordRequired: any;
64
71
  sdkMessage: any;
65
72
  wbxAppApiCode: any;
66
73
  /**
67
- *
68
- * @constructor
69
- * @param {Number} [wbxAppApiErrorCode]
70
- * @param {Object} [captchaInfo]
71
- * @param {String} [message]
72
- */
73
- constructor(wbxAppApiErrorCode?: number, captchaInfo?: object, message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE) {
74
+ *
75
+ * @constructor
76
+ * @param {Number} [wbxAppApiErrorCode]
77
+ * @param {Object} [captchaInfo]
78
+ * @param {String} [message]
79
+ */
80
+ constructor(
81
+ wbxAppApiErrorCode?: number,
82
+ captchaInfo?: object,
83
+ message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE
84
+ ) {
74
85
  super(`${message}, code=${wbxAppApiErrorCode}`);
75
86
  this.name = 'MeetingInfoV2PasswordError';
76
87
  this.sdkMessage = message;
77
- this.stack = (new Error()).stack;
88
+ this.stack = new Error().stack;
78
89
  this.wbxAppApiCode = wbxAppApiErrorCode;
79
90
  this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);
80
91
  this.captchaInfo = captchaInfo;
@@ -82,42 +93,42 @@ export class MeetingInfoV2CaptchaError extends Error {
82
93
  }
83
94
 
84
95
  /**
85
- * @class MeetingInfo
86
- */
96
+ * @class MeetingInfo
97
+ */
87
98
  export default class MeetingInfoV2 {
88
99
  webex: any;
89
100
 
90
101
  /**
91
- *
92
- * @param {WebexSDK} webex
93
- */
102
+ *
103
+ * @param {WebexSDK} webex
104
+ */
94
105
  constructor(webex) {
95
106
  this.webex = webex;
96
107
  }
97
108
 
98
109
  /**
99
- * converts hydra id into conversation url and persons Id
100
- * @param {String} destination one of many different types of destinations to look up info for
101
- * @param {String} [type] to match up with the destination value
102
- * @returns {Promise} destination and type
103
- * @public
104
- * @memberof MeetingInfo
105
- */
110
+ * converts hydra id into conversation url and persons Id
111
+ * @param {String} destination one of many different types of destinations to look up info for
112
+ * @param {String} [type] to match up with the destination value
113
+ * @returns {Promise} destination and type
114
+ * @public
115
+ * @memberof MeetingInfo
116
+ */
106
117
  fetchInfoOptions(destination: string, type: string = null) {
107
118
  return MeetingInfoUtil.getDestinationType({
108
119
  destination,
109
120
  type,
110
- webex: this.webex
121
+ webex: this.webex,
111
122
  });
112
123
  }
113
124
 
114
125
  /**
115
- * Creates adhoc space meetings for a space by fetching the conversation infomation
116
- * @param {String} conversationUrl conversationUrl to start adhoc meeting on
117
- * @returns {Promise} returns a meeting info object
118
- * @public
119
- * @memberof MeetingInfo
120
- */
126
+ * Creates adhoc space meetings for a space by fetching the conversation infomation
127
+ * @param {String} conversationUrl conversationUrl to start adhoc meeting on
128
+ * @returns {Promise} returns a meeting info object
129
+ * @public
130
+ * @memberof MeetingInfo
131
+ */
121
132
  async createAdhocSpaceMeeting(conversationUrl: string) {
122
133
  if (!this.webex.meetings.preferredWebexSite) {
123
134
  throw Error('No preferred webex site found');
@@ -129,7 +140,7 @@ export default class MeetingInfoV2 {
129
140
  particpants.forEach((participant) => {
130
141
  invitees.push({
131
142
  email: participant.emailAddress,
132
- ciUserUuid: participant.entryUUID
143
+ ciUserUuid: participant.entryUUID,
133
144
  });
134
145
  });
135
146
  }
@@ -137,56 +148,50 @@ export default class MeetingInfoV2 {
137
148
  return invitees;
138
149
  };
139
150
 
140
- return this.webex.internal.conversation.get(
141
- {url: conversationUrl},
142
- {includeParticipants: true, disableTransform: true}
143
- )
151
+ return this.webex.internal.conversation
152
+ .get({url: conversationUrl}, {includeParticipants: true, disableTransform: true})
144
153
  .then((conversation) => {
145
154
  const body = {
146
155
  title: conversation.displayName,
147
156
  spaceUrl: conversation.url,
148
157
  keyUrl: conversation.encryptionKeyUrl,
149
158
  kroUrl: conversation.kmsResourceObjectUrl,
150
- invitees: getInvitees(conversation.participants?.items)
159
+ invitees: getInvitees(conversation.participants?.items),
151
160
  };
152
161
 
153
- const uri = this.webex.meetings.preferredWebexSite ?
154
- `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant` : '';
162
+ const uri = this.webex.meetings.preferredWebexSite
163
+ ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`
164
+ : '';
155
165
 
156
- Metrics.sendBehavioralMetric(
157
- BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS
158
- );
166
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
159
167
 
160
168
  return this.webex.request({
161
169
  method: HTTP_VERBS.POST,
162
170
  uri,
163
- body
171
+ body,
164
172
  });
165
173
  })
166
174
  .catch((err) => {
167
- Metrics.sendBehavioralMetric(
168
- BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE,
169
- {
170
- reason: err.message,
171
- stack: err.stack
172
- }
173
- );
175
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {
176
+ reason: err.message,
177
+ stack: err.stack,
178
+ });
174
179
  throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);
175
180
  });
176
181
  }
177
182
 
178
183
  /**
179
- * Fetches meeting info from the server
180
- * @param {String} destination one of many different types of destinations to look up info for
181
- * @param {String} [type] to match up with the destination value
182
- * @param {String} password
183
- * @param {Object} captchaInfo
184
- * @param {String} captchaInfo.code
185
- * @param {String} captchaInfo.id
186
- * @returns {Promise} returns a meeting info object
187
- * @public
188
- * @memberof MeetingInfo
189
- */
184
+ * Fetches meeting info from the server
185
+ * @param {String} destination one of many different types of destinations to look up info for
186
+ * @param {String} [type] to match up with the destination value
187
+ * @param {String} password
188
+ * @param {Object} captchaInfo
189
+ * @param {String} captchaInfo.code
190
+ * @param {String} captchaInfo.id
191
+ * @returns {Promise} returns a meeting info object
192
+ * @public
193
+ * @memberof MeetingInfo
194
+ */
190
195
  async fetchMeetingInfo(
191
196
  destination: string,
192
197
  type: string = null,
@@ -199,10 +204,14 @@ export default class MeetingInfoV2 {
199
204
  const destinationType = await MeetingInfoUtil.getDestinationType({
200
205
  destination,
201
206
  type,
202
- webex: this.webex
207
+ webex: this.webex,
203
208
  });
204
209
 
205
- if (destinationType.type === _CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite) {
210
+ if (
211
+ destinationType.type === _CONVERSATION_URL_ &&
212
+ this.webex.config.meetings.experimental.enableAdhocMeetings &&
213
+ this.webex.meetings.preferredWebexSite
214
+ ) {
206
215
  return this.createAdhocSpaceMeeting(destinationType.destination);
207
216
  }
208
217
 
@@ -210,63 +219,52 @@ export default class MeetingInfoV2 {
210
219
 
211
220
  const options: any = {
212
221
  method: HTTP_VERBS.POST,
213
- body
222
+ body,
214
223
  };
215
224
 
216
225
  const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);
217
226
 
218
227
  if (directURI) {
219
228
  options.uri = directURI;
220
- }
221
- else {
229
+ } else {
222
230
  options.service = WBXAPPAPI_SERVICE;
223
231
  options.resource = 'meetingInfo';
224
232
  }
225
233
 
226
- return this.webex.request(options)
234
+ return this.webex
235
+ .request(options)
227
236
  .then((response) => {
228
- Metrics.sendBehavioralMetric(
229
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS
230
- );
237
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);
231
238
 
232
239
  return response;
233
240
  })
234
241
  .catch((err) => {
235
242
  if (err?.statusCode === 403) {
236
- Metrics.sendBehavioralMetric(
237
- BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR,
238
- {
239
- reason: err.message,
240
- stack: err.stack
241
- }
242
- );
243
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {
244
+ reason: err.message,
245
+ stack: err.stack,
246
+ });
243
247
 
244
248
  throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);
245
249
  }
246
250
  if (err?.statusCode === 423) {
247
- Metrics.sendBehavioralMetric(
248
- BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR,
249
- {
250
- reason: err.message,
251
- stack: err.stack
252
- }
253
- );
251
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {
252
+ reason: err.message,
253
+ stack: err.stack,
254
+ });
254
255
 
255
256
  throw new MeetingInfoV2CaptchaError(err.body?.code, {
256
257
  captchaId: err.body.captchaID,
257
258
  verificationImageURL: err.body.verificationImageURL,
258
259
  verificationAudioURL: err.body.verificationAudioURL,
259
- refreshURL: err.body.refreshURL
260
+ refreshURL: err.body.refreshURL,
260
261
  });
261
262
  }
262
263
 
263
- Metrics.sendBehavioralMetric(
264
- BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE,
265
- {
266
- reason: err.message,
267
- stack: err.stack
268
- }
269
- );
264
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {
265
+ reason: err.message,
266
+ stack: err.stack,
267
+ });
270
268
  throw err;
271
269
  });
272
270
  }
@@ -3,7 +3,6 @@ import ParameterError from '../common/errors/parameter';
3
3
 
4
4
  import MeetingInfoUtil from './util';
5
5
 
6
-
7
6
  /**
8
7
  * @class MeetingInfoRequest
9
8
  */
@@ -30,10 +29,17 @@ export default class MeetingInfoRequest {
30
29
  */
31
30
  fetchMeetingInfo(options: any) {
32
31
  if (!options || !options.type || !options.destination) {
33
- throw new ParameterError('MeetingInfo should be fetched with a type and destination specified, see list of valid types and their corresponding values in constants');
32
+ throw new ParameterError(
33
+ 'MeetingInfo should be fetched with a type and destination specified, see list of valid types and their corresponding values in constants'
34
+ );
34
35
  }
35
36
  const resourceUrl = MeetingInfoUtil.getResourceUrl(options.type, options.destination);
36
- const requestParams = MeetingInfoUtil.getRequestParams(resourceUrl, options.type, options.destination, API.LOCUS);
37
+ const requestParams = MeetingInfoUtil.getRequestParams(
38
+ resourceUrl,
39
+ options.type,
40
+ options.destination,
41
+ API.LOCUS
42
+ );
37
43
 
38
44
  return this.webex.request(requestParams);
39
45
  }