API संदर्भ
CLI और Node.js बिल्ड के लिए सार्वजनिक javascript-obfuscator पैकेज का उपयोग करें। यह स्ट्रीमिंग और बड़े अपलोड संभालता है। सीधे REST क्लाइंट को नीचे दिया गया प्रोटोकॉल लागू करना होगा।
देखें
Using the Obfuscator.io API: API Keys, npm Package, CLI and Custom Presets
सेटिंग्स → API कुंजियाँ में API कुंजी बनाएँ। Pro, Team या Business पहुँच आवश्यक है। कुंजी अपने सर्वर या CI सीक्रेट स्टोर में रखें, ब्राउज़र कोड में कभी नहीं। javascript-obfuscator पैकेज कुंजी को apiToken के रूप में लेता है (CLI पर --pro-api-token); सीधा REST अनुरोध इसे Authorization: Bearer हेडर में भेजता है। Team या Business प्लान पर टीम मालिक API कुंजी बनाएँ डायलॉग में टीम सेवा कुंजी चुन सकता है; वह कुंजी किसी व्यक्ति की नहीं बल्कि टीम की होती है, इसलिए सदस्यों के जाने पर भी काम करती रहती है।
API कुंजियाँ · NPM पैकेज का उपयोग
अनुरोध
POST https://obfuscator.io/api/v1/obfuscate
code और options के साथ JSON भेजें। कम से कम एक 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 |
रिस्पॉन्स
बॉडी को newline-delimited JSON (NDJSON) के रूप में पढ़ें। एक नेटवर्क रीड किसी JSON पंक्ति या UTF-8 अक्षर को बीच से विभाजित कर सकता है। प्रगति का अर्थ पूरा होना नहीं है: result या chunk_end संदेश अनिवार्य रखें, और warnings सहेजकर रखें।
छोटा आउटपुट एक ही result संदेश में आता है। बड़ा आउटपुट chunk संदेशों के रूप में आता है, जिनके बाद chunk_end आता है। दोनों अंतिम संदेशों में version होता है, यानी वह ठोस ऑब्फ़स्केटर संस्करण जिसने आउटपुट बनाया (उपयोगी जब आपने कोई रेंज माँगी हो या टीम कोई संस्करण लागू करती हो)। warnings गैर-घातक ऑब्फ़स्केशन चेतावनियों को { type, message, functionName? } के रूप में सूचीबद्ध करता है और कोई चेतावनी न होने पर छोड़ दिया जाता है, इसलिए गायब फ़ील्ड को खाली सूची मानें। VM बिल्ड या HTML इनपुट के लिए सोर्स मैप नहीं बनाए जाते। सादे JavaScript का parseHtml बिल्ड sourceMap: true के साथ अंतिम संदेश के sourceMap फ़ील्ड में एक सोर्स मैप लौटाता है, या बड़ा होने पर उसे sourceMap चंक के रूप में भेजता है।
एप्लिकेशन विफलताएँ स्ट्रीम के भीतर error संदेशों के रूप में आती हैं, आमतौर पर HTTP 200 के साथ। HTTP स्टेटस और स्ट्रीम में आई एरर, दोनों की जाँच करें। इन्फ़्रास्ट्रक्चर और अपलोड एंडपॉइंट non-2xx HTTP रिस्पॉन्स लौटा सकते हैं।
Node.js (.mjs)
प्रीसेट
GET https://obfuscator.io/api/v1/presets/{name}
किसी प्रीसेट के विकल्प लौटाता है, जिन्हें सीधे obfuscate अनुरोध के options के रूप में भेजा जा सकता है। वही Authorization: Bearer हेडर भेजें। नाम का मिलान केस-असंवेदनशील होता है, और रिस्पॉन्स एक अकेला JSON ऑब्जेक्ट है, स्ट्रीम नहीं। नीचे के उदाहरण संक्षिप्त हैं।
- बिल्ट-इन प्रीसेट:
{name}कोई बिल्ट-इन प्रीसेट है, जैसेvm-default(देखें प्रीसेट चुनना)।versionक्वेरी पैरामीटर चुनता है कि किस ऑब्फ़स्केटर संस्करण का प्रीसेट लौटाया जाए; यह obfuscate एंडपॉइंट जैसे ही मान स्वीकार करता है और डिफ़ॉल्ट रूप से नवीनतम संस्करण होता है।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 MB से कम रखें। बड़े सोर्स के लिए अस्थायी अपलोड चाहिए, जो Team और Business पर केवल javascript-obfuscator पैकेज के ज़रिए उपलब्ध हैं। अपने वर्तमान प्लान की सीमाएँ डैशबोर्ड में देखें।
API प्रति उपयोगकर्ता प्रति मिनट 30 अनुरोध (उसकी सभी कुंजियों में साझा) और प्रति IP प्रति मिनट 100 अनुरोध की अनुमति देता है। प्रीसेट अनुरोध ऑब्फ़स्केशन अनुरोधों वाले बजट में ही गिने जाते हैं।
दर सीमा, कोटा विफलता और बाधित स्ट्रीम की स्थिति में बिल्ड रुकना चाहिए। सोच-समझकर दोबारा प्रयास करें; दोहराया गया अनुरोध अतिरिक्त उपयोग खर्च कर सकता है। अधूरा आउटपुट प्रकाशित न करें।
