diff --git a/src/poll.ts b/src/poll.ts index 93480c588..906a32429 100644 --- a/src/poll.ts +++ b/src/poll.ts @@ -208,7 +208,7 @@ export class Poll { ]; ownAnswer = event.poll_vote; } else if (event.poll_vote.option_id) { - if (event.poll.enforce_unique_votes) { + if (event.poll.enforce_unique_vote) { ownVotesByOptionId = { [event.poll_vote.option_id]: event.poll_vote }; } else { ownVotesByOptionId = Object.entries(ownVotesByOptionId).reduce< diff --git a/src/thread.ts b/src/thread.ts index 844f04980..59b3b9a06 100644 --- a/src/thread.ts +++ b/src/thread.ts @@ -122,6 +122,7 @@ export class Thread { threadData: ThreadResponse; }) { const channel = client.channel(threadData.channel.type, threadData.channel.id, { + // @ts-expect-error name is a "custom" property name: threadData.channel.name, }); channel._hydrateMembers({ diff --git a/src/types.ts b/src/types.ts index 7f119038c..aa8f2c5d6 100644 --- a/src/types.ts +++ b/src/types.ts @@ -267,8 +267,10 @@ export type ChannelResponse = CustomChannelData & { frozen: boolean; id: string; type: string; + blocked?: boolean; auto_translation_enabled?: boolean; - auto_translation_language?: TranslationLanguages | ''; + auto_translation_language?: TranslationLanguages; + hide_messages_before?: string; config?: ChannelConfigWithInfo; cooldown?: number; created_at?: string; @@ -282,7 +284,7 @@ export type ChannelResponse = CustomChannelData & { member_count?: number; members?: ChannelMemberResponse[]; muted?: boolean; - name?: string; // FIXME: I believe this property should live in CustomChannelData + mute_expires_at?: string; own_capabilities?: string[]; team?: string; truncated_at?: string; @@ -1668,10 +1670,10 @@ export type ChannelFilters = QueryFilters< name?: | RequireOnlyOne< { - $autocomplete?: ChannelResponse['name']; - } & QueryFilter + $autocomplete?: string; + } & QueryFilter > - | PrimitiveFilter; + | PrimitiveFilter; pinned?: boolean; } & { [Key in keyof Omit]: @@ -2294,13 +2296,13 @@ export type ChannelConfigWithInfo = ChannelConfigFields & commands?: CommandResponse[]; }; -export type ChannelData = CustomChannelData & { - blocked?: boolean; - created_by?: UserResponse | null; - created_by_id?: UserResponse['id']; - members?: string[] | Array; - name?: string; -}; +export type ChannelData = CustomChannelData & + Partial<{ + blocked: boolean; + created_by: UserResponse | null; + created_by_id: UserResponse['id']; + members: string[] | Array; + }>; export type ChannelMute = { user: UserResponse; @@ -2831,7 +2833,6 @@ export type TokenOrProvider = null | string | TokenProvider | undefined; export type TokenProvider = () => Promise; export type TranslationLanguages = - | '' | 'af' | 'am' | 'ar' @@ -2887,7 +2888,8 @@ export type TranslationLanguages = | 'ur' | 'vi' | 'zh' - | 'zh-TW'; + | 'zh-TW' + | (string & {}); export type TypingStartEvent = Event; @@ -3248,7 +3250,6 @@ export type UpdatePollAPIResponse = { export type PollResponse = CustomPollData & PollEnrichData & { - cid: string; created_at: string; created_by: UserResponse | null; created_by_id: string; @@ -3261,7 +3262,6 @@ export type PollResponse = CustomPollData & allow_answers?: boolean; allow_user_suggested_options?: boolean; description?: string; - enforce_unique_votes?: boolean; is_closed?: boolean; voting_visibility?: VotingVisibility; };