CLAUDE.md · javascript-obfuscator/javascript-obfuscator
CLAUDE.md from javascript-obfuscator/javascript-obfuscator: 1504 lines covering Project Overview, Key Features, Architecture Overview, Core Workflow and more.
Template by javascript-obfuscator
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/javascript-obfuscator/javascript-obfuscator/master/CLAUDE.md -o CLAUDE.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: code-generation, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A CLAUDE.md file: project memory Claude Code loads at the start of every session.
- For
- Claude Code
- Length
- 1,504 lines
- File
CLAUDE.md
Sections
- Project Overview
- Key Features
- Architecture Overview
- Core Workflow
- Key Components Deep Dive
- Important Patterns and Conventions
- CLI Usage
- API Usage
- Browser Support
- Build System
- Testing
- Linting
- Development Workflow
- Performance Considerations
- Security Considerations
- Conditional Comments
- Integration with Build Tools
- Common Issues and Solutions
- Extension Points
- TypeScript Configuration
First lines (shown under the repo's BSD-2-Clause license)
# JavaScript Obfuscator - Project Documentation ## Project Overview **JavaScript Obfuscator** is a powerful, enterprise-grade code obfuscation tool for JavaScript and Node.js applications. It transforms readable JavaScript code into a protected, difficult-to-understand format while maintaining full functionality. The project is widely used for protecting intellectual property and preventing reverse engineering. - **Version**: 5.0.0 - **Author**: Timofei Kachalov (@sanex3339) - **License**: BSD-2-Clause - **Repository**: https://github.com/javascript-obfuscator/javascript-obfuscator - **Homepage**: https://obfuscator.io/ - **Node Requirement**: >=18.0.0 ## Key Features ### Core Obfuscation Techniques 1. **Variable & Function Renaming**: Replaces identifiable names with cryptic hexadecimal or mangled identifiers 2. **String Extraction & Encryption**: Moves string literals to an encoded array with base64/rc4 encryption 3. **Dead Code Injection**: Inserts non-functional code blocks to confuse static analysis 4. **Control Flow Flattening**: Restructures code flow using switch statements to obscure logic 5. **Code Transformations**: Multiple AST-level transformations including: - Boolean literal obfuscation - Number to expression conversion - Object key transformation - Template literal transformation - Property renaming (safe/unsafe modes) ### Advanced Protection Features - **Self-Defending Code**: Code that breaks when beautified or modified - **Debug Protection**: Anti-debugging mechanisms to prevent DevTools usage - **Domain Lock**: Restricts code execution to specific domains/subdomains - **Console Output Disabling**: Removes console.* functionality - **Unicode Escape Sequences**: Additional string obfuscation layer ## Architecture Overview ### Technology Stack - **Language**: TypeScript 4.9.5 - **Parser**: Acorn 8.8.2 (ES3-ES2020 support) - **Code Generator**: @javascript-obfuscator/escodegen 2.3.0 - **AST Traversal**: @javascript-obfuscator/estraverse 5.4.0 - **DI Framework**: InversifyJS 7.10.8 - **Testing**: Mocha 10.4.0 + Chai 4.3.7 - **Build System**: Webpack 5.75.0 ### Project Structure ``` javascript-obfuscator/ ├── src/ # Source code │ ├── JavaScriptObfuscator.ts # Main obfuscator class │ ├── JavaScriptObfuscatorFacade.ts # Public API facade │ ├── JavaScriptObfuscatorCLIFacade.ts # CLI interface │ ├── ASTParserFacade.ts # AST parsing wrapper │ │ │ ├── analyzers/ # Code analysis components │ │ ├── calls-graph-analyzer/ # Function call graph analysis │ │ ├── scope-analyzer/ # Variable scope analysis │ │ ├── string-array-storage-analyzer/ # String array optimization │ │ ├── number-numerical-expression-analyzer/ │ │ └── prevailing-kind-of-variables-analyzer/ │ │ │ ├── node-transformers/ # AST transformation pipeline │ │ ├── AbstractNodeTransformer.ts │ │ ├── NodeTransformersRunner.ts │ │ ├── converting-transformers/ # Node type conversions │ │ ├── control-flow-transformers/ # Control flow flattening │ │ ├── dead-code-injection-transformers/ # Dead code generation │ │ ├── finalizing-transformers/ # Post-processing transforms │ │ ├── initializing-transformers/ # Pre-processing transforms │ │ ├── preparing-transformers/ # Preparation phase │ │ ├── rename-identifiers-transformers/ # Variable renaming │ │ ├── rename-properties-transformers/ # Property renaming │ │ ├── simplifying-transformers/ # Code simplification │ │ └── string-array-transformers/ # String array handling │ │ │ ├── code-transformers/ # Code-level (not AST) transformers │ │ ├── AbstractCodeTransformer.ts │ │ ├── CodeTransformersRunner.ts │ │ └── CodeTransformerNamesGroupsBuilder.ts │ │ │ ├── custom-code-helpers/ # Injectable code helpers │ │ ├── common/ # Global variable templates │ │ ├── console-output/ # Console disabling templates │ │ ├── debug-protection/ # Anti-debugging templates │ │ ├── domain-lock/ # Domain restriction templates │ │ ├── self-defending/ # Self-defense templates │ │ └── string-array/ # String array wrapper templates │ │ │ ├── custom-nodes/ # Custom AST node generators │ │ ├── control-flow-flattening-nodes/ │ │ ├── dead-code-injection-nodes/ │ │ ├── object-expression-keys-transformer-nodes/ │ │ └── string-array-nodes/ │ │ │ ├── container/ # Dependency injection │ │ ├── InversifyContainerFacade.ts │ │ ├── ServiceIdentifiers.ts │ │ └── modules/ # DI module definitions │ │ │ ├── options/ # Configuration system │ │ ├── Options.ts │ │ ├── OptionsNormalizer.ts │ │ ├── validators/ # Option validation │ │ ├── normalizer-rules/ # Option normalization │ │ └── presets/ # Obfuscation presets │ │ │ ├── storages/ # Data storage components │ │ ├── string-array-transformers/ │ │ ├── control-flow-transformers/ │ │ ├── custom-code-helpers/ │ │ └── identifier-names-cache/ │ │ │ ├── node/ # AST node utilities │ │ ├── NodeGuards.ts # Type guards │ │ ├── NodeFactory.ts # Node creation │ │ ├── NodeAppender.ts # Node insertion │ │ ├── NodeStatementUtils.ts │ │ └── NodeUtils.ts │ │ │ ├── generators/ # Name/value generators │ │ ├── identifier-names-generators/ │ │ └── string-array-index-nodes-generators/ │ │ │ ├── utils/ # Utility functions │ │ ├── RandomGenerator.ts │ │ ├── ArrayUtils.ts │ │ ├── CryptUtils.ts │ │ ├── LevelledTopologicalSorter.ts │ │ └── Utils.ts │ │ │ ├── cli/ # CLI utilities │ │ ├── sanitizers/ # Input sanitizers │ │ └── utils/ # File handling │ │ │ ├── enums/ # Enumerations │ ├── interfaces/ # TypeScript interfaces │ ├── types/ # Type definitions │ ├── constants/ # Constants │ ├── decorators/ # Decorators │ └── logger/ # Logging system │ ├── test/ # Test suite │ ├── functional-tests/ # Feature tests │ ├── unit-tests/ # Unit tests │ ├── performance-tests/ # Performance benchmarks │ └── index.spec.ts │ ├── webpack/ # Build configurations │ ├── webpack.node.config.js │ └── webpack.browser.config.js │ ├── dist/ # Compiled output │ ├── index.js # Node.js bundle │ └── index.browser.js # Browser bundle │ ├── bin/ # CLI executable
Signals
- Stars
- 16,313
- Forks
- 1,745
- Open issues
- 18
- Last commit (this folder)
- Jul 29, 2026 (3 months ago)
- Last release
- Oct 4, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- BSD-2-Clause
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Cite this page
CLAUDE.md · javascript-obfuscator/javascript-obfuscator. Agent Mart. https://agentmart.dev/templates/javascript-obfuscator-javascript-obfuscator-claude-md (last updated 2026-10-24)