sanex3339 9 роки тому
батько
коміт
4396921530
43 змінених файлів з 2 додано та 923 видалено
  1. 0 20
      index.js
  2. 0 1
      index.js.map
  3. 2 1
      package.json
  4. 0 89
      src/Obfuscator.js
  5. 0 0
      src/Obfuscator.js.map
  6. 0 37
      src/Utils.js
  7. 0 1
      src/Utils.js.map
  8. 0 7
      src/enums/AppendState.js
  9. 0 1
      src/enums/AppendState.js.map
  10. 0 2
      src/interfaces/INode.js
  11. 0 1
      src/interfaces/INode.js.map
  12. 0 2
      src/interfaces/INodeObfuscator.js
  13. 0 1
      src/interfaces/INodeObfuscator.js.map
  14. 0 2
      src/interfaces/INodesGroup.js
  15. 0 1
      src/interfaces/INodesGroup.js.map
  16. 0 8
      src/node-groups/NodesGroup.js
  17. 0 1
      src/node-groups/NodesGroup.js.map
  18. 0 29
      src/node-groups/UnicodeArrayNodesGroup.js
  19. 0 1
      src/node-groups/UnicodeArrayNodesGroup.js.map
  20. 0 37
      src/node-obfuscators/FunctionDeclarationObfuscator.js
  21. 0 1
      src/node-obfuscators/FunctionDeclarationObfuscator.js.map
  22. 0 36
      src/node-obfuscators/FunctionObfuscator.js
  23. 0 1
      src/node-obfuscators/FunctionObfuscator.js.map
  24. 0 23
      src/node-obfuscators/LiteralObfuscator.js
  25. 0 1
      src/node-obfuscators/LiteralObfuscator.js.map
  26. 0 49
      src/node-obfuscators/MemberExpressionObfuscator.js
  27. 0 1
      src/node-obfuscators/MemberExpressionObfuscator.js.map
  28. 0 28
      src/node-obfuscators/MethodDefinitionObfuscator.js
  29. 0 1
      src/node-obfuscators/MethodDefinitionObfuscator.js.map
  30. 0 29
      src/node-obfuscators/NodeObfuscator.js
  31. 0 1
      src/node-obfuscators/NodeObfuscator.js.map
  32. 0 48
      src/node-obfuscators/ObjectExpressionObfuscator.js
  33. 0 1
      src/node-obfuscators/ObjectExpressionObfuscator.js.map
  34. 0 43
      src/node-obfuscators/VariableDeclarationObfuscator.js
  35. 0 1
      src/node-obfuscators/VariableDeclarationObfuscator.js.map
  36. 0 21
      src/nodes/Node.js
  37. 0 1
      src/nodes/Node.js.map
  38. 0 70
      src/nodes/UnicodeArrayNode.js
  39. 0 1
      src/nodes/UnicodeArrayNode.js.map
  40. 0 54
      src/nodes/UnicodeArrayRotateFunctionCallNode.js
  41. 0 1
      src/nodes/UnicodeArrayRotateFunctionCallNode.js.map
  42. 0 269
      src/nodes/UnicodeArrayRotateFunctionNode.js
  43. 0 0
      src/nodes/UnicodeArrayRotateFunctionNode.js.map

+ 0 - 20
index.js

@@ -1,20 +0,0 @@
-"use strict";
-const Obfuscator_1 = require('./src/Obfuscator');
-let escodegen = require('escodegen'), esprima = require('esprima');
-class JavaScriptObfuscator {
-    static obfuscate(sourceCode, options) {
-        let astTree = esprima.parse(sourceCode), obfuscator = new Obfuscator_1.Obfuscator(options);
-        obfuscator.obfuscateNode(astTree);
-        return JavaScriptObfuscator.generateCode(astTree);
-    }
-    static generateCode(astTree) {
-        return escodegen.generate(astTree, JavaScriptObfuscator.escodegenParams);
-    }
-}
-JavaScriptObfuscator.escodegenParams = {
-    format: {},
-    verbatim: 'x-verbatim-property'
-};
-exports.JavaScriptObfuscator = JavaScriptObfuscator;
-module.exports = JavaScriptObfuscator;
-//# sourceMappingURL=index.js.map

+ 0 - 1
index.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,6BAA2B,kBAAkB,CAAC,CAAA;AAI9C,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEjC;IAeI,OAAc,SAAS,CAAE,UAAkB,EAAE,OAAY;QACrD,IAAI,OAAO,GAAQ,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EACxC,UAAU,GAAe,IAAI,uBAAU,CAAC,OAAO,CAAC,CAAC;QAErD,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAElC,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAKD,OAAe,YAAY,CAAE,OAAY;QACrC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAC7E,CAAC;AACL,CAAC;AA1BkB,oCAAe,GAAQ;IAClC,MAAM,EAAE,EAEP;IACD,QAAQ,EAAE,qBAAqB;CAClC,CAAC;AATO,4BAAoB,uBA8BhC,CAAA;AAED,MAAM,CAAC,OAAO,GAAG,oBAAoB,CAAC"}

+ 2 - 1
package.json

@@ -21,7 +21,8 @@
     "tsc": "tsc",
     "tsc:w": "tsc -w",
     "lite": "lite-server",
