@stream-io/feeds-client 0.2.18 → 0.2.20

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 (84) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/index.js +94 -25
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/react-bindings.js +26 -55
  5. package/dist/cjs/react-bindings.js.map +1 -1
  6. package/dist/es/index.mjs +86 -17
  7. package/dist/es/index.mjs.map +1 -1
  8. package/dist/es/react-bindings.mjs +19 -48
  9. package/dist/es/react-bindings.mjs.map +1 -1
  10. package/dist/{index-Zde8UE5f.mjs → feeds-client-BObWT4vl.mjs} +191 -92
  11. package/dist/feeds-client-BObWT4vl.mjs.map +1 -0
  12. package/dist/{index--koeDtxd.js → feeds-client-BlR_3zy2.js} +178 -79
  13. package/dist/feeds-client-BlR_3zy2.js.map +1 -0
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.d.ts +2 -32
  16. package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.d.ts.map +1 -1
  17. package/dist/types/common/real-time/event-models.d.ts +7 -2
  18. package/dist/types/common/real-time/event-models.d.ts.map +1 -1
  19. package/dist/types/common/types.d.ts +1 -0
  20. package/dist/types/common/types.d.ts.map +1 -1
  21. package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts.map +1 -1
  22. package/dist/types/feed/event-handlers/activity/handle-activity-updated.d.ts.map +1 -1
  23. package/dist/types/feed/feed.d.ts +1 -1
  24. package/dist/types/feed/feed.d.ts.map +1 -1
  25. package/dist/types/feeds-client/feeds-client.d.ts +9 -1
  26. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  27. package/dist/types/utils/throttling/index.d.ts +3 -0
  28. package/dist/types/utils/throttling/index.d.ts.map +1 -0
  29. package/dist/types/utils/throttling/throttle.d.ts +34 -0
  30. package/dist/types/utils/throttling/throttle.d.ts.map +1 -0
  31. package/dist/types/utils/throttling/throttled-get-batched-own-capabilities.d.ts +14 -0
  32. package/dist/types/utils/throttling/throttled-get-batched-own-capabilities.d.ts.map +1 -0
  33. package/package.json +7 -3
  34. package/react-bindings.d.ts +11 -0
  35. package/react-bindings.js +7 -0
  36. package/react-bindings.mjs +11 -0
  37. package/src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts +21 -73
  38. package/src/common/real-time/event-models.ts +8 -2
  39. package/src/common/types.ts +1 -0
  40. package/src/feed/event-handlers/activity/handle-activity-added.ts +9 -1
  41. package/src/feed/event-handlers/activity/handle-activity-updated.ts +4 -0
  42. package/src/feed/feed.ts +18 -3
  43. package/src/feeds-client/feeds-client.ts +106 -3
  44. package/src/utils/throttling/index.ts +2 -0
  45. package/src/utils/throttling/throttle.ts +123 -0
  46. package/src/utils/throttling/throttled-get-batched-own-capabilities.ts +44 -0
  47. package/dist/index--koeDtxd.js.map +0 -1
  48. package/dist/index-Zde8UE5f.mjs.map +0 -1
  49. package/src/feed/event-handlers/activity/activity-marked-utils.test.ts +0 -208
  50. package/src/feed/event-handlers/activity/activity-reaction-utils.test.ts +0 -371
  51. package/src/feed/event-handlers/activity/handle-activity-added.test.ts +0 -97
  52. package/src/feed/event-handlers/activity/handle-activity-deleted.test.ts +0 -117
  53. package/src/feed/event-handlers/activity/handle-activity-pinned.test.ts +0 -60
  54. package/src/feed/event-handlers/activity/handle-activity-reaction-added.test.ts +0 -257
  55. package/src/feed/event-handlers/activity/handle-activity-reaction-deleted.test.ts +0 -317
  56. package/src/feed/event-handlers/activity/handle-activity-reaction-updated.test.ts +0 -282
  57. package/src/feed/event-handlers/activity/handle-activity-unpinned.test.ts +0 -95
  58. package/src/feed/event-handlers/activity/handle-activity-updated.test.ts +0 -245
  59. package/src/feed/event-handlers/add-aggregated-activities-to-state.test.ts +0 -510
  60. package/src/feed/event-handlers/bookmark/bookmark-utils.test.ts +0 -521
  61. package/src/feed/event-handlers/bookmark/handle-bookmark-added.test.ts +0 -178
  62. package/src/feed/event-handlers/bookmark/handle-bookmark-deleted.test.ts +0 -188
  63. package/src/feed/event-handlers/bookmark/handle-bookmark-updated.test.ts +0 -196
  64. package/src/feed/event-handlers/comment/handle-comment-added.test.ts +0 -271
  65. package/src/feed/event-handlers/comment/handle-comment-deleted.test.ts +0 -255
  66. package/src/feed/event-handlers/comment/handle-comment-reaction-added.test.ts +0 -329
  67. package/src/feed/event-handlers/comment/handle-comment-reaction-deleted.test.ts +0 -343
  68. package/src/feed/event-handlers/comment/handle-comment-reaction-updated.test.ts +0 -350
  69. package/src/feed/event-handlers/comment/handle-comment-updated.test.ts +0 -267
  70. package/src/feed/event-handlers/comment/utils/update-comment-count.test.ts +0 -322
  71. package/src/feed/event-handlers/feed-member/handle-feed-member-added.test.ts +0 -75
  72. package/src/feed/event-handlers/feed-member/handle-feed-member-removed.test.ts +0 -82
  73. package/src/feed/event-handlers/feed-member/handle-feed-member-updated.test.ts +0 -84
  74. package/src/feed/event-handlers/follow/follow-state-update-queue.test.ts +0 -219
  75. package/src/feed/event-handlers/follow/handle-follow-created.test.ts +0 -250
  76. package/src/feed/event-handlers/follow/handle-follow-deleted.test.ts +0 -268
  77. package/src/feed/event-handlers/follow/handle-follow-updated.test.ts +0 -131
  78. package/src/feed/event-handlers/notification-feed/handle-notification-feed-updated.test.ts +0 -182
  79. package/src/feed/event-handlers/story-feeds/handle-story-feeds-updated.test.ts +0 -45
  80. package/src/feed/feed.test.ts +0 -90
  81. package/src/feeds-client/event-handlers/user/handle-user-updated.test.ts +0 -53
  82. package/src/utils/event-triggered-by-connected-user.test.ts +0 -73
  83. package/src/utils/state-update-queue.test.ts +0 -129
  84. package/src/utils/unique-array-merge.test.ts +0 -179
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require$$0 = require("react");
4
4
  require("@stream-io/state-store");
