# Wakaru Documentation > Reference for Wakaru's JavaScript decompiler and bundle splitter: CLI flags, Rust and WASM APIs, unpack formats, rewrite levels, rule pipeline, and contributor workflows. This is a Grok-Wiki source-grounded repository documentation set. Use the complete Markdown link when an agent needs the full repo context. ## Context Links - [Complete Markdown docs](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/llms-full.txt) - [Complete Markdown alias](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b.md) - [Human interactive docs](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b) - [GitHub repository](https://github.com/pionxzh/wakaru) ## Repository - Repository: pionxzh/wakaru - Generated: 2026-06-28T01:17:23.575Z - Updated: 2026-06-28T01:23:52.756Z - Runtime: Grok CLI - Format: Documentation - Pages: 24 ## Pages - [Overview](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/01-overview.md): What Wakaru decompiles and unpacks, the three-crate workspace layout (core, CLI, WASM), primary entry points, and the shortest path from input JavaScript to readable output. - [Installation](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/02-installation.md): Install via npm optional platform packages, npx, or GitHub release binaries; Rust toolchain requirements for building from source; Node engine constraints. - [Quickstart](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/03-quickstart.md): First successful runs: decompile a single file, unpack a bundle to a directory, verify stdout vs -o output, and expected success signals for each mode. - [Decompile pipeline](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/04-decompile-pipeline.md): Single-file flow: parse, resolver marks, staged rule application, optional source-map rename, fixer, emit; parallel execution during unpack; unresolved_mark scope gating. - [Bundle formats and unpacking](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/05-bundle-formats-and-unpacking.md): Detection order and BundleFormat variants (webpack4/5, browserify, SystemJS, esbuild/Bun, AMD, scope-hoisted); raw vs full unpack; multi-file and directory scan semantics. - [Rewrite levels and assumptions](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/06-rewrite-levels-and-assumptions.md): RewriteLevel (minimal, standard, aggressive), DceMode and --dce behavior, named rewrite assumptions (e.g. no_document_all), and reproduce-first policy for new heuristics. - [Helper detection](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/07-helper-detection.md): How transpiler helpers (Babel, TypeScript/tslib, SWC) are matched by AST body shape across imported, inlined, hoisted, and minified forms; MatchContext and helper lifecycle layers. - [Cross-module facts](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/08-cross-module-facts.md): Two-phase unpack barrier: Phase 1 fact collection after UnEsm, ModuleFactsMap shape, and Phase 2 rules (namespace_decomposition, cross-module helper refs) that read other modules' import/export facts. - [Unpack bundles](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/09-unpack-bundles.md): Operational guide for --unpack modes (auto vs strict), --raw extraction, multi-file entry+chunk inputs, directory scanning rules, and --force overwrite protection. - [Use source maps](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/10-use-source-maps.md): Provide --source-map for identifier recovery and import dedup, emit decompiled maps with --emit-source-map, extract embedded sources via wakaru extract, and pipeline ordering constraints. - [JSON output and CI integration](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/11-json-output-and-ci-integration.md): Machine-readable --json stdout schema for decompile and unpack, warning kinds and is_error flags, elapsed_ms timing, and piping patterns for automation pipelines. - [WASM and playground](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/12-wasm-and-playground.md): Build wakaru-wasm for the browser playground, decompile/unpack JS bindings, TypeScript result types, and Vite integration for the online demo. - [Develop transformation rules](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/13-develop-transformation-rules.md): Add or modify VisitMut rules: test-first workflow, pipeline placement in RuleDescriptor order, unresolved_mark guards, BindingRenamer for renames, and definition-of-done verification checklist. - [Trace the rule pipeline](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/14-trace-the-rule-pipeline.md): Use debug trace (and --profile / --profile-rules) to bisect single-file regressions with per-rule diffs, --from/--until ranges, and limitations for bundle unpack debugging. - [CLI reference](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/15-cli-reference.md): Complete wakaru command surface: global flags, unpack modes, subcommands (extract, debug trace/normalize), stdin/stdout behavior, formatter, diagnostics, and profiling options. - [Core API reference](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/16-core-api-reference.md): Exported wakaru-core functions (decompile, unpack, unpack_files, unpack_raw, trace_rules), DecompileOptions fields, DceMode, UnpackOutput warnings, and RewriteLevel defaults. - [WASM API reference](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/17-wasm-api-reference.md): wasm_bindgen exports decompile, unpack, and ruleNames; parameter types, WakaruDecompileResult and WakaruUnpackResult JSON shapes, and warning kind strings. - [Rule pipeline reference](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/18-rule-pipeline-reference.md): Ordered RuleDescriptor registry, RuleStage groupings, rule_names() identifiers, RulePipelineOptions ranges, and documented cross-rule dependencies from the inventory. - [Webpack bundle recipe](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/19-webpack-bundle-recipe.md): End-to-end workflow using webpack4 and webpack5 testcases: build fixtures, run wakaru --unpack, compare against dist/*.pretty.js reference output, and multi-chunk inputs. - [Esbuild and Browserify recipe](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/20-esbuild-and-browserify-recipe.md): Unpack browserify standalone bundles and esbuild/Bun scope-hoisted output: detection markers (__export, __commonJS), strict vs auto heuristic split, and testcase verification commands. - [Troubleshooting](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/21-troubleshooting.md): Common failure modes: overwrite protection, unpack directory skip behavior, UnpackWarningKind codes, TDZ and parse-recovery warnings, formatter failures, and bug report fields. - [Debug regressions](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/22-debug-regressions.md): Investigate snapshot drift, raw vs final webpack4 layers, rule trace bisection, profile export, and symptom-to-cause mapping (unresolved_mark, early-rule cascades). - [Contributing](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/23-contributing.md): Fork-and-branch workflow, required cargo fmt/clippy/test checks, conventional commits, areas where contributions are most valuable, and links to architecture and testing docs. - [Testing and snapshots](https://grok-wiki.com/public/docs/pionxzh-wakaru-77a438a6cc6b/pages/24-testing-and-snapshots.md): cargo nextest vs cargo test, insta snapshot workflow, required pipeline test binaries, rule-level test patterns, Test262 round-trip coverage, and pre-commit verification matrix. ## Source Files - `.cargo/config.toml` - `.config/nextest.toml` - `.github/ISSUE_TEMPLATE/bug_report.yml` - `.github/workflows/playground.yml` - `.github/workflows/rust-ci.yml` - `.github/workflows/rust-release.yml` - `AGENTS.md` - `Cargo.toml` - `CONTRIBUTING.md` - `crates/cli/src/discovery.rs` - `crates/cli/src/formatter.rs` - `crates/cli/src/json_output.rs` - `crates/cli/src/main.rs` - `crates/cli/src/output.rs` - `crates/core/src/driver.rs` - `crates/core/src/driver/types.rs` - `crates/core/src/driver/unpack.rs` - `crates/core/src/facts.rs` - `crates/core/src/lib.rs` - `crates/core/src/namespace_decomposition.rs` - `crates/core/src/rules/cross_module_helper_refs.rs` - `crates/core/src/rules/helper_matcher.rs` - `crates/core/src/rules/import_dedup.rs` - `crates/core/src/rules/match_context.rs` - `crates/core/src/rules/mod.rs` - `crates/core/src/rules/pipeline.rs` - `crates/core/src/rules/rename_utils.rs` - `crates/core/src/rules/transpiler_helper_utils/mod.rs` - `crates/core/src/sourcemap_rename.rs` - `crates/core/src/tdz_check.rs` - `crates/core/src/unpacker/browserify.rs` - `crates/core/src/unpacker/esbuild.rs` - `crates/core/src/unpacker/mod.rs` - `crates/core/src/unpacker/scope_hoist.rs` - `crates/core/src/unpacker/webpack4.rs` - `crates/core/src/unpacker/webpack5.rs` - `crates/formatter/src/lib.rs` - `crates/wasm/src/lib.rs` - `docs/architecture.md` - `docs/debugging.md` - `docs/fact-system.md` - `docs/helper-detection.md` - `docs/learnings/helper-detection-pattern-engine.md` - `docs/releasing.md` - `docs/rewrite-assumptions.md` - `docs/rule-dependency-inventory.md` - `docs/test262-roundtrip.md` - `docs/testing.md` - `npm/bin/wakaru` - `npm/package.json` - `playground/package.json` - `playground/scripts/build-wasm.mjs` - `playground/vite.config.ts` - `README.md` - `scripts/correctness/test262-roundtrip.mjs` - `testcases/browserify/dist/index.js` - `testcases/browserify/README.md` - `testcases/webpack4/dist/index.js` - `testcases/webpack4/README.md` - `testcases/webpack4/webpack.config.js` - `testcases/webpack5/dist/index.js` - `testcases/webpack5/README.md` - `testcases/webpack5/webpack.config.mjs`