@webex/plugin-meetings 2.60.0-next.1 → 2.60.0-next.3

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 (62) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +1 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/controls-options-manager/enums.js +2 -1
  6. package/dist/controls-options-manager/enums.js.map +1 -1
  7. package/dist/interpretation/index.js +1 -1
  8. package/dist/interpretation/siLanguage.js +1 -1
  9. package/dist/locus-info/parser.js +5 -5
  10. package/dist/locus-info/parser.js.map +1 -1
  11. package/dist/media/index.js +6 -5
  12. package/dist/media/index.js.map +1 -1
  13. package/dist/meeting/in-meeting-actions.js +4 -0
  14. package/dist/meeting/in-meeting-actions.js.map +1 -1
  15. package/dist/meeting/index.js +276 -150
  16. package/dist/meeting/index.js.map +1 -1
  17. package/dist/meeting-info/meeting-info-v2.js +3 -0
  18. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  19. package/dist/meeting-info/utilv2.js +14 -29
  20. package/dist/meeting-info/utilv2.js.map +1 -1
  21. package/dist/meetings/collection.js +17 -0
  22. package/dist/meetings/collection.js.map +1 -1
  23. package/dist/meetings/index.js +30 -9
  24. package/dist/meetings/index.js.map +1 -1
  25. package/dist/metrics/constants.js +3 -0
  26. package/dist/metrics/constants.js.map +1 -1
  27. package/dist/reconnection-manager/index.js +27 -28
  28. package/dist/reconnection-manager/index.js.map +1 -1
  29. package/dist/rtcMetrics/index.js +25 -0
  30. package/dist/rtcMetrics/index.js.map +1 -1
  31. package/dist/statsAnalyzer/index.js +21 -1
  32. package/dist/statsAnalyzer/index.js.map +1 -1
  33. package/dist/statsAnalyzer/mqaUtil.js +16 -16
  34. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  35. package/dist/webinar/index.js +1 -1
  36. package/package.json +21 -22
  37. package/src/constants.ts +10 -4
  38. package/src/controls-options-manager/enums.ts +2 -0
  39. package/src/locus-info/parser.ts +6 -6
  40. package/src/media/index.ts +5 -5
  41. package/src/meeting/in-meeting-actions.ts +8 -0
  42. package/src/meeting/index.ts +249 -120
  43. package/src/meeting-info/meeting-info-v2.ts +4 -0
  44. package/src/meeting-info/utilv2.ts +6 -19
  45. package/src/meetings/collection.ts +13 -0
  46. package/src/meetings/index.ts +28 -10
  47. package/src/metrics/constants.ts +3 -0
  48. package/src/reconnection-manager/index.ts +63 -68
  49. package/src/rtcMetrics/index.ts +24 -0
  50. package/src/statsAnalyzer/index.ts +30 -1
  51. package/src/statsAnalyzer/mqaUtil.ts +17 -14
  52. package/test/unit/spec/media/index.ts +20 -4
  53. package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
  54. package/test/unit/spec/meeting/index.js +1253 -157
  55. package/test/unit/spec/meeting/muteState.js +2 -1
  56. package/test/unit/spec/meeting-info/meetinginfov2.js +28 -0
  57. package/test/unit/spec/meetings/collection.js +12 -0
  58. package/test/unit/spec/meetings/index.js +382 -118
  59. package/test/unit/spec/member/util.js +0 -31
  60. package/test/unit/spec/reconnection-manager/index.js +42 -12
  61. package/test/unit/spec/rtcMetrics/index.ts +20 -0
  62. package/test/unit/spec/stats-analyzer/index.js +12 -2
@@ -261,6 +261,9 @@ var MeetingInfoV2 = exports.default = /*#__PURE__*/function () {
261
261
  invitees: getInvitees((_conversation$partici = conversation.participants) === null || _conversation$partici === void 0 ? void 0 : _conversation$partici.items),
262
262
  installedOrgID: installedOrgID
263
263
  };
264
+ if (installedOrgID) {
265
+ body.installedOrgID = installedOrgID;
266
+ }
264
267
  var uri = _this5.webex.meetings.preferredWebexSite ? "https://".concat(_this5.webex.meetings.preferredWebexSite, "/wbxappapi/v2/meetings/spaceInstant") : '';
