@webex/plugin-meetings 3.3.1 → 3.4.0

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 (126) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +7 -2
  3. package/dist/breakouts/index.js.map +1 -1
  4. package/dist/constants.js +11 -4
  5. package/dist/constants.js.map +1 -1
  6. package/dist/interpretation/index.js +1 -1
  7. package/dist/interpretation/siLanguage.js +1 -1
  8. package/dist/locus-info/selfUtils.js +0 -5
  9. package/dist/locus-info/selfUtils.js.map +1 -1
  10. package/dist/media/MediaConnectionAwaiter.js +70 -15
  11. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  12. package/dist/media/index.js +12 -0
  13. package/dist/media/index.js.map +1 -1
  14. package/dist/meeting/connectionStateHandler.js +67 -0
  15. package/dist/meeting/connectionStateHandler.js.map +1 -0
  16. package/dist/meeting/index.js +552 -357
  17. package/dist/meeting/index.js.map +1 -1
  18. package/dist/meeting/locusMediaRequest.js +7 -0
  19. package/dist/meeting/locusMediaRequest.js.map +1 -1
  20. package/dist/meeting/muteState.js +6 -1
  21. package/dist/meeting/muteState.js.map +1 -1
  22. package/dist/meeting/util.js +1 -0
  23. package/dist/meeting/util.js.map +1 -1
  24. package/dist/meeting-info/index.js +4 -4
  25. package/dist/meeting-info/index.js.map +1 -1
  26. package/dist/meeting-info/meeting-info-v2.js +2 -2
  27. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  28. package/dist/meeting-info/util.js +17 -17
  29. package/dist/meeting-info/util.js.map +1 -1
  30. package/dist/meeting-info/utilv2.js +16 -16
  31. package/dist/meeting-info/utilv2.js.map +1 -1
  32. package/dist/meetings/collection.js +1 -1
  33. package/dist/meetings/collection.js.map +1 -1
  34. package/dist/meetings/index.js +37 -33
  35. package/dist/meetings/index.js.map +1 -1
  36. package/dist/meetings/meetings.types.js +8 -0
  37. package/dist/meetings/meetings.types.js.map +1 -1
  38. package/dist/meetings/util.js +3 -2
  39. package/dist/meetings/util.js.map +1 -1
  40. package/dist/metrics/constants.js +2 -1
  41. package/dist/metrics/constants.js.map +1 -1
  42. package/dist/metrics/index.js +57 -0
  43. package/dist/metrics/index.js.map +1 -1
  44. package/dist/personal-meeting-room/index.js +1 -1
  45. package/dist/personal-meeting-room/index.js.map +1 -1
  46. package/dist/reachability/clusterReachability.js +108 -53
  47. package/dist/reachability/clusterReachability.js.map +1 -1
  48. package/dist/reachability/index.js +415 -56
  49. package/dist/reachability/index.js.map +1 -1
  50. package/dist/types/constants.d.ts +11 -3
  51. package/dist/types/media/MediaConnectionAwaiter.d.ts +24 -4
  52. package/dist/types/meeting/connectionStateHandler.d.ts +30 -0
  53. package/dist/types/meeting/index.d.ts +27 -7
  54. package/dist/types/meeting/locusMediaRequest.d.ts +2 -0
  55. package/dist/types/meeting-info/index.d.ts +3 -2
  56. package/dist/types/meeting-info/meeting-info-v2.d.ts +3 -2
  57. package/dist/types/meeting-info/util.d.ts +5 -4
  58. package/dist/types/meeting-info/utilv2.d.ts +3 -2
  59. package/dist/types/meetings/collection.d.ts +3 -2
  60. package/dist/types/meetings/index.d.ts +4 -3
  61. package/dist/types/meetings/meetings.types.d.ts +9 -0
  62. package/dist/types/metrics/constants.d.ts +1 -0
  63. package/dist/types/metrics/index.d.ts +15 -0
  64. package/dist/types/reachability/clusterReachability.d.ts +31 -3
  65. package/dist/types/reachability/index.d.ts +93 -2
  66. package/dist/webinar/index.js +1 -1
  67. package/package.json +23 -23
  68. package/src/breakouts/index.ts +7 -1
  69. package/src/constants.ts +13 -17
  70. package/src/locus-info/selfUtils.ts +0 -5
  71. package/src/media/MediaConnectionAwaiter.ts +89 -14
  72. package/src/media/index.ts +13 -0
  73. package/src/meeting/connectionStateHandler.ts +65 -0
  74. package/src/meeting/index.ts +526 -292
  75. package/src/meeting/locusMediaRequest.ts +5 -0
  76. package/src/meeting/muteState.ts +6 -1
  77. package/src/meeting/util.ts +1 -0
  78. package/src/meeting-info/index.ts +9 -6
  79. package/src/meeting-info/meeting-info-v2.ts +4 -4
  80. package/src/meeting-info/util.ts +23 -28
  81. package/src/meeting-info/utilv2.ts +18 -24
  82. package/src/meetings/collection.ts +3 -3
  83. package/src/meetings/index.ts +39 -40
  84. package/src/meetings/meetings.types.ts +11 -0
  85. package/src/meetings/util.ts +5 -4
  86. package/src/metrics/constants.ts +1 -0
  87. package/src/metrics/index.ts +44 -0
  88. package/src/personal-meeting-room/index.ts +2 -2
  89. package/src/reachability/clusterReachability.ts +86 -25
  90. package/src/reachability/index.ts +316 -27
  91. package/test/unit/spec/breakouts/index.ts +51 -32
  92. package/test/unit/spec/locus-info/selfUtils.js +25 -23
  93. package/test/unit/spec/media/MediaConnectionAwaiter.ts +131 -32
  94. package/test/unit/spec/media/index.ts +42 -27
  95. package/test/unit/spec/meeting/connectionStateHandler.ts +102 -0
  96. package/test/unit/spec/meeting/index.js +758 -179
  97. package/test/unit/spec/meeting/locusMediaRequest.ts +7 -0
  98. package/test/unit/spec/meeting/muteState.js +24 -0
  99. package/test/unit/spec/meeting-info/index.js +4 -4
  100. package/test/unit/spec/meeting-info/meetinginfov2.js +24 -28
  101. package/test/unit/spec/meeting-info/request.js +2 -2
  102. package/test/unit/spec/meeting-info/utilv2.js +41 -49
  103. package/test/unit/spec/meetings/index.js +14 -0
  104. package/test/unit/spec/metrics/index.js +126 -0
  105. package/test/unit/spec/multistream/mediaRequestManager.ts +2 -2
  106. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -2
  107. package/test/unit/spec/reachability/clusterReachability.ts +116 -22
  108. package/test/unit/spec/reachability/index.ts +1153 -84
  109. package/test/unit/spec/rtcMetrics/index.ts +1 -0
  110. package/dist/mediaQualityMetrics/config.js +0 -321
  111. package/dist/mediaQualityMetrics/config.js.map +0 -1
  112. package/dist/statsAnalyzer/global.js +0 -44
  113. package/dist/statsAnalyzer/global.js.map +0 -1
  114. package/dist/statsAnalyzer/index.js +0 -1072
  115. package/dist/statsAnalyzer/index.js.map +0 -1
  116. package/dist/statsAnalyzer/mqaUtil.js +0 -368
  117. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  118. package/dist/types/mediaQualityMetrics/config.d.ts +0 -247
  119. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  120. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  121. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  122. package/src/mediaQualityMetrics/config.ts +0 -255
  123. package/src/statsAnalyzer/global.ts +0 -37
  124. package/src/statsAnalyzer/index.ts +0 -1318
  125. package/src/statsAnalyzer/mqaUtil.ts +0 -463
  126. package/test/unit/spec/stats-analyzer/index.js +0 -1819
