@webex/plugin-meetings 2.36.1 → 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
@@ -1,82 +1,48 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
6
-
7
5
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
8
-
9
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
-
11
7
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
12
-
13
8
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
14
-
15
9
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
16
-
17
10
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
18
-
19
11
  _Object$defineProperty(exports, "__esModule", {
20
12
  value: true
21
13
  });
22
-
23
14
  exports.default = void 0;
24
-
25
15
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
26
-
27
16
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
28
-
29
17
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
30
-
31
18
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
32
-
33
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
34
-
35
20
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
36
-
37
21
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
38
-
39
22
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
40
-
41
23
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
42
-
43
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
44
-
45
25
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
46
-
47
26
  var _webexCore = require("@webex/webex-core");
48
-
49
27
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
50
-
51
28
  var _constants = require("../constants");
52
-
53
29
  var _metrics = _interopRequireDefault(require("../metrics"));
54
-
55
30
  var _config = require("../metrics/config");
56
-
57
31
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
58
-
59
32
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
60
-
61
33
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
62
-
63
34
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
64
-
65
35
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
66
-
67
36
  /**
68
37
  * @class RoapRequest
69
38
  */
70
39
  var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
71
40
  (0, _inherits2.default)(RoapRequest, _StatelessWebexPlugin);
72
-
73
41
  var _super = _createSuper(RoapRequest);
74
-
75
42
  function RoapRequest() {
76
43
  (0, _classCallCheck2.default)(this, RoapRequest);
77
44
  return _super.apply(this, arguments);
78
45
  }