5
- const index = require("../index--koeDtxd.js");
5
+ const feedsClient = require("../feeds-client-BlR_3zy2.js");
6
6
  require("@stream-io/logger");
7
7
  require("axios");
8
8
  var shim = { exports: {} };
@@ -389,7 +389,7 @@ const useCreateFeedsClient = ({
389
389
  options
390
390
  }) => {
391
391
  const [client, setClient] = require$$0.useState(
392
- () => new index.FeedsClient(apiKey, options)
392
+ () => new feedsClient.FeedsClient(apiKey, options)
393
393
  );
394
394
  const [error, setError] = require$$0.useState(null);
395
395
  const [cachedUserData, setCachedUserData] = require$$0.useState(userData);
@@ -401,7 +401,7 @@ const useCreateFeedsClient = ({
401
401
  setCachedUserData(userData);
402
402
  }
403
403
  require$$0.useEffect(() => {
404
- const _client = new index.FeedsClient(apiKey, cachedOptions);
404
+ const _client = new feedsClient.FeedsClient(apiKey, cachedOptions);
405
405
  const connectionPromise = _client.connectUser(cachedUserData, tokenOrProvider).then(() => {
406
406
  setError(null);
407
407
  console.log("Successfully connected user: ", cachedUserData.id);
@@ -431,18 +431,18 @@ const useFeedsClient = () => {
431
431
  };
432
432
  const useClientConnectedUser = () => {
433
433
  const client = useFeedsClient();
434
- const { user } = useStateStore(client?.state, selector$c) ?? {};
434
+ const { user } = useStateStore(client?.state, selector$b) ?? {};
435
435
  return user;
436
436
  };
437
- const selector$c = (nextState) => ({
437
+ const selector$b = (nextState) => ({
438
438
  user: nextState.connected_user
439
439
  });
440
440
  const useWsConnectionState = () => {
441
441
  const client = useFeedsClient();
442
- const { is_healthy } = useStateStore(client?.state, selector$b) ?? {};
442
+ const { is_healthy } = useStateStore(client?.state, selector$a) ?? {};
443
443
  return { is_healthy };
444
444
  };
445
- const selector$b = (nextState) => ({
445
+ const selector$a = (nextState) => ({
446
446
  is_healthy: nextState.is_ws_connection_healthy
447
447
  });
448
448
  const StreamFeedContext = require$$0.createContext(void 0);
@@ -459,7 +459,7 @@ const useStableCallback = (callback) => {
459
459
  const useFeedActivities = (feedFromProps) => {
460
460
  const feedFromContext = useFeedContext();
461
461
  const feed = feedFromProps ?? feedFromContext;
462
- const data = useStateStore(feed?.state, selector$a);
462
+ const data = useStateStore(feed?.state, selector$9);
463
463
  const loadNextPage = useStableCallback(async () => {
464
464
  if (!feed || !data?.has_next_page || data?.is_loading) {
465
465
  return;
@@ -468,7 +468,7 @@ const useFeedActivities = (feedFromProps) => {
468
468
  });
469
469
  return require$$0.useMemo(() => ({ ...data, loadNextPage }), [data, loadNextPage]);
470
470
  };
471
- const selector$a = ({
471
+ const selector$9 = ({
472
472
  is_loading_activities,
473
473
  next,
474
474
  activities = []
@@ -494,7 +494,7 @@ function useComments({
494
494
  const loadNextPage = require$$0.useMemo(() => {
495
495
  if (!feed) return void 0;
496
496
  return (request) => {
497
- if (index.isCommentResponse(parent)) {
497
+ if (feedsClient.isCommentResponse(parent)) {
498
498
  return feed.loadNextPageCommentReplies(parent, request);
499
499
  } else {
500
500
  return feed.loadNextPageActivityComments(parent, request);
@@ -507,7 +507,7 @@ function useComments({
507
507
  }
508
508
  return {
509
509
  ...data,
510
- has_next_page: index.checkHasAnotherPage(
510
+ has_next_page: feedsClient.checkHasAnotherPage(
511
511
  data.comments,
512
512
  data.comments_pagination?.next
513
513
  ),
@@ -517,50 +517,21 @@ function useComments({
517
517
  }, [data, loadNextPage]);
518
518
  }
519
519
  const stableEmptyArray = [];
520
- const selector$9 = (currentState) => ({
521
- oc: currentState.own_capabilities ?? stableEmptyArray
522
- });
523
520
  const useOwnCapabilities = (feedFromProps) => {
521
+ const client = useFeedsClient();
524
522
  const feedFromContext = useFeedContext();
525
523
  const feed = feedFromProps ?? feedFromContext;
526
- const { oc = stableEmptyArray } = useStateStore(feed?.state, selector$9) ?? {};
527
- return require$$0.useMemo(
528
- () => {
529
- const capabilitiesSet = new Set(oc);
530
- return {
531
- can_add_activity: capabilitiesSet.has(index.FeedOwnCapability.ADD_ACTIVITY),
532
- can_add_activity_bookmark: capabilitiesSet.has(index.FeedOwnCapability.ADD_ACTIVITY_BOOKMARK),
533
- can_add_activity_reaction: capabilitiesSet.has(index.FeedOwnCapability.ADD_ACTIVITY_REACTION),
534
- can_add_comment: capabilitiesSet.has(index.FeedOwnCapability.ADD_COMMENT),
535
- can_add_comment_reaction: capabilitiesSet.has(index.FeedOwnCapability.ADD_COMMENT_REACTION),
536
- can_create_feed: capabilitiesSet.has(index.FeedOwnCapability.CREATE_FEED),
537
- can_delete_any_activity: capabilitiesSet.has(index.FeedOwnCapability.DELETE_ANY_ACTIVITY),
538
- can_delete_any_comment: capabilitiesSet.has(index.FeedOwnCapability.DELETE_ANY_COMMENT),
539
- can_delete_feed: capabilitiesSet.has(index.FeedOwnCapability.DELETE_FEED),
540
- can_delete_own_activity: capabilitiesSet.has(index.FeedOwnCapability.DELETE_OWN_ACTIVITY),
541
- can_delete_own_activity_bookmark: capabilitiesSet.has(index.FeedOwnCapability.DELETE_OWN_ACTIVITY_BOOKMARK),
542
- can_delete_own_activity_reaction: capabilitiesSet.has(index.FeedOwnCapability.DELETE_OWN_ACTIVITY_REACTION),
543
- can_delete_own_comment: capabilitiesSet.has(index.FeedOwnCapability.DELETE_OWN_COMMENT),
544
- can_delete_own_comment_reaction: capabilitiesSet.has(index.FeedOwnCapability.DELETE_OWN_COMMENT_REACTION),
545
- can_follow: capabilitiesSet.has(index.FeedOwnCapability.FOLLOW),
546
- can_pin_activity: capabilitiesSet.has(index.FeedOwnCapability.PIN_ACTIVITY),
547
- can_query_feed_members: capabilitiesSet.has(index.FeedOwnCapability.QUERY_FEED_MEMBERS),
548
- can_query_follows: capabilitiesSet.has(index.FeedOwnCapability.QUERY_FOLLOWS),
549
- can_read_activities: capabilitiesSet.has(index.FeedOwnCapability.READ_ACTIVITIES),
550
- can_read_feed: capabilitiesSet.has(index.FeedOwnCapability.READ_FEED),
551
- can_unfollow: capabilitiesSet.has(index.FeedOwnCapability.UNFOLLOW),
552
- can_update_any_activity: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_ANY_ACTIVITY),
553
- can_update_any_comment: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_ANY_COMMENT),
554
- can_update_feed: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_FEED),
555
- can_update_feed_followers: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_FEED_FOLLOWERS),
556
- can_update_feed_members: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_FEED_MEMBERS),
557
- can_update_own_activity: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_OWN_ACTIVITY),
558
- can_update_own_activity_bookmark: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_OWN_ACTIVITY_BOOKMARK),
559
- can_update_own_comment: capabilitiesSet.has(index.FeedOwnCapability.UPDATE_OWN_COMMENT)
560
- };
561
- },
562
- [oc]
563
- );
524
+ const fid = feed?.feed;
525
+ const selector2 = require$$0.useCallback((currentState) => {
526
+ if (!fid) {
527
+ return { feedOwnCapabilities: stableEmptyArray };
528
+ }
529
+ return {
530
+ feedOwnCapabilities: currentState.own_capabilities_by_fid[fid] ?? stableEmptyArray
531
+ };
532
+ }, [fid]);
533
+ const { feedOwnCapabilities = stableEmptyArray } = useStateStore(client?.state, selector2) ?? {};
534
+ return feedOwnCapabilities;
564
535
  };
565
536
  const selector$8 = ({
566
537
  follower_count,
@@ -586,7 +557,7 @@ function useFollowers(feedFromProps) {
586
557
  return {
587
558
  ...data,
588
559
  is_loading_next_page: data.followers_pagination?.loading_next_page ?? false,
589
- has_next_page: index.checkHasAnotherPage(
560
+ has_next_page: feedsClient.checkHasAnotherPage(
590
561
  data.followers,
591
562
  data.followers_pagination?.next
592
563
  ),
@@ -618,7 +589,7 @@ function useFollowing(feedFromProps) {
618
589
  return {
619
590
  ...data,
620
591
  is_loading_next_page: data.following_pagination?.loading_next_page ?? false,
621
- has_next_page: index.checkHasAnotherPage(
592
+ has_next_page: feedsClient.checkHasAnotherPage(
622
593
  data.following,
623
594
  data.following_pagination?.next
624
595
  ),
@@ -769,7 +740,7 @@ const useReactionActions = ({
769
740
  type
770
741
  }) => {
771
742
  const client = useFeedsClient();
772
- const isComment = index.isCommentResponse(entity);
743
+ const isComment = feedsClient.isCommentResponse(entity);
773
744
  const hasOwnReaction = require$$0.useMemo(
774
745
  () => !!entity.own_reactions?.find((r) => r.type === type),
775
746
  [entity.own_reactions, type]