-    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" "
+    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
+    "postinstall": "tsc"
   },
   "author": {
     "name": "sanex3339"

+ 0 - 89
src/Obfuscator.js

@@ -1,89 +0,0 @@
-"use strict";
-const AppendState_1 = require('./enums/AppendState');
-const FunctionDeclarationObfuscator_1 = require('./node-obfuscators/FunctionDeclarationObfuscator');
-const FunctionObfuscator_1 = require('./node-obfuscators/FunctionObfuscator');
-const LiteralObfuscator_1 = require('./node-obfuscators/LiteralObfuscator');
-const MemberExpressionObfuscator_1 = require('./node-obfuscators/MemberExpressionObfuscator');
-const MethodDefinitionObfuscator_1 = require('./node-obfuscators/MethodDefinitionObfuscator');
-const ObjectExpressionObfuscator_1 = require('./node-obfuscators/ObjectExpressionObfuscator');
-const UnicodeArrayNode_1 = require('./nodes/UnicodeArrayNode');
-const UnicodeArrayNodesGroup_1 = require('./node-groups/UnicodeArrayNodesGroup');
-const Utils_1 = require('./Utils');
-const VariableDeclarationObfuscator_1 = require('./node-obfuscators/VariableDeclarationObfuscator');
-let estraverse = require('estraverse');
-class Obfuscator {
-    constructor(options) {
-        this.nodes = new Map();
-        this.nodeObfuscators = new Map([
-            ['ClassDeclaration', [FunctionDeclarationObfuscator_1.FunctionDeclarationObfuscator]],
-            ['FunctionDeclaration', [
-                    FunctionDeclarationObfuscator_1.FunctionDeclarationObfuscator,
-                    FunctionObfuscator_1.FunctionObfuscator
-                ]],
-            ['ArrowFunctionExpression', [FunctionObfuscator_1.FunctionObfuscator]],
-            ['FunctionExpression', [FunctionObfuscator_1.FunctionObfuscator]],
-            ['MethodDefinition', [MethodDefinitionObfuscator_1.MethodDefinitionObfuscator]],
-            ['VariableDeclaration', [VariableDeclarationObfuscator_1.VariableDeclarationObfuscator]],
-            ['ObjectExpression', [ObjectExpressionObfuscator_1.ObjectExpressionObfuscator]],
-            ['MemberExpression', [MemberExpressionObfuscator_1.MemberExpressionObfuscator]],
-            ['Literal', [LiteralObfuscator_1.LiteralObfuscator]]
-        ]);
-        this.options = {
-            rotateUnicodeArray: true
-        };
-        Object.assign(this.options, options);
-    }
-    obfuscateNode(node) {
-        if (this.options['rotateUnicodeArray']) {
-            this.setNodesGroup('unicodeArrayNodesGroup', new UnicodeArrayNodesGroup_1.UnicodeArrayNodesGroup(node));
-        }
-        else {
-            this.setNode('unicodeArrayNode', new UnicodeArrayNode_1.UnicodeArrayNode(node, Utils_1.Utils.getRandomVariableName(UnicodeArrayNode_1.UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH)));
-        }
-        this.beforeObfuscation(node);
-        estraverse.replace(node, {
-            leave: (node, parent) => this.nodeController(node, parent)
-        });
-        this.afterObfuscation(node);
-    }
-    setNode(nodeName, node) {
-        this.nodes.set(nodeName, node);
-    }
-    setNodesGroup(groupName, nodesGroup) {
-        let nodes = nodesGroup.getNodes();
-        nodes.forEach((node, key) => {
-            this.nodes.set(key, node);
-        });
-    }
-    afterObfuscation(node) {
-        this.nodes.forEach((node) => {
-            if (node.getAppendState() === AppendState_1.AppendState.AfterObfuscation) {
-                node.appendNode();
-            }
-        });
-    }
-    beforeObfuscation(node) {
-        this.nodes.forEach((node) => {
-            if (node.getAppendState() === AppendState_1.AppendState.BeforeObfuscation) {
-                node.appendNode();
-            }
-        });
-    }
-    ;
-    nodeController(node, parent) {
-        switch (node.type) {
-            default:
-                this.initializeNodeObfuscators(node, parent);
-        }
-    }
-    initializeNodeObfuscators(node, parent) {
-        if (!this.nodeObfuscators.has(node.type)) {
-            return;
-        }
-        this.nodeObfuscators.get(node.type).forEach((obfuscator) => {
-            new obfuscator(this.nodes).obfuscateNode(node, parent);
-        });
-    }
-}
-exports.Obfuscator = Obfuscator;
-//# sourceMappingURL=Obfuscator.js.map

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
src/Obfuscator.js.map


+ 0 - 37
src/Utils.js

@@ -1,37 +0,0 @@
-"use strict";
-class Utils {
-    static arrayRotate(array, times, reverse = false) {
-        if (times < 0) {
-            return;
-        }
-        let newArray = array, temp;
-        while (times--) {
-            if (!reverse) {
-                temp = newArray.pop();
-                newArray.unshift(temp);
-            }
-            else {
-                temp = newArray.shift();
-                newArray.push(temp);
-            }
-        }
-        return newArray;
-    }
-    static decToHex(dec) {
-        return (dec + Math.pow(16, 6)).toString(16).substr(-6);
-    }
-    static getRandomInteger(min, max) {
-        return Math.floor(Math.random() * (max - min + 1)) + min;
-    }
-    static getRandomVariableName(length = 6) {
-        const prefix = '_0x';
-        return `${prefix}${(Utils.decToHex(Utils.getRandomInteger(10000, 9999999))).substr(0, length)}`;
-    }
-    static stringToUnicode(string) {
-        return `'${string.replace(/[\s\S]/g, (escape) => {
-            return `\\u${('0000' + escape.charCodeAt(0).toString(16)).slice(-4)}`;
-        })}'`;
-    }
-}
-exports.Utils = Utils;
-//# sourceMappingURL=Utils.js.map

+ 0 - 1
src/Utils.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"Utils.js","sourceRoot":"","sources":["Utils.ts"],"names":[],"mappings":";AAAA;IAOI,OAAc,WAAW,CAAE,KAAY,EAAE,KAAa,EAAE,OAAO,GAAY,KAAK;QAC5E,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC;QACX,CAAC;QAED,IAAI,QAAQ,GAAU,KAAK,EACvB,IAAS,CAAC;QAEd,OAAO,KAAK,EAAE,EAAE,CAAC;YACb,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC;IACpB,CAAC;IAMD,OAAc,QAAQ,CAAC,GAAW;QAC9B,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAOD,OAAc,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7D,CAAC;IAMD,OAAc,qBAAqB,CAAE,MAAM,GAAW,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC;QAErB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IACpG,CAAC;IAMD,OAAc,eAAe,CAAE,MAAc;QACzC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM;YACxC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,CAAC,CAAC,GAAG,CAAC;IACV,CAAC;AACL,CAAC;AAhEY,aAAK,QAgEjB,CAAA"}

+ 0 - 7
src/enums/AppendState.js

@@ -1,7 +0,0 @@
-"use strict";
-(function (AppendState) {
-    AppendState[AppendState["BeforeObfuscation"] = 0] = "BeforeObfuscation";
-    AppendState[AppendState["AfterObfuscation"] = 1] = "AfterObfuscation";
-})(exports.AppendState || (exports.AppendState = {}));
-var AppendState = exports.AppendState;
-//# sourceMappingURL=AppendState.js.map

+ 0 - 1
src/enums/AppendState.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"AppendState.js","sourceRoot":"","sources":["AppendState.ts"],"names":[],"mappings":";AAAA,WAAY,WAAW;IAAE,uEAAiB,CAAA;IAAE,qEAAgB,CAAA;AAAA,CAAC,EAAjD,mBAAW,KAAX,mBAAW,QAAsC;AAA7D,IAAY,WAAW,GAAX,mBAAiD,CAAA"}

+ 0 - 2
src/interfaces/INode.js

@@ -1,2 +0,0 @@
-"use strict";
-//# sourceMappingURL=INode.js.map

+ 0 - 1
src/interfaces/INode.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"INode.js","sourceRoot":"","sources":["INode.ts"],"names":[],"mappings":""}

+ 0 - 2
src/interfaces/INodeObfuscator.js

@@ -1,2 +0,0 @@
-"use strict";
-//# sourceMappingURL=INodeObfuscator.js.map

+ 0 - 1
src/interfaces/INodeObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"INodeObfuscator.js","sourceRoot":"","sources":["INodeObfuscator.ts"],"names":[],"mappings":""}

