diff --git a/src/types.ts b/src/types.ts index bf7c1b3a9..2b325a5c5 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1018,7 +1018,7 @@ export type UpdateChannelOptions = { remove_members?: string[]; user?: UserResponse; user_id?: string; -}; +} & ChannelConfigWithInfo; export type MarkChannelsReadOptions = { client_id?: string; @@ -1461,11 +1461,18 @@ export type ReactionFilters = QueryFilters< export type ChannelFilters = QueryFilters< ContainsOperator & { + archived?: boolean; + 'member.user.name'?: + | RequireOnlyOne<{ + $autocomplete?: string; + $eq?: string; + }> + | string; + members?: | RequireOnlyOne, '$in'>> | RequireOnlyOne, '$eq'>> | PrimitiveFilter; - } & { name?: | RequireOnlyOne< { @@ -1473,13 +1480,11 @@ export type ChannelFilters = QueryFilters< } & QueryFilter > | PrimitiveFilter; + pinned?: boolean; } & { [Key in keyof Omit]: | RequireOnlyOne> | PrimitiveFilter; - } & { - archived?: boolean; - pinned?: boolean; } >; @@ -1591,6 +1596,13 @@ export type ContainsOperator = { export type MessageFilters = QueryFilters< ContainsOperator & { + 'attachments.type'?: + | RequireOnlyOne<{ + $eq: PrimitiveFilter; + $in: PrimitiveFilter[]; + }> + | PrimitiveFilter; + 'mentioned_users.id'?: RequireOnlyOne<{ $contains: PrimitiveFilter }>; text?: | RequireOnlyOne< { @@ -1599,6 +1611,13 @@ export type MessageFilters = QueryFilters< } & QueryFilter > | PrimitiveFilter; + 'user.id'?: + | RequireOnlyOne< + { + $autocomplete?: UserResponse['id']; + } & QueryFilter + > + | PrimitiveFilter; } & { [Key in keyof Omit]?: | RequireOnlyOne> @@ -1693,6 +1712,9 @@ export type MemberFilters = QueryFilters< }> | UserResponse['id']; invite?: { $eq?: ChannelMemberResponse['status'] } | ChannelMemberResponse['status']; + is_moderator?: + | RequireOnlyOne<{ $eq?: ChannelMemberResponse['is_moderator'] }> + | ChannelMemberResponse['is_moderator']; joined?: { $eq?: boolean } | boolean; last_active?: | { @@ -1711,6 +1733,9 @@ export type MemberFilters = QueryFilters< $q?: NonNullable['name']; }> | PrimitiveFilter['name']>; + notifications_muted?: + | RequireOnlyOne<{ $eq?: ChannelMemberResponse['notifications_muted'] }> + | ChannelMemberResponse['notifications_muted']; updated_at?: | { $eq?: ChannelMemberResponse['updated_at']; @@ -1732,7 +1757,7 @@ export type MemberFilters = QueryFilters< $eq?: ChannelMemberResponse['user_id']; $in?: ChannelMemberResponse['user_id'][]; }> - | PrimitiveFilter['id'][]>; + | PrimitiveFilter; } & { [Key in keyof ContainsOperator]?: | RequireOnlyOne[Key]>> @@ -1956,6 +1981,7 @@ export type Attachment = CustomAttachmentData & { original_height?: number; original_width?: number; pretext?: string; + stopped_sharing?: boolean; text?: string; thumb_url?: string; title?: string; @@ -1990,15 +2016,13 @@ export type ChannelConfig = ChannelConfigFields & commands?: CommandVariants[]; }; -export type ChannelConfigAutomod = '' | 'AI' | 'disabled' | 'simple'; +export type ChannelConfigAutomod = 'AI' | 'disabled' | 'simple' | (string & {}); -export type ChannelConfigAutomodBehavior = '' | 'block' | 'flag'; +export type ChannelConfigAutomodBehavior = 'block' | 'flag' | (string & {}); -export type ChannelConfigAutomodThresholds = null | { - explicit?: { block?: number; flag?: number }; - spam?: { block?: number; flag?: number }; - toxic?: { block?: number; flag?: number }; -}; +export type ChannelConfigAutomodThresholds = null | Partial< + Record<'explicit' | 'spam' | 'toxic', { block?: number; flag?: number }> +>; export type ChannelConfigFields = { reminders: boolean; @@ -2283,13 +2307,15 @@ export type EndpointName = | 'ListPushProviders' | 'CreatePoll'; -export type ExportChannelRequest = { - id: string; - type: string; - cid?: string; - messages_since?: Date; - messages_until?: Date; -}; +export type ExportChannelRequest = ( + | { + id: string; + type: string; + } + | { + cid: string; + } +) & { messages_since?: Date; messages_until?: Date }; export type ExportChannelOptions = { clear_deleted_message_text?: boolean; @@ -2628,7 +2654,10 @@ export type ReservedMessageFields = | 'updated_at' | 'user'; -export type UpdatedMessage = Omit & { mentioned_users?: string[] }; +export type UpdatedMessage = Omit & { + mentioned_users?: string[]; + type?: MessageLabel; +}; export type User = CustomUserData & { id: string; @@ -2953,6 +2982,7 @@ export type UpdatePollAPIResponse = { export type PollResponse = CustomPollData & PollEnrichData & { + cid: string; created_at: string; created_by: UserResponse | null; created_by_id: string;