79
-
80
46
  (0, _createClass2.default)(RoapRequest, [{
81
47
  key: "attachRechabilityData",
82
48
  value:
@@ -85,14 +51,14 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
85
51
  * @param {Object} options
86
52
  * @returns {Promise} returns a promise that resolves/rejects whatever the request does
87
53
  */
54
+
88
55
  function attachRechabilityData(localSdp) {
89
56
  var reachabilityData = window.localStorage.getItem(_constants.REACHABILITY.localStorage);
90
-
91
57
  if (reachabilityData) {
92
58
  try {
93
59
  var reachabilityResult = JSON.parse(reachabilityData);
94
- /* istanbul ignore else */
95
60
 
61
+ /* istanbul ignore else */
96
62
  if (reachabilityResult && (0, _keys.default)(reachabilityResult).length) {
97
63
  localSdp.reachability = reachabilityResult;
98
64
  }
@@ -100,115 +66,94 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
100
66
  _loggerProxy.default.logger.error("Roap:request#attachReachabilityData --> Error in parsing reachability data: ".concat(e));
101
67
  }
102
68
  }
103
-
104
69
  return localSdp;
105
70
  }
106
71
  }, {
107
72
  key: "joinMeetingWithRoap",
108
73
  value: function joinMeetingWithRoap(options) {
109
74
  var _this = this;
110
-
111
75
  _loggerProxy.default.logger.info('Roap:request#joinMeetingWithRoap --> Join locus with roap');
112
-
113
76
  _loggerProxy.default.logger.info("Roap:request#joinMeetingWithRoap --> Local SDP: ".concat(options.roapMessage));
114
-
115
77
  return _promise.default.resolve().then( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
116
78
  var _options$preferTransc;
117
-
118
79
  var deviceUrl, url, body;
119
80
  return _regenerator.default.wrap(function _callee$(_context) {
120
- while (1) {
121
- switch (_context.prev = _context.next) {
122
- case 0:
123
- // @ts-ignore
124
- deviceUrl = _this.webex.internal.device.url;
125
- url = '';
126
- body = {
127
- deviceUrl: deviceUrl,
128
- usingResource: options.resourceId || null,
129
- correlationId: options.correlationId,
130
- localMedias: [{
131
- localSdp: (0, _stringify.default)(_this.attachRechabilityData({
132
- roapMessage: options.roapMessage,
133
- audioMuted: false,
134
- videoMuted: false
135
- }))
136
- }],
137
- clientMediaPreferences: {
138
- preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
139
- }
140
- };
141
-
142
- if (!options.locusUrl) {
143
- _context.next = 7;
144
- break;
81
+ while (1) switch (_context.prev = _context.next) {
82
+ case 0:
83
+ // @ts-ignore
84
+ deviceUrl = _this.webex.internal.device.url;
85
+ url = '';
86
+ body = {
87
+ deviceUrl: deviceUrl,
88
+ usingResource: options.resourceId || null,
89
+ correlationId: options.correlationId,
90
+ localMedias: [{
91
+ localSdp: (0, _stringify.default)(_this.attachRechabilityData({
92
+ roapMessage: options.roapMessage,
93
+ audioMuted: false,
94
+ videoMuted: false
95
+ }))
96
+ }],
97
+ clientMediaPreferences: {
98
+ preferTranscoding: (_options$preferTransc = options.preferTranscoding) !== null && _options$preferTransc !== void 0 ? _options$preferTransc : true
145
99
  }
146
-
147
- url = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT);
148
- _context.next = 22;
149
- break;
150
-
151
- case 7:
152
- if (!options.sipUrl) {
153
- _context.next = 21;
154
- break;
155
- }
156
-
157
- _context.prev = 8;
158
- _context.next = 11;
159
- return _this.webex.internal.services.waitForCatalog('postauth');
160
-
161
- case 11:
162
- // @ts-ignore
163
- url = "".concat(_this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
164
- body.invitee = {
165
- address: options.sipTarget
166
- };
167
- _context.next = 19;
100
+ };
101
+ if (!options.locusUrl) {
102
+ _context.next = 7;
168
103
  break;
169
-
170
- case 15:
171
- _context.prev = 15;
172
- _context.t0 = _context["catch"](8);
173
-
174
- _loggerProxy.default.logger.error("Roap:request#joinMeetingWithRoap --> ".concat(_context.t0));
175
-
176
- throw _context.t0;
177
-
178
- case 19:
179
- _context.next = 22;
104
+ }
105
+ url = "".concat(options.locusUrl, "/").concat(_constants.PARTICIPANT);
106
+ _context.next = 22;
107
+ break;
108
+ case 7:
109
+ if (!options.sipUrl) {
110
+ _context.next = 21;
180
111
  break;
181
-
182
- case 21:
183
- throw new _parameter.default('Must provide a locusUrl or sipTarget');
184
-
185
- case 22:
186
- return _context.abrupt("return", _this.webex.request({
187
- method: _constants.HTTP_VERBS.POST,
188
- uri: url,
189
- body: body
190
- }).then(function (res) {
191
- var locus = res.body.locus;
192
- locus.roapSeq = options.roapMessage.seq;
193
- locus.id = locus.url.split('/').pop();
194
-
195
- _loggerProxy.default.logger.info("Roap:request#joinMeetingWithRoap --> Joined locus [".concat(locus.id, "][").concat(locus.fullState.lastActive, "]"));
196
-
197
- return locus;
198
- }).catch(function (err) {
199
- _loggerProxy.default.logger.error("Roap:request#joinMeetingWithRoap --> failed with error: ".concat(err));
200
-
201
- throw err;
202
- }));
203
-
204
- case 23:
205
- case "end":
206
- return _context.stop();
207
- }
112
+ }
113
+ _context.prev = 8;
114
+ _context.next = 11;
115
+ return _this.webex.internal.services.waitForCatalog('postauth');
116
+ case 11:
117
+ // @ts-ignore
118
+ url = "".concat(_this.webex.internal.services.get('locus'), "/").concat(_constants.LOCI, "/").concat(_constants.CALL);
119
+ body.invitee = {
120
+ address: options.sipTarget
121
+ };
122
+ _context.next = 19;
123
+ break;
124
+ case 15:
125
+ _context.prev = 15;
126
+ _context.t0 = _context["catch"](8);
127
+ _loggerProxy.default.logger.error("Roap:request#joinMeetingWithRoap --> ".concat(_context.t0));
128
+ throw _context.t0;
129
+ case 19:
130
+ _context.next = 22;
131
+ break;
132
+ case 21:
133
+ throw new _parameter.default('Must provide a locusUrl or sipTarget');
134
+ case 22:
135
+ return _context.abrupt("return", _this.webex.request({
136
+ method: _constants.HTTP_VERBS.POST,
137
+ uri: url,
138
+ body: body
139
+ }).then(function (res) {
140
+ var locus = res.body.locus;
141
+ locus.roapSeq = options.roapMessage.seq;
142
+ locus.id = locus.url.split('/').pop();
143
+ _loggerProxy.default.logger.info("Roap:request#joinMeetingWithRoap --> Joined locus [".concat(locus.id, "][").concat(locus.fullState.lastActive, "]"));
144
+ return locus;
145
+ }).catch(function (err) {
146
+ _loggerProxy.default.logger.error("Roap:request#joinMeetingWithRoap --> failed with error: ".concat(err));
147
+ throw err;
148
+ }));
149
+ case 23:
150
+ case "end":
151
+ return _context.stop();
208
152
  }
209
153
  }, _callee, null, [[8, 15]]);
210
154
  })));
211
155
  }
156
+
212
157
  /**
213
158
  * Sends a ROAP message
214
159
  * @param {Object} options
@@ -221,34 +166,28 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
221
166
  * @param {String} options.meetingId
222
167
  * @returns {Promise} returns the response/failure of the request
223
168
  */
224
-
225
169
  }, {
226
170
  key: "sendRoap",
227
171
  value: function sendRoap(options) {
228
172
  var _options$preferTransc2;
229
-
230
173
  var roapMessage = options.roapMessage,
231
- locusSelfUrl = options.locusSelfUrl,
232
- mediaId = options.mediaId,
233
- correlationId = options.correlationId,
234
- meetingId = options.meetingId;
235
-
174
+ locusSelfUrl = options.locusSelfUrl,
175
+ mediaId = options.mediaId,
176
+ correlationId = options.correlationId,
177
+ meetingId = options.meetingId;
236
178
  if (!mediaId) {
237
179
  _loggerProxy.default.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');
238
180
  }
239
-
240
- var mediaUrl = "".concat(locusSelfUrl, "/").concat(_constants.MEDIA); // @ts-ignore
241
-
181
+ var mediaUrl = "".concat(locusSelfUrl, "/").concat(_constants.MEDIA);
182
+ // @ts-ignore
242
183
  var deviceUrl = this.webex.internal.device.url;
243
-
244
184
  _loggerProxy.default.logger.info("Roap:request#sendRoap --> ".concat(mediaUrl, " \n ").concat(roapMessage.messageType, " \n seq:").concat(roapMessage.seq));
245
-
246
185
  _metrics.default.postEvent({
247
186
  event: _config.eventType.MEDIA_REQUEST,
248
187
  meetingId: meetingId
249
- }); // @ts-ignore
250
-
188
+ });
251
189
 
190
+ // @ts-ignore
252
191
  return this.webex.request({
253
192
  uri: mediaUrl,
254
193
  method: _constants.HTTP_VERBS.PUT,
@@ -277,13 +216,11 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
277
216
  _metrics.default.postEvent({
278
217
  event: _config.eventType.MEDIA_RESPONSE,
279
218
  meetingId: meetingId
280
- }); // always it will be the first mediaConnection Object
281
-
219
+ });
282
220
 
221
+ // always it will be the first mediaConnection Object
283
222
  var mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];
284
-
285
223
  _loggerProxy.default.logger.info("Roap:request#sendRoap --> response:".concat((0, _stringify.default)(mediaConnections, null, 2), "'\n StatusCode:'").concat(res.statusCode));
286
-
287
224
  var locus = res.body.locus;
288
225
  locus.roapSeq = options.roapMessage.seq;
289
226
  return _objectSpread({
@@ -299,17 +236,13 @@ var RoapRequest = /*#__PURE__*/function (_StatelessWebexPlugin) {
299
236
  error: _metrics.default.parseLocusError(err, true)
300
237
  }
301
238
  });
302
-
303
239
  _loggerProxy.default.logger.error("Roap:request#sendRoap --> Error:".concat((0, _stringify.default)(err, null, 2)));
304
-
305
240
  _loggerProxy.default.logger.error("Roap:request#sendRoapRequest --> errorBody:".concat((0, _stringify.default)(roapMessage, null, 2), " + '\\n mediaId:'").concat(options.mediaId));
306
-
307
241
  throw err;
308
242
  });
309
243
  }
310
244
  }]);
311
245
  return RoapRequest;
312
246
  }(_webexCore.StatelessWebexPlugin);
313
-
314
247
  exports.default = RoapRequest;
