@stream-io/feeds-client 0.3.23 → 0.3.25

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 (38) 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 +1 -1
  5. package/dist/es/index.mjs +3 -2
  6. package/dist/es/react-bindings.mjs +1 -1
  7. package/dist/{feeds-client-BJQdmCB4.mjs → feeds-client-BULS-w1O.mjs} +114 -48
  8. package/dist/feeds-client-BULS-w1O.mjs.map +1 -0
  9. package/dist/{feeds-client-BUZVIyHd.js → feeds-client-DUD5wy6N.js} +114 -48
  10. package/dist/feeds-client-DUD5wy6N.js.map +1 -0
  11. package/dist/types/common/Poll.d.ts +6 -6
  12. package/dist/types/common/Poll.d.ts.map +1 -1
  13. package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts +3 -1
  14. package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts.map +1 -1
  15. package/dist/types/feed/feed.d.ts +4 -1
  16. package/dist/types/feed/feed.d.ts.map +1 -1
  17. package/dist/types/feeds-client/feeds-client.d.ts +10 -3
  18. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  19. package/dist/types/feeds-client/get-or-create-active-feed.d.ts +1 -2
  20. package/dist/types/feeds-client/get-or-create-active-feed.d.ts.map +1 -1
  21. package/dist/types/utils/check-own-fields-equality.d.ts +5 -0
  22. package/dist/types/utils/check-own-fields-equality.d.ts.map +1 -0
  23. package/dist/types/utils/index.d.ts +1 -0
  24. package/dist/types/utils/index.d.ts.map +1 -1
  25. package/dist/types/utils/own-feed-fields.d.ts +3 -0
  26. package/dist/types/utils/own-feed-fields.d.ts.map +1 -0
  27. package/package.json +1 -1
  28. package/src/common/Poll.ts +13 -30
  29. package/src/feed/event-handlers/activity/handle-activity-added.ts +3 -1
  30. package/src/feed/feed.ts +49 -16
  31. package/src/feeds-client/feeds-client.ts +69 -32
  32. package/src/feeds-client/get-or-create-active-feed.ts +2 -6
  33. package/src/test-utils/response-generators.ts +2 -1
  34. package/src/utils/check-own-fields-equality.ts +40 -0
  35. package/src/utils/index.ts +1 -0
  36. package/src/utils/own-feed-fields.ts +6 -0
  37. package/dist/feeds-client-BJQdmCB4.mjs.map +0 -1
  38. package/dist/feeds-client-BUZVIyHd.js.map +0 -1
@@ -1,21 +1,21 @@
1
1
  import { StateStore } from '@stream-io/state-store';
2
2
  import { FeedsClient } from '../feeds-client';
3
- import { PollVote, QueryPollVotesRequest, PollUpdatedFeedEvent, PollClosedFeedEvent, PollVoteCastedFeedEvent, PollVoteChangedFeedEvent, PollVoteRemovedFeedEvent, Poll as PollType } from '../gen/models';
4
- export declare const isVoteAnswer: (vote: PollVote) => boolean;
3
+ import { PollVoteResponseData, QueryPollVotesRequest, PollUpdatedFeedEvent, PollClosedFeedEvent, PollVoteCastedFeedEvent, PollVoteChangedFeedEvent, PollVoteRemovedFeedEvent, PollResponseData } from '../gen/models';
4
+ export declare const isVoteAnswer: (vote: PollVoteResponseData) => boolean;
5
5
  export type PollAnswersQueryParams = QueryPollVotesRequest & {
6
6
  poll_id: string;
7
7
  user_id?: string;
8
8
  };
9
9
  type OptionId = string;
