@twilio/conversations 1.3.0-rc8 → 2.0.0-rc.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 (282) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/README.md +22 -17
  3. package/dist/browser.js +7873 -0
  4. package/dist/browser.js.map +1 -0
  5. package/dist/docs/assets/css/main.css +2660 -0
  6. package/dist/docs/assets/images/icons.png +0 -0
  7. package/dist/docs/assets/images/icons@2x.png +0 -0
  8. package/dist/docs/assets/images/widgets.png +0 -0
  9. package/dist/docs/assets/images/widgets@2x.png +0 -0
  10. package/dist/docs/assets/js/main.js +248 -0
  11. package/dist/docs/assets/js/search.js +1 -0
  12. package/dist/docs/classes/AggregatedDeliveryReceipt.html +3286 -0
  13. package/dist/docs/classes/Client.html +4181 -0
  14. package/dist/docs/classes/Conversation.html +4397 -0
  15. package/dist/docs/classes/DetailedDeliveryReceipt.html +3265 -0
  16. package/dist/docs/classes/Media.html +3295 -0
  17. package/dist/docs/classes/Message.html +3713 -0
  18. package/dist/docs/classes/MessageBuilder.html +3280 -0
  19. package/dist/docs/classes/Participant.html +3517 -0
  20. package/dist/docs/classes/PushNotification.html +3232 -0
  21. package/dist/docs/classes/RestPaginator.html +3262 -0
  22. package/dist/docs/classes/UnsentMessage.html +3144 -0
  23. package/dist/docs/classes/User.html +3451 -0
  24. package/dist/docs/index.html +3394 -212
  25. package/dist/docs/interfaces/ClientOptions.html +3136 -0
  26. package/dist/docs/interfaces/ConversationState.html +3152 -0
  27. package/dist/docs/interfaces/CreateConversationOptions.html +3168 -0
  28. package/dist/docs/interfaces/LastMessage.html +3152 -0
  29. package/dist/docs/interfaces/Paginator.html +3243 -0
  30. package/dist/docs/interfaces/PushNotificationData.html +3168 -0
  31. package/dist/docs/interfaces/SendEmailOptions.html +3136 -0
  32. package/dist/docs/interfaces/SendMediaOptions.html +3170 -0
  33. package/dist/docs/modules.html +3425 -0
  34. package/dist/lib.d.ts +1952 -0
  35. package/dist/lib.js +7873 -0
  36. package/dist/lib.js.map +1 -0
  37. package/dist/post-install.js +29 -0
  38. package/dist/react-native.js +4038 -0
  39. package/dist/react-native.js.map +1 -0
  40. package/dist/twilio-conversations.js +40912 -0
  41. package/dist/twilio-conversations.min.js +156 -0
  42. package/package.json +59 -48
  43. package/.circleci/config.yml +0 -650
  44. package/.deepsource.toml +0 -6
  45. package/.env.example +0 -13
  46. package/browser/aggregateddeliveryreceipt.js +0 -152
  47. package/browser/client.js +0 -991
  48. package/browser/configuration.js +0 -80
  49. package/browser/conversation.js +0 -1826
  50. package/browser/data/conversations.js +0 -632
  51. package/browser/data/messages.js +0 -522
  52. package/browser/data/participants.js +0 -411
  53. package/browser/data/users.js +0 -281
  54. package/browser/detaileddeliveryreceipt.js +0 -44
  55. package/browser/index.js +0 -4
  56. package/browser/interfaces/limits.js +0 -3
  57. package/browser/interfaces/notificationtypes.js +0 -21
  58. package/browser/interfaces/paginator.js +0 -53
  59. package/browser/interfaces/responsecodes.js +0 -20
  60. package/browser/interfaces/transport.js +0 -3
  61. package/browser/logger.js +0 -141
  62. package/browser/media.js +0 -198
  63. package/browser/message.js +0 -685
  64. package/browser/participant.js +0 -415
  65. package/browser/pushnotification.js +0 -49
  66. package/browser/restpaginator.js +0 -74
  67. package/browser/services/network.js +0 -223
  68. package/browser/services/readhorizon.js +0 -181
  69. package/browser/services/typingindicator.js +0 -142
  70. package/browser/session.js +0 -505
  71. package/browser/sessionerror.js +0 -93
  72. package/browser/sri.json +0 -1
  73. package/browser/synclist.js +0 -90
  74. package/browser/synclistdescriptor.js +0 -29
  75. package/browser/syncpaginator.js +0 -63
  76. package/browser/user.js +0 -431
  77. package/browser/util/deferred.js +0 -56
  78. package/browser/util/index.js +0 -108
  79. package/dist/@twilio/conversations.js +0 -35533
  80. package/dist/@twilio/conversations.min.js +0 -204
  81. package/dist/docs/AggregatedDeliveryReceipt.html +0 -948
  82. package/dist/docs/Client.html +0 -5075
  83. package/dist/docs/Conversation.html +0 -6018
  84. package/dist/docs/DetailedDeliveryReceipt.html +0 -641
  85. package/dist/docs/Media.html +0 -694
  86. package/dist/docs/Message.html +0 -1934
  87. package/dist/docs/Paginator.html +0 -605
  88. package/dist/docs/Participant.html +0 -1510
  89. package/dist/docs/PushNotification.html +0 -836
  90. package/dist/docs/SessionError.html +0 -379
  91. package/dist/docs/User.html +0 -1315
  92. package/dist/docs/classes.list.html +0 -4431
  93. package/dist/docs/fonts/glyphicons-halflings-regular.eot +0 -0
  94. package/dist/docs/fonts/glyphicons-halflings-regular.svg +0 -288
  95. package/dist/docs/fonts/glyphicons-halflings-regular.ttf +0 -0
  96. package/dist/docs/fonts/glyphicons-halflings-regular.woff +0 -0
  97. package/dist/docs/fonts/glyphicons-halflings-regular.woff2 +0 -0
  98. package/dist/docs/img/glyphicons-halflings-white.png +0 -0
  99. package/dist/docs/img/glyphicons-halflings.png +0 -0
  100. package/dist/docs/quicksearch.html +0 -31
  101. package/dist/docs/scripts/docstrap.lib.js +0 -11
  102. package/dist/docs/scripts/fulltext-search-ui.js +0 -89
  103. package/dist/docs/scripts/fulltext-search.js +0 -36
  104. package/dist/docs/scripts/lunr.min.js +0 -6
  105. package/dist/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  106. package/dist/docs/scripts/prettify/jquery.min.js +0 -6
  107. package/dist/docs/scripts/prettify/lang-css.js +0 -21
  108. package/dist/docs/scripts/prettify/prettify.js +0 -496
  109. package/dist/docs/scripts/sunlight.js +0 -1157
  110. package/dist/docs/scripts/toc.js +0 -203
  111. package/dist/docs/styles/darkstrap.css +0 -960
  112. package/dist/docs/styles/prettify-tomorrow.css +0 -132
  113. package/dist/docs/styles/site.cerulean.css +0 -7008
  114. package/dist/docs/styles/site.cosmo.css +0 -7061
  115. package/dist/docs/styles/site.cyborg.css +0 -7048
  116. package/dist/docs/styles/site.darkly.css +0 -7171
  117. package/dist/docs/styles/site.darkstrap.css +0 -5638
  118. package/dist/docs/styles/site.dibs-bootstrap.css +0 -5899
  119. package/dist/docs/styles/site.flatly.css +0 -7147
  120. package/dist/docs/styles/site.journal.css +0 -6973
  121. package/dist/docs/styles/site.lumen.css +0 -7298
  122. package/dist/docs/styles/site.paper.css +0 -7623
  123. package/dist/docs/styles/site.readable.css +0 -6997
  124. package/dist/docs/styles/site.sandstone.css +0 -7035
  125. package/dist/docs/styles/site.simplex.css +0 -7023
  126. package/dist/docs/styles/site.slate.css +0 -7343
  127. package/dist/docs/styles/site.spacelab.css +0 -7055
  128. package/dist/docs/styles/site.superhero.css +0 -7131
  129. package/dist/docs/styles/site.united.css +0 -6895
  130. package/dist/docs/styles/site.yeti.css +0 -7195
  131. package/dist/docs/styles/sunlight.dark.css +0 -345
  132. package/dist/docs/styles/sunlight.default.css +0 -344
  133. package/dist/sri.json +0 -1
  134. package/lib/aggregateddeliveryreceipt.d.ts +0 -98
  135. package/lib/aggregateddeliveryreceipt.js +0 -112
  136. package/lib/client.d.ts +0 -317
  137. package/lib/client.js +0 -633
  138. package/lib/configuration.d.ts +0 -21
  139. package/lib/configuration.js +0 -41
  140. package/lib/conversation.d.ts +0 -460
  141. package/lib/conversation.js +0 -940
  142. package/lib/data/conversations.d.ts +0 -57
  143. package/lib/data/conversations.js +0 -296
  144. package/lib/data/messages.d.ts +0 -75
  145. package/lib/data/messages.js +0 -208
  146. package/lib/data/participants.d.ts +0 -94
  147. package/lib/data/participants.js +0 -204
  148. package/lib/data/users.d.ts +0 -42
  149. package/lib/data/users.js +0 -113
  150. package/lib/detaileddeliveryreceipt.d.ts +0 -45
  151. package/lib/detaileddeliveryreceipt.js +0 -34
  152. package/lib/index.d.ts +0 -1
  153. package/lib/index.js +0 -3
  154. package/lib/interfaces/limits.d.ts +0 -8
  155. package/lib/interfaces/limits.js +0 -2
  156. package/lib/interfaces/notificationtypes.d.ts +0 -8
  157. package/lib/interfaces/notificationtypes.js +0 -11
  158. package/lib/interfaces/paginator.d.ts +0 -52
  159. package/lib/interfaces/paginator.js +0 -28
  160. package/lib/interfaces/responsecodes.d.ts +0 -8
  161. package/lib/interfaces/responsecodes.js +0 -10
  162. package/lib/interfaces/transport.d.ts +0 -13
  163. package/lib/interfaces/transport.js +0 -2
  164. package/lib/logger.d.ts +0 -18
  165. package/lib/logger.js +0 -35
  166. package/lib/media.d.ts +0 -52
  167. package/lib/media.js +0 -69
  168. package/lib/message.d.ts +0 -136
  169. package/lib/message.js +0 -305
  170. package/lib/participant.d.ts +0 -142
  171. package/lib/participant.js +0 -219
  172. package/lib/pushnotification.d.ts +0 -48
  173. package/lib/pushnotification.js +0 -39
  174. package/lib/restpaginator.d.ts +0 -19
  175. package/lib/restpaginator.js +0 -36
  176. package/lib/services/network.d.ts +0 -22
  177. package/lib/services/network.js +0 -87
  178. package/lib/services/readhorizon.d.ts +0 -28
  179. package/lib/services/readhorizon.js +0 -112
  180. package/lib/services/typingindicator.d.ts +0 -50
  181. package/lib/services/typingindicator.js +0 -102
  182. package/lib/session.d.ts +0 -63
  183. package/lib/session.js +0 -213
  184. package/lib/sessionerror.d.ts +0 -12
  185. package/lib/sessionerror.js +0 -24
  186. package/lib/sri.json +0 -1
  187. package/lib/synclist.d.ts +0 -24
  188. package/lib/synclist.js +0 -28
  189. package/lib/synclistdescriptor.d.ts +0 -27
  190. package/lib/synclistdescriptor.js +0 -19
  191. package/lib/syncpaginator.d.ts +0 -22
  192. package/lib/syncpaginator.js +0 -37
  193. package/lib/user.d.ts +0 -98
  194. package/lib/user.js +0 -219
  195. package/lib/util/deferred.d.ts +0 -12
  196. package/lib/util/deferred.js +0 -22
  197. package/lib/util/index.d.ts +0 -28
  198. package/lib/util/index.js +0 -82
  199. package/tools/rtd-sdk-cdn-pin/.gitrepo +0 -12
  200. package/tools/rtd-sdk-cdn-pin/README.md +0 -54
  201. package/tools/rtd-sdk-cdn-pin/bintray-settings.xml.template +0 -16
  202. package/tools/rtd-sdk-cdn-pin/cdn-common/cdn-prepare.sh +0 -67
  203. package/tools/rtd-sdk-cdn-pin/cdn-pin-latest.sh +0 -19
  204. package/tools/rtd-sdk-cdn-pin/cdn-pin.sh +0 -19
  205. package/tools/rtd-sdk-cdn-pin/cdn-upload.sh +0 -13
  206. package/tools/rtd-sdk-cdn-pin/fetch/common/fetch-bintray-android.sh +0 -34
  207. package/tools/rtd-sdk-cdn-pin/fetch/common/fetch-npm.sh +0 -18
  208. package/tools/rtd-sdk-cdn-pin/fetch/twilio-chat-android.sh +0 -5
  209. package/tools/rtd-sdk-cdn-pin/fetch/twilio-chat-js.sh +0 -5
  210. package/tools/rtd-sdk-cdn-pin/fetch/twilio-conversations-android.sh +0 -6
  211. package/tools/rtd-sdk-cdn-pin/fetch/twilio-conversations-js.sh +0 -5
  212. package/tools/rtd-sdk-cdn-pin/fetch/twilio-sync-android.sh +0 -5
  213. package/tools/rtd-sdk-cdn-pin/fetch/twilio-sync-js.sh +0 -5
  214. package/tools/rtd-sdk-cdn-pin/fetch-artifact.sh +0 -26
  215. package/tools/sdk-release-tool/.gitrepo +0 -12
  216. package/tools/sdk-release-tool/Makefile +0 -49
  217. package/tools/sdk-release-tool/README.md +0 -275
  218. package/tools/sdk-release-tool/delete +0 -3
  219. package/tools/sdk-release-tool/download +0 -3
  220. package/tools/sdk-release-tool/get-cors +0 -3
  221. package/tools/sdk-release-tool/list +0 -3
  222. package/tools/sdk-release-tool/pin +0 -3
  223. package/tools/sdk-release-tool/pin-latest +0 -3
  224. package/tools/sdk-release-tool/requirements.txt +0 -4
  225. package/tools/sdk-release-tool/sdk-release-tool +0 -3
  226. package/tools/sdk-release-tool/sdk_release_tools/__init__.py +0 -0
  227. package/tools/sdk-release-tool/sdk_release_tools/__main__.py +0 -110
  228. package/tools/sdk-release-tool/sdk_release_tools/aws.py +0 -70
  229. package/tools/sdk-release-tool/sdk_release_tools/cli.py +0 -181
  230. package/tools/sdk-release-tool/sdk_release_tools/log.py +0 -24
  231. package/tools/sdk-release-tool/sdk_release_tools/ops.py +0 -295
  232. package/tools/sdk-release-tool/sdk_release_tools/rpm.py +0 -28
  233. package/tools/sdk-release-tool/sdk_release_tools/util.py +0 -186
  234. package/tools/sdk-release-tool/sdk_release_tools/versions.py +0 -362
  235. package/tools/sdk-release-tool/signal-sdk-js.json +0 -28
  236. package/tools/sdk-release-tool/tests/test_versions.py +0 -94
  237. package/tools/sdk-release-tool/twilio-accessmanager-android.json +0 -19
  238. package/tools/sdk-release-tool/twilio-accessmanager-ios.json +0 -26
  239. package/tools/sdk-release-tool/twilio-auth-ios.json +0 -29
  240. package/tools/sdk-release-tool/twilio-authenticator-ios.json +0 -29
  241. package/tools/sdk-release-tool/twilio-chat-android-2.json +0 -19
  242. package/tools/sdk-release-tool/twilio-chat-android.json +0 -22
  243. package/tools/sdk-release-tool/twilio-chat-ios.json +0 -26
  244. package/tools/sdk-release-tool/twilio-chat-js.json +0 -27
  245. package/tools/sdk-release-tool/twilio-client-android-aar.json +0 -22
  246. package/tools/sdk-release-tool/twilio-client-android.json +0 -22
  247. package/tools/sdk-release-tool/twilio-client-ios.json +0 -20
  248. package/tools/sdk-release-tool/twilio-client-js.json +0 -17
  249. package/tools/sdk-release-tool/twilio-client-sounds-js.json +0 -14
  250. package/tools/sdk-release-tool/twilio-common-android-maven.json +0 -16
  251. package/tools/sdk-release-tool/twilio-common-android.json +0 -22
  252. package/tools/sdk-release-tool/twilio-common-ios-rtc.json +0 -25
  253. package/tools/sdk-release-tool/twilio-common-ios.json +0 -25
  254. package/tools/sdk-release-tool/twilio-common-js.json +0 -19
  255. package/tools/sdk-release-tool/twilio-conversations-android.json +0 -22
  256. package/tools/sdk-release-tool/twilio-conversations-ios.json +0 -26
  257. package/tools/sdk-release-tool/twilio-conversations-js.json +0 -27
  258. package/tools/sdk-release-tool/twilio-flex-js.json +0 -20
  259. package/tools/sdk-release-tool/twilio-flex-webchat-js.json +0 -16
  260. package/tools/sdk-release-tool/twilio-frame-chat-android.json +0 -22
  261. package/tools/sdk-release-tool/twilio-frame-chat-ios.json +0 -23
  262. package/tools/sdk-release-tool/twilio-frame-chat-js.json +0 -23
  263. package/tools/sdk-release-tool/twilio-ip-messaging-android-maven.json +0 -16
  264. package/tools/sdk-release-tool/twilio-ip-messaging-android.json +0 -22
  265. package/tools/sdk-release-tool/twilio-ip-messaging-ios.json +0 -25
  266. package/tools/sdk-release-tool/twilio-ip-messaging-js.json +0 -21
  267. package/tools/sdk-release-tool/twilio-sync-android.json +0 -22
  268. package/tools/sdk-release-tool/twilio-sync-ios.json +0 -26
  269. package/tools/sdk-release-tool/twilio-sync-js.json +0 -39
  270. package/tools/sdk-release-tool/twilio-taskrouter-js.json +0 -17
  271. package/tools/sdk-release-tool/twilio-video-android.json +0 -22
  272. package/tools/sdk-release-tool/twilio-video-cpp-linux-cross-rootfs.json +0 -13
  273. package/tools/sdk-release-tool/twilio-video-cpp.json +0 -33
  274. package/tools/sdk-release-tool/twilio-video-ios.json +0 -25
  275. package/tools/sdk-release-tool/twilio-video-js.json +0 -19
  276. package/tools/sdk-release-tool/twilio-video-jsdocs.json +0 -14
  277. package/tools/sdk-release-tool/twilio-voice-android.json +0 -22
  278. package/tools/sdk-release-tool/twilio-voice-ios.json +0 -29
  279. package/tools/sdk-release-tool/unpin +0 -3
  280. package/tools/sdk-release-tool/unpin-latest +0 -3
  281. package/tools/sdk-release-tool/upload +0 -3
  282. package/twilio-chat.js.iml +0 -9
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const TYPING_PATH = '/v1/typing';
4
- const TYPING_TIMEOUT = 5;
5
- const HTTP_CACHE_LIFETIME = 'PT5S';
6
- const CONSUMPTION_HORIZON_SENDING_INTERVAL = 'PT5S';
7
- const USER_INFOS_TO_SUBSCRIBE = 100;
8
- const MINIMUM_RETRY_DELAY = 1000;
9
- const MAXIMUM_RETRY_DELAY = 4000;
10
- const MAXIMUM_ATTEMPTS_COUNT = 3;
11
- const RETRY_WHEN_THROTTLED = true;
12
- class Configuration {
13
- constructor(options) {
14
- options = options || {};
15
- let constructorOptions = options.Chat || options.IPMessaging || options || {};
16
- this.region = constructorOptions.region || options.region;
17
- this.baseUrl = constructorOptions.apiUri || constructorOptions.typingUri ||
18
- ((!this.region || this.region === 'us1') ? 'https://aim.twilio.com' : `https://aim.${this.region}.twilio.com`);
19
- this.typingIndicatorUri = this.baseUrl + TYPING_PATH;
20
- this.typingIndicatorTimeoutOverride = constructorOptions.typingIndicatorTimeoutOverride;
21
- this.httpCacheIntervalOverride = constructorOptions.httpCacheIntervalOverride;
22
- this.consumptionReportIntervalOverride = constructorOptions.consumptionReportIntervalOverride;
23
- this.userInfosToSubscribeOverride = constructorOptions.userInfosToSubscribeOverride;
24
- this.retryWhenThrottledOverride = constructorOptions.retryWhenThrottledOverride;
25
- this.backoffConfigOverride = constructorOptions.backoffConfigOverride;
26
- this.productId = options.productId;
27
- }
28
- get typingIndicatorTimeoutDefault() { return TYPING_TIMEOUT * 1000; }
29
- get httpCacheIntervalDefault() { return HTTP_CACHE_LIFETIME; }
30
- get consumptionReportIntervalDefault() { return CONSUMPTION_HORIZON_SENDING_INTERVAL; }
31
- get userInfosToSubscribeDefault() { return USER_INFOS_TO_SUBSCRIBE; }
32
- get retryWhenThrottledDefault() { return RETRY_WHEN_THROTTLED; }
33
- get backoffConfigDefault() {
34
- return {
35
- min: MINIMUM_RETRY_DELAY,
36
- max: MAXIMUM_RETRY_DELAY,
37
- maxAttemptsCount: MAXIMUM_ATTEMPTS_COUNT
38
- };
39
- }
40
- }
41
- exports.Configuration = Configuration;
@@ -1,460 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { Participant } from './participant';
4
- import { Message } from './message';
5
- import { Users } from './data/users';
6
- import { Paginator } from './interfaces/paginator';
7
- import { Conversations } from './data/conversations';
8
- import { McsClient, MediaCategory } from 'twilio-mcs-client';
9
- import { SyncClient } from 'twilio-sync';
10
- import { Session } from './session';
11
- import { ReadHorizon } from './services/readhorizon';
12
- import { TypingIndicator } from './services/typingindicator';
13
- import { Network } from './services/network';
14
- import { MediaLimits } from './interfaces/limits';
15
- export interface ConversationServices {
16
- session: Session;
17
- users: Users;
18
- typingIndicator: TypingIndicator;
19
- readHorizon: ReadHorizon;
20
- network: Network;
21
- mcsClient: McsClient;
22
- syncClient: SyncClient;
23
- limits: MediaLimits;
24
- }
25
- interface ConversationDescriptor {
26
- channel: string;
27
- entityName: string;
28
- uniqueName: string;
29
- attributes: any;
30
- createdBy?: string;
31
- friendlyName?: string;
32
- lastConsumedMessageIndex: number;
33
- dateCreated: any;
34
- dateUpdated: any;
35
- notificationLevel?: Conversation.NotificationLevel;
36
- bindings?: Conversation.Bindings;
37
- }
38
- declare namespace Conversation {
39
- type UpdateReason = 'attributes' | 'createdBy' | 'dateCreated' | 'dateUpdated' | 'friendlyName' | 'lastReadMessageIndex' | 'state' | 'status' | 'uniqueName' | 'lastMessage' | 'notificationLevel' | 'bindings';
40
- type Status = 'notParticipating' | 'joined';
41
- type NotificationLevel = 'default' | 'muted';
42
- type State = {
43
- current: 'active' | 'inactive' | 'closed';
44
- dateUpdated: Date;
45
- } | undefined;
46
- interface UpdatedEventArgs {
47
- conversation: Conversation;
48
- updateReasons: Conversation.UpdateReason[];
49
- }
50
- interface Bindings {
51
- email?: EmailBinding;
52
- }
53
- interface EmailBinding {
54
- name?: string;
55
- projected_address: string;
56
- }
57
- interface SendMediaOptions {
58
- contentType: string;
59
- media: string | Buffer;
60
- }
61
- interface SendEmailOptions {
62
- subject?: string;
63
- }
64
- interface LastMessage {
65
- index?: number;
66
- dateCreated?: Date;
67
- }
68
- }
69
- declare class UnsentMessage {
70
- private messagesEntity;
71
- text?: string;
72
- attributes: any;
73
- mediaContent: Array<[MediaCategory, FormData | Conversation.SendMediaOptions]>;
74
- emailOptions?: Conversation.SendEmailOptions;
75
- constructor(messagesEntity: any);
76
- /**
77
- * Send the prepared message to the conversation.
78
- * @returns {Promise<number>} new Message's index in the Conversation's messages list
79
- */
80
- send(): Promise<number>;
81
- }
82
- declare class MessageBuilder {
83
- private readonly limits;
84
- private readonly message;
85
- private emailBodies;
86
- private emailHistories;
87
- constructor(limits: MediaLimits, messagesEntity: any);
88
- setBody(text: string): MessageBuilder;
89
- setSubject(subject: string): MessageBuilder;
90
- setAttributes(attributes: any): MessageBuilder;
91
- setEmailBody(mimeType: string, body: FormData | Conversation.SendMediaOptions): MessageBuilder;
92
- setEmailHistory(mimeType: string, history: FormData | Conversation.SendMediaOptions): MessageBuilder;
93
- addMedia(payload: FormData | Conversation.SendMediaOptions): MessageBuilder;
94
- build(): UnsentMessage;
95
- private getPayloadContentType;
96
- }
97
- /**
98
- * @classdesc A Conversation represents communication between multiple Conversations Clients
99
- * @property {any} attributes - The Conversation's custom attributes
100
- * @property {String} createdBy - The identity of the User that created this Conversation
101
- * @property {Date} dateCreated - The Date this Conversation was created
102
- * @property {Date} dateUpdated - The Date this Conversation was last updated
103
- * @property {String} [friendlyName] - The Conversation's name
104
- * @property {Number|null} lastReadMessageIndex - Index of the last Message the User has read in this Conversation
105
- * @property {Conversation#LastMessage} lastMessage - Last Message sent to this Conversation
106
- * @property {Conversation#NotificationLevel} notificationLevel - User Notification level for this Conversation
107
- * @property {String} sid - The Conversation's unique system identifier
108
- * @property {Conversation#Status} status - The Conversation's status
109
- * @property {Conversation#State} state - The Conversation's state
110
- * @property {String} uniqueName - The Conversation's unique name
111
- * @fires Conversation#participantJoined
112
- * @fires Conversation#participantLeft
113
- * @fires Conversation#participantUpdated
114
- * @fires Conversation#messageAdded
115
- * @fires Conversation#messageRemoved
116
- * @fires Conversation#messageUpdated
117
- * @fires Conversation#typingEnded
118
- * @fires Conversation#typingStarted
119
- * @fires Conversation#updated
120
- * @fires Conversation#removed
121
- */
122
- declare class Conversation extends EventEmitter {
123
- private services;
124
- readonly sid: string;
125
- private readonly channelState;
126
- private statusSource;
127
- private entityPromise;
128
- private entityName;
129
- private entity;
130
- private messagesEntity;
131
- private participantsEntity;
132
- private readonly participants;
133
- constructor(services: ConversationServices, descriptor: ConversationDescriptor, sid: string);
134
- /**
135
- * These options can be passed to {@link Conversation#sendMessage}.
136
- * @typedef {Object} Conversation#SendMediaOptions
137
- * @property {String} contentType - content type of media
138
- * @property {String | Buffer} media - content to post
139
- */
140
- /**
141
- * These options can be passed to {@link Conversation#sendMessage}.
142
- * @typedef {Object} Conversation#SendEmailOptions
143
- * @property {String} subject - subject for the message. Ignored for media messages.
144
- */
145
- /**
146
- * The update reason for <code>updated</code> event emitted on Conversation
147
- * @typedef {('attributes' | 'createdBy' | 'dateCreated' | 'dateUpdated' |
148
- 'friendlyName' | 'lastReadMessageIndex' | 'state' | 'status' | 'uniqueName' | 'lastMessage' |
149
- 'notificationLevel' | 'bindings')} Conversation#UpdateReason
150
- */
151
- /**
152
- * The status of the Conversation, relative to the Client: whether the Conversation has been <code>joined</code> or the Client is
153
- * <code>notParticipating</code> in the Conversation.
154
- * @typedef {('notParticipating' | 'joined')} Conversation#Status
155
- */
156
- /**
157
- * The User's Notification level for Conversation, determines whether the currently logged-in User will receive
158
- * pushes for events in this Conversation. Can be either <code>muted</code> or <code>default</code>,
159
- * where <code>default</code> defers to global Service push configuration.
160
- * @typedef {('default' | 'muted')} Conversation#NotificationLevel
161
- */
162
- /**
163
- * The Conversation's state.
164
- * @typedef {Object} Conversation#State
165
- * @property {('active' | 'inactive' | 'closed')} current - the current state
166
- * @property {Date} dateUpdated - date at which the latest conversation state update happened
167
- */
168
- get uniqueName(): string;
169
- get status(): Conversation.Status;
170
- get friendlyName(): string;
171
- get dateUpdated(): any;
172
- get dateCreated(): any;
173
- get createdBy(): string;
174
- get attributes(): Object;
175
- get lastReadMessageIndex(): number | null;
176
- get lastMessage(): Conversation.LastMessage;
177
- get notificationLevel(): Conversation.NotificationLevel;
178
- get state(): Conversation.State;
179
- get bindings(): Conversation.Bindings;
180
- get limits(): MediaLimits;
181
- /**
182
- * The Conversation's last message's information.
183
- * @typedef {Object} Conversation#LastMessage
184
- * @property {Number} index - Message's index
185
- * @property {Date} dateCreated - Message's creation date
186
- */
187
- /**
188
- * Load and Subscribe to this Conversation and do not subscribe to its Participants and Messages.
189
- * This or _subscribeStreams will need to be called before any events on Conversation will fire.
190
- * @returns {Promise}
191
- * @private
192
- */
193
- _subscribe(): Promise<any>;
194
- /**
195
- * Load the attributes of this Conversation and instantiate its Participants and Messages.
196
- * This or _subscribe will need to be called before any events on Conversation will fire.
197
- * This will need to be called before any events on Participants or Messages will fire
198
- * @returns {Promise}
199
- * @private
200
- */
201
- _subscribeStreams(): Promise<void>;
202
- /**
203
- * Stop listening for and firing events on this Conversation.
204
- * @returns {Promise}
205
- * @private
206
- */
207
- _unsubscribe(): Promise<[void, any]>;
208
- /**
209
- * Set conversation status
210
- * @private
211
- */
212
- _setStatus(status: Conversation.Status, source: Conversations.DataSource): void;
213
- /**
214
- * If conversation's status update source
215
- * @private
216
- * @return {Conversations.DataSource}
217
- */
218
- _statusSource(): Conversations.DataSource;
219
- private static preprocessUpdate;
220
- /**
221
- * Updates local conversation object with new values
222
- * @private
223
- */
224
- _update(update: any): void;
225
- /**
226
- * @private
227
- */
228
- private _onMessageAdded;
229
- /**
230
- * Add a participant to the Conversation by its Identity.
231
- * @param {String} identity - Identity of the Client to add
232
- * @param {any} [attributes] Attributes to be attached to the participant
233
- * @returns {Promise<void>}
234
- */
235
- add(identity: string, attributes?: any): Promise<void>;
236
- /**
237
- * Add a non-chat participant to the Conversation.
238
- *
239
- * @param {String} proxyAddress Proxy (Twilio) address of the participant
240
- * @param {String} address User address of the participant
241
- * @param {any} [attributes] Attributes to be attached to the participant
242
- * @returns {Promise<void>}
243
- */
244
- addNonChatParticipant(proxyAddress: string, address: string, attributes?: Record<string, any>): Promise<any>;
245
- /**
246
- * Advance Conversation's last read Message index to current read horizon.
247
- * Rejects if User is not Participant of Conversation.
248
- * Last read Message index is updated only if new index value is higher than previous.
249
- * @param {Number} index - Message index to advance to as last read
250
- * @returns {Promise<number>} resulting unread messages count in the conversation
251
- */
252
- advanceLastReadMessageIndex(index: number): Promise<number>;
253
- /**
254
- * Delete the Conversation and unsubscribe from its events.
255
- * @returns {Promise<Conversation>}
256
- */
257
- delete(): Promise<Conversation>;
258
- /**
259
- * Get the custom attributes of this Conversation.
260
- * @returns {Promise<any>} attributes of this Conversation
261
- */
262
- getAttributes(): Promise<any>;
263
- /**
264
- * Returns messages from conversation using paginator interface.
265
- * @param {Number} [pageSize=30] Number of messages to return in single chunk
266
- * @param {Number} [anchor] - Index of newest Message to fetch. From the end by default
267
- * @param {('backwards'|'forward')} [direction=backwards] - Query direction. By default it query backwards
268
- * from newer to older. 'forward' will query in opposite direction
269
- * @returns {Promise<Paginator<Message>>} page of messages
270
- */
271
- getMessages(pageSize?: number, anchor?: number, direction?: 'backwards' | 'forward'): Promise<Paginator<Message>>;
272
- /**
273
- * Get a list of all Participants joined to this Conversation.
274
- * @returns {Promise<Participant[]>}
275
- */
276
- getParticipants(): Promise<Participant[]>;
277
- /**
278
- * Get conversation participants count.
279
- * <br/>
280
- * This method is semi-realtime. This means that this data will be eventually correct,
281
- * but will also possibly be incorrect for a few seconds. The Conversation system does not
282
- * provide real time events for counter values changes.
283
- * <br/>
284
- * So this is quite useful for any UI badges, but is not recommended
285
- * to build any core application logic based on these counters being accurate in real time.
286
- * @returns {Promise<number>}
287
- */
288
- getParticipantsCount(): Promise<number>;
289
- /**
290
- * Get a Participant by its SID.
291
- * @param {String} participantSid - Participant sid
292
- * @returns {Promise<Participant>}
293
- */
294
- getParticipantBySid(participantSid: string): Promise<Participant>;
295
- /**
296
- * Get a Participant by its identity.
297
- * @param {String} identity - Participant identity
298
- * @returns {Promise<Participant>}
299
- */
300
- getParticipantByIdentity(identity: string): Promise<Participant>;
301
- /**
302
- * Get total message count in a conversation.
303
- * <br/>
304
- * This method is semi-realtime. This means that this data will be eventually correct,
305
- * but will also possibly be incorrect for a few seconds. The Conversations system does not
306
- * provide real time events for counter values changes.
307
- * <br/>
308
- * So this is quite useful for any UI badges, but is not recommended
309
- * to build any core application logic based on these counters being accurate in real time.
310
- * @returns {Promise<number>}
311
- */
312
- getMessagesCount(): Promise<number>;
313
- /**
314
- * Get unread messages count for the User if they are a Participant of this Conversation.
315
- * Rejects if the User is not a Participant of the Conversation.
316
- * <br/>
317
- * Use this method to obtain the number of unread messages together with
318
- * updateLastReadMessageIndex() instead of relying on the
319
- * Message indices which may have gaps. See Message.index for details.
320
- * <br/>
321
- * This method is semi-realtime. This means that this data will be eventually correct,
322
- * but will also possibly be incorrect for a few seconds. The Chat system does not
323
- * provide real time events for counter values changes.
324
- * <br/>
325
- * This is quite useful for any “unread messages count” badges, but is not recommended
326
- * to build any core application logic based on these counters being accurate in real time.
327
- * @returns {Promise<number|null>}
328
- */
329
- getUnreadMessagesCount(): Promise<number | null>;
330
- /**
331
- * Join the Conversation and subscribe to its events.
332
- * @returns {Promise<Conversation>}
333
- */
334
- join(): Promise<Conversation>;
335
- /**
336
- * Leave the Conversation.
337
- * @returns {Promise<Conversation>}
338
- */
339
- leave(): Promise<Conversation>;
340
- /**
341
- * Remove a Participant from the Conversation. When a string is passed as the argument, it will assume that the string is an identity.
342
- * @param {String|Participant} participant - identity or participant object to remove
343
- * @returns {Promise<void>}
344
- */
345
- removeParticipant(participant: string | Participant): Promise<void>;
346
- /**
347
- * Send a Message in the Conversation.
348
- * @param {String|FormData|Conversation#SendMediaOptions|null} message - The message body for text message,
349
- * FormData or MediaOptions for media content. Sending FormData supported only with browser engine
350
- * @param {any} [messageAttributes] - attributes for the message
351
- * @param {Conversation#SendEmailOptions} [emailOptions] - email options for the message
352
- * @returns {Promise<number>} new Message's index in the Conversation's messages list
353
- */
354
- sendMessage(message: string | FormData | Conversation.SendMediaOptions | null, messageAttributes?: any, emailOptions?: Conversation.SendEmailOptions): Promise<number>;
355
- prepareMessage(): MessageBuilder;
356
- /**
357
- * Set last read Conversation's Message index to last known Message's index in this Conversation.
358
- * @returns {Promise<number>} resulting unread messages count in the conversation
359
- */
360
- setAllMessagesRead(): Promise<number>;
361
- /**
362
- * Set all messages in the conversation unread.
363
- * @returns {Promise<number>} resulting unread messages count in the conversation
364
- */
365
- setAllMessagesUnread(): Promise<number>;
366
- /**
367
- * Set User Notification level for this conversation.
368
- * @param {Conversation#NotificationLevel} notificationLevel - The new user notification level
369
- * @returns {Promise<void>}
370
- */
371
- setUserNotificationLevel(notificationLevel: Conversation.NotificationLevel): Promise<void>;
372
- /**
373
- * Send a notification to the server indicating that this Client is currently typing in this Conversation.
374
- * Typing ended notification is sent after a while automatically, but by calling again this method you ensure typing ended is not received.
375
- * @returns {Promise<void>}
376
- */
377
- typing(): Promise<void>;
378
- /**
379
- * Update the Conversation's attributes.
380
- * @param {any} attributes - The new attributes object
381
- * @returns {Promise<Conversation>}
382
- */
383
- updateAttributes(attributes: any): Promise<Conversation>;
384
- /**
385
- * Update the Conversation's friendlyName.
386
- * @param {String|null} name - The new Conversation friendlyName
387
- * @returns {Promise<Conversation>}
388
- */
389
- updateFriendlyName(name: string | null): Promise<Conversation>;
390
- /**
391
- * Set Conversation's last read Message index to current read horizon.
392
- * @param {Number|null} index - Message index to set as last read.
393
- * If null provided, then the behavior is identical to {@link Conversation#setAllMessagesUnread}
394
- * @returns {Promise<number>} resulting unread messages count in the conversation
395
- */
396
- updateLastReadMessageIndex(index: number | null): Promise<number>;
397
- /**
398
- * Update the Conversation's unique name.
399
- * @param {String|null} uniqueName - New unique name for the Conversation. Setting unique name to null removes it.
400
- * @returns {Promise<Conversation>}
401
- */
402
- updateUniqueName(uniqueName: string | null): Promise<Conversation>;
403
- }
404
- export { ConversationDescriptor, Conversation, UnsentMessage };
405
- /**
406
- * Fired when a Participant has joined the Conversation.
407
- * @event Conversation#participantJoined
408
- * @type {Participant}
409
- */
410
- /**
411
- * Fired when a Participant has left the Conversation.
412
- * @event Conversation#participantLeft
413
- * @type {Participant}
414
- */
415
- /**
416
- * Fired when a Participant's fields has been updated.
417
- * @event Conversation#participantUpdated
418
- * @type {Object}
419
- * @property {Participant} participant - Updated Participant
420
- * @property {Participant#UpdateReason[]} updateReasons - Array of Participant's updated event reasons
421
- */
422
- /**
423
- * Fired when a new Message has been added to the Conversation.
424
- * @event Conversation#messageAdded
425
- * @type {Message}
426
- */
427
- /**
428
- * Fired when Message is removed from Conversation's message list.
429
- * @event Conversation#messageRemoved
430
- * @type {Message}
431
- */
432
- /**
433
- * Fired when an existing Message's fields are updated with new values.
434
- * @event Conversation#messageUpdated
435
- * @type {Object}
436
- * @property {Message} message - Updated Message
437
- * @property {Message#UpdateReason[]} updateReasons - Array of Message's updated event reasons
438
- */
439
- /**
440
- * Fired when a Participant has stopped typing.
441
- * @event Conversation#typingEnded
442
- * @type {Participant}
443
- */
444
- /**
445
- * Fired when a Participant has started typing.
446
- * @event Conversation#typingStarted
447
- * @type {Participant}
448
- */
449
- /**
450
- * Fired when a Conversation's attributes or metadata have been updated.
451
- * @event Conversation#updated
452
- * @type {Object}
453
- * @property {Conversation} conversation - Updated Conversation
454
- * @property {Conversation#UpdateReason[]} updateReasons - Array of Conversation's updated event reasons
455
- */
456
- /**
457
- * Fired when the Conversation was destroyed or currently logged in User has left private Conversation
458
- * @event Conversation#removed
459
- * @type {Conversation}
460
- */