@webex/plugin-meetings 3.3.1-next.4 → 3.3.1-next.41

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 (115) 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/media/MediaConnectionAwaiter.js +70 -15
  9. package/dist/media/MediaConnectionAwaiter.js.map +1 -1
  10. package/dist/meeting/connectionStateHandler.js +67 -0
  11. package/dist/meeting/connectionStateHandler.js.map +1 -0
  12. package/dist/meeting/index.js +552 -357
  13. package/dist/meeting/index.js.map +1 -1
  14. package/dist/meeting/locusMediaRequest.js +7 -0
  15. package/dist/meeting/locusMediaRequest.js.map +1 -1
  16. package/dist/meeting/util.js +1 -0
  17. package/dist/meeting/util.js.map +1 -1
  18. package/dist/meeting-info/index.js +4 -4
  19. package/dist/meeting-info/index.js.map +1 -1
  20. package/dist/meeting-info/meeting-info-v2.js +2 -2
  21. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  22. package/dist/meeting-info/util.js +17 -17
  23. package/dist/meeting-info/util.js.map +1 -1
  24. package/dist/meeting-info/utilv2.js +16 -16
  25. package/dist/meeting-info/utilv2.js.map +1 -1
  26. package/dist/meetings/collection.js +1 -1
  27. package/dist/meetings/collection.js.map +1 -1
  28. package/dist/meetings/index.js +37 -33
  29. package/dist/meetings/index.js.map +1 -1
  30. package/dist/meetings/meetings.types.js +8 -0
  31. package/dist/meetings/meetings.types.js.map +1 -1
  32. package/dist/meetings/util.js +3 -2
  33. package/dist/meetings/util.js.map +1 -1
  34. package/dist/metrics/constants.js +2 -1
  35. package/dist/metrics/constants.js.map +1 -1
  36. package/dist/metrics/index.js +57 -0
  37. package/dist/metrics/index.js.map +1 -1
  38. package/dist/personal-meeting-room/index.js +1 -1
  39. package/dist/personal-meeting-room/index.js.map +1 -1
  40. package/dist/reachability/clusterReachability.js +108 -53
  41. package/dist/reachability/clusterReachability.js.map +1 -1
  42. package/dist/reachability/index.js +415 -56
  43. package/dist/reachability/index.js.map +1 -1
  44. package/dist/types/constants.d.ts +11 -3
  45. package/dist/types/media/MediaConnectionAwaiter.d.ts +24 -4
  46. package/dist/types/meeting/connectionStateHandler.d.ts +30 -0
  47. package/dist/types/meeting/index.d.ts +27 -7
  48. package/dist/types/meeting/locusMediaRequest.d.ts +2 -0
  49. package/dist/types/meeting-info/index.d.ts +3 -2
  50. package/dist/types/meeting-info/meeting-info-v2.d.ts +3 -2
  51. package/dist/types/meeting-info/util.d.ts +5 -4
  52. package/dist/types/meeting-info/utilv2.d.ts +3 -2
  53. package/dist/types/meetings/collection.d.ts +3 -2
  54. package/dist/types/meetings/index.d.ts +4 -3
  55. package/dist/types/meetings/meetings.types.d.ts +9 -0
  56. package/dist/types/metrics/constants.d.ts +1 -0
  57. package/dist/types/metrics/index.d.ts +15 -0
  58. package/dist/types/reachability/clusterReachability.d.ts +31 -3
  59. package/dist/types/reachability/index.d.ts +93 -2
  60. package/dist/webinar/index.js +1 -1
  61. package/package.json +23 -23
  62. package/src/breakouts/index.ts +7 -1
  63. package/src/constants.ts +13 -17
  64. package/src/media/MediaConnectionAwaiter.ts +89 -14
  65. package/src/meeting/connectionStateHandler.ts +65 -0
  66. package/src/meeting/index.ts +526 -292
  67. package/src/meeting/locusMediaRequest.ts +5 -0
  68. package/src/meeting/util.ts +1 -0
  69. package/src/meeting-info/index.ts +9 -6
  70. package/src/meeting-info/meeting-info-v2.ts +4 -4
  71. package/src/meeting-info/util.ts +23 -28
  72. package/src/meeting-info/utilv2.ts +18 -24
  73. package/src/meetings/collection.ts +3 -3
  74. package/src/meetings/index.ts +39 -40
  75. package/src/meetings/meetings.types.ts +11 -0
  76. package/src/meetings/util.ts +5 -4
  77. package/src/metrics/constants.ts +1 -0
  78. package/src/metrics/index.ts +44 -0
  79. package/src/personal-meeting-room/index.ts +2 -2
  80. package/src/reachability/clusterReachability.ts +86 -25
  81. package/src/reachability/index.ts +316 -27
  82. package/test/unit/spec/breakouts/index.ts +51 -32
  83. package/test/unit/spec/media/MediaConnectionAwaiter.ts +131 -32
  84. package/test/unit/spec/media/index.ts +8 -9
  85. package/test/unit/spec/meeting/connectionStateHandler.ts +102 -0
  86. package/test/unit/spec/meeting/index.js +643 -140
  87. package/test/unit/spec/meeting/locusMediaRequest.ts +7 -0
  88. package/test/unit/spec/meeting-info/index.js +4 -4
  89. package/test/unit/spec/meeting-info/meetinginfov2.js +24 -28
  90. package/test/unit/spec/meeting-info/request.js +2 -2
  91. package/test/unit/spec/meeting-info/utilv2.js +41 -49
  92. package/test/unit/spec/meetings/index.js +14 -0
  93. package/test/unit/spec/metrics/index.js +126 -0
  94. package/test/unit/spec/multistream/mediaRequestManager.ts +2 -2
  95. package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -2
  96. package/test/unit/spec/reachability/clusterReachability.ts +116 -22
  97. package/test/unit/spec/reachability/index.ts +1153 -84
  98. package/test/unit/spec/rtcMetrics/index.ts +1 -0
  99. package/dist/mediaQualityMetrics/config.js +0 -321
  100. package/dist/mediaQualityMetrics/config.js.map +0 -1
  101. package/dist/statsAnalyzer/global.js +0 -44
  102. package/dist/statsAnalyzer/global.js.map +0 -1
  103. package/dist/statsAnalyzer/index.js +0 -1072
  104. package/dist/statsAnalyzer/index.js.map +0 -1
  105. package/dist/statsAnalyzer/mqaUtil.js +0 -368
  106. package/dist/statsAnalyzer/mqaUtil.js.map +0 -1
  107. package/dist/types/mediaQualityMetrics/config.d.ts +0 -247
  108. package/dist/types/statsAnalyzer/global.d.ts +0 -36
  109. package/dist/types/statsAnalyzer/index.d.ts +0 -217
  110. package/dist/types/statsAnalyzer/mqaUtil.d.ts +0 -48
  111. package/src/mediaQualityMetrics/config.ts +0 -255
  112. package/src/statsAnalyzer/global.ts +0 -37
  113. package/src/statsAnalyzer/index.ts +0 -1318
  114. package/src/statsAnalyzer/mqaUtil.ts +0 -463
  115. package/test/unit/spec/stats-analyzer/index.js +0 -1819
