Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-deterministic-message-formatter
كاستم نود لـ n8n باسم Deterministic Message Formatter. النود يعالج عرض الرسائل النصية المختلطة الاتجاهات بشكل محافظ، مع اعتبار المحتوى والمنطق والمعنى غير قابلين للتغيير.
المبدأ
النود ليس أداة إعادة كتابة أو ترجمة أو تصحيح. لا يستخدم الذكاء الاصطناعي، ولا ينفذ طلبات شبكة أو API خارجية. يسمح فقط بتطبيع اختياري للمسافات ونهايات الأسطر، ويتحقق دائمًا من سلامة المحتوى بعد التنسيق.
عند الشك، لا يغيّر النود شيئًا ويعيد النص الأصلي.
التثبيت
بعد بناء الحزمة، ثبّتها من ملف الحزمة الناتج أو من مجلد المشروع داخل بيئة n8n التي تسمح بتثبيت community nodes:
npm install
npm run build
npm pack
سيتم إنتاج ملف باسم قريب من:
n8n-nodes-deterministic-message-formatter-1.0.0.tgz
إعداد النود
يمكن اختيار أحد مصدرين للنص:
| الخيار | الاستخدام |
|---|---|
| JSON Field | يقرأ النص من حقل علوي في كل عنصر وارد، والافتراضي هو text. |
| Text | يستخدم قيمة نصية أو expression يتم ضبطها في الحقل. |
إعداد Strict Mode مفعّل افتراضيًا. التحقق من السلامة يعمل دائمًا في الوضعين، وتعطيل Strict Mode لا يسمح بأي تعديل للمحتوى؛ الفرق الوحيد هو قيمة mode في البيانات الناتجة.
خيارات التنسيق الإضافية
| الخيار | القيمة الافتراضية | السلوك |
|---|---|---|
Normalize Whitespace |
true |
يطبع تتابعات المسافات وعلامات التبويب إلى مسافة واحدة. يمكن تعطيله صراحةً. |
Normalize Line Breaks |
true |
يحوّل CRLF وCR إلى LF. |
Trim Lines |
true |
يزيل المسافات من بداية ونهاية كل سطر فقط. يعمل بعد حماية التوكنز. |
Remove Excessive Empty Lines |
true |
يقلل تتابعات الأسطر الفارغة دون حذف أي سطر يحتوي على محتوى فعلي. يعمل بعد حماية التوكنز. |
Maximum Consecutive Empty Lines |
1 |
الحد الأقصى للأسطر الفارغة المتتالية عند تفعيل الخيار السابق. القيمة 0 تزيل الأسطر الفارغة المتتالية. |
Direction Handling |
Auto |
Auto يطبق السلوك المحافظ الحالي. Disabled يتخطى عزل BiDi بالكامل. RTL وLTR متاحان كـaliases لـAuto حاليًا لأن التنفيذ الحالي لا يعتمد على base direction صريح. |
Output Field |
text |
اسم الحقل الذي يستقبل النص الناتج. لا تُحذف الحقول الأخرى؛ وإذا كان الاسم مساويًا لحقل الإدخال، تكون الكتابة فوقه مقصودة. |
Enable Debug |
false |
عند تفعيله يضيف كائن debug إلى نفس item.json. عند تعطيله لا يُضاف الحقل مطلقًا. |
خيارات Trim Lines وRemove Excessive Empty Lines تطبق بعد protectTokens وقبل استعادة التوكنز، لذلك لا تتأثر المسافات أو الأسطر داخل fenced code blocks المحمية. خيار Direction Handling = Disabled لا يغير بقية الـpipeline، ويظل فحص integrity يعمل دائمًا.
عند تفعيل Enable Debug، يحتوي debug على الأطوال وحالة integrity ومؤشرات التغييرات فقط. لا يتم تسجيل نص الرسالة أو محتواها في console أو أي log خارجي؛ بيانات debug تعود داخل العنصر الناتج نفسه فقط.
شكل الخرج
يضيف النود إلى كل عنصر:
{
"text": "final safe text",
"formatted": true,
"integrityPassed": true,
"fallback": false,
"bidiControlsInserted": false,
"mode": "strict"
}
عند اكتشاف اختلاف غير مسموح، يعيد النود originalText ويضع formatted: false وfallback: true وintegrityPassed: false.
قواعد الحماية
تتم حماية الروابط، عناوين البريد الإلكتروني، أرقام الهاتف بصيغة E.164-like، روابط Markdown، وinline/fenced code قبل أي تنسيق. لا تُدرج محارف BiDi داخل هذه التوكنز. القائمة المسموح بتجاهلها في فحص السلامة محصورة في U+200E, U+200F, U+2066, U+2067, U+2068, وU+2069 فقط.
المخرجات هي نص Unicode عادي مناسب للتمرير قبل الإرسال إلى WhatsApp. المظهر النهائي قد يختلف بحسب تطبيق الوجهة ونظام التشغيل؛ مسؤولية النود هي الحفاظ على النص المنطقي وإضافة أقل قدر ممكن من محارف العرض الآمنة.
التطوير والاختبار
npm install
npm run typecheck
npm run build
npm test
الاختبارات تغطي النصوص العربية والإنجليزية، الأرقام والأوقات، الروابط والبريد والهاتف، Markdown، code blocks، تطبيع المسافات والأسطر، توازن محارف العزل، وسلوك حماية المحتوى.