@sinch/conversation 0.0.2 → 0.0.4

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 (111) hide show
  1. package/README.md +28 -13
  2. package/dist/models/v1/agent/agent.d.ts +3 -3
  3. package/dist/models/v1/agent-joined-event/agent-joined-event.d.ts +1 -1
  4. package/dist/models/v1/agent-left-event/agent-left-event.d.ts +1 -1
  5. package/dist/models/v1/app-event/app-event.d.ts +44 -1
  6. package/dist/models/v1/app-message/app-message.d.ts +198 -30
  7. package/dist/models/v1/app-message-message/app-message-message.d.ts +92 -1
  8. package/dist/models/v1/choice/choice.d.ts +17 -5
  9. package/dist/models/v1/comment-reply-event/comment-reply-event.d.ts +1 -1
  10. package/dist/models/v1/composing-end-event/composing-end-event.d.ts +1 -1
  11. package/dist/models/v1/composing-event/composing-event.d.ts +1 -1
  12. package/dist/models/v1/contact-event/contact-event.d.ts +32 -1
  13. package/dist/models/v1/contact-id/contact-id.d.ts +2 -1
  14. package/dist/models/v1/contact-info-message/contact-info-message.d.ts +1 -1
  15. package/dist/models/v1/contact-message/contact-message.d.ts +36 -6
  16. package/dist/models/v1/conversation-channel-credential/conversation-channel-credential.d.ts +3 -10
  17. package/dist/models/v1/conversation-channel-credential/index.d.ts +1 -1
  18. package/dist/models/v1/conversation-event/conversation-event.d.ts +6 -0
  19. package/dist/models/v1/conversation-message/conversation-message.d.ts +4 -2
  20. package/dist/models/v1/generic-event/generic-event.d.ts +1 -1
  21. package/dist/models/v1/get-channel-profile-request/get-channel-profile-request.d.ts +2 -2
  22. package/dist/models/v1/helper.d.ts +17 -9
  23. package/dist/models/v1/helper.js +26 -9
  24. package/dist/models/v1/helper.js.map +1 -1
  25. package/dist/models/v1/identified-by/identified-by.d.ts +1 -0
  26. package/dist/models/v1/index.d.ts +2 -3
  27. package/dist/models/v1/index.js +2 -3
  28. package/dist/models/v1/index.js.map +1 -1
  29. package/dist/models/v1/inject-conversation-event-request/inject-conversation-event-request.d.ts +12 -1
  30. package/dist/models/v1/inject-message-request/inject-message-request.d.ts +4 -2
  31. package/dist/models/v1/list-message/index.d.ts +1 -1
  32. package/dist/models/v1/list-message/list-message.d.ts +8 -3
  33. package/dist/models/v1/list-section/list-section.d.ts +1 -1
  34. package/dist/models/v1/lookup-capability-request/index.d.ts +1 -0
  35. package/dist/models/v1/lookup-capability-request/index.js.map +1 -0
  36. package/dist/models/v1/{lookup-capability/lookup-capability.d.ts → lookup-capability-request/lookup-capability-request.d.ts} +2 -2
  37. package/dist/models/v1/{query-capability-response/index.js → lookup-capability-request/lookup-capability-request.js} +1 -1
  38. package/dist/models/v1/lookup-capability-request/lookup-capability-request.js.map +1 -0
  39. package/dist/models/v1/lookup-capability-response/index.d.ts +1 -0
  40. package/dist/models/v1/lookup-capability-response/index.js.map +1 -0
  41. package/dist/models/v1/{query-capability-response/query-capability-response.d.ts → lookup-capability-response/lookup-capability-response.d.ts} +1 -1
  42. package/dist/models/v1/{lookup-capability/lookup-capability.js → lookup-capability-response/lookup-capability-response.js} +1 -1
  43. package/dist/models/v1/lookup-capability-response/lookup-capability-response.js.map +1 -0
  44. package/dist/models/v1/mod-callback-events/capability-event/capability-event.d.ts +2 -14
  45. package/dist/models/v1/mod-callback-events/channel-event/channel-event.d.ts +4 -15
  46. package/dist/models/v1/mod-callback-events/contact-create-event/contact-create-event.d.ts +2 -14
  47. package/dist/models/v1/mod-callback-events/contact-delete-event/contact-delete-event.d.ts +2 -14
  48. package/dist/models/v1/mod-callback-events/contact-identities-duplication-event/contact-identities-duplication-event.d.ts +2 -14
  49. package/dist/models/v1/mod-callback-events/contact-merge-event/contact-merge-event.d.ts +2 -14
  50. package/dist/models/v1/mod-callback-events/contact-update-event/contact-update-event.d.ts +2 -14
  51. package/dist/models/v1/mod-callback-events/conversation-callback-event/conversation-callback-event.d.ts +13 -0
  52. package/dist/models/v1/mod-callback-events/conversation-delete-event/conversation-delete-event.d.ts +2 -14
  53. package/dist/models/v1/mod-callback-events/conversation-start-event/conversation-start-event.d.ts +2 -14
  54. package/dist/models/v1/mod-callback-events/conversation-stop-event/conversation-stop-event.d.ts +2 -14
  55. package/dist/models/v1/mod-callback-events/event-delivery/event-delivery.d.ts +2 -14
  56. package/dist/models/v1/mod-callback-events/event-inbound/event-inbound.d.ts +2 -14
  57. package/dist/models/v1/mod-callback-events/message-delivery-receipt-event/message-delivery-receipt-event.d.ts +2 -14
  58. package/dist/models/v1/mod-callback-events/message-inbound-event/message-inbound-event.d.ts +2 -14
  59. package/dist/models/v1/mod-callback-events/message-inbound-event-item/message-inbound-event-item.d.ts +3 -3
  60. package/dist/models/v1/mod-callback-events/message-inbound-smart-conversation-redaction-event/message-inbound-smart-conversation-redaction-event.d.ts +2 -14
  61. package/dist/models/v1/mod-callback-events/message-submit-event/message-submit-event.d.ts +2 -14
  62. package/dist/models/v1/mod-callback-events/opt-in-event/opt-in-event.d.ts +2 -14
  63. package/dist/models/v1/mod-callback-events/opt-out-event/opt-out-event.d.ts +2 -14
  64. package/dist/models/v1/mod-callback-events/record-notification/record-notification.d.ts +2 -14
  65. package/dist/models/v1/mod-callback-events/smart-conversations-event/smart-conversations-event.d.ts +2 -14
  66. package/dist/models/v1/mod-callback-events/unsupported-callback-event/unsupported-callback-event.d.ts +2 -14
  67. package/dist/models/v1/send-event-request/index.d.ts +1 -1
  68. package/dist/models/v1/send-event-request/send-event-request.d.ts +37 -5
  69. package/dist/models/v1/send-message-request/index.d.ts +1 -1
  70. package/dist/models/v1/send-message-request/send-message-request.d.ts +53 -6
  71. package/dist/models/v1/transcode-message-response/transcode-message-response.d.ts +2 -1
  72. package/dist/models/v1/v2-template-translation/index.d.ts +1 -1
  73. package/dist/models/v1/v2-template-translation/v2-template-translation.d.ts +94 -10
  74. package/dist/rest/v1/capability/capability-api.d.ts +5 -5
  75. package/dist/rest/v1/capability/capability-api.jest.fixture.d.ts +5 -3
  76. package/dist/rest/v1/capability/capability-api.jest.fixture.js +1 -1
  77. package/dist/rest/v1/capability/capability-api.jest.fixture.js.map +1 -1
  78. package/dist/rest/v1/capability/capability-api.js +1 -1
  79. package/dist/rest/v1/capability/capability-api.js.map +1 -1
  80. package/dist/rest/v1/contact/contact-api.d.ts +7 -6
  81. package/dist/rest/v1/contact/contact-api.jest.fixture.d.ts +4 -2
  82. package/dist/rest/v1/contact/contact-api.jest.fixture.js.map +1 -1
  83. package/dist/rest/v1/contact/contact-api.js +3 -2
  84. package/dist/rest/v1/contact/contact-api.js.map +1 -1
  85. package/dist/rest/v1/events/events-api.d.ts +66 -5
  86. package/dist/rest/v1/events/events-api.jest.fixture.d.ts +39 -3
  87. package/dist/rest/v1/events/events-api.jest.fixture.js +24 -0
  88. package/dist/rest/v1/events/events-api.jest.fixture.js.map +1 -1
  89. package/dist/rest/v1/events/events-api.js +56 -3
  90. package/dist/rest/v1/events/events-api.js.map +1 -1
  91. package/dist/rest/v1/messages/messages-api.d.ts +96 -5
  92. package/dist/rest/v1/messages/messages-api.jest.fixture.d.ts +59 -3
  93. package/dist/rest/v1/messages/messages-api.jest.fixture.js +36 -0
  94. package/dist/rest/v1/messages/messages-api.jest.fixture.js.map +1 -1
  95. package/dist/rest/v1/messages/messages-api.js +80 -3
  96. package/dist/rest/v1/messages/messages-api.js.map +1 -1
  97. package/package.json +2 -2
  98. package/dist/models/v1/list-message-message-properties/index.d.ts +0 -1
  99. package/dist/models/v1/list-message-message-properties/index.js.map +0 -1
  100. package/dist/models/v1/list-message-message-properties/list-message-message-properties.d.ts +0 -9
  101. package/dist/models/v1/list-message-message-properties/list-message-message-properties.js +0 -3
  102. package/dist/models/v1/list-message-message-properties/list-message-message-properties.js.map +0 -1
  103. package/dist/models/v1/lookup-capability/index.d.ts +0 -1
  104. package/dist/models/v1/lookup-capability/index.js.map +0 -1
  105. package/dist/models/v1/lookup-capability/lookup-capability.js.map +0 -1
  106. package/dist/models/v1/query-capability-response/index.d.ts +0 -1
  107. package/dist/models/v1/query-capability-response/index.js.map +0 -1
  108. package/dist/models/v1/query-capability-response/query-capability-response.js +0 -3
  109. package/dist/models/v1/query-capability-response/query-capability-response.js.map +0 -1
  110. /package/dist/models/v1/{list-message-message-properties → lookup-capability-request}/index.js +0 -0
  111. /package/dist/models/v1/{lookup-capability → lookup-capability-response}/index.js +0 -0
