Skip to content

Conversation

@Stream-SDK-Bot
Copy link
Collaborator

✅ Added

  • Update local state when using activity batch operations in FeedsClient #52
  • Keep FeedData.ownCapabilities up to date in every model when handling web-socket events #51
  • Add filtering and sorting keys: #53
    • ActivitiesFilterField.feeds
    • ActivitiesFilterField.interestTags
    • ActivitiesFilterField.near
    • ActivitiesFilterField.withinBounds
    • ModerationConfigsSortField.team

🐞 Fixed

  • Fix remote key for ModerationConfigsSortField.key #53

🔄 Changed

  • Rename ActivitiesFilterField.type to ActivitiesFilterField.activityType #53

Stream Bot and others added 25 commits September 25, 2025 12:52
* Add missing properties to data structs

* Keep results sorted and add missing events to BookmarkFolderList, BookmarkList, FeedList, MemberList

* Update reposted activities manually

* Cleanup unused functions

* Use StreamCore 0.2.1
* Remove trailing_whitespace from SwiftLint rules due to multi-line string issues

* Lint everything

* Update ignore cases

* Rename deprecated rule

---------

Co-authored-by: Alexey Alter-Pesotskiy <alex@testableapple.com>
* Add filter matching for updated events and replace or remove models depending on the filter

* Add StateAccessing protocol

* Handle cases where local filtering is not possible: FeedList refetches everything, MemberList injects feedId, and BookmarkFolderList will get added field

* Use StreamCore 0.3.0

* Refetch all the feeds instead of limiting to 30

* Refetch when updated event comes in and feed is present
* Export all the StreamCore modules

* Remove logger

* Use StreamCore 0.4.0
* Update ownCapabilities in models by caching them locally

* Add middleware support to StateLayerEventPublisher
* Add own capabilities middleware which enriches incoming WS events and extracts and stores own capabilities from local events
* State layer explicitly saves own capabilities from get or query methods which do not post local events

* Add tests for caching capabilities, enriching events, delayed fetch

* Add more docs to state handling

* Add CHANGELOG entry

