stream-chat 9.22.1 → 9.23.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.
@@ -339,11 +339,14 @@ var import_form_data = __toESM(require("form-data"));
339
339
  // src/constants.ts
340
340
  var DEFAULT_QUERY_CHANNELS_MESSAGE_LIST_PAGE_SIZE = 25;
341
341
  var DEFAULT_QUERY_CHANNEL_MESSAGE_LIST_PAGE_SIZE = 100;
342
- var DEFAULT_MESSAGE_SET_PAGINATION = { hasNext: false, hasPrev: false };
342
+ var DEFAULT_MESSAGE_SET_PAGINATION = Object.freeze({
343
+ hasNext: false,
344
+ hasPrev: false
345
+ });
343
346
  var DEFAULT_UPLOAD_SIZE_LIMIT_BYTES = 100 * 1024 * 1024;
344
347
  var API_MAX_FILES_ALLOWED_PER_MESSAGE = 10;
345
348
  var MAX_CHANNEL_MEMBER_COUNT_IN_CHANNEL_QUERY = 100;
346
- var RESERVED_UPDATED_MESSAGE_FIELDS = {
349
+ var RESERVED_UPDATED_MESSAGE_FIELDS = Object.freeze({
347
350
  // Dates should not be converted back to ISO strings as JS looses precision on them (milliseconds)
348
351
  created_at: true,
349
352
  deleted_at: true,
@@ -364,8 +367,8 @@ var RESERVED_UPDATED_MESSAGE_FIELDS = {
364
367
  html: true,
365
368
  __html: true,
366
369
  user: true
367
- };
368
- var LOCAL_MESSAGE_FIELDS = { error: true };
370
+ });
371
+ var LOCAL_MESSAGE_FIELDS = Object.freeze({ error: true });
369
372
  var DEFAULT_QUERY_CHANNELS_RETRY_COUNT = 3;
370
373
  var DEFAULT_QUERY_CHANNELS_MS_BETWEEN_RETRIES = 1e3;
371
374
 
@@ -1301,6 +1304,14 @@ var ChannelState = class {
1301
1304
  get messagePagination() {
1302
1305
  return this.messageSets.find((s) => s.isCurrent)?.pagination || DEFAULT_MESSAGE_SET_PAGINATION;
1303
1306
  }
1307
+ pruneOldest(maxMessages) {
1308
+ const currentIndex = this.messageSets.findIndex((s) => s.isCurrent);
1309
+ if (this.messageSets[currentIndex].isLatest) {
1310
+ const newMessages = this.messageSets[currentIndex].messages;
1311
+ this.messageSets[currentIndex].messages = newMessages.slice(-maxMessages);
1312
+ this.messageSets[currentIndex].pagination.hasPrev = true;
1313
+ }
1314
+ }
1304
1315
  /**
1305
1316
  * addMessageSorted - Add a message to the state
1306
1317
  *
@@ -1721,7 +1732,7 @@ var ChannelState = class {
1721
1732
  messages: [],
1722
1733
  isLatest: true,
1723
1734
  isCurrent: true,
1724
- pagination: DEFAULT_MESSAGE_SET_PAGINATION
1735
+ pagination: { ...DEFAULT_MESSAGE_SET_PAGINATION }
1725
1736
  }
1726
1737
  ];
1727
1738
  }
@@ -1855,7 +1866,7 @@ var ChannelState = class {
1855
1866
  messages: [],
1856
1867
  isCurrent: false,
1857
1868
  isLatest: false,
1858
- pagination: DEFAULT_MESSAGE_SET_PAGINATION
1869
+ pagination: { ...DEFAULT_MESSAGE_SET_PAGINATION }
1859
1870
  });
1860
1871
  targetMessageSetIndex = this.messageSets.length - 1;
1861
1872
  } else {
@@ -1864,7 +1875,7 @@ var ChannelState = class {
1864
1875
  messages: [],
1865
1876
  isCurrent: false,
1866
1877
  isLatest,
1867
- pagination: DEFAULT_MESSAGE_SET_PAGINATION
1878
+ pagination: { ...DEFAULT_MESSAGE_SET_PAGINATION }
1868
1879
  // fixme: it is problematic decide about pagination without having data
1869
1880
  });
1870
1881
  if (isLatest) {
@@ -5575,6 +5586,13 @@ var MentionsSearchSource = class extends BaseSearchSource {
5575
5586
  const { mentionAllAppUsers, textComposerText, transliterate, ...restOptions } = options || {};
5576
5587
  super(restOptions);
5577
5588
  this.type = "mentions";
5589
+ this.toUserSuggestion = (user) => ({
5590
+ ...user,
5591
+ ...getTokenizedSuggestionDisplayName({
5592
+ displayName: user.name || user.id,
5593
+ searchToken: this.searchQuery
5594
+ })
5595
+ });
5578
5596
  this.canExecuteQuery = (newSearchString) => {
5579
5597
  const hasNewSearchQuery = typeof newSearchString !== "undefined";
5580
5598
  return this.isActive && !this.isLoading && (hasNewSearchQuery || this.hasNext);
@@ -5714,15 +5732,7 @@ var MentionsSearchSource = class extends BaseSearchSource {
5714
5732
  users = await this.queryMembers(searchQuery);
5715
5733
  }
5716
5734
  return {
5717
- items: users.map(
5718
- (user) => ({
5719
- ...user,
5720
- ...getTokenizedSuggestionDisplayName({
5721
- displayName: user.name || user.id,
5722
- searchToken: this.searchQuery
5723
- })
5724
- })
5725
- )
5735
+ items: users.map(this.toUserSuggestion)
5726
5736
  };
5727
5737
  }
5728
5738
  filterQueryResults(items) {
@@ -14452,7 +14462,10 @@ var StreamChat = class _StreamChat {
14452
14462
  if (options.hardDelete) {
14453
14463
  await this.offlineDb.hardDeleteMessage({ id: messageID });
14454
14464
  } else {
14455
- await this.offlineDb.softDeleteMessage({ id: messageID });
14465
+ await this.offlineDb.softDeleteMessage({
14466
+ id: messageID,
14467
+ deleteForMe: options.deleteForMe
14468
+ });
14456
14469
  }
14457
14470
  return await this.offlineDb.queueTask(
14458
14471
  {
@@ -14626,7 +14639,7 @@ var StreamChat = class _StreamChat {
14626
14639
  if (this.userAgent) {
14627
14640
  return this.userAgent;
14628
14641
  }
14629
- const version = "9.22.1";
14642
+ const version = "9.23.0";
14630
14643
  const clientBundle = "browser-cjs";
14631
14644
  let userAgentString = "";
14632
14645
  if (this.sdkIdentifier) {
@@ -16276,12 +16289,16 @@ var AbstractOfflineDB = class {
16276
16289
  event,
16277
16290
  execute = true
16278
16291
  }) => {
16279
- const { message, hard_delete = false } = event;
16292
+ const { message, deleted_for_me, hard_delete = false } = event;
16280
16293
  if (message) {
16281
16294
  const deleteMethod = hard_delete ? this.hardDeleteMessage : this.softDeleteMessage;
16282
16295
  return await this.queriesWithChannelGuard(
16283
16296
  { event, execute },
16284
- async (executeOverride) => await deleteMethod({ id: message.id, execute: executeOverride })
16297
+ async (executeOverride) => await deleteMethod({
16298
+ id: message.id,
16299
+ deleteForMe: deleted_for_me,
16300
+ execute: executeOverride
16301
+ })
16285
16302
  );
16286
16303
  }
16287
16304
  return [];