@stream-io/feeds-client 0.2.13 → 0.2.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 (51) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/index.js +2 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/react-bindings.js +2 -2
  5. package/dist/cjs/react-bindings.js.map +1 -1
  6. package/dist/es/index.mjs +3 -2
  7. package/dist/es/react-bindings.mjs +2 -2
  8. package/dist/es/react-bindings.mjs.map +1 -1
  9. package/dist/{index-gvcJhGPH.mjs → index-BSzSBlMh.mjs} +96 -15
  10. package/dist/index-BSzSBlMh.mjs.map +1 -0
  11. package/dist/{index-RzB4c4g6.js → index-DRX66SIx.js} +96 -15
  12. package/dist/index-DRX66SIx.js.map +1 -0
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/dist/types/common/real-time/StableWSConnection.d.ts +3 -3
  15. package/dist/types/common/real-time/StableWSConnection.d.ts.map +1 -1
  16. package/dist/types/feed/event-handlers/{notification-feed/handle-notification-feed-updated.d.ts → aggregated-feed/handle-aggregated-feed-updated.d.ts} +10 -4
  17. package/dist/types/feed/event-handlers/aggregated-feed/handle-aggregated-feed-updated.d.ts.map +1 -0
  18. package/dist/types/feed/event-handlers/aggregated-feed/index.d.ts +2 -0
  19. package/dist/types/feed/event-handlers/aggregated-feed/index.d.ts.map +1 -0
  20. package/dist/types/feed/event-handlers/index.d.ts +1 -1
  21. package/dist/types/feed/event-handlers/index.d.ts.map +1 -1
  22. package/dist/types/feed/feed.d.ts +2 -2
  23. package/dist/types/feed/feed.d.ts.map +1 -1
  24. package/dist/types/feeds-client/feeds-client.d.ts +8 -2
  25. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  26. package/dist/types/gen/feeds/FeedsApi.d.ts +1 -1
  27. package/dist/types/gen/feeds/FeedsApi.d.ts.map +1 -1
  28. package/dist/types/gen/model-decoders/event-decoder-mapping.d.ts.map +1 -1
  29. package/dist/types/gen/models/index.d.ts +17 -1
  30. package/dist/types/gen/models/index.d.ts.map +1 -1
  31. package/dist/types/utils/unique-array-merge.d.ts +1 -0
  32. package/dist/types/utils/unique-array-merge.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/bindings/react/hooks/util/useReactionActions.ts +1 -1
  35. package/src/feed/event-handlers/{notification-feed/handle-notification-feed-updated.test.ts → aggregated-feed/handle-aggregated-feed-updated.test.ts} +227 -1
  36. package/src/feed/event-handlers/{notification-feed/handle-notification-feed-updated.ts → aggregated-feed/handle-aggregated-feed-updated.ts} +71 -15
  37. package/src/feed/event-handlers/aggregated-feed/index.ts +1 -0
  38. package/src/feed/event-handlers/index.ts +1 -1
  39. package/src/feed/feed.ts +2 -0
  40. package/src/feeds-client/feeds-client.ts +15 -7
  41. package/src/gen/feeds/FeedsApi.ts +2 -2
  42. package/src/gen/model-decoders/decoders.ts +14 -0
  43. package/src/gen/model-decoders/event-decoder-mapping.ts +3 -0
  44. package/src/gen/models/index.ts +26 -2
  45. package/src/utils/unique-array-merge.ts +30 -0
  46. package/dist/index-RzB4c4g6.js.map +0 -1
  47. package/dist/index-gvcJhGPH.mjs.map +0 -1
  48. package/dist/types/feed/event-handlers/notification-feed/handle-notification-feed-updated.d.ts.map +0 -1
  49. package/dist/types/feed/event-handlers/notification-feed/index.d.ts +0 -2
  50. package/dist/types/feed/event-handlers/notification-feed/index.d.ts.map +0 -1
  51. package/src/feed/event-handlers/notification-feed/index.ts +0 -1
@@ -1246,6 +1246,17 @@ decoders.SingleFollowResponse = (input) => {
1246
1246
  };
1247
1247
  return decode(typeMappings, input);
1248
1248
  };
