مرجع API
استخدم الحزمة العامة javascript-obfuscator للبناء عبر CLI وNode.js، فهي تتولى البث والرفع الكبير. أما عملاء REST المباشرون فعليهم تنفيذ البروتوكول الموضح أدناه.
شاهد
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
أنشئ مفتاح API من الإعدادات ← مفاتيح API. يتطلب ذلك اشتراك Pro أو Team أو Business. احتفظ بالمفتاح على خادمك أو في مخزن أسرار CI، ولا تضعه أبدًا في كود المتصفح. تستقبل حزمة javascript-obfuscator المفتاح عبر apiToken (و--pro-api-token في CLI)، أما طلب REST المباشر فيرسله في الترويسة Authorization: Bearer. وفي خطة Team أو Business، يمكن لمالك الفريق تحديد مفتاح خدمة الفريق في مربع الحوار إنشاء مفتاح API؛ وهذا المفتاح يخص الفريق لا شخصًا بعينه، لذا يظل صالحًا عند مغادرة الأعضاء.
الطلب
POST https://obfuscator.io/api/v1/obfuscate
أرسل JSON يحتوي على code وoptions. فعّل ميزة Pro واحدة على الأقل: vmObfuscation: true أو parseHtml: true. ثبّت معامل الاستعلام version للحصول على بناءات قابلة للتكرار؛ فإغفاله يعني استخدام أحدث إصدار. يقبل المعامل إصدارًا محددًا مثل 8.0.0، أو نطاقًا: ^8.0.0 يتبع الإصدارات الثانوية وإصدارات التصحيح الجديدة من 8.x، و~8.0.0 يتبع إصدارات التصحيح من 8.0.x، ويُحَل النطاق إلى أعلى إصدار مطابق. تتطلب النطاقات خطة Team أو Business.
تسرد options الخيارات نفسها، ولا يُطبَّق اسم إعداد مسبق يُمرَّر في optionsPreset. للبناء بإعداد مسبق، مدمجًا كان أو مخصصًا، اجلب خياراته من نقطة نهاية الإعدادات المسبقة في طلب منفصل وأرسلها بوصفها options.
إذا فرض مالك الفريق إصدارًا أو إعدادًا مسبقًا، فإنه يتجاوز version أو options في الطلب بالنسبة لأعضاء الفريق ومفاتيح خدمة الفريق. راجع فرض إصدار على فريقك والإعدادات المسبقة المشتركة.
| الترويسة | القيمة |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
الاستجابة
اقرأ جسم الاستجابة بصيغة JSON مفصولة بأسطر جديدة (NDJSON). قد تقسم عملية قراءة واحدة من الشبكة سطر JSON أو حرف UTF-8. التقدم لا يعني الاكتمال: اشترط وصول رسالة result أو chunk_end، واحتفظ بالحقل warnings.
يصل الناتج الصغير في رسالة result واحدة. أما الناتج الكبير فيصل على شكل رسائل chunk تليها chunk_end. تحمل كلتا الرسالتين الختاميتين الحقل version، وهو إصدار المشوِّش الفعلي الذي أنتج الناتج (مفيد عندما تطلب نطاقًا أو عندما يفرض الفريق إصدارًا). يسرد warnings تحذيرات التشويش غير القاتلة بالشكل { type, message, functionName? }، ويُحذف عند عدم وجود أي تحذير، لذا تعامل مع غياب الحقل على أنه قائمة فارغة. لا تُنتَج خرائط المصدر لبناءات VM ولا لمدخلات HTML. أما بناء parseHtml لكود JavaScript عادي مع sourceMap: true فيعيد خريطة مصدر في الحقل sourceMap من الرسالة الختامية، أو على شكل أجزاء sourceMap عندما تكون كبيرة.
تصل أخطاء التطبيق على شكل رسائل error داخل البث، وعادةً مع حالة HTTP 200. تحقّق من حالة HTTP ومن الأخطاء المبثوثة معًا. أما نقاط نهاية البنية التحتية والرفع فقد تعيد استجابات HTTP خارج نطاق 2xx.
Node.js (.mjs)
الإعدادات المسبقة
GET https://obfuscator.io/api/v1/presets/{name}
يعيد خيارات إعداد مسبق جاهزةً للإرسال بوصفها options في طلب التشويش. أرسل ترويسة Authorization: Bearer نفسها. تجري مطابقة الاسم دون تمييز بين الأحرف الكبيرة والصغيرة، والاستجابة كائن JSON واحد وليست بثًا. الأمثلة أدناه مختصرة.
- الإعدادات المسبقة المدمجة: يكون
{name}إعدادًا مسبقًا مدمجًا مثلvm-default(انظر اختيار الإعدادات المسبقة). يحدد معامل الاستعلامversionإصدار المشوِّش الذي يُعاد إعداده المسبق؛ ويقبل القيم نفسها التي تقبلها نقطة نهاية التشويش، وقيمته الافتراضية أحدث إصدار. تكون قيمة كل منdescriptionوupdatedAtهيnull. - الإعدادات المسبقة المخصصة: يكون
{name}الاسمَ المستعار لواجهة API المضبوط في نافذة حفظ الإعداد المسبق المخصص في لوحة التحكم، وoptionsهي الإعدادات المحفوظة (جميع الخيارات، لا تلك التي غُيّرت عن إعداد مسبق فقط). تتبع الرؤية ما هو معمول به في لوحة التحكم: يصل مفتاح API إلى الإعدادات المسبقة الخاصة بمستخدمه إضافةً إلى تلك التي شاركها مالك فريق هذا المستخدم، ويصل مفتاح خدمة الفريق إلى الإعدادات المسبقة الخاصة بالمالك.
GET https://obfuscator.io/api/v1/presets/vm-default
GET https://obfuscator.io/api/v1/presets/production
| الحالة | المعنى |
|---|---|
| 200 | الإعداد المسبق. |
| 400 | الاسم غير صالح (من 1 إلى 20 حرفًا، من الأحرف a-z أو الأرقام أو الشرطات أو الشرطات السفلية، ويبدأ بحرف أو رقم)، أو أن قيمة version غير مدعومة. |
| 401 | مفتاح API مفقود أو غير صالح أو منتهي الصلاحية. |
| 403 | الحساب موقوف، أو لا يوجد اشتراك نشط، أو الخطة لا تتضمن الوصول إلى API. |
| 404 | لا يوجد إعداد مسبق مدمج بهذا الاسم في الإصدار المطلوب، ولا إعداد مسبق مخصص بهذا الاسم المستعار مرئي لهذا المفتاح. |
| 429 | تجاوز حد المعدل؛ يتشارك الطلب الحصص لكل مستخدم ولكل عنوان IP الموضحة في الحدود والإخفاقات. |
| 500 | فشل البحث عن الإعداد المسبق على الخادم. أعد المحاولة لاحقًا. |
تكون الأخطاء بالشكل {"error": "..."}. توجد أمثلة الاستخدام لحزمة javascript-obfuscator وواجهة CLI الخاصة بها في استخدام حزمة NPM.
الحدود والإخفاقات
تنطبق حدود الخطة على حجم المصدر وعلى الاستخدام. أبقِ جسم JSON المتسلسل كاملًا، بما في ذلك محارف الهروب والخيارات، دون 4.4 ميغابايت. وتحتاج المصادر الأكبر إلى الرفع المؤقت، المتاح في خطتي Team وBusiness عبر حزمة javascript-obfuscator فقط. تحقّق من حدود خطتك الحالية في لوحة التحكم.
تقبل واجهة API حتى 30 طلبًا في الدقيقة لكل مستخدم، مشتركةً بين مفاتيحه، و100 طلب في الدقيقة لكل عنوان IP. تُحتسب طلبات الإعدادات المسبقة ضمن الحصص نفسها التي تُحتسب فيها طلبات التشويش.
يجب أن يؤدي تجاوز حد المعدل وإخفاقات الحصة وانقطاع البث إلى إيقاف البناء. أعد المحاولة عن قصد؛ فالطلب المكرر قد يستهلك استخدامًا إضافيًا. لا تنشر ناتجًا جزئيًا.
