التوثيق
/

مرجع API

مرجع API

استخدم الحزمة العامة javascript-obfuscator للبناء عبر CLI وNode.js، فهي تتولى البث والرفع الكبير. أما عملاء REST المباشرون فعليهم تنفيذ البروتوكول الموضح أدناه.

شاهد

Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets

شاهد على YouTube

أنشئ مفتاح API من الإعدادات ← مفاتيح API. يتطلب ذلك اشتراك Pro أو Team أو Business. احتفظ بالمفتاح على خادمك أو في مخزن أسرار CI، ولا تضعه أبدًا في كود المتصفح. تستقبل حزمة javascript-obfuscator المفتاح عبر apiToken (و--pro-api-token في CLI)، أما طلب REST المباشر فيرسله في الترويسة Authorization: Bearer. وفي خطة Team أو Business، يمكن لمالك الفريق تحديد مفتاح خدمة الفريق في مربع الحوار إنشاء مفتاح API؛ وهذا المفتاح يخص الفريق لا شخصًا بعينه، لذا يظل صالحًا عند مغادرة الأعضاء.

مفاتيح API · استخدام حزمة NPM

الطلب

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-Typeapplication/json
AuthorizationBearer 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.

الكود

الكود

JSON

Node.js (.mjs)

JavaScript

الكود

الإعدادات المسبقة

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

JSON

GET https://obfuscator.io/api/v1/presets/production

JSON

الحالةالمعنى
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. تُحتسب طلبات الإعدادات المسبقة ضمن الحصص نفسها التي تُحتسب فيها طلبات التشويش.

يجب أن يؤدي تجاوز حد المعدل وإخفاقات الحصة وانقطاع البث إلى إيقاف البناء. أعد المحاولة عن قصد؛ فالطلب المكرر قد يستهلك استخدامًا إضافيًا. لا تنشر ناتجًا جزئيًا.

الاختبار وCI