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/index.js CHANGED
@@ -141,7 +141,7 @@ var Campaign = /*#__PURE__*/function () {
141
141
  key: "create",
142
142
  value: function () {
143
143
  var _create = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
144
- var _this$data, _this$data2, _this$data3, _this$data4, _this$data5, _this$data6, _this$data7, _this$data8, _this$data9;
144
+ 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;
145
145
 
146
146
  var body, result;
147
147
  return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
@@ -156,9 +156,12 @@ var Campaign = /*#__PURE__*/function () {
156
156
  sender_mode: (_this$data4 = this.data) === null || _this$data4 === void 0 ? void 0 : _this$data4.sender_mode,
157
157
  channel_template: (_this$data5 = this.data) === null || _this$data5 === void 0 ? void 0 : _this$data5.channel_template,
158
158
  create_channels: (_this$data6 = this.data) === null || _this$data6 === void 0 ? void 0 : _this$data6.create_channels,
159
- description: (_this$data7 = this.data) === null || _this$data7 === void 0 ? void 0 : _this$data7.description,
160
- name: (_this$data8 = this.data) === null || _this$data8 === void 0 ? void 0 : _this$data8.name,
161
- user_ids: (_this$data9 = this.data) === null || _this$data9 === void 0 ? void 0 : _this$data9.user_ids
159
+ show_channels: (_this$data7 = this.data) === null || _this$data7 === void 0 ? void 0 : _this$data7.show_channels,
160
+ description: (_this$data8 = this.data) === null || _this$data8 === void 0 ? void 0 : _this$data8.description,
161
+ name: (_this$data9 = this.data) === null || _this$data9 === void 0 ? void 0 : _this$data9.name,
162
+ skip_push: (_this$data10 = this.data) === null || _this$data10 === void 0 ? void 0 : _this$data10.skip_push,
163
+ skip_webhook: (_this$data11 = this.data) === null || _this$data11 === void 0 ? void 0 : _this$data11.skip_webhook,
164
+ user_ids: (_this$data12 = this.data) === null || _this$data12 === void 0 ? void 0 : _this$data12.user_ids
162
165
  };
163
166
  _context.next = 3;
164
167
  return this.client.createCampaign(body);
@@ -5036,6 +5039,134 @@ var Channel = /*#__PURE__*/function () {
5036
5039
 
5037
5040
  return removeVote;
5038
5041
  }()
5042
+ /**
5043
+ * createDraft - Creates or updates a draft message in a channel
5044
+ *
5045
+ * @param {string} channelType The channel type
5046
+ * @param {string} channelID The channel ID
5047
+ * @param {DraftMessagePayload<StreamChatGenerics>} message The draft message to create or update
5048
+ *
5049
+ * @return {Promise<CreateDraftResponse<StreamChatGenerics>>} Response containing the created draft
5050
+ */
5051
+
5052
+ }, {
5053
+ key: "createDraft",
5054
+ value: function () {
5055
+ var _createDraft = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee50(message) {
5056
+ return _regeneratorRuntime__default['default'].wrap(function _callee50$(_context50) {
5057
+ while (1) {
5058
+ switch (_context50.prev = _context50.next) {
5059
+ case 0:
5060
+ _context50.next = 2;
5061
+ return this.getClient().post(this._channelURL() + '/draft', {
5062
+ message: message
5063
+ });
5064
+
5065
+ case 2:
5066
+ return _context50.abrupt("return", _context50.sent);
5067
+
5068
+ case 3:
5069
+ case "end":
5070
+ return _context50.stop();
5071
+ }
5072
+ }
5073
+ }, _callee50, this);
5074
+ }));
5075
+
5076
+ function createDraft(_x53) {
5077
+ return _createDraft.apply(this, arguments);
5078
+ }
5079
+
5080
+ return createDraft;
5081
+ }()
5082
+ /**
5083
+ * deleteDraft - Deletes a draft message from a channel
5084
+ *
5085
+ * @param {Object} options
5086
+ * @param {string} options.parent_id Optional parent message ID for drafts in threads
5087
+ *
5088
+ * @return {Promise<APIResponse>} API response
5089
+ */
5090
+
5091
+ }, {
5092
+ key: "deleteDraft",
5093
+ value: function () {
5094
+ var _deleteDraft = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee51() {
5095
+ var _ref2,
5096
+ parent_id,
5097
+ _args51 = arguments;
5098
+
5099
+ return _regeneratorRuntime__default['default'].wrap(function _callee51$(_context51) {
5100
+ while (1) {
5101
+ switch (_context51.prev = _context51.next) {
5102
+ case 0:
5103
+ _ref2 = _args51.length > 0 && _args51[0] !== undefined ? _args51[0] : {}, parent_id = _ref2.parent_id;
5104
+ _context51.next = 3;
5105
+ return this.getClient().delete(this._channelURL() + '/draft', {
5106
+ parent_id: parent_id
5107
+ });
5108
+
5109
+ case 3:
5110
+ return _context51.abrupt("return", _context51.sent);
5111
+
5112
+ case 4:
5113
+ case "end":
5114
+ return _context51.stop();
5115
+ }
5116
+ }
5117
+ }, _callee51, this);
5118
+ }));
5119
+
5120
+ function deleteDraft() {
5121
+ return _deleteDraft.apply(this, arguments);
5122
+ }
5123
+
5124
+ return deleteDraft;
5125
+ }()
5126
+ /**
5127
+ * getDraft - Retrieves a draft message from a channel
5128
+ *
5129
+ * @param {Object} options
5130
+ * @param {string} options.parent_id Optional parent message ID for drafts in threads
5131
+ *
5132
+ * @return {Promise<GetDraftResponse<StreamChatGenerics>>} Response containing the draft
5133
+ */
5134
+
5135
+ }, {
5136
+ key: "getDraft",
5137
+ value: function () {
5138
+ var _getDraft = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee52() {
5139
+ var _ref3,
5140
+ parent_id,
5141
+ _args52 = arguments;
5142
+
5143
+ return _regeneratorRuntime__default['default'].wrap(function _callee52$(_context52) {
5144
+ while (1) {
5145
+ switch (_context52.prev = _context52.next) {
5146
+ case 0:
5147
+ _ref3 = _args52.length > 0 && _args52[0] !== undefined ? _args52[0] : {}, parent_id = _ref3.parent_id;
5148
+ _context52.next = 3;
5149
+ return this.getClient().get(this._channelURL() + '/draft', {
5150
+ parent_id: parent_id
5151
+ });
5152
+
5153
+ case 3:
5154
+ return _context52.abrupt("return", _context52.sent);
5155
+
5156
+ case 4:
5157
+ case "end":
5158
+ return _context52.stop();
5159
+ }
5160
+ }
5161
+ }, _callee52, this);
5162
+ }));
5163
+
5164
+ function getDraft() {
5165
+ return _getDraft.apply(this, arguments);
5166
+ }
5167
+
5168
+ return getDraft;
5169
+ }()
5039
5170
  /**
5040
5171
  * on - Listen to events on this channel.
5041
5172
  *
@@ -5246,18 +5377,18 @@ var Channel = /*#__PURE__*/function () {
5246
5377
  if ((_event$channel = event.channel) !== null && _event$channel !== void 0 && _event$channel.truncated_at) {
5247
5378
  var truncatedAt = +new Date(event.channel.truncated_at);
5248
5379
  channelState.messageSets.forEach(function (messageSet, messageSetIndex) {
5249
- messageSet.messages.forEach(function (_ref2) {
5250
- var createdAt = _ref2.created_at,
5251
- id = _ref2.id;
5380
+ messageSet.messages.forEach(function (_ref4) {
5381
+ var createdAt = _ref4.created_at,
5382
+ id = _ref4.id;
5252
5383
  if (truncatedAt > +createdAt) channelState.removeMessage({
5253
5384
  id: id,
5254
5385
  messageSetIndex: messageSetIndex
5255
5386
  });
5256
5387
  });
5257
5388
  });
5258
- channelState.pinnedMessages.forEach(function (_ref3) {
5259
- var id = _ref3.id,
5260
- createdAt = _ref3.created_at;
5389
+ channelState.pinnedMessages.forEach(function (_ref5) {
5390
+ var id = _ref5.id,
5391
+ createdAt = _ref5.created_at;
5261
5392
  if (truncatedAt > +createdAt) channelState.removePinnedMessage({
5262
5393
  id: id
5263
5394
  });
@@ -5557,10 +5688,10 @@ var Channel = /*#__PURE__*/function () {
5557
5688
  }
5558
5689
  }, {
5559
5690
  key: "_hydrateMembers",
5560
- value: function _hydrateMembers(_ref4) {
5561
- var members = _ref4.members,
5562
- _ref4$overrideCurrent = _ref4.overrideCurrentState,
5563
- overrideCurrentState = _ref4$overrideCurrent === void 0 ? true : _ref4$overrideCurrent;
5691
+ value: function _hydrateMembers(_ref6) {
5692
+ var members = _ref6.members,
5693
+ _ref6$overrideCurrent = _ref6.overrideCurrentState,
5694
+ overrideCurrentState = _ref6$overrideCurrent === void 0 ? true : _ref6$overrideCurrent;
5564
5695
  var newMembersById = members.reduce(function (membersById, member) {
5565
5696
  if (member.user) {
5566
5697
  membersById[member.user.id] = member;
@@ -5865,11 +5996,20 @@ var StableWSConnection = /*#__PURE__*/function () {
5865
5996
  _defineProperty__default['default'](this, "wsID", void 0);
5866
5997
 
5867
5998
  _defineProperty__default['default'](this, "_buildUrl", function () {
5868
- var qs = encodeURIComponent(_this.client._buildWSPayload(_this.requestID));
5999
+ var qs = _this.client._buildWSPayload(_this.requestID);
5869
6000
 
5870
6001
  var token = _this.client.tokenManager.getToken();
5871
6002
 
5872
- 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()));
6003
+ var wsUrlParams = _this.client.options.wsUrlParams;
6004
+ var params = new URLSearchParams(wsUrlParams);
6005
+ params.set('json', qs);
6006
+ params.set('api_key', _this.client.key); // it is expected that the autorization parameter exists even if
6007
+ // the token is undefined, so we interpolate it to be safe
6008
+
6009
+ params.set('authorization', "".concat(token));
6010
+ params.set('stream-auth-type', _this.client.getAuthType());
6011
+ params.set('X-Stream-Client', _this.client.getUserAgent());
6012
+ return "".concat(_this.client.wsBaseURL, "/connect?").concat(params.toString());
5873
6013
  });
5874
6014
 
5875
6015
  _defineProperty__default['default'](this, "onlineStatusChanged", function (event) {
@@ -8708,7 +8848,8 @@ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if
8708
8848
  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; }
8709
8849
  var MODERATION_ENTITY_TYPES = {
8710
8850
  user: 'stream:user',
8711
- message: 'stream:chat:v1:message'
8851
+ message: 'stream:chat:v1:message',
8852
+ userprofile: 'stream:v1:user_profile'
8712
8853
  }; // Moderation class provides all the endpoints related to moderation v2.
8713
8854
 
8714
8855
  var Moderation = /*#__PURE__*/function () {
@@ -9231,6 +9372,82 @@ var Moderation = /*#__PURE__*/function () {
9231
9372
 
9232
9373
  return check;
9233
9374
  }()
9375
+ /**
9376
+ * Experimental: Check user profile
9377
+ *
9378
+ * Warning: This is an experimental feature and the API is subject to change.
9379
+ *
9380
+ * This function is used to check a user profile for moderation.
9381
+ * This will not create any review queue items for the user profile.
9382
+ * You can just use this to check whether to allow a certain user profile to be created or not.
9383
+ *
9384
+ * Example:
9385
+ *
9386
+ * ```ts
9387
+ * const res = await client.moderation.checkUserProfile(userId, { username: "fuck_boy_001", image: "https://example.com/profile.jpg" });
9388
+ * if (res.recommended_action === "remove") {
9389
+ * // Block the user profile from being created
9390
+ * } else {
9391
+ * // Allow the user profile to be created
9392
+ * }
9393
+ * ```
9394
+ *
9395
+ * @param userId
9396
+ * @param profile.username
9397
+ * @param profile.image
9398
+ * @returns
9399
+ */
9400
+
9401
+ }, {
9402
+ key: "checkUserProfile",
9403
+ value: function () {
9404
+ var _checkUserProfile = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee14(userId, profile) {
9405
+ var moderationPayload;
9406
+ return _regeneratorRuntime__default['default'].wrap(function _callee14$(_context14) {
9407
+ while (1) {
9408
+ switch (_context14.prev = _context14.next) {
9409
+ case 0:
9410
+ if (!(!profile.username && !profile.image)) {
9411
+ _context14.next = 2;
9412
+ break;
9413
+ }
9414
+
9415
+ throw new Error('Either username or image must be provided');
9416
+
9417
+ case 2:
9418
+ moderationPayload = {};
9419
+
9420
+ if (profile.username) {
9421
+ moderationPayload.texts = [profile.username];
9422
+ }
9423
+
9424
+ if (profile.image) {
9425
+ moderationPayload.images = [profile.image];
9426
+ }
9427
+
9428
+ _context14.next = 7;
9429
+ return this.check(MODERATION_ENTITY_TYPES.userprofile, userId, userId, moderationPayload, 'user_profile:default', {
9430
+ force_sync: true,
9431
+ test_mode: true
9432
+ });
9433
+
9434
+ case 7:
9435
+ return _context14.abrupt("return", _context14.sent);
9436
+
9437
+ case 8:
9438
+ case "end":
9439
+ return _context14.stop();
9440
+ }
9441
+ }
9442
+ }, _callee14, this);
9443
+ }));
9444
+
9445
+ function checkUserProfile(_x28, _x29) {
9446
+ return _checkUserProfile.apply(this, arguments);
9447
+ }
9448
+
9449
+ return checkUserProfile;
9450
+ }()
9234
9451
  /**
9235
9452
  *
9236
9453
  * @param {string} entityType string Type of entity to be checked E.g., stream:user, stream:chat:v1:message, or any custom string
@@ -9247,12 +9464,12 @@ var Moderation = /*#__PURE__*/function () {
9247
9464
  }, {
9248
9465
  key: "addCustomFlags",
9249
9466
  value: function () {
9250
- var _addCustomFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee14(entityType, entityID, entityCreatorID, moderationPayload, flags) {
9251
- return _regeneratorRuntime__default['default'].wrap(function _callee14$(_context14) {
9467
+ var _addCustomFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee15(entityType, entityID, entityCreatorID, moderationPayload, flags) {
9468
+ return _regeneratorRuntime__default['default'].wrap(function _callee15$(_context15) {
9252
9469
  while (1) {
9253
- switch (_context14.prev = _context14.next) {
9470
+ switch (_context15.prev = _context15.next) {
9254
9471
  case 0:
9255
- _context14.next = 2;
9472
+ _context15.next = 2;
9256
9473
  return this.client.post(this.client.baseURL + "/api/v2/moderation/custom_check", {
9257
9474
  entity_type: entityType,
9258
9475
  entity_id: entityID,
@@ -9262,17 +9479,17 @@ var Moderation = /*#__PURE__*/function () {
9262
9479
  });
9263
9480
 
9264
9481
  case 2:
9265
- return _context14.abrupt("return", _context14.sent);
9482
+ return _context15.abrupt("return", _context15.sent);
9266
9483
 
9267
9484
  case 3:
9268
9485
  case "end":
9269
- return _context14.stop();
9486
+ return _context15.stop();
9270
9487
  }
9271
9488
  }
9272
- }, _callee14, this);
9489
+ }, _callee15, this);
9273
9490
  }));
9274
9491
 
9275
- function addCustomFlags(_x28, _x29, _x30, _x31, _x32) {
9492
+ function addCustomFlags(_x30, _x31, _x32, _x33, _x34) {
9276
9493
  return _addCustomFlags.apply(this, arguments);
9277
9494
  }
9278
9495
 
@@ -9288,26 +9505,26 @@ var Moderation = /*#__PURE__*/function () {
9288
9505
  }, {
9289
9506
  key: "addCustomMessageFlags",
9290
9507
  value: function () {
9291
- var _addCustomMessageFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee15(messageID, flags) {
9292
- return _regeneratorRuntime__default['default'].wrap(function _callee15$(_context15) {
9508
+ var _addCustomMessageFlags = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee16(messageID, flags) {
9509
+ return _regeneratorRuntime__default['default'].wrap(function _callee16$(_context16) {
9293
9510
  while (1) {
9294
- switch (_context15.prev = _context15.next) {
9511
+ switch (_context16.prev = _context16.next) {
9295
9512
  case 0:
9296
- _context15.next = 2;
9513
+ _context16.next = 2;
9297
9514
  return this.addCustomFlags(MODERATION_ENTITY_TYPES.message, messageID, '', {}, flags);
9298
9515
 
9299
9516
  case 2:
9300
- return _context15.abrupt("return", _context15.sent);
9517
+ return _context16.abrupt("return", _context16.sent);
9301
9518
 
9302
9519
  case 3:
9303
9520
  case "end":
9304
- return _context15.stop();
9521
+ return _context16.stop();
9305
9522
  }
9306
9523
  }
9307
- }, _callee15, this);
9524
+ }, _callee16, this);
9308
9525
  }));
9309
9526
 
9310
- function addCustomMessageFlags(_x33, _x34) {
9527
+ function addCustomMessageFlags(_x35, _x36) {
9311
9528
  return _addCustomMessageFlags.apply(this, arguments);
9312
9529
  }
9313
9530
 
@@ -12364,7 +12581,8 @@ var StreamChat = /*#__PURE__*/function () {
12364
12581
  // making sure cookies are not sent
12365
12582
  warmUp: false,
12366
12583
  recoverStateOnReconnect: true,
12367
- disableCache: false
12584
+ disableCache: false,
12585
+ wsUrlParams: new URLSearchParams({})
12368
12586
  }, inputOptions);
12369
12587
 
12370
12588
  if (this.node && !this.options.httpsAgent) {
@@ -16124,7 +16342,7 @@ var StreamChat = /*#__PURE__*/function () {
16124
16342
  return this.userAgent;
16125
16343
  }
16126
16344
 
16127
- var version = "8.57.6";
16345
+ var version = "8.59.0";
16128
16346
  var clientBundle = "";
16129
16347
  var userAgentString = '';
16130
16348
 
@@ -18370,6 +18588,55 @@ var StreamChat = /*#__PURE__*/function () {
18370
18588
 
18371
18589
  return updateFlags;
18372
18590
  }()
18591
+ /**
18592
+ * queryDrafts - Queries drafts for the current user
18593
+ *
18594
+ * @param {object} [options] Query options
18595
+ * @param {object} [options.filter] Filters for the query
18596
+ * @param {number} [options.sort] Sort parameters
18597
+ * @param {number} [options.limit] Limit the number of results
18598
+ * @param {string} [options.next] Pagination parameter
18599
+ * @param {string} [options.prev] Pagination parameter
18600
+ * @param {string} [options.user_id] Has to be provided when called server-side
18601
+ *
18602
+ * @return {Promise<APIResponse & { drafts: DraftResponse<StreamChatGenerics>[]; next?: string }>} Response containing the drafts
18603
+ */
18604
+
18605
+ }, {
18606
+ key: "queryDrafts",
18607
+ value: function () {
18608
+ var _queryDrafts = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee118() {
18609
+ var options,
18610
+ payload,
18611
+ _args118 = arguments;
18612
+ return _regeneratorRuntime__default['default'].wrap(function _callee118$(_context118) {
18613
+ while (1) {
18614
+ switch (_context118.prev = _context118.next) {
18615
+ case 0:
18616
+ options = _args118.length > 0 && _args118[0] !== undefined ? _args118[0] : {};
18617
+ payload = _objectSpread$1(_objectSpread$1({}, options), {}, {
18618
+ sort: options.sort ? normalizeQuerySort(options.sort) : undefined
18619
+ });
18620
+ _context118.next = 4;
18621
+ return this.post(this.baseURL + '/drafts/query', payload);
18622
+
18623
+ case 4:
18624
+ return _context118.abrupt("return", _context118.sent);
18625
+
18626
+ case 5:
18627
+ case "end":
18628
+ return _context118.stop();
18629
+ }
18630
+ }
18631
+ }, _callee118, this);
18632
+ }));
18633
+
18634
+ function queryDrafts() {
18635
+ return _queryDrafts.apply(this, arguments);
18636
+ }
18637
+
18638
+ return queryDrafts;
18639
+ }()
18373
18640
  }], [{
18374
18641
  key: "getInstance",
18375
18642
  value: function getInstance(key, secretOrOptions, options) {