* Add matched API response support for capabilities tests
…h operations (#52)

* Add activityBatchUpdate for publishing batch operation results

* Update tests to include activityBatchUpdate
@Stream-SDK-Bot Stream-SDK-Bot requested a review from a team as a code owner November 19, 2025 12:03
@Stream-SDK-Bot
Copy link
Collaborator Author

SDK Size

title previous release current release diff status
StreamFeeds 6.54 MB 7.15 MB +628 KB 🔴

@Stream-SDK-Bot
Copy link
Collaborator Author

StreamFeeds XCSize

Object Diff (bytes)
StreamAttachments.o +260193
AppUpdatedEvent.o -128509
Array+Extensions.o +127264
AutomodSemanticFiltersRule.o -76292
ConnectedEvent.o +62044
Show 366 more objects
Object Diff (bytes)
DefaultAPI.o +42168
ImageContentParameters.o -36621
AddCommentsBatchRequest.o +34205
ReviewQueueItem.o -33271
EntityCreator.o -28100
FeedSuggestionResponse.o +25893
PollListState.o -25401
ActivityRequest.o +24257
ActivityListState.o +23288
Flag.o -20199
ActivityResponse.o +19626
QueryFollowsResponse.o -18998
FeedGroupChangedEvent.o -17674
LLMConfig.o -17584
FeedsClient.o +17574
ActionLog.o -17026
StoriesFeedUpdatedEvent.o +15839
ActivityFeedbackEventPayload.o +15633
VelocityFilterConfig.o +15085
OwnCapabilitiesStateLayerEventMiddleware.o +14989
ActivityFeedbackEvent.o +13563
ExternalStorage.o -13514
OwnCapabilitiesRepository.o +13448
LLMRule.o -12498
APNS.o -9465
SubmitActionRequest.o +8688
ImageSize.o -8339
ActionLogResponse.o +8141
OwnCapabilitiesBatchResponse.o +7901
EventNotificationSettings.o -7643
FeedList.o +7606
SpeechSegmentConfig.o +7594
BlockActionRequest.o +6692
QueryUsersPayload.o +6576
FCM.o -6485
OwnCapabilitiesBatchRequest.o +6087
MemberLookup.o -6064
AddActivityRequest.o -5532
QueryPollVotesRequest.o -5513
ShadowBlockActionRequest.o +5365
StoriesConfig.o -4541
FeedListState.o +4280
FeedsRepository.o +3840
QueryActivitiesRequest.o +3790
ActivitiesQuery.o +3484
FeedState.o +3318
Attachment.o +3314
ActivityMarkData.o -3247
ActivityData.o +2948
ThreadedCommentData.o -2758
GetOGResponse.o -2641
ModerationCustomActionEvent.o +2614
AcceptFeedMemberInviteResponse.o +2601
Images.o +2500
StateLayerEventPublisher.o +2416
BookmarkListState.o +2332
FollowList.o +2281
CommentReplyListState.o -2163
MembersQuery.o -2112
CreatePollRequest.o +2080
ActivityList.o +1923
AutomodRule.o +1832
UpdateFollowResponse.o -1730
ActivityCommentListState.o +1712
ActivityAddedEvent.o +1706
AWSRekognitionRule.o -1674
AddCommentResponse.o +1624
BookmarkList.o +1610
AcceptFollowResponse.o +1610
AddActivityResponse.o +1604
FollowListState.o +1546
AddBookmarkResponse.o +1539
AppResponseFields.o +1538
UpdateActivityResponse.o -1511
FeedsEvent.o -1510
GetCommentResponse.o -1484
GetConfigResponse.o +1464
UpsertConfigResponse.o -1460
DeleteBookmarkResponse.o -1447
RejectFeedMemberInviteResponse.o -1446
ModerationConfigsQuery.o +1440
DeleteBookmarkFolderResponse.o -1433
EnrichedActivity.o +1421
StateLayerEvent.o -1397
UserCreatedWithinParameters.o -1396
UpdateBookmarkFolderRequest.o -1356
DeleteActivityRequest.o +1344
CommentReactionAddedEvent.o +1326
UpdateUsersRequest.o -1312
PollOptionInput.o +1308
PagerResponse.o +1300
BookmarksRepository.o -1284
ActivityFeedbackResponse.o +1283
DeleteMessageRequest.o -1272
MemberListState.o +1256
FeedId.o -1254
UserCustomPropertyParameters.o -1237
EntityCreatorResponse.o +1212
ThreadedCommentResponse.o -1206
CommentsRepository.o -1190
ReviewQueueItemResponse.o +1180
ConfigResponse.o +1163
AddFolderRequest.o +1148
AIImageConfig.o +1144
CommentResponse.o +1128
PollClosedFeedEvent.o +1112
AggregatedActivityResponse.o +1112
BanResponse.o +1108
PollUpdatedFeedEvent.o -1092
CommentData.o -1090
ActionSequence.o +1082
ConfigOverrides.o +1072
BlockListConfig.o -1068
UserResponse.o +1047
NotificationStatusData.o -1040
UserMute.o +1036
AIVideoConfig.o +1036
NotificationTrigger.o -1021
ActivityPinnedEvent.o +1020
AddReactionResponse.o +1016
ActivityUnpinnedEvent.o -1002
DeleteActivityReactionResponse.o -992
Foundation.tbd +984
ActivityFeedbackRequest.o -981
CommentDeletedEvent.o +962
EnrichedReaction.o -959
FeedMemberAddedEvent.o +958
FeedMemberData.o -950
FollowData.o -930
CreateGuestResponse.o -925
GetOrCreateFeedResponse.o +902
AppEventResponse.o +894
APIError.o +888
AcceptFollowRequest.o +876
Action.o +873
Ban.o +864
BookmarkData.o -862
UpdateFeedRequest.o +856
UserMuteResponse.o -836
GetBlockedUsersResponse.o +832
FeedData.o -821
FeedsPreferences.o +816
ModerationRepository.o -808
VelocityFilterConfigRule.o -800
CreatePollOptionRequest.o -788
PollOptionRequest.o +784
ActivitiesRepository.o +779
QueryReviewQueueRequest.o +764
PollOptionResponseData.o -752
Attachment+Extensions.o +744
PaginationData.o +736
PollData.o +735
PollsQuery.o -734
UserResponsePrivacyFields.o +728
QueryFeedsRequest.o +720
BookmarkFoldersQuery.o +718
Feed.o +717
FileUploadConfig.o +706
CommentReplyList.o -692
AddCommentRequest.o +690
DeleteUserRequest.o +688
PushPreferences.o +674
Activity.o +663
PollVoteListState.o -650
ModerationV2Response.o +648
QueryActivityReactionsResponse.o -646
ActivityMarkEvent.o +628
UpdateFollowRequest.o +624
ModerationConfigListState.o -604
CommentUpdatedEvent.o -598
FeedsQuery.o +596
BookmarkFolderData.o -595
AddCommentReactionRequest.o +592
UserRequest.o +590
ActivityRemovedFromFeedEvent.o -588
ActivityReactionAddedEvent.o +586
FeedMemberUpdatedEvent.o -568
ActivityReactionListState.o -559
AddBookmarkRequest.o +552
FeedGroup.o +544
FeedAddActivityRequest.o +526
CommentReactionUpdatedEvent.o -518
FullUserResponse.o +517
ModerationFlagResponse.o +514
PollOptionData.o -512
PollResponseData.o +498
ActivityProcessorConfig.o +494
ActivitySelectorConfig.o +491
FlagUserOptions.o -487
ActivityPinData.o -484
HarmConfig.o +476
ModerationMarkReviewedEvent.o -474
PushPreferenceInput.o +472
BodyguardRule.o +464
CommentReactionListState.o +451
PushNotificationConfig.o +440
ModerationFlaggedEvent.o +438
BanActionRequest.o +435
FeedResponse.o +430
PushNotificationsConfig.o -428
SharedLocation.o +424
UpdateActivityRequest.o +420
BanRequest.o +420
UpsertConfigRequest.o -419
ReactionGroupResponse.o +416
BlockListRule.o +396
PollOptionResponse.o +388
FeedQuery.o +372
UpsertPushPreferencesResponse.o +372
FollowBatchResponse.o +368
RuleBuilderCondition.o +368
GetOrCreateFeedRequest.o +362
MarkReviewedRequest.o +360
MemberList.o +356
MuteResponse.o +352
GetCommentRepliesResponse.o +351
UnpinActivityResponse.o -348
ActivityReactionList.o +344
CommentListState.o -344
QueryBookmarkFoldersResponse.o +340
PollList.o +328
QueryFeedMembersResponse.o +328
PollVotesQuery.o +320
PollVoteData.o -316
FollowsQuery.o +314
PollVotesResponse.o +314
FeedMemberResponse.o +314
ActivityCommentList.o -307
UpdatePollRequest.o +304
FollowResponse.o +300
FeedsClient+Connection.o -296
CoreLocation+Extensions.o +296
BlockUsersRequest.o +292
UnblockUsersRequest.o -292
ImageData.o +287
FeedCreatedEvent.o +286
GoogleVisionConfig.o +280
ModerationActionConfig.o -280
UserRuleParameters.o -276
CommentReactionsQuery.o +276
BlockListOptions.o +276
BlockListResponse.o +267
CustomActionRequest.o +264
ImageRuleParameters.o +262
Field.o -258
UpdateFeedMembersResponse.o -258
NotificationStatusResponse.o +255
ImageUploadRequest.o +255
BanOptions.o +252
CommentList.o +246
UpdateCommentRequest.o +244
ReadReceipts.o -240
DecayFunctionConfig.o +239
FileUploadResponse.o +236
UpdateBlockListRequest.o -232
FlagRequest.o +231
FeedMemberRemovedEvent.o +230
ActivityReactionUpdatedEvent.o +230
StreamCore -224
FollowRequest.o +220
SharedLocationResponse.o +218
FeedGroupDeletedEvent.o +216
PollVoteRemovedFeedEvent.o +216
UserData.o -216
RuleBuilderConditionGroup.o +214
PagerRequest.o +214
BookmarksQuery.o +214
CommentReactionDeletedEvent.o +214
CreateBlockListResponse.o -212
CommentAddedEvent.o +212
UserReactivatedEvent.o +212
Thresholds.o +212
FeedUpdatedEvent.o +212
MembershipLevelResponse.o -211
FeedDeletedEvent.o +210
ActivityDeletedEvent.o +210
ContentCountRuleParameters.o +210
UserMutedEvent.o +210
UpsertActivitiesResponse.o -209
FollowUpdatedEvent.o +208
PollVoteResponse.o +208
PollVoteCastedFeedEvent.o +208
PollDeletedFeedEvent.o +208
ActivityReactionsQuery.o +208
BookmarkFolderListState.o +208
ActivityUpdatedEvent.o +204
BookmarkUpdatedEvent.o +202
BookmarkAddedEvent.o +202
SubmitActionResponse.o -200
ActivityCommentsQuery.o -198
CreateBlockListRequest.o +196
FollowCreatedEvent.o +191
DeleteActivitiesRequest.o -188
FeedInput.o +188
DeleteCommentResponse.o +188
FeedMemberRequest.o -185
ActivityAddCommentRequest.o +182
ChannelPushPreferences.o +178
TextContentParameters.o +177
BookmarkDeletedEvent.o +174
BookmarkFolderUpdatedEvent.o +174
FileUploadConfigData.o +172
RuleBuilderConfig.o -172
OnlyUserID.o +172
StreamData.o -172
FollowDeletedEvent.o +170
PollVoteChangedFeedEvent.o +170
NotificationFeedUpdatedEvent.o +166
UpdateLiveLocationRequest.o -166
BodyguardSeverityRule.o +164
VoteData.o +164
UpdateBookmarkFolderResponse.o +164
GetFollowSuggestionsResponse.o +160
DeleteActivitiesResponse.o +160
ListBlockListResponse.o +156
QueryUsersResponse.o +156
MuteRequest.o +156
RankingConfig.o -152
FlagResponse.o +152
DeleteFeedResponse.o +152
LabelThresholds.o +148
CreateFeedsBatchResponse.o +148
FeedRequest.o +148
SharedLocationsResponse.o +148
NotificationContext.o +148
UpdateFeedResponse.o +144
PollResponse.o +144
SortParam.o +144
QueryActivitiesResponse.o +143
AddCommentsBatchResponse.o +142
UpdateActivityPartialRequest.o +140
AutomodSemanticFiltersConfig.o -140
AutomodPlatformCircumventionConfig.o -140
BookmarkFolderDeletedEvent.o -136
FileUploadRequest.o +133
GetApplicationResponse.o +130
AITextConfig.o +130
CommentReactionList.o -129
RuleBuilderAction.o +126
WSAuthMessage.o -125
UserResponseCommonFields.o +125
Moderation.o -124
TextRuleParameters.o -116
ActivityLocation.o +115
UpdateUserPartialRequest.o +113
RejectFollowRequest.o +105
ModerationConfigData.o -104
StateAccessing.o +101
AddCommentReactionResponse.o +100
FeedOwnCapability.o +98
ActivityState.o -98
MarkActivityRequest.o +95
CommentsQuery.o -85
Combine.tbd +84
Utils.o -84
FeedsReactionData.o -82
ActivityReactionDeletedEvent.o +78
PollVoteResponseData.o -78
AggregatedActivityData.o -74
ImageUploadResponse.o +68
PollsRepository.o -66
UpdateUsersPartialRequest.o -60
ModelUpdates.o -58
UpdateUsersResponse.o +56
UserBannedEvent.o +44
ModerationPayload.o -44

@github-actions
Copy link

1 Warning
⚠️ Big PR

Generated by 🚫 Danger

@github-actions
Copy link

Public Interface

+ extension ActivityReactionsSortField  
+ 
+   public static let createdAt

+ extension FeedsSortField  
+ 
+   public static let createdAt
+   public static let followerCount
+   public static let followingCount
+   public static let memberCount
+   public static let updatedAt

+ public final class OwnCapabilitiesBatchRequest: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var feeds: [String]
+   
+ 
+   public init(feeds: [String])
+   
+ 
+   public static func ==(lhs: OwnCapabilitiesBatchRequest,rhs: OwnCapabilitiesBatchRequest)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case feeds

+ public final class BlockActionRequest: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var reason: String?
+   
+ 
+   public init(reason: String? = nil)
+   
+ 
+   public static func ==(lhs: BlockActionRequest,rhs: BlockActionRequest)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case reason

+ extension BookmarksSortField  
+ 
+   public static let createdAt
+   public static let updatedAt

+ public final class OwnCapabilitiesBatchResponse: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var capabilities: [String: [FeedOwnCapability]]
+   public var duration: String
+   
+ 
+   public init(capabilities: [String: [FeedOwnCapability]],duration: String)
+   
+ 
+   public static func ==(lhs: OwnCapabilitiesBatchResponse,rhs: OwnCapabilitiesBatchResponse)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case capabilities
+     case duration

+ extension PollsSortField  
+ 
+   public static let createdAt
+   public static let updatedAt
+   public static let name
+   public static let id
+   public static let isClosed

+ extension BookmarkFoldersSortField  
+ 
+   public static let createdAt
+   public static let updatedAt

+ extension CommentReactionsSortField  
+ 
+   public static let createdAt

+ public final class SpeechSegmentConfig: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var maxSpeechCaptionMs: Int?
+   public var silenceDurationMs: Int?
+   
+ 
+   public init(maxSpeechCaptionMs: Int? = nil,silenceDurationMs: Int? = nil)
+   
+ 
+   public static func ==(lhs: SpeechSegmentConfig,rhs: SpeechSegmentConfig)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case maxSpeechCaptionMs = "max_speech_caption_ms"
+     case silenceDurationMs = "silence_duration_ms"

+ extension MembersSortField  
+ 
+   public static let createdAt
+   public static let updatedAt
+   public static let userId

+ extension ModerationConfigsSortField  
+ 
+   public static let key
+   public static let createdAt
+   public static let team
+   public static let updatedAt

+ extension ActivitiesSortField  
+ 
+   public static let createdAt
+   public static let popularity

+ extension CLLocationCoordinate2D: @retroactive Equatable  
+ 
+   public static func ==(lhs: CLLocationCoordinate2D,rhs: CLLocationCoordinate2D)-> Bool

+ public final class ActivityFeedbackEvent: @unchecked Sendable, Event, Codable, JSONEncodable, Hashable  
+ 
+   public var activityFeedback: ActivityFeedbackEventPayload
+   public var createdAt: Date
+   public var custom: [String: RawJSON]
+   public var receivedAt: Date?
+   public var type: String
+   public var user: UserResponseCommonFields?
+   
+ 
+   public init(activityFeedback: ActivityFeedbackEventPayload,createdAt: Date,custom: [String: RawJSON],receivedAt: Date? = nil,user: UserResponseCommonFields? = nil)
+   
+ 
+   public static func ==(lhs: ActivityFeedbackEvent,rhs: ActivityFeedbackEvent)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case activityFeedback = "activity_feedback"
+     case createdAt = "created_at"
+     case custom
+     case receivedAt = "received_at"
+     case type
+     case user

+ public final class StoriesFeedUpdatedEvent: @unchecked Sendable, Event, Codable, JSONEncodable, Hashable  
+ 
+   public var activities: [ActivityResponse]?
+   public var aggregatedActivities: [AggregatedActivityResponse]?
+   public var createdAt: Date
+   public var custom: [String: RawJSON]
+   public var feedVisibility: String?
+   public var fid: String
+   public var receivedAt: Date?
+   public var type: String
+   public var user: UserResponseCommonFields?
+   
+ 
+   public init(activities: [ActivityResponse]? = nil,aggregatedActivities: [AggregatedActivityResponse]? = nil,createdAt: Date,custom: [String: RawJSON],feedVisibility: String? = nil,fid: String,receivedAt: Date? = nil,user: UserResponseCommonFields? = nil)
+   
+ 
+   public static func ==(lhs: StoriesFeedUpdatedEvent,rhs: StoriesFeedUpdatedEvent)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case activities
+     case aggregatedActivities = "aggregated_activities"
+     case createdAt = "created_at"
+     case custom
+     case feedVisibility = "feed_visibility"
+     case fid
+     case receivedAt = "received_at"
+     case type
+     case user

+ extension PollVotesSortField  
+ 
+   public static let answerText
+   public static let id
+   public static let createdAt
+   public static let updatedAt

+ public final class FeedSuggestionResponse: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var algorithmScores: [String: Float]?
+   public var createdAt: Date
+   public var createdBy: UserResponse
+   public var custom: [String: RawJSON]?
+   public var deletedAt: Date?
+   public var description: String
+   public var feed: String
+   public var filterTags: [String]?
+   public var followerCount: Int
+   public var followingCount: Int
+   public var groupId: String
+   public var id: String
+   public var memberCount: Int
+   public var name: String
+   public var ownCapabilities: [FeedOwnCapability]?
+   public var ownFollows: [FollowResponse]?
+   public var ownMembership: FeedMemberResponse?
+   public var pinCount: Int
+   public var reason: String?
+   public var recommendationScore: Float?
+   public var updatedAt: Date
+   public var visibility: String?
+   
+ 
+   public init(algorithmScores: [String: Float]? = nil,createdAt: Date,createdBy: UserResponse,custom: [String: RawJSON]? = nil,deletedAt: Date? = nil,description: String,feed: String,filterTags: [String]? = nil,followerCount: Int,followingCount: Int,groupId: String,id: String,memberCount: Int,name: String,ownCapabilities: [FeedOwnCapability]? = nil,ownFollows: [FollowResponse]? = nil,ownMembership: FeedMemberResponse? = nil,pinCount: Int,reason: String? = nil,recommendationScore: Float? = nil,updatedAt: Date,visibility: String? = nil)
+   
+ 
+   public static func ==(lhs: FeedSuggestionResponse,rhs: FeedSuggestionResponse)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case algorithmScores = "algorithm_scores"
+     case createdAt = "created_at"
+     case createdBy = "created_by"
+     case custom
+     case deletedAt = "deleted_at"
+     case description
+     case feed
+     case filterTags = "filter_tags"
+     case followerCount = "follower_count"
+     case followingCount = "following_count"
+     case groupId = "group_id"
+     case id
+     case memberCount = "member_count"
+     case name
+     case ownCapabilities = "own_capabilities"
+     case ownFollows = "own_follows"
+     case ownMembership = "own_membership"
+     case pinCount = "pin_count"
+     case reason
+     case recommendationScore = "recommendation_score"
+     case updatedAt = "updated_at"
+     case visibility

+ public final class ActivityFeedbackEventPayload: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var action: ActivityFeedbackEventPayloadAction
+   public var activityId: String
+   public var createdAt: Date
+   public var updatedAt: Date
+   public var user: UserResponse
+   public var value: String
+   
+ 
+   public init(action: ActivityFeedbackEventPayloadAction,activityId: String,createdAt: Date,updatedAt: Date,user: UserResponse,value: String)
+   
+ 
+   public static func ==(lhs: ActivityFeedbackEventPayload,rhs: ActivityFeedbackEventPayload)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum ActivityFeedbackEventPayloadAction: String, Sendable, Codable, CaseIterable  
+   
+     case hide = "hide"
+     case showLess = "show_less"
+     case showMore = "show_more"
+     case unknown = "_unknown"
+     
+   
+     public init(from decoder: Decoder)throws 
+     
+   
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case action
+     case activityId = "activity_id"
+     case createdAt = "created_at"
+     case updatedAt = "updated_at"
+     case user
+     case value

+ extension FollowsSortField  
+ 
+   public static let createdAt

+ public final class ShadowBlockActionRequest: @unchecked Sendable, Codable, JSONEncodable, Hashable  
+ 
+   public var reason: String?
+   
+ 
+   public init(reason: String? = nil)
+   
+ 
+   public static func ==(lhs: ShadowBlockActionRequest,rhs: ShadowBlockActionRequest)-> Bool
+   public func hash(into hasher: inout Hasher)
+   
+ 
+   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
+     case reason

- public final class EventNotificationSettings: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var apns: APNS
-   public var enabled: Bool
-   public var fcm: FCM
-   
- 
-   public init(apns: APNS,enabled: Bool,fcm: FCM)
-   
- 
-   public static func ==(lhs: EventNotificationSettings,rhs: EventNotificationSettings)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case apns
-     case enabled
-     case fcm

- public final class FCM: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var data: [String: RawJSON]?
-   
- 
-   public init(data: [String: RawJSON]? = nil)
-   
- 
-   public static func ==(lhs: FCM,rhs: FCM)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case data

- public final class Flag: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var createdAt: Date
-   public var custom: [String: RawJSON]?
-   public var entityCreatorId: String?
-   public var entityId: String
-   public var entityType: String
-   public var isStreamedContent: Bool?
-   public var labels: [String]?
-   public var moderationPayload: ModerationPayload?
-   public var moderationPayloadHash: String?
-   public var reason: String?
-   public var result: [[String: RawJSON]]
-   public var reviewQueueItem: ReviewQueueItem?
-   public var reviewQueueItemId: String?
-   public var type: String?
-   public var updatedAt: Date
-   public var user: User?
-   
- 
-   public init(createdAt: Date,custom: [String: RawJSON]? = nil,entityCreatorId: String? = nil,entityId: String,entityType: String,isStreamedContent: Bool? = nil,labels: [String]? = nil,moderationPayload: ModerationPayload? = nil,moderationPayloadHash: String? = nil,reason: String? = nil,result: [[String: RawJSON]],reviewQueueItem: ReviewQueueItem? = nil,reviewQueueItemId: String? = nil,updatedAt: Date,user: User? = nil)
-   
- 
-   public static func ==(lhs: Flag,rhs: Flag)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case createdAt = "created_at"
-     case custom
-     case entityCreatorId = "entity_creator_id"
-     case entityId = "entity_id"
-     case entityType = "entity_type"
-     case isStreamedContent = "is_streamed_content"
-     case labels
-     case moderationPayload = "moderation_payload"
-     case moderationPayloadHash = "moderation_payload_hash"
-     case reason
-     case result
-     case reviewQueueItem = "review_queue_item"
-     case reviewQueueItemId = "review_queue_item_id"
-     case type
-     case updatedAt = "updated_at"
-     case user

- public final class ExternalStorage: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var absAccountName: String?
-   public var absClientId: String?
-   public var absClientSecret: String?
-   public var absTenantId: String?
-   public var bucket: String?
-   public var gcsCredentials: String?
-   public var path: String?
-   public var s3ApiKey: String?
-   public var s3CustomEndpoint: String?
-   public var s3Region: String?
-   public var s3SecretKey: String?
-   public var storageName: String?
-   public var storageType: Int?
-   
- 
-   public init(absAccountName: String? = nil,absClientId: String? = nil,absClientSecret: String? = nil,absTenantId: String? = nil,bucket: String? = nil,gcsCredentials: String? = nil,path: String? = nil,s3ApiKey: String? = nil,s3CustomEndpoint: String? = nil,s3Region: String? = nil,s3SecretKey: String? = nil,storageName: String? = nil,storageType: Int? = nil)
-   
- 
-   public static func ==(lhs: ExternalStorage,rhs: ExternalStorage)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case absAccountName = "abs_account_name"
-     case absClientId = "abs_client_id"
-     case absClientSecret = "abs_client_secret"
-     case absTenantId = "abs_tenant_id"
-     case bucket
-     case gcsCredentials = "gcs_credentials"
-     case path
-     case s3ApiKey = "s3_api_key"
-     case s3CustomEndpoint = "s3_custom_endpoint"
-     case s3Region = "s3_region"
-     case s3SecretKey = "s3_secret_key"
-     case storageName = "storage_name"
-     case storageType = "storage_type"

- public final class APNS: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var body: String
-   public var contentAvailable: Int?
-   public var data: [String: RawJSON]?
-   public var mutableContent: Int?
-   public var sound: String?
-   public var title: String
-   
- 
-   public init(body: String,contentAvailable: Int? = nil,data: [String: RawJSON]? = nil,mutableContent: Int? = nil,sound: String? = nil,title: String)
-   
- 
-   public static func ==(lhs: APNS,rhs: APNS)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case body
-     case contentAvailable = "content-available"
-     case data
-     case mutableContent = "mutable-content"
-     case sound
-     case title

- public final class ActionLog: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var createdAt: Date
-   public var custom: [String: RawJSON]
-   public var id: String
-   public var reason: String
-   public var reporterType: String
-   public var reviewQueueItem: ReviewQueueItem?
-   public var reviewQueueItemId: String
-   public var targetUser: User?
-   public var targetUserId: String
-   public var type: String
-   public var user: User?
-   
- 
-   public init(createdAt: Date,custom: [String: RawJSON],id: String,reason: String,reporterType: String,reviewQueueItem: ReviewQueueItem? = nil,reviewQueueItemId: String,targetUser: User? = nil,targetUserId: String,type: String,user: User? = nil)
-   
- 
-   public static func ==(lhs: ActionLog,rhs: ActionLog)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case createdAt = "created_at"
-     case custom
-     case id
-     case reason
-     case reporterType = "reporter_type"
-     case reviewQueueItem = "review_queue_item"
-     case reviewQueueItemId = "review_queue_item_id"
-     case targetUser = "target_user"
-     case targetUserId = "target_user_id"
-     case type
-     case user

- public final class MemberLookup: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var limit: Int
-   
- 
-   public init(limit: Int)
-   
- 
-   public static func ==(lhs: MemberLookup,rhs: MemberLookup)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case limit = "Limit"

- public final class EntityCreator: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var avgResponseTime: Int?
-   public var banCount: Int
-   public var banExpires: Date?
-   public var banned: Bool
-   public var createdAt: Date?
-   public var custom: [String: RawJSON]
-   public var deactivatedAt: Date?
-   public var deletedAt: Date?
-   public var deletedContentCount: Int
-   public var id: String
-   public var invisible: Bool?
-   public var language: String?
-   public var lastActive: Date?
-   public var lastEngagedAt: Date?
-   public var online: Bool
-   public var privacySettings: PrivacySettings?
-   public var revokeTokensIssuedBefore: Date?
-   public var role: String
-   public var teams: [String]?
-   public var teamsRole: [String: String]
-   public var updatedAt: Date?
-   
- 
-   public init(avgResponseTime: Int? = nil,banCount: Int,banExpires: Date? = nil,banned: Bool,createdAt: Date? = nil,custom: [String: RawJSON],deactivatedAt: Date? = nil,deletedAt: Date? = nil,deletedContentCount: Int,id: String,invisible: Bool? = nil,language: String? = nil,lastActive: Date? = nil,lastEngagedAt: Date? = nil,online: Bool,privacySettings: PrivacySettings? = nil,revokeTokensIssuedBefore: Date? = nil,role: String,teams: [String]? = nil,teamsRole: [String: String],updatedAt: Date? = nil)
-   
- 
-   public static func ==(lhs: EntityCreator,rhs: EntityCreator)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case avgResponseTime = "avg_response_time"
-     case banCount = "ban_count"
-     case banExpires = "ban_expires"
-     case banned
-     case createdAt = "created_at"
-     case custom
-     case deactivatedAt = "deactivated_at"
-     case deletedAt = "deleted_at"
-     case deletedContentCount = "deleted_content_count"
-     case id
-     case invisible
-     case language
-     case lastActive = "last_active"
-     case lastEngagedAt = "last_engaged_at"
-     case online
-     case privacySettings = "privacy_settings"
-     case revokeTokensIssuedBefore = "revoke_tokens_issued_before"
-     case role
-     case teams
-     case teamsRole = "teams_role"
-     case updatedAt = "updated_at"

- public final class ReviewQueueItem: @unchecked Sendable, Codable, JSONEncodable, Hashable  
- 
-   public var actions: [ActionLog]
-   public var activity: EnrichedActivity?
-   public var aiTextSeverity: String
-   public var assignedTo: User?
-   public var bans: [Ban]
-   public var bounceCount: Int
-   public var configKey: String
-   public var contentChanged: Bool
-   public var createdAt: Date
-   public var entityCreator: EntityCreator?
-   public var entityId: String
-   public var entityType: String
-   public var feedsV2Activity: EnrichedActivity?
-   public var flagLabels: [String]
-   public var flagTypes: [String]
-   public var flags: [Flag]
-   public var flagsCount: Int
-   public var hasImage: Bool
-   public var hasText: Bool
-   public var hasVideo: Bool
-   public var id: String
-   public var languages: [String]
-   public var moderationPayload: ModerationPayload?
-   public var moderationPayloadHash: String
-   public var recommendedAction: String
-   public var reporterIds: [String]
-   public var reviewedBy: String
-   public var severity: Int
-   public var status: String
-   public var teams: [String]
-   public var updatedAt: Date
-   
- 
-   public init(actions: [ActionLog],activity: EnrichedActivity? = nil,aiTextSeverity: String,assignedTo: User? = nil,bans: [Ban],bounceCount: Int,configKey: String,contentChanged: Bool,createdAt: Date,entityCreator: EntityCreator? = nil,entityId: String,entityType: String,feedsV2Activity: EnrichedActivity? = nil,flagLabels: [String],flagTypes: [String],flags: [Flag],flagsCount: Int,hasImage: Bool,hasText: Bool,hasVideo: Bool,id: String,languages: [String],moderationPayload: ModerationPayload? = nil,moderationPayloadHash: String,recommendedAction: String,reporterIds: [String],reviewedBy: String,severity: Int,status: String,teams: [String],updatedAt: Date)
-   
- 
-   public static func ==(lhs: ReviewQueueItem,rhs: ReviewQueueItem)-> Bool
-   public func hash(into hasher: inout Hasher)
-   
- 
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case actions
-     case activity
-     case aiTextSeverity = "ai_text_severity"
-     case assignedTo = "assigned_to"
-     case bans
-     case bounceCount = "bounce_count"
-     case configKey = "config_key"
-     case contentChanged = "content_changed"
-     case createdAt = "created_at"
-     case entityCreator = "entity_creator"
-     case entityId = "entity_id"
-     case entityType = "entity_type"
-     case feedsV2Activity = "feeds_v2_activity"
-     case flagLabels = "flag_labels"
-     case flagTypes = "flag_types"
-     case flags
-     case flagsCount = "flags_count"
-     case hasImage = "has_image"
-     case hasText = "has_text"
-     case hasVideo = "has_video"
-     case id
-     case languages
-     case moderationPayload = "moderation_payload"
-     case moderationPayloadHash = "moderation_payload_hash"
-     case recommendedAction = "recommended_action"
-     case reporterIds = "reporter_ids"
-     case reviewedBy = "reviewed_by"
-     case severity
-     case status
-     case teams
-     case updatedAt = "updated_at"

 public struct BookmarkFoldersSortField: SortField  
-   public static let createdAt
+   
-   public static let updatedAt
+ 
-   
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 public final class ActivityFeedbackRequest: @unchecked Sendable, Codable, JSONEncodable, Hashable  
-   public var muteUser: Bool?
+   public var showLess: Bool?
-   public var reason: String?
+   public var showMore: Bool?
-   public var report: Bool?
+   
-   public var showLess: Bool?
+ 
-   
+   public init(hide: Bool? = nil,showLess: Bool? = nil,showMore: Bool? = nil)
- 
+   
-   public init(hide: Bool? = nil,muteUser: Bool? = nil,reason: String? = nil,report: Bool? = nil,showLess: Bool? = nil)
+ 
-   
+   public static func ==(lhs: ActivityFeedbackRequest,rhs: ActivityFeedbackRequest)-> Bool
- 
+   public func hash(into hasher: inout Hasher)
-   public static func ==(lhs: ActivityFeedbackRequest,rhs: ActivityFeedbackRequest)-> Bool
+   
-   public func hash(into hasher: inout Hasher)
+ 
-   
+   public enum CodingKeys: String, CodingKey, CaseIterable  
- 
+   
-   public enum CodingKeys: String, CodingKey, CaseIterable  
+     case hide
-   
+     case showLess = "show_less"
-     case hide
+     case showMore = "show_more"
-     case muteUser = "mute_user"
-     case reason
-     case report
-     case showLess = "show_less"

- @MainActor public class BookmarkFolderListState: ObservableObject  
+ @MainActor public final class BookmarkFolderListState: ObservableObject, StateAccessing  

 public struct FeedsReactionData: Equatable, Sendable  
-   public let createdAt: Date
+   public let commentId: String?
-   public let custom: [String: RawJSON]?
+   public let createdAt: Date
-   public let type: String
+   public let custom: [String: RawJSON]?
-   public let updatedAt: Date
+   public let type: String
-   public private var user: UserData
+   public let updatedAt: Date
+   public private var user: UserData

 public struct MembersSortField: SortField  
-   public static let createdAt
+   
-   public static let updatedAt
+ 
-   public static let userId
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

- @MainActor public class CommentListState: ObservableObject  
+ @MainActor public final class CommentListState: ObservableObject, StateAccessing  

 public final class ActivitySelectorConfig: @unchecked Sendable, Codable, JSONEncodable, Hashable  
-   public var filter: [String: RawJSON]?
+   public var cutoffWindow: String?
-   public var minPopularity: Int?
+   public var filter: [String: RawJSON]?
-   public var sort: [SortParam]?
+   public var minPopularity: Int?
-   public var type: String?
+   public var sort: [SortParam]?
-   
+   public var type: String?
- 
+   
-   public init(cutoffTime: Date,filter: [String: RawJSON]? = nil,minPopularity: Int? = nil,sort: [SortParam]? = nil)
+ 
-   
+   public init(cutoffTime: Date,cutoffWindow: String? = nil,filter: [String: RawJSON]? = nil,minPopularity: Int? = nil,sort: [SortParam]? = nil)
- 
+   
-   public static func ==(lhs: ActivitySelectorConfig,rhs: ActivitySelectorConfig)-> Bool
+ 
-   public func hash(into hasher: inout Hasher)
+   public static func ==(lhs: ActivitySelectorConfig,rhs: ActivitySelectorConfig)-> Bool
-   
+   public func hash(into hasher: inout Hasher)
- 
+   
-   public enum CodingKeys: String, CodingKey, CaseIterable  
+ 
-   
+   public enum CodingKeys: String, CodingKey, CaseIterable  
-     case cutoffTime = "cutoff_time"
+   
-     case filter
+     case cutoffTime = "cutoff_time"
-     case minPopularity = "min_popularity"
+     case cutoffWindow = "cutoff_window"
-     case sort
+     case filter
-     case type
+     case minPopularity = "min_popularity"
+     case sort
+     case type

 public enum FeedOwnCapability: String, Sendable, Codable, CaseIterable  
-   case follow
+   case follow = "follow"
-   case unfollow
+   case unfollow = "unfollow"

 public struct PollsSortField: SortField  
-   public static let createdAt
+   
-   public static let updatedAt
+ 
-   public static let voteCount
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   public static let name
-   public static let id
-   public static let isClosed
-   
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 public final class AggregatedActivityResponse: @unchecked Sendable, Codable, JSONEncodable, Hashable  
-   public var score: Float
+   public var isWatched: Bool?
-   public var updatedAt: Date
+   public var score: Float
-   public var userCount: Int
+   public var updatedAt: Date
-   public var userCountTruncated: Bool
+   public var userCount: Int
-   
+   public var userCountTruncated: Bool
- 
+   
-   public init(activities: [ActivityResponse],activityCount: Int,createdAt: Date,group: String,score: Float,updatedAt: Date,userCount: Int,userCountTruncated: Bool)
+ 
-   
+   public init(activities: [ActivityResponse],activityCount: Int,createdAt: Date,group: String,isWatched: Bool? = nil,score: Float,updatedAt: Date,userCount: Int,userCountTruncated: Bool)
- 
+   
-   public static func ==(lhs: AggregatedActivityResponse,rhs: AggregatedActivityResponse)-> Bool
+ 
-   public func hash(into hasher: inout Hasher)
+   public static func ==(lhs: AggregatedActivityResponse,rhs: AggregatedActivityResponse)-> Bool
-   
+   public func hash(into hasher: inout Hasher)
- 
+   
-   public enum CodingKeys: String, CodingKey, CaseIterable  
+ 
-   
+   public enum CodingKeys: String, CodingKey, CaseIterable  
-     case activities
+   
-     case activityCount = "activity_count"
+     case activities
-     case createdAt = "created_at"
+     case activityCount = "activity_count"
-     case group
+     case createdAt = "created_at"
-     case score
+     case group
-     case updatedAt = "updated_at"
+     case isWatched = "is_watched"
-     case userCount = "user_count"
+     case score
-     case userCountTruncated = "user_count_truncated"
+     case updatedAt = "updated_at"
+     case userCount = "user_count"
+     case userCountTruncated = "user_count_truncated"

 public final class ModerationCustomActionEvent: @unchecked Sendable, Event, Codable, JSONEncodable, Hashable  
-   public var createdAt: Date
+   public var actionId: String
-   public var item: ReviewQueueItem?
+   public var actionOptions: [String: RawJSON]?
-   public var type: String
+   public var createdAt: Date
-   public var user: User?
+   public var custom: [String: RawJSON]
-   
+   public var receivedAt: Date?
- 
+   public var reviewQueueItem: ReviewQueueItemResponse
-   public init(createdAt: Date,item: ReviewQueueItem? = nil,user: User? = nil)
+   public var type: String
-   public static func ==(lhs: ModerationCustomActionEvent,rhs: ModerationCustomActionEvent)-> Bool
+   public init(actionId: String,actionOptions: [String: RawJSON]? = nil,createdAt: Date,custom: [String: RawJSON],receivedAt: Date? = nil,reviewQueueItem: ReviewQueueItemResponse)
-   public func hash(into hasher: inout Hasher)
+   
-   
+ 
- 
+   public static func ==(lhs: ModerationCustomActionEvent,rhs: ModerationCustomActionEvent)-> Bool
-   public enum CodingKeys: String, CodingKey, CaseIterable  
+   public func hash(into hasher: inout Hasher)
-     case createdAt = "created_at"
+ 
-     case item
+   public enum CodingKeys: String, CodingKey, CaseIterable  
-     case type
+   
-     case user
+     case actionId = "action_id"
+     case actionOptions = "action_options"
+     case createdAt = "created_at"
+     case custom
+     case receivedAt = "received_at"
+     case reviewQueueItem = "review_queue_item"
+     case type

 public struct ActivitiesSortField: SortField  
-   public static let createdAt
+   
-   public static let popularity
+ 
-   
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 public struct CommentReactionsSortField: SortField  
-   public static let createdAt
+   
-   
+ 
- 
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 public struct FeedMemberData: Equatable, Sendable  
-   public let role: String
+   public let membershipLevel: MembershipLevelResponse?
-   public let status: FeedMemberStatus
+   public let role: String
-   public let updatedAt: Date
+   public let status: FeedMemberStatus
-   public let user: UserData
+   public let updatedAt: Date
+   public let user: UserData

 public final class ActionLogResponse: @unchecked Sendable, Codable, JSONEncodable, Hashable  
-   public var createdAt: Date
+   public var aiProviders: [String]
-   public var custom: [String: RawJSON]
+   public var createdAt: Date
-   public var id: String
+   public var custom: [String: RawJSON]
-   public var reason: String
+   public var id: String
-   public var reviewQueueItem: ReviewQueueItemResponse?
+   public var reason: String
-   public var targetUser: UserResponse?
+   public var reviewQueueItem: ReviewQueueItemResponse?
-   public var targetUserId: String
+   public var targetUser: UserResponse?
-   public var type: String
+   public var targetUserId: String
-   public var user: UserResponse?
+   public var type: String
-   public var userId: String
+   public var user: UserResponse?
-   
+   public var userId: String
- 
+   
-   public init(createdAt: Date,custom: [String: RawJSON],id: String,reason: String,reviewQueueItem: ReviewQueueItemResponse? = nil,targetUser: UserResponse? = nil,targetUserId: String,type: String,user: UserResponse? = nil,userId: String)
+ 
-   
+   public init(aiProviders: [String],createdAt: Date,custom: [String: RawJSON],id: String,reason: String,reviewQueueItem: ReviewQueueItemResponse? = nil,targetUser: UserResponse? = nil,targetUserId: String,type: String,user: UserResponse? = nil,userId: String)
- 
+   
-   public static func ==(lhs: ActionLogResponse,rhs: ActionLogResponse)-> Bool
+ 
-   public func hash(into hasher: inout Hasher)
+   public static func ==(lhs: ActionLogResponse,rhs: ActionLogResponse)-> Bool
-   
+   public func hash(into hasher: inout Hasher)
- 
+   
-   public enum CodingKeys: String, CodingKey, CaseIterable  
+ 
-   
+   public enum CodingKeys: String, CodingKey, CaseIterable  
-     case createdAt = "created_at"
+   
-     case custom
+     case aiProviders = "ai_providers"
-     case id
+     case createdAt = "created_at"
-     case reason
+     case custom
-     case reviewQueueItem = "review_queue_item"
+     case id
-     case targetUser = "target_user"
+     case reason
-     case targetUserId = "target_user_id"
+     case reviewQueueItem = "review_queue_item"
-     case type
+     case targetUser = "target_user"
-     case user
+     case targetUserId = "target_user_id"
-     case userId = "user_id"
+     case type
+     case user
+     case userId = "user_id"

- @MainActor public class PollListState: ObservableObject  
+ @MainActor public final class PollListState: ObservableObject, StateAccessing  

- @MainActor public class PollVoteListState: ObservableObject  
+ @MainActor public final class PollVoteListState: ObservableObject, StateAccessing  

- @MainActor public class CommentReplyListState: ObservableObject  
+ @MainActor public final class CommentReplyListState: ObservableObject, StateAccessing  

 public final class ModerationMarkReviewedEvent: @unchecked Sendable, Event, Codable, JSONEncodable, Hashable  
-   public var item: ReviewQueueItem?
+   public var item: ReviewQueueItemResponse?
-   public init(createdAt: Date,item: ReviewQueueItem? = nil,user: User? = nil)
+   public init(createdAt: Date,item: ReviewQueueItemResponse? = nil,user: User? = nil)

- @MainActor public class ActivityListState: ObservableObject  
+ @MainActor public final class ActivityListState: ObservableObject, StateAccessing  

 public struct ActivityPinData: Equatable, Sendable  
-   public let feed: FeedId
+   public let duration: String?
-   public let updatedAt: Date
+   public let feed: FeedId
-   public let userId: String
+   public let updatedAt: Date
+   public let userId: String

- @MainActor public class FeedState: ObservableObject  
+ @MainActor public final class FeedState: ObservableObject, StateAccessing  

 public struct UserData: Identifiable, Equatable, Sendable, Hashable  
-   public let banned: Bool
+   public let avgResponseTime: Int?
-   public let blockedUserIds: [String]
+   public let banned: Bool
-   public let createdAt: Date
+   public let blockedUserIds: [String]
-   public let custom: [String: RawJSON]
+   public let createdAt: Date
-   public let deactivatedAt: Date?
+   public let custom: [String: RawJSON]
-   public let deletedAt: Date?
+   public let deactivatedAt: Date?
-   public let id: String
+   public let deletedAt: Date?
-   public let image: String?
+   public let id: String
-   public let language: String
+   public let image: String?
-   public let lastActive: Date?
+   public let language: String
-   public let name: String?
+   public let lastActive: Date?
-   public let online: Bool
+   public let name: String?
-   public let revokeTokensIssuedBefore: Date?
+   public let online: Bool
-   public let role: String
+   public let revokeTokensIssuedBefore: Date?
-   public let teams: [String]
+   public let role: String
-   public let teamsRole: [String: String]?
+   public let teams: [String]
-   public let updatedAt: Date
+   public let teamsRole: [String: String]?
-   public var imageURL: URL?
+   public let updatedAt: Date
+   public var imageURL: URL?

- @MainActor public class ActivityState: ObservableObject  
+ @MainActor public final class ActivityState: ObservableObject, StateAccessing  

 public struct ModelUpdates: Sendable  
-   public let added: [Model]
+   public internal var added: [Model]
-   public let removedIds: [String]
+   public internal var removedIds: Set<String>
-   public let updated: [Model]
+   public internal var updated: [Model]

- @MainActor public class FeedListState: ObservableObject  
+ @MainActor public final class FeedListState: ObservableObject, StateAccessing  

 extension BookmarkFoldersFilterField  
-   public static let folderId
+   public static let folderName
-   public static let folderName
+   public static let createdAt
-   public static let createdAt
+   public static let updatedAt
-   public static let updatedAt
+   public static let userId
-   public static let userId

 public struct AggregatedActivityData: Identifiable, Equatable, Sendable  
-   public var id: String
+   public var userCountTruncated: Bool
+   public var id: String

- @MainActor public class CommentReactionListState: ObservableObject  
+ @MainActor public final class CommentReactionListState: ObservableObject, StateAccessing  

- @MainActor public class BookmarkListState: ObservableObject  
+ @MainActor public final class BookmarkListState: ObservableObject, StateAccessing  

 public struct ModerationConfigsSortField: SortField  
-   public static let key
+   
-   public static let createdAt
+ 
-   public static let updatedAt
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 open class DefaultAPI: DefaultAPIEndpoints, @unchecked Sendable  
-   open func addReaction(activityId: String,addReactionRequest: AddReactionRequest)async throws -> AddReactionResponse
+   open func addActivityReaction(activityId: String,addReactionRequest: AddReactionRequest)async throws -> AddReactionResponse
+   open func ownCapabilitiesBatch(ownCapabilitiesBatchRequest: OwnCapabilitiesBatchRequest)async throws -> OwnCapabilitiesBatchResponse

 public struct ActivityData: Identifiable, Equatable, Sendable  
-   public let currentFeed: FeedData?
+   public private var currentFeed: FeedData?
-   public let id: String
+   public let hidden: Bool
-   public let interestTags: [String]
+   public let id: String
-   public private var latestReactions: [FeedsReactionData]
+   public let interestTags: [String]
-   public let location: ActivityLocation?
+   public private var latestReactions: [FeedsReactionData]
-   public let mentionedUsers: [UserData]
+   public let location: CLLocationCoordinate2D?
-   public let moderation: ModerationV2Response?
+   public let mentionedUsers: [UserData]
-   public let notificationContext: NotificationContext?
+   public let moderation: ModerationV2Response?
-   public private var ownBookmarks: [BookmarkData]
+   public let notificationContext: NotificationContext?
-   public private var ownReactions: [FeedsReactionData]
+   public private var ownBookmarks: [BookmarkData]
-   public var parent: ActivityData?
+   public private var ownReactions: [FeedsReactionData]
-   public internal var poll: PollData?
+   public var parent: ActivityData?
-   public let popularity: Int
+   public internal var poll: PollData?
-   public private var reactionCount: Int
+   public let popularity: Int
-   public private var reactionGroups: [String: ReactionGroupData]
+   public private var reactionCount: Int
-   public let score: Float
+   public private var reactionGroups: [String: ReactionGroupData]
-   public let searchData: [String: RawJSON]
+   public let score: Float
-   public let shareCount: Int
+   public let searchData: [String: RawJSON]
-   public let text: String?
+   public let shareCount: Int
-   public let type: String
+   public let text: String?
-   public let updatedAt: Date
+   public let type: String
-   public let user: UserData
+   public let updatedAt: Date
-   public let visibility: ActivityDataVisibility
+   public let user: UserData
-   public let visibilityTag: String?
+   public let visibility: ActivityDataVisibility
+   public let visibilityTag: String?

 public final class BookmarkList: Sendable  
-   public func queryMoreBookmarks(limit: Int? = nil)async throws -> [BookmarkData]
+   @discardableResult public func queryMoreBookmarks(limit: Int? = nil)async throws -> [BookmarkData]

 public struct PollVotesSortField: SortField  
-   public static let answerText
+   
-   public static let id
+ 
-   public static let createdAt
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   public static let updatedAt
-   
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 public struct ReactionGroupData: Equatable, Sendable  
+   public let sumScores: Int?

- @MainActor public class ActivityReactionListState: ObservableObject  
+ @MainActor public final class ActivityReactionListState: ObservableObject, StateAccessing  

- @MainActor public class ActivityCommentListState: ObservableObject  
+ @MainActor public final class ActivityCommentListState: ObservableObject, StateAccessing  

 public final class FeedsClient: Sendable  
-   @discardableResult public func addActivity(request: AddActivityRequest)async throws -> AddActivityResponse
+   @discardableResult public func addActivity(request: AddActivityRequest)async throws -> ActivityData
-   @discardableResult public func deleteActivities(request: DeleteActivitiesRequest)async throws -> DeleteActivitiesResponse
+   @discardableResult public func deleteActivities(request: DeleteActivitiesRequest)async throws -> Set<String>

 public final class AppResponseFields: @unchecked Sendable, Codable, JSONEncodable, Hashable  
-   public var imageUploadConfig: FileUploadConfig
+   public var id: Int
-   public var name: String
+   public var imageUploadConfig: FileUploadConfig
-   
+   public var name: String
- 
+   public var placement: String
-   public init(asyncUrlEnrichEnabled: Bool,autoTranslationEnabled: Bool,fileUploadConfig: FileUploadConfig,imageUploadConfig: FileUploadConfig,name: String)
+   
-   
+ 
- 
+   public init(asyncUrlEnrichEnabled: Bool,autoTranslationEnabled: Bool,fileUploadConfig: FileUploadConfig,id: Int,imageUploadConfig: FileUploadConfig,name: String,placement: String)
-   public static func ==(lhs: AppResponseFields,rhs: AppResponseFields)-> Bool
+   
-   public func hash(into hasher: inout Hasher)
+ 
-   
+   public static func ==(lhs: AppResponseFields,rhs: AppResponseFields)-> Bool
- 
+   public func hash(into hasher: inout Hasher)
-   public enum CodingKeys: String, CodingKey, CaseIterable  
+   
-   
+ 
-     case asyncUrlEnrichEnabled = "async_url_enrich_enabled"
+   public enum CodingKeys: String, CodingKey, CaseIterable  
-     case autoTranslationEnabled = "auto_translation_enabled"
+   
-     case fileUploadConfig = "file_upload_config"
+     case asyncUrlEnrichEnabled = "async_url_enrich_enabled"
-     case imageUploadConfig = "image_upload_config"
+     case autoTranslationEnabled = "auto_translation_enabled"
-     case name
+     case fileUploadConfig = "file_upload_config"
+     case id
+     case imageUploadConfig = "image_upload_config"
+     case name
+     case placement

 public final class StoriesConfig: @unchecked Sendable, Codable, JSONEncodable, Hashable  
-   public var expirationBehaviour: StoriesConfigExpirationBehaviour?
+   public var skipWatched: Bool?
-   public var skipWatched: Bool?
+   public var trackWatched: Bool?
-   public init(expirationBehaviour: StoriesConfigExpirationBehaviour? = nil,skipWatched: Bool? = nil)
+   public init(skipWatched: Bool? = nil,trackWatched: Bool? = nil)
-   public enum StoriesConfigExpirationBehaviour: String, Sendable, Codable, CaseIterable  
+   public enum CodingKeys: String, CodingKey, CaseIterable  
-     case hideForEveryone = "hide_for_everyone"
+     case skipWatched = "skip_watched"
-     case visibleForAuthor = "visible_for_author"
+     case trackWatched = "track_watched"
-     case unknown = "_unknown"
-     
-   
-     public init(from decoder: Decoder)throws 
-     
-   
-   public enum CodingKeys: String, CodingKey, CaseIterable  
-   
-     case expirationBehaviour = "expiration_behaviour"
-     case skipWatched = "skip_watched"

 public struct FollowData: Equatable, Sendable  
-   public let sourceFeed: FeedData
+   public private var sourceFeed: FeedData
-   public let targetFeed: FeedData
+   public private var targetFeed: FeedData

 public struct FeedData: Identifiable, Equatable, Sendable  
-   public let pinCount: Int
+   public private var ownCapabilities: Set<FeedOwnCapability>?
-   public let updatedAt: Date
+   public private var ownFollows: [FollowData]?
-   public let visibility: String?
+   public private var ownMembership: FeedMemberData?
-   public let ownCapabilities: [FeedOwnCapability]?
+   public let pinCount: Int
+   public let updatedAt: Date
+   public let visibility: String?

 public struct BookmarkData: Equatable, Sendable  
-   public let activity: ActivityData
+   public private var activity: ActivityData

 public struct BookmarksSortField: SortField  
-   public static let createdAt
+   
-   public static let updatedAt
+ 
-   
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

- @MainActor public class FollowListState: ObservableObject  
+ @MainActor public final class FollowListState: ObservableObject, StateAccessing  

 public final class FeedList: Sendable  
-   public func queryMoreFeeds(limit: Int? = nil)async throws -> [FeedData]
+   @discardableResult public func queryMoreFeeds(limit: Int? = nil)async throws -> [FeedData]

 extension ActivitiesFilterField  
-   public static let createdAt
+   public static let activityType
-   public static let expiresAt
+   public static let createdAt
-   public static let id
+   public static let expiresAt
-   public static let filterTags
+   public static let feed
-   public static let popularity
+   public static let filterTags
-   public static let searchData
+   public static let id
-   public static let text
+   public static let interestTags
-   public static let type
+   public static let near
-   public static let userId
+   public static let popularity
+   public static let searchData
+   public static let text
+   public static let userId
+   public static let withinBounds

 public struct FeedsSortField: SortField  
-   public static let createdAt
+   
-   public static let followerCount
+ 
-   public static let followingCount
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   public static let memberCount
-   public static let updatedAt
-   
- 
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

 public struct FollowsSortField: SortField  
-   public static let createdAt
+   
-   
+ 
- 
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

- @MainActor public class ModerationConfigListState: ObservableObject  
+ @MainActor public final class ModerationConfigListState: ObservableObject, StateAccessing  

 public enum FeedsEvent: Codable, Hashable  
-   case typeActivityMarkEvent(ActivityMarkEvent)
+   case typeActivityFeedbackEvent(ActivityFeedbackEvent)
-   case typeActivityPinnedEvent(ActivityPinnedEvent)
+   case typeActivityMarkEvent(ActivityMarkEvent)
-   case typeActivityReactionAddedEvent(ActivityReactionAddedEvent)
+   case typeActivityPinnedEvent(ActivityPinnedEvent)
-   case typeActivityReactionDeletedEvent(ActivityReactionDeletedEvent)
+   case typeActivityReactionAddedEvent(ActivityReactionAddedEvent)
-   case typeActivityReactionUpdatedEvent(ActivityReactionUpdatedEvent)
+   case typeActivityReactionDeletedEvent(ActivityReactionDeletedEvent)
-   case typeActivityRemovedFromFeedEvent(ActivityRemovedFromFeedEvent)
+   case typeActivityReactionUpdatedEvent(ActivityReactionUpdatedEvent)
-   case typeActivityUnpinnedEvent(ActivityUnpinnedEvent)
+   case typeActivityRemovedFromFeedEvent(ActivityRemovedFromFeedEvent)
-   case typeActivityUpdatedEvent(ActivityUpdatedEvent)
+   case typeActivityUnpinnedEvent(ActivityUnpinnedEvent)
-   case typeBookmarkAddedEvent(BookmarkAddedEvent)
+   case typeActivityUpdatedEvent(ActivityUpdatedEvent)
-   case typeBookmarkDeletedEvent(BookmarkDeletedEvent)
+   case typeBookmarkAddedEvent(BookmarkAddedEvent)
-   case typeBookmarkUpdatedEvent(BookmarkUpdatedEvent)
+   case typeBookmarkDeletedEvent(BookmarkDeletedEvent)
-   case typeBookmarkFolderDeletedEvent(BookmarkFolderDeletedEvent)
+   case typeBookmarkUpdatedEvent(BookmarkUpdatedEvent)
-   case typeBookmarkFolderUpdatedEvent(BookmarkFolderUpdatedEvent)
+   case typeBookmarkFolderDeletedEvent(BookmarkFolderDeletedEvent)
-   case typeCommentAddedEvent(CommentAddedEvent)
+   case typeBookmarkFolderUpdatedEvent(BookmarkFolderUpdatedEvent)
-   case typeCommentDeletedEvent(CommentDeletedEvent)
+   case typeCommentAddedEvent(CommentAddedEvent)
-   case typeCommentReactionAddedEvent(CommentReactionAddedEvent)
+   case typeCommentDeletedEvent(CommentDeletedEvent)
-   case typeCommentReactionDeletedEvent(CommentReactionDeletedEvent)
+   case typeCommentReactionAddedEvent(CommentReactionAddedEvent)
-   case typeCommentReactionUpdatedEvent(CommentReactionUpdatedEvent)
+   case typeCommentReactionDeletedEvent(CommentReactionDeletedEvent)
-   case typeCommentUpdatedEvent(CommentUpdatedEvent)
+   case typeCommentReactionUpdatedEvent(CommentReactionUpdatedEvent)
-   case typeFeedCreatedEvent(FeedCreatedEvent)
+   case typeCommentUpdatedEvent(CommentUpdatedEvent)
-   case typeFeedDeletedEvent(FeedDeletedEvent)
+   case typeFeedCreatedEvent(FeedCreatedEvent)
-   case typeFeedUpdatedEvent(FeedUpdatedEvent)
+   case typeFeedDeletedEvent(FeedDeletedEvent)
-   case typeFeedGroupChangedEvent(FeedGroupChangedEvent)
+   case typeFeedUpdatedEvent(FeedUpdatedEvent)
-   case typeFeedGroupDeletedEvent(FeedGroupDeletedEvent)
+   case typeFeedGroupChangedEvent(FeedGroupChangedEvent)
-   case typeFeedMemberAddedEvent(FeedMemberAddedEvent)
+   case typeFeedGroupDeletedEvent(FeedGroupDeletedEvent)
-   case typeFeedMemberRemovedEvent(FeedMemberRemovedEvent)
+   case typeFeedMemberAddedEvent(FeedMemberAddedEvent)
-   case typeFeedMemberUpdatedEvent(FeedMemberUpdatedEvent)
+   case typeFeedMemberRemovedEvent(FeedMemberRemovedEvent)
-   case typeFollowCreatedEvent(FollowCreatedEvent)
+   case typeFeedMemberUpdatedEvent(FeedMemberUpdatedEvent)
-   case typeFollowDeletedEvent(FollowDeletedEvent)
+   case typeFollowCreatedEvent(FollowCreatedEvent)
-   case typeFollowUpdatedEvent(FollowUpdatedEvent)
+   case typeFollowDeletedEvent(FollowDeletedEvent)
-   case typeNotificationFeedUpdatedEvent(NotificationFeedUpdatedEvent)
+   case typeFollowUpdatedEvent(FollowUpdatedEvent)
-   case typePollClosedFeedEvent(PollClosedFeedEvent)
+   case typeNotificationFeedUpdatedEvent(NotificationFeedUpdatedEvent)
-   case typePollDeletedFeedEvent(PollDeletedFeedEvent)
+   case typePollClosedFeedEvent(PollClosedFeedEvent)
-   case typePollUpdatedFeedEvent(PollUpdatedFeedEvent)
+   case typePollDeletedFeedEvent(PollDeletedFeedEvent)
-   case typePollVoteCastedFeedEvent(PollVoteCastedFeedEvent)
+   case typePollUpdatedFeedEvent(PollUpdatedFeedEvent)
-   case typePollVoteChangedFeedEvent(PollVoteChangedFeedEvent)
+   case typePollVoteCastedFeedEvent(PollVoteCastedFeedEvent)
-   case typePollVoteRemovedFeedEvent(PollVoteRemovedFeedEvent)
+   case typePollVoteChangedFeedEvent(PollVoteChangedFeedEvent)
-   case typeHealthCheckEvent(HealthCheckEvent)
+   case typePollVoteRemovedFeedEvent(PollVoteRemovedFeedEvent)
-   case typeModerationCustomActionEvent(ModerationCustomActionEvent)
+   case typeStoriesFeedUpdatedEvent(StoriesFeedUpdatedEvent)
-   case typeModerationFlaggedEvent(ModerationFlaggedEvent)
+   case typeHealthCheckEvent(HealthCheckEvent)
-   case typeModerationMarkReviewedEvent(ModerationMarkReviewedEvent)
+   case typeModerationCustomActionEvent(ModerationCustomActionEvent)
-   case typeUserBannedEvent(UserBannedEvent)
+   case typeModerationMarkReviewedEvent(ModerationMarkReviewedEvent)
-   case typeUserDeactivatedEvent(UserDeactivatedEvent)
+   case typeUserUpdatedEvent(UserUpdatedEvent)
-   case typeUserMutedEvent(UserMutedEvent)
+   case typeUserBannedEvent(UserBannedEvent)
-   case typeUserReactivatedEvent(UserReactivatedEvent)
+   case typeUserDeactivatedEvent(UserDeactivatedEvent)
-   case typeUserUpdatedEvent(UserUpdatedEvent)
+   case typeUserMutedEvent(UserMutedEvent)
-   case typeConnectedEvent(ConnectedEvent)
+   case typeUserReactivatedEvent(UserReactivatedEvent)
-   case typeConnectionErrorEvent(ConnectionErrorEvent)
+   case typeConnectedEvent(ConnectedEvent)
-   
+   case typeConnectionErrorEvent(ConnectionErrorEvent)
- 
+   
-   public var type: String
+ 
-   public var rawValue: Event
+   public var type: String
-   
+   public var rawValue: Event
- 
+   
-   public init(from decoder: Decoder)throws 
+ 
-   
+   public init(from decoder: Decoder)throws 
- 
+   
-   public func encode(to encoder: Encoder)throws
+ 
+   public func encode(to encoder: Encoder)throws

 public final class BookmarkFolderList: Sendable  
-   public func queryMoreBookmarkFolders(limit: Int? = nil)async throws -> [BookmarkFolderData]
+   @discardableResult public func queryMoreBookmarkFolders(limit: Int? = nil)async throws -> [BookmarkFolderData]

 public struct ActivityReactionsSortField: SortField  
-   public static let createdAt
+   
-   
+ 
- 
+   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)
-   public init(_ rawValue: String,localValue: @escaping @Sendable (Model) -> Value)

- @MainActor public class MemberListState: ObservableObject  
+ @MainActor public final class MemberListState: ObservableObject, StateAccessing  

@sonarqubecloud
Copy link

@testableapple
Copy link
Contributor

/merge release

@testableapple
Copy link
Contributor

Publication of the release has been launched 👍

@github-actions github-actions bot merged commit e7f407b into main Nov 19, 2025
6 of 7 checks passed
@github-actions github-actions bot deleted the release/0.5.0 branch November 19, 2025 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants