https://github.com/codefend/rollup-plugin-codefend
Rollup plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.
https://github.com/codefend/rollup-plugin-codefend
codefend obfuscation rollup rollup-plugin uglify
Last synced: 8 months ago
JSON representation
Rollup plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.
- Host: GitHub
- URL: https://github.com/codefend/rollup-plugin-codefend
- Owner: Codefend
- License: mit
- Created: 2023-01-10T10:32:18.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T11:28:23.000Z (over 1 year ago)
- Last Synced: 2024-11-09T11:20:45.837Z (over 1 year ago)
- Topics: codefend, obfuscation, rollup, rollup-plugin, uglify
- Language: TypeScript
- Homepage:
- Size: 1.3 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# rollup-plugin-codefend





Rollup plugin for code obfuscation based on [Codefend](https://www.npmjs.com/package/codefend)
## Installation
```bash
npm install -D rollup-plugin-codefend
```
## Usage
### `Step 1`: Configuration
Add to your `rollup.config.js`:
#### Default options
```js
import { codefend } from "rollup-plugin-codefend";
export default {
input:...,
output: ...,
plugins: [codefend()],
};
```
#### Custom options
```js
import { codefend } from "rollup-plugin-codefend";
export default {
input: ...,
output: ...,
plugins: [
codefend({
transformation:{
// the prefix to use for each obfuscated variable
prefix: "Ox",
// control how a specific variable should be obfuscated
static: [
{
from: "predefined_secret",
to: "123456",
},
],
//will skip obfuscation for the following words
ignore: ["node_modules"],
/* By using everyday words such as books or lorem ipsum in the pool,
you can subtly obfuscate your code,
concealing its true nature without making it apparent that obfuscation is occurring.*/
pool: ["QueenOfHeart"],
},
debug: {
// to display detailed stats about the words that have been obfuscated
stats: true,
},
}),
],
};
```
For a more detailed explanation, refer to the [configuration](https://codefend.github.io/docs/references/configuration) section of the `codefend` docs.
### `Step 2`: Naming convention
In your code, `add prefixes to the words that you want Codefend to encrypt.`
`Make sure to read the `[`Philosophy`](https://github.com/Codefend/core#philosophy)` behind Codefend obfuscation First to understand why Codefend can work with any code written in any language.`
```js
//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");
console.log("predefined_secret");
return l_results;
}
}
//>>>>>>==== Will Become ======<<<<<<
class QueenOfHeart /* 'QueenOfHeart' defined in pool*/ {
/* Ox1, Ox2... prefix transformation*/
Ox1(Ox2, Ox3) {
const Ox4 = Ox2 + Ox3;
console.log("node_modules"); // has not been obfuscated
console.log("123456"); // has transformed from "predefined_secret" to "123456"
return Ox4;
}
}
```
```html
.l_red {
color: red;
}
l_secret
Hello World
.Ox1 {
color: red;
}
Ox0
Hello World
```
## Examples
1. ### [`Node js`](./examples/nodejs/)
## 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](./LICENSE.md)