package/README.md CHANGED
@@ -38,18 +38,24 @@ If you are using this SDK as part of the Sinch SDK (`@sinch/sdk-core`) you can a
38
38
 
39
39
  ```typescript
40
40
  import {
41
+ ConversationService,
41
42
  SinchClient,
42
- SinchClientParameters,
43
+ UnifiedCredentials,
44
+ SendMessageRequestData,
45
+ SendMessageResponse,
43
46
  } from '@sinch/sdk-core';
44
47
 
45
- const credentials: SinchClientParameters = {
48
+ const credentials: UnifiedCredentials = {
46
49
  projectId: 'PROJECT_ID',
47
50
  keyId: 'KEY_ID',
48
51
  keySecret: 'KEY_SECRET',
49
52
  };
50
53
 
54
+ // Access the 'conversation' service registered on the Sinch Client
51
55
  const sinch = new SinchClient(credentials);
56
+ const conversationService: ConversationService = sinch.conversation;
52
57
 
58
+ // Build the request data
53
59
  const requestData: SendMessageRequestData = {
54
60
  sendMessageRequestBody: {
55
61
  app_id: 'CONVERSATION_APP_ID',
@@ -61,12 +67,15 @@ const requestData: SendMessageRequestData = {
61
67
  recipient: {
62
68
  contact_id: 'CONTACT_ID',
63
69
  },
70
+ channel_priority_order: [
71
+ 'WHASAPP',
72
+ ],
64
73
  },
65
74
  };
66
75
 
67
- // Access the 'conversation' domain registered on the Sinch Client
76
+ // Use the 'conversation' service registered on the Sinch client
68
77
  const result: SendMessageResponse
69
- = await sinch.conversation.messages.send(requestData);
78
+ = await conversationService.messages.send(requestData);
70
79
  ```
