# grunt-jjencode

> Grunt plugin to obfuscate using jjencode method

Latest version **0.1.0** (published 2013-12-23) · 0 weekly downloads

## Install

```sh
npm install grunt-jjencode
pnpm add grunt-jjencode
yarn add grunt-jjencode
bun add grunt-jjencode
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2013-12-23 |
| First published | 2013-12-23 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.8.0 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 7 |
| Author | Blai Pratdesaba |
| Maintainers | blaiprat |
| Keywords | gruntplugin, jjencode, obfuscate |

## Links

- npm: https://www.npmjs.com/package/grunt-jjencode
- Repository: https://github.com/blaiprat/grunt-jjencode
- npm.io page: https://npm.io/package/grunt-jjencode

## Alternatives

- [flatbuffers](https://npm.io/package/flatbuffers.md) — 6.0M weekly downloads
- [jwt-simple](https://npm.io/package/jwt-simple.md) — 259.5K weekly downloads
- [@exodus/patch-broken-hermes-typed-arrays](https://npm.io/package/@exodus/patch-broken-hermes-typed-arrays.md) — 28.5K weekly downloads
- [@native-to-anchor/buffer-layout](https://npm.io/package/@native-to-anchor/buffer-layout.md) — 12.2K weekly downloads
- [binary-parser-encoder](https://npm.io/package/binary-parser-encoder.md) — 5.3K weekly downloads

## Recent versions

- 0.1.0 (latest) — 2013-12-23
- 0.0.1 — 2013-12-23

## README

This is a Work In Progress
--------------------------
# grunt-jjencode
> Grunt plugin to obfuscate using jjencode method

## Disclaimer
I don't own or have developed 'jjencode' function, I found it [on this website](http://utf-8.jp/public/jjencode.html) but I don't know if they're the rightful owners. If anybody can point me to the rightfull owner please create a ticket and I'll update this description ASAP.

This plugin is designed to obfuscate code, given a simple code like:
```javascript
window.testInfo = {
    plugin: 'jjencode',
    taksRunner: 'grunt'
};
```
will generate the following output
```javascript
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+"\\"+$.__$+$.$$_+$.$$$+"\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$_$+$.$$_+$.$$_$+$._$+"\\"+$.__$+$.$$_+$.$$$+"."+$.__+$.$$$_+"\\"+$.__$+$.$$_+$._$$+$.__+"\\"+$.__$+$.__$+$.__$+"\\"+$.__$+$.$_$+$.$$_+$.$$$$+$._$+"\\"+$.$__+$.___+"=\\"+$.$__+$.___+"{\\"+$.__$+$._$_+"\\"+$.$__+$.___+"\\"+$.$__+$.___+"\\"+$.$__+$.___+"\\"+$.$__+$.___+"\\"+$.__$+$.$$_+$.___+(![]+"")[$._$_]+$._+"\\"+$.__$+$.$__+$.$$$+"\\"+$.__$+$.$_$+$.__$+"\\"+$.__$+$.$_$+$.$$_+":\\"+$.$__+$.___+"'\\"+$.__$+$.$_$+$._$_+"\\"+$.__$+$.$_$+$._$_+$.$$$_+"\\"+$.__$+$.$_$+$.$$_+$.$$__+$._$+$.$$_$+$.$$$_+"',\\"+$.__$+$._$_+"\\"+$.$__+$.___+"\\"+$.$__+$.___+"\\"+$.$__+$.___+"\\"+$.$__+$.___+$.__+$.$_$_+"\\"+$.__$+$.$_$+$._$$+"\\"+$.__$+$.$$_+$._$$+"\\"+$.__$+$._$_+$._$_+$._+"\\"+$.__$+$.$_$+$.$$_+"\\"+$.__$+$.$_$+$.$$_+$.$$$_+"\\"+$.__$+$.$$_+$._$_+":\\"+$.$__+$.___+"'\\"+$.__$+$.$__+$.$$$+"\\"+$.__$+$.$$_+$._$_+$._+"\\"+$.__$+$.$_$+$.$$_+$.__+"'\\"+$.__$+$._$_+"};"+"\"")())();
```
Notice that will generate a variable on the global scope. You can set up the variable using the options.

## Getting Started
This plugin requires Grunt.

If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

```shell
npm install grunt-jjencode --save-dev
```

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

```js
grunt.loadNpmTasks('grunt-jjencode');
```

## The "jjencode" task

### Overview
In your project's Gruntfile, add a section named `jjencode` to the data object passed into `grunt.initConfig()`.

```js
grunt.initConfig({
  jjencode: {
    options: {
      variable: '$'
    },
    your_target: {
      'result.js': ['source.js']
    },
  },
})
```

### Options

#### options.variable
Type: `String`
Default value: `'$'`

Variable where the encoded information will be attached to.


### Usage Examples

#### Default Options
In this example, the default options are used to do something with whatever. So if the `testing` file has the content `Testing` and the `123` file had the content `1 2 3`, the generated result would be `Testing, 1 2 3.`

```js
grunt.initConfig({
  jjencode: {
    options: {},
    files: {
      'dest/result.js': ['src/original.js', 'src/second_original.js'],
    },
  },
})
```

#### Custom Options
In this example, custom options are used to do something else with whatever else. So if the `testing` file has the content `Testing` and the `123` file had the content `1 2 3`, the generated result in this case would be `Testing: 1 2 3 !!!`

```js
grunt.initConfig({
  jjencode: {
    options: {
      variable: 'encoded'
    },
    files: {
      'dest/result.js: ['src/original.js', 'src/second_original.js'],
    },
  },
})
```

## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).

## Release History
  * 2013-12-23  v.0.0.1 Initial release.
  * 2013-12-23  v.0.1.0 First release, documentation and unit tests updated.

## License
Copyright (c) 2013 Blai Pratdesaba <hello@blaipratdesaba.com>. Licensed under the MIT license.

---
_Source: https://npm.io/package/grunt-jjencode · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
