# AfterPack डॉक्यूमेंटेशन

एक post-build step जो आपके bundler से बने JavaScript को obfuscate करता है। एक dev dependency, एक line; production output obfuscated और हर build में अलग ship होता है, development जस का तस रहता है।

Source: https://www.afterpack.dev/hi/docs

> अपना source code ship करना बंद करें। आप जो भी bundle deploy करते हैं, वही आपका source है: आज एक coding agent minified JavaScript को मिनटों में पढ़, समझा और दोबारा लिख देता है, इसलिए minified का मतलब बस इतना है कि उसे छोटे font में publish किया गया है। AfterPack वह post-build step है जो यह gap बंद करता है। एक dev dependency, एक line, और आपका production output बदले हुए names और encoded strings के साथ ship होता है, इसलिए कोई भी reader, इंसान हो या model, grep से आपका logic नहीं ढूँढ सकता और न ही उसे जैसा लिखा गया था वैसा उठा सकता है। हर build की बनावट अलग होती है, इसलिए एक build के patterns के लिए लिखे गए tools अगली पर टूट जाते हैं। यह आपके bundler के बाद चलता है, आपके source को कभी नहीं छूता, और आपको एक Protection Map भी दे सकता है जो ठीक-ठीक बताता है कि क्या बदला। यह client-side secret को server-side secret नहीं बनाता: आपका code चलाने वाला व्यक्ति फिर भी उसमें इस्तेमाल होने वाली values पढ़ सकता है।

## कब इस्तेमाल करें
- Browser को ऐसा logic मिलता है जिसे कोई copy या bypass करने के लिए पैसे देगा: license check, pricing rules, anti-cheat, paywall, embedded SDK।
- कोई customer या security questionnaire पूछता है कि आपका ship किया गया JavaScript पढ़ा जा सकता है या नहीं।
- आप ऐसा post-build step चाहते हैं जो development को जस का तस छोड़ दे।
- आप Cloudflare Worker से JavaScript serve करते हैं और चाहते हैं कि हर rotation window में उसकी शक्ल बदले।

## कब ज़रूरत नहीं
- सारा कीमती logic पहले से server पर चलता है और client बस एक पतला view है।
- Code open source है या पढ़े जाने के लिए ही है।
- आपको browser में किसी secret को secret रखना है: कोई भी obfuscator यह नहीं कर सकता, और AfterPack यह साफ़ कहता है।