265
268
  return _this5.webex.request({
266
269
  method: _constants.HTTP_VERBS.POST,
@@ -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 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","_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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"}
@@ -20,6 +20,7 @@ var _common = require("@webex/common");
20
20
  var _constants = require("../constants");
21
21
  var _parameter = _interopRequireDefault(require("../common/errors/parameter"));
22
22
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
23
+ var _webexErrors = require("../common/errors/webex-errors");
23
24
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } // @ts-ignore
25
26
  var MeetingInfoUtil = {};
@@ -106,7 +107,7 @@ MeetingInfoUtil.getSipUriFromHydraPersonId = function (destination, webex) {
106
107
  };
107
108
  MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
108
109
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(from) {
109
- var type, webex, destination, _options, res, _res$items$, orgId, userId, options, hydraId, serviceUrl;
110
+ var type, webex, destination, _options, res, _res$items$, orgId, userId, options, hydraId;
110
111
  return _regenerator.default.wrap(function _callee$(_context) {
111
112
  while (1) switch (_context.prev = _context.next) {
112
113
  case 0:
@@ -167,7 +168,7 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
167
168
  _loggerProxy.default.logger.warn('Meeting-info:util#generateOptions --> WARN, use of Meeting Link is deprecated, please use a SIP URI instead');
168
169
  options.type = _constants._MEETING_LINK_;
169
170
  options.destination = destination;
170
- _context.next = 62;
171
+ _context.next = 52;
171
172
  break;
172
173
  case 25:
173
174
  if (!MeetingInfoUtil.isSipUri(destination)) {
@@ -176,7 +177,7 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
176
177
  }
177
178
  options.type = _constants._SIP_URI_;
178
179
  options.destination = destination;
179
- _context.next = 62;
180
+ _context.next = 52;
180
181
  break;
181
182
  case 30:
182
183
  if (!MeetingInfoUtil.isPhoneNumber(destination)) {
@@ -185,7 +186,7 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
185
186
  }
186
187
  options.type = _constants._SIP_URI_;
187
188
  options.destination = destination;
188
- _context.next = 62;
189
+ _context.next = 52;
189
190
  break;
190
191
  case 35:
191
192
  if (!MeetingInfoUtil.isConversationUrl(destination, webex)) {
@@ -194,7 +195,7 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
194
195
  }
195
196
  options.type = _constants._CONVERSATION_URL_;
196
197
  options.destination = destination;
197
- _context.next = 62;
198
+ _context.next = 52;
198
199
  break;
199
200
  case 40:
200
201
  if (!(hydraId && hydraId.people)) {
@@ -212,39 +213,23 @@ MeetingInfoUtil.getDestinationType = /*#__PURE__*/function () {
212
213
  return _promise.default.resolve(options);
213
214
  }));
214
215
  case 45:
215
- if (!(hydraId && hydraId.room)) {
216
- _context.next = 60;
216
+ if (!hydraId.room) {
217
+ _context.next = 50;
217
218
  break;
218
219
  }
219
- options.type = _constants._CONVERSATION_URL_;
220
- _context.prev = 47;
221
- _context.next = 50;
222
- return webex.internal.services.waitForCatalog('postauth');
220
+ _loggerProxy.default.logger.error("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.");
221
+ // Error code 30105 added as Space ID deprecated as of beta, Please refer migration guide.
222
+ throw new _webexErrors.SpaceIDDeprecatedError();
223
223
  case 50:
224
- serviceUrl = webex.internal.services.getServiceUrlFromClusterId({
225
- cluster: hydraId.cluster
226
- }, webex);
227
- options.destination = hydraId.destination ? "".concat(serviceUrl, "/conversations/").concat(hydraId.destination) : serviceUrl;
228
- _context.next = 58;
229
- break;
230
- case 54:
231
- _context.prev = 54;
232
- _context.t0 = _context["catch"](47);
233
- _loggerProxy.default.logger.error("Meeting-info:util#getDestinationType --> ".concat(_context.t0));
234
- throw _context.t0;
235
- case 58:
236
- _context.next = 62;
237
- break;
238
- case 60:
239
224
  _loggerProxy.default.logger.warn("Meeting-info:util#getDestinationType --> ".concat(meetingInfoError));
240
225
  throw new _parameter.default("".concat(meetingInfoError));
241
- case 62:
226
+ case 52:
242
227
  return _context.abrupt("return", _promise.default.resolve(options));
243
- case 63:
228
+ case 53:
244
229
  case "end":
245
230
  return _context.stop();
246
231
  }
247
- }, _callee, null, [[47, 54]]);
232
+ }, _callee);
248
233
  }));