@@ -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":"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"}
@@ -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:
@@ -1 +1 @@
1
- {"version":3,"names":["_url","_interopRequireDefault","require","_common","_constants","_parameter","_loggerProxy","_webexErrors","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","MeetingInfoUtil","exports","_classCallCheck2","_createClass2","key","value","getParsedUrl","link","parsedUrl","url","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","hostNameBool","pathNameBool","hostname","includes","WEBEX_DOT_COM","pathname","MEET","MEET_M","MEET_CISCO","MEET_CO","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","destination","_deconstructHydraId","deconstructHydraId","type","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","ParameterError","catch","err","_getDestinationType","_asyncToGenerator2","_regenerator","mark","_callee","from","_options","_res$items$","orgId","userId","options","hydraId","wrap","_callee$","_context","prev","next","_PERSONAL_ROOM_","device","VALID_EMAIL_ADDRESS","email","list","sent","items","abrupt","config","meetings","disableHydraId","_MEETING_LINK_","_SIP_URI_","_CONVERSATION_URL_","wasHydraPerson","_promise","resolve","SpaceIDDeprecatedError","meetingInfoError","stop","getDestinationType","_x","getRequestBody","_destination$info","_destination$info2","password","captchaInfo","installedOrgID","locusId","extraParams","body","DEFAULT_MEETING_INFO_REQUEST_BODY","sipUrl","_MEETING_ID_","meetingKey","conversationUrl","_LOCUS_ID_","info","webExMeetingId","meetingUrl","_MEETING_UUID_","meetingUUID","captchaID","captchaVerifyCode","code","getWebexSite","uri","_uri$match","exceptedDomains","site","match","isExceptedDomain","some","domain","getDirectMeetingInfoURI","_destination$info3","preferredWebexSite","webExSite"],"sources":["utilv2.ts"],"sourcesContent":["import url from 'url';\n\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\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 _MEETING_UUID_,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n JOIN,\n MEET,\n MEET_M,\n MEET_CISCO,\n MEET_CO,\n HTTPS_PROTOCOL,\n UUID_REG,\n VALID_EMAIL_ADDRESS,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {SpaceIDDeprecatedError} from '../common/errors/webex-errors';\n\n/**\n * @class MeetingInfoUtil\n */\nexport default class MeetingInfoUtil {\n static meetingInfoError =\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';\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 let hostNameBool;\n let pathNameBool;\n const parsedUrl = this.getParsedUrl(value);\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(`/${MEET_CISCO}`) ||\n parsedUrl.pathname.includes(`/${MEET_CO}`) ||\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 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 getDestinationType(from) {\n const {type, webex} = from;\n let {destination} = from;\n\n if (type === _PERSONAL_ROOM_) {\n // this case checks if your type is personal room\n if (!destination) {\n // if we are not getting anything in desination we fetch org and user ids from webex instance\n destination = {\n userId: webex.internal.device.userId,\n orgId: webex.internal.device.orgId,\n };\n } else {\n const options = VALID_EMAIL_ADDRESS.test(destination)\n ? {email: destination}\n : {id: destination}; // we are assuming userId as default\n const res = await webex.people.list(options);\n\n let {orgId, id: userId} = res.items[0];\n\n userId = deconstructHydraId(userId).id;\n orgId = deconstructHydraId(orgId).id;\n destination = {userId, orgId};\n }\n }\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n let hydraId;\n\n if (webex && webex.config && webex.config.meetings && webex.config.meetings.disableHydraId) {\n hydraId = null;\n } else {\n hydraId = this.getHydraId(destination);\n }\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 && hydraId.people) {\n options.type = _SIP_URI_;\n\n return this.getSipUriFromHydraPersonId(hydraId && 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 LoggerProxy.logger.error(\n `Meeting-info:util#getDestinationType --> Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.`\n );\n // Error code 30105 added as Space ID deprecated as of beta, Please refer migration guide.\n throw new SpaceIDDeprecatedError();\n } else {\n LoggerProxy.logger.warn(`Meeting-info:util#getDestinationType --> ${this.meetingInfoError}`);\n throw new ParameterError(`${this.meetingInfoError}`);\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 {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {String} options.installedOrgID org ID of user's machine\n * @param {Object} options.destination ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n static getRequestBody(options: {type: string; destination: object} | any) {\n const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} =\n options;\n const body: any = {\n ...DEFAULT_MEETING_INFO_REQUEST_BODY,\n ...extraParams,\n };\n\n switch (type) {\n case _SIP_URI_:\n body.sipUrl = destination;\n break;\n case _PERSONAL_ROOM_:\n body.userId = destination.userId;\n body.orgId = destination.orgId;\n break;\n case _MEETING_ID_:\n body.meetingKey = destination;\n break;\n case _CONVERSATION_URL_:\n body.conversationUrl = destination;\n break;\n case _LOCUS_ID_:\n // use meetingID for the completer meeting info for the already started meeting\n if (destination.info?.webExMeetingId) {\n body.meetingKey = destination.info.webExMeetingId;\n } else if (destination.info?.sipUri) {\n body.sipUrl = destination.info.sipUri;\n }\n break;\n case _MEETING_LINK_:\n body.meetingUrl = destination;\n break;\n case _MEETING_UUID_: {\n body.meetingUUID = destination;\n break;\n }\n default:\n }\n\n if (password) {\n body.password = password;\n }\n\n if (captchaInfo) {\n body.captchaID = captchaInfo.id;\n body.captchaVerifyCode = captchaInfo.code;\n }\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n if (locusId) {\n body.locusId = locusId;\n }\n\n return body;\n }\n\n /**\n * Helper function to parse the webex site/host from a URI string.\n * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')\n * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')\n */\n static getWebexSite(uri: string) {\n const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n const site = uri?.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)?.[1];\n const isExceptedDomain = !!site && exceptedDomains.some((domain) => site.includes(domain));\n\n return isExceptedDomain ? null : site;\n }\n\n /**\n * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} options.destination ?? value.value\n * @returns {String} returns a URI string or null of there is no direct URI\n */\n static getDirectMeetingInfoURI(options: {type: string; destination: any}) {\n const {type, destination} = options;\n\n let preferredWebexSite = null;\n\n switch (type) {\n case _SIP_URI_:\n preferredWebexSite = this.getWebexSite(destination);\n break;\n case _LOCUS_ID_:\n preferredWebexSite = destination.info?.webExSite;\n break;\n default:\n }\n\n return preferredWebexSite ? `https://${preferredWebexSite}/wbxappapi/v1/meetingInfo` : null;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_url","_interopRequireDefault","require","_common","_constants","_parameter","_loggerProxy","_webexErrors","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","MeetingInfoUtil","exports","_classCallCheck2","_createClass2","key","value","getParsedUrl","link","parsedUrl","url","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","hostNameBool","pathNameBool","hostname","includes","WEBEX_DOT_COM","pathname","MEET","MEET_M","MEET_CISCO","MEET_CO","JOIN","isConversationUrl","webex","clusterId","internal","services","getClusterId","endsWith","CONVERSATION_SERVICE","isSipUri","sipString","sipUri","DIALER_REGEX","SIP_ADDRESS","exec","isPhoneNumber","phoneNumber","isValidNumber","PHONE_NUMBER","test","getHydraId","destination","_deconstructHydraId","deconstructHydraId","type","id","cluster","UUID_REG","_ROOM_","room","_PEOPLE_","people","getSipUriFromHydraPersonId","get","then","res","emails","ParameterError","catch","err","_getDestinationType","_asyncToGenerator2","_regenerator","mark","_callee","from","_options","_res$items$","orgId","userId","options","hydraId","wrap","_callee$","_context","prev","next","DESTINATION_TYPE","PERSONAL_ROOM","device","VALID_EMAIL_ADDRESS","email","list","sent","items","abrupt","config","meetings","disableHydraId","MEETING_LINK","SIP_URI","CONVERSATION_URL","wasHydraPerson","_promise","resolve","SpaceIDDeprecatedError","meetingInfoError","stop","getDestinationType","_x","getRequestBody","_destination$info","_destination$info2","password","captchaInfo","installedOrgID","locusId","extraParams","body","DEFAULT_MEETING_INFO_REQUEST_BODY","sipUrl","MEETING_ID","meetingKey","conversationUrl","LOCUS_ID","info","webExMeetingId","meetingUrl","MEETING_UUID","meetingUUID","captchaID","captchaVerifyCode","code","getWebexSite","uri","_uri$match","exceptedDomains","site","match","isExceptedDomain","some","domain","getDirectMeetingInfoURI","_destination$info3","preferredWebexSite","webExSite"],"sources":["utilv2.ts"],"sourcesContent":["import url from 'url';\n\n// @ts-ignore\nimport {deconstructHydraId} from '@webex/common';\n\nimport {\n DESTINATION_TYPE,\n _PEOPLE_,\n _ROOM_,\n DIALER_REGEX,\n WEBEX_DOT_COM,\n CONVERSATION_SERVICE,\n JOIN,\n MEET,\n MEET_M,\n MEET_CISCO,\n MEET_CO,\n HTTPS_PROTOCOL,\n UUID_REG,\n VALID_EMAIL_ADDRESS,\n DEFAULT_MEETING_INFO_REQUEST_BODY,\n} from '../constants';\nimport ParameterError from '../common/errors/parameter';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {SpaceIDDeprecatedError} from '../common/errors/webex-errors';\n\n/**\n * @class MeetingInfoUtil\n */\nexport default class MeetingInfoUtil {\n static meetingInfoError =\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';\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 let hostNameBool;\n let pathNameBool;\n const parsedUrl = this.getParsedUrl(value);\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(`/${MEET_CISCO}`) ||\n parsedUrl.pathname.includes(`/${MEET_CO}`) ||\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 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 getDestinationType(from) {\n const {type, webex} = from;\n let {destination} = from;\n\n if (type === DESTINATION_TYPE.PERSONAL_ROOM) {\n // this case checks if your type is personal room\n if (!destination) {\n // if we are not getting anything in desination we fetch org and user ids from webex instance\n destination = {\n userId: webex.internal.device.userId,\n orgId: webex.internal.device.orgId,\n };\n } else {\n const options = VALID_EMAIL_ADDRESS.test(destination)\n ? {email: destination}\n : {id: destination}; // we are assuming userId as default\n const res = await webex.people.list(options);\n\n let {orgId, id: userId} = res.items[0];\n\n userId = deconstructHydraId(userId).id;\n orgId = deconstructHydraId(orgId).id;\n destination = {userId, orgId};\n }\n }\n if (type) {\n return {\n destination,\n type,\n };\n }\n const options: any = {};\n let hydraId;\n\n if (webex && webex.config && webex.config.meetings && webex.config.meetings.disableHydraId) {\n hydraId = null;\n } else {\n hydraId = this.getHydraId(destination);\n }\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 && hydraId.people) {\n options.type = DESTINATION_TYPE.SIP_URI;\n\n return this.getSipUriFromHydraPersonId(hydraId && 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 LoggerProxy.logger.error(\n `Meeting-info:util#getDestinationType --> Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.`\n );\n // Error code 30105 added as Space ID deprecated as of beta, Please refer migration guide.\n throw new SpaceIDDeprecatedError();\n } else {\n LoggerProxy.logger.warn(`Meeting-info:util#getDestinationType --> ${this.meetingInfoError}`);\n throw new ParameterError(`${this.meetingInfoError}`);\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 {Object} options type and value to fetch meeting info\n * @param {DESTINATION_TYPE} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {String} options.installedOrgID org ID of user's machine\n * @param {Object} options.destination ?? value.value\n * @returns {Object} returns an object with {resource, method}\n */\n static getRequestBody(options: {type: DESTINATION_TYPE; destination: object} | any) {\n const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} =\n options;\n const body: any = {\n ...DEFAULT_MEETING_INFO_REQUEST_BODY,\n ...extraParams,\n };\n\n switch (type) {\n case DESTINATION_TYPE.SIP_URI:\n body.sipUrl = destination;\n break;\n case DESTINATION_TYPE.PERSONAL_ROOM:\n body.userId = destination.userId;\n body.orgId = destination.orgId;\n break;\n case DESTINATION_TYPE.MEETING_ID:\n body.meetingKey = destination;\n break;\n case DESTINATION_TYPE.CONVERSATION_URL:\n body.conversationUrl = destination;\n break;\n case DESTINATION_TYPE.LOCUS_ID:\n // use meetingID for the completer meeting info for the already started meeting\n if (destination.info?.webExMeetingId) {\n body.meetingKey = destination.info.webExMeetingId;\n } else if (destination.info?.sipUri) {\n body.sipUrl = destination.info.sipUri;\n }\n break;\n case DESTINATION_TYPE.MEETING_LINK:\n body.meetingUrl = destination;\n break;\n case DESTINATION_TYPE.MEETING_UUID: {\n body.meetingUUID = destination;\n break;\n }\n default:\n }\n\n if (password) {\n body.password = password;\n }\n\n if (captchaInfo) {\n body.captchaID = captchaInfo.id;\n body.captchaVerifyCode = captchaInfo.code;\n }\n\n if (installedOrgID) {\n body.installedOrgID = installedOrgID;\n }\n\n if (locusId) {\n body.locusId = locusId;\n }\n\n return body;\n }\n\n /**\n * Helper function to parse the webex site/host from a URI string.\n * @param {String} uri string (e.g. '10019857020@convergedats.webex.com')\n * @returns {String} the site/host part of the URI string (e.g. 'convergedats.webex.com')\n */\n static getWebexSite(uri: string) {\n const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n const site = uri?.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)?.[1];\n const isExceptedDomain = !!site && exceptedDomains.some((domain) => site.includes(domain));\n\n return isExceptedDomain ? null : site;\n }\n\n /**\n * Helper function to return the direct URI for fetching meeting info (to avoid a redirect).\n * @param {Object} options type and value to fetch meeting info\n * @param {String} options.type One of [SIP_URI, PERSONAL_ROOM, MEETING_ID, CONVERSATION_URL, LOCUS_ID, MEETING_LINK]\n * @param {Object} options.destination ?? value.value\n * @returns {String} returns a URI string or null of there is no direct URI\n */\n static getDirectMeetingInfoURI(options: {type: string; destination: any}) {\n const {type, destination} = options;\n\n let preferredWebexSite = null;\n\n switch (type) {\n case DESTINATION_TYPE.SIP_URI:\n preferredWebexSite = this.getWebexSite(destination);\n break;\n case DESTINATION_TYPE.LOCUS_ID:\n preferredWebexSite = destination.info?.webExSite;\n break;\n default:\n }\n\n return preferredWebexSite ? `https://${preferredWebexSite}/wbxappapi/v1/meetingInfo` : null;\n }\n}\n"],"mappings":"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"}