+ 0 - 2
src/interfaces/INodesGroup.js

@@ -1,2 +0,0 @@
-"use strict";
-//# sourceMappingURL=INodesGroup.js.map

+ 0 - 1
src/interfaces/INodesGroup.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"INodesGroup.js","sourceRoot":"","sources":["INodesGroup.ts"],"names":[],"mappings":""}

+ 0 - 8
src/node-groups/NodesGroup.js

@@ -1,8 +0,0 @@
-"use strict";
-class NodesGroup {
-    getNodes() {
-        return this.nodes;
-    }
-}
-exports.NodesGroup = NodesGroup;
-//# sourceMappingURL=NodesGroup.js.map

+ 0 - 1
src/node-groups/NodesGroup.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"NodesGroup.js","sourceRoot":"","sources":["NodesGroup.ts"],"names":[],"mappings":";AAIA;IASW,QAAQ;QACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;AACL,CAAC;AAZqB,kBAAU,aAY/B,CAAA"}

+ 0 - 29
src/node-groups/UnicodeArrayNodesGroup.js

@@ -1,29 +0,0 @@
-"use strict";
-const NodesGroup_1 = require('./NodesGroup');
-const UnicodeArrayNode_1 = require('../nodes/UnicodeArrayNode');
-const UnicodeArrayRotateFunctionCallNode_1 = require('../nodes/UnicodeArrayRotateFunctionCallNode');
-const UnicodeArrayRotateFunctionNode_1 = require('../nodes/UnicodeArrayRotateFunctionNode');
-const Utils_1 = require('../Utils');
-class UnicodeArrayNodesGroup extends NodesGroup_1.NodesGroup {
-    constructor(astTree) {
-        super();
-        this.unicodeArrayRotateFunctionIdentifier = Utils_1.Utils.getRandomVariableName();
-        let unicodeArrayName = Utils_1.Utils.getRandomVariableName(UnicodeArrayNode_1.UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH), unicodeArrayRotateValue = Utils_1.Utils.getRandomInteger(100, 500);
-        this.nodes = new Map([
-            [
-                'unicodeArrayNode',
-                new UnicodeArrayNode_1.UnicodeArrayNode(astTree, unicodeArrayName, unicodeArrayRotateValue)
-            ],
-            [
-                'unicodeArrayRotateFunctionNode',
-                new UnicodeArrayRotateFunctionNode_1.UnicodeArrayRotateFunctionNode(astTree, this.unicodeArrayRotateFunctionIdentifier, unicodeArrayName)
-            ],
-            [
-                'unicodeArrayRotateFunctionCallNode',
-                new UnicodeArrayRotateFunctionCallNode_1.UnicodeArrayRotateFunctionCallNode(astTree, this.unicodeArrayRotateFunctionIdentifier, unicodeArrayName, unicodeArrayRotateValue)
-            ]
-        ]);
-    }
-}
-exports.UnicodeArrayNodesGroup = UnicodeArrayNodesGroup;
-//# sourceMappingURL=UnicodeArrayNodesGroup.js.map

+ 0 - 1
src/node-groups/UnicodeArrayNodesGroup.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"UnicodeArrayNodesGroup.js","sourceRoot":"","sources":["UnicodeArrayNodesGroup.ts"],"names":[],"mappings":";AAEA,6BAA2B,cAAc,CAAC,CAAA;AAC1C,mCAAiC,2BAA2B,CAAC,CAAA;AAC7D,qDAAmD,6CAA6C,CAAC,CAAA;AACjG,iDAA+C,yCAAyC,CAAC,CAAA;AACzF,wBAAsB,UAAU,CAAC,CAAA;AAEjC,qCAA4C,uBAAU;IASlD,YAAa,OAAY;QACrB,OAAO,CAAC;QANJ,yCAAoC,GAAW,aAAK,CAAC,qBAAqB,EAAE,CAAC;QAQjF,IAAI,gBAAgB,GAAW,aAAK,CAAC,qBAAqB,CAAC,mCAAgB,CAAC,2BAA2B,CAAC,EACpG,uBAAuB,GAAW,aAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEvE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAkB;YAClC;gBACI,kBAAkB;gBAClB,IAAI,mCAAgB,CAChB,OAAO,EACP,gBAAgB,EAChB,uBAAuB,CAC1B;aACJ;YACD;gBACI,gCAAgC;gBAChC,IAAI,+DAA8B,CAC9B,OAAO,EACP,IAAI,CAAC,oCAAoC,EACzC,gBAAgB,CACnB;aACJ;YACD;gBACI,oCAAoC;gBACpC,IAAI,uEAAkC,CAClC,OAAO,EACP,IAAI,CAAC,oCAAoC,EACzC,gBAAgB,EAChB,uBAAuB,CAC1B;aACJ;SACJ,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AA3CY,8BAAsB,yBA2ClC,CAAA"}

+ 0 - 37
src/node-obfuscators/FunctionDeclarationObfuscator.js

@@ -1,37 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-const Utils_1 = require('../Utils');
-let estraverse = require('estraverse');
-class FunctionDeclarationObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    constructor(...args) {
-        super(...args);
-        this.functionName = new Map();
-    }
-    obfuscateNode(functionDeclarationNode, parentNode) {
-        if (parentNode.type === 'Program') {
-            return;
-        }
-        this.replaceFunctionName(functionDeclarationNode);
-        this.replaceFunctionCalls(parentNode);
-    }
-    replaceFunctionName(functionDeclarationNode) {
-        estraverse.replace(functionDeclarationNode.id, {
-            leave: (node) => {
-                if (node.type !== 'Identifier') {
-                    return;
-                }
-                this.functionName.set(node.name, Utils_1.Utils.getRandomVariableName());
-                node.name = this.functionName.get(node.name);
-            }
-        });
-    }
-    replaceFunctionCalls(functionParentNode) {
-        estraverse.replace(functionParentNode, {
-            leave: (node, parentNode) => {
-                this.replaceNodeIdentifierByNewValue(node, parentNode, this.functionName);
-            }
-        });
-    }
-}
-exports.FunctionDeclarationObfuscator = FunctionDeclarationObfuscator;
-//# sourceMappingURL=FunctionDeclarationObfuscator.js.map

+ 0 - 1
src/node-obfuscators/FunctionDeclarationObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"FunctionDeclarationObfuscator.js","sourceRoot":"","sources":["FunctionDeclarationObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAClD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAWvC,4CAAmD,+BAAc;IAAjE;QAAmD,eAAc;QAIrD,iBAAY,GAAyB,IAAI,GAAG,EAAoB,CAAC;IAyC7E,CAAC;IAnCU,aAAa,CAAE,uBAA4B,EAAE,UAAe;QAC/D,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAKO,mBAAmB,CAAE,uBAA4B;QACrD,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,EAAE;YAC3C,KAAK,EAAE,CAAC,IAAI;gBACR,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;oBAC7B,MAAM,CAAC;gBACX,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAKO,oBAAoB,CAAE,kBAAuB;QACjD,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AA7CY,qCAA6B,gCA6CzC,CAAA"}

+ 0 - 36
src/node-obfuscators/FunctionObfuscator.js

@@ -1,36 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-const Utils_1 = require('../Utils');
-let estraverse = require('estraverse');
-class FunctionObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    constructor(...args) {
-        super(...args);
-        this.functionParams = new Map();
-    }
-    obfuscateNode(functionNode) {
-        this.replaceFunctionParams(functionNode);
-        this.replaceFunctionParamsInBody(functionNode);
-    }
-    replaceFunctionParams(functionNode) {
-        functionNode.params.forEach((paramsNode) => {
-            estraverse.replace(paramsNode, {
-                leave: (node, parentNode) => {
-                    if (node.type !== 'Identifier') {
-                        return;
-                    }
-                    this.functionParams.set(node.name, Utils_1.Utils.getRandomVariableName());
-                    node.name = this.functionParams.get(node.name);
-                }
-            });
-        });
-    }
-    replaceFunctionParamsInBody(functionNode) {
-        estraverse.replace(functionNode.body, {
-            leave: (node, parentNode) => {
-                this.replaceNodeIdentifierByNewValue(node, parentNode, this.functionParams);
-            }
-        });
-    }
-}
-exports.FunctionObfuscator = FunctionObfuscator;
-//# sourceMappingURL=FunctionObfuscator.js.map

+ 0 - 1
src/node-obfuscators/FunctionObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"FunctionObfuscator.js","sourceRoot":"","sources":["FunctionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAClD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAUvC,iCAAwC,+BAAc;IAAtD;QAAwC,eAAc;QAI1C,mBAAc,GAAyB,IAAI,GAAG,EAAoB,CAAC;IAsC/E,CAAC;IAjCU,aAAa,CAAE,YAAiB;QACnC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAKO,qBAAqB,CAAE,YAAiB;QAC5C,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU;YACnC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;oBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;wBAC9B,MAAM,CAAC;oBACV,CAAC;oBAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;oBAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,2BAA2B,CAAE,YAAiB;QAClD,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;YAClC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAChF,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AA1CY,0BAAkB,qBA0C9B,CAAA"}

+ 0 - 23
src/node-obfuscators/LiteralObfuscator.js

@@ -1,23 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-let escodegen = require('escodegen'), estraverse = require('estraverse');
-class LiteralObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    obfuscateNode(literalNode, parentNode) {
-        if (parentNode.type === 'Property' && parentNode.key === literalNode) {
-            return;
-        }
-        switch (typeof literalNode.value) {
-            case 'string':
-                if (literalNode['x-verbatim-property']) {
-                    break;
-                }
-                literalNode['x-verbatim-property'] = {
-                    content: this.replaceLiteralStringByArrayElement(literalNode.value),
-                    precedence: escodegen.Precedence.Primary
-                };
-                break;
-        }
-    }
-}
-exports.LiteralObfuscator = LiteralObfuscator;
-//# sourceMappingURL=LiteralObfuscator.js.map

+ 0 - 1
src/node-obfuscators/LiteralObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"LiteralObfuscator.js","sourceRoot":"","sources":["LiteralObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAE/B,CAAC,CAFgD;AAEjD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,gCAAuC,+BAAc;IAK1C,aAAa,CAAE,WAAgB,EAAE,UAAe;QACnD,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC;QACX,CAAC;QAED,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,KAAK,QAAQ;gBACT,EAAE,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBACrC,KAAK,CAAC;gBACV,CAAC;gBAED,WAAW,CAAC,qBAAqB,CAAC,GAAG;oBACjC,OAAO,EAAG,IAAI,CAAC,kCAAkC,CAAC,WAAW,CAAC,KAAK,CAAC;oBACpE,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO;iBAC3C,CAAC;gBAEF,KAAK,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AAxBY,yBAAiB,oBAwB7B,CAAA"}

+ 0 - 49
src/node-obfuscators/MemberExpressionObfuscator.js

@@ -1,49 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-let escodegen = require('escodegen'), estraverse = require('estraverse');
-class MemberExpressionObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    obfuscateNode(memberExpressionNode) {
-        estraverse.replace(memberExpressionNode.property, {
-            leave: (node, parentNode) => {
-                switch (node.type) {
-                    case 'Literal':
-                        this.literalNodeController(node);
-                        break;
-                    case 'Identifier':
-                        if (memberExpressionNode.computed) {
-                            break;
-                        }
-                        memberExpressionNode.computed = true;
-                        this.identifierNodeController(node);
-                        break;
-                }
-            }
-        });
-    }
-    identifierNodeController(node) {
-        let nodeValue = node['name'];
-        node['type'] = 'Literal';
-        node['value'] = nodeValue;
-        node['raw'] = `'${nodeValue}'`;
-        node['x-verbatim-property'] = {
-            content: this.replaceLiteralStringByArrayElement(nodeValue),
-            precedence: escodegen['Precedence']['Primary']
-        };
-        delete node['name'];
-    }
-    literalNodeController(node) {
-        switch (typeof node.value) {
-            case 'string':
-                if (node['x-verbatim-property']) {
-                    break;
-                }
-                node['x-verbatim-property'] = {
-                    content: this.replaceLiteralStringByArrayElement(node.value),
-                    precedence: escodegen['Precedence']['Primary']
-                };
-                break;
-        }
-    }
-}
-exports.MemberExpressionObfuscator = MemberExpressionObfuscator;
-//# sourceMappingURL=MemberExpressionObfuscator.js.map

+ 0 - 1
src/node-obfuscators/MemberExpressionObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"MemberExpressionObfuscator.js","sourceRoot":"","sources":["MemberExpressionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAE/B,CAAC,CAFgD;AAEjD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,yCAAgD,+BAAc;IAInD,aAAa,CAAE,oBAAyB;QAC3C,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YAC9C,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,KAAK,SAAS;wBACV,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;wBAEjC,KAAK,CAAC;oBAEV,KAAK,YAAY;wBACb,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAChC,KAAK,CAAC;wBACV,CAAC;wBAED,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;wBAEpC,KAAK,CAAC;gBACd,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAcO,wBAAwB,CAAE,IAAS;QACvC,IAAI,SAAS,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,SAAS,GAAG,CAAC;QAC/B,IAAI,CAAC,qBAAqB,CAAC,GAAG;YAC1B,OAAO,EAAG,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC;YAC5D,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;SACjD,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAWO,qBAAqB,CAAE,IAAS;QACpC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxB,KAAK,QAAQ;gBACT,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBAC9B,KAAK,CAAC;gBACV,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,GAAG;oBAC1B,OAAO,EAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC7D,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;iBACjD,CAAC;gBAEF,KAAK,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AA7EY,kCAA0B,6BA6EtC,CAAA"}

