Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import type { MsgContext } from "../auto-reply/templating.js";
import { normalizeOptionalString } from "../shared/string-coerce.js";
import { normalizeChatType } from "./chat-type.js";
export function validateSenderIdentity(ctx: MsgContext): string[] {
const issues: string[] = [];
const chatType = normalizeChatType(ctx.ChatType);
const isDirect = chatType === "direct";
const senderId = normalizeOptionalString(ctx.SenderId) || "";
const senderName = normalizeOptionalString(ctx.SenderName) || "";
const senderUsername = normalizeOptionalString(ctx.SenderUsername) || "";
const senderE164 = normalizeOptionalString(ctx.SenderE164) || "";
if (!isDirect) {
if (!senderId && !senderName && !senderUsername && !senderE164) {
issues.push("missing sender identity (SenderId/SenderName/SenderUsername/SenderE164)");
}
}
if (senderE164) {
if (!/^\+\d{3,}$/.test(senderE164)) {
issues.push(`invalid SenderE164: ${senderE164}`);
}
}
if (senderUsername) {
if (senderUsername.includes("@")) {
issues.push(`SenderUsername should not include "@": ${senderUsername}`);
}
if (/\s/.test(senderUsername)) {
issues.push(`SenderUsername should not include whitespace: ${senderUsername}`);
}
}
if (ctx.SenderId != null && !senderId) {
issues.push("SenderId is set but empty");
}
return issues;
}
¤ Dauer der Verarbeitung: 0.24 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland