Socket
Socket
Sign inDemoInstall

rollup-plugin-codefend

Package Overview
Dependencies
15
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    rollup-plugin-codefend

Rollup plugin for code obfuscation based on Codefend


Version published
Maintainers
1
Install size
2.68 MB
Created

Readme

Source

rollup-plugin-codefend

Rollup plugin for code obfuscation based on Codefend

Installation

npm install -D rollup-plugin-codefend

Usage

Step 1: Configuration

Add to your rollup.config.js:

Default options
import { codefend } from "rollup-plugin-codefend";

export default {
  input:...,
  output: ...,
  plugins: [codefend()],
};
Custom options
import { codefend } from "rollup-plugin-codefend";

export default {
  input: ...,
  output: ...,
  plugins: [
    codefend({
      /** stats: boolean
      * Displays detailed stats about the obfuscated words:
      * e.g:
      * Ignored node_modules (5 times)
      * Predefined l_Hello -> l_Hi (2 times)
      * Encrypted l_a -> Ox0 (15 times)
      */
      stats: true,


      /** prefix: string
      * the prefix of each variable generated.
      * note: the first letter of the prefix must be either an alphabet or "_" so that the variable generated be valid.
      */
      prefix: "Ox",

      /** predefinedWords: Array<{originalWord:string, targetWord:string}>
      * words that you want to obfuscate them in a static way (determined output)
      * {"originalWord":"l_secretVar" , "targetWord": "123456"}
      * note: the original word must have a prefix 'l_' to be detected in the first place so that it gets replaced.
      */
      predefinedWords: [
        {
          originalWord: "predefined_secretword",
          targetWord: "123456",
        },
      ],

      /** ignoredWords: Array<string>
      * Words that matches the pattern to be obfuscated but should be kept as is without being obfuscated.
      * useful for words that are being obfuscated and causing errors when running or building the code
      */
      ignoredWords: ["node_modules"],

      /** regexList: Array<{name:string,value:string,flag:string}>
       * Regex for detecting the words to be obfuscated
       */
      regexList: [
        {
          name: "main",
          value: "([a-zA-Z]+(_[a-zA-Z0-9]+)+)",
          flag: "g",
        },
      ],
    }),
  ],
};

Step 2: Naming convention

In your code, add prefixes to the words that you want Codefend to encrypt.

Make sure to read the Philosophy behind Codefend obfuscation First to understand why Codefend can work with any code written in any language.

//node js example
//as a starting point:  prefix the words that should be encrypted with l_

class l_Calculator {
  l_sum(l_a, l_b) {
    const l_results = l_a + l_b;
    console.log("node_modules");
    return l_results;
  }
}

//>>>>>>==== Will Become ======<<<<<<

class Ox0 {
  Ox1(Ox2, Ox3) {
    const Ox4 = Ox2 + Ox3;
    console.log("node_modules"); // will not be obfuscated as it is added to ignoredWords in Codefend options
    return Ox4;
  }
}
<!-- Html example, can work also with Angular,React,Vue,Svelte... in the same way -->

<html>
  <head>
    <style>
      .l_red {
        color: red;
      }
    </style>
  </head>
  <body>
    <div class="l_red">l_secret</div>
    <div class="l_red">Hello World</div>
  </body>
</html>

<!-- Will Become -->

<html>
  <head>
    <style>
      .Ox1 {
        color: red;
      }
    </style>
  </head>
  <body>
    <div class="Ox1">Ox0</div>
    <div class="Ox1">Hello World</div>
  </body>
</html>

Examples

  1. Node js

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Keywords

FAQs

Last updated on 15 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc