@vendasta/conversation 0.13.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/esm2020/lib/_generated/host.service.mjs +25 -0
  2. package/esm2020/lib/_internal/conversation.api.service.mjs +116 -0
  3. package/esm2020/lib/_internal/enums/api.enum.mjs +14 -0
  4. package/esm2020/lib/_internal/enums/conversation.enum.mjs +25 -0
  5. package/esm2020/lib/_internal/enums/index.mjs +11 -0
  6. package/esm2020/lib/_internal/enums/message.enum.mjs +21 -0
  7. package/esm2020/lib/_internal/enums/participant.enum.mjs +18 -0
  8. package/esm2020/lib/_internal/index.mjs +11 -0
  9. package/esm2020/lib/_internal/interfaces/api.interface.mjs +2 -0
  10. package/esm2020/lib/_internal/interfaces/conversation.interface.mjs +8 -0
  11. package/esm2020/lib/_internal/interfaces/index.mjs +2 -0
  12. package/esm2020/lib/_internal/interfaces/message.interface.mjs +8 -0
  13. package/esm2020/lib/_internal/interfaces/participant.interface.mjs +8 -0
  14. package/esm2020/lib/_internal/objects/api.mjs +1141 -0
  15. package/esm2020/lib/_internal/objects/conversation.mjs +73 -0
  16. package/esm2020/lib/_internal/objects/index.mjs +11 -0
  17. package/esm2020/lib/_internal/objects/message.mjs +105 -0
  18. package/esm2020/lib/_internal/objects/participant.mjs +129 -0
  19. package/esm2020/lib/index.mjs +3 -0
  20. package/esm2020/public_api.mjs +2 -0
  21. package/esm2020/vendasta-conversation.mjs +5 -0
  22. package/fesm2015/vendasta-conversation.mjs +1664 -0
  23. package/fesm2015/vendasta-conversation.mjs.map +1 -0
  24. package/{fesm2015/vendasta-conversation.js → fesm2020/vendasta-conversation.mjs} +144 -125
  25. package/fesm2020/vendasta-conversation.mjs.map +1 -0
  26. package/lib/_generated/host.service.d.ts +5 -9
  27. package/lib/_internal/conversation.api.service.d.ts +7 -2
  28. package/lib/_internal/interfaces/api.interface.d.ts +10 -2
  29. package/lib/_internal/interfaces/index.d.ts +1 -1
  30. package/lib/_internal/interfaces/participant.interface.d.ts +1 -0
  31. package/lib/_internal/objects/api.d.ts +20 -6
  32. package/lib/_internal/objects/index.d.ts +1 -1
  33. package/lib/_internal/objects/participant.d.ts +1 -0
  34. package/package.json +27 -16
  35. package/src/README.md +1 -0
  36. package/vendasta-conversation.d.ts +1 -1
  37. package/bundles/vendasta-conversation.umd.js +0 -1712
  38. package/bundles/vendasta-conversation.umd.js.map +0 -1
  39. package/bundles/vendasta-conversation.umd.min.js +0 -2
  40. package/bundles/vendasta-conversation.umd.min.js.map +0 -1
  41. package/esm2015/lib/_generated/host.service.js +0 -65
  42. package/esm2015/lib/_internal/conversation.api.service.js +0 -112
  43. package/esm2015/lib/_internal/enums/api.enum.js +0 -14
  44. package/esm2015/lib/_internal/enums/conversation.enum.js +0 -25
  45. package/esm2015/lib/_internal/enums/index.js +0 -11
  46. package/esm2015/lib/_internal/enums/message.enum.js +0 -21
  47. package/esm2015/lib/_internal/enums/participant.enum.js +0 -18
  48. package/esm2015/lib/_internal/index.js +0 -11
  49. package/esm2015/lib/_internal/interfaces/api.interface.js +0 -2
  50. package/esm2015/lib/_internal/interfaces/conversation.interface.js +0 -8
  51. package/esm2015/lib/_internal/interfaces/index.js +0 -2
  52. package/esm2015/lib/_internal/interfaces/message.interface.js +0 -8
  53. package/esm2015/lib/_internal/interfaces/participant.interface.js +0 -8
  54. package/esm2015/lib/_internal/objects/api.js +0 -1092
  55. package/esm2015/lib/_internal/objects/conversation.js +0 -73
  56. package/esm2015/lib/_internal/objects/index.js +0 -11
  57. package/esm2015/lib/_internal/objects/message.js +0 -105
  58. package/esm2015/lib/_internal/objects/participant.js +0 -126
  59. package/esm2015/lib/index.js +0 -3
  60. package/esm2015/public_api.js +0 -2
  61. package/esm2015/vendasta-conversation.js +0 -6
  62. package/fesm2015/vendasta-conversation.js.map +0 -1
  63. package/vendasta-conversation.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../conversation_sdk/src/lib/_internal/enums/message.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/conversation.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/participant.enum.ts","../../../conversation_sdk/src/lib/_internal/enums/api.enum.ts","../../../conversation_sdk/src/lib/_internal/objects/message.ts","../../../conversation_sdk/src/lib/_internal/objects/conversation.ts","../../../conversation_sdk/src/lib/_internal/objects/participant.ts","../../../conversation_sdk/src/lib/_internal/objects/api.ts","../../../conversation_sdk/src/lib/_generated/host.service.ts","../../../conversation_sdk/src/lib/_internal/conversation.api.service.ts"],"names":["MessageStatus","MessageType","ConversationChannel","PlatformLocation","ParticipantType","MetadataIdentifier","enumStringToValue","enumRef","value","Message","kwargs","Object","assign","this","fromProto","proto","m","type","e.MessageType","created","Date","updated","deleted","prototype","toApiJson","toReturn","messageId","externalMessageId","conversationId","participantId","body","error","media","ParticipantMessageStatus","status","e.MessageStatus","Conversation","channel","e.ConversationChannel","latestMsgSentTime","originLocation","e.PlatformLocation","externalConversationId","participantIds","originLocationExternalId","Address","firstLineAddress","secondLineAddress","city","state","country","zipCode","Participant","location","participantType","e.ParticipantType","address","internalParticipantId","partnerId","accountGroupId","externalParticipantId","name","email","phoneNumber","AddMultiParticipantsRequest","participants","map","AddMultiParticipantsResponse","ConversationMessageCount","count","parseInt","LookupConversationsResponseConversations","conversation","GetMultiConversationMessageCountResponseCountsEntry","key","CreateConversationRequest","CreateConversationResponse","CreateMultiMessagesRequest","messages","lastSeen","MetadataDataEntry","DeleteConversationRequest","DeleteMessageRequest","GetMultiConversationDetailsResponseDetailedConversation","latestMessage","SearchConversationsResponseDetailedConversation","GetMessageRequest","GetMultiConversationDetailsRequest","conversationIds","GetMultiConversationDetailsResponse","conversations","GetMultiConversationMessageCountRequest","GetMultiConversationMessageCountResponse","messageCounts","counts","keys","reduce","obj","k","GetMultiMessagesRequest","messageIds","GetMultiMessagesResponse","GetMultiParticipantsRequest","GetMultiParticipantsResponse","ListMessagesRequestListMessagesFilters","ListMessagesRequest","filters","pagingOptions","PagedRequestOptions","ListMessagesResponse","pagingMetadata","PagedResponseMetadata","LookupConversationsRequestLookupConversationsFilters","LookupConversationsRequest","LookupConversationsResponse","Metadata","identifier","e.MetadataIdentifier","data","ReceiveMessageRequestMetadataEntry","cursor","pageSize","nextCursor","hasMore","ReceiveMessageRequest","metadata","senderId","recipientId","SearchConversationsRequest","searchTerm","SearchConversationsResponse","SendMessageRequest","sender","recipient","SendMessageResponse","workflowId","UpdateMessageStatusRequest","HostService","environmentService","host","_host","getEnvironment","Environment","LOCAL","TEST","DEMO","PROD","httpsHost","_httpsHost","hostWithScheme","httpsHostWithScheme","Injectable","args","providedIn","EnvironmentService","ConversationApiService","http","hostService","apiOptions","headers","HttpHeaders","Content-Type","withCredentials","sendMessage","r","request","post","pipe","resp","share","getMessage","listMessages","deleteMessage","observe","updateMessageStatus","lookupConversations","createConversation","deleteConversation","receiveMessage","getMultiMessages","createMultiMessages","getMultiConversationDetails","getMultiParticipants","searchConversations","getMultiConversationMessageCount","addMultiParticipants","HttpClient"],"mappings":"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","sourcesContent":["// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MessageStatus {\n MESSAGE_STATUS_NOT_READ = 0,\n MESSAGE_STATUS_READ = 1,\n MESSAGE_STATUS_SENT = 2,\n MESSAGE_STATUS_DELIVERED = 3,\n MESSAGE_STATUS_FAILED = 4,\n MESSAGE_STATUS_UNDELIVERED = 5,\n}\n\nexport enum MessageType {\n MESSAGE_TYPE_MESSAGE = 0,\n MESSAGE_TYPE_MEDIA = 1,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ConversationChannel {\n CONVERSATION_CHANNEL_UNDEFINED = 0,\n CONVERSATION_CHANNEL_INTERNAL = 1,\n CONVERSATION_CHANNEL_SMS = 2,\n CONVERSATION_CHANNEL_FACEBOOK = 3,\n CONVERSATION_CHANNEL_GOOGLE_MESSAGES = 4,\n}\n\nexport enum PlatformLocation {\n PLATFORM_LOCATION_UNDEFINED = 0,\n PLATFORM_LOCATION_BUSINESS_APP = 1,\n PLATFORM_LOCATION_PARTNER_CENTER = 2,\n PLATFORM_LOCATION_VENDOR_CENTER = 3,\n PLATFORM_LOCATION_TASK_MANAGER = 4,\n PLATFORM_LOCATION_PROPOSAL_BUILDER = 5,\n PLATFORM_LOCATION_SALES_CENTER = 6,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum ParticipantType {\n PARTICIPANT_TYPE_UNDEFINED = 0,\n PARTICIPANT_TYPE_CUSTOMER = 1,\n PARTICIPANT_TYPE_IAM_USER = 2,\n PARTICIPANT_TYPE_ACCOUNT_GROUP = 3,\n PARTICIPANT_TYPE_PARTNER = 4,\n PARTICIPANT_TYPE_IAM_TEMPORARY_SUBJECT = 5,\n PARTICIPANT_TYPE_DIGITAL_AGENT = 6,\n PARTICIPANT_TYPE_VENDOR = 7,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\n\nexport enum MetadataIdentifier {\n METADATA_IDENTIFIER_UNDEFINED = 0,\n METADATA_IDENTIFIER_RECIPIENT = 1,\n METADATA_IDENTIFIER_SENDER = 2,\n METADATA_IDENTIFIER_CONVERSATION = 3,\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Message implements i.MessageInterface {\n messageId: string;\n externalMessageId: string;\n conversationId: string;\n participantId: string;\n type: e.MessageType;\n body: string;\n error: string;\n created: Date;\n updated: Date;\n deleted: Date;\n media: string[];\n\n static fromProto(proto: any): Message {\n let m = new Message();\n m = Object.assign(m, proto);\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n return m;\n }\n\n constructor(kwargs?: i.MessageInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.externalMessageId !== 'undefined') {toReturn['externalMessageId'] = this.externalMessageId;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.error !== 'undefined') {toReturn['error'] = this.error;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.media !== 'undefined') {toReturn['media'] = this.media;}\n return toReturn;\n }\n}\n\nexport class ParticipantMessageStatus implements i.ParticipantMessageStatusInterface {\n participantId: string;\n messageId: string;\n status: e.MessageStatus;\n updated: Date;\n\n static fromProto(proto: any): ParticipantMessageStatus {\n let m = new ParticipantMessageStatus();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.MessageStatus>(e.MessageStatus, proto.status);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n return m;\n }\n\n constructor(kwargs?: i.ParticipantMessageStatusInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Conversation implements i.ConversationInterface {\n conversationId: string;\n channel: e.ConversationChannel;\n externalConversationId: string;\n created: Date;\n updated: Date;\n deleted: Date;\n participantIds: string[];\n latestMsgSentTime: Date;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): Conversation {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n if (proto.latestMsgSentTime) {m.latestMsgSentTime = new Date(proto.latestMsgSentTime);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.ConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.participantIds !== 'undefined') {toReturn['participantIds'] = this.participantIds;}\n if (typeof this.latestMsgSentTime !== 'undefined' && this.latestMsgSentTime !== null) {toReturn['latestMsgSentTime'] = 'toApiJson' in this.latestMsgSentTime ? (this.latestMsgSentTime as any).toApiJson() : this.latestMsgSentTime;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\n\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class Address implements i.AddressInterface {\n firstLineAddress: string;\n secondLineAddress: string;\n city: string;\n state: string;\n country: string;\n zipCode: string;\n\n static fromProto(proto: any): Address {\n let m = new Address();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.AddressInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.firstLineAddress !== 'undefined') {toReturn['firstLineAddress'] = this.firstLineAddress;}\n if (typeof this.secondLineAddress !== 'undefined') {toReturn['secondLineAddress'] = this.secondLineAddress;}\n if (typeof this.city !== 'undefined') {toReturn['city'] = this.city;}\n if (typeof this.state !== 'undefined') {toReturn['state'] = this.state;}\n if (typeof this.country !== 'undefined') {toReturn['country'] = this.country;}\n if (typeof this.zipCode !== 'undefined') {toReturn['zipCode'] = this.zipCode;}\n return toReturn;\n }\n}\n\nexport class Participant implements i.ParticipantInterface {\n participantId: string;\n internalParticipantId: string;\n partnerId: string;\n accountGroupId: string;\n location: e.PlatformLocation;\n channel: e.ConversationChannel;\n externalParticipantId: string;\n name: string;\n created: Date;\n updated: Date;\n deleted: Date;\n participantType: e.ParticipantType;\n email: string;\n phoneNumber: string;\n address: Address;\n\n static fromProto(proto: any): Participant {\n let m = new Participant();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.deleted) {m.deleted = new Date(proto.deleted);}\n if (proto.participantType) {m.participantType = enumStringToValue<e.ParticipantType>(e.ParticipantType, proto.participantType);}\n if (proto.address) {m.address = Address.fromProto(proto.address);}\n return m;\n }\n\n constructor(kwargs?: i.ParticipantInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.internalParticipantId !== 'undefined') {toReturn['internalParticipantId'] = this.internalParticipantId;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalParticipantId !== 'undefined') {toReturn['externalParticipantId'] = this.externalParticipantId;}\n if (typeof this.name !== 'undefined') {toReturn['name'] = this.name;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {toReturn['deleted'] = 'toApiJson' in this.deleted ? (this.deleted as any).toApiJson() : this.deleted;}\n if (typeof this.participantType !== 'undefined') {toReturn['participantType'] = this.participantType;}\n if (typeof this.email !== 'undefined') {toReturn['email'] = this.email;}\n if (typeof this.phoneNumber !== 'undefined') {toReturn['phoneNumber'] = this.phoneNumber;}\n if (typeof this.address !== 'undefined' && this.address !== null) {toReturn['address'] = 'toApiJson' in this.address ? (this.address as any).toApiJson() : this.address;}\n return toReturn;\n }\n}\n\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects.\n// *********************************\nimport * as i from '../interfaces';\nimport {Conversation} from './conversation';\nimport {Message} from './message';\nimport {Participant} from './participant';\nimport * as e from '../enums';\n\nexport function enumStringToValue<E>(enumRef: any, value: string): E {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\n\nexport class AddMultiParticipantsRequest implements i.AddMultiParticipantsRequestInterface {\n conversationId: string;\n participants: Participant[];\n\n static fromProto(proto: any): AddMultiParticipantsRequest {\n let m = new AddMultiParticipantsRequest();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.AddMultiParticipantsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class AddMultiParticipantsResponse implements i.AddMultiParticipantsResponseInterface {\n participants: Participant[];\n\n static fromProto(proto: any): AddMultiParticipantsResponse {\n let m = new AddMultiParticipantsResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.AddMultiParticipantsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class ConversationMessageCount implements i.ConversationMessageCountInterface {\n conversationId: string;\n count: number;\n\n static fromProto(proto: any): ConversationMessageCount {\n let m = new ConversationMessageCount();\n m = Object.assign(m, proto);\n if (proto.count) {m.count = parseInt(proto.count, 10);}\n return m;\n }\n\n constructor(kwargs?: i.ConversationMessageCountInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.count !== 'undefined') {toReturn['count'] = this.count;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsResponseConversations implements i.LookupConversationsResponseConversationsInterface {\n conversation: Conversation;\n participants: Participant[];\n\n static fromProto(proto: any): LookupConversationsResponseConversations {\n let m = new LookupConversationsResponseConversations();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsResponseConversationsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationMessageCountResponseCountsEntry implements i.GetMultiConversationMessageCountResponseCountsEntryInterface {\n key: string;\n value: number;\n\n static fromProto(proto: any): GetMultiConversationMessageCountResponseCountsEntry {\n let m = new GetMultiConversationMessageCountResponseCountsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {m.value = parseInt(proto.value, 10);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationMessageCountResponseCountsEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class CreateConversationRequest implements i.CreateConversationRequestInterface {\n participants: Participant[];\n channel: e.ConversationChannel;\n externalConversationId: string;\n created: Date;\n updated: Date;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): CreateConversationRequest {\n let m = new CreateConversationRequest();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.created) {m.created = new Date(proto.created);}\n if (proto.updated) {m.updated = new Date(proto.updated);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.CreateConversationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.created !== 'undefined' && this.created !== null) {toReturn['created'] = 'toApiJson' in this.created ? (this.created as any).toApiJson() : this.created;}\n if (typeof this.updated !== 'undefined' && this.updated !== null) {toReturn['updated'] = 'toApiJson' in this.updated ? (this.updated as any).toApiJson() : this.updated;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\nexport class CreateConversationResponse implements i.CreateConversationResponseInterface {\n conversation: Conversation;\n participants: Participant[];\n\n static fromProto(proto: any): CreateConversationResponse {\n let m = new CreateConversationResponse();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.CreateConversationResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class CreateMultiMessagesRequest implements i.CreateMultiMessagesRequestInterface {\n messages: Message[];\n lastSeen: Date;\n\n static fromProto(proto: any): CreateMultiMessagesRequest {\n let m = new CreateMultiMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n if (proto.lastSeen) {m.lastSeen = new Date(proto.lastSeen);}\n return m;\n }\n\n constructor(kwargs?: i.CreateMultiMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n if (typeof this.lastSeen !== 'undefined' && this.lastSeen !== null) {toReturn['lastSeen'] = 'toApiJson' in this.lastSeen ? (this.lastSeen as any).toApiJson() : this.lastSeen;}\n return toReturn;\n }\n}\n\nexport class MetadataDataEntry implements i.MetadataDataEntryInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): MetadataDataEntry {\n let m = new MetadataDataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.MetadataDataEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class DeleteConversationRequest implements i.DeleteConversationRequestInterface {\n conversationId: string;\n\n static fromProto(proto: any): DeleteConversationRequest {\n let m = new DeleteConversationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteConversationRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n return toReturn;\n }\n}\n\nexport class DeleteMessageRequest implements i.DeleteMessageRequestInterface {\n messageId: string;\n\n static fromProto(proto: any): DeleteMessageRequest {\n let m = new DeleteMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.DeleteMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsResponseDetailedConversation implements i.GetMultiConversationDetailsResponseDetailedConversationInterface {\n conversation: Conversation;\n latestMessage: Message;\n participants: Participant[];\n\n static fromProto(proto: any): GetMultiConversationDetailsResponseDetailedConversation {\n let m = new GetMultiConversationDetailsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.latestMessage) {m.latestMessage = Message.fromProto(proto.latestMessage);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsResponseDetailedConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? (this.latestMessage as any).toApiJson() : this.latestMessage;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class SearchConversationsResponseDetailedConversation implements i.SearchConversationsResponseDetailedConversationInterface {\n conversation: Conversation;\n latestMessage: Message;\n participants: Participant[];\n\n static fromProto(proto: any): SearchConversationsResponseDetailedConversation {\n let m = new SearchConversationsResponseDetailedConversation();\n m = Object.assign(m, proto);\n if (proto.conversation) {m.conversation = Conversation.fromProto(proto.conversation);}\n if (proto.latestMessage) {m.latestMessage = Message.fromProto(proto.latestMessage);}\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.SearchConversationsResponseDetailedConversationInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversation !== 'undefined' && this.conversation !== null) {toReturn['conversation'] = 'toApiJson' in this.conversation ? (this.conversation as any).toApiJson() : this.conversation;}\n if (typeof this.latestMessage !== 'undefined' && this.latestMessage !== null) {toReturn['latestMessage'] = 'toApiJson' in this.latestMessage ? (this.latestMessage as any).toApiJson() : this.latestMessage;}\n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class GetMessageRequest implements i.GetMessageRequestInterface {\n messageId: string;\n\n static fromProto(proto: any): GetMessageRequest {\n let m = new GetMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsRequest implements i.GetMultiConversationDetailsRequestInterface {\n conversationIds: string[];\n\n static fromProto(proto: any): GetMultiConversationDetailsRequest {\n let m = new GetMultiConversationDetailsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationIds !== 'undefined') {toReturn['conversationIds'] = this.conversationIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationDetailsResponse implements i.GetMultiConversationDetailsResponseInterface {\n conversations: GetMultiConversationDetailsResponseDetailedConversation[];\n\n static fromProto(proto: any): GetMultiConversationDetailsResponse {\n let m = new GetMultiConversationDetailsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(GetMultiConversationDetailsResponseDetailedConversation.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationDetailsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationMessageCountRequest implements i.GetMultiConversationMessageCountRequestInterface {\n conversationIds: string[];\n\n static fromProto(proto: any): GetMultiConversationMessageCountRequest {\n let m = new GetMultiConversationMessageCountRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationMessageCountRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationIds !== 'undefined') {toReturn['conversationIds'] = this.conversationIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiConversationMessageCountResponse implements i.GetMultiConversationMessageCountResponseInterface {\n messageCounts: ConversationMessageCount[];\n counts: {[key: string]: number};\n\n static fromProto(proto: any): GetMultiConversationMessageCountResponse {\n let m = new GetMultiConversationMessageCountResponse();\n m = Object.assign(m, proto);\n if (proto.messageCounts) {m.messageCounts = proto.messageCounts.map(ConversationMessageCount.fromProto);}\n if (proto.counts) {m.counts = Object.keys(proto.counts).reduce<any>((obj, k) => { obj[k] = parseInt(proto.counts[k], 10); return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiConversationMessageCountResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageCounts !== 'undefined' && this.messageCounts !== null) {toReturn['messageCounts'] = 'toApiJson' in this.messageCounts ? (this.messageCounts as any).toApiJson() : this.messageCounts;}\n if (typeof this.counts !== 'undefined' && this.counts !== null) {toReturn['counts'] = 'toApiJson' in this.counts ? (this.counts as any).toApiJson() : this.counts;}\n return toReturn;\n }\n}\n\nexport class GetMultiMessagesRequest implements i.GetMultiMessagesRequestInterface {\n messageIds: string[];\n\n static fromProto(proto: any): GetMultiMessagesRequest {\n let m = new GetMultiMessagesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageIds !== 'undefined') {toReturn['messageIds'] = this.messageIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiMessagesResponse implements i.GetMultiMessagesResponseInterface {\n messages: Message[];\n\n static fromProto(proto: any): GetMultiMessagesResponse {\n let m = new GetMultiMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiMessagesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n return toReturn;\n }\n}\n\nexport class GetMultiParticipantsRequest implements i.GetMultiParticipantsRequestInterface {\n participantIds: string[];\n\n static fromProto(proto: any): GetMultiParticipantsRequest {\n let m = new GetMultiParticipantsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.GetMultiParticipantsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participantIds !== 'undefined') {toReturn['participantIds'] = this.participantIds;}\n return toReturn;\n }\n}\n\nexport class GetMultiParticipantsResponse implements i.GetMultiParticipantsResponseInterface {\n participants: Participant[];\n\n static fromProto(proto: any): GetMultiParticipantsResponse {\n let m = new GetMultiParticipantsResponse();\n m = Object.assign(m, proto);\n if (proto.participants) {m.participants = proto.participants.map(Participant.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.GetMultiParticipantsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.participants !== 'undefined' && this.participants !== null) {toReturn['participants'] = 'toApiJson' in this.participants ? (this.participants as any).toApiJson() : this.participants;}\n return toReturn;\n }\n}\n\nexport class ListMessagesRequestListMessagesFilters implements i.ListMessagesRequestListMessagesFiltersInterface {\n conversationId: string;\n\n static fromProto(proto: any): ListMessagesRequestListMessagesFilters {\n let m = new ListMessagesRequestListMessagesFilters();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesRequestListMessagesFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n return toReturn;\n }\n}\n\nexport class ListMessagesRequest implements i.ListMessagesRequestInterface {\n filters: ListMessagesRequestListMessagesFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): ListMessagesRequest {\n let m = new ListMessagesRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = ListMessagesRequestListMessagesFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class ListMessagesResponse implements i.ListMessagesResponseInterface {\n messages: Message[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): ListMessagesResponse {\n let m = new ListMessagesResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {m.messages = proto.messages.map(Message.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.ListMessagesResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messages !== 'undefined' && this.messages !== null) {toReturn['messages'] = 'toApiJson' in this.messages ? (this.messages as any).toApiJson() : this.messages;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsRequestLookupConversationsFilters implements i.LookupConversationsRequestLookupConversationsFiltersInterface {\n internalParticipantId: string[];\n location: e.PlatformLocation;\n channel: e.ConversationChannel;\n accountGroupId: string;\n externalConversationId: string;\n originLocation: e.PlatformLocation;\n originLocationExternalId: string;\n\n static fromProto(proto: any): LookupConversationsRequestLookupConversationsFilters {\n let m = new LookupConversationsRequestLookupConversationsFilters();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.originLocation) {m.originLocation = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.originLocation);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsRequestLookupConversationsFiltersInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.internalParticipantId !== 'undefined') {toReturn['internalParticipantId'] = this.internalParticipantId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.externalConversationId !== 'undefined') {toReturn['externalConversationId'] = this.externalConversationId;}\n if (typeof this.originLocation !== 'undefined') {toReturn['originLocation'] = this.originLocation;}\n if (typeof this.originLocationExternalId !== 'undefined') {toReturn['originLocationExternalId'] = this.originLocationExternalId;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsRequest implements i.LookupConversationsRequestInterface {\n filters: LookupConversationsRequestLookupConversationsFilters;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): LookupConversationsRequest {\n let m = new LookupConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {m.filters = LookupConversationsRequestLookupConversationsFilters.fromProto(proto.filters);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.filters !== 'undefined' && this.filters !== null) {toReturn['filters'] = 'toApiJson' in this.filters ? (this.filters as any).toApiJson() : this.filters;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class LookupConversationsResponse implements i.LookupConversationsResponseInterface {\n conversations: LookupConversationsResponseConversations[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): LookupConversationsResponse {\n let m = new LookupConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(LookupConversationsResponseConversations.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.LookupConversationsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class Metadata implements i.MetadataInterface {\n identifier: e.MetadataIdentifier;\n data: {[key: string]: string};\n\n static fromProto(proto: any): Metadata {\n let m = new Metadata();\n m = Object.assign(m, proto);\n if (proto.identifier) {m.identifier = enumStringToValue<e.MetadataIdentifier>(e.MetadataIdentifier, proto.identifier);}\n if (proto.data) {m.data = Object.keys(proto.data).reduce<any>((obj, k) => { obj[k] = proto.data[k]; return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.MetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.identifier !== 'undefined') {toReturn['identifier'] = this.identifier;}\n if (typeof this.data !== 'undefined' && this.data !== null) {toReturn['data'] = 'toApiJson' in this.data ? (this.data as any).toApiJson() : this.data;}\n return toReturn;\n }\n}\n\nexport class ReceiveMessageRequestMetadataEntry implements i.ReceiveMessageRequestMetadataEntryInterface {\n key: string;\n value: string;\n\n static fromProto(proto: any): ReceiveMessageRequestMetadataEntry {\n let m = new ReceiveMessageRequestMetadataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.ReceiveMessageRequestMetadataEntryInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.key !== 'undefined') {toReturn['key'] = this.key;}\n if (typeof this.value !== 'undefined') {toReturn['value'] = this.value;}\n return toReturn;\n }\n}\n\nexport class PagedRequestOptions implements i.PagedRequestOptionsInterface {\n cursor: string;\n pageSize: number;\n\n static fromProto(proto: any): PagedRequestOptions {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedRequestOptionsInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.cursor !== 'undefined') {toReturn['cursor'] = this.cursor;}\n if (typeof this.pageSize !== 'undefined') {toReturn['pageSize'] = this.pageSize;}\n return toReturn;\n }\n}\n\nexport class PagedResponseMetadata implements i.PagedResponseMetadataInterface {\n nextCursor: string;\n hasMore: boolean;\n\n static fromProto(proto: any): PagedResponseMetadata {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.PagedResponseMetadataInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.nextCursor !== 'undefined') {toReturn['nextCursor'] = this.nextCursor;}\n if (typeof this.hasMore !== 'undefined') {toReturn['hasMore'] = this.hasMore;}\n return toReturn;\n }\n}\n\nexport class ReceiveMessageRequest implements i.ReceiveMessageRequestInterface {\n senderId: string;\n recipientId: string;\n conversationId: string;\n messageId: string;\n body: string;\n channel: e.ConversationChannel;\n type: e.MessageType;\n location: e.PlatformLocation;\n partnerId: string;\n accountGroupId: string;\n metadata: {[key: string]: string};\n media: string[];\n\n static fromProto(proto: any): ReceiveMessageRequest {\n let m = new ReceiveMessageRequest();\n m = Object.assign(m, proto);\n if (proto.channel) {m.channel = enumStringToValue<e.ConversationChannel>(e.ConversationChannel, proto.channel);}\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.metadata) {m.metadata = Object.keys(proto.metadata).reduce<any>((obj, k) => { obj[k] = proto.metadata[k]; return obj; }, {});}\n return m;\n }\n\n constructor(kwargs?: i.ReceiveMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.senderId !== 'undefined') {toReturn['senderId'] = this.senderId;}\n if (typeof this.recipientId !== 'undefined') {toReturn['recipientId'] = this.recipientId;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.channel !== 'undefined') {toReturn['channel'] = this.channel;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {toReturn['metadata'] = 'toApiJson' in this.metadata ? (this.metadata as any).toApiJson() : this.metadata;}\n if (typeof this.media !== 'undefined') {toReturn['media'] = this.media;}\n return toReturn;\n }\n}\n\nexport class SearchConversationsRequest implements i.SearchConversationsRequestInterface {\n partnerId: string;\n accountGroupId: string;\n location: e.PlatformLocation;\n searchTerm: string;\n pagingOptions: PagedRequestOptions;\n\n static fromProto(proto: any): SearchConversationsRequest {\n let m = new SearchConversationsRequest();\n m = Object.assign(m, proto);\n if (proto.location) {m.location = enumStringToValue<e.PlatformLocation>(e.PlatformLocation, proto.location);}\n if (proto.pagingOptions) {m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);}\n return m;\n }\n\n constructor(kwargs?: i.SearchConversationsRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.partnerId !== 'undefined') {toReturn['partnerId'] = this.partnerId;}\n if (typeof this.accountGroupId !== 'undefined') {toReturn['accountGroupId'] = this.accountGroupId;}\n if (typeof this.location !== 'undefined') {toReturn['location'] = this.location;}\n if (typeof this.searchTerm !== 'undefined') {toReturn['searchTerm'] = this.searchTerm;}\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? (this.pagingOptions as any).toApiJson() : this.pagingOptions;}\n return toReturn;\n }\n}\n\nexport class SearchConversationsResponse implements i.SearchConversationsResponseInterface {\n conversations: SearchConversationsResponseDetailedConversation[];\n pagingMetadata: PagedResponseMetadata;\n\n static fromProto(proto: any): SearchConversationsResponse {\n let m = new SearchConversationsResponse();\n m = Object.assign(m, proto);\n if (proto.conversations) {m.conversations = proto.conversations.map(SearchConversationsResponseDetailedConversation.fromProto);}\n if (proto.pagingMetadata) {m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);}\n return m;\n }\n\n constructor(kwargs?: i.SearchConversationsResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {toReturn['conversations'] = 'toApiJson' in this.conversations ? (this.conversations as any).toApiJson() : this.conversations;}\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? (this.pagingMetadata as any).toApiJson() : this.pagingMetadata;}\n return toReturn;\n }\n}\n\nexport class SendMessageRequest implements i.SendMessageRequestInterface {\n sender: Participant;\n recipient: Participant;\n conversationId: string;\n type: e.MessageType;\n body: string;\n metadata: Metadata[];\n\n static fromProto(proto: any): SendMessageRequest {\n let m = new SendMessageRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {m.sender = Participant.fromProto(proto.sender);}\n if (proto.recipient) {m.recipient = Participant.fromProto(proto.recipient);}\n if (proto.type) {m.type = enumStringToValue<e.MessageType>(e.MessageType, proto.type);}\n if (proto.metadata) {m.metadata = proto.metadata.map(Metadata.fromProto);}\n return m;\n }\n\n constructor(kwargs?: i.SendMessageRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.sender !== 'undefined' && this.sender !== null) {toReturn['sender'] = 'toApiJson' in this.sender ? (this.sender as any).toApiJson() : this.sender;}\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {toReturn['recipient'] = 'toApiJson' in this.recipient ? (this.recipient as any).toApiJson() : this.recipient;}\n if (typeof this.conversationId !== 'undefined') {toReturn['conversationId'] = this.conversationId;}\n if (typeof this.type !== 'undefined') {toReturn['type'] = this.type;}\n if (typeof this.body !== 'undefined') {toReturn['body'] = this.body;}\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {toReturn['metadata'] = 'toApiJson' in this.metadata ? (this.metadata as any).toApiJson() : this.metadata;}\n return toReturn;\n }\n}\n\nexport class SendMessageResponse implements i.SendMessageResponseInterface {\n workflowId: string;\n\n static fromProto(proto: any): SendMessageResponse {\n let m = new SendMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n\n constructor(kwargs?: i.SendMessageResponseInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.workflowId !== 'undefined') {toReturn['workflowId'] = this.workflowId;}\n return toReturn;\n }\n}\n\nexport class UpdateMessageStatusRequest implements i.UpdateMessageStatusRequestInterface {\n messageId: string;\n participantId: string;\n status: e.MessageStatus;\n\n static fromProto(proto: any): UpdateMessageStatusRequest {\n let m = new UpdateMessageStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {m.status = enumStringToValue<e.MessageStatus>(e.MessageStatus, proto.status);}\n return m;\n }\n\n constructor(kwargs?: i.UpdateMessageStatusRequestInterface) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n\n toApiJson(): object {\n const toReturn: {\n [key: string]: any;\n } = {};\n \n if (typeof this.messageId !== 'undefined') {toReturn['messageId'] = this.messageId;}\n if (typeof this.participantId !== 'undefined') {toReturn['participantId'] = this.participantId;}\n if (typeof this.status !== 'undefined') {toReturn['status'] = this.status;}\n return toReturn;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { EnvironmentService, Environment } from '@vendasta/core';\n\n@Injectable({providedIn: 'root'})\nexport class HostService {\n private _host: string;\n private _httpsHost: string;\n\n constructor(private environmentService: EnvironmentService) {\n }\n\n host(): string {\n if (this._host) {\n return this._host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._host = 'conversation-api.vendasta-local.com';\n break;\n case Environment.TEST:\n this._host = '';\n break;\n case Environment.DEMO:\n this._host = 'conversation-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._host = 'conversation-prod.apigateway.co';\n break;\n }\n return this._host;\n }\n\n httpsHost(): string {\n if (this._httpsHost) {\n return this._httpsHost;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._httpsHost = 'conversation.vendasta-local.com';\n break;\n case Environment.TEST:\n this._httpsHost = '';\n break;\n case Environment.DEMO:\n this._httpsHost = 'conversation-demo.apigateway.co';\n break;\n case Environment.PROD:\n this._httpsHost = 'conversation-prod.apigateway.co';\n break;\n }\n return this._httpsHost;\n }\n\n hostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.host()\n }\n\n httpsHostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.httpsHost()\n }\n}\n","// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nimport {Injectable} from '@angular/core';\nimport {\n AddMultiParticipantsRequest,\n AddMultiParticipantsResponse,\n CreateConversationRequest,\n CreateConversationResponse,\n CreateMultiMessagesRequest,\n DeleteConversationRequest,\n DeleteMessageRequest,\n GetMessageRequest,\n GetMultiConversationDetailsRequest,\n GetMultiConversationDetailsResponse,\n GetMultiConversationMessageCountRequest,\n GetMultiConversationMessageCountResponse,\n GetMultiMessagesRequest,\n GetMultiMessagesResponse,\n GetMultiParticipantsRequest,\n GetMultiParticipantsResponse,\n ListMessagesRequest,\n ListMessagesResponse,\n LookupConversationsRequest,\n LookupConversationsResponse,\n Message,\n ReceiveMessageRequest,\n SearchConversationsRequest,\n SearchConversationsResponse,\n SendMessageRequest,\n SendMessageResponse,\n UpdateMessageStatusRequest,\n} from './objects/';\nimport {\n AddMultiParticipantsRequestInterface,\n AddMultiParticipantsResponseInterface,\n CreateConversationRequestInterface,\n CreateConversationResponseInterface,\n CreateMultiMessagesRequestInterface,\n DeleteConversationRequestInterface,\n DeleteMessageRequestInterface,\n GetMessageRequestInterface,\n GetMultiConversationDetailsRequestInterface,\n GetMultiConversationDetailsResponseInterface,\n GetMultiConversationMessageCountRequestInterface,\n GetMultiConversationMessageCountResponseInterface,\n GetMultiMessagesRequestInterface,\n GetMultiMessagesResponseInterface,\n GetMultiParticipantsRequestInterface,\n GetMultiParticipantsResponseInterface,\n ListMessagesRequestInterface,\n ListMessagesResponseInterface,\n LookupConversationsRequestInterface,\n LookupConversationsResponseInterface,\n MessageInterface,\n ReceiveMessageRequestInterface,\n SearchConversationsRequestInterface,\n SearchConversationsResponseInterface,\n SendMessageRequestInterface,\n SendMessageResponseInterface,\n UpdateMessageStatusRequestInterface,\n} from './interfaces/';\nimport {HttpClient, HttpHeaders, HttpResponse} from '@angular/common/http';\nimport {HostService} from '../_generated/host.service';\nimport {Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class ConversationApiService {\n\n constructor(private http: HttpClient, private hostService: HostService) {\n }\n\n private apiOptions(): {headers: HttpHeaders, withCredentials: boolean} {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n\n sendMessage(r: SendMessageRequest | SendMessageRequestInterface): Observable<SendMessageResponse> {\n const request = ((<SendMessageRequest>r).toApiJson) ? (<SendMessageRequest>r) : new SendMessageRequest(r);\n return this.http.post<SendMessageResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/SendMessage\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SendMessageResponse.fromProto(resp)),\n share()\n );\n }\n getMessage(r: GetMessageRequest | GetMessageRequestInterface): Observable<Message> {\n const request = ((<GetMessageRequest>r).toApiJson) ? (<GetMessageRequest>r) : new GetMessageRequest(r);\n return this.http.post<MessageInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMessage\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => Message.fromProto(resp)),\n share()\n );\n }\n listMessages(r: ListMessagesRequest | ListMessagesRequestInterface): Observable<ListMessagesResponse> {\n const request = ((<ListMessagesRequest>r).toApiJson) ? (<ListMessagesRequest>r) : new ListMessagesRequest(r);\n return this.http.post<ListMessagesResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/ListMessages\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => ListMessagesResponse.fromProto(resp)),\n share()\n );\n }\n deleteMessage(r: DeleteMessageRequest | DeleteMessageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteMessageRequest>r).toApiJson) ? (<DeleteMessageRequest>r) : new DeleteMessageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/DeleteMessage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n updateMessageStatus(r: UpdateMessageStatusRequest | UpdateMessageStatusRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<UpdateMessageStatusRequest>r).toApiJson) ? (<UpdateMessageStatusRequest>r) : new UpdateMessageStatusRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/UpdateMessageStatus\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n lookupConversations(r: LookupConversationsRequest | LookupConversationsRequestInterface): Observable<LookupConversationsResponse> {\n const request = ((<LookupConversationsRequest>r).toApiJson) ? (<LookupConversationsRequest>r) : new LookupConversationsRequest(r);\n return this.http.post<LookupConversationsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/LookupConversations\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => LookupConversationsResponse.fromProto(resp)),\n share()\n );\n }\n createConversation(r: CreateConversationRequest | CreateConversationRequestInterface): Observable<CreateConversationResponse> {\n const request = ((<CreateConversationRequest>r).toApiJson) ? (<CreateConversationRequest>r) : new CreateConversationRequest(r);\n return this.http.post<CreateConversationResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/CreateConversation\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => CreateConversationResponse.fromProto(resp)),\n share()\n );\n }\n deleteConversation(r: DeleteConversationRequest | DeleteConversationRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<DeleteConversationRequest>r).toApiJson) ? (<DeleteConversationRequest>r) : new DeleteConversationRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/DeleteConversation\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n receiveMessage(r: ReceiveMessageRequest | ReceiveMessageRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<ReceiveMessageRequest>r).toApiJson) ? (<ReceiveMessageRequest>r) : new ReceiveMessageRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/ReceiveMessage\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiMessages(r: GetMultiMessagesRequest | GetMultiMessagesRequestInterface): Observable<GetMultiMessagesResponse> {\n const request = ((<GetMultiMessagesRequest>r).toApiJson) ? (<GetMultiMessagesRequest>r) : new GetMultiMessagesRequest(r);\n return this.http.post<GetMultiMessagesResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiMessages\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiMessagesResponse.fromProto(resp)),\n share()\n );\n }\n createMultiMessages(r: CreateMultiMessagesRequest | CreateMultiMessagesRequestInterface): Observable<HttpResponse<null>> {\n const request = ((<CreateMultiMessagesRequest>r).toApiJson) ? (<CreateMultiMessagesRequest>r) : new CreateMultiMessagesRequest(r);\n return this.http.post<null>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/CreateMultiMessages\", request.toApiJson(), {...this.apiOptions(), observe: 'response'});\n }\n getMultiConversationDetails(r: GetMultiConversationDetailsRequest | GetMultiConversationDetailsRequestInterface): Observable<GetMultiConversationDetailsResponse> {\n const request = ((<GetMultiConversationDetailsRequest>r).toApiJson) ? (<GetMultiConversationDetailsRequest>r) : new GetMultiConversationDetailsRequest(r);\n return this.http.post<GetMultiConversationDetailsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiConversationDetails\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiConversationDetailsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiParticipants(r: GetMultiParticipantsRequest | GetMultiParticipantsRequestInterface): Observable<GetMultiParticipantsResponse> {\n const request = ((<GetMultiParticipantsRequest>r).toApiJson) ? (<GetMultiParticipantsRequest>r) : new GetMultiParticipantsRequest(r);\n return this.http.post<GetMultiParticipantsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiParticipants\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiParticipantsResponse.fromProto(resp)),\n share()\n );\n }\n searchConversations(r: SearchConversationsRequest | SearchConversationsRequestInterface): Observable<SearchConversationsResponse> {\n const request = ((<SearchConversationsRequest>r).toApiJson) ? (<SearchConversationsRequest>r) : new SearchConversationsRequest(r);\n return this.http.post<SearchConversationsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/SearchConversations\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => SearchConversationsResponse.fromProto(resp)),\n share()\n );\n }\n getMultiConversationMessageCount(r: GetMultiConversationMessageCountRequest | GetMultiConversationMessageCountRequestInterface): Observable<GetMultiConversationMessageCountResponse> {\n const request = ((<GetMultiConversationMessageCountRequest>r).toApiJson) ? (<GetMultiConversationMessageCountRequest>r) : new GetMultiConversationMessageCountRequest(r);\n return this.http.post<GetMultiConversationMessageCountResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/GetMultiConversationMessageCount\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)),\n share()\n );\n }\n addMultiParticipants(r: AddMultiParticipantsRequest | AddMultiParticipantsRequestInterface): Observable<AddMultiParticipantsResponse> {\n const request = ((<AddMultiParticipantsRequest>r).toApiJson) ? (<AddMultiParticipantsRequest>r) : new AddMultiParticipantsRequest(r);\n return this.http.post<AddMultiParticipantsResponseInterface>(this.hostService.hostWithScheme() + \"/conversation.v1.ConversationService/AddMultiParticipants\", request.toApiJson(), this.apiOptions())\n .pipe(\n map(resp => AddMultiParticipantsResponse.fromProto(resp)),\n share()\n );\n }\n \n}\n"]}
