عن المشروع

توفر حزمة @oresoftware/next-loggers حلاً قياسياً وخالياً من التبعيات ويعتمد حصرياً على الوحدات البرمجية (ESM) للتسجيل المهيكل المصمم لبيئات جافاسكريبت وتایب‌سكريبت الحديثة، بما في ذلك Next.js، والمتصفحات، وCloudflare Workers، وNode.js، وBun، وDeno. تركز الحزمة على الأمان، والتسلسل، وآليات النقل المرنة. الميزات الأساسية: - دعم متعدد اللغات: تتضمن حزم تطوير أصلية لكل من Python، وGo، وRust، وJava، وDart، وRuby، وErlang، وElixir، والتي تصدر جميعها تنسيق إرسال صارم من نوع next-loggers/v1. - آليات النقل: تدعم نقاط نهاية HTTP، واتصالات Supabase Realtime عبر شبكة الويب، وتطبيقات OpenTelemetry (OTLP) الجانبية لبيئات Kubernetes وCloud Run. يمكن تطبيق آليات نقل مخصصة بسهولة عبر واجهة بسيطة. - واجهة برمجة تطبيقات قابلة للتسلسل: أحداث السجل قابلة للتسلسل، مما يسمح بإثراء السجلات بالآثار، والوسوم، والحقول، والسياق قبل الإرسال. فرضت أداة ESLint استدعاءات صريحة للدوال .send() لمنع فقدان السجلات. - الأمان وتنقيح البيانات: تقوم الحزمة تلقائياً بتنقيح المفاتيح الحساسة (كلمات المرور، والرموز المميزة، إلخ) وتطبيع هياكل البيانات المعقدة (المراجع الدائرية، والأخطاء، والأرقام الكبيرة) لضمان تسلسل آمن. - خصائص بيئة التشغيل: توفر نقاط دخول مخصصة لبيئات مختلفة (مثل createCloudflareWorkerLogger لإضافة معرف الشعاع rayId وخصائص الموقع الجغرافي). تتعامل الحزمة مع عزل سياق عدم التزامن عبر AsyncLocalStorage حيثما كان مدعوماً، مع بدائل واضحة للبيئات مثل Cloudflare Workers التي لا تحتوي على علامات محددة. - الإيقاف والموثوقية: تنفذ الحزمة عمليات تفريغ منسقة لدورة الحياة للمتصفحات (pagehide وsendBeacon) وNode وBun وDeno (SIGTERM وbeforeExit) لضمان تفريغ السجلات قبل إنهاء العمليات. تتضمن حدوداً للتسلسل لمنع الحمولات الكبيرة جداً من التسبب في تعطل العمليات. - واجهة سطر الأوامر والإعدادات: تأتي مع واجهة سطر أوامر next-loggers لتشخيص الأعطال (doctor، resolve، smoke) وتدعم التهيئة عبر ملفات .next-logger.ts أو متغيرات البيئة. تعتبر هذه المكتبة مناسبة للتطبيقات التي تتطلب مراقبة قوية عبر منصات متعددة مع ضمانات قوية لسلامة البيانات وخصوصيتها.