@stream-io/feeds-client 0.1.9 → 0.1.11
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/@react-bindings/hooks/search-state-hooks/index.ts +3 -0
- package/@react-bindings/index.ts +5 -0
- package/CHANGELOG.md +20 -0
- package/dist/@react-bindings/contexts/StreamFeedContext.d.ts +1 -1
- package/dist/@react-bindings/contexts/StreamFeedsContext.d.ts +1 -1
- package/dist/@react-bindings/contexts/StreamSearchContext.d.ts +12 -0
- package/dist/@react-bindings/contexts/StreamSearchResultsContext.d.ts +12 -0
- package/dist/@react-bindings/hooks/feed-state-hooks/useComments.d.ts +1 -1
- package/dist/@react-bindings/hooks/feed-state-hooks/useFeedActivities.d.ts +1 -1
- package/dist/@react-bindings/hooks/feed-state-hooks/useFeedMetadata.d.ts +1 -1
- package/dist/@react-bindings/hooks/feed-state-hooks/useFollowers.d.ts +1 -1
- package/dist/@react-bindings/hooks/feed-state-hooks/useFollowing.d.ts +1 -1
- package/dist/@react-bindings/hooks/feed-state-hooks/useOwnCapabilities.d.ts +1 -1
- package/dist/@react-bindings/hooks/feed-state-hooks/useOwnFollows.d.ts +1 -1
- package/dist/@react-bindings/hooks/search-state-hooks/index.d.ts +3 -0
- package/dist/@react-bindings/hooks/search-state-hooks/useSearchQuery.d.ts +4 -0
- package/dist/@react-bindings/hooks/search-state-hooks/useSearchResult.d.ts +8 -0
- package/dist/@react-bindings/hooks/search-state-hooks/useSearchSources.d.ts +4 -0
- package/dist/@react-bindings/hooks/useCreateFeedsClient.d.ts +1 -1
- package/dist/@react-bindings/index.d.ts +5 -0
- package/dist/@react-bindings/wrappers/StreamFeed.d.ts +1 -1
- package/dist/@react-bindings/wrappers/StreamSearch.d.ts +12 -0
- package/dist/@react-bindings/wrappers/StreamSearchResults.d.ts +12 -0
- package/dist/index-react-bindings.browser.cjs +1669 -1529
- package/dist/index-react-bindings.browser.cjs.map +1 -1
- package/dist/index-react-bindings.browser.js +1661 -1530
- package/dist/index-react-bindings.browser.js.map +1 -1
- package/dist/index-react-bindings.node.cjs +1669 -1529
- package/dist/index-react-bindings.node.cjs.map +1 -1
- package/dist/index-react-bindings.node.js +1661 -1530
- package/dist/index-react-bindings.node.js.map +1 -1
- package/dist/index.browser.cjs +1615 -1640
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +1613 -1641
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.node.cjs +1615 -1640
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +1613 -1641
- package/dist/index.node.js.map +1 -1
- package/dist/src/common/ActivitySearchSource.d.ts +1 -1
- package/dist/src/common/BaseSearchSource.d.ts +3 -1
- package/dist/src/common/FeedSearchSource.d.ts +7 -3
- package/dist/src/common/Poll.d.ts +1 -1
- package/dist/src/common/SearchController.d.ts +2 -0
- package/dist/src/common/UserSearchSource.d.ts +1 -1
- package/dist/src/common/real-time/StableWSConnection.d.ts +3 -3
- package/dist/src/feed/event-handlers/activity/handle-activity-added.d.ts +7 -0
- package/dist/src/feed/event-handlers/activity/handle-activity-deleted.d.ts +8 -0
- package/dist/src/feed/event-handlers/activity/handle-activity-reaction-added.d.ts +8 -0
- package/dist/src/feed/event-handlers/activity/handle-activity-reaction-deleted.d.ts +8 -0
- package/dist/src/feed/event-handlers/activity/handle-activity-removed-from-feed.d.ts +3 -0
- package/dist/src/feed/event-handlers/activity/handle-activity-updated.d.ts +8 -0
- package/dist/src/feed/event-handlers/activity/index.d.ts +6 -0
- package/dist/src/feed/event-handlers/bookmark/handle-bookmark-added.d.ts +8 -0
- package/dist/src/feed/event-handlers/bookmark/handle-bookmark-deleted.d.ts +9 -0
- package/dist/src/feed/event-handlers/bookmark/handle-bookmark-updated.d.ts +8 -0
- package/dist/src/feed/event-handlers/bookmark/index.d.ts +3 -0
- package/dist/src/feed/event-handlers/comment/handle-comment-added.d.ts +3 -0
- package/dist/src/feed/event-handlers/comment/handle-comment-deleted.d.ts +3 -0
- package/dist/src/feed/event-handlers/comment/handle-comment-reaction.d.ts +3 -0
- package/dist/src/feed/event-handlers/comment/handle-comment-updated.d.ts +3 -0
- package/dist/src/feed/event-handlers/comment/index.d.ts +4 -0
- package/dist/src/feed/event-handlers/feed/handle-feed-updated.d.ts +3 -0
- package/dist/src/feed/event-handlers/feed/index.d.ts +1 -0
- package/dist/src/feed/event-handlers/feed-member/handle-feed-member-added.d.ts +3 -0
- package/dist/src/feed/event-handlers/feed-member/handle-feed-member-removed.d.ts +3 -0
- package/dist/src/feed/event-handlers/feed-member/handle-feed-member-updated.d.ts +3 -0
- package/dist/src/feed/event-handlers/feed-member/index.d.ts +3 -0
- package/dist/src/feed/event-handlers/follow/handle-follow-created.d.ts +7 -0
- package/dist/src/feed/event-handlers/follow/handle-follow-deleted.d.ts +7 -0
- package/dist/src/feed/event-handlers/follow/handle-follow-updated.d.ts +3 -0
- package/dist/src/feed/event-handlers/follow/index.d.ts +3 -0
- package/dist/src/feed/event-handlers/index.d.ts +7 -0
- package/dist/src/feed/event-handlers/notification-feed/handle-notification-feed-updated.d.ts +3 -0
- package/dist/src/feed/event-handlers/notification-feed/index.d.ts +1 -0
- package/dist/src/{Feed.d.ts → feed/feed.d.ts} +15 -34
- package/dist/src/feed/index.d.ts +2 -0
- package/dist/src/{FeedsClient.d.ts → feeds-client.d.ts} +6 -5
- package/dist/src/gen/models/index.d.ts +5 -0
- package/dist/src/gen-imports.d.ts +1 -1
- package/dist/src/test-utils/index.d.ts +1 -0
- package/dist/src/test-utils/response-generators.d.ts +9 -0
- package/dist/src/types-internal.d.ts +7 -0
- package/dist/src/types.d.ts +1 -1
- package/dist/src/utils/check-has-another-page.d.ts +1 -0
- package/dist/src/utils/constants.d.ts +3 -0
- package/dist/src/utils/index.d.ts +5 -0
- package/dist/src/utils/state-update-queue.d.ts +6 -0
- package/dist/src/utils/type-assertions.d.ts +7 -0
- package/dist/src/utils/unique-array-merge.d.ts +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +2 -2
- package/package.json +2 -1
- package/src/common/ActivitySearchSource.ts +6 -16
- package/src/common/BaseSearchSource.ts +9 -9
- package/src/common/FeedSearchSource.ts +22 -67
- package/src/common/Poll.ts +1 -1
- package/src/common/SearchController.ts +2 -0
- package/src/common/UserSearchSource.ts +10 -62
- package/src/{state-updates → feed/event-handlers/activity}/activity-reaction-utils.test.ts +12 -2
- package/src/{state-updates → feed/event-handlers/activity}/activity-utils.test.ts +3 -2
- package/src/{state-updates/activity-utils.ts → feed/event-handlers/activity/handle-activity-added.ts} +16 -36
- package/src/feed/event-handlers/activity/handle-activity-deleted.ts +30 -0
- package/src/feed/event-handlers/activity/handle-activity-reaction-added.ts +67 -0
- package/src/feed/event-handlers/activity/handle-activity-reaction-deleted.ts +75 -0
- package/src/feed/event-handlers/activity/handle-activity-removed-from-feed.ts +16 -0
- package/src/feed/event-handlers/activity/handle-activity-updated.ts +47 -0
- package/src/feed/event-handlers/activity/index.ts +6 -0
- package/src/{state-updates → feed/event-handlers/bookmark}/bookmark-utils.test.ts +2 -2
- package/src/feed/event-handlers/bookmark/handle-bookmark-added.ts +63 -0
- package/src/feed/event-handlers/bookmark/handle-bookmark-deleted.ts +84 -0
- package/src/feed/event-handlers/bookmark/handle-bookmark-updated.ts +76 -0
- package/src/feed/event-handlers/bookmark/index.ts +3 -0
- package/src/feed/event-handlers/comment/handle-comment-added.ts +38 -0
- package/src/feed/event-handlers/comment/handle-comment-deleted.ts +35 -0
- package/src/feed/event-handlers/comment/handle-comment-reaction.ts +61 -0
- package/src/feed/event-handlers/comment/handle-comment-updated.ts +35 -0
- package/src/feed/event-handlers/comment/index.ts +4 -0
- package/src/feed/event-handlers/feed/handle-feed-updated.ts +9 -0
- package/src/feed/event-handlers/feed/index.ts +1 -0
- package/src/feed/event-handlers/feed-member/handle-feed-member-added.ts +31 -0
- package/src/feed/event-handlers/feed-member/handle-feed-member-removed.ts +24 -0
- package/src/feed/event-handlers/feed-member/handle-feed-member-updated.ts +40 -0
- package/src/feed/event-handlers/feed-member/index.ts +3 -0
- package/src/feed/event-handlers/follow/handle-follow-created.test.ts +246 -0
- package/src/feed/event-handlers/follow/handle-follow-created.ts +93 -0
- package/src/feed/event-handlers/follow/handle-follow-deleted.test.ts +264 -0
- package/src/feed/event-handlers/follow/handle-follow-deleted.ts +95 -0
- package/src/feed/event-handlers/follow/handle-follow-updated.test.ts +174 -0
- package/src/feed/event-handlers/follow/handle-follow-updated.ts +88 -0
- package/src/feed/event-handlers/follow/index.ts +3 -0
- package/src/feed/event-handlers/index.ts +7 -0
- package/src/feed/event-handlers/notification-feed/handle-notification-feed-updated.ts +10 -0
- package/src/feed/event-handlers/notification-feed/index.ts +1 -0
- package/src/{Feed.ts → feed/feed.ts} +72 -483
- package/src/feed/index.ts +2 -0
- package/src/{FeedsClient.ts → feeds-client.ts} +26 -8
- package/src/gen/model-decoders/decoders.ts +7 -0
- package/src/gen/models/index.ts +10 -0
- package/src/gen-imports.ts +1 -1
- package/src/test-utils/index.ts +1 -0
- package/src/test-utils/response-generators.ts +102 -0
- package/src/types-internal.ts +11 -0
- package/src/types.ts +1 -1
- package/src/utils/check-has-another-page.ts +6 -0
- package/src/utils/constants.ts +3 -0
- package/src/utils/index.ts +5 -0
- package/src/{state-updates → utils}/state-update-queue.test.ts +6 -6
- package/src/utils/state-update-queue.ts +42 -0
- package/src/utils/type-assertions.ts +22 -0
- package/src/{utils.test.ts → utils/unique-array-merge.test.ts} +7 -3
- package/src/utils/unique-array-merge.ts +19 -0
- package/dist/src/state-updates/activity-reaction-utils.d.ts +0 -10
- package/dist/src/state-updates/activity-utils.d.ts +0 -13
- package/dist/src/state-updates/bookmark-utils.d.ts +0 -14
- package/dist/src/state-updates/follow-utils.d.ts +0 -19
- package/dist/src/state-updates/state-update-queue.d.ts +0 -15
- package/dist/src/utils.d.ts +0 -10
- package/src/state-updates/activity-reaction-utils.ts +0 -107
- package/src/state-updates/bookmark-utils.ts +0 -167
- package/src/state-updates/follow-utils.test.ts +0 -552
- package/src/state-updates/follow-utils.ts +0 -126
- package/src/state-updates/state-update-queue.ts +0 -35
- package/src/utils.ts +0 -48
- /package/dist/src/{ModerationClient.d.ts → moderation-client.d.ts} +0 -0
- /package/src/{ModerationClient.ts → moderation-client.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseSearchSource } from './BaseSearchSource';
|
|
2
2
|
import type { SearchSourceOptions } from './BaseSearchSource';
|
|
3
|
-
import { FeedsClient } from '../
|
|
3
|
+
import { FeedsClient } from '../feeds-client';
|
|
4
4
|
import { ActivityResponse } from '../gen/models';
|
|
5
5
|
export declare class ActivitySearchSource extends BaseSearchSource<ActivityResponse> {
|
|
6
6
|
readonly type: "activity";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StateStore } from './StateStore';
|
|
2
2
|
import { type DebouncedFunc } from './utils';
|
|
3
|
-
export type SearchSourceType = '
|
|
3
|
+
export type SearchSourceType = 'activity' | 'user' | 'feed' | (string & {});
|
|
4
4
|
export type QueryReturnValue<T> = {
|
|
5
5
|
items: T[];
|
|
6
6
|
next?: string | null;
|
|
@@ -44,10 +44,12 @@ export type SearchSourceOptions = {
|
|
|
44
44
|
/** The number of milliseconds to debounce the search query. The default interval is 300ms. */
|
|
45
45
|
debounceMs?: number;
|
|
46
46
|
pageSize?: number;
|
|
47
|
+
allowEmptySearchString?: boolean;
|
|
47
48
|
};
|
|
48
49
|
export declare abstract class BaseSearchSource<T> implements SearchSource<T> {
|
|
49
50
|
state: StateStore<SearchSourceState<T>>;
|
|
50
51
|
protected pageSize: number;
|
|
52
|
+
protected allowEmptySearchString: boolean;
|
|
51
53
|
abstract readonly type: SearchSourceType;
|
|
52
54
|
protected searchDebounced: DebouncedExecQueryFunction;
|
|
53
55
|
protected constructor(options?: SearchSourceOptions);
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { BaseSearchSource } from './BaseSearchSource';
|
|
2
2
|
import type { SearchSourceOptions } from './BaseSearchSource';
|
|
3
|
-
import { FeedsClient } from '../
|
|
4
|
-
import { Feed } from '../
|
|
3
|
+
import { FeedsClient } from '../feeds-client';
|
|
4
|
+
import { Feed } from '../feed';
|
|
5
|
+
export type FeedSearchSourceOptions = SearchSourceOptions & {
|
|
6
|
+
groupId?: string;
|
|
7
|
+
};
|
|
5
8
|
export declare class FeedSearchSource extends BaseSearchSource<Feed> {
|
|
6
9
|
readonly type: "feed";
|
|
7
10
|
private readonly client;
|
|
8
|
-
|
|
11
|
+
private readonly feedGroupId?;
|
|
12
|
+
constructor(client: FeedsClient, options?: FeedSearchSourceOptions);
|
|
9
13
|
protected query(searchQuery: string): Promise<{
|
|
10
14
|
items: never[];
|
|
11
15
|
next?: undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StateStore } from './StateStore';
|
|
2
|
-
import type { FeedsClient } from '../
|
|
2
|
+
import type { FeedsClient } from '../feeds-client';
|
|
3
3
|
import type { PollVote, QueryPollVotesRequest, PollUpdatedFeedEvent, PollClosedFeedEvent, PollVoteCastedFeedEvent, PollVoteChangedFeedEvent, PollVoteRemovedFeedEvent, Poll as PollType } from '../gen/models';
|
|
4
4
|
export declare const isVoteAnswer: (vote: PollVote) => boolean;
|
|
5
5
|
export type PollAnswersQueryParams = QueryPollVotesRequest & {
|
|
@@ -17,6 +17,8 @@ export declare class SearchController {
|
|
|
17
17
|
/**
|
|
18
18
|
* Not intended for direct use by integrators, might be removed without notice resulting in
|
|
19
19
|
* broken integrations.
|
|
20
|
+
*
|
|
21
|
+
* @internal
|
|
20
22
|
*/
|
|
21
23
|
_internalState: StateStore<InternalSearchControllerState>;
|
|
22
24
|
state: StateStore<SearchControllerState>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseSearchSource } from './BaseSearchSource';
|
|
2
2
|
import type { SearchSourceOptions } from './BaseSearchSource';
|
|
3
|
-
import { FeedsClient } from '../
|
|
3
|
+
import { FeedsClient } from '../feeds-client';
|
|
4
4
|
import { UserResponse } from '../gen/models';
|
|
5
5
|
export declare class UserSearchSource extends BaseSearchSource<UserResponse> {
|
|
6
6
|
readonly type: "user";
|
|
@@ -57,9 +57,9 @@ export declare class StableWSConnection {
|
|
|
57
57
|
private readonly clientId;
|
|
58
58
|
constructor(config: WSConfig, tokenManager: TokenManager, connectionIdManager: ConnectionIdManager, decoders?: Array<(event: any) => any>);
|
|
59
59
|
_log: (msg: string, extra?: any, level?: LogLevel) => void;
|
|
60
|
-
on: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed"
|
|
61
|
-
off: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed"
|
|
62
|
-
offAll: (eventName?: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed" |
|
|
60
|
+
on: (eventName: "network.changed" | "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed", handler: (event: import("../../types").FeedsEvent) => void) => () => void;
|
|
61
|
+
off: (eventName: "network.changed" | "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed", handler: (event: import("../../types").FeedsEvent) => void) => void;
|
|
62
|
+
offAll: (eventName?: "network.changed" | "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed" | undefined) => void;
|
|
63
63
|
/**
|
|
64
64
|
* connect - Connect to the WS URL
|
|
65
65
|
* the default 15s timeout allows between 2~3 tries
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Feed } from '../../../feed';
|
|
2
|
+
import { ActivityResponse } from '../../../gen/models';
|
|
3
|
+
import { EventPayload, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const addActivitiesToState: (newActivities: ActivityResponse[], activities: ActivityResponse[] | undefined, position: "start" | "end") => UpdateStateResult<{
|
|
5
|
+
activities: ActivityResponse[];
|
|
6
|
+
}>;
|
|
7
|
+
export declare function handleActivityAdded(this: Feed, event: EventPayload<'feeds.activity.added'>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Feed } from '../../../feed';
|
|
2
|
+
import type { ActivityResponse } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload } from '../../../types-internal';
|
|
4
|
+
export declare const removeActivityFromState: (activityResponse: ActivityResponse, activities: ActivityResponse[]) => {
|
|
5
|
+
changed: boolean;
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
};
|
|
8
|
+
export declare function handleActivityDeleted(this: Feed, event: EventPayload<'feeds.activity.deleted'>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Feed } from '../../../feed';
|
|
2
|
+
import type { ActivityReactionAddedEvent, ActivityResponse } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const addReactionToActivity: (event: ActivityReactionAddedEvent, activity: ActivityResponse, isCurrentUser: boolean) => UpdateStateResult<ActivityResponse>;
|
|
5
|
+
export declare const addReactionToActivities: (event: ActivityReactionAddedEvent, activities: ActivityResponse[] | undefined, isCurrentUser: boolean) => UpdateStateResult<{
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
}>;
|
|
8
|
+
export declare function handleActivityReactionAdded(this: Feed, event: EventPayload<'feeds.activity.reaction.added'>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Feed } from '../../../feed';
|
|
2
|
+
import type { ActivityReactionDeletedEvent, ActivityResponse } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const removeReactionFromActivity: (event: ActivityReactionDeletedEvent, activity: ActivityResponse, isCurrentUser: boolean) => UpdateStateResult<ActivityResponse>;
|
|
5
|
+
export declare const removeReactionFromActivities: (event: ActivityReactionDeletedEvent, activities: ActivityResponse[] | undefined, isCurrentUser: boolean) => UpdateStateResult<{
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
}>;
|
|
8
|
+
export declare function handleActivityReactionDeleted(this: Feed, event: EventPayload<'feeds.activity.reaction.deleted'>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Feed } from '../../../feed';
|
|
2
|
+
import { ActivityResponse } from '../../../gen/models';
|
|
3
|
+
import { EventPayload } from '../../../types-internal';
|
|
4
|
+
export declare const updateActivityInState: (updatedActivityResponse: ActivityResponse, activities: ActivityResponse[], replaceCompletely?: boolean) => {
|
|
5
|
+
changed: boolean;
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
};
|
|
8
|
+
export declare function handleActivityUpdated(this: Feed, event: EventPayload<'feeds.activity.updated'>): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './handle-activity-added';
|
|
2
|
+
export * from './handle-activity-deleted';
|
|
3
|
+
export * from './handle-activity-removed-from-feed';
|
|
4
|
+
export * from './handle-activity-updated';
|
|
5
|
+
export * from './handle-activity-reaction-added';
|
|
6
|
+
export * from './handle-activity-reaction-deleted';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Feed } from '../../../feed';
|
|
2
|
+
import type { ActivityResponse, BookmarkAddedEvent } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const addBookmarkToActivity: (event: BookmarkAddedEvent, activity: ActivityResponse, isCurrentUser: boolean) => UpdateStateResult<ActivityResponse>;
|
|
5
|
+
export declare const addBookmarkToActivities: (event: BookmarkAddedEvent, activities: ActivityResponse[] | undefined, isCurrentUser: boolean) => UpdateStateResult<{
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
}>;
|
|
8
|
+
export declare function handleBookmarkAdded(this: Feed, event: EventPayload<'feeds.bookmark.added'>): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Feed } from '../../../feed';
|
|
2
|
+
import type { ActivityResponse, BookmarkDeletedEvent, BookmarkResponse } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const isSameBookmark: (bookmark1: BookmarkResponse, bookmark2: BookmarkResponse) => boolean;
|
|
5
|
+
export declare const removeBookmarkFromActivities: (event: BookmarkDeletedEvent, activities: ActivityResponse[] | undefined, isCurrentUser: boolean) => UpdateStateResult<{
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
}>;
|
|
8
|
+
export declare const removeBookmarkFromActivity: (event: BookmarkDeletedEvent, activity: ActivityResponse, isCurrentUser: boolean) => UpdateStateResult<ActivityResponse>;
|
|
9
|
+
export declare function handleBookmarkDeleted(this: Feed, event: EventPayload<'feeds.bookmark.deleted'>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Feed } from '../../../feed';
|
|
2
|
+
import type { ActivityResponse, BookmarkUpdatedEvent } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const updateBookmarkInActivity: (event: BookmarkUpdatedEvent, activity: ActivityResponse, isCurrentUser: boolean) => UpdateStateResult<ActivityResponse>;
|
|
5
|
+
export declare const updateBookmarkInActivities: (event: BookmarkUpdatedEvent, activities: ActivityResponse[] | undefined, isCurrentUser: boolean) => UpdateStateResult<{
|
|
6
|
+
activities: ActivityResponse[];
|
|
7
|
+
}>;
|
|
8
|
+
export declare function handleBookmarkUpdated(this: Feed, event: EventPayload<'feeds.bookmark.updated'>): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './handle-feed-updated';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Feed, FeedState } from '../../../feed';
|
|
2
|
+
import type { FollowResponse } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, PartializeAllBut, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const updateStateFollowCreated: (follow: FollowResponse, currentState: FeedState, currentFeedId: string, connectedUserId?: string) => UpdateStateResult<{
|
|
5
|
+
data: FeedState;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function handleFollowCreated(this: Feed, eventOrResponse: PartializeAllBut<EventPayload<'feeds.follow.created'>, 'follow'>): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Feed, FeedState } from '../../../feed';
|
|
2
|
+
import type { FollowResponse } from '../../../gen/models';
|
|
3
|
+
import type { EventPayload, PartializeAllBut, UpdateStateResult } from '../../../types-internal';
|
|
4
|
+
export declare const updateStateFollowDeleted: (follow: FollowResponse, currentState: FeedState, currentFeedId: string, connectedUserId?: string) => UpdateStateResult<{
|
|
5
|
+
data: FeedState;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function handleFollowDeleted(this: Feed, eventOrResponse: PartializeAllBut<EventPayload<'feeds.follow.deleted'>, 'follow'>): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './handle-notification-feed-updated';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ActivityRequest, FeedResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, QueryFollowsRequest, WSEvent, ActivityResponse, CommentResponse, SingleFollowRequest, QueryFeedMembersRequest, SortParamRequest
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import type { ActivityIdOrCommentId, GetCommentsRepliesRequest, GetCommentsRequest, LoadingStates, PagerResponseWithLoadingStates } from '
|
|
1
|
+
import { ActivityRequest, FeedResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, QueryFollowsRequest, WSEvent, ActivityResponse, CommentResponse, SingleFollowRequest, QueryFeedMembersRequest, SortParamRequest } from '../gen/models';
|
|
2
|
+
import { StreamResponse } from '../gen-imports';
|
|
3
|
+
import { StateStore } from '../common/StateStore';
|
|
4
|
+
import { EventDispatcher } from '../common/EventDispatcher';
|
|
5
|
+
import { FeedApi } from '../gen/feeds/FeedApi';
|
|
6
|
+
import { FeedsClient } from '../feeds-client';
|
|
7
|
+
import type { ActivityIdOrCommentId, GetCommentsRepliesRequest, GetCommentsRequest, LoadingStates, PagerResponseWithLoadingStates } from '../types';
|
|
8
8
|
export type FeedState = Omit<Partial<GetOrCreateFeedResponse & FeedResponse>, 'feed' | 'duration'> & {
|
|
9
9
|
/**
|
|
10
10
|
* True when loading state using `getOrCreate`
|
|
@@ -72,31 +72,15 @@ export type FeedState = Omit<Partial<GetOrCreateFeedResponse & FeedResponse>, 'f
|
|
|
72
72
|
export declare class Feed extends FeedApi {
|
|
73
73
|
readonly state: StateStore<FeedState>;
|
|
74
74
|
private static readonly noop;
|
|
75
|
-
|
|
75
|
+
protected readonly stateUpdateQueue: Set<string>;
|
|
76
76
|
private readonly eventHandlers;
|
|
77
77
|
protected eventDispatcher: EventDispatcher<WSEvent['type'], WSEvent>;
|
|
78
78
|
constructor(client: FeedsClient, groupId: 'user' | 'timeline' | (string & {}), id: string, data?: FeedResponse, watch?: boolean);
|
|
79
|
-
|
|
79
|
+
protected readonly client: FeedsClient;
|
|
80
80
|
get fid(): string;
|
|
81
81
|
get currentState(): FeedState;
|
|
82
|
-
private handleCommentReactionEvent;
|
|
83
82
|
synchronize(): Promise<void>;
|
|
84
83
|
getOrCreate(request?: GetOrCreateFeedRequest): Promise<StreamResponse<GetOrCreateFeedResponse>>;
|
|
85
|
-
/**
|
|
86
|
-
* @internal
|
|
87
|
-
*/
|
|
88
|
-
handleFollowCreated(follow: FollowResponse): void;
|
|
89
|
-
/**
|
|
90
|
-
* @internal
|
|
91
|
-
*/
|
|
92
|
-
handleFollowDeleted(follow: FollowResponse | {
|
|
93
|
-
source_feed: {
|
|
94
|
-
fid: string;
|
|
95
|
-
};
|
|
96
|
-
target_feed: {
|
|
97
|
-
fid: string;
|
|
98
|
-
};
|
|
99
|
-
}): void;
|
|
100
84
|
/**
|
|
101
85
|
* @internal
|
|
102
86
|
*/
|
|
@@ -105,13 +89,10 @@ export declare class Feed extends FeedApi {
|
|
|
105
89
|
* @internal
|
|
106
90
|
*/
|
|
107
91
|
handleWatchStarted(): void;
|
|
108
|
-
private handleBookmarkAdded;
|
|
109
|
-
private handleBookmarkDeleted;
|
|
110
|
-
private handleBookmarkUpdated;
|
|
111
92
|
/**
|
|
112
93
|
* Returns index of the provided comment object.
|
|
113
94
|
*/
|
|
114
|
-
|
|
95
|
+
protected getCommentIndex(comment: Pick<CommentResponse, 'object_id' | 'parent_id' | 'id'>, state?: FeedState): number;
|
|
115
96
|
/**
|
|
116
97
|
* Load child comments of entity (activity or comment) into the state, if the target entity is comment,
|
|
117
98
|
* `entityParentId` should be provided (`CommentResponse.parent_id ?? CommentResponse.object_id`).
|
|
@@ -129,17 +110,17 @@ export declare class Feed extends FeedApi {
|
|
|
129
110
|
*
|
|
130
111
|
* _Note: Useful only for feeds with `groupId` of `user` value._
|
|
131
112
|
*/
|
|
132
|
-
queryFollowers(request: Omit<QueryFollowsRequest, 'filter'>): Promise<StreamResponse<import("
|
|
113
|
+
queryFollowers(request: Omit<QueryFollowsRequest, 'filter'>): Promise<StreamResponse<import("../gen/models").QueryFollowsResponse>>;
|
|
133
114
|
/**
|
|
134
115
|
* Method which queries following of this feed (target feeds of this feed).
|
|
135
116
|
*
|
|
136
117
|
* _Note: Useful only for feeds with `groupId` of `timeline` value._
|
|
137
118
|
*/
|
|
138
|
-
queryFollowing(request: Omit<QueryFollowsRequest, 'filter'>): Promise<StreamResponse<import("
|
|
139
|
-
follow(feedOrFid: Feed | string, options?: Omit<SingleFollowRequest, 'source' | 'target'>): Promise<StreamResponse<import("
|
|
140
|
-
unfollow(feedOrFid: Feed | string): Promise<StreamResponse<import("
|
|
119
|
+
queryFollowing(request: Omit<QueryFollowsRequest, 'filter'>): Promise<StreamResponse<import("../gen/models").QueryFollowsResponse>>;
|
|
120
|
+
follow(feedOrFid: Feed | string, options?: Omit<SingleFollowRequest, 'source' | 'target'>): Promise<StreamResponse<import("../gen/models").SingleFollowResponse>>;
|
|
121
|
+
unfollow(feedOrFid: Feed | string): Promise<StreamResponse<import("../gen/models").UnfollowResponse>>;
|
|
141
122
|
getNextPage(): Promise<StreamResponse<GetOrCreateFeedResponse>>;
|
|
142
|
-
addActivity(request: Omit<ActivityRequest, 'fids'>): Promise<StreamResponse<import("
|
|
123
|
+
addActivity(request: Omit<ActivityRequest, 'fids'>): Promise<StreamResponse<import("../gen/models").AddActivityResponse>>;
|
|
143
124
|
on: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated", handler: (event: WSEvent) => void) => () => void;
|
|
144
125
|
off: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated", handler: (event: WSEvent) => void) => void;
|
|
145
126
|
handleWSEvent(event: WSEvent): void;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FeedsApi } from './gen/feeds/FeedsApi';
|
|
2
|
-
import { ActivityResponse, FileUploadRequest, FollowBatchRequest, ImageUploadRequest, OwnUser, PollResponse, PollVotesResponse, QueryFeedsRequest, QueryPollVotesRequest, SingleFollowRequest, UserRequest } from './gen/models';
|
|
2
|
+
import { ActivityResponse, FileUploadRequest, FollowBatchRequest, ImageUploadRequest, OwnUser, PollResponse, PollVotesResponse, QueryFeedsRequest, QueryPollVotesRequest, SingleFollowRequest, UpdateFollowRequest, UserRequest } from './gen/models';
|
|
3
3
|
import { FeedsEvent, StreamFile, TokenOrProvider } from './types';
|
|
4
4
|
import { StateStore } from './common/StateStore';
|
|
5
|
-
import { Feed } from './Feed';
|
|
6
5
|
import { FeedsClientOptions, StreamResponse } from './common/types';
|
|
7
|
-
import { ModerationClient } from './
|
|
6
|
+
import { ModerationClient } from './moderation-client';
|
|
8
7
|
import { StreamPoll } from './common/Poll';
|
|
8
|
+
import { Feed } from './feed';
|
|
9
9
|
export type FeedsClientState = {
|
|
10
10
|
connected_user: OwnUser | undefined;
|
|
11
11
|
is_ws_connection_healthy: boolean;
|
|
@@ -46,10 +46,10 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
46
46
|
user_id?: string;
|
|
47
47
|
}) => Promise<StreamResponse<PollVotesResponse>>;
|
|
48
48
|
disconnectUser: () => Promise<void>;
|
|
49
|
-
on: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed"
|
|
49
|
+
on: (eventName: "network.changed" | "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed", handler: (event: FeedsEvent & {
|
|
50
50
|
fid?: string;
|
|
51
51
|
}) => void) => () => void;
|
|
52
|
-
off: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed"
|
|
52
|
+
off: (eventName: "network.changed" | "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.bookmark_folder.deleted" | "feeds.bookmark_folder.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.notification_feed.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed", handler: (event: FeedsEvent & {
|
|
53
53
|
fid?: string;
|
|
54
54
|
}) => void) => void;
|
|
55
55
|
feed: (groupId: string, id: string) => Feed;
|
|
@@ -63,6 +63,7 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
63
63
|
updateNetworkConnectionStatus: (event: {
|
|
64
64
|
type: "online" | "offline";
|
|
65
65
|
} | Event) => void;
|
|
66
|
+
updateFollow(request: UpdateFollowRequest): Promise<StreamResponse<import("./gen/models").UpdateFollowResponse>>;
|
|
66
67
|
follow(request: SingleFollowRequest): Promise<StreamResponse<import("./gen/models").SingleFollowResponse>>;
|
|
67
68
|
followBatch(request: FollowBatchRequest): Promise<StreamResponse<import("./gen/models").FollowBatchResponse>>;
|
|
68
69
|
unfollow(request: SingleFollowRequest): Promise<StreamResponse<import("./gen/models").UnfollowResponse>>;
|
|
@@ -2708,9 +2708,13 @@ export interface ReviewQueueItem {
|
|
|
2708
2708
|
updated_at: Date;
|
|
2709
2709
|
actions: ActionLog[];
|
|
2710
2710
|
bans: Ban[];
|
|
2711
|
+
flag_labels: string[];
|
|
2712
|
+
flag_types: string[];
|
|
2711
2713
|
flags: Flag[];
|
|
2712
2714
|
languages: string[];
|
|
2715
|
+
reporter_ids: string[];
|
|
2713
2716
|
teams: string[];
|
|
2717
|
+
archived_at: NullTime;
|
|
2714
2718
|
completed_at: NullTime;
|
|
2715
2719
|
reviewed_at: NullTime;
|
|
2716
2720
|
activity?: EnrichedActivity;
|
|
@@ -3006,6 +3010,7 @@ export interface UnblockUsersResponse {
|
|
|
3006
3010
|
}
|
|
3007
3011
|
export interface UnfollowResponse {
|
|
3008
3012
|
duration: string;
|
|
3013
|
+
follow: FollowResponse;
|
|
3009
3014
|
}
|
|
3010
3015
|
export interface UnpinActivityResponse {
|
|
3011
3016
|
duration: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './response-generators';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FeedResponse, FollowResponse, OwnUser, OwnUserResponse, UserResponse } from '../gen/models';
|
|
2
|
+
export declare const getHumanId: () => string;
|
|
3
|
+
export declare const generateUserResponse: (overrides?: Partial<UserResponse>) => UserResponse;
|
|
4
|
+
export declare const generateOwnUserResponse: (overrides?: Partial<OwnUserResponse>) => OwnUserResponse;
|
|
5
|
+
export declare const generateOwnUser: (overrides?: Partial<OwnUser>) => OwnUser;
|
|
6
|
+
export declare const generateFeedResponse: (overrides?: Omit<Partial<FeedResponse>, "created_by" | "fid"> & {
|
|
7
|
+
created_by?: Partial<UserResponse>;
|
|
8
|
+
}) => FeedResponse;
|
|
9
|
+
export declare const generateFollowResponse: (overrides?: Partial<FollowResponse>) => FollowResponse;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
+
import { WSEvent } from './gen/models';
|
|
1
2
|
export type UpdateStateResult<T> = T & {
|
|
2
3
|
changed: boolean;
|
|
3
4
|
};
|
|
4
5
|
export type FromArray<T> = T extends Array<infer L> ? L : never;
|
|
6
|
+
export type EventPayload<T extends WSEvent['type']> = Extract<WSEvent, {
|
|
7
|
+
type: T;
|
|
8
|
+
}>;
|
|
9
|
+
export type PartializeAllBut<T, K extends keyof T> = Pick<T, K> & {
|
|
10
|
+
[key in K]?: T[key];
|
|
11
|
+
};
|
package/dist/src/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ConnectionChangedEvent } from './common/real-time/event-models';
|
|
|
2
2
|
import { NetworkChangedEvent } from './common/types';
|
|
3
3
|
import { PagerResponse, WSEvent } from './gen/models';
|
|
4
4
|
import type { ActivityResponse, CommentResponse } from './gen/models';
|
|
5
|
-
import { FeedsClient } from './
|
|
5
|
+
import { FeedsClient } from './feeds-client';
|
|
6
6
|
export type FeedsEvent = WSEvent | ConnectionChangedEvent | NetworkChangedEvent;
|
|
7
7
|
export type ActivityIdOrCommentId = string;
|
|
8
8
|
export type GetCommentsRequest = Parameters<FeedsClient['getComments']>[0];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const checkHasAnotherPage: <T extends unknown | undefined>(v: T, cursor: string | undefined) => boolean;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const shouldUpdateState: ({ stateUpdateQueueId, stateUpdateQueue, watch, }: {
|
|
2
|
+
stateUpdateQueueId: string;
|
|
3
|
+
stateUpdateQueue: Set<string>;
|
|
4
|
+
watch: boolean;
|
|
5
|
+
}) => boolean;
|
|
6
|
+
export declare function getStateUpdateQueueId(data: object, prefix?: 'deleted' | 'updated' | 'created' | (string & {})): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CommentResponse, FollowResponse } from '../gen/models';
|
|
2
|
+
import { StreamFile } from '../types';
|
|
3
|
+
import { CommentParent } from '../types';
|
|
4
|
+
export declare const isFollowResponse: (data: object) => data is FollowResponse;
|
|
5
|
+
export declare const isCommentResponse: (entity: CommentParent) => entity is CommentResponse;
|
|
6
|
+
export declare const isImageFile: (file: StreamFile) => boolean;
|
|
7
|
+
export declare const isVideoFile: (file: StreamFile) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const uniqueArrayMerge: <T>(existingArray: T[], arrayToMerge: T[], getKey: (v: T) => string) => T[];
|