@stream-io/feeds-client 0.3.23 → 0.3.24
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 +7 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/react-bindings.js +1 -1
- package/dist/es/index.mjs +2 -2
- package/dist/es/react-bindings.mjs +1 -1
- package/dist/{feeds-client-BUZVIyHd.js → feeds-client-CuCL126K.js} +2 -6
- package/dist/{feeds-client-BUZVIyHd.js.map → feeds-client-CuCL126K.js.map} +1 -1
- package/dist/{feeds-client-BJQdmCB4.mjs → feeds-client-DljxtRSI.mjs} +2 -6
- package/dist/{feeds-client-BJQdmCB4.mjs.map → feeds-client-DljxtRSI.mjs.map} +1 -1
- package/dist/types/common/Poll.d.ts +6 -6
- package/dist/types/common/Poll.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/common/Poll.ts +13 -30
- package/src/feeds-client/feeds-client.ts +0 -2
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { StateStore } from '@stream-io/state-store';
|
|
2
2
|
import { FeedsClient } from '../feeds-client';
|
|
3
|
-
import {
|
|
4
|
-
export declare const isVoteAnswer: (vote:
|
|
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<
|
|
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,
|
|
14
|
-
own_answer?:
|
|
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:
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EAEb,4BAA4B,EAC5B,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EAEZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAYpD,OAAO,KAAK,EACV,kBAAkB,EAElB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,IAAI,EAgBL,MAAM,SAAS,CAAC;AASjB,OAAO,EAKL,KAAK,kCAAkC,EAExC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AAGtG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,wBAAwB,EAAE,OAAO,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAC3E,CAAC;AAEF,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,qBAAa,WAAY,SAAQ,QAAQ;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IAEtD,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAM;IAC9E,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAM;IAE9C,OAAO,CAAC,kCAAkC,CAAK;IAE/C,SAAS,CAAC,gCAAgC,EAAG,kCAAkC,CAAC;IAChF,OAAO,CAAC,kCAAkC,CAAc;IACxD,OAAO,CAAC,+CAA+C,CAAU;gBAErD,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAwJxD,OAAO,CAAC,4CAA4C,CAwBlD;IAEF,OAAO,CAAC,kBAAkB,CA8BxB;IAEF,OAAO,KAAK,cAAc,GAOzB;IAEM,aAAa,GAAI,IAAI,MAAM,4BAA8B;IAEzD,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/common/Poll.ts
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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<
|
|
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,
|
|
50
|
-
own_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:
|
|
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:
|
|
78
|
-
ownAnswer?:
|
|
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,
|
|
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:
|
|
313
|
+
function getOwnVotesByOptionId(ownVotes: PollVoteResponseData[]) {
|
|
331
314
|
return !ownVotes
|
|
332
|
-
? ({} satisfies Record<OptionId,
|
|
333
|
-
: ownVotes.reduce<Record<OptionId,
|
|
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;
|
|
@@ -356,11 +356,9 @@ export class FeedsClient extends FeedsApi {
|
|
|
356
356
|
const pollResponse = activity.poll;
|
|
357
357
|
const pollFromCache = this.pollFromState(pollResponse.id);
|
|
358
358
|
if (!pollFromCache) {
|
|
359
|
-
// @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
|
|
360
359
|
const poll = new StreamPoll({ client: this, poll: pollResponse });
|
|
361
360
|
this.polls_by_id.set(poll.id, poll);
|
|
362
361
|
} else {
|
|
363
|
-
// @ts-expect-error Incompatibility between PollResponseData and Poll due to teams_role, remove when OpenAPI spec is fixed
|
|
364
362
|
pollFromCache.reinitializeState(pollResponse);
|
|
365
363
|
}
|
|
366
364
|
}
|