diff --git a/extensions/telegram/src/bot/helpers.ts b/extensions/telegram/src/bot/helpers.ts index af1b2259ec9..3d5037f153f 100644 --- a/extensions/telegram/src/bot/helpers.ts +++ b/extensions/telegram/src/bot/helpers.ts @@ -19,10 +19,10 @@ export type TelegramThreadSpec = { }; export function extractTelegramForumFlag(value: unknown): boolean | undefined { - if (!value || typeof value !== "object") { + if (!value || typeof value !== "object" || !("is_forum" in value)) { return undefined; } - const forum = (value as { is_forum?: unknown }).is_forum; + const forum = value.is_forum; return typeof forum === "boolean" ? forum : undefined; } diff --git a/extensions/telegram/src/inline-buttons.ts b/extensions/telegram/src/inline-buttons.ts index d90bc4bdb14..79afda55113 100644 --- a/extensions/telegram/src/inline-buttons.ts +++ b/extensions/telegram/src/inline-buttons.ts @@ -21,13 +21,17 @@ function normalizeInlineButtonsScope(value: unknown): TelegramInlineButtonsScope return undefined; } +function readInlineButtonsCapability(value: unknown): unknown { + if (!value || Array.isArray(value) || typeof value !== "object" || !("inlineButtons" in value)) { + return undefined; + } + return value.inlineButtons; +} + export function resolveTelegramInlineButtonsConfigScope( capabilities: unknown, ): TelegramInlineButtonsScope | undefined { - if (!capabilities || Array.isArray(capabilities) || typeof capabilities !== "object") { - return undefined; - } - return normalizeInlineButtonsScope((capabilities as { inlineButtons?: unknown }).inlineButtons); + return normalizeInlineButtonsScope(readInlineButtonsCapability(capabilities)); } export function resolveTelegramInlineButtonsScopeFromCapabilities(