1249
+ decoders.StoriesFeedUpdatedEvent = (input) => {
1250
+ const typeMappings = {
1251
+ created_at: { type: "DatetimeType", isSingle: true },
1252
+ received_at: { type: "DatetimeType", isSingle: true },
1253
+ aggregated_activities: {
1254
+ type: "AggregatedActivityResponse",
1255
+ isSingle: false
1256
+ }
1257
+ };
1258
+ return decode(typeMappings, input);
1259
+ };
1249
1260
  decoders.SubmitActionResponse = (input) => {
1250
1261
  const typeMappings = {
1251
1262
  item: { type: "ReviewQueueItemResponse", isSingle: true }
@@ -1741,7 +1752,7 @@ class FeedsApi {
1741
1752
  decoders.PollVoteResponse?.(response.body);
1742
1753
  return { ...response.body, metadata: response.metadata };
1743
1754
  }
1744
- async addReaction(request) {
1755
+ async addActivityReaction(request) {
1745
1756
  const pathParams = {
1746
1757
  activity_id: request?.activity_id
1747
1758
  };
@@ -1951,9 +1962,9 @@ class FeedsApi {
1951
1962
  }
1952
1963
  async addComment(request) {
1953
1964
  const body = {
1954
- comment: request?.comment,
1955
1965
  object_id: request?.object_id,
1956
1966
  object_type: request?.object_type,
1967
+ comment: request?.comment,
1957
1968
  create_notification_activity: request?.create_notification_activity,
1958
1969
  parent_id: request?.parent_id,
1959
1970
  skip_push: request?.skip_push,
@@ -3693,7 +3704,7 @@ const getRateLimitFromResponseHeader = (response_headers) => {
3693
3704
  };
3694
3705
  return result;
3695
3706
  };
3696
- const version = "0.2.13";
3707
+ const version = "0.2.15";
3697
3708
  class ApiClient {
3698
3709
  constructor(apiKey, tokenManager, connectionIdManager, options) {
3699
3710
  this.apiKey = apiKey;
@@ -3904,6 +3915,7 @@ const eventDecoderMapping = {
3904
3915
  "feeds.poll.vote_casted": (data) => decoders.PollVoteCastedFeedEvent(data),
3905
3916
  "feeds.poll.vote_changed": (data) => decoders.PollVoteChangedFeedEvent(data),
3906
3917
  "feeds.poll.vote_removed": (data) => decoders.PollVoteRemovedFeedEvent(data),
3918
+ "feeds.stories_feed.updated": (data) => decoders.StoriesFeedUpdatedEvent(data),
3907
3919
  "health.check": (data) => decoders.HealthCheckEvent(data),
3908
3920
  "moderation.custom_action": (data) => decoders.ModerationCustomActionEvent(data),
3909
3921
  "moderation.flagged": (data) => decoders.ModerationFlaggedEvent(data),
@@ -4432,6 +4444,27 @@ const uniqueArrayMerge = (existingArray, arrayToMerge, getKey) => {
4432
4444
  });
4433
4445
  return existingArray.concat(filteredArrayToMerge);
4434
4446
  };
4447
+ const replaceUniqueArrayMerge = (existingArray, arrayToMerge, getKey) => {
4448
+ const existingMap = /* @__PURE__ */ new Map();
4449
+ (existingArray ?? []).forEach((item) => {
4450
+ existingMap.set(getKey(item), item);
4451
+ });
4452
+ const result = [];
4453
+ arrayToMerge.forEach((item) => {
4454
+ existingMap.set(getKey(item), item);
4455
+ });
4456
+ existingArray.forEach((originalItem) => {
4457
+ const updatedItem = existingMap.get(getKey(originalItem));
4458
+ if (updatedItem) {
4459
+ result.push(updatedItem);
4460
+ existingMap.delete(getKey(originalItem));
4461
+ }
4462
+ });
4463
+ existingMap.forEach((item) => {
4464
+ result.push(item);
4465
+ });
4466
+ return result;
4467
+ };
4435
4468
  const Constants = {
4436
4469
  DEFAULT_COMMENT_PAGINATION: "first"
4437
4470
  };
@@ -5575,15 +5608,29 @@ const addAggregatedActivitiesToState = (newAggregatedActivities, aggregatedActiv
5575
5608
  aggregated_activities: []
5576
5609
  };
5577
5610
  }
5578
- result.aggregated_activities = position === "start" ? uniqueArrayMerge(
5579
- newAggregatedActivities,
5580
- aggregatedActivities ?? [],
5581
- (a) => a.group
5582
- ) : uniqueArrayMerge(
5583
- aggregatedActivities ?? [],
5584
- newAggregatedActivities,
5585
- (a) => a.group
5586
- );
5611
+ switch (position) {
5612
+ case "start":
5613
+ result.aggregated_activities = uniqueArrayMerge(
5614
+ newAggregatedActivities,
5615
+ aggregatedActivities ?? [],
5616
+ (a) => a.group
5617
+ );
5618
+ break;
5619
+ case "end":
5620
+ result.aggregated_activities = uniqueArrayMerge(
5621
+ aggregatedActivities ?? [],
5622
+ newAggregatedActivities,
5623
+ (a) => a.group
5624
+ );
5625
+ break;
5626
+ case "replace":
5627
+ result.aggregated_activities = replaceUniqueArrayMerge(
5628
+ aggregatedActivities ?? [],
5629
+ newAggregatedActivities,
5630
+ (a) => a.group
5631
+ );
5632
+ break;
5633
+ }
5587
5634
  return result;
5588
5635
  };
5589
5636
  const updateNotificationStatus = (newNotificationStatus, currentNotificationStatus) => {
@@ -5650,6 +5697,35 @@ function handleNotificationFeedUpdated(event) {
5650
5697
  });
5651
5698
  }
5652
5699
  }
5700
+ function updateStoriesFeedFromEvent(aggregatedActivities, event) {
5701
+ if (!aggregatedActivities) {
5702
+ return {
5703
+ changed: false
5704
+ };
5705
+ }
5706
+ if (event.aggregated_activities) {
5707
+ const result = addAggregatedActivitiesToState(
5708
+ event.aggregated_activities,
5709
+ aggregatedActivities,
5710
+ "replace"
5711
+ );
5712
+ return result;
5713
+ }
5714
+ return {
5715
+ changed: false
5716
+ };
5717
+ }
5718
+ function handleStoriesFeedUpdated(event) {
5719
+ const result = updateStoriesFeedFromEvent(
5720
+ this.currentState.aggregated_activities,
5721
+ event
5722
+ );
5723
+ if (result.changed) {
5724
+ this.state.partialNext({
5725
+ aggregated_activities: result.data?.aggregated_activities
5726
+ });
5727
+ }
5728
+ }
5653
5729
  function handleWatchStarted() {
5654
5730
  this.state.partialNext({ watch: true });
5655
5731
  }
@@ -5692,6 +5768,7 @@ const _Feed = class _Feed extends FeedApi {
5692
5768
  "feeds.feed_member.removed": handleFeedMemberRemoved.bind(this),
5693
5769
  "feeds.feed_member.updated": handleFeedMemberUpdated.bind(this),
5694
5770
  "feeds.notification_feed.updated": handleNotificationFeedUpdated.bind(this),
5771
+ "feeds.stories_feed.updated": handleStoriesFeedUpdated.bind(this),
5695
5772
  // the poll events should be removed from here
5696
5773
  "feeds.poll.closed": _Feed.noop,
5697
5774
  "feeds.poll.deleted": _Feed.noop,
@@ -6379,13 +6456,16 @@ class FeedsClient extends FeedsApi {
6379
6456
  }
6380
6457
  return response;
6381
6458
  };
6382
- this.addReaction = async (request) => {
6383
- const response = await super.addReaction(request);
6459
+ this.addActivityReaction = async (request) => {
6460
+ const response = await super.addActivityReaction(request);
6384
6461
  for (const feed of Object.values(this.activeFeeds)) {
6385
6462
  handleActivityReactionAdded.bind(feed)(response, false);
6386
6463
  }
6387
6464
  return response;
6388
6465
  };
6466
+ this.addReaction = (request) => {
6467
+ return this.addActivityReaction(request);
6468
+ };
6389
6469
  this.deleteActivityReaction = async (request) => {
6390
6470
  const response = await super.deleteActivityReaction(request);
6391
6471
  for (const feed of Object.values(this.activeFeeds)) {
@@ -6762,7 +6842,8 @@ export {
6762
6842
  configureLoggers as o,
6763
6843
  getLogger as p,
6764
6844
  ensureExhausted as q,
6845
+ replaceUniqueArrayMerge as r,
6765
6846
  shouldUpdateState as s,
6766
6847
  uniqueArrayMerge as u
6767
6848
  };
6768
- //# sourceMappingURL=index-gvcJhGPH.mjs.map
6849
+ //# sourceMappingURL=index-BSzSBlMh.mjs.map