249
234
  return function (_x) {
250
235
  return _ref.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"names":["_url","_interopRequireDefault","require","_common","_constants","_parameter","_loggerProxy","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","meetingInfoError","getParsedUrl","link","parsedUrl","url","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","value","hostNameBool","hostname","includes","WEBEX_DOT_COM","pathNameBool","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","_ref","_asyncToGenerator2","_regenerator","mark","_callee","from","_options","_res$items$","orgId","userId","options","hydraId","serviceUrl","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","waitForCatalog","getServiceUrlFromClusterId","t0","stop","_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","getDirectMeetingInfoURI","_destination$info3","preferredWebexSite","webExSite","_default","exports"],"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\nconst MeetingInfoUtil: any = {};\nconst meetingInfoError =\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';\n\nMeetingInfoUtil.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 */\nMeetingInfoUtil.isMeetingLink = (value: string) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const 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 return hostNameBool && pathNameBool;\n};\n\nMeetingInfoUtil.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\nMeetingInfoUtil.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\nMeetingInfoUtil.isPhoneNumber = (phoneNumber) => {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n};\n\nMeetingInfoUtil.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\nMeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>\n 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\nMeetingInfoUtil.getDestinationType = async (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 = MeetingInfoUtil.getHydraId(destination);\n }\n\n if (MeetingInfoUtil.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 (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.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 MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId && hydraId.destination, webex).then(\n (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 );\n } else if (hydraId && 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#getDestinationType --> ${e}`);\n throw e;\n }\n } else {\n LoggerProxy.logger.warn(`Meeting-info:util#getDestinationType --> ${meetingInfoError}`);\n throw new ParameterError(`${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 */\nMeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {\n const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = 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 */\nMeetingInfoUtil.getWebexSite = (uri: string) => {\n const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n const site = uri?.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)?.[1];\n\n return exceptedDomains.includes(site) ? 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 */\nMeetingInfoUtil.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 = MeetingInfoUtil.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\nexport default MeetingInfoUtil;\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","meetingInfoError","getParsedUrl","link","parsedUrl","url","parse","protocol","concat","HTTPS_PROTOCOL","error","LoggerProxy","logger","warn","isMeetingLink","value","hostNameBool","hostname","includes","WEBEX_DOT_COM","pathNameBool","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","_ref","_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","stop","_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","getDirectMeetingInfoURI","_destination$info3","preferredWebexSite","webExSite","_default","exports"],"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\nconst MeetingInfoUtil: any = {};\nconst meetingInfoError =\n 'MeetingInfo is fetched with the meeting link, SIP URI, phone number, Hydra people ID, or a conversation URL.';\n\nMeetingInfoUtil.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 */\nMeetingInfoUtil.isMeetingLink = (value: string) => {\n const parsedUrl = MeetingInfoUtil.getParsedUrl(value);\n const hostNameBool = parsedUrl.hostname && parsedUrl.hostname.includes(WEBEX_DOT_COM);\n const 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 return hostNameBool && pathNameBool;\n};\n\nMeetingInfoUtil.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\nMeetingInfoUtil.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\nMeetingInfoUtil.isPhoneNumber = (phoneNumber) => {\n const isValidNumber = DIALER_REGEX.PHONE_NUMBER.test(phoneNumber);\n\n return isValidNumber;\n};\n\nMeetingInfoUtil.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\nMeetingInfoUtil.getSipUriFromHydraPersonId = (destination, webex) =>\n 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\nMeetingInfoUtil.getDestinationType = async (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 = MeetingInfoUtil.getHydraId(destination);\n }\n\n if (MeetingInfoUtil.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 (MeetingInfoUtil.isSipUri(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.isPhoneNumber(destination)) {\n options.type = _SIP_URI_;\n options.destination = destination;\n } else if (MeetingInfoUtil.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 MeetingInfoUtil.getSipUriFromHydraPersonId(hydraId && hydraId.destination, webex).then(\n (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 );\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 --> ${meetingInfoError}`);\n throw new ParameterError(`${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 */\nMeetingInfoUtil.getRequestBody = (options: {type: string; destination: object} | any) => {\n const {type, destination, password, captchaInfo, installedOrgID, locusId, extraParams} = 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 */\nMeetingInfoUtil.getWebexSite = (uri: string) => {\n const exceptedDomains = ['meet.webex.com', 'meetup.webex.com', 'ciscospark.com'];\n const site = uri?.match(/.+@([^.]+\\.[^.]+\\.[^.]+)$/)?.[1];\n\n return exceptedDomains.includes(site) ? 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 */\nMeetingInfoUtil.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 = MeetingInfoUtil.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\nexport default MeetingInfoUtil;\n"],"mappings":"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"}