10
- export type PollState = Omit<PollType, 'own_votes' | 'id'> & {
10
+ export type PollState = Omit<PollResponseData, 'own_votes' | 'id'> & {
11
11
  last_activity_at: Date;
12
12
  max_voted_option_ids: OptionId[];
13
- own_votes_by_option_id: Record<OptionId, PollVote>;
14
- own_answer?: PollVote;
13
+ own_votes_by_option_id: Record<OptionId, PollVoteResponseData>;
14
+ own_answer?: PollVoteResponseData;
15
15
  };
16
16
  type PollInitOptions = {
17
17
  client: FeedsClient;
18
- poll: PollType;
18
+ poll: PollResponseData;
19
19
  };
20
20
  export declare class StreamPoll {
21
21
  readonly state: StateStore<PollState>;
@@ -1 +1 @@
1
- {"version":3,"file":"Poll.d.ts","sourceRoot":"","sources":["../../../src/common/Poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EAEpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EAExB,IAAI,IAAI,QAAQ,EACjB,MAAM,eAAe,CAAC;AAuBvB,eAAO,MAAM,YAAY,GAAI,MAAM,QAAQ,YAAwB,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG;IAC3D,gBAAgB,EAAE,IAAI,CAAC;IACvB,oBAAoB,EAAE,QAAQ,EAAE,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB,SAAgB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe;IAS7C,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CA4B9C;IAEK,iBAAiB,GAAI,MAAM,eAAe,CAAC,MAAM,CAAC,UAEvD;IAEF,IAAI,IAAI,IAAI,SAAS,CAEpB;IAEM,iBAAiB,GAAI,OAAO,oBAAoB,UASrD;IAEK,gBAAgB,GAAI,OAAO,mBAAmB,UAOnD;IAEK,gBAAgB,GAAI,OAAO,uBAAuB,UAmDvD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UA+EzD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UA+CzD;CACH"}
1
+ {"version":3,"file":"Poll.d.ts","sourceRoot":"","sources":["../../../src/common/Poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EAEpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAuBvB,eAAO,MAAM,YAAY,GAAI,MAAM,oBAAoB,YAClC,CAAC;AAEtB,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG;IACnE,gBAAgB,EAAE,IAAI,CAAC;IACvB,oBAAoB,EAAE,QAAQ,EAAE,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,qBAAa,UAAU;IACrB,SAAgB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,eAAe;IAS7C,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CA4B9C;IAEK,iBAAiB,GAAI,MAAM,eAAe,CAAC,MAAM,CAAC,UAEvD;IAEF,IAAI,IAAI,IAAI,SAAS,CAEpB;IAEM,iBAAiB,GAAI,OAAO,oBAAoB,UAQrD;IAEK,gBAAgB,GAAI,OAAO,mBAAmB,UAOnD;IAEK,gBAAgB,GAAI,OAAO,uBAAuB,UA6CvD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UAuEzD;IAEK,iBAAiB,GAAI,OAAO,wBAAwB,UA6CzD;CACH"}
@@ -1,7 +1,9 @@
1
1
  import { Feed } from '../../feed';
2
2
  import { ActivityResponse } from '../../../gen/models';
3
3
  import { EventPayload } from '../../../types-internal';
4
- export declare function addActivitiesToState(this: Feed, newActivities: ActivityResponse[], activities: ActivityResponse[] | undefined, position: 'start' | 'end'): {
4
+ export declare function addActivitiesToState(this: Feed, newActivities: ActivityResponse[], activities: ActivityResponse[] | undefined, position: 'start' | 'end', { fromWebSocket }?: {
5
+ fromWebSocket: boolean;
6
+ }): {
5
7
  changed: boolean;
6
8
  activities: ActivityResponse[];
7
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handle-activity-added.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-added.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,EAAE,EACjC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,KAAK;;;EAiC1B;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,QAyB5C"}
1
+ {"version":3,"file":"handle-activity-added.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-added.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,EAAE,EACjC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,EAAE,aAAa,EAAE,GAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAA6B;;;EAiCzE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,QA0B5C"}
@@ -131,6 +131,9 @@ export declare class Feed extends FeedApi {
131
131
  on: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.feedback" | "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" | "feeds.stories_feed.updated" | "health.check" | "moderation.custom_action" | "moderation.mark_reviewed" | "user.updated" | "moderation.flagged" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated", handler: (event: WSEvent) => void) => () => void;
132
132
  off: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.feedback" | "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" | "feeds.stories_feed.updated" | "health.check" | "moderation.custom_action" | "moderation.mark_reviewed" | "user.updated" | "moderation.flagged" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated", handler: (event: WSEvent) => void) => void;
133
133
  handleWSEvent(event: WSEvent): void;
134
- protected newActivitiesAdded(activities: ActivityResponse[]): void;
134
+ protected newActivitiesAdded(activities: ActivityResponse[], options?: {
135
+ fromWebSocket: boolean;
136
+ }): void;
137
+ private getOrCreateFeeds;
135
138
  }
136
139
  //# sourceMappingURL=feed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"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"}
@@ -153,9 +153,16 @@ export declare class FeedsClient extends FeedsApi {
153
153
  connection_id?: string;
154
154
  }): Promise<StreamResponse<import('..').GetOrCreateFeedResponse>>;
155
155
  getFollowSuggestions(...params: Parameters<FeedsApi['getFollowSuggestions']>): Promise<StreamResponse<GetFollowSuggestionsResponse>>;
156
- protected readonly getOrCreateActiveFeed: (group: string, id: string, data?: FeedResponse, watch?: boolean, options?: {
157
- addNewActivitiesTo?: "start" | "end";
158
- activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
156
+ protected readonly getOrCreateActiveFeed: ({ group, id, data, watch, options, fromWebSocket, }: {
157
+ group: string;
158
+ id: string;
159
+ data?: FeedResponse;
160
+ watch?: boolean;
161
+ options?: {
162
+ addNewActivitiesTo?: "start" | "end";
163
+ activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
164
+ };
165
+ fromWebSocket?: boolean;
159
166
  }) => Feed;
160
167
  private findAllActiveFeedsByActivityId;
161
168
  private findAllActiveFeedsByFid;
@@ -1 +1 @@
1
- {"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { FeedResponse } from '../gen/models';
2
1
  import { FeedsClient } from './feeds-client';
3
- export declare function getOrCreateActiveFeed(this: FeedsClient, group: string, id: string, data?: FeedResponse, watch?: boolean): import('..').Feed;
2
+ export declare function getOrCreateActiveFeed(this: FeedsClient, ...args: Parameters<FeedsClient['getOrCreateActiveFeed']>): import('..').Feed;
4
3
  //# sourceMappingURL=get-or-create-active-feed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-or-create-active-feed.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/get-or-create-active-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,OAAO,qBAGhB"}
1
+ {"version":3,"file":"get-or-create-active-feed.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/get-or-create-active-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,qBAG1D"}
@@ -0,0 +1,5 @@
1
+ import { FeedState } from '../feed';
2
+ import { FeedResponse } from '../gen/models';
3
+ export declare const isOwnFollowsEqual: (currentState: FeedState, newState: FeedResponse) => boolean;
4
+ export declare const isOwnMembershipEqual: (currentState: FeedState, newState: FeedResponse) => boolean;
5
+ //# sourceMappingURL=check-own-fields-equality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-own-fields-equality.d.ts","sourceRoot":"","sources":["../../../src/utils/check-own-fields-equality.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,iBAAiB,GAC5B,cAAc,SAAS,EACvB,UAAU,YAAY,YAwBvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,cAAc,SAAS,EACvB,UAAU,YAAY,YAMvB,CAAC"}
@@ -6,4 +6,5 @@ export * from './state-update-queue';
6
6
  export * from './update-entity-in-array';
7
7
  export * from './logger';
8
8
  export * from './ensure-exhausted';
9
+ export * from './own-feed-fields';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { FeedResponse } from '../gen/models';
2
+ export declare const ownFeedFields: Array<keyof Pick<FeedResponse, 'own_capabilities' | 'own_follows' | 'own_membership'>>;
3
+ //# sourceMappingURL=own-feed-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"own-feed-fields.d.ts","sourceRoot":"","sources":["../../../src/utils/own-feed-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,MAAM,IAAI,CAC1C,YAAY,EACZ,kBAAkB,GAAG,aAAa,GAAG,gBAAgB,CACtD,CAAyD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/feeds-client",
3
- "version": "0.3.23",
3
+ "version": "0.3.25",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/es/index.mjs",
@@ -1,7 +1,7 @@
1
1
  import { StateStore } from '@stream-io/state-store';
2
2
  import type { FeedsClient } from '../feeds-client';
3
3
  import type {
4
- PollVote,
4
+ PollVoteResponseData,
5
5
  QueryPollVotesRequest,
6
6
  PollUpdatedFeedEvent,
7
7
  WSEvent,
@@ -10,7 +10,6 @@ import type {
10
10
  PollVoteChangedFeedEvent,
11
11
  PollVoteRemovedFeedEvent,
12
12
  PollResponseData,
13
- Poll as PollType,
14
13
  } from '../gen/models';
15
14
 
16
15
  const isPollUpdatedEvent = (
@@ -34,7 +33,8 @@ const isPollVoteRemovedEvent = (
34
33
  ): e is { type: 'feeds.poll.vote_removed' } & PollVoteRemovedFeedEvent =>
35
34
  e.type === 'feeds.poll.vote_removed';
36
35
 
37
- export const isVoteAnswer = (vote: PollVote) => !!vote?.answer_text;
36
+ export const isVoteAnswer = (vote: PollVoteResponseData) =>
37
+ !!vote?.answer_text;
38
38
 
39
39
  export type PollAnswersQueryParams = QueryPollVotesRequest & {
40
40
  poll_id: string;
@@ -43,16 +43,16 @@ export type PollAnswersQueryParams = QueryPollVotesRequest & {
43
43
 
44
44
  type OptionId = string;
45
45
 
46
- export type PollState = Omit<PollType, 'own_votes' | 'id'> & {
46
+ export type PollState = Omit<PollResponseData, 'own_votes' | 'id'> & {
47
47
  last_activity_at: Date;
48
48
  max_voted_option_ids: OptionId[];
49
- own_votes_by_option_id: Record<OptionId, PollVote>;
50
- own_answer?: PollVote; // each user can have only one answer
49
+ own_votes_by_option_id: Record<OptionId, PollVoteResponseData>;
50
+ own_answer?: PollVoteResponseData; // each user can have only one answer
51
51
  };
52
52
 
53
53
  type PollInitOptions = {
54
54
  client: FeedsClient;
55
- poll: PollType;
55
+ poll: PollResponseData;
56
56
  };
57
57
 
58
58
  export class StreamPoll {
@@ -74,8 +74,8 @@ export class StreamPoll {
74
74
  ) => {
75
75
  const { own_votes, id, ...pollResponseForState } = poll;
76
76
  const { ownAnswer, ownVotes } = own_votes?.reduce<{
77
- ownVotes: PollVote[];
78
- ownAnswer?: PollVote;
77
+ ownVotes: PollVoteResponseData[];
78
+ ownAnswer?: PollVoteResponseData;
79
79
  }>(
80
80
  (acc, voteOrAnswer) => {
81
81
  if (isVoteAnswer(voteOrAnswer)) {
@@ -111,7 +111,6 @@ export class StreamPoll {
111
111
  if (event.poll?.id && event.poll.id !== this.id) return;
112
112
  if (!isPollUpdatedEvent(event as WSEvent)) return;
113
113
  const { id, ...pollData } = event.poll;
114
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
115
114
  this.state.partialNext({
116
115
  ...pollData,
117
116
  last_activity_at: new Date(event.created_at),
@@ -140,19 +139,14 @@ export class StreamPoll {
140
139
  let maxVotedOptionIds = currentState.max_voted_option_ids;
141
140
 
142
141
  if (isOwnVote) {
143
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
144
142
  if (isVoteAnswer(event.poll_vote)) {
145
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
146
143
  ownAnswer = event.poll_vote;
147
144
  } else if (event.poll_vote.option_id) {
148
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
149
145
  ownVotesByOptionId[event.poll_vote.option_id] = event.poll_vote;
150
146
  }
151
147
  }
152
148
 
153
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
154
149
  if (isVoteAnswer(event.poll_vote)) {
155
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
156
150
  latestAnswers = [event.poll_vote, ...latestAnswers];
157
151
  } else {
158
152
  maxVotedOptionIds = getMaxVotedOptionIds(
@@ -168,7 +162,6 @@ export class StreamPoll {
168
162
  } = event.poll;
169
163
  this.state.partialNext({
170
164
  answers_count,
171
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
172
165
  latest_votes_by_option,
173
166
  vote_count,
174
167
  vote_counts_by_option,
@@ -194,22 +187,18 @@ export class StreamPoll {
194
187
  let maxVotedOptionIds = currentState.max_voted_option_ids;
195
188
 
196
189
  if (isOwnVote) {
197
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
198
190
  if (isVoteAnswer(event.poll_vote)) {
199
191
  latestAnswers = [
200
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
201
192
  event.poll_vote,
202
193
  ...latestAnswers.filter((answer) => answer.id !== event.poll_vote.id),
203
194
  ];
204
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
205
195
  ownAnswer = event.poll_vote;
206
196
  } else if (event.poll_vote.option_id) {
207
197
  if (event.poll.enforce_unique_vote) {
208
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
209
198
  ownVotesByOptionId = { [event.poll_vote.option_id]: event.poll_vote };
210
199
  } else {
211
200
  ownVotesByOptionId = Object.entries(ownVotesByOptionId).reduce<
212
- Record<OptionId, PollVote>
201
+ Record<OptionId, PollVoteResponseData>
213
202
  >((acc, [optionId, vote]) => {
214
203
  if (
215
204
  optionId !== event.poll_vote.option_id &&
@@ -220,7 +209,6 @@ export class StreamPoll {
220
209
  acc[optionId] = vote;
221
210
  return acc;
222
211
  }, {});
223
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
224
212
  ownVotesByOptionId[event.poll_vote.option_id] = event.poll_vote;
225
213
  }
226
214
 
@@ -231,9 +219,7 @@ export class StreamPoll {
231
219
  event.poll.vote_counts_by_option,
232
220
  );
233
221
  }
234
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
235
222
  } else if (isVoteAnswer(event.poll_vote)) {
236
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
237
223
  latestAnswers = [event.poll_vote, ...latestAnswers];
238
224
  } else {
239
225
  maxVotedOptionIds = getMaxVotedOptionIds(
@@ -249,7 +235,6 @@ export class StreamPoll {
249
235
  } = event.poll;
250
236
  this.state.partialNext({
251
237
  answers_count,
252
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
253
238
  latest_votes_by_option,
254
239
  vote_count,
255
240
  vote_counts_by_option,
@@ -273,7 +258,6 @@ export class StreamPoll {
273
258
  const ownVotesByOptionId = { ...currentState.own_votes_by_option_id };
274
259
  let maxVotedOptionIds = currentState.max_voted_option_ids;
275
260
 
276
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
277
261
  if (isVoteAnswer(event.poll_vote)) {
278
262
  latestAnswers = latestAnswers.filter(
279
263
  (answer) => answer.id !== event.poll_vote.id,
@@ -298,7 +282,6 @@ export class StreamPoll {
298
282
  } = event.poll;
299
283
  this.state.partialNext({
300
284
  answers_count,
301
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
302
285
  latest_votes_by_option,
303
286
  vote_count,
304
287
  vote_counts_by_option,
@@ -327,10 +310,10 @@ function getMaxVotedOptionIds(
327
310
  return winningOptions;
328
311
  }
329
312
 
330
- function getOwnVotesByOptionId(ownVotes: PollVote[]) {
313
+ function getOwnVotesByOptionId(ownVotes: PollVoteResponseData[]) {
331
314
  return !ownVotes
332
- ? ({} satisfies Record<OptionId, PollVote>)
333
- : ownVotes.reduce<Record<OptionId, PollVote>>((acc, vote) => {
315
+ ? ({} satisfies Record<OptionId, PollVoteResponseData>)
316
+ : ownVotes.reduce<Record<OptionId, PollVoteResponseData>>((acc, vote) => {
334
317
  if (isVoteAnswer(vote) || !vote.option_id) return acc;
335
318
  acc[vote.option_id] = vote;
336
319
  return acc;
@@ -7,6 +7,7 @@ export function addActivitiesToState(
7
7
  newActivities: ActivityResponse[],
8
8
  activities: ActivityResponse[] | undefined,
9
9
  position: 'start' | 'end',
10
+ { fromWebSocket }: { fromWebSocket: boolean } = { fromWebSocket: false },
10
11
  ) {
11
12
  if (activities === undefined) {
12
13
  return {
@@ -33,7 +34,7 @@ export function addActivitiesToState(
33
34
  ...activities,
34
35
  ...(position === 'end' ? newActivitiesDeduplicated : []),
35
36
  ];
36
- this.newActivitiesAdded(newActivitiesDeduplicated);
37
+ this.newActivitiesAdded(newActivitiesDeduplicated, { fromWebSocket });
37
38
 
38
39
  result = { changed: true, activities: updatedActivities };
39
40
  }
@@ -55,6 +56,7 @@ export function handleActivityAdded(
55
56
  [event.activity],
56
57
  currentActivities,
57
58
  this.currentState.addNewActivitiesTo,
59
+ { fromWebSocket: true },
58
60
  );
59
61
  if (result.changed) {
60
62
  const activity = event.activity;
package/src/feed/feed.ts CHANGED
@@ -63,6 +63,7 @@ import {
63
63
  checkHasAnotherPage,
64
64
  Constants,
65
65
  feedsLoggerSystem,
66
+ ownFeedFields,
66
67
  uniqueArrayMerge,
67
68
  } from '../utils';
68
69
  import { handleActivityFeedback } from './event-handlers/activity/handle-activity-feedback';
@@ -953,12 +954,13 @@ export class Feed extends FeedApi {
953
954
  event.activity.current_feed &&
954
955
  currentActivity?.current_feed
955
956
  ) {
956
- event.activity.current_feed.own_capabilities =
957
- currentActivity.current_feed.own_capabilities;
958
- event.activity.current_feed.own_follows =
959
- currentActivity.current_feed.own_follows;
960
- event.activity.current_feed.own_membership =
961
- currentActivity.current_feed.own_membership;
957
+ ownFeedFields.forEach((field) => {
958
+ if (field in currentActivity.current_feed!) {
959
+ // @ts-expect-error TODO: fix this
960
+ event.activity.current_feed![field] =
961
+ currentActivity.current_feed![field];
962
+ }
963
+ });
962
964
  }
963
965
  }
964
966
  // @ts-expect-error intersection of handler arguments results to never
@@ -974,17 +976,48 @@ export class Feed extends FeedApi {
974
976
  this.eventDispatcher.dispatch(event);
975
977
  }
976
978
 
977
- protected newActivitiesAdded(activities: ActivityResponse[]) {
979
+ protected newActivitiesAdded(
980
+ activities: ActivityResponse[],
981
+ options: {
982
+ fromWebSocket: boolean;
983
+ } = { fromWebSocket: false },
984
+ ) {
978
985
  this.client.hydratePollCache(activities);
986
+ this.getOrCreateFeeds(activities, options);
987
+ }
979
988
 
980
- activities.forEach((activity) => {
981
- if (activity.current_feed) {
982
- getOrCreateActiveFeed.bind(this.client)(
983
- activity.current_feed.group_id,
984
- activity.current_feed.id,
985
- activity.current_feed,
986
- );
987
- }
988
- });
989
+ private getOrCreateFeeds(
990
+ activities: ActivityResponse[],
991
+ options: {
992
+ fromWebSocket: boolean;
993
+ },
994
+ ) {
995
+ const enrichmentOptions =
996
+ this.currentState.last_get_or_create_request_config?.enrichment_options;
997
+ if (
998
+ !enrichmentOptions?.skip_activity_current_feed &&
999
+ !enrichmentOptions?.skip_all
1000
+ ) {
1001
+ const feedsToGetOrCreate = new Map<string, FeedResponse>();
1002
+ activities.forEach((activity) => {
1003
+ if (
1004
+ activity.current_feed &&
1005
+ !feedsToGetOrCreate.has(activity.current_feed.feed)
1006
+ ) {
1007
+ feedsToGetOrCreate.set(
1008
+ activity.current_feed.feed,
1009
+ activity.current_feed,
1010
+ );
1011
+ }
1012
+ });
1013
+ feedsToGetOrCreate.values().forEach((feed) => {
1014
+ getOrCreateActiveFeed.bind(this.client)({
1015
+ group: feed.group_id,
1016
+ id: feed.id,
1017
+ data: feed,
1018
+ fromWebSocket: options.fromWebSocket,
1019
+ });
1020
+ });
1021
+ }
989
1022
  }
990
1023
  }
@@ -93,6 +93,10 @@ import {
93
93
  } from '../utils/throttling';
94
94
  import { ActivityWithStateUpdates } from '../activity-with-state-updates/activity-with-state-updates';
95
95
  import { getFeed } from '../activity-with-state-updates/get-feed';
96
+ import {
97
+ isOwnFollowsEqual,
98
+ isOwnMembershipEqual,
99
+ } from '../utils/check-own-fields-equality';
96
100
 
97
101
  export type FeedsClientState = {
98
102
  connected_user: ConnectedUser | undefined;
@@ -175,11 +179,11 @@ export class FeedsClient extends FeedsApi {
175
179
  case 'feeds.feed.created': {
176
180
  if (this.activeFeeds[event.feed.id]) break;
177
181
 
178
- this.getOrCreateActiveFeed(
179
- event.feed.group_id,
180
- event.feed.id,
181
- event.feed,
182
- );
182
+ this.getOrCreateActiveFeed({
183
+ group: event.feed.group_id,
184
+ id: event.feed.id,
185
+ data: event.feed,
186
+ });
183
187
 
184
188
  break;
185
189
  }
@@ -356,11 +360,9 @@ export class FeedsClient extends FeedsApi {
356
360
  const pollResponse = activity.poll;
357
361
  const pollFromCache = this.pollFromState(pollResponse.id);
358
362
  if (!pollFromCache) {
359
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
360
363
  const poll = new StreamPoll({ client: this, poll: pollResponse });
361
364
  this.polls_by_id.set(poll.id, poll);
362
365
  } else {
363
- // @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
364
366
  pollFromCache.reinitializeState(pollResponse);
365
367
  }
366
368
  }
@@ -676,13 +678,11 @@ export class FeedsClient extends FeedsApi {
676
678
  activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
677
679
  },
678
680
  ) => {
679
- return this.getOrCreateActiveFeed(
680
- groupId,
681
+ return this.getOrCreateActiveFeed({
682
+ group: groupId,
681
683
  id,
682
- undefined,
683
- undefined,
684
684
  options,
685
- );
685
+ });
686
686
  };
687
687
 
688
688
  /**
@@ -708,12 +708,12 @@ export class FeedsClient extends FeedsApi {
708
708
  const feedResponses = response.feeds;
709
709
 
710
710
  const feeds = feedResponses.map((feedResponse) =>
711
- this.getOrCreateActiveFeed(
712
- feedResponse.group_id,
713
- feedResponse.id,
714
- feedResponse,
715
- request?.watch,
716
- ),
711
+ this.getOrCreateActiveFeed({
712
+ group: feedResponse.group_id,
713
+ id: feedResponse.id,
714
+ data: feedResponse,
715
+ watch: request?.watch,
716
+ }),
717
717
  );
718
718
 
719
719
  this.hydrateCapabilitiesCache(feedResponses);
@@ -846,27 +846,35 @@ export class FeedsClient extends FeedsApi {
846
846
  const response = await super.getFollowSuggestions(...params);
847
847
 
848
848
  response.suggestions.forEach((suggestion) => {
849
- this.getOrCreateActiveFeed(
850
- suggestion.group_id,
851
- suggestion.id,
852
- suggestion,
853
- );
849
+ this.getOrCreateActiveFeed({
850
+ group: suggestion.group_id,
851
+ id: suggestion.id,
852
+ data: suggestion,
853
+ });
854
854
  });
855
855
 
856
856
  // TODO: return feed instance here https://linear.app/stream/issue/REACT-669/return-feed-instance-from-followsuggestions-breaking
857
857
  return response;
858
858
  }
859
859
 
860
- protected readonly getOrCreateActiveFeed = (
861
- group: string,
862
- id: string,
863
- data?: FeedResponse,
864
- watch?: boolean,
860
+ protected readonly getOrCreateActiveFeed = ({
861
+ group,
862
+ id,
863
+ data,
864
+ watch,
865
+ options,
866
+ fromWebSocket = false,
867
+ }: {
868
+ group: string;
869
+ id: string;
870
+ data?: FeedResponse;
871
+ watch?: boolean;
865
872
  options?: {
866
873
  addNewActivitiesTo?: 'start' | 'end';
867
874
  activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
868
- },
869
- ) => {
875
+ };
876
+ fromWebSocket?: boolean;
877
+ }) => {
870
878
  const fid = `${group}:${id}`;
871
879
  let isCreated = false;
872
880
 
@@ -895,8 +903,37 @@ export class FeedsClient extends FeedsApi {
895
903
  }
896
904
 
897
905
  if (!feed.currentState.watch) {
898
- // feed isn't watched and may be stale, update it
899
- if (data) handleFeedUpdated.call(feed, { feed: data });
906
+ if (!isCreated && data) {
907
+ if (
908
+ (feed.currentState.updated_at?.getTime() ?? 0) <
909
+ data.updated_at.getTime()
910
+ ) {
911
+ handleFeedUpdated.call(feed, { feed: data });
912
+ } else if (
913
+ (feed.currentState.updated_at?.getTime() ?? 0) ===
914
+ data.updated_at.getTime() &&
915
+ !fromWebSocket
916
+ ) {
917
+ const fieldsToUpdate: Array<keyof FeedResponse> = [];
918
+ if (!isOwnFollowsEqual(feed.currentState, data)) {
919
+ fieldsToUpdate.push('own_follows');
920
+ }
921
+ if (!isOwnMembershipEqual(feed.currentState, data)) {
922
+ fieldsToUpdate.push('own_membership');
923
+ }
924
+ if (fieldsToUpdate.length > 0) {
925
+ const fieldsToUpdateData = fieldsToUpdate.reduce(
926
+ (acc: Partial<FeedResponse>, field) => {
927
+ // @ts-expect-error TODO: fix this
928
+ acc[field] = data[field];
929
+ return acc;
930
+ },
931
+ {},
932
+ );
933
+ feed.state.partialNext(fieldsToUpdateData);
934
+ }
935
+ }
936
+ }
900
937
  if (watch) handleWatchStarted.call(feed);
901
938
  }
902
939