@stream-io/feeds-client 0.3.1 → 0.3.3

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 (32) hide show
  1. package/CHANGELOG.md +22 -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/index.mjs.map +1 -1
  7. package/dist/es/react-bindings.mjs +1 -1
  8. package/dist/{feeds-client-DJG_rRVO.mjs → feeds-client-BWaXWhhB.mjs} +48 -14
  9. package/dist/feeds-client-BWaXWhhB.mjs.map +1 -0
  10. package/dist/{feeds-client-CttWroOS.js → feeds-client-Ddac-BnP.js} +48 -14
  11. package/dist/feeds-client-Ddac-BnP.js.map +1 -0
  12. package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts.map +1 -1
  13. package/dist/types/feed/event-handlers/activity-updater.d.ts +2 -0
  14. package/dist/types/feed/event-handlers/activity-updater.d.ts.map +1 -1
  15. package/dist/types/feed/feed.d.ts +4 -2
  16. package/dist/types/feed/feed.d.ts.map +1 -1
  17. package/dist/types/feeds-client/feeds-client.d.ts +12 -2
  18. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  19. package/dist/types/gen/feeds/FeedsApi.d.ts.map +1 -1
  20. package/dist/types/gen/models/index.d.ts +64 -7
  21. package/dist/types/gen/models/index.d.ts.map +1 -1
  22. package/dist/types/gen/moderation/ModerationApi.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/src/feed/event-handlers/activity/handle-activity-added.ts +5 -0
  25. package/src/feed/feed.ts +9 -0
  26. package/src/feeds-client/feeds-client.ts +23 -8
  27. package/src/gen/feeds/FeedsApi.ts +2 -0
  28. package/src/gen/model-decoders/decoders.ts +31 -2
  29. package/src/gen/models/index.ts +118 -9
  30. package/src/gen/moderation/ModerationApi.ts +3 -0
  31. package/dist/feeds-client-CttWroOS.js.map +0 -1
  32. package/dist/feeds-client-DJG_rRVO.mjs.map +0 -1
@@ -396,7 +396,7 @@ decoders.ChannelMember = (input) => {
396
396
  invite_accepted_at: { type: "DatetimeType", isSingle: true },
397
397
  invite_rejected_at: { type: "DatetimeType", isSingle: true },
398
398
  pinned_at: { type: "DatetimeType", isSingle: true },
399
- user: { type: "UserResponse", isSingle: true }
399
+ user: { type: "User", isSingle: true }
400
400
  };
401
401
  return decode(typeMappings, input);
402
402
  };
@@ -408,6 +408,20 @@ decoders.ChannelMemberLookup = (input) => {
408
408
  };
409
409
  return decode(typeMappings, input);
410
410
  };
