🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

esprimajs-x

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

esprimajs-x

es6-compatible javascript minifier

0.1.0
PyPI
Maintainers
1

esprimajs is a es6-compatible javascript minifier written by python. esprimajs uses esprima-python <https://github.com/Kronuz/esprima-python>__ as javascript parser library

Features


-  ES6 support
-  Mangling function and variable names
-  Ident output
-  Obfuscate strings

Installation

.. code:: shell

pip install esprimajs

Examples


Example javascript file

.. code:: javascript

    const Aconst = Math.PI, Bconst = "Bconst";
    const Cconst = "Cconst";

    function add(a, b){
            function foo(){
                    return a+b;
            }
            return foo();
    }

    const Dconst="Dconst";

    function mul(a, b){
            return a*b;
    }


    const Econst="Econst";
    let Alet="Alet";
    const Fconst="Fconst", Gconst="Gconst";


Rearrange and mangle variables:

.. code:: shell

    python -m esprimajs -r -mv 2 test.js

.. code:: javascript

    const Aconst=Math.PI,Bconst="Bconst",Cconst="Cconst";
    function add($a,$b){
      function foo(){
        return $a+$b;
      }
      return foo();
    }
    const Dconst="Dconst";
    function mul($a,$b){
      return $a*$b;
    }
    const Econst="Econst",Fconst="Fconst",Gconst="Gconst";
    let Alet="Alet";


Rearrange variables and mangle variables (include top-level) and function names (except top-level):

.. code:: shell

    python -m esprimajs -r -mv 1 --mf 2 test.js


.. code:: javascript

    const $a=Math.PI,$b="Bconst",$c="Cconst";
    function add($d,$e){
      function $f(){
        return $d+$e;
      }
      return $f();
    }
    const $d="Dconst";
    function mul($e,$f){
      return $e*$f;
    }
    const $e="Econst",$f="Fconst",$g="Gconst";
    let $h="Alet";

Rearrange variables and mangle variables and function names (include top level) without identing:

.. code:: shell

    python -m esprimajs -i 0 -r -mf 1 -mf 1 test.js

.. code:: javascript

    const $a=Math.PI,$b="Bconst",$c="Cconst";function $d($e,$f){function $g(){return $e+$f;}return $g();}const $e="Dconst";function $f($g,$h){return $g*$h;}const $g="Econst",$h="Fconst",$i="Gconst";let $j="Alet";


Obfuscate string and integers:

.. code:: shell

    echo 'const A=100,B=200; console.log(`a+b=${A+B}`);' | python -m esprimajs -os -oi -mv 1 -i 0
    const $a=0x64,$b=0o310;console.log(`\x61\x2b\x62\x3d${$a+$b}`);


API
~~~

Minify javascript string:

.. code:: python

    >>> from esprimajs import Minifier
    >>> c = Minifier(rearrange=True, mangle_variables=1)
    >>> js = """
    ... const A=1;
    ... const B=2;
    ... let C=3;
    ...
    ... class TestClass extends Object{
    ...   constructor(a, b){
    ...     this._a=a;
    ...     this.b=b;
    ...   }
    ...   static get a(){
    ...     return this._a;
    ...   }
    ...   set b(b){
    ...     this.b=b;
    ...   }
    ...
    ...   static async sum(){
    ...     return this.a+this.b
    ...   }
    ... }
    ... """
    >>> buf = c.minify(js)
    >>> print(buf.read())
    const $a=1,$b=2;
    let $c=3;
    class TestClass extends Object{
      constructor($d,$e){
        this._a=$d;
        this.b=$e;
      }
      static get a(){
        return this._a;
      }
      set b($d){
        this.b=$d;
      }
      static async sum(){
        return this.a+this.b;
      }
    }
    >>>

FAQs

Did you know?

Socket

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