+ 0 - 28
src/node-obfuscators/MethodDefinitionObfuscator.js

@@ -1,28 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-let estraverse = require('estraverse');
-class MethodDefinitionObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    constructor(...args) {
-        super(...args);
-        this.methodName = new Map();
-        this.ignoredNames = ['constructor'];
-    }
-    obfuscateNode(methodDefinitionNode, parentNode) {
-        this.replaceMethodName(methodDefinitionNode);
-    }
-    replaceMethodName(methodDefinitionNode) {
-        estraverse.replace(methodDefinitionNode.key, {
-            leave: (node) => {
-                if (node.type !== 'Identifier' ||
-                    this.ignoredNames.indexOf(node.name) >= 0 ||
-                    methodDefinitionNode.computed === true) {
-                    return;
-                }
-                methodDefinitionNode.computed = true;
-                node.name = this.replaceLiteralStringByArrayElement(node.name);
-            }
-        });
-    }
-}
-exports.MethodDefinitionObfuscator = MethodDefinitionObfuscator;
-//# sourceMappingURL=MethodDefinitionObfuscator.js.map

+ 0 - 1
src/node-obfuscators/MethodDefinitionObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"MethodDefinitionObfuscator.js","sourceRoot":"","sources":["MethodDefinitionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAGlD,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAWvC,yCAAgD,+BAAc;IAA9D;QAAgD,eAAc;QAIlD,eAAU,GAAyB,IAAI,GAAG,EAAoB,CAAC;QAK/D,iBAAY,GAAa,CAAC,aAAa,CAAC,CAAC;IA6BrD,CAAC;IAvBU,aAAa,CAAE,oBAAyB,EAAE,UAAe;QAC5D,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAKO,iBAAiB,CAAE,oBAAyB;QAChD,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,EAAE;YACzC,KAAK,EAAE,CAAC,IAAI;gBACR,EAAE,CAAC,CACC,IAAI,CAAC,IAAI,KAAK,YAAY;oBAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACzC,oBAAoB,CAAC,QAAQ,KAAK,IACtC,CAAC,CAAC,CAAC;oBACC,MAAM,CAAC;gBACX,CAAC;gBAED,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAtCY,kCAA0B,6BAsCtC,CAAA"}

+ 0 - 29
src/node-obfuscators/NodeObfuscator.js

@@ -1,29 +0,0 @@
-"use strict";
-const Utils_1 = require('../Utils');
-class NodeObfuscator {
-    constructor(nodes) {
-        this.nodes = nodes;
-    }
-    replaceNodeIdentifierByNewValue(node, parentNode, namesMap) {
-        if (node.type === 'Identifier' && namesMap.has(node.name)) {
-            if ((parentNode.type === 'Property' && parentNode.key === node) ||
-                (parentNode.type === 'MemberExpression' && parentNode.computed === false && parentNode.property === node)) {
-                return;
-            }
-            node.name = namesMap.get(node.name);
-        }
-    }
-    replaceLiteralStringByArrayElement(nodeValue) {
-        let value = Utils_1.Utils.stringToUnicode(nodeValue), unicodeArray = this.nodes.get('unicodeArrayNode').getNodeData(), sameIndex = unicodeArray.indexOf(value), index;
-        if (sameIndex < 0) {
-            index = unicodeArray.length;
-            unicodeArray.push(Utils_1.Utils.stringToUnicode(nodeValue));
-        }
-        else {
-            index = sameIndex;
-        }
-        return `${this.nodes.get('unicodeArrayNode').getNodeIdentifier()}[${index}]`;
-    }
-}
-exports.NodeObfuscator = NodeObfuscator;
-//# sourceMappingURL=NodeObfuscator.js.map

+ 0 - 1
src/node-obfuscators/NodeObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"NodeObfuscator.js","sourceRoot":"","sources":["NodeObfuscator.ts"],"names":[],"mappings":";AAIA,wBAAsB,UAAU,CAAC,CAAA;AAEjC;IASI,YAAY,KAA0B;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAaS,+BAA+B,CAAE,IAAS,EAAE,UAAe,EAAE,QAA8B;QACjG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxD,EAAE,CAAC,CACC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC;gBAC3D,CAAC,UAAU,CAAC,IAAI,KAAK,kBAAkB,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,CAC5G,CAAC,CAAC,CAAC;gBACC,MAAM,CAAC;YACX,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAMS,kCAAkC,CAAE,SAAiB;QAC3D,IAAI,KAAK,GAAW,aAAK,CAAC,eAAe,CAAC,SAAS,CAAC,EAChD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,EAC/D,SAAS,GAAW,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAC/C,KAAa,CAAC;QAElB,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,aAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,KAAK,GAAG,SAAS,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,EAAE,IAAI,KAAK,GAAG,CAAC;IACjF,CAAC;AACL,CAAC;AAxDqB,sBAAc,iBAwDnC,CAAA"}

+ 0 - 48
src/node-obfuscators/ObjectExpressionObfuscator.js

@@ -1,48 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-const Utils_1 = require('../Utils');
-let escodegen = require('escodegen'), estraverse = require('estraverse');
-class ObjectExpressionObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    obfuscateNode(objectExpressionNode) {
-        objectExpressionNode.properties.forEach((property) => {
-            estraverse.replace(property.key, {
-                leave: (node, parentNode) => {
-                    switch (node.type) {
-                        case 'Literal':
-                            this.literalNodeController(node);
-                            break;
-                        case 'Identifier':
-                            this.identifierNodeController(node);
-                            break;
-                    }
-                }
-            });
-        });
-    }
-    literalNodeController(node) {
-        switch (typeof node.value) {
-            case 'string':
-                if (node['x-verbatim-property']) {
-                    break;
-                }
-                node['x-verbatim-property'] = {
-                    content: Utils_1.Utils.stringToUnicode(node.value),
-                    precedence: escodegen['Precedence']['Primary']
-                };
-                break;
-        }
-    }
-    identifierNodeController(node) {
-        let nodeValue = node['name'];
-        node['type'] = 'Literal';
-        node['value'] = nodeValue;
-        node['raw'] = `'${nodeValue}'`;
-        node['x-verbatim-property'] = {
-            content: Utils_1.Utils.stringToUnicode(nodeValue),
-            precedence: escodegen['Precedence']['Primary']
-        };
-        delete node['name'];
-    }
-}
-exports.ObjectExpressionObfuscator = ObjectExpressionObfuscator;
-//# sourceMappingURL=ObjectExpressionObfuscator.js.map