411
+ decoders.ChannelMemberResponse = (input) => {
412
+ const typeMappings = {
413
+ created_at: { type: "DatetimeType", isSingle: true },
414
+ updated_at: { type: "DatetimeType", isSingle: true },
415
+ archived_at: { type: "DatetimeType", isSingle: true },
416
+ ban_expires: { type: "DatetimeType", isSingle: true },
417
+ deleted_at: { type: "DatetimeType", isSingle: true },
418
+ invite_accepted_at: { type: "DatetimeType", isSingle: true },
419
+ invite_rejected_at: { type: "DatetimeType", isSingle: true },
420
+ pinned_at: { type: "DatetimeType", isSingle: true },
421
+ user: { type: "UserResponse", isSingle: true }
422
+ };
423
+ return decode(typeMappings, input);
424
+ };
411
425
  decoders.ChannelMute = (input) => {
412
426
  const typeMappings = {
413
427
  created_at: { type: "DatetimeType", isSingle: true },
@@ -427,7 +441,7 @@ decoders.ChannelResponse = (input) => {
427
441
  last_message_at: { type: "DatetimeType", isSingle: true },
428
442
  mute_expires_at: { type: "DatetimeType", isSingle: true },
429
443
  truncated_at: { type: "DatetimeType", isSingle: true },
430
- members: { type: "ChannelMember", isSingle: false },
444
+ members: { type: "ChannelMemberResponse", isSingle: false },
431
445
  config: { type: "ChannelConfigWithInfo", isSingle: true },
432
446
  created_by: { type: "UserResponse", isSingle: true },
433
447
  truncated_by: { type: "UserResponse", isSingle: true }
@@ -895,6 +909,7 @@ decoders.MessageResponse = (input) => {
895
909
  pinned_at: { type: "DatetimeType", isSingle: true },
896
910
  thread_participants: { type: "UserResponse", isSingle: false },
897
911
  draft: { type: "DraftResponse", isSingle: true },
912
+ member: { type: "ChannelMemberResponse", isSingle: true },
898
913
  pinned_by: { type: "UserResponse", isSingle: true },
899
914
  poll: { type: "PollResponseData", isSingle: true },
900
915
  quoted_message: { type: "MessageResponse", isSingle: true },
@@ -1234,6 +1249,8 @@ decoders.ReviewQueueItemResponse = (input) => {
1234
1249
  call: { type: "CallResponse", isSingle: true },
1235
1250
  entity_creator: { type: "EntityCreatorResponse", isSingle: true },
1236
1251
  feeds_v2_reaction: { type: "Reaction", isSingle: true },
1252
+ feeds_v3_activity: { type: "ActivityResponse", isSingle: true },
1253
+ feeds_v3_comment: { type: "CommentResponse", isSingle: true },
1237
1254
  message: { type: "MessageResponse", isSingle: true },
1238
1255
  reaction: { type: "Reaction", isSingle: true }
1239
1256
  };
@@ -1607,6 +1624,7 @@ class FeedsApi {
1607
1624
  id: request?.id,
1608
1625
  parent_id: request?.parent_id,
1609
1626
  poll_id: request?.poll_id,
1627
+ restrict_replies: request?.restrict_replies,
1610
1628
  text: request?.text,
1611
1629
  visibility: request?.visibility,
1612
1630
  visibility_tag: request?.visibility_tag,
@@ -1896,6 +1914,7 @@ class FeedsApi {
1896
1914
  const body = {
1897
1915
  expires_at: request?.expires_at,
1898
1916
  poll_id: request?.poll_id,
1917
+ restrict_replies: request?.restrict_replies,
1899
1918
  text: request?.text,
1900
1919
  visibility: request?.visibility,
1901
1920
  attachments: request?.attachments,
@@ -3763,7 +3782,7 @@ const getRateLimitFromResponseHeader = (response_headers) => {
3763
3782
  };
3764
3783
  return result;
3765
3784
  };
3766
- const version = "0.3.1";
3785
+ const version = "0.3.3";
3767
3786
  class ApiClient {
3768
3787
  constructor(apiKey, tokenManager, connectionIdManager, options) {
3769
3788
  this.apiKey = apiKey;
@@ -4156,12 +4175,15 @@ class ModerationApi {
4156
4175
  action_type: request?.action_type,
4157
4176
  item_id: request?.item_id,
4158
4177
  ban: request?.ban,
4178
+ block: request?.block,
4159
4179
  custom: request?.custom,
4160
4180
  delete_activity: request?.delete_activity,
4181
+ delete_comment: request?.delete_comment,
4161
4182
  delete_message: request?.delete_message,
4162
4183
  delete_reaction: request?.delete_reaction,
4163
4184
  delete_user: request?.delete_user,
4164
4185
  mark_reviewed: request?.mark_reviewed,
4186
+ shadow_block: request?.shadow_block,
4165
4187
  unban: request?.unban
4166
4188
  };
4167
4189
  const response = await this.apiClient.sendRequest(
@@ -5357,6 +5379,11 @@ function addActivitiesToState(newActivities, activities, position) {
5357
5379
  return result;
5358
5380
  }
5359
5381
  function handleActivityAdded(event) {
5382
+ if (this.activityAddedEventFilter) {
5383
+ if (!this.activityAddedEventFilter(event)) {
5384
+ return;
5385
+ }
5386
+ }
5360
5387
  const currentActivities = this.currentState.activities;
5361
5388
  const result = addActivitiesToState.bind(this)(
5362
5389
  [event.activity],
@@ -6051,8 +6078,9 @@ function handleActivityFeedback(event) {
6051
6078
  }
6052
6079
  }
6053
6080
  const _Feed = class _Feed extends FeedApi {
6054
- constructor(client, groupId, id, data, watch = false, addNewActivitiesTo = "start") {
6081
+ constructor(client, groupId, id, data, watch = false, addNewActivitiesTo = "start", activityAddedEventFilter) {
6055
6082
  super(client, groupId, id);
6083
+ this.activityAddedEventFilter = activityAddedEventFilter;
6056
6084
  this.indexedActivityIds = /* @__PURE__ */ new Set();
6057
6085
  this.stateUpdateQueue = /* @__PURE__ */ new Set();
6058
6086
  this.eventHandlers = {
@@ -6148,6 +6176,11 @@ const _Feed = class _Feed extends FeedApi {
6148
6176
  hasActivity(activityId) {
6149
6177
  return this.indexedActivityIds.has(activityId);
6150
6178
  }
6179
+ hasPinnedActivity(activityId) {
6180
+ return this.currentState.pinned_activities?.some(
6181
+ (pinnedActivity) => pinnedActivity.activity.id === activityId
6182
+ );
6183
+ }
6151
6184
  async synchronize() {
6152
6185
  const { last_get_or_create_request_config } = this.state.getLatestValue();
6153
6186
  if (last_get_or_create_request_config?.watch) {
@@ -6579,6 +6612,7 @@ const _Feed = class _Feed extends FeedApi {
6579
6612
  following_pagination: {
6580
6613
  limit: 0
6581
6614
  },
6615
+ filter: currentState.last_get_or_create_request_config?.filter,
6582
6616
  next: currentState.next,
6583
6617
  limit: currentState.last_get_or_create_request_config?.limit ?? 20
6584
6618
  });
@@ -6988,7 +7022,8 @@ class FeedsClient extends FeedsApi {
6988
7022
  id,
6989
7023
  void 0,
6990
7024
  void 0,
6991
- options2?.addNewActivitiesTo
7025
+ options2?.addNewActivitiesTo,
7026
+ options2?.activityAddedEventFilter
6992
7027
  );
6993
7028
  };
6994
7029
  this.updateNetworkConnectionStatus = (event) => {
@@ -6998,7 +7033,7 @@ class FeedsClient extends FeedsApi {
6998
7033
  };
6999
7034
  this.eventDispatcher.dispatch(networkEvent);
7000
7035
  };
7001
- this.getOrCreateActiveFeed = (group, id, data, watch, addNewActivitiesTo) => {
7036
+ this.getOrCreateActiveFeed = (group, id, data, watch, addNewActivitiesTo, activityAddedEventFilter) => {
7002
7037
  const fid = `${group}:${id}`;
7003
7038
  if (!this.activeFeeds[fid]) {
7004
7039
  this.activeFeeds[fid] = new Feed(
@@ -7007,7 +7042,8 @@ class FeedsClient extends FeedsApi {
7007
7042
  id,
7008
7043
  data,
7009
7044
  watch,
7010
- addNewActivitiesTo
7045
+ addNewActivitiesTo,
7046
+ activityAddedEventFilter
7011
7047
  );
7012
7048
  }
7013
7049
  const feed = this.activeFeeds[fid];
@@ -7117,13 +7153,13 @@ class FeedsClient extends FeedsApi {
7117
7153
  case "feeds.bookmark.deleted":
7118
7154
  case "feeds.bookmark.updated": {
7119
7155
  const activityId = event.bookmark.activity.id;
7120
- const feeds = this.findActiveFeedByActivityId(activityId);
7156
+ const feeds = this.findActiveFeedsByActivityId(activityId);
7121
7157
  feeds.forEach((f) => f.handleWSEvent(event));
7122
7158
  break;
7123
7159
  }
7124
7160
  case "feeds.activity.feedback": {
7125
7161
  const activityId = event.activity_feedback.activity_id;
7126
- const feeds = this.findActiveFeedByActivityId(activityId);
7162
+ const feeds = this.findActiveFeedsByActivityId(activityId);
7127
7163
  feeds.forEach((f) => f.handleWSEvent(event));
7128
7164
  break;
7129
7165
  }
@@ -7261,11 +7297,9 @@ class FeedsClient extends FeedsApi {
7261
7297
  }
7262
7298
  return response;
7263
7299
  }
7264
- findActiveFeedByActivityId(activityId) {
7300
+ findActiveFeedsByActivityId(activityId) {
7265
7301
  return Object.values(this.activeFeeds).filter(
7266
- (feed) => feed.currentState.activities?.some(
7267
- (activity) => activity.id === activityId
7268
- )
7302
+ (feed) => feed.hasActivity(activityId) || feed.hasPinnedActivity(activityId)
7269
7303
  );
7270
7304
  }
7271
7305
  }
@@ -7290,4 +7324,4 @@ exports.replaceUniqueArrayMerge = replaceUniqueArrayMerge;
7290
7324
  exports.shouldUpdateState = shouldUpdateState;
7291
7325
  exports.uniqueArrayMerge = uniqueArrayMerge;
7292
7326
  exports.updateEntityInArray = updateEntityInArray;
7293
- //# sourceMappingURL=feeds-client-CttWroOS.js.map
7327
+ //# sourceMappingURL=feeds-client-Ddac-BnP.js.map