@stream-io/feeds-client 0.2.13 → 0.2.15
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 +14 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-bindings.js +2 -2
- package/dist/cjs/react-bindings.js.map +1 -1
- package/dist/es/index.mjs +3 -2
- package/dist/es/react-bindings.mjs +2 -2
- package/dist/es/react-bindings.mjs.map +1 -1
- package/dist/{index-gvcJhGPH.mjs → index-BSzSBlMh.mjs} +96 -15
- package/dist/index-BSzSBlMh.mjs.map +1 -0
- package/dist/{index-RzB4c4g6.js → index-DRX66SIx.js} +96 -15
- package/dist/index-DRX66SIx.js.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 +8 -2
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/dist/types/gen/feeds/FeedsApi.d.ts +1 -1
- package/dist/types/gen/feeds/FeedsApi.d.ts.map +1 -1
- 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/bindings/react/hooks/util/useReactionActions.ts +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/feeds-client/feeds-client.ts +15 -7
- package/src/gen/feeds/FeedsApi.ts +2 -2
- 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 }
|
|
@@ -1741,7 +1752,7 @@ class FeedsApi {
|
|
|
1741
1752
|
decoders.PollVoteResponse?.(response.body);
|
|
1742
1753
|
return { ...response.body, metadata: response.metadata };
|
|
1743
1754
|
}
|
|
1744
|
-
async
|
|
1755
|
+
async addActivityReaction(request) {
|
|
1745
1756
|
const pathParams = {
|
|
1746
1757
|
activity_id: request?.activity_id
|
|
1747
1758
|
};
|
|
@@ -1951,9 +1962,9 @@ class FeedsApi {
|
|
|
1951
1962
|
}
|
|
1952
1963
|
async addComment(request) {
|
|
1953
1964
|
const body = {
|
|
1954
|
-
comment: request?.comment,
|
|
1955
1965
|
object_id: request?.object_id,
|
|
1956
1966
|
object_type: request?.object_type,
|
|
1967
|
+
comment: request?.comment,
|
|
1957
1968
|
create_notification_activity: request?.create_notification_activity,
|
|
1958
1969
|
parent_id: request?.parent_id,
|
|
1959
1970
|
skip_push: request?.skip_push,
|
|
@@ -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.15";
|
|
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,
|
|
@@ -6379,13 +6456,16 @@ class FeedsClient extends FeedsApi {
|
|
|
6379
6456
|
}
|
|
6380
6457
|
return response;
|
|
6381
6458
|
};
|
|
6382
|
-
this.
|
|
6383
|
-
const response = await super.
|
|
6459
|
+
this.addActivityReaction = async (request) => {
|
|
6460
|
+
const response = await super.addActivityReaction(request);
|
|
6384
6461
|
for (const feed of Object.values(this.activeFeeds)) {
|
|
6385
6462
|
handleActivityReactionAdded.bind(feed)(response, false);
|
|
6386
6463
|
}
|
|
6387
6464
|
return response;
|
|
6388
6465
|
};
|
|
6466
|
+
this.addReaction = (request) => {
|
|
6467
|
+
return this.addActivityReaction(request);
|
|
6468
|
+
};
|
|
6389
6469
|
this.deleteActivityReaction = async (request) => {
|
|
6390
6470
|
const response = await super.deleteActivityReaction(request);
|
|
6391
6471
|
for (const feed of Object.values(this.activeFeeds)) {
|
|
@@ -6762,7 +6842,8 @@ export {
|
|
|
6762
6842
|
configureLoggers as o,
|
|
6763
6843
|
getLogger as p,
|
|
6764
6844
|
ensureExhausted as q,
|
|
6845
|
+
replaceUniqueArrayMerge as r,
|
|
6765
6846
|
shouldUpdateState as s,
|
|
6766
6847
|
uniqueArrayMerge as u
|
|
6767
6848
|
};
|
|
6768
|
-
//# sourceMappingURL=index-
|
|
6849
|
+
//# sourceMappingURL=index-BSzSBlMh.mjs.map
|