Browse Source

move to awesome-typescript-loader (BROKEN)

sanex3339 8 years ago
parent
commit
43a70d3e27
67 changed files with 342 additions and 352 deletions
  1. 88 86
      dist/index.js
  2. 1 1
      package.json
  3. 4 4
      src/JavaScriptObfuscator.ts
  4. 7 7
      src/JavaScriptObfuscatorInternal.ts
  5. 4 4
      src/NodeUtils.ts
  6. 2 2
      src/Nodes.ts
  7. 1 1
      src/ObfuscationResult.ts
  8. 7 7
      src/Obfuscator.ts
  9. 6 6
      src/SourceMapCorrector.ts
  10. 1 1
      src/UnicodeArray.ts
  11. 2 2
      src/cli/CLIUtils.ts
  12. 7 7
      src/cli/JavaScriptObfuscatorCLI.ts
  13. 3 3
      src/custom-nodes/AbstractCustomNode.ts
  14. 5 5
      src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts
  15. 6 6
      src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts
  16. 6 6
      src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts
  17. 7 7
      src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts
  18. 6 6
      src/custom-nodes/domain-lock-nodes/DomainLockNode.ts
  19. 8 8
      src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts
  20. 8 8
      src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts
  21. 11 11
      src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts
  22. 7 7
      src/custom-nodes/unicode-array-nodes/UnicodeArrayNode.ts
  23. 11 11
      src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts
  24. 1 1
      src/enums/NodeType.ts
  25. 1 1
      src/interfaces/IGenerator.d.ts
  26. 1 1
      src/interfaces/IObfuscatorOptions.d.ts
  27. 1 1
      src/interfaces/IOptions.d.ts
  28. 1 1
      src/interfaces/ISourceMapCorrector.d.ts
  29. 1 1
      src/interfaces/custom-nodes/ICustomNode.d.ts
  30. 1 1
      src/interfaces/custom-nodes/ICustomNodeWithData.d.ts
  31. 1 1
      src/interfaces/custom-nodes/ICustomNodeWithIdentifier.d.ts
  32. 3 3
      src/node-groups/AbstractNodesGroup.ts
  33. 2 2
      src/node-groups/ConsoleOutputNodesGroup.ts
  34. 5 5
      src/node-groups/DebugProtectionNodesGroup.ts
  35. 3 3
      src/node-groups/DomainLockNodesGroup.ts
  36. 2 2
      src/node-groups/SelfDefendingNodesGroup.ts
  37. 7 7
      src/node-groups/UnicodeArrayNodesGroup.ts
  38. 3 3
      src/node-obfuscators/AbstractNodeObfuscator.ts
  39. 6 6
      src/node-obfuscators/CatchClauseObfuscator.ts
  40. 6 6
      src/node-obfuscators/FunctionDeclarationObfuscator.ts
  41. 6 6
      src/node-obfuscators/FunctionObfuscator.ts
  42. 4 4
      src/node-obfuscators/LiteralObfuscator.ts
  43. 3 3
      src/node-obfuscators/MemberExpressionObfuscator.ts
  44. 3 3
      src/node-obfuscators/MethodDefinitionObfuscator.ts
  45. 3 3
      src/node-obfuscators/ObjectExpressionObfuscator.ts
  46. 6 6
      src/node-obfuscators/VariableDeclarationObfuscator.ts
  47. 3 3
      src/node-obfuscators/replacers/AbstractReplacer.ts
  48. 2 2
      src/node-obfuscators/replacers/BooleanLiteralReplacer.ts
  49. 2 2
      src/node-obfuscators/replacers/IdentifierReplacer.ts
  50. 2 2
      src/node-obfuscators/replacers/NumberLiteralReplacer.ts
  51. 6 6
      src/node-obfuscators/replacers/StringLiteralReplacer.ts
  52. 6 6
      src/options/Options.ts
  53. 4 4
      src/options/OptionsNormalizer.ts
  54. 2 2
      src/preset-options/DefaultPreset.ts
  55. 2 2
      src/preset-options/NoCustomNodesPreset.ts
  56. 1 1
      src/templates/custom-nodes/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts
  57. 1 1
      src/templates/custom-nodes/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts
  58. 1 1
      src/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/SelfDefendingTemplate.ts
  59. 1 1
      src/templates/custom-nodes/unicode-array-nodes/unicode-array-rotate-function-node/SelfDefendingTemplate.ts
  60. 3 3
      src/types/TNodeObfuscator.d.ts
  61. 1 1
      src/types/TOptionsNormalizerRule.d.ts
  62. 1 1
      src/types/TSourceMapMode.d.ts
  63. 1 1
      src/types/custom-nodes/TUnicodeArrayCallsWrapper.d.ts
  64. 2 2
      src/types/custom-nodes/TUnicodeArrayNode.d.ts
  65. 1 14
      tsconfig-test.json
  66. 6 13
      tsconfig.json
  67. 16 8
      webpack.config.js

+ 88 - 86
dist/index.js

