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.
@@ -5372,10 +5372,11 @@ var getTriggerCharWithToken = ({
5372
5372
  isCommand = false,
5373
5373
  acceptTrailingSpaces = true
5374
5374
  }) => {
5375
- const triggerNorWhitespace = `[^\\s${trigger}]*`;
5375
+ const escapedTrigger = escapeRegExp(trigger);
5376
+ const triggerNorWhitespace = `[^\\s${escapedTrigger}]*`;
5376
5377
  const match = text.match(
5377
5378
  new RegExp(
5378
- isCommand ? `^[${trigger}]${triggerNorWhitespace}$` : acceptTrailingSpaces ? `(?!^|\\W)?[${trigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` : `(?!^|\\W)?[${trigger}]${triggerNorWhitespace}$`,
5379
+ isCommand ? `^[${escapedTrigger}]${triggerNorWhitespace}$` : acceptTrailingSpaces ? `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` : `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}$`,
5379
5380
  "g"
5380
5381
  )
5381
5382
  );
@@ -9000,11 +9001,13 @@ var Channel = class {
9000
9001
  * unbanUser - Removes the bans for a user on a channel
9001
9002
  *
9002
9003
  * @param {string} targetUserID
9004
+ * @param {UnBanUserOptions} options
9003
9005
  * @returns {Promise<APIResponse>}
9004
9006
  */
9005
- async unbanUser(targetUserID) {
9007
+ async unbanUser(targetUserID, options) {
9006
9008
  this._checkInitialized();
9007
9009
  return await this.getClient().unbanUser(targetUserID, {
9010
+ ...options,
9008
9011
  type: this.type,
9009
9012
  id: this.id
9010
9013
  });
@@ -13590,6 +13593,20 @@ var StreamChat = class _StreamChat {
13590
13593
  }
13591
13594
  });
13592
13595
  }
13596
+ /**
13597
+ * queryFutureChannelBans - Query future channel bans created by a user
13598
+ *
13599
+ * @param {QueryFutureChannelBansOptions} options Option object with user_id, exclude_expired_bans, limit, offset
13600
+ * @returns {Promise<FutureChannelBansResponse>} Future Channel Bans Response
13601
+ */
13602
+ async queryFutureChannelBans(options = {}) {
13603
+ return await this.get(
13604
+ this.baseURL + "/query_future_channel_bans",
13605
+ {
13606
+ payload: options
13607
+ }
13608
+ );
13609
+ }
13593
13610
  /**
13594
13611
  * queryMessageFlags - Query message flags
13595
13612
  *
@@ -13609,10 +13626,10 @@ var StreamChat = class _StreamChat {
13609
13626
  /**
13610
13627
  * queryChannelsRequest - Queries channels and returns the raw response
13611
13628
  *
13612
- * @param {ChannelFilters} filterConditions object MongoDB style filters
13629
+ * @param {ChannelFilters} filterConditions object MongoDB style filters. Can be empty object when using predefined_filter in options.
13613
13630
  * @param {ChannelSort} [sort] Sort options, for instance {created_at: -1}.
13614
13631
  * When using multiple fields, make sure you use array of objects to guarantee field order, for instance [{last_updated: -1}, {created_at: 1}]
13615
- * @param {ChannelOptions} [options] Options object
13632
+ * @param {ChannelOptions} [options] Options object. Can include predefined_filter, filter_values, and sort_values for using predefined filters.
13616
13633
  *
13617
13634
  * @return {Promise<Array<ChannelAPIResponse>>} search channels response
13618
13635
  */
@@ -13626,11 +13643,18 @@ var StreamChat = class _StreamChat {
13626
13643
  if (!this._hasConnectionID()) {
13627
13644
  defaultOptions.watch = false;
13628
13645
  }
13629
- const payload = {
13646
+ const { predefined_filter, filter_values, sort_values, ...restOptions } = options;
13647
+ const payload = predefined_filter ? {
13648
+ predefined_filter,
13649
+ filter_values,
13650
+ sort_values,
13651
+ ...defaultOptions,
13652
+ ...restOptions
13653
+ } : {
13630
13654
  filter_conditions: filterConditions,
13631
13655
  sort: normalizeQuerySort(sort),
13632
13656
  ...defaultOptions,
13633
- ...options
13657
+ ...restOptions
13634
13658
  };
13635
13659
  const data = await this.post(
13636
13660
  this.baseURL + "/channels",
@@ -14737,7 +14761,7 @@ var StreamChat = class _StreamChat {
14737
14761
  if (this.userAgent) {
14738
14762
  return this.userAgent;
14739
14763
  }
14740
- const version = "9.28.0";
14764
+ const version = "9.29.0";
14741
14765
  const clientBundle = "browser-esm";
14742
14766
  let userAgentString = "";
14743
14767
  if (this.sdkIdentifier) {
@@ -15053,7 +15077,7 @@ var StreamChat = class _StreamChat {
15053
15077
  validateServerSideAuth() {
15054
15078
  if (!this.secret) {
15055
15079
  throw new Error(
15056
- "Campaigns is a server-side only feature. Please initialize the client with a secret to use this feature."
15080
+ "This feature can be used server-side only. Please initialize the client with a secret to use this feature."
15057
15081
  );
15058
15082
  }
15059
15083
  }
@@ -15918,6 +15942,79 @@ var StreamChat = class _StreamChat {
15918
15942
  payload
15919
15943
  );
15920
15944
  }
15945
+ /**
15946
+ * createPredefinedFilter - Creates a new predefined filter (server-side only)
15947
+ *
15948
+ * @param {CreatePredefinedFilterOptions} options Predefined filter options
15949
+ *
15950
+ * @return {Promise<PredefinedFilterResponse>} The created predefined filter
15951
+ */
15952
+ async createPredefinedFilter(options) {
15953
+ this.validateServerSideAuth();
15954
+ return await this.post(
15955
+ `${this.baseURL}/predefined_filters`,
15956
+ options
15957
+ );
15958
+ }
15959
+ /**
15960
+ * getPredefinedFilter - Gets a predefined filter by name (server-side only)
15961
+ *
15962
+ * @param {string} name Predefined filter name
15963
+ *
15964
+ * @return {Promise<PredefinedFilterResponse>} The predefined filter
15965
+ */
15966
+ async getPredefinedFilter(name) {
15967
+ this.validateServerSideAuth();
15968
+ return await this.get(
15969
+ `${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`
15970
+ );
15971
+ }
15972
+ /**
15973
+ * updatePredefinedFilter - Updates a predefined filter (server-side only)
15974
+ *
15975
+ * @param {string} name Predefined filter name
15976
+ * @param {UpdatePredefinedFilterOptions} options Predefined filter options
15977
+ *
15978
+ * @return {Promise<PredefinedFilterResponse>} The updated predefined filter
15979
+ */
15980
+ async updatePredefinedFilter(name, options) {
15981
+ this.validateServerSideAuth();
15982
+ return await this.put(
15983
+ `${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`,
15984
+ options
15985
+ );
15986
+ }
15987
+ /**
15988
+ * deletePredefinedFilter - Deletes a predefined filter (server-side only)
15989
+ *
15990
+ * @param {string} name Predefined filter name
15991
+ *
15992
+ * @return {Promise<APIResponse>} The server response
15993
+ */
15994
+ async deletePredefinedFilter(name) {
15995
+ this.validateServerSideAuth();
15996
+ return await this.delete(
15997
+ `${this.baseURL}/predefined_filters/${encodeURIComponent(name)}`
15998
+ );
15999
+ }
16000
+ /**
16001
+ * listPredefinedFilters - Lists all predefined filters (server-side only)
16002
+ *
16003
+ * @param {ListPredefinedFiltersOptions} options Query options
16004
+ *
16005
+ * @return {Promise<ListPredefinedFiltersResponse>} The list of predefined filters
16006
+ */
16007
+ async listPredefinedFilters(options = {}) {
16008
+ this.validateServerSideAuth();
16009
+ const { sort, ...paginationOptions } = options;
16010
+ return await this.get(
16011
+ `${this.baseURL}/predefined_filters`,
16012
+ {
16013
+ ...paginationOptions,
16014
+ ...sort ? { sort: JSON.stringify(sort) } : {}
16015
+ }
16016
+ );
16017
+ }
15921
16018
  };
15922
16019
 
15923
16020
  // src/events.ts