+ 0 - 1
src/node-obfuscators/ObjectExpressionObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"ObjectExpressionObfuscator.js","sourceRoot":"","sources":["ObjectExpressionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAC/B,CAAC,CADgD;AACjD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAYvC,yCAAgD,+BAAc;IAInD,aAAa,CAAE,oBAAyB;QAC3C,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ;YAC7C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;oBACpB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAChB,KAAK,SAAS;4BACV,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;4BAEjC,KAAK,CAAC;wBAEV,KAAK,YAAY;4BACb,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;4BAEpC,KAAK,CAAC;oBACd,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,qBAAqB,CAAE,IAAS;QACpC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxB,KAAK,QAAQ;gBACT,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBAC9B,KAAK,CAAC;gBACV,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,GAAG;oBAC1B,OAAO,EAAG,aAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;iBACjD,CAAC;gBAEF,KAAK,CAAC;QACd,CAAC;IACL,CAAC;IAKO,wBAAwB,CAAE,IAAS;QACvC,IAAI,SAAS,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,SAAS,GAAG,CAAC;QAC/B,IAAI,CAAC,qBAAqB,CAAC,GAAG;YAC1B,OAAO,EAAG,aAAK,CAAC,eAAe,CAAC,SAAS,CAAC;YAC1C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;SACjD,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AA3DY,kCAA0B,6BA2DtC,CAAA"}

+ 0 - 43
src/node-obfuscators/VariableDeclarationObfuscator.js

@@ -1,43 +0,0 @@
-"use strict";
-const NodeObfuscator_1 = require('./NodeObfuscator');
-const Utils_1 = require('../Utils');
-let estraverse = require('estraverse');
-class VariableDeclarationObfuscator extends NodeObfuscator_1.NodeObfuscator {
-    constructor(...args) {
-        super(...args);
-        this.variableName = new Map();
-    }
-    obfuscateNode(variableDeclarationNode, parentNode) {
-        if (parentNode.type === 'Program') {
-            return;
-        }
-        this.replaceVariableName(variableDeclarationNode);
-        this.replaceVariableCalls(parentNode);
-    }
-    replaceVariableName(variableDeclarationNode) {
-        variableDeclarationNode.declarations.forEach((declarationNode) => {
-            estraverse.replace(declarationNode, {
-                leave: (node) => {
-                    if (node.type !== 'VariableDeclarator') {
-                        return;
-                    }
-                    estraverse.replace(node.id, {
-                        leave: (node) => {
-                            this.variableName.set(node.name, Utils_1.Utils.getRandomVariableName());
-                            node.name = this.variableName.get(node.name);
-                        }
-                    });
-                }
-            });
-        });
-    }
-    replaceVariableCalls(variableParentNode) {
-        estraverse.replace(variableParentNode, {
-            leave: (node, parentNode) => {
-                this.replaceNodeIdentifierByNewValue(node, parentNode, this.variableName);
-            }
-        });
-    }
-}
-exports.VariableDeclarationObfuscator = VariableDeclarationObfuscator;
-//# sourceMappingURL=VariableDeclarationObfuscator.js.map

+ 0 - 1
src/node-obfuscators/VariableDeclarationObfuscator.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"VariableDeclarationObfuscator.js","sourceRoot":"","sources":["VariableDeclarationObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAClD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAYvC,4CAAmD,+BAAc;IAAjE;QAAmD,eAAc;QAIrD,iBAAY,GAAyB,IAAI,GAAG,EAAoB,CAAC;IA+C7E,CAAC;IAzCU,aAAa,CAAE,uBAA4B,EAAE,UAAe;QAC/D,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAKO,mBAAmB,CAAE,uBAA4B;QACrD,uBAAuB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,eAAe;YACzD,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE;gBAChC,KAAK,EAAE,CAAC,IAAI;oBACR,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC;wBACrC,MAAM,CAAC;oBACX,CAAC;oBAED,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;wBACxB,KAAK,EAAE,CAAC,IAAI;4BACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;4BAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjD,CAAC;qBACJ,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,oBAAoB,CAAE,kBAAuB;QACjD,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAnDY,qCAA6B,gCAmDzC,CAAA"}

+ 0 - 21
src/nodes/Node.js

@@ -1,21 +0,0 @@
-"use strict";
-const AppendState_1 = require('../enums/AppendState');
-class Node {
-    constructor() {
-        this.appendState = AppendState_1.AppendState.BeforeObfuscation;
-    }
-    getAppendState() {
-        return this.appendState;
-    }
-    getNode() {
-        return this.node;
-    }
-    setNode(node) {
-        this.node = node;
-    }
-    updateNode() {
-        this.node = this.getNodeStructure();
-    }
-}
-exports.Node = Node;
-//# sourceMappingURL=Node.js.map

+ 0 - 1
src/nodes/Node.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"Node.js","sourceRoot":"","sources":["Node.ts"],"names":[],"mappings":";AAEA,8BAA4B,sBAAsB,CAAC,CAAA;AAEnD;IAWI;QAPU,gBAAW,GAAgB,yBAAW,CAAC,iBAAiB,CAAC;IAOnD,CAAC;IAOV,cAAc;QACjB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAKM,OAAO;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAKM,OAAO,CAAE,IAAS;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;AAML,CAAC;AA5CqB,YAAI,OA4CzB,CAAA"}

+ 0 - 70
src/nodes/UnicodeArrayNode.js

@@ -1,70 +0,0 @@
-"use strict";
-const Node_1 = require('./Node');
-const Utils_1 = require('../Utils');
-const AppendState_1 = require('../enums/AppendState');
-let escodegen = require('escodegen'), estraverse = require('estraverse');
-class UnicodeArrayNode extends Node_1.Node {
-    constructor(astTree, unicodeArrayName, unicodeArrayRotateValue = 0) {
-        super();
-        this.appendState = AppendState_1.AppendState.AfterObfuscation;
-        this.unicodeArray = [];
-        this.astTree = astTree;
-        this.unicodeArrayName = unicodeArrayName;
-        this.unicodeArrayRotateValue = unicodeArrayRotateValue;
-        this.node = this.getNodeStructure();
-    }
-    appendNode() {
-        estraverse.replace(this.astTree, {
-            leave: (node, parent) => {
-                switch (node.type) {
-                    case 'Program':
-                        node.body.unshift(this.getNode());
-                        break;
-                }
-            }
-        });
-    }
-    getNodeIdentifier() {
-        return this.unicodeArrayName;
-    }
-    getNodeData() {
-        return this.unicodeArray;
-    }
-    getNode() {
-        Utils_1.Utils.arrayRotate(this.unicodeArray, this.unicodeArrayRotateValue);
-        this.updateNode();
-        return this.node;
-    }
-    getNodeStructure() {
-        return {
-            'type': 'VariableDeclaration',
-            'declarations': [
-                {
-                    'type': 'VariableDeclarator',
-                    'id': {
-                        'type': 'Identifier',
-                        'name': this.unicodeArrayName
-                    },
-                    'init': {
-                        'type': 'ArrayExpression',
-                        'elements': this.unicodeArray.map((value) => {
-                            return {
-                                'type': 'Literal',
-                                'value': value,
-                                'raw': `'${value}'`,
-                                'x-verbatim-property': {
-                                    'content': value,
-                                    precedence: escodegen.Precedence.Primary
-                                }
-                            };
-                        })
-                    }
-                }
-            ],
-            'kind': 'var'
-        };
-    }
-}
-UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH = 4;
-exports.UnicodeArrayNode = UnicodeArrayNode;
-//# sourceMappingURL=UnicodeArrayNode.js.map

