@bytehide/next-shield
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

@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

  1. During the Next.js build process, the plugin scans for JavaScript files in the build directory (.next/ by default).
  2. Excludes system and user-defined files.
  3. Sends the content of each file to the ByteHide obfuscation service.
  4. 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 (if replace is false) 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! 🛡️

Package Sidebar

Install

npm i @bytehide/next-shield

Weekly Downloads

116

Version

1.1.0

License

MIT

Unpacked Size

25.1 kB

Total Files

6

Last publish

Collaborators

  • jespanag
  • vytehide
  • kikebytehide