stream-chat 9.28.0 → 9.29.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.
@@ -5560,10 +5560,11 @@ var getTriggerCharWithToken = ({
5560
5560
  isCommand = false,
5561
5561
  acceptTrailingSpaces = true
5562
5562
  }) => {
5563
- const triggerNorWhitespace = `[^\\s${trigger}]*`;
5563
+ const escapedTrigger = escapeRegExp(trigger);
5564
+ const triggerNorWhitespace = `[^\\s${escapedTrigger}]*`;
5564
5565
  const match = text.match(
5565
5566
  new RegExp(
5566
- isCommand ? `^[${trigger}]${triggerNorWhitespace}$` : acceptTrailingSpaces ? `(?!^|\\W)?[${trigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` : `(?!^|\\W)?[${trigger}]${triggerNorWhitespace}$`,
5567
+ isCommand ? `^[${escapedTrigger}]${triggerNorWhitespace}$` : acceptTrailingSpaces ? `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` : `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}$`,
5567
5568
  "g"
5568
5569
  )
5569
5570
  );
@@ -9188,11 +9189,13 @@ var Channel = class {
9188
9189
  * unbanUser - Removes the bans for a user on a channel
9189
9190
  *
9190
9191
  * @param {string} targetUserID
9192
+ * @param {UnBanUserOptions} options
9191
9193
  * @returns {Promise<APIResponse>}
9192
9194
  */
9193
- async unbanUser(targetUserID) {
9195
+ async unbanUser(targetUserID, options) {
9194
9196
  this._checkInitialized();
9195
9197
  return await this.getClient().unbanUser(targetUserID, {
9198
+ ...options,
9196
9199
  type: this.type,
9197
9200
  id: this.id
9198
9201
  });
@@ -13778,6 +13781,20 @@ var StreamChat = class _StreamChat {
13778
13781
  }
13779
13782
  });
13780
13783
  }
13784
+ /**
13785
+ * queryFutureChannelBans - Query future channel bans created by a user
13786
+ *
13787
+ * @param {QueryFutureChannelBansOptions} options Option object with user_id, exclude_expired_bans, limit, offset
13788
+ * @returns {Promise<FutureChannelBansResponse>} Future Channel Bans Response
13789
+ */
13790
+ async queryFutureChannelBans(options = {}) {
13791
+ return await this.get(
13792
+ this.baseURL + "/query_future_channel_bans",
13793
+ {
13794
+ payload: options
13795
+ }
13796
+ );
13797
+ }
13781
13798
  /**
13782
13799
  * queryMessageFlags - Query message flags
13783
13800
  *
@@ -13797,10 +13814,10 @@ var StreamChat = class _StreamChat {
13797
13814
  /**
13798
13815
  * queryChannelsRequest - Queries channels and returns the raw response
13799
13816
  *
13800
- * @param {ChannelFilters} filterConditions object MongoDB style filters
13817
+ * @param {ChannelFilters} filterConditions object MongoDB style filters. Can be empty object when using predefined_filter in options.
13801
13818
  * @param {ChannelSort} [sort] Sort options, for instance {created_at: -1}.
13802
13819
  * When using multiple fields, make sure you use array of objects to guarantee field order, for instance [{last_updated: -1}, {created_at: 1}]
13803
- * @param {ChannelOptions} [options] Options object
13820
+ * @param {ChannelOptions} [options] Options object. Can include predefined_filter, filter_values, and sort_values for using predefined filters.
13804
13821
  *
13805
13822
  * @return {Promise<Array<ChannelAPIResponse>>} search channels response
13806
13823
  */
@@ -13814,11 +13831,18 @@ var StreamChat = class _StreamChat {
13814
13831
  if (!this._hasConnectionID()) {
13815
13832
  defaultOptions.watch = false;
13816
13833
  }
13817
- const payload = {
13834
+ const { predefined_filter, filter_values, sort_values, ...restOptions } = options;
13835
+ const payload = predefined_filter ? {
13836
+ predefined_filter,
13837
+ filter_values,
13838
+ sort_values,
13839
+ ...defaultOptions,
13840
+ ...restOptions
13841
+ } : {
13818
13842
  filter_conditions: filterConditions,
13819
13843
  sort: normalizeQuerySort(sort),
13820
13844
  ...defaultOptions,
13821
- ...options
13845
+ ...restOptions
13822
13846
  };
13823
13847
  const data = await this.post(
13824
13848
  this.baseURL + "/channels",
@@ -14925,7 +14949,7 @@ var StreamChat = class _StreamChat {
14925
14949
  if (this.userAgent) {
14926
14950
  return this.userAgent;
14927
14951
  }
14928
- const version = "9.28.0";
14952
+ const version = "9.29.0";
14929
14953
  const clientBundle = "browser-cjs";
14930
14954
  let userAgentString = "";
14931
14955
  if (this.sdkIdentifier) {
@@ -15241,7 +15265,7 @@ var StreamChat = class _StreamChat {
15241
15265
  validateServerSideAuth() {
15242
15266
  if (!this.secret) {
15243
15267
  throw new Error(
15244
- "Campaigns is a server-side only feature. Please initialize the client with a secret to use this feature."
15268
+ "This feature can be used server-side only. Please initialize the client with a secret to use this feature."
15245
15269
  );
15246
15270
  }
15247
15271
  }
@@ -16106,6 +16130,79 @@ var StreamChat = class _StreamChat {
16106
16130
  payload
16107
16131
  );
16108
16132
  }
16133
+ /**
16134
+ * createPredefinedFilter - Creates a new predefined filter (server-side only)
16135
+ *
16136
+ * @param {CreatePredefinedFilterOptions} options Predefined filter options
16137
+ *
16138
+ * @return {Promise<PredefinedFilterResponse>} The created predefined filter
16139
+ */
16140
+ async createPredefinedFilter(options) {
16141
+ this.validateServerSideAuth();
16142
+ return await this.post(
16143
+ `${this.baseURL}/predefined_filters`,
16144
+ options
16145
+ );
16146
+ }
16147
+ /**
16148
+ * getPredefinedFilter - Gets a predefined filter by name (server-side only)
16149
+ *
16150
+ * @param {string} name Predefined filter name
16151
+ *
16152
+ * @return {Promise<PredefinedFilterResponse>} The predefined filter
16153
+ */
16154
+ async getPredefinedFilter(name) {
16155
+ this.validateServerSideAuth();
16156
+ return await this.get(
16157
+ `${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`
16158
+ );
16159
+ }
16160
+ /**
16161
+ * updatePredefinedFilter - Updates a predefined filter (server-side only)
16162
+ *
16163
+ * @param {string} name Predefined filter name
16164
+ * @param {UpdatePredefinedFilterOptions} options Predefined filter options
16165
+ *
16166
+ * @return {Promise<PredefinedFilterResponse>} The updated predefined filter
16167
+ */
16168
+ async updatePredefinedFilter(name, options) {
16169
+ this.validateServerSideAuth();
16170
+ return await this.put(
16171
+ `${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`,
16172
+ options
16173
+ );
16174
+ }
16175
+ /**
16176
+ * deletePredefinedFilter - Deletes a predefined filter (server-side only)
16177
+ *
16178
+ * @param {string} name Predefined filter name
16179
+ *
16180
+ * @return {Promise<APIResponse>} The server response
16181
+ */
16182
+ async deletePredefinedFilter(name) {
16183
+ this.validateServerSideAuth();
16184
+ return await this.delete(
16185
+ `${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`
16186
+ );
16187
+ }
16188
+ /**
16189
+ * listPredefinedFilters - Lists all predefined filters (server-side only)
16190
+ *
16191
+ * @param {ListPredefinedFiltersOptions} options Query options
16192
+ *
16193
+ * @return {Promise<ListPredefinedFiltersResponse>} The list of predefined filters
16194
+ */
16195
+ async listPredefinedFilters(options = {}) {
16196
+ this.validateServerSideAuth();
16197
+ const { sort, ...paginationOptions } = options;
16198
+ return await this.get(
16199
+ `${this.baseURL}/predefined_filters`,
16200
+ {
16201
+ ...paginationOptions,
16202
+ ...sort ? { sort: JSON.stringify(sort) } : {}
16203
+ }
16204
+ );
16205
+ }
16109
16206
  };
16110
16207
 
16111
16208
  // src/events.ts