@@ -441,7 +441,7 @@ var Nodes = function () {
     }
 
     _createClass(Nodes, null, [{
-        key: "getProgramNode",
+        key: 'getProgramNode',
         value: function getProgramNode(bodyNode) {
             return {
                 'type': NodeType_1.NodeType.Program,
@@ -451,57 +451,57 @@ var Nodes = function () {
             };
         }
     }, {
-        key: "isArrowFunctionExpressionNode",
+        key: 'isArrowFunctionExpressionNode',
         value: function isArrowFunctionExpressionNode(node) {
             return node.type === NodeType_1.NodeType.ArrowFunctionExpression;
         }
     }, {
-        key: "isBlockStatementNode",
+        key: 'isBlockStatementNode',
         value: function isBlockStatementNode(node) {
             return node.type === NodeType_1.NodeType.BlockStatement;
         }
     }, {
-        key: "isCallExpressionNode",
+        key: 'isCallExpressionNode',
         value: function isCallExpressionNode(node) {
             return node.type === NodeType_1.NodeType.CallExpression;
         }
     }, {
-        key: "isFunctionDeclarationNode",
+        key: 'isFunctionDeclarationNode',
         value: function isFunctionDeclarationNode(node) {
             return node.type === NodeType_1.NodeType.FunctionDeclaration;
         }
     }, {
-        key: "isFunctionExpressionNode",
+        key: 'isFunctionExpressionNode',
         value: function isFunctionExpressionNode(node) {
             return node.type === NodeType_1.NodeType.FunctionExpression;
         }
     }, {
-        key: "isIdentifierNode",
+        key: 'isIdentifierNode',
         value: function isIdentifierNode(node) {
             return node.type === NodeType_1.NodeType.Identifier;
         }
     }, {
-        key: "isLiteralNode",
+        key: 'isLiteralNode',
         value: function isLiteralNode(node) {
             return node.type === NodeType_1.NodeType.Literal;
         }
     }, {
-        key: "isMemberExpressionNode",
+        key: 'isMemberExpressionNode',
         value: function isMemberExpressionNode(node) {
             return node.type === NodeType_1.NodeType.MemberExpression;
         }
     }, {
-        key: "isProgramNode",
+        key: 'isProgramNode',
         value: function isProgramNode(node) {
             return node.type === NodeType_1.NodeType.Program;
         }
     }, {
-        key: "isPropertyNode",
+        key: 'isPropertyNode',
         value: function isPropertyNode(node) {
             return node.type === NodeType_1.NodeType.Property;
         }
     }, {
-        key: "isReplaceableIdentifierNode",
+        key: 'isReplaceableIdentifierNode',
         value: function isReplaceableIdentifierNode(node, parentNode) {
             if (!Nodes.isIdentifierNode(node)) {
                 return false;
@@ -511,17 +511,17 @@ var Nodes = function () {
             return !parentNodeIsPropertyNode && !parentNodeIsMemberExpressionNode;
         }
     }, {
-        key: "isVariableDeclarationNode",
+        key: 'isVariableDeclarationNode',
         value: function isVariableDeclarationNode(node) {
             return node.type === NodeType_1.NodeType.VariableDeclaration;
         }
     }, {
-        key: "isVariableDeclaratorNode",
+        key: 'isVariableDeclaratorNode',
         value: function isVariableDeclaratorNode(node) {
             return node.type === NodeType_1.NodeType.VariableDeclarator;
         }
     }, {
-        key: "isNodeHasBlockStatement",
+        key: 'isNodeHasBlockStatement',
         value: function isNodeHasBlockStatement(node) {
             return node.hasOwnProperty('body') && Array.isArray(node.body);
         }
@@ -655,7 +655,7 @@ var JavaScriptObfuscator = function () {
     }
 
     _createClass(JavaScriptObfuscator, null, [{
-        key: "obfuscate",
+        key: 'obfuscate',
         value: function obfuscate(sourceCode) {
             var obfuscatorOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 
@@ -664,7 +664,7 @@ var JavaScriptObfuscator = function () {
             return javaScriptObfuscator.getObfuscationResult();
         }
     }, {
-        key: "runCLI",
+        key: 'runCLI',
         value: function runCLI(argv) {
             new JavaScriptObfuscatorCLI_1.JavaScriptObfuscatorCLI(argv).run();
         }
@@ -773,7 +773,7 @@ var IdentifierReplacer = function (_AbstractReplacer_1$A) {
     }
 
     _createClass(IdentifierReplacer, [{
-        key: "replace",
+        key: 'replace',
         value: function replace(nodeValue) {
             var obfuscatedIdentifierName = this.namesMap.get(nodeValue);
             if (!obfuscatedIdentifierName) {
@@ -782,14 +782,14 @@ var IdentifierReplacer = function (_AbstractReplacer_1$A) {
             return obfuscatedIdentifierName;
         }
     }, {
-        key: "storeNames",
+        key: 'storeNames',
         value: function storeNames(nodeName) {
             if (!this.isReservedName(nodeName)) {
                 this.namesMap.set(nodeName, Utils_1.Utils.getRandomVariableName());
             }
         }
     }, {
-        key: "isReservedName",
+        key: 'isReservedName',
         value: function isReservedName(name) {
             return this.options.reservedNames.some(function (reservedName) {
                 return new RegExp(reservedName, 'g').test(name);
@@ -831,7 +831,7 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) {
     }
 
     _createClass(StringLiteralReplacer, [{
-        key: "replace",
+        key: 'replace',
         value: function replace(nodeValue) {
             var replaceWithUnicodeArrayFlag = Math.random() <= this.options.unicodeArrayThreshold;
             if (this.options.encodeUnicodeLiterals && replaceWithUnicodeArrayFlag) {
@@ -844,7 +844,7 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) {
             return nodeValue;
         }
     }, {
-        key: "replaceStringLiteralWithUnicodeArrayCall",
+        key: 'replaceStringLiteralWithUnicodeArrayCall',
         value: function replaceStringLiteralWithUnicodeArrayCall(value) {
             var unicodeArrayNode = this.nodes.get('unicodeArrayNode');
             if (!unicodeArrayNode) {
@@ -866,9 +866,9 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) {
                 if (!unicodeArrayCallsWrapper) {
                     throw new ReferenceError('`unicodeArrayCallsWrapper` node is not found in Map with custom nodes.');
                 }
-                return unicodeArrayCallsWrapper.getNodeIdentifier() + "('" + hexadecimalIndex + "')";
+                return unicodeArrayCallsWrapper.getNodeIdentifier() + '(\'' + hexadecimalIndex + '\')';
             }
-            return unicodeArrayNode.getNodeIdentifier() + "[" + hexadecimalIndex + "]";
+            return unicodeArrayNode.getNodeIdentifier() + '[' + hexadecimalIndex + ']';
         }
     }]);
 
@@ -1038,13 +1038,13 @@ var NumberLiteralReplacer = function (_AbstractReplacer_1$A) {
     }
 
     _createClass(NumberLiteralReplacer, [{
-        key: "replace",
+        key: 'replace',
         value: function replace(nodeValue) {
             var prefix = '0x';
             if (!Utils_1.Utils.isInteger(nodeValue)) {
                 return String(nodeValue);
             }
-            return "" + prefix + Utils_1.Utils.decToHex(nodeValue);
+            return '' + prefix + Utils_1.Utils.decToHex(nodeValue);
         }
     }]);
 
@@ -1294,12 +1294,12 @@ var SourceMapCorrector = function () {
     }
 
     _createClass(SourceMapCorrector, [{
-        key: "correct",
+        key: 'correct',
         value: function correct() {
             return new ObfuscationResult_1.ObfuscationResult(this.correctObfuscatedCode(), this.sourceMap);
         }
     }, {
-        key: "correctObfuscatedCode",
+        key: 'correctObfuscatedCode',
         value: function correctObfuscatedCode() {
             if (!this.sourceMap) {
                 return this.obfuscatedCode;
@@ -1307,7 +1307,7 @@ var SourceMapCorrector = function () {
             var sourceMappingUrl = '//# sourceMappingURL=';
             switch (this.sourceMapMode) {
                 case SourceMapMode_1.SourceMapMode.Inline:
-                    sourceMappingUrl += "data:application/json;base64," + Utils_1.Utils.btoa(this.sourceMap, false);
+                    sourceMappingUrl += 'data:application/json;base64,' + Utils_1.Utils.btoa(this.sourceMap, false);
                     break;
                 case SourceMapMode_1.SourceMapMode.Separate:
                 default:
@@ -1317,7 +1317,7 @@ var SourceMapCorrector = function () {
                     sourceMappingUrl += this.sourceMapUrl;
                     break;
             }
-            return this.obfuscatedCode + "\n" + sourceMappingUrl;
+            return this.obfuscatedCode + '\n' + sourceMappingUrl;
         }
     }]);
 
@@ -1641,12 +1641,12 @@ var ConsoleOutputDisableExpressionNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(ConsoleOutputDisableExpressionNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             NodeUtils_1.NodeUtils.prependNode(blockScopeNode.body, this.getNode());
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             return NodeUtils_1.NodeUtils.convertCodeToStructure(ConsoleOutputDisableExpressionTemplate_1.ConsoleOutputDisableExpressionTemplate());
         }
@@ -1692,12 +1692,12 @@ var DebugProtectionFunctionCallNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(DebugProtectionFunctionCallNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             NodeUtils_1.NodeUtils.appendNode(blockScopeNode.body, this.getNode());
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             return NodeUtils_1.NodeUtils.convertCodeToStructure(DebufProtectionFunctionCallTemplate_1.DebugProtectionFunctionCallTemplate().formatUnicorn({
                 debugProtectionFunctionName: this.debugProtectionFunctionName
@@ -1745,12 +1745,12 @@ var DebugProtectionFunctionIntervalNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(DebugProtectionFunctionIntervalNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             NodeUtils_1.NodeUtils.appendNode(blockScopeNode.body, this.getNode());
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             return NodeUtils_1.NodeUtils.convertCodeToStructure(DebugProtectionFunctionIntervalTemplate_1.DebugProtectionFunctionIntervalTemplate().formatUnicorn({
                 debugProtectionFunctionName: this.debugProtectionFunctionName
@@ -1799,7 +1799,7 @@ var DebugProtectionFunctionNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(DebugProtectionFunctionNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             var programBodyLength = blockScopeNode.body.length,
                 randomIndex = Utils_1.Utils.getRandomGenerator().integer({
@@ -1809,12 +1809,12 @@ var DebugProtectionFunctionNode = function (_AbstractCustomNode_) {
             NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), randomIndex);
         }
     }, {
-        key: "getNodeIdentifier",
+        key: 'getNodeIdentifier',
         value: function getNodeIdentifier() {
             return this.debugProtectionFunctionName;
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             return NodeUtils_1.NodeUtils.convertCodeToStructure(DebugProtectionFunctionTemplate_1.DebugProtectionFunctionTemplate().formatUnicorn({
                 debugProtectionFunctionName: this.debugProtectionFunctionName
@@ -1864,12 +1864,12 @@ var DomainLockNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(DomainLockNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             NodeUtils_1.NodeUtils.prependNode(blockScopeNode.body, this.getNode());
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             var domainsString = this.options.domainLock.join(';');
             var _Utils_1$Utils$hideSt = Utils_1.Utils.hideString(domainsString, domainsString.length * 3);
@@ -1927,7 +1927,7 @@ var SelfDefendingUnicodeNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(SelfDefendingUnicodeNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             var programBodyLength = blockScopeNode.body.length,
                 randomIndex = 0;
@@ -1940,7 +1940,7 @@ var SelfDefendingUnicodeNode = function (_AbstractCustomNode_) {
             NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), randomIndex);
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(SelfDefendingTemplate_1.SelfDefendingTemplate(), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode());
         }
@@ -1991,7 +1991,7 @@ var UnicodeArrayCallsWrapper = function (_AbstractCustomNode_) {
     }
 
     _createClass(UnicodeArrayCallsWrapper, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             if (!this.unicodeArray.getLength()) {
                 return;
@@ -1999,17 +1999,17 @@ var UnicodeArrayCallsWrapper = function (_AbstractCustomNode_) {
             NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1);
         }
     }, {
-        key: "getNodeIdentifier",
+        key: 'getNodeIdentifier',
         value: function getNodeIdentifier() {
             return this.unicodeArrayCallsWrapperName;
         }
     }, {
-        key: "getNode",
+        key: 'getNode',
         value: function getNode() {
-            return _get(UnicodeArrayCallsWrapper.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayCallsWrapper.prototype), "getNode", this).call(this);
+            return _get(UnicodeArrayCallsWrapper.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayCallsWrapper.prototype), 'getNode', this).call(this);
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             var keyName = Utils_1.Utils.getRandomVariableName();
             return NodeUtils_1.NodeUtils.convertCodeToStructure(UnicodeArrayCallsWrapperTemplate_1.UnicodeArrayCallsWrapperTemplate().formatUnicorn({
@@ -2067,7 +2067,7 @@ var UnicodeArrayDecodeNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(UnicodeArrayDecodeNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             if (!this.unicodeArray.getLength()) {
                 return;
@@ -2075,12 +2075,12 @@ var UnicodeArrayDecodeNode = function (_AbstractCustomNode_) {
             NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1);
         }
     }, {
-        key: "getNode",
+        key: 'getNode',
         value: function getNode() {
-            return _get(UnicodeArrayDecodeNode.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayDecodeNode.prototype), "getNode", this).call(this);
+            return _get(UnicodeArrayDecodeNode.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayDecodeNode.prototype), 'getNode', this).call(this);
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             var forLoopFunctionName = 'forLoopFunc';
             var code = void 0;
@@ -2090,7 +2090,7 @@ var UnicodeArrayDecodeNode = function (_AbstractCustomNode_) {
                     unicodeArrayName: this.unicodeArrayName
                 });
             } else {
-                code = forLoopFunctionName + "();";
+                code = forLoopFunctionName + '();';
             }
             return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(UnicodeArrayDecodeNodeTemplate_1.UnicodeArrayDecodeNodeTemplate().formatUnicorn({
                 atobPolyfill: AtobTemplate_1.AtobTemplate(),
@@ -2235,7 +2235,7 @@ var UnicodeArrayRotateFunctionNode = function (_AbstractCustomNode_) {
     }
 
     _createClass(UnicodeArrayRotateFunctionNode, [{
-        key: "appendNode",
+        key: 'appendNode',
         value: function appendNode(blockScopeNode) {
             if (!this.unicodeArray.getLength()) {
                 return;
@@ -2243,12 +2243,12 @@ var UnicodeArrayRotateFunctionNode = function (_AbstractCustomNode_) {
             NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1);
         }
     }, {
-        key: "getNode",
+        key: 'getNode',
         value: function getNode() {
-            return _get(UnicodeArrayRotateFunctionNode.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayRotateFunctionNode.prototype), "getNode", this).call(this);
+            return _get(UnicodeArrayRotateFunctionNode.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayRotateFunctionNode.prototype), 'getNode', this).call(this);
         }
     }, {
-        key: "getNodeStructure",
+        key: 'getNodeStructure',
         value: function getNodeStructure() {
             var code = '',
                 timesName = Utils_1.Utils.getRandomVariableName(),
@@ -2259,7 +2259,7 @@ var UnicodeArrayRotateFunctionNode = function (_AbstractCustomNode_) {
                     whileFunctionName: whileFunctionName
                 });
             } else {
-                code = whileFunctionName + "(++" + timesName + ")";
+                code = whileFunctionName + '(++' + timesName + ')';
             }
             return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(UnicodeArrayRotateFunctionTemplate_1.UnicodeArrayRotateFunctionTemplate().formatUnicorn({
                 code: code,
@@ -2525,13 +2525,13 @@ var CatchClauseObfuscator = function (_AbstractNodeObfuscat) {
     }
 
     _createClass(CatchClauseObfuscator, [{
-        key: "obfuscateNode",
+        key: 'obfuscateNode',
         value: function obfuscateNode(catchClauseNode) {
             this.storeCatchClauseParam(catchClauseNode);
             this.replaceCatchClauseParam(catchClauseNode);
         }
     }, {
-        key: "storeCatchClauseParam",
+        key: 'storeCatchClauseParam',
         value: function storeCatchClauseParam(catchClauseNode) {
             var _this2 = this;
 
@@ -2542,7 +2542,7 @@ var CatchClauseObfuscator = function (_AbstractNodeObfuscat) {
             });
         }
     }, {
-        key: "replaceCatchClauseParam",
+        key: 'replaceCatchClauseParam',
         value: function replaceCatchClauseParam(catchClauseNode) {
             var _this3 = this;
 
@@ -2596,7 +2596,7 @@ var FunctionDeclarationObfuscator = function (_AbstractNodeObfuscat) {
     }
 
     _createClass(FunctionDeclarationObfuscator, [{
-        key: "obfuscateNode",
+        key: 'obfuscateNode',
         value: function obfuscateNode(functionDeclarationNode, parentNode) {
             if (parentNode.type === NodeType_1.NodeType.Program) {
                 return;
@@ -2605,7 +2605,7 @@ var FunctionDeclarationObfuscator = function (_AbstractNodeObfuscat) {
             this.replaceFunctionName(functionDeclarationNode);
         }
     }, {
-        key: "storeFunctionName",
+        key: 'storeFunctionName',
         value: function storeFunctionName(functionDeclarationNode) {
             var _this2 = this;
 
@@ -2616,7 +2616,7 @@ var FunctionDeclarationObfuscator = function (_AbstractNodeObfuscat) {
             });
         }
     }, {
-        key: "replaceFunctionName",
+        key: 'replaceFunctionName',
         value: function replaceFunctionName(functionDeclarationNode) {
             var _this3 = this;
 
@@ -2671,13 +2671,13 @@ var FunctionObfuscator = function (_AbstractNodeObfuscat) {
     }
 
     _createClass(FunctionObfuscator, [{
-        key: "obfuscateNode",
+        key: 'obfuscateNode',
         value: function obfuscateNode(functionNode) {
             this.storeFunctionParams(functionNode);
             this.replaceFunctionParams(functionNode);
         }
     }, {
-        key: "storeFunctionParams",
+        key: 'storeFunctionParams',
         value: function storeFunctionParams(functionNode) {
             var _this2 = this;
 
@@ -2690,7 +2690,7 @@ var FunctionObfuscator = function (_AbstractNodeObfuscat) {
             });
         }
     }, {
-        key: "replaceFunctionParams",
+        key: 'replaceFunctionParams',
         value: function replaceFunctionParams(functionNode) {
             var _this3 = this;
 
@@ -3049,7 +3049,7 @@ var VariableDeclarationObfuscator = function (_AbstractNodeObfuscat) {
     }
 
     _createClass(VariableDeclarationObfuscator, [{
-        key: "obfuscateNode",
+        key: 'obfuscateNode',
         value: function obfuscateNode(variableDeclarationNode, parentNode) {
             if (parentNode.type === NodeType_1.NodeType.Program) {
                 return;
@@ -3058,7 +3058,7 @@ var VariableDeclarationObfuscator = function (_AbstractNodeObfuscat) {
             this.replaceVariableNames(variableDeclarationNode, parentNode);
         }
     }, {
-        key: "storeVariableNames",
+        key: 'storeVariableNames',
         value: function storeVariableNames(variableDeclarationNode) {
             var _this2 = this;
 
@@ -3071,7 +3071,7 @@ var VariableDeclarationObfuscator = function (_AbstractNodeObfuscat) {
             });
         }
     }, {
-        key: "replaceVariableNames",
+        key: 'replaceVariableNames',
         value: function replaceVariableNames(variableDeclarationNode, variableParentNode) {
             var _this3 = this;
 
@@ -3119,7 +3119,7 @@ var BooleanLiteralReplacer = function (_AbstractReplacer_1$A) {
     }
 
     _createClass(BooleanLiteralReplacer, [{
-        key: "replace",
+        key: 'replace',
         value: function replace(nodeValue) {
             return nodeValue ? JSFuck_1.JSFuck.True : JSFuck_1.JSFuck.False;
         }
@@ -3153,6 +3153,7 @@ var __metadata = undefined && undefined.__metadata || function (k, v) {
     if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
 };
 var class_validator_1 = __webpack_require__(71);
+var TSourceMapMode_1 = __webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module \"app/types/TSourceMapMode\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
 var DefaultPreset_1 = __webpack_require__(20);
 var OptionsNormalizer_1 = __webpack_require__(55);
 var ValidationErrorsFormatter_1 = __webpack_require__(56);
@@ -3194,11 +3195,12 @@ __decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function
     require_valid_protocol: true
 }), __metadata('design:type', String)], Options.prototype, "sourceMapBaseUrl", void 0);
 __decorate([class_validator_1.IsString(), __metadata('design:type', String)], Options.prototype, "sourceMapFileName", void 0);
-__decorate([class_validator_1.IsIn(['inline', 'separate']), __metadata('design:type', String)], Options.prototype, "sourceMapMode", void 0);
+__decorate([class_validator_1.IsIn(['inline', 'separate']), __metadata('design:type', typeof (_a = typeof TSourceMapMode_1.TSourceMapMode !== 'undefined' && TSourceMapMode_1.TSourceMapMode) === 'function' && _a || Object)], Options.prototype, "sourceMapMode", void 0);
 __decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "unicodeArray", void 0);
 __decorate([class_validator_1.IsNumber(), class_validator_1.Min(0), class_validator_1.Max(1), __metadata('design:type', Number)], Options.prototype, "unicodeArrayThreshold", void 0);
 __decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "wrapUnicodeArrayCalls", void 0);
 exports.Options = Options;
+var _a;
 
 /***/ },
 /* 55 */
@@ -3219,7 +3221,7 @@ var OptionsNormalizer = function () {
     }
 
     _createClass(OptionsNormalizer, null, [{
-        key: "normalizeOptions",
+        key: 'normalizeOptions',
         value: function normalizeOptions(options) {
             var normalizedOptions = Object.assign({}, options);
             var _iteratorNormalCompletion = true;
@@ -3250,7 +3252,7 @@ var OptionsNormalizer = function () {
             return normalizedOptions;
         }
     }, {
-        key: "domainLockRule",
+        key: 'domainLockRule',
         value: function domainLockRule(options) {
             if (options.domainLock.length) {
                 var normalizedDomains = [];
@@ -3286,7 +3288,7 @@ var OptionsNormalizer = function () {
             return options;
         }
     }, {
-        key: "encodeUnicodeLiteralsRule",
+        key: 'encodeUnicodeLiteralsRule',
         value: function encodeUnicodeLiteralsRule(options) {
             if (options.unicodeArray && options.encodeUnicodeLiterals) {
                 Object.assign(options, OptionsNormalizer.ENCODE_UNICODE_LITERALS_OPTIONS);
@@ -3294,7 +3296,7 @@ var OptionsNormalizer = function () {
             return options;
         }
     }, {
-        key: "selfDefendingRule",
+        key: 'selfDefendingRule',
         value: function selfDefendingRule(options) {
             if (options.selfDefending) {
                 Object.assign(options, OptionsNormalizer.SELF_DEFENDING_OPTIONS);
@@ -3302,7 +3304,7 @@ var OptionsNormalizer = function () {
             return options;
         }
     }, {
-        key: "sourceMapBaseUrl",
+        key: 'sourceMapBaseUrl',
         value: function sourceMapBaseUrl(options) {
             var sourceMapBaseUrl = options.sourceMapBaseUrl;
             if (!options.sourceMapFileName) {
@@ -3313,25 +3315,25 @@ var OptionsNormalizer = function () {
             }
             if (sourceMapBaseUrl && !sourceMapBaseUrl.endsWith('/')) {
                 Object.assign(options, {
-                    sourceMapBaseUrl: sourceMapBaseUrl + "/"
+                    sourceMapBaseUrl: sourceMapBaseUrl + '/'
                 });
             }
             return options;
         }
     }, {
-        key: "sourceMapFileName",
+        key: 'sourceMapFileName',
         value: function sourceMapFileName(options) {
             var sourceMapFileName = options.sourceMapFileName;
             if (sourceMapFileName) {
                 sourceMapFileName = sourceMapFileName.replace(/^\/+/, '').split('.')[0];
                 Object.assign(options, {
-                    sourceMapFileName: sourceMapFileName + ".js.map"
+                    sourceMapFileName: sourceMapFileName + '.js.map'
                 });
             }
             return options;
         }
     }, {
-        key: "unicodeArrayRule",
+        key: 'unicodeArrayRule',
         value: function unicodeArrayRule(options) {
             if (!options.unicodeArray) {
                 Object.assign(options, OptionsNormalizer.DISABLED_UNICODE_ARRAY_OPTIONS);
@@ -3339,7 +3341,7 @@ var OptionsNormalizer = function () {
             return options;
         }
     }, {
-        key: "unicodeArrayThresholdRule",
+        key: 'unicodeArrayThresholdRule',
         value: function unicodeArrayThresholdRule(options) {
             if (options.unicodeArrayThreshold === 0) {
                 Object.assign(options, OptionsNormalizer.DISABLED_UNICODE_ARRAY_OPTIONS);
@@ -3493,7 +3495,7 @@ exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionInterva
 
 var Utils_1 = __webpack_require__(0);
 function DebugProtectionFunctionTemplate() {
-    return "\n        var {debugProtectionFunctionName} = function () {\n            function debuggerProtection (counter) {\n                if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n                    (function () {}.constructor('debugger')());\n                } else {\n                    [].filter.constructor(" + Utils_1.Utils.stringToJSFuck('debugger') + ")();\n                }\n                \n                debuggerProtection(++counter);\n            }\n            \n            try {\n                debuggerProtection(0);\n            } catch (y) {}\n        };\n    ";
+    return '\n        var {debugProtectionFunctionName} = function () {\n            function debuggerProtection (counter) {\n                if ((\'\' + counter / counter)[\'length\'] !== 1 || counter % 20 === 0) {\n                    (function () {}.constructor(\'debugger\')());\n                } else {\n                    [].filter.constructor(' + Utils_1.Utils.stringToJSFuck('debugger') + ')();\n                }\n                \n                debuggerProtection(++counter);\n            }\n            \n            try {\n                debuggerProtection(0);\n            } catch (y) {}\n        };\n    ';
 }
 exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
 
@@ -3518,7 +3520,7 @@ exports.DomainLockNodeTemplate = DomainLockNodeTemplate;
 
 var Utils_1 = __webpack_require__(0);
 function SelfDefendingTemplate() {
-    return "\n        (function () {                                \n            var func = function(){return 'dev';},\n                func2 = function () {\n                    return 'window';\n                };\n        \n            !Function(" + Utils_1.Utils.stringToUnicode("return/\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}/") + ")().test(func.toString()) ? Function(" + Utils_1.Utils.stringToUnicode("return/(\\\\[x|u](\\w){2,4})+/") + ")().test(func2.toString()) ? []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(false){}')() : []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(true){}')() : []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(false){}')();\n        })();\n    ";
+    return '\n        (function () {                                \n            var func = function(){return \'dev\';},\n                func2 = function () {\n                    return \'window\';\n                };\n        \n            !Function(' + Utils_1.Utils.stringToUnicode('return/\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}/') + ')().test(func.toString()) ? Function(' + Utils_1.Utils.stringToUnicode('return/(\\\\[x|u](\\w){2,4})+/') + ')().test(func2.toString()) ? [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(false){}\')() : [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(true){}\')() : [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(false){}\')();\n        })();\n    ';
 }
 exports.SelfDefendingTemplate = SelfDefendingTemplate;
 
@@ -3543,7 +3545,7 @@ exports.UnicodeArrayCallsWrapperTemplate = UnicodeArrayCallsWrapperTemplate;
 
 var Utils_1 = __webpack_require__(0);
 function SelfDefendingTemplate() {
-    return "\n        var func = function(){return 'dev';};\n           \n        Function(" + Utils_1.Utils.stringToUnicode("return/\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}/") + ")()['test'](func['toString']()) !== true && !{unicodeArrayName}++ ? []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(true){}')() : Function('a', atob(" + Utils_1.Utils.stringToUnicode(Utils_1.Utils.btoa('a.call()')) + "))({forLoopFunctionName}) ? []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(false){}')() : []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(false){}')();\n    ";
+    return '\n        var func = function(){return \'dev\';};\n           \n        Function(' + Utils_1.Utils.stringToUnicode('return/\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}/') + ')()[\'test\'](func[\'toString\']()) !== true && !{unicodeArrayName}++ ? [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(true){}\')() : Function(\'a\', atob(' + Utils_1.Utils.stringToUnicode(Utils_1.Utils.btoa('a.call()')) + '))({forLoopFunctionName}) ? [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(false){}\')() : [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(false){}\')();\n    ';
 }
 exports.SelfDefendingTemplate = SelfDefendingTemplate;
 
@@ -3580,7 +3582,7 @@ exports.UnicodeArrayTemplate = UnicodeArrayTemplate;
 
 var Utils_1 = __webpack_require__(0);
 function SelfDefendingTemplate() {
-    return "(function () {\n        var func = function(){return 'dev';};\n                            \n        !Function(" + Utils_1.Utils.stringToUnicode("return/\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}/") + ")().test(func.toString()) ? []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(true){}')() : Function('a', 'b', 'a(++b)')({whileFunctionName}, {timesName}) ? []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(false){}')() : []['filter']['constructor'](" + Utils_1.Utils.stringToJSFuck('while') + " + '(false){}')();\n    })();";
+    return '(function () {\n        var func = function(){return \'dev\';};\n                            \n        !Function(' + Utils_1.Utils.stringToUnicode('return/\\w+ *\\(\\) *{\\w+ *[\'|"].+[\'|"];? *}/') + ')().test(func.toString()) ? [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(true){}\')() : Function(\'a\', \'b\', \'a(++b)\')({whileFunctionName}, {timesName}) ? [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(false){}\')() : [][\'filter\'][\'constructor\'](' + Utils_1.Utils.stringToJSFuck('while') + ' + \'(false){}\')();\n    })();';
 }
 exports.SelfDefendingTemplate = SelfDefendingTemplate;
 

+ 1 - 1
package.json

@@ -45,6 +45,7 @@
     "@types/mocha": "^2.2.32",
     "@types/node": "^6.0.41",
     "@types/sinon": "^1.16.31",
+    "awesome-typescript-loader": "^2.2.4",
     "babel-cli": "^6.16.0",
     "babel-loader": "^6.2.5",
     "babel-preset-es2015": "^6.16.0",
@@ -54,7 +55,6 @@
     "mocha": "^3.1.0",
     "optimize-js-plugin": "0.0.4",
     "sinon": "^2.0.0-pre.3",
-    "ts-loader": "^0.8.2",
     "ts-node": "^1.3.0",
     "tslint": "^3.15.1",
     "typescript": "^2.0.0",

+ 4 - 4
src/JavaScriptObfuscator.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from "./interfaces/IObfuscationResult";
-import { IObfuscatorOptions } from "./interfaces/IObfuscatorOptions";
+import { IObfuscationResult } from './interfaces/IObfuscationResult';
+import { IObfuscatorOptions } from './interfaces/IObfuscatorOptions';
 
-import { JavaScriptObfuscatorCLI } from "./cli/JavaScriptObfuscatorCLI";
-import { JavaScriptObfuscatorInternal } from "./JavaScriptObfuscatorInternal";
+import { JavaScriptObfuscatorCLI } from './cli/JavaScriptObfuscatorCLI';
+import { JavaScriptObfuscatorInternal } from './JavaScriptObfuscatorInternal';
 
 export class JavaScriptObfuscator {
     /**

+ 7 - 7
src/JavaScriptObfuscatorInternal.ts

@@ -2,15 +2,15 @@ import * as esprima from 'esprima';
 import * as escodegen from 'escodegen';
 import * as ESTree from 'estree';
 
-import { IObfuscatorOptions } from "./interfaces/IObfuscatorOptions";
-import { IGeneratorOutput } from "./interfaces/IGeneratorOutput";
-import { IObfuscationResult } from "./interfaces/IObfuscationResult";
+import { IObfuscatorOptions } from './interfaces/IObfuscatorOptions';
+import { IGeneratorOutput } from './interfaces/IGeneratorOutput';
+import { IObfuscationResult } from './interfaces/IObfuscationResult';
 import { IOptions } from './interfaces/IOptions';
 
-import { ObfuscationResult } from "./ObfuscationResult";
-import { Obfuscator } from "./Obfuscator";
-import { Options } from "./options/Options";
-import { SourceMapCorrector } from "./SourceMapCorrector";
+import { ObfuscationResult } from './ObfuscationResult';
+import { Obfuscator } from './Obfuscator';
+import { Options } from './options/Options';
+import { SourceMapCorrector } from './SourceMapCorrector';
 
 export class JavaScriptObfuscatorInternal {
     /**

+ 4 - 4
src/NodeUtils.ts

@@ -3,12 +3,12 @@ import * as esprima from 'esprima';
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { TNodeWithBlockStatement } from "./types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from './types/TNodeWithBlockStatement';
 
-import { NodeType } from "./enums/NodeType";
+import { NodeType } from './enums/NodeType';
 
-import { Nodes } from "./Nodes";
-import { Utils } from "./Utils";
+import { Nodes } from './Nodes';
+import { Utils } from './Utils';
 
 export class NodeUtils {
     /**

+ 2 - 2
src/Nodes.ts

@@ -1,8 +1,8 @@
 import * as ESTree from 'estree';
 
-import { TNodeWithBlockStatement } from "./types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from './types/TNodeWithBlockStatement';
 
-import { NodeType } from "./enums/NodeType";
+import { NodeType } from './enums/NodeType';
 
 export class Nodes {
     /**

+ 1 - 1
src/ObfuscationResult.ts

@@ -1,4 +1,4 @@
-import { IObfuscationResult } from "./interfaces/IObfuscationResult";
+import { IObfuscationResult } from './interfaces/IObfuscationResult';
 
 export class ObfuscationResult implements IObfuscationResult {
     /**

+ 7 - 7
src/Obfuscator.ts

@@ -2,16 +2,16 @@ import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
 import { ICustomNode } from './interfaces/custom-nodes/ICustomNode';
-import { IObfuscator } from "./interfaces/IObfuscator";
-import { IOptions } from "./interfaces/IOptions";
+import { IObfuscator } from './interfaces/IObfuscator';
+import { IOptions } from './interfaces/IOptions';
 
-import { TNodeObfuscator } from "./types/TNodeObfuscator";
+import { TNodeObfuscator } from './types/TNodeObfuscator';
 
 import { AppendState } from './enums/AppendState';
 import { NodeType } from './enums/NodeType';
 
 import { CatchClauseObfuscator } from './node-obfuscators/CatchClauseObfuscator';
-import { ConsoleOutputNodesGroup } from "./node-groups/ConsoleOutputNodesGroup";
+import { ConsoleOutputNodesGroup } from './node-groups/ConsoleOutputNodesGroup';
 import { DebugProtectionNodesGroup } from './node-groups/DebugProtectionNodesGroup';
 import { DomainLockNodesGroup } from './node-groups/DomainLockNodesGroup';
 import { FunctionDeclarationObfuscator } from './node-obfuscators/FunctionDeclarationObfuscator';
@@ -19,10 +19,10 @@ import { FunctionObfuscator } from './node-obfuscators/FunctionObfuscator';
 import { LiteralObfuscator } from './node-obfuscators/LiteralObfuscator';
 import { MemberExpressionObfuscator } from './node-obfuscators/MemberExpressionObfuscator';
 import { MethodDefinitionObfuscator } from './node-obfuscators/MethodDefinitionObfuscator';
-import { Nodes } from "./Nodes";
-import { NodeUtils } from "./NodeUtils";
+import { Nodes } from './Nodes';
+import { NodeUtils } from './NodeUtils';
 import { ObjectExpressionObfuscator } from './node-obfuscators/ObjectExpressionObfuscator';
-import { SelfDefendingNodesGroup } from "./node-groups/SelfDefendingNodesGroup";
+import { SelfDefendingNodesGroup } from './node-groups/SelfDefendingNodesGroup';
 import { UnicodeArrayNodesGroup } from './node-groups/UnicodeArrayNodesGroup';
 import { VariableDeclarationObfuscator } from './node-obfuscators/VariableDeclarationObfuscator';
 

+ 6 - 6
src/SourceMapCorrector.ts

@@ -1,12 +1,12 @@
-import { IObfuscationResult } from "./interfaces/IObfuscationResult";
-import { ISourceMapCorrector } from "./interfaces/ISourceMapCorrector";
+import { IObfuscationResult } from './interfaces/IObfuscationResult';
+import { ISourceMapCorrector } from './interfaces/ISourceMapCorrector';
 
-import { TSourceMapMode } from "./types/TSourceMapMode";
+import { TSourceMapMode } from './types/TSourceMapMode';
 
-import { SourceMapMode } from "./enums/SourceMapMode";
+import { SourceMapMode } from './enums/SourceMapMode';
 
-import { ObfuscationResult } from "./ObfuscationResult";
-import { Utils } from "./Utils";
+import { ObfuscationResult } from './ObfuscationResult';
+import { Utils } from './Utils';
 
 export class SourceMapCorrector implements ISourceMapCorrector {
     /**

+ 1 - 1
src/UnicodeArray.ts

@@ -1,4 +1,4 @@
-import { Utils } from "./Utils";
+import { Utils } from './Utils';
 
 export class UnicodeArray {
     /**

+ 2 - 2
src/cli/CLIUtils.ts

@@ -2,9 +2,9 @@ import * as fs from 'fs';
 import * as mkdirp from 'mkdirp';
 import * as path from 'path';
 
-import { IPackageConfig } from "../interfaces/IPackageConfig";
+import { IPackageConfig } from 'app/interfaces/IPackageConfig';
 
-import { Utils } from "../Utils";
+import { Utils } from 'app/Utils';
 
 export class CLIUtils {
     /**

+ 7 - 7
src/cli/JavaScriptObfuscatorCLI.ts

@@ -1,16 +1,16 @@
 import * as commander from 'commander';
 import * as path from 'path';
 
-import { IObfuscationResult } from "../interfaces/IObfuscationResult";
-import { IObfuscatorOptions } from "../interfaces/IObfuscatorOptions";
+import { IObfuscationResult } from '../interfaces/IObfuscationResult';
+import { IObfuscatorOptions } from '../interfaces/IObfuscatorOptions';
 
-import { SourceMapMode } from "../enums/SourceMapMode";
+import { SourceMapMode } from '../enums/SourceMapMode';
 
-import { DEFAULT_PRESET } from "../preset-options/DefaultPreset";
+import { DEFAULT_PRESET } from '../preset-options/DefaultPreset';
 
-import { CLIUtils } from "./CLIUtils";
-import { JavaScriptObfuscator } from "../JavaScriptObfuscator";
-import { Utils } from "../Utils";
+import { CLIUtils } from './CLIUtils';
+import { JavaScriptObfuscator } from '../JavaScriptObfuscator';
+import { Utils } from '../Utils';
 
 export class JavaScriptObfuscatorCLI {
     /**

+ 3 - 3
src/custom-nodes/AbstractCustomNode.ts

@@ -1,9 +1,9 @@
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { AppendState } from '../enums/AppendState';
+import { AppendState } from 'app/enums/AppendState';
 
 export abstract class AbstractCustomNode implements ICustomNode {
     /**

+ 5 - 5
src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts

@@ -1,13 +1,13 @@
 import * as ESTree from 'estree';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { ConsoleOutputDisableExpressionTemplate } from "../../templates/custom-nodes/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate";
+import { ConsoleOutputDisableExpressionTemplate } from 'app/templates/custom-nodes/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { NodeUtils } from "../../NodeUtils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
 
 export class ConsoleOutputDisableExpressionNode extends AbstractCustomNode {
     /**

+ 6 - 6
src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts

@@ -2,16 +2,16 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { DebugProtectionFunctionCallTemplate } from "../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-call-node/DebufProtectionFunctionCallTemplate";
+import { DebugProtectionFunctionCallTemplate } from 'app/templates/custom-nodes/debug-protection-nodes/debug-protection-function-call-node/DebufProtectionFunctionCallTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { NodeUtils } from "../../NodeUtils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
 
 export class DebugProtectionFunctionCallNode extends AbstractCustomNode {
     /**

+ 6 - 6
src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts

@@ -2,16 +2,16 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { DebugProtectionFunctionIntervalTemplate } from "../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate";
+import { DebugProtectionFunctionIntervalTemplate } from 'app/templates/custom-nodes/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { NodeUtils } from '../../NodeUtils';
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
 
 export class DebugProtectionFunctionIntervalNode extends AbstractCustomNode {
     /**

+ 7 - 7
src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts

@@ -2,17 +2,17 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { DebugProtectionFunctionTemplate } from "../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate";
+import { DebugProtectionFunctionTemplate } from 'app/templates/custom-nodes/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { NodeUtils } from '../../NodeUtils';
-import { Utils } from "../../Utils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
+import { Utils } from 'app/Utils';
 
 export class DebugProtectionFunctionNode extends AbstractCustomNode {
     /**

+ 6 - 6
src/custom-nodes/domain-lock-nodes/DomainLockNode.ts

@@ -2,15 +2,15 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { DomainLockNodeTemplate } from "../../templates/custom-nodes/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate";
+import { DomainLockNodeTemplate } from 'app/templates/custom-nodes/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate';
 
-import { AbstractCustomNode } from "../AbstractCustomNode";
-import { NodeUtils } from "../../NodeUtils";
-import { Utils } from "../../Utils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
+import { Utils } from 'app/Utils';
 
 export class DomainLockNode extends AbstractCustomNode {
     /**

+ 8 - 8
src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts

@@ -1,17 +1,17 @@
 import * as ESTree from 'estree';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { NO_CUSTOM_NODES_PRESET } from "../../preset-options/NoCustomNodesPreset";
+import { NO_CUSTOM_NODES_PRESET } from 'app/preset-options/NoCustomNodesPreset';
 
-import { SelfDefendingTemplate } from "../../templates/custom-nodes/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate";
+import { SelfDefendingTemplate } from 'app/templates/custom-nodes/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { JavaScriptObfuscator } from "../../JavaScriptObfuscator";
-import { NodeUtils } from "../../NodeUtils";
-import { Utils } from "../../Utils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { JavaScriptObfuscator } from 'app/JavaScriptObfuscator';
+import { NodeUtils } from 'app/NodeUtils';
+import { Utils } from 'app/Utils';
 
 export class SelfDefendingUnicodeNode extends AbstractCustomNode {
     /**

+ 8 - 8
src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts

@@ -2,18 +2,18 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { UnicodeArrayCallsWrapperTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayCallsWrapperTemplate";
+import { UnicodeArrayCallsWrapperTemplate } from 'app/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayCallsWrapperTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { NodeUtils } from "../../NodeUtils";
-import { UnicodeArray } from "../../UnicodeArray";
-import { Utils } from "../../Utils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
+import { UnicodeArray } from 'app/UnicodeArray';
+import { Utils } from 'app/Utils';
 
 export class UnicodeArrayCallsWrapper extends AbstractCustomNode {
     /**

+ 11 - 11
src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts

@@ -2,22 +2,22 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { NO_CUSTOM_NODES_PRESET } from "../../preset-options/NoCustomNodesPreset";
+import { NO_CUSTOM_NODES_PRESET } from 'app/preset-options/NoCustomNodesPreset';
 
-import { AtobTemplate } from "../../templates/custom-nodes/AtobTemplate";
-import { SelfDefendingTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/SelfDefendingTemplate";
-import { UnicodeArrayDecodeNodeTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeNodeTemplate";
+import { AtobTemplate } from 'app/templates/custom-nodes/AtobTemplate';
+import { SelfDefendingTemplate } from 'app/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/SelfDefendingTemplate';
+import { UnicodeArrayDecodeNodeTemplate } from 'app/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeNodeTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { JavaScriptObfuscator } from '../../JavaScriptObfuscator';
-import { NodeUtils } from "../../NodeUtils";
-import { UnicodeArray } from "../../UnicodeArray";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { JavaScriptObfuscator } from 'app/JavaScriptObfuscator';
+import { NodeUtils } from 'app/NodeUtils';
+import { UnicodeArray } from 'app/UnicodeArray';
 
 export class UnicodeArrayDecodeNode extends AbstractCustomNode {
     /**

+ 7 - 7
src/custom-nodes/unicode-array-nodes/UnicodeArrayNode.ts

@@ -2,18 +2,18 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from '../../enums/AppendState';
+import { AppendState } from 'app/enums/AppendState';
 
-import { UnicodeArray } from '../../UnicodeArray';
+import { UnicodeArray } from 'app/UnicodeArray';
 
-import { UnicodeArrayTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-node/UnicodeArrayTemplate";
+import { UnicodeArrayTemplate } from 'app/templates/custom-nodes/unicode-array-nodes/unicode-array-node/UnicodeArrayTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { NodeUtils } from "../../NodeUtils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { NodeUtils } from 'app/NodeUtils';
 
 export class UnicodeArrayNode extends AbstractCustomNode {
     /**

+ 11 - 11
src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts

@@ -2,22 +2,22 @@ import * as ESTree from 'estree';
 
 import 'format-unicorn';
 
-import { IOptions } from "../../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TNodeWithBlockStatement } from "../../types/TNodeWithBlockStatement";
+import { TNodeWithBlockStatement } from 'app/types/TNodeWithBlockStatement';
 
-import { AppendState } from "../../enums/AppendState";
+import { AppendState } from 'app/enums/AppendState';
 
-import { NO_CUSTOM_NODES_PRESET } from "../../preset-options/NoCustomNodesPreset";
+import { NO_CUSTOM_NODES_PRESET } from 'app/preset-options/NoCustomNodesPreset';
 
-import { SelfDefendingTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-rotate-function-node/SelfDefendingTemplate";
-import { UnicodeArrayRotateFunctionTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-rotate-function-node/UnicodeArrayRotateFunctionTemplate";
+import { SelfDefendingTemplate } from 'app/templates/custom-nodes/unicode-array-nodes/unicode-array-rotate-function-node/SelfDefendingTemplate';
+import { UnicodeArrayRotateFunctionTemplate } from 'app/templates/custom-nodes/unicode-array-nodes/unicode-array-rotate-function-node/UnicodeArrayRotateFunctionTemplate';
 
-import { AbstractCustomNode } from '../AbstractCustomNode';
-import { JavaScriptObfuscator } from "../../JavaScriptObfuscator";
-import { NodeUtils } from "../../NodeUtils";
-import { UnicodeArray } from "../../UnicodeArray";
-import { Utils } from "../../Utils";
+import { AbstractCustomNode } from 'app/custom-nodes/AbstractCustomNode';
+import { JavaScriptObfuscator } from 'app/JavaScriptObfuscator';
+import { NodeUtils } from 'app/NodeUtils';
+import { UnicodeArray } from 'app/UnicodeArray';
+import { Utils } from 'app/Utils';
 
 export class UnicodeArrayRotateFunctionNode extends AbstractCustomNode {
     /**

+ 1 - 1
src/enums/NodeType.ts

@@ -1,4 +1,4 @@
-import { Utils } from "../Utils";
+import { Utils } from 'app/Utils';
 
 export const NodeType: any = Utils.strEnumify({
     ArrayExpression: 'ArrayExpression',

+ 1 - 1
src/interfaces/IGenerator.d.ts

@@ -1,4 +1,4 @@
-import { IGeneratorOutput } from "./IGeneratorOutput";
+import { IGeneratorOutput } from './IGeneratorOutput';
 
 declare module 'escodegen' {
     export function generate(ast: any, options?: GenerateOptions): IGeneratorOutput;

+ 1 - 1
src/interfaces/IObfuscatorOptions.d.ts

@@ -1,4 +1,4 @@
-import { TSourceMapMode } from "../types/TSourceMapMode";
+import { TSourceMapMode } from 'app/types/TSourceMapMode';
 
 export interface IObfuscatorOptions {
     compact?: boolean;

+ 1 - 1
src/interfaces/IOptions.d.ts

@@ -1,4 +1,4 @@
-import { TSourceMapMode } from "../types/TSourceMapMode";
+import { TSourceMapMode } from '../types/TSourceMapMode';
 
 export interface IOptions {
     readonly compact: boolean;

+ 1 - 1
src/interfaces/ISourceMapCorrector.d.ts

@@ -1,4 +1,4 @@
-import { IObfuscationResult } from "./IObfuscationResult";
+import { IObfuscationResult } from './IObfuscationResult';
 
 export interface ISourceMapCorrector {
     correct (): IObfuscationResult;

+ 1 - 1
src/interfaces/custom-nodes/ICustomNode.d.ts

@@ -1,6 +1,6 @@
 import * as ESTree from 'estree';
 
-import { AppendState } from '../../enums/AppendState';
+import { AppendState } from 'app/enums/AppendState';
 
 export interface ICustomNode {
     /**

+ 1 - 1
src/interfaces/custom-nodes/ICustomNodeWithData.d.ts

@@ -1,4 +1,4 @@
-import { ICustomNode } from "./ICustomNode";
+import { ICustomNode } from './ICustomNode';
 
 export interface ICustomNodeWithData extends ICustomNode {
     /**

+ 1 - 1
src/interfaces/custom-nodes/ICustomNodeWithIdentifier.d.ts

@@ -1,4 +1,4 @@
-import { ICustomNode } from "./ICustomNode";
+import { ICustomNode } from './ICustomNode';
 
 export interface ICustomNodeWithIdentifier extends ICustomNode {
     /**

+ 3 - 3
src/node-groups/AbstractNodesGroup.ts

@@ -1,7 +1,7 @@
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
 
-import { INodesGroup } from '../interfaces/INodesGroup';
-import { IOptions } from "../interfaces/IOptions";
+import { INodesGroup } from 'app/interfaces/INodesGroup';
+import { IOptions } from 'app/interfaces/IOptions';
 
 export abstract class AbstractNodesGroup implements INodesGroup {
     /**

+ 2 - 2
src/node-groups/ConsoleOutputNodesGroup.ts

@@ -1,7 +1,7 @@
-import { IOptions } from "../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
 import { AbstractNodesGroup } from './AbstractNodesGroup';
-import { ConsoleOutputDisableExpressionNode } from "../custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode";
+import { ConsoleOutputDisableExpressionNode } from 'app/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode';
 
 export class ConsoleOutputNodesGroup extends AbstractNodesGroup {
     /**

+ 5 - 5
src/node-groups/DebugProtectionNodesGroup.ts

@@ -1,11 +1,11 @@
-import { IOptions } from "../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { DebugProtectionFunctionCallNode } from "../custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode";
-import { DebugProtectionFunctionIntervalNode } from "../custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode";
-import { DebugProtectionFunctionNode } from "../custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode";
+import { DebugProtectionFunctionCallNode } from 'app/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode';
+import { DebugProtectionFunctionIntervalNode } from 'app/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode';
+import { DebugProtectionFunctionNode } from 'app/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode';
 
 import { AbstractNodesGroup } from './AbstractNodesGroup';
-import { Utils } from '../Utils';
+import { Utils } from 'app/Utils';
 
 export class DebugProtectionNodesGroup extends AbstractNodesGroup {
     /**

+ 3 - 3
src/node-groups/DomainLockNodesGroup.ts

@@ -1,7 +1,7 @@
-import { IOptions } from "../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { AbstractNodesGroup } from "./AbstractNodesGroup";
-import { DomainLockNode } from "../custom-nodes/domain-lock-nodes/DomainLockNode";
+import { AbstractNodesGroup } from './AbstractNodesGroup';
+import { DomainLockNode } from 'app/custom-nodes/domain-lock-nodes/DomainLockNode';
 
 export class DomainLockNodesGroup extends AbstractNodesGroup {
     /**

+ 2 - 2
src/node-groups/SelfDefendingNodesGroup.ts

@@ -1,7 +1,7 @@
-import { IOptions } from "../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
 import { AbstractNodesGroup } from './AbstractNodesGroup';
-import { SelfDefendingUnicodeNode } from "../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode";
+import { SelfDefendingUnicodeNode } from 'app/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode';
 
 export class SelfDefendingNodesGroup extends AbstractNodesGroup {
     /**

+ 7 - 7
src/node-groups/UnicodeArrayNodesGroup.ts

@@ -1,12 +1,12 @@
-import { IOptions } from "../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
 import { AbstractNodesGroup } from './AbstractNodesGroup';
-import { UnicodeArray } from "../UnicodeArray";
-import { UnicodeArrayCallsWrapper } from "../custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper";
-import { UnicodeArrayDecodeNode } from "../custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode";
-import { UnicodeArrayNode } from '../custom-nodes/unicode-array-nodes/UnicodeArrayNode';
-import { UnicodeArrayRotateFunctionNode } from '../custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode';
-import { Utils } from '../Utils';
+import { UnicodeArray } from 'app/UnicodeArray';
+import { UnicodeArrayCallsWrapper } from 'app/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper';
+import { UnicodeArrayDecodeNode } from 'app/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode';
+import { UnicodeArrayNode } from 'app/custom-nodes/unicode-array-nodes/UnicodeArrayNode';
+import { UnicodeArrayRotateFunctionNode } from 'app/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode';
+import { Utils } from 'app/Utils';
 
 export class UnicodeArrayNodesGroup extends AbstractNodesGroup {
     /**

+ 3 - 3
src/node-obfuscators/AbstractNodeObfuscator.ts

@@ -1,8 +1,8 @@
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { INodeObfuscator } from '../interfaces/INodeObfuscator';
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { INodeObfuscator } from 'app/interfaces/INodeObfuscator';
+import { IOptions } from 'app/interfaces/IOptions';
 
 export abstract class AbstractNodeObfuscator implements INodeObfuscator {
     /**

+ 6 - 6
src/node-obfuscators/CatchClauseObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from "../interfaces/custom-nodes/ICustomNode";
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { NodeType } from "../enums/NodeType";
+import { NodeType } from 'app/enums/NodeType';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { IdentifierReplacer } from "./replacers/IdentifierReplacer";
-import { Nodes } from "../Nodes";
-import { NodeUtils } from "../NodeUtils";
+import { IdentifierReplacer } from './replacers/IdentifierReplacer';
+import { Nodes } from 'app/Nodes';
+import { NodeUtils } from 'app/NodeUtils';
 
 /**
  * replaces:

+ 6 - 6
src/node-obfuscators/FunctionDeclarationObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from "../interfaces/custom-nodes/ICustomNode";
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { NodeType } from "../enums/NodeType";
+import { NodeType } from 'app/enums/NodeType';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { IdentifierReplacer } from "./replacers/IdentifierReplacer";
-import { Nodes } from "../Nodes";
-import { NodeUtils } from "../NodeUtils";
+import { IdentifierReplacer } from './replacers/IdentifierReplacer';
+import { Nodes } from 'app/Nodes';
+import { NodeUtils } from 'app/NodeUtils';
 
 /**
  * replaces:

+ 6 - 6
src/node-obfuscators/FunctionObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from "../interfaces/custom-nodes/ICustomNode";
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { NodeType } from "../enums/NodeType";
+import { NodeType } from 'app/enums/NodeType';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { IdentifierReplacer } from "./replacers/IdentifierReplacer";
-import { Nodes } from "../Nodes";
-import { NodeUtils } from "../NodeUtils";
+import { IdentifierReplacer } from './replacers/IdentifierReplacer';
+import { Nodes } from 'app/Nodes';
+import { NodeUtils } from 'app/NodeUtils';
 
 /**
  * replaces:

+ 4 - 4
src/node-obfuscators/LiteralObfuscator.ts

@@ -2,10 +2,10 @@ import * as escodegen from 'escodegen';
 import * as ESTree from 'estree';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { BooleanLiteralReplacer } from "./replacers/BooleanLiteralReplacer";
-import { Nodes } from "../Nodes";
-import { NumberLiteralReplacer } from "./replacers/NumberLiteralReplacer";
-import { StringLiteralReplacer } from "./replacers/StringLiteralReplacer";
+import { BooleanLiteralReplacer } from './replacers/BooleanLiteralReplacer';
+import { Nodes } from 'app/Nodes';
+import { NumberLiteralReplacer } from './replacers/NumberLiteralReplacer';
+import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
 
 export class LiteralObfuscator extends AbstractNodeObfuscator {
     /**

+ 3 - 3
src/node-obfuscators/MemberExpressionObfuscator.ts

@@ -2,11 +2,11 @@ import * as escodegen from 'escodegen';
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { NodeType } from "../enums/NodeType";
+import { NodeType } from 'app/enums/NodeType';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { Nodes } from "../Nodes";
-import { StringLiteralReplacer } from "./replacers/StringLiteralReplacer";
+import { Nodes } from 'app/Nodes';
+import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
 
 export class MemberExpressionObfuscator extends AbstractNodeObfuscator {
     /**

+ 3 - 3
src/node-obfuscators/MethodDefinitionObfuscator.ts

@@ -2,9 +2,9 @@ import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { Nodes } from "../Nodes";
-import { Utils } from "../Utils";
-import { StringLiteralReplacer } from "./replacers/StringLiteralReplacer";
+import { Nodes } from 'app/Nodes';
+import { Utils } from 'app/Utils';
+import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
 
 /**
  * replaces:

+ 3 - 3
src/node-obfuscators/ObjectExpressionObfuscator.ts

@@ -2,11 +2,11 @@ import * as escodegen from 'escodegen';
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { NodeType } from "../enums/NodeType";
+import { NodeType } from 'app/enums/NodeType';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { Nodes } from "../Nodes";
-import { Utils } from '../Utils';
+import { Nodes } from 'app/Nodes';
+import { Utils } from 'app/Utils';
 
 /**
  * replaces:

+ 6 - 6
src/node-obfuscators/VariableDeclarationObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from "../interfaces/custom-nodes/ICustomNode";
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { NodeType } from "../enums/NodeType";
+import { NodeType } from 'app/enums/NodeType';
 
 import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { IdentifierReplacer } from "./replacers/IdentifierReplacer";
-import { Nodes } from "../Nodes";
-import { NodeUtils } from "../NodeUtils";
+import { IdentifierReplacer } from './replacers/IdentifierReplacer';
+import { Nodes } from 'app/Nodes';
+import { NodeUtils } from 'app/NodeUtils';
 
 /**
  * replaces:

+ 3 - 3
src/node-obfuscators/replacers/AbstractReplacer.ts

@@ -1,6 +1,6 @@
-import { ICustomNode } from "../../interfaces/custom-nodes/ICustomNode";
-import { IOptions } from "../../interfaces/IOptions";
-import { IReplacer } from "../../interfaces/IReplacer";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { IOptions } from 'app/interfaces/IOptions';
+import { IReplacer } from 'app/interfaces/IReplacer';
 
 export abstract class AbstractReplacer implements IReplacer {
     /**

+ 2 - 2
src/node-obfuscators/replacers/BooleanLiteralReplacer.ts

@@ -1,6 +1,6 @@
-import { JSFuck } from "../../enums/JSFuck";
+import { JSFuck } from 'app/enums/JSFuck';
 
-import { AbstractReplacer } from "./AbstractReplacer";
+import { AbstractReplacer } from './AbstractReplacer';
 
 export class BooleanLiteralReplacer extends AbstractReplacer {
     /**

+ 2 - 2
src/node-obfuscators/replacers/IdentifierReplacer.ts

@@ -1,5 +1,5 @@
-import { AbstractReplacer } from "./AbstractReplacer";
-import { Utils } from "../../Utils";
+import { AbstractReplacer } from './AbstractReplacer';
+import { Utils } from 'app/Utils';
 
 export class IdentifierReplacer extends AbstractReplacer {
     /**

+ 2 - 2
src/node-obfuscators/replacers/NumberLiteralReplacer.ts

@@ -1,5 +1,5 @@
-import { AbstractReplacer } from "./AbstractReplacer";
-import { Utils } from "../../Utils";
+import { AbstractReplacer } from './AbstractReplacer';
+import { Utils } from 'app/Utils';
 
 export class NumberLiteralReplacer extends AbstractReplacer {
     /**

+ 6 - 6
src/node-obfuscators/replacers/StringLiteralReplacer.ts

@@ -1,10 +1,10 @@
-import { TUnicodeArrayCallsWrapper } from "../../types/custom-nodes/TUnicodeArrayCallsWrapper";
-import { TUnicodeArrayNode } from "../../types/custom-nodes/TUnicodeArrayNode";
+import { TUnicodeArrayCallsWrapper } from 'app/types/custom-nodes/TUnicodeArrayCallsWrapper';
+import { TUnicodeArrayNode } from 'app/types/custom-nodes/TUnicodeArrayNode';
 
-import { AbstractReplacer } from "./AbstractReplacer";
-import { NumberLiteralReplacer } from "./NumberLiteralReplacer";
-import { UnicodeArray } from "../../UnicodeArray";
-import { Utils } from "../../Utils";
+import { AbstractReplacer } from './AbstractReplacer';
+import { NumberLiteralReplacer } from './NumberLiteralReplacer';
+import { UnicodeArray } from 'app/UnicodeArray';
+import { Utils } from 'app/Utils';
 
 export class StringLiteralReplacer extends AbstractReplacer {
     /**

+ 6 - 6
src/options/Options.ts

@@ -14,15 +14,15 @@ import {
     ValidatorOptions
 } from 'class-validator';
 
-import { IObfuscatorOptions } from "../interfaces/IObfuscatorOptions";
-import { IOptions } from "../interfaces/IOptions";
+import { IObfuscatorOptions } from 'app/interfaces/IObfuscatorOptions';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TSourceMapMode } from "../types/TSourceMapMode";
+import { TSourceMapMode } from 'app/types/TSourceMapMode';
 
-import { DEFAULT_PRESET } from "../preset-options/DefaultPreset";
+import { DEFAULT_PRESET } from 'app/preset-options/DefaultPreset';
 
-import { OptionsNormalizer } from "./OptionsNormalizer";
-import { ValidationErrorsFormatter } from "./ValidationErrorsFormatter";
+import { OptionsNormalizer } from './OptionsNormalizer';
+import { ValidationErrorsFormatter } from './ValidationErrorsFormatter';
 
 export class Options implements IOptions {
     /**

+ 4 - 4
src/options/OptionsNormalizer.ts

@@ -1,9 +1,9 @@
-import { IObfuscatorOptions } from "../interfaces/IObfuscatorOptions";
-import { IOptions } from "../interfaces/IOptions";
+import { IObfuscatorOptions } from 'app/interfaces/IObfuscatorOptions';
+import { IOptions } from 'app/interfaces/IOptions';
 
-import { TOptionsNormalizerRule } from "../types/TOptionsNormalizerRule";
+import { TOptionsNormalizerRule } from 'app/types/TOptionsNormalizerRule';
 
-import { Utils } from "../Utils";
+import { Utils } from 'app/Utils';
 
 export class OptionsNormalizer {
     /**

+ 2 - 2
src/preset-options/DefaultPreset.ts

@@ -1,6 +1,6 @@
-import { IObfuscatorOptions } from "../interfaces/IObfuscatorOptions";
+import { IObfuscatorOptions } from 'app/interfaces/IObfuscatorOptions';
 
-import { SourceMapMode } from "../enums/SourceMapMode";
+import { SourceMapMode } from 'app/enums/SourceMapMode';
 
 export const DEFAULT_PRESET: IObfuscatorOptions = Object.freeze({
     compact: true,

+ 2 - 2
src/preset-options/NoCustomNodesPreset.ts

@@ -1,6 +1,6 @@
-import { IObfuscatorOptions } from "../interfaces/IObfuscatorOptions";
+import { IObfuscatorOptions } from 'app/interfaces/IObfuscatorOptions';
 
-import { SourceMapMode } from "../enums/SourceMapMode";
+import { SourceMapMode } from 'app/enums/SourceMapMode';
 
 export const NO_CUSTOM_NODES_PRESET: IObfuscatorOptions = Object.freeze({
     compact: true,

+ 1 - 1
src/templates/custom-nodes/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate.ts

@@ -1,4 +1,4 @@
-import { Utils } from "../../../../Utils";
+import { Utils } from 'app/Utils';
 
 /**
  * @returns {string}

+ 1 - 1
src/templates/custom-nodes/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate.ts

@@ -1,4 +1,4 @@
-import { Utils } from "../../../../Utils";
+import { Utils } from 'app/Utils';
 
 export function SelfDefendingTemplate (): string {
     return `

+ 1 - 1
src/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/SelfDefendingTemplate.ts

@@ -1,4 +1,4 @@
-import { Utils } from "../../../../Utils";
+import { Utils } from 'app/Utils';
 
 /**
  * @returns {string}

+ 1 - 1
src/templates/custom-nodes/unicode-array-nodes/unicode-array-rotate-function-node/SelfDefendingTemplate.ts

@@ -1,4 +1,4 @@
-import { Utils } from "../../../../Utils";
+import { Utils } from 'app/Utils';
 
 /**
  * @returns {string}

+ 3 - 3
src/types/TNodeObfuscator.d.ts

@@ -1,5 +1,5 @@
-import { ICustomNode } from "../interfaces/custom-nodes/ICustomNode";
-import { INodeObfuscator } from "../interfaces/INodeObfuscator";
-import { IOptions } from "../interfaces/IOptions";
+import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode';
+import { INodeObfuscator } from 'app/interfaces/INodeObfuscator';
+import { IOptions } from 'app/interfaces/IOptions';
 
 export type TNodeObfuscator =  (new (nodes: Map <string, ICustomNode>, options: IOptions) => INodeObfuscator);

+ 1 - 1
src/types/TOptionsNormalizerRule.d.ts

@@ -1,3 +1,3 @@
-import { IOptions } from "../interfaces/IOptions";
+import { IOptions } from 'app/interfaces/IOptions';
 
 export type TOptionsNormalizerRule = (options: IOptions) => IOptions;

+ 1 - 1
src/types/TSourceMapMode.d.ts

@@ -1 +1 @@
-export type TSourceMapMode = 'inline' | 'separate';
+export type TSourceMapMode = 'inline'|'separate';

+ 1 - 1
src/types/custom-nodes/TUnicodeArrayCallsWrapper.d.ts

@@ -1,3 +1,3 @@
-import { ICustomNodeWithIdentifier } from "../../interfaces/custom-nodes/ICustomNodeWithIdentifier";
+import { ICustomNodeWithIdentifier } from 'app/interfaces/custom-nodes/ICustomNodeWithIdentifier';
 
 export type TUnicodeArrayCallsWrapper = ICustomNodeWithIdentifier;

+ 2 - 2
src/types/custom-nodes/TUnicodeArrayNode.d.ts

@@ -1,4 +1,4 @@
-import { ICustomNodeWithData } from "../../interfaces/custom-nodes/ICustomNodeWithData";
-import { ICustomNodeWithIdentifier } from "../../interfaces/custom-nodes/ICustomNodeWithIdentifier";
+import { ICustomNodeWithData } from 'app/interfaces/custom-nodes/ICustomNodeWithData';
+import { ICustomNodeWithIdentifier } from 'app/interfaces/custom-nodes/ICustomNodeWithIdentifier';
 
 export type TUnicodeArrayNode = ICustomNodeWithData & ICustomNodeWithIdentifier;

+ 1 - 14
tsconfig-test.json

@@ -10,20 +10,7 @@
     "removeComments": true,
     "noImplicitAny": true,
     "strictNullChecks": true,
-    "noUnusedLocals": true,
-    "types": [
-      "chai",
-      "chance",
-      "commander",
-      "escodegen",
-      "esprima",
-      "estraverse",
-      "joi",
-      "mkdirp",
-      "mocha",
-      "node",
-      "sinon"
-    ]
+    "noUnusedLocals": true
   },
   "exclude": [
     "node_modules"

+ 6 - 13
tsconfig.json

@@ -1,5 +1,6 @@
 {
   "compilerOptions": {
+    "baseUrl": "./",
     "target": "ES6",
     "module": "commonjs",
     "sourceMap": true,
@@ -9,18 +10,10 @@
     "noImplicitAny": true,
     "strictNullChecks": true,
     "noUnusedLocals": true,
-    "types": [
-      "chai",
-      "chance",
-      "commander",
-      "escodegen",
-      "esprima",
-      "estraverse",
-      "joi",
-      "mkdirp",
-      "mocha",
-      "node",
-      "sinon"
-    ]
+    "paths": {
+      "app/*": [
+        "src/*"
+      ]
+    }
   }
 }

+ 16 - 8
webpack.config.js

@@ -1,9 +1,10 @@
 'use strict';
 
-var fs = require("fs"),
+var fs = require('fs'),
+    path = require('path'),
     nodeExternals = require('webpack-node-externals'),
     webpack = require('webpack'),
-    OptimizeJSPlugin = require('optimize-js-plugin');
+    TsConfigPathsPlugin = require('awesome-typescript-loader').TsConfigPathsPlugin;
 
 function getLicenseText () {
     return "/*\nCopyright (C) 2016 Timofey Kachalov <[email protected]>\n\n" +
@@ -19,11 +20,21 @@ module.exports = {
     externals: [nodeExternals()],
     module: {
         loaders: [
-            { test: /\.ts(x?)$/, loader: 'babel-loader!ts-loader' }
+            {
+                test: /\.ts(x?)$/,
+                loader: 'awesome-typescript-loader',
+                query: {
+                    useBabel: true
+                }
+            }
         ]
     },
     resolve: {
-        extensions: ['.ts']
+        extensions: ['.ts'],
+        modules: ['node_modules', 'src'],
+        plugins: [
+            new TsConfigPathsPlugin()
+        ]
     },
     plugins: [
         new webpack.BannerPlugin(
@@ -32,10 +43,7 @@ module.exports = {
                 raw: true,
                 entryOnly: false
             }
-        ),
-        /*new OptimizeJSPlugin({
-            sourceMap: true
-        })*/
+        )
     ],
     output: {
         path: './dist',