@@ -175,7 +175,7 @@ var MeetingInfo = exports.default = /*#__PURE__*/function () {
175
175
  /**
176
176
  * Fetches meeting info from the server
177
177
  * @param {String} destination one of many different types of destinations to look up info for
178
- * @param {String} [type] to match up with the destination value
178
+ * @param {DESTINATION_TYPE} [type] to match up with the destination value
179
179
  * @param {String} [password] meeting password
180
180
  * @param {Object} [captchaInfo] captcha code and id
181
181
  * @param {String} [installedOrgID]
@@ -197,7 +197,7 @@ var MeetingInfo = exports.default = /*#__PURE__*/function () {
197
197
  var locusId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
198
198
  var extraParams = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
199
199
  var options = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};
200
- if (type === _constants._PERSONAL_ROOM_ && !destination) {
200
+ if (type === _constants.DESTINATION_TYPE.PERSONAL_ROOM && !destination) {
201
201
  destination = this.webex.internal.device.userId;
202
202
  }
203
203
  return this.fetchInfoOptions(_util.default.extractDestination(destination, type), type).then(function (infoOptions) {
@@ -205,9 +205,9 @@ var MeetingInfo = exports.default = /*#__PURE__*/function () {
205
205
  // fetch meeting info
206
206
  _this2.requestFetchInfo(_objectSpread(_objectSpread({}, infoOptions), options)).catch(function (error) {
207
207
  // if it failed the first time as meeting link
208
- if (infoOptions.type === _constants._MEETING_LINK_) {
208
+ if (infoOptions.type === _constants.DESTINATION_TYPE.MEETING_LINK) {
209
209
  // convert the meeting link to sip URI and retry
210
- return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants._SIP_URI_)), options));
210
+ return _this2.requestFetchInfo(_objectSpread(_objectSpread({}, _this2.fetchInfoOptions(_util.default.convertLinkToSip(destination), _constants.DESTINATION_TYPE.SIP_URI)), options));
211
211
  }
212
212
  return _promise.default.reject(error);
213
213
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_loggerProxy","_interopRequireDefault","_collection","_request","_util","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingInfo","exports","webex","_classCallCheck2","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","_createClass2","key","value","getMeetingInfo","id","get","setMeetingInfo","info","set","requestFetchInfo","options","_this","meetingId","sendCAevents","internal","newMetrics","submitInternalEvent","name","submitClientEvent","fetchMeetingInfo","then","_info$body","_info$body2","_info$body3","payload","identifiers","meetingLookupUrl","url","webexConferenceIdStr","body","confIdStr","confID","globalMeetingId","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","concat","rawError","_promise","reject","fetchInfoOptions","destination","type","MeetingInfoUtil","generateOptions","_this2","undefined","password","captchaInfo","installedOrgID","locusId","extraParams","_PERSONAL_ROOM_","device","userId","extractDestination","infoOptions","_MEETING_LINK_","convertLinkToSip","_SIP_URI_"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {_MEETING_LINK_, _SIP_URI_, _PERSONAL_ROOM_} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: any) {\n const {meetingId, sendCAevents} = options;\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: info?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,\n globalMeetingId: info?.body?.meetingId,\n },\n });\n }\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error?.url,\n },\n },\n options: {\n meetingId,\n rawError: error,\n },\n });\n }\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} [password] meeting password\n * @param {Object} [captchaInfo] captcha code and id\n * @param {String} [installedOrgID]\n * @param {String} [locusId]\n * @param {Object} [extraParams]\n * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(\n destination: string,\n type: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n password: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n installedOrgID = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n locusId = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n if (type === _PERSONAL_ROOM_ && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (infoOptions) =>\n // fetch meeting info\n this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {\n // if it failed the first time as meeting link\n if (infoOptions.type === _MEETING_LINK_) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo({\n ...this.fetchInfoOptions(MeetingInfoUtil.convertLinkToSip(destination), _SIP_URI_),\n ...options,\n });\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","_loggerProxy","_interopRequireDefault","_collection","_request","_util","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","MeetingInfo","exports","webex","_classCallCheck2","meetingInfoRequest","MeetingInfoRequest","meetingInfoCollection","MeetingInfoCollection","_createClass2","key","value","getMeetingInfo","id","get","setMeetingInfo","info","set","requestFetchInfo","options","_this","meetingId","sendCAevents","internal","newMetrics","submitInternalEvent","name","submitClientEvent","fetchMeetingInfo","then","_info$body","_info$body2","_info$body3","payload","identifiers","meetingLookupUrl","url","webexConferenceIdStr","body","confIdStr","confID","globalMeetingId","sipMeetingUri","meetingLink","catch","error","LoggerProxy","logger","concat","rawError","_promise","reject","fetchInfoOptions","destination","type","MeetingInfoUtil","generateOptions","_this2","undefined","password","captchaInfo","installedOrgID","locusId","extraParams","DESTINATION_TYPE","PERSONAL_ROOM","device","userId","extractDestination","infoOptions","MEETING_LINK","convertLinkToSip","SIP_URI"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {DESTINATION_TYPE} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport MeetingInfoCollection from './collection';\nimport MeetingInfoRequest from './request';\nimport MeetingInfoUtil from './util';\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfo {\n meetingInfoCollection: any;\n meetingInfoRequest: any;\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex: any) {\n this.webex = webex;\n\n /**\n * The meeting info request server interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoRequest = new MeetingInfoRequest(this.webex);\n /**\n * The meeting information collection interface\n * @instance\n * @type {Object}\n * @private\n * @memberof MeetingInfo\n */\n this.meetingInfoCollection = new MeetingInfoCollection();\n }\n\n /**\n * @param {string} id\n * @returns {object}\n * @public\n * @memberof MeetingInfo\n */\n public getMeetingInfo(id: string) {\n return this.meetingInfoCollection.get(id);\n }\n\n /**\n * @param {string} id\n * @param {object} info\n * @returns {null}\n * @public\n * @memberof MeetingInfo\n */\n public setMeetingInfo(id: string, info: object) {\n this.meetingInfoCollection.set(id, info);\n }\n\n /**\n * Helper to make the actual MeetingInfo request and set the meetingInfo if successful, else reject\n * @param {Object} options\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private requestFetchInfo(options: any) {\n const {meetingId, sendCAevents} = options;\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.meetingInfoRequest\n .fetchMeetingInfo(options)\n .then((info) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: info?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: info?.body?.confIdStr || info?.body?.confID,\n globalMeetingId: info?.body?.meetingId,\n },\n });\n }\n if (info && info.body) {\n this.setMeetingInfo(info.body.sipMeetingUri || info.body.meetingLink, info.body);\n }\n\n return info;\n })\n .catch((error) => {\n LoggerProxy.logger.error(\n `Meeting-info:index#requestFetchInfo --> ${error} fetch meetingInfo`\n );\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: error?.url,\n },\n },\n options: {\n meetingId,\n rawError: error,\n },\n });\n }\n\n return Promise.reject(error);\n });\n }\n\n /**\n * Helper to generate the options for the MeetingInfo request\n * @param {String} destination\n * @param {String} type\n * @returns {Promise}\n * @private\n * @memberof MeetingInfo\n */\n private fetchInfoOptions(destination: string, type: string) {\n return MeetingInfoUtil.generateOptions({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n // eslint-disable-next-line valid-jsdoc\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} [password] meeting password\n * @param {Object} [captchaInfo] captcha code and id\n * @param {String} [installedOrgID]\n * @param {String} [locusId]\n * @param {Object} [extraParams]\n * @param {Boolean} [options] meeting Id and whether Call Analyzer events should be sent\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n public fetchMeetingInfo(\n destination: string,\n type: DESTINATION_TYPE = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n password: string = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n installedOrgID = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n locusId = null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n if (type === DESTINATION_TYPE.PERSONAL_ROOM && !destination) {\n destination = this.webex.internal.device.userId;\n }\n\n return this.fetchInfoOptions(MeetingInfoUtil.extractDestination(destination, type), type).then(\n (infoOptions) =>\n // fetch meeting info\n this.requestFetchInfo({...infoOptions, ...options}).catch((error) => {\n // if it failed the first time as meeting link\n if (infoOptions.type === DESTINATION_TYPE.MEETING_LINK) {\n // convert the meeting link to sip URI and retry\n return this.requestFetchInfo({\n ...this.fetchInfoOptions(\n MeetingInfoUtil.convertLinkToSip(destination),\n DESTINATION_TYPE.SIP_URI\n ),\n ...options,\n });\n }\n\n return Promise.reject(error);\n })\n );\n }\n}\n"],"mappings":"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"}
@@ -296,7 +296,7 @@ var MeetingInfoV2 = exports.default = /*#__PURE__*/function () {
296
296
  /**
297
297
  * Fetches meeting info from the server
298
298
  * @param {String} destination one of many different types of destinations to look up info for
299
- * @param {String} [type] to match up with the destination value
299
+ * @param {DESTINATION_TYPE} [type] to match up with the destination value
300
300
  * @param {String} password
301
301
  * @param {Object} captchaInfo
302
302
  * @param {String} captchaInfo.code
@@ -351,7 +351,7 @@ var MeetingInfoV2 = exports.default = /*#__PURE__*/function () {
351
351
  });
352
352
  case 10:
353
353
  destinationType = _context2.sent;
354
- if (!(destinationType.type === _constants._CONVERSATION_URL_ && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {
354
+ if (!(destinationType.type === _constants.DESTINATION_TYPE.CONVERSATION_URL && this.webex.config.meetings.experimental.enableAdhocMeetings && this.webex.meetings.preferredWebexSite)) {
355
355
  _context2.next = 13;
356
356
  break;
357
357
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","_interopRequireDefault","require","_constants","_metrics","_constants2","_utilv","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","POLICY_ERROR_CODES","MeetingInfoV2PasswordError","exports","_Error","_inherits2","_super","wbxAppApiErrorCode","meetingInfo","_this","message","undefined","_classCallCheck2","concat","_assertThisInitialized2","name","sdkMessage","stack","Error","wbxAppApiCode","_createClass2","_wrapNativeSuper2","MeetingInfoV2AdhocMeetingError","_Error2","_super2","_this2","MeetingInfoV2PolicyError","_Error3","_super3","_this3","MeetingInfoV2CaptchaError","_Error4","_super4","captchaInfo","_this4","isPasswordRequired","includes","MeetingInfoV2","webex","err","_err$body","body","code","_err$body2","_err$body3","_err$body4","_err$body4$data","_err$body5","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","key","value","fetchInfoOptions","destination","type","MeetingInfoUtil","getDestinationType","_createAdhocSpaceMeeting","_asyncToGenerator2","_regenerator","mark","_callee","conversationUrl","installedOrgID","_this5","getInvitees","wrap","_callee$","_context","prev","next","meetings","preferredWebexSite","particpants","invitees","participant","email","emailAddress","ciUserUuid","entryUUID","abrupt","request","uri","qs","includeParticipants","disableTransform","then","_ref","_conversation$partici","conversation","title","displayName","spaceUrl","url","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","method","HTTP_VERBS","POST","requestResult","ADHOC_MEETING_SUCCESS","catch","_err$body6","_err$body7","handlePolicyError","ADHOC_MEETING_FAILURE","reason","stop","createAdhocSpaceMeeting","_x","_x2","_fetchMeetingInfo","_callee2","_this6","password","locusId","extraParams","options","meetingId","sendCAevents","destinationType","_destinationType$info","_destinationType$info2","requestOptions","directURI","_args2","_callee2$","_context2","sent","_CONVERSATION_URL_","config","experimental","enableAdhocMeetings","getRequestBody","lodash","difference","_keys","DEFAULT_MEETING_INFO_REQUEST_BODY","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","getDirectMeetingInfoURI","service","WBXAPPAPI_SERVICE","resource","internal","newMetrics","submitInternalEvent","submitClientEvent","response","_response$body","_response$body2","_response$body3","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","rawError","statusCode","_err$body8","_err$body9","_err$body9$data","VERIFY_PASSWORD_ERROR","_err$body10","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","fetchMeetingInfo","_x3"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n _CONVERSATION_URL_,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex\n .request({uri: conversationUrl, qs: {includeParticipants: true}, disableTransform: true})\n .then(({body: conversation}) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n installedOrgID,\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: string = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n const {meetingId, sendCAevents} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === _CONVERSATION_URL_ &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","_interopRequireDefault","require","_constants","_metrics","_constants2","_utilv","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","_Reflect$construct","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","PASSWORD_ERROR_DEFAULT_MESSAGE","CAPTCHA_ERROR_DEFAULT_MESSAGE","ADHOC_MEETING_DEFAULT_ERROR","CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES","POLICY_ERROR_CODES","MeetingInfoV2PasswordError","exports","_Error","_inherits2","_super","wbxAppApiErrorCode","meetingInfo","_this","message","undefined","_classCallCheck2","concat","_assertThisInitialized2","name","sdkMessage","stack","Error","wbxAppApiCode","_createClass2","_wrapNativeSuper2","MeetingInfoV2AdhocMeetingError","_Error2","_super2","_this2","MeetingInfoV2PolicyError","_Error3","_super3","_this3","MeetingInfoV2CaptchaError","_Error4","_super4","captchaInfo","_this4","isPasswordRequired","includes","MeetingInfoV2","webex","err","_err$body","body","code","_err$body2","_err$body3","_err$body4","_err$body4$data","_err$body5","Metrics","sendBehavioralMetric","BEHAVIORAL_METRICS","MEETING_INFO_POLICY_ERROR","data","key","value","fetchInfoOptions","destination","type","MeetingInfoUtil","getDestinationType","_createAdhocSpaceMeeting","_asyncToGenerator2","_regenerator","mark","_callee","conversationUrl","installedOrgID","_this5","getInvitees","wrap","_callee$","_context","prev","next","meetings","preferredWebexSite","particpants","invitees","participant","email","emailAddress","ciUserUuid","entryUUID","abrupt","request","uri","qs","includeParticipants","disableTransform","then","_ref","_conversation$partici","conversation","title","displayName","spaceUrl","url","keyUrl","encryptionKeyUrl","kroUrl","kmsResourceObjectUrl","participants","items","method","HTTP_VERBS","POST","requestResult","ADHOC_MEETING_SUCCESS","catch","_err$body6","_err$body7","handlePolicyError","ADHOC_MEETING_FAILURE","reason","stop","createAdhocSpaceMeeting","_x","_x2","_fetchMeetingInfo","_callee2","_this6","password","locusId","extraParams","options","meetingId","sendCAevents","destinationType","_destinationType$info","_destinationType$info2","requestOptions","directURI","_args2","_callee2$","_context2","sent","DESTINATION_TYPE","CONVERSATION_URL","config","experimental","enableAdhocMeetings","getRequestBody","lodash","difference","_keys","DEFAULT_MEETING_INFO_REQUEST_BODY","FETCH_MEETING_INFO_V1_FAILURE","webExMeetingId","info","sipUri","getDirectMeetingInfoURI","service","WBXAPPAPI_SERVICE","resource","internal","newMetrics","submitInternalEvent","submitClientEvent","response","_response$body","_response$body2","_response$body3","payload","identifiers","meetingLookupUrl","webexConferenceIdStr","confIdStr","confID","globalMeetingId","FETCH_MEETING_INFO_V1_SUCCESS","rawError","statusCode","_err$body8","_err$body9","_err$body9$data","VERIFY_PASSWORD_ERROR","_err$body10","VERIFY_CAPTCHA_ERROR","captchaId","captchaID","verificationImageURL","verificationAudioURL","refreshURL","fetchMeetingInfo","_x3"],"sources":["meeting-info-v2.ts"],"sourcesContent":["import lodash from 'lodash';\nimport {\n HTTP_VERBS,\n DESTINATION_TYPE,\n WBXAPPAPI_SERVICE,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport Metrics from '../metrics';\nimport BEHAVIORAL_METRICS from '../metrics/constants';\n\nimport MeetingInfoUtil from './utilv2';\n\nconst PASSWORD_ERROR_DEFAULT_MESSAGE =\n 'Password required. Call fetchMeetingInfo() with password argument';\nconst CAPTCHA_ERROR_DEFAULT_MESSAGE =\n 'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';\nconst ADHOC_MEETING_DEFAULT_ERROR =\n 'Failed starting the adhoc meeting, Please contact support team ';\nconst CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];\nconst POLICY_ERROR_CODES = [403049, 403104, 403103, 403048, 403102, 403101];\n/**\n * Error to indicate that wbxappapi requires a password\n */\nexport class MeetingInfoV2PasswordError extends Error {\n meetingInfo: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n meetingInfo?: object,\n message: string = PASSWORD_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error generating a adhoc space meeting\n */\nexport class MeetingInfoV2AdhocMeetingError extends Error {\n sdkMessage: any;\n wbxAppApiCode: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, message: string = ADHOC_MEETING_DEFAULT_ERROR) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n }\n}\n\n/**\n * Error preventing join because of a meeting policy\n */\nexport class MeetingInfoV2PolicyError extends Error {\n meetingInfo: object;\n sdkMessage: string;\n wbxAppApiCode: number;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [meetingInfo]\n * @param {String} [message]\n */\n constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2AdhocMeetingError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.meetingInfo = meetingInfo;\n }\n}\n\n/**\n * Error to indicate that preferred webex site not present to start adhoc meeting\n */\nexport class MeetingInfoV2CaptchaError extends Error {\n captchaInfo: any;\n isPasswordRequired: any;\n sdkMessage: any;\n wbxAppApiCode: any;\n body: any;\n /**\n *\n * @constructor\n * @param {Number} [wbxAppApiErrorCode]\n * @param {Object} [captchaInfo]\n * @param {String} [message]\n */\n constructor(\n wbxAppApiErrorCode?: number,\n captchaInfo?: object,\n message: string = CAPTCHA_ERROR_DEFAULT_MESSAGE\n ) {\n super(`${message}, code=${wbxAppApiErrorCode}`);\n this.name = 'MeetingInfoV2PasswordError';\n this.sdkMessage = message;\n this.stack = new Error().stack;\n this.wbxAppApiCode = wbxAppApiErrorCode;\n this.isPasswordRequired = CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES.includes(wbxAppApiErrorCode);\n this.captchaInfo = captchaInfo;\n }\n}\n\n/**\n * @class MeetingInfo\n */\nexport default class MeetingInfoV2 {\n webex: any;\n\n /**\n *\n * @param {WebexSDK} webex\n */\n constructor(webex) {\n this.webex = webex;\n }\n\n /**\n * converts hydra id into conversation url and persons Id\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {String} [type] to match up with the destination value\n * @returns {Promise} destination and type\n * @public\n * @memberof MeetingInfo\n */\n fetchInfoOptions(destination: string, type: string = null) {\n return MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n }\n\n /**\n * Raises a MeetingInfoV2PolicyError for policy error codes\n * @param {any} err the error from the request\n * @returns {void}\n */\n handlePolicyError = (err) => {\n if (!err.body) {\n return;\n }\n\n if (POLICY_ERROR_CODES.includes(err.body?.code)) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_INFO_POLICY_ERROR, {\n code: err.body?.code,\n });\n\n throw new MeetingInfoV2PolicyError(\n err.body?.code,\n err.body?.data?.meetingInfo,\n err.body?.message\n );\n }\n };\n\n /**\n * Creates adhoc space meetings for a space by fetching the conversation infomation\n * @param {String} conversationUrl conversationUrl to start adhoc meeting on\n * @param {String} installedOrgID org ID of user's machine\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {\n if (!this.webex.meetings.preferredWebexSite) {\n throw Error('No preferred webex site found');\n }\n const getInvitees = (particpants = []) => {\n const invitees = [];\n\n if (particpants) {\n particpants.forEach((participant) => {\n invitees.push({\n email: participant.emailAddress,\n ciUserUuid: participant.entryUUID,\n });\n });\n }\n\n return invitees;\n };\n\n return this.webex\n .request({uri: conversationUrl, qs: {includeParticipants: true}, disableTransform: true})\n .then(({body: conversation}) => {\n const body = {\n title: conversation.displayName,\n spaceUrl: conversation.url,\n keyUrl: conversation.encryptionKeyUrl,\n kroUrl: conversation.kmsResourceObjectUrl,\n invitees: getInvitees(conversation.participants?.items),\n installedOrgID,\n };\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n const uri = this.webex.meetings.preferredWebexSite\n ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant`\n : '';\n\n return this.webex.request({\n method: HTTP_VERBS.POST,\n uri,\n body,\n });\n })\n .then((requestResult) => {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);\n\n return requestResult;\n })\n .catch((err) => {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw new MeetingInfoV2AdhocMeetingError(err.body?.code, err.body?.message);\n });\n }\n\n /**\n * Fetches meeting info from the server\n * @param {String} destination one of many different types of destinations to look up info for\n * @param {DESTINATION_TYPE} [type] to match up with the destination value\n * @param {String} password\n * @param {Object} captchaInfo\n * @param {String} captchaInfo.code\n * @param {String} captchaInfo.id\n * @param {String} installedOrgID org ID of user's machine\n * @param {String} locusId\n * @param {Object} extraParams\n * @param {Object} options\n * @returns {Promise} returns a meeting info object\n * @public\n * @memberof MeetingInfo\n */\n async fetchMeetingInfo(\n destination: string,\n type: DESTINATION_TYPE = null,\n password: string = null,\n captchaInfo: {\n code: string;\n id: string;\n } = null,\n installedOrgID = null,\n locusId = null,\n extraParams: object = {},\n options: {meetingId?: string; sendCAevents?: boolean} = {}\n ) {\n const {meetingId, sendCAevents} = options;\n\n const destinationType = await MeetingInfoUtil.getDestinationType({\n destination,\n type,\n webex: this.webex,\n });\n\n if (\n destinationType.type === DESTINATION_TYPE.CONVERSATION_URL &&\n this.webex.config.meetings.experimental.enableAdhocMeetings &&\n this.webex.meetings.preferredWebexSite\n ) {\n return this.createAdhocSpaceMeeting(destinationType.destination, installedOrgID);\n }\n\n const body = await MeetingInfoUtil.getRequestBody({\n ...destinationType,\n password,\n captchaInfo,\n installedOrgID,\n locusId,\n extraParams,\n });\n\n // If the body only contains the default properties, we don't have enough to\n // fetch the meeting info so don't bother trying.\n if (\n !lodash.difference(Object.keys(body), Object.keys(DEFAULT_MEETING_INFO_REQUEST_BODY)).length\n ) {\n const err = new Error('Not enough information to fetch meeting info');\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n destinationType: destinationType?.type,\n webExMeetingId: destinationType?.info?.webExMeetingId,\n sipUri: destinationType?.info?.sipUri,\n });\n\n throw err;\n }\n\n const requestOptions: any = {\n method: HTTP_VERBS.POST,\n body,\n };\n\n const directURI = await MeetingInfoUtil.getDirectMeetingInfoURI(destinationType);\n\n if (directURI) {\n requestOptions.uri = directURI;\n } else {\n requestOptions.service = WBXAPPAPI_SERVICE;\n requestOptions.resource = 'meetingInfo';\n }\n\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.request',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.request',\n options: {\n meetingId,\n },\n });\n }\n\n return this.webex\n .request(requestOptions)\n .then((response) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: response?.url,\n },\n },\n options: {\n meetingId,\n webexConferenceIdStr: response?.body?.confIdStr || response?.body?.confID,\n globalMeetingId: response?.body?.meetingId,\n },\n });\n }\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_SUCCESS);\n\n return response;\n })\n .catch((err) => {\n if (meetingId && sendCAevents) {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.client.meetinginfo.response',\n });\n\n this.webex.internal.newMetrics.submitClientEvent({\n name: 'client.meetinginfo.response',\n payload: {\n identifiers: {\n meetingLookupUrl: err?.url,\n },\n },\n options: {\n meetingId,\n rawError: err,\n },\n });\n }\n\n if (err?.statusCode === 403) {\n this.handlePolicyError(err);\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_PASSWORD_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2PasswordError(err.body?.code, err.body?.data?.meetingInfo);\n }\n if (err?.statusCode === 423) {\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.VERIFY_CAPTCHA_ERROR, {\n reason: err.message,\n stack: err.stack,\n });\n\n throw new MeetingInfoV2CaptchaError(err.body?.code, {\n captchaId: err.body.captchaID,\n verificationImageURL: err.body.verificationImageURL,\n verificationAudioURL: err.body.verificationAudioURL,\n refreshURL: err.body.refreshURL,\n });\n }\n\n Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_MEETING_INFO_V1_FAILURE, {\n reason: err.message,\n stack: err.stack,\n });\n throw err;\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAMA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAuC,SAAAK,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,aAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAqB,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAV,OAAA,EAAAK,OAAA,GAAAM,MAAA,MAAAL,yBAAA,QAAAM,SAAA,OAAAF,gBAAA,CAAAV,OAAA,QAAAa,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAL,KAAA,EAAAd,SAAA,EAAAiB,SAAA,YAAAD,MAAA,GAAAF,KAAA,CAAAhB,KAAA,OAAAE,SAAA,gBAAAoB,2BAAA,CAAAf,OAAA,QAAAW,MAAA;AAAA,SAAAJ,0BAAA,eAAAS,OAAA,qBAAAF,kBAAA,oBAAAA,kBAAA,CAAAG,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAR,kBAAA,CAAAK,OAAA,8CAAApC,CAAA;AAEvC,IAAMwC,8BAA8B,GAClC,mEAAmE;AACrE,IAAMC,6BAA6B,GACjC,qEAAqE;AACvE,IAAMC,2BAA2B,GAC/B,iEAAiE;AACnE,IAAMC,qCAAqC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AAC9D,IAAMC,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3E;AACA;AACA;AAFA,IAGaC,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,0BAAAE,MAAA;EAAA,IAAAC,UAAA,CAAA/B,OAAA,EAAA4B,0BAAA,EAAAE,MAAA;EAAA,IAAAE,MAAA,GAAA5B,YAAA,CAAAwB,0BAAA;EAMrC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,2BACEK,kBAA2B,EAC3BC,WAAoB,EAEpB;IAAA,IAAAC,KAAA;IAAA,IADAC,OAAe,GAAAzC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG4B,8BAA8B;IAAA,IAAAe,gBAAA,CAAAtC,OAAA,QAAA4B,0BAAA;IAEhDO,KAAA,GAAAH,MAAA,CAAAV,IAAA,UAAAiB,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAAlC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAmC,KAAA;IAAA,IAAApC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAmC,KAAA;IAAA,IAAApC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAmC,KAAA;IAAA,IAAApC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAmC,KAAA;IAChDA,KAAA,CAAKM,IAAI,GAAG,4BAA4B;IACxCN,KAAA,CAAKO,UAAU,GAAGN,OAAO;IACzBD,KAAA,CAAKQ,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BR,KAAA,CAAKU,aAAa,GAAGZ,kBAAkB;IACvCE,KAAA,CAAKD,WAAW,GAAGA,WAAW;IAAC,OAAAC,KAAA;EACjC;EAAC,WAAAW,aAAA,CAAA9C,OAAA,EAAA4B,0BAAA;AAAA,oBAAAmB,iBAAA,CAAA/C,OAAA,EAxB6C4C,KAAK;AA2BrD;AACA;AACA;AAFA,IAGaI,8BAA8B,GAAAnB,OAAA,CAAAmB,8BAAA,0BAAAC,OAAA;EAAA,IAAAlB,UAAA,CAAA/B,OAAA,EAAAgD,8BAAA,EAAAC,OAAA;EAAA,IAAAC,OAAA,GAAA9C,YAAA,CAAA4C,8BAAA;EAGzC;AACF;AACA;AACA;AACA;AACA;EACE,SAAAA,+BAAYf,kBAA2B,EAAiD;IAAA,IAAAkB,MAAA;IAAA,IAA/Cf,OAAe,GAAAzC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG8B,2BAA2B;IAAA,IAAAa,gBAAA,CAAAtC,OAAA,QAAAgD,8BAAA;IACpFG,MAAA,GAAAD,OAAA,CAAA5B,IAAA,UAAAiB,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAAlC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAmD,MAAA;IAAA,IAAApD,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAmD,MAAA;IAChDA,MAAA,CAAKV,IAAI,GAAG,gCAAgC;IAC5CU,MAAA,CAAKT,UAAU,GAAGN,OAAO;IACzBe,MAAA,CAAKR,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BQ,MAAA,CAAKN,aAAa,GAAGZ,kBAAkB;IAAC,OAAAkB,MAAA;EAC1C;EAAC,WAAAL,aAAA,CAAA9C,OAAA,EAAAgD,8BAAA;AAAA,oBAAAD,iBAAA,CAAA/C,OAAA,EAfiD4C,KAAK;AAkBzD;AACA;AACA;AAFA,IAGaQ,wBAAwB,GAAAvB,OAAA,CAAAuB,wBAAA,0BAAAC,OAAA;EAAA,IAAAtB,UAAA,CAAA/B,OAAA,EAAAoD,wBAAA,EAAAC,OAAA;EAAA,IAAAC,OAAA,GAAAlD,YAAA,CAAAgD,wBAAA;EAInC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,yBAAYnB,kBAA2B,EAAEC,WAAoB,EAAEE,OAAgB,EAAE;IAAA,IAAAmB,MAAA;IAAA,IAAAjB,gBAAA,CAAAtC,OAAA,QAAAoD,wBAAA;IAC/EG,MAAA,GAAAD,OAAA,CAAAhC,IAAA,UAAAiB,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAAlC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAuD,MAAA;IAAA,IAAAxD,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAuD,MAAA;IAAA,IAAAxD,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAAuD,MAAA;IAChDA,MAAA,CAAKd,IAAI,GAAG,gCAAgC;IAC5Cc,MAAA,CAAKb,UAAU,GAAGN,OAAO;IACzBmB,MAAA,CAAKZ,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BY,MAAA,CAAKV,aAAa,GAAGZ,kBAAkB;IACvCsB,MAAA,CAAKrB,WAAW,GAAGA,WAAW;IAAC,OAAAqB,MAAA;EACjC;EAAC,WAAAT,aAAA,CAAA9C,OAAA,EAAAoD,wBAAA;AAAA,oBAAAL,iBAAA,CAAA/C,OAAA,EAlB2C4C,KAAK;AAqBnD;AACA;AACA;AAFA,IAGaY,yBAAyB,GAAA3B,OAAA,CAAA2B,yBAAA,0BAAAC,OAAA;EAAA,IAAA1B,UAAA,CAAA/B,OAAA,EAAAwD,yBAAA,EAAAC,OAAA;EAAA,IAAAC,OAAA,GAAAtD,YAAA,CAAAoD,yBAAA;EAMpC;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,0BACEvB,kBAA2B,EAC3B0B,WAAoB,EAEpB;IAAA,IAAAC,MAAA;IAAA,IADAxB,OAAe,GAAAzC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG6B,6BAA6B;IAAA,IAAAc,gBAAA,CAAAtC,OAAA,QAAAwD,yBAAA;IAE/CI,MAAA,GAAAF,OAAA,CAAApC,IAAA,UAAAiB,MAAA,CAASH,OAAO,aAAAG,MAAA,CAAUN,kBAAkB;IAAI,IAAAlC,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAA4D,MAAA;IAAA,IAAA7D,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAA4D,MAAA;IAAA,IAAA7D,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAA4D,MAAA;IAAA,IAAA7D,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAA4D,MAAA;IAAA,IAAA7D,gBAAA,CAAAC,OAAA,MAAAwC,uBAAA,CAAAxC,OAAA,EAAA4D,MAAA;IAChDA,MAAA,CAAKnB,IAAI,GAAG,4BAA4B;IACxCmB,MAAA,CAAKlB,UAAU,GAAGN,OAAO;IACzBwB,MAAA,CAAKjB,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAC,CAACD,KAAK;IAC9BiB,MAAA,CAAKf,aAAa,GAAGZ,kBAAkB;IACvC2B,MAAA,CAAKC,kBAAkB,GAAGnC,qCAAqC,CAACoC,QAAQ,CAAC7B,kBAAkB,CAAC;IAC5F2B,MAAA,CAAKD,WAAW,GAAGA,WAAW;IAAC,OAAAC,MAAA;EACjC;EAAC,WAAAd,aAAA,CAAA9C,OAAA,EAAAwD,yBAAA;AAAA,oBAAAT,iBAAA,CAAA/C,OAAA,EAzB4C4C,KAAK;AA4BpD;AACA;AACA;AAFA,IAGqBmB,aAAa,GAAAlC,OAAA,CAAA7B,OAAA;EAGhC;AACF;AACA;AACA;EACE,SAAA+D,cAAYC,KAAK,EAAE;IAAA,IAAA1B,gBAAA,CAAAtC,OAAA,QAAA+D,aAAA;IAAA,IAAAhE,gBAAA,CAAAC,OAAA;IAoBnB;AACF;AACA;AACA;AACA;IAJE,IAAAD,gBAAA,CAAAC,OAAA,6BAKoB,UAACiE,GAAG,EAAK;MAAA,IAAAC,SAAA;MAC3B,IAAI,CAACD,GAAG,CAACE,IAAI,EAAE;QACb;MACF;MAEA,IAAIxC,kBAAkB,CAACmC,QAAQ,EAAAI,SAAA,GAACD,GAAG,CAACE,IAAI,cAAAD,SAAA,uBAARA,SAAA,CAAUE,IAAI,CAAC,EAAE;QAAA,IAAAC,UAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,eAAA,EAAAC,UAAA;QAC/CC,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACC,yBAAyB,EAAE;UACzET,IAAI,GAAAC,UAAA,GAAEJ,GAAG,CAACE,IAAI,cAAAE,UAAA,uBAARA,UAAA,CAAUD;QAClB,CAAC,CAAC;QAEF,MAAM,IAAIhB,wBAAwB,EAAAkB,UAAA,GAChCL,GAAG,CAACE,IAAI,cAAAG,UAAA,uBAARA,UAAA,CAAUF,IAAI,GAAAG,UAAA,GACdN,GAAG,CAACE,IAAI,cAAAI,UAAA,wBAAAC,eAAA,GAARD,UAAA,CAAUO,IAAI,cAAAN,eAAA,uBAAdA,eAAA,CAAgBtC,WAAW,GAAAuC,UAAA,GAC3BR,GAAG,CAACE,IAAI,cAAAM,UAAA,uBAARA,UAAA,CAAUrC,OACZ,CAAC;MACH;IACF,CAAC;IAxCC,IAAI,CAAC4B,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE,IAAAlB,aAAA,CAAA9C,OAAA,EAAA+D,aAAA;IAAAgB,GAAA;IAAAC,KAAA,EAQA,SAAAC,iBAAiBC,WAAmB,EAAuB;MAAA,IAArBC,IAAY,GAAAxF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,IAAI;MACvD,OAAOyF,cAAe,CAACC,kBAAkB,CAAC;QACxCH,WAAW,EAAXA,WAAW;QACXC,IAAI,EAAJA,IAAI;QACJnB,KAAK,EAAE,IAAI,CAACA;MACd,CAAC,CAAC;IACJ;EAAC;IAAAe,GAAA;IAAAC,KAAA;IAyBD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;IAPE;MAAA,IAAAM,wBAAA,OAAAC,kBAAA,CAAAvF,OAAA,gBAAAwF,YAAA,CAAAxF,OAAA,CAAAyF,IAAA,CAQA,SAAAC,QAA8BC,eAAuB,EAAEC,cAAuB;QAAA,IAAAC,MAAA;QAAA,IAAAC,WAAA;QAAA,OAAAN,YAAA,CAAAxF,OAAA,CAAA+F,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAA,IACvE,IAAI,CAACnC,KAAK,CAACoC,QAAQ,CAACC,kBAAkB;gBAAAJ,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAA,MACnCvD,KAAK,CAAC,+BAA+B,CAAC;YAAA;cAExCkD,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAyB;gBAAA,IAArBQ,WAAW,GAAA3G,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA0C,SAAA,GAAA1C,SAAA,MAAG,EAAE;gBACnC,IAAM4G,QAAQ,GAAG,EAAE;gBAEnB,IAAID,WAAW,EAAE;kBACfA,WAAW,CAACxG,OAAO,CAAC,UAAC0G,WAAW,EAAK;oBACnCD,QAAQ,CAAC/G,IAAI,CAAC;sBACZiH,KAAK,EAAED,WAAW,CAACE,YAAY;sBAC/BC,UAAU,EAAEH,WAAW,CAACI;oBAC1B,CAAC,CAAC;kBACJ,CAAC,CAAC;gBACJ;gBAEA,OAAOL,QAAQ;cACjB,CAAC;cAAA,OAAAN,QAAA,CAAAY,MAAA,WAEM,IAAI,CAAC7C,KAAK,CACd8C,OAAO,CAAC;gBAACC,GAAG,EAAEpB,eAAe;gBAAEqB,EAAE,EAAE;kBAACC,mBAAmB,EAAE;gBAAI,CAAC;gBAAEC,gBAAgB,EAAE;cAAI,CAAC,CAAC,CACxFC,IAAI,CAAC,UAAAC,IAAA,EAA0B;gBAAA,IAAAC,qBAAA;gBAAA,IAAlBC,YAAY,GAAAF,IAAA,CAAlBjD,IAAI;gBACV,IAAMA,IAAI,GAAG;kBACXoD,KAAK,EAAED,YAAY,CAACE,WAAW;kBAC/BC,QAAQ,EAAEH,YAAY,CAACI,GAAG;kBAC1BC,MAAM,EAAEL,YAAY,CAACM,gBAAgB;kBACrCC,MAAM,EAAEP,YAAY,CAACQ,oBAAoB;kBACzCvB,QAAQ,EAAET,WAAW,EAAAuB,qBAAA,GAACC,YAAY,CAACS,YAAY,cAAAV,qBAAA,uBAAzBA,qBAAA,CAA2BW,KAAK,CAAC;kBACvDpC,cAAc,EAAdA;gBACF,CAAC;gBAED,IAAIA,cAAc,EAAE;kBAClBzB,IAAI,CAACyB,cAAc,GAAGA,cAAc;gBACtC;gBAEA,IAAMmB,GAAG,GAAGlB,MAAI,CAAC7B,KAAK,CAACoC,QAAQ,CAACC,kBAAkB,cAAA9D,MAAA,CACnCsD,MAAI,CAAC7B,KAAK,CAACoC,QAAQ,CAACC,kBAAkB,2CACjD,EAAE;gBAEN,OAAOR,MAAI,CAAC7B,KAAK,CAAC8C,OAAO,CAAC;kBACxBmB,MAAM,EAAEC,qBAAU,CAACC,IAAI;kBACvBpB,GAAG,EAAHA,GAAG;kBACH5C,IAAI,EAAJA;gBACF,CAAC,CAAC;cACJ,CAAC,CAAC,CACDgD,IAAI,CAAC,UAACiB,aAAa,EAAK;gBACvB1D,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACyD,qBAAqB,CAAC;gBAEtE,OAAOD,aAAa;cACtB,CAAC,CAAC,CACDE,KAAK,CAAC,UAACrE,GAAG,EAAK;gBAAA,IAAAsE,UAAA,EAAAC,UAAA;gBACd3C,MAAI,CAAC4C,iBAAiB,CAACxE,GAAG,CAAC;gBAE3BS,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC8D,qBAAqB,EAAE;kBACrEC,MAAM,EAAE1E,GAAG,CAAC7B,OAAO;kBACnBO,KAAK,EAAEsB,GAAG,CAACtB;gBACb,CAAC,CAAC;gBACF,MAAM,IAAIK,8BAA8B,EAAAuF,UAAA,GAACtE,GAAG,CAACE,IAAI,cAAAoE,UAAA,uBAARA,UAAA,CAAUnE,IAAI,GAAAoE,UAAA,GAAEvE,GAAG,CAACE,IAAI,cAAAqE,UAAA,uBAARA,UAAA,CAAUpG,OAAO,CAAC;cAC7E,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA6D,QAAA,CAAA2C,IAAA;UAAA;QAAA,GAAAlD,OAAA;MAAA,CACL;MAAA,SAAAmD,wBAAAC,EAAA,EAAAC,GAAA;QAAA,OAAAzD,wBAAA,CAAA7F,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAkJ,uBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAfE;EAAA;IAAA9D,GAAA;IAAAC,KAAA;MAAA,IAAAgE,iBAAA,OAAAzD,kBAAA,CAAAvF,OAAA,gBAAAwF,YAAA,CAAAxF,OAAA,CAAAyF,IAAA,CAgBA,SAAAwD,SACE/D,WAAmB;QAAA,IAAAgE,MAAA;QAAA,IAAA/D,IAAA;UAAAgE,QAAA;UAAAxF,WAAA;UAAAiC,cAAA;UAAAwD,OAAA;UAAAC,WAAA;UAAAC,OAAA;UAAAC,SAAA;UAAAC,YAAA;UAAAC,eAAA;UAAAtF,IAAA;UAAAuF,qBAAA;UAAAC,sBAAA;UAAA1F,GAAA;UAAA2F,cAAA;UAAAC,SAAA;UAAAC,MAAA,GAAAnK,SAAA;QAAA,OAAA6F,YAAA,CAAAxF,OAAA,CAAA+F,IAAA,UAAAgE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9D,IAAA,GAAA8D,SAAA,CAAA7D,IAAA;YAAA;cACnBhB,IAAsB,GAAA2E,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,IAAI;cAC7BX,QAAgB,GAAAW,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,IAAI;cACvBnG,WAGC,GAAAmG,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,IAAI;cACRlE,cAAc,GAAAkE,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,IAAI;cACrBV,OAAO,GAAAU,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,IAAI;cACdT,WAAmB,GAAAS,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,CAAC,CAAC;cACxBR,OAAqD,GAAAQ,MAAA,CAAAlK,MAAA,QAAAkK,MAAA,QAAAzH,SAAA,GAAAyH,MAAA,MAAG,CAAC,CAAC;cAEnDP,SAAS,GAAkBD,OAAO,CAAlCC,SAAS,EAAEC,YAAY,GAAIF,OAAO,CAAvBE,YAAY;cAAAQ,SAAA,CAAA7D,IAAA;cAAA,OAEAf,cAAe,CAACC,kBAAkB,CAAC;gBAC/DH,WAAW,EAAXA,WAAW;gBACXC,IAAI,EAAJA,IAAI;gBACJnB,KAAK,EAAE,IAAI,CAACA;cACd,CAAC,CAAC;YAAA;cAJIyF,eAAe,GAAAO,SAAA,CAAAC,IAAA;cAAA,MAOnBR,eAAe,CAACtE,IAAI,KAAK+E,2BAAgB,CAACC,gBAAgB,IAC1D,IAAI,CAACnG,KAAK,CAACoG,MAAM,CAAChE,QAAQ,CAACiE,YAAY,CAACC,mBAAmB,IAC3D,IAAI,CAACtG,KAAK,CAACoC,QAAQ,CAACC,kBAAkB;gBAAA2D,SAAA,CAAA7D,IAAA;gBAAA;cAAA;cAAA,OAAA6D,SAAA,CAAAnD,MAAA,WAE/B,IAAI,CAACgC,uBAAuB,CAACY,eAAe,CAACvE,WAAW,EAAEU,cAAc,CAAC;YAAA;cAAAoE,SAAA,CAAA7D,IAAA;cAAA,OAG/Df,cAAe,CAACmF,cAAc,CAAA7K,aAAA,CAAAA,aAAA,KAC5C+J,eAAe;gBAClBN,QAAQ,EAARA,QAAQ;gBACRxF,WAAW,EAAXA,WAAW;gBACXiC,cAAc,EAAdA,cAAc;gBACdwD,OAAO,EAAPA,OAAO;gBACPC,WAAW,EAAXA;cAAW,EACZ,CAAC;YAAA;cAPIlF,IAAI,GAAA6F,SAAA,CAAAC,IAAA;cAAA,IAYPO,eAAM,CAACC,UAAU,CAAC,IAAAC,KAAA,CAAA1K,OAAA,EAAYmE,IAAI,CAAC,EAAE,IAAAuG,KAAA,CAAA1K,OAAA,EAAY2K,4CAAiC,CAAC,CAAC,CAAC/K,MAAM;gBAAAoK,SAAA,CAAA7D,IAAA;gBAAA;cAAA;cAEtFlC,GAAG,GAAG,IAAIrB,KAAK,CAAC,8CAA8C,CAAC;cACrE8B,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACgG,6BAA6B,EAAE;gBAC7EjC,MAAM,EAAE1E,GAAG,CAAC7B,OAAO;gBACnBqH,eAAe,EAAEA,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEtE,IAAI;gBACtC0F,cAAc,EAAEpB,eAAe,aAAfA,eAAe,wBAAAC,qBAAA,GAAfD,eAAe,CAAEqB,IAAI,cAAApB,qBAAA,uBAArBA,qBAAA,CAAuBmB,cAAc;gBACrDE,MAAM,EAAEtB,eAAe,aAAfA,eAAe,wBAAAE,sBAAA,GAAfF,eAAe,CAAEqB,IAAI,cAAAnB,sBAAA,uBAArBA,sBAAA,CAAuBoB;cACjC,CAAC,CAAC;cAAC,MAEG9G,GAAG;YAAA;cAGL2F,cAAmB,GAAG;gBAC1B3B,MAAM,EAAEC,qBAAU,CAACC,IAAI;gBACvBhE,IAAI,EAAJA;cACF,CAAC;cAAA6F,SAAA,CAAA7D,IAAA;cAAA,OAEuBf,cAAe,CAAC4F,uBAAuB,CAACvB,eAAe,CAAC;YAAA;cAA1EI,SAAS,GAAAG,SAAA,CAAAC,IAAA;cAEf,IAAIJ,SAAS,EAAE;gBACbD,cAAc,CAAC7C,GAAG,GAAG8C,SAAS;cAChC,CAAC,MAAM;gBACLD,cAAc,CAACqB,OAAO,GAAGC,4BAAiB;gBAC1CtB,cAAc,CAACuB,QAAQ,GAAG,aAAa;cACzC;cAEA,IAAI5B,SAAS,IAAIC,YAAY,EAAE;gBAC7B,IAAI,CAACxF,KAAK,CAACoH,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;kBACjD7I,IAAI,EAAE;gBACR,CAAC,CAAC;gBAEF,IAAI,CAACuB,KAAK,CAACoH,QAAQ,CAACC,UAAU,CAACE,iBAAiB,CAAC;kBAC/C9I,IAAI,EAAE,4BAA4B;kBAClC6G,OAAO,EAAE;oBACPC,SAAS,EAATA;kBACF;gBACF,CAAC,CAAC;cACJ;cAAC,OAAAS,SAAA,CAAAnD,MAAA,WAEM,IAAI,CAAC7C,KAAK,CACd8C,OAAO,CAAC8C,cAAc,CAAC,CACvBzC,IAAI,CAAC,UAACqE,QAAQ,EAAK;gBAClB,IAAIjC,SAAS,IAAIC,YAAY,EAAE;kBAAA,IAAAiC,cAAA,EAAAC,eAAA,EAAAC,eAAA;kBAC7BzC,MAAI,CAAClF,KAAK,CAACoH,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;oBACjD7I,IAAI,EAAE;kBACR,CAAC,CAAC;kBAEFyG,MAAI,CAAClF,KAAK,CAACoH,QAAQ,CAACC,UAAU,CAACE,iBAAiB,CAAC;oBAC/C9I,IAAI,EAAE,6BAA6B;oBACnCmJ,OAAO,EAAE;sBACPC,WAAW,EAAE;wBACXC,gBAAgB,EAAEN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE9D;sBAC9B;oBACF,CAAC;oBACD4B,OAAO,EAAE;sBACPC,SAAS,EAATA,SAAS;sBACTwC,oBAAoB,EAAE,CAAAP,QAAQ,aAARA,QAAQ,wBAAAC,cAAA,GAARD,QAAQ,CAAErH,IAAI,cAAAsH,cAAA,uBAAdA,cAAA,CAAgBO,SAAS,MAAIR,QAAQ,aAARA,QAAQ,wBAAAE,eAAA,GAARF,QAAQ,CAAErH,IAAI,cAAAuH,eAAA,uBAAdA,eAAA,CAAgBO,MAAM;sBACzEC,eAAe,EAAEV,QAAQ,aAARA,QAAQ,wBAAAG,eAAA,GAARH,QAAQ,CAAErH,IAAI,cAAAwH,eAAA,uBAAdA,eAAA,CAAgBpC;oBACnC;kBACF,CAAC,CAAC;gBACJ;gBACA7E,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACuH,6BAA6B,CAAC;gBAE9E,OAAOX,QAAQ;cACjB,CAAC,CAAC,CACDlD,KAAK,CAAC,UAACrE,GAAG,EAAK;gBACd,IAAIsF,SAAS,IAAIC,YAAY,EAAE;kBAC7BN,MAAI,CAAClF,KAAK,CAACoH,QAAQ,CAACC,UAAU,CAACC,mBAAmB,CAAC;oBACjD7I,IAAI,EAAE;kBACR,CAAC,CAAC;kBAEFyG,MAAI,CAAClF,KAAK,CAACoH,QAAQ,CAACC,UAAU,CAACE,iBAAiB,CAAC;oBAC/C9I,IAAI,EAAE,6BAA6B;oBACnCmJ,OAAO,EAAE;sBACPC,WAAW,EAAE;wBACXC,gBAAgB,EAAE7H,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEyD;sBACzB;oBACF,CAAC;oBACD4B,OAAO,EAAE;sBACPC,SAAS,EAATA,SAAS;sBACT6C,QAAQ,EAAEnI;oBACZ;kBACF,CAAC,CAAC;gBACJ;gBAEA,IAAI,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEoI,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAC,UAAA,EAAAC,UAAA,EAAAC,eAAA;kBAC3BtD,MAAI,CAACT,iBAAiB,CAACxE,GAAG,CAAC;kBAE3BS,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC6H,qBAAqB,EAAE;oBACrE9D,MAAM,EAAE1E,GAAG,CAAC7B,OAAO;oBACnBO,KAAK,EAAEsB,GAAG,CAACtB;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAIf,0BAA0B,EAAA0K,UAAA,GAACrI,GAAG,CAACE,IAAI,cAAAmI,UAAA,uBAARA,UAAA,CAAUlI,IAAI,GAAAmI,UAAA,GAAEtI,GAAG,CAACE,IAAI,cAAAoI,UAAA,wBAAAC,eAAA,GAARD,UAAA,CAAUzH,IAAI,cAAA0H,eAAA,uBAAdA,eAAA,CAAgBtK,WAAW,CAAC;gBACnF;gBACA,IAAI,CAAA+B,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEoI,UAAU,MAAK,GAAG,EAAE;kBAAA,IAAAK,WAAA;kBAC3BhI,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAAC+H,oBAAoB,EAAE;oBACpEhE,MAAM,EAAE1E,GAAG,CAAC7B,OAAO;oBACnBO,KAAK,EAAEsB,GAAG,CAACtB;kBACb,CAAC,CAAC;kBAEF,MAAM,IAAIa,yBAAyB,EAAAkJ,WAAA,GAACzI,GAAG,CAACE,IAAI,cAAAuI,WAAA,uBAARA,WAAA,CAAUtI,IAAI,EAAE;oBAClDwI,SAAS,EAAE3I,GAAG,CAACE,IAAI,CAAC0I,SAAS;oBAC7BC,oBAAoB,EAAE7I,GAAG,CAACE,IAAI,CAAC2I,oBAAoB;oBACnDC,oBAAoB,EAAE9I,GAAG,CAACE,IAAI,CAAC4I,oBAAoB;oBACnDC,UAAU,EAAE/I,GAAG,CAACE,IAAI,CAAC6I;kBACvB,CAAC,CAAC;gBACJ;gBAEAtI,gBAAO,CAACC,oBAAoB,CAACC,mBAAkB,CAACgG,6BAA6B,EAAE;kBAC7EjC,MAAM,EAAE1E,GAAG,CAAC7B,OAAO;kBACnBO,KAAK,EAAEsB,GAAG,CAACtB;gBACb,CAAC,CAAC;gBACF,MAAMsB,GAAG;cACX,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA+F,SAAA,CAAApB,IAAA;UAAA;QAAA,GAAAK,QAAA;MAAA,CACL;MAAA,SAAAgE,iBAAAC,GAAA;QAAA,OAAAlE,iBAAA,CAAAvJ,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAsN,gBAAA;IAAA;EAAA;EAAA,OAAAlJ,aAAA;AAAA"}
@@ -29,7 +29,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
29
29
  key: "extractDestination",
30
30
  value: function extractDestination(destination, type) {
31
31
  var dest = destination;
32
- if (type === _constants._LOCUS_ID_) {
32
+ if (type === _constants.DESTINATION_TYPE.LOCUS_ID) {
33
33
  if (!(destination && destination.url)) {
34
34
  throw new _parameter.default('You cannot create a meeting by locus without a locus.url defined');
35
35
  }
@@ -185,7 +185,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
185
185
  break;
186
186
  }
187
187
  _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
188
- options.type = _constants._MEETING_LINK_;
188
+ options.type = _constants.DESTINATION_TYPE.MEETING_LINK;
189
189
  options.destination = destination;
190
190
  _context.next = 47;
191
191
  break;
@@ -194,7 +194,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
194
194
  _context.next = 16;
195
195
  break;
196
196
  }
197
- options.type = _constants._SIP_URI_;
197
+ options.type = _constants.DESTINATION_TYPE.SIP_URI;
198
198
  options.destination = destination;
199
199
  _context.next = 47;
200
200
  break;
@@ -203,7 +203,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
203
203
  _context.next = 21;
204
204
  break;
205
205
  }
206
- options.type = _constants._SIP_URI_;
206
+ options.type = _constants.DESTINATION_TYPE.SIP_URI;
207
207
  options.destination = destination;
208
208
  _context.next = 47;
209
209
  break;
@@ -212,7 +212,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
212
212
  _context.next = 26;
213
213
  break;
214
214
  }
215
- options.type = _constants._CONVERSATION_URL_;
215
+ options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;
216
216
  options.destination = destination;
217
217
  _context.next = 47;
218
218
  break;
@@ -221,7 +221,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
221
221
  _context.next = 31;
222
222
  break;
223
223
  }
224
- options.type = _constants._SIP_URI_;
224
+ options.type = _constants.DESTINATION_TYPE.SIP_URI;
225
225
  return _context.abrupt("return", this.getSipUriFromHydraPersonId(hydraId.destination, webex).then(function (res) {
226
226
  options.destination = res;
227
227
 
@@ -236,7 +236,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
236
236
  _context.next = 46;
237
237
  break;
238
238
  }
239
- options.type = _constants._CONVERSATION_URL_;
239
+ options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;
240
240
  _context.prev = 33;
241
241
  _context.next = 36;
242
242
  return webex.internal.services.waitForCatalog('postauth');
@@ -272,7 +272,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
272
272
  }()
273
273
  /**
274
274
  * Helper function to build up a correct locus url depending on the value passed
275
- * @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
275
+ * @param {DESTINATION_TYPE} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
276
276
  * @param {Object} value ?? value.value
277
277
  * @returns {Object} returns an object with {resource, method}
278
278
  */
@@ -283,20 +283,20 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
283
283
  var method = _constants.HTTP_VERBS.GET;
284
284
  var uri = null;
285
285
  switch (type) {
286
- case _constants._SIP_URI_:
287
- case _constants._PERSONAL_ROOM_:
288
- case _constants._MEETING_ID_:
286
+ case _constants.DESTINATION_TYPE.SIP_URI:
287
+ case _constants.DESTINATION_TYPE.PERSONAL_ROOM:
288
+ case _constants.DESTINATION_TYPE.MEETING_ID:
289
289
  resource = "/".concat(_constants.LOCI, "/").concat(_constants.MEETINGINFO, "/").concat(encodeURIComponent(value), "?").concat(_constants.TYPE, "=").concat(type, "&").concat(_constants.USE_URI_LOOKUP_FALSE);
290
290
  break;
291
- case _constants._CONVERSATION_URL_:
291
+ case _constants.DESTINATION_TYPE.CONVERSATION_URL:
292
292
  method = _constants.HTTP_VERBS.PUT;
293
293
  break;
294
- case _constants._LOCUS_ID_:
294
+ case _constants.DESTINATION_TYPE.LOCUS_ID:
295
295
  uri = "".concat(value, "/").concat(_constants.MEETINGINFO);
296
296
  method = _constants.HTTP_VERBS.PUT;
297
297
  break;
298
- case _constants._MEETING_LINK_:
299
- resource = "$/".concat(_constants.LOCI, "/").concat(_constants.MEETINGINFO, "/").concat((0, _btoa.default)(value), "?").concat(_constants.TYPE, "=").concat(_constants._MEETING_LINK_, "&").concat(_constants.USE_URI_LOOKUP_FALSE);
298
+ case _constants.DESTINATION_TYPE.MEETING_LINK:
299
+ resource = "$/".concat(_constants.LOCI, "/").concat(_constants.MEETINGINFO, "/").concat((0, _btoa.default)(value), "?").concat(_constants.TYPE, "=").concat(_constants.DESTINATION_TYPE.MEETING_LINK, "&").concat(_constants.USE_URI_LOOKUP_FALSE);
300
300
  break;
301
301
  default:
302
302
  }
@@ -317,14 +317,14 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
317
317
  if (resourceOptions.method === _constants.HTTP_VERBS.GET) {
318
318
  // for handling URL redirections
319
319
  requestParams.resource = requestParams.resource.concat("&".concat(_constants.ALTERNATE_REDIRECT_TRUE));
320
- } else if (type !== _constants._LOCUS_ID_) {
320
+ } else if (type !== _constants.DESTINATION_TYPE.LOCUS_ID) {
321
321
  // locus id check is a PUT not sure why
322
322
  requestParams.resource = requestParams.resource.concat("?".concat(_constants.ALTERNATE_REDIRECT_TRUE));
323
323
  requestParams.body = {
324
324
  value: value,
325
325
  lookupType: type
326
326
  };
327
- } else if (type === _constants._LOCUS_ID_) {
327
+ } else if (type === _constants.DESTINATION_TYPE.LOCUS_ID) {
328
328
  requestParams = {
329
329
  method: resourceOptions.method,
330
330
  uri: resourceOptions.uri
@@ -1 +1 @@
1
- {"version":3,"names":["_url","_interopRequireDefault","require","_btoa","_common","_parameter","_loggerProxy","_constants","MeetingInfoUtil","exports","default","_classCallCheck2","_createClass2","key","value","extractDestination","destination","type","dest","_LOCUS_ID_","url","ParameterError","getParsedUrl","link","parsedUrl","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","hostNameBool","pathNameBool","hostname","includes","WEBEX_DOT_COM","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","convertLinkToSip","user","userIndex","lastIndexOf","substring","company","companyIndex","replace","WWW_DOT","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","_deconstructHydraId","deconstructHydraId","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","catch","err","_generateOptions","_asyncToGenerator2","_regenerator","mark","_callee","from","options","hydraId","serviceUrl","wrap","_callee$","_context","prev","next","abrupt","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","_promise","resolve","waitForCatalog","getServiceUrlFromClusterId","t0","stop","generateOptions","_x","apply","arguments","getResourceUrl","resource","LOCI","MEETINGINFO","method","HTTP_VERBS","GET","uri","_PERSONAL_ROOM_","_MEETING_ID_","encodeURIComponent","TYPE","USE_URI_LOOKUP_FALSE","PUT","btoa","getRequestParams","resourceOptions","api","requestParams","ALTERNATE_REDIRECT_TRUE","body","lookupType"],"sources":["util.ts"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {\n _SIP_URI_,\n _PERSONAL_ROOM_,\n _MEETING_ID_,\n _CONVERSATION_URL_,\n _LOCUS_ID_,\n _MEETING_LINK_,\n _PEOPLE_,\n _ROOM_,\n HTTP_VERBS,\n USE_URI_LOOKUP_FALSE,\n TYPE,\n LOCI,\n MEETINGINFO,\n ALTERNATE_REDIRECT_TRUE,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n WWW_DOT,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n} from '../constants';\n\n/**\n * @class MeetingInfoUtil\n */\nexport default class MeetingInfoUtil {\n static extractDestination(destination, type) {\n let dest = destination;\n\n if (type === _LOCUS_ID_) {\n if (!(destination && destination.url)) {\n throw new ParameterError(\n 'You cannot create a meeting by locus without a locus.url defined'\n );\n }\n dest = destination.url;\n }\n\n return dest;\n }\n\n static getParsedUrl(link) {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n }\n\n /**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\n static isMeetingLink(value: string) {\n const parsedUrl = this.getParsedUrl(value);\n let hostNameBool;\n let pathNameBool;\n if (parsedUrl) {\n hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n }\n\n return hostNameBool && pathNameBool;\n }\n\n static isConversationUrl(value, webex) {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n }\n\n static convertLinkToSip(value) {\n const parsedUrl = this.getParsedUrl(value);\n\n if (!parsedUrl) {\n return null;\n }\n let user;\n\n if (parsedUrl.pathname) {\n const userIndex = parsedUrl.pathname.lastIndexOf('/');\n\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n let company;\n\n if (parsedUrl.hostname) {\n const companyIndex = parsedUrl.hostname.lastIndexOf(`.${WEBEX_DOT_COM}`);\n\n company = parsedUrl.hostname.substring(0, companyIndex).replace(WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n\n return `${user}@${company}.${WEBEX_DOT_COM}`;\n }\n\n static isSipUri(sipString) {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n }\n\n static isPhoneNumber(phoneNumber) {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n }\n\n static getHydraId(destination) {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n }\n\n static getSipUriFromHydraPersonId(destination, webex) {\n return webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n }\n\n static async generateOptions(from) {\n const {destination, type, webex} = from;\n\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = this.getHydraId(destination);\n\n if (this.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = _MEETING_LINK_;\n options.destination = destination;\n } else if (this.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (this.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (this.isConversationUrl(destination, webex)) {\n options.type = _CONVERSATION_URL_;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = _SIP_URI_;\n\n return this.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = _CONVERSATION_URL_;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const serviceUrl = webex.internal.services.getServiceUrlFromClusterId(\n {\n cluster: hydraId.cluster,\n },\n webex\n );\n\n options.destination = hydraId.destination\n ? `${serviceUrl}/conversations/${hydraId.destination}`\n : serviceUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError(\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'\n );\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {String} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n static getResourceUrl(type: string, value: any) {\n let resource = `/${LOCI}/${MEETINGINFO}`;\n let method = HTTP_VERBS.GET;\n let uri = null;\n\n switch (type) {\n case _SIP_URI_:\n case _PERSONAL_ROOM_:\n case _MEETING_ID_:\n resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(\n value\n )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;\n break;\n case _CONVERSATION_URL_:\n method = HTTP_VERBS.PUT;\n break;\n case _LOCUS_ID_:\n uri = `${value}/${MEETINGINFO}`;\n method = HTTP_VERBS.PUT;\n break;\n case _MEETING_LINK_:\n resource = `$/${LOCI}/${MEETINGINFO}/${btoa(\n value\n )}?${TYPE}=${_MEETING_LINK_}&${USE_URI_LOOKUP_FALSE}`;\n break;\n default:\n }\n\n return {\n uri,\n resource,\n method,\n };\n }\n\n static getRequestParams(resourceOptions, type, value, api) {\n let requestParams: any = {\n method: resourceOptions.method,\n api,\n resource: resourceOptions.resource,\n };\n\n if (resourceOptions.method === HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);\n } else if (type !== _LOCUS_ID_) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n requestParams.body = {\n value,\n lookupType: type,\n };\n } else if (type === _LOCUS_ID_) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri,\n };\n }\n\n return requestParams;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_url","_interopRequireDefault","require","_btoa","_common","_parameter","_loggerProxy","_constants","MeetingInfoUtil","exports","default","_classCallCheck2","_createClass2","key","value","extractDestination","destination","type","dest","DESTINATION_TYPE","LOCUS_ID","url","ParameterError","getParsedUrl","link","parsedUrl","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","hostNameBool","pathNameBool","hostname","includes","WEBEX_DOT_COM","pathname","MEET","MEET_M","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","convertLinkToSip","user","userIndex","lastIndexOf","substring","company","companyIndex","replace","WWW_DOT","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","_deconstructHydraId","deconstructHydraId","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","length","catch","err","_generateOptions","_asyncToGenerator2","_regenerator","mark","_callee","from","options","hydraId","serviceUrl","wrap","_callee$","_context","prev","next","abrupt","MEETING_LINK","SIP_URI","CONVERSATION_URL","wasHydraPerson","_promise","resolve","waitForCatalog","getServiceUrlFromClusterId","t0","stop","generateOptions","_x","apply","arguments","getResourceUrl","resource","LOCI","MEETINGINFO","method","HTTP_VERBS","GET","uri","PERSONAL_ROOM","MEETING_ID","encodeURIComponent","TYPE","USE_URI_LOOKUP_FALSE","PUT","btoa","getRequestParams","resourceOptions","api","requestParams","ALTERNATE_REDIRECT_TRUE","body","lookupType"],"sources":["util.ts"],"sourcesContent":["import url from 'url';\n\nimport btoa from 'btoa';\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\n\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {\n DESTINATION_TYPE,\n _PEOPLE_,\n _ROOM_,\n HTTP_VERBS,\n USE_URI_LOOKUP_FALSE,\n TYPE,\n LOCI,\n MEETINGINFO,\n ALTERNATE_REDIRECT_TRUE,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n WWW_DOT,\n JOIN,\n MEET,\n MEET_M,\n HTTPS_PROTOCOL,\n UUID_REG,\n} from '../constants';\n\n/**\n * @class MeetingInfoUtil\n */\nexport default class MeetingInfoUtil {\n static extractDestination(destination, type: DESTINATION_TYPE) {\n let dest = destination;\n\n if (type === DESTINATION_TYPE.LOCUS_ID) {\n if (!(destination && destination.url)) {\n throw new ParameterError(\n 'You cannot create a meeting by locus without a locus.url defined'\n );\n }\n dest = destination.url;\n }\n\n return dest;\n }\n\n static getParsedUrl(link) {\n try {\n let parsedUrl = url.parse(link);\n\n if (!parsedUrl) {\n return false;\n }\n // hack for links such as <company>.webex.com/meet/<user> without a protocol\n if (!parsedUrl.protocol) {\n parsedUrl = url.parse(`${HTTPS_PROTOCOL}${link}`);\n }\n\n return parsedUrl;\n } catch (error) {\n LoggerProxy.logger.warn(\n `Meeting-info:util#getParsedUrl --> unable to parse the URL, error: ${error}`\n );\n\n return null;\n }\n }\n\n /**\n * Helper function to check if a string matches a known meeting link pattern\n * @param {String} value string to parse and see if it matches a meeting link\n * @returns {Boolean}\n */\n static isMeetingLink(value: string) {\n const parsedUrl = this.getParsedUrl(value);\n let hostNameBool;\n let pathNameBool;\n if (parsedUrl) {\n hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n pathNameBool =\n parsedUrl.pathname &&\n (parsedUrl.pathname.includes(`/${MEET}`) ||\n parsedUrl.pathname.includes(`/${MEET_M}`) ||\n parsedUrl.pathname.includes(`/${JOIN}`));\n }\n\n return hostNameBool && pathNameBool;\n }\n\n static isConversationUrl(value, webex) {\n const clusterId = webex.internal.services.getClusterId(value);\n\n if (clusterId) {\n return clusterId.endsWith(CONVERSATION_SERVICE);\n }\n\n return false;\n }\n\n static convertLinkToSip(value) {\n const parsedUrl = this.getParsedUrl(value);\n\n if (!parsedUrl) {\n return null;\n }\n let user;\n\n if (parsedUrl.pathname) {\n const userIndex = parsedUrl.pathname.lastIndexOf('/');\n\n user = parsedUrl.pathname.substring(userIndex + 1);\n }\n if (!user) {\n return null;\n }\n let company;\n\n if (parsedUrl.hostname) {\n const companyIndex = parsedUrl.hostname.lastIndexOf(`.${WEBEX_DOT_COM}`);\n\n company = parsedUrl.hostname.substring(0, companyIndex).replace(WWW_DOT, '');\n }\n if (!company) {\n return null;\n }\n\n return `${user}@${company}.${WEBEX_DOT_COM}`;\n }\n\n static isSipUri(sipString) {\n // TODO: lets remove regex from this equation and user URI matchers and such\n // have not found a great sip uri parser library as of now\n const sipUri = DIALER_REGEX.SIP_ADDRESS.exec(sipString);\n\n return sipUri;\n }\n\n static isPhoneNumber(phoneNumber) {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n }\n\n static getHydraId(destination) {\n const {type, id, cluster} = deconstructHydraId(destination);\n\n if (id && UUID_REG.test(id)) {\n if (type === _ROOM_) {\n return {room: true, destination: id, cluster};\n }\n if (type === _PEOPLE_) {\n return {people: true, destination: id, cluster};\n }\n\n return {};\n }\n\n return {};\n }\n\n static getSipUriFromHydraPersonId(destination, webex) {\n return webex.people\n .get(destination)\n .then((res) => {\n if (res.emails && res.emails.length) {\n return res.emails[0];\n }\n throw new ParameterError('Hydra Id Lookup was an invalid hydra person id.');\n })\n .catch((err) => {\n LoggerProxy.logger.error(\n `Meeting-info:util#MeetingInfoUtil.getSipUriFromHydraPersonId --> getSipUriFromHydraPersonId ${err} `\n );\n throw err;\n });\n }\n\n static async generateOptions(from) {\n const {destination, type, webex} = from;\n\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n const hydraId = this.getHydraId(destination);\n\n if (this.isMeetingLink(destination)) {\n LoggerProxy.logger.warn(\n 'Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead'\n );\n\n options.type = DESTINATION_TYPE.MEETING_LINK;\n options.destination = destination;\n } else if (this.isSipUri(destination)) {\n options.type = DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n } else if (this.isPhoneNumber(destination)) {\n options.type = DESTINATION_TYPE.SIP_URI;\n options.destination = destination;\n } else if (this.isConversationUrl(destination, webex)) {\n options.type = DESTINATION_TYPE.CONVERSATION_URL;\n options.destination = destination;\n } else if (hydraId.people) {\n options.type = DESTINATION_TYPE.SIP_URI;\n\n return this.getSipUriFromHydraPersonId(hydraId.destination, webex).then((res) => {\n options.destination = res;\n\n // Since hydra person ids require a unique case in which they are\n // entirely converted to a SIP URI, we need to set a flag for detecting\n // this type of destination.\n options.wasHydraPerson = true;\n\n return Promise.resolve(options);\n });\n } else if (hydraId.room) {\n options.type = DESTINATION_TYPE.CONVERSATION_URL;\n try {\n await webex.internal.services.waitForCatalog('postauth');\n\n const serviceUrl = webex.internal.services.getServiceUrlFromClusterId(\n {\n cluster: hydraId.cluster,\n },\n webex\n );\n\n options.destination = hydraId.destination\n ? `${serviceUrl}/conversations/${hydraId.destination}`\n : serviceUrl;\n } catch (e) {\n LoggerProxy.logger.error(`Meeting-info:util#generateOptions --> ${e}`);\n throw e;\n }\n } else {\n throw new ParameterError(\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.'\n );\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * Helper function to build up a correct locus url depending on the value passed\n * @param {DESTINATION_TYPE} type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} value ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n static getResourceUrl(type: DESTINATION_TYPE, value: any) {\n let resource = `/${LOCI}/${MEETINGINFO}`;\n let method = HTTP_VERBS.GET;\n let uri = null;\n\n switch (type) {\n case DESTINATION_TYPE.SIP_URI:\n case DESTINATION_TYPE.PERSONAL_ROOM:\n case DESTINATION_TYPE.MEETING_ID:\n resource = `/${LOCI}/${MEETINGINFO}/${encodeURIComponent(\n value\n )}?${TYPE}=${type}&${USE_URI_LOOKUP_FALSE}`;\n break;\n case DESTINATION_TYPE.CONVERSATION_URL:\n method = HTTP_VERBS.PUT;\n break;\n case DESTINATION_TYPE.LOCUS_ID:\n uri = `${value}/${MEETINGINFO}`;\n method = HTTP_VERBS.PUT;\n break;\n case DESTINATION_TYPE.MEETING_LINK:\n resource = `$/${LOCI}/${MEETINGINFO}/${btoa(value)}?${TYPE}=${\n DESTINATION_TYPE.MEETING_LINK\n }&${USE_URI_LOOKUP_FALSE}`;\n break;\n default:\n }\n\n return {\n uri,\n resource,\n method,\n };\n }\n\n static getRequestParams(resourceOptions, type: DESTINATION_TYPE, value, api) {\n let requestParams: any = {\n method: resourceOptions.method,\n api,\n resource: resourceOptions.resource,\n };\n\n if (resourceOptions.method === HTTP_VERBS.GET) {\n // for handling URL redirections\n requestParams.resource = requestParams.resource.concat(`&${ALTERNATE_REDIRECT_TRUE}`);\n } else if (type !== DESTINATION_TYPE.LOCUS_ID) {\n // locus id check is a PUT not sure why\n requestParams.resource = requestParams.resource.concat(`?${ALTERNATE_REDIRECT_TRUE}`);\n requestParams.body = {\n value,\n lookupType: type,\n };\n } else if (type === DESTINATION_TYPE.LOCUS_ID) {\n requestParams = {\n method: resourceOptions.method,\n uri: resourceOptions.uri,\n };\n }\n\n return requestParams;\n }\n}\n"],"mappings":"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"}
@@ -140,7 +140,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
140
140
  case 0:
141
141
  type = from.type, webex = from.webex;
142
142
  destination = from.destination;
143
- if (!(type === _constants._PERSONAL_ROOM_)) {
143
+ if (!(type === _constants.DESTINATION_TYPE.PERSONAL_ROOM)) {
144
144
  _context.next = 15;
145
145
  break;
146
146
  }
@@ -193,7 +193,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
193
193
  break;
194
194
  }
195
195
  _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
196
- options.type = _constants._MEETING_LINK_;
196
+ options.type = _constants.DESTINATION_TYPE.MEETING_LINK;
197
197
  options.destination = destination;
198
198
  _context.next = 52;
199
199
  break;
@@ -202,7 +202,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
202
202
  _context.next = 30;
203
203
  break;
204
204
  }
205
- options.type = _constants._SIP_URI_;
205
+ options.type = _constants.DESTINATION_TYPE.SIP_URI;
206
206
  options.destination = destination;
207
207
  _context.next = 52;
208
208
  break;
@@ -211,7 +211,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
211
211
  _context.next = 35;
212
212
  break;
213
213
  }
214
- options.type = _constants._SIP_URI_;
214
+ options.type = _constants.DESTINATION_TYPE.SIP_URI;
215
215
  options.destination = destination;
216
216
  _context.next = 52;
217
217
  break;
@@ -220,7 +220,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
220
220
  _context.next = 40;
221
221
  break;
222
222
  }
223
- options.type = _constants._CONVERSATION_URL_;
223
+ options.type = _constants.DESTINATION_TYPE.CONVERSATION_URL;
224
224
  options.destination = destination;
225
225
  _context.next = 52;
226
226
  break;
@@ -229,7 +229,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
229
229
  _context.next = 45;
230
230
  break;
231
231
  }
232
- options.type = _constants._SIP_URI_;
232
+ options.type = _constants.DESTINATION_TYPE.SIP_URI;
233
233
  return _context.abrupt("return", this.getSipUriFromHydraPersonId(hydraId && hydraId.destination, webex).then(function (res) {
234
234
  options.destination = res;
235
235
 
@@ -266,7 +266,7 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
266
266
  /**
267
267
  * Helper function to build up a correct locus url depending on the value passed
268
268
  * @param {Object} options type and value to fetch meeting info
269
- * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
269
+ * @param {DESTINATION_TYPE} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]
270
270
  * @param {String} options.installedOrgID org ID of user's machine
271
271
  * @param {Object} options.destination ?? value.value
272
272
  * @returns {Object} returns an object with {resource, method}
@@ -284,20 +284,20 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
284
284
  extraParams = options.extraParams;
285
285
  var body = _objectSpread(_objectSpread({}, _constants.DEFAULT_MEETING_INFO_REQUEST_BODY), extraParams);
286
286
  switch (type) {
287
- case _constants._SIP_URI_:
287
+ case _constants.DESTINATION_TYPE.SIP_URI:
288
288
  body.sipUrl = destination;
289
289
  break;
290
- case _constants._PERSONAL_ROOM_:
290
+ case _constants.DESTINATION_TYPE.PERSONAL_ROOM:
291
291
  body.userId = destination.userId;
292
292
  body.orgId = destination.orgId;
293
293
  break;
294
- case _constants._MEETING_ID_:
294
+ case _constants.DESTINATION_TYPE.MEETING_ID:
295
295
  body.meetingKey = destination;
296
296
  break;
297
- case _constants._CONVERSATION_URL_:
297
+ case _constants.DESTINATION_TYPE.CONVERSATION_URL:
298
298
  body.conversationUrl = destination;
299
299
  break;
300
- case _constants._LOCUS_ID_:
300
+ case _constants.DESTINATION_TYPE.LOCUS_ID:
301
301
  // use meetingID for the completer meeting info for the already started meeting
302
302
  if ((_destination$info = destination.info) !== null && _destination$info !== void 0 && _destination$info.webExMeetingId) {
303
303
  body.meetingKey = destination.info.webExMeetingId;
@@ -305,10 +305,10 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
305
305
  body.sipUrl = destination.info.sipUri;
306
306
  }
307
307
  break;
308
- case _constants._MEETING_LINK_:
308
+ case _constants.DESTINATION_TYPE.MEETING_LINK:
309
309
  body.meetingUrl = destination;
310
310
  break;
311
- case _constants._MEETING_UUID_:
311
+ case _constants.DESTINATION_TYPE.MEETING_UUID:
312
312
  {
313
313
  body.meetingUUID = destination;
314
314
  break;
@@ -363,10 +363,10 @@ var MeetingInfoUtil = exports.default = /*#__PURE__*/function () {
363
363
  destination = options.destination;
364
364
  var preferredWebexSite = null;
365
365
  switch (type) {
366
- case _constants._SIP_URI_:
366
+ case _constants.DESTINATION_TYPE.SIP_URI:
367
367
  preferredWebexSite = this.getWebexSite(destination);
368
368
  break;
369
- case _constants._LOCUS_ID_:
369
+ case _constants.DESTINATION_TYPE.LOCUS_ID:
370
370
  preferredWebexSite = (_destination$info3 = destination.info) === null || _destination$info3 === void 0 ? void 0 : _destination$info3.webExSite;
371
371
  break;
372
372
  default: