@stream-io/feeds-client 0.2.9 → 0.2.10
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-B0Mm2xFU.js → index-C49kZoN7.js} +273 -51
- package/dist/index-C49kZoN7.js.map +1 -0
- package/dist/{index-rSXIDTdA.mjs → index-EeFSq3sq.mjs} +273 -51
- package/dist/index-EeFSq3sq.mjs.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-reaction-added.d.ts +4 -5
- package/dist/types/feed/event-handlers/activity/handle-activity-reaction-added.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-reaction-deleted.d.ts +1 -2
- package/dist/types/feed/event-handlers/activity/handle-activity-reaction-deleted.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-updated.d.ts +6 -5
- package/dist/types/feed/event-handlers/activity/handle-activity-updated.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/comment/handle-comment-added.d.ts +4 -3
- package/dist/types/feed/event-handlers/comment/handle-comment-added.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/comment/handle-comment-deleted.d.ts +4 -3
- package/dist/types/feed/event-handlers/comment/handle-comment-deleted.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/comment/handle-comment-reaction-added.d.ts +5 -0
- package/dist/types/feed/event-handlers/comment/handle-comment-reaction-added.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/comment/handle-comment-reaction-deleted.d.ts +5 -0
- package/dist/types/feed/event-handlers/comment/handle-comment-reaction-deleted.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/comment/handle-comment-updated.d.ts +4 -3
- package/dist/types/feed/event-handlers/comment/handle-comment-updated.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/comment/index.d.ts +2 -1
- package/dist/types/feed/event-handlers/comment/index.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/comment/utils/index.d.ts +2 -0
- package/dist/types/feed/event-handlers/comment/utils/index.d.ts.map +1 -0
- package/dist/types/feed/event-handlers/comment/utils/update-comment-count.d.ts +8 -0
- package/dist/types/feed/event-handlers/comment/utils/update-comment-count.d.ts.map +1 -0
- package/dist/types/feed/feed.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +19 -1
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/dist/types/types-internal.d.ts +4 -2
- package/dist/types/types-internal.d.ts.map +1 -1
- package/dist/types/utils/ensure-exhausted.d.ts +2 -0
- package/dist/types/utils/ensure-exhausted.d.ts.map +1 -0
- package/dist/types/utils/event-triggered-by-connected-user.d.ts +6 -0
- package/dist/types/utils/event-triggered-by-connected-user.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +10 -1
- package/dist/types/utils/logger.d.ts.map +1 -1
- package/dist/types/utils/state-update-queue.d.ts +22 -2
- package/dist/types/utils/state-update-queue.d.ts.map +1 -1
- package/dist/types/utils/type-assertions.d.ts +2 -5
- package/dist/types/utils/type-assertions.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/feed/event-handlers/activity/handle-activity-reaction-added.ts +15 -10
- package/src/feed/event-handlers/activity/handle-activity-reaction-deleted.test.ts +1 -1
- package/src/feed/event-handlers/activity/handle-activity-reaction-deleted.ts +1 -1
- package/src/feed/event-handlers/activity/handle-activity-updated.test.ts +131 -1
- package/src/feed/event-handlers/activity/handle-activity-updated.ts +38 -15
- package/src/feed/event-handlers/comment/handle-comment-added.test.ts +131 -7
- package/src/feed/event-handlers/comment/handle-comment-added.ts +24 -4
- package/src/feed/event-handlers/comment/handle-comment-deleted.test.ts +124 -2
- package/src/feed/event-handlers/comment/handle-comment-deleted.ts +29 -3
- package/src/feed/event-handlers/comment/{handle-comment-reaction.test.ts → handle-comment-reaction-added.test.ts} +152 -138
- package/src/feed/event-handlers/comment/handle-comment-reaction-added.ts +72 -0
- package/src/feed/event-handlers/comment/handle-comment-reaction-deleted.test.ts +343 -0
- package/src/feed/event-handlers/comment/handle-comment-reaction-deleted.ts +74 -0
- package/src/feed/event-handlers/comment/handle-comment-updated.test.ts +137 -1
- package/src/feed/event-handlers/comment/handle-comment-updated.ts +29 -4
- package/src/feed/event-handlers/comment/index.ts +3 -1
- package/src/feed/event-handlers/comment/utils/index.ts +1 -0
- package/src/feed/event-handlers/comment/utils/update-comment-count.test.ts +320 -0
- package/src/feed/event-handlers/comment/utils/update-comment-count.ts +51 -0
- package/src/feed/event-handlers/follow/handle-follow-deleted.ts +1 -1
- package/src/feed/feed.ts +4 -3
- package/src/feeds-client/feeds-client.ts +104 -0
- package/src/test-utils/response-generators.ts +18 -1
- package/src/types-internal.ts +4 -4
- package/src/utils/ensure-exhausted.ts +5 -0
- package/src/utils/event-triggered-by-connected-user.test.ts +73 -0
- package/src/utils/event-triggered-by-connected-user.ts +15 -0
- package/src/utils/index.ts +2 -1
- package/src/utils/logger.ts +2 -1
- package/src/utils/state-update-queue.ts +89 -25
- package/src/utils/type-assertions.ts +2 -3
- package/dist/index-B0Mm2xFU.js.map +0 -1
- package/dist/index-rSXIDTdA.mjs.map +0 -1
- package/dist/types/feed/event-handlers/comment/handle-comment-reaction.d.ts +0 -4
- package/dist/types/feed/event-handlers/comment/handle-comment-reaction.d.ts.map +0 -1
- package/src/feed/event-handlers/comment/handle-comment-reaction.ts +0 -61
|
@@ -3694,7 +3694,7 @@ const getRateLimitFromResponseHeader = (response_headers) => {
|
|
|
3694
3694
|
};
|
|
3695
3695
|
return result;
|
|
3696
3696
|
};
|
|
3697
|
-
const version = "0.2.
|
|
3697
|
+
const version = "0.2.10";
|
|
3698
3698
|
class ApiClient {
|
|
3699
3699
|
constructor(apiKey, tokenManager, connectionIdManager, options) {
|
|
3700
3700
|
this.apiKey = apiKey;
|
|
@@ -4451,6 +4451,9 @@ const isImageFile = (file) => {
|
|
|
4451
4451
|
const isVideoFile = (file) => {
|
|
4452
4452
|
return file.type.startsWith("video/");
|
|
4453
4453
|
};
|
|
4454
|
+
const ensureExhausted = (x, message) => {
|
|
4455
|
+
getLogger("helpers").warn(message, x);
|
|
4456
|
+
};
|
|
4454
4457
|
const shouldUpdateState = ({
|
|
4455
4458
|
stateUpdateQueueId,
|
|
4456
4459
|
stateUpdateQueue,
|
|
@@ -4458,7 +4461,7 @@ const shouldUpdateState = ({
|
|
|
4458
4461
|
fromWs = true,
|
|
4459
4462
|
isTriggeredByConnectedUser = false
|
|
4460
4463
|
}) => {
|
|
4461
|
-
if (!watch || !isTriggeredByConnectedUser) {
|
|
4464
|
+
if (!watch || !isTriggeredByConnectedUser || !stateUpdateQueueId) {
|
|
4462
4465
|
return true;
|
|
4463
4466
|
}
|
|
4464
4467
|
const prefixedStateUpdateQueueId = fromWs ? `ws-${stateUpdateQueueId}` : `http-${stateUpdateQueueId}`;
|
|
@@ -4470,19 +4473,41 @@ const shouldUpdateState = ({
|
|
|
4470
4473
|
stateUpdateQueue.add(prefixedStateUpdateQueueId);
|
|
4471
4474
|
return true;
|
|
4472
4475
|
};
|
|
4473
|
-
function getStateUpdateQueueId(
|
|
4474
|
-
const
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4476
|
+
function getStateUpdateQueueId(...args) {
|
|
4477
|
+
const [data, prefix] = args;
|
|
4478
|
+
const toJoin = [prefix];
|
|
4479
|
+
switch (prefix) {
|
|
4480
|
+
case "activity-updated": {
|
|
4481
|
+
return toJoin.concat([data.activity.id]).join("-");
|
|
4482
|
+
}
|
|
4483
|
+
case "activity-reaction-created":
|
|
4484
|
+
case "activity-reaction-deleted": {
|
|
4485
|
+
return toJoin.concat([
|
|
4486
|
+
data.activity.id,
|
|
4487
|
+
data.reaction.type
|
|
4488
|
+
]).join("-");
|
|
4489
|
+
}
|
|
4490
|
+
case "comment-reaction-created":
|
|
4491
|
+
case "comment-reaction-deleted": {
|
|
4492
|
+
return toJoin.concat([
|
|
4493
|
+
data.comment.id,
|
|
4494
|
+
data.reaction.type
|
|
4495
|
+
]).join("-");
|
|
4496
|
+
}
|
|
4497
|
+
case "comment-created":
|
|
4498
|
+
case "comment-deleted":
|
|
4499
|
+
case "comment-updated": {
|
|
4500
|
+
return toJoin.concat([data.comment.id]).join("-");
|
|
4501
|
+
}
|
|
4502
|
+
case "follow-created":
|
|
4503
|
+
case "follow-deleted":
|
|
4504
|
+
case "follow-updated": {
|
|
4505
|
+
return toJoin.concat([data.source_feed.feed, data.target_feed.feed]).join("-");
|
|
4506
|
+
}
|
|
4507
|
+
default: {
|
|
4508
|
+
ensureExhausted(data, "Encountered unknown state update queue prefix.");
|
|
4509
|
+
}
|
|
4510
|
+
}
|
|
4486
4511
|
}
|
|
4487
4512
|
function updateEntityInArray({
|
|
4488
4513
|
matcher,
|
|
@@ -4598,7 +4623,7 @@ const updateStateFollowDeleted = (follow, currentState, currentFeedId, connected
|
|
|
4598
4623
|
function handleFollowDeleted(eventOrResponse, fromWs) {
|
|
4599
4624
|
const follow = eventOrResponse.follow;
|
|
4600
4625
|
if (!shouldUpdateState({
|
|
4601
|
-
stateUpdateQueueId: getStateUpdateQueueId(follow, "deleted"),
|
|
4626
|
+
stateUpdateQueueId: getStateUpdateQueueId(follow, "follow-deleted"),
|
|
4602
4627
|
stateUpdateQueue: this.stateUpdateQueue,
|
|
4603
4628
|
watch: this.currentState.watch,
|
|
4604
4629
|
fromWs,
|
|
@@ -4675,9 +4700,23 @@ function handleFollowUpdated(eventOrResponse, fromWs) {
|
|
|
4675
4700
|
return newState ?? currentState;
|
|
4676
4701
|
});
|
|
4677
4702
|
}
|
|
4678
|
-
function
|
|
4679
|
-
const
|
|
4703
|
+
function eventTriggeredByConnectedUser(payload) {
|
|
4704
|
+
const connectedUser = this.client.state.getLatestValue().connected_user;
|
|
4705
|
+
const payloadUser = payload.user ?? connectedUser;
|
|
4706
|
+
return typeof connectedUser !== "undefined" && connectedUser?.id === payloadUser?.id;
|
|
4707
|
+
}
|
|
4708
|
+
function handleCommentAdded(payload, fromWs) {
|
|
4709
|
+
const { comment } = payload;
|
|
4680
4710
|
const entityId = comment.parent_id ?? comment.object_id;
|
|
4711
|
+
if (!shouldUpdateState({
|
|
4712
|
+
stateUpdateQueueId: getStateUpdateQueueId(payload, "comment-created"),
|
|
4713
|
+
stateUpdateQueue: this.stateUpdateQueue,
|
|
4714
|
+
watch: this.currentState.watch,
|
|
4715
|
+
fromWs,
|
|
4716
|
+
isTriggeredByConnectedUser: eventTriggeredByConnectedUser.call(this, payload)
|
|
4717
|
+
})) {
|
|
4718
|
+
return;
|
|
4719
|
+
}
|
|
4681
4720
|
this.state.next((currentState) => {
|
|
4682
4721
|
const entityState = currentState.comments_by_entity_id[entityId];
|
|
4683
4722
|
if (typeof entityState?.comments === "undefined") {
|
|
@@ -4701,8 +4740,21 @@ function handleCommentAdded(event) {
|
|
|
4701
4740
|
};
|
|
4702
4741
|
});
|
|
4703
4742
|
}
|
|
4704
|
-
function handleCommentDeleted(
|
|
4743
|
+
function handleCommentDeleted(payload, fromWs) {
|
|
4744
|
+
const { comment } = payload;
|
|
4705
4745
|
const entityId = comment.parent_id ?? comment.object_id;
|
|
4746
|
+
if (!shouldUpdateState({
|
|
4747
|
+
stateUpdateQueueId: getStateUpdateQueueId(
|
|
4748
|
+
payload,
|
|
4749
|
+
"comment-deleted"
|
|
4750
|
+
),
|
|
4751
|
+
stateUpdateQueue: this.stateUpdateQueue,
|
|
4752
|
+
watch: this.currentState.watch,
|
|
4753
|
+
fromWs,
|
|
4754
|
+
isTriggeredByConnectedUser: eventTriggeredByConnectedUser.call(this, payload)
|
|
4755
|
+
})) {
|
|
4756
|
+
return;
|
|
4757
|
+
}
|
|
4706
4758
|
this.state.next((currentState) => {
|
|
4707
4759
|
let newCommentsByEntityId;
|
|
4708
4760
|
const index = this.getCommentIndex(comment, currentState);
|
|
@@ -4733,9 +4785,21 @@ function handleCommentDeleted({ comment }) {
|
|
|
4733
4785
|
};
|
|
4734
4786
|
});
|
|
4735
4787
|
}
|
|
4736
|
-
function handleCommentUpdated(
|
|
4737
|
-
const { comment } =
|
|
4788
|
+
function handleCommentUpdated(payload, fromWs) {
|
|
4789
|
+
const { comment } = payload;
|
|
4738
4790
|
const entityId = comment.parent_id ?? comment.object_id;
|
|
4791
|
+
if (!shouldUpdateState({
|
|
4792
|
+
stateUpdateQueueId: getStateUpdateQueueId(
|
|
4793
|
+
payload,
|
|
4794
|
+
"comment-updated"
|
|
4795
|
+
),
|
|
4796
|
+
stateUpdateQueue: this.stateUpdateQueue,
|
|
4797
|
+
watch: this.currentState.watch,
|
|
4798
|
+
fromWs,
|
|
4799
|
+
isTriggeredByConnectedUser: eventTriggeredByConnectedUser.call(this, payload)
|
|
4800
|
+
})) {
|
|
4801
|
+
return;
|
|
4802
|
+
}
|
|
4739
4803
|
this.state.next((currentState) => {
|
|
4740
4804
|
const entityState = currentState.comments_by_entity_id[entityId];
|
|
4741
4805
|
if (!entityState?.comments?.length) return currentState;
|
|
@@ -4755,36 +4819,88 @@ function handleCommentUpdated(event) {
|
|
|
4755
4819
|
};
|
|
4756
4820
|
});
|
|
4757
4821
|
}
|
|
4758
|
-
function
|
|
4759
|
-
const { comment, reaction } =
|
|
4822
|
+
function handleCommentReactionAdded(payload, fromWs) {
|
|
4823
|
+
const { comment, reaction } = payload;
|
|
4760
4824
|
const connectedUser = this.client.state.getLatestValue().connected_user;
|
|
4825
|
+
const isOwnReaction = reaction.user.id === connectedUser?.id;
|
|
4826
|
+
if (!shouldUpdateState({
|
|
4827
|
+
stateUpdateQueueId: getStateUpdateQueueId(
|
|
4828
|
+
payload,
|
|
4829
|
+
"comment-reaction-created"
|
|
4830
|
+
),
|
|
4831
|
+
stateUpdateQueue: this.stateUpdateQueue,
|
|
4832
|
+
watch: this.currentState.watch,
|
|
4833
|
+
fromWs,
|
|
4834
|
+
isTriggeredByConnectedUser: isOwnReaction
|
|
4835
|
+
})) {
|
|
4836
|
+
return;
|
|
4837
|
+
}
|
|
4761
4838
|
this.state.next((currentState) => {
|
|
4762
|
-
const forId = comment.parent_id ?? comment.object_id;
|
|
4763
|
-
const entityState = currentState.comments_by_entity_id[forId];
|
|
4764
4839
|
const commentIndex = this.getCommentIndex(comment, currentState);
|
|
4765
4840
|
if (commentIndex === -1) return currentState;
|
|
4841
|
+
const forId = comment.parent_id ?? comment.object_id;
|
|
4842
|
+
const entityState = currentState.comments_by_entity_id[forId];
|
|
4766
4843
|
const newComments = entityState?.comments?.concat([]) ?? [];
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4844
|
+
let ownReactions = newComments[commentIndex].own_reactions;
|
|
4845
|
+
if (isOwnReaction) {
|
|
4846
|
+
ownReactions = ownReactions.concat(reaction) ?? [reaction];
|
|
4847
|
+
}
|
|
4848
|
+
newComments[commentIndex] = {
|
|
4770
4849
|
...newComments[commentIndex],
|
|
4771
|
-
|
|
4850
|
+
reaction_count: comment.reaction_count ?? 0,
|
|
4772
4851
|
// TODO: FIXME this should be handled by the backend
|
|
4773
|
-
latest_reactions:
|
|
4774
|
-
reaction_groups:
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
);
|
|
4852
|
+
latest_reactions: comment.latest_reactions ?? [],
|
|
4853
|
+
reaction_groups: comment.reaction_groups ?? {},
|
|
4854
|
+
own_reactions: ownReactions
|
|
4855
|
+
};
|
|
4856
|
+
return {
|
|
4857
|
+
...currentState,
|
|
4858
|
+
comments_by_entity_id: {
|
|
4859
|
+
...currentState.comments_by_entity_id,
|
|
4860
|
+
[forId]: {
|
|
4861
|
+
...entityState,
|
|
4862
|
+
comments: newComments
|
|
4863
|
+
}
|
|
4786
4864
|
}
|
|
4865
|
+
};
|
|
4866
|
+
});
|
|
4867
|
+
}
|
|
4868
|
+
function handleCommentReactionDeleted(payload, fromWs) {
|
|
4869
|
+
const { comment, reaction } = payload;
|
|
4870
|
+
const connectedUser = this.client.state.getLatestValue().connected_user;
|
|
4871
|
+
const isOwnReaction = reaction.user.id === connectedUser?.id;
|
|
4872
|
+
if (!shouldUpdateState({
|
|
4873
|
+
stateUpdateQueueId: getStateUpdateQueueId(
|
|
4874
|
+
payload,
|
|
4875
|
+
"comment-reaction-deleted"
|
|
4876
|
+
),
|
|
4877
|
+
stateUpdateQueue: this.stateUpdateQueue,
|
|
4878
|
+
watch: this.currentState.watch,
|
|
4879
|
+
fromWs,
|
|
4880
|
+
isTriggeredByConnectedUser: isOwnReaction
|
|
4881
|
+
})) {
|
|
4882
|
+
return;
|
|
4883
|
+
}
|
|
4884
|
+
this.state.next((currentState) => {
|
|
4885
|
+
const commentIndex = this.getCommentIndex(comment, currentState);
|
|
4886
|
+
if (commentIndex === -1) return currentState;
|
|
4887
|
+
const forId = comment.parent_id ?? comment.object_id;
|
|
4888
|
+
const entityState = currentState.comments_by_entity_id[forId];
|
|
4889
|
+
const newComments = entityState?.comments?.concat([]) ?? [];
|
|
4890
|
+
let ownReactions = newComments[commentIndex].own_reactions;
|
|
4891
|
+
if (isOwnReaction) {
|
|
4892
|
+
ownReactions = ownReactions.filter(
|
|
4893
|
+
(r) => r.type !== reaction.type
|
|
4894
|
+
);
|
|
4787
4895
|
}
|
|
4896
|
+
newComments[commentIndex] = {
|
|
4897
|
+
...newComments[commentIndex],
|
|
4898
|
+
reaction_count: comment.reaction_count ?? 0,
|
|
4899
|
+
// TODO: FIXME this should be handled by the backend
|
|
4900
|
+
latest_reactions: comment.latest_reactions ?? [],
|
|
4901
|
+
reaction_groups: comment.reaction_groups ?? {},
|
|
4902
|
+
own_reactions: ownReactions
|
|
4903
|
+
};
|
|
4788
4904
|
return {
|
|
4789
4905
|
...currentState,
|
|
4790
4906
|
comments_by_entity_id: {
|
|
@@ -5201,19 +5317,31 @@ const updatePinnedActivityInState = (event, pinnedActivities) => updateEntityInA
|
|
|
5201
5317
|
};
|
|
5202
5318
|
}
|
|
5203
5319
|
});
|
|
5204
|
-
function handleActivityUpdated(
|
|
5320
|
+
function handleActivityUpdated(payload, fromWs) {
|
|
5321
|
+
if (!shouldUpdateState({
|
|
5322
|
+
stateUpdateQueueId: getStateUpdateQueueId(payload, "activity-updated"),
|
|
5323
|
+
stateUpdateQueue: this.stateUpdateQueue,
|
|
5324
|
+
watch: this.currentState.watch,
|
|
5325
|
+
fromWs,
|
|
5326
|
+
isTriggeredByConnectedUser: eventTriggeredByConnectedUser.call(
|
|
5327
|
+
this,
|
|
5328
|
+
payload
|
|
5329
|
+
)
|
|
5330
|
+
})) {
|
|
5331
|
+
return;
|
|
5332
|
+
}
|
|
5205
5333
|
const {
|
|
5206
5334
|
activities: currentActivities,
|
|
5207
5335
|
pinned_activities: currentPinnedActivities
|
|
5208
5336
|
} = this.currentState;
|
|
5209
5337
|
const [result1, result2] = [
|
|
5210
|
-
updateActivityInState(
|
|
5211
|
-
updatePinnedActivityInState(
|
|
5338
|
+
this.hasActivity(payload.activity.id) ? updateActivityInState(payload, currentActivities) : void 0,
|
|
5339
|
+
updatePinnedActivityInState(payload, currentPinnedActivities)
|
|
5212
5340
|
];
|
|
5213
|
-
if (result1
|
|
5214
|
-
this.client.hydratePollCache([
|
|
5341
|
+
if (result1?.changed || result2.changed) {
|
|
5342
|
+
this.client.hydratePollCache([payload.activity]);
|
|
5215
5343
|
this.state.partialNext({
|
|
5216
|
-
activities: result1.entities,
|
|
5344
|
+
activities: result1?.changed ? result1.entities : currentActivities,
|
|
5217
5345
|
pinned_activities: result2.entities
|
|
5218
5346
|
});
|
|
5219
5347
|
}
|
|
@@ -5497,8 +5625,8 @@ const _Feed = class _Feed extends FeedApi {
|
|
|
5497
5625
|
"feeds.follow.created": handleFollowCreated.bind(this),
|
|
5498
5626
|
"feeds.follow.deleted": handleFollowDeleted.bind(this),
|
|
5499
5627
|
"feeds.follow.updated": handleFollowUpdated.bind(this),
|
|
5500
|
-
"feeds.comment.reaction.added":
|
|
5501
|
-
"feeds.comment.reaction.deleted":
|
|
5628
|
+
"feeds.comment.reaction.added": handleCommentReactionAdded.bind(this),
|
|
5629
|
+
"feeds.comment.reaction.deleted": handleCommentReactionDeleted.bind(this),
|
|
5502
5630
|
"feeds.comment.reaction.updated": _Feed.noop,
|
|
5503
5631
|
"feeds.feed_member.added": handleFeedMemberAdded.bind(this),
|
|
5504
5632
|
"feeds.feed_member.removed": handleFeedMemberRemoved.bind(this),
|
|
@@ -6014,6 +6142,34 @@ var UnhandledErrorType = /* @__PURE__ */ ((UnhandledErrorType2) => {
|
|
|
6014
6142
|
UnhandledErrorType2["ReconnectionReconciliation"] = "reconnection-reconciliation";
|
|
6015
6143
|
return UnhandledErrorType2;
|
|
6016
6144
|
})(UnhandledErrorType || {});
|
|
6145
|
+
function updateCommentCount({
|
|
6146
|
+
activity,
|
|
6147
|
+
comment,
|
|
6148
|
+
replyCountUpdater
|
|
6149
|
+
}) {
|
|
6150
|
+
const parentActivityId = comment.object_id;
|
|
6151
|
+
if (comment?.parent_id) {
|
|
6152
|
+
const grandparentCommentId = this.currentState.comments_by_entity_id[comment?.parent_id ?? ""]?.entity_parent_id;
|
|
6153
|
+
const idToUpdate = grandparentCommentId ?? parentActivityId;
|
|
6154
|
+
const commentToUpdate = this.currentState.comments_by_entity_id[idToUpdate]?.comments?.find((c) => c.id === comment.parent_id);
|
|
6155
|
+
if (commentToUpdate) {
|
|
6156
|
+
handleCommentUpdated.bind(this)(
|
|
6157
|
+
{
|
|
6158
|
+
comment: {
|
|
6159
|
+
...commentToUpdate,
|
|
6160
|
+
reply_count: replyCountUpdater(commentToUpdate.reply_count)
|
|
6161
|
+
}
|
|
6162
|
+
},
|
|
6163
|
+
false
|
|
6164
|
+
);
|
|
6165
|
+
}
|
|
6166
|
+
}
|
|
6167
|
+
if (this.hasActivity(activity.id)) {
|
|
6168
|
+
handleActivityUpdated.bind(this)({
|
|
6169
|
+
activity
|
|
6170
|
+
}, false);
|
|
6171
|
+
}
|
|
6172
|
+
}
|
|
6017
6173
|
class FeedsClient extends FeedsApi {
|
|
6018
6174
|
constructor(apiKey, options) {
|
|
6019
6175
|
const tokenManager = new TokenManager();
|
|
@@ -6101,6 +6257,57 @@ class FeedsClient extends FeedsApi {
|
|
|
6101
6257
|
upload_sizes: JSON.stringify(request.upload_sizes)
|
|
6102
6258
|
});
|
|
6103
6259
|
};
|
|
6260
|
+
this.updateActivity = async (request) => {
|
|
6261
|
+
const response = await super.updateActivity(request);
|
|
6262
|
+
for (const feed of Object.values(this.activeFeeds)) {
|
|
6263
|
+
handleActivityUpdated.bind(feed)(response, false);
|
|
6264
|
+
}
|
|
6265
|
+
return response;
|
|
6266
|
+
};
|
|
6267
|
+
this.addComment = async (request) => {
|
|
6268
|
+
const response = await super.addComment(request);
|
|
6269
|
+
const { comment } = response;
|
|
6270
|
+
for (const feed of Object.values(this.activeFeeds)) {
|
|
6271
|
+
handleCommentAdded.bind(feed)(response, false);
|
|
6272
|
+
const parentActivityId = comment.object_id;
|
|
6273
|
+
if (feed.hasActivity(parentActivityId)) {
|
|
6274
|
+
const activityToUpdate = feed.currentState.activities?.find(
|
|
6275
|
+
(activity) => activity.id === parentActivityId
|
|
6276
|
+
);
|
|
6277
|
+
if (activityToUpdate) {
|
|
6278
|
+
updateCommentCount.bind(feed)({
|
|
6279
|
+
activity: {
|
|
6280
|
+
...activityToUpdate,
|
|
6281
|
+
comment_count: activityToUpdate.comment_count + 1
|
|
6282
|
+
},
|
|
6283
|
+
comment,
|
|
6284
|
+
replyCountUpdater: (prevCount) => prevCount + 1
|
|
6285
|
+
});
|
|
6286
|
+
}
|
|
6287
|
+
}
|
|
6288
|
+
}
|
|
6289
|
+
return response;
|
|
6290
|
+
};
|
|
6291
|
+
this.updateComment = async (request) => {
|
|
6292
|
+
const response = await super.updateComment(request);
|
|
6293
|
+
for (const feed of Object.values(this.activeFeeds)) {
|
|
6294
|
+
handleCommentUpdated.bind(feed)(response, false);
|
|
6295
|
+
}
|
|
6296
|
+
return response;
|
|
6297
|
+
};
|
|
6298
|
+
this.deleteComment = async (request) => {
|
|
6299
|
+
const response = await super.deleteComment(request);
|
|
6300
|
+
const { activity, comment } = response;
|
|
6301
|
+
for (const feed of Object.values(this.activeFeeds)) {
|
|
6302
|
+
handleCommentDeleted.bind(feed)({ comment }, false);
|
|
6303
|
+
updateCommentCount.bind(feed)({
|
|
6304
|
+
activity,
|
|
6305
|
+
comment,
|
|
6306
|
+
replyCountUpdater: (prevCount) => prevCount - 1
|
|
6307
|
+
});
|
|
6308
|
+
}
|
|
6309
|
+
return response;
|
|
6310
|
+
};
|
|
6104
6311
|
this.addReaction = async (request) => {
|
|
6105
6312
|
const response = await super.addReaction(request);
|
|
6106
6313
|
for (const feed of Object.values(this.activeFeeds)) {
|
|
@@ -6115,6 +6322,20 @@ class FeedsClient extends FeedsApi {
|
|
|
6115
6322
|
}
|
|
6116
6323
|
return response;
|
|
6117
6324
|
};
|
|
6325
|
+
this.addCommentReaction = async (request) => {
|
|
6326
|
+
const response = await super.addCommentReaction(request);
|
|
6327
|
+
for (const feed of Object.values(this.activeFeeds)) {
|
|
6328
|
+
handleCommentReactionAdded.bind(feed)(response, false);
|
|
6329
|
+
}
|
|
6330
|
+
return response;
|
|
6331
|
+
};
|
|
6332
|
+
this.deleteCommentReaction = async (request) => {
|
|
6333
|
+
const response = await super.deleteCommentReaction(request);
|
|
6334
|
+
for (const feed of Object.values(this.activeFeeds)) {
|
|
6335
|
+
handleCommentReactionDeleted.bind(feed)(response, false);
|
|
6336
|
+
}
|
|
6337
|
+
return response;
|
|
6338
|
+
};
|
|
6118
6339
|
this.queryPollAnswers = async (request) => {
|
|
6119
6340
|
const filter = request.filter ?? {};
|
|
6120
6341
|
const queryPollAnswersFilter = {
|
|
@@ -6470,7 +6691,8 @@ export {
|
|
|
6470
6691
|
updateEntityInArray as n,
|
|
6471
6692
|
configureLoggers as o,
|
|
6472
6693
|
getLogger as p,
|
|
6694
|
+
ensureExhausted as q,
|
|
6473
6695
|
shouldUpdateState as s,
|
|
6474
6696
|
uniqueArrayMerge as u
|
|
6475
6697
|
};
|
|
6476
|
-
//# sourceMappingURL=index-
|
|
6698
|
+
//# sourceMappingURL=index-EeFSq3sq.mjs.map
|