71
80
 
72
81
  ### Standalone
@@ -75,21 +84,24 @@ The SDK can be used standalone if you need to use only the Conversation APIs.
75
84
 
76
85
  ```typescript
77
86
  import {
78
- SinchClientParameters,
87
+ UnifiedCredentials,
79
88
  } from '@sinch/sdk-client';
80
89
  import {
81
-
90
+ ConversationService,
91
+ SendMessageRequestData,
92
+ SendMessageResponse,
82
93
  } from '@sinch/conversation';
83
94
 
84
- const credentials: SinchClientParameters = {
95
+ const credentials: UnifiedCredentials = {
85
96
  projectId: 'PROJECT_ID',
86
97
  keyId: 'KEY_ID',
87
98
  keySecret: 'KEY_SECRET',
88
99
  };
89
100
 
90
101
  // Declare the 'conversation' service in a standalone way
91
- const conversation = new Conversation(options);
102
+ const conversationService = new ConversationService(options);
92
103
 
104
+ // Build the request data
93
105
  const requestData: SendMessageRequestData = {
94
106
  sendMessageRequestBody: {
95
107
  app_id: 'CONVERSATION_APP_ID',
@@ -101,30 +113,33 @@ const requestData: SendMessageRequestData = {
101
113
  recipient: {
102
114
  contact_id: 'CONTACT_ID',
103
115
  },
116
+ channel_priority_order: [
117
+ 'WHASAPP',
118
+ ],
104
119
  },
105
120
  };
106
121
 
107
- // Use the standalone declaration of the 'conversation' domain
122
+ // Use the standalone declaration of the 'conversation' service
108
123
  const result: SendMessageResponse
109
- = await conversation.messages.send(requestData);
124
+ = await conversationService.messages.send(requestData);
110
125
  ```
111
126
 
112
127
  ## Promises
113
128
 
114
- All the methods that interact with the Sinch APIs use Promises. You can use `await` in an `async` method to wait for the response or you can resolve them yourself with `then()` / `catch()`.
129
+ All the methods that interact with the Sinch APIs use Promises. You can use `await` in an `async` method to wait for the response, or you can resolve them yourself with `then()` / `catch()`.
115
130
 