+ 0 - 1
src/nodes/UnicodeArrayNode.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"UnicodeArrayNode.js","sourceRoot":"","sources":["UnicodeArrayNode.ts"],"names":[],"mappings":";AAAA,uBAAqB,QAAQ,CAAC,CAAA;AAC9B,wBAAsB,UAAU,CAAC,CAAA;AAEjC,8BAA4B,sBAAsB,CAAC,CAAA;AAEnD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,+BAAsC,WAAI;IAyCtC,YAAa,OAAY,EAAE,gBAAwB,EAAE,uBAAuB,GAAW,CAAC;QACpF,OAAO,CAAC;QAjCF,gBAAW,GAAgB,yBAAW,CAAC,gBAAgB,CAAC;QAU1D,iBAAY,GAAa,EAAE,CAAC;QAyBhC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAEM,UAAU;QACb,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM;gBAChB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,KAAK,SAAS;wBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAElC,KAAK,CAAC;gBACd,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAKM,iBAAiB;QACpB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAKM,WAAW;QACd,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAKM,OAAO;QACV,aAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAKS,gBAAgB;QACtB,MAAM,CAAC;YACH,MAAM,EAAE,qBAAqB;YAC7B,cAAc,EAAE;gBACZ;oBACI,MAAM,EAAE,oBAAoB;oBAC5B,IAAI,EAAE;wBACF,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,IAAI,CAAC,gBAAgB;qBAChC;oBACD,MAAM,EAAE;wBACJ,MAAM,EAAE,iBAAiB;wBACzB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK;4BACpC,MAAM,CAAC;gCACH,MAAM,EAAE,SAAS;gCACjB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,IAAI,KAAK,GAAG;gCACnB,qBAAqB,EAAE;oCACnB,SAAS,EAAG,KAAK;oCACjB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO;iCAC3C;6BACJ,CAAC;wBACN,CAAC,CAAC;qBACL;iBACJ;aACJ;YACD,MAAM,EAAE,KAAK;SAChB,CAAC;IACN,CAAC;AACL,CAAC;AApHiB,4CAA2B,GAAW,CAAC,CAAC;AAJ7C,wBAAgB,mBAwH5B,CAAA"}

+ 0 - 54
src/nodes/UnicodeArrayRotateFunctionCallNode.js

@@ -1,54 +0,0 @@
-"use strict";
-const Node_1 = require('./Node');
-let estraverse = require('estraverse');
-class UnicodeArrayRotateFunctionCallNode extends Node_1.Node {
-    constructor(astTree, unicodeArrayRotateFunctionName, unicodeArrayName, unicodeArrayRotateValue) {
-        super();
-        this.astTree = astTree;
-        this.unicodeArrayRotateFunctionName = unicodeArrayRotateFunctionName;
-        this.unicodeArrayName = unicodeArrayName;
-        this.unicodeArrayRotateValue = unicodeArrayRotateValue;
-        this.node = this.getNodeStructure();
-    }
-    appendNode() {
-        estraverse.replace(this.astTree, {
-            leave: (node, parent) => {
-                switch (node.type) {
-                    case 'Program':
-                        node.body.unshift(this.getNode());
-                        break;
-                }
-            }
-        });
-    }
-    getNodeStructure() {
-        return {
-            'type': 'ExpressionStatement',
-            'expression': {
-                'type': 'CallExpression',
-                'callee': {
-                    'type': 'Identifier',
-                    'name': this.unicodeArrayRotateFunctionName
-                },
-                'arguments': [
-                    {
-                        'type': 'Identifier',
-                        'name': this.unicodeArrayName
-                    },
-                    {
-                        'type': 'Literal',
-                        'value': this.unicodeArrayRotateValue,
-                        'raw': `'${this.unicodeArrayRotateValue}'`
-                    },
-                    {
-                        'type': 'Literal',
-                        'value': true,
-                        'raw': 'true'
-                    }
-                ]
-            }
-        };
-    }
-}
-exports.UnicodeArrayRotateFunctionCallNode = UnicodeArrayRotateFunctionCallNode;
-//# sourceMappingURL=UnicodeArrayRotateFunctionCallNode.js.map

+ 0 - 1
src/nodes/UnicodeArrayRotateFunctionCallNode.js.map

@@ -1 +0,0 @@
-{"version":3,"file":"UnicodeArrayRotateFunctionCallNode.js","sourceRoot":"","sources":["UnicodeArrayRotateFunctionCallNode.ts"],"names":[],"mappings":";AAAA,uBAAqB,QAAQ,CAAC,CAAA;AAE9B,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,iDAAwD,WAAI;IAgCxD,YACI,OAAY,EACZ,8BAAsC,EACtC,gBAAwB,EACxB,uBAA+B;QAE/B,OAAO,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAC;QACrE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAEM,UAAU;QACb,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM;gBAChB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,KAAK,SAAS;wBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAElC,KAAK,CAAC;gBACd,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAKS,gBAAgB;QACtB,MAAM,CAAC;YACH,MAAM,EAAE,qBAAqB;YAC7B,YAAY,EAAE;gBACV,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE;oBACN,MAAM,EAAE,YAAY;oBACpB,MAAM,EAAE,IAAI,CAAC,8BAA8B;iBAC9C;gBACD,WAAW,EAAE;oBACT;wBACI,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,IAAI,CAAC,gBAAgB;qBAChC;oBACD;wBACI,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,IAAI,CAAC,uBAAuB;wBACrC,KAAK,EAAE,IAAI,IAAI,CAAC,uBAAuB,GAAG;qBAC7C;oBACD;wBACI,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ;SACJ,CAAC;IACN,CAAC;AACL,CAAC;AA3FY,0CAAkC,qCA2F9C,CAAA"}

+ 0 - 269
src/nodes/UnicodeArrayRotateFunctionNode.js