315
248
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RoapRequest","localSdp","reachabilityData","window","localStorage","getItem","REACHABILITY","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","options","info","roapMessage","resolve","then","deviceUrl","webex","internal","device","url","body","usingResource","resourceId","correlationId","localMedias","attachRechabilityData","audioMuted","videoMuted","clientMediaPreferences","preferTranscoding","locusUrl","PARTICIPANT","sipUrl","services","waitForCatalog","get","LOCI","CALL","invitee","address","sipTarget","ParameterError","request","method","HTTP_VERBS","POST","uri","res","locus","roapSeq","seq","id","split","pop","fullState","lastActive","catch","err","locusSelfUrl","mediaId","meetingId","mediaUrl","MEDIA","messageType","Metrics","postEvent","event","eventType","MEDIA_REQUEST","PUT","deviceType","config","meetings","MEDIA_RESPONSE","mediaConnections","statusCode","data","parseLocusError","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["/* global window */\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {\n PARTICIPANT,\n LOCI,\n CALL,\n MEDIA,\n HTTP_VERBS,\n REACHABILITY\n} from '../constants';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\nimport ParameterError from '../common/errors/parameter';\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Joins a meeting via ROAP\n * @param {Object} options\n * @returns {Promise} returns a promise that resolves/rejects whatever the request does\n */\n\n\n attachRechabilityData(localSdp) {\n const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n }\n catch (e) {\n LoggerProxy.logger.error(`Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`);\n }\n }\n\n return localSdp;\n }\n\n joinMeetingWithRoap(options) {\n LoggerProxy.logger.info('Roap:request#joinMeetingWithRoap --> Join locus with roap');\n LoggerProxy.logger.info(`Roap:request#joinMeetingWithRoap --> Local SDP: ${options.roapMessage}`);\n\n return Promise.resolve().then(async () => {\n // @ts-ignore\n const deviceUrl = this.webex.internal.device.url;\n let url = '';\n\n const body: any = {\n deviceUrl,\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(this.attachRechabilityData({\n roapMessage: options.roapMessage,\n audioMuted: false,\n videoMuted: false\n }))\n }\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n };\n\n if (options.locusUrl) {\n url = `${options.locusUrl}/${PARTICIPANT}`;\n }\n else if (options.sipUrl) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: options.sipTarget\n };\n }\n catch (e) {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> ${e}`);\n throw (e);\n }\n }\n else {\n throw new ParameterError('Must provide a locusUrl or sipTarget');\n }\n\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: url,\n body\n })\n .then((res) => {\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n locus.id = locus.url.split('/').pop();\n LoggerProxy.logger.info(`Roap:request#joinMeetingWithRoap --> Joined locus [${locus.id}][${locus.fullState.lastActive}]`);\n\n return locus;\n })\n .catch((err) => {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> failed with error: ${err}`);\n throw err;\n });\n });\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @param {String} options.meetingId\n * @returns {Promise} returns the response/failure of the request\n */\n sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n correlationId: string;\n audioMuted: boolean;\n videoMuted: boolean;\n meetingId: string;\n preferTranscoding?: boolean;\n }) {\n const {\n roapMessage, locusSelfUrl, mediaId, correlationId, meetingId\n } = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');\n }\n\n const mediaUrl = `${locusSelfUrl}/${MEDIA}`;\n // @ts-ignore\n const deviceUrl = this.webex.internal.device.url;\n\n LoggerProxy.logger.info(`Roap:request#sendRoap --> ${mediaUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`);\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meetingId});\n\n // @ts-ignore\n return this.webex\n .request({\n uri: mediaUrl,\n method: HTTP_VERBS.PUT,\n body: {\n device: {\n url: deviceUrl,\n // @ts-ignore\n deviceType: this.config.meetings.deviceType\n },\n correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(this.attachRechabilityData({\n roapMessage,\n // eslint-disable-next-line no-warning-comments\n // TODO: check whats the need for video and audiomute\n audioMuted: !!options.audioMuted,\n videoMuted: !!options.videoMuted\n })),\n mediaId: options.mediaId\n }\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true\n }\n }\n })\n .then((res) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId});\n\n // always it will be the first mediaConnection Object\n const mediaConnections = res.body.mediaConnections && res.body.mediaConnections.length > 0 && res.body.mediaConnections[0];\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> response:${JSON.stringify(mediaConnections, null, 2)}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections})\n };\n })\n .catch((err) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId, data: {error: Metrics.parseLocusError(err, true)}});\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(roapMessage, null, 2)} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAEA;;AACA;;AAQA;;AACA;;AACA;;;;;;;;;;AACA;AACA;AACA;IACqBA,W;;;;;;;;;;;;;IACnB;AACF;AACA;AACA;AACA;IAGE,+BAAsBC,QAAtB,EAAgC;MAC9B,IAAMC,gBAAgB,GAAGC,MAAM,CAACC,YAAP,CAAoBC,OAApB,CAA4BC,uBAAA,CAAaF,YAAzC,CAAzB;;MAEA,IAAIF,gBAAJ,EAAsB;QACpB,IAAI;UACF,IAAMK,kBAAkB,GAAGC,IAAI,CAACC,KAAL,CAAWP,gBAAX,CAA3B;UAEA;;UACA,IAAIK,kBAAkB,IAAI,mBAAYA,kBAAZ,EAAgCG,MAA1D,EAAkE;YAChET,QAAQ,CAACU,YAAT,GAAwBJ,kBAAxB;UACD;QACF,CAPD,CAQA,OAAOK,CAAP,EAAU;UACRC,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB,uFAAwGH,CAAxG;QACD;MACF;;MAED,OAAOX,QAAP;IACD;;;WAED,6BAAoBe,OAApB,EAA6B;MAAA;;MAC3BH,oBAAA,CAAYC,MAAZ,CAAmBG,IAAnB,CAAwB,2DAAxB;;MACAJ,oBAAA,CAAYC,MAAZ,CAAmBG,IAAnB,2DAA2ED,OAAO,CAACE,WAAnF;;MAEA,OAAO,iBAAQC,OAAR,GAAkBC,IAAlB,uFAAuB;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAC5B;gBACMC,SAFsB,GAEV,KAAI,CAACC,KAAL,CAAWC,QAAX,CAAoBC,MAApB,CAA2BC,GAFjB;gBAGxBA,GAHwB,GAGlB,EAHkB;gBAKtBC,IALsB,GAKV;kBAChBL,SAAS,EAATA,SADgB;kBAEhBM,aAAa,EAAEX,OAAO,CAACY,UAAR,IAAsB,IAFrB;kBAGhBC,aAAa,EAAEb,OAAO,CAACa,aAHP;kBAIhBC,WAAW,EAAE,CACX;oBACE7B,QAAQ,EAAE,wBAAe,KAAI,CAAC8B,qBAAL,CAA2B;sBAClDb,WAAW,EAAEF,OAAO,CAACE,WAD6B;sBAElDc,UAAU,EAAE,KAFsC;sBAGlDC,UAAU,EAAE;oBAHsC,CAA3B,CAAf;kBADZ,CADW,CAJG;kBAahBC,sBAAsB,EAAE;oBACtBC,iBAAiB,2BAAEnB,OAAO,CAACmB,iBAAV,yEAA+B;kBAD1B;gBAbR,CALU;;gBAAA,KAuBxBnB,OAAO,CAACoB,QAvBgB;kBAAA;kBAAA;gBAAA;;gBAwB1BX,GAAG,aAAMT,OAAO,CAACoB,QAAd,cAA0BC,sBAA1B,CAAH;gBAxB0B;gBAAA;;cAAA;gBAAA,KA0BnBrB,OAAO,CAACsB,MA1BW;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA;gBAAA,OA6BlB,KAAI,CAAChB,KAAL,CAAWC,QAAX,CAAoBgB,QAApB,CAA6BC,cAA7B,CAA4C,UAA5C,CA7BkB;;cAAA;gBA8BxB;gBACAf,GAAG,aAAM,KAAI,CAACH,KAAL,CAAWC,QAAX,CAAoBgB,QAApB,CAA6BE,GAA7B,CAAiC,OAAjC,CAAN,cAAmDC,eAAnD,cAA2DC,eAA3D,CAAH;gBACAjB,IAAI,CAACkB,OAAL,GAAe;kBACbC,OAAO,EAAE7B,OAAO,CAAC8B;gBADJ,CAAf;gBAhCwB;gBAAA;;cAAA;gBAAA;gBAAA;;gBAqCxBjC,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB;;gBArCwB;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA,MA0CpB,IAAIgC,kBAAJ,CAAmB,sCAAnB,CA1CoB;;cAAA;gBAAA,iCA8CrB,KAAI,CAACzB,KAAL,CACJ0B,OADI,CACI;kBACPC,MAAM,EAAEC,qBAAA,CAAWC,IADZ;kBAEPC,GAAG,EAAE3B,GAFE;kBAGPC,IAAI,EAAJA;gBAHO,CADJ,EAMJN,IANI,CAMC,UAACiC,GAAD,EAAS;kBACb,IAAOC,KAAP,GAAgBD,GAAG,CAAC3B,IAApB,CAAO4B,KAAP;kBAEAA,KAAK,CAACC,OAAN,GAAgBvC,OAAO,CAACE,WAAR,CAAoBsC,GAApC;kBACAF,KAAK,CAACG,EAAN,GAAWH,KAAK,CAAC7B,GAAN,CAAUiC,KAAV,CAAgB,GAAhB,EAAqBC,GAArB,EAAX;;kBACA9C,oBAAA,CAAYC,MAAZ,CAAmBG,IAAnB,8DAA8EqC,KAAK,CAACG,EAApF,eAA2FH,KAAK,CAACM,SAAN,CAAgBC,UAA3G;;kBAEA,OAAOP,KAAP;gBACD,CAdI,EAeJQ,KAfI,CAeE,UAACC,GAAD,EAAS;kBACdlD,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB,mEAAoFgD,GAApF;;kBACA,MAAMA,GAAN;gBACD,CAlBI,CA9CqB;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAAvB,GAAP;IAkED;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS/C,OAAT,EASG;MAAA;;MACD,IACEE,WADF,GAEIF,OAFJ,CACEE,WADF;MAAA,IACe8C,YADf,GAEIhD,OAFJ,CACegD,YADf;MAAA,IAC6BC,OAD7B,GAEIjD,OAFJ,CAC6BiD,OAD7B;MAAA,IACsCpC,aADtC,GAEIb,OAFJ,CACsCa,aADtC;MAAA,IACqDqC,SADrD,GAEIlD,OAFJ,CACqDkD,SADrD;;MAIA,IAAI,CAACD,OAAL,EAAc;QACZpD,oBAAA,CAAYC,MAAZ,CAAmBG,IAAnB,CAAwB,oEAAxB;MACD;;MAED,IAAMkD,QAAQ,aAAMH,YAAN,cAAsBI,gBAAtB,CAAd,CATC,CAUD;;MACA,IAAM/C,SAAS,GAAG,KAAKC,KAAL,CAAWC,QAAX,CAAoBC,MAApB,CAA2BC,GAA7C;;MAEAZ,oBAAA,CAAYC,MAAZ,CAAmBG,IAAnB,qCAAqDkD,QAArD,iBAAoEjD,WAAW,CAACmD,WAAhF,qBAAsGnD,WAAW,CAACsC,GAAlH;;MAEAc,gBAAA,CAAQC,SAAR,CAAkB;QAACC,KAAK,EAAEC,iBAAA,CAAUC,aAAlB;QAAiCR,SAAS,EAATA;MAAjC,CAAlB,EAfC,CAiBD;;;MACA,OAAO,KAAK5C,KAAL,CACJ0B,OADI,CACI;QACPI,GAAG,EAAEe,QADE;QAEPlB,MAAM,EAAEC,qBAAA,CAAWyB,GAFZ;QAGPjD,IAAI,EAAE;UACJF,MAAM,EAAE;YACNC,GAAG,EAAEJ,SADC;YAEN;YACAuD,UAAU,EAAE,KAAKC,MAAL,CAAYC,QAAZ,CAAqBF;UAH3B,CADJ;UAMJ/C,aAAa,EAAbA,aANI;UAOJC,WAAW,EAAE,CACX;YACE7B,QAAQ,EAAE,wBAAe,KAAK8B,qBAAL,CAA2B;cAClDb,WAAW,EAAXA,WADkD;cAElD;cACA;cACAc,UAAU,EAAE,CAAC,CAAChB,OAAO,CAACgB,UAJ4B;cAKlDC,UAAU,EAAE,CAAC,CAACjB,OAAO,CAACiB;YAL4B,CAA3B,CAAf,CADZ;YAQEgC,OAAO,EAAEjD,OAAO,CAACiD;UARnB,CADW,CAPT;UAmBJ/B,sBAAsB,EAAE;YACtBC,iBAAiB,4BAAEnB,OAAO,CAACmB,iBAAV,2EAA+B;UAD1B;QAnBpB;MAHC,CADJ,EA4BJf,IA5BI,CA4BC,UAACiC,GAAD,EAAS;QACbiB,gBAAA,CAAQC,SAAR,CAAkB;UAACC,KAAK,EAAEC,iBAAA,CAAUM,cAAlB;UAAkCb,SAAS,EAATA;QAAlC,CAAlB,EADa,CAGb;;;QACA,IAAMc,gBAAgB,GAAG3B,GAAG,CAAC3B,IAAJ,CAASsD,gBAAT,IAA6B3B,GAAG,CAAC3B,IAAJ,CAASsD,gBAAT,CAA0BtE,MAA1B,GAAmC,CAAhE,IAAqE2C,GAAG,CAAC3B,IAAJ,CAASsD,gBAAT,CAA0B,CAA1B,CAA9F;;QAEAnE,oBAAA,CAAYC,MAAZ,CAAmBG,IAAnB,8CACwC,wBAAe+D,gBAAf,EAAiC,IAAjC,EAAuC,CAAvC,CADxC,6BACoG3B,GAAG,CAAC4B,UADxG;;QAGA,IAAO3B,KAAP,GAAgBD,GAAG,CAAC3B,IAApB,CAAO4B,KAAP;QAEAA,KAAK,CAACC,OAAN,GAAgBvC,OAAO,CAACE,WAAR,CAAoBsC,GAApC;QAEA;UACEF,KAAK,EAALA;QADF,GAEM0B,gBAAgB,IAAI;UAACA,gBAAgB,EAAE3B,GAAG,CAAC3B,IAAJ,CAASsD;QAA5B,CAF1B;MAID,CA7CI,EA8CJlB,KA9CI,CA8CE,UAACC,GAAD,EAAS;QACdO,gBAAA,CAAQC,SAAR,CAAkB;UAACC,KAAK,EAAEC,iBAAA,CAAUM,cAAlB;UAAkCb,SAAS,EAATA,SAAlC;UAA6CgB,IAAI,EAAE;YAACnE,KAAK,EAAEuD,gBAAA,CAAQa,eAAR,CAAwBpB,GAAxB,EAA6B,IAA7B;UAAR;QAAnD,CAAlB;;QACAlD,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB,2CAA4D,wBAAegD,GAAf,EAAoB,IAApB,EAA0B,CAA1B,CAA5D;;QACAlD,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB,sDACgD,wBAAeG,WAAf,EAA4B,IAA5B,EAAkC,CAAlC,CADhD,8BACwGF,OAAO,CAACiD,OADhH;;QAGA,MAAMF,GAAN;MACD,CArDI,CAAP;IAsDD;;;EAjMsCqB,+B"}
1
+ {"version":3,"names":["RoapRequest","localSdp","reachabilityData","window","localStorage","getItem","REACHABILITY","reachabilityResult","JSON","parse","length","reachability","e","LoggerProxy","logger","error","options","info","roapMessage","resolve","then","deviceUrl","webex","internal","device","url","body","usingResource","resourceId","correlationId","localMedias","attachRechabilityData","audioMuted","videoMuted","clientMediaPreferences","preferTranscoding","locusUrl","PARTICIPANT","sipUrl","services","waitForCatalog","get","LOCI","CALL","invitee","address","sipTarget","ParameterError","request","method","HTTP_VERBS","POST","uri","res","locus","roapSeq","seq","id","split","pop","fullState","lastActive","catch","err","locusSelfUrl","mediaId","meetingId","mediaUrl","MEDIA","messageType","Metrics","postEvent","event","eventType","MEDIA_REQUEST","PUT","deviceType","config","meetings","MEDIA_RESPONSE","mediaConnections","statusCode","data","parseLocusError","StatelessWebexPlugin"],"sources":["request.ts"],"sourcesContent":["/* global window */\n// @ts-ignore\nimport {StatelessWebexPlugin} from '@webex/webex-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {PARTICIPANT, LOCI, CALL, MEDIA, HTTP_VERBS, REACHABILITY} from '../constants';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\nimport ParameterError from '../common/errors/parameter';\n/**\n * @class RoapRequest\n */\nexport default class RoapRequest extends StatelessWebexPlugin {\n /**\n * Joins a meeting via ROAP\n * @param {Object} options\n * @returns {Promise} returns a promise that resolves/rejects whatever the request does\n */\n\n attachRechabilityData(localSdp) {\n const reachabilityData = window.localStorage.getItem(REACHABILITY.localStorage);\n\n if (reachabilityData) {\n try {\n const reachabilityResult = JSON.parse(reachabilityData);\n\n /* istanbul ignore else */\n if (reachabilityResult && Object.keys(reachabilityResult).length) {\n localSdp.reachability = reachabilityResult;\n }\n } catch (e) {\n LoggerProxy.logger.error(\n `Roap:request#attachReachabilityData --> Error in parsing reachability data: ${e}`\n );\n }\n }\n\n return localSdp;\n }\n\n joinMeetingWithRoap(options) {\n LoggerProxy.logger.info('Roap:request#joinMeetingWithRoap --> Join locus with roap');\n LoggerProxy.logger.info(\n `Roap:request#joinMeetingWithRoap --> Local SDP: ${options.roapMessage}`\n );\n\n return Promise.resolve().then(async () => {\n // @ts-ignore\n const deviceUrl = this.webex.internal.device.url;\n let url = '';\n\n const body: any = {\n deviceUrl,\n usingResource: options.resourceId || null,\n correlationId: options.correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(\n this.attachRechabilityData({\n roapMessage: options.roapMessage,\n audioMuted: false,\n videoMuted: false,\n })\n ),\n },\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n };\n\n if (options.locusUrl) {\n url = `${options.locusUrl}/${PARTICIPANT}`;\n } else if (options.sipUrl) {\n try {\n // @ts-ignore\n await this.webex.internal.services.waitForCatalog('postauth');\n // @ts-ignore\n url = `${this.webex.internal.services.get('locus')}/${LOCI}/${CALL}`;\n body.invitee = {\n address: options.sipTarget,\n };\n } catch (e) {\n LoggerProxy.logger.error(`Roap:request#joinMeetingWithRoap --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError('Must provide a locusUrl or sipTarget');\n }\n\n // @ts-ignore\n return this.webex\n .request({\n method: HTTP_VERBS.POST,\n uri: url,\n body,\n })\n .then((res) => {\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n locus.id = locus.url.split('/').pop();\n LoggerProxy.logger.info(\n `Roap:request#joinMeetingWithRoap --> Joined locus [${locus.id}][${locus.fullState.lastActive}]`\n );\n\n return locus;\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Roap:request#joinMeetingWithRoap --> failed with error: ${err}`\n );\n throw err;\n });\n });\n }\n\n /**\n * Sends a ROAP message\n * @param {Object} options\n * @param {Object} options.roapMessage\n * @param {String} options.locusSelfUrl\n * @param {String} options.mediaId\n * @param {String} options.correlationId\n * @param {Boolean} options.audioMuted\n * @param {Boolean} options.videoMuted\n * @param {String} options.meetingId\n * @returns {Promise} returns the response/failure of the request\n */\n sendRoap(options: {\n roapMessage: any;\n locusSelfUrl: string;\n mediaId: string;\n correlationId: string;\n audioMuted: boolean;\n videoMuted: boolean;\n meetingId: string;\n preferTranscoding?: boolean;\n }) {\n const {roapMessage, locusSelfUrl, mediaId, correlationId, meetingId} = options;\n\n if (!mediaId) {\n LoggerProxy.logger.info('Roap:request#sendRoap --> Race Condition /call mediaID not present');\n }\n\n const mediaUrl = `${locusSelfUrl}/${MEDIA}`;\n // @ts-ignore\n const deviceUrl = this.webex.internal.device.url;\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> ${mediaUrl} \\n ${roapMessage.messageType} \\n seq:${roapMessage.seq}`\n );\n\n Metrics.postEvent({event: eventType.MEDIA_REQUEST, meetingId});\n\n // @ts-ignore\n return this.webex\n .request({\n uri: mediaUrl,\n method: HTTP_VERBS.PUT,\n body: {\n device: {\n url: deviceUrl,\n // @ts-ignore\n deviceType: this.config.meetings.deviceType,\n },\n correlationId,\n localMedias: [\n {\n localSdp: JSON.stringify(\n this.attachRechabilityData({\n roapMessage,\n // eslint-disable-next-line no-warning-comments\n // TODO: check whats the need for video and audiomute\n audioMuted: !!options.audioMuted,\n videoMuted: !!options.videoMuted,\n })\n ),\n mediaId: options.mediaId,\n },\n ],\n clientMediaPreferences: {\n preferTranscoding: options.preferTranscoding ?? true,\n },\n },\n })\n .then((res) => {\n Metrics.postEvent({event: eventType.MEDIA_RESPONSE, meetingId});\n\n // always it will be the first mediaConnection Object\n const mediaConnections =\n res.body.mediaConnections &&\n res.body.mediaConnections.length > 0 &&\n res.body.mediaConnections[0];\n\n LoggerProxy.logger.info(\n `Roap:request#sendRoap --> response:${JSON.stringify(\n mediaConnections,\n null,\n 2\n )}'\\n StatusCode:'${res.statusCode}`\n );\n const {locus} = res.body;\n\n locus.roapSeq = options.roapMessage.seq;\n\n return {\n locus,\n ...(mediaConnections && {mediaConnections: res.body.mediaConnections}),\n };\n })\n .catch((err) => {\n Metrics.postEvent({\n event: eventType.MEDIA_RESPONSE,\n meetingId,\n data: {error: Metrics.parseLocusError(err, true)},\n });\n LoggerProxy.logger.error(`Roap:request#sendRoap --> Error:${JSON.stringify(err, null, 2)}`);\n LoggerProxy.logger.error(\n `Roap:request#sendRoapRequest --> errorBody:${JSON.stringify(\n roapMessage,\n null,\n 2\n )} + '\\\\n mediaId:'${options.mediaId}`\n );\n throw err;\n });\n }\n}\n"],"mappings":"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"}
@@ -1,63 +1,45 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _javascriptStateMachine = _interopRequireDefault(require("javascript-state-machine"));
14
-
15
10
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
16
-
17
11
  var _constants = require("../constants");