## सब कुछ एक फ़ाइल में
- [पूरा docs corpus (अंग्रेज़ी में)](https://www.afterpack.dev/llms-full.txt): नीचे के सभी पेज, एक साथ जोड़े हुए।
- [JSON में कॉन्फ़िगरेशन](https://www.afterpack.dev/docs-config.json): registry, machine-readable रूप में।
- [रोडमैप](https://www.afterpack.dev/roadmap.md): क्या ship हो चुका है और आगे क्या है।

## शुरुआत
- [ओवरव्यू](https://www.afterpack.dev/docs.md)
- [क्विकस्टार्ट](https://www.afterpack.dev/hi/docs/quickstart.md): अपना framework चुनें, एक dev dependency install करें, build चलाएँ और Protection Map खोलें।
- [Best practices](https://www.afterpack.dev/hi/docs/best-practices.md): डिफ़ॉल्ट रूप से obfuscated JavaScript कैसे ship करें, अहम regions को directives से कैसे mark करें, और अपनी build को rotate करते रहें ताकि attackers आगे न निकल सकें।
- [AfterPack कैसे काम करता है](https://www.afterpack.dev/hi/docs/concepts.md): Standard (Free) output आपके code के साथ क्या करता है, यह reversal का प्रतिरोध कैसे करता है, और एक attacker वास्तव में क्या recover कर सकता है।

## गाइड
- [Build और CI](https://www.afterpack.dev/hi/docs/builds.md): आपकी pipeline में AfterPack कहाँ बैठता है: केवल production, एक बार build करें और हर जगह promote करें, एक CI recipe के साथ, और seeds, artifacts, source maps और बंद cloud के नियम।
- [Protection Map](https://www.afterpack.dev/hi/docs/protection-map.md): HTML report जो दिखाती है कि AfterPack ने आपके code के साथ क्या किया: हर token इस आधार पर रंगा हुआ कि उस पर कितना transformation हुआ।

## Use cases
- [Paywall checks](https://www.afterpack.dev/hi/docs/use-cases/paywall-checks.md): Bundle में paywall gate एक नामित function है जो boolean लौटाता है, और उसे पलटना एक पंक्ति का patch है। Obfuscation और per-build seed उसे ढूँढने और patch को काम करता रखने के बारे में क्या बदलते हैं।
- [Pricing और gating logic](https://www.afterpack.dev/hi/docs/use-cases/pricing-logic.md): Client JavaScript में plan limits, quota thresholds और feature-flag rules आपके commercial model के specification की तरह पढ़े जाते हैं। उन्हें पढ़ने योग्य न रहने देने का तरीका, और फिर भी क्या observable रहता है।
- [Ship हुई API keys](https://www.afterpack.dev/hi/docs/use-cases/shipped-api-keys.md): उसे restrict करें, proxy करें, rotate करें, फिर जो बचे उसे obfuscate करें। आपके bundle में एक credential को encode करने से असल में क्या मिलता है, और यह कहाँ रुक जाता है।
- [गलती से लीक हुए secrets](https://www.afterpack.dev/hi/docs/use-cases/accidental-secrets.md): एक credential deploy हुए bundle तक पहुँच गया। कैसे पता करें कि आपकी live site अभी क्या expose कर रही है, अगली build उस value के लिए क्या बदलती है, और rotation ही वह कदम क्यों है जो इसे बंद करता है।
- [Patching tools](https://www.afterpack.dev/hi/docs/use-cases/patching-tools.md): एक userscript, Tampermonkey patch या extension को आपके JavaScript में किसी नाम, string या पहचाने जा सकने वाले आकार पर टिकना पड़ता है। संरचनात्मक obfuscation और build का नया आकार उन anchors के साथ क्या करते हैं।
- [Unreleased features](https://www.afterpack.dev/hi/docs/use-cases/unreleased-features.md): Flag names, route strings और unreleased UI text आपकी किसी घोषणा से पहले हर visitor तक पहुँच जाते हैं, और लोग releases के बीच bundles का diff करते हैं। क्या हटाएँ, क्या protect करें, और क्या build से पूरी तरह बाहर रखें।
- [Security scanners](https://www.afterpack.dev/hi/docs/use-cases/security-scanners.md): Secret जैसे दिखने वाले patterns, आपके source तक वापस ले जाने वाला sourceMappingURL, library fingerprints और plain-या-minified का label। एक automated reader क्या जाँचता है, और एक obfuscated build रिपोर्ट में क्या बदलती है।
- [Electron license logic](https://www.afterpack.dev/hi/docs/use-cases/electron-license-logic.md): app.asar एक command से unpack हो जाता है, और local license या trial check आमतौर पर एक ही comparison होता है। main, preload और renderer को obfuscate कैसे करें ताकि एक crack आपकी अगली release तक काम न करे।
- [Browser extensions](https://www.afterpack.dev/hi/docs/use-cases/browser-extensions.md): Publish हुआ extension एक zip है जिसे कोई भी खोलकर पढ़ सकता है। Background और content scripts को obfuscate करने से क्या बदलता है, और ship करने से पहले कौन-सी store policy जाँचें।

## फ़्रेमवर्क
- [फ़्रेमवर्क](https://www.afterpack.dev/hi/docs/frameworks.md): आपके stack के लिए कौन-सा package install करें, वह कहाँ hook होता है, और क्या लिखता है।
  - [Angular](https://www.afterpack.dev/hi/docs/frameworks/angular.md): Angular v17+ का obfuscation dist/<app>/browser पर एक postbuild pass है: CLI से, या @afterpack/angular helper से।
  - [Astro](https://www.afterpack.dev/hi/docs/frameworks/astro.md): @afterpack/astro एक पतला integration है जो @afterpack/vite को Astro की अपनी Vite pipeline में wire करता है।
  - [Electron](https://www.afterpack.dev/hi/docs/frameworks/electron.md): @afterpack/electron main, preload और renderer को एक ही call में एक seed के साथ wire करता है, और electron-vite के bytecodePlugin और असुरक्षित backups को आपका source ship करने से पहले ही अस्वीकार कर देता है।
  - [esbuild](https://www.afterpack.dev/hi/docs/frameworks/esbuild.md): @afterpack/esbuild build.onEnd में hook होता है और emit हुए output को उसी जगह obfuscate करता है।
  - [Next.js](https://www.afterpack.dev/hi/docs/frameworks/nextjs.md): @afterpack/next client JavaScript को next build के अंदर obfuscate करता है, Turbopack या webpack पर, SSR या static export में।
  - [Nuxt](https://www.afterpack.dev/hi/docs/frameworks/nuxt.md): @afterpack/nuxt एक Nuxt 3 module है जो Nuxt की Vite config पर @afterpack/vite को register करता है।
  - [Parcel](https://www.afterpack.dev/hi/docs/frameworks/parcel.md): @afterpack/parcel-optimizer, Parcel 2 Optimizer के रूप में हर packaged bundle को memory में obfuscate करता है, और production में 404 देने वाला chunk ship करने के बजाय build को fail closed करता है।
  - [Plain JS](https://www.afterpack.dev/hi/docs/frameworks/plain.md): npx afterpack@latest को emit किए गए JavaScript की किसी भी directory पर चलाएँ। न bundler, न plugin, न config फ़ाइल की ज़रूरत।
  - [Remix](https://www.afterpack.dev/hi/docs/frameworks/remix.md): @afterpack/remix नाम का कोई package नहीं है। Remix, Vite से build होता है, इसलिए @afterpack/vite इस्तेमाल करें, या build output पर CLI चलाएँ।
  - [Rollup](https://www.afterpack.dev/hi/docs/frameworks/rollup.md): @afterpack/rollup आपके source से Pro @afterpack directives पढ़ता है और Rollup के output लिखने से पहले generateBundle में engine चलाता है।
  - [Svelte](https://www.afterpack.dev/hi/docs/frameworks/svelte.md): @afterpack/svelte, Svelte projects के लिए @afterpack/vite को wrap करता है: vite.config.ts में plugin की एक line।
  - [SvelteKit](https://www.afterpack.dev/hi/docs/frameworks/sveltekit.md): @afterpack/sveltekit: vite.config.ts में sveltekit() के बाद एक plugin पंक्ति।
  - [Vite](https://www.afterpack.dev/hi/docs/frameworks/vite.md): @afterpack/vite आपकी build को generateBundle में, Vite के उसे लिखने से पहले, obfuscate करता है। यह reference integration है जिसे Vite परिवार का हर दूसरा package wrap करता है।
  - [Vue](https://www.afterpack.dev/hi/docs/frameworks/vue.md): @afterpack/vue, Vue 3 projects के लिए @afterpack/vite को wrap करता है: vite.config.ts में plugin की एक लाइन।
  - [Webpack](https://www.afterpack.dev/hi/docs/frameworks/webpack.md): @afterpack/webpack, compilation.hooks.processAssets पर tap करता है और webpack के लिखने से पहले आपके assets को obfuscate करता है।

## CLI
- [CLI](https://www.afterpack.dev/hi/docs/cli.md): npx afterpack@latest को चलाना: एक वैकल्पिक path, हर config key एक flag के रूप में, verify, restore और audit subcommands, और पूरा exit-code contract।
- [Audit](https://www.afterpack.dev/hi/docs/audit.md): किसी live URL को सार्वजनिक source maps, पढ़ने योग्य code और leak हुए credentials के लिए scan करें और 100 में से score पाएँ। वही scanner जो public security scanner को चलाता है, आपके terminal से।

## कॉन्फ़िगरेशन
- [कॉन्फ़िगरेशन](https://www.afterpack.dev/hi/docs/config.md): हर विकल्प, उसे कहाँ सेट करें, और वह क्या करता है।
- [Presets](https://www.afterpack.dev/hi/docs/presets.md): minify से extreme तक सुरक्षा के पाँच स्तर, हर एक जो complexity target सेट करता है, और zero-config default (light) पहले से क्या गारंटी देता है।
- [Complexity](https://www.afterpack.dev/hi/docs/complexity.md): हर preset के पीछे का एक ही dial: संख्या बढ़ने पर क्या बढ़ता है, वह एक threshold जो medium पर बदलता है, और कौन-से transformations config बंद कर सकती है पर ज़बरदस्ती चालू नहीं।
- [Directives](https://www.afterpack.dev/hi/docs/directives.md): आपके source में लिखे comments जो अपने द्वारा mark किए गए code के लिए AfterPack की protection बदल देते हैं।

## सुरक्षा
- [Threat model](https://www.afterpack.dev/hi/docs/threat-model.md): AfterPack का security-review दस्तावेज़: वह किस asset की रक्षा करता है, हर attacker class क्या recover करती है, एक secret कैसे बचता है, मौजूदा scope कहाँ ख़त्म होता है, और किन controls के साथ यह काम करता है।
- [Reversal classes](https://www.afterpack.dev/hi/docs/reversal-classes.md): Static-attacker classes जिनमें AfterPack के transforms आते हैं, और हर एक को recover करने से attacker को क्या मिलता है।
- [गोपनीयता](https://www.afterpack.dev/hi/docs/privacy.md): Local build कुछ नहीं भेजती। Cloud build memory में obfuscate करती है और कुछ नहीं रखती, सिवाय उस Protection Map के जिसे store करने को आपने कहा, और जिसे आप बंद कर सकते हैं। Telemetry डिफ़ॉल्ट रूप से चालू है, तब रिपोर्ट करती है जब कोई build error-स्तर का diagnostic रिपोर्ट करती है, साफ़ build पर कभी नहीं, और एक env var से बंद हो जाती है।

## Cloud और Pro
- [Pro](https://www.afterpack.dev/hi/docs/pro.md): Free आपके पूरे bundle को एक समान protect करता है। Pro आपको सबसे भारी protection केवल वहीं लगाने देता है जहाँ वह मायने रखती है: किसी एक function या फ़ाइल पर, directive के ज़रिए। यह हर build का रिकॉर्ड भी रखता है।
- [क्लाउड API](https://www.afterpack.dev/hi/docs/cloud-api.md): api.afterpack.dev का wire contract: authentication, batch obfuscation endpoint, limits, rate limits, build का time budget, और वे diagnostic codes जिन्हें client को संभालना होता है।
- [Deployment modes](https://www.afterpack.dev/hi/docs/deployment-modes.md): Engine चलाने के दो तरीके: आपकी machine पर locally, या Pro key के साथ AfterPack के cloud में।
- [Cloudflare Workers](https://www.afterpack.dev/hi/docs/workers.md): @afterpack/wasm के साथ AfterPack को अपने Cloudflare Worker में चलाएँ, अपनी Pro key pass करके AfterPack के cloud में build करें, और हर result को rotation window के हिसाब से cache करें।

## डैशबोर्ड
- [डैशबोर्ड](https://www.afterpack.dev/hi/docs/dashboard.md): AfterPack dashboard क्या दिखाता है, वह कैसे व्यवस्थित है, और उसमें कौन-सी builds दिखाई देती हैं।
  - [Workspaces और projects](https://www.afterpack.dev/hi/docs/dashboard/workspaces.md): वे दो objects जिन पर dashboard की बाकी हर चीज़ टिकी है: workspace में कौन क्या कर सकता है, projects builds और keys को कैसे समूहित करते हैं, और settings पेज क्या बदलते हैं।
  - [Builds](https://www.afterpack.dev/hi/docs/dashboard/builds.md): हर Pro Cloud build का अपना record: coverage, inflation, complexity, build time, लागत, diagnostics और Protection Map।
  - [API keys](https://www.afterpack.dev/hi/docs/dashboard/api-keys.md): उस key को बनाना, उसका scope तय करना, इस्तेमाल करना और revoke करना जो local build को Pro Cloud build में बदल देती है।
  - [Usage और बिलिंग](https://www.afterpack.dev/hi/docs/dashboard/usage.md): Usage meter पढ़ना, वे तीन pools जिनसे एक build खर्च करती है, plan tile की status line, और billing पेज पर आप क्या बदल सकते हैं।

## प्लान और बिलिंग
- [टियर](https://www.afterpack.dev/hi/docs/tiers.md): Free पूरी pipeline चलाता है: complexity असीमित है और हर preset उपलब्ध है। Tiers के बीच जो बदलता है वह यह है कि आप सुरक्षा को कितनी सटीकता से लागू कर सकते हैं, और हर महीने आपको Pro builds के कितने MB मिलते हैं।
- [खाते](https://www.afterpack.dev/hi/docs/accounts.md): AfterPack खाता किस काम आता है, आपके निजी खाता पेज पर क्या रहता है, और workspace, key, usage और billing के docs कहाँ हैं।
- [SLA, SLO और सपोर्ट](https://www.afterpack.dev/hi/docs/sla.md): Pro cloud API के लिए क्या target है और क्या अनुबंधित गारंटी, incidents कैसे संभाले जाते हैं, और हर tier पर कौन-सा support channel लागू होता है।
- [Enterprise](https://www.afterpack.dev/hi/docs/enterprise.md): एक custom contract: custom development में प्राथमिकता, आपके अपने cloud में engine का private installation, एक संयुक्त security review, और ऐसे source के लिए दो deployment स्वरूप जो आपके infrastructure से बाहर नहीं जा सकता।

## रेफ़रेंस
- [तुलना](https://www.afterpack.dev/hi/docs/comparison.md): Build time, output size और output के चलते रहने पर AfterPack की तुलना javascript-obfuscator, js-confuser, JScrambler, JSDefender और ByteHide से, एक ही harness पर मापी गई।
- [Performance](https://www.afterpack.dev/hi/docs/performance.md): AfterPack एक build और एक page पर कितना खर्च डालता है: 185 KB bundle पर मापा गया obfuscation time, wasm build का time और download size, हर preset का output size, page का startup समय और runtime लागत, protected code को host global पढ़ने की कीमत, और नया seed caching पर क्या असर डालता है।
- [Semantic contract](https://www.afterpack.dev/hi/docs/semantic-contract.md): AfterPack का output आपके program के व्यवहार में से क्या बनाए रखता है, हर engine release को असली code पर कैसे जाँचा जाता है, और जान-बूझकर रखे गए अंतरों की छोटी सूची।
- [Diagnostics](https://www.afterpack.dev/hi/docs/diagnostics.md): AfterPack द्वारा emit किया जाने वाला हर DIAG_* code, उसे किसने trigger किया, उसे कैसे हल करें, और एक build कौन-से exit codes लौटाती है।
- [शब्दावली](https://www.afterpack.dev/hi/docs/glossary.md): AfterPack के documentation की शब्दावली: polymorphism, non-materialization, reversal classes और बाकी सब, एक ही जगह परिभाषित।
- [Status API](https://www.afterpack.dev/hi/docs/status-api.md): GET /v1/status: हर AfterPack service की मौजूदा स्थिति और पिछले 90 दिनों के दैनिक uptime का सार्वजनिक सारांश, वही data जो status.afterpack.dev दिखाता है।

## मदद
- [अक्सर पूछे जाने वाले प्रश्न](https://www.afterpack.dev/hi/docs/faq.md): AfterPack के बारे में सबसे ज़्यादा पूछे जाने वाले सवाल, हर एक का जवाब कुछ छोटे पैराग्राफ़ में।