@@ -1,269 +0,0 @@
-"use strict";
-const Node_1 = require('./Node');
-const Utils_1 = require('../Utils');
-let estraverse = require('estraverse');
-class UnicodeArrayRotateFunctionNode extends Node_1.Node {
-    constructor(astTree, unicodeArrayRotateFunctionName, unicodeArrayName) {
-        super();
-        this.astTree = astTree;
-        this.unicodeArrayRotateFunctionName = unicodeArrayRotateFunctionName;
-        this.unicodeArrayName = unicodeArrayName;
-        this.node = this.getNodeStructure();
-    }
-    appendNode() {
-        estraverse.replace(this.astTree, {
-            leave: (node, parent) => {
-                switch (node.type) {
-                    case 'Program':
-                        node.body.push(this.getNode());
-                        break;
-                }
-            }
-        });
-    }
-    getNodeIdentifier() {
-        return this.unicodeArrayRotateFunctionName;
-    }
-    getNodeStructure() {
-        return {
-            'type': 'FunctionExpression',
-            'id': {
-                'type': 'Identifier',
-                'name': this.unicodeArrayRotateFunctionName
-            },
-            'params': [
-                {
-                    'type': 'Identifier',
-                    'name': 'array'
-                },
-                {
-                    'type': 'Identifier',
-                    'name': 'times'
-                },
-                {
-                    'type': 'Identifier',
-                    'name': 'reverse'
-                }
-            ],
-            'defaults': [],
-            'body': {
-                'type': 'BlockStatement',
-                'body': [
-                    {
-                        'type': 'IfStatement',
-                        'test': {
-                            'type': 'BinaryExpression',
-                            'operator': '<',
-                            'left': {
-                                'type': 'Identifier',
-                                'name': 'times'
-                            },
-                            'right': {
-                                'type': 'Literal',
-                                'value': 0,
-                                'raw': '0'
-                            }
-                        },
-                        'consequent': {
-                            'type': 'BlockStatement',
-                            'body': [
-                                {
-                                    'type': 'ReturnStatement',
-                                    'argument': null
-                                }
-                            ]
-                        },
-                        'alternate': null
-                    },
-                    {
-                        'type': 'ExpressionStatement',
-                        'expression': {
-                            'type': 'AssignmentExpression',
-                            'operator': '=',
-                            'left': {
-                                'type': 'Identifier',
-                                'name': 'reverse'
-                            },
-                            'right': {
-                                'type': 'LogicalExpression',
-                                'operator': '||',
-                                'left': {
-                                    'type': 'Identifier',
-                                    'name': 'reverse'
-                                },
-                                'right': {
-                                    'type': 'Literal',
-                                    'value': false,
-                                    'raw': 'false'
-                                }
-                            }
-                        }
-                    },
-                    {
-                        'type': 'VariableDeclaration',
-                        'declarations': [
-                            {
-                                'type': 'VariableDeclarator',
-                                'id': {
-                                    'type': 'Identifier',
-                                    'name': 'temp'
-                                },
-                                'init': null
-                            }
-                        ],
-                        'kind': 'var'
-                    },
-                    {
-                        'type': 'WhileStatement',
-                        'test': {
-                            'type': 'UpdateExpression',
-                            'operator': '--',
-                            'argument': {
-                                'type': 'Identifier',
-                                'name': 'times'
-                            },
-                            'prefix': false
-                        },
-                        'body': {
-                            'type': 'BlockStatement',
-                            'body': [
-                                {
-                                    'type': 'IfStatement',
-                                    'test': {
-                                        'type': 'UnaryExpression',
-                                        'operator': '!',
-                                        'argument': {
-                                            'type': 'Identifier',
-                                            'name': 'reverse'
-                                        },
-                                        'prefix': true
-                                    },
-                                    'consequent': {
-                                        'type': 'BlockStatement',
-                                        'body': [
-                                            {
-                                                'type': 'ExpressionStatement',
-                                                'expression': {
-                                                    'type': 'AssignmentExpression',
-                                                    'operator': '=',
-                                                    'left': {
-                                                        'type': 'Identifier',
-                                                        'name': 'temp'
-                                                    },
-                                                    'right': {
-                                                        'type': 'CallExpression',
-                                                        'callee': {
-                                                            'type': 'MemberExpression',
-                                                            'computed': true,
-                                                            'object': {
-                                                                'type': 'Identifier',
-                                                                'name': 'array'
-                                                            },
-                                                            'property': {
-                                                                'type': 'Literal',
-                                                                'name': 'pop',
-                                                                'x-verbatim-property': Utils_1.Utils.stringToUnicode('pop')
-                                                            }
-                                                        },
-                                                        'arguments': []
-                                                    }
-                                                }
-                                            },
-                                            {
-                                                'type': 'ExpressionStatement',
-                                                'expression': {
-                                                    'type': 'CallExpression',
-                                                    'callee': {
-                                                        'type': 'MemberExpression',
-                                                        'computed': true,
-                                                        'object': {
-                                                            'type': 'Identifier',
-                                                            'name': 'array'
-                                                        },
-                                                        'property': {
-                                                            'type': 'Literal',
-                                                            'name': 'unshift',
-                                                            'x-verbatim-property': Utils_1.Utils.stringToUnicode('unshift')
-                                                        }
-                                                    },
-                                                    'arguments': [
-                                                        {
-                                                            'type': 'Identifier',
-                                                            'name': 'temp'
-                                                        }
-                                                    ]
-                                                }
-                                            }
-                                        ]
-                                    },
-                                    'alternate': {
-                                        'type': 'BlockStatement',
-                                        'body': [
-                                            {
-                                                'type': 'ExpressionStatement',
-                                                'expression': {
-                                                    'type': 'AssignmentExpression',
-                                                    'operator': '=',
-                                                    'left': {
-                                                        'type': 'Identifier',
-                                                        'name': 'temp'
-                                                    },
-                                                    'right': {
-                                                        'type': 'CallExpression',
-                                                        'callee': {
-                                                            'type': 'MemberExpression',
-                                                            'computed': true,
-                                                            'object': {
-                                                                'type': 'Identifier',
-                                                                'name': 'array'
-                                                            },
-                                                            'property': {
-                                                                'type': 'Literal',
-                                                                'name': 'shift',
-                                                                'x-verbatim-property': Utils_1.Utils.stringToUnicode('shift')
-                                                            }
-                                                        },
-                                                        'arguments': []
-                                                    }
-                                                }
-                                            },
-                                            {
-                                                'type': 'ExpressionStatement',
-                                                'expression': {
-                                                    'type': 'CallExpression',
-                                                    'callee': {
-                                                        'type': 'MemberExpression',
-                                                        'computed': true,
-                                                        'object': {
-                                                            'type': 'Identifier',
-                                                            'name': 'array'
-                                                        },
-                                                        'property': {
-                                                            'type': 'Literal',
-                                                            'name': 'push',
-                                                            'x-verbatim-property': Utils_1.Utils.stringToUnicode('push')
-                                                        }
-                                                    },
-                                                    'arguments': [
-                                                        {
-                                                            'type': 'Identifier',
-                                                            'name': 'temp'
-                                                        }
-                                                    ]
-                                                }
-                                            }
-                                        ]
-                                    }
-                                }
-                            ]
-                        }
-                    }
-                ]
-            },
-            'generator': false,
-            'expression': false
-        };
-    }
-}
-exports.UnicodeArrayRotateFunctionNode = UnicodeArrayRotateFunctionNode;
-//# sourceMappingURL=UnicodeArrayRotateFunctionNode.js.map

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
src/nodes/UnicodeArrayRotateFunctionNode.js.map


Деякі файли не було показано, через те що забагато файлів було змінено