@stream-io/feeds-client 0.2.17 → 0.2.19
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.
- package/CHANGELOG.md +24 -0
- package/dist/cjs/index.js +94 -25
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-bindings.js +26 -55
- package/dist/cjs/react-bindings.js.map +1 -1
- package/dist/es/index.mjs +86 -17
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/react-bindings.mjs +19 -48
- package/dist/es/react-bindings.mjs.map +1 -1
- package/dist/{index-nq6SDtbt.js → feeds-client-C09giTf1.js} +322 -133
- package/dist/feeds-client-C09giTf1.js.map +1 -0
- package/dist/{index-BZL77zNq.mjs → feeds-client-CFadXO-B.mjs} +335 -146
- package/dist/feeds-client-CFadXO-B.mjs.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.d.ts +2 -32
- package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.d.ts.map +1 -1
- package/dist/types/common/real-time/StableWSConnection.d.ts +3 -3
- package/dist/types/common/real-time/event-models.d.ts +7 -2
- package/dist/types/common/real-time/event-models.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +1 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts +4 -3
- package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-updated.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity-updater.d.ts +44 -0
- package/dist/types/feed/event-handlers/activity-updater.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/add-aggregated-activities-to-state.d.ts +6 -0
- package/dist/types/feed/event-handlers/add-aggregated-activities-to-state.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/index.d.ts +3 -1
- package/dist/types/feed/event-handlers/index.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/{aggregated-feed/handle-aggregated-feed-updated.d.ts → notification-feed/handle-notification-feed-updated.d.ts} +2 -11
- package/dist/types/feed/event-handlers/notification-feed/handle-notification-feed-updated.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/notification-feed/index.d.ts +2 -0
- package/dist/types/feed/event-handlers/notification-feed/index.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/story-feeds/handle-story-feeds-updated.d.ts +15 -0
- package/dist/types/feed/event-handlers/story-feeds/handle-story-feeds-updated.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/story-feeds/index.d.ts +2 -0
- package/dist/types/feed/event-handlers/story-feeds/index.d.ts.map +1 -0
- package/dist/types/feed/feed.d.ts +10 -4
- package/dist/types/feed/feed.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +14 -4
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/dist/types/gen/feeds/FeedsApi.d.ts.map +1 -1
- package/dist/types/gen/models/index.d.ts +42 -451
- package/dist/types/gen/models/index.d.ts.map +1 -1
- package/dist/types/utils/throttling/index.d.ts +3 -0
- package/dist/types/utils/throttling/index.d.ts.map +1 -0
- package/dist/types/utils/throttling/throttle.d.ts +34 -0
- package/dist/types/utils/throttling/throttle.d.ts.map +1 -0
- package/dist/types/utils/throttling/throttled-get-batched-own-capabilities.d.ts +14 -0
- package/dist/types/utils/throttling/throttled-get-batched-own-capabilities.d.ts.map +1 -0
- package/package.json +7 -3
- package/react-bindings.d.ts +11 -0
- package/react-bindings.js +7 -0
- package/react-bindings.mjs +11 -0
- package/src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts +21 -73
- package/src/common/real-time/event-models.ts +8 -2
- package/src/common/types.ts +1 -0
- package/src/feed/event-handlers/activity/handle-activity-added.ts +18 -12
- package/src/feed/event-handlers/activity/handle-activity-updated.ts +12 -16
- package/src/feed/event-handlers/activity-updater.ts +15 -0
- package/src/feed/event-handlers/add-aggregated-activities-to-state.ts +72 -0
- package/src/feed/event-handlers/index.ts +3 -1
- package/src/feed/event-handlers/{aggregated-feed/handle-aggregated-feed-updated.ts → notification-feed/handle-notification-feed-updated.ts} +2 -94
- package/src/feed/event-handlers/notification-feed/index.ts +1 -0
- package/src/feed/event-handlers/story-feeds/handle-story-feeds-updated.ts +122 -0
- package/src/feed/event-handlers/story-feeds/index.ts +1 -0
- package/src/feed/feed.ts +30 -3
- package/src/feeds-client/feeds-client.ts +127 -6
- package/src/gen/feeds/FeedsApi.ts +5 -0
- package/src/gen/model-decoders/decoders.ts +10 -4
- package/src/gen/models/index.ts +75 -834
- package/src/test-utils/response-generators.ts +37 -1
- package/src/utils/throttling/index.ts +2 -0
- package/src/utils/throttling/throttle.ts +123 -0
- package/src/utils/throttling/throttled-get-batched-own-capabilities.ts +42 -0
- package/dist/index-BZL77zNq.mjs.map +0 -1
- package/dist/index-nq6SDtbt.js.map +0 -1
- package/dist/types/feed/event-handlers/aggregated-feed/handle-aggregated-feed-updated.d.ts.map +0 -1
- package/dist/types/feed/event-handlers/aggregated-feed/index.d.ts +0 -2
- package/dist/types/feed/event-handlers/aggregated-feed/index.d.ts.map +0 -1
- package/src/feed/event-handlers/activity/activity-marked-utils.test.ts +0 -208
- package/src/feed/event-handlers/activity/activity-reaction-utils.test.ts +0 -371
- package/src/feed/event-handlers/activity/activity-utils.test.ts +0 -252
- package/src/feed/event-handlers/activity/handle-activity-added.test.ts +0 -86
- package/src/feed/event-handlers/activity/handle-activity-deleted.test.ts +0 -117
- package/src/feed/event-handlers/activity/handle-activity-pinned.test.ts +0 -60
- package/src/feed/event-handlers/activity/handle-activity-reaction-added.test.ts +0 -257
- package/src/feed/event-handlers/activity/handle-activity-reaction-deleted.test.ts +0 -317
- package/src/feed/event-handlers/activity/handle-activity-reaction-updated.test.ts +0 -282
- package/src/feed/event-handlers/activity/handle-activity-unpinned.test.ts +0 -95
- package/src/feed/event-handlers/activity/handle-activity-updated.test.ts +0 -245
- package/src/feed/event-handlers/aggregated-feed/handle-aggregated-feed-updated.test.ts +0 -644
- package/src/feed/event-handlers/aggregated-feed/index.ts +0 -1
- package/src/feed/event-handlers/bookmark/bookmark-utils.test.ts +0 -521
- package/src/feed/event-handlers/bookmark/handle-bookmark-added.test.ts +0 -178
- package/src/feed/event-handlers/bookmark/handle-bookmark-deleted.test.ts +0 -188
- package/src/feed/event-handlers/bookmark/handle-bookmark-updated.test.ts +0 -196
- package/src/feed/event-handlers/comment/handle-comment-added.test.ts +0 -271
- package/src/feed/event-handlers/comment/handle-comment-deleted.test.ts +0 -255
- package/src/feed/event-handlers/comment/handle-comment-reaction-added.test.ts +0 -329
- package/src/feed/event-handlers/comment/handle-comment-reaction-deleted.test.ts +0 -343
- package/src/feed/event-handlers/comment/handle-comment-reaction-updated.test.ts +0 -350
- package/src/feed/event-handlers/comment/handle-comment-updated.test.ts +0 -267
- package/src/feed/event-handlers/comment/utils/update-comment-count.test.ts +0 -322
- package/src/feed/event-handlers/feed-member/handle-feed-member-added.test.ts +0 -75
- package/src/feed/event-handlers/feed-member/handle-feed-member-removed.test.ts +0 -82
- package/src/feed/event-handlers/feed-member/handle-feed-member-updated.test.ts +0 -84
- package/src/feed/event-handlers/follow/follow-state-update-queue.test.ts +0 -219
- package/src/feed/event-handlers/follow/handle-follow-created.test.ts +0 -250
- package/src/feed/event-handlers/follow/handle-follow-deleted.test.ts +0 -268
- package/src/feed/event-handlers/follow/handle-follow-updated.test.ts +0 -131
- package/src/feed/feed.test.ts +0 -90
- package/src/feeds-client/event-handlers/user/handle-user-updated.test.ts +0 -53
- package/src/utils/event-triggered-by-connected-user.test.ts +0 -73
- package/src/utils/state-update-queue.test.ts +0 -129
- 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
|
|
5
|
+
const feedsClient = require("../feeds-client-C09giTf1.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
|
|
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
|
|
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$
|
|
434
|
+
const { user } = useStateStore(client?.state, selector$b) ?? {};
|
|
435
435
|
return user;
|
|
436
436
|
};
|
|
437
|
-
const selector$
|
|
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$
|
|
442
|
+
const { is_healthy } = useStateStore(client?.state, selector$a) ?? {};
|
|
443
443
|
return { is_healthy };
|
|
444
444
|
};
|
|
445
|
-
const selector$
|
|
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$
|
|
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$
|
|
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 (
|
|
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:
|
|
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
|
|
527
|
-
|
|
528
|
-
()
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
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:
|
|
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:
|
|
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 =
|
|
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]
|