stream-chat 9.26.0 → 9.26.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.
@@ -234,7 +234,8 @@ function isOwnUserBaseProperty(property) {
234
234
  invisible: true,
235
235
  privacy_settings: true,
236
236
  roles: true,
237
- push_preferences: true
237
+ push_preferences: true,
238
+ total_unread_count_by_team: true
238
239
  };
239
240
  return ownUserBaseProperties[property];
240
241
  }
@@ -7053,6 +7054,7 @@ var MessageComposer = _MessageComposer;
7053
7054
  var MAX_DELIVERED_MESSAGE_COUNT_IN_PAYLOAD = 100;
7054
7055
  var MARK_AS_DELIVERED_BUFFER_TIMEOUT = 1e3;
7055
7056
  var MARK_AS_READ_THROTTLE_TIMEOUT2 = 1e3;
7057
+ var RETRY_COUNT_LIMIT_FOR_TIMEOUT_INCREASE = 3;
7056
7058
  var isChannel = (item) => item instanceof Channel;
7057
7059
  var isThread = (item) => item instanceof Thread;
7058
7060
  var MessageDeliveryReporter = class _MessageDeliveryReporter {
@@ -7061,6 +7063,9 @@ var MessageDeliveryReporter = class _MessageDeliveryReporter {
7061
7063
  this.nextDeliveryReportCandidates = /* @__PURE__ */ new Map();
7062
7064
  this.markDeliveredRequestPromise = null;
7063
7065
  this.markDeliveredTimeout = null;
7066
+ this.requestTimeoutMs = MARK_AS_DELIVERED_BUFFER_TIMEOUT;
7067
+ // increased up to RETRY_COUNT_LIMIT_FOR_TIMEOUT_INCREASE
7068
+ this.requestRetryCount = 0;
7064
7069
  /**
7065
7070
  * Retrieve the reference to the latest message in the state that is nor read neither reported as delivered
7066
7071
  * @param collection
@@ -7101,35 +7106,46 @@ var MessageDeliveryReporter = class _MessageDeliveryReporter {
7101
7106
  * @param options
7102
7107
  */
7103
7108
  this.announceDelivery = (options) => {
7104
- if (this.markDeliveredRequestInFlight || !this.hasDeliveryCandidates) return;
7109
+ if (!this.canExecuteRequest) return;
7105
7110
  const { latest_delivered_messages, sendBuffer } = this.confirmationsFromDeliveryReportCandidates();
7106
7111
  if (!latest_delivered_messages.length) return;
7107
7112
  const payload = { ...options, latest_delivered_messages };
7108
- const postFlightReconcile = () => {
7113
+ const postFlightReconcile = ({
7114
+ preventSchedulingRetry
7115
+ } = {}) => {
7109
7116
  this.markDeliveredRequestPromise = null;
7110
7117
  for (const [k, v] of this.nextDeliveryReportCandidates.entries()) {
7111
7118
  this.deliveryReportCandidates.set(k, v);
7112
7119
  }
7113
7120
  this.nextDeliveryReportCandidates = /* @__PURE__ */ new Map();
7121
+ if (preventSchedulingRetry) return;
7114
7122
  this.announceDeliveryBuffered(options);
7115
7123
  };
7116
- const handleError = () => {
7117
- for (const [k, v] of Object.entries(sendBuffer)) {
7118
- if (!this.deliveryReportCandidates.has(k)) {
7119
- this.deliveryReportCandidates.set(k, v);
7120
- }
7121
- }
7124
+ const handleSuccess = () => {
7125
+ this.resetBackOff();
7122
7126
  postFlightReconcile();
7123
7127
  };
7124
- this.markDeliveredRequestPromise = this.client.markChannelsDelivered(payload).then(postFlightReconcile, handleError);
7128
+ const handleError = (error) => {
7129
+ const newDeliveryReportCandidates = new Map(sendBuffer);
7130
+ for (const [k, v] of this.deliveryReportCandidates.entries()) {
7131
+ newDeliveryReportCandidates.set(k, v);
7132
+ }
7133
+ this.deliveryReportCandidates = newDeliveryReportCandidates;
7134
+ if (isAPIError(error) && isErrorRetryable(error) || error.status >= 500) {
7135
+ this.increaseBackOff();
7136
+ postFlightReconcile();
7137
+ } else {
7138
+ postFlightReconcile({ preventSchedulingRetry: true });
7139
+ }
7140
+ };
7141
+ this.markDeliveredRequestPromise = this.client.markChannelsDelivered(payload).then(handleSuccess, handleError);
7125
7142
  };
7126
7143
  this.announceDeliveryBuffered = (options) => {
7127
- if (this.hasTimer || this.markDeliveredRequestInFlight || !this.hasDeliveryCandidates)
7128
- return;
7144
+ if (this.hasTimer || !this.canExecuteRequest) return;
7129
7145
  this.markDeliveredTimeout = setTimeout(() => {
7130
7146
  this.markDeliveredTimeout = null;
7131
7147
  this.announceDelivery(options);
7132
- }, MARK_AS_DELIVERED_BUFFER_TIMEOUT);
7148
+ }, this.requestTimeoutMs);
7133
7149
  };
7134
7150
  /**
7135
7151
  * Delegates the mark-read call to the Channel or Thread instance
@@ -7169,10 +7185,22 @@ var MessageDeliveryReporter = class _MessageDeliveryReporter {
7169
7185
  get hasDeliveryCandidates() {
7170
7186
  return this.deliveryReportCandidates.size > 0;
7171
7187
  }
7188
+ get canExecuteRequest() {
7189
+ return !this.markDeliveredRequestInFlight && this.hasDeliveryCandidates;
7190
+ }
7172
7191
  static hasPermissionToReportDeliveryFor(collection) {
7173
7192
  if (isChannel(collection)) return !!collection.getConfig()?.delivery_events;
7174
7193
  if (isThread(collection)) return !!collection.channel.getConfig()?.delivery_events;
7175
7194
  }
7195
+ increaseBackOff() {
7196
+ if (this.requestRetryCount >= RETRY_COUNT_LIMIT_FOR_TIMEOUT_INCREASE) return;
7197
+ this.requestRetryCount = this.requestRetryCount + 1;
7198
+ this.requestTimeoutMs = this.requestTimeoutMs * 2;
7199
+ }
7200
+ resetBackOff() {
7201
+ this.requestTimeoutMs = MARK_AS_DELIVERED_BUFFER_TIMEOUT;
7202
+ this.requestRetryCount = 0;
7203
+ }
7176
7204
  /**
7177
7205
  * Build latest_delivered_messages payload from an arbitrary buffer (deliveryReportCandidates / nextDeliveryReportCandidates)
7178
7206
  */
@@ -13731,7 +13759,9 @@ var StreamChat = class _StreamChat {
13731
13759
  }
13732
13760
  userMap[userObject.id] = userObject;
13733
13761
  }
13734
- return await this.post(this.baseURL + "/users", { users: userMap });
13762
+ return await this.post(this.baseURL + "/users", {
13763
+ users: userMap
13764
+ });
13735
13765
  }
