diff --git a/dist/index.js b/dist/index.js index 671e0db7..fb09b319 100644 --- a/dist/index.js +++ b/dist/index.js @@ -88,7 +88,7 @@ module.exports = /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 82); +/******/ return __webpack_require__(__webpack_require__.s = 86); /******/ }) /************************************************************************/ /******/ ([ @@ -102,8 +102,8 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var chance_1 = __webpack_require__(76); -var JSFuck_1 = __webpack_require__(19); +var chance_1 = __webpack_require__(80); +var JSFuck_1 = __webpack_require__(20); var Utils = function () { function Utils() { @@ -257,9 +257,9 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var escodegen = __webpack_require__(11); -var esprima = __webpack_require__(22); +var esprima = __webpack_require__(23); var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var Nodes_1 = __webpack_require__(2); var Utils_1 = __webpack_require__(0); @@ -425,7 +425,7 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var Nodes = function () { function Nodes() { @@ -555,41 +555,6 @@ var AppendState = exports.AppendState; /***/ }, /* 5 */ -/***/ function(module, exports) { - -"use strict"; -"use strict"; - -var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var AbstractCustomNode = function () { - function AbstractCustomNode(options) { - _classCallCheck(this, AbstractCustomNode); - - this.options = options; - } - - _createClass(AbstractCustomNode, [{ - key: "getAppendState", - value: function getAppendState() { - return this.appendState; - } - }, { - key: "getNode", - value: function getNode() { - return this.getNodeStructure(); - } - }]); - - return AbstractCustomNode; -}(); - -exports.AbstractCustomNode = AbstractCustomNode; - -/***/ }, -/* 6 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -626,6 +591,41 @@ exports.NodeType = Utils_1.Utils.strEnumify({ WhileStatement: 'WhileStatement' }); +/***/ }, +/* 6 */ +/***/ function(module, exports) { + +"use strict"; +"use strict"; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var AbstractCustomNode = function () { + function AbstractCustomNode(options) { + _classCallCheck(this, AbstractCustomNode); + + this.options = options; + } + + _createClass(AbstractCustomNode, [{ + key: "getAppendState", + value: function getAppendState() { + return this.appendState; + } + }, { + key: "getNode", + value: function getNode() { + return this.getNodeStructure(); + } + }]); + + return AbstractCustomNode; +}(); + +exports.AbstractCustomNode = AbstractCustomNode; + /***/ }, /* 7 */ /***/ function(module, exports) { @@ -661,8 +661,8 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var JavaScriptObfuscatorCLI_1 = __webpack_require__(30); -var JavaScriptObfuscatorInternal_1 = __webpack_require__(25); +var JavaScriptObfuscatorCLI_1 = __webpack_require__(31); +var JavaScriptObfuscatorInternal_1 = __webpack_require__(26); var JavaScriptObfuscator = function () { function JavaScriptObfuscator() { @@ -850,8 +850,8 @@ var CustomNodeAppender = function () { NodeUtils_1.NodeUtils.prependNode(targetBlockScopeBody, node); } }, { - key: 'getIndexByThreshold', - value: function getIndexByThreshold(blockStatementBodyLength) { + key: 'getStackTraceIndexByThreshold', + value: function getStackTraceIndexByThreshold(stackTraceRootLength) { var threshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.1; if (threshold < 0 || threshold > 1) { @@ -859,7 +859,7 @@ var CustomNodeAppender = function () { } return Utils_1.Utils.getRandomGenerator().integer({ min: 0, - max: Math.round((blockStatementBodyLength - 1) * threshold) + max: Math.round((stackTraceRootLength - 1) * threshold) }); } }, { @@ -880,7 +880,8 @@ var CustomNodeAppender = function () { exports.CustomNodeAppender = CustomNodeAppender; /***/ }, -/* 16 */ +/* 16 */, +/* 17 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -895,7 +896,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AbstractReplacer_1 = __webpack_require__(13); -var NumberLiteralReplacer_1 = __webpack_require__(20); +var NumberLiteralReplacer_1 = __webpack_require__(21); var Utils_1 = __webpack_require__(0); var StringLiteralReplacer = function (_AbstractReplacer_1$A) { @@ -955,7 +956,7 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) { exports.StringLiteralReplacer = StringLiteralReplacer; /***/ }, -/* 17 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -982,7 +983,7 @@ exports.NO_CUSTOM_NODES_PRESET = Object.freeze({ }); /***/ }, -/* 18 */ +/* 19 */ /***/ function(module, exports) { "use strict"; @@ -1023,7 +1024,7 @@ var ObfuscationResult = function () { exports.ObfuscationResult = ObfuscationResult; /***/ }, -/* 19 */ +/* 20 */ /***/ function(module, exports) { "use strict"; @@ -1088,7 +1089,7 @@ exports.JSFuck = { }; /***/ }, -/* 20 */ +/* 21 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1131,7 +1132,7 @@ var NumberLiteralReplacer = function (_AbstractReplacer_1$A) { exports.NumberLiteralReplacer = NumberLiteralReplacer; /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1158,25 +1159,25 @@ exports.DEFAULT_PRESET = Object.freeze({ }); /***/ }, -/* 22 */ +/* 23 */ /***/ function(module, exports) { module.exports = require("esprima"); /***/ }, -/* 23 */ +/* 24 */ /***/ function(module, exports) { module.exports = require("path"); /***/ }, -/* 24 */ +/* 25 */ /***/ function(module, exports) { module.exports = require("babel-polyfill"); /***/ }, -/* 25 */ +/* 26 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1186,12 +1187,12 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var esprima = __webpack_require__(22); +var esprima = __webpack_require__(23); var escodegen = __webpack_require__(11); -var ObfuscationResult_1 = __webpack_require__(18); -var Obfuscator_1 = __webpack_require__(26); -var Options_1 = __webpack_require__(55); -var SourceMapCorrector_1 = __webpack_require__(27); +var ObfuscationResult_1 = __webpack_require__(19); +var Obfuscator_1 = __webpack_require__(27); +var Options_1 = __webpack_require__(56); +var SourceMapCorrector_1 = __webpack_require__(28); var JavaScriptObfuscatorInternal = function () { function JavaScriptObfuscatorInternal(sourceCode) { @@ -1244,7 +1245,7 @@ JavaScriptObfuscatorInternal.escodegenParams = { exports.JavaScriptObfuscatorInternal = JavaScriptObfuscatorInternal; /***/ }, -/* 26 */ +/* 27 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1258,23 +1259,23 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var estraverse = __webpack_require__(3); var AppendState_1 = __webpack_require__(4); -var NodeType_1 = __webpack_require__(6); -var CatchClauseObfuscator_1 = __webpack_require__(46); -var ConsoleOutputNodesGroup_1 = __webpack_require__(41); -var DebugProtectionNodesGroup_1 = __webpack_require__(42); -var DomainLockNodesGroup_1 = __webpack_require__(43); -var FunctionDeclarationObfuscator_1 = __webpack_require__(47); -var FunctionObfuscator_1 = __webpack_require__(48); -var LiteralObfuscator_1 = __webpack_require__(49); -var MemberExpressionObfuscator_1 = __webpack_require__(50); -var MethodDefinitionObfuscator_1 = __webpack_require__(51); +var NodeType_1 = __webpack_require__(5); +var CatchClauseObfuscator_1 = __webpack_require__(47); +var ConsoleOutputNodesGroup_1 = __webpack_require__(42); +var DebugProtectionNodesGroup_1 = __webpack_require__(43); +var DomainLockNodesGroup_1 = __webpack_require__(44); +var FunctionDeclarationObfuscator_1 = __webpack_require__(48); +var FunctionObfuscator_1 = __webpack_require__(49); +var LiteralObfuscator_1 = __webpack_require__(50); +var MemberExpressionObfuscator_1 = __webpack_require__(51); +var MethodDefinitionObfuscator_1 = __webpack_require__(52); var Nodes_1 = __webpack_require__(2); var NodeUtils_1 = __webpack_require__(1); -var ObjectExpressionObfuscator_1 = __webpack_require__(52); -var SelfDefendingNodesGroup_1 = __webpack_require__(44); -var UnicodeArrayNodesGroup_1 = __webpack_require__(45); -var VariableDeclarationObfuscator_1 = __webpack_require__(53); -var StackTraceAnalyzer_1 = __webpack_require__(58); +var ObjectExpressionObfuscator_1 = __webpack_require__(53); +var SelfDefendingNodesGroup_1 = __webpack_require__(45); +var UnicodeArrayNodesGroup_1 = __webpack_require__(46); +var VariableDeclarationObfuscator_1 = __webpack_require__(54); +var StackTraceAnalyzer_1 = __webpack_require__(59); var Obfuscator = function () { function Obfuscator(options) { @@ -1348,7 +1349,7 @@ var Obfuscator = function () { exports.Obfuscator = Obfuscator; /***/ }, -/* 27 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1359,7 +1360,7 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var SourceMapMode_1 = __webpack_require__(12); -var ObfuscationResult_1 = __webpack_require__(18); +var ObfuscationResult_1 = __webpack_require__(19); var Utils_1 = __webpack_require__(0); var SourceMapCorrector = function () { @@ -1406,7 +1407,7 @@ var SourceMapCorrector = function () { exports.SourceMapCorrector = SourceMapCorrector; /***/ }, -/* 28 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1463,7 +1464,7 @@ var UnicodeArray = function () { exports.UnicodeArray = UnicodeArray; /***/ }, -/* 29 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1473,9 +1474,9 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var fs = __webpack_require__(79); -var mkdirp = __webpack_require__(80); -var path = __webpack_require__(23); +var fs = __webpack_require__(83); +var mkdirp = __webpack_require__(84); +var path = __webpack_require__(24); var Utils_1 = __webpack_require__(0); var CLIUtils = function () { @@ -1555,7 +1556,7 @@ CLIUtils.encoding = 'utf8'; exports.CLIUtils = CLIUtils; /***/ }, -/* 30 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1565,11 +1566,11 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var commander = __webpack_require__(78); -var path = __webpack_require__(23); +var commander = __webpack_require__(82); +var path = __webpack_require__(24); var SourceMapMode_1 = __webpack_require__(12); -var DefaultPreset_1 = __webpack_require__(21); -var CLIUtils_1 = __webpack_require__(29); +var DefaultPreset_1 = __webpack_require__(22); +var CLIUtils_1 = __webpack_require__(30); var JavaScriptObfuscator_1 = __webpack_require__(9); var Utils_1 = __webpack_require__(0); @@ -1688,7 +1689,7 @@ var JavaScriptObfuscatorCLI = function () { exports.JavaScriptObfuscatorCLI = JavaScriptObfuscatorCLI; /***/ }, -/* 31 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1703,8 +1704,8 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AppendState_1 = __webpack_require__(4); -var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(63); -var AbstractCustomNode_1 = __webpack_require__(5); +var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(65); +var AbstractCustomNode_1 = __webpack_require__(6); var CustomNodeAppender_1 = __webpack_require__(15); var NodeUtils_1 = __webpack_require__(1); @@ -1723,7 +1724,7 @@ var ConsoleOutputDisableExpressionNode = function (_AbstractCustomNode_) { _createClass(ConsoleOutputDisableExpressionNode, [{ key: 'appendNode', value: function appendNode(blockScopeNode, stackTraceData) { - CustomNodeAppender_1.CustomNodeAppender.appendNode(stackTraceData, blockScopeNode.body, this.getNode(), CustomNodeAppender_1.CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length)); + CustomNodeAppender_1.CustomNodeAppender.appendNode(stackTraceData, blockScopeNode.body, this.getNode(), CustomNodeAppender_1.CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length)); } }, { key: 'getNodeStructure', @@ -1738,7 +1739,7 @@ var ConsoleOutputDisableExpressionNode = function (_AbstractCustomNode_) { exports.ConsoleOutputDisableExpressionNode = ConsoleOutputDisableExpressionNode; /***/ }, -/* 32 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1754,8 +1755,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var DebufProtectionFunctionCallTemplate_1 = __webpack_require__(64); -var AbstractCustomNode_1 = __webpack_require__(5); +var DebufProtectionFunctionCallTemplate_1 = __webpack_require__(66); +var AbstractCustomNode_1 = __webpack_require__(6); var NodeUtils_1 = __webpack_require__(1); var DebugProtectionFunctionCallNode = function (_AbstractCustomNode_) { @@ -1791,7 +1792,7 @@ var DebugProtectionFunctionCallNode = function (_AbstractCustomNode_) { exports.DebugProtectionFunctionCallNode = DebugProtectionFunctionCallNode; /***/ }, -/* 33 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1807,8 +1808,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(65); -var AbstractCustomNode_1 = __webpack_require__(5); +var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(67); +var AbstractCustomNode_1 = __webpack_require__(6); var NodeUtils_1 = __webpack_require__(1); var DebugProtectionFunctionIntervalNode = function (_AbstractCustomNode_) { @@ -1844,7 +1845,7 @@ var DebugProtectionFunctionIntervalNode = function (_AbstractCustomNode_) { exports.DebugProtectionFunctionIntervalNode = DebugProtectionFunctionIntervalNode; /***/ }, -/* 34 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1860,8 +1861,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var DebugProtectionFunctionTemplate_1 = __webpack_require__(66); -var AbstractCustomNode_1 = __webpack_require__(5); +var DebugProtectionFunctionTemplate_1 = __webpack_require__(68); +var AbstractCustomNode_1 = __webpack_require__(6); var NodeUtils_1 = __webpack_require__(1); var Utils_1 = __webpack_require__(0); @@ -1908,7 +1909,7 @@ var DebugProtectionFunctionNode = function (_AbstractCustomNode_) { exports.DebugProtectionFunctionNode = DebugProtectionFunctionNode; /***/ }, -/* 35 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1926,8 +1927,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var DomainLockNodeTemplate_1 = __webpack_require__(67); -var AbstractCustomNode_1 = __webpack_require__(5); +var DomainLockNodeTemplate_1 = __webpack_require__(69); +var AbstractCustomNode_1 = __webpack_require__(6); var CustomNodeAppender_1 = __webpack_require__(15); var NodeUtils_1 = __webpack_require__(1); var Utils_1 = __webpack_require__(0); @@ -1947,7 +1948,7 @@ var DomainLockNode = function (_AbstractCustomNode_) { _createClass(DomainLockNode, [{ key: 'appendNode', value: function appendNode(blockScopeNode, stackTraceData) { - CustomNodeAppender_1.CustomNodeAppender.appendNode(stackTraceData, blockScopeNode.body, this.getNode(), CustomNodeAppender_1.CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length)); + CustomNodeAppender_1.CustomNodeAppender.appendNode(stackTraceData, blockScopeNode.body, this.getNode(), CustomNodeAppender_1.CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length)); } }, { key: 'getNodeStructure', @@ -1973,7 +1974,7 @@ var DomainLockNode = function (_AbstractCustomNode_) { exports.DomainLockNode = DomainLockNode; /***/ }, -/* 36 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -1988,9 +1989,9 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AppendState_1 = __webpack_require__(4); -var NoCustomNodesPreset_1 = __webpack_require__(17); -var SelfDefendingTemplate_1 = __webpack_require__(68); -var AbstractCustomNode_1 = __webpack_require__(5); +var NoCustomNodesPreset_1 = __webpack_require__(18); +var SelfDefendingTemplate_1 = __webpack_require__(70); +var AbstractCustomNode_1 = __webpack_require__(6); var JavaScriptObfuscator_1 = __webpack_require__(9); var NodeUtils_1 = __webpack_require__(1); var CustomNodeAppender_1 = __webpack_require__(15); @@ -2010,7 +2011,7 @@ var SelfDefendingUnicodeNode = function (_AbstractCustomNode_) { _createClass(SelfDefendingUnicodeNode, [{ key: 'appendNode', value: function appendNode(blockScopeNode, stackTraceData) { - CustomNodeAppender_1.CustomNodeAppender.appendNode(stackTraceData, blockScopeNode.body, this.getNode(), CustomNodeAppender_1.CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length)); + CustomNodeAppender_1.CustomNodeAppender.appendNode(stackTraceData, blockScopeNode.body, this.getNode(), CustomNodeAppender_1.CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length)); } }, { key: 'getNodeStructure', @@ -2025,7 +2026,7 @@ var SelfDefendingUnicodeNode = function (_AbstractCustomNode_) { exports.SelfDefendingUnicodeNode = SelfDefendingUnicodeNode; /***/ }, -/* 37 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2043,8 +2044,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var UnicodeArrayCallsWrapperTemplate_1 = __webpack_require__(69); -var AbstractCustomNode_1 = __webpack_require__(5); +var UnicodeArrayCallsWrapperTemplate_1 = __webpack_require__(73); +var AbstractCustomNode_1 = __webpack_require__(6); var NodeUtils_1 = __webpack_require__(1); var Utils_1 = __webpack_require__(0); @@ -2098,87 +2099,6 @@ var UnicodeArrayCallsWrapper = function (_AbstractCustomNode_) { exports.UnicodeArrayCallsWrapper = UnicodeArrayCallsWrapper; -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - -"use strict"; -"use strict"; - -var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - -var _get = (function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -__webpack_require__(8); -var AppendState_1 = __webpack_require__(4); -var NoCustomNodesPreset_1 = __webpack_require__(17); -var AtobTemplate_1 = __webpack_require__(62); -var SelfDefendingTemplate_1 = __webpack_require__(70); -var UnicodeArrayDecodeNodeTemplate_1 = __webpack_require__(71); -var AbstractCustomNode_1 = __webpack_require__(5); -var JavaScriptObfuscator_1 = __webpack_require__(9); -var NodeUtils_1 = __webpack_require__(1); - -var UnicodeArrayDecodeNode = function (_AbstractCustomNode_) { - _inherits(UnicodeArrayDecodeNode, _AbstractCustomNode_); - - function UnicodeArrayDecodeNode(unicodeArrayName, unicodeArray, options) { - _classCallCheck(this, UnicodeArrayDecodeNode); - - var _this = _possibleConstructorReturn(this, (UnicodeArrayDecodeNode.__proto__ || Object.getPrototypeOf(UnicodeArrayDecodeNode)).call(this, options)); - - _this.appendState = AppendState_1.AppendState.AfterObfuscation; - _this.unicodeArrayName = unicodeArrayName; - _this.unicodeArray = unicodeArray; - return _this; - } - - _createClass(UnicodeArrayDecodeNode, [{ - key: 'appendNode', - value: function appendNode(blockScopeNode) { - if (!this.unicodeArray.getLength()) { - return; - } - NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1); - } - }, { - key: 'getNode', - value: function getNode() { - return _get(UnicodeArrayDecodeNode.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayDecodeNode.prototype), 'getNode', this).call(this); - } - }, { - key: 'getNodeStructure', - value: function getNodeStructure() { - var forLoopFunctionName = 'forLoopFunc'; - var code = void 0; - if (this.options.selfDefending) { - code = SelfDefendingTemplate_1.SelfDefendingTemplate().formatUnicorn({ - forLoopFunctionName: forLoopFunctionName, - unicodeArrayName: this.unicodeArrayName - }); - } else { - code = forLoopFunctionName + '();'; - } - return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(UnicodeArrayDecodeNodeTemplate_1.UnicodeArrayDecodeNodeTemplate().formatUnicorn({ - atobPolyfill: AtobTemplate_1.AtobTemplate(), - code: code, - forLoopFunctionName: forLoopFunctionName, - unicodeArrayName: this.unicodeArrayName - }), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode()); - } - }]); - - return UnicodeArrayDecodeNode; -}(AbstractCustomNode_1.AbstractCustomNode); - -exports.UnicodeArrayDecodeNode = UnicodeArrayDecodeNode; - /***/ }, /* 39 */ /***/ function(module, exports, __webpack_require__) { @@ -2198,8 +2118,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var UnicodeArrayTemplate_1 = __webpack_require__(72); -var AbstractCustomNode_1 = __webpack_require__(5); +var UnicodeArrayTemplate_1 = __webpack_require__(75); +var AbstractCustomNode_1 = __webpack_require__(6); var NodeUtils_1 = __webpack_require__(1); var UnicodeArrayNode = function (_AbstractCustomNode_) { @@ -2284,10 +2204,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" __webpack_require__(8); var AppendState_1 = __webpack_require__(4); -var NoCustomNodesPreset_1 = __webpack_require__(17); -var SelfDefendingTemplate_1 = __webpack_require__(73); -var UnicodeArrayRotateFunctionTemplate_1 = __webpack_require__(74); -var AbstractCustomNode_1 = __webpack_require__(5); +var NoCustomNodesPreset_1 = __webpack_require__(18); +var SelfDefendingTemplate_1 = __webpack_require__(76); +var UnicodeArrayRotateFunctionTemplate_1 = __webpack_require__(77); +var AbstractCustomNode_1 = __webpack_require__(6); var JavaScriptObfuscator_1 = __webpack_require__(9); var NodeUtils_1 = __webpack_require__(1); var Utils_1 = __webpack_require__(0); @@ -2350,7 +2270,8 @@ var UnicodeArrayRotateFunctionNode = function (_AbstractCustomNode_) { exports.UnicodeArrayRotateFunctionNode = UnicodeArrayRotateFunctionNode; /***/ }, -/* 41 */ +/* 41 */, +/* 42 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2363,7 +2284,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AbstractNodesGroup_1 = __webpack_require__(10); -var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(31); +var ConsoleOutputDisableExpressionNode_1 = __webpack_require__(32); var ConsoleOutputNodesGroup = function (_AbstractNodesGroup_) { _inherits(ConsoleOutputNodesGroup, _AbstractNodesGroup_); @@ -2386,7 +2307,7 @@ var ConsoleOutputNodesGroup = function (_AbstractNodesGroup_) { exports.ConsoleOutputNodesGroup = ConsoleOutputNodesGroup; /***/ }, -/* 42 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2398,9 +2319,9 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var DebugProtectionFunctionCallNode_1 = __webpack_require__(32); -var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(33); -var DebugProtectionFunctionNode_1 = __webpack_require__(34); +var DebugProtectionFunctionCallNode_1 = __webpack_require__(33); +var DebugProtectionFunctionIntervalNode_1 = __webpack_require__(34); +var DebugProtectionFunctionNode_1 = __webpack_require__(35); var AbstractNodesGroup_1 = __webpack_require__(10); var Utils_1 = __webpack_require__(0); @@ -2430,7 +2351,7 @@ var DebugProtectionNodesGroup = function (_AbstractNodesGroup_) { exports.DebugProtectionNodesGroup = DebugProtectionNodesGroup; /***/ }, -/* 43 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2443,7 +2364,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AbstractNodesGroup_1 = __webpack_require__(10); -var DomainLockNode_1 = __webpack_require__(35); +var DomainLockNode_1 = __webpack_require__(36); var DomainLockNodesGroup = function (_AbstractNodesGroup_) { _inherits(DomainLockNodesGroup, _AbstractNodesGroup_); @@ -2466,7 +2387,7 @@ var DomainLockNodesGroup = function (_AbstractNodesGroup_) { exports.DomainLockNodesGroup = DomainLockNodesGroup; /***/ }, -/* 44 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2479,7 +2400,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AbstractNodesGroup_1 = __webpack_require__(10); -var SelfDefendingUnicodeNode_1 = __webpack_require__(36); +var SelfDefendingUnicodeNode_1 = __webpack_require__(37); var SelfDefendingNodesGroup = function (_AbstractNodesGroup_) { _inherits(SelfDefendingNodesGroup, _AbstractNodesGroup_); @@ -2502,7 +2423,7 @@ var SelfDefendingNodesGroup = function (_AbstractNodesGroup_) { exports.SelfDefendingNodesGroup = SelfDefendingNodesGroup; /***/ }, -/* 45 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2515,9 +2436,9 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var AbstractNodesGroup_1 = __webpack_require__(10); -var UnicodeArray_1 = __webpack_require__(28); -var UnicodeArrayCallsWrapper_1 = __webpack_require__(37); -var UnicodeArrayDecodeNode_1 = __webpack_require__(38); +var UnicodeArray_1 = __webpack_require__(29); +var UnicodeArrayCallsWrapper_1 = __webpack_require__(38); +var UnicodeArrayDecodeNode_1 = __webpack_require__(87); var UnicodeArrayNode_1 = __webpack_require__(39); var UnicodeArrayRotateFunctionNode_1 = __webpack_require__(40); var Utils_1 = __webpack_require__(0); @@ -2564,7 +2485,7 @@ var UnicodeArrayNodesGroup = function (_AbstractNodesGroup_) { exports.UnicodeArrayNodesGroup = UnicodeArrayNodesGroup; /***/ }, -/* 46 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2579,7 +2500,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(7); var IdentifierReplacer_1 = __webpack_require__(14); var Nodes_1 = __webpack_require__(2); @@ -2635,7 +2556,7 @@ var CatchClauseObfuscator = function (_AbstractNodeObfuscat) { exports.CatchClauseObfuscator = CatchClauseObfuscator; /***/ }, -/* 47 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2650,7 +2571,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(7); var IdentifierReplacer_1 = __webpack_require__(14); var Nodes_1 = __webpack_require__(2); @@ -2710,7 +2631,7 @@ var FunctionDeclarationObfuscator = function (_AbstractNodeObfuscat) { exports.FunctionDeclarationObfuscator = FunctionDeclarationObfuscator; /***/ }, -/* 48 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2725,7 +2646,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(7); var IdentifierReplacer_1 = __webpack_require__(14); var Nodes_1 = __webpack_require__(2); @@ -2791,7 +2712,7 @@ var FunctionObfuscator = function (_AbstractNodeObfuscat) { exports.FunctionObfuscator = FunctionObfuscator; /***/ }, -/* 49 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2809,10 +2730,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var escodegen = __webpack_require__(11); var AbstractNodeObfuscator_1 = __webpack_require__(7); -var BooleanLiteralReplacer_1 = __webpack_require__(54); +var BooleanLiteralReplacer_1 = __webpack_require__(55); var Nodes_1 = __webpack_require__(2); -var NumberLiteralReplacer_1 = __webpack_require__(20); -var StringLiteralReplacer_1 = __webpack_require__(16); +var NumberLiteralReplacer_1 = __webpack_require__(21); +var StringLiteralReplacer_1 = __webpack_require__(17); var LiteralObfuscator = function (_AbstractNodeObfuscat) { _inherits(LiteralObfuscator, _AbstractNodeObfuscat); @@ -2856,7 +2777,7 @@ var LiteralObfuscator = function (_AbstractNodeObfuscat) { exports.LiteralObfuscator = LiteralObfuscator; /***/ }, -/* 50 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2872,10 +2793,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var escodegen = __webpack_require__(11); var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(7); var Nodes_1 = __webpack_require__(2); -var StringLiteralReplacer_1 = __webpack_require__(16); +var StringLiteralReplacer_1 = __webpack_require__(17); var MemberExpressionObfuscator = function (_AbstractNodeObfuscat) { _inherits(MemberExpressionObfuscator, _AbstractNodeObfuscat); @@ -2941,7 +2862,7 @@ var MemberExpressionObfuscator = function (_AbstractNodeObfuscat) { exports.MemberExpressionObfuscator = MemberExpressionObfuscator; /***/ }, -/* 51 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -2959,7 +2880,7 @@ var estraverse = __webpack_require__(3); var AbstractNodeObfuscator_1 = __webpack_require__(7); var Nodes_1 = __webpack_require__(2); var Utils_1 = __webpack_require__(0); -var StringLiteralReplacer_1 = __webpack_require__(16); +var StringLiteralReplacer_1 = __webpack_require__(17); var MethodDefinitionObfuscator = function (_AbstractNodeObfuscat) { _inherits(MethodDefinitionObfuscator, _AbstractNodeObfuscat); @@ -3002,7 +2923,7 @@ var MethodDefinitionObfuscator = function (_AbstractNodeObfuscat) { exports.MethodDefinitionObfuscator = MethodDefinitionObfuscator; /***/ }, -/* 52 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3018,7 +2939,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var escodegen = __webpack_require__(11); var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(7); var Nodes_1 = __webpack_require__(2); var Utils_1 = __webpack_require__(0); @@ -3088,7 +3009,7 @@ var ObjectExpressionObfuscator = function (_AbstractNodeObfuscat) { exports.ObjectExpressionObfuscator = ObjectExpressionObfuscator; /***/ }, -/* 53 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3103,7 +3024,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); +var NodeType_1 = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(7); var IdentifierReplacer_1 = __webpack_require__(14); var Nodes_1 = __webpack_require__(2); @@ -3165,7 +3086,7 @@ var VariableDeclarationObfuscator = function (_AbstractNodeObfuscat) { exports.VariableDeclarationObfuscator = VariableDeclarationObfuscator; /***/ }, -/* 54 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3179,7 +3100,7 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var JSFuck_1 = __webpack_require__(19); +var JSFuck_1 = __webpack_require__(20); var AbstractReplacer_1 = __webpack_require__(13); var BooleanLiteralReplacer = function (_AbstractReplacer_1$A) { @@ -3204,7 +3125,7 @@ var BooleanLiteralReplacer = function (_AbstractReplacer_1$A) { exports.BooleanLiteralReplacer = BooleanLiteralReplacer; /***/ }, -/* 55 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3225,11 +3146,11 @@ var __decorate = undefined && undefined.__decorate || function (decorators, targ 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__(77); -var TSourceMapMode_1 = __webpack_require__(75); -var DefaultPreset_1 = __webpack_require__(21); -var OptionsNormalizer_1 = __webpack_require__(56); -var ValidationErrorsFormatter_1 = __webpack_require__(57); +var class_validator_1 = __webpack_require__(81); +var TSourceMapMode_1 = __webpack_require__(78); +var DefaultPreset_1 = __webpack_require__(22); +var OptionsNormalizer_1 = __webpack_require__(57); +var ValidationErrorsFormatter_1 = __webpack_require__(58); var Options = function Options(obfuscatorOptions) { _classCallCheck(this, Options); @@ -3276,7 +3197,7 @@ exports.Options = Options; var _a; /***/ }, -/* 56 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3445,7 +3366,7 @@ OptionsNormalizer.normalizerRules = [OptionsNormalizer.domainLockRule, OptionsNo exports.OptionsNormalizer = OptionsNormalizer; /***/ }, -/* 57 */ +/* 58 */ /***/ function(module, exports) { "use strict"; @@ -3512,7 +3433,7 @@ var ValidationErrorsFormatter = function () { exports.ValidationErrorsFormatter = ValidationErrorsFormatter; /***/ }, -/* 58 */ +/* 59 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3523,10 +3444,10 @@ var _createClass = (function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var estraverse = __webpack_require__(3); -var NodeType_1 = __webpack_require__(6); -var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(59); -var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(60); -var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(61); +var NodeType_1 = __webpack_require__(5); +var FunctionDeclarationCalleeDataExtractor_1 = __webpack_require__(60); +var FunctionExpressionCalleeDataExtractor_1 = __webpack_require__(61); +var ObjectExpressionCalleeDataExtractor_1 = __webpack_require__(62); var Nodes_1 = __webpack_require__(2); var NodeUtils_1 = __webpack_require__(1); @@ -3603,7 +3524,7 @@ var StackTraceAnalyzer = function () { exports.StackTraceAnalyzer = StackTraceAnalyzer; /***/ }, -/* 59 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3662,7 +3583,7 @@ var FunctionDeclarationCalleeDataExtractor = function () { exports.FunctionDeclarationCalleeDataExtractor = FunctionDeclarationCalleeDataExtractor; /***/ }, -/* 60 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3724,7 +3645,7 @@ var FunctionExpressionCalleeDataExtractor = function () { exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtractor; /***/ }, -/* 61 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3855,7 +3776,7 @@ var ObjectExpressionCalleeDataExtractor = function () { exports.ObjectExpressionCalleeDataExtractor = ObjectExpressionCalleeDataExtractor; /***/ }, -/* 62 */ +/* 63 */ /***/ function(module, exports) { "use strict"; @@ -3867,7 +3788,8 @@ function AtobTemplate() { exports.AtobTemplate = AtobTemplate; /***/ }, -/* 63 */ +/* 64 */, +/* 65 */ /***/ function(module, exports) { "use strict"; @@ -3879,7 +3801,7 @@ function ConsoleOutputDisableExpressionTemplate() { exports.ConsoleOutputDisableExpressionTemplate = ConsoleOutputDisableExpressionTemplate; /***/ }, -/* 64 */ +/* 66 */ /***/ function(module, exports) { "use strict"; @@ -3891,7 +3813,7 @@ function DebugProtectionFunctionCallTemplate() { exports.DebugProtectionFunctionCallTemplate = DebugProtectionFunctionCallTemplate; /***/ }, -/* 65 */ +/* 67 */ /***/ function(module, exports) { "use strict"; @@ -3903,7 +3825,7 @@ function DebugProtectionFunctionIntervalTemplate() { exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionIntervalTemplate; /***/ }, -/* 66 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3916,7 +3838,7 @@ function DebugProtectionFunctionTemplate() { exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate; /***/ }, -/* 67 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3929,7 +3851,7 @@ function DomainLockNodeTemplate() { exports.DomainLockNodeTemplate = DomainLockNodeTemplate; /***/ }, -/* 68 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -3942,7 +3864,9 @@ function SelfDefendingTemplate() { exports.SelfDefendingTemplate = SelfDefendingTemplate; /***/ }, -/* 69 */ +/* 71 */, +/* 72 */, +/* 73 */ /***/ function(module, exports) { "use strict"; @@ -3954,32 +3878,8 @@ function UnicodeArrayCallsWrapperTemplate() { exports.UnicodeArrayCallsWrapperTemplate = UnicodeArrayCallsWrapperTemplate; /***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - -"use strict"; -"use strict"; - -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 '; -} -exports.SelfDefendingTemplate = SelfDefendingTemplate; - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - -"use strict"; -"use strict"; - -function UnicodeArrayDecodeNodeTemplate() { - return "\n (function () {\n {atobPolyfill}\n \n var {forLoopFunctionName} = function () {\n var array = [];\n \n for (var i in {unicodeArrayName}) {\n array['push'](decodeURI(atob({unicodeArrayName}[i])));\n }\n \n {unicodeArrayName} = array;\n };\n \n {code}\n })();\n "; -} -exports.UnicodeArrayDecodeNodeTemplate = UnicodeArrayDecodeNodeTemplate; - -/***/ }, -/* 72 */ +/* 74 */, +/* 75 */ /***/ function(module, exports) { "use strict"; @@ -3991,7 +3891,7 @@ function UnicodeArrayTemplate() { exports.UnicodeArrayTemplate = UnicodeArrayTemplate; /***/ }, -/* 73 */ +/* 76 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -4004,7 +3904,7 @@ function SelfDefendingTemplate() { exports.SelfDefendingTemplate = SelfDefendingTemplate; /***/ }, -/* 74 */ +/* 77 */ /***/ function(module, exports) { "use strict"; @@ -4016,45 +3916,46 @@ function UnicodeArrayRotateFunctionTemplate() { exports.UnicodeArrayRotateFunctionTemplate = UnicodeArrayRotateFunctionTemplate; /***/ }, -/* 75 */ +/* 78 */ /***/ function(module, exports) { "use strict"; "use strict"; /***/ }, -/* 76 */ +/* 79 */, +/* 80 */ /***/ function(module, exports) { module.exports = require("chance"); /***/ }, -/* 77 */ +/* 81 */ /***/ function(module, exports) { module.exports = require("class-validator"); /***/ }, -/* 78 */ +/* 82 */ /***/ function(module, exports) { module.exports = require("commander"); /***/ }, -/* 79 */ +/* 83 */ /***/ function(module, exports) { module.exports = require("fs"); /***/ }, -/* 80 */ +/* 84 */ /***/ function(module, exports) { module.exports = require("mkdirp"); /***/ }, -/* 81 */, -/* 82 */ +/* 85 */, +/* 86 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -4062,10 +3963,116 @@ module.exports = require("mkdirp"); var JavaScriptObfuscator_1 = __webpack_require__(9); if (!global._babelPolyfill) { - __webpack_require__(24); + __webpack_require__(25); } module.exports = JavaScriptObfuscator_1.JavaScriptObfuscator; +/***/ }, +/* 87 */ +/***/ function(module, exports, __webpack_require__) { + +"use strict"; +"use strict"; + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +var _get = (function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +__webpack_require__(8); +var AppendState_1 = __webpack_require__(4); +var NoCustomNodesPreset_1 = __webpack_require__(18); +var AtobTemplate_1 = __webpack_require__(63); +var SelfDefendingTemplate_1 = __webpack_require__(88); +var UnicodeArrayDecodeNodeTemplate_1 = __webpack_require__(89); +var AbstractCustomNode_1 = __webpack_require__(6); +var JavaScriptObfuscator_1 = __webpack_require__(9); +var NodeUtils_1 = __webpack_require__(1); + +var UnicodeArrayDecodeNode = function (_AbstractCustomNode_) { + _inherits(UnicodeArrayDecodeNode, _AbstractCustomNode_); + + function UnicodeArrayDecodeNode(unicodeArrayName, unicodeArray, options) { + _classCallCheck(this, UnicodeArrayDecodeNode); + + var _this = _possibleConstructorReturn(this, (UnicodeArrayDecodeNode.__proto__ || Object.getPrototypeOf(UnicodeArrayDecodeNode)).call(this, options)); + + _this.appendState = AppendState_1.AppendState.AfterObfuscation; + _this.unicodeArrayName = unicodeArrayName; + _this.unicodeArray = unicodeArray; + return _this; + } + + _createClass(UnicodeArrayDecodeNode, [{ + key: 'appendNode', + value: function appendNode(blockScopeNode) { + if (!this.unicodeArray.getLength()) { + return; + } + NodeUtils_1.NodeUtils.insertNodeAtIndex(blockScopeNode.body, this.getNode(), 1); + } + }, { + key: 'getNode', + value: function getNode() { + return _get(UnicodeArrayDecodeNode.prototype.__proto__ || Object.getPrototypeOf(UnicodeArrayDecodeNode.prototype), 'getNode', this).call(this); + } + }, { + key: 'getNodeStructure', + value: function getNodeStructure() { + var forLoopFunctionName = 'forLoopFunc'; + var code = void 0; + if (this.options.selfDefending) { + code = SelfDefendingTemplate_1.SelfDefendingTemplate().formatUnicorn({ + forLoopFunctionName: forLoopFunctionName, + unicodeArrayName: this.unicodeArrayName + }); + } else { + code = forLoopFunctionName + '();'; + } + return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(UnicodeArrayDecodeNodeTemplate_1.UnicodeArrayDecodeNodeTemplate().formatUnicorn({ + atobPolyfill: AtobTemplate_1.AtobTemplate(), + code: code, + forLoopFunctionName: forLoopFunctionName, + unicodeArrayName: this.unicodeArrayName + }), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode()); + } + }]); + + return UnicodeArrayDecodeNode; +}(AbstractCustomNode_1.AbstractCustomNode); + +exports.UnicodeArrayDecodeNode = UnicodeArrayDecodeNode; + +/***/ }, +/* 88 */ +/***/ function(module, exports, __webpack_require__) { + +"use strict"; +"use strict"; + +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 '; +} +exports.SelfDefendingTemplate = SelfDefendingTemplate; + +/***/ }, +/* 89 */ +/***/ function(module, exports) { + +"use strict"; +"use strict"; + +function UnicodeArrayDecodeNodeTemplate() { + return "\n (function () {\n {atobPolyfill}\n \n var {forLoopFunctionName} = function () {\n var array = [];\n \n for (var i in {unicodeArrayName}) {\n array['push'](decodeURI(atob({unicodeArrayName}[i])));\n }\n \n {unicodeArrayName} = array;\n };\n \n {code}\n })();\n "; +} +exports.UnicodeArrayDecodeNodeTemplate = UnicodeArrayDecodeNodeTemplate; + /***/ } /******/ ]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/src/custom-nodes/CustomNodeAppender.ts b/src/custom-nodes/CustomNodeAppender.ts index 8dc0c5d6..9dd09f19 100644 --- a/src/custom-nodes/CustomNodeAppender.ts +++ b/src/custom-nodes/CustomNodeAppender.ts @@ -47,17 +47,17 @@ export class CustomNodeAppender { } /** - * @param blockStatementBodyLength + * @param stackTraceRootLength * @param threshold */ - public static getIndexByThreshold (blockStatementBodyLength: number, threshold: number = 0.1): number { + public static getStackTraceIndexByThreshold (stackTraceRootLength: number, threshold: number = 0.1): number { if (threshold < 0 || threshold > 1) { throw new RangeError('`threshold` parameter should has value between 0 and 1'); } return Utils.getRandomGenerator().integer({ min: 0, - max: Math.round((blockStatementBodyLength - 1) * threshold) + max: Math.round((stackTraceRootLength - 1) * threshold) }); } diff --git a/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts b/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts index b2866707..ceeeda86 100644 --- a/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts +++ b/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts @@ -27,7 +27,7 @@ export class ConsoleOutputDisableExpressionNode extends AbstractCustomNode { stackTraceData, blockScopeNode.body, this.getNode(), - CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length) + CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length) ); } diff --git a/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts b/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts index a2a040d3..c6a02a37 100644 --- a/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts +++ b/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts @@ -30,7 +30,7 @@ export class DomainLockNode extends AbstractCustomNode { stackTraceData, blockScopeNode.body, this.getNode(), - CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length) + CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length) ); } diff --git a/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts b/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts index 7a08f42a..b37830eb 100644 --- a/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts +++ b/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts @@ -30,7 +30,7 @@ export class SelfDefendingUnicodeNode extends AbstractCustomNode { stackTraceData, blockScopeNode.body, this.getNode(), - CustomNodeAppender.getIndexByThreshold(blockScopeNode.body.length) + CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length) ); } diff --git a/test/dev/test.ts b/test/dev/test.ts index 2d9ef22d..52861b3f 100644 --- a/test/dev/test.ts +++ b/test/dev/test.ts @@ -8,6 +8,12 @@ const JavaScriptObfuscator: any = require("../../index"); let obfuscatedCode: string = JavaScriptObfuscator.obfuscate( ` + var start = new Date(); + + var log = console.log; + + console.log = function () {}; + (function(){ var result = 1, term1 = 0, @@ -66,6 +72,10 @@ let obfuscatedCode: string = JavaScriptObfuscator.obfuscate( console.log(error); } })(); + + console.log = log; + + console.log(new Date() - start); `, { disableConsoleOutput: false, diff --git a/test/unit-tests/custom-nodes/CustomNodeAppender.spec.ts b/test/unit-tests/custom-nodes/CustomNodeAppender.spec.ts index 732c09f1..612bc9d6 100644 --- a/test/unit-tests/custom-nodes/CustomNodeAppender.spec.ts +++ b/test/unit-tests/custom-nodes/CustomNodeAppender.spec.ts @@ -278,29 +278,108 @@ describe('CustomNodeAppender', () => { assert.deepEqual(astTree, expectedAstTree); }); + + it('should append node into deepest function call by specified index in calls trace - variant #3', () => { + astTree = NodeUtils.convertCodeToStructure(` + var start = new Date(); + + var log = console.log; + + console.log = function () {}; + + (function () { + function bar () { + function inner1 () { + + } + + function inner2 () { + var inner3 = function () { + + } + + inner3(); + } + + inner2(); + inner1(); + } + + bar(); + })(); + + console.log = log; + + console.log(new Date() - start); + `, false); + expectedAstTree = NodeUtils.convertCodeToStructure(` + var start = new Date(); + + var log = console.log; + + console.log = function () {}; + + (function () { + function bar () { + function inner1 () { + + } + + function inner2 () { + var inner3 = function () { + var test = 1; + } + + inner3(); + } + + inner2(); + inner1(); + } + + bar(); + })(); + + console.log = log; + + console.log(new Date() - start); + `, false); + + stackTraceData = new StackTraceAnalyzer(astTree.body).analyze(); + CustomNodeAppender.appendNode( + stackTraceData, + astTree.body, + node, + CustomNodeAppender.getStackTraceIndexByThreshold(stackTraceData.length) + ); + + NodeUtils.parentize(astTree); + + assert.deepEqual(astTree, expectedAstTree); + }); }); }); - describe('getIndexByThreshold (blockStatementBodyLength: number, threshold: number = 0.1): number', () => { + describe('getIndexByThreshold (stackTraceRootLength: number, threshold: number = 0.1): number', () => { it('should returns random index between 0 and index based on threshold value', () => { let index: number; for (let i: number = 0; i < 10; i++) { - index = CustomNodeAppender.getIndexByThreshold(100, 0.1); + index = CustomNodeAppender.getStackTraceIndexByThreshold(100, 0.1); assert.isAtLeast(index, 0); assert.isAtMost(index, 10); } for (let i: number = 0; i < 10; i++) { - index = CustomNodeAppender.getIndexByThreshold(10, 0.5); + index = CustomNodeAppender.getStackTraceIndexByThreshold(10, 0.5); assert.isAtLeast(index, 0); assert.isAtMost(index, 5); } for (let i: number = 0; i < 10; i++) { - index = CustomNodeAppender.getIndexByThreshold(1, 1); + index = CustomNodeAppender.getStackTraceIndexByThreshold(1, 1); assert.equal(index, 0); }