From 8c60c67c1c6a512203f3e805484fe5d4ed375ec0 Mon Sep 17 00:00:00 2001 From: kmitrovv Date: Tue, 16 Sep 2025 16:02:25 +0200 Subject: [PATCH 1/2] feat: add feed_visibility methods --- src/gen/chat/ChatApi.ts | 103 ++++++++----------------- src/gen/common/CommonApi.ts | 73 ++++++++++++++++++ src/gen/feeds/FeedsApi.ts | 31 ++++++++ src/gen/model-decoders/decoders.ts | 24 ++++++ src/gen/models/index.ts | 117 +++++++++++++++++++++++------ src/gen/video/VideoApi.ts | 1 + 6 files changed, 252 insertions(+), 97 deletions(-) diff --git a/src/gen/chat/ChatApi.ts b/src/gen/chat/ChatApi.ts index cd9cdca..738ae9e 100644 --- a/src/gen/chat/ChatApi.ts +++ b/src/gen/chat/ChatApi.ts @@ -29,7 +29,6 @@ import { GetDraftResponse, GetManyMessagesResponse, GetMessageResponse, - GetPushTemplatesResponse, GetReactionsResponse, GetRepliesResponse, GetSegmentResponse, @@ -114,10 +113,6 @@ import { UpdateReminderResponse, UpdateThreadPartialRequest, UpdateThreadPartialResponse, - UpsertPushPreferencesRequest, - UpsertPushPreferencesResponse, - UpsertPushTemplateRequest, - UpsertPushTemplateResponse, WrappedUnreadCountsResponse, } from '../models'; import { decoders } from '../model-decoders/decoders'; @@ -1404,6 +1399,36 @@ export class ChatApi { return { ...response.body, metadata: response.metadata }; } + async ephemeralMessageUpdate( + request: UpdateMessagePartialRequest & { id: string }, + ): Promise> { + const pathParams = { + id: request?.id, + }; + const body = { + skip_enrich_url: request?.skip_enrich_url, + user_id: request?.user_id, + unset: request?.unset, + set: request?.set, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/api/v2/chat/messages/{id}/ephemeral', + pathParams, + undefined, + body, + 'application/json', + ); + + decoders.UpdateMessagePartialResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async sendReaction( request: SendReactionRequest & { id: string }, ): Promise> { @@ -1823,74 +1848,6 @@ export class ChatApi { return { ...response.body, metadata: response.metadata }; } - async updatePushNotificationPreferences( - request: UpsertPushPreferencesRequest, - ): Promise> { - const body = { - preferences: request?.preferences, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v2/chat/push_preferences', - undefined, - undefined, - body, - 'application/json', - ); - - decoders.UpsertPushPreferencesResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getPushTemplates(request: { - push_provider_type: string; - push_provider_name?: string; - }): Promise> { - const queryParams = { - push_provider_type: request?.push_provider_type, - push_provider_name: request?.push_provider_name, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('GET', '/api/v2/chat/push_templates', undefined, queryParams); - - decoders.GetPushTemplatesResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async upsertPushTemplate( - request: UpsertPushTemplateRequest, - ): Promise> { - const body = { - event_type: request?.event_type, - push_provider_type: request?.push_provider_type, - enable_push: request?.enable_push, - push_provider_name: request?.push_provider_name, - template: request?.template, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v2/chat/push_templates', - undefined, - undefined, - body, - 'application/json', - ); - - decoders.UpsertPushTemplateResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async queryBannedUsers(request?: { payload?: QueryBannedUsersPayload; }): Promise> { diff --git a/src/gen/common/CommonApi.ts b/src/gen/common/CommonApi.ts index 15ecb35..075b207 100644 --- a/src/gen/common/CommonApi.ts +++ b/src/gen/common/CommonApi.ts @@ -42,6 +42,7 @@ import { GetCustomPermissionResponse, GetImportResponse, GetOGResponse, + GetPushTemplatesResponse, GetRateLimitsResponse, GetTaskResponse, ImageUploadRequest, @@ -83,8 +84,12 @@ import { UpdateUsersPartialRequest, UpdateUsersRequest, UpdateUsersResponse, + UpsertPushPreferencesRequest, + UpsertPushPreferencesResponse, UpsertPushProviderRequest, UpsertPushProviderResponse, + UpsertPushTemplateRequest, + UpsertPushTemplateResponse, } from '../models'; import { decoders } from '../model-decoders/decoders'; @@ -987,6 +992,29 @@ export class CommonApi { return { ...response.body, metadata: response.metadata }; } + async updatePushNotificationPreferences( + request: UpsertPushPreferencesRequest, + ): Promise> { + const body = { + preferences: request?.preferences, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/push_preferences', + undefined, + undefined, + body, + 'application/json', + ); + + decoders.UpsertPushPreferencesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async listPushProviders(): Promise< StreamResponse > { @@ -1043,6 +1071,51 @@ export class CommonApi { return { ...response.body, metadata: response.metadata }; } + async getPushTemplates(request: { + push_provider_type: string; + push_provider_name?: string; + }): Promise> { + const queryParams = { + push_provider_type: request?.push_provider_type, + push_provider_name: request?.push_provider_name, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/push_templates', undefined, queryParams); + + decoders.GetPushTemplatesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async upsertPushTemplate( + request: UpsertPushTemplateRequest, + ): Promise> { + const body = { + event_type: request?.event_type, + push_provider_type: request?.push_provider_type, + enable_push: request?.enable_push, + push_provider_name: request?.push_provider_name, + template: request?.template, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/push_templates', + undefined, + undefined, + body, + 'application/json', + ); + + decoders.UpsertPushTemplateResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async getRateLimits(request?: { server_side?: boolean; android?: boolean; diff --git a/src/gen/feeds/FeedsApi.ts b/src/gen/feeds/FeedsApi.ts index 62dd4ca..8e6d92c 100644 --- a/src/gen/feeds/FeedsApi.ts +++ b/src/gen/feeds/FeedsApi.ts @@ -49,6 +49,7 @@ import { GetCommentsResponse, GetFeedGroupResponse, GetFeedViewResponse, + GetFeedVisibilityResponse, GetFollowSuggestionsResponse, GetOrCreateFeedGroupRequest, GetOrCreateFeedGroupResponse, @@ -58,6 +59,7 @@ import { GetOrCreateFeedViewResponse, ListFeedGroupsResponse, ListFeedViewsResponse, + ListFeedVisibilitiesResponse, MarkActivityRequest, PinActivityRequest, PinActivityResponse, @@ -581,6 +583,7 @@ export class FeedsApi { user_id: request?.user_id, visibility: request?.visibility, attachments: request?.attachments, + feeds: request?.feeds, filter_tags: request?.filter_tags, interest_tags: request?.interest_tags, custom: request?.custom, @@ -1621,6 +1624,34 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async listFeedVisibilities(): Promise< + StreamResponse + > { + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/feeds/feed_visibilities', undefined, undefined); + + decoders.ListFeedVisibilitiesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getFeedVisibility(request: { + name: string; + }): Promise> { + const pathParams = { + name: request?.name, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/feeds/feed_visibilities/{name}', pathParams, undefined); + + decoders.GetFeedVisibilityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async createFeedsBatch( request: CreateFeedsBatchRequest, ): Promise> { diff --git a/src/gen/model-decoders/decoders.ts b/src/gen/model-decoders/decoders.ts index c6467c7..3ed3681 100644 --- a/src/gen/model-decoders/decoders.ts +++ b/src/gen/model-decoders/decoders.ts @@ -1157,6 +1157,8 @@ decoders.Channel = (input?: Record) => { created_by: { type: 'User', isSingle: true }, + members_lookup: { type: 'ChannelMemberLookup', isSingle: false }, + truncated_by: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); @@ -1239,6 +1241,17 @@ decoders.ChannelMember = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ChannelMemberLookup = (input?: Record) => { + const typeMappings: TypeMapping = { + archived_at: { type: 'DatetimeType', isSingle: true }, + + ban_expires: { type: 'DatetimeType', isSingle: true }, + + pinned_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ChannelMute = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1717,6 +1730,13 @@ decoders.DeleteCommentReactionResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.DeleteCommentResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comment: { type: 'CommentResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.DeleteMessageResponse = (input?: Record) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, @@ -2141,6 +2161,8 @@ decoders.GetCallReportResponse = (input?: Record) => { video_reactions: { type: 'VideoReactionsResponse', isSingle: false }, chat_activity: { type: 'ChatActivityStatsResponse', isSingle: true }, + + session: { type: 'CallSessionResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -2687,6 +2709,8 @@ decoders.MessageReadEvent = (input?: Record) => { channel_last_message_at: { type: 'DatetimeType', isSingle: true }, + channel: { type: 'ChannelResponse', isSingle: true }, + thread: { type: 'ThreadResponse', isSingle: true }, user: { type: 'UserResponseCommonFields', isSingle: true }, diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 0c921ec..ba7a5aa 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -805,8 +805,6 @@ export interface AggregatedActivityResponse { user_count: number; - user_count_truncated: boolean; - activities: ActivityResponse[]; } @@ -1821,6 +1819,10 @@ export interface CallHLSBroadcastingStoppedEvent { export interface CallIngressResponse { rtmp: RTMPIngress; + + srt: SRTIngress; + + whip: WHIPIngress; } export interface CallLiveStartedEvent { @@ -2144,6 +2146,8 @@ export interface CallResponse { transcribing: boolean; + translating: boolean; + type: string; updated_at: Date; @@ -2317,6 +2321,8 @@ export interface CallSessionParticipantLeftEvent { participant: CallParticipantResponse; type: string; + + reason?: string; } export interface CallSessionResponse { @@ -2792,6 +2798,8 @@ export interface Channel { created_by?: User; + members_lookup?: Record; + truncated_by?: User; } @@ -3085,6 +3093,22 @@ export interface ChannelMember { user?: UserResponse; } +export interface ChannelMemberLookup { + archived: boolean; + + banned: boolean; + + hidden: boolean; + + pinned: boolean; + + archived_at?: Date; + + ban_expires?: Date; + + pinned_at?: Date; +} + export interface ChannelMemberResponse { channel_role: string; } @@ -4498,6 +4522,8 @@ export interface DeleteCommentReactionResponse { export interface DeleteCommentResponse { duration: string; + + comment: CommentResponse; } export interface DeleteExternalStorageResponse { @@ -4509,8 +4535,6 @@ export interface DeleteFeedGroupResponse { } export interface DeleteFeedResponse { - delete_feed_task_id: string; - duration: string; task_id: string; @@ -5338,35 +5362,34 @@ export interface FeedMemberUpdatedEvent { export const FeedOwnCapability = { ADD_ACTIVITY: 'add-activity', + ADD_ACTIVITY_BOOKMARK: 'add-activity-bookmark', ADD_ACTIVITY_REACTION: 'add-activity-reaction', ADD_COMMENT: 'add-comment', ADD_COMMENT_REACTION: 'add-comment-reaction', - BOOKMARK_ACTIVITY: 'bookmark-activity', CREATE_FEED: 'create-feed', - DELETE_BOOKMARK: 'delete-bookmark', - DELETE_COMMENT: 'delete-comment', + DELETE_ANY_ACTIVITY: 'delete-any-activity', + DELETE_ANY_COMMENT: 'delete-any-comment', DELETE_FEED: 'delete-feed', - EDIT_BOOKMARK: 'edit-bookmark', + DELETE_OWN_ACTIVITY: 'delete-own-activity', + DELETE_OWN_ACTIVITY_BOOKMARK: 'delete-own-activity-bookmark', + DELETE_OWN_ACTIVITY_REACTION: 'delete-own-activity-reaction', + DELETE_OWN_COMMENT: 'delete-own-comment', + DELETE_OWN_COMMENT_REACTION: 'delete-own-comment-reaction', FOLLOW: 'follow', - INVITE_FEED: 'invite-feed', - JOIN_FEED: 'join-feed', - LEAVE_FEED: 'leave-feed', - MANAGE_FEED_GROUP: 'manage-feed-group', - MARK_ACTIVITY: 'mark-activity', PIN_ACTIVITY: 'pin-activity', QUERY_FEED_MEMBERS: 'query-feed-members', QUERY_FOLLOWS: 'query-follows', READ_ACTIVITIES: 'read-activities', READ_FEED: 'read-feed', - REMOVE_ACTIVITY: 'remove-activity', - REMOVE_ACTIVITY_REACTION: 'remove-activity-reaction', - REMOVE_COMMENT_REACTION: 'remove-comment-reaction', UNFOLLOW: 'unfollow', - UPDATE_ACTIVITY: 'update-activity', - UPDATE_COMMENT: 'update-comment', + UPDATE_ANY_ACTIVITY: 'update-any-activity', + UPDATE_ANY_COMMENT: 'update-any-comment', UPDATE_FEED: 'update-feed', UPDATE_FEED_FOLLOWERS: 'update-feed-followers', UPDATE_FEED_MEMBERS: 'update-feed-members', + UPDATE_OWN_ACTIVITY: 'update-own-activity', + UPDATE_OWN_ACTIVITY_BOOKMARK: 'update-own-activity-bookmark', + UPDATE_OWN_COMMENT: 'update-own-comment', } as const; // eslint-disable-next-line @typescript-eslint/no-redeclare @@ -5461,6 +5484,14 @@ export interface FeedViewResponse { ranking?: RankingConfig; } +export interface FeedVisibilityResponse { + description: string; + + name: string; + + grants: Record; +} + export interface FeedsModerationTemplateConfig { config_key: string; @@ -5468,15 +5499,15 @@ export interface FeedsModerationTemplateConfig { } export interface FeedsPreferences { - comment?: string; + comment?: 'all' | 'none'; - comment_reaction?: string; + comment_reaction?: 'all' | 'none'; - follow?: string; + follow?: 'all' | 'none'; - mention?: string; + mention?: 'all' | 'none'; - reaction?: string; + reaction?: 'all' | 'none'; custom_activity_types?: Record; } @@ -5935,6 +5966,8 @@ export interface GetCallReportResponse { video_reactions?: VideoReactionsResponse[]; chat_activity?: ChatActivityStatsResponse; + + session?: CallSessionResponse; } export interface GetCallResponse { @@ -6125,6 +6158,12 @@ export interface GetFeedViewResponse { feed_view: FeedViewResponse; } +export interface GetFeedVisibilityResponse { + duration: string; + + feed_visibility: FeedVisibilityResponse; +} + export interface GetFollowSuggestionsResponse { duration: string; @@ -6905,6 +6944,12 @@ export interface ListFeedViewsResponse { views: Record; } +export interface ListFeedVisibilitiesResponse { + duration: string; + + feed_visibilities: Record; +} + export interface ListImportsResponse { duration: string; @@ -7374,6 +7419,8 @@ export interface MessageReadEvent { team?: string; + channel?: ChannelResponse; + thread?: ThreadResponse; user?: UserResponseCommonFields; @@ -10533,6 +10580,10 @@ export interface SFUIDLastSeen { process_start_time: number; } +export interface SRTIngress { + address: string; +} + export interface STTEgressConfig { closed_captions_enabled?: boolean; @@ -11564,6 +11615,8 @@ export interface TranscriptionSettings { mode: 'available' | 'disabled' | 'auto-on'; speech_segment_config?: SpeechSegmentConfig; + + translation?: TranslationSettings; } export interface TranscriptionSettingsRequest { @@ -11611,6 +11664,8 @@ export interface TranscriptionSettingsRequest { mode?: 'available' | 'disabled' | 'auto-on'; speech_segment_config?: SpeechSegmentConfig; + + translation?: TranslationSettings; } export interface TranscriptionSettingsResponse { @@ -11658,6 +11713,8 @@ export interface TranscriptionSettingsResponse { mode: 'available' | 'disabled' | 'auto-on'; speech_segment_config?: SpeechSegmentConfig; + + translation?: TranslationSettings; } export interface TranslateMessageRequest { @@ -11721,6 +11778,12 @@ export interface TranslateMessageRequest { | 'ht'; } +export interface TranslationSettings { + enabled: boolean; + + languages: string[]; +} + export interface TruncateChannelRequest { hard_delete?: boolean; @@ -11936,6 +11999,8 @@ export interface UpdateActivityRequest { attachments?: Attachment[]; + feeds?: string[]; + filter_tags?: string[]; interest_tags?: string[]; @@ -12820,7 +12885,7 @@ export interface UpsertPushPreferencesResponse { user_channel_preferences: Record< string, - Record + Record >; user_preferences: Record; @@ -13418,6 +13483,10 @@ export interface VoteData { option_id?: string; } +export interface WHIPIngress { + address: string; +} + export interface WSEvent { created_at: Date; diff --git a/src/gen/video/VideoApi.ts b/src/gen/video/VideoApi.ts index f33346b..597da1b 100644 --- a/src/gen/video/VideoApi.ts +++ b/src/gen/video/VideoApi.ts @@ -791,6 +791,7 @@ export class VideoApi { enable_transcription: request?.enable_transcription, external_storage: request?.external_storage, language: request?.language, + speech_segment_config: request?.speech_segment_config, }; const response = await this.apiClient.sendRequest< From ea086b6dce03ad49a5834b9c35aea549a3d807ce Mon Sep 17 00:00:00 2001 From: kmitrovv Date: Tue, 16 Sep 2025 16:30:56 +0200 Subject: [PATCH 2/2] feat: latest from backend --- src/gen/model-decoders/decoders.ts | 2 + src/gen/models/index.ts | 60 ++++++++++++++++++++++-------- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/src/gen/model-decoders/decoders.ts b/src/gen/model-decoders/decoders.ts index 3ed3681..8cbc11a 100644 --- a/src/gen/model-decoders/decoders.ts +++ b/src/gen/model-decoders/decoders.ts @@ -1732,6 +1732,8 @@ decoders.DeleteCommentReactionResponse = (input?: Record) => { decoders.DeleteCommentResponse = (input?: Record) => { const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, }; return decode(typeMappings, input); diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index ba7a5aa..0026b5e 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -587,7 +587,7 @@ export interface ActivityResponse { moderation?: ModerationV2Response; - notification_context?: Record; + notification_context?: NotificationContext; parent?: ActivityResponse; @@ -805,6 +805,8 @@ export interface AggregatedActivityResponse { user_count: number; + user_count_truncated: boolean; + activities: ActivityResponse[]; } @@ -4523,6 +4525,8 @@ export interface DeleteCommentReactionResponse { export interface DeleteCommentResponse { duration: string; + activity: ActivityResponse; + comment: CommentResponse; } @@ -5593,33 +5597,29 @@ export interface FirebaseConfigFields { export interface Flag { created_at: Date; - entity_id: string; - - entity_type: string; + created_by_automod: boolean; updated_at: Date; - result: Array>; - - entity_creator_id?: string; - - is_streamed_content?: boolean; - - moderation_payload_hash?: string; + approved_at?: Date; reason?: string; - review_queue_item_id?: string; + rejected_at?: Date; - type?: string; + reviewed_at?: Date; - labels?: string[]; + reviewed_by?: string; + + target_message_id?: string; custom?: Record; - moderation_payload?: ModerationPayload; + details?: FlagDetails; - review_queue_item?: ReviewQueueItem; + target_message?: Message; + + target_user?: User; user?: User; } @@ -7817,6 +7817,8 @@ export interface ModerationCustomActionEvent { } export interface ModerationDashboardPreferences { + disable_flagging_reviewed_entity?: boolean; + flag_user_on_flagged_content?: boolean; media_queue_blur_enabled?: boolean; @@ -8026,6 +8028,12 @@ export interface NotificationConfig { track_seen?: boolean; } +export interface NotificationContext { + target?: NotificationTarget; + + trigger?: NotificationTrigger; +} + export interface NotificationFeedUpdatedEvent { created_at: Date; @@ -8112,6 +8120,26 @@ export interface NotificationStatusResponse { seen_activities?: string[]; } +export interface NotificationTarget { + id: string; + + name?: string; + + text?: string; + + type?: string; + + user_id?: string; + + attachments?: Attachment[]; +} + +export interface NotificationTrigger { + text: string; + + type: string; +} + export interface NullTime {} export interface OCRRule {