@stream-io/feeds-client 0.2.13 → 0.2.14
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 +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-bindings.js +1 -1
- package/dist/es/index.mjs +3 -2
- package/dist/es/react-bindings.mjs +1 -1
- package/dist/{index-RzB4c4g6.js → index-B08vVRSZ.js} +89 -11
- package/dist/index-B08vVRSZ.js.map +1 -0
- package/dist/{index-gvcJhGPH.mjs → index-B3HHiF9S.mjs} +89 -11
- package/dist/index-B3HHiF9S.mjs.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/common/real-time/StableWSConnection.d.ts +3 -3
- package/dist/types/common/real-time/StableWSConnection.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/{notification-feed/handle-notification-feed-updated.d.ts → aggregated-feed/handle-aggregated-feed-updated.d.ts} +10 -4
- package/dist/types/feed/event-handlers/aggregated-feed/handle-aggregated-feed-updated.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/aggregated-feed/index.d.ts +2 -0
- package/dist/types/feed/event-handlers/aggregated-feed/index.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/index.d.ts +1 -1
- package/dist/types/feed/event-handlers/index.d.ts.map +1 -1
- package/dist/types/feed/feed.d.ts +2 -2
- package/dist/types/feed/feed.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +2 -2
- package/dist/types/gen/model-decoders/event-decoder-mapping.d.ts.map +1 -1
- package/dist/types/gen/models/index.d.ts +17 -1
- package/dist/types/gen/models/index.d.ts.map +1 -1
- package/dist/types/utils/unique-array-merge.d.ts +1 -0
- package/dist/types/utils/unique-array-merge.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/feed/event-handlers/{notification-feed/handle-notification-feed-updated.test.ts → aggregated-feed/handle-aggregated-feed-updated.test.ts} +227 -1
- package/src/feed/event-handlers/{notification-feed/handle-notification-feed-updated.ts → aggregated-feed/handle-aggregated-feed-updated.ts} +71 -15
- package/src/feed/event-handlers/aggregated-feed/index.ts +1 -0
- package/src/feed/event-handlers/index.ts +1 -1
- package/src/feed/feed.ts +2 -0
- package/src/gen/model-decoders/decoders.ts +14 -0
- package/src/gen/model-decoders/event-decoder-mapping.ts +3 -0
- package/src/gen/models/index.ts +26 -2
- package/src/utils/unique-array-merge.ts +30 -0
- package/dist/index-RzB4c4g6.js.map +0 -1
- package/dist/index-gvcJhGPH.mjs.map +0 -1
- package/dist/types/feed/event-handlers/notification-feed/handle-notification-feed-updated.d.ts.map +0 -1
- package/dist/types/feed/event-handlers/notification-feed/index.d.ts +0 -2
- package/dist/types/feed/event-handlers/notification-feed/index.d.ts.map +0 -1
- package/src/feed/event-handlers/notification-feed/index.ts +0 -1
|
@@ -1246,6 +1246,17 @@ decoders.SingleFollowResponse = (input) => {
|
|
|
1246
1246
|
};
|
|
1247
1247
|
return decode(typeMappings, input);
|
|
1248
1248
|
};
|
|
1249
|
+
decoders.StoriesFeedUpdatedEvent = (input) => {
|
|
1250
|
+
const typeMappings = {
|
|
1251
|
+
created_at: { type: "DatetimeType", isSingle: true },
|
|
1252
|
+
received_at: { type: "DatetimeType", isSingle: true },
|
|
1253
|
+
aggregated_activities: {
|
|
1254
|
+
type: "AggregatedActivityResponse",
|
|
1255
|
+
isSingle: false
|
|
1256
|
+
}
|
|
1257
|
+
};
|
|
1258
|
+
return decode(typeMappings, input);
|
|
1259
|
+
};
|
|
1249
1260
|
decoders.SubmitActionResponse = (input) => {
|
|
1250
1261
|
const typeMappings = {
|
|
1251
1262
|
item: { type: "ReviewQueueItemResponse", isSingle: true }
|
|
@@ -3693,7 +3704,7 @@ const getRateLimitFromResponseHeader = (response_headers) => {
|
|
|
3693
3704
|
};
|
|
3694
3705
|
return result;
|
|
3695
3706
|
};
|
|
3696
|
-
const version = "0.2.
|
|
3707
|
+
const version = "0.2.14";
|
|
3697
3708
|
class ApiClient {
|
|
3698
3709
|
constructor(apiKey, tokenManager, connectionIdManager, options) {
|
|
3699
3710
|
this.apiKey = apiKey;
|
|
@@ -3904,6 +3915,7 @@ const eventDecoderMapping = {
|
|
|
3904
3915
|
"feeds.poll.vote_casted": (data) => decoders.PollVoteCastedFeedEvent(data),
|
|
3905
3916
|
"feeds.poll.vote_changed": (data) => decoders.PollVoteChangedFeedEvent(data),
|
|
3906
3917
|
"feeds.poll.vote_removed": (data) => decoders.PollVoteRemovedFeedEvent(data),
|
|
3918
|
+
"feeds.stories_feed.updated": (data) => decoders.StoriesFeedUpdatedEvent(data),
|
|
3907
3919
|
"health.check": (data) => decoders.HealthCheckEvent(data),
|
|
3908
3920
|
"moderation.custom_action": (data) => decoders.ModerationCustomActionEvent(data),
|
|
3909
3921
|
"moderation.flagged": (data) => decoders.ModerationFlaggedEvent(data),
|
|
@@ -4432,6 +4444,27 @@ const uniqueArrayMerge = (existingArray, arrayToMerge, getKey) => {
|
|
|
4432
4444
|
});
|
|
4433
4445
|
return existingArray.concat(filteredArrayToMerge);
|
|
4434
4446
|
};
|
|
4447
|
+
const replaceUniqueArrayMerge = (existingArray, arrayToMerge, getKey) => {
|
|
4448
|
+
const existingMap = /* @__PURE__ */ new Map();
|
|
4449
|
+
(existingArray ?? []).forEach((item) => {
|
|
4450
|
+
existingMap.set(getKey(item), item);
|
|
4451
|
+
});
|
|
4452
|
+
const result = [];
|
|
4453
|
+
arrayToMerge.forEach((item) => {
|
|
4454
|
+
existingMap.set(getKey(item), item);
|
|
4455
|
+
});
|
|
4456
|
+
existingArray.forEach((originalItem) => {
|
|
4457
|
+
const updatedItem = existingMap.get(getKey(originalItem));
|
|
4458
|
+
if (updatedItem) {
|
|
4459
|
+
result.push(updatedItem);
|
|
4460
|
+
existingMap.delete(getKey(originalItem));
|
|
4461
|
+
}
|
|
4462
|
+
});
|
|
4463
|
+
existingMap.forEach((item) => {
|
|
4464
|
+
result.push(item);
|
|
4465
|
+
});
|
|
4466
|
+
return result;
|
|
4467
|
+
};
|
|
4435
4468
|
const Constants = {
|
|
4436
4469
|
DEFAULT_COMMENT_PAGINATION: "first"
|
|
4437
4470
|
};
|
|
@@ -5575,15 +5608,29 @@ const addAggregatedActivitiesToState = (newAggregatedActivities, aggregatedActiv
|
|
|
5575
5608
|
aggregated_activities: []
|
|
5576
5609
|
};
|
|
5577
5610
|
}
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5611
|
+
switch (position) {
|
|
5612
|
+
case "start":
|
|
5613
|
+
result.aggregated_activities = uniqueArrayMerge(
|
|
5614
|
+
newAggregatedActivities,
|
|
5615
|
+
aggregatedActivities ?? [],
|
|
5616
|
+
(a) => a.group
|
|
5617
|
+
);
|
|
5618
|
+
break;
|
|
5619
|
+
case "end":
|
|
5620
|
+
result.aggregated_activities = uniqueArrayMerge(
|
|
5621
|
+
aggregatedActivities ?? [],
|
|
5622
|
+
newAggregatedActivities,
|
|
5623
|
+
(a) => a.group
|
|
5624
|
+
);
|
|
5625
|
+
break;
|
|
5626
|
+
case "replace":
|
|
5627
|
+
result.aggregated_activities = replaceUniqueArrayMerge(
|
|
5628
|
+
aggregatedActivities ?? [],
|
|
5629
|
+
newAggregatedActivities,
|
|
5630
|
+
(a) => a.group
|
|
5631
|
+
);
|
|
5632
|
+
break;
|
|
5633
|
+
}
|
|
5587
5634
|
return result;
|
|
5588
5635
|
};
|
|
5589
5636
|
const updateNotificationStatus = (newNotificationStatus, currentNotificationStatus) => {
|
|
@@ -5650,6 +5697,35 @@ function handleNotificationFeedUpdated(event) {
|
|
|
5650
5697
|
});
|
|
5651
5698
|
}
|
|
5652
5699
|
}
|
|
5700
|
+
function updateStoriesFeedFromEvent(aggregatedActivities, event) {
|
|
5701
|
+
if (!aggregatedActivities) {
|
|
5702
|
+
return {
|
|
5703
|
+
changed: false
|
|
5704
|
+
};
|
|
5705
|
+
}
|
|
5706
|
+
if (event.aggregated_activities) {
|
|
5707
|
+
const result = addAggregatedActivitiesToState(
|
|
5708
|
+
event.aggregated_activities,
|
|
5709
|
+
aggregatedActivities,
|
|
5710
|
+
"replace"
|
|
5711
|
+
);
|
|
5712
|
+
return result;
|
|
5713
|
+
}
|
|
5714
|
+
return {
|
|
5715
|
+
changed: false
|
|
5716
|
+
};
|
|
5717
|
+
}
|
|
5718
|
+
function handleStoriesFeedUpdated(event) {
|
|
5719
|
+
const result = updateStoriesFeedFromEvent(
|
|
5720
|
+
this.currentState.aggregated_activities,
|
|
5721
|
+
event
|
|
5722
|
+
);
|
|
5723
|
+
if (result.changed) {
|
|
5724
|
+
this.state.partialNext({
|
|
5725
|
+
aggregated_activities: result.data?.aggregated_activities
|
|
5726
|
+
});
|
|
5727
|
+
}
|
|
5728
|
+
}
|
|
5653
5729
|
function handleWatchStarted() {
|
|
5654
5730
|
this.state.partialNext({ watch: true });
|
|
5655
5731
|
}
|
|
@@ -5692,6 +5768,7 @@ const _Feed = class _Feed extends FeedApi {
|
|
|
5692
5768
|
"feeds.feed_member.removed": handleFeedMemberRemoved.bind(this),
|
|
5693
5769
|
"feeds.feed_member.updated": handleFeedMemberUpdated.bind(this),
|
|
5694
5770
|
"feeds.notification_feed.updated": handleNotificationFeedUpdated.bind(this),
|
|
5771
|
+
"feeds.stories_feed.updated": handleStoriesFeedUpdated.bind(this),
|
|
5695
5772
|
// the poll events should be removed from here
|
|
5696
5773
|
"feeds.poll.closed": _Feed.noop,
|
|
5697
5774
|
"feeds.poll.deleted": _Feed.noop,
|
|
@@ -6762,7 +6839,8 @@ export {
|
|
|
6762
6839
|
configureLoggers as o,
|
|
6763
6840
|
getLogger as p,
|
|
6764
6841
|
ensureExhausted as q,
|
|
6842
|
+
replaceUniqueArrayMerge as r,
|
|
6765
6843
|
shouldUpdateState as s,
|
|
6766
6844
|
uniqueArrayMerge as u
|
|
6767
6845
|
};
|
|
6768
|
-
//# sourceMappingURL=index-
|
|
6846
|
+
//# sourceMappingURL=index-B3HHiF9S.mjs.map
|