stream-chat 8.57.6 → 8.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -135,7 +135,7 @@ var Campaign = /*#__PURE__*/function () {
135
135
  key: "create",
136
136
  value: function () {
137
137
  var _create = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
138
- var _this$data, _this$data2, _this$data3, _this$data4, _this$data5, _this$data6, _this$data7, _this$data8, _this$data9;
138
+ var _this$data, _this$data2, _this$data3, _this$data4, _this$data5, _this$data6, _this$data7, _this$data8, _this$data9, _this$data10, _this$data11, _this$data12;
139
139
 
140
140
  var body, result;
141
141
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
@@ -150,9 +150,12 @@ var Campaign = /*#__PURE__*/function () {
150
150
  sender_mode: (_this$data4 = this.data) === null || _this$data4 === void 0 ? void 0 : _this$data4.sender_mode,
151
151
  channel_template: (_this$data5 = this.data) === null || _this$data5 === void 0 ? void 0 : _this$data5.channel_template,
152
152
  create_channels: (_this$data6 = this.data) === null || _this$data6 === void 0 ? void 0 : _this$data6.create_channels,
153
- description: (_this$data7 = this.data) === null || _this$data7 === void 0 ? void 0 : _this$data7.description,
154
- name: (_this$data8 = this.data) === null || _this$data8 === void 0 ? void 0 : _this$data8.name,
155
- user_ids: (_this$data9 = this.data) === null || _this$data9 === void 0 ? void 0 : _this$data9.user_ids
153
+ show_channels: (_this$data7 = this.data) === null || _this$data7 === void 0 ? void 0 : _this$data7.show_channels,
154
+ description: (_this$data8 = this.data) === null || _this$data8 === void 0 ? void 0 : _this$data8.description,
155
+ name: (_this$data9 = this.data) === null || _this$data9 === void 0 ? void 0 : _this$data9.name,
156
+ skip_push: (_this$data10 = this.data) === null || _this$data10 === void 0 ? void 0 : _this$data10.skip_push,
157
+ skip_webhook: (_this$data11 = this.data) === null || _this$data11 === void 0 ? void 0 : _this$data11.skip_webhook,
158
+ user_ids: (_this$data12 = this.data) === null || _this$data12 === void 0 ? void 0 : _this$data12.user_ids
156
159
  };
157
160
  _context.next = 3;
158
161
  return this.client.createCampaign(body);
@@ -5032,6 +5035,134 @@ var Channel = /*#__PURE__*/function () {
5032
5035
 
5033
5036
  return removeVote;
5034
5037
  }()
5038
+ /**
5039
+ * createDraft - Creates or updates a draft message in a channel
5040
+ *
5041
+ * @param {string} channelType The channel type
5042
+ * @param {string} channelID The channel ID
5043
+ * @param {DraftMessagePayload<StreamChatGenerics>} message The draft message to create or update
5044
+ *
5045
+ * @return {Promise<CreateDraftResponse<StreamChatGenerics>>} Response containing the created draft
5046
+ */
5047
+
5048
+ }, {
5049
+ key: "createDraft",
5050
+ value: function () {
5051
+ var _createDraft = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee50(message) {
5052
+ return _regeneratorRuntime__default['default'].wrap(function _callee50$(_context50) {
5053
+ while (1) {
5054
+ switch (_context50.prev = _context50.next) {
5055
+ case 0:
5056
+ _context50.next = 2;
5057
+ return this.getClient().post(this._channelURL() + '/draft', {
5058
+ message: message
5059
+ });
5060
+
5061
+ case 2:
5062
+ return _context50.abrupt("return", _context50.sent);
5063
+
5064
+ case 3:
5065
+ case "end":
5066
+ return _context50.stop();
5067
+ }
5068
+ }
5069
+ }, _callee50, this);
5070
+ }));
5071
+
5072
+ function createDraft(_x53) {
5073
+ return _createDraft.apply(this, arguments);
5074
+ }
5075
+
5076
+ return createDraft;
5077
+ }()
5078
+ /**
5079
+ * deleteDraft - Deletes a draft message from a channel
5080
+ *
5081
+ * @param {Object} options
5082
+ * @param {string} options.parent_id Optional parent message ID for drafts in threads
5083
+ *
5084
+ * @return {Promise<APIResponse>} API response
5085
+ */
5086
+
5087
+ }, {
5088
+ key: "deleteDraft",
5089
+ value: function () {
5090
+ var _deleteDraft = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee51() {
5091
+ var _ref2,
5092
+ parent_id,
5093
+ _args51 = arguments;
5094
+
5095
+ return _regeneratorRuntime__default['default'].wrap(function _callee51$(_context51) {
5096
+ while (1) {
5097
+ switch (_context51.prev = _context51.next) {
5098
+ case 0:
5099
+ _ref2 = _args51.length > 0 && _args51[0] !== undefined ? _args51[0] : {}, parent_id = _ref2.parent_id;
5100
+ _context51.next = 3;
5101
+ return this.getClient().delete(this._channelURL() + '/draft', {
5102
+ parent_id: parent_id
5103
+ });
5104
+
5105
+ case 3:
5106
+ return _context51.abrupt("return", _context51.sent);
5107
+
5108
+ case 4:
5109
+ case "end":
5110
+ return _context51.stop();
5111
+ }
5112
+ }
5113
+ }, _callee51, this);
5114
+ }));
5115
+
5116
+ function deleteDraft() {
5117
+ return _deleteDraft.apply(this, arguments);
5118
+ }
5119
+
5120
+ return deleteDraft;
5121
+ }()
5122
+ /**
5123
+ * getDraft - Retrieves a draft message from a channel
5124
+ *
5125
+ * @param {Object} options
5126
+ * @param {string} options.parent_id Optional parent message ID for drafts in threads
5127
+ *
5128
+ * @return {Promise<GetDraftResponse<StreamChatGenerics>>} Response containing the draft
5129
+ */
5130
+
5131
+ }, {
5132
+ key: "getDraft",
5133
+ value: function () {
5134
+ var _getDraft = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee52() {
5135
+ var _ref3,
5136
+ parent_id,
5137
+ _args52 = arguments;
5138
+
5139
+ return _regeneratorRuntime__default['default'].wrap(function _callee52$(_context52) {
5140
+ while (1) {
5141
+ switch (_context52.prev = _context52.next) {
5142
+ case 0:
5143
+ _ref3 = _args52.length > 0 && _args52[0] !== undefined ? _args52[0] : {}, parent_id = _ref3.parent_id;
5144
+ _context52.next = 3;
5145
+ return this.getClient().get(this._channelURL() + '/draft', {
5146
+ parent_id: parent_id
5147
+ });
5148
+
5149
+ case 3:
5150
+ return _context52.abrupt("return", _context52.sent);
5151
+
5152
+ case 4:
5153
+ case "end":
5154
+ return _context52.stop();
5155
+ }
5156
+ }
5157
+ }, _callee52, this);
5158
+ }));
5159
+
5160
+ function getDraft() {
5161
+ return _getDraft.apply(this, arguments);
5162
+ }
5163
+
5164
+ return getDraft;
5165
+ }()
5035
5166
  /**
5036
5167
  * on - Listen to events on this channel.
5037
5168
  *
@@ -5242,18 +5373,18 @@ var Channel = /*#__PURE__*/function () {
5242
5373
  if ((_event$channel = event.channel) !== null && _event$channel !== void 0 && _event$channel.truncated_at) {
5243
5374
  var truncatedAt = +new Date(event.channel.truncated_at);
5244
5375
  channelState.messageSets.forEach(function (messageSet, messageSetIndex) {
5245
- messageSet.messages.forEach(function (_ref2) {
5246
- var createdAt = _ref2.created_at,
5247
- id = _ref2.id;
5376
+ messageSet.messages.forEach(function (_ref4) {
5377
+ var createdAt = _ref4.created_at,
5378
+ id = _ref4.id;
5248
5379
  if (truncatedAt > +createdAt) channelState.removeMessage({
5249
5380
  id: id,
5250
5381
  messageSetIndex: messageSetIndex
5251
5382
  });
5252
5383
  });
5253
5384
  });
5254
- channelState.pinnedMessages.forEach(function (_ref3) {
5255
- var id = _ref3.id,
5256
- createdAt = _ref3.created_at;
5385
+ channelState.pinnedMessages.forEach(function (_ref5) {
5386
+ var id = _ref5.id,
5387
+ createdAt = _ref5.created_at;
5257
5388
  if (truncatedAt > +createdAt) channelState.removePinnedMessage({
5258
5389
  id: id
5259
5390
  });
@@ -5553,10 +5684,10 @@ var Channel = /*#__PURE__*/function () {
5553
5684
  }
5554
5685
  }, {
5555
5686
  key: "_hydrateMembers",
5556
- value: function _hydrateMembers(_ref4) {
5557
- var members = _ref4.members,
5558
- _ref4$overrideCurrent = _ref4.overrideCurrentState,
5559
- overrideCurrentState = _ref4$overrideCurrent === void 0 ? true : _ref4$overrideCurrent;
5687
+ value: function _hydrateMembers(_ref6) {
5688
+ var members = _ref6.members,
5689
+ _ref6$overrideCurrent = _ref6.overrideCurrentState,
5690
+ overrideCurrentState = _ref6$overrideCurrent === void 0 ? true : _ref6$overrideCurrent;
5560
5691
  var newMembersById = members.reduce(function (membersById, member) {
5561
5692
  if (member.user) {
5562
5693
  membersById[member.user.id] = member;
@@ -5861,11 +5992,20 @@ var StableWSConnection = /*#__PURE__*/function () {
5861
5992
  _defineProperty__default['default'](this, "wsID", void 0);
5862
5993
 
5863
5994
  _defineProperty__default['default'](this, "_buildUrl", function () {
5864
- var qs = encodeURIComponent(_this.client._buildWSPayload(_this.requestID));
5995
+ var qs = _this.client._buildWSPayload(_this.requestID);
5865
5996
 
5866
5997
  var token = _this.client.tokenManager.getToken();
5867
5998
 
5868
- return "".concat(_this.client.wsBaseURL, "/connect?json=").concat(qs, "&api_key=").concat(_this.client.key, "&authorization=").concat(token, "&stream-auth-type=").concat(_this.client.getAuthType(), "&X-Stream-Client=").concat(encodeURIComponent(_this.client.getUserAgent()));
5999
+ var wsUrlParams = _this.client.options.wsUrlParams;
6000
+ var params = new URLSearchParams(wsUrlParams);
6001
+ params.set('json', qs);
6002
+ params.set('api_key', _this.client.key); // it is expected that the autorization parameter exists even if
6003
+ // the token is undefined, so we interpolate it to be safe
6004
+
6005
+ params.set('authorization', "".concat(token));
6006
+ params.set('stream-auth-type', _this.client.getAuthType());
6007
+ params.set('X-Stream-Client', _this.client.getUserAgent());
6008
+ return "".concat(_this.client.wsBaseURL, "/connect?").concat(params.toString());
5869
6009
  });
5870
6010
 
5871
6011
  _defineProperty__default['default'](this, "onlineStatusChanged", function (event) {
@@ -8702,7 +8842,8 @@ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if
8702
8842
  function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8703
8843
  var MODERATION_ENTITY_TYPES = {
8704
8844
  user: 'stream:user',
8705
- message: 'stream:chat:v1:message'
8845
+ message: 'stream:chat:v1:message',
8846
+ userprofile: 'stream:v1:user_profile'
8706
8847
  }; // Moderation class provides all the endpoints related to moderation v2.
8707
8848
 
8708
8849
  var Moderation = /*#__PURE__*/function () {
@@ -9225,6 +9366,82 @@ var Moderation = /*#__PURE__*/function () {
9225
9366
 
9226
9367
  return check;
9227
9368
  }()
9369
+ /**
9370
+ * Experimental: Check user profile
9371
+ *
9372
+ * Warning: This is an experimental feature and the API is subject to change.
9373
+ *
9374
+ * This function is used to check a user profile for moderation.
9375
+ * This will not create any review queue items for the user profile.
9376
+ * You can just use this to check whether to allow a certain user profile to be created or not.
9377
+ *
9378
+ * Example:
9379
+ *
9380
+ * ```ts
9381
+ * const res = await client.moderation.checkUserProfile(userId, { username: "fuck_boy_001", image: "https://example.com/profile.jpg" });
9382
+ * if (res.recommended_action === "remove") {
9383
+ * // Block the user profile from being created
9384
+ * } else {
9385
+ * // Allow the user profile to be created
9386
+ * }
9387
+ * ```
9388
+ *
9389
+ * @param userId
9390
+ * @param profile.username
9391
+ * @param profile.image
9392
+ * @returns
9393
+ */
9394
+
9395
+ }, {
9396
+ key: "checkUserProfile",
9397
+ value: function () {
9398
+ var _checkUserProfile = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee14(userId, profile) {
9399
+ var moderationPayload;
9400
+ return _regeneratorRuntime__default['default'].wrap(function _callee14$(_context14) {
9401
+ while (1) {
9402
+ switch (_context14.prev = _context14.next) {
9403
+ case 0:
9404
+ if (!(!profile.username && !profile.image)) {
9405
+ _context14.next = 2;
9406
+ break;
9407
+ }
9408
+
9409
+ throw new Error('Either username or image must be provided');
9410
+
9411
+ case 2:
9412
+ moderationPayload = {};
9413
+
9414
+ if (profile.username) {
9415
+ moderationPayload.texts = [profile.username];
9416
+ }
9417
+
9418
+ if (profile.image) {
9419
+ moderationPayload.images = [profile.image];
9420
+ }
9421
+
9422
+ _context14.next = 7;
9423
+ return this.check(MODERATION_ENTITY_TYPES.userprofile, userId, userId, moderationPayload, 'user_profile:default', {
9424
+ force_sync: true,
9425
+ test_mode: true
9426
+ });
9427
+
9428
+ case 7:
9429
+ return _context14.abrupt("return", _context14.sent);
9430
+
9431
+ case 8:
9432
+ case "end":
9433
+ return _context14.stop();
9434
+ }
9435
+ }
9436
+ }, _callee14, this);
9437
+ }));
9438
+
9439
+ function checkUserProfile(_x28, _x29) {
9440
+ return _checkUserProfile.apply(this, arguments);
9441
+ }
9442
+
9443
+ return checkUserProfile;
9444
+ }()
9228
9445
  /**
9229
9446
  *
9230
9447
  * @param {string} entityType string Type of entity to be checked E.g., stream:user, stream:chat:v1:message, or any custom string
@@ -9241,12 +9458,12 @@ var Moderation = /*#__PURE__*/function () {
9241
9458
  }, {
9242
9459
  key: "addCustomFlags",
9243
9460
  value: function () {
9244
- var _addCustomFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee14(entityType, entityID, entityCreatorID, moderationPayload, flags) {
9245
- return _regeneratorRuntime__default['default'].wrap(function _callee14$(_context14) {
9461
+ var _addCustomFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee15(entityType, entityID, entityCreatorID, moderationPayload, flags) {
9462
+ return _regeneratorRuntime__default['default'].wrap(function _callee15$(_context15) {
9246
9463
  while (1) {
9247
- switch (_context14.prev = _context14.next) {
9464
+ switch (_context15.prev = _context15.next) {
9248
9465
  case 0:
9249
- _context14.next = 2;
9466
+ _context15.next = 2;
9250
9467
  return this.client.post(this.client.baseURL + "/api/v2/moderation/custom_check", {
9251
9468
  entity_type: entityType,
9252
9469
  entity_id: entityID,
@@ -9256,17 +9473,17 @@ var Moderation = /*#__PURE__*/function () {
9256
9473
  });
9257
9474
 
9258
9475
  case 2:
9259
- return _context14.abrupt("return", _context14.sent);
9476
+ return _context15.abrupt("return", _context15.sent);
9260
9477
 
9261
9478
  case 3:
9262
9479
  case "end":
9263
- return _context14.stop();
9480
+ return _context15.stop();
9264
9481
  }
9265
9482
  }
9266
- }, _callee14, this);
9483
+ }, _callee15, this);
9267
9484
  }));
9268
9485
 
9269
- function addCustomFlags(_x28, _x29, _x30, _x31, _x32) {
9486
+ function addCustomFlags(_x30, _x31, _x32, _x33, _x34) {
9270
9487
  return _addCustomFlags.apply(this, arguments);
9271
9488
  }
9272
9489
 
@@ -9282,26 +9499,26 @@ var Moderation = /*#__PURE__*/function () {
9282
9499
  }, {
9283
9500
  key: "addCustomMessageFlags",
9284
9501
  value: function () {
9285
- var _addCustomMessageFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee15(messageID, flags) {
9286
- return _regeneratorRuntime__default['default'].wrap(function _callee15$(_context15) {
9502
+ var _addCustomMessageFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee16(messageID, flags) {
9503
+ return _regeneratorRuntime__default['default'].wrap(function _callee16$(_context16) {
9287
9504
  while (1) {
9288
- switch (_context15.prev = _context15.next) {
9505
+ switch (_context16.prev = _context16.next) {
9289
9506
  case 0:
9290
- _context15.next = 2;
9507
+ _context16.next = 2;
9291
9508
  return this.addCustomFlags(MODERATION_ENTITY_TYPES.message, messageID, '', {}, flags);
9292
9509
 
9293
9510
  case 2:
9294
- return _context15.abrupt("return", _context15.sent);
9511
+ return _context16.abrupt("return", _context16.sent);
9295
9512
 
9296
9513
  case 3:
9297
9514
  case "end":
9298
- return _context15.stop();
9515
+ return _context16.stop();
9299
9516
  }
9300
9517
  }
9301
- }, _callee15, this);
9518
+ }, _callee16, this);
9302
9519
  }));
9303
9520
 
9304
- function addCustomMessageFlags(_x33, _x34) {
9521
+ function addCustomMessageFlags(_x35, _x36) {
9305
9522
  return _addCustomMessageFlags.apply(this, arguments);
9306
9523
  }
9307
9524
 
@@ -12358,7 +12575,8 @@ var StreamChat = /*#__PURE__*/function () {
12358
12575
  // making sure cookies are not sent
12359
12576
  warmUp: false,
12360
12577
  recoverStateOnReconnect: true,
12361
- disableCache: false
12578
+ disableCache: false,
12579
+ wsUrlParams: new URLSearchParams({})
12362
12580
  }, inputOptions);
12363
12581
 
12364
12582
  if (this.node && !this.options.httpsAgent) {
@@ -16118,7 +16336,7 @@ var StreamChat = /*#__PURE__*/function () {
16118
16336
  return this.userAgent;
16119
16337
  }
16120
16338
 
16121
- var version = "8.57.6";
16339
+ var version = "8.59.0";
16122
16340
  var clientBundle = "";
16123
16341
  var userAgentString = '';
16124
16342
 
@@ -18364,6 +18582,55 @@ var StreamChat = /*#__PURE__*/function () {
18364
18582
 
18365
18583
  return updateFlags;
18366
18584
  }()
18585
+ /**
18586
+ * queryDrafts - Queries drafts for the current user
18587
+ *
18588
+ * @param {object} [options] Query options
18589
+ * @param {object} [options.filter] Filters for the query
18590
+ * @param {number} [options.sort] Sort parameters
18591
+ * @param {number} [options.limit] Limit the number of results
18592
+ * @param {string} [options.next] Pagination parameter
18593
+ * @param {string} [options.prev] Pagination parameter
18594
+ * @param {string} [options.user_id] Has to be provided when called server-side
18595
+ *
18596
+ * @return {Promise<APIResponse & { drafts: DraftResponse<StreamChatGenerics>[]; next?: string }>} Response containing the drafts
18597
+ */
18598
+
18599
+ }, {
18600
+ key: "queryDrafts",
18601
+ value: function () {
18602
+ var _queryDrafts = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee118() {
18603
+ var options,
18604
+ payload,
18605
+ _args118 = arguments;
18606
+ return _regeneratorRuntime__default['default'].wrap(function _callee118$(_context118) {
18607
+ while (1) {
18608
+ switch (_context118.prev = _context118.next) {
18609
+ case 0:
18610
+ options = _args118.length > 0 && _args118[0] !== undefined ? _args118[0] : {};
18611
+ payload = _objectSpread$1(_objectSpread$1({}, options), {}, {
18612
+ sort: options.sort ? normalizeQuerySort(options.sort) : undefined
18613
+ });
18614
+ _context118.next = 4;
18615
+ return this.post(this.baseURL + '/drafts/query', payload);
18616
+
18617
+ case 4:
18618
+ return _context118.abrupt("return", _context118.sent);
18619
+
18620
+ case 5:
18621
+ case "end":
18622
+ return _context118.stop();
18623
+ }
18624
+ }
18625
+ }, _callee118, this);
18626
+ }));
18627
+
18628
+ function queryDrafts() {
18629
+ return _queryDrafts.apply(this, arguments);
18630
+ }
18631
+
18632
+ return queryDrafts;
18633
+ }()
18367
18634
  }], [{
18368
18635
  key: "getInstance",
18369
18636
  value: function getInstance(key, secretOrOptions, options) {