@bytehide/next-shield
v1.1.0
Published
Next.js plugin for ByteHide Shield obfuscation.
Downloads
631
Readme
@bytehide/next-shield for Next.js
@bytehide/next-shield
is a powerful plugin for Next.js projects that enables JavaScript obfuscation to enhance the security of your codebase. This plugin integrates seamlessly with your Next.js build process to obfuscate sensitive files, protecting your intellectual property.
Features
- Code Obfuscation: Protect your JavaScript code from reverse engineering.
- Customizable Options: Configure obfuscation settings to suit your needs.
- File Exclusion: Exclude specific files from obfuscation.
- Seamless Integration: Easily integrate with your Next.js project.
Installation
Install the plugin using npm or yarn:
npm install @bytehide/next-shield --save-dev
Usage
Basic Setup
To use the @bytehide/next-shield
, create a custom next.config.js
file and configure the plugin:
const { createShield } = require('@bytehide/next-shield');
const nextConfig: NextConfig = {
/* Config options here */
// reactStrictMode: true,
// distDir: 'build',
};
const shieldConfig = createShield({
projectToken: 'your-project-token', // Required: Your ByteHide project token
replace: true, // Optional: Replace original files
controlFlowFlattening: true, // Optional: Enable control flow flattening
debugProtection: false, // Optional: Enable debug protection
devtoolsBlocking: false, // Optional: Enable devtools blocking
exclude: ['_document.js'], // Optional: Exclude specific files
}, nextConfig);
module.exports = shieldConfig;
Shield Configuration Options
| Option | Type | Default | Description |
|----------------------|-----------|---------------|-----------------------------------------------------------------------------|
| projectToken
| string
| Required | Token provided by ByteHide for obfuscation. |
| replace
| boolean
| false
| Whether to replace original files with obfuscated versions. |
| obfuscatedExtension
| string
| .obf
| File extension for obfuscated files. |
| controlFlowFlattening
| boolean
| true
| Enhance obfuscation by flattening control flow in the code. |
| debugProtection
| boolean
| false
| Prevent debugging tools from analyzing your code. |
| devtoolsBlocking
| boolean
| false
| Block browser developer tools. |
| exclude
| string[]
| []
| List of filenames to exclude from obfuscation. |
How It Works
- During the Next.js build process, the plugin scans for JavaScript files in the build directory (
.next/
by default). - Excludes system and user-defined files.
- Sends the content of each file to the ByteHide obfuscation service.
- Saves the obfuscated code in the output directory.
Example
Here’s how an obfuscated file is generated:
- Input:
pages/index.js
- Output:
pages/index.obf.js
(ifreplace
isfalse
) or replaces the original file.
Limitations
- Requires a valid ByteHide project token.
- Obfuscation might slightly increase build time.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Happy coding but keep it safe with @bytehide/next-shield
! 🛡️