Skip to content

الواجهة البرمجية

كل الدوال تقبل string | null | undefined. النص الفارغ يُعد نظيفاً.

ts
import {
  contains,
  mask,
  inspect,
  explain,
  createFilter,
  blockedError,
  PROFANITY_BLOCKED,
  WORDLIST_STATS,
  VERSION,
} from "anti-ttyah";

contains(text)

true إذا وُجد تطابق بعد التطبيع.

mask(text)

يستبدل كل تطابق برمز التغطية. النمط الافتراضي يحافظ على الطول (****). بقية النص لا تتغيّر.

inspect(text)

ts
type Hit = {
  start: number;
  end: number;
  raw: string;
  lang?: "ar" | "ar-latn" | "fr" | "en" | "tz";
  category?: "sexual" | "insult" | "slur" | "mild";
};

type InspectResult = { blocked: boolean; hits: Hit[] };

الإزاحات نسبة إلى النص الأصلي.

explain(text)

مثل inspect مع صف لكل رمز. يُستخدم في التجربة المباشرة وفي npx anti-ttyah --explain.

blockedError(...fields)

يفحص نصوصاً أو مصفوفات أو كائنات سطحية ({ title, body }). يعيد { error: "PROFANITY_BLOCKED" } عند أول تطابق، وإلا null.

createFilter(options)

الخيارالافتراضيالدور
extraTerms[]كلمات إضافية
extraPhrases[]عبارات إضافية
allowlist[]استثناءات
maskChar"*"أول محرف فقط
maskStyle"preserve""token" → ثلاثة رموز لكل تطابق
matchSeparatorstrueطي . * - _ ' داخل الكلمة
categoriesالكلتقييد القائمة الافتراضية

أسماء بديلة

containsProfanitycontains، maskProfanitymask، profanityErrorblockedError.

رخصة MIT · يعمل محلياً في Node والمتصفح · بلا اعتماديات