@twilio/conversations 2.4.0 → 2.4.1-rc.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.
package/README.md CHANGED
@@ -77,7 +77,7 @@ To consume securely use the following script snippet format:
77
77
 
78
78
  ```html
79
79
  <script
80
- src="https://media.twiliocdn.com/sdk/js/conversations/releases/2.4.0/twilio-conversations.min.js"
80
+ src="https://media.twiliocdn.com/sdk/js/conversations/releases/2.4.1/twilio-conversations.min.js"
81
81
  integrity="sha256-<HASH FROM THE CHANGELOGS PAGE>"
82
82
  crossorigin="anonymous"
83
83
  ></script>
package/builds/browser.js CHANGED
@@ -221,6 +221,7 @@ require('isomorphic-form-data');
221
221
  require('core-js/modules/es.array.sort.js');
222
222
  require('core-js/modules/es.string.includes.js');
223
223
  require('core-js/modules/es.string.starts-with.js');
224
+ require('core-js/modules/es.weak-set.js');
224
225
  var deprecationDecorator = require('@twilio/deprecation-decorator');
225
226
  require('core-js/modules/es.object.entries.js');
226
227
  require('core-js/modules/es.array.find.js');
@@ -2111,6 +2112,8 @@ var Media = /*#__PURE__*/function () {
2111
2112
  * @internal
2112
2113
  */
2113
2114
  function Media(data, services) {
2115
+ var _data$filename;
2116
+
2114
2117
  _classCallCheck__default["default"](this, Media);
2115
2118
 
2116
2119
  _defineProperty__default["default"](this, "mcsMedia", null);
@@ -2124,7 +2127,7 @@ var Media = /*#__PURE__*/function () {
2124
2127
  this.state = {
2125
2128
  sid: data.sid,
2126
2129
  category: data.category,
2127
- filename: data.filename,
2130
+ filename: (_data$filename = data.filename) !== null && _data$filename !== void 0 ? _data$filename : null,
2128
2131
  contentType: data.contentType,
2129
2132
  size: data.size
2130
2133
  };
@@ -2197,10 +2200,12 @@ var Media = /*#__PURE__*/function () {
2197
2200
  while (1) {
2198
2201
  switch (_context.prev = _context.next) {
2199
2202
  case 0:
2200
- fetchMediaRequest = _this._fetchMcsMedia();
2203
+ fetchMediaRequest = _this.mcsMedia ? undefined : _this._fetchMcsMedia();
2201
2204
  contentUrlRequest = (_this$mcsMedia = _this.mcsMedia) === null || _this$mcsMedia === void 0 ? void 0 : _this$mcsMedia.getContentUrl();
2202
2205
  onCancel(function () {
2203
- fetchMediaRequest.cancel();
2206
+ if (fetchMediaRequest) {
2207
+ fetchMediaRequest.cancel();
2208
+ }
2204
2209
 
2205
2210
  if (contentUrlRequest) {
2206
2211
  contentUrlRequest.cancel();
@@ -2208,7 +2213,7 @@ var Media = /*#__PURE__*/function () {
2208
2213
  });
2209
2214
  _context.prev = 3;
2210
2215
 
2211
- if (_this.mcsMedia) {
2216
+ if (contentUrlRequest) {
2212
2217
  _context.next = 9;
2213
2218
  break;
2214
2219
  }
@@ -2218,7 +2223,7 @@ var Media = /*#__PURE__*/function () {
2218
2223
 
2219
2224
  case 7:
2220
2225
  mcsMedia = _context.sent;
2221
- contentUrlRequest = mcsMedia.getContentUrl();
2226
+ contentUrlRequest = mcsMedia === null || mcsMedia === void 0 ? void 0 : mcsMedia.getContentUrl();
2222
2227
 
2223
2228
  case 9:
2224
2229
  _context.t0 = resolve;
@@ -2275,13 +2280,11 @@ var Media = /*#__PURE__*/function () {
2275
2280
  while (1) {
2276
2281
  switch (_context2.prev = _context2.next) {
2277
2282
  case 0:
2278
- request = _this2.services.mcsClient.get(_this2.state.sid);
2279
-
2280
- if (!_this2.services.mcsClient) {
2281
- _context2.next = 14;
2282
- break;
2283
+ if (_this2.services.mcsClient === null) {
2284
+ reject(new Error("Media Content Service is unavailable"));
2283
2285
  }
2284
2286
 
2287
+ request = _this2.services.mcsClient.get(_this2.state.sid);
2285
2288
  onCancel(function () {
2286
2289
  return request.cancel();
2287
2290
  });
@@ -2291,27 +2294,22 @@ var Media = /*#__PURE__*/function () {
2291
2294
 
2292
2295
  case 6:
2293
2296
  _this2.mcsMedia = _context2.sent;
2297
+ _this2.state = _this2.mcsMedia._state();
2294
2298
  resolve(_this2.mcsMedia);
2295
- _context2.next = 13;
2299
+ _context2.next = 14;
2296
2300
  break;
2297
2301
 
2298
- case 10:
2299
- _context2.prev = 10;
2302
+ case 11:
2303
+ _context2.prev = 11;
2300
2304
  _context2.t0 = _context2["catch"](3);
2301
2305
  reject(_context2.t0);
2302
2306
 
2303
- case 13:
2304
- return _context2.abrupt("return");
2305
-
2306
2307
  case 14:
2307
- reject(new Error("Media Content Service is unavailable"));
2308
-
2309
- case 15:
2310
2308
  case "end":
2311
2309
  return _context2.stop();
2312
2310
  }
2313
2311
  }
2314
- }, _callee2, null, [[3, 10]]);
2312
+ }, _callee2, null, [[3, 11]]);
2315
2313
  }));
2316
2314
 
2317
2315
  return function (_x4, _x5, _x6) {
@@ -2319,6 +2317,15 @@ var Media = /*#__PURE__*/function () {
2319
2317
  };
2320
2318
  }());
2321
2319
  }
2320
+ /**
2321
+ * @internal
2322
+ */
2323
+
2324
+ }, {
2325
+ key: "_state",
2326
+ value: function _state() {
2327
+ return this.state;
2328
+ }
2322
2329
  }]);
2323
2330
 
2324
2331
  return Media;
@@ -2816,6 +2823,12 @@ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) {
2816
2823
  function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
2817
2824
 
2818
2825
  function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2826
+
2827
+ function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
2828
+
2829
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
2830
+
2831
+ function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
2819
2832
  var log$3 = Logger.scope("Message");
2820
2833
 
2821
2834
  var XHR = // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -2825,6 +2838,10 @@ global["XMLHttpRequest"] || {};
2825
2838
  */
2826
2839
 
2827
2840
 
2841
+ var _wrapMedia = /*#__PURE__*/new WeakSet();
2842
+
2843
+ var _assignMedias = /*#__PURE__*/new WeakSet();
2844
+
2828
2845
  var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
2829
2846
  _inherits__default["default"](Message, _ReplayEventEmitter);
2830
2847
 
@@ -2838,13 +2855,18 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
2838
2855
  * @internal
2839
2856
  */
2840
2857
  function Message(index, data, conversation, links, configuration, services) {
2841
- var _data$text, _data$lastUpdatedBy, _data$type, _data$memberSid, _data$channelMetadata;
2858
+ var _data$text, _data$lastUpdatedBy, _data$type, _data$memberSid, _data$channelMetadata, _data$medias, _data$media;
2842
2859
 
2843
2860
  var _this;
2844
2861
 
2845
2862
  _classCallCheck__default["default"](this, Message);
2846
2863
 
2847
2864
  _this = _super.call(this);
2865
+
2866
+ _classPrivateMethodInitSpec(_assertThisInitialized__default["default"](_this), _assignMedias);
2867
+
2868
+ _classPrivateMethodInitSpec(_assertThisInitialized__default["default"](_this), _wrapMedia);
2869
+
2848
2870
  _this.conversation = conversation;
2849
2871
  _this.links = links;
2850
2872
  _this.configuration = configuration;
@@ -2861,27 +2883,17 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
2861
2883
  lastUpdatedBy: (_data$lastUpdatedBy = data.lastUpdatedBy) !== null && _data$lastUpdatedBy !== void 0 ? _data$lastUpdatedBy : null,
2862
2884
  attributes: parseAttributes(data.attributes, "Got malformed attributes for the message ".concat(data.sid), log$3),
2863
2885
  type: (_data$type = data.type) !== null && _data$type !== void 0 ? _data$type : "text",
2864
- media: data.type === "media" && data.media ? new Media(data.media, _this.services) : null,
2865
- medias: data.type === "media" && data.medias ? data.medias.map(function (m) {
2866
- return new Media(m, _this.services);
2867
- }) : data.type === "media" && data.media && !data.medias ? [new Media(_objectSpread$4(_objectSpread$4({}, data.media), {}, {
2868
- category: "media"
2869
- }), _this.services)] : null,
2886
+ media: null,
2887
+ medias: null,
2870
2888
  participantSid: (_data$memberSid = data.memberSid) !== null && _data$memberSid !== void 0 ? _data$memberSid : null,
2871
2889
  aggregatedDeliveryReceipt: data.delivery ? new AggregatedDeliveryReceipt(data.delivery) : null,
2872
2890
  hasChannelMetadata: (_data$channelMetadata = data.channelMetadata) !== null && _data$channelMetadata !== void 0 ? _data$channelMetadata : false
2873
2891
  };
2892
+
2893
+ _classPrivateMethodGet(_assertThisInitialized__default["default"](_this), _assignMedias, _assignMedias2).call(_assertThisInitialized__default["default"](_this), (_data$medias = data.medias) !== null && _data$medias !== void 0 ? _data$medias : null, (_data$media = data.media) !== null && _data$media !== void 0 ? _data$media : null);
2894
+
2874
2895
  return _this;
2875
2896
  }
2876
- /**
2877
- * Fired when the properties or the body of the message has been updated.
2878
- *
2879
- * Parameters:
2880
- * 1. object `data` - info object provided with the event. It has the following properties:
2881
- * * {@link Message} message - the message in question
2882
- * * {@link MessageUpdateReason}[] updateReasons - array of reasons for the update
2883
- */
2884
-
2885
2897
 
2886
2898
  _createClass__default["default"](Message, [{
2887
2899
  key: "sid",
@@ -3092,6 +3104,12 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3092
3104
  }, {
3093
3105
  key: "_update",
3094
3106
  value: function _update(data) {
3107
+ var _data$medias2,
3108
+ _this2 = this,
3109
+ _this$state$medias2,
3110
+ _classPrivateMethodGe2,
3111
+ _this$state$media;
3112
+
3095
3113
  var updateReasons = [];
3096
3114
 
3097
3115
  if ((data.text || typeof data.text === "string") && data.text !== this.state.body) {
@@ -3144,6 +3162,29 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3144
3162
 
3145
3163
  updateReasons.push("deliveryReceipt");
3146
3164
  }
3165
+ } // @fixme: This is a fairly heavy check.
3166
+ // Map data back and forth to perform a necessary field massage.
3167
+
3168
+
3169
+ var input = ((_data$medias2 = data.medias) !== null && _data$medias2 !== void 0 ? _data$medias2 : []).map(function (value) {
3170
+ var _classPrivateMethodGe;
3171
+
3172
+ return (_classPrivateMethodGe = _classPrivateMethodGet(_this2, _wrapMedia, _wrapMedia2).call(_this2, value)) === null || _classPrivateMethodGe === void 0 ? void 0 : _classPrivateMethodGe._state();
3173
+ }).filter(function (el) {
3174
+ return !(el === null);
3175
+ });
3176
+ var current = ((_this$state$medias2 = this.state.medias) !== null && _this$state$medias2 !== void 0 ? _this$state$medias2 : []).map(function (value) {
3177
+ return value._state();
3178
+ }).filter(function (el) {
3179
+ return !(el === null);
3180
+ });
3181
+
3182
+ if (!isEqual__default["default"](input, current) || !isEqual__default["default"]((_classPrivateMethodGe2 = _classPrivateMethodGet(this, _wrapMedia, _wrapMedia2).call(this, data.media)) === null || _classPrivateMethodGe2 === void 0 ? void 0 : _classPrivateMethodGe2._state(), (_this$state$media = this.state.media) === null || _this$state$media === void 0 ? void 0 : _this$state$media._state())) {
3183
+ var _data$medias3, _data$media2;
3184
+
3185
+ _classPrivateMethodGet(this, _assignMedias, _assignMedias2).call(this, (_data$medias3 = data.medias) !== null && _data$medias3 !== void 0 ? _data$medias3 : null, (_data$media2 = data.media) !== null && _data$media2 !== void 0 ? _data$media2 : null);
3186
+
3187
+ updateReasons.push("media");
3147
3188
  }
3148
3189
 
3149
3190
  if (updateReasons.length > 0) {
@@ -3161,7 +3202,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3161
3202
  key: "getParticipant",
3162
3203
  value: function () {
3163
3204
  var _getParticipant = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
3164
- var _this2 = this;
3205
+ var _this3 = this;
3165
3206
 
3166
3207
  var participant, errorMesage;
3167
3208
  return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
@@ -3177,7 +3218,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3177
3218
 
3178
3219
  _context.next = 4;
3179
3220
  return this.conversation.getParticipantBySid(this.state.participantSid).catch(function () {
3180
- log$3.debug("Participant with sid \"".concat(_this2.participantSid, "\" not found for message ").concat(_this2.sid));
3221
+ log$3.debug("Participant with sid \"".concat(_this3.participantSid, "\" not found for message ").concat(_this3.sid));
3181
3222
  return null;
3182
3223
  });
3183
3224
 
@@ -3192,7 +3233,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3192
3233
 
3193
3234
  _context.next = 8;
3194
3235
  return this.conversation.getParticipantByIdentity(this.state.author).catch(function () {
3195
- log$3.debug("Participant with identity \"".concat(_this2.author, "\" not found for message ").concat(_this2.sid));
3236
+ log$3.debug("Participant with identity \"".concat(_this3.author, "\" not found for message ").concat(_this3.sid));
3196
3237
  return null;
3197
3238
  });
3198
3239
 
@@ -3407,7 +3448,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3407
3448
  key: "attachTemporaryUrlsFor",
3408
3449
  value: function () {
3409
3450
  var _attachTemporaryUrlsFor = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee6(contentSet) {
3410
- var _this3 = this;
3451
+ var _this4 = this;
3411
3452
 
3412
3453
  var sids;
3413
3454
  return _regeneratorRuntime__default["default"].wrap(function _callee6$(_context6) {
@@ -3430,7 +3471,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3430
3471
 
3431
3472
  case 4:
3432
3473
  return _context6.abrupt("return", _context6.sent.map(function (item) {
3433
- return new Media(item, _this3.services);
3474
+ return new Media(item, _this4.services);
3434
3475
  }));
3435
3476
 
3436
3477
  case 7:
@@ -3473,7 +3514,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3473
3514
  }, {
3474
3515
  key: "getTemporaryContentUrlsForMediaSids",
3475
3516
  value: function getTemporaryContentUrlsForMediaSids(mediaSids) {
3476
- var _this4 = this;
3517
+ var _this5 = this;
3477
3518
 
3478
3519
  return new mcsClient.CancellablePromise( /*#__PURE__*/function () {
3479
3520
  var _ref = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee7(resolve, reject, onCancel) {
@@ -3482,9 +3523,9 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3482
3523
  while (1) {
3483
3524
  switch (_context7.prev = _context7.next) {
3484
3525
  case 0:
3485
- mediaGetRequest = _this4.services.mcsClient.mediaSetGetContentUrls(mediaSids !== null && mediaSids !== void 0 ? mediaSids : []);
3526
+ mediaGetRequest = _this5.services.mcsClient.mediaSetGetContentUrls(mediaSids !== null && mediaSids !== void 0 ? mediaSids : []);
3486
3527
 
3487
- if (!(!_this4.services.mcsClient || !mediaSids)) {
3528
+ if (!(!_this5.services.mcsClient || !mediaSids)) {
3488
3529
  _context7.next = 4;
3489
3530
  break;
3490
3531
  }
@@ -3543,7 +3584,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3543
3584
  key: "_getDetailedDeliveryReceiptsPaginator",
3544
3585
  value: function () {
3545
3586
  var _getDetailedDeliveryReceiptsPaginator2 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee8(options) {
3546
- var _this5 = this;
3587
+ var _this6 = this;
3547
3588
 
3548
3589
  var messagesReceiptsUrl, url, response;
3549
3590
  return _regeneratorRuntime__default["default"].wrap(function _callee8$(_context8) {
@@ -3560,7 +3601,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3560
3601
  return _context8.abrupt("return", new RestPaginator(response.body.delivery_receipts.map(function (x) {
3561
3602
  return new DetailedDeliveryReceipt(x);
3562
3603
  }), function (pageToken, pageSize) {
3563
- return _this5._getDetailedDeliveryReceiptsPaginator({
3604
+ return _this6._getDetailedDeliveryReceiptsPaginator({
3564
3605
  pageToken: pageToken,
3565
3606
  pageSize: pageSize
3566
3607
  });
@@ -3588,7 +3629,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3588
3629
  }, {
3589
3630
  key: "getContentData",
3590
3631
  value: function getContentData() {
3591
- var _this6 = this;
3632
+ var _this7 = this;
3592
3633
 
3593
3634
  return new mcsClient.CancellablePromise( /*#__PURE__*/function () {
3594
3635
  var _ref2 = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee9(resolve, reject, onCancel) {
@@ -3597,7 +3638,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3597
3638
  while (1) {
3598
3639
  switch (_context9.prev = _context9.next) {
3599
3640
  case 0:
3600
- if (!(_this6.state.contentSid === null)) {
3641
+ if (!(_this7.state.contentSid === null)) {
3601
3642
  _context9.next = 3;
3602
3643
  break;
3603
3644
  }
@@ -3606,7 +3647,7 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3606
3647
  return _context9.abrupt("return");
3607
3648
 
3608
3649
  case 3:
3609
- bodies = _this6.getMediaByCategories(["body"]);
3650
+ bodies = _this7.getMediaByCategories(["body"]);
3610
3651
 
3611
3652
  if (!(bodies === null)) {
3612
3653
  _context9.next = 7;
@@ -3767,6 +3808,28 @@ var Message = /*#__PURE__*/function (_ReplayEventEmitter) {
3767
3808
  return Message;
3768
3809
  }(replayEventEmitter.ReplayEventEmitter);
3769
3810
 
3811
+ function _wrapMedia2(media) {
3812
+ var category = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3813
+ return media ? category ? new Media(_objectSpread$4(_objectSpread$4({}, media), {}, {
3814
+ category: category
3815
+ }), this.services) : new Media(media, this.services) : null;
3816
+ }
3817
+
3818
+ function _assignMedias2(medias, media) {
3819
+ var _this8 = this;
3820
+
3821
+ this.state.media = _classPrivateMethodGet(this, _wrapMedia, _wrapMedia2).call(this, media); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3822
+ // @ts-ignore
3823
+
3824
+ this.state.medias = medias ? medias.map(function (m) {
3825
+ return _classPrivateMethodGet(_this8, _wrapMedia, _wrapMedia2).call(_this8, m);
3826
+ }).filter(function (el) {
3827
+ return el !== null;
3828
+ }) : media && !medias ? [_classPrivateMethodGet(this, _wrapMedia, _wrapMedia2).call(this, media, "media")].filter(function (el) {
3829
+ return el !== null;
3830
+ }) : null;
3831
+ }
3832
+
3770
3833
  _defineProperty__default["default"](Message, "updated", "updated");
3771
3834
 
3772
3835
  __decorate([deprecationDecorator.deprecated("getMediaByCategory", "getMediaByCategories"), __metadata("design:type", Function), __metadata("design:paramtypes", [Array]), __metadata("design:returntype", Array)], Message.prototype, "getMediaByCategory", null);
@@ -7824,7 +7887,7 @@ function PushNotification(data) {
7824
7887
  this.data = data.data || {};
7825
7888
  });
7826
7889
 
7827
- var version = "2.4.0";
7890
+ var version = "2.4.1-rc.1";
7828
7891
 
7829
7892
  function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7830
7893