13736
13766
  /**
13737
13767
  * upsertUser - Update or Create the given user object
@@ -14490,7 +14520,7 @@ var StreamChat = class _StreamChat {
14490
14520
  if (this.userAgent) {
14491
14521
  return this.userAgent;
14492
14522
  }
14493
- const version = "9.26.0";
14523
+ const version = "9.26.1";
14494
14524
  const clientBundle = "browser-esm";
14495
14525
  let userAgentString = "";
14496
14526
  if (this.sdkIdentifier) {
@@ -16841,6 +16871,8 @@ export {
16841
16871
  AnyResource,
16842
16872
  AnyRole,
16843
16873
  AttachmentManager,
16874
+ AttachmentPostUploadMiddlewareExecutor,
16875
+ AttachmentPreUploadMiddlewareExecutor,
16844
16876
  BasePaginator,
16845
16877
  BaseSearchSource,
16846
16878
  BaseSearchSourceSync,
@@ -16931,6 +16963,7 @@ export {
16931
16963
  chatCodes,
16932
16964
  createActiveCommandGuardMiddleware,
16933
16965
  createAttachmentsCompositionMiddleware,
16966
+ createBlockedAttachmentUploadNotificationMiddleware,
16934
16967
  createCommandInjectionMiddleware,
16935
16968
  createCommandStringExtractionMiddleware,
16936
16969
  createCommandsMiddleware,
@@ -16949,9 +16982,12 @@ export {
16949
16982
  createMentionsMiddleware,
16950
16983
  createMessageComposerStateCompositionMiddleware,
16951
16984
  createPollComposerStateMiddleware,
16985
+ createPostUploadAttachmentEnrichmentMiddleware,
16952
16986
  createSharedLocationCompositionMiddleware,
16953
16987
  createTextComposerCompositionMiddleware,
16954
16988
  createTextComposerPreValidationMiddleware,
16989
+ createUploadConfigCheckMiddleware,
16990
+ createUploadErrorHandlerMiddleware,
16955
16991
  decodeBase64,
16956
16992
  defaultPollFieldBlurEventValidators,
16957
16993
  defaultPollFieldChangeEventValidators,