From 51b41b123126c300bb426305805003c6100fc8dc Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 30 Oct 2025 14:44:43 +0100 Subject: [PATCH] feat: update to latest open api spec --- src/gen/feeds/FeedsApi.ts | 3 - src/gen/model-decoders/decoders.ts | 90 ++++++++- src/gen/models/index.ts | 273 +++++++++++++++++++++++++--- src/gen/moderation/ModerationApi.ts | 2 + 4 files changed, 325 insertions(+), 43 deletions(-) diff --git a/src/gen/feeds/FeedsApi.ts b/src/gen/feeds/FeedsApi.ts index 8279783..6f27e34 100644 --- a/src/gen/feeds/FeedsApi.ts +++ b/src/gen/feeds/FeedsApi.ts @@ -342,9 +342,6 @@ export class FeedsApi { }; const body = { hide: request?.hide, - mute_user: request?.mute_user, - reason: request?.reason, - report: request?.report, show_less: request?.show_less, show_more: request?.show_more, user_id: request?.user_id, diff --git a/src/gen/model-decoders/decoders.ts b/src/gen/model-decoders/decoders.ts index fdcf3c3..787e3db 100644 --- a/src/gen/model-decoders/decoders.ts +++ b/src/gen/model-decoders/decoders.ts @@ -87,6 +87,17 @@ decoders.ActivityDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ActivityFeedbackEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ActivityMarkEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1261,7 +1272,7 @@ decoders.ChannelMember = (input?: Record) => { pinned_at: { type: 'DatetimeType', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; @@ -1277,6 +1288,29 @@ decoders.ChannelMemberLookup = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ChannelMemberResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + archived_at: { type: 'DatetimeType', isSingle: true }, + + ban_expires: { type: 'DatetimeType', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + invite_accepted_at: { type: 'DatetimeType', isSingle: true }, + + invite_rejected_at: { type: 'DatetimeType', isSingle: true }, + + pinned_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ChannelMute = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1322,7 +1356,7 @@ decoders.ChannelResponse = (input?: Record) => { truncated_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'ChannelMember', isSingle: false }, + members: { type: 'ChannelMemberResponse', isSingle: false }, config: { type: 'ChannelConfigWithInfo', isSingle: true }, @@ -1335,7 +1369,7 @@ decoders.ChannelResponse = (input?: Record) => { decoders.ChannelStateResponse = (input?: Record) => { const typeMappings: TypeMapping = { - members: { type: 'ChannelMember', isSingle: false }, + members: { type: 'ChannelMemberResponse', isSingle: false }, messages: { type: 'MessageResponse', isSingle: false }, @@ -1360,7 +1394,7 @@ decoders.ChannelStateResponse = (input?: Record) => { draft: { type: 'DraftResponse', isSingle: true }, - membership: { type: 'ChannelMember', isSingle: true }, + membership: { type: 'ChannelMemberResponse', isSingle: true }, push_preferences: { type: 'ChannelPushPreferences', isSingle: true }, }; @@ -1369,7 +1403,7 @@ decoders.ChannelStateResponse = (input?: Record) => { decoders.ChannelStateResponseFields = (input?: Record) => { const typeMappings: TypeMapping = { - members: { type: 'ChannelMember', isSingle: false }, + members: { type: 'ChannelMemberResponse', isSingle: false }, messages: { type: 'MessageResponse', isSingle: false }, @@ -1394,7 +1428,7 @@ decoders.ChannelStateResponseFields = (input?: Record) => { draft: { type: 'DraftResponse', isSingle: true }, - membership: { type: 'ChannelMember', isSingle: true }, + membership: { type: 'ChannelMemberResponse', isSingle: true }, push_preferences: { type: 'ChannelPushPreferences', isSingle: true }, }; @@ -2009,6 +2043,23 @@ decoders.FeedResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.FeedSuggestionResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + own_follows: { type: 'FollowResponse', isSingle: false }, + + own_membership: { type: 'FeedMemberResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.FeedUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2293,7 +2344,7 @@ decoders.GetFeedViewResponse = (input?: Record) => { decoders.GetFollowSuggestionsResponse = (input?: Record) => { const typeMappings: TypeMapping = { - suggestions: { type: 'FeedResponse', isSingle: false }, + suggestions: { type: 'FeedSuggestionResponse', isSingle: false }, }; return decode(typeMappings, input); }; @@ -2599,7 +2650,7 @@ decoders.MemberUpdatedEvent = (input?: Record) => { decoders.MembersResponse = (input?: Record) => { const typeMappings: TypeMapping = { - members: { type: 'ChannelMember', isSingle: false }, + members: { type: 'ChannelMemberResponse', isSingle: false }, }; return decode(typeMappings, input); }; @@ -2794,6 +2845,8 @@ decoders.MessageResponse = (input?: Record) => { draft: { type: 'DraftResponse', isSingle: true }, + member: { type: 'ChannelMemberResponse', isSingle: true }, + pinned_by: { type: 'UserResponse', isSingle: true }, poll: { type: 'PollResponseData', isSingle: true }, @@ -2883,6 +2936,8 @@ decoders.MessageWithChannelResponse = (input?: Record) => { draft: { type: 'DraftResponse', isSingle: true }, + member: { type: 'ChannelMemberResponse', isSingle: true }, + pinned_by: { type: 'UserResponse', isSingle: true }, poll: { type: 'PollResponseData', isSingle: true }, @@ -3742,6 +3797,10 @@ decoders.ReviewQueueItemResponse = (input?: Record) => { feeds_v2_reaction: { type: 'Reaction', isSingle: true }, + feeds_v3_activity: { type: 'ActivityResponse', isSingle: true }, + + feeds_v3_comment: { type: 'CommentResponse', isSingle: true }, + message: { type: 'MessageResponse', isSingle: true }, reaction: { type: 'Reaction', isSingle: true }, @@ -3808,6 +3867,8 @@ decoders.SearchResultMessage = (input?: Record) => { draft: { type: 'DraftResponse', isSingle: true }, + member: { type: 'ChannelMemberResponse', isSingle: true }, + pinned_by: { type: 'UserResponse', isSingle: true }, poll: { type: 'PollResponseData', isSingle: true }, @@ -4190,6 +4251,8 @@ decoders.UpdateCallTypeResponse = (input?: Record) => { decoders.UpdateChannelPartialResponse = (input?: Record) => { const typeMappings: TypeMapping = { + members: { type: 'ChannelMemberResponse', isSingle: false }, + channel: { type: 'ChannelResponse', isSingle: true }, }; return decode(typeMappings, input); @@ -4197,7 +4260,7 @@ decoders.UpdateChannelPartialResponse = (input?: Record) => { decoders.UpdateChannelResponse = (input?: Record) => { const typeMappings: TypeMapping = { - members: { type: 'ChannelMember', isSingle: false }, + members: { type: 'ChannelMemberResponse', isSingle: false }, channel: { type: 'ChannelResponse', isSingle: true }, @@ -4266,6 +4329,13 @@ decoders.UpdateFollowResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UpdateMemberPartialResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + channel_member: { type: 'ChannelMemberResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UpdateMembershipLevelResponse = (input?: Record) => { const typeMappings: TypeMapping = { membership_level: { type: 'MembershipLevelResponse', isSingle: true }, @@ -4595,7 +4665,7 @@ decoders.WSEvent = (input?: Record) => { me: { type: 'OwnUserResponse', isSingle: true }, - member: { type: 'ChannelMember', isSingle: true }, + member: { type: 'ChannelMemberResponse', isSingle: true }, message: { type: 'MessageResponse', isSingle: true }, diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index a375cfd..a99a207 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -278,14 +278,36 @@ export interface ActivityDeletedEvent { user?: UserResponseCommonFields; } -export interface ActivityFeedbackRequest { - hide?: boolean; +export interface ActivityFeedbackEvent { + created_at: Date; - mute_user?: boolean; + activity_feedback: ActivityFeedbackEventPayload; - reason?: string; + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface ActivityFeedbackEventPayload { + action: 'hide' | 'show_more' | 'show_less'; - report?: boolean; + activity_id: string; + + created_at: Date; + + updated_at: Date; + + value: string; + + user: UserResponse; +} + +export interface ActivityFeedbackRequest { + hide?: boolean; show_less?: boolean; @@ -507,10 +529,14 @@ export interface ActivityResponse { created_at: Date; + hidden: boolean; + id: string; popularity: number; + preview: boolean; + reaction_count: number; score: number; @@ -555,10 +581,10 @@ export interface ActivityResponse { expires_at?: Date; - hidden?: boolean; - is_watched?: boolean; + moderation_action?: string; + text?: string; visibility_tag?: string; @@ -587,6 +613,8 @@ export interface ActivitySelectorConfig { cutoff_time?: string; + cutoff_window?: string; + min_popularity?: number; sort?: SortParamRequest[]; @@ -599,6 +627,8 @@ export interface ActivitySelectorConfigResponse { cutoff_time?: Date; + cutoff_window?: string; + min_popularity?: number; sort?: SortParamRequest[]; @@ -1298,6 +1328,10 @@ export interface BanResponse { user?: UserResponse; } +export interface BlockActionRequest { + reason?: string; +} + export interface BlockListConfig { async?: boolean; @@ -2303,6 +2337,22 @@ export interface CallStateResponseFields { call: CallResponse; } +export interface CallStatsLocation { + accuracy_radius_meters?: number; + + city?: string; + + continent?: string; + + country?: string; + + latitude?: number; + + longitude?: number; + + subdivision?: string; +} + export interface CallStatsParticipant { user_id: string; @@ -2332,15 +2382,33 @@ export interface CallStatsParticipantSession { published_tracks: PublishedTrackFlags; + browser?: string; + + browser_version?: string; + cq_score?: number; + current_ip?: string; + + current_sfu?: string; + + distance_to_sfu_kilometers?: number; + ended_at?: Date; publisher_type?: string; + sdk?: string; + + sdk_version?: string; + started_at?: Date; unified_session_id?: string; + + webrtc_version?: string; + + location?: CallStatsLocation; } export interface CallStatsReportReadyEvent { @@ -2428,15 +2496,15 @@ export interface CallTranscriptionStoppedEvent { } export interface CallType { - app_pk: number; + app: number; created_at: Date; - external_storage: string; + id: number; name: string; - pk: number; + recording_external_storage: string; updated_at: Date; @@ -2930,9 +2998,9 @@ export interface ChannelInput { truncated_by_id?: string; - invites?: ChannelMember[]; + invites?: ChannelMemberRequest[]; - members?: ChannelMember[]; + members?: ChannelMemberRequest[]; config_overrides?: ChannelConfig; @@ -2948,6 +3016,8 @@ export interface ChannelMember { created_at: Date; + is_global_banned: boolean; + notifications_muted: boolean; shadow_banned: boolean; @@ -2960,8 +3030,12 @@ export interface ChannelMember { ban_expires?: Date; + blocked?: boolean; + deleted_at?: Date; + hidden?: boolean; + invite_accepted_at?: Date; invite_rejected_at?: Date; @@ -2972,15 +3046,15 @@ export interface ChannelMember { pinned_at?: Date; - role?: 'member' | 'moderator' | 'admin' | 'owner'; - status?: string; user_id?: string; deleted_messages?: string[]; - user?: UserResponse; + channel?: DenormalizedChannelFields; + + user?: User; } export interface ChannelMemberLookup { @@ -3001,8 +3075,56 @@ export interface ChannelMemberLookup { pinned_at?: Date; } +export interface ChannelMemberRequest { + user_id: string; + + channel_role?: string; + + custom?: Record; + + user?: UserResponse; +} + export interface ChannelMemberResponse { + banned: boolean; + channel_role: string; + + created_at: Date; + + notifications_muted: boolean; + + shadow_banned: boolean; + + updated_at: Date; + + custom: Record; + + archived_at?: Date; + + ban_expires?: Date; + + deleted_at?: Date; + + invite_accepted_at?: Date; + + invite_rejected_at?: Date; + + invited?: boolean; + + is_moderator?: boolean; + + pinned_at?: Date; + + role?: 'member' | 'moderator' | 'admin' | 'owner'; + + status?: string; + + user_id?: string; + + deleted_messages?: string[]; + + user?: UserResponse; } export interface ChannelMessages { @@ -3124,7 +3246,7 @@ export interface ChannelResponse { truncated_at?: Date; - members?: ChannelMember[]; + members?: ChannelMemberResponse[]; own_capabilities?: ChannelOwnCapability[]; @@ -3138,7 +3260,7 @@ export interface ChannelResponse { export interface ChannelStateResponse { duration: string; - members: ChannelMember[]; + members: ChannelMemberResponse[]; messages: MessageResponse[]; @@ -3164,13 +3286,13 @@ export interface ChannelStateResponse { draft?: DraftResponse; - membership?: ChannelMember; + membership?: ChannelMemberResponse; push_preferences?: ChannelPushPreferences; } export interface ChannelStateResponseFields { - members: ChannelMember[]; + members: ChannelMemberResponse[]; messages: MessageResponse[]; @@ -3196,7 +3318,7 @@ export interface ChannelStateResponseFields { draft?: DraftResponse; - membership?: ChannelMember; + membership?: ChannelMemberResponse; push_preferences?: ChannelPushPreferences; } @@ -4433,6 +4555,12 @@ export interface DeleteCommentReactionResponse { reaction: FeedsReactionResponse; } +export interface DeleteCommentRequest { + hard_delete?: boolean; + + reason?: string; +} + export interface DeleteCommentResponse { duration: string; @@ -4569,6 +4697,30 @@ export interface DeliveryReceiptsResponse { enabled?: boolean; } +export interface DenormalizedChannelFields { + created_at?: string; + + created_by_id?: string; + + disabled?: boolean; + + frozen?: boolean; + + id?: string; + + last_message_at?: string; + + member_count?: number; + + team?: string; + + type?: string; + + updated_at?: string; + + custom?: Record; +} + export interface Device { created_at: Date; @@ -5014,7 +5166,7 @@ export interface FeedGroup { default_visibility: string; - id: string; + group_id: string; updated_at: Date; @@ -5297,6 +5449,52 @@ export interface FeedResponse { own_membership?: FeedMemberResponse; } +export interface FeedSuggestionResponse { + created_at: Date; + + description: string; + + feed: string; + + follower_count: number; + + following_count: number; + + group_id: string; + + id: string; + + member_count: number; + + name: string; + + pin_count: number; + + updated_at: Date; + + created_by: UserResponse; + + deleted_at?: Date; + + reason?: string; + + recommendation_score?: number; + + visibility?: string; + + filter_tags?: string[]; + + own_capabilities?: FeedOwnCapability[]; + + own_follows?: FollowResponse[]; + + algorithm_scores?: Record; + + custom?: Record; + + own_membership?: FeedMemberResponse; +} + export interface FeedUpdatedEvent { created_at: Date; @@ -6030,7 +6228,9 @@ export interface GetFeedsRateLimitsResponse { export interface GetFollowSuggestionsResponse { duration: string; - suggestions: FeedResponse[]; + suggestions: FeedSuggestionResponse[]; + + algorithm_used?: string; } export interface GetImportResponse { @@ -7006,7 +7206,7 @@ export interface MemberUpdatedEvent { export interface MembersResponse { duration: string; - members: ChannelMember[]; + members: ChannelMemberResponse[]; } export interface MembershipLevelResponse { @@ -8878,6 +9078,8 @@ export interface PushProvider { huawei_app_secret?: string; + huawei_host?: string; + xiaomi_app_secret?: string; xiaomi_package_name?: string; @@ -9472,7 +9674,7 @@ export interface QueryMembersPayload { user_id?: string; - members?: ChannelMember[]; + members?: ChannelMemberRequest[]; sort?: SortParamRequest[]; @@ -10426,6 +10628,10 @@ export interface ReviewQueueItemResponse { feeds_v2_reaction?: Reaction; + feeds_v3_activity?: ActivityResponse; + + feeds_v3_comment?: CommentResponse; + message?: MessageResponse; moderation_payload?: ModerationPayload; @@ -11254,6 +11460,7 @@ export interface SubmitActionRequest { | 'mark_reviewed' | 'delete_message' | 'delete_activity' + | 'delete_comment' | 'delete_reaction' | 'ban' | 'custom' @@ -11261,6 +11468,7 @@ export interface SubmitActionRequest { | 'restore' | 'delete_user' | 'unblock' + | 'block' | 'shadow_block' | 'unmask' | 'kick_user' @@ -11272,10 +11480,14 @@ export interface SubmitActionRequest { ban?: BanActionRequest; + block?: BlockActionRequest; + custom?: CustomActionRequest; delete_activity?: DeleteActivityRequest; + delete_comment?: DeleteCommentRequest; + delete_message?: DeleteMessageRequest; delete_reaction?: DeleteReactionRequest; @@ -12252,15 +12464,15 @@ export interface UpdateChannelRequest { user_id?: string; - add_members?: ChannelMember[]; + add_members?: ChannelMemberRequest[]; add_moderators?: string[]; - assign_roles?: ChannelMember[]; + assign_roles?: ChannelMemberRequest[]; demote_moderators?: string[]; - invites?: ChannelMember[]; + invites?: ChannelMemberRequest[]; remove_members?: string[]; @@ -12274,7 +12486,7 @@ export interface UpdateChannelRequest { export interface UpdateChannelResponse { duration: string; - members: ChannelMember[]; + members: ChannelMemberResponse[]; channel?: ChannelResponse; @@ -12978,7 +13190,7 @@ export interface UpsertPushTemplateRequest { | 'feeds.follow.created' | 'feeds.notification_feed.updated'; - push_provider_type: 'firebase' | 'apn'; + push_provider_type: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; enable_push?: boolean; @@ -13590,7 +13802,7 @@ export interface WSEvent { me?: OwnUserResponse; - member?: ChannelMember; + member?: ChannelMemberResponse; message?: MessageResponse; @@ -13701,6 +13913,7 @@ export type WebhookEvent = | ({ type: 'export.users.success' } & AsyncExportUsersEvent) | ({ type: 'feeds.activity.added' } & ActivityAddedEvent) | ({ type: 'feeds.activity.deleted' } & ActivityDeletedEvent) + | ({ type: 'feeds.activity.feedback' } & ActivityFeedbackEvent) | ({ type: 'feeds.activity.marked' } & ActivityMarkEvent) | ({ type: 'feeds.activity.pinned' } & ActivityPinnedEvent) | ({ type: 'feeds.activity.reaction.added' } & ActivityReactionAddedEvent) diff --git a/src/gen/moderation/ModerationApi.ts b/src/gen/moderation/ModerationApi.ts index 3a7c083..1ff0dfc 100644 --- a/src/gen/moderation/ModerationApi.ts +++ b/src/gen/moderation/ModerationApi.ts @@ -584,8 +584,10 @@ export class ModerationApi { item_id: request?.item_id, user_id: request?.user_id, ban: request?.ban, + block: request?.block, custom: request?.custom, delete_activity: request?.delete_activity, + delete_comment: request?.delete_comment, delete_message: request?.delete_message, delete_reaction: request?.delete_reaction, delete_user: request?.delete_user,