@twilio/conversations 3.0.1-rc.103 → 3.0.1

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 (124) hide show
  1. package/README.md +2 -2
  2. package/builds/browser.esm.js +10846 -0
  3. package/builds/browser.esm.js.map +1 -0
  4. package/builds/browser.js +579 -218
  5. package/builds/browser.js.map +1 -1
  6. package/builds/lib.d.ts +40 -27
  7. package/builds/lib.esm.d.ts +3178 -0
  8. package/builds/lib.esm.js +10845 -0
  9. package/builds/lib.js +588 -218
  10. package/builds/lib.js.map +1 -1
  11. package/builds/twilio-conversations.js +9111 -10398
  12. package/builds/twilio-conversations.js.map +1 -0
  13. package/builds/twilio-conversations.min.js +2 -1
  14. package/builds/twilio-conversations.min.js.map +1 -0
  15. package/dist/aggregated-delivery-receipt.js +1 -5
  16. package/dist/aggregated-delivery-receipt.js.map +1 -1
  17. package/dist/channel-metadata-client.js +5 -10
  18. package/dist/channel-metadata-client.js.map +1 -1
  19. package/dist/client.js +218 -206
  20. package/dist/client.js.map +1 -1
  21. package/dist/command-executor.js +6 -10
  22. package/dist/command-executor.js.map +1 -1
  23. package/dist/configuration.js +6 -10
  24. package/dist/configuration.js.map +1 -1
  25. package/dist/content-client.js +5 -9
  26. package/dist/content-client.js.map +1 -1
  27. package/dist/content-template.js +1 -7
  28. package/dist/content-template.js.map +1 -1
  29. package/dist/conversation.js +166 -136
  30. package/dist/conversation.js.map +1 -1
  31. package/dist/data/conversations.js +44 -46
  32. package/dist/data/conversations.js.map +1 -1
  33. package/dist/data/messages.js +18 -22
  34. package/dist/data/messages.js.map +1 -1
  35. package/dist/data/participants.js +22 -25
  36. package/dist/data/participants.js.map +1 -1
  37. package/dist/data/users.js +10 -14
  38. package/dist/data/users.js.map +1 -1
  39. package/dist/detailed-delivery-receipt.js +1 -5
  40. package/dist/detailed-delivery-receipt.js.map +1 -1
  41. package/dist/index.js +17 -49
  42. package/dist/index.js.map +1 -1
  43. package/dist/interfaces/notification-types.js +1 -5
  44. package/dist/interfaces/notification-types.js.map +1 -1
  45. package/dist/interfaces/rules.js +7 -13
  46. package/dist/interfaces/rules.js.map +1 -1
  47. package/dist/logger.js +9 -29
  48. package/dist/logger.js.map +1 -1
  49. package/dist/media.js +32 -25
  50. package/dist/media.js.map +1 -1
  51. package/dist/message-builder.js +43 -47
  52. package/dist/message-builder.js.map +1 -1
  53. package/dist/message-recipients-client.js +10 -16
  54. package/dist/message-recipients-client.js.map +1 -1
  55. package/dist/message.js +114 -98
  56. package/dist/message.js.map +1 -1
  57. package/dist/node_modules/quick-lru/index.js +1 -5
  58. package/dist/node_modules/quick-lru/index.js.map +1 -1
  59. package/dist/node_modules/tslib/tslib.es6.js +7 -6
  60. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  61. package/dist/packages/conversations/package.json.js +2 -6
  62. package/dist/packages/conversations/package.json.js.map +1 -1
  63. package/dist/participant.js +32 -37
  64. package/dist/participant.js.map +1 -1
  65. package/dist/push-notification.js +1 -5
  66. package/dist/push-notification.js.map +1 -1
  67. package/dist/rest-paginator.js +1 -5
  68. package/dist/rest-paginator.js.map +1 -1
  69. package/dist/services/network.js +3 -7
  70. package/dist/services/network.js.map +1 -1
  71. package/dist/services/typing-indicator.js +7 -10
  72. package/dist/services/typing-indicator.js.map +1 -1
  73. package/dist/unsent-message.js +5 -9
  74. package/dist/unsent-message.js.map +1 -1
  75. package/dist/user.js +21 -30
  76. package/dist/user.js.map +1 -1
  77. package/dist/util/deferred.js +1 -5
  78. package/dist/util/deferred.js.map +1 -1
  79. package/dist/util/index.js +36 -9
  80. package/dist/util/index.js.map +1 -1
  81. package/dist/utils/uuid.js +145 -0
  82. package/dist/utils/uuid.js.map +1 -0
  83. package/package.json +14 -17
  84. package/docs/assets/css/main.css +0 -2660
  85. package/docs/assets/images/icons.png +0 -0
  86. package/docs/assets/images/icons@2x.png +0 -0
  87. package/docs/assets/images/widgets.png +0 -0
  88. package/docs/assets/images/widgets@2x.png +0 -0
  89. package/docs/assets/js/main.js +0 -248
  90. package/docs/assets/js/search.js +0 -1
  91. package/docs/classes/AggregatedDeliveryReceipt.html +0 -3184
  92. package/docs/classes/CancellablePromise.html +0 -3213
  93. package/docs/classes/ChannelMetadata.html +0 -3050
  94. package/docs/classes/Client.html +0 -4278
  95. package/docs/classes/ContentTemplate.html +0 -3116
  96. package/docs/classes/ContentTemplateVariable.html +0 -3116
  97. package/docs/classes/Conversation.html +0 -4382
  98. package/docs/classes/DetailedDeliveryReceipt.html +0 -3163
  99. package/docs/classes/EmailRecipientDescriptor.html +0 -3098
  100. package/docs/classes/Media.html +0 -3167
  101. package/docs/classes/Message.html +0 -3826
  102. package/docs/classes/MessageBuilder.html +0 -3318
  103. package/docs/classes/Participant.html +0 -3444
  104. package/docs/classes/PushNotification.html +0 -3130
  105. package/docs/classes/RestPaginator.html +0 -3160
  106. package/docs/classes/UnknownRecipientDescriptor.html +0 -3067
  107. package/docs/classes/UnsentMessage.html +0 -3042
  108. package/docs/classes/User.html +0 -3349
  109. package/docs/index.html +0 -4373
  110. package/docs/interfaces/ClientOptions.html +0 -3066
  111. package/docs/interfaces/ConversationBindings.html +0 -3001
  112. package/docs/interfaces/ConversationEmailBinding.html +0 -3001
  113. package/docs/interfaces/ConversationLimits.html +0 -3098
  114. package/docs/interfaces/ConversationState.html +0 -3050
  115. package/docs/interfaces/ConversationUpdatedEventArgs.html +0 -3001
  116. package/docs/interfaces/CreateConversationOptions.html +0 -3066
  117. package/docs/interfaces/LastMessage.html +0 -3050
  118. package/docs/interfaces/Paginator.html +0 -3141
  119. package/docs/interfaces/ParticipantBindings.html +0 -3001
  120. package/docs/interfaces/ParticipantEmailBinding.html +0 -3001
  121. package/docs/interfaces/PushNotificationData.html +0 -3114
  122. package/docs/interfaces/SendEmailOptions.html +0 -3034
  123. package/docs/interfaces/SendMediaOptions.html +0 -3068
  124. package/docs/modules.html +0 -4374
@@ -126,8 +126,6 @@ This software includes platform.js under the following license.
126
126
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
127
127
 
128
128
  */
129
- 'use strict';
130
-
131
129
  var global =
132
130
  typeof global !== "undefined"
133
131
  ? global
@@ -137,13 +135,11 @@ var global =
137
135
  ? window
138
136
  : {};
139
137
 
140
- Object.defineProperty(exports, '__esModule', { value: true });
141
-
142
- var tslib_es6 = require('./node_modules/tslib/tslib.es6.js');
143
- var unsentMessage = require('./unsent-message.js');
144
- var contentTemplate = require('./content-template.js');
145
- var declarativeTypeValidator = require('@twilio/declarative-type-validator');
146
- var rules = require('./interfaces/rules.js');
138
+ import { __decorate, __metadata } from './node_modules/tslib/tslib.es6.js';
139
+ import { UnsentMessage } from './unsent-message.js';
140
+ import { ContentTemplateVariable } from './content-template.js';
141
+ import { validateTypes, array } from '@twilio/declarative-type-validator';
142
+ import { json, sendMediaOptions } from './interfaces/rules.js';
147
143
 
148
144
  /**
149
145
  * Message builder. Allows the message to be built and sent via method chaining.
@@ -166,7 +162,7 @@ class MessageBuilder {
166
162
  */
167
163
  constructor(limits, messagesEntity) {
168
164
  this.limits = limits;
169
- this.message = new unsentMessage.UnsentMessage(messagesEntity);
165
+ this.message = new UnsentMessage(messagesEntity);
170
166
  this.emailBodies = new Map();
171
167
  this.emailHistories = new Map();
172
168
  }
@@ -289,51 +285,51 @@ class MessageBuilder {
289
285
  return this.build().send();
290
286
  }
291
287
  }
292
- tslib_es6.__decorate([
293
- declarativeTypeValidator.validateTypes("string"),
294
- tslib_es6.__metadata("design:type", Function),
295
- tslib_es6.__metadata("design:paramtypes", [String]),
296
- tslib_es6.__metadata("design:returntype", MessageBuilder)
288
+ __decorate([
289
+ validateTypes("string"),
290
+ __metadata("design:type", Function),
291
+ __metadata("design:paramtypes", [String]),
292
+ __metadata("design:returntype", MessageBuilder)
297
293
  ], MessageBuilder.prototype, "setBody", null);
298
- tslib_es6.__decorate([
299
- declarativeTypeValidator.validateTypes("string"),
300
- tslib_es6.__metadata("design:type", Function),
301
- tslib_es6.__metadata("design:paramtypes", [String]),
302
- tslib_es6.__metadata("design:returntype", MessageBuilder)
294
+ __decorate([
295
+ validateTypes("string"),
296
+ __metadata("design:type", Function),
297
+ __metadata("design:paramtypes", [String]),
298
+ __metadata("design:returntype", MessageBuilder)
303
299
  ], MessageBuilder.prototype, "setSubject", null);
304
- tslib_es6.__decorate([
305
- declarativeTypeValidator.validateTypes(rules.json),
306
- tslib_es6.__metadata("design:type", Function),
307
- tslib_es6.__metadata("design:paramtypes", [Object]),
308
- tslib_es6.__metadata("design:returntype", MessageBuilder)
300
+ __decorate([
301
+ validateTypes(json),
302
+ __metadata("design:type", Function),
303
+ __metadata("design:paramtypes", [Object]),
304
+ __metadata("design:returntype", MessageBuilder)
309
305
  ], MessageBuilder.prototype, "setAttributes", null);
310
- tslib_es6.__decorate([
311
- declarativeTypeValidator.validateTypes("string", [FormData, rules.sendMediaOptions]),
312
- tslib_es6.__metadata("design:type", Function),
313
- tslib_es6.__metadata("design:paramtypes", [String, Object]),
314
- tslib_es6.__metadata("design:returntype", MessageBuilder)
306
+ __decorate([
307
+ validateTypes("string", [FormData, sendMediaOptions]),
308
+ __metadata("design:type", Function),
309
+ __metadata("design:paramtypes", [String, Object]),
310
+ __metadata("design:returntype", MessageBuilder)
315
311
  ], MessageBuilder.prototype, "setEmailBody", null);
316
- tslib_es6.__decorate([
317
- declarativeTypeValidator.validateTypes("string", [FormData, rules.sendMediaOptions]),
318
- tslib_es6.__metadata("design:type", Function),
319
- tslib_es6.__metadata("design:paramtypes", [String, Object]),
320
- tslib_es6.__metadata("design:returntype", MessageBuilder)
312
+ __decorate([
313
+ validateTypes("string", [FormData, sendMediaOptions]),
314
+ __metadata("design:type", Function),
315
+ __metadata("design:paramtypes", [String, Object]),
316
+ __metadata("design:returntype", MessageBuilder)
321
317
  ], MessageBuilder.prototype, "setEmailHistory", null);
322
- tslib_es6.__decorate([
323
- declarativeTypeValidator.validateTypes("string", [
324
- declarativeTypeValidator.array("content variables", contentTemplate.ContentTemplateVariable),
318
+ __decorate([
319
+ validateTypes("string", [
320
+ array("content variables", ContentTemplateVariable),
325
321
  "undefined",
326
322
  ]),
327
- tslib_es6.__metadata("design:type", Function),
328
- tslib_es6.__metadata("design:paramtypes", [String, Array]),
329
- tslib_es6.__metadata("design:returntype", MessageBuilder)
323
+ __metadata("design:type", Function),
324
+ __metadata("design:paramtypes", [String, Array]),
325
+ __metadata("design:returntype", MessageBuilder)
330
326
  ], MessageBuilder.prototype, "setContentTemplate", null);
331
- tslib_es6.__decorate([
332
- declarativeTypeValidator.validateTypes([FormData, rules.sendMediaOptions]),
333
- tslib_es6.__metadata("design:type", Function),
334
- tslib_es6.__metadata("design:paramtypes", [Object]),
335
- tslib_es6.__metadata("design:returntype", MessageBuilder)
327
+ __decorate([
328
+ validateTypes([FormData, sendMediaOptions]),
329
+ __metadata("design:type", Function),
330
+ __metadata("design:paramtypes", [Object]),
331
+ __metadata("design:returntype", MessageBuilder)
336
332
  ], MessageBuilder.prototype, "addMedia", null);
337
333
 
338
- exports.MessageBuilder = MessageBuilder;
334
+ export { MessageBuilder };
339
335
  //# sourceMappingURL=message-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-builder.js","sources":["../src/message-builder.ts"],"sourcesContent":["import { CancellablePromise } from \"@twilio/mcs-client\";\nimport { ConversationLimits } from \"./interfaces/conversation-limits\";\nimport { SendMediaOptions } from \"./conversation\";\nimport { UnsentMessage } from \"./unsent-message\";\nimport { JSONValue } from \"./types\";\nimport { Messages } from \"./data/messages\";\nimport { ContentTemplateVariable } from \"./content-template\";\nimport { array, validateTypes } from \"@twilio/declarative-type-validator\";\nimport { json, sendMediaOptions } from \"./interfaces/rules\";\n\n/**\n * Message builder. Allows the message to be built and sent via method chaining.\n *\n * Example:\n *\n * ```ts\n * await testConversation.prepareMessage()\n * .setBody('Hello!')\n * .setAttributes({foo: 'bar'})\n * .addMedia(media1)\n * .addMedia(media2)\n * .build()\n * .send();\n * ```\n */\nclass MessageBuilder {\n private readonly message: UnsentMessage;\n private emailBodies: Map<string, FormData | SendMediaOptions>;\n private emailHistories: Map<string, FormData | SendMediaOptions>;\n\n /**\n * @internal\n */\n constructor(\n private readonly limits: ConversationLimits,\n messagesEntity: Messages\n ) {\n this.message = new UnsentMessage(messagesEntity);\n this.emailBodies = new Map<string, FormData | SendMediaOptions>();\n this.emailHistories = new Map<string, FormData | SendMediaOptions>();\n }\n\n /**\n * Sets the message body.\n * @param text Contents of the body.\n */\n @validateTypes(\"string\")\n setBody(text: string): MessageBuilder {\n this.message.text = text;\n return this;\n }\n\n /**\n * Sets the message subject.\n * @param subject Contents of the subject.\n */\n @validateTypes(\"string\")\n setSubject(subject: string): MessageBuilder {\n this.message.emailOptions.subject = subject;\n return this;\n }\n\n /**\n * Sets the message attributes.\n * @param attributes Message attributes.\n */\n @validateTypes(json)\n setAttributes(attributes: JSONValue): MessageBuilder {\n this.message.attributes = attributes;\n return this;\n }\n\n /**\n * Set the email body with a given content type.\n * @param contentType Format of the body to set (text/plain or text/html).\n * @param body Body payload in the selected format.\n */\n @validateTypes(\"string\", [FormData, sendMediaOptions])\n setEmailBody(\n contentType: string,\n body: FormData | SendMediaOptions\n ): MessageBuilder {\n this.emailBodies.set(contentType, body);\n return this;\n }\n\n /**\n * Set the email history with a given content type.\n * @param contentType Format of the history to set (text/plain or text/html).\n * @param history History payload in the selected format.\n */\n @validateTypes(\"string\", [FormData, sendMediaOptions])\n setEmailHistory(\n contentType: string,\n history: FormData | SendMediaOptions\n ): MessageBuilder {\n this.emailHistories.set(contentType, history);\n return this;\n }\n\n /**\n * Adds {@link ContentTemplate} SID for the message alongside optional\n * variables. When no variables provided, the default values will be used.\n *\n * Adding the content SID converts the message to a rich message. In this\n * case, other fields are ignored and the message is sent using the content\n * from the the {@link ContentTemplate}.\n *\n * Use {@link Client.getContentTemplates} to request all available\n * {@link ContentTemplate}s.\n *\n * @param contentSid SID of the {@link ContentTemplate}\n * @param variables Custom variables to resolve the template.\n */\n @validateTypes(\"string\", [\n array(\"content variables\", ContentTemplateVariable),\n \"undefined\",\n ])\n setContentTemplate(\n contentSid: string,\n contentVariables: ContentTemplateVariable[] = []\n ): MessageBuilder {\n this.message.contentSid = contentSid;\n this.message.contentVariables = contentVariables;\n return this;\n }\n\n /**\n * Adds media to the message.\n * @param payload Media to add.\n */\n @validateTypes([FormData, sendMediaOptions])\n addMedia(payload: FormData | SendMediaOptions): MessageBuilder {\n if (typeof FormData === \"undefined\" && payload instanceof FormData) {\n throw new Error(\"Could not add FormData content whilst not in a browser\");\n }\n if (!(payload instanceof FormData)) {\n const mediaOptions = payload as SendMediaOptions;\n if (!mediaOptions.contentType || !mediaOptions.media) {\n throw new Error(\n \"Media content in SendMediaOptions must contain non-empty contentType and media\"\n );\n }\n }\n this.message.mediaContent.push([\"media\", payload]);\n return this;\n }\n\n /**\n * Builds the message, making it ready to be sent.\n */\n build(): UnsentMessage {\n this.emailBodies.forEach((_, key) => {\n if (!this.limits.emailBodiesAllowedContentTypes.includes(key)) {\n throw new Error(`Unsupported email body content type ${key}`);\n }\n });\n this.emailHistories.forEach((_, key) => {\n if (!this.limits.emailHistoriesAllowedContentTypes.includes(key)) {\n throw new Error(`Unsupported email history content type ${key}`);\n }\n });\n if (\n this.emailBodies.size > this.limits.emailBodiesAllowedContentTypes.length\n ) {\n throw new Error(\n `Too many email bodies attached to the message (${this.emailBodies.size} > ${this.limits.emailBodiesAllowedContentTypes.length})`\n );\n }\n if (\n this.emailHistories.size >\n this.limits.emailHistoriesAllowedContentTypes.length\n ) {\n throw new Error(\n `Too many email histories attached to the message (${this.emailHistories.size} > ${this.limits.emailHistoriesAllowedContentTypes.length})`\n );\n }\n\n if (\n this.message.mediaContent.length > this.limits.mediaAttachmentsCountLimit\n ) {\n throw new Error(\n `Too many media attachments in the message (${this.message.mediaContent.length} > ${this.limits.mediaAttachmentsCountLimit})`\n );\n }\n\n // @todo we don't know the sizes of the attachments in FormData\n // @todo insertion below makes build() method non-repeatable - probably move to UnsentMessage.send() or even sendV2()?\n\n this.emailBodies.forEach((body) => {\n this.message.mediaContent.push([\"body\", body]);\n });\n\n this.emailHistories.forEach((history) => {\n this.message.mediaContent.push([\"history\", history]);\n });\n\n return this.message;\n }\n\n /**\n * Prepares a message and sends it to the conversation.\n */\n buildAndSend(): CancellablePromise<number | null> {\n return this.build().send();\n }\n}\n\nexport { MessageBuilder };\n"],"names":["UnsentMessage","__decorate","validateTypes","json","sendMediaOptions","array","ContentTemplateVariable"],"mappings":"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"}
1
+ {"version":3,"file":"message-builder.js","sources":["../src/message-builder.ts"],"sourcesContent":["import { CancellablePromise } from \"@twilio/mcs-client\";\nimport { ConversationLimits } from \"./interfaces/conversation-limits\";\nimport { SendMediaOptions } from \"./conversation\";\nimport { UnsentMessage } from \"./unsent-message\";\nimport { JSONValue } from \"./types\";\nimport { Messages } from \"./data/messages\";\nimport { ContentTemplateVariable } from \"./content-template\";\nimport { array, validateTypes } from \"@twilio/declarative-type-validator\";\nimport { json, sendMediaOptions } from \"./interfaces/rules\";\n\n/**\n * Message builder. Allows the message to be built and sent via method chaining.\n *\n * Example:\n *\n * ```ts\n * await testConversation.prepareMessage()\n * .setBody('Hello!')\n * .setAttributes({foo: 'bar'})\n * .addMedia(media1)\n * .addMedia(media2)\n * .build()\n * .send();\n * ```\n */\nclass MessageBuilder {\n private readonly message: UnsentMessage;\n private emailBodies: Map<string, FormData | SendMediaOptions>;\n private emailHistories: Map<string, FormData | SendMediaOptions>;\n\n /**\n * @internal\n */\n constructor(\n private readonly limits: ConversationLimits,\n messagesEntity: Messages\n ) {\n this.message = new UnsentMessage(messagesEntity);\n this.emailBodies = new Map<string, FormData | SendMediaOptions>();\n this.emailHistories = new Map<string, FormData | SendMediaOptions>();\n }\n\n /**\n * Sets the message body.\n * @param text Contents of the body.\n */\n @validateTypes(\"string\")\n setBody(text: string): MessageBuilder {\n this.message.text = text;\n return this;\n }\n\n /**\n * Sets the message subject.\n * @param subject Contents of the subject.\n */\n @validateTypes(\"string\")\n setSubject(subject: string): MessageBuilder {\n this.message.emailOptions.subject = subject;\n return this;\n }\n\n /**\n * Sets the message attributes.\n * @param attributes Message attributes.\n */\n @validateTypes(json)\n setAttributes(attributes: JSONValue): MessageBuilder {\n this.message.attributes = attributes;\n return this;\n }\n\n /**\n * Set the email body with a given content type.\n * @param contentType Format of the body to set (text/plain or text/html).\n * @param body Body payload in the selected format.\n */\n @validateTypes(\"string\", [FormData, sendMediaOptions])\n setEmailBody(\n contentType: string,\n body: FormData | SendMediaOptions\n ): MessageBuilder {\n this.emailBodies.set(contentType, body);\n return this;\n }\n\n /**\n * Set the email history with a given content type.\n * @param contentType Format of the history to set (text/plain or text/html).\n * @param history History payload in the selected format.\n */\n @validateTypes(\"string\", [FormData, sendMediaOptions])\n setEmailHistory(\n contentType: string,\n history: FormData | SendMediaOptions\n ): MessageBuilder {\n this.emailHistories.set(contentType, history);\n return this;\n }\n\n /**\n * Adds {@link ContentTemplate} SID for the message alongside optional\n * variables. When no variables provided, the default values will be used.\n *\n * Adding the content SID converts the message to a rich message. In this\n * case, other fields are ignored and the message is sent using the content\n * from the the {@link ContentTemplate}.\n *\n * Use {@link Client.getContentTemplates} to request all available\n * {@link ContentTemplate}s.\n *\n * @param contentSid SID of the {@link ContentTemplate}\n * @param variables Custom variables to resolve the template.\n */\n @validateTypes(\"string\", [\n array(\"content variables\", ContentTemplateVariable),\n \"undefined\",\n ])\n setContentTemplate(\n contentSid: string,\n contentVariables: ContentTemplateVariable[] = []\n ): MessageBuilder {\n this.message.contentSid = contentSid;\n this.message.contentVariables = contentVariables;\n return this;\n }\n\n /**\n * Adds media to the message.\n * @param payload Media to add.\n */\n @validateTypes([FormData, sendMediaOptions])\n addMedia(payload: FormData | SendMediaOptions): MessageBuilder {\n if (typeof FormData === \"undefined\" && payload instanceof FormData) {\n throw new Error(\"Could not add FormData content whilst not in a browser\");\n }\n if (!(payload instanceof FormData)) {\n const mediaOptions = payload as SendMediaOptions;\n if (!mediaOptions.contentType || !mediaOptions.media) {\n throw new Error(\n \"Media content in SendMediaOptions must contain non-empty contentType and media\"\n );\n }\n }\n this.message.mediaContent.push([\"media\", payload]);\n return this;\n }\n\n /**\n * Builds the message, making it ready to be sent.\n */\n build(): UnsentMessage {\n this.emailBodies.forEach((_, key) => {\n if (!this.limits.emailBodiesAllowedContentTypes.includes(key)) {\n throw new Error(`Unsupported email body content type ${key}`);\n }\n });\n this.emailHistories.forEach((_, key) => {\n if (!this.limits.emailHistoriesAllowedContentTypes.includes(key)) {\n throw new Error(`Unsupported email history content type ${key}`);\n }\n });\n if (\n this.emailBodies.size > this.limits.emailBodiesAllowedContentTypes.length\n ) {\n throw new Error(\n `Too many email bodies attached to the message (${this.emailBodies.size} > ${this.limits.emailBodiesAllowedContentTypes.length})`\n );\n }\n if (\n this.emailHistories.size >\n this.limits.emailHistoriesAllowedContentTypes.length\n ) {\n throw new Error(\n `Too many email histories attached to the message (${this.emailHistories.size} > ${this.limits.emailHistoriesAllowedContentTypes.length})`\n );\n }\n\n if (\n this.message.mediaContent.length > this.limits.mediaAttachmentsCountLimit\n ) {\n throw new Error(\n `Too many media attachments in the message (${this.message.mediaContent.length} > ${this.limits.mediaAttachmentsCountLimit})`\n );\n }\n\n // @todo we don't know the sizes of the attachments in FormData\n // @todo insertion below makes build() method non-repeatable - probably move to UnsentMessage.send() or even sendV2()?\n\n this.emailBodies.forEach((body) => {\n this.message.mediaContent.push([\"body\", body]);\n });\n\n this.emailHistories.forEach((history) => {\n this.message.mediaContent.push([\"history\", history]);\n });\n\n return this.message;\n }\n\n /**\n * Prepares a message and sends it to the conversation.\n */\n buildAndSend(): CancellablePromise<number | null> {\n return this.build().send();\n }\n}\n\nexport { MessageBuilder };\n"],"names":[],"mappings":"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"}
@@ -126,8 +126,6 @@ This software includes platform.js under the following license.
126
126
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
127
127
 
128
128
  */
129
- 'use strict';
130
-
131
129
  var global =
132
130
  typeof global !== "undefined"
133
131
  ? global
@@ -137,11 +135,9 @@ var global =
137
135
  ? window
138
136
  : {};
139
137
 
140
- Object.defineProperty(exports, '__esModule', { value: true });
141
-
142
- var index = require('./node_modules/quick-lru/index.js');
143
- var index$1 = require('./util/index.js');
144
- var restPaginator = require('./rest-paginator.js');
138
+ import quickLru from './node_modules/quick-lru/index.js';
139
+ import { UriBuilder } from './util/index.js';
140
+ import { RestPaginator } from './rest-paginator.js';
145
141
 
146
142
  /**
147
143
  * Email recipient descriptor.
@@ -179,7 +175,7 @@ class MessageRecipientsClient {
179
175
  constructor(services, configuration) {
180
176
  this._services = services;
181
177
  this._configuration = configuration;
182
- this._cache = new index["default"]({
178
+ this._cache = new quickLru({
183
179
  maxSize: configuration.messageRecipientsCacheCapacity,
184
180
  });
185
181
  }
@@ -189,7 +185,7 @@ class MessageRecipientsClient {
189
185
  if (cachedItem) {
190
186
  return cachedItem.item;
191
187
  }
192
- const url = new index$1.UriBuilder(this._configuration.links.conversations)
188
+ const url = new UriBuilder(this._configuration.links.conversations)
193
189
  .path(conversationSid)
194
190
  .path("MessageRecipients")
195
191
  .arg("MessageSid", messageSid)
@@ -203,11 +199,11 @@ class MessageRecipientsClient {
203
199
  }
204
200
  async getRecipientsFromConversation(conversationSid, paginatorOptions) {
205
201
  var _a, _b, _c, _d;
206
- const url = new index$1.UriBuilder(this._configuration.links.conversations)
202
+ const url = new UriBuilder(this._configuration.links.conversations)
207
203
  .path(conversationSid)
208
204
  .path("MessageRecipients")
209
- .arg("PageToken", (_a = paginatorOptions === null || paginatorOptions === void 0 ? void 0 : paginatorOptions.pageToken) !== null && _a !== void 0 ? _a : "")
210
- .arg("PageSize", (_b = paginatorOptions === null || paginatorOptions === void 0 ? void 0 : paginatorOptions.pageSize) !== null && _b !== void 0 ? _b : "")
205
+ .arg("PageToken", (_a = paginatorOptions === null || paginatorOptions === void 0 ? void 0 : paginatorOptions.pageToken) !== null && _a !== void 0 ? _a : undefined)
206
+ .arg("PageSize", (_b = paginatorOptions === null || paginatorOptions === void 0 ? void 0 : paginatorOptions.pageSize) !== null && _b !== void 0 ? _b : undefined)
211
207
  .build();
212
208
  const recipientsResponse = await this._services.commandExecutor.fetchResource(url);
213
209
  const allRecipients = recipientsResponse.message_recipients.map((recipient) => this._wrapResponse(recipient));
@@ -216,7 +212,7 @@ class MessageRecipientsClient {
216
212
  const existingMessageRecipients = (_d = (_c = this._cache.get(key)) === null || _c === void 0 ? void 0 : _c.item) !== null && _d !== void 0 ? _d : [];
217
213
  this._cache.set(key, { item: [...existingMessageRecipients, recipient] });
218
214
  }
219
- return new restPaginator.RestPaginator(allRecipients, (pageToken, pageSize) => this.getRecipientsFromConversation(conversationSid, {
215
+ return new RestPaginator(allRecipients, (pageToken, pageSize) => this.getRecipientsFromConversation(conversationSid, {
220
216
  pageToken,
221
217
  pageSize,
222
218
  }), recipientsResponse.meta.previous_token, recipientsResponse.meta.next_token);
@@ -231,7 +227,5 @@ class MessageRecipientsClient {
231
227
  }
232
228
  }
233
229
 
234
- exports.EmailRecipientDescriptor = EmailRecipientDescriptor;
235
- exports.MessageRecipientsClient = MessageRecipientsClient;
236
- exports.UnknownRecipientDescriptor = UnknownRecipientDescriptor;
230
+ export { EmailRecipientDescriptor, MessageRecipientsClient, UnknownRecipientDescriptor };
237
231
  //# sourceMappingURL=message-recipients-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-recipients-client.js","sources":["../src/message-recipients-client.ts"],"sourcesContent":["import { CommandExecutor } from \"./command-executor\";\nimport { Configuration } from \"./configuration\";\nimport QuickLRU from \"quick-lru\";\nimport {\n MessageRecipient,\n MessageRecipientsResponse,\n} from \"./interfaces/commands/message-recipients-response\";\nimport { Paginator } from \"./interfaces/paginator\";\nimport { UriBuilder } from \"./util\";\nimport { ResponseMeta } from \"./interfaces/commands/response-meta\";\nimport { RestPaginator } from \"./rest-paginator\";\n\ntype MessageRecipientsClientServices = {\n commandExecutor: CommandExecutor;\n};\n\ntype MessageRecipientsCacheEntry = {\n item: RecipientDescriptor[];\n};\n\n/**\n * Message recipient descriptor.\n */\ntype RecipientDescriptor =\n | EmailRecipientDescriptor\n | UnknownRecipientDescriptor;\n\n/**\n * Email recipient level.\n */\ntype EmailRecipientLevel = \"to\" | \"from\" | \"cc\";\n\n/**\n * Email recipient descriptor.\n */\nclass EmailRecipientDescriptor {\n /**\n * Type of recipient.\n */\n public readonly type = \"email\";\n\n /**\n * Sid of the message that this recipient belongs to.\n */\n public readonly messageSid: string;\n\n /**\n * Email recipient level.\n */\n public readonly level: EmailRecipientLevel;\n\n /**\n * Name of the recipient.\n */\n public readonly name: string;\n\n /**\n * Address of the recipient.\n */\n public readonly address: string;\n\n /**\n * @internal\n */\n public constructor(recipient: MessageRecipient) {\n this.messageSid = recipient.message_sid;\n this.level = recipient.level;\n this.name = recipient.name;\n this.address = recipient.address;\n }\n}\n\n/**\n * Unknown recipient descriptor. Used to be able to handle recipient types that\n * are not supported by the current version of the SDK.\n */\nclass UnknownRecipientDescriptor {\n /**\n * Type of recipient.\n */\n public readonly type: string;\n\n /**\n * Sid of the message that this recipient belongs to.\n */\n public readonly messageSid: string;\n\n /**\n * Recipient data as a JSON string.\n */\n public readonly rawData: string;\n\n /**\n * @internal\n */\n public constructor(recipient: MessageRecipient) {\n this.type = recipient.type;\n this.messageSid = recipient.message_sid;\n this.rawData = JSON.stringify(recipient);\n }\n}\n\nclass MessageRecipientsClient {\n private readonly _services: MessageRecipientsClientServices;\n private readonly _configuration: Configuration;\n private readonly _cache: QuickLRU<string, MessageRecipientsCacheEntry>;\n\n public constructor(\n services: MessageRecipientsClientServices,\n configuration: Configuration\n ) {\n this._services = services;\n this._configuration = configuration;\n this._cache = new QuickLRU({\n maxSize: configuration.messageRecipientsCacheCapacity,\n });\n }\n\n public async getRecipientsFromMessage(\n conversationSid: string,\n messageSid: string\n ): Promise<RecipientDescriptor[]> {\n const key = `${conversationSid},${messageSid}`;\n const cachedItem = this._cache.get(key);\n\n if (cachedItem) {\n return cachedItem.item;\n }\n\n const url = new UriBuilder(this._configuration.links.conversations)\n .path(conversationSid)\n .path(\"MessageRecipients\")\n .arg(\"MessageSid\", messageSid)\n .build();\n const recipientsResponse =\n await this._services.commandExecutor.fetchResource<\n void,\n MessageRecipientsResponse\n >(url);\n const recipients: RecipientDescriptor[] =\n recipientsResponse.message_recipients.map((recipient) =>\n this._wrapResponse(recipient)\n );\n\n if (recipients.length > 0) {\n this._cache.set(key, { item: recipients });\n }\n\n return recipients;\n }\n\n public async getRecipientsFromConversation(\n conversationSid: string,\n paginatorOptions?: {\n pageToken?: string;\n pageSize?: string;\n }\n ): Promise<Paginator<RecipientDescriptor>> {\n const url = new UriBuilder(this._configuration.links.conversations)\n .path(conversationSid)\n .path(\"MessageRecipients\")\n .arg(\"PageToken\", paginatorOptions?.pageToken ?? \"\")\n .arg(\"PageSize\", paginatorOptions?.pageSize ?? \"\")\n .build();\n const recipientsResponse =\n await this._services.commandExecutor.fetchResource<\n void,\n { message_recipients: MessageRecipient[] } & ResponseMeta\n >(url);\n const allRecipients = recipientsResponse.message_recipients.map(\n (recipient) => this._wrapResponse(recipient)\n );\n\n for (const recipient of allRecipients) {\n const key = `${conversationSid},${recipient.messageSid}`;\n const existingMessageRecipients = this._cache.get(key)?.item ?? [];\n this._cache.set(key, { item: [...existingMessageRecipients, recipient] });\n }\n\n return new RestPaginator<RecipientDescriptor>(\n allRecipients,\n (pageToken, pageSize) =>\n this.getRecipientsFromConversation(conversationSid, {\n pageToken,\n pageSize,\n }),\n recipientsResponse.meta.previous_token,\n recipientsResponse.meta.next_token\n );\n }\n\n private _wrapResponse(recipient: MessageRecipient): RecipientDescriptor {\n switch (recipient.type) {\n case \"email\":\n return new EmailRecipientDescriptor(recipient);\n default:\n return new UnknownRecipientDescriptor(recipient);\n }\n }\n}\n\nexport {\n MessageRecipientsClient,\n EmailRecipientDescriptor,\n UnknownRecipientDescriptor,\n RecipientDescriptor,\n EmailRecipientLevel,\n};\n"],"names":["QuickLRU","UriBuilder","RestPaginator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA;;AAEG;AACH,MAAM,wBAAwB,CAAA;AA0B5B;;AAEG;AACH,IAAA,WAAA,CAAmB,SAA2B,EAAA;AA5B9C;;AAEG;QACa,IAAI,CAAA,IAAA,GAAG,OAAO,CAAC;AA0B7B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;KAClC;AACF,CAAA;AAED;;;AAGG;AACH,MAAM,0BAA0B,CAAA;AAgB9B;;AAEG;AACH,IAAA,WAAA,CAAmB,SAA2B,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAC1C;AACF,CAAA;AAED,MAAM,uBAAuB,CAAA;IAK3B,WACE,CAAA,QAAyC,EACzC,aAA4B,EAAA;AAE5B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAIA,gBAAQ,CAAC;YACzB,OAAO,EAAE,aAAa,CAAC,8BAA8B;AACtD,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,MAAM,wBAAwB,CACnC,eAAuB,EACvB,UAAkB,EAAA;AAElB,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,eAAe,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAExC,QAAA,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC,IAAI,CAAC;AACxB,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAIC,kBAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC;aAChE,IAAI,CAAC,eAAe,CAAC;aACrB,IAAI,CAAC,mBAAmB,CAAC;AACzB,aAAA,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;AAC7B,aAAA,KAAK,EAAE,CAAC;AACX,QAAA,MAAM,kBAAkB,GACtB,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,CAGhD,GAAG,CAAC,CAAC;QACT,MAAM,UAAU,GACd,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,KAClD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAC9B,CAAC;AAEJ,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AAEM,IAAA,MAAM,6BAA6B,CACxC,eAAuB,EACvB,gBAGC,EAAA;;AAED,QAAA,MAAM,GAAG,GAAG,IAAIA,kBAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC;aAChE,IAAI,CAAC,eAAe,CAAC;aACrB,IAAI,CAAC,mBAAmB,CAAC;AACzB,aAAA,GAAG,CAAC,WAAW,EAAE,CAAA,EAAA,GAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AACnD,aAAA,GAAG,CAAC,UAAU,EAAE,CAAA,EAAA,GAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AACjD,aAAA,KAAK,EAAE,CAAC;AACX,QAAA,MAAM,kBAAkB,GACtB,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,CAGhD,GAAG,CAAC,CAAC;QACT,MAAM,aAAa,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAC7D,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAC7C,CAAC;AAEF,QAAA,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;YACrC,MAAM,GAAG,GAAG,CAAG,EAAA,eAAe,IAAI,SAAS,CAAC,UAAU,CAAA,CAAE,CAAC;AACzD,YAAA,MAAM,yBAAyB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AACnE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,yBAAyB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3E,SAAA;AAED,QAAA,OAAO,IAAIC,2BAAa,CACtB,aAAa,EACb,CAAC,SAAS,EAAE,QAAQ,KAClB,IAAI,CAAC,6BAA6B,CAAC,eAAe,EAAE;YAClD,SAAS;YACT,QAAQ;AACT,SAAA,CAAC,EACJ,kBAAkB,CAAC,IAAI,CAAC,cAAc,EACtC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CACnC,CAAC;KACH;AAEO,IAAA,aAAa,CAAC,SAA2B,EAAA;QAC/C,QAAQ,SAAS,CAAC,IAAI;AACpB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACjD,YAAA;AACE,gBAAA,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC;AACpD,SAAA;KACF;AACF;;;;;;"}
1
+ {"version":3,"file":"message-recipients-client.js","sources":["../src/message-recipients-client.ts"],"sourcesContent":["import { CommandExecutor } from \"./command-executor\";\nimport { Configuration } from \"./configuration\";\nimport QuickLRU from \"quick-lru\";\nimport {\n MessageRecipient,\n MessageRecipientsResponse,\n} from \"./interfaces/commands/message-recipients-response\";\nimport { Paginator } from \"./interfaces/paginator\";\nimport { UriBuilder } from \"./util\";\nimport { ResponseMeta } from \"./interfaces/commands/response-meta\";\nimport { RestPaginator } from \"./rest-paginator\";\n\ntype MessageRecipientsClientServices = {\n commandExecutor: CommandExecutor;\n};\n\ntype MessageRecipientsCacheEntry = {\n item: RecipientDescriptor[];\n};\n\n/**\n * Message recipient descriptor.\n */\ntype RecipientDescriptor =\n | EmailRecipientDescriptor\n | UnknownRecipientDescriptor;\n\n/**\n * Email recipient level.\n */\ntype EmailRecipientLevel = \"to\" | \"from\" | \"cc\";\n\n/**\n * Email recipient descriptor.\n */\nclass EmailRecipientDescriptor {\n /**\n * Type of recipient.\n */\n public readonly type = \"email\";\n\n /**\n * Sid of the message that this recipient belongs to.\n */\n public readonly messageSid: string;\n\n /**\n * Email recipient level.\n */\n public readonly level: EmailRecipientLevel;\n\n /**\n * Name of the recipient.\n */\n public readonly name: string;\n\n /**\n * Address of the recipient.\n */\n public readonly address: string;\n\n /**\n * @internal\n */\n public constructor(recipient: MessageRecipient) {\n this.messageSid = recipient.message_sid;\n this.level = recipient.level;\n this.name = recipient.name;\n this.address = recipient.address;\n }\n}\n\n/**\n * Unknown recipient descriptor. Used to be able to handle recipient types that\n * are not supported by the current version of the SDK.\n */\nclass UnknownRecipientDescriptor {\n /**\n * Type of recipient.\n */\n public readonly type: string;\n\n /**\n * Sid of the message that this recipient belongs to.\n */\n public readonly messageSid: string;\n\n /**\n * Recipient data as a JSON string.\n */\n public readonly rawData: string;\n\n /**\n * @internal\n */\n public constructor(recipient: MessageRecipient) {\n this.type = recipient.type;\n this.messageSid = recipient.message_sid;\n this.rawData = JSON.stringify(recipient);\n }\n}\n\nclass MessageRecipientsClient {\n private readonly _services: MessageRecipientsClientServices;\n private readonly _configuration: Configuration;\n private readonly _cache: QuickLRU<string, MessageRecipientsCacheEntry>;\n\n public constructor(\n services: MessageRecipientsClientServices,\n configuration: Configuration\n ) {\n this._services = services;\n this._configuration = configuration;\n this._cache = new QuickLRU({\n maxSize: configuration.messageRecipientsCacheCapacity,\n });\n }\n\n public async getRecipientsFromMessage(\n conversationSid: string,\n messageSid: string\n ): Promise<RecipientDescriptor[]> {\n const key = `${conversationSid},${messageSid}`;\n const cachedItem = this._cache.get(key);\n\n if (cachedItem) {\n return cachedItem.item;\n }\n\n const url = new UriBuilder(this._configuration.links.conversations)\n .path(conversationSid)\n .path(\"MessageRecipients\")\n .arg(\"MessageSid\", messageSid)\n .build();\n const recipientsResponse =\n await this._services.commandExecutor.fetchResource<\n void,\n MessageRecipientsResponse\n >(url);\n const recipients: RecipientDescriptor[] =\n recipientsResponse.message_recipients.map((recipient) =>\n this._wrapResponse(recipient)\n );\n\n if (recipients.length > 0) {\n this._cache.set(key, { item: recipients });\n }\n\n return recipients;\n }\n\n public async getRecipientsFromConversation(\n conversationSid: string,\n paginatorOptions?: {\n pageToken?: string;\n pageSize?: number;\n }\n ): Promise<Paginator<RecipientDescriptor>> {\n const url = new UriBuilder(this._configuration.links.conversations)\n .path(conversationSid)\n .path(\"MessageRecipients\")\n .arg(\"PageToken\", paginatorOptions?.pageToken ?? undefined)\n .arg(\"PageSize\", paginatorOptions?.pageSize ?? undefined)\n .build();\n const recipientsResponse =\n await this._services.commandExecutor.fetchResource<\n void,\n { message_recipients: MessageRecipient[] } & ResponseMeta\n >(url);\n const allRecipients = recipientsResponse.message_recipients.map(\n (recipient) => this._wrapResponse(recipient)\n );\n\n for (const recipient of allRecipients) {\n const key = `${conversationSid},${recipient.messageSid}`;\n const existingMessageRecipients = this._cache.get(key)?.item ?? [];\n this._cache.set(key, { item: [...existingMessageRecipients, recipient] });\n }\n\n return new RestPaginator<RecipientDescriptor>(\n allRecipients,\n (pageToken, pageSize) =>\n this.getRecipientsFromConversation(conversationSid, {\n pageToken,\n pageSize,\n }),\n recipientsResponse.meta.previous_token,\n recipientsResponse.meta.next_token\n );\n }\n\n private _wrapResponse(recipient: MessageRecipient): RecipientDescriptor {\n switch (recipient.type) {\n case \"email\":\n return new EmailRecipientDescriptor(recipient);\n default:\n return new UnknownRecipientDescriptor(recipient);\n }\n }\n}\n\nexport {\n MessageRecipientsClient,\n EmailRecipientDescriptor,\n UnknownRecipientDescriptor,\n RecipientDescriptor,\n EmailRecipientLevel,\n};\n"],"names":["QuickLRU"],"mappings":"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"}