@@ -1,65 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { EnvironmentService, Environment } from '@vendasta/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@vendasta/core";
5
- export class HostService {
6
- constructor(environmentService) {
7
- this.environmentService = environmentService;
8
- }
9
- host() {
10
- if (this._host) {
11
- return this._host;
12
- }
13
- switch (this.environmentService.getEnvironment()) {
14
- case Environment.LOCAL:
15
- this._host = 'conversation-api.vendasta-local.com';
16
- break;
17
- case Environment.TEST:
18
- this._host = '';
19
- break;
20
- case Environment.DEMO:
21
- this._host = 'conversation-demo.apigateway.co';
22
- break;
23
- case Environment.PROD:
24
- this._host = 'conversation-prod.apigateway.co';
25
- break;
26
- }
27
- return this._host;
28
- }
29
- httpsHost() {
30
- if (this._httpsHost) {
31
- return this._httpsHost;
32
- }
33
- switch (this.environmentService.getEnvironment()) {
34
- case Environment.LOCAL:
35
- this._httpsHost = 'conversation.vendasta-local.com';
36
- break;
37
- case Environment.TEST:
38
- this._httpsHost = '';
39
- break;
40
- case Environment.DEMO:
41
- this._httpsHost = 'conversation-demo.apigateway.co';
42
- break;
43
- case Environment.PROD:
44
- this._httpsHost = 'conversation-prod.apigateway.co';
45
- break;
46
- }
47
- return this._httpsHost;
48
- }
49
- hostWithScheme() {
50
- const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';
51
- return scheme + this.host();
52
- }
53
- httpsHostWithScheme() {
54
- const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';
55
- return scheme + this.httpsHost();
56
- }
57
- }
58
- HostService.ɵprov = i0.ɵɵdefineInjectable({ factory: function HostService_Factory() { return new HostService(i0.ɵɵinject(i1.EnvironmentService)); }, token: HostService, providedIn: "root" });
59
- HostService.decorators = [
60
- { type: Injectable, args: [{ providedIn: 'root' },] }
61
- ];
62
- HostService.ctorParameters = () => [
63
- { type: EnvironmentService }
64
- ];
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9jb252ZXJzYXRpb25fc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR2pFLE1BQU0sT0FBTyxXQUFXO0lBSXBCLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQzFELENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3JCO1FBRUQsUUFBUSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDOUMsS0FBSyxXQUFXLENBQUMsS0FBSztnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxxQ0FBcUMsQ0FBQztnQkFDbkQsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUMsSUFBSTtnQkFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxpQ0FBaUMsQ0FBQztnQkFDL0MsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsaUNBQWlDLENBQUM7Z0JBQy9DLE1BQU07U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDMUI7UUFFRCxRQUFRLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUM5QyxLQUFLLFdBQVcsQ0FBQyxLQUFLO2dCQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLGlDQUFpQyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUMsSUFBSTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBQyxJQUFJO2dCQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLGlDQUFpQyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUMsSUFBSTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQ0FBaUMsQ0FBQztnQkFDcEQsTUFBTTtTQUNiO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjO1FBQ1YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3ZHLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMvQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3ZHLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNwQyxDQUFDOzs7O1lBNURKLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUZ2QixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UsIEVudmlyb25tZW50IH0gZnJvbSAnQHZlbmRhc3RhL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBIb3N0U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfaG9zdDogc3RyaW5nO1xuICAgIHByaXZhdGUgX2h0dHBzSG9zdDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSkge1xuICAgIH1cblxuICAgIGhvc3QoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX2hvc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ob3N0O1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpKSB7XG4gICAgICAgICAgICBjYXNlIEVudmlyb25tZW50LkxPQ0FMOlxuICAgICAgICAgICAgICAgIHRoaXMuX2hvc3QgPSAnY29udmVyc2F0aW9uLWFwaS52ZW5kYXN0YS1sb2NhbC5jb20nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5URVNUOlxuICAgICAgICAgICAgICAgIHRoaXMuX2hvc3QgPSAnJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW52aXJvbm1lbnQuREVNTzpcbiAgICAgICAgICAgICAgICB0aGlzLl9ob3N0ID0gJ2NvbnZlcnNhdGlvbi1kZW1vLmFwaWdhdGV3YXkuY28nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5QUk9EOlxuICAgICAgICAgICAgICAgIHRoaXMuX2hvc3QgPSAnY29udmVyc2F0aW9uLXByb2QuYXBpZ2F0ZXdheS5jbyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3Q7XG4gICAgfVxuXG4gICAgaHR0cHNIb3N0KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLl9odHRwc0hvc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9odHRwc0hvc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCkpIHtcbiAgICAgICAgICAgIGNhc2UgRW52aXJvbm1lbnQuTE9DQUw6XG4gICAgICAgICAgICAgICAgdGhpcy5faHR0cHNIb3N0ID0gJ2NvbnZlcnNhdGlvbi52ZW5kYXN0YS1sb2NhbC5jb20nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5URVNUOlxuICAgICAgICAgICAgICAgIHRoaXMuX2h0dHBzSG9zdCA9ICcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnZpcm9ubWVudC5ERU1POlxuICAgICAgICAgICAgICAgIHRoaXMuX2h0dHBzSG9zdCA9ICdjb252ZXJzYXRpb24tZGVtby5hcGlnYXRld2F5LmNvJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW52aXJvbm1lbnQuUFJPRDpcbiAgICAgICAgICAgICAgICB0aGlzLl9odHRwc0hvc3QgPSAnY29udmVyc2F0aW9uLXByb2QuYXBpZ2F0ZXdheS5jbyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBzSG9zdDtcbiAgICB9XG5cbiAgICBob3N0V2l0aFNjaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzY2hlbWUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpID09PSBFbnZpcm9ubWVudC5MT0NBTCA/ICdodHRwOi8vJyA6ICdodHRwczovLyc7XG4gICAgICAgIHJldHVybiBzY2hlbWUgKyB0aGlzLmhvc3QoKVxuICAgIH1cblxuICAgIGh0dHBzSG9zdFdpdGhTY2hlbWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2NoZW1lID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKSA9PT0gRW52aXJvbm1lbnQuTE9DQUwgPyAnaHR0cDovLycgOiAnaHR0cHM6Ly8nO1xuICAgICAgICByZXR1cm4gc2NoZW1lICsgdGhpcy5odHRwc0hvc3QoKVxuICAgIH1cbn1cbiJdfQ==
@@ -1,112 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // API Service.
6
- // *********************************
7
- import { Injectable } from '@angular/core';
8
- import { AddMultiParticipantsRequest, AddMultiParticipantsResponse, CreateConversationRequest, CreateConversationResponse, CreateMultiMessagesRequest, DeleteConversationRequest, DeleteMessageRequest, GetMessageRequest, GetMultiConversationDetailsRequest, GetMultiConversationDetailsResponse, GetMultiConversationMessageCountRequest, GetMultiConversationMessageCountResponse, GetMultiMessagesRequest, GetMultiMessagesResponse, GetMultiParticipantsRequest, GetMultiParticipantsResponse, ListMessagesRequest, ListMessagesResponse, LookupConversationsRequest, LookupConversationsResponse, Message, ReceiveMessageRequest, SearchConversationsRequest, SearchConversationsResponse, SendMessageRequest, SendMessageResponse, UpdateMessageStatusRequest, } from './objects/';
9
- import { HttpClient, HttpHeaders } from '@angular/common/http';
10
- import { HostService } from '../_generated/host.service';
11
- import { map, share } from 'rxjs/operators';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common/http";
14
- import * as i2 from "../_generated/host.service";
15
- export class ConversationApiService {
16
- constructor(http, hostService) {
17
- this.http = http;
18
- this.hostService = hostService;
19
- }
20
- apiOptions() {
21
- return {
22
- headers: new HttpHeaders({
23
- 'Content-Type': 'application/json'
24
- }),
25
- withCredentials: true
26
- };
27
- }
28
- sendMessage(r) {
29
- const request = (r.toApiJson) ? r : new SendMessageRequest(r);
30
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/SendMessage", request.toApiJson(), this.apiOptions())
31
- .pipe(map(resp => SendMessageResponse.fromProto(resp)), share());
32
- }
33
- getMessage(r) {
34
- const request = (r.toApiJson) ? r : new GetMessageRequest(r);
35
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMessage", request.toApiJson(), this.apiOptions())
36
- .pipe(map(resp => Message.fromProto(resp)), share());
37
- }
38
- listMessages(r) {
39
- const request = (r.toApiJson) ? r : new ListMessagesRequest(r);
40
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/ListMessages", request.toApiJson(), this.apiOptions())
41
- .pipe(map(resp => ListMessagesResponse.fromProto(resp)), share());
42
- }
43
- deleteMessage(r) {
44
- const request = (r.toApiJson) ? r : new DeleteMessageRequest(r);
45
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/DeleteMessage", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
46
- }
47
- updateMessageStatus(r) {
48
- const request = (r.toApiJson) ? r : new UpdateMessageStatusRequest(r);
49
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/UpdateMessageStatus", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
50
- }
51
- lookupConversations(r) {
52
- const request = (r.toApiJson) ? r : new LookupConversationsRequest(r);
53
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/LookupConversations", request.toApiJson(), this.apiOptions())
54
- .pipe(map(resp => LookupConversationsResponse.fromProto(resp)), share());
55
- }
56
- createConversation(r) {
57
- const request = (r.toApiJson) ? r : new CreateConversationRequest(r);
58
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/CreateConversation", request.toApiJson(), this.apiOptions())
59
- .pipe(map(resp => CreateConversationResponse.fromProto(resp)), share());
60
- }
61
- deleteConversation(r) {
62
- const request = (r.toApiJson) ? r : new DeleteConversationRequest(r);
63
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/DeleteConversation", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
64
- }
65
- receiveMessage(r) {
66
- const request = (r.toApiJson) ? r : new ReceiveMessageRequest(r);
67
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/ReceiveMessage", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
68
- }
69
- getMultiMessages(r) {
70
- const request = (r.toApiJson) ? r : new GetMultiMessagesRequest(r);
71
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMultiMessages", request.toApiJson(), this.apiOptions())
72
- .pipe(map(resp => GetMultiMessagesResponse.fromProto(resp)), share());
73
- }
74
- createMultiMessages(r) {
75
- const request = (r.toApiJson) ? r : new CreateMultiMessagesRequest(r);
76
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/CreateMultiMessages", request.toApiJson(), Object.assign(Object.assign({}, this.apiOptions()), { observe: 'response' }));
77
- }
78
- getMultiConversationDetails(r) {
79
- const request = (r.toApiJson) ? r : new GetMultiConversationDetailsRequest(r);
80
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMultiConversationDetails", request.toApiJson(), this.apiOptions())
81
- .pipe(map(resp => GetMultiConversationDetailsResponse.fromProto(resp)), share());
82
- }
83
- getMultiParticipants(r) {
84
- const request = (r.toApiJson) ? r : new GetMultiParticipantsRequest(r);
85
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMultiParticipants", request.toApiJson(), this.apiOptions())
86
- .pipe(map(resp => GetMultiParticipantsResponse.fromProto(resp)), share());
87
- }
88
- searchConversations(r) {
89
- const request = (r.toApiJson) ? r : new SearchConversationsRequest(r);
90
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/SearchConversations", request.toApiJson(), this.apiOptions())
91
- .pipe(map(resp => SearchConversationsResponse.fromProto(resp)), share());
92
- }
93
- getMultiConversationMessageCount(r) {
94
- const request = (r.toApiJson) ? r : new GetMultiConversationMessageCountRequest(r);
95
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/GetMultiConversationMessageCount", request.toApiJson(), this.apiOptions())
96
- .pipe(map(resp => GetMultiConversationMessageCountResponse.fromProto(resp)), share());
97
- }
98
- addMultiParticipants(r) {
99
- const request = (r.toApiJson) ? r : new AddMultiParticipantsRequest(r);
100
- return this.http.post(this.hostService.hostWithScheme() + "/conversation.v1.ConversationService/AddMultiParticipants", request.toApiJson(), this.apiOptions())
101
- .pipe(map(resp => AddMultiParticipantsResponse.fromProto(resp)), share());
102
- }
103
- }
104
- ConversationApiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConversationApiService_Factory() { return new ConversationApiService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HostService)); }, token: ConversationApiService, providedIn: "root" });
105
- ConversationApiService.decorators = [
106
- { type: Injectable, args: [{ providedIn: 'root' },] }
107
- ];
108
- ConversationApiService.ctorParameters = () => [
109
- { type: HttpClient },
110
- { type: HostService }
111
- ];
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9jb252ZXJzYXRpb25fc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvY29udmVyc2F0aW9uLmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsa0NBQWtDLEVBQ2xDLG1DQUFtQyxFQUNuQyx1Q0FBdUMsRUFDdkMsd0NBQXdDLEVBQ3hDLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IsT0FBTyxFQUNQLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsMEJBQTBCLEdBQ2pDLE1BQU0sWUFBWSxDQUFDO0FBOEJwQixPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsR0FBRyxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzFDLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFBb0IsSUFBZ0IsRUFBVSxXQUF3QjtRQUFsRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDdEUsQ0FBQztJQUVPLFVBQVU7UUFDZCxPQUFPO1lBQ0gsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUNyQixjQUFjLEVBQUUsa0JBQWtCO2FBQ3JDLENBQUM7WUFDRixlQUFlLEVBQUUsSUFBSTtTQUN4QixDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFtRDtRQUMzRCxNQUFNLE9BQU8sR0FBRyxDQUFzQixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFzQixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBK0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxrREFBa0QsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzlLLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDaEQsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNWLENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBaUQ7UUFDeEQsTUFBTSxPQUFPLEdBQUcsQ0FBcUIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBcUIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW1CLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsaURBQWlELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNqSyxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNwQyxLQUFLLEVBQUUsQ0FDVixDQUFDO0lBQ1YsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFxRDtRQUM5RCxNQUFNLE9BQU8sR0FBRyxDQUF1QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUF1QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBZ0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxtREFBbUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ2hMLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDakQsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNWLENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBdUQ7UUFDakUsTUFBTSxPQUFPLEdBQUcsQ0FBd0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBd0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxvREFBb0QsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLGtDQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBRSxPQUFPLEVBQUUsVUFBVSxJQUFFLENBQUM7SUFDNUwsQ0FBQztJQUNELG1CQUFtQixDQUFDLENBQW1FO1FBQ25GLE1BQU0sT0FBTyxHQUFHLENBQThCLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQThCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsMERBQTBELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQ0FBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUUsT0FBTyxFQUFFLFVBQVUsSUFBRSxDQUFDO0lBQ2xNLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxDQUFtRTtRQUNuRixNQUFNLE9BQU8sR0FBRyxDQUE4QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUE4QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBdUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRywwREFBMEQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzlMLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDeEQsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNWLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxDQUFpRTtRQUNoRixNQUFNLE9BQU8sR0FBRyxDQUE2QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUE2QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyx5REFBeUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzVMLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdkQsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNWLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxDQUFpRTtRQUNoRixNQUFNLE9BQU8sR0FBRyxDQUE2QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUE2QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxHQUFHLHlEQUF5RCxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0NBQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFFLE9BQU8sRUFBRSxVQUFVLElBQUUsQ0FBQztJQUNqTSxDQUFDO0lBQ0QsY0FBYyxDQUFDLENBQXlEO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLENBQXlCLENBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQXlCLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcscURBQXFELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxrQ0FBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUUsT0FBTyxFQUFFLFVBQVUsSUFBRSxDQUFDO0lBQzdMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxDQUE2RDtRQUMxRSxNQUFNLE9BQU8sR0FBRyxDQUEyQixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUEyQixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBb0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyx1REFBdUQsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3hMLElBQUksQ0FDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDckQsS0FBSyxFQUFFLENBQ1YsQ0FBQztJQUNWLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxDQUFtRTtRQUNuRixNQUFNLE9BQU8sR0FBRyxDQUE4QixDQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUE4QixDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxHQUFHLDBEQUEwRCxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0NBQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFFLE9BQU8sRUFBRSxVQUFVLElBQUUsQ0FBQztJQUNsTSxDQUFDO0lBQ0QsMkJBQTJCLENBQUMsQ0FBbUY7UUFDM0csTUFBTSxPQUFPLEdBQUcsQ0FBc0MsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBc0MsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQStDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsa0VBQWtFLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM5TSxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsbUNBQW1DLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ2hFLEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsQ0FBcUU7UUFDdEYsTUFBTSxPQUFPLEdBQUcsQ0FBK0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBK0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsMkRBQTJELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoTSxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3pELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsQ0FBbUU7UUFDbkYsTUFBTSxPQUFPLEdBQUcsQ0FBOEIsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBOEIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsMERBQTBELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM5TCxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3hELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDO0lBQ0QsZ0NBQWdDLENBQUMsQ0FBNkY7UUFDMUgsTUFBTSxPQUFPLEdBQUcsQ0FBMkMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBMkMsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHVDQUF1QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9ELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsdUVBQXVFLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUN4TixJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0NBQXdDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3JFLEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsQ0FBcUU7UUFDdEYsTUFBTSxPQUFPLEdBQUcsQ0FBK0IsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBK0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLEdBQUcsMkRBQTJELEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoTSxJQUFJLENBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3pELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDVixDQUFDOzs7O1lBMUhKLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OztZQUx4QixVQUFVO1lBQ1YsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gQVBJIFNlcnZpY2UuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgICAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3QsXG4gICAgICAgIEFkZE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2UsXG4gICAgICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QsXG4gICAgICAgIENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlLFxuICAgICAgICBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdCxcbiAgICAgICAgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgICAgICAgRGVsZXRlTWVzc2FnZVJlcXVlc3QsXG4gICAgICAgIEdldE1lc3NhZ2VSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXNwb25zZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlLFxuICAgICAgICBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdCxcbiAgICAgICAgR2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlLFxuICAgICAgICBHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3QsXG4gICAgICAgIEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2UsXG4gICAgICAgIExpc3RNZXNzYWdlc1JlcXVlc3QsXG4gICAgICAgIExpc3RNZXNzYWdlc1Jlc3BvbnNlLFxuICAgICAgICBMb29rdXBDb252ZXJzYXRpb25zUmVxdWVzdCxcbiAgICAgICAgTG9va3VwQ29udmVyc2F0aW9uc1Jlc3BvbnNlLFxuICAgICAgICBNZXNzYWdlLFxuICAgICAgICBSZWNlaXZlTWVzc2FnZVJlcXVlc3QsXG4gICAgICAgIFNlYXJjaENvbnZlcnNhdGlvbnNSZXF1ZXN0LFxuICAgICAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVzcG9uc2UsXG4gICAgICAgIFNlbmRNZXNzYWdlUmVxdWVzdCxcbiAgICAgICAgU2VuZE1lc3NhZ2VSZXNwb25zZSxcbiAgICAgICAgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3QsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICAgICAgQWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIERlbGV0ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNZXNzYWdlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTWVzc2FnZUludGVyZmFjZSxcbiAgICAgICAgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgU2VhcmNoQ29udmVyc2F0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBTZW5kTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFNlbmRNZXNzYWdlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0SW50ZXJmYWNlLFxufSBmcm9tICcuL2ludGVyZmFjZXMvJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi4vX2dlbmVyYXRlZC9ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzaGFyZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25BcGlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBob3N0U2VydmljZTogSG9zdFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZShyOiBTZW5kTWVzc2FnZVJlcXVlc3QgfCBTZW5kTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFNlbmRNZXNzYWdlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFNlbmRNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZW5kTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgU2VuZE1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8U2VuZE1lc3NhZ2VSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvU2VuZE1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBTZW5kTWVzc2FnZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TWVzc2FnZShyOiBHZXRNZXNzYWdlUmVxdWVzdCB8IEdldE1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxNZXNzYWdlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNZXNzYWdlUmVxdWVzdD5yKSA6IG5ldyBHZXRNZXNzYWdlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE1lc3NhZ2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBNZXNzYWdlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdE1lc3NhZ2VzKHI6IExpc3RNZXNzYWdlc1JlcXVlc3QgfCBMaXN0TWVzc2FnZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0TWVzc2FnZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdE1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0TWVzc2FnZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RNZXNzYWdlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0TWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvTGlzdE1lc3NhZ2VzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdE1lc3NhZ2VzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVNZXNzYWdlKHI6IERlbGV0ZU1lc3NhZ2VSZXF1ZXN0IHwgRGVsZXRlTWVzc2FnZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlTWVzc2FnZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8RGVsZXRlTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlTWVzc2FnZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9EZWxldGVNZXNzYWdlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICB1cGRhdGVNZXNzYWdlU3RhdHVzKHI6IFVwZGF0ZU1lc3NhZ2VTdGF0dXNSZXF1ZXN0IHwgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Q+cikgOiBuZXcgVXBkYXRlTWVzc2FnZVN0YXR1c1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9VcGRhdGVNZXNzYWdlU3RhdHVzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBsb29rdXBDb252ZXJzYXRpb25zKHI6IExvb2t1cENvbnZlcnNhdGlvbnNSZXF1ZXN0IHwgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPExvb2t1cENvbnZlcnNhdGlvbnNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3Q+cikgOiBuZXcgTG9va3VwQ29udmVyc2F0aW9uc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0xvb2t1cENvbnZlcnNhdGlvbnNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMb29rdXBDb252ZXJzYXRpb25zUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGVDb252ZXJzYXRpb24ocjogQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCB8IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZUNvbnZlcnNhdGlvblJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9DcmVhdGVDb252ZXJzYXRpb25cIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVDb252ZXJzYXRpb25SZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGRlbGV0ZUNvbnZlcnNhdGlvbihyOiBEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0IHwgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxEZWxldGVDb252ZXJzYXRpb25SZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0RlbGV0ZUNvbnZlcnNhdGlvblwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgcmVjZWl2ZU1lc3NhZ2UocjogUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0IHwgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFJlY2VpdmVNZXNzYWdlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxSZWNlaXZlTWVzc2FnZVJlcXVlc3Q+cikgOiBuZXcgUmVjZWl2ZU1lc3NhZ2VSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvUmVjZWl2ZU1lc3NhZ2VcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpTWVzc2FnZXMocjogR2V0TXVsdGlNZXNzYWdlc1JlcXVlc3QgfCBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlNZXNzYWdlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aU1lc3NhZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpTWVzc2FnZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvR2V0TXVsdGlNZXNzYWdlc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpTWVzc2FnZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNyZWF0ZU11bHRpTWVzc2FnZXMocjogQ3JlYXRlTXVsdGlNZXNzYWdlc1JlcXVlc3QgfCBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdD5yKSA6IG5ldyBDcmVhdGVNdWx0aU1lc3NhZ2VzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0NyZWF0ZU11bHRpTWVzc2FnZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlscyhyOiBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0IHwgR2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnZlcnNhdGlvbkRldGFpbHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlDb252ZXJzYXRpb25EZXRhaWxzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udmVyc2F0aW9uRGV0YWlsc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0TXVsdGlQYXJ0aWNpcGFudHMocjogR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0IHwgR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8R2V0TXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0PnIpIDogbmV3IEdldE11bHRpUGFydGljaXBhbnRzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWUoKSArIFwiL2NvbnZlcnNhdGlvbi52MS5Db252ZXJzYXRpb25TZXJ2aWNlL0dldE11bHRpUGFydGljaXBhbnRzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIHNlYXJjaENvbnZlcnNhdGlvbnMocjogU2VhcmNoQ29udmVyc2F0aW9uc1JlcXVlc3QgfCBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8U2VhcmNoQ29udmVyc2F0aW9uc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdD5yKSA6IG5ldyBTZWFyY2hDb252ZXJzYXRpb25zUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvU2VhcmNoQ29udmVyc2F0aW9uc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFNlYXJjaENvbnZlcnNhdGlvbnNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpLFxuICAgICAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50KHI6IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdCB8IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlDb252ZXJzYXRpb25NZXNzYWdlQ291bnRSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lKCkgKyBcIi9jb252ZXJzYXRpb24udjEuQ29udmVyc2F0aW9uU2VydmljZS9HZXRNdWx0aUNvbnZlcnNhdGlvbk1lc3NhZ2VDb3VudFwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpQ29udmVyc2F0aW9uTWVzc2FnZUNvdW50UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBhZGRNdWx0aVBhcnRpY2lwYW50cyhyOiBBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3QgfCBBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEFkZE11bHRpUGFydGljaXBhbnRzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEFkZE11bHRpUGFydGljaXBhbnRzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxBZGRNdWx0aVBhcnRpY2lwYW50c1JlcXVlc3Q+cikgOiBuZXcgQWRkTXVsdGlQYXJ0aWNpcGFudHNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWRkTXVsdGlQYXJ0aWNpcGFudHNSZXNwb25zZUludGVyZmFjZT4odGhpcy5ob3N0U2VydmljZS5ob3N0V2l0aFNjaGVtZSgpICsgXCIvY29udmVyc2F0aW9uLnYxLkNvbnZlcnNhdGlvblNlcnZpY2UvQWRkTXVsdGlQYXJ0aWNpcGFudHNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBBZGRNdWx0aVBhcnRpY2lwYW50c1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
@@ -1,14 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // Enums.
6
- // *********************************
7
- export var MetadataIdentifier;
8
- (function (MetadataIdentifier) {
9
- MetadataIdentifier[MetadataIdentifier["METADATA_IDENTIFIER_UNDEFINED"] = 0] = "METADATA_IDENTIFIER_UNDEFINED";
10
- MetadataIdentifier[MetadataIdentifier["METADATA_IDENTIFIER_RECIPIENT"] = 1] = "METADATA_IDENTIFIER_RECIPIENT";
11
- MetadataIdentifier[MetadataIdentifier["METADATA_IDENTIFIER_SENDER"] = 2] = "METADATA_IDENTIFIER_SENDER";
12
- MetadataIdentifier[MetadataIdentifier["METADATA_IDENTIFIER_CONVERSATION"] = 3] = "METADATA_IDENTIFIER_CONVERSATION";
13
- })(MetadataIdentifier || (MetadataIdentifier = {}));
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmVudW0uanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2NvbnZlcnNhdGlvbl9zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9lbnVtcy9hcGkuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsU0FBUztBQUNULG9DQUFvQztBQUVwQyxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzFCLDZHQUFpQyxDQUFBO0lBQ2pDLDZHQUFpQyxDQUFBO0lBQ2pDLHVHQUE4QixDQUFBO0lBQzlCLG1IQUFvQyxDQUFBO0FBQ3hDLENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBFbnVtcy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5leHBvcnQgZW51bSBNZXRhZGF0YUlkZW50aWZpZXIge1xuICAgIE1FVEFEQVRBX0lERU5USUZJRVJfVU5ERUZJTkVEID0gMCxcbiAgICBNRVRBREFUQV9JREVOVElGSUVSX1JFQ0lQSUVOVCA9IDEsXG4gICAgTUVUQURBVEFfSURFTlRJRklFUl9TRU5ERVIgPSAyLFxuICAgIE1FVEFEQVRBX0lERU5USUZJRVJfQ09OVkVSU0FUSU9OID0gMyxcbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // Enums.
6
- // *********************************
7
- export var ConversationChannel;
8
- (function (ConversationChannel) {
9
- ConversationChannel[ConversationChannel["CONVERSATION_CHANNEL_UNDEFINED"] = 0] = "CONVERSATION_CHANNEL_UNDEFINED";
10
- ConversationChannel[ConversationChannel["CONVERSATION_CHANNEL_INTERNAL"] = 1] = "CONVERSATION_CHANNEL_INTERNAL";
11
- ConversationChannel[ConversationChannel["CONVERSATION_CHANNEL_SMS"] = 2] = "CONVERSATION_CHANNEL_SMS";
12
- ConversationChannel[ConversationChannel["CONVERSATION_CHANNEL_FACEBOOK"] = 3] = "CONVERSATION_CHANNEL_FACEBOOK";
13
- ConversationChannel[ConversationChannel["CONVERSATION_CHANNEL_GOOGLE_MESSAGES"] = 4] = "CONVERSATION_CHANNEL_GOOGLE_MESSAGES";
14
- })(ConversationChannel || (ConversationChannel = {}));
15
- export var PlatformLocation;
16
- (function (PlatformLocation) {
17
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_UNDEFINED"] = 0] = "PLATFORM_LOCATION_UNDEFINED";
18
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_BUSINESS_APP"] = 1] = "PLATFORM_LOCATION_BUSINESS_APP";
19
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_PARTNER_CENTER"] = 2] = "PLATFORM_LOCATION_PARTNER_CENTER";
20
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_VENDOR_CENTER"] = 3] = "PLATFORM_LOCATION_VENDOR_CENTER";
21
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_TASK_MANAGER"] = 4] = "PLATFORM_LOCATION_TASK_MANAGER";
22
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_PROPOSAL_BUILDER"] = 5] = "PLATFORM_LOCATION_PROPOSAL_BUILDER";
23
- PlatformLocation[PlatformLocation["PLATFORM_LOCATION_SALES_CENTER"] = 6] = "PLATFORM_LOCATION_SALES_CENTER";
24
- })(PlatformLocation || (PlatformLocation = {}));
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLmVudW0uanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2NvbnZlcnNhdGlvbl9zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9lbnVtcy9jb252ZXJzYXRpb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsU0FBUztBQUNULG9DQUFvQztBQUVwQyxNQUFNLENBQU4sSUFBWSxtQkFNWDtBQU5ELFdBQVksbUJBQW1CO0lBQzNCLGlIQUFrQyxDQUFBO0lBQ2xDLCtHQUFpQyxDQUFBO0lBQ2pDLHFHQUE0QixDQUFBO0lBQzVCLCtHQUFpQyxDQUFBO0lBQ2pDLDZIQUF3QyxDQUFBO0FBQzVDLENBQUMsRUFOVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBTTlCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBUVg7QUFSRCxXQUFZLGdCQUFnQjtJQUN4QixxR0FBK0IsQ0FBQTtJQUMvQiwyR0FBa0MsQ0FBQTtJQUNsQywrR0FBb0MsQ0FBQTtJQUNwQyw2R0FBbUMsQ0FBQTtJQUNuQywyR0FBa0MsQ0FBQTtJQUNsQyxtSEFBc0MsQ0FBQTtJQUN0QywyR0FBa0MsQ0FBQTtBQUN0QyxDQUFDLEVBUlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQVEzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gRW51bXMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuZXhwb3J0IGVudW0gQ29udmVyc2F0aW9uQ2hhbm5lbCB7XG4gICAgQ09OVkVSU0FUSU9OX0NIQU5ORUxfVU5ERUZJTkVEID0gMCxcbiAgICBDT05WRVJTQVRJT05fQ0hBTk5FTF9JTlRFUk5BTCA9IDEsXG4gICAgQ09OVkVSU0FUSU9OX0NIQU5ORUxfU01TID0gMixcbiAgICBDT05WRVJTQVRJT05fQ0hBTk5FTF9GQUNFQk9PSyA9IDMsXG4gICAgQ09OVkVSU0FUSU9OX0NIQU5ORUxfR09PR0xFX01FU1NBR0VTID0gNCxcbn1cblxuZXhwb3J0IGVudW0gUGxhdGZvcm1Mb2NhdGlvbiB7XG4gICAgUExBVEZPUk1fTE9DQVRJT05fVU5ERUZJTkVEID0gMCxcbiAgICBQTEFURk9STV9MT0NBVElPTl9CVVNJTkVTU19BUFAgPSAxLFxuICAgIFBMQVRGT1JNX0xPQ0FUSU9OX1BBUlRORVJfQ0VOVEVSID0gMixcbiAgICBQTEFURk9STV9MT0NBVElPTl9WRU5ET1JfQ0VOVEVSID0gMyxcbiAgICBQTEFURk9STV9MT0NBVElPTl9UQVNLX01BTkFHRVIgPSA0LFxuICAgIFBMQVRGT1JNX0xPQ0FUSU9OX1BST1BPU0FMX0JVSUxERVIgPSA1LFxuICAgIFBMQVRGT1JNX0xPQ0FUSU9OX1NBTEVTX0NFTlRFUiA9IDYsXG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // Enums Index.
6
- // *********************************
7
- export { MessageStatus, MessageType, } from './message.enum';
8
- export { ConversationChannel, PlatformLocation, } from './conversation.enum';
9
- export { ParticipantType, } from './participant.enum';
10
- export { MetadataIdentifier, } from './api.enum';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2NvbnZlcnNhdGlvbl9zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsZUFBZTtBQUNmLG9DQUFvQztBQUNwQyxPQUFPLEVBQ0gsYUFBYSxFQUNiLFdBQVcsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEdBQ25CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNILGVBQWUsR0FDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0gsa0JBQWtCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBFbnVtcyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBNZXNzYWdlU3RhdHVzLFxuICAgIE1lc3NhZ2VUeXBlLFxufSBmcm9tICcuL21lc3NhZ2UuZW51bSc7XG5leHBvcnQge1xuICAgIENvbnZlcnNhdGlvbkNoYW5uZWwsXG4gICAgUGxhdGZvcm1Mb2NhdGlvbixcbn0gZnJvbSAnLi9jb252ZXJzYXRpb24uZW51bSc7XG5leHBvcnQge1xuICAgIFBhcnRpY2lwYW50VHlwZSxcbn0gZnJvbSAnLi9wYXJ0aWNpcGFudC5lbnVtJztcbmV4cG9ydCB7XG4gICAgTWV0YWRhdGFJZGVudGlmaWVyLFxufSBmcm9tICcuL2FwaS5lbnVtJztcbiJdfQ==
@@ -1,21 +0,0 @@
1
- // *********************************
2
- // Code generated by sdkgen
3
- // DO NOT EDIT!.
4
- //
5
- // Enums.
6
- // *********************************
7
- export var MessageStatus;
8
- (function (MessageStatus) {
9
- MessageStatus[MessageStatus["MESSAGE_STATUS_NOT_READ"] = 0] = "MESSAGE_STATUS_NOT_READ";
10
- MessageStatus[MessageStatus["MESSAGE_STATUS_READ"] = 1] = "MESSAGE_STATUS_READ";
11
- MessageStatus[MessageStatus["MESSAGE_STATUS_SENT"] = 2] = "MESSAGE_STATUS_SENT";
12
- MessageStatus[MessageStatus["MESSAGE_STATUS_DELIVERED"] = 3] = "MESSAGE_STATUS_DELIVERED";
13
- MessageStatus[MessageStatus["MESSAGE_STATUS_FAILED"] = 4] = "MESSAGE_STATUS_FAILED";
14
- MessageStatus[MessageStatus["MESSAGE_STATUS_UNDELIVERED"] = 5] = "MESSAGE_STATUS_UNDELIVERED";
15
- })(MessageStatus || (MessageStatus = {}));
16
- export var MessageType;
17
- (function (MessageType) {
18
- MessageType[MessageType["MESSAGE_TYPE_MESSAGE"] = 0] = "MESSAGE_TYPE_MESSAGE";
19
- MessageType[MessageType["MESSAGE_TYPE_MEDIA"] = 1] = "MESSAGE_TYPE_MEDIA";
20
- })(MessageType || (MessageType = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5lbnVtLmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9jb252ZXJzYXRpb25fc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvZW51bXMvbWVzc2FnZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixTQUFTO0FBQ1Qsb0NBQW9DO0FBRXBDLE1BQU0sQ0FBTixJQUFZLGFBT1g7QUFQRCxXQUFZLGFBQWE7SUFDckIsdUZBQTJCLENBQUE7SUFDM0IsK0VBQXVCLENBQUE7SUFDdkIsK0VBQXVCLENBQUE7SUFDdkIseUZBQTRCLENBQUE7SUFDNUIsbUZBQXlCLENBQUE7SUFDekIsNkZBQThCLENBQUE7QUFDbEMsQ0FBQyxFQVBXLGFBQWEsS0FBYixhQUFhLFFBT3hCO0FBRUQsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQiw2RUFBd0IsQ0FBQTtJQUN4Qix5RUFBc0IsQ0FBQTtBQUMxQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEVudW1zLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbmV4cG9ydCBlbnVtIE1lc3NhZ2VTdGF0dXMge1xuICAgIE1FU1NBR0VfU1RBVFVTX05PVF9SRUFEID0gMCxcbiAgICBNRVNTQUdFX1NUQVRVU19SRUFEID0gMSxcbiAgICBNRVNTQUdFX1NUQVRVU19TRU5UID0gMixcbiAgICBNRVNTQUdFX1NUQVRVU19ERUxJVkVSRUQgPSAzLFxuICAgIE1FU1NBR0VfU1RBVFVTX0ZBSUxFRCA9IDQsXG4gICAgTUVTU0FHRV9TVEFUVVNfVU5ERUxJVkVSRUQgPSA1LFxufVxuXG5leHBvcnQgZW51bSBNZXNzYWdlVHlwZSB7XG4gICAgTUVTU0FHRV9UWVBFX01FU1NBR0UgPSAwLFxuICAgIE1FU1NBR0VfVFlQRV9NRURJQSA9IDEsXG59XG4iXX0=