stream-chat 9.0.0-rc.13 → 9.0.0-rc.15

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.
Files changed (29) hide show
  1. package/dist/cjs/index.browser.cjs +74 -34
  2. package/dist/cjs/index.browser.cjs.map +4 -4
  3. package/dist/cjs/index.node.cjs +76 -34
  4. package/dist/cjs/index.node.cjs.map +4 -4
  5. package/dist/esm/index.js +74 -34
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/types/client.d.ts +1 -1
  8. package/dist/types/custom_types.d.ts +2 -0
  9. package/dist/types/index.d.ts +2 -1
  10. package/dist/types/messageComposer/CustomDataManager.d.ts +9 -5
  11. package/dist/types/messageComposer/index.d.ts +1 -0
  12. package/dist/types/messageComposer/messageComposer.d.ts +3 -2
  13. package/dist/types/messageComposer/middleware/messageComposer/attachments.d.ts +2 -2
  14. package/dist/types/messageComposer/middleware/messageComposer/cleanData.d.ts +1 -1
  15. package/dist/types/messageComposer/middleware/messageComposer/compositionValidation.d.ts +2 -2
  16. package/dist/types/messageComposer/middleware/messageComposer/customData.d.ts +2 -2
  17. package/dist/types/messageComposer/middleware/messageComposer/linkPreviews.d.ts +2 -2
  18. package/dist/types/messageComposer/middleware/messageComposer/messageComposerState.d.ts +2 -2
  19. package/dist/types/messageComposer/middleware/messageComposer/textComposer.d.ts +2 -2
  20. package/dist/types/messageComposer/textComposer.d.ts +9 -2
  21. package/package.json +1 -1
  22. package/src/client.ts +1 -1
  23. package/src/custom_types.ts +1 -0
  24. package/src/index.ts +2 -0
  25. package/src/messageComposer/CustomDataManager.ts +32 -11
  26. package/src/messageComposer/index.ts +1 -0
  27. package/src/messageComposer/messageComposer.ts +3 -3
  28. package/src/messageComposer/middleware/messageComposer/customData.ts +2 -2
  29. package/src/messageComposer/textComposer.ts +39 -1
