عن المشروع
تُعد حزمة @vskstudio/takt-solid طبقة خفيفة ومتوافقة مع الاختيار على الخادم، تدمج نواة Takt لتحليلات تحترم الخصوصية داخل تطبيقات SolidJS. لا تعدّل هذه الحزمة حمولة أو ضمانات الخصوصية الخاصة بالنواة؛ بل تجعل واجهة البرمجة تبدو أصلية في Solid.
المكونات الرئيسية:
- مكون Takt: يُوضع قرب جذر التطبيق، فيُهيئ التحليلات عند التركيب، ويرسل عرض صفحة أولي، ويتعقّب تنقّلات تطبيق الصفحة الواحدة (SPA)،ويُمرّر.instance التحليلات إلى شجرة المكونات.
- useTakt: يحلّل.instance التحليلات الفعلي عند الاستدعاء. قبل تركيب مكون Takt أو أثناء التصيير على الخادم، يُعيد كائناً بلا operation (no-op) لا يلقي أخطاء أبداً، ما يسمح بوضع استدعاءات الأحداث في المعالجات بأمان.
- createTaktEvent وTaktEvent: طريقتان إعلانيتان لتتبع أحداث النقر دون كتابة معالجات صريحة. Both يُحلّان النشط.instance عند وقت النقر.
- takt-analytics: عنصر مخصص يعمل كمكوّن ويب مستقل عن الإطار، يمكن استخدامه في صفحات غير Solid. استيراد مدخل الأثر الجانبي يسجّل العنصر دون سحب وقت تشغيل Solid.
- TaktBadge وTaktEmbed: غلافان رقيقان يعرضان صورةشارة أو تضمين iframe بسياسات sandbox وreferrer آمنة.
- createStats: توفّر عميلاً مصعناً لواجهة Takt العامة، ما يتيح الاسترجاع البرمجي للإحصاءات مثل البيانات الموجزة.
يتطلب التثبيت استخدام pnpm أو npm/yarn، مع التبعيات المشتركة solid-js الإصدار 1.8 أو أحدث، و@vskstudio/takt-core الإصدار 0.8.1 أو أحدث.
يُقدَّم الإعداد عبر propس على مكون Takt أو attributesعلى العنصر المخصص. تشمل الخيارات: domain، endpoint، تتبع الروابط الصادرة، تتبع تنزيلات الملفات، تتبع تنقّل SPA، الإبلاغ عن 404، احترام Do Not Track، استبعاد localhost، معدل العيّنة، معالجة سلاسل الاستعلام، كشط URLs، ومفتاح تعطيل رئيسي. propس تُقرأ مرة واحدة عند التركيب؛ والتغييرات تستدعي إعادة التركيب.
المكتبة متوافقة تماماً مع SSR: مكون Takt يعمل على العميل فقط داخل onMount، وuseTakt يُعيد no-op آمن أثناء تصيير الخادم. استيراد العنصر المخصص على الخادم لا شيء بفضل guard خاص بـ customElements.
جميع سلوكيات الخصوصية، بما في ذلك DNT، واستبعاد localhost، ومعالجة الموافقة، وتجميد الحمولة، مُطبَّقة في المكتبة الأساسية ولا تعدّلها هذه الغلاف.
الترخيص: MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.