From d9642d550b526ec4dc97a3a5f40cc241d082ab33 Mon Sep 17 00:00:00 2001 From: Ale Mercado Date: Fri, 9 Oct 2026 13:24:44 -0600 Subject: [PATCH] fix(types): add missing file fields to ThreadBroadcastMessageEvent --- .changeset/thread-broadcast-file-fields.md | 5 ++ packages/types/src/events/message.ts | 4 ++ packages/types/test/events/message.test-d.ts | 60 +++++++++++++++++++- 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .changeset/thread-broadcast-file-fields.md diff --git a/.changeset/thread-broadcast-file-fields.md b/.changeset/thread-broadcast-file-fields.md new file mode 100644 index 000000000..aca9b7877 --- /dev/null +++ b/.changeset/thread-broadcast-file-fields.md @@ -0,0 +1,5 @@ +--- +"@slack/types": patch +--- + +fix: add the `files`, `upload`, `display_as_bot`, and `parent_user_id` fields to `ThreadBroadcastMessageEvent` diff --git a/packages/types/src/events/message.ts b/packages/types/src/events/message.ts index ddb09df4d..ee1a2500e 100644 --- a/packages/types/src/events/message.ts +++ b/packages/types/src/events/message.ts @@ -280,7 +280,11 @@ export interface ThreadBroadcastMessageEvent { text: string; attachments?: MessageAttachment[]; blocks?: (KnownBlock | Block)[]; + files?: File[]; + upload?: boolean; + display_as_bot?: boolean; user: string; + parent_user_id?: string; ts: string; thread_ts?: string; root: (GenericMessageEvent | BotMessageEvent) & { diff --git a/packages/types/test/events/message.test-d.ts b/packages/types/test/events/message.test-d.ts index 311f2d1b8..3e428fd2c 100644 --- a/packages/types/test/events/message.test-d.ts +++ b/packages/types/test/events/message.test-d.ts @@ -1,5 +1,10 @@ import { expectAssignable } from 'tsd'; -import type { GenericMessageEvent, MessageDeletedEvent, MessageEvent } from '../../src/index'; +import type { + GenericMessageEvent, + MessageDeletedEvent, + MessageEvent, + ThreadBroadcastMessageEvent, +} from '../../src/index'; const anyMessageEvent: GenericMessageEvent = { type: 'message', @@ -46,3 +51,56 @@ const messageWithAppContext: GenericMessageEvent = { }, }; expectAssignable(messageWithAppContext); + +// thread broadcasts with attached files include file-related fields (https://github.com/slackapi/node-slack-sdk/issues/2762) +const threadBroadcastWithFiles: ThreadBroadcastMessageEvent = { + type: 'message', + subtype: 'thread_broadcast', + channel_type: 'channel', + channel: 'C1234', + event_ts: '1234.57', + user: 'U1234', + ts: '1234.57', + thread_ts: '1234.56', + text: '', + client_msg_id: 'abc-123', + parent_user_id: 'U1234', + display_as_bot: false, + upload: false, + files: [ + { + id: 'F1234', + created: 1234, + name: 'image.png', + title: 'image.png', + mimetype: 'image/png', + filetype: 'png', + pretty_type: 'PNG', + user: 'U1234', + editable: false, + size: 1234, + mode: 'hosted', + is_external: false, + external_type: '', + is_public: true, + public_url_shared: false, + display_as_bot: false, + username: '', + url_private: 'https://files.slack.com/files-pri/T1234-F1234/image.png', + url_private_download: 'https://files.slack.com/files-pri/T1234-F1234/download/image.png', + permalink: 'https://example.slack.com/files/U1234/F1234/image.png', + permalink_public: 'https://slack-files.com/T1234-F1234-abc', + channels: null, + groups: null, + }, + ], + root: { + ...anyMessageEvent, + thread_ts: '1234.56', + reply_count: 1, + reply_users_count: 1, + latest_reply: '1234.57', + reply_users: ['U1234'], + }, +}; +expectAssignable(threadBroadcastWithFiles);