18
-
19
12
  var shouldStep = function shouldStep(roap, meeting) {
20
13
  var messageType = roap.msg.messageType;
21
-
22
14
  if (meeting) {
23
15
  if (messageType === _constants._OFFER_ && roap.remote && meeting.shareStatus === _constants._REQUESTED_) {
24
16
  // The peer-connection is waiting for answer but got an offer Reset. Try to
25
17
  // send the offer later after you accept the answer
26
18
  return false;
27
- } // Assuming the mercury event has come first before the response for the event
19
+ }
20
+ // Assuming the mercury event has come first before the response for the event
28
21
  // we have to wait for the response and trigger the ROAP request later on
29
-
30
-
31
22
  if (!meeting.mediaProperties.peerConnection && messageType === _constants._ANSWER_) {
32
23
  return false;
33
24
  }
34
25
  }
35
-
36
26
  _loggerProxy.default.logger.log('Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ', meeting.mediaProperties.peerConnection.signalingState);
37
-
38
27
  _loggerProxy.default.logger.log('Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ', roap.msg);
39
-
40
28
  return true;
41
29
  };
42
-
43
30
  var handleTransition = function handleTransition(value, signal, meeting) {
44
31
  _loggerProxy.default.logger.log("Roap:state#handleTransition --> current ".concat(value, " to ").concat(signal));
45
-
46
32
  switch (value) {
47
33
  case _constants.ROAP.ROAP_STATE.INIT:
48
34
  if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OFFER) {
49
35
  return _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER;
50
36
  }
51
-
52
37
  if (signal === _constants.ROAP.ROAP_SIGNAL.TX_OFFER) {
53
38
  return _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER;
54
39
  }
55
-
56
40
  return value;
57
-
58
41
  case _constants.ROAP.ROAP_STATE.WAIT_RX_OFFER:
59
42
  return value;
60
-
61
43
  case _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER:
62
44
  if (signal === _constants.ROAP.ROAP_SIGNAL.RX_ANSWER) {
63
45
  // There is a race condition where the /call response comes after mercury event from the server
@@ -65,55 +47,40 @@ var handleTransition = function handleTransition(value, signal, meeting) {
65
47
  if (meeting.mediaId) {
66
48
  return _constants.ROAP.ROAP_STATE.WAIT_TX_OK;
67
49
  }
68
-
69
50
  _loggerProxy.default.logger.error('Roap:state#handleTransition --> Race Condition no mediaId, continuing.');
70
-
71
51
  return value;
72
52
  }
73
-
74
53
  if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OFFER) {
75
54
  return _constants.ROAP.ROAP_STATE.GLARE;
76
55
  }
77
-
78
56
  return value;
79
-
80
57
  case _constants.ROAP.ROAP_STATE.WAIT_TX_OFFER:
81
58
  return value;
82
-
83
59
  case _constants.ROAP.ROAP_STATE.WAIT_TX_ANSWER:
84
60
  if (signal === _constants.ROAP.ROAP_SIGNAL.TX_ANSWER) {
85
61
  return _constants.ROAP.ROAP_STATE.WAIT_RX_OK;
86
62
  }
87
-
88
63
  return value;
89
-
90
64
  case _constants.ROAP.ROAP_STATE.WAIT_TX_OK:
91
65
  if (signal === _constants.ROAP.ROAP_SIGNAL.TX_OK) {
92
66
  return _constants.ROAP.ROAP_STATE.INIT;
93
67
  }
94
-
95
68
  return value;
96
-
97
69
  case _constants.ROAP.ROAP_STATE.WAIT_RX_OK:
98
70
  if (signal === _constants.ROAP.ROAP_SIGNAL.RX_OK) {
99
71
  return _constants.ROAP.ROAP_STATE.INIT;
100
72
  }
101
-
102
73
  return value;
103
-
104
74
  case _constants.ROAP.ROAP_STATE.ERROR:
105
75
  // eslint-disable-next-line no-warning-comments
106
76
  // TODO: resolve error state. Add a signal constant and handle the cleanup
107
77
  return _constants.ROAP.ROAP_STATE.INIT;
108
-
109
78
  case _constants.ROAP.ROAP_STATE.GLARE:
110
79
  return _constants.ROAP.ROAP_STATE.WAIT_RX_ANSWER;
111
-
112
80
  default:
113
81
  return value;
114
82
  }
