@webex/calling 3.0.0-next.2 → 3.0.0-next.21
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.
- package/CHANGELOG.md +1403 -0
- package/dist/CallHistory/CallHistory.js +1 -3
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/callHistoryFixtures.js +9 -0
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -1
- package/dist/CallHistory/types.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +0 -2
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/types.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +119 -62
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +161 -102
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +3 -23
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
- package/dist/CallingClient/calling/call.js +78 -33
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +483 -351
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +0 -9
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +1 -1
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/calling/types.js.map +1 -1
- package/dist/CallingClient/callingClientFixtures.js +107 -1
- package/dist/CallingClient/callingClientFixtures.js.map +1 -1
- package/dist/CallingClient/constants.js +14 -6
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +12 -12
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +9 -9
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/line/types.js +4 -7
- package/dist/CallingClient/line/types.js.map +1 -1
- package/dist/CallingClient/registration/register.js +62 -80
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +28 -28
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/types.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +8 -2
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/types.js +3 -0
- package/dist/Contacts/types.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +2 -2
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Errors/index.js +7 -0
- package/dist/Errors/index.js.map +1 -1
- package/dist/Errors/types.js.map +1 -1
- package/dist/Events/types.js +0 -1
- package/dist/Events/types.js.map +1 -1
- package/dist/Metrics/index.test.js +1 -1
- package/dist/Metrics/index.test.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +18 -21
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/types.js.map +1 -1
- package/dist/api.js +43 -20
- package/dist/api.js.map +1 -1
- package/dist/common/Utils.js +13 -18
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +1 -1
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/testUtil.js +2 -1
- package/dist/common/testUtil.js.map +1 -1
- package/dist/common/types.js +8 -7
- package/dist/common/types.js.map +1 -1
- package/dist/index.js +233 -0
- package/dist/index.js.map +1 -1
- package/dist/module/CallHistory/callHistoryFixtures.js +9 -0
- package/dist/module/CallingClient/CallingClient.js +59 -42
- package/dist/module/CallingClient/calling/CallerId/index.js +3 -23
- package/dist/module/CallingClient/calling/call.js +54 -17
- package/dist/module/CallingClient/calling/callManager.js +0 -6
- package/dist/module/CallingClient/callingClientFixtures.js +119 -1
- package/dist/module/CallingClient/constants.js +8 -4
- package/dist/module/CallingClient/line/index.js +7 -10
- package/dist/module/CallingClient/line/types.js +0 -5
- package/dist/module/CallingClient/registration/register.js +28 -20
- package/dist/module/Contacts/ContactsClient.js +3 -0
- package/dist/module/Errors/catalog/CallingDeviceError.js +2 -2
- package/dist/module/Errors/catalog/LineError.js +2 -2
- package/dist/module/Errors/index.js +1 -0
- package/dist/module/api.js +6 -5
- package/dist/module/common/Utils.js +14 -19
- package/dist/module/common/testUtil.js +2 -1
- package/dist/module/common/types.js +6 -5
- package/dist/module/index.js +7 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallHistory/callHistoryFixtures.d.ts.map +1 -1
- package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
- package/dist/types/CallSettings/types.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +2 -0
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/CallerId/index.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +2 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts +0 -1
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/types.d.ts +30 -30
- package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts +69 -1
- package/dist/types/CallingClient/callingClientFixtures.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +7 -3
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/line/index.d.ts +4 -5
- package/dist/types/CallingClient/line/index.d.ts.map +1 -1
- package/dist/types/CallingClient/line/types.d.ts +8 -13
- package/dist/types/CallingClient/line/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +3 -3
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +14 -14
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +6 -4
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +3 -2
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Contacts/types.d.ts +2 -0
- package/dist/types/Contacts/types.d.ts.map +1 -1
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts +4 -4
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts.map +1 -1
- package/dist/types/Errors/catalog/LineError.d.ts +4 -4
- package/dist/types/Errors/catalog/LineError.d.ts.map +1 -1
- package/dist/types/Errors/index.d.ts +1 -0
- package/dist/types/Errors/index.d.ts.map +1 -1
- package/dist/types/Errors/types.d.ts +2 -3
- package/dist/types/Errors/types.d.ts.map +1 -1
- package/dist/types/Events/types.d.ts +11 -0
- package/dist/types/Events/types.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +2 -1
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +1 -1
- package/dist/types/Voicemail/types.d.ts +10 -10
- package/dist/types/Voicemail/types.d.ts.map +1 -1
- package/dist/types/api.d.ts +10 -10
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +1 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +3 -2
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_createClass2","value","_decryptContactDetail","_asyncToGenerator2","_regenerator","mark","_callee","contactDetails","_this","decryptedContactDetail","decryptedValues","wrap","_callee$","_context","prev","next","_toConsumableArray2","_promise","all","map","detail","internal","encryption","decryptText","sent","decryptedValue","index","abrupt","stop","decryptContactDetail","_x","_x2","_encryptContactDetail","_callee2","_this2","encryptedContactDetail","encryptedValues","_callee2$","_context2","encryptText","encryptedValue","encryptContactDetail","_x3","_x4","_encryptContact","_callee5","contact","_this3","encryptedContact","encryptionPromises","encryptedFieldsList","_callee5$","_context5","_values","encryptedFields","_ref","_callee4","field","plaintextAddressInfo","encryptedAddressInfo","encryptedAddressInfoPromises","plainTextDetails","encryptedDetails","_callee4$","_context4","t0","ADDRESS_INFO","EMAILS","PHONE_NUMBERS","SIP_ADDRESSES","addressInfo","_entries","_ref3","_callee3","_ref2","_ref4","_callee3$","_context3","_slicedToArray2","t1","_x7","t2","fromEntries","call","includes","_x6","_ref5","_ref6","encryptContact","_x5","_decryptContact","_callee8","_this4","decryptedContact","decryptionPromises","decryptedFieldsList","_callee8$","_context8","_ref7","_callee7","decryptedAddressInfo","decryptedAddressInfoPromises","decryptedDetails","_callee7$","_context7","_ref9","_callee6","_ref8","_ref10","_callee6$","_context6","_x10","_x9","_ref11","_ref12","decryptContact","_x8","_fetchContactFromDSS","_callee9","contactsDataMap","_this5","contactList","dssResult","_loop","_callee9$","_context10","dss","lookup","ids","_keys","contactId","displayName","emails","phoneNumbers","sipAddresses","photos","_contact$additionalIn","department","firstName","identityManager","jobTitle","lastName","manager","_contactsDataMap$cont","contactType","avatarUrlDomain","ownerId","avatarURL","addedPhoneNumbers","decryptedPhoneNumbers","addedSipAddresses","decryptedSipAddresses","cloudContact","_loop$","_context9","identity","additionalInfo","number","address","title","delegateYield","fetchContactFromDSS","_x11","_getContacts","_callee11","_this6","loggerContext","response","responseBody","cloudContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context12","file","method","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","ContactType","CUSTOM","CLOUD","_ref13","_callee10","group","idx","_callee10$","_context11","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context13","createNewEncryptionKeyUrl","name","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context14","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","_callee14$","_context15","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context16","find","warn","error","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context17","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","decryptedContacts","_this$contacts","_this$contacts2","_callee17$","_context18","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context19","deleteContact","_x19","exports","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable no-await-in-loop */\nimport {FAILURE_MESSAGE, STATUS_CODE, SUCCESS_MESSAGE} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail} from '../common/types';\nimport {LoggerInterface} from '../Voicemail/types';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport SDKConnector from '../SDKConnector';\n\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\n USERS,\n encryptedFields,\n} from './constants';\nimport {\n Contact,\n ContactIdContactInfo,\n ContactList,\n ContactResponse,\n ContactType,\n IContacts,\n ContactGroup,\n GroupType,\n} from './types';\n\nimport {serviceErrorCodeHandler} from '../common/Utils';\n\n/**\n * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.\n *\n * This code snippet demonstrates how to create an instance of `ContactClient` using webex and logger.\n *\n * Example\n * ```javascript\n * const contactClient = createContactsClient(webex, logger);\n * ```\n *\n * @implements {IContacts}\n */\nexport class ContactsClient implements IContacts {\n private sdkConnector: ISDKConnector;\n\n private encryptionKeyUrl: string;\n\n private webex: WebexSDK;\n\n private groups: ContactGroup[] | undefined;\n\n private contacts: Contact[] | undefined;\n\n private defaultGroupId: string;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n\n this.encryptionKeyUrl = '';\n this.groups = undefined;\n this.contacts = undefined;\n this.defaultGroupId = '';\n\n log.setLogger(logger.level, CONTACTS_FILE);\n }\n\n /**\n * Decrypt emails, phoneNumbers, sipAddresses.\n */\n private async decryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const decryptedContactDetail = [...contactDetails];\n\n const decryptedValues = await Promise.all(\n decryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.decryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n decryptedValues.forEach((decryptedValue, index) => {\n decryptedContactDetail[index].value = decryptedValue;\n });\n\n return decryptedContactDetail;\n }\n\n /**\n * Encrypt emails, phoneNumbers, sipAddresses.\n *\n */\n private async encryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const encryptedContactDetail = [...contactDetails];\n\n const encryptedValues = await Promise.all(\n encryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.encryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n encryptedValues.forEach((encryptedValue, index) => {\n encryptedContactDetail[index].value = encryptedValue;\n });\n\n return encryptedContactDetail;\n }\n\n /**\n * Encrypts a given contact.\n */\n private async encryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const encryptedContact: Contact = {...contact};\n\n const encryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = encryptedContact.addressInfo;\n let encryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const encryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.encryptText(encryptionKeyUrl, value),\n ]\n );\n\n encryptedAddressInfo = Object.fromEntries(\n await Promise.all(encryptedAddressInfoPromises)\n );\n }\n\n return [field, encryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = encryptedContact[field];\n let encryptedDetails;\n\n if (plainTextDetails) {\n encryptedDetails = await this.encryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, encryptedDetails];\n }\n default: {\n let encryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && encryptedContact[field]) {\n encryptedValue = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrl,\n encryptedContact[field]\n );\n }\n\n return [field, encryptedValue];\n }\n }\n });\n\n const encryptedFieldsList = await Promise.all(encryptionPromises);\n\n encryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n encryptedContact[field] = value;\n }\n });\n\n return encryptedContact;\n }\n\n /**\n * Decrypts a given contact.\n */\n private async decryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const decryptedContact: Contact = {...contact};\n\n const decryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = decryptedContact.addressInfo;\n let decryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const decryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value),\n ]\n );\n\n decryptedAddressInfo = Object.fromEntries(\n await Promise.all(decryptedAddressInfoPromises)\n );\n }\n\n return [field, decryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = decryptedContact[field];\n let decryptedDetails;\n\n if (plainTextDetails) {\n decryptedDetails = await this.decryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, decryptedDetails];\n }\n default: {\n let decryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && decryptedContact[field]) {\n decryptedValue = await this.webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n decryptedContact[field]\n );\n }\n\n return [field, decryptedValue];\n }\n }\n });\n\n const decryptedFieldsList = await Promise.all(decryptionPromises);\n\n decryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n decryptedContact[field] = value;\n }\n });\n\n return decryptedContact;\n }\n\n /**\n * Fetches contacts from DSS.\n */\n private async fetchContactFromDSS(contactsDataMap: ContactIdContactInfo): Promise<Contact[]> {\n const contactList = [];\n const dssResult = await this.webex.internal.dss.lookup({ids: Object.keys(contactsDataMap)});\n\n for (let i = 0; i < dssResult.length; i += 1) {\n const contact = dssResult[i];\n const contactId = contact.identity;\n const {displayName, emails, phoneNumbers, sipAddresses, photos} = contact;\n const {department, firstName, identityManager, jobTitle, lastName} = contact.additionalInfo;\n const manager =\n identityManager && identityManager.displayName ? identityManager.displayName : undefined;\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[contactId];\n let avatarURL = '';\n\n if (photos.length) {\n avatarURL = photos[0].value;\n }\n\n const addedPhoneNumbers = contactsDataMap[contactId].phoneNumbers;\n\n if (addedPhoneNumbers) {\n const decryptedPhoneNumbers = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedPhoneNumbers\n );\n\n decryptedPhoneNumbers.forEach((number) => phoneNumbers.push(number));\n }\n\n const addedSipAddresses = contactsDataMap[contactId].sipAddresses;\n\n if (addedSipAddresses) {\n const decryptedSipAddresses = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedSipAddresses\n );\n\n decryptedSipAddresses.forEach((address) => sipAddresses.push(address));\n }\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId,\n contactType,\n department,\n displayName,\n emails,\n encryptionKeyUrl,\n firstName,\n groups,\n lastName,\n manager,\n ownerId,\n phoneNumbers,\n sipAddresses,\n title: jobTitle,\n };\n\n contactList.push(cloudContact);\n }\n\n return contactList;\n }\n\n /**\n * Returns list of contacts.\n */\n public async getContacts(): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'getContacts',\n };\n\n const contactList: Contact[] = [];\n const contactsDataMap: ContactIdContactInfo = {};\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.GET,\n });\n\n const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\n for (let i = 0; i < contacts.length; i += 1) {\n const contact = contacts[i];\n\n if (contact.contactType === ContactType.CUSTOM) {\n const decryptedContact = await this.decryptContact(contact);\n\n contactList.push(decryptedContact);\n } else if (contact.contactType === ContactType.CLOUD && contact.contactId) {\n contactsDataMap[contact.contactId] = contact;\n }\n }\n\n if (Object.keys(contactsDataMap).length) {\n const cloudContacts = await this.fetchContactFromDSS(contactsDataMap);\n\n contactList.push(...cloudContacts);\n }\n\n await Promise.all(\n groups.map(async (group, idx) => {\n groups[idx].displayName = await this.webex.internal.encryption.decryptText(\n group.encryptionKeyUrl,\n group.displayName\n );\n })\n );\n\n this.groups = groups;\n this.contacts = contactList;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contacts: contactList,\n groups,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a new KMS Resource Object (KRO) and Content Key (CK) which is used for encryption.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async createNewEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createNewEncryptionKeyUrl.name,\n };\n\n let unboundedKeyUri = '';\n\n log.info('Requesting kms for a new KRO and key', loggerContext);\n const unboundedKeys = await this.webex.internal.encryption.kms.createUnboundKeys({count: 1});\n\n unboundedKeyUri = unboundedKeys[0].uri;\n this.webex.internal.encryption.kms.createResource({keyUris: [unboundedKeyUri]});\n\n return unboundedKeyUri;\n }\n\n /**\n * Fetches the encryptionKeyUrl from one of the groups. Creates a new key and default group if there is no data.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async fetchEncryptionKeyUrl(): Promise<string> {\n if (this.encryptionKeyUrl) {\n return this.encryptionKeyUrl;\n }\n // istanbul ignore else\n if (this.groups === undefined) {\n this.getContacts();\n }\n // istanbul ignore else\n if (this.groups && this.groups.length) {\n /** Use the encryptionKeyUrl of any one of the groups */\n return this.groups[0].encryptionKeyUrl;\n }\n\n this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();\n log.info(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: this.fetchEncryptionKeyUrl.name,\n });\n const response: ContactResponse = await this.createContactGroup(\n DEFAULT_GROUP_NAME,\n this.encryptionKeyUrl\n );\n\n if (response.data.group?.groupId) {\n this.defaultGroupId = response.data.group?.groupId;\n }\n\n return this.encryptionKeyUrl;\n }\n\n /**\n * Fetches a default group.\n *\n * @returns GroupId of default group.\n */\n private async fetchDefaultGroup(): Promise<string> {\n if (this.defaultGroupId) {\n return this.defaultGroupId;\n }\n\n /* Check the groups list and determine the defaultGroupId */\n if (this.groups && this.groups.length) {\n for (let i = 0; i < this.groups.length; i += 1) {\n if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {\n this.defaultGroupId = this.groups[i].groupId;\n\n return this.defaultGroupId;\n }\n }\n }\n\n log.info('No default group found.', {\n file: CONTACTS_FILE,\n method: this.fetchDefaultGroup.name,\n });\n\n const response: ContactResponse = await this.createContactGroup(DEFAULT_GROUP_NAME);\n\n const {group} = response.data;\n\n if (group) {\n return group.groupId;\n }\n\n return '';\n }\n\n /**\n * Creates a personal contact group.\n * Also creates a KRO, if there aren't any groups.\n * @param displayName - Name of the group to create.\n * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.\n * @param groupType - Type of the group to create.\n */\n public async createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContactGroup.name,\n };\n\n log.info(`Creating contact group ${displayName}`, loggerContext);\n\n const encryptionKeyUrlFinal = encryptionKeyUrl || (await this.fetchEncryptionKeyUrl());\n\n if (this.groups === undefined) {\n await this.getContacts();\n }\n\n if (this.groups && this.groups.length) {\n const isExistingGroup = this.groups.find((group) => {\n return group.displayName === displayName;\n });\n\n if (isExistingGroup) {\n log.warn(`Group name ${displayName} already exists.`, loggerContext);\n\n return {\n statusCode: 400 as number,\n data: {error: 'Group displayName already exists'},\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const encryptedDisplayName = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrlFinal,\n displayName\n );\n\n const groupInfo = {\n schemas: CONTACTS_SCHEMA,\n displayName: encryptedDisplayName,\n groupType: groupType || GroupType.NORMAL,\n encryptionKeyUrl: encryptionKeyUrlFinal,\n };\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`,\n method: HTTP_METHODS.POST,\n body: groupInfo,\n });\n\n const group = response.body as ContactGroup;\n\n group.displayName = displayName;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n group,\n },\n message: SUCCESS_MESSAGE,\n };\n\n this.groups?.push(group);\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Unable to create contact group.', loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Deletes a contact group.\n * @param groupId - GroupId of the group to delete.\n */\n public async deleteContactGroup(groupId: string) {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContactGroup.name,\n };\n\n try {\n log.info(`Deleting contact group: ${groupId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const groupToDelete = this.groups?.findIndex((group) => group.groupId === groupId);\n\n if (groupToDelete !== undefined && groupToDelete !== -1) {\n this.groups?.splice(groupToDelete, 1);\n }\n\n if (!this.groups?.length) {\n this.defaultGroupId = '';\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact group ${groupId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a custom contact.\n * @param contactInfo - Contact object to create.\n */\n public async createContact(contactInfo: Contact): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n };\n\n log.info(`Request to create contact: contactType: ${contactInfo.contactType}`, loggerContext);\n\n try {\n const contact = {...contactInfo};\n\n if (!contact.encryptionKeyUrl) {\n contact.encryptionKeyUrl = await this.fetchEncryptionKeyUrl();\n }\n\n if (!contact.groups || contact.groups.length === 0) {\n /** Fetch the groupId for the default group if not create */\n const defaultGroupId = await this.fetchDefaultGroup();\n\n contact.groups = [defaultGroupId];\n }\n\n contact.schemas = CONTACTS_SCHEMA;\n let requestBody = {};\n\n switch (contact.contactType) {\n case ContactType.CUSTOM: {\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n case ContactType.CLOUD: {\n if (!contact.contactId) {\n return {\n statusCode: 400 as number,\n data: {\n error: 'contactId is required for contactType:CLOUD.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n default: {\n return {\n statusCode: 400 as number,\n data: {\n error: 'Unknown contactType received.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.POST,\n body: requestBody,\n });\n\n const newContact = response.body as Contact;\n\n contact.contactId = newContact.contactId;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contact,\n },\n message: SUCCESS_MESSAGE,\n };\n\n if (contact.contactType === ContactType.CLOUD) {\n const decryptedContacts = await this.fetchContactFromDSS(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo\n );\n\n if (decryptedContacts.length && decryptedContacts[0]) {\n this.contacts?.push(decryptedContacts[0]);\n }\n } else {\n this.contacts?.push(contact);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Failed to create contact.', {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n });\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Delete a contact.\n * @param contactId - ContactId of the contact to delete.\n */\n public async deleteContact(contactId: string): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContact.name,\n };\n\n try {\n log.info(`Deleting contact : ${contactId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}/${contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const contactToDelete = this.contacts?.findIndex(\n (contact) => contact.contactId === contactId\n );\n\n if (contactToDelete !== undefined && contactToDelete !== -1) {\n this.contacts?.splice(contactToDelete, 1);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact ${contactId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n\n/**\n * Creates a ContactsClient instance\n *\n * @param {WebexSDK} webex - `Webex SDK`instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createContactsClient = (webex: WebexSDK, logger: LoggerInterface): IContacts =>\n new ContactsClient(webex, logger);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,aAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAUA,IAAAM,OAAA,GAAAN,OAAA;AAWA,IAAAO,MAAA,GAAAP,OAAA;AAAwD,SAAAQ,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,aAAA,CAAAH,MAAA,OAAAI,6BAAA,QAAAC,OAAA,GAAAD,6BAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAC,gCAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAmB,MAAA,CAAAD,MAAA,OAAAE,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAT,MAAA,EAAAO,GAAA,EAAAH,MAAA,CAAAG,GAAA,SAAAG,iCAAA,GAAAC,wBAAA,CAAAX,MAAA,EAAAU,iCAAA,CAAAN,MAAA,KAAAlB,OAAA,CAAAmB,MAAA,CAAAD,MAAA,GAAAE,OAAA,WAAAC,GAAA,IAAAK,sBAAA,CAAAZ,MAAA,EAAAO,GAAA,EAAAZ,gCAAA,CAAAS,MAAA,EAAAG,GAAA,iBAAAP,MAAA;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA,IAYaa,cAAc;EAazB;AACF;AACA;EACE,SAAAA,eAAYC,KAAe,EAAEC,MAAuB,EAAE;IAAA,IAAAC,gBAAA,CAAAP,OAAA,QAAAI,cAAA;IAAA,IAAAL,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACpD,IAAI,CAACQ,YAAY,GAAGC,qBAAY;IAEhC,IAAI,CAAC,IAAI,CAACD,YAAY,CAACE,QAAQ,EAAE,EAAE;MACjCD,qBAAY,CAACE,QAAQ,CAACN,KAAK,CAAC;IAC9B;IAEA,IAAI,CAACA,KAAK,GAAG,IAAI,CAACG,YAAY,CAACE,QAAQ,EAAE;IAEzC,IAAI,CAACE,gBAAgB,GAAG,EAAE;IAC1B,IAAI,CAACC,MAAM,GAAGC,SAAS;IACvB,IAAI,CAACC,QAAQ,GAAGD,SAAS;IACzB,IAAI,CAACE,cAAc,GAAG,EAAE;IAExBC,eAAG,CAACC,SAAS,CAACZ,MAAM,CAACa,KAAK,EAAEC,yBAAa,CAAC;EAC5C;;EAEA;AACF;AACA;EAFE,IAAAC,aAAA,CAAArB,OAAA,EAAAI,cAAA;IAAAN,GAAA;IAAAwB,KAAA;MAAA,IAAAC,qBAAA,OAAAC,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAGA,SAAAC,QACEf,gBAAwB,EACxBgB,cAA+B;QAAA,IAAAC,KAAA;QAAA,IAAAC,sBAAA,EAAAC,eAAA;QAAA,OAAAN,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAEzBN,sBAAsB,OAAAO,mBAAA,CAAArC,OAAA,EAAO4B,cAAc;cAAAM,QAAA,CAAAE,IAAA;cAAA,OAEnBE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CACvCT,sBAAsB,CAACU,GAAG,CAAC,UAACC,MAAM;gBAAA,OAChCZ,KAAI,CAACxB,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACC,WAAW,CAAChC,gBAAgB,EAAE6B,MAAM,CAACnB,KAAK,CAAC;cAAA,EAC3E,CACF;YAAA;cAJKS,eAAe,GAAAG,QAAA,CAAAW,IAAA;cAMrBd,eAAe,CAAClC,OAAO,CAAC,UAACiD,cAAc,EAAEC,KAAK,EAAK;gBACjDjB,sBAAsB,CAACiB,KAAK,CAAC,CAACzB,KAAK,GAAGwB,cAAc;cACtD,CAAC,CAAC;cAAC,OAAAZ,QAAA,CAAAc,MAAA,WAEIlB,sBAAsB;YAAA;YAAA;cAAA,OAAAI,QAAA,CAAAe,IAAA;UAAA;QAAA,GAAAtB,OAAA;MAAA,CAC9B;MAAA,SAAAuB,qBAAAC,EAAA,EAAAC,GAAA;QAAA,OAAA7B,qBAAA,CAAAlC,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAyD,oBAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAApD,GAAA;IAAAwB,KAAA;MAAA,IAAA+B,qBAAA,OAAA7B,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAIA,SAAA4B,SACE1C,gBAAwB,EACxBgB,cAA+B;QAAA,IAAA2B,MAAA;QAAA,IAAAC,sBAAA,EAAAC,eAAA;QAAA,OAAAhC,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAA0B,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAxB,IAAA,GAAAwB,SAAA,CAAAvB,IAAA;YAAA;cAEzBoB,sBAAsB,OAAAnB,mBAAA,CAAArC,OAAA,EAAO4B,cAAc;cAAA+B,SAAA,CAAAvB,IAAA;cAAA,OAEnBE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CACvCiB,sBAAsB,CAAChB,GAAG,CAAC,UAACC,MAAM;gBAAA,OAChCc,MAAI,CAAClD,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACiB,WAAW,CAAChD,gBAAgB,EAAE6B,MAAM,CAACnB,KAAK,CAAC;cAAA,EAC3E,CACF;YAAA;cAJKmC,eAAe,GAAAE,SAAA,CAAAd,IAAA;cAMrBY,eAAe,CAAC5D,OAAO,CAAC,UAACgE,cAAc,EAAEd,KAAK,EAAK;gBACjDS,sBAAsB,CAACT,KAAK,CAAC,CAACzB,KAAK,GAAGuC,cAAc;cACtD,CAAC,CAAC;cAAC,OAAAF,SAAA,CAAAX,MAAA,WAEIQ,sBAAsB;YAAA;YAAA;cAAA,OAAAG,SAAA,CAAAV,IAAA;UAAA;QAAA,GAAAK,QAAA;MAAA,CAC9B;MAAA,SAAAQ,qBAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAX,qBAAA,CAAAhE,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAqE,oBAAA;IAAA;IAED;AACF;AACA;EAFE;IAAAhE,GAAA;IAAAwB,KAAA;MAAA,IAAA2C,eAAA,OAAAzC,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAGA,SAAAwC,SAA6BC,OAAgB;QAAA,IAAAC,MAAA;QAAA,IAAAxD,gBAAA,EAAAyD,gBAAA,EAAAC,kBAAA,EAAAC,mBAAA;QAAA,OAAA9C,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAwC,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAtC,IAAA,GAAAsC,SAAA,CAAArC,IAAA;YAAA;cACpCxB,gBAAgB,GAAIuD,OAAO,CAA3BvD,gBAAgB;cACjByD,gBAAyB,GAAA/E,aAAA,KAAO6E,OAAO;cAEvCG,kBAAkB,GAAG,IAAAI,OAAA,CAAA1E,OAAA,EAAc2E,2BAAe,CAAC,CAACnC,GAAG;gBAAA,IAAAoC,IAAA,OAAApD,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAAC,SAAAmD,SAAOC,KAAK;kBAAA,IAAAC,oBAAA,EAAAC,oBAAA,EAAAC,4BAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAtB,cAAA;kBAAA,OAAApC,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAoD,UAAAC,SAAA;oBAAA,kBAAAA,SAAA,CAAAlD,IAAA,GAAAkD,SAAA,CAAAjD,IAAA;sBAAA;wBAAAiD,SAAA,CAAAC,EAAA,GAChER,KAAK;wBAAAO,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAC,EAAA,KACNX,2BAAe,CAACY,YAAY,OAAAF,SAAA,CAAAC,EAAA,KAmB5BX,2BAAe,CAACa,MAAM,QAAAH,SAAA,CAAAC,EAAA,KACtBX,2BAAe,CAACc,aAAa,QAAAJ,SAAA,CAAAC,EAAA,KAC7BX,2BAAe,CAACe,aAAa;wBAAA;sBAAA;wBApB1BX,oBAAoB,GAAGV,gBAAgB,CAACsB,WAAW;wBAAA,KAGrDZ,oBAAoB;0BAAAM,SAAA,CAAAjD,IAAA;0BAAA;wBAAA;wBAChB6C,4BAA4B,GAAG,IAAAW,QAAA,CAAA5F,OAAA,EAAe+E,oBAAoB,CAAC,CAACvC,GAAG;0BAAA,IAAAqD,KAAA,OAAArE,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAC3E,SAAAoE,SAAAC,KAAA;4BAAA,IAAAC,KAAA,EAAAlG,GAAA,EAAAwB,KAAA;4BAAA,OAAAG,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAiE,UAAAC,SAAA;8BAAA,kBAAAA,SAAA,CAAA/D,IAAA,GAAA+D,SAAA,CAAA9D,IAAA;gCAAA;kCAAA4D,KAAA,OAAAG,eAAA,CAAAnG,OAAA,EAAA+F,KAAA,MAAQjG,GAAG,GAAAkG,KAAA,KAAE1E,KAAK,GAAA0E,KAAA;kCAAAE,SAAA,CAAAZ,EAAA,GAChBxF,GAAG;kCAAAoG,SAAA,CAAA9D,IAAA;kCAAA,OACGgC,MAAI,CAAC/D,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACiB,WAAW,CAAChD,gBAAgB,EAAEU,KAAK,CAAC;gCAAA;kCAAA4E,SAAA,CAAAE,EAAA,GAAAF,SAAA,CAAArD,IAAA;kCAAA,OAAAqD,SAAA,CAAAlD,MAAA,YAAAkD,SAAA,CAAAZ,EAAA,EAAAY,SAAA,CAAAE,EAAA;gCAAA;gCAAA;kCAAA,OAAAF,SAAA,CAAAjD,IAAA;8BAAA;4BAAA,GAAA6C,QAAA;0BAAA,CAC1E;0BAAA,iBAAAO,GAAA;4BAAA,OAAAR,KAAA,CAAAxG,KAAA,OAAAI,SAAA;0BAAA;wBAAA,IACF;wBAAA4F,SAAA,CAAAe,EAAA,GAEsBxG,MAAM;wBAAAyF,SAAA,CAAAjD,IAAA;wBAAA,OACrBE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CAAC0C,4BAA4B,CAAC;sBAAA;wBAAAI,SAAA,CAAAiB,EAAA,GAAAjB,SAAA,CAAAxC,IAAA;wBADjDmC,oBAAoB,GAAAK,SAAA,CAAAe,EAAA,CAAUG,WAAW,CAAAC,IAAA,CAAAnB,SAAA,CAAAe,EAAA,EAAAf,SAAA,CAAAiB,EAAA;sBAAA;wBAAA,OAAAjB,SAAA,CAAArC,MAAA,WAKpC,CAAC8B,KAAK,EAAEE,oBAAoB,CAAC;sBAAA;wBAK9BE,gBAAgB,GAAGb,gBAAgB,CAACS,KAAK,CAAC;wBAAA,KAG5CI,gBAAgB;0BAAAG,SAAA,CAAAjD,IAAA;0BAAA;wBAAA;wBAAAiD,SAAA,CAAAjD,IAAA;wBAAA,OACOgC,MAAI,CAACN,oBAAoB,CAAClD,gBAAgB,EAAEsE,gBAAgB,CAAC;sBAAA;wBAAtFC,gBAAgB,GAAAE,SAAA,CAAAxC,IAAA;sBAAA;wBAAA,OAAAwC,SAAA,CAAArC,MAAA,WAGX,CAAC8B,KAAK,EAAEK,gBAAgB,CAAC;sBAAA;wBAAA,MAK5B,IAAAT,OAAA,CAAA1E,OAAA,EAAc2E,2BAAe,CAAC,CAAC8B,QAAQ,CAAC3B,KAAK,CAAC,IAAIT,gBAAgB,CAACS,KAAK,CAAC;0BAAAO,SAAA,CAAAjD,IAAA;0BAAA;wBAAA;wBAAAiD,SAAA,CAAAjD,IAAA;wBAAA,OACpDgC,MAAI,CAAC/D,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACiB,WAAW,CAC/DhD,gBAAgB,EAChByD,gBAAgB,CAACS,KAAK,CAAC,CACxB;sBAAA;wBAHDjB,cAAc,GAAAwB,SAAA,CAAAxC,IAAA;sBAAA;wBAAA,OAAAwC,SAAA,CAAArC,MAAA,WAMT,CAAC8B,KAAK,EAAEjB,cAAc,CAAC;sBAAA;sBAAA;wBAAA,OAAAwB,SAAA,CAAApC,IAAA;oBAAA;kBAAA,GAAA4B,QAAA;gBAAA,CAGnC;gBAAA,iBAAA6B,GAAA;kBAAA,OAAA9B,IAAA,CAAAvF,KAAA,OAAAI,SAAA;gBAAA;cAAA,IAAC;cAAAgF,SAAA,CAAArC,IAAA;cAAA,OAEgCE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CAAC+B,kBAAkB,CAAC;YAAA;cAA3DC,mBAAmB,GAAAE,SAAA,CAAA5B,IAAA;cAEzB0B,mBAAmB,CAAC1E,OAAO,CAAC,UAAA8G,KAAA,EAAoB;gBAAA,IAAAC,KAAA,OAAAT,eAAA,CAAAnG,OAAA,EAAA2G,KAAA;kBAAlB7B,KAAK,GAAA8B,KAAA;kBAAEtF,KAAK,GAAAsF,KAAA;gBACxC,IAAItF,KAAK,KAAKR,SAAS,EAAE;kBACvBuD,gBAAgB,CAACS,KAAK,CAAC,GAAGxD,KAAK;gBACjC;cACF,CAAC,CAAC;cAAC,OAAAmD,SAAA,CAAAzB,MAAA,WAEIqB,gBAAgB;YAAA;YAAA;cAAA,OAAAI,SAAA,CAAAxB,IAAA;UAAA;QAAA,GAAAiB,QAAA;MAAA,CACxB;MAAA,SAAA2C,eAAAC,GAAA;QAAA,OAAA7C,eAAA,CAAA5E,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAoH,cAAA;IAAA;IAED;AACF;AACA;EAFE;IAAA/G,GAAA;IAAAwB,KAAA;MAAA,IAAAyF,eAAA,OAAAvF,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAGA,SAAAsF,SAA6B7C,OAAgB;QAAA,IAAA8C,MAAA;QAAA,IAAArG,gBAAA,EAAAsG,gBAAA,EAAAC,kBAAA,EAAAC,mBAAA;QAAA,OAAA3F,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAqF,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAnF,IAAA,GAAAmF,SAAA,CAAAlF,IAAA;YAAA;cACpCxB,gBAAgB,GAAIuD,OAAO,CAA3BvD,gBAAgB;cACjBsG,gBAAyB,GAAA5H,aAAA,KAAO6E,OAAO;cAEvCgD,kBAAkB,GAAG,IAAAzC,OAAA,CAAA1E,OAAA,EAAc2E,2BAAe,CAAC,CAACnC,GAAG;gBAAA,IAAA+E,KAAA,OAAA/F,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAAC,SAAA8F,SAAO1C,KAAK;kBAAA,IAAAC,oBAAA,EAAA0C,oBAAA,EAAAC,4BAAA,EAAAxC,gBAAA,EAAAyC,gBAAA,EAAA7E,cAAA;kBAAA,OAAArB,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAA4F,UAAAC,SAAA;oBAAA,kBAAAA,SAAA,CAAA1F,IAAA,GAAA0F,SAAA,CAAAzF,IAAA;sBAAA;wBAAAyF,SAAA,CAAAvC,EAAA,GAChER,KAAK;wBAAA+C,SAAA,CAAAzF,IAAA,GAAAyF,SAAA,CAAAvC,EAAA,KACNX,2BAAe,CAACY,YAAY,OAAAsC,SAAA,CAAAvC,EAAA,KAmB5BX,2BAAe,CAACa,MAAM,QAAAqC,SAAA,CAAAvC,EAAA,KACtBX,2BAAe,CAACc,aAAa,QAAAoC,SAAA,CAAAvC,EAAA,KAC7BX,2BAAe,CAACe,aAAa;wBAAA;sBAAA;wBApB1BX,oBAAoB,GAAGmC,gBAAgB,CAACvB,WAAW;wBAAA,KAGrDZ,oBAAoB;0BAAA8C,SAAA,CAAAzF,IAAA;0BAAA;wBAAA;wBAChBsF,4BAA4B,GAAG,IAAA9B,QAAA,CAAA5F,OAAA,EAAe+E,oBAAoB,CAAC,CAACvC,GAAG;0BAAA,IAAAsF,KAAA,OAAAtG,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAC3E,SAAAqG,SAAAC,KAAA;4BAAA,IAAAC,MAAA,EAAAnI,GAAA,EAAAwB,KAAA;4BAAA,OAAAG,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAkG,UAAAC,SAAA;8BAAA,kBAAAA,SAAA,CAAAhG,IAAA,GAAAgG,SAAA,CAAA/F,IAAA;gCAAA;kCAAA6F,MAAA,OAAA9B,eAAA,CAAAnG,OAAA,EAAAgI,KAAA,MAAQlI,GAAG,GAAAmI,MAAA,KAAE3G,KAAK,GAAA2G,MAAA;kCAAAE,SAAA,CAAA7C,EAAA,GAChBxF,GAAG;kCAAAqI,SAAA,CAAA/F,IAAA;kCAAA,OACG6E,MAAI,CAAC5G,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACC,WAAW,CAAChC,gBAAgB,EAAEU,KAAK,CAAC;gCAAA;kCAAA6G,SAAA,CAAA/B,EAAA,GAAA+B,SAAA,CAAAtF,IAAA;kCAAA,OAAAsF,SAAA,CAAAnF,MAAA,YAAAmF,SAAA,CAAA7C,EAAA,EAAA6C,SAAA,CAAA/B,EAAA;gCAAA;gCAAA;kCAAA,OAAA+B,SAAA,CAAAlF,IAAA;8BAAA;4BAAA,GAAA8E,QAAA;0BAAA,CAC1E;0BAAA,iBAAAK,IAAA;4BAAA,OAAAN,KAAA,CAAAzI,KAAA,OAAAI,SAAA;0BAAA;wBAAA,IACF;wBAAAoI,SAAA,CAAAzB,EAAA,GAEsBxG,MAAM;wBAAAiI,SAAA,CAAAzF,IAAA;wBAAA,OACrBE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CAACmF,4BAA4B,CAAC;sBAAA;wBAAAG,SAAA,CAAAvB,EAAA,GAAAuB,SAAA,CAAAhF,IAAA;wBADjD4E,oBAAoB,GAAAI,SAAA,CAAAzB,EAAA,CAAUG,WAAW,CAAAC,IAAA,CAAAqB,SAAA,CAAAzB,EAAA,EAAAyB,SAAA,CAAAvB,EAAA;sBAAA;wBAAA,OAAAuB,SAAA,CAAA7E,MAAA,WAKpC,CAAC8B,KAAK,EAAE2C,oBAAoB,CAAC;sBAAA;wBAK9BvC,gBAAgB,GAAGgC,gBAAgB,CAACpC,KAAK,CAAC;wBAAA,KAG5CI,gBAAgB;0BAAA2C,SAAA,CAAAzF,IAAA;0BAAA;wBAAA;wBAAAyF,SAAA,CAAAzF,IAAA;wBAAA,OACO6E,MAAI,CAAC/D,oBAAoB,CAACtC,gBAAgB,EAAEsE,gBAAgB,CAAC;sBAAA;wBAAtFyC,gBAAgB,GAAAE,SAAA,CAAAhF,IAAA;sBAAA;wBAAA,OAAAgF,SAAA,CAAA7E,MAAA,WAGX,CAAC8B,KAAK,EAAE6C,gBAAgB,CAAC;sBAAA;wBAAA,MAK5B,IAAAjD,OAAA,CAAA1E,OAAA,EAAc2E,2BAAe,CAAC,CAAC8B,QAAQ,CAAC3B,KAAK,CAAC,IAAIoC,gBAAgB,CAACpC,KAAK,CAAC;0BAAA+C,SAAA,CAAAzF,IAAA;0BAAA;wBAAA;wBAAAyF,SAAA,CAAAzF,IAAA;wBAAA,OACpD6E,MAAI,CAAC5G,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACC,WAAW,CAC/DhC,gBAAgB,EAChBsG,gBAAgB,CAACpC,KAAK,CAAC,CACxB;sBAAA;wBAHDhC,cAAc,GAAA+E,SAAA,CAAAhF,IAAA;sBAAA;wBAAA,OAAAgF,SAAA,CAAA7E,MAAA,WAMT,CAAC8B,KAAK,EAAEhC,cAAc,CAAC;sBAAA;sBAAA;wBAAA,OAAA+E,SAAA,CAAA5E,IAAA;oBAAA;kBAAA,GAAAuE,QAAA;gBAAA,CAGnC;gBAAA,iBAAAa,GAAA;kBAAA,OAAAd,KAAA,CAAAlI,KAAA,OAAAI,SAAA;gBAAA;cAAA,IAAC;cAAA6H,SAAA,CAAAlF,IAAA;cAAA,OAEgCE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CAAC4E,kBAAkB,CAAC;YAAA;cAA3DC,mBAAmB,GAAAE,SAAA,CAAAzE,IAAA;cAEzBuE,mBAAmB,CAACvH,OAAO,CAAC,UAAAyI,MAAA,EAAoB;gBAAA,IAAAC,MAAA,OAAApC,eAAA,CAAAnG,OAAA,EAAAsI,MAAA;kBAAlBxD,KAAK,GAAAyD,MAAA;kBAAEjH,KAAK,GAAAiH,MAAA;gBACxC,IAAIjH,KAAK,KAAKR,SAAS,EAAE;kBACvBoG,gBAAgB,CAACpC,KAAK,CAAC,GAAGxD,KAAK;gBACjC;cACF,CAAC,CAAC;cAAC,OAAAgG,SAAA,CAAAtE,MAAA,WAEIkE,gBAAgB;YAAA;YAAA;cAAA,OAAAI,SAAA,CAAArE,IAAA;UAAA;QAAA,GAAA+D,QAAA;MAAA,CACxB;MAAA,SAAAwB,eAAAC,GAAA;QAAA,OAAA1B,eAAA,CAAA1H,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA+I,cAAA;IAAA;IAED;AACF;AACA;EAFE;IAAA1I,GAAA;IAAAwB,KAAA;MAAA,IAAAoH,oBAAA,OAAAlH,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAGA,SAAAiH,SAAkCC,eAAqC;QAAA,IAAAC,MAAA;QAAA,IAAAC,WAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAxJ,CAAA;QAAA,OAAAiC,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAiH,UAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAA/G,IAAA,GAAA+G,UAAA,CAAA9G,IAAA;YAAA;cAC/D0G,WAAW,GAAG,EAAE;cAAAI,UAAA,CAAA9G,IAAA;cAAA,OACE,IAAI,CAAC/B,KAAK,CAACqC,QAAQ,CAACyG,GAAG,CAACC,MAAM,CAAC;gBAACC,GAAG,EAAE,IAAAC,KAAA,CAAAtJ,OAAA,EAAY4I,eAAe;cAAC,CAAC,CAAC;YAAA;cAArFG,SAAS,GAAAG,UAAA,CAAArG,IAAA;cAAAmG,KAAA,gBAAAvH,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,UAAAsH,MAAA;gBAAA,IAAA7E,OAAA,EAAAoF,SAAA,EAAAC,WAAA,EAAAC,MAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,MAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,SAAA,EAAAC,eAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,OAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,eAAA,EAAA1J,gBAAA,EAAA2J,OAAA,EAAA1J,MAAA,EAAA2J,SAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,YAAA;gBAAA,OAAApJ,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAA8I,OAAAC,SAAA;kBAAA,kBAAAA,SAAA,CAAA5I,IAAA,GAAA4I,SAAA,CAAA3I,IAAA;oBAAA;sBAGP+B,OAAO,GAAG4E,SAAS,CAACvJ,CAAC,CAAC;sBACtB+J,SAAS,GAAGpF,OAAO,CAAC6G,QAAQ;sBAC3BxB,WAAW,GAAgDrF,OAAO,CAAlEqF,WAAW,EAAEC,MAAM,GAAwCtF,OAAO,CAArDsF,MAAM,EAAEC,YAAY,GAA0BvF,OAAO,CAA7CuF,YAAY,EAAEC,YAAY,GAAYxF,OAAO,CAA/BwF,YAAY,EAAEC,MAAM,GAAIzF,OAAO,CAAjByF,MAAM;sBAAAC,qBAAA,GACO1F,OAAO,CAAC8G,cAAc,EAApFnB,UAAU,GAAAD,qBAAA,CAAVC,UAAU,EAAEC,SAAS,GAAAF,qBAAA,CAATE,SAAS,EAAEC,eAAe,GAAAH,qBAAA,CAAfG,eAAe,EAAEC,QAAQ,GAAAJ,qBAAA,CAARI,QAAQ,EAAEC,QAAQ,GAAAL,qBAAA,CAARK,QAAQ;sBAC3DC,OAAO,GACXH,eAAe,IAAIA,eAAe,CAACR,WAAW,GAAGQ,eAAe,CAACR,WAAW,GAAG1I,SAAS;sBAAAsJ,qBAAA,GAExFxB,eAAe,CAACW,SAAS,CAAC,EADrBc,WAAW,GAAAD,qBAAA,CAAXC,WAAW,EAAEC,eAAe,GAAAF,qBAAA,CAAfE,eAAe,EAAE1J,gBAAgB,GAAAwJ,qBAAA,CAAhBxJ,gBAAgB,EAAE2J,OAAO,GAAAH,qBAAA,CAAPG,OAAO,EAAE1J,MAAM,GAAAuJ,qBAAA,CAANvJ,MAAM;sBAElE2J,SAAS,GAAG,EAAE;sBAElB,IAAIZ,MAAM,CAAClK,MAAM,EAAE;wBACjB8K,SAAS,GAAGZ,MAAM,CAAC,CAAC,CAAC,CAACtI,KAAK;sBAC7B;sBAEMmJ,iBAAiB,GAAG7B,eAAe,CAACW,SAAS,CAAC,CAACG,YAAY;sBAAA,KAE7De,iBAAiB;wBAAAM,SAAA,CAAA3I,IAAA;wBAAA;sBAAA;sBAAA2I,SAAA,CAAA3I,IAAA;sBAAA,OACiByG,MAAI,CAAC3F,oBAAoB,CAC3DtC,gBAAgB,EAChB6J,iBAAiB,CAClB;oBAAA;sBAHKC,qBAAqB,GAAAK,SAAA,CAAAlI,IAAA;sBAK3B6H,qBAAqB,CAAC7K,OAAO,CAAC,UAACqL,MAAM;wBAAA,OAAKxB,YAAY,CAACtK,IAAI,CAAC8L,MAAM,CAAC;sBAAA,EAAC;oBAAC;sBAGjEP,iBAAiB,GAAG/B,eAAe,CAACW,SAAS,CAAC,CAACI,YAAY;sBAAA,KAE7DgB,iBAAiB;wBAAAI,SAAA,CAAA3I,IAAA;wBAAA;sBAAA;sBAAA2I,SAAA,CAAA3I,IAAA;sBAAA,OACiByG,MAAI,CAAC3F,oBAAoB,CAC3DtC,gBAAgB,EAChB+J,iBAAiB,CAClB;oBAAA;sBAHKC,qBAAqB,GAAAG,SAAA,CAAAlI,IAAA;sBAK3B+H,qBAAqB,CAAC/K,OAAO,CAAC,UAACsL,OAAO;wBAAA,OAAKxB,YAAY,CAACvK,IAAI,CAAC+L,OAAO,CAAC;sBAAA,EAAC;oBAAC;sBAGnEN,YAAY,GAAG;wBACnBP,eAAe,EAAfA,eAAe;wBACfE,SAAS,EAATA,SAAS;wBACTjB,SAAS,EAATA,SAAS;wBACTc,WAAW,EAAXA,WAAW;wBACXP,UAAU,EAAVA,UAAU;wBACVN,WAAW,EAAXA,WAAW;wBACXC,MAAM,EAANA,MAAM;wBACN7I,gBAAgB,EAAhBA,gBAAgB;wBAChBmJ,SAAS,EAATA,SAAS;wBACTlJ,MAAM,EAANA,MAAM;wBACNqJ,QAAQ,EAARA,QAAQ;wBACRC,OAAO,EAAPA,OAAO;wBACPI,OAAO,EAAPA,OAAO;wBACPb,YAAY,EAAZA,YAAY;wBACZC,YAAY,EAAZA,YAAY;wBACZyB,KAAK,EAAEnB;sBACT,CAAC;sBAEDnB,WAAW,CAAC1J,IAAI,CAACyL,YAAY,CAAC;oBAAC;oBAAA;sBAAA,OAAAE,SAAA,CAAA9H,IAAA;kBAAA;gBAAA,GAAA+F,KAAA;cAAA;cAxDxBxJ,CAAC,GAAG,CAAC;YAAA;cAAA,MAAEA,CAAC,GAAGuJ,SAAS,CAACrJ,MAAM;gBAAAwJ,UAAA,CAAA9G,IAAA;gBAAA;cAAA;cAAA,OAAA8G,UAAA,CAAAmC,aAAA,CAAArC,KAAA;YAAA;cAAExJ,CAAC,IAAI,CAAC;cAAA0J,UAAA,CAAA9G,IAAA;cAAA;YAAA;cAAA,OAAA8G,UAAA,CAAAlG,MAAA,WA2DrC8F,WAAW;YAAA;YAAA;cAAA,OAAAI,UAAA,CAAAjG,IAAA;UAAA;QAAA,GAAA0F,QAAA;MAAA,CACnB;MAAA,SAAA2C,oBAAAC,IAAA;QAAA,OAAA7C,oBAAA,CAAArJ,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA6L,mBAAA;IAAA;IAED;AACF;AACA;EAFE;IAAAxL,GAAA;IAAAwB,KAAA;MAAA,IAAAkK,YAAA,OAAAhK,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAGA,SAAA+J,UAAA;QAAA,IAAAC,MAAA;QAAA,IAAAC,aAAA,EAAA7C,WAAA,EAAAF,eAAA,EAAAgD,QAAA,EAAAC,YAAA,EAAA9K,QAAA,EAAAF,MAAA,EAAArB,CAAA,EAAA2E,OAAA,EAAA+C,gBAAA,EAAA4E,aAAA,EAAAC,eAAA,EAAAC,SAAA,EAAAC,WAAA;QAAA,OAAAxK,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAkK,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAhK,IAAA,GAAAgK,UAAA,CAAA/J,IAAA;YAAA;cACQuJ,aAAa,GAAG;gBACpBS,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE;cACV,CAAC;cAEKvD,WAAsB,GAAG,EAAE;cAC3BF,eAAqC,GAAG,CAAC,CAAC;cAAAuD,UAAA,CAAAhK,IAAA;cAAAgK,UAAA,CAAA/J,IAAA;cAAA,OAGF,IAAI,CAAC/B,KAAK,CAACiM,OAAO,CAAC;gBAC7D;gBACAC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAACnM,KAAK,CAACqC,QAAQ,CAAC+J,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAH,MAAA,CAAII,0BAAc,OAAAJ,MAAA,CAAIK,iBAAK,OAAAL,MAAA,CAAIM,0BAAc,CAAE;gBAChHT,MAAM,EAAEU,mBAAY,CAACC;cACvB,CAAC,CAAC;YAAA;cAJIpB,QAAQ,GAAAO,UAAA,CAAAtJ,IAAA;cAMRgJ,YAAY,GAAGD,QAAQ,CAACqB,IAAI;cAAA,IAE7BpB,YAAY;gBAAAM,UAAA,CAAA/J,IAAA;gBAAA;cAAA;cAAA,MACT,IAAI8K,KAAK,IAAAV,MAAA,CAAIZ,QAAQ,EAAG;YAAA;cAGzB7K,QAAQ,GAAY8K,YAAY,CAAhC9K,QAAQ,EAAEF,MAAM,GAAIgL,YAAY,CAAtBhL,MAAM;cAEdrB,CAAC,GAAG,CAAC;YAAA;cAAA,MAAEA,CAAC,GAAGuB,QAAQ,CAACrB,MAAM;gBAAAyM,UAAA,CAAA/J,IAAA;gBAAA;cAAA;cAC3B+B,OAAO,GAAGpD,QAAQ,CAACvB,CAAC,CAAC;cAAA,MAEvB2E,OAAO,CAACkG,WAAW,KAAK8C,mBAAW,CAACC,MAAM;gBAAAjB,UAAA,CAAA/J,IAAA;gBAAA;cAAA;cAAA+J,UAAA,CAAA/J,IAAA;cAAA,OACb,IAAI,CAACoG,cAAc,CAACrE,OAAO,CAAC;YAAA;cAArD+C,gBAAgB,GAAAiF,UAAA,CAAAtJ,IAAA;cAEtBiG,WAAW,CAAC1J,IAAI,CAAC8H,gBAAgB,CAAC;cAACiF,UAAA,CAAA/J,IAAA;cAAA;YAAA;cAC9B,IAAI+B,OAAO,CAACkG,WAAW,KAAK8C,mBAAW,CAACE,KAAK,IAAIlJ,OAAO,CAACoF,SAAS,EAAE;gBACzEX,eAAe,CAACzE,OAAO,CAACoF,SAAS,CAAC,GAAGpF,OAAO;cAC9C;YAAC;cATkC3E,CAAC,IAAI,CAAC;cAAA2M,UAAA,CAAA/J,IAAA;cAAA;YAAA;cAAA,KAYvC,IAAAkH,KAAA,CAAAtJ,OAAA,EAAY4I,eAAe,CAAC,CAAClJ,MAAM;gBAAAyM,UAAA,CAAA/J,IAAA;gBAAA;cAAA;cAAA+J,UAAA,CAAA/J,IAAA;cAAA,OACT,IAAI,CAACkJ,mBAAmB,CAAC1C,eAAe,CAAC;YAAA;cAA/DkD,aAAa,GAAAK,UAAA,CAAAtJ,IAAA;cAEnBiG,WAAW,CAAC1J,IAAI,CAAAC,KAAA,CAAhByJ,WAAW,MAAAzG,mBAAA,CAAArC,OAAA,EAAS8L,aAAa,EAAC;YAAC;cAAAK,UAAA,CAAA/J,IAAA;cAAA,OAG/BE,QAAA,CAAAtC,OAAA,CAAQuC,GAAG,CACf1B,MAAM,CAAC2B,GAAG;gBAAA,IAAA8K,MAAA,OAAA9L,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAAC,SAAA6L,UAAOC,KAAK,EAAEC,GAAG;kBAAA,OAAAhM,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAA0L,WAAAC,UAAA;oBAAA,kBAAAA,UAAA,CAAAxL,IAAA,GAAAwL,UAAA,CAAAvL,IAAA;sBAAA;wBAAAuL,UAAA,CAAAvL,IAAA;wBAAA,OACMsJ,MAAI,CAACrL,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACC,WAAW,CACxE4K,KAAK,CAAC5M,gBAAgB,EACtB4M,KAAK,CAAChE,WAAW,CAClB;sBAAA;wBAHD3I,MAAM,CAAC4M,GAAG,CAAC,CAACjE,WAAW,GAAAmE,UAAA,CAAA9K,IAAA;sBAAA;sBAAA;wBAAA,OAAA8K,UAAA,CAAA1K,IAAA;oBAAA;kBAAA,GAAAsK,SAAA;gBAAA,CAIxB;gBAAA,iBAAAK,IAAA,EAAAC,IAAA;kBAAA,OAAAP,MAAA,CAAAjO,KAAA,OAAAI,SAAA;gBAAA;cAAA,IAAC,CACH;YAAA;cAED,IAAI,CAACoB,MAAM,GAAGA,MAAM;cACpB,IAAI,CAACE,QAAQ,GAAG+H,WAAW;cACrBiD,eAAgC,GAAG;gBACvC+B,UAAU,EAAEC,MAAM,CAACnC,QAAQ,CAACoC,sBAAW,CAAC,CAAC;gBACzCC,IAAI,EAAE;kBACJlN,QAAQ,EAAE+H,WAAW;kBACrBjI,MAAM,EAANA;gBACF,CAAC;gBACDqN,OAAO,EAAEC;cACX,CAAC;cAAA,OAAAhC,UAAA,CAAAnJ,MAAA,WAEM+I,eAAe;YAAA;cAAAI,UAAA,CAAAhK,IAAA;cAAAgK,UAAA,CAAA7G,EAAA,GAAA6G,UAAA;cAEhBH,SAAS,GAAAG,UAAA,CAAA7G,EAAA;cACT2G,WAAW,GAAG,IAAAmC,8BAAuB,EAACpC,SAAS,EAAEL,aAAa,CAAC;cAAA,OAAAQ,UAAA,CAAAnJ,MAAA,WAE9DiJ,WAAW;YAAA;YAAA;cAAA,OAAAE,UAAA,CAAAlJ,IAAA;UAAA;QAAA,GAAAwI,SAAA;MAAA,CAErB;MAAA,SAAA4C,YAAA;QAAA,OAAA7C,YAAA,CAAAnM,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAA4O,WAAA;IAAA;IAED;AACF;AACA;AACA;AACA;EAJE;IAAAvO,GAAA;IAAAwB,KAAA;MAAA,IAAAgN,0BAAA,OAAA9M,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAKA,SAAA6M,UAAA;QAAA,IAAA5C,aAAA,EAAA6C,eAAA,EAAAC,aAAA;QAAA,OAAAhN,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAA0M,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAxM,IAAA,GAAAwM,UAAA,CAAAvM,IAAA;YAAA;cACQuJ,aAAa,GAAG;gBACpBS,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAACuC,yBAAyB,CAACC;cACzC,CAAC;cAEGL,eAAe,GAAG,EAAE;cAExBvN,eAAG,CAAC6N,IAAI,CAAC,sCAAsC,EAAEnD,aAAa,CAAC;cAACgD,UAAA,CAAAvM,IAAA;cAAA,OACpC,IAAI,CAAC/B,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACoM,GAAG,CAACC,iBAAiB,CAAC;gBAACC,KAAK,EAAE;cAAC,CAAC,CAAC;YAAA;cAAtFR,aAAa,GAAAE,UAAA,CAAA9L,IAAA;cAEnB2L,eAAe,GAAGC,aAAa,CAAC,CAAC,CAAC,CAAClC,GAAG;cACtC,IAAI,CAAClM,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACoM,GAAG,CAACG,cAAc,CAAC;gBAACC,OAAO,EAAE,CAACX,eAAe;cAAC,CAAC,CAAC;cAAC,OAAAG,UAAA,CAAA3L,MAAA,WAEzEwL,eAAe;YAAA;YAAA;cAAA,OAAAG,UAAA,CAAA1L,IAAA;UAAA;QAAA,GAAAsL,SAAA;MAAA,CACvB;MAAA,SAAAK,0BAAA;QAAA,OAAAN,0BAAA,CAAAjP,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAmP,yBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;EAJE;IAAA9O,GAAA;IAAAwB,KAAA;MAAA,IAAA8N,sBAAA,OAAA5N,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAKA,SAAA2N,UAAA;QAAA,IAAAC,oBAAA;QAAA,IAAA1D,QAAA,EAAA2D,qBAAA;QAAA,OAAA9N,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAwN,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAtN,IAAA,GAAAsN,UAAA,CAAArN,IAAA;YAAA;cAAA,KACM,IAAI,CAACxB,gBAAgB;gBAAA6O,UAAA,CAAArN,IAAA;gBAAA;cAAA;cAAA,OAAAqN,UAAA,CAAAzM,MAAA,WAChB,IAAI,CAACpC,gBAAgB;YAAA;cAE9B;cACA,IAAI,IAAI,CAACC,MAAM,KAAKC,SAAS,EAAE;gBAC7B,IAAI,CAACuN,WAAW,EAAE;cACpB;cACA;cAAA,MACI,IAAI,CAACxN,MAAM,IAAI,IAAI,CAACA,MAAM,CAACnB,MAAM;gBAAA+P,UAAA,CAAArN,IAAA;gBAAA;cAAA;cAAA,OAAAqN,UAAA,CAAAzM,MAAA,WAE5B,IAAI,CAACnC,MAAM,CAAC,CAAC,CAAC,CAACD,gBAAgB;YAAA;cAAA6O,UAAA,CAAArN,IAAA;cAAA,OAGV,IAAI,CAACwM,yBAAyB,EAAE;YAAA;cAA9D,IAAI,CAAChO,gBAAgB,GAAA6O,UAAA,CAAA5M,IAAA;cACrB5B,eAAG,CAAC6N,IAAI,8BAAAtC,MAAA,CAA8BkD,8BAAkB,GAAI;gBAC1DtD,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAACsD,qBAAqB,CAACd;cACrC,CAAC,CAAC;cAACY,UAAA,CAAArN,IAAA;cAAA,OACqC,IAAI,CAACwN,kBAAkB,CAC7DF,8BAAkB,EAClB,IAAI,CAAC9O,gBAAgB,CACtB;YAAA;cAHKgL,QAAyB,GAAA6D,UAAA,CAAA5M,IAAA;cAK/B,KAAAyM,oBAAA,GAAI1D,QAAQ,CAACqC,IAAI,CAACT,KAAK,cAAA8B,oBAAA,eAAnBA,oBAAA,CAAqBO,OAAO,EAAE;gBAChC,IAAI,CAAC7O,cAAc,IAAAuO,qBAAA,GAAG3D,QAAQ,CAACqC,IAAI,CAACT,KAAK,cAAA+B,qBAAA,uBAAnBA,qBAAA,CAAqBM,OAAO;cACpD;cAAC,OAAAJ,UAAA,CAAAzM,MAAA,WAEM,IAAI,CAACpC,gBAAgB;YAAA;YAAA;cAAA,OAAA6O,UAAA,CAAAxM,IAAA;UAAA;QAAA,GAAAoM,SAAA;MAAA,CAC7B;MAAA,SAAAM,sBAAA;QAAA,OAAAP,sBAAA,CAAA/P,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAkQ,qBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;EAJE;IAAA7P,GAAA;IAAAwB,KAAA;MAAA,IAAAwO,kBAAA,OAAAtO,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAKA,SAAAqO,UAAA;QAAA,IAAAvQ,CAAA,EAAAoM,QAAA,EAAA4B,KAAA;QAAA,OAAA/L,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAgO,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAA9N,IAAA,GAAA8N,UAAA,CAAA7N,IAAA;YAAA;cAAA,KACM,IAAI,CAACpB,cAAc;gBAAAiP,UAAA,CAAA7N,IAAA;gBAAA;cAAA;cAAA,OAAA6N,UAAA,CAAAjN,MAAA,WACd,IAAI,CAAChC,cAAc;YAAA;cAAA,MAIxB,IAAI,CAACH,MAAM,IAAI,IAAI,CAACA,MAAM,CAACnB,MAAM;gBAAAuQ,UAAA,CAAA7N,IAAA;gBAAA;cAAA;cAC1B5C,CAAC,GAAG,CAAC;YAAA;cAAA,MAAEA,CAAC,GAAG,IAAI,CAACqB,MAAM,CAACnB,MAAM;gBAAAuQ,UAAA,CAAA7N,IAAA;gBAAA;cAAA;cAAA,MAChC,IAAI,CAACvB,MAAM,CAACrB,CAAC,CAAC,CAACgK,WAAW,KAAKkG,8BAAkB;gBAAAO,UAAA,CAAA7N,IAAA;gBAAA;cAAA;cACnD,IAAI,CAACpB,cAAc,GAAG,IAAI,CAACH,MAAM,CAACrB,CAAC,CAAC,CAACqQ,OAAO;cAAC,OAAAI,UAAA,CAAAjN,MAAA,WAEtC,IAAI,CAAChC,cAAc;YAAA;cAJUxB,CAAC,IAAI,CAAC;cAAAyQ,UAAA,CAAA7N,IAAA;cAAA;YAAA;cAShDnB,eAAG,CAAC6N,IAAI,CAAC,yBAAyB,EAAE;gBAClC1C,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAAC6D,iBAAiB,CAACrB;cACjC,CAAC,CAAC;cAACoB,UAAA,CAAA7N,IAAA;cAAA,OAEqC,IAAI,CAACwN,kBAAkB,CAACF,8BAAkB,CAAC;YAAA;cAA7E9D,QAAyB,GAAAqE,UAAA,CAAApN,IAAA;cAExB2K,KAAK,GAAI5B,QAAQ,CAACqC,IAAI,CAAtBT,KAAK;cAAA,KAERA,KAAK;gBAAAyC,UAAA,CAAA7N,IAAA;gBAAA;cAAA;cAAA,OAAA6N,UAAA,CAAAjN,MAAA,WACAwK,KAAK,CAACqC,OAAO;YAAA;cAAA,OAAAI,UAAA,CAAAjN,MAAA,WAGf,EAAE;YAAA;YAAA;cAAA,OAAAiN,UAAA,CAAAhN,IAAA;UAAA;QAAA,GAAA8M,SAAA;MAAA,CACV;MAAA,SAAAG,kBAAA;QAAA,OAAAJ,kBAAA,CAAAzQ,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAyQ,iBAAA;IAAA;IAED;AACF;AACA;AACA;AACA;AACA;AACA;EANE;IAAApQ,GAAA;IAAAwB,KAAA;MAAA,IAAA6O,mBAAA,OAAA3O,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAOA,SAAA0O,UACE5G,WAAmB,EACnB5I,gBAAyB,EACzByP,SAAqB;QAAA,IAAA1E,aAAA,EAAA2E,qBAAA,EAAAC,eAAA,EAAAC,oBAAA,EAAAC,SAAA,EAAAC,YAAA,EAAA9E,QAAA,EAAA4B,KAAA,EAAAzB,eAAA,EAAAC,SAAA,EAAAC,WAAA;QAAA,OAAAxK,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAA2O,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAzO,IAAA,GAAAyO,UAAA,CAAAxO,IAAA;YAAA;cAEfuJ,aAAa,GAAG;gBACpBS,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAACuD,kBAAkB,CAACf;cAClC,CAAC;cAED5N,eAAG,CAAC6N,IAAI,2BAAAtC,MAAA,CAA2BhD,WAAW,GAAImC,aAAa,CAAC;cAACiF,UAAA,CAAAtL,EAAA,GAEnC1E,gBAAgB;cAAA,IAAAgQ,UAAA,CAAAtL,EAAA;gBAAAsL,UAAA,CAAAxO,IAAA;gBAAA;cAAA;cAAAwO,UAAA,CAAAxO,IAAA;cAAA,OAAW,IAAI,CAACuN,qBAAqB,EAAE;YAAA;cAAAiB,UAAA,CAAAtL,EAAA,GAAAsL,UAAA,CAAA/N,IAAA;YAAA;cAA/EyN,qBAAqB,GAAAM,UAAA,CAAAtL,EAAA;cAAA,MAEvB,IAAI,CAACzE,MAAM,KAAKC,SAAS;gBAAA8P,UAAA,CAAAxO,IAAA;gBAAA;cAAA;cAAAwO,UAAA,CAAAxO,IAAA;cAAA,OACrB,IAAI,CAACiM,WAAW,EAAE;YAAA;cAAA,MAGtB,IAAI,CAACxN,MAAM,IAAI,IAAI,CAACA,MAAM,CAACnB,MAAM;gBAAAkR,UAAA,CAAAxO,IAAA;gBAAA;cAAA;cAC7BmO,eAAe,GAAG,IAAI,CAAC1P,MAAM,CAACgQ,IAAI,CAAC,UAACrD,KAAK,EAAK;gBAClD,OAAOA,KAAK,CAAChE,WAAW,KAAKA,WAAW;cAC1C,CAAC,CAAC;cAAA,KAEE+G,eAAe;gBAAAK,UAAA,CAAAxO,IAAA;gBAAA;cAAA;cACjBnB,eAAG,CAAC6P,IAAI,eAAAtE,MAAA,CAAehD,WAAW,uBAAoBmC,aAAa,CAAC;cAAC,OAAAiF,UAAA,CAAA5N,MAAA,WAE9D;gBACL8K,UAAU,EAAE,GAAa;gBACzBG,IAAI,EAAE;kBAAC8C,KAAK,EAAE;gBAAkC,CAAC;gBACjD7C,OAAO,EAAE8C;cACX,CAAC;YAAA;cAAAJ,UAAA,CAAAxO,IAAA;cAAA,OAI8B,IAAI,CAAC/B,KAAK,CAACqC,QAAQ,CAACC,UAAU,CAACiB,WAAW,CAC3E0M,qBAAqB,EACrB9G,WAAW,CACZ;YAAA;cAHKgH,oBAAoB,GAAAI,UAAA,CAAA/N,IAAA;cAKpB4N,SAAS,GAAG;gBAChBQ,OAAO,EAAEC,2BAAe;gBACxB1H,WAAW,EAAEgH,oBAAoB;gBACjCH,SAAS,EAAEA,SAAS,IAAIc,iBAAS,CAACC,MAAM;gBACxCxQ,gBAAgB,EAAE0P;cACpB,CAAC;cAAAM,UAAA,CAAAzO,IAAA;cAAAyO,UAAA,CAAAxO,IAAA;cAAA,OAG6C,IAAI,CAAC/B,KAAK,CAACiM,OAAO,CAAC;gBAC7D;gBACAC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAACnM,KAAK,CAACqC,QAAQ,CAAC+J,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAH,MAAA,CAAII,0BAAc,OAAAJ,MAAA,CAAIK,iBAAK,OAAAL,MAAA,CAAI6E,wBAAY,CAAE;gBAC9GhF,MAAM,EAAEU,mBAAY,CAACuE,IAAI;gBACzBrE,IAAI,EAAEwD;cACR,CAAC,CAAC;YAAA;cALI7E,QAAQ,GAAAgF,UAAA,CAAA/N,IAAA;cAOR2K,KAAK,GAAG5B,QAAQ,CAACqB,IAAI;cAE3BO,KAAK,CAAChE,WAAW,GAAGA,WAAW;cACzBuC,eAAgC,GAAG;gBACvC+B,UAAU,EAAEC,MAAM,CAACnC,QAAQ,CAACoC,sBAAW,CAAC,CAAC;gBACzCC,IAAI,EAAE;kBACJT,KAAK,EAALA;gBACF,CAAC;gBACDU,OAAO,EAAEC;cACX,CAAC;cAED,CAAAuC,YAAA,OAAI,CAAC7P,MAAM,cAAA6P,YAAA,uBAAXA,YAAA,CAAatR,IAAI,CAACoO,KAAK,CAAC;cAAC,OAAAoD,UAAA,CAAA5N,MAAA,WAElB+I,eAAe;YAAA;cAAA6E,UAAA,CAAAzO,IAAA;cAAAyO,UAAA,CAAAxK,EAAA,GAAAwK,UAAA;cAEtB3P,eAAG,CAAC6P,IAAI,CAAC,iCAAiC,EAAEnF,aAAa,CAAC;cACpDK,SAAS,GAAA4E,UAAA,CAAAxK,EAAA;cACT6F,WAAW,GAAG,IAAAmC,8BAAuB,EAACpC,SAAS,EAAEL,aAAa,CAAC;cAAA,OAAAiF,UAAA,CAAA5N,MAAA,WAE9DiJ,WAAW;YAAA;YAAA;cAAA,OAAA2E,UAAA,CAAA3N,IAAA;UAAA;QAAA,GAAAmN,SAAA;MAAA,CAErB;MAAA,SAAAR,mBAAA2B,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAAtB,mBAAA,CAAA9Q,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAmQ,kBAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAA9P,GAAA;IAAAwB,KAAA;MAAA,IAAAoQ,mBAAA,OAAAlQ,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAIA,SAAAiQ,UAAgC9B,OAAe;QAAA,IAAAlE,aAAA,EAAAiG,aAAA,EAAAC,aAAA,EAAAjG,QAAA,EAAAG,eAAA,EAAA+F,aAAA,EAAAC,aAAA,EAAA/F,SAAA,EAAAC,WAAA;QAAA,OAAAxK,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAgQ,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAA9P,IAAA,GAAA8P,UAAA,CAAA7P,IAAA;YAAA;cACvCuJ,aAAa,GAAG;gBACpBS,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAAC6F,kBAAkB,CAACrD;cAClC,CAAC;cAAAoD,UAAA,CAAA9P,IAAA;cAGClB,eAAG,CAAC6N,IAAI,4BAAAtC,MAAA,CAA4BqD,OAAO,GAAIlE,aAAa,CAAC;cAACsG,UAAA,CAAA7P,IAAA;cAAA,OAClB,IAAI,CAAC/B,KAAK,CAACiM,OAAO,CAAC;gBAC7D;gBACAC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAACnM,KAAK,CAACqC,QAAQ,CAAC+J,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAH,MAAA,CAAII,0BAAc,OAAAJ,MAAA,CAAIK,iBAAK,OAAAL,MAAA,CAAI6E,wBAAY,OAAA7E,MAAA,CAAIqD,OAAO,CAAE;gBACzHxD,MAAM,EAAEU,mBAAY,CAACoF;cACvB,CAAC,CAAC;YAAA;cAJIvG,QAAQ,GAAAqG,UAAA,CAAApP,IAAA;cAKRkJ,eAAgC,GAAG;gBACvC+B,UAAU,EAAEC,MAAM,CAACnC,QAAQ,CAACoC,sBAAW,CAAC,CAAC;gBACzCC,IAAI,EAAE,CAAC,CAAC;gBACRC,OAAO,EAAEC;cACX,CAAC;cAEK2D,aAAa,IAAAF,aAAA,GAAG,IAAI,CAAC/Q,MAAM,cAAA+Q,aAAA,uBAAXA,aAAA,CAAaQ,SAAS,CAAC,UAAC5E,KAAK;gBAAA,OAAKA,KAAK,CAACqC,OAAO,KAAKA,OAAO;cAAA,EAAC;cAElF,IAAIiC,aAAa,KAAKhR,SAAS,IAAIgR,aAAa,KAAK,CAAC,CAAC,EAAE;gBACvD,CAAAC,aAAA,OAAI,CAAClR,MAAM,cAAAkR,aAAA,uBAAXA,aAAA,CAAaM,MAAM,CAACP,aAAa,EAAE,CAAC,CAAC;cACvC;cAEA,IAAI,GAAAD,aAAA,GAAC,IAAI,CAAChR,MAAM,cAAAgR,aAAA,eAAXA,aAAA,CAAanS,MAAM,GAAE;gBACxB,IAAI,CAACsB,cAAc,GAAG,EAAE;cAC1B;cAAC,OAAAiR,UAAA,CAAAjP,MAAA,WAEM+I,eAAe;YAAA;cAAAkG,UAAA,CAAA9P,IAAA;cAAA8P,UAAA,CAAA3M,EAAA,GAAA2M,UAAA;cAEtBhR,eAAG,CAAC6P,IAAI,mCAAAtE,MAAA,CAAmCqD,OAAO,GAAIlE,aAAa,CAAC;cAC9DK,SAAS,GAAAiG,UAAA,CAAA3M,EAAA;cACT2G,WAAW,GAAG,IAAAmC,8BAAuB,EAACpC,SAAS,EAAEL,aAAa,CAAC;cAAA,OAAAsG,UAAA,CAAAjP,MAAA,WAE9DiJ,WAAW;YAAA;YAAA;cAAA,OAAAgG,UAAA,CAAAhP,IAAA;UAAA;QAAA,GAAA0O,SAAA;MAAA,CAErB;MAAA,SAAAO,mBAAAI,IAAA;QAAA,OAAAZ,mBAAA,CAAArS,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAyS,kBAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAApS,GAAA;IAAAwB,KAAA;MAAA,IAAAiR,cAAA,OAAA/Q,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAIA,SAAA8Q,UAA2BC,WAAoB;QAAA,IAAA9G,aAAA,EAAAxH,OAAA,EAAAnD,cAAA,EAAA0R,WAAA,EAAArO,gBAAA,EAAAsO,iBAAA,EAAA/G,QAAA,EAAAgH,UAAA,EAAA7G,eAAA,EAAA8G,iBAAA,EAAAC,cAAA,EAAAC,eAAA,EAAA/G,SAAA,EAAAC,WAAA;QAAA,OAAAxK,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAgR,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAA9Q,IAAA,GAAA8Q,UAAA,CAAA7Q,IAAA;YAAA;cACvCuJ,aAAa,GAAG;gBACpBS,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAAC6G,aAAa,CAACrE;cAC7B,CAAC;cAED5N,eAAG,CAAC6N,IAAI,4CAAAtC,MAAA,CAA4CiG,WAAW,CAACpI,WAAW,GAAIsB,aAAa,CAAC;cAACsH,UAAA,CAAA9Q,IAAA;cAGtFgC,OAAO,GAAA7E,aAAA,KAAOmT,WAAW;cAAA,IAE1BtO,OAAO,CAACvD,gBAAgB;gBAAAqS,UAAA,CAAA7Q,IAAA;gBAAA;cAAA;cAAA6Q,UAAA,CAAA7Q,IAAA;cAAA,OACM,IAAI,CAACuN,qBAAqB,EAAE;YAAA;cAA7DxL,OAAO,CAACvD,gBAAgB,GAAAqS,UAAA,CAAApQ,IAAA;YAAA;cAAA,MAGtB,CAACsB,OAAO,CAACtD,MAAM,IAAIsD,OAAO,CAACtD,MAAM,CAACnB,MAAM,KAAK,CAAC;gBAAAuT,UAAA,CAAA7Q,IAAA;gBAAA;cAAA;cAAA6Q,UAAA,CAAA7Q,IAAA;cAAA,OAEnB,IAAI,CAAC8N,iBAAiB,EAAE;YAAA;cAA/ClP,cAAc,GAAAiS,UAAA,CAAApQ,IAAA;cAEpBsB,OAAO,CAACtD,MAAM,GAAG,CAACG,cAAc,CAAC;YAAC;cAGpCmD,OAAO,CAAC8M,OAAO,GAAGC,2BAAe;cAC7BwB,WAAW,GAAG,CAAC,CAAC;cAAAO,UAAA,CAAA3N,EAAA,GAEZnB,OAAO,CAACkG,WAAW;cAAA4I,UAAA,CAAA7Q,IAAA,GAAA6Q,UAAA,CAAA3N,EAAA,KACpB6H,mBAAW,CAACC,MAAM,QAAA6F,UAAA,CAAA3N,EAAA,KAMlB6H,mBAAW,CAACE,KAAK;cAAA;YAAA;cAAA4F,UAAA,CAAA7Q,IAAA;cAAA,OALW,IAAI,CAACyE,cAAc,CAAC1C,OAAO,CAAC;YAAA;cAArDE,gBAAgB,GAAA4O,UAAA,CAAApQ,IAAA;cAEtB6P,WAAW,GAAGrO,gBAAgB;cAAC,OAAA4O,UAAA,CAAAjQ,MAAA;YAAA;cAAA,IAI1BmB,OAAO,CAACoF,SAAS;gBAAA0J,UAAA,CAAA7Q,IAAA;gBAAA;cAAA;cAAA,OAAA6Q,UAAA,CAAAjQ,MAAA,WACb;gBACL8K,UAAU,EAAE,GAAa;gBACzBG,IAAI,EAAE;kBACJ8C,KAAK,EAAE;gBACT,CAAC;gBACD7C,OAAO,EAAE8C;cACX,CAAC;YAAA;cAAAiC,UAAA,CAAA7Q,IAAA;cAAA,OAE4B,IAAI,CAACyE,cAAc,CAAC1C,OAAO,CAAC;YAAA;cAArDE,iBAAgB,GAAA4O,UAAA,CAAApQ,IAAA;cAEtB6P,WAAW,GAAGrO,iBAAgB;cAAC,OAAA4O,UAAA,CAAAjQ,MAAA;YAAA;cAAA,OAAAiQ,UAAA,CAAAjQ,MAAA,WAIxB;gBACL8K,UAAU,EAAE,GAAa;gBACzBG,IAAI,EAAE;kBACJ8C,KAAK,EAAE;gBACT,CAAC;gBACD7C,OAAO,EAAE8C;cACX,CAAC;YAAA;cAAAiC,UAAA,CAAA7Q,IAAA;cAAA,OAIuC,IAAI,CAAC/B,KAAK,CAACiM,OAAO,CAAC;gBAC7D;gBACAC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAACnM,KAAK,CAACqC,QAAQ,CAAC+J,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAH,MAAA,CAAII,0BAAc,OAAAJ,MAAA,CAAIK,iBAAK,OAAAL,MAAA,CAAIM,0BAAc,CAAE;gBAChHT,MAAM,EAAEU,mBAAY,CAACuE,IAAI;gBACzBrE,IAAI,EAAEyF;cACR,CAAC,CAAC;YAAA;cALI9G,QAAQ,GAAAqH,UAAA,CAAApQ,IAAA;cAOR+P,UAAU,GAAGhH,QAAQ,CAACqB,IAAI;cAEhC9I,OAAO,CAACoF,SAAS,GAAGqJ,UAAU,CAACrJ,SAAS;cAClCwC,eAAgC,GAAG;gBACvC+B,UAAU,EAAEC,MAAM,CAACnC,QAAQ,CAACoC,sBAAW,CAAC,CAAC;gBACzCC,IAAI,EAAE;kBACJ9J,OAAO,EAAPA;gBACF,CAAC;gBACD+J,OAAO,EAAEC;cACX,CAAC;cAAA,MAEGhK,OAAO,CAACkG,WAAW,KAAK8C,mBAAW,CAACE,KAAK;gBAAA4F,UAAA,CAAA7Q,IAAA;gBAAA;cAAA;cAAA6Q,UAAA,CAAA7Q,IAAA;cAAA,OACX,IAAI,CAACkJ,mBAAmB,CACtD1L,MAAM,CAAC2G,WAAW,CAAC,CAAC,CAACqM,UAAU,CAACrJ,SAAS,EAAEqJ,UAAU,CAAC,CAAC,CAAC,CACzD;YAAA;cAFKC,iBAAiB,GAAAI,UAAA,CAAApQ,IAAA;cAIvB,IAAIgQ,iBAAiB,CAACnT,MAAM,IAAImT,iBAAiB,CAAC,CAAC,CAAC,EAAE;gBACpD,CAAAC,cAAA,OAAI,CAAC/R,QAAQ,cAAA+R,cAAA,uBAAbA,cAAA,CAAe1T,IAAI,CAACyT,iBAAiB,CAAC,CAAC,CAAC,CAAC;cAC3C;cAACI,UAAA,CAAA7Q,IAAA;cAAA;YAAA;cAED,CAAA2Q,eAAA,OAAI,CAAChS,QAAQ,cAAAgS,eAAA,uBAAbA,eAAA,CAAe3T,IAAI,CAAC+E,OAAO,CAAC;YAAC;cAAA,OAAA8O,UAAA,CAAAjQ,MAAA,WAGxB+I,eAAe;YAAA;cAAAkH,UAAA,CAAA9Q,IAAA;cAAA8Q,UAAA,CAAA7M,EAAA,GAAA6M,UAAA;cAEtBhS,eAAG,CAAC6P,IAAI,CAAC,2BAA2B,EAAE;gBACpC1E,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAAC6G,aAAa,CAACrE;cAC7B,CAAC,CAAC;cACI7C,SAAS,GAAAiH,UAAA,CAAA7M,EAAA;cACT6F,WAAW,GAAG,IAAAmC,8BAAuB,EAACpC,SAAS,EAAEL,aAAa,CAAC;cAAA,OAAAsH,UAAA,CAAAjQ,MAAA,WAE9DiJ,WAAW;YAAA;YAAA;cAAA,OAAAgH,UAAA,CAAAhQ,IAAA;UAAA;QAAA,GAAAuP,SAAA;MAAA,CAErB;MAAA,SAAAU,cAAAC,IAAA;QAAA,OAAAZ,cAAA,CAAAlT,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAyT,aAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAApT,GAAA;IAAAwB,KAAA;MAAA,IAAA8R,cAAA,OAAA5R,kBAAA,CAAAxB,OAAA,gBAAAyB,YAAA,CAAAzB,OAAA,CAAA0B,IAAA,CAIA,SAAA2R,UAA2B9J,SAAiB;QAAA,IAAAoC,aAAA,EAAA2H,eAAA,EAAA1H,QAAA,EAAAG,eAAA,EAAAwH,eAAA,EAAAC,eAAA,EAAAxH,SAAA,EAAAC,WAAA;QAAA,OAAAxK,YAAA,CAAAzB,OAAA,CAAAgC,IAAA,UAAAyR,WAAAC,UAAA;UAAA,kBAAAA,UAAA,CAAAvR,IAAA,GAAAuR,UAAA,CAAAtR,IAAA;YAAA;cACpCuJ,aAAa,GAAG;gBACpBS,IAAI,EAAEhL,yBAAa;gBACnBiL,MAAM,EAAE,IAAI,CAACsH,aAAa,CAAC9E;cAC7B,CAAC;cAAA6E,UAAA,CAAAvR,IAAA;cAGClB,eAAG,CAAC6N,IAAI,uBAAAtC,MAAA,CAAuBjD,SAAS,GAAIoC,aAAa,CAAC;cAAC+H,UAAA,CAAAtR,IAAA;cAAA,OACf,IAAI,CAAC/B,KAAK,CAACiM,OAAO,CAAC;gBAC7D;gBACAC,GAAG,KAAAC,MAAA,CAAK,IAAI,CAACnM,KAAK,CAACqC,QAAQ,CAAC+J,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAH,MAAA,CAAII,0BAAc,OAAAJ,MAAA,CAAIK,iBAAK,OAAAL,MAAA,CAAIM,0BAAc,OAAAN,MAAA,CAAIjD,SAAS,CAAE;gBAC7H8C,MAAM,EAAEU,mBAAY,CAACoF;cACvB,CAAC,CAAC;YAAA;cAJIvG,QAAQ,GAAA8H,UAAA,CAAA7Q,IAAA;cAMRkJ,eAAgC,GAAG;gBACvC+B,UAAU,EAAEC,MAAM,CAACnC,QAAQ,CAACoC,sBAAW,CAAC,CAAC;gBACzCC,IAAI,EAAE,CAAC,CAAC;gBACRC,OAAO,EAAEC;cACX,CAAC;cAEKoF,eAAe,IAAAD,eAAA,GAAG,IAAI,CAACvS,QAAQ,cAAAuS,eAAA,uBAAbA,eAAA,CAAelB,SAAS,CAC9C,UAACjO,OAAO;gBAAA,OAAKA,OAAO,CAACoF,SAAS,KAAKA,SAAS;cAAA,EAC7C;cAED,IAAIgK,eAAe,KAAKzS,SAAS,IAAIyS,eAAe,KAAK,CAAC,CAAC,EAAE;gBAC3D,CAAAC,eAAA,OAAI,CAACzS,QAAQ,cAAAyS,eAAA,uBAAbA,eAAA,CAAenB,MAAM,CAACkB,eAAe,EAAE,CAAC,CAAC;cAC3C;cAAC,OAAAG,UAAA,CAAA1Q,MAAA,WAEM+I,eAAe;YAAA;cAAA2H,UAAA,CAAAvR,IAAA;cAAAuR,UAAA,CAAApO,EAAA,GAAAoO,UAAA;cAEtBzS,eAAG,CAAC6P,IAAI,6BAAAtE,MAAA,CAA6BjD,SAAS,GAAIoC,aAAa,CAAC;cAC1DK,SAAS,GAAA0H,UAAA,CAAApO,EAAA;cACT2G,WAAW,GAAG,IAAAmC,8BAAuB,EAACpC,SAAS,EAAEL,aAAa,CAAC;cAAA,OAAA+H,UAAA,CAAA1Q,MAAA,WAE9DiJ,WAAW;YAAA;YAAA;cAAA,OAAAyH,UAAA,CAAAzQ,IAAA;UAAA;QAAA,GAAAoQ,SAAA;MAAA,CAErB;MAAA,SAAAM,cAAAC,IAAA;QAAA,OAAAR,cAAA,CAAA/T,KAAA,OAAAI,SAAA;MAAA;MAAA,OAAAkU,aAAA;IAAA;EAAA;EAAA,OAAAvT,cAAA;AAAA;AAGH;AACA;AACA;AACA;AACA;AACA;AALAyT,OAAA,CAAAzT,cAAA,GAAAA,cAAA;AAMO,IAAM0T,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIzT,KAAe,EAAEC,MAAuB;EAAA,OAC3E,IAAIF,cAAc,CAACC,KAAK,EAAEC,MAAM,CAAC;AAAA;AAACuT,OAAA,CAAAC,oBAAA,GAAAA,oBAAA"}
|
|
1
|
+
{"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_createClass2","value","_decryptContactDetail","_asyncToGenerator2","_regenerator","mark","_callee","contactDetails","_this","decryptedContactDetail","decryptedValues","wrap","_callee$","_context","prev","next","_toConsumableArray2","_promise","all","map","detail","internal","encryption","decryptText","sent","decryptedValue","index","abrupt","stop","decryptContactDetail","_x","_x2","_encryptContactDetail","_callee2","_this2","encryptedContactDetail","encryptedValues","_callee2$","_context2","encryptText","encryptedValue","encryptContactDetail","_x3","_x4","_encryptContact","_callee5","contact","_this3","encryptedContact","encryptionPromises","encryptedFieldsList","_callee5$","_context5","_values","encryptedFields","_ref","_callee4","field","plaintextAddressInfo","encryptedAddressInfo","encryptedAddressInfoPromises","plainTextDetails","encryptedDetails","_callee4$","_context4","t0","ADDRESS_INFO","EMAILS","PHONE_NUMBERS","SIP_ADDRESSES","addressInfo","_entries","_ref3","_callee3","_ref2","_ref4","_callee3$","_context3","_slicedToArray2","t1","_x7","t2","fromEntries","call","includes","_x6","_ref5","_ref6","encryptContact","_x5","_decryptContact","_callee8","_this4","decryptedContact","decryptionPromises","decryptedFieldsList","_callee8$","_context8","_ref7","_callee7","decryptedAddressInfo","decryptedAddressInfoPromises","decryptedDetails","_callee7$","_context7","_ref9","_callee6","_ref8","_ref10","_callee6$","_context6","_x10","_x9","_ref11","_ref12","decryptContact","_x8","_fetchContactFromDSS","_callee9","contactsDataMap","_this5","contactList","dssResult","_loop","_callee9$","_context10","dss","lookup","ids","_keys","contactId","displayName","emails","phoneNumbers","sipAddresses","photos","_contact$additionalIn","department","firstName","identityManager","jobTitle","lastName","manager","_contactsDataMap$cont","contactType","avatarUrlDomain","ownerId","avatarURL","addedPhoneNumbers","decryptedPhoneNumbers","addedSipAddresses","decryptedSipAddresses","cloudContact","_loop$","_context9","identity","additionalInfo","number","address","title","delegateYield","fetchContactFromDSS","_x11","_getContacts","_callee11","_this6","loggerContext","response","responseBody","cloudContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context12","file","method","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","ContactType","CUSTOM","CLOUD","_ref13","_callee10","group","idx","_callee10$","_context11","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context13","createNewEncryptionKeyUrl","name","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context14","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","_callee14$","_context15","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context16","find","warn","error","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context17","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","decryptedContacts","_this$contacts","_this$contacts2","_callee17$","_context18","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context19","deleteContact","_x19","getSDKConnector","exports","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {FAILURE_MESSAGE, STATUS_CODE, SUCCESS_MESSAGE} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail} from '../common/types';\nimport {LoggerInterface} from '../Voicemail/types';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport SDKConnector from '../SDKConnector';\n\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\n USERS,\n encryptedFields,\n} from './constants';\nimport {\n Contact,\n ContactIdContactInfo,\n ContactList,\n ContactResponse,\n ContactType,\n IContacts,\n ContactGroup,\n GroupType,\n} from './types';\n\nimport {serviceErrorCodeHandler} from '../common/Utils';\n\n/**\n * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.\n *\n * This code snippet demonstrates how to create an instance of `ContactClient` using webex and logger.\n *\n * Example\n * ```javascript\n * const contactClient = createContactsClient(webex, logger);\n * ```\n */\nexport class ContactsClient implements IContacts {\n private sdkConnector: ISDKConnector;\n\n private encryptionKeyUrl: string;\n\n private webex: WebexSDK;\n\n private groups: ContactGroup[] | undefined;\n\n private contacts: Contact[] | undefined;\n\n private defaultGroupId: string;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n\n this.encryptionKeyUrl = '';\n this.groups = undefined;\n this.contacts = undefined;\n this.defaultGroupId = '';\n\n log.setLogger(logger.level, CONTACTS_FILE);\n }\n\n /**\n * Decrypt emails, phoneNumbers, sipAddresses.\n */\n private async decryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const decryptedContactDetail = [...contactDetails];\n\n const decryptedValues = await Promise.all(\n decryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.decryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n decryptedValues.forEach((decryptedValue, index) => {\n decryptedContactDetail[index].value = decryptedValue;\n });\n\n return decryptedContactDetail;\n }\n\n /**\n * Encrypt emails, phoneNumbers, sipAddresses.\n *\n */\n private async encryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const encryptedContactDetail = [...contactDetails];\n\n const encryptedValues = await Promise.all(\n encryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.encryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n encryptedValues.forEach((encryptedValue, index) => {\n encryptedContactDetail[index].value = encryptedValue;\n });\n\n return encryptedContactDetail;\n }\n\n /**\n * Encrypts a given contact.\n */\n private async encryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const encryptedContact: Contact = {...contact};\n\n const encryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = encryptedContact.addressInfo;\n let encryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const encryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.encryptText(encryptionKeyUrl, value),\n ]\n );\n\n encryptedAddressInfo = Object.fromEntries(\n await Promise.all(encryptedAddressInfoPromises)\n );\n }\n\n return [field, encryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = encryptedContact[field];\n let encryptedDetails;\n\n if (plainTextDetails) {\n encryptedDetails = await this.encryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, encryptedDetails];\n }\n default: {\n let encryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && encryptedContact[field]) {\n encryptedValue = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrl,\n encryptedContact[field]\n );\n }\n\n return [field, encryptedValue];\n }\n }\n });\n\n const encryptedFieldsList = await Promise.all(encryptionPromises);\n\n encryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n encryptedContact[field] = value;\n }\n });\n\n return encryptedContact;\n }\n\n /**\n * Decrypts a given contact.\n */\n private async decryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const decryptedContact: Contact = {...contact};\n\n const decryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = decryptedContact.addressInfo;\n let decryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const decryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value),\n ]\n );\n\n decryptedAddressInfo = Object.fromEntries(\n await Promise.all(decryptedAddressInfoPromises)\n );\n }\n\n return [field, decryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = decryptedContact[field];\n let decryptedDetails;\n\n if (plainTextDetails) {\n decryptedDetails = await this.decryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, decryptedDetails];\n }\n default: {\n let decryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && decryptedContact[field]) {\n decryptedValue = await this.webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n decryptedContact[field]\n );\n }\n\n return [field, decryptedValue];\n }\n }\n });\n\n const decryptedFieldsList = await Promise.all(decryptionPromises);\n\n decryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n decryptedContact[field] = value;\n }\n });\n\n return decryptedContact;\n }\n\n /**\n * Fetches contacts from DSS.\n */\n private async fetchContactFromDSS(contactsDataMap: ContactIdContactInfo): Promise<Contact[]> {\n const contactList = [];\n const dssResult = await this.webex.internal.dss.lookup({ids: Object.keys(contactsDataMap)});\n\n for (let i = 0; i < dssResult.length; i += 1) {\n const contact = dssResult[i];\n const contactId = contact.identity;\n const {displayName, emails, phoneNumbers, sipAddresses, photos} = contact;\n const {department, firstName, identityManager, jobTitle, lastName} = contact.additionalInfo;\n const manager =\n identityManager && identityManager.displayName ? identityManager.displayName : undefined;\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[contactId];\n let avatarURL = '';\n\n if (photos.length) {\n avatarURL = photos[0].value;\n }\n\n const addedPhoneNumbers = contactsDataMap[contactId].phoneNumbers;\n\n if (addedPhoneNumbers) {\n const decryptedPhoneNumbers = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedPhoneNumbers\n );\n\n decryptedPhoneNumbers.forEach((number) => phoneNumbers.push(number));\n }\n\n const addedSipAddresses = contactsDataMap[contactId].sipAddresses;\n\n if (addedSipAddresses) {\n const decryptedSipAddresses = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedSipAddresses\n );\n\n decryptedSipAddresses.forEach((address) => sipAddresses.push(address));\n }\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId,\n contactType,\n department,\n displayName,\n emails,\n encryptionKeyUrl,\n firstName,\n groups,\n lastName,\n manager,\n ownerId,\n phoneNumbers,\n sipAddresses,\n title: jobTitle,\n };\n\n contactList.push(cloudContact);\n }\n\n return contactList;\n }\n\n /**\n * Returns list of contacts.\n */\n public async getContacts(): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'getContacts',\n };\n\n const contactList: Contact[] = [];\n const contactsDataMap: ContactIdContactInfo = {};\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.GET,\n });\n\n const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\n for (let i = 0; i < contacts.length; i += 1) {\n const contact = contacts[i];\n\n if (contact.contactType === ContactType.CUSTOM) {\n const decryptedContact = await this.decryptContact(contact);\n\n contactList.push(decryptedContact);\n } else if (contact.contactType === ContactType.CLOUD && contact.contactId) {\n contactsDataMap[contact.contactId] = contact;\n }\n }\n\n if (Object.keys(contactsDataMap).length) {\n const cloudContacts = await this.fetchContactFromDSS(contactsDataMap);\n\n contactList.push(...cloudContacts);\n }\n\n await Promise.all(\n groups.map(async (group, idx) => {\n groups[idx].displayName = await this.webex.internal.encryption.decryptText(\n group.encryptionKeyUrl,\n group.displayName\n );\n })\n );\n\n this.groups = groups;\n this.contacts = contactList;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contacts: contactList,\n groups,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a new KMS Resource Object (KRO) and Content Key (CK) which is used for encryption.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async createNewEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createNewEncryptionKeyUrl.name,\n };\n\n let unboundedKeyUri = '';\n\n log.info('Requesting kms for a new KRO and key', loggerContext);\n const unboundedKeys = await this.webex.internal.encryption.kms.createUnboundKeys({count: 1});\n\n unboundedKeyUri = unboundedKeys[0].uri;\n this.webex.internal.encryption.kms.createResource({keyUris: [unboundedKeyUri]});\n\n return unboundedKeyUri;\n }\n\n /**\n * Fetches the encryptionKeyUrl from one of the groups. Creates a new key and default group if there is no data.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async fetchEncryptionKeyUrl(): Promise<string> {\n if (this.encryptionKeyUrl) {\n return this.encryptionKeyUrl;\n }\n // istanbul ignore else\n if (this.groups === undefined) {\n this.getContacts();\n }\n // istanbul ignore else\n if (this.groups && this.groups.length) {\n /** Use the encryptionKeyUrl of any one of the groups */\n return this.groups[0].encryptionKeyUrl;\n }\n\n this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();\n log.info(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: this.fetchEncryptionKeyUrl.name,\n });\n const response: ContactResponse = await this.createContactGroup(\n DEFAULT_GROUP_NAME,\n this.encryptionKeyUrl\n );\n\n if (response.data.group?.groupId) {\n this.defaultGroupId = response.data.group?.groupId;\n }\n\n return this.encryptionKeyUrl;\n }\n\n /**\n * Fetches a default group.\n *\n * @returns GroupId of default group.\n */\n private async fetchDefaultGroup(): Promise<string> {\n if (this.defaultGroupId) {\n return this.defaultGroupId;\n }\n\n /* Check the groups list and determine the defaultGroupId */\n if (this.groups && this.groups.length) {\n for (let i = 0; i < this.groups.length; i += 1) {\n if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {\n this.defaultGroupId = this.groups[i].groupId;\n\n return this.defaultGroupId;\n }\n }\n }\n\n log.info('No default group found.', {\n file: CONTACTS_FILE,\n method: this.fetchDefaultGroup.name,\n });\n\n const response: ContactResponse = await this.createContactGroup(DEFAULT_GROUP_NAME);\n\n const {group} = response.data;\n\n if (group) {\n return group.groupId;\n }\n\n return '';\n }\n\n /**\n * Creates a personal contact group.\n * Also creates a KRO, if there aren't any groups.\n * @param displayName - Name of the group to create.\n * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.\n * @param groupType - Type of the group to create.\n */\n public async createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContactGroup.name,\n };\n\n log.info(`Creating contact group ${displayName}`, loggerContext);\n\n const encryptionKeyUrlFinal = encryptionKeyUrl || (await this.fetchEncryptionKeyUrl());\n\n if (this.groups === undefined) {\n await this.getContacts();\n }\n\n if (this.groups && this.groups.length) {\n const isExistingGroup = this.groups.find((group) => {\n return group.displayName === displayName;\n });\n\n if (isExistingGroup) {\n log.warn(`Group name ${displayName} already exists.`, loggerContext);\n\n return {\n statusCode: 400 as number,\n data: {error: 'Group displayName already exists'},\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const encryptedDisplayName = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrlFinal,\n displayName\n );\n\n const groupInfo = {\n schemas: CONTACTS_SCHEMA,\n displayName: encryptedDisplayName,\n groupType: groupType || GroupType.NORMAL,\n encryptionKeyUrl: encryptionKeyUrlFinal,\n };\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`,\n method: HTTP_METHODS.POST,\n body: groupInfo,\n });\n\n const group = response.body as ContactGroup;\n\n group.displayName = displayName;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n group,\n },\n message: SUCCESS_MESSAGE,\n };\n\n this.groups?.push(group);\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Unable to create contact group.', loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Deletes a contact group.\n * @param groupId - GroupId of the group to delete.\n */\n public async deleteContactGroup(groupId: string) {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContactGroup.name,\n };\n\n try {\n log.info(`Deleting contact group: ${groupId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const groupToDelete = this.groups?.findIndex((group) => group.groupId === groupId);\n\n if (groupToDelete !== undefined && groupToDelete !== -1) {\n this.groups?.splice(groupToDelete, 1);\n }\n\n if (!this.groups?.length) {\n this.defaultGroupId = '';\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact group ${groupId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a custom contact.\n * @param contactInfo - Contact object to create.\n */\n public async createContact(contactInfo: Contact): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n };\n\n log.info(`Request to create contact: contactType: ${contactInfo.contactType}`, loggerContext);\n\n try {\n const contact = {...contactInfo};\n\n if (!contact.encryptionKeyUrl) {\n contact.encryptionKeyUrl = await this.fetchEncryptionKeyUrl();\n }\n\n if (!contact.groups || contact.groups.length === 0) {\n /** Fetch the groupId for the default group if not create */\n const defaultGroupId = await this.fetchDefaultGroup();\n\n contact.groups = [defaultGroupId];\n }\n\n contact.schemas = CONTACTS_SCHEMA;\n let requestBody = {};\n\n switch (contact.contactType) {\n case ContactType.CUSTOM: {\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n case ContactType.CLOUD: {\n if (!contact.contactId) {\n return {\n statusCode: 400 as number,\n data: {\n error: 'contactId is required for contactType:CLOUD.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n default: {\n return {\n statusCode: 400 as number,\n data: {\n error: 'Unknown contactType received.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.POST,\n body: requestBody,\n });\n\n const newContact = response.body as Contact;\n\n contact.contactId = newContact.contactId;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contact,\n },\n message: SUCCESS_MESSAGE,\n };\n\n if (contact.contactType === ContactType.CLOUD) {\n const decryptedContacts = await this.fetchContactFromDSS(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo\n );\n\n if (decryptedContacts.length && decryptedContacts[0]) {\n this.contacts?.push(decryptedContacts[0]);\n }\n } else {\n this.contacts?.push(contact);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Failed to create contact.', {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n });\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Delete a contact.\n * @param contactId - ContactId of the contact to delete.\n */\n public async deleteContact(contactId: string): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContact.name,\n };\n\n try {\n log.info(`Deleting contact : ${contactId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}/${contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const contactToDelete = this.contacts?.findIndex(\n (contact) => contact.contactId === contactId\n );\n\n if (contactToDelete !== undefined && contactToDelete !== -1) {\n this.contacts?.splice(contactToDelete, 1);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact ${contactId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * Creates a ContactsClient instance\n *\n * @param {WebexSDK} webex - `Webex SDK`instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createContactsClient = (webex: WebexSDK, logger: LoggerInterface): IContacts =>\n new ContactsClient(webex, logger);\n"],"mappings":"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"}
|
package/dist/Contacts/types.js
CHANGED
|
@@ -12,6 +12,9 @@ exports.ContactType = ContactType;
|
|
|
12
12
|
ContactType["CLOUD"] = "CLOUD";
|
|
13
13
|
})(ContactType || (exports.ContactType = ContactType = {}));
|
|
14
14
|
var GroupType;
|
|
15
|
+
/**
|
|
16
|
+
* `ContactGroup` object is used to represent a contact group.
|
|
17
|
+
*/
|
|
15
18
|
exports.GroupType = GroupType;
|
|
16
19
|
(function (GroupType) {
|
|
17
20
|
GroupType["NORMAL"] = "NORMAL";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ContactType","exports","GroupType"],"sources":["types.ts"],"sourcesContent":["import {ContactDetail} from '../common/types';\n\nexport enum ContactType {\n CUSTOM = 'CUSTOM',\n CLOUD = 'CLOUD',\n}\n\nexport type AddressType = {\n city?: string;\n country?: string;\n state?: string;\n street?: string;\n zipCode?: string;\n};\n\nexport type Contact = {\n addressInfo?: AddressType;\n avatarURL?: string;\n avatarUrlDomain?: string;\n companyName?: string;\n contactId?: string;\n contactType: ContactType;\n department?: string;\n displayName?: string;\n emails?: ContactDetail[];\n encryptionKeyUrl: string;\n firstName?: string;\n groups: string[];\n kmsResourceObjectUrl?: string;\n lastName?: string;\n manager?: string;\n ownerId?: string;\n phoneNumbers?: ContactDetail[];\n primaryContactMethod?: string;\n schemas?: string;\n sipAddresses?: ContactDetail[];\n title?: string;\n};\n\nexport enum GroupType {\n NORMAL = 'NORMAL',\n EXTERNAL = 'EXTERNAL',\n}\n\nexport type ContactGroup = {\n displayName: string;\n encryptionKeyUrl: string;\n groupId: string;\n groupType: GroupType;\n members?: string[];\n ownerId?: string;\n};\n\nexport type ContactList = {\n contacts: Contact[];\n groups: ContactGroup[];\n};\n\nexport type ContactResponse = {\n statusCode: number;\n data: {\n contacts?: Contact[];\n groups?: ContactGroup[];\n contact?: Contact;\n group?: ContactGroup;\n error?: string;\n };\n message: string | null;\n};\n\n/**\n * Interface for Contacts Module.\n * This encompasses a set of APIs that enable the fetching, creation, and updating of contacts and groups.\n * These APIs return promises that resolve to a `ContactResponse` object, which contains a status code, data, and message.\n * The data field within this response object holds the contacts and groups object.\n *\n * Example - ContactResponse\n *\n * ```json\n * {\n * statusCode: 200,\n * data: {\n * contacts: Contact[],\n * groups: ContactGroup[],\n * },\n * message: null\n * }\n * ````\n */\nexport interface IContacts {\n /**\n * This API is used to fetch the list of contacts and groups for a user.\n *\n * Example\n * ```javascript\n * const contactsResponse = await contactClient.getContacts();\n * ```\n *\n * The `ContactsResponse` object contains a comprehensive list of both contacts and groups for the user.\n * Each `Contact` object within this list is defined by the properties detailed in the {@link Contact}.\n * Each `ContactGroup` adheres to the properties specified in the {@link ContactGroup}.\n *\n */\n getContacts(): Promise<ContactResponse>;\n\n /**\n * This API is used to create a contact group with the given display name.\n *\n * Example\n * ```javascript\n * const contactGroup = await contactClient.createContactGroup(displayName, encryptionKeyUrl, groupType);\n * ```\n *\n * The `ContactGroup` object for the given display name will be created and returned as a response with the properties of {@link ContactGroup}.\n */\n createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse>;\n\n /**\n * This API is used to delete a contact group whose groupId is received.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContactGroup(groupId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContactGroup(groupId: string): Promise<ContactResponse>;\n\n /**\n * This API is responsible for creating a new contact.\n *\n * Example\n * ```javascript\n * const contact = await contactClient.createContact(contactInfo);\n * ```\n */\n createContact(contactInfo: Contact): Promise<ContactResponse>;\n\n /**\n * This API is responsible for deleting an existing contact for the given contactId.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContact(contactId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContact(contactId: string): Promise<ContactResponse>;\n}\n\nexport type ContactIdContactInfo = {\n [Key: string]: Contact;\n};\n"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"names":["ContactType","exports","GroupType"],"sources":["types.ts"],"sourcesContent":["import {ISDKConnector} from '../SDKConnector/types';\nimport {ContactDetail} from '../common/types';\n\nexport enum ContactType {\n CUSTOM = 'CUSTOM',\n CLOUD = 'CLOUD',\n}\n\nexport type AddressType = {\n city?: string;\n country?: string;\n state?: string;\n street?: string;\n zipCode?: string;\n};\n\n/**\n * `Contact` object is used to represent a contact.\n */\nexport type Contact = {\n /**\n * This represents the complete address of the contact.\n */\n addressInfo?: AddressType;\n /**\n * This represents the URL of the avatar of the contact.\n */\n avatarURL?: string;\n /**\n * This represents the domain of the avatar of the contact.\n */\n avatarUrlDomain?: string;\n /**\n * This represents the company name of the contact.\n */\n companyName?: string;\n /**\n * Unique identifier of the contact.\n */\n contactId?: string;\n /**\n * Indicates the type of the contact, can be `CLOUD` or `CUSTOM`.\n */\n contactType: ContactType;\n /**\n * Department of the contact in the company if it's a corporate contact.\n */\n department?: string;\n /**\n * This represents the display name of the contact.\n */\n displayName?: string;\n /**\n * This represents the array of different email addresses of the contact.\n */\n emails?: ContactDetail[];\n /**\n * This is encrypted key url of the contact used for encryption.\n */\n encryptionKeyUrl: string;\n /**\n * This represents the first name of the contact.\n */\n firstName?: string;\n /**\n * Array of different groups and it's details available for the user\n */\n groups: string[];\n /**\n * The kms resource object url used to generate the encryption key.\n */\n kmsResourceObjectUrl?: string;\n /**\n * This represents the last name of the contact.\n */\n lastName?: string;\n /**\n * This represents the manager of the contact.\n */\n manager?: string;\n /**\n * Userd ID of the user who has the contact.\n */\n ownerId?: string;\n /**\n * This represents the array of different phone numbers of the contact.\n */\n phoneNumbers?: ContactDetail[];\n /**\n * Primary contact method as set by the contact.\n */\n primaryContactMethod?: string;\n /**\n * This represents the schema of the contact.\n */\n schemas?: string;\n /**\n * This represents the array of different sip addresses of the contact.\n */\n sipAddresses?: ContactDetail[];\n /**\n * This represents the job title of the contact.\n */\n title?: string;\n};\n\nexport enum GroupType {\n NORMAL = 'NORMAL',\n EXTERNAL = 'EXTERNAL',\n}\n\n/**\n * `ContactGroup` object is used to represent a contact group.\n */\nexport type ContactGroup = {\n /**\n * Name of the contact group.\n */\n displayName: string;\n /**\n * Encrypted key url used for encryption.\n */\n encryptionKeyUrl: string;\n /**\n * Unique identifier of the contact group.\n */\n groupId: string;\n /**\n * Type of the contact group, can be `NORMAL` or `EXTERNAL`.\n */\n groupType: GroupType;\n /**\n * String array containing details of the contacts in each group.\n */\n members?: string[];\n /**\n * User ID of the user who owns the contact group.\n */\n ownerId?: string;\n};\n\nexport type ContactList = {\n contacts: Contact[];\n groups: ContactGroup[];\n};\n\nexport type ContactResponse = {\n statusCode: number;\n data: {\n contacts?: Contact[];\n groups?: ContactGroup[];\n contact?: Contact;\n group?: ContactGroup;\n error?: string;\n };\n message: string | null;\n};\n\n/**\n * Interface for Contacts Module.\n * This encompasses a set of APIs that enable the fetching, creation, and updating of contacts and groups.\n * These APIs return promises that resolve to a `ContactResponse` object, which contains a status code, data, and message.\n * The data field within this response object holds the contacts and groups object.\n *\n * Example - ContactResponse\n *\n * ```json\n * {\n * statusCode: 200,\n * data: {\n * contacts: Contact[],\n * groups: ContactGroup[],\n * },\n * message: null\n * }\n * ````\n */\nexport interface IContacts {\n getSDKConnector: () => ISDKConnector;\n /**\n * This API is used to fetch the list of contacts and groups for a user.\n *\n * Example\n * ```javascript\n * const contactsResponse = await contactClient.getContacts();\n * ```\n *\n * The `ContactsResponse` object contains a comprehensive list of both contacts and groups for the user.\n * Each `Contact` object within this list is defined by the properties detailed in the {@link Contact}.\n * Each `ContactGroup` adheres to the properties specified in the {@link ContactGroup}.\n *\n */\n getContacts(): Promise<ContactResponse>;\n\n /**\n * This API is used to create a contact group with the given display name.\n *\n * Example\n * ```javascript\n * const contactGroup = await contactClient.createContactGroup(displayName, encryptionKeyUrl, groupType);\n * ```\n *\n * The `ContactGroup` object for the given display name will be created and returned as a response with the properties of {@link ContactGroup}.\n */\n createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse>;\n\n /**\n * This API is used to delete a contact group whose groupId is received.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContactGroup(groupId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContactGroup(groupId: string): Promise<ContactResponse>;\n\n /**\n * This API is responsible for creating a new contact.\n *\n * Example\n * ```javascript\n * const contact = await contactClient.createContact(contactInfo);\n * ```\n */\n createContact(contactInfo: Contact): Promise<ContactResponse>;\n\n /**\n * This API is responsible for deleting an existing contact for the given contactId.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContact(contactId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContact(contactId: string): Promise<ContactResponse>;\n}\n\nexport type ContactIdContactInfo = {\n [Key: string]: Contact;\n};\n"],"mappings":";;;;;;;IAGYA,WAAW;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAAA,WAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,KAAAC,OAAA,CAAAD,WAAA,GAAXA,WAAW;AAAA,IAuGXE,SAAS;AAKrB;AACA;AACA;AAFAD,OAAA,CAAAC,SAAA,GAAAA,SAAA;AAAA,WALYA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,KAAAD,OAAA,CAAAC,SAAA,GAATA,SAAS"}
|
|
@@ -36,7 +36,7 @@ var CallingClientError = /*#__PURE__*/function (_ExtendedError) {
|
|
|
36
36
|
var _this;
|
|
37
37
|
(0, _classCallCheck2.default)(this, CallingClientError);
|
|
38
38
|
_this = _super.call(this, msg, context, type);
|
|
39
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "status", _types.
|
|
39
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "status", _types.RegistrationStatus.INACTIVE);
|
|
40
40
|
_this.status = status;
|
|
41
41
|
return _this;
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_ExtendedError2","_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","CallingClientError","_ExtendedError","_inherits2","_super","msg","context","type","status","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","
|
|
1
|
+
{"version":3,"names":["_types","require","_ExtendedError2","_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","CallingClientError","_ExtendedError","_inherits2","_super","msg","context","type","status","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","RegistrationStatus","INACTIVE","_createClass2","key","value","setError","error","message","getError","ExtendedError","exports","createClientError"],"sources":["CallingDeviceError.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {RegistrationStatus} from '../../common/types';\n\nimport {ErrorContext, ErrorMessage, ErrorObject, ERROR_TYPE} from '../types';\nimport ExtendedError from './ExtendedError';\n\n/**\n * Any error reported from Calling client should be stored here.\n */\nexport class CallingClientError extends ExtendedError {\n public status: RegistrationStatus = RegistrationStatus.INACTIVE;\n\n /**\n * Instantiate the Error class with these parameters.\n *\n * @param msg - Custom error message.\n * @param context - Error context.\n * @param type - Error Type.\n * @param status - Mobius Status, should be default.\n */\n constructor(\n msg: ErrorMessage,\n context: ErrorContext,\n type: ERROR_TYPE,\n status: RegistrationStatus\n ) {\n super(msg, context, type);\n this.status = status;\n }\n\n /**\n * Class method exposed to callers to allow storing of error object.\n *\n * @param error - Error Object.\n */\n public setError(error: ErrorObject) {\n this.message = error.message;\n this.context = error.context;\n this.type = error.type;\n }\n\n /**\n * Class method exposed to callers to retrieve error object.\n *\n * @returns Error.\n */\n public getError(): ErrorObject {\n return <ErrorObject>{message: this.message, context: this.context, type: this.type};\n }\n}\n\n/**\n * Instantiate CallingClientError.\n *\n * @param msg - Custom error message.\n * @param context - Error context.\n * @param type - Error Type.\n * @param status - Mobius Status, should be default.\n * @returns CallingClientError instance.\n */\nexport const createClientError = (\n msg: ErrorMessage,\n context: ErrorContext,\n type: ERROR_TYPE,\n status: RegistrationStatus\n) => new CallingClientError(msg, context, type, status);\n"],"mappings":";;;;;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA4C,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;AAE5C;AACA;AACA;AAFA,IAGaC,kBAAkB,0BAAAC,cAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,kBAAA,EAAAC,cAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,kBAAA;EAG7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,mBACEI,GAAiB,EACjBC,OAAqB,EACrBC,IAAgB,EAChBC,MAA0B,EAC1B;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAzB,OAAA,QAAAgB,kBAAA;IACAQ,KAAA,GAAAL,MAAA,CAAAL,IAAA,OAAMM,GAAG,EAAEC,OAAO,EAAEC,IAAI;IAAE,IAAAI,gBAAA,CAAA1B,OAAA,MAAA2B,uBAAA,CAAA3B,OAAA,EAAAwB,KAAA,aAhBQI,yBAAkB,CAACC,QAAQ;IAiB7DL,KAAA,CAAKD,MAAM,GAAGA,MAAM;IAAC,OAAAC,KAAA;EACvB;;EAEA;AACF;AACA;AACA;AACA;EAJE,IAAAM,aAAA,CAAA9B,OAAA,EAAAgB,kBAAA;IAAAe,GAAA;IAAAC,KAAA,EAKA,SAAAC,SAAgBC,KAAkB,EAAE;MAClC,IAAI,CAACC,OAAO,GAAGD,KAAK,CAACC,OAAO;MAC5B,IAAI,CAACd,OAAO,GAAGa,KAAK,CAACb,OAAO;MAC5B,IAAI,CAACC,IAAI,GAAGY,KAAK,CAACZ,IAAI;IACxB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAS,GAAA;IAAAC,KAAA,EAKA,SAAAI,SAAA,EAA+B;MAC7B,OAAoB;QAACD,OAAO,EAAE,IAAI,CAACA,OAAO;QAAEd,OAAO,EAAE,IAAI,CAACA,OAAO;QAAEC,IAAI,EAAE,IAAI,CAACA;MAAI,CAAC;IACrF;EAAC;EAAA,OAAAN,kBAAA;AAAA,EAvCqCqB,uBAAa;AA0CrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAC,OAAA,CAAAtB,kBAAA,GAAAA,kBAAA;AASO,IAAMuB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BnB,GAAiB,EACjBC,OAAqB,EACrBC,IAAgB,EAChBC,MAA0B;EAAA,OACvB,IAAIP,kBAAkB,CAACI,GAAG,EAAEC,OAAO,EAAEC,IAAI,EAAEC,MAAM,CAAC;AAAA;AAACe,OAAA,CAAAC,iBAAA,GAAAA,iBAAA"}
|
|
@@ -14,7 +14,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/
|
|
|
14
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
15
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
17
|
-
var _types = require("../../
|
|
17
|
+
var _types = require("../../common/types");
|
|
18
18
|
var _ExtendedError2 = _interopRequireDefault(require("./ExtendedError"));
|
|
19
19
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
20
20
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -36,7 +36,7 @@ var LineError = /*#__PURE__*/function (_ExtendedError) {
|
|
|
36
36
|
var _this;
|
|
37
37
|
(0, _classCallCheck2.default)(this, LineError);
|
|
38
38
|
_this = _super.call(this, msg, context, type);
|
|
39
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "status", _types.
|
|
39
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "status", _types.RegistrationStatus.INACTIVE);
|
|
40
40
|
_this.status = status;
|
|
41
41
|
return _this;
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_ExtendedError2","_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","LineError","_ExtendedError","_inherits2","_super","msg","context","type","status","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","
|
|
1
|
+
{"version":3,"names":["_types","require","_ExtendedError2","_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","LineError","_ExtendedError","_inherits2","_super","msg","context","type","status","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","RegistrationStatus","INACTIVE","_createClass2","key","value","setError","error","message","getError","ExtendedError","exports","createLineError"],"sources":["LineError.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {RegistrationStatus} from '../../common/types';\nimport {ErrorMessage, ERROR_TYPE, LineErrorObject, ErrorContext} from '../types';\nimport ExtendedError from './ExtendedError';\n\n/**\n * Any error reported from Line class should be stored here.\n */\nexport class LineError extends ExtendedError {\n public status: RegistrationStatus = RegistrationStatus.INACTIVE;\n\n /**\n * Instantiate the Error class with these parameters.\n *\n * @param msg - Custom error message.\n * @param context - Error context.\n * @param type - Error Type.\n * @param status - Line Status, should be inactive.\n */\n constructor(\n msg: ErrorMessage,\n context: ErrorContext,\n type: ERROR_TYPE,\n status: RegistrationStatus\n ) {\n super(msg, context, type);\n this.status = status;\n }\n\n /**\n * Class method exposed to allow storing of error object.\n *\n * @param error - Error Object.\n */\n public setError(error: LineErrorObject) {\n this.message = error.message;\n this.context = error.context;\n this.type = error.type;\n this.status = error.status;\n }\n\n /**\n * Class method exposed to retrieve error object.\n *\n * @returns Error.\n */\n public getError(): LineErrorObject {\n return <LineErrorObject>{\n message: this.message,\n context: this.context,\n type: this.type,\n status: this.status,\n };\n }\n}\n\n/**\n * Instantiate LineError.\n *\n * @param msg - Custom error message.\n * @param context - Error context.\n * @param type - Error Type.\n * @param status - Line Status, should be inactive.\n * @returns LineError instance.\n */\nexport const createLineError = (\n msg: ErrorMessage,\n context: ErrorContext,\n type: ERROR_TYPE,\n status: RegistrationStatus\n) => new LineError(msg, context, type, status);\n"],"mappings":";;;;;;;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA4C,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;AAE5C;AACA;AACA;AAFA,IAGaC,SAAS,0BAAAC,cAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,SAAA,EAAAC,cAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,SAAA;EAGpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,UACEI,GAAiB,EACjBC,OAAqB,EACrBC,IAAgB,EAChBC,MAA0B,EAC1B;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAzB,OAAA,QAAAgB,SAAA;IACAQ,KAAA,GAAAL,MAAA,CAAAL,IAAA,OAAMM,GAAG,EAAEC,OAAO,EAAEC,IAAI;IAAE,IAAAI,gBAAA,CAAA1B,OAAA,MAAA2B,uBAAA,CAAA3B,OAAA,EAAAwB,KAAA,aAhBQI,yBAAkB,CAACC,QAAQ;IAiB7DL,KAAA,CAAKD,MAAM,GAAGA,MAAM;IAAC,OAAAC,KAAA;EACvB;;EAEA;AACF;AACA;AACA;AACA;EAJE,IAAAM,aAAA,CAAA9B,OAAA,EAAAgB,SAAA;IAAAe,GAAA;IAAAC,KAAA,EAKA,SAAAC,SAAgBC,KAAsB,EAAE;MACtC,IAAI,CAACC,OAAO,GAAGD,KAAK,CAACC,OAAO;MAC5B,IAAI,CAACd,OAAO,GAAGa,KAAK,CAACb,OAAO;MAC5B,IAAI,CAACC,IAAI,GAAGY,KAAK,CAACZ,IAAI;MACtB,IAAI,CAACC,MAAM,GAAGW,KAAK,CAACX,MAAM;IAC5B;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAQ,GAAA;IAAAC,KAAA,EAKA,SAAAI,SAAA,EAAmC;MACjC,OAAwB;QACtBD,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBd,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBC,IAAI,EAAE,IAAI,CAACA,IAAI;QACfC,MAAM,EAAE,IAAI,CAACA;MACf,CAAC;IACH;EAAC;EAAA,OAAAP,SAAA;AAAA,EA7C4BqB,uBAAa;AAgD5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARAC,OAAA,CAAAtB,SAAA,GAAAA,SAAA;AASO,IAAMuB,eAAe,GAAG,SAAlBA,eAAeA,CAC1BnB,GAAiB,EACjBC,OAAqB,EACrBC,IAAgB,EAChBC,MAA0B;EAAA,OACvB,IAAIP,SAAS,CAACI,GAAG,EAAEC,OAAO,EAAEC,IAAI,EAAEC,MAAM,CAAC;AAAA;AAACe,OAAA,CAAAC,eAAA,GAAAA,eAAA"}
|
package/dist/Errors/index.js
CHANGED
|
@@ -16,6 +16,13 @@ _Object$defineProperty(exports, "CallingClientError", {
|
|
|
16
16
|
return _CallingDeviceError.CallingClientError;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
_Object$defineProperty(exports, "LineError", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _LineError.LineError;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
19
25
|
var _CallingDeviceError = require("./catalog/CallingDeviceError");
|
|
20
26
|
var _CallError = require("./catalog/CallError");
|
|
27
|
+
var _LineError = require("./catalog/LineError");
|
|
21
28
|
//# sourceMappingURL=index.js.map
|
package/dist/Errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_CallingDeviceError","require","_CallError"],"sources":["index.ts"],"sourcesContent":["export {CallingClientError} from './catalog/CallingDeviceError';\nexport {CallError} from './catalog/CallError';\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_CallingDeviceError","require","_CallError","_LineError"],"sources":["index.ts"],"sourcesContent":["export {CallingClientError} from './catalog/CallingDeviceError';\nexport {CallError} from './catalog/CallError';\nexport {LineError} from './catalog/LineError';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA"}
|
package/dist/Errors/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ERROR_LAYER","exports","ERROR_TYPE","ERROR_CODE","CALL_ERROR_CODE","DEVICE_ERROR_CODE"],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-interface */\nimport {
|
|
1
|
+
{"version":3,"names":["ERROR_LAYER","exports","ERROR_TYPE","ERROR_CODE","CALL_ERROR_CODE","DEVICE_ERROR_CODE"],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-interface */\nimport {CorrelationId, IMetaContext, RegistrationStatus} from '../common/types';\n\nexport type ErrorMessage = string;\n\nexport enum ERROR_LAYER {\n CALL_CONTROL = 'call_control',\n MEDIA = 'media',\n}\n\nexport enum ERROR_TYPE {\n CALL_ERROR = 'call_error',\n DEFAULT = 'default_error',\n FORBIDDEN_ERROR = 'forbidden',\n NOT_FOUND = 'not_found',\n REGISTRATION_ERROR = 'registration_error',\n SERVICE_UNAVAILABLE = 'service_unavailable',\n TIMEOUT = 'timeout',\n TOKEN_ERROR = 'token_error',\n SERVER_ERROR = 'server_error',\n}\n\nexport enum ERROR_CODE {\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n DEVICE_NOT_FOUND = 404,\n INTERNAL_SERVER_ERROR = 500,\n NOT_IMPLEMENTED = 501,\n SERVICE_UNAVAILABLE = 503,\n BAD_REQUEST = 400,\n REQUEST_TIMEOUT = 408,\n TOO_MANY_REQUESTS = 429,\n}\n\nexport enum CALL_ERROR_CODE {\n INVALID_STATUS_UPDATE = 111,\n DEVICE_NOT_REGISTERED = 112,\n CALL_NOT_FOUND = 113,\n ERROR_PROCESSING = 114,\n USER_BUSY = 115,\n PARSING_ERROR = 116,\n TIMEOUT_ERROR = 117,\n NOT_ACCEPTABLE = 118,\n CALL_REJECTED = 119,\n NOT_AVAILABLE = 120,\n}\n\nexport enum DEVICE_ERROR_CODE {\n DEVICE_LIMIT_EXCEEDED = 101,\n DEVICE_CREATION_DISABLED = 102,\n DEVICE_CREATION_FAILED = 103,\n}\n\nexport interface ErrorContext extends IMetaContext {}\n\nexport type ErrorObject = {\n message: ErrorMessage;\n type: ERROR_TYPE;\n context: ErrorContext;\n};\n\nexport interface LineErrorObject extends ErrorObject {\n status: RegistrationStatus;\n}\n\nexport interface CallErrorObject extends ErrorObject {\n correlationId: CorrelationId;\n errorLayer: ERROR_LAYER;\n}\n"],"mappings":";;;;;;;AAAA;AAAA,IAKYA,WAAW;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAAA,WAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,KAAAC,OAAA,CAAAD,WAAA,GAAXA,WAAW;AAAA,IAKXE,UAAU;AAAAD,OAAA,CAAAC,UAAA,GAAAA,UAAA;AAAA,WAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;AAAA,GAAVA,UAAU,KAAAD,OAAA,CAAAC,UAAA,GAAVA,UAAU;AAAA,IAYVC,UAAU;AAAAF,OAAA,CAAAE,UAAA,GAAAA,UAAA;AAAA,WAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;AAAA,GAAVA,UAAU,KAAAF,OAAA,CAAAE,UAAA,GAAVA,UAAU;AAAA,IAYVC,eAAe;AAAAH,OAAA,CAAAG,eAAA,GAAAA,eAAA;AAAA,WAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;EAAfA,eAAe,CAAfA,eAAe;AAAA,GAAfA,eAAe,KAAAH,OAAA,CAAAG,eAAA,GAAfA,eAAe;AAAA,IAafC,iBAAiB;AAAAJ,OAAA,CAAAI,iBAAA,GAAAA,iBAAA;AAAA,WAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;AAAA,GAAjBA,iBAAiB,KAAAJ,OAAA,CAAAI,iBAAA,GAAjBA,iBAAiB"}
|
package/dist/Events/types.js
CHANGED
|
@@ -87,7 +87,6 @@ exports.MEDIA_CONNECTION_EVENT_KEYS = MEDIA_CONNECTION_EVENT_KEYS;
|
|
|
87
87
|
})(MEDIA_CONNECTION_EVENT_KEYS || (exports.MEDIA_CONNECTION_EVENT_KEYS = MEDIA_CONNECTION_EVENT_KEYS = {}));
|
|
88
88
|
/* External Eventing End */
|
|
89
89
|
/** Internal Eventing Start */
|
|
90
|
-
// https://sqbu-github.cisco.com/pages/webrtc-calling/mobius/mobius-api-spec/docs/async.html#operation-publish-calls
|
|
91
90
|
var CALL_STATE;
|
|
92
91
|
(function (CALL_STATE) {
|
|
93
92
|
CALL_STATE["HELD"] = "held";
|
package/dist/Events/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COMMON_EVENT_KEYS","exports","LINE_EVENT_KEYS","CALLING_CLIENT_EVENT_KEYS","CALL_EVENT_KEYS","SUPPLEMENTARY_SERVICES","MOBIUS_MIDCALL_STATE","Disposition","SessionType","MOBIUS_EVENT_KEYS","MEDIA_CONNECTION_EVENT_KEYS","CALL_STATE","WEBSOCKET_SCOPE","WEBSOCKET_KEYS"],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */ // TODO: remove once we define the payloads\nimport type {ICall} from '../CallingClient/calling/types';\nimport {CallId, DisplayInformation} from '../common/types';\nimport {CallError, CallingClientError} from '../Errors';\n\n/** External Eventing Start */\nexport enum COMMON_EVENT_KEYS {\n CB_VOICEMESSAGE_CONTENT_GET = 'call_back_voicemail_content_get',\n CALL_HISTORY_USER_SESSION_INFO = 'callHistory:user_recent_sessions',\n}\n\nexport enum LINE_EVENT_KEYS {\n INCOMING_CALL = 'incoming_call',\n}\n\nexport enum CALLING_CLIENT_EVENT_KEYS {\n ERROR = 'callingClient:error',\n OUTGOING_CALL = 'callingClient:outgoing_call',\n USER_SESSION_INFO = 'callingClient:user_recent_sessions',\n ALL_CALLS_CLEARED = 'callingClient:all_calls_cleared',\n}\n\nexport enum CALL_EVENT_KEYS {\n ALERTING = 'alerting',\n CALL_ERROR = 'call_error',\n CALLER_ID = 'caller_id',\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n ESTABLISHED = 'established',\n HELD = 'held',\n HOLD_ERROR = 'hold_error',\n PROGRESS = 'progress',\n REMOTE_MEDIA = 'remote_media',\n RESUME_ERROR = 'resume_error',\n RESUMED = 'resumed',\n TRANSFER_ERROR = 'transfer_error',\n}\n\nexport enum SUPPLEMENTARY_SERVICES {\n HOLD = 'hold',\n RESUME = 'resume',\n DIVERT = 'divert',\n TRANSFER = 'transfer',\n PARK = 'park',\n}\n\nexport enum MOBIUS_MIDCALL_STATE {\n HELD = 'HELD',\n CONNECTED = 'CONNECTED',\n}\n\nexport enum Disposition {\n ANSWERED = 'Answered',\n CANCELED = 'Canceled',\n INITIATED = 'Initiated',\n MISSED = 'MISSED',\n}\n\nexport type CallRecordLink = {\n locusUrl?: string;\n conversationUrl?: string;\n callbackAddress: string;\n};\n\nexport type CallBackInfo = {\n callbackAddress: string;\n callbackType: string;\n};\n\nexport type LookUpInfo = {\n lookupLink: string;\n type: string;\n};\n\nexport type CallRecordSelf = {\n id: string;\n name?: string;\n phoneNumber: string;\n};\n\nexport type CallRecordListOther = {\n ownerId?: string;\n id: string;\n name?: string;\n sipUrl?: string;\n primaryDisplayString?: string;\n secondaryDisplayString?: string;\n isPrivate: boolean;\n callbackAddress: string;\n phoneNumber: string;\n contact?: string;\n email?: string;\n};\n\nexport enum SessionType {\n SPARK = 'SPARK',\n WEBEX_CALLING = 'WEBEXCALLING',\n}\n\nexport type UserSession = {\n id: string;\n sessionId: string;\n disposition: Disposition;\n startTime: string;\n endTime: string;\n url: string;\n durationSeconds: number;\n joinedDurationSeconds: number;\n participantCount: number;\n isDeleted: boolean;\n isPMR: boolean;\n correlationIds: string[];\n links: CallRecordLink;\n self: CallRecordSelf;\n durationSecs: number;\n other: CallRecordListOther;\n sessionType: SessionType;\n direction: string;\n};\n\nexport type CallingParty = {\n name?: string;\n number?: string;\n privacyEnabled?: boolean;\n userId?: string;\n address?: string;\n};\n\nexport type Item = {\n id?: string;\n duration?: number;\n callingParty?: CallingParty;\n urgent?: boolean;\n confidential?: boolean;\n read?: boolean;\n created?: string;\n messageId?: string;\n time?: number;\n};\n\nexport enum MOBIUS_EVENT_KEYS {\n SERVER_EVENT_INCLUSIVE = 'event:mobius',\n CALL_SESSION_EVENT_INCLUSIVE = 'event:janus.user_recent_sessions',\n}\n\nexport type CallSessionData = {\n userSessions: {\n userSessions: UserSession[];\n statusCode: number;\n };\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE;\n};\n\nexport type CallSessionEvent = {\n id: string;\n data: CallSessionData;\n timestamp: number;\n trackingId: string;\n};\n\nexport enum MEDIA_CONNECTION_EVENT_KEYS {\n ROAP_MESSAGE_TO_SEND = 'roap:messageToSend',\n MEDIA_TYPE_AUDIO = 'audio',\n}\n\nexport type CallerIdDisplay = {\n correlationId: string;\n callerId: DisplayInformation;\n};\n\nexport type CallEventTypes = {\n [CALL_EVENT_KEYS.ALERTING]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.CALL_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.CALLER_ID]: (display: CallerIdDisplay) => void;\n [CALL_EVENT_KEYS.CONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.DISCONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.ESTABLISHED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HELD]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HOLD_ERROR]: (error: CallError) => void;\n [LINE_EVENT_KEYS.INCOMING_CALL]: (callObj: ICall) => void;\n [CALL_EVENT_KEYS.PROGRESS]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.REMOTE_MEDIA]: (track: MediaStreamTrack) => void;\n [CALL_EVENT_KEYS.RESUME_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.RESUMED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.TRANSFER_ERROR]: (error: CallError) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type MessageId = {\n messageId: string;\n};\n\nexport type VoicemailEventTypes = {\n [COMMON_EVENT_KEYS.CB_VOICEMESSAGE_CONTENT_GET]: (messageId: MessageId) => void;\n};\n\nexport type CallingClientEventTypes = {\n [CALLING_CLIENT_EVENT_KEYS.ERROR]: (error: CallingClientError) => void;\n [CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n [CALLING_CLIENT_EVENT_KEYS.OUTGOING_CALL]: (callId: string) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type CallHistoryEventTypes = {\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n};\n/* External Eventing End */\n\n/** Internal Eventing Start */\n// https://sqbu-github.cisco.com/pages/webrtc-calling/mobius/mobius-api-spec/docs/async.html#operation-publish-calls\n\nenum CALL_STATE {\n HELD = 'held',\n REMOTE_HELD = 'remoteheld',\n CONNECTED = 'connected',\n}\ntype eventType = string;\ntype callProgressData = {\n alerting: boolean;\n inbandROAP: boolean;\n};\nexport type CallerIdInfo = {\n 'x-broadworks-remote-party-info'?: string;\n 'p-asserted-identity'?: string;\n from?: string;\n};\ntype callId = string;\ntype deviceId = string;\ntype correlationId = string;\ntype callUrl = string;\ntype causecode = number;\ntype cause = string;\ntype eventData = {\n callerId: CallerIdInfo;\n callState: CALL_STATE;\n};\ntype midCallServiceData = {\n eventType: eventType;\n eventData: eventData;\n};\ntype midCallService = Array<midCallServiceData>;\n\ninterface BaseMessage {\n eventType: eventType;\n correlationId: correlationId;\n deviceId: deviceId;\n callId: callId;\n callUrl: callUrl;\n}\n\nexport interface CallSetupMessage extends BaseMessage {\n callerId: CallerIdInfo;\n trackingId: string;\n alertType: string;\n}\n\ninterface CallProgressMessage extends BaseMessage {\n callProgressData: callProgressData;\n callerId: CallerIdInfo;\n}\n\nexport const WEBSOCKET_SCOPE = 'mobius';\nexport enum WEBSOCKET_KEYS {\n CALL_PROGRESS = 'callprogress',\n CALL_CONNECTED = 'callconnected',\n CALL_DISCONNECTED = 'callconnected',\n CALL_INFO = 'callinfo',\n CALL = 'call',\n ROAP = 'ROAP',\n}\n/** Internal Eventing End */\n\n/** State Machine Events */\n\nexport type CallEvent =\n /* Received Events */\n | {type: 'E_RECV_CALL_SETUP'; data?: unknown}\n | {type: 'E_RECV_CALL_PROGRESS'; data?: unknown}\n | {type: 'E_RECV_CALL_CONNECT'; data?: unknown}\n | {type: 'E_RECV_CALL_DISCONNECT'; data?: unknown}\n\n /* Sent Events */\n | {type: 'E_SEND_CALL_SETUP'; data?: unknown}\n | {type: 'E_SEND_CALL_ALERTING'; data?: unknown}\n | {type: 'E_SEND_CALL_CONNECT'; data?: unknown}\n | {type: 'E_SEND_CALL_DISCONNECT'; data?: unknown}\n\n /* Common Events */\n | {type: 'E_CALL_ESTABLISHED'; data?: unknown}\n | {type: 'E_CALL_INFO'; data?: unknown}\n | {type: 'E_UNKNOWN'; data?: unknown}\n | {type: 'E_CALL_CLEARED'; data?: unknown}\n | {type: 'E_CALL_HOLD'; data?: unknown}\n | {type: 'E_CALL_RESUME'; data?: unknown};\n\n/* ROAP Events */\nexport type RoapEvent =\n | {type: 'E_SEND_ROAP_OFFER'; data?: unknown}\n | {type: 'E_SEND_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER'; data?: unknown}\n | {type: 'E_RECV_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_ROAP_ERROR'; data?: unknown}\n | {type: 'E_ROAP_OK'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER_REQUEST'; data?: unknown} // ROAP request to explicitly ask Client to do OFFER\n | {type: 'E_ROAP_TEARDOWN'; data?: unknown};\n\n// TODO: export RoapMessage type from the media SDK to use here\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface RoapMessage {\n seq: number;\n messageType: 'OFFER' | 'ANSWER' | 'OK' | 'ERROR' | 'OFFER_REQUEST';\n offererSessionId?: string;\n answererSessionId?: string;\n sdp?: string;\n version?: string;\n tieBreaker?: string;\n errorType?: string;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["COMMON_EVENT_KEYS","exports","LINE_EVENT_KEYS","CALLING_CLIENT_EVENT_KEYS","CALL_EVENT_KEYS","SUPPLEMENTARY_SERVICES","MOBIUS_MIDCALL_STATE","Disposition","SessionType","MOBIUS_EVENT_KEYS","MEDIA_CONNECTION_EVENT_KEYS","CALL_STATE","WEBSOCKET_SCOPE","WEBSOCKET_KEYS"],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */ // TODO: remove once we define the payloads\nimport type {ICall} from '../CallingClient/calling/types';\nimport {CallId, DisplayInformation} from '../common/types';\nimport {CallError, CallingClientError} from '../Errors';\n\n/** External Eventing Start */\nexport enum COMMON_EVENT_KEYS {\n CB_VOICEMESSAGE_CONTENT_GET = 'call_back_voicemail_content_get',\n CALL_HISTORY_USER_SESSION_INFO = 'callHistory:user_recent_sessions',\n}\n\nexport enum LINE_EVENT_KEYS {\n INCOMING_CALL = 'incoming_call',\n}\n\nexport enum CALLING_CLIENT_EVENT_KEYS {\n ERROR = 'callingClient:error',\n OUTGOING_CALL = 'callingClient:outgoing_call',\n USER_SESSION_INFO = 'callingClient:user_recent_sessions',\n ALL_CALLS_CLEARED = 'callingClient:all_calls_cleared',\n}\n\nexport enum CALL_EVENT_KEYS {\n ALERTING = 'alerting',\n CALL_ERROR = 'call_error',\n CALLER_ID = 'caller_id',\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n ESTABLISHED = 'established',\n HELD = 'held',\n HOLD_ERROR = 'hold_error',\n PROGRESS = 'progress',\n REMOTE_MEDIA = 'remote_media',\n RESUME_ERROR = 'resume_error',\n RESUMED = 'resumed',\n TRANSFER_ERROR = 'transfer_error',\n}\n\nexport enum SUPPLEMENTARY_SERVICES {\n HOLD = 'hold',\n RESUME = 'resume',\n DIVERT = 'divert',\n TRANSFER = 'transfer',\n PARK = 'park',\n}\n\nexport enum MOBIUS_MIDCALL_STATE {\n HELD = 'HELD',\n CONNECTED = 'CONNECTED',\n}\n\nexport enum Disposition {\n ANSWERED = 'Answered',\n CANCELED = 'Canceled',\n INITIATED = 'Initiated',\n MISSED = 'MISSED',\n}\n\nexport type CallRecordLink = {\n locusUrl?: string;\n conversationUrl?: string;\n callbackAddress: string;\n};\n\nexport type CallBackInfo = {\n callbackAddress: string;\n callbackType: string;\n};\n\nexport type LookUpInfo = {\n lookupLink: string;\n type: string;\n};\n\nexport type CallRecordSelf = {\n id: string;\n name?: string;\n phoneNumber: string;\n};\n\nexport type CallRecordListOther = {\n ownerId?: string;\n id: string;\n name?: string;\n sipUrl?: string;\n primaryDisplayString?: string;\n secondaryDisplayString?: string;\n isPrivate: boolean;\n callbackAddress: string;\n phoneNumber: string;\n contact?: string;\n email?: string;\n};\n\nexport type RedirectionDetails = {\n phoneNumber?: string;\n sipUrl?: string;\n name?: string;\n reason: string;\n userId?: string;\n isPrivate: boolean;\n};\n\nexport enum SessionType {\n SPARK = 'SPARK',\n WEBEX_CALLING = 'WEBEXCALLING',\n}\n\nexport type UserSession = {\n id: string;\n sessionId: string;\n disposition: Disposition;\n startTime: string;\n endTime: string;\n url: string;\n durationSeconds: number;\n joinedDurationSeconds: number;\n participantCount: number;\n isDeleted: boolean;\n isPMR: boolean;\n correlationIds: string[];\n links: CallRecordLink;\n self: CallRecordSelf;\n durationSecs: number;\n other: CallRecordListOther;\n sessionType: SessionType;\n direction: string;\n callingSpecifics?: {\n redirectionDetails: RedirectionDetails;\n };\n};\n\nexport type CallingParty = {\n name?: string;\n number?: string;\n privacyEnabled?: boolean;\n userId?: string;\n address?: string;\n};\n\nexport type Item = {\n id?: string;\n duration?: number;\n callingParty?: CallingParty;\n urgent?: boolean;\n confidential?: boolean;\n read?: boolean;\n created?: string;\n messageId?: string;\n time?: number;\n};\n\nexport enum MOBIUS_EVENT_KEYS {\n SERVER_EVENT_INCLUSIVE = 'event:mobius',\n CALL_SESSION_EVENT_INCLUSIVE = 'event:janus.user_recent_sessions',\n}\n\nexport type CallSessionData = {\n userSessions: {\n userSessions: UserSession[];\n statusCode: number;\n };\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE;\n};\n\nexport type CallSessionEvent = {\n id: string;\n data: CallSessionData;\n timestamp: number;\n trackingId: string;\n};\n\nexport enum MEDIA_CONNECTION_EVENT_KEYS {\n ROAP_MESSAGE_TO_SEND = 'roap:messageToSend',\n MEDIA_TYPE_AUDIO = 'audio',\n}\n\nexport type CallerIdDisplay = {\n correlationId: string;\n callerId: DisplayInformation;\n};\n\nexport type CallEventTypes = {\n [CALL_EVENT_KEYS.ALERTING]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.CALL_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.CALLER_ID]: (display: CallerIdDisplay) => void;\n [CALL_EVENT_KEYS.CONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.DISCONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.ESTABLISHED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HELD]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HOLD_ERROR]: (error: CallError) => void;\n [LINE_EVENT_KEYS.INCOMING_CALL]: (callObj: ICall) => void;\n [CALL_EVENT_KEYS.PROGRESS]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.REMOTE_MEDIA]: (track: MediaStreamTrack) => void;\n [CALL_EVENT_KEYS.RESUME_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.RESUMED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.TRANSFER_ERROR]: (error: CallError) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type MessageId = {\n messageId: string;\n};\n\nexport type VoicemailEventTypes = {\n [COMMON_EVENT_KEYS.CB_VOICEMESSAGE_CONTENT_GET]: (messageId: MessageId) => void;\n};\n\nexport type CallingClientEventTypes = {\n [CALLING_CLIENT_EVENT_KEYS.ERROR]: (error: CallingClientError) => void;\n [CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n [CALLING_CLIENT_EVENT_KEYS.OUTGOING_CALL]: (callId: string) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type CallHistoryEventTypes = {\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n};\n/* External Eventing End */\n\n/** Internal Eventing Start */\nenum CALL_STATE {\n HELD = 'held',\n REMOTE_HELD = 'remoteheld',\n CONNECTED = 'connected',\n}\ntype eventType = string;\ntype callProgressData = {\n alerting: boolean;\n inbandROAP: boolean;\n};\nexport type CallerIdInfo = {\n 'x-broadworks-remote-party-info'?: string;\n 'p-asserted-identity'?: string;\n from?: string;\n};\ntype callId = string;\ntype deviceId = string;\ntype correlationId = string;\ntype callUrl = string;\ntype causecode = number;\ntype cause = string;\ntype eventData = {\n callerId: CallerIdInfo;\n callState: CALL_STATE;\n};\ntype midCallServiceData = {\n eventType: eventType;\n eventData: eventData;\n};\ntype midCallService = Array<midCallServiceData>;\n\ninterface BaseMessage {\n eventType: eventType;\n correlationId: correlationId;\n deviceId: deviceId;\n callId: callId;\n callUrl: callUrl;\n}\n\nexport interface CallSetupMessage extends BaseMessage {\n callerId: CallerIdInfo;\n trackingId: string;\n alertType: string;\n}\n\ninterface CallProgressMessage extends BaseMessage {\n callProgressData: callProgressData;\n callerId: CallerIdInfo;\n}\n\nexport const WEBSOCKET_SCOPE = 'mobius';\nexport enum WEBSOCKET_KEYS {\n CALL_PROGRESS = 'callprogress',\n CALL_CONNECTED = 'callconnected',\n CALL_DISCONNECTED = 'callconnected',\n CALL_INFO = 'callinfo',\n CALL = 'call',\n ROAP = 'ROAP',\n}\n/** Internal Eventing End */\n\n/** State Machine Events */\n\nexport type CallEvent =\n /* Received Events */\n | {type: 'E_RECV_CALL_SETUP'; data?: unknown}\n | {type: 'E_RECV_CALL_PROGRESS'; data?: unknown}\n | {type: 'E_RECV_CALL_CONNECT'; data?: unknown}\n | {type: 'E_RECV_CALL_DISCONNECT'; data?: unknown}\n\n /* Sent Events */\n | {type: 'E_SEND_CALL_SETUP'; data?: unknown}\n | {type: 'E_SEND_CALL_ALERTING'; data?: unknown}\n | {type: 'E_SEND_CALL_CONNECT'; data?: unknown}\n | {type: 'E_SEND_CALL_DISCONNECT'; data?: unknown}\n\n /* Common Events */\n | {type: 'E_CALL_ESTABLISHED'; data?: unknown}\n | {type: 'E_CALL_INFO'; data?: unknown}\n | {type: 'E_UNKNOWN'; data?: unknown}\n | {type: 'E_CALL_CLEARED'; data?: unknown}\n | {type: 'E_CALL_HOLD'; data?: unknown}\n | {type: 'E_CALL_RESUME'; data?: unknown};\n\n/* ROAP Events */\nexport type RoapEvent =\n | {type: 'E_SEND_ROAP_OFFER'; data?: unknown}\n | {type: 'E_SEND_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER'; data?: unknown}\n | {type: 'E_RECV_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_ROAP_ERROR'; data?: unknown}\n | {type: 'E_ROAP_OK'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER_REQUEST'; data?: unknown} // ROAP request to explicitly ask Client to do OFFER\n | {type: 'E_ROAP_TEARDOWN'; data?: unknown};\n\n// TODO: export RoapMessage type from the media SDK to use here\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface RoapMessage {\n seq: number;\n messageType: 'OFFER' | 'ANSWER' | 'OK' | 'ERROR' | 'OFFER_REQUEST';\n offererSessionId?: string;\n answererSessionId?: string;\n sdp?: string;\n version?: string;\n tieBreaker?: string;\n errorType?: string;\n}\n"],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ describe('CALLING: Metric tests', function () {
|
|
|
62
62
|
});
|
|
63
63
|
it('submit registration failure metric', function () {
|
|
64
64
|
metricManager.setDeviceInfo(mockDeviceInfo);
|
|
65
|
-
var clientError = (0, _CallingDeviceError.createClientError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.
|
|
65
|
+
var clientError = (0, _CallingDeviceError.createClientError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
|
|
66
66
|
var err = {};
|
|
67
67
|
err.context = {};
|
|
68
68
|
err.message = 'Unknown Error';
|