116
131
  ```typescript
117
132
  // Method 1: Wait for the Promise to complete
118
133
  let result: SendMessageResponse;
119
134
  try {
120
- result = await sinch.conversation.messages.send(requestData);
135
+ result = await conversationService.messages.send(requestData);
121
136
  console.log(`Message sent successfully. Message Id: ${result.id}`);
122
137
  } catch (error: any) {
123
138
  console.error(`ERROR ${error.statusCode}: `);
124
139
  }
125
140
 
126
141
  // Method 2: Resolve the promise
127
- sinch.conversation.messages.send(requestData)
142
+ conversationService.messages.send(requestData)
128
143
  .then(response => console.log(`Message sent successfully. Message Id: ${result.id}`))
129
144
  .catch(error => console.error(`ERROR ${error.statusCode}: `));
130
145
  ```
@@ -2,10 +2,10 @@
2
2
  * Represents an agent that is involved in a conversation.
3
3
  */
4
4
  export interface Agent {
5
- /** Agent\'s display name */
5
+ /** Agent's display name */
6
6
  display_name: string;
7
- /** Agent\'s classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT. */
7
+ /** Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT. */
8
8
  type: 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT';
9
- /** The Agent\'s picture url. */
9
+ /** The Agent's picture url. */
10
10
  picture_url?: string;
11
11
  }
@@ -1,7 +1,7 @@
1
1
  import { Agent } from '../agent';
2
2
  export interface AgentJoinedEvent {
3
3
  /** @see AgentJoinedEventType */
4
- agent_joined_event?: AgentJoinedEventType;
4
+ agent_joined_event: AgentJoinedEventType;
5
5
  }
