One product, every build pipe
JavaScript Obfuscator's protection runs through one HTTP API. Everything below is a wrapper around that API tuned to a specific surface — IDEs, CI systems, error reporters, build tools. The wire format stays in lockstep; pick the integration that matches where your release lives.
The release flow at a glance
Build → protect → ship → symbolicate. Same shape regardless of which tools you choose at each step.
1. Your build emits JavaScript into dist/.
2. jso-protector (CLI, build plugin, or IDE action) POSTs dist/ to HttpApi.ashx. The API returns the protected code and the identifier map.
3. Your CI archives the API report (jso-report.json) alongside the protected dist. The build is tagged with --label "$COMMIT_SHA" so the audit log groups by commit.
4. Production runs the protected code. Crashes carry the build's BuildId back to your reporter (Sentry, Bugsnag, Rollbar, Datadog, etc).
5. jso-symbolicate — via npm or via the reporter's beforeSend hook — demangles the stack against the saved report. Done locally; the trace never uploads anywhere it wasn't already going.