@@ -169,6 +169,7 @@ __export(index_exports, {
169
169
  CheckSignature: () => CheckSignature,
170
170
  ClientState: () => ClientState,
171
171
  CommandSearchSource: () => CommandSearchSource,
172
+ CustomDataManager: () => CustomDataManager,
172
173
  DEFAULT_ATTACHMENT_MANAGER_CONFIG: () => DEFAULT_ATTACHMENT_MANAGER_CONFIG,
173
174
  DEFAULT_CHANNEL_MANAGER_OPTIONS: () => DEFAULT_CHANNEL_MANAGER_OPTIONS,
174
175
  DEFAULT_CHANNEL_MANAGER_PAGINATION_OPTIONS: () => DEFAULT_CHANNEL_MANAGER_PAGINATION_OPTIONS,
@@ -194,6 +195,7 @@ __export(index_exports, {
194
195
  MessageComposerMiddlewareExecutor: () => MessageComposerMiddlewareExecutor,
195
196
  MessageDraftComposerMiddlewareExecutor: () => MessageDraftComposerMiddlewareExecutor,
196
197
  MessageSearchSource: () => MessageSearchSource,
198
+ MiddlewareExecutor: () => MiddlewareExecutor,
197
199
  MinPriority: () => MinPriority,
198
200
  Moderation: () => Moderation,
199
201
  Permission: () => Permission,
@@ -4675,6 +4677,45 @@ var DEFAULT_COMPOSER_CONFIG = {
4675
4677
  text: DEFAULT_TEXT_COMPOSER_CONFIG
4676
4678
  };
4677
4679
 
4680
+ // src/messageComposer/CustomDataManager.ts
4681
+ var initState2 = (options) => {
4682
+ if (!options)
4683
+ return { message: {}, custom: {} };
4684
+ return { message: {}, custom: {} };
4685
+ };
4686
+ var CustomDataManager = class {
4687
+ constructor({ composer, message }) {
4688
+ this.isMessageDataEqual = (nextState, previousState) => JSON.stringify(nextState.message) === JSON.stringify(previousState?.message);
4689
+ this.initState = ({ message } = {}) => {
4690
+ this.state.next(initState2({ composer: this.composer, message }));
4691
+ };
4692
+ this.composer = composer;
4693
+ this.state = new StateStore(initState2({ composer, message }));
4694
+ }
4695
+ get customMessageData() {
4696
+ return this.state.getLatestValue().message;
4697
+ }
4698
+ get customComposerData() {
4699
+ return this.state.getLatestValue().custom;
4700
+ }
4701
+ setMessageData(data) {
4702
+ this.state.partialNext({
4703
+ message: {
4704
+ ...this.state.getLatestValue().message,
4705
+ ...data
4706
+ }
4707
+ });
4708
+ }
4709
+ setCustomData(data) {
4710
+ this.state.partialNext({
4711
+ custom: {
4712
+ ...this.state.getLatestValue().custom,
4713
+ ...data
4714
+ }
4715
+ });
4716
+ }
4717
+ };
4718
+
4678
4719
  // src/messageComposer/linkPreviewsManager.ts
4679
4720
  var LinkPreviewStatus = /* @__PURE__ */ ((LinkPreviewStatus2) => {
4680
4721
  LinkPreviewStatus2["DISMISSED"] = "dismissed";
@@ -4685,7 +4726,7 @@ var LinkPreviewStatus = /* @__PURE__ */ ((LinkPreviewStatus2) => {
4685
4726
  return LinkPreviewStatus2;
4686
4727
  })(LinkPreviewStatus || {});
4687
4728
  var linkPreviewArrayToMap = (linkPreviews) => new Map(linkPreviews.map((linkPreview) => [linkPreview.og_scrape_url, linkPreview]));
4688
- var initState2 = ({
4729
+ var initState3 = ({
4689
4730
  message
4690
4731
  }) => message ? {
4691
4732
  previews: message.attachments?.reduce((acc, attachment) => {
@@ -4703,7 +4744,7 @@ var _LinkPreviewsManager = class _LinkPreviewsManager {
4703
4744
  constructor({ composer, message }) {
4704
4745
  this.shouldDiscardEnrichQueries = false;
4705
4746
  this.initState = ({ message } = {}) => {
4706
- this.state.next(initState2({ message: this.enabled ? message : void 0 }));
4747
+ this.state.next(initState3({ message: this.enabled ? message : void 0 }));
4707
4748
  };
4708
4749
  this._findAndEnrichUrls = async (text) => {
4709
4750
  if (!this.enabled) return;
@@ -4802,7 +4843,7 @@ var _LinkPreviewsManager = class _LinkPreviewsManager {
4802
4843
  };
4803
4844
  this.composer = composer;
4804
4845
  this.state = new StateStore(
4805
- initState2({ message: this.enabled ? message : void 0 })
4846
+ initState3({ message: this.enabled ? message : void 0 })
4806
4847
  );
4807
4848
  this.findAndEnrichUrls = debounce(
4808
4849
  this._findAndEnrichUrls.bind(this),
@@ -4887,33 +4928,6 @@ _LinkPreviewsManager.getPreviewData = (preview) => {
4887
4928
  };
4888
4929
  var LinkPreviewsManager = _LinkPreviewsManager;
4889
4930
 
4890
- // src/messageComposer/CustomDataManager.ts
4891
- var initState3 = (options) => {
4892
- if (!options) return { data: {} };
4893
- return { data: {} };
4894
- };
4895
- var CustomDataManager = class {
4896
- constructor({ composer, message }) {
4897
- this.isDataEqual = (nextState, previousState) => JSON.stringify(nextState.data) === JSON.stringify(previousState?.data);
4898
- this.initState = ({ message } = {}) => {
4899
- this.state.next(initState3({ composer: this.composer, message }));
4900
- };
4901
- this.composer = composer;
4902
- this.state = new StateStore(initState3({ composer, message }));
4903
- }
4904
- get data() {
4905
- return this.state.getLatestValue().data;
4906
- }
4907
- setData(data) {
4908
- this.state.partialNext({
4909
- data: {
4910
- ...this.state.getLatestValue().data,
4911
- ...data
4912
- }
4913
- });
4914
- }
4915
- };
4916
-
4917
4931
  // src/utils/concurrency.ts
4918
4932
  var withoutConcurrency = createRunner(wrapWithContinuationTracking);
4919
4933
  var withCancellation = createRunner(wrapWithCancellation);
@@ -5450,7 +5464,7 @@ var createCustomDataCompositionMiddleware = (composer) => ({
5450
5464
  input,
5451
5465
  nextHandler
5452
5466
  }) => {
5453
- const data = composer.customDataManager.data;
5467
+ const data = composer.customDataManager.customMessageData;
5454
5468
  if (!data) return nextHandler(input);
5455
5469
  return nextHandler({
5456
5470
  ...input,
@@ -5474,7 +5488,7 @@ var createDraftCustomDataCompositionMiddleware = (composer) => ({
5474
5488
  input,
5475
5489
  nextHandler
5476
5490
  }) => {
5477
- const data = composer.customDataManager.data;
5491
+ const data = composer.customDataManager.customMessageData;
5478
5492
  if (!data) return nextHandler(input);
5479
5493
  return nextHandler({
5480
5494
  ...input,
@@ -6665,6 +6679,10 @@ var TextComposer = class {
6665
6679
  if (!this.enabled) return;
6666
6680
  this.state.partialNext({ text });
6667
6681
  };
6682
+ this.setSelection = (selection) => {
6683
+ if (!this.enabled) return;
6684
+ this.state.partialNext({ selection });
6685
+ };
6668
6686
  this.insertText = ({ text, selection }) => {
6669
6687
  if (!this.enabled) return;
6670
6688
  const finalSelection = selection ?? {
@@ -6692,6 +6710,28 @@ var TextComposer = class {
6692
6710
  }
6693
6711
  });
6694
6712
  };
6713
+ this.wrapSelection = ({
6714
+ head = "",
6715
+ selection,
6716
+ tail = ""
6717
+ }) => {
6718
+ if (!this.enabled) return;
6719
+ const currentSelection = selection ?? this.selection;
6720
+ const prependedText = this.text.slice(0, currentSelection.start);
6721
+ const selectedText = this.text.slice(currentSelection.start, currentSelection.end);
6722
+ const appendedText = this.text.slice(currentSelection.end);
6723
+ const finalSelection = {
6724
+ start: prependedText.length + head.length,
6725
+ end: prependedText.length + head.length + selectedText.length
6726
+ };
6727
+ this.state.partialNext({
6728
+ text: [prependedText, head, selectedText, tail, appendedText].join(""),
6729
+ selection: finalSelection
6730
+ });
6731
+ };
6732
+ this.setSuggestions = (suggestions) => {
6733
+ this.state.partialNext({ suggestions });
6734
+ };
6695
6735
  this.closeSuggestions = () => {
6696
6736
  const { suggestions } = this.state.getLatestValue();
6697
6737
  if (!suggestions) return;
@@ -7406,7 +7446,7 @@ var _MessageComposer = class _MessageComposer {
7406
7446
  }
7407
7447
  });
7408
7448
  this.subscribeCustomDataManagerStateChanged = () => this.customDataManager.state.subscribe((nextValue, previousValue) => {
7409
- if (typeof previousValue !== "undefined" && !this.customDataManager.isDataEqual(nextValue, previousValue)) {
7449
+ if (typeof previousValue !== "undefined" && !this.customDataManager.isMessageDataEqual(nextValue, previousValue)) {
7410
7450
  this.logStateUpdateTimestamp();
7411
7451
  }
7412
7452
  });
@@ -13731,7 +13771,7 @@ var StreamChat = class _StreamChat {
13731
13771
  if (this.userAgent) {
13732
13772
  return this.userAgent;
13733
13773
  }
13734
- const version = "9.0.0-rc.13";
13774
+ const version = "9.0.0-rc.15";
13735
13775
  const clientBundle = "browser-cjs";
13736
13776
  let userAgentString = "";
13737
13777
  if (this.sdkIdentifier) {