6
6
  export interface AgentJoinedEventType {
7
7
  /** Represents an agent that is involved in a conversation. */
@@ -1,7 +1,7 @@
1
1
  import { Agent } from '../agent';
2
2
  export interface AgentLeftEvent {
3
3
  /** @see AgentLeftEventType */
4
- agent_left_event?: AgentLeftEventType;
4
+ agent_left_event: AgentLeftEventType;
5
5
  }
6
6
  export interface AgentLeftEventType {
7
7
  /** Represents an agent that is involved in a conversation. */
@@ -7,4 +7,47 @@ import { GenericEvent } from '../generic-event';
7
7
  /**
8
8
  * Event originating from an app
9
9
  */
10
- export type AppEvent = ComposingEvent | ComposingEndEvent | CommentReplyEvent | AgentJoinedEvent | AgentLeftEvent | GenericEvent;
10
+ export type AppEvent = AppComposingEvent | AppComposingEndEvent | AppCommentReplyEvent | AppAgentJoinedEvent | AppAgentLeftEvent | AppGenericEvent;
11
+ interface AppComposingEvent extends ComposingEvent {
12
+ composing_end_event?: never;
13
+ comment_reply_event?: never;
14
+ agent_joined_event?: never;
15
+ agent_left_event?: never;
16
+ generic_event?: never;
17
+ }
18
+ interface AppComposingEndEvent extends ComposingEndEvent {
19
+ composing_event?: never;
20
+ comment_reply_event?: never;
21
+ agent_joined_event?: never;
22
+ agent_left_event?: never;
23
+ generic_event?: never;
24
+ }
25
+ interface AppCommentReplyEvent extends CommentReplyEvent {
26
+ composing_event?: never;
27
+ composing_end_event?: never;
28
+ agent_joined_event?: never;
29
+ agent_left_event?: never;
30
+ generic_event?: never;
31
+ }
32
+ interface AppAgentJoinedEvent extends AgentJoinedEvent {
33
+ composing_event?: never;
34
+ composing_end_event?: never;
35
+ comment_reply_event?: never;
36
+ agent_left_event?: never;
37
+ generic_event?: never;
38
+ }
39
+ interface AppAgentLeftEvent extends AgentLeftEvent {
40
+ composing_event?: never;
41
+ composing_end_event?: never;
42
+ comment_reply_event?: never;
43
+ agent_joined_event?: never;
44
+ generic_event?: never;
45
+ }
46
+ interface AppGenericEvent extends GenericEvent {
47
+ composing_event?: never;
48
+ composing_end_event?: never;
49
+ comment_reply_event?: never;
50
+ agent_joined_event?: never;
51
+ agent_left_event?: never;
52
+ }
53
+ export {};
@@ -2,50 +2,125 @@ import { Agent } from '../agent';
2
2
  import { LocationMessage, LocationMessageItem } from '../location-message';
3
3
  import { MediaMessage, MediaMessageItem } from '../media-message';
4
4
  import { TextMessage, TextMessageItem } from '../text-message';
5
- import { TemplateMessage } from '../template-message';
5
+ import { TemplateMessageItem } from '../template-message';
6
+ import { TemplateReference } from '../template-reference';
6
7
  import { CardMessage, CardMessageItem } from '../card-message';
7
- import { ChoiceMessage } from '../choice-message';
8
- import { CarouselMessage } from '../carousel-message';
9
- import { ListMessage } from '../list-message';
8
+ import { ChoiceMessage, ChoiceMessageItem } from '../choice-message';
9
+ import { CarouselMessage, CarouselMessageItem } from '../carousel-message';
10
+ import { ListMessage, ListMessageItem } from '../list-message';
10
11
  import { ContactInfoMessage, ContactInfoMessageItem } from '../contact-info-message';
12
+ import { ConversationChannel } from '../conversation-channel';
11
13
  /**
12
14
  * Message originating from an app
13
15
  */
14
- export type AppMessage = AppMessageCardMessage | AppMessageChoiceMessage | AppMessageLocationMessage | AppMessageCarouselMessage | AppMessageMediaMessage | AppMessageTemplateMessage | AppMessageTextMessage | AppMessageListMessage | AppMessageContactInfoMessage;
15
- interface AppMessageCardMessage extends AppMessageBase {
16
+ export type AppMessage = AppCardMessage | AppChoiceMessage | AppLocationMessage | AppCarouselMessage | AppMediaMessage | AppTemplateMessage | AppTextMessage | AppListMessage | AppContactInfoMessage;
17
+ interface AppCardMessage extends AppMessageBase {
16
18
  /** @see CardMessageItem */
17
- card_message?: CardMessageItem;
19
+ card_message: CardMessageItem;
20
+ choice_message?: never;
21
+ location_message?: never;
22
+ carousel_message?: never;
23
+ media_message?: never;
24
+ template_message?: never;
25
+ text_message?: never;
26
+ list_message?: never;
27
+ contact_info_message?: never;
18
28
  }
19
- interface AppMessageChoiceMessage extends AppMessageBase {
20
- /** @see ChoiceResponseMessage */
21
- choice_message?: ChoiceMessage;
29
+ interface AppChoiceMessage extends AppMessageBase {
30
+ /** @see ChoiceMessageItem */
31
+ choice_message: ChoiceMessageItem;
32
+ card_message?: never;
33
+ location_message?: never;
34
+ carousel_message?: never;
35
+ media_message?: never;
36
+ template_message?: never;
37
+ text_message?: never;
38
+ list_message?: never;
39
+ contact_info_message?: never;
22
40
  }
23
- interface AppMessageLocationMessage extends AppMessageBase {
41
+ interface AppLocationMessage extends AppMessageBase {
24
42
  /** @see LocationMessageItem */
25
- location_message?: LocationMessageItem;
43
+ location_message: LocationMessageItem;
44
+ card_message?: never;
45
+ choice_message?: never;
46
+ carousel_message?: never;
47
+ media_message?: never;
48
+ template_message?: never;
49
+ text_message?: never;
50
+ list_message?: never;
51
+ contact_info_message?: never;
26
52
  }
27
- interface AppMessageCarouselMessage extends AppMessageBase {
28
- /** @see CarouselMessage */
29
- carousel_message?: CarouselMessage;
53
+ interface AppCarouselMessage extends AppMessageBase {
54
+ /** @see CarouselMessageItem */
55
+ carousel_message: CarouselMessageItem;
56
+ card_message?: never;
57
+ choice_message?: never;
58
+ location_message?: never;
59
+ media_message?: never;
60
+ template_message?: never;
61
+ text_message?: never;
62
+ list_message?: never;
63
+ contact_info_message?: never;
30
64
  }
31
- interface AppMessageMediaMessage extends AppMessageBase {
65
+ interface AppMediaMessage extends AppMessageBase {
32
66
  /** @see MediaMessageItem */
33
- media_message?: MediaMessageItem;
67
+ media_message: MediaMessageItem;
68
+ card_message?: never;
69
+ choice_message?: never;
70
+ location_message?: never;
71
+ carousel_message?: never;
72
+ template_message?: never;
73
+ text_message?: never;
74
+ list_message?: never;
75
+ contact_info_message?: never;
34
76
  }
35
- interface AppMessageTemplateMessage extends AppMessageBase {
36
- /** @see TemplateMessage */
37
- template_message?: TemplateMessage;
77
+ interface AppTemplateMessage extends AppMessageBase {
78
+ /** @see TemplateMessageItem */
79
+ template_message: TemplateMessageItem;
80
+ card_message?: never;
81
+ choice_message?: never;
82
+ location_message?: never;
83
+ carousel_message?: never;
84
+ media_message?: never;
85
+ text_message?: never;
86
+ list_message?: never;
87
+ contact_info_message?: never;
38
88
  }
39
- interface AppMessageTextMessage extends AppMessageBase {
89
+ interface AppTextMessage extends AppMessageBase {
40
90
  /** @see TextMessageItem */
41
- text_message?: TextMessageItem;
91
+ text_message: TextMessageItem;
92
+ card_message?: never;
93
+ choice_message?: never;
94
+ location_message?: never;
95
+ carousel_message?: never;
96
+ media_message?: never;
97
+ template_message?: never;
98
+ list_message?: never;
99
+ contact_info_message?: never;
42
100
  }
43
- interface AppMessageListMessage extends AppMessageBase {
44
- /** @see ListMessage */
45
- list_message?: ListMessage;
101
+ interface AppListMessage extends AppMessageBase {
102
+ /** @see ListMessageItem */
103
+ list_message: ListMessageItem;
104
+ card_message?: never;
105
+ choice_message?: never;
106
+ location_message?: never;
107
+ carousel_message?: never;
108
+ media_message?: never;
109
+ template_message?: never;
110
+ text_message?: never;
111
+ contact_info_message?: never;
46
112
  }
47
- interface AppMessageContactInfoMessage extends AppMessageBase {
48
- contact_info_message?: ContactInfoMessageItem;
113
+ interface AppContactInfoMessage extends AppMessageBase {
114
+ /** @see ContactInfoMessageItem */
115
+ contact_info_message: ContactInfoMessageItem;
116
+ card_message?: never;
117
+ choice_message?: never;
118
+ location_message?: never;
119
+ carousel_message?: never;
120
+ media_message?: never;
121
+ template_message?: never;
122
+ text_message?: never;
123
+ list_message?: never;
49
124
  }
50
125
  interface AppMessageBase {
51
126
  /**
@@ -53,17 +128,110 @@ interface AppMessageBase {
53
128
  * The key in the map must point to a valid conversation channel as defined by the enum ConversationChannel.
54
129
  */
55
130
  explicit_channel_message?: {
56
- [key: string]: string;
131
+ [key in ConversationChannel]?: string;
57
132
  };
58
133
  /**
59
134
  * The option to override the omni-channel template configuration with a channel-specific template
60
135
  * (for channels on which channel-specific templates can be created. For more information, see [Channel Specific Templates](https://developers.sinch.com/docs/conversation/templates/#channel-specific-templates)).
61
136
  */
62
137
  explicit_channel_omni_message?: {
63
- [key: string]: OmniMessageOverride;
138
+ [key in ChannelSpecificTemplate]?: OmniMessage;
64
139
  };
65
140
  /** Identity of a sender */
66
141
  agent?: Agent | null;
67
142
  }
68
- type OmniMessageOverride = CardMessage | CarouselMessage | ChoiceMessage | LocationMessage | MediaMessage | TemplateMessage | TextMessage | ListMessage | ContactInfoMessage;
143
+ type ChannelSpecificTemplate = 'WHATSAPP' | 'KAKAOTALK' | 'WECHAT';
144
+ export type OmniMessage = OmniCardMessage | OmniCarouselMessage | OmniChoiceMessage | OmniLocationMessage | OmniMediaMessage | OmniTemplateMessage | OmniTextMessage | OmniListMessage | OmniContactInfoMessage;
145
+ interface OmniCardMessage extends CardMessage {
146
+ carousel_message?: never;
147
+ choice_message?: never;
148
+ location_message?: never;
149
+ media_message?: never;
150
+ template_reference?: never;
151
+ text_message?: never;
152
+ list_message?: never;
153
+ contact_info_message?: never;
154
+ }
155
+ interface OmniCarouselMessage extends CarouselMessage {
156
+ card_message?: never;
157
+ choice_message?: never;
158
+ location_message?: never;
159
+ media_message?: never;
160
+ template_reference?: never;
161
+ text_message?: never;
162
+ list_message?: never;
163
+ contact_info_message?: never;
164
+ }
165
+ interface OmniChoiceMessage extends ChoiceMessage {
166
+ card_message?: never;
167
+ carousel_message?: never;
168
+ location_message?: never;
169
+ media_message?: never;
170
+ template_reference?: never;
171
+ text_message?: never;
172
+ list_message?: never;
173
+ contact_info_message?: never;
174
+ }
175
+ interface OmniLocationMessage extends LocationMessage {
176
+ card_message?: never;
177
+ carousel_message?: never;
178
+ choice_message?: never;
179
+ media_message?: never;
180
+ template_reference?: never;
181
+ text_message?: never;
182
+ list_message?: never;
183
+ contact_info_message?: never;
184
+ }
185
+ interface OmniMediaMessage extends MediaMessage {
186
+ card_message?: never;
187
+ carousel_message?: never;
188
+ choice_message?: never;
189
+ location_message?: never;
190
+ template_reference?: never;
191
+ text_message?: never;
192
+ list_message?: never;
193
+ contact_info_message?: never;
194
+ }
195
+ interface OmniTemplateMessage {
196
+ /** @see TemplateReference */
197
+ template_reference: TemplateReference;
198
+ card_message?: never;
199
+ carousel_message?: never;
200
+ choice_message?: never;
201
+ location_message?: never;
202
+ media_message?: never;
203
+ text_message?: never;
204
+ list_message?: never;
205
+ contact_info_message?: never;
206
+ }
207
+ interface OmniTextMessage extends TextMessage {
208
+ card_message?: never;
209
+ carousel_message?: never;
210
+ choice_message?: never;
211
+ location_message?: never;
212
+ media_message?: never;
213
+ template_reference?: never;
214
+ list_message?: never;
215
+ contact_info_message?: never;
216
+ }
217
+ interface OmniListMessage extends ListMessage {
218
+ card_message?: never;
219
+ carousel_message?: never;
220
+ choice_message?: never;
221
+ location_message?: never;
222
+ media_message?: never;
223
+ template_reference?: never;
224
+ text_message?: never;
225
+ contact_info_message?: never;
226
+ }
227
+ interface OmniContactInfoMessage extends ContactInfoMessage {
228
+ card_message?: never;
229
+ carousel_message?: never;
230
+ choice_message?: never;
231
+ location_message?: never;
232
+ media_message?: never;
233
+ template_reference?: never;
234
+ text_message?: never;
235
+ list_message?: never;
236
+ }
69
237
  export {};
@@ -8,4 +8,95 @@ import { ListMessage } from '../list-message';
8
8
  import { TemplateMessage } from '../template-message';
9
9
  import { ContactInfoMessage } from '../contact-info-message';
10
10
  /** The content of the message */
11
- export type AppMessageMessage = CardMessage | CarouselMessage | ChoiceMessage | LocationMessage | MediaMessage | TemplateMessage | TextMessage | ListMessage | ContactInfoMessage;
11
+ export type AppMessageMessage = AppMessageCardMessage | AppMessageCarouselMessage | AppMessageChoiceMessage | AppMessageLocationMessage | AppMessageMediaMessage | AppMessageTemplateMessage | AppMessageTextMessage | AppMessageListMessage | AppMessageContactInfoMessage;
12
+ interface AppMessageCardMessage extends CardMessage {
13
+ carousel_message?: never;
14
+ choice_message?: never;
15
+ location_message?: never;
16
+ media_message?: never;
17
+ template_message?: never;
18
+ text_message?: never;
19
+ list_message?: never;
20
+ contact_info_message?: never;
21
+ }
22
+ interface AppMessageCarouselMessage extends CarouselMessage {
23
+ card_message?: never;
24
+ choice_message?: never;
25
+ location_message?: never;
26
+ media_message?: never;
27
+ template_message?: never;
28
+ text_message?: never;
29
+ list_message?: never;
30
+ contact_info_message?: never;
31
+ }
32
+ interface AppMessageChoiceMessage extends ChoiceMessage {
33
+ card_message?: never;
34
+ carousel_message?: never;
35
+ location_message?: never;
36
+ media_message?: never;
37
+ template_message?: never;
38
+ text_message?: never;
39
+ list_message?: never;
40
+ contact_info_message?: never;
41
+ }
42
+ interface AppMessageLocationMessage extends LocationMessage {
43
+ card_message?: never;
44
+ carousel_message?: never;
45
+ choice_message?: never;
46
+ media_message?: never;
47
+ template_message?: never;
48
+ text_message?: never;
49
+ list_message?: never;
50
+ contact_info_message?: never;
51
+ }
52
+ interface AppMessageMediaMessage extends MediaMessage {
53
+ card_message?: never;
54
+ carousel_message?: never;
55
+ choice_message?: never;
56
+ location_message?: never;
57
+ template_message?: never;
58
+ text_message?: never;
59
+ list_message?: never;
60
+ contact_info_message?: never;
61
+ }
62
+ interface AppMessageTemplateMessage extends TemplateMessage {
63
+ card_message?: never;
64
+ carousel_message?: never;
65
+ choice_message?: never;
66
+ location_message?: never;
67
+ media_message?: never;
68
+ text_message?: never;
69
+ list_message?: never;
70
+ contact_info_message?: never;
71
+ }
72
+ interface AppMessageTextMessage extends TextMessage {
73
+ card_message?: never;
74
+ carousel_message?: never;
75
+ choice_message?: never;
76
+ location_message?: never;
77
+ media_message?: never;
78
+ template_message?: never;
79
+ list_message?: never;
80
+ contact_info_message?: never;
81
+ }
82
+ interface AppMessageListMessage extends ListMessage {
83
+ card_message?: never;
84
+ carousel_message?: never;
85
+ choice_message?: never;
86
+ location_message?: never;
87
+ media_message?: never;
88
+ template_message?: never;
89
+ text_message?: never;
90
+ contact_info_message?: never;
91
+ }
92
+ interface AppMessageContactInfoMessage extends ContactInfoMessage {
93
+ card_message?: never;
94
+ carousel_message?: never;
95
+ choice_message?: never;
96
+ location_message?: never;
97
+ media_message?: never;
98
+ template_message?: never;
99
+ text_message?: never;
100
+ list_message?: never;
101
+ }
102
+ export {};
@@ -12,17 +12,29 @@ export interface ChoiceBase {
12
12
  }
13
13
  export interface CallMessageChoice extends ChoiceBase {
14
14
  /** @see CallMessage */
15
- call_message?: CallMessage;
15
+ call_message: CallMessage;
16
+ location_message?: never;
17
+ text_message?: never;
18
+ url_message?: never;
16
19
  }
17
20
  export interface LocationMessageChoice extends ChoiceBase {
18
- /** @see LocationMessage */
19
- location_message?: LocationMessageItem;
21
+ /** @see LocationMessageItem */
22
+ location_message: LocationMessageItem;
23
+ call_message?: never;
24
+ text_message?: never;
25
+ url_message?: never;
20
26
  }
21
27
  export interface TextMessageChoice extends ChoiceBase {
22
28
  /** @see TextMessageItem */
23
- text_message?: TextMessageItem;
29
+ text_message: TextMessageItem;
30
+ call_message?: never;
31
+ location_message?: never;
32
+ url_message?: never;
24
33
  }
25
34
  export interface UrlMessageChoice extends ChoiceBase {
26
35
  /** @see UrlMessage */
27
- url_message?: UrlMessage;
36
+ url_message: UrlMessage;
37
+ call_message?: never;
38
+ location_message?: never;
39
+ text_message?: never;
28
40
  }
@@ -1,6 +1,6 @@
1
1
  export interface CommentReplyEvent {
2
2
  /** @see CommentReplyEvent */
3
- comment_reply_event?: CommentReplyEventItem;
3
+ comment_reply_event: CommentReplyEventItem;
4
4
  }
5
5
  export interface CommentReplyEventItem {
6
6
  /** The text of the comment reply. */
@@ -1,4 +1,4 @@
1
1
  export interface ComposingEndEvent {
2
2
  /** An empty object. Represents a typing end indicator. */
3
- composing_end_event?: Record<string, never>;
3
+ composing_end_event: Record<string, never>;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  export interface ComposingEvent {
2
2
  /** An empty object. Represents a typing indicator. */
3
- composing_event?: Record<string, never>;
3
+ composing_event: Record<string, never>;
4
4
  }
@@ -4,4 +4,35 @@ import { CommentEvent } from '../comment-event';
4
4
  import { GenericEvent } from '../generic-event';
5
5
  import { ConversationDeletedEvent } from '../conversation-deleted-event';
6
6
  /** Message originating from a contact */
7
- export type ContactEvent = ComposingEvent | ComposingEndEvent | ConversationDeletedEvent | CommentEvent | GenericEvent;
7
+ export type ContactEvent = ContactComposingEvent | ContactComposingEndEvent | ContactConversationDeletedEvent | ContactCommentEvent | ContactGenericEvent;
8
+ interface ContactComposingEvent extends ComposingEvent {
9
+ composing_end_event?: never;
10
+ conversation_deleted_event?: never;
11
+ comment_event?: never;
12
+ generic_event?: never;
13
+ }
14
+ interface ContactComposingEndEvent extends ComposingEndEvent {
15
+ composing_event?: never;
16
+ conversation_deleted_event?: never;
17
+ comment_event?: never;
18
+ generic_event?: never;
19
+ }
20
+ interface ContactConversationDeletedEvent extends ConversationDeletedEvent {
21
+ composing_event?: never;
22
+ composing_end_event?: never;
23
+ comment_event?: never;
24
+ generic_event?: never;
25
+ }
26
+ interface ContactCommentEvent extends CommentEvent {
27
+ composing_event?: never;
28
+ composing_end_event?: never;
29
+ conversation_deleted_event?: never;
30
+ generic_event?: never;
31
+ }
32
+ interface ContactGenericEvent extends GenericEvent {
33
+ composing_event?: never;
34
+ composing_end_event?: never;
35
+ conversation_deleted_event?: never;
36
+ comment_event?: never;
37
+ }
38
+ export {};
@@ -1,4 +1,5 @@
1
1
  export interface ContactId {
2
2
  /** The ID of the contact. */
3
- contact_id?: string;
3
+ contact_id: string;
4
+ identified_by?: never;
4
5
  }
@@ -2,7 +2,7 @@
2
2
  * Message containing contact information.
3
3
  */
4
4
  export interface ContactInfoMessage {
5
- /** @see ContactInfoMessageContactInfoMessage */
5
+ /** @see ContactInfoMessageItem */
6
6
  contact_info_message?: ContactInfoMessageItem;
7
7
  }
8
8
  export interface ContactInfoMessageItem {