export function normalizeTelegramMessagingTarget(raw: string): string | undefined { const trimmed = raw.trim(); if (!trimmed) return undefined; let normalized = trimmed; if (normalized.startsWith("telegram:")) { normalized = normalized.slice("telegram:".length).trim(); } else if (normalized.startsWith("tg:")) { normalized = normalized.slice("tg:".length).trim(); } if (!normalized) return undefined; const tmeMatch = /^https?:\/\/t\.me\/([A-Za-z0-9_]+)$/i.exec(normalized) ?? /^t\.me\/([A-Za-z0-9_]+)$/i.exec(normalized); if (tmeMatch?.[1]) normalized = `@${tmeMatch[1]}`; if (!normalized) return undefined; return `telegram:${normalized}`.toLowerCase(); } export function looksLikeTelegramTargetId(raw: string): boolean { const trimmed = raw.trim(); if (!trimmed) return false; if (/^(telegram|tg):/i.test(trimmed)) return true; if (trimmed.startsWith("@")) return true; return /^-?\d{6,}$/.test(trimmed); }