@@ -83,6 +83,23 @@ var MeetingCollection = exports.default = /*#__PURE__*/function (_Collection) {
83
83
  }
84
84
  return null;
85
85
  }
86
+
87
+ /**
88
+ * Gets the meeting that has a webrtc media connection
89
+ * NOTE: this function assumes there is no more than 1 such meeting
90
+ *
91
+ * @returns {Meeting} first meeting found, else undefined
92
+ * @public
93
+ * @memberof MeetingCollection
94
+ */
95
+ }, {
96
+ key: "getActiveWebrtcMeeting",
97
+ value: function getActiveWebrtcMeeting() {
98
+ // @ts-ignore
99
+ return (0, _lodash.find)(this.meetings, function (meeting) {
100
+ return meeting.mediaProperties.webrtcMediaConnection;
101
+ });
102
+ }
86
103
  }]);
87
104
  return MeetingCollection;
88
105
  }(_collection.default);
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_collection","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingCollection","exports","_Collection","_inherits2","_super","_classCallCheck2","_createClass2","key","value","set","meeting","meetings","id","getByKey","find","getActiveBreakoutLocus","breakoutUrl","_meeting$breakouts","_meeting$breakouts2","breakouts","url","isActiveBreakout","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\n\n/**\n * @export\n * @class MeetingCollection\n */\nexport default class MeetingCollection extends Collection {\n /**\n * @constructor\n * @public\n * @memberof MeetingCollection\n */\n constructor() {\n super('meetings');\n }\n\n set(meeting) {\n // @ts-ignore\n this.meetings[meeting.id] = meeting;\n\n // @ts-ignore\n return this.meetings[meeting.id];\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} key\n * @param {Any} value\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getByKey(key: string, value: any) {\n if (key && value) {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting[key] === value);\n }\n\n return null;\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} breakoutUrl\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getActiveBreakoutLocus(breakoutUrl: string) {\n if (breakoutUrl) {\n // @ts-ignore\n return find(\n // @ts-ignore\n this.meetings,\n (meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout\n );\n }\n\n return null;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA8C,SAAAG,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAE9C;AACA;AACA;AACA;AAHA,IAIqBC,iBAAiB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,WAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,iBAAA,EAAAE,WAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,iBAAA;EACpC;AACF;AACA;AACA;AACA;EACE,SAAAA,kBAAA,EAAc;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,iBAAA;IAAA,OAAAI,MAAA,CAAAN,IAAA,OACN,UAAU;EAClB;EAAC,IAAAQ,aAAA,CAAAtB,OAAA,EAAAgB,iBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIC,OAAO,EAAE;MACX;MACA,IAAI,CAACC,QAAQ,CAACD,OAAO,CAACE,EAAE,CAAC,GAAGF,OAAO;;MAEnC;MACA,OAAO,IAAI,CAACC,QAAQ,CAACD,OAAO,CAACE,EAAE,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAL,GAAA;IAAAC,KAAA,EAQA,SAAAK,SAAgBN,GAAW,EAAEC,KAAU,EAAE;MACvC,IAAID,GAAG,IAAIC,KAAK,EAAE;QAChB;QACA,OAAO,IAAAM,YAAI,EAAC,IAAI,CAACH,QAAQ,EAAE,UAACD,OAAO;UAAA,OAAKA,OAAO,CAACH,GAAG,CAAC,KAAKC,KAAK;QAAA,EAAC;MACjE;MAEA,OAAO,IAAI;IACb;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAAD,GAAA;IAAAC,KAAA,EAOA,SAAAO,uBAA8BC,WAAmB,EAAE;MACjD,IAAIA,WAAW,EAAE;QACf;QACA,OAAO,IAAAF,YAAI;QACT;QACA,IAAI,CAACH,QAAQ,EACb,UAACD,OAAO;UAAA,IAAAO,kBAAA,EAAAC,mBAAA;UAAA,OAAK,EAAAD,kBAAA,GAAAP,OAAO,CAACS,SAAS,cAAAF,kBAAA,uBAAjBA,kBAAA,CAAmBG,GAAG,MAAKJ,WAAW,MAAAE,mBAAA,GAAIR,OAAO,CAACS,SAAS,cAAAD,mBAAA,uBAAjBA,mBAAA,CAAmBG,gBAAgB;QAAA,CAC5F,CAAC;MACH;MAEA,OAAO,IAAI;IACb;EAAC;EAAA,OAAArB,iBAAA;AAAA,EArD4CsB,mBAAU"}
1
+ {"version":3,"names":["_lodash","require","_collection","_interopRequireDefault","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","MeetingCollection","exports","_Collection","_inherits2","_super","_classCallCheck2","_createClass2","key","value","set","meeting","meetings","id","getByKey","find","getActiveBreakoutLocus","breakoutUrl","_meeting$breakouts","_meeting$breakouts2","breakouts","url","isActiveBreakout","getActiveWebrtcMeeting","mediaProperties","webrtcMediaConnection","Collection"],"sources":["collection.ts"],"sourcesContent":["import {find} from 'lodash';\n\nimport Collection from '../common/collection';\n\n/**\n * @export\n * @class MeetingCollection\n */\nexport default class MeetingCollection extends Collection {\n /**\n * @constructor\n * @public\n * @memberof MeetingCollection\n */\n constructor() {\n super('meetings');\n }\n\n set(meeting) {\n // @ts-ignore\n this.meetings[meeting.id] = meeting;\n\n // @ts-ignore\n return this.meetings[meeting.id];\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} key\n * @param {Any} value\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getByKey(key: string, value: any) {\n if (key && value) {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting[key] === value);\n }\n\n return null;\n }\n\n /**\n * get a specific meeting searching for key\n * @param {String} breakoutUrl\n * @returns {Meeting} if found, else returns null\n * @public\n * @memberof MeetingCollection\n */\n public getActiveBreakoutLocus(breakoutUrl: string) {\n if (breakoutUrl) {\n // @ts-ignore\n return find(\n // @ts-ignore\n this.meetings,\n (meeting) => meeting.breakouts?.url === breakoutUrl && meeting.breakouts?.isActiveBreakout\n );\n }\n\n return null;\n }\n\n /**\n * Gets the meeting that has a webrtc media connection\n * NOTE: this function assumes there is no more than 1 such meeting\n *\n * @returns {Meeting} first meeting found, else undefined\n * @public\n * @memberof MeetingCollection\n */\n public getActiveWebrtcMeeting() {\n // @ts-ignore\n return find(this.meetings, (meeting) => meeting.mediaProperties.webrtcMediaConnection);\n }\n}\n"],"mappings":"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"}
@@ -963,13 +963,14 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
963
963
  }
964
964
 
965
965
  /**
966
- * Create a meeting.
966
+ * Create a meeting or return an existing meeting.
967
967
  * @param {string} destination - sipURL, phonenumber, or locus object}
968
968
  * @param {string} [type] - the optional specified type, such as locusId
969
969
  * @param {Boolean} useRandomDelayForInfo - whether a random delay should be added to fetching meeting info
970
970
  * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
971
- * @param {string} correlationId - the optional specified correlationId
971
+ * @param {string} correlationId - the optional specified correlationId (callStateForMetrics.correlationId can be provided instead)
972
972
  * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
973
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
973
974
  * @returns {Promise<Meeting>} A new Meeting.
974
975
  * @public
975
976
  * @memberof Meetings
@@ -983,12 +984,18 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
983
984
  var infoExtraParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
984
985
  var correlationId = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;
985
986
  var failOnMissingMeetingInfo = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
987
+ var callStateForMetrics = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;
986
988
  // TODO: type should be from a dictionary
987
989
 
988
990
  // Validate meeting information based on the provided destination and
989
991
  // type. This must be performed prior to determining if the meeting is
990
992
  // found in the collection, as we mutate the destination for hydra person
991
993
  // id values.
994
+ if (correlationId) {
995
+ callStateForMetrics = _objectSpread(_objectSpread({}, callStateForMetrics || {}), {}, {
996
+ correlationId: correlationId
997
+ });
998
+ }
992
999
  return this.meetingInfo.fetchInfoOptions(destination, type)
993
1000
  // Catch a failure to fetch info options.
994
1001
  .catch(function (error) {
@@ -1024,7 +1031,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1024
1031
  // Validate if a meeting was found.
1025
1032
  if (!meeting) {
1026
1033
  // Create a meeting based on the normalized destination and type.
1027
- return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams, correlationId, failOnMissingMeetingInfo).then(function (createdMeeting) {
1034
+ return _this10.createMeeting(targetDest, type, useRandomDelayForInfo, infoExtraParams, callStateForMetrics, failOnMissingMeetingInfo).then(function (createdMeeting) {
1028
1035
  // If the meeting was successfully created.
1029
1036
  if (createdMeeting && createdMeeting.on) {
1030
1037
  // Create a destruction event for the meeting.
@@ -1070,6 +1077,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1070
1077
  return _promise.default.resolve(createdMeeting);
1071
1078
  });
1072
1079
  }
1080
+ meeting.setCallStateForMetrics(callStateForMetrics);
1073
1081
 
1074
1082
  // Return the existing meeting.
1075
1083
  return _promise.default.resolve(meeting);
@@ -1081,7 +1089,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1081
1089
  * @param {String} type see create()
1082
1090
  * @param {Boolean} useRandomDelayForInfo whether a random delay should be added to fetching meeting info
1083
1091
  * @param {Object} infoExtraParams extra parameters to be provided when fetching meeting info
1084
- * @param {String} correlationId the optional specified correlationId
1092
+ * @param {CallStateForMetrics} callStateForMetrics - information about call state for metrics
1085
1093
  * @param {Boolean} failOnMissingMeetingInfo - whether to throw an error if meeting info fails to fetch (for calls that are not 1:1 or content share)
1086
1094
  * @returns {Promise} a new meeting instance complete with meeting info and destination
1087
1095
  * @private
@@ -1094,7 +1102,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1094
1102
  var type,
1095
1103
  useRandomDelayForInfo,
1096
1104
  infoExtraParams,
1097
- correlationId,
1105
+ callStateForMetrics,
1098
1106
  failOnMissingMeetingInfo,
1099
1107
  meeting,
1100
1108
  _destination$fullStat,
@@ -1114,7 +1122,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1114
1122
  type = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : null;
1115
1123
  useRandomDelayForInfo = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
1116
1124
  infoExtraParams = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};
1117
- correlationId = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined;
1125
+ callStateForMetrics = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined;
1118
1126
  failOnMissingMeetingInfo = _args3.length > 5 && _args3[5] !== undefined ? _args3[5] : false;
1119
1127
  meeting = new _meeting.default({
1120
1128
  // @ts-ignore
@@ -1128,7 +1136,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1128
1136
  meetingInfoProvider: this.meetingInfo,
1129
1137
  destination: destination,
1130
1138
  destinationType: type,
1131
- correlationId: correlationId
1139
+ callStateForMetrics: callStateForMetrics
1132
1140
  }, {
1133
1141
  // @ts-ignore
1134
1142
  parent: this.webex
@@ -1157,7 +1165,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1157
1165
  meeting.fetchMeetingInfoTimeoutId = setTimeout(function () {
1158
1166
  return meeting.fetchMeetingInfo({
1159
1167
  extraParams: infoExtraParams,
1160
- sendCAevents: !!correlationId // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1168
+ sendCAevents: !!(callStateForMetrics !== null && callStateForMetrics !== void 0 && callStateForMetrics.correlationId) // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1161
1169
  });
1162
1170
  }, waitingTime);
1163
1171
  meeting.parseMeetingInfo(undefined, destination);
@@ -1167,7 +1175,7 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1167
1175
  _context3.next = 19;
1168
1176
  return meeting.fetchMeetingInfo({
1169
1177
  extraParams: infoExtraParams,
1170
- sendCAevents: !!correlationId // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1178
+ sendCAevents: !!(callStateForMetrics !== null && callStateForMetrics !== void 0 && callStateForMetrics.correlationId) // if client sends correlation id as argument of public create(), then it means that this meeting creation is part of a pre-join intent from user
1171
1179
  });
1172
1180
  case 19:
1173
1181
  _context3.next = 31;
@@ -1399,6 +1407,19 @@ var Meetings = exports.default = /*#__PURE__*/function (_WebexPlugin) {
1399
1407
  value: function getLogger() {
1400
1408
  return _loggerProxy.default.get();
1401
1409
  }
1410
+
1411
+ /**
1412
+ * Returns the first meeting it finds that has the webrtc media connection created.
1413
+ * Useful for debugging in the console.
1414
+ *
1415
+ * @private
1416
+ * @returns {Meeting} Meeting object that has a webrtc media connection, else undefined
1417
+ */
1418
+ }, {
1419
+ key: "getActiveWebrtcMeeting",
1420
+ value: function getActiveWebrtcMeeting() {
1421
+ return this.meetingCollection.getActiveWebrtcMeeting();
1422
+ }
1402
1423
  }]);
1403
1424
  return Meetings;
1404
1425
  }(_webexCore.WebexPlugin);