115
83
  };
116
-
117
84
  var RoapStateMachine = {
118
85
  /**
119
86
  * @param {Roap} roapRef
@@ -126,7 +93,6 @@ var RoapStateMachine = {
126
93
  transitions: [{
127
94
  name: _constants.ROAP.ROAP_TRANSITIONS.STEP,
128
95
  from: '*',
129
-
130
96
  /**
131
97
  * Method to handle the transitions between states
132
98
  * @param {String} signal
@@ -136,11 +102,9 @@ var RoapStateMachine = {
136
102
  */
137
103
  to: function to(signal, meeting, roap) {
138
104
  var value = this.state;
139
-
140
105
  if (!shouldStep(roap, meeting)) {
141
106
  return value;
142
107
  }
143
-
144
108
  return handleTransition(value, signal, meeting);
145
109
  }
146
110
  }],
@@ -155,7 +119,6 @@ var RoapStateMachine = {
155
119
  }
156
120
  }
157
121
  });
158
-
159
122
  return new RoapState();
160
123
  }
161
124
  };
@@ -1 +1 @@
1
- {"version":3,"names":["shouldStep","roap","meeting","messageType","msg","_OFFER_","remote","shareStatus","_REQUESTED_","mediaProperties","peerConnection","_ANSWER_","LoggerProxy","logger","log","signalingState","handleTransition","value","signal","ROAP","ROAP_STATE","INIT","ROAP_SIGNAL","RX_OFFER","WAIT_TX_ANSWER","TX_OFFER","WAIT_RX_ANSWER","WAIT_RX_OFFER","RX_ANSWER","mediaId","WAIT_TX_OK","error","GLARE","WAIT_TX_OFFER","TX_ANSWER","WAIT_RX_OK","TX_OK","RX_OK","ERROR","RoapStateMachine","createState","RoapState","StateMachine","factory","init","transitions","name","ROAP_TRANSITIONS","STEP","from","to","state","methods","onAfterStep","transition"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_, _ANSWER_, _REQUESTED_} from '../constants';\nimport Meeting from '../meeting';\n\nconst shouldStep = (roap, meeting) => {\n const {messageType} = roap.msg;\n\n if (meeting) {\n if (messageType === _OFFER_ && roap.remote && meeting.shareStatus === _REQUESTED_) {\n // The peer-connection is waiting for answer but got an offer Reset. Try to\n // send the offer later after you accept the answer\n return false;\n }\n // Assuming the mercury event has come first before the response for the event\n // we have to wait for the response and trigger the ROAP request later on\n if (!meeting.mediaProperties.peerConnection && messageType === _ANSWER_) {\n return false;\n }\n }\n LoggerProxy.logger.log('Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ', meeting.mediaProperties.peerConnection.signalingState);\n LoggerProxy.logger.log('Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ', roap.msg);\n\n return true;\n};\n\nconst handleTransition = (value, signal, meeting) => {\n LoggerProxy.logger.log(`Roap:state#handleTransition --> current ${value} to ${signal}`);\n\n switch (value) {\n case ROAP.ROAP_STATE.INIT:\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_TX_ANSWER;\n }\n if (signal === ROAP.ROAP_SIGNAL.TX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.RX_ANSWER) {\n // There is a race condition where the /call response comes after mercury event from the server\n // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that\n if (meeting.mediaId) {\n return ROAP.ROAP_STATE.WAIT_TX_OK;\n }\n LoggerProxy.logger.error('Roap:state#handleTransition --> Race Condition no mediaId, continuing.');\n\n return value;\n }\n\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.GLARE;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.TX_ANSWER) {\n return ROAP.ROAP_STATE.WAIT_RX_OK;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (signal === ROAP.ROAP_SIGNAL.TX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OK:\n if (signal === ROAP.ROAP_SIGNAL.RX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.ERROR:\n // eslint-disable-next-line no-warning-comments\n // TODO: resolve error state. Add a signal constant and handle the cleanup\n return ROAP.ROAP_STATE.INIT;\n\n case ROAP.ROAP_STATE.GLARE:\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n default:\n return value;\n }\n};\n\nconst RoapStateMachine = {\n /**\n * @param {Roap} roapRef\n * initializes the state machine\n * @returns {StateMachine} an instance of a state machine\n */\n createState() {\n const RoapState = StateMachine.factory({\n init: ROAP.ROAP_STATE.INIT,\n transitions: [\n {\n name: ROAP.ROAP_TRANSITIONS.STEP,\n from: '*',\n /**\n * Method to handle the transitions between states\n * @param {String} signal\n * @param {Meeting} meeting instance of a Meeting\n * @param {Object} roap\n * @returns {String} new state value\n */\n to(signal: string, meeting: Meeting, roap: object) {\n const value = this.state;\n\n if (!shouldStep(roap, meeting)) {\n return value;\n }\n\n return handleTransition(value, signal, meeting);\n }\n }\n ],\n methods: {\n /**\n * Event that fires after we've transitioned to a new state\n * @param {Object} transition\n * @returns {null}\n */\n onAfterStep(transition: any) {\n LoggerProxy.logger.log(\n `Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '${transition.from}' to '${\n transition.to\n }' with transition '${transition.transition}''.`\n );\n }\n }\n });\n\n return new RoapState();\n }\n};\n\nexport default RoapStateMachine;\n"],"mappings":"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"}
1
+ {"version":3,"names":["shouldStep","roap","meeting","messageType","msg","_OFFER_","remote","shareStatus","_REQUESTED_","mediaProperties","peerConnection","_ANSWER_","LoggerProxy","logger","log","signalingState","handleTransition","value","signal","ROAP","ROAP_STATE","INIT","ROAP_SIGNAL","RX_OFFER","WAIT_TX_ANSWER","TX_OFFER","WAIT_RX_ANSWER","WAIT_RX_OFFER","RX_ANSWER","mediaId","WAIT_TX_OK","error","GLARE","WAIT_TX_OFFER","TX_ANSWER","WAIT_RX_OK","TX_OK","RX_OK","ERROR","RoapStateMachine","createState","RoapState","StateMachine","factory","init","transitions","name","ROAP_TRANSITIONS","STEP","from","to","state","methods","onAfterStep","transition"],"sources":["state.ts"],"sourcesContent":["import StateMachine from 'javascript-state-machine';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {ROAP, _OFFER_, _ANSWER_, _REQUESTED_} from '../constants';\nimport Meeting from '../meeting';\n\nconst shouldStep = (roap, meeting) => {\n const {messageType} = roap.msg;\n\n if (meeting) {\n if (messageType === _OFFER_ && roap.remote && meeting.shareStatus === _REQUESTED_) {\n // The peer-connection is waiting for answer but got an offer Reset. Try to\n // send the offer later after you accept the answer\n return false;\n }\n // Assuming the mercury event has come first before the response for the event\n // we have to wait for the response and trigger the ROAP request later on\n if (!meeting.mediaProperties.peerConnection && messageType === _ANSWER_) {\n return false;\n }\n }\n LoggerProxy.logger.log(\n 'Roap:state#shouldStep --> RoapStateMachine: PeerConnectionState, ',\n meeting.mediaProperties.peerConnection.signalingState\n );\n LoggerProxy.logger.log(\n 'Roap:state#shouldStep --> RoapStateMachine: success save proceeding with transition, ',\n roap.msg\n );\n\n return true;\n};\n\nconst handleTransition = (value, signal, meeting) => {\n LoggerProxy.logger.log(`Roap:state#handleTransition --> current ${value} to ${signal}`);\n\n switch (value) {\n case ROAP.ROAP_STATE.INIT:\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_TX_ANSWER;\n }\n if (signal === ROAP.ROAP_SIGNAL.TX_OFFER) {\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.RX_ANSWER) {\n // There is a race condition where the /call response comes after mercury event from the server\n // As mercury sends roap event if it didnt get back a response. We can send the roap ok after that\n if (meeting.mediaId) {\n return ROAP.ROAP_STATE.WAIT_TX_OK;\n }\n LoggerProxy.logger.error(\n 'Roap:state#handleTransition --> Race Condition no mediaId, continuing.'\n );\n\n return value;\n }\n\n if (signal === ROAP.ROAP_SIGNAL.RX_OFFER) {\n return ROAP.ROAP_STATE.GLARE;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OFFER:\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_ANSWER:\n if (signal === ROAP.ROAP_SIGNAL.TX_ANSWER) {\n return ROAP.ROAP_STATE.WAIT_RX_OK;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_TX_OK:\n if (signal === ROAP.ROAP_SIGNAL.TX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.WAIT_RX_OK:\n if (signal === ROAP.ROAP_SIGNAL.RX_OK) {\n return ROAP.ROAP_STATE.INIT;\n }\n\n return value;\n\n case ROAP.ROAP_STATE.ERROR:\n // eslint-disable-next-line no-warning-comments\n // TODO: resolve error state. Add a signal constant and handle the cleanup\n return ROAP.ROAP_STATE.INIT;\n\n case ROAP.ROAP_STATE.GLARE:\n return ROAP.ROAP_STATE.WAIT_RX_ANSWER;\n default:\n return value;\n }\n};\n\nconst RoapStateMachine = {\n /**\n * @param {Roap} roapRef\n * initializes the state machine\n * @returns {StateMachine} an instance of a state machine\n */\n createState() {\n const RoapState = StateMachine.factory({\n init: ROAP.ROAP_STATE.INIT,\n transitions: [\n {\n name: ROAP.ROAP_TRANSITIONS.STEP,\n from: '*',\n /**\n * Method to handle the transitions between states\n * @param {String} signal\n * @param {Meeting} meeting instance of a Meeting\n * @param {Object} roap\n * @returns {String} new state value\n */\n to(signal: string, meeting: Meeting, roap: object) {\n const value = this.state;\n\n if (!shouldStep(roap, meeting)) {\n return value;\n }\n\n return handleTransition(value, signal, meeting);\n },\n },\n ],\n methods: {\n /**\n * Event that fires after we've transitioned to a new state\n * @param {Object} transition\n * @returns {null}\n */\n onAfterStep(transition: any) {\n LoggerProxy.logger.log(\n `Roap:state#onAfterStep --> RoapStateMachine->onAfterStep#fired! State changed from '${transition.from}' to '${transition.to}' with transition '${transition.transition}''.`\n );\n },\n },\n });\n\n return new RoapState();\n },\n};\n\nexport default RoapStateMachine;\n"],"mappings":"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"}