From 182ba99ee4494bfe43bfd10a65b40e13fa506b09 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Tue, 8 Nov 2016 22:18:54 +0300 Subject: [PATCH] structure change --- dist/index.js | 166 +++++++++--------- package.json | 2 +- src/Obfuscator.ts | 6 +- .../ConsoleOutputDisableExpressionNode.ts | 4 +- .../DebugProtectionFunctionCallNode.ts | 4 +- .../DebugProtectionFunctionIntervalNode.ts | 4 +- .../DebugProtectionFunctionNode.ts | 4 +- .../domain-lock-nodes/DomainLockNode.ts | 4 +- .../NodeCallsControllerFunctionNode.ts | 4 +- .../SelfDefendingUnicodeNode.ts | 4 +- .../UnicodeArrayCallsWrapper.ts | 4 +- .../unicode-array-nodes/UnicodeArrayNode.ts | 4 +- .../UnicodeArrayRotateFunctionNode.ts | 4 +- src/node-groups/ConsoleOutputNodesGroup.ts | 2 +- src/node-groups/DomainLockNodesGroup.ts | 2 +- src/node-groups/SelfDefendingNodesGroup.ts | 2 +- src/node-obfuscators/CatchClauseObfuscator.ts | 6 +- .../FunctionDeclarationObfuscator.ts | 6 +- src/node-obfuscators/FunctionObfuscator.ts | 6 +- src/node-obfuscators/LiteralObfuscator.ts | 4 +- .../MemberExpressionObfuscator.ts | 6 +- .../MethodDefinitionObfuscator.ts | 4 +- .../ObjectExpressionObfuscator.ts | 6 +- .../VariableDeclarationObfuscator.ts | 6 +- .../replacers/StringLiteralReplacer.ts | 4 +- src/{Nodes.ts => node/Node.ts} | 14 +- src/{ => node}/NodeAppender.ts | 8 +- src/{ => node}/NodeUtils.ts | 18 +- .../StackTraceAnalyzer.ts | 6 +- .../FunctionDeclarationCalleeDataExtractor.ts | 8 +- .../FunctionExpressionCalleeDataExtractor.ts | 14 +- .../ObjectExpressionCalleeDataExtractor.ts | 28 +-- test/fixtures/compile-performance.js | 40 ++--- .../StackTraceAnalyzer.spec.ts | 32 ++-- test/index.spec.ts | 4 +- .../{ => node}/NodeAppender.spec.ts | 14 +- test/unit-tests/{ => node}/NodeUtils.spec.ts | 4 +- 37 files changed, 229 insertions(+), 229 deletions(-) rename src/{Nodes.ts => node/Node.ts} (91%) rename src/{ => node}/NodeAppender.ts (95%) rename src/{ => node}/NodeUtils.ts (90%) rename test/unit-tests/{ => node}/NodeAppender.spec.ts (94%) rename test/unit-tests/{ => node}/NodeUtils.spec.ts (98%) diff --git a/dist/index.js b/dist/index.js index 08c56c78..5c3e27c2 100644 --- a/dist/index.js +++ b/dist/index.js @@ -298,7 +298,7 @@ var escodegen = __webpack_require__(12); var esprima = __webpack_require__(24); var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var Utils_1 = __webpack_require__(0); var NodeUtils = function () { @@ -331,7 +331,7 @@ var NodeUtils = function () { value: function getBlockStatementNodeByIndex(node) { var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - if (Nodes_1.Nodes.isNodeHasBlockStatement(node)) { + if (Node_1.Node.isNodeHasBlockStatement(node)) { if (node.body[index] === undefined) { throw new ReferenceError('Wrong index `' + index + '`. Block-statement body length is `' + node.body.length + '`'); } @@ -348,7 +348,7 @@ var NodeUtils = function () { if (!parentNode) { throw new ReferenceError('`parentNode` property of given node is `undefined`'); } - if (Nodes_1.Nodes.isBlockStatementNode(parentNode)) { + if (Node_1.Node.isBlockStatementNode(parentNode)) { if (!parentNode.parentNode) { throw new ReferenceError('`parentNode` property of `parentNode` of given node is `undefined`'); } @@ -359,7 +359,7 @@ var NodeUtils = function () { } return parentNode; } - if (Nodes_1.Nodes.isProgramNode(parentNode)) { + if (Node_1.Node.isProgramNode(parentNode)) { return parentNode; } return NodeUtils.getBlockScopeOfNode(parentNode); @@ -375,7 +375,7 @@ var NodeUtils = function () { if (node.type === NodeType_1.NodeType.Program) { value = node; } else { - value = Nodes_1.Nodes.getProgramNode([node]); + value = Node_1.Node.getProgramNode([node]); value['parentNode'] = value; } isRootNode = false; @@ -420,6 +420,19 @@ exports.NodeUtils = NodeUtils; /***/ }, /* 2 */ +/***/ function(module, exports) { + +"use strict"; +"use strict"; + +(function (AppendState) { + AppendState[AppendState["AfterObfuscation"] = 0] = "AfterObfuscation"; + AppendState[AppendState["BeforeObfuscation"] = 1] = "BeforeObfuscation"; +})(exports.AppendState || (exports.AppendState = {})); +var AppendState = exports.AppendState; + +/***/ }, +/* 3 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -431,12 +444,12 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons var NodeType_1 = __webpack_require__(7); -var Nodes = function () { - function Nodes() { - _classCallCheck(this, Nodes); +var Node = function () { + function Node() { + _classCallCheck(this, Node); } - _createClass(Nodes, null, [{ + _createClass(Node, null, [{ key: 'getProgramNode', value: function getProgramNode(bodyNode) { return { @@ -509,11 +522,11 @@ var Nodes = function () { }, { key: 'isReplaceableIdentifierNode', value: function isReplaceableIdentifierNode(node, parentNode) { - if (!Nodes.isIdentifierNode(node)) { + if (!Node.isIdentifierNode(node)) { return false; } - var parentNodeIsPropertyNode = Nodes.isPropertyNode(parentNode) && parentNode.key === node; - var parentNodeIsMemberExpressionNode = Nodes.isMemberExpressionNode(parentNode) && parentNode.computed === false && parentNode.property === node; + var parentNodeIsPropertyNode = Node.isPropertyNode(parentNode) && parentNode.key === node; + var parentNodeIsMemberExpressionNode = Node.isMemberExpressionNode(parentNode) && parentNode.computed === false && parentNode.property === node; return !parentNodeIsPropertyNode && !parentNodeIsMemberExpressionNode; } }, { @@ -533,23 +546,10 @@ var Nodes = function () { } }]); - return Nodes; + return Node; }(); -exports.Nodes = Nodes; - -/***/ }, -/* 3 */ -/***/ function(module, exports) { - -"use strict"; -"use strict"; - -(function (AppendState) { - AppendState[AppendState["AfterObfuscation"] = 0] = "AfterObfuscation"; - AppendState[AppendState["BeforeObfuscation"] = 1] = "BeforeObfuscation"; -})(exports.AppendState || (exports.AppendState = {})); -var AppendState = exports.AppendState; +exports.Node = Node; /***/ }, /* 4 */ @@ -837,7 +837,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 AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var AbstractNodesGroup = function () { function AbstractNodesGroup(stackTraceData, options) { @@ -1003,7 +1003,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var SingleNodeCallControllerTemplate_1 = __webpack_require__(65); var NoCustomNodesPreset_1 = __webpack_require__(16); var AbstractCustomNode_1 = __webpack_require__(6); @@ -1111,7 +1111,7 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) { value: function replaceStringLiteralWithUnicodeArrayCall(value) { var unicodeArrayNode = this.nodes.get('unicodeArrayNode'); if (!unicodeArrayNode) { - throw new ReferenceError('`unicodeArrayNode` node is not found in Map with custom nodes.'); + throw new ReferenceError('`unicodeArrayNode` node is not found in Map with custom node.'); } var rc4Key = ''; switch (this.options.unicodeArrayEncoding) { @@ -1137,7 +1137,7 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) { hexadecimalIndex = new NumberLiteralReplacer_1.NumberLiteralReplacer(this.nodes, this.options).replace(indexOfValue); var unicodeArrayCallsWrapper = this.nodes.get('unicodeArrayCallsWrapper'); if (!unicodeArrayCallsWrapper) { - throw new ReferenceError('`unicodeArrayCallsWrapper` node is not found in Map with custom nodes.'); + throw new ReferenceError('`unicodeArrayCallsWrapper` node is not found in Map with custom node.'); } if (this.options.unicodeArrayEncoding === UnicodeArrayEncoding_1.UnicodeArrayEncoding.rc4) { return unicodeArrayCallsWrapper.getNodeIdentifier() + '(\'' + hexadecimalIndex + '\', ' + Utils_1.Utils.stringToUnicode(rc4Key) + ')'; @@ -1430,7 +1430,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var estraverse = __webpack_require__(5); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var NodeType_1 = __webpack_require__(7); var CatchClauseObfuscator_1 = __webpack_require__(47); var ConsoleOutputNodesGroup_1 = __webpack_require__(42); @@ -1441,7 +1441,7 @@ 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 Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var ObjectExpressionObfuscator_1 = __webpack_require__(53); var SelfDefendingNodesGroup_1 = __webpack_require__(45); @@ -1461,7 +1461,7 @@ var Obfuscator = function () { _createClass(Obfuscator, [{ key: 'obfuscateNode', value: function obfuscateNode(node) { - if (Nodes_1.Nodes.isProgramNode(node) && !node.body.length) { + if (Node_1.Node.isProgramNode(node) && !node.body.length) { return node; } NodeUtils_1.NodeUtils.parentize(node); @@ -1915,7 +1915,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var ConsoleOutputDisableExpressionTemplate_1 = __webpack_require__(66); var AbstractCustomNode_1 = __webpack_require__(6); var NodeAppender_1 = __webpack_require__(4); @@ -1973,7 +1973,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var DebufProtectionFunctionCallTemplate_1 = __webpack_require__(67); var AbstractCustomNode_1 = __webpack_require__(6); var NodeAppender_1 = __webpack_require__(4); @@ -2027,7 +2027,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var DebugProtectionFunctionIntervalTemplate_1 = __webpack_require__(68); var AbstractCustomNode_1 = __webpack_require__(6); var NodeAppender_1 = __webpack_require__(4); @@ -2081,7 +2081,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var DebugProtectionFunctionTemplate_1 = __webpack_require__(69); var AbstractCustomNode_1 = __webpack_require__(6); var NodeAppender_1 = __webpack_require__(4); @@ -2148,7 +2148,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var DomainLockNodeTemplate_1 = __webpack_require__(70); var AbstractCustomNode_1 = __webpack_require__(6); var NodeAppender_1 = __webpack_require__(4); @@ -2212,7 +2212,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 AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var NoCustomNodesPreset_1 = __webpack_require__(16); var SelfDefendingTemplate_1 = __webpack_require__(71); var AbstractCustomNode_1 = __webpack_require__(6); @@ -2274,7 +2274,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var UnicodeArrayEncoding_1 = __webpack_require__(18); var NoCustomNodesPreset_1 = __webpack_require__(16); var AtobTemplate_1 = __webpack_require__(63); @@ -2386,7 +2386,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var UnicodeArrayTemplate_1 = __webpack_require__(76); var AbstractCustomNode_1 = __webpack_require__(6); var NodeAppender_1 = __webpack_require__(4); @@ -2473,7 +2473,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; } __webpack_require__(8); -var AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var NoCustomNodesPreset_1 = __webpack_require__(16); var SelfDefendingTemplate_1 = __webpack_require__(77); var UnicodeArrayRotateFunctionTemplate_1 = __webpack_require__(78); @@ -2699,7 +2699,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 AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var NodeCallsControllerFunctionNode_1 = __webpack_require__(17); var SelfDefendingUnicodeNode_1 = __webpack_require__(38); var AbstractNodesGroup_1 = __webpack_require__(11); @@ -2750,7 +2750,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 AppendState_1 = __webpack_require__(3); +var AppendState_1 = __webpack_require__(2); var UnicodeArrayCallsWrapper_1 = __webpack_require__(39); var UnicodeArrayNode_1 = __webpack_require__(40); var UnicodeArrayRotateFunctionNode_1 = __webpack_require__(41); @@ -2820,7 +2820,7 @@ var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); var AbstractNodeObfuscator_1 = __webpack_require__(9); var IdentifierReplacer_1 = __webpack_require__(15); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var CatchClauseObfuscator = function (_AbstractNodeObfuscat) { @@ -2859,7 +2859,7 @@ var CatchClauseObfuscator = function (_AbstractNodeObfuscat) { estraverse.replace(catchClauseNode, { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) { node.name = _this3.identifierReplacer.replace(node.name); } } @@ -2891,7 +2891,7 @@ var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); var AbstractNodeObfuscator_1 = __webpack_require__(9); var IdentifierReplacer_1 = __webpack_require__(15); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var FunctionDeclarationObfuscator = function (_AbstractNodeObfuscat) { @@ -2934,7 +2934,7 @@ var FunctionDeclarationObfuscator = function (_AbstractNodeObfuscat) { var scopeNode = NodeUtils_1.NodeUtils.getBlockScopeOfNode(functionDeclarationNode); estraverse.replace(scopeNode, { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) { node.name = _this3.identifierReplacer.replace(node.name); } } @@ -2966,7 +2966,7 @@ var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); var AbstractNodeObfuscator_1 = __webpack_require__(9); var IdentifierReplacer_1 = __webpack_require__(15); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var FunctionObfuscator = function (_AbstractNodeObfuscat) { @@ -3007,7 +3007,7 @@ var FunctionObfuscator = function (_AbstractNodeObfuscat) { var replaceVisitor = { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) { var newNodeName = _this3.identifierReplacer.replace(node.name); if (node.name !== newNodeName) { node.name = newNodeName; @@ -3048,7 +3048,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var escodegen = __webpack_require__(12); var AbstractNodeObfuscator_1 = __webpack_require__(9); var BooleanLiteralReplacer_1 = __webpack_require__(55); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NumberLiteralReplacer_1 = __webpack_require__(22); var StringLiteralReplacer_1 = __webpack_require__(19); @@ -3064,7 +3064,7 @@ var LiteralObfuscator = function (_AbstractNodeObfuscat) { _createClass(LiteralObfuscator, [{ key: 'obfuscateNode', value: function obfuscateNode(literalNode, parentNode) { - if (Nodes_1.Nodes.isPropertyNode(parentNode) && parentNode.key === literalNode) { + if (Node_1.Node.isPropertyNode(parentNode) && parentNode.key === literalNode) { return; } var content = void 0; @@ -3112,7 +3112,7 @@ var escodegen = __webpack_require__(12); var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); var AbstractNodeObfuscator_1 = __webpack_require__(9); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var StringLiteralReplacer_1 = __webpack_require__(19); var MemberExpressionObfuscator = function (_AbstractNodeObfuscat) { @@ -3131,11 +3131,11 @@ var MemberExpressionObfuscator = function (_AbstractNodeObfuscat) { estraverse.replace(memberExpressionNode.property, { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isLiteralNode(node)) { + if (Node_1.Node.isLiteralNode(node)) { _this2.obfuscateLiteralProperty(node); return; } - if (Nodes_1.Nodes.isIdentifierNode(node)) { + if (Node_1.Node.isIdentifierNode(node)) { if (memberExpressionNode.computed) { return; } @@ -3195,7 +3195,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" var estraverse = __webpack_require__(5); var AbstractNodeObfuscator_1 = __webpack_require__(9); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var Utils_1 = __webpack_require__(0); var StringLiteralReplacer_1 = __webpack_require__(19); @@ -3223,7 +3223,7 @@ var MethodDefinitionObfuscator = function (_AbstractNodeObfuscat) { estraverse.replace(methodDefinitionNode.key, { enter: function enter(node) { - if (Nodes_1.Nodes.isIdentifierNode(node) && !Utils_1.Utils.arrayContains(_this2.ignoredNames, node.name) && methodDefinitionNode.computed === false) { + if (Node_1.Node.isIdentifierNode(node) && !Utils_1.Utils.arrayContains(_this2.ignoredNames, node.name) && methodDefinitionNode.computed === false) { methodDefinitionNode.computed = true; node.name = new StringLiteralReplacer_1.StringLiteralReplacer(_this2.nodes, _this2.options).replace(node.name); return; @@ -3258,7 +3258,7 @@ var escodegen = __webpack_require__(12); var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); var AbstractNodeObfuscator_1 = __webpack_require__(9); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var Utils_1 = __webpack_require__(0); var ObjectExpressionObfuscator = function (_AbstractNodeObfuscat) { @@ -3281,11 +3281,11 @@ var ObjectExpressionObfuscator = function (_AbstractNodeObfuscat) { } estraverse.replace(property.key, { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isLiteralNode(node)) { + if (Node_1.Node.isLiteralNode(node)) { _this2.obfuscateLiteralPropertyKey(node); return; } - if (Nodes_1.Nodes.isIdentifierNode(node)) { + if (Node_1.Node.isIdentifierNode(node)) { _this2.obfuscateIdentifierPropertyKey(node); } } @@ -3344,7 +3344,7 @@ var estraverse = __webpack_require__(5); var NodeType_1 = __webpack_require__(7); var AbstractNodeObfuscator_1 = __webpack_require__(9); var IdentifierReplacer_1 = __webpack_require__(15); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var VariableDeclarationObfuscator = function (_AbstractNodeObfuscat) { @@ -3389,7 +3389,7 @@ var VariableDeclarationObfuscator = function (_AbstractNodeObfuscat) { var scopeNode = variableDeclarationNode.kind === 'var' ? NodeUtils_1.NodeUtils.getBlockScopeOfNode(variableDeclarationNode) : variableParentNode; estraverse.replace(scopeNode, { enter: function enter(node, parentNode) { - if (!node.obfuscated && Nodes_1.Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (!node.obfuscated && Node_1.Node.isReplaceableIdentifierNode(node, parentNode)) { node.name = _this3.identifierReplacer.replace(node.name); } } @@ -3763,7 +3763,7 @@ var NodeType_1 = __webpack_require__(7); 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 Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var StackTraceAnalyzer = function () { @@ -3794,7 +3794,7 @@ var StackTraceAnalyzer = function () { } estraverse.traverse(rootNode, { enter: function enter(node) { - if (!Nodes_1.Nodes.isCallExpressionNode(node) || rootNode.parentNode !== NodeUtils_1.NodeUtils.getBlockScopeOfNode(node)) { + if (!Node_1.Node.isCallExpressionNode(node) || rootNode.parentNode !== NodeUtils_1.NodeUtils.getBlockScopeOfNode(node)) { return; } _this.calleeDataExtractors.forEach(function (calleeDataExtractor) { @@ -3852,7 +3852,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 estraverse = __webpack_require__(5); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var FunctionDeclarationCalleeDataExtractor = function () { @@ -3867,7 +3867,7 @@ var FunctionDeclarationCalleeDataExtractor = function () { key: 'extract', value: function extract() { var calleeBlockStatement = null; - if (Nodes_1.Nodes.isIdentifierNode(this.callee)) { + if (Node_1.Node.isIdentifierNode(this.callee)) { calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(this.blockScopeBody[0]), this.callee.name); } if (!calleeBlockStatement) { @@ -3884,7 +3884,7 @@ var FunctionDeclarationCalleeDataExtractor = function () { var calleeBlockStatement = null; estraverse.traverse(node, { enter: function enter(node) { - if (Nodes_1.Nodes.isFunctionDeclarationNode(node) && node.id.name === name) { + if (Node_1.Node.isFunctionDeclarationNode(node) && node.id.name === name) { calleeBlockStatement = node.body; return estraverse.VisitorOption.Break; } @@ -3911,7 +3911,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 estraverse = __webpack_require__(5); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var FunctionExpressionCalleeDataExtractor = function () { @@ -3926,10 +3926,10 @@ var FunctionExpressionCalleeDataExtractor = function () { key: 'extract', value: function extract() { var calleeBlockStatement = null; - if (Nodes_1.Nodes.isIdentifierNode(this.callee)) { + if (Node_1.Node.isIdentifierNode(this.callee)) { calleeBlockStatement = this.getCalleeBlockStatement(NodeUtils_1.NodeUtils.getBlockScopeOfNode(this.blockScopeBody[0]), this.callee.name); } - if (Nodes_1.Nodes.isFunctionExpressionNode(this.callee)) { + if (Node_1.Node.isFunctionExpressionNode(this.callee)) { calleeBlockStatement = this.callee.body; } if (!calleeBlockStatement) { @@ -3946,7 +3946,7 @@ var FunctionExpressionCalleeDataExtractor = function () { var calleeBlockStatement = null; estraverse.traverse(node, { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isFunctionExpressionNode(node) && Nodes_1.Nodes.isVariableDeclaratorNode(parentNode) && Nodes_1.Nodes.isIdentifierNode(parentNode.id) && parentNode.id.name === name) { + if (Node_1.Node.isFunctionExpressionNode(node) && Node_1.Node.isVariableDeclaratorNode(parentNode) && Node_1.Node.isIdentifierNode(parentNode.id) && parentNode.id.name === name) { calleeBlockStatement = node.body; return estraverse.VisitorOption.Break; } @@ -3973,7 +3973,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 estraverse = __webpack_require__(5); -var Nodes_1 = __webpack_require__(2); +var Node_1 = __webpack_require__(3); var NodeUtils_1 = __webpack_require__(1); var ObjectExpressionCalleeDataExtractor = function () { @@ -3989,7 +3989,7 @@ var ObjectExpressionCalleeDataExtractor = function () { value: function extract() { var calleeBlockStatement = null, functionExpressionName = null; - if (Nodes_1.Nodes.isMemberExpressionNode(this.callee)) { + if (Node_1.Node.isMemberExpressionNode(this.callee)) { var objectMembersCallsChain = this.createObjectMembersCallsChain([], this.callee); if (!objectMembersCallsChain.length) { return null; @@ -4008,16 +4008,16 @@ var ObjectExpressionCalleeDataExtractor = function () { }, { key: 'createObjectMembersCallsChain', value: function createObjectMembersCallsChain(currentChain, memberExpression) { - if (Nodes_1.Nodes.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) { + if (Node_1.Node.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) { currentChain.unshift(memberExpression.property.name); - } else if (Nodes_1.Nodes.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) { + } else if (Node_1.Node.isLiteralNode(memberExpression.property) && (typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number')) { currentChain.unshift(memberExpression.property.value); } else { return currentChain; } - if (Nodes_1.Nodes.isMemberExpressionNode(memberExpression.object)) { + if (Node_1.Node.isMemberExpressionNode(memberExpression.object)) { return this.createObjectMembersCallsChain(currentChain, memberExpression.object); - } else if (Nodes_1.Nodes.isIdentifierNode(memberExpression.object)) { + } else if (Node_1.Node.isIdentifierNode(memberExpression.object)) { currentChain.unshift(memberExpression.object.name); } return currentChain; @@ -4034,7 +4034,7 @@ var ObjectExpressionCalleeDataExtractor = function () { var calleeBlockStatement = null; estraverse.traverse(node, { enter: function enter(node, parentNode) { - if (Nodes_1.Nodes.isVariableDeclaratorNode(node) && Nodes_1.Nodes.isIdentifierNode(node.id) && node.init && Nodes_1.Nodes.isObjectExpressionNode(node.init) && node.id.name === objectName) { + if (Node_1.Node.isVariableDeclaratorNode(node) && Node_1.Node.isIdentifierNode(node.id) && node.init && Node_1.Node.isObjectExpressionNode(node.init) && node.id.name === objectName) { calleeBlockStatement = _this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain); return estraverse.VisitorOption.Break; } @@ -4057,15 +4057,15 @@ var ObjectExpressionCalleeDataExtractor = function () { for (var _iterator = objectExpressionProperties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var propertyNode = _step.value; - var isTargetPropertyNodeWithIdentifierKey = Nodes_1.Nodes.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; - var isTargetPropertyNodeWithLiteralKey = Nodes_1.Nodes.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain; + var isTargetPropertyNodeWithIdentifierKey = Node_1.Node.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; + var isTargetPropertyNodeWithLiteralKey = Node_1.Node.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain; if (!isTargetPropertyNodeWithIdentifierKey && !isTargetPropertyNodeWithLiteralKey) { continue; } - if (Nodes_1.Nodes.isObjectExpressionNode(propertyNode.value)) { + if (Node_1.Node.isObjectExpressionNode(propertyNode.value)) { return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain); } - if (Nodes_1.Nodes.isFunctionExpressionNode(propertyNode.value)) { + if (Node_1.Node.isFunctionExpressionNode(propertyNode.value)) { return propertyNode.value.body; } } diff --git a/package.json b/package.json index e0acd376..f739c365 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "javascript-obfuscator", - "version": "0.8.0-dev.4", + "version": "0.8.0-dev.5", "description": "JavaScript obfuscator", "keywords": [ "obfuscator", diff --git a/src/Obfuscator.ts b/src/Obfuscator.ts index 1037527c..e3373c74 100644 --- a/src/Obfuscator.ts +++ b/src/Obfuscator.ts @@ -22,8 +22,8 @@ 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 { Node } from './node/Node'; +import { NodeUtils } from './node/NodeUtils'; import { ObjectExpressionObfuscator } from './node-obfuscators/ObjectExpressionObfuscator'; import { SelfDefendingNodesGroup } from './node-groups/SelfDefendingNodesGroup'; import { UnicodeArrayNodesGroup } from './node-groups/UnicodeArrayNodesGroup'; @@ -90,7 +90,7 @@ export class Obfuscator implements IObfuscator { * @returns {ESTree.Node} */ public obfuscateNode (node: ESTree.Program): ESTree.Node { - if (Nodes.isProgramNode(node) && !node.body.length) { + if (Node.isProgramNode(node) && !node.body.length) { return node; } diff --git a/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts b/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts index f32e0065..89dadd35 100644 --- a/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts +++ b/src/custom-nodes/console-output-nodes/ConsoleOutputDisableExpressionNode.ts @@ -11,8 +11,8 @@ import { AppendState } from '../../enums/AppendState'; import { ConsoleOutputDisableExpressionTemplate } from '../../templates/custom-nodes/console-output-nodes/console-output-disable-expression-node/ConsoleOutputDisableExpressionTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; import { Utils } from '../../Utils'; export class ConsoleOutputDisableExpressionNode extends AbstractCustomNode { diff --git a/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts b/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts index b4d4a233..99205b51 100644 --- a/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts +++ b/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionCallNode.ts @@ -10,8 +10,8 @@ import { AppendState } from '../../enums/AppendState'; import { DebugProtectionFunctionCallTemplate } from '../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-call-node/DebufProtectionFunctionCallTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; export class DebugProtectionFunctionCallNode extends AbstractCustomNode { /** diff --git a/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts b/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts index 93c7ae14..f0d10f08 100644 --- a/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts +++ b/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionIntervalNode.ts @@ -10,8 +10,8 @@ import { AppendState } from '../../enums/AppendState'; import { DebugProtectionFunctionIntervalTemplate } from '../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-interval-node/DebugProtectionFunctionIntervalTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; export class DebugProtectionFunctionIntervalNode extends AbstractCustomNode { /** diff --git a/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts b/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts index 6d0668ac..e5444285 100644 --- a/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts +++ b/src/custom-nodes/debug-protection-nodes/DebugProtectionFunctionNode.ts @@ -10,8 +10,8 @@ import { AppendState } from '../../enums/AppendState'; import { DebugProtectionFunctionTemplate } from '../../templates/custom-nodes/debug-protection-nodes/debug-protection-function-node/DebugProtectionFunctionTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; import { Utils } from '../../Utils'; export class DebugProtectionFunctionNode extends AbstractCustomNode { diff --git a/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts b/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts index 02e73d60..a25be4f4 100644 --- a/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts +++ b/src/custom-nodes/domain-lock-nodes/DomainLockNode.ts @@ -11,8 +11,8 @@ import { AppendState } from '../../enums/AppendState'; import { DomainLockNodeTemplate } from '../../templates/custom-nodes/domain-lock-nodes/domain-lock-node/DomainLockNodeTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; import { Utils } from '../../Utils'; export class DomainLockNode extends AbstractCustomNode { diff --git a/src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts b/src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts index 354bed64..338d4122 100644 --- a/src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts +++ b/src/custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode.ts @@ -14,8 +14,8 @@ import { NO_CUSTOM_NODES_PRESET } from '../../preset-options/NoCustomNodesPreset import { AbstractCustomNode } from '../AbstractCustomNode'; import { JavaScriptObfuscator } from '../../JavaScriptObfuscator'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; export class NodeCallsControllerFunctionNode extends AbstractCustomNode { /** diff --git a/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts b/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts index f3d3b1ae..0562a13e 100644 --- a/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts +++ b/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.ts @@ -11,9 +11,9 @@ import { NO_CUSTOM_NODES_PRESET } from '../../preset-options/NoCustomNodesPreset import { SelfDefendingTemplate } from '../../templates/custom-nodes/self-defending-nodes/self-defending-unicode-node/SelfDefendingTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; +import { NodeAppender } from '../../node/NodeAppender'; import { JavaScriptObfuscator } from '../../JavaScriptObfuscator'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeUtils } from '../../node/NodeUtils'; import { Utils } from '../../Utils'; export class SelfDefendingUnicodeNode extends AbstractCustomNode { diff --git a/src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts b/src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts index 31409cd0..58142806 100644 --- a/src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts +++ b/src/custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper.ts @@ -19,8 +19,8 @@ import { UnicodeArrayRc4DecodeNodeTemplate } from '../../templates/custom-nodes/ import { AbstractCustomNode } from '../AbstractCustomNode'; import { JavaScriptObfuscator } from '../../JavaScriptObfuscator'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; import { UnicodeArray } from '../../UnicodeArray'; export class UnicodeArrayCallsWrapper extends AbstractCustomNode { diff --git a/src/custom-nodes/unicode-array-nodes/UnicodeArrayNode.ts b/src/custom-nodes/unicode-array-nodes/UnicodeArrayNode.ts index d080930c..44cfedae 100644 --- a/src/custom-nodes/unicode-array-nodes/UnicodeArrayNode.ts +++ b/src/custom-nodes/unicode-array-nodes/UnicodeArrayNode.ts @@ -12,8 +12,8 @@ import { UnicodeArray } from '../../UnicodeArray'; import { UnicodeArrayTemplate } from '../../templates/custom-nodes/unicode-array-nodes/unicode-array-node/UnicodeArrayTemplate'; import { AbstractCustomNode } from '../AbstractCustomNode'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; export class UnicodeArrayNode extends AbstractCustomNode { /** diff --git a/src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts b/src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts index b470014f..0c04ed07 100644 --- a/src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts +++ b/src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts @@ -14,8 +14,8 @@ import { UnicodeArrayRotateFunctionTemplate } from '../../templates/custom-nodes import { AbstractCustomNode } from '../AbstractCustomNode'; import { JavaScriptObfuscator } from '../../JavaScriptObfuscator'; -import { NodeAppender } from '../../NodeAppender'; -import { NodeUtils } from '../../NodeUtils'; +import { NodeAppender } from '../../node/NodeAppender'; +import { NodeUtils } from '../../node/NodeUtils'; import { UnicodeArray } from '../../UnicodeArray'; import { Utils } from '../../Utils'; diff --git a/src/node-groups/ConsoleOutputNodesGroup.ts b/src/node-groups/ConsoleOutputNodesGroup.ts index f498c96e..b5e8aec0 100644 --- a/src/node-groups/ConsoleOutputNodesGroup.ts +++ b/src/node-groups/ConsoleOutputNodesGroup.ts @@ -4,7 +4,7 @@ import { ConsoleOutputDisableExpressionNode } from '../custom-nodes/console-outp import { NodeCallsControllerFunctionNode } from '../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode'; import { AbstractNodesGroup } from './AbstractNodesGroup'; -import { NodeAppender } from '../NodeAppender'; +import { NodeAppender } from '../node/NodeAppender'; import { Utils } from '../Utils'; export class ConsoleOutputNodesGroup extends AbstractNodesGroup { diff --git a/src/node-groups/DomainLockNodesGroup.ts b/src/node-groups/DomainLockNodesGroup.ts index 771c4d78..c7abe126 100644 --- a/src/node-groups/DomainLockNodesGroup.ts +++ b/src/node-groups/DomainLockNodesGroup.ts @@ -4,7 +4,7 @@ import { DomainLockNode } from '../custom-nodes/domain-lock-nodes/DomainLockNode import { NodeCallsControllerFunctionNode } from '../custom-nodes/node-calls-controller-nodes/NodeCallsControllerFunctionNode'; import { AbstractNodesGroup } from './AbstractNodesGroup'; -import { NodeAppender } from '../NodeAppender'; +import { NodeAppender } from '../node/NodeAppender'; import { Utils } from '../Utils'; export class DomainLockNodesGroup extends AbstractNodesGroup { diff --git a/src/node-groups/SelfDefendingNodesGroup.ts b/src/node-groups/SelfDefendingNodesGroup.ts index 2c17d659..d990143e 100644 --- a/src/node-groups/SelfDefendingNodesGroup.ts +++ b/src/node-groups/SelfDefendingNodesGroup.ts @@ -6,7 +6,7 @@ import { NodeCallsControllerFunctionNode } from '../custom-nodes/node-calls-cont import { SelfDefendingUnicodeNode } from '../custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode'; import { AbstractNodesGroup } from './AbstractNodesGroup'; -import { NodeAppender } from '../NodeAppender'; +import { NodeAppender } from '../node/NodeAppender'; import { Utils } from '../Utils'; export class SelfDefendingNodesGroup extends AbstractNodesGroup { diff --git a/src/node-obfuscators/CatchClauseObfuscator.ts b/src/node-obfuscators/CatchClauseObfuscator.ts index 9e839d9b..48612a5b 100644 --- a/src/node-obfuscators/CatchClauseObfuscator.ts +++ b/src/node-obfuscators/CatchClauseObfuscator.ts @@ -8,8 +8,8 @@ import { NodeType } from '../enums/NodeType'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; import { IdentifierReplacer } from './replacers/IdentifierReplacer'; -import { Nodes } from '../Nodes'; -import { NodeUtils } from '../NodeUtils'; +import { Node } from '../node/Node'; +import { NodeUtils } from '../node/NodeUtils'; /** * replaces: @@ -58,7 +58,7 @@ export class CatchClauseObfuscator extends AbstractNodeObfuscator { private replaceCatchClauseParam (catchClauseNode: ESTree.CatchClause): void { estraverse.replace(catchClauseNode, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { - if (Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (Node.isReplaceableIdentifierNode(node, parentNode)) { node.name = this.identifierReplacer.replace(node.name); } } diff --git a/src/node-obfuscators/FunctionDeclarationObfuscator.ts b/src/node-obfuscators/FunctionDeclarationObfuscator.ts index 70df73f9..b7cf5f2d 100644 --- a/src/node-obfuscators/FunctionDeclarationObfuscator.ts +++ b/src/node-obfuscators/FunctionDeclarationObfuscator.ts @@ -8,8 +8,8 @@ import { NodeType } from '../enums/NodeType'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; import { IdentifierReplacer } from './replacers/IdentifierReplacer'; -import { Nodes } from '../Nodes'; -import { NodeUtils } from '../NodeUtils'; +import { Node } from '../node/Node'; +import { NodeUtils } from '../node/NodeUtils'; /** * replaces: @@ -68,7 +68,7 @@ export class FunctionDeclarationObfuscator extends AbstractNodeObfuscator { estraverse.replace(scopeNode, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { - if (Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (Node.isReplaceableIdentifierNode(node, parentNode)) { node.name = this.identifierReplacer.replace(node.name); } } diff --git a/src/node-obfuscators/FunctionObfuscator.ts b/src/node-obfuscators/FunctionObfuscator.ts index 634a98c7..4721f623 100644 --- a/src/node-obfuscators/FunctionObfuscator.ts +++ b/src/node-obfuscators/FunctionObfuscator.ts @@ -8,8 +8,8 @@ import { NodeType } from '../enums/NodeType'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; import { IdentifierReplacer } from './replacers/IdentifierReplacer'; -import { Nodes } from '../Nodes'; -import { NodeUtils } from '../NodeUtils'; +import { Node } from '../node/Node'; +import { NodeUtils } from '../node/NodeUtils'; /** * replaces: @@ -61,7 +61,7 @@ export class FunctionObfuscator extends AbstractNodeObfuscator { private replaceFunctionParams (functionNode: ESTree.Function): void { let replaceVisitor: estraverse.Visitor = { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { - if (Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (Node.isReplaceableIdentifierNode(node, parentNode)) { const newNodeName: string = this.identifierReplacer.replace(node.name); if (node.name !== newNodeName) { diff --git a/src/node-obfuscators/LiteralObfuscator.ts b/src/node-obfuscators/LiteralObfuscator.ts index 900b5680..bf46f3e4 100644 --- a/src/node-obfuscators/LiteralObfuscator.ts +++ b/src/node-obfuscators/LiteralObfuscator.ts @@ -3,7 +3,7 @@ import * as ESTree from 'estree'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; import { BooleanLiteralReplacer } from './replacers/BooleanLiteralReplacer'; -import { Nodes } from '../Nodes'; +import { Node } from '../node/Node'; import { NumberLiteralReplacer } from './replacers/NumberLiteralReplacer'; import { StringLiteralReplacer } from './replacers/StringLiteralReplacer'; @@ -13,7 +13,7 @@ export class LiteralObfuscator extends AbstractNodeObfuscator { * @param parentNode */ public obfuscateNode (literalNode: ESTree.Literal, parentNode: ESTree.Node): void { - if (Nodes.isPropertyNode(parentNode) && parentNode.key === literalNode) { + if (Node.isPropertyNode(parentNode) && parentNode.key === literalNode) { return; } diff --git a/src/node-obfuscators/MemberExpressionObfuscator.ts b/src/node-obfuscators/MemberExpressionObfuscator.ts index dc028b32..223e83af 100644 --- a/src/node-obfuscators/MemberExpressionObfuscator.ts +++ b/src/node-obfuscators/MemberExpressionObfuscator.ts @@ -5,7 +5,7 @@ import * as ESTree from 'estree'; import { NodeType } from '../enums/NodeType'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; -import { Nodes } from '../Nodes'; +import { Node } from '../node/Node'; import { StringLiteralReplacer } from './replacers/StringLiteralReplacer'; export class MemberExpressionObfuscator extends AbstractNodeObfuscator { @@ -15,13 +15,13 @@ export class MemberExpressionObfuscator extends AbstractNodeObfuscator { public obfuscateNode (memberExpressionNode: ESTree.MemberExpression): void { estraverse.replace(memberExpressionNode.property, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { - if (Nodes.isLiteralNode(node)) { + if (Node.isLiteralNode(node)) { this.obfuscateLiteralProperty(node); return; } - if (Nodes.isIdentifierNode(node)) { + if (Node.isIdentifierNode(node)) { if (memberExpressionNode.computed) { return; } diff --git a/src/node-obfuscators/MethodDefinitionObfuscator.ts b/src/node-obfuscators/MethodDefinitionObfuscator.ts index bee963ef..0ee9b98d 100644 --- a/src/node-obfuscators/MethodDefinitionObfuscator.ts +++ b/src/node-obfuscators/MethodDefinitionObfuscator.ts @@ -2,7 +2,7 @@ import * as estraverse from 'estraverse'; import * as ESTree from 'estree'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; -import { Nodes } from '../Nodes'; +import { Node } from '../node/Node'; import { Utils } from '../Utils'; import { StringLiteralReplacer } from './replacers/StringLiteralReplacer'; @@ -34,7 +34,7 @@ export class MethodDefinitionObfuscator extends AbstractNodeObfuscator { estraverse.replace(methodDefinitionNode.key, { enter: (node: ESTree.Node): any => { if ( - Nodes.isIdentifierNode(node) && + Node.isIdentifierNode(node) && !Utils.arrayContains(this.ignoredNames, node.name) && methodDefinitionNode.computed === false ) { diff --git a/src/node-obfuscators/ObjectExpressionObfuscator.ts b/src/node-obfuscators/ObjectExpressionObfuscator.ts index 0ba6af5b..64eebd79 100644 --- a/src/node-obfuscators/ObjectExpressionObfuscator.ts +++ b/src/node-obfuscators/ObjectExpressionObfuscator.ts @@ -5,7 +5,7 @@ import * as ESTree from 'estree'; import { NodeType } from '../enums/NodeType'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; -import { Nodes } from '../Nodes'; +import { Node } from '../node/Node'; import { Utils } from '../Utils'; /** @@ -31,13 +31,13 @@ export class ObjectExpressionObfuscator extends AbstractNodeObfuscator { estraverse.replace(property.key, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { - if (Nodes.isLiteralNode(node)) { + if (Node.isLiteralNode(node)) { this.obfuscateLiteralPropertyKey(node); return; } - if (Nodes.isIdentifierNode(node)) { + if (Node.isIdentifierNode(node)) { this.obfuscateIdentifierPropertyKey(node); } } diff --git a/src/node-obfuscators/VariableDeclarationObfuscator.ts b/src/node-obfuscators/VariableDeclarationObfuscator.ts index 79609c51..891d1a9d 100644 --- a/src/node-obfuscators/VariableDeclarationObfuscator.ts +++ b/src/node-obfuscators/VariableDeclarationObfuscator.ts @@ -8,8 +8,8 @@ import { NodeType } from '../enums/NodeType'; import { AbstractNodeObfuscator } from './AbstractNodeObfuscator'; import { IdentifierReplacer } from './replacers/IdentifierReplacer'; -import { Nodes } from '../Nodes'; -import { NodeUtils } from '../NodeUtils'; +import { Node } from '../node/Node'; +import { NodeUtils } from '../node/NodeUtils'; /** * replaces: @@ -73,7 +73,7 @@ export class VariableDeclarationObfuscator extends AbstractNodeObfuscator { estraverse.replace(scopeNode, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { - if (!node.obfuscated && Nodes.isReplaceableIdentifierNode(node, parentNode)) { + if (!node.obfuscated && Node.isReplaceableIdentifierNode(node, parentNode)) { node.name = this.identifierReplacer.replace(node.name); } } diff --git a/src/node-obfuscators/replacers/StringLiteralReplacer.ts b/src/node-obfuscators/replacers/StringLiteralReplacer.ts index 320a248c..4fe0b008 100644 --- a/src/node-obfuscators/replacers/StringLiteralReplacer.ts +++ b/src/node-obfuscators/replacers/StringLiteralReplacer.ts @@ -45,7 +45,7 @@ export class StringLiteralReplacer extends AbstractReplacer { const unicodeArrayNode: TUnicodeArrayNode = this.nodes.get('unicodeArrayNode'); if (!unicodeArrayNode) { - throw new ReferenceError('`unicodeArrayNode` node is not found in Map with custom nodes.'); + throw new ReferenceError('`unicodeArrayNode` node is not found in Map with custom node.'); } let rc4Key: string = ''; @@ -83,7 +83,7 @@ export class StringLiteralReplacer extends AbstractReplacer { const unicodeArrayCallsWrapper: TUnicodeArrayCallsWrapper = this.nodes.get('unicodeArrayCallsWrapper'); if (!unicodeArrayCallsWrapper) { - throw new ReferenceError('`unicodeArrayCallsWrapper` node is not found in Map with custom nodes.'); + throw new ReferenceError('`unicodeArrayCallsWrapper` node is not found in Map with custom node.'); } if (this.options.unicodeArrayEncoding === UnicodeArrayEncoding.rc4) { diff --git a/src/Nodes.ts b/src/node/Node.ts similarity index 91% rename from src/Nodes.ts rename to src/node/Node.ts index b0ae4c30..4c9af84a 100644 --- a/src/Nodes.ts +++ b/src/node/Node.ts @@ -1,11 +1,11 @@ import * as ESTree from 'estree'; -import { TNodeWithBlockStatement } from './types/TNodeWithBlockStatement'; -import { TStatement } from './types/TStatement'; +import { TNodeWithBlockStatement } from '../types/TNodeWithBlockStatement'; +import { TStatement } from '../types/TStatement'; -import { NodeType } from './enums/NodeType'; +import { NodeType } from '../enums/NodeType'; -export class Nodes { +export class Node { /** * @param bodyNode * @returns ESTree.Program @@ -123,13 +123,13 @@ export class Nodes { * @returns {boolean} */ public static isReplaceableIdentifierNode (node: ESTree.Node, parentNode: ESTree.Node): node is ESTree.Identifier { - if (!Nodes.isIdentifierNode(node)) { + if (!Node.isIdentifierNode(node)) { return false; } - const parentNodeIsPropertyNode: boolean = Nodes.isPropertyNode(parentNode) && parentNode.key === node; + const parentNodeIsPropertyNode: boolean = Node.isPropertyNode(parentNode) && parentNode.key === node; const parentNodeIsMemberExpressionNode: boolean = ( - Nodes.isMemberExpressionNode(parentNode) && + Node.isMemberExpressionNode(parentNode) && parentNode.computed === false && parentNode.property === node ); diff --git a/src/NodeAppender.ts b/src/node/NodeAppender.ts similarity index 95% rename from src/NodeAppender.ts rename to src/node/NodeAppender.ts index e07a6831..137583a6 100644 --- a/src/NodeAppender.ts +++ b/src/node/NodeAppender.ts @@ -1,11 +1,11 @@ import * as ESTree from 'estree'; -import { TNodeWithBlockStatement } from './types/TNodeWithBlockStatement'; -import { TStatement } from './types/TStatement'; +import { TNodeWithBlockStatement } from '../types/TNodeWithBlockStatement'; +import { TStatement } from '../types/TStatement'; -import { IStackTraceData } from './interfaces/stack-trace-analyzer/IStackTraceData'; +import { IStackTraceData } from '../interfaces/stack-trace-analyzer/IStackTraceData'; -import { Utils } from './Utils'; +import { Utils } from '../Utils'; /** * This class appends node into a first deepest BlockStatement in order of function calls diff --git a/src/NodeUtils.ts b/src/node/NodeUtils.ts similarity index 90% rename from src/NodeUtils.ts rename to src/node/NodeUtils.ts index 597bdc3d..7e57863c 100644 --- a/src/NodeUtils.ts +++ b/src/node/NodeUtils.ts @@ -3,13 +3,13 @@ import * as esprima from 'esprima'; import * as estraverse from 'estraverse'; import * as ESTree from 'estree'; -import { TNodeWithBlockStatement } from './types/TNodeWithBlockStatement'; -import { TStatement } from './types/TStatement'; +import { TNodeWithBlockStatement } from '../types/TNodeWithBlockStatement'; +import { TStatement } from '../types/TStatement'; -import { NodeType } from './enums/NodeType'; +import { NodeType } from '../enums/NodeType'; -import { Nodes } from './Nodes'; -import { Utils } from './Utils'; +import { Node } from './Node'; +import { Utils } from '../Utils'; export class NodeUtils { /** @@ -56,7 +56,7 @@ export class NodeUtils { * @returns {ESTree.Node} */ public static getBlockStatementNodeByIndex (node: ESTree.Node, index: number = 0): ESTree.Node { - if (Nodes.isNodeHasBlockStatement(node)) { + if (Node.isNodeHasBlockStatement(node)) { if (node.body[index] === undefined) { throw new ReferenceError(`Wrong index \`${index}\`. Block-statement body length is \`${node.body.length}\``); } @@ -79,7 +79,7 @@ export class NodeUtils { throw new ReferenceError('`parentNode` property of given node is `undefined`'); } - if (Nodes.isBlockStatementNode(parentNode)) { + if (Node.isBlockStatementNode(parentNode)) { if (!parentNode.parentNode) { throw new ReferenceError('`parentNode` property of `parentNode` of given node is `undefined`'); } @@ -93,7 +93,7 @@ export class NodeUtils { return parentNode; } - if (Nodes.isProgramNode(parentNode)) { + if (Node.isProgramNode(parentNode)) { return parentNode; } @@ -114,7 +114,7 @@ export class NodeUtils { if (node.type === NodeType.Program) { value = node; } else { - value = Nodes.getProgramNode([node]); + value = Node.getProgramNode([node]); value['parentNode'] = value; } diff --git a/src/stack-trace-analyzer/StackTraceAnalyzer.ts b/src/stack-trace-analyzer/StackTraceAnalyzer.ts index c626161a..c30155b1 100644 --- a/src/stack-trace-analyzer/StackTraceAnalyzer.ts +++ b/src/stack-trace-analyzer/StackTraceAnalyzer.ts @@ -13,8 +13,8 @@ import { FunctionDeclarationCalleeDataExtractor } from './callee-data-extractors import { FunctionExpressionCalleeDataExtractor } from './callee-data-extractors/FunctionExpressionCalleeDataExtractor'; import { ObjectExpressionCalleeDataExtractor } from './callee-data-extractors/ObjectExpressionCalleeDataExtractor'; -import { Nodes } from '../Nodes'; -import { NodeUtils } from '../NodeUtils'; +import { Node } from '../node/Node'; +import { NodeUtils } from '../node/NodeUtils'; /** * This class generates a data with code stack trace functions calls @@ -130,7 +130,7 @@ export class StackTraceAnalyzer implements IStackTraceAnalyzer { estraverse.traverse(rootNode, { enter: (node: ESTree.Node): any => { - if (!Nodes.isCallExpressionNode(node) || rootNode.parentNode !== NodeUtils.getBlockScopeOfNode(node)) { + if (!Node.isCallExpressionNode(node) || rootNode.parentNode !== NodeUtils.getBlockScopeOfNode(node)) { return; } diff --git a/src/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts b/src/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts index 3b5ee1d4..edce57f3 100644 --- a/src/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts +++ b/src/stack-trace-analyzer/callee-data-extractors/FunctionDeclarationCalleeDataExtractor.ts @@ -4,8 +4,8 @@ import * as ESTree from 'estree'; import { ICalleeData } from '../../interfaces/stack-trace-analyzer/ICalleeData'; import { ICalleeDataExtractor } from '../../interfaces/stack-trace-analyzer/ICalleeDataExtractor'; -import { Nodes } from '../../Nodes'; -import { NodeUtils } from '../../NodeUtils'; +import { Node } from '../../node/Node'; +import { NodeUtils } from '../../node/NodeUtils'; export class FunctionDeclarationCalleeDataExtractor implements ICalleeDataExtractor { /** @@ -33,7 +33,7 @@ export class FunctionDeclarationCalleeDataExtractor implements ICalleeDataExtrac public extract (): ICalleeData|null { let calleeBlockStatement: ESTree.BlockStatement|null = null; - if (Nodes.isIdentifierNode(this.callee)) { + if (Node.isIdentifierNode(this.callee)) { calleeBlockStatement = this.getCalleeBlockStatement( NodeUtils.getBlockScopeOfNode(this.blockScopeBody[0]), this.callee.name @@ -60,7 +60,7 @@ export class FunctionDeclarationCalleeDataExtractor implements ICalleeDataExtrac estraverse.traverse(node, { enter: (node: ESTree.Node): any => { - if (Nodes.isFunctionDeclarationNode(node) && node.id.name === name) { + if (Node.isFunctionDeclarationNode(node) && node.id.name === name) { calleeBlockStatement = node.body; return estraverse.VisitorOption.Break; diff --git a/src/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts b/src/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts index 90c683b8..ee7b07a3 100644 --- a/src/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts +++ b/src/stack-trace-analyzer/callee-data-extractors/FunctionExpressionCalleeDataExtractor.ts @@ -4,8 +4,8 @@ import * as ESTree from 'estree'; import { ICalleeData } from '../../interfaces/stack-trace-analyzer/ICalleeData'; import { ICalleeDataExtractor } from '../../interfaces/stack-trace-analyzer/ICalleeDataExtractor'; -import { Nodes } from '../../Nodes'; -import { NodeUtils } from '../../NodeUtils'; +import { Node } from '../../node/Node'; +import { NodeUtils } from '../../node/NodeUtils'; export class FunctionExpressionCalleeDataExtractor implements ICalleeDataExtractor { /** @@ -33,14 +33,14 @@ export class FunctionExpressionCalleeDataExtractor implements ICalleeDataExtract public extract (): ICalleeData|null { let calleeBlockStatement: ESTree.BlockStatement|null = null; - if (Nodes.isIdentifierNode(this.callee)) { + if (Node.isIdentifierNode(this.callee)) { calleeBlockStatement = this.getCalleeBlockStatement( NodeUtils.getBlockScopeOfNode(this.blockScopeBody[0]), this.callee.name ); } - if (Nodes.isFunctionExpressionNode(this.callee)) { + if (Node.isFunctionExpressionNode(this.callee)) { calleeBlockStatement = this.callee.body; } @@ -65,9 +65,9 @@ export class FunctionExpressionCalleeDataExtractor implements ICalleeDataExtract estraverse.traverse(node, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { if ( - Nodes.isFunctionExpressionNode(node) && - Nodes.isVariableDeclaratorNode(parentNode) && - Nodes.isIdentifierNode(parentNode.id) && + Node.isFunctionExpressionNode(node) && + Node.isVariableDeclaratorNode(parentNode) && + Node.isIdentifierNode(parentNode.id) && parentNode.id.name === name ) { calleeBlockStatement = node.body; diff --git a/src/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts b/src/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts index ba9ee8e1..43528b9b 100644 --- a/src/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts +++ b/src/stack-trace-analyzer/callee-data-extractors/ObjectExpressionCalleeDataExtractor.ts @@ -6,8 +6,8 @@ import { TObjectMembersCallsChain } from '../../types/TObjectMembersCallsChain'; import { ICalleeData } from '../../interfaces/stack-trace-analyzer/ICalleeData'; import { ICalleeDataExtractor } from '../../interfaces/stack-trace-analyzer/ICalleeDataExtractor'; -import { Nodes } from '../../Nodes'; -import { NodeUtils } from '../../NodeUtils'; +import { Node } from '../../node/Node'; +import { NodeUtils } from '../../node/NodeUtils'; export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor { /** @@ -36,7 +36,7 @@ export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor let calleeBlockStatement: ESTree.BlockStatement|null = null, functionExpressionName: string|number|null = null; - if (Nodes.isMemberExpressionNode(this.callee)) { + if (Node.isMemberExpressionNode(this.callee)) { const objectMembersCallsChain: TObjectMembersCallsChain = this.createObjectMembersCallsChain( [], this.callee @@ -77,10 +77,10 @@ export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor memberExpression: ESTree.MemberExpression ): TObjectMembersCallsChain { // first step: processing memberExpression `property` property - if (Nodes.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) { + if (Node.isIdentifierNode(memberExpression.property) && memberExpression.computed === false) { currentChain.unshift(memberExpression.property.name); } else if ( - Nodes.isLiteralNode(memberExpression.property) && + Node.isLiteralNode(memberExpression.property) && ( typeof memberExpression.property.value === 'string' || typeof memberExpression.property.value === 'number' @@ -92,9 +92,9 @@ export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor } // second step: processing memberExpression `object` property - if (Nodes.isMemberExpressionNode(memberExpression.object)) { + if (Node.isMemberExpressionNode(memberExpression.object)) { return this.createObjectMembersCallsChain(currentChain, memberExpression.object); - } else if (Nodes.isIdentifierNode(memberExpression.object)) { + } else if (Node.isIdentifierNode(memberExpression.object)) { currentChain.unshift(memberExpression.object.name); } @@ -121,10 +121,10 @@ export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor estraverse.traverse(node, { enter: (node: ESTree.Node, parentNode: ESTree.Node): any => { if ( - Nodes.isVariableDeclaratorNode(node) && - Nodes.isIdentifierNode(node.id) && + Node.isVariableDeclaratorNode(node) && + Node.isIdentifierNode(node.id) && node.init && - Nodes.isObjectExpressionNode(node.init) && + Node.isObjectExpressionNode(node.init) && node.id.name === objectName ) { calleeBlockStatement = this.findCalleeBlockStatement(node.init.properties, objectMembersCallsChain); @@ -154,9 +154,9 @@ export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor for (const propertyNode of objectExpressionProperties) { const isTargetPropertyNodeWithIdentifierKey: boolean = - Nodes.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; + Node.isIdentifierNode(propertyNode.key) && propertyNode.key.name === nextItemInCallsChain; const isTargetPropertyNodeWithLiteralKey: boolean = - Nodes.isLiteralNode(propertyNode.key) && + Node.isLiteralNode(propertyNode.key) && Boolean(propertyNode.key.value) && propertyNode.key.value === nextItemInCallsChain; @@ -164,11 +164,11 @@ export class ObjectExpressionCalleeDataExtractor implements ICalleeDataExtractor continue; } - if (Nodes.isObjectExpressionNode(propertyNode.value)) { + if (Node.isObjectExpressionNode(propertyNode.value)) { return this.findCalleeBlockStatement(propertyNode.value.properties, objectMembersCallsChain); } - if (Nodes.isFunctionExpressionNode(propertyNode.value)) { + if (Node.isFunctionExpressionNode(propertyNode.value)) { return propertyNode.value.body; } } diff --git a/test/fixtures/compile-performance.js b/test/fixtures/compile-performance.js index bbe2fab8..1aaef076 100644 --- a/test/fixtures/compile-performance.js +++ b/test/fixtures/compile-performance.js @@ -28644,7 +28644,7 @@ * ... * ... * - * + * * * * @@ -30197,7 +30197,7 @@ return new ExtractionResult(this._messages, this._errors); }; /** - * Returns a tree where all translatable nodes are translated + * Returns a tree where all translatable node are translated */ _Visitor.prototype.merge = function (nodes, translations, interpolationConfig) { this._init(_VisitorMode.Merge, interpolationConfig); @@ -30286,7 +30286,7 @@ var wasInI18nNode = this._inI18nNode; var wasInImplicitNode = this._inImplicitNode; var childNodes; - // Extract only top level nodes with the (implicit) "i18n" attribute if not in a block or an ICU + // Extract only top level node with the (implicit) "i18n" attribute if not in a block or an ICU // message var i18nAttr = _getI18nAttr(el); var isImplicit = this._implicitTags.some(function (tag) { return el.name === tag; }) && @@ -30333,7 +30333,7 @@ this._reportError(el, 'Could not mark an element as translatable inside a translatable section'); } if (this._mode == _VisitorMode.Extract) { - // Descend into child nodes for extraction + // Descend into child node for extraction __WEBPACK_IMPORTED_MODULE_0__ml_parser_ast__["g" /* visitAll */](this, el.children); } if (this._mode == _VisitorMode.Merge) { @@ -30354,7 +30354,7 @@ this._inI18nNode = wasInI18nNode; this._inImplicitNode = wasInImplicitNode; if (this._mode === _VisitorMode.Merge) { - // There are no childNodes in translatable sections - those nodes will be replace anyway + // There are no childNodes in translatable sections - those node will be replace anyway var translatedAttrs = this._translateAttributes(el); return new __WEBPACK_IMPORTED_MODULE_0__ml_parser_ast__["e" /* Element */](el.name, translatedAttrs, childNodes, el.sourceSpan, el.startSourceSpan, el.endSourceSpan); } @@ -30483,7 +30483,7 @@ /** * A translatable section could be: * - a translatable element, - * - nodes between `` and `` comments + * - node between `` and `` comments */ get: function () { return this._msgCountAtSectionStart !== void 0; @@ -30893,7 +30893,7 @@ }; Xliff.prototype.load = function (content, url, messageBundle) { var _this = this; - // Parse the xtb file into xml nodes + // Parse the xtb file into xml node var result = new __WEBPACK_IMPORTED_MODULE_2__ml_parser_xml_parser__["a" /* XmlParser */]().parse(content, url); if (result.errors.length) { throw new Error("xtb parse errors:\n" + result.errors.join('\n')); @@ -31301,7 +31301,7 @@ Xtb.prototype.write = function (messageMap) { throw new Error('Unsupported'); }; Xtb.prototype.load = function (content, url, messageBundle) { var _this = this; - // Parse the xtb file into xml nodes + // Parse the xtb file into xml node var result = new __WEBPACK_IMPORTED_MODULE_1__ml_parser_xml_parser__["a" /* XmlParser */]().parse(content, url); if (result.errors.length) { throw new Error("xtb parse errors:\n" + result.errors.join('\n')); @@ -33874,7 +33874,7 @@ this.declarationElement = declarationElement; this.templateVariableBindings = templateVariableBindings; this.nodes = []; - // root nodes or AppElements for ViewContainers + // root node or AppElements for ViewContainers this.rootNodesOrAppElements = []; this.bindings = []; this.classStatements = []; @@ -34337,7 +34337,7 @@ // Recursively convert the node now without the guarded member access. var access = this.visit(ast, _Mode.Expression); // Remove the mapping. This is not strictly required as the converter only traverses each node - // once but is safer if the conversion is changed to traverse the nodes more than once. + // once but is safer if the conversion is changed to traverse the node more than once. this._nodeMap.delete(leftMostSafe); // If we allcoated a temporary, release it. if (temporary) { @@ -34583,7 +34583,7 @@ return renderNode; }; ViewBuilderVisitor.prototype.visitNgContent = function (ast, parent) { - // the projected nodes originate from a different view, so we don't + // the projected node originate from a different view, so we don't // have debug information for them... this.view.createMethod.resetDebugInfo(null, ast); var parentRenderNode = this._getParentRenderNode(parent); @@ -34599,7 +34599,7 @@ } else if (this._isRootNode(parent)) { if (this.view.viewType !== __WEBPACK_IMPORTED_MODULE_7__private_import_core__["j" /* ViewType */].COMPONENT) { - // store root nodes only for embedded/host views + // store root node only for embedded/host views this.view.rootNodesOrAppElements.push(nodesExpression); } } @@ -34718,7 +34718,7 @@ return ViewBuilderVisitor; }()); /** - * Walks up the nodes while the direct parent is a container. + * Walks up the node while the direct parent is a container. * * Returns the outer container or the node itself when it is not a direct child of a container. * @@ -34732,7 +34732,7 @@ return node; } /** - * Walks up the nodes while they are container and returns the first parent which is not. + * Walks up the node while they are container and returns the first parent which is not. * * Returns the parent of the outer container or the node itself when it is not a container. * @@ -36547,7 +36547,7 @@ }); } } -// Need to keep the nodes in a global Map so that multiple angular apps are supported. +// Need to keep the node in a global Map so that multiple angular apps are supported. var _nativeNodeToDebugNode = new Map(); /** * @experimental @@ -49968,7 +49968,7 @@ var _expParser = new __WEBPACK_IMPORTED_MODULE_1__expression_parser_parser__["a" /* Parser */](new __WEBPACK_IMPORTED_MODULE_0__expression_parser_lexer__["c" /* Lexer */]()); /** - * Returns a function converting html nodes to an i18n Message given an interpolationConfig + * Returns a function converting html node to an i18n Message given an interpolationConfig */ function createI18nMessageFactory(interpolationConfig) { var visitor = new _I18nVisitor(_expParser, interpolationConfig); @@ -50566,7 +50566,7 @@ /** * @param _file The html source * @param _getTagDefinition - * @param _tokenizeIcu Whether to tokenize ICU messages (considered as text nodes when false) + * @param _tokenizeIcu Whether to tokenize ICU messages (considered as text node when false) * @param _interpolationConfig */ function _Tokenizer(_file, _getTagDefinition, _tokenizeIcu, _interpolationConfig) { @@ -55685,7 +55685,7 @@ this.disposables = disposables; this.subscriptions = subscriptions; if (this.type === __WEBPACK_IMPORTED_MODULE_13__view_type__["a" /* ViewType */].COMPONENT) { - // Note: the render nodes have been attached to their host element + // Note: the render node have been attached to their host element // in the ViewFactory already. this.declarationAppElement.parentView.viewChildren.push(this); this.dirtyParentQueriesInternal(); @@ -55967,7 +55967,7 @@ var appEl = node; lastNode = appEl.nativeElement; if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__facade_lang__["e" /* isPresent */])(appEl.nestedViews)) { - // Note: Views might have no root nodes at all! + // Note: Views might have no root node at all! for (var i = appEl.nestedViews.length - 1; i >= 0; i--) { var nestedView = appEl.nestedViews[i]; if (nestedView.rootNodesOrAppElements.length > 0) { @@ -58103,7 +58103,7 @@ this.chars(DOM.nodeValue(current)); } else { - // Strip non-element, non-text nodes. + // Strip non-element, non-text node. this.sanitizedSomething = true; } if (DOM.firstChild(current)) { diff --git a/test/functional-tests/stack-trace-analyzer/StackTraceAnalyzer.spec.ts b/test/functional-tests/stack-trace-analyzer/StackTraceAnalyzer.spec.ts index b0eb8b5e..9f57f12e 100644 --- a/test/functional-tests/stack-trace-analyzer/StackTraceAnalyzer.spec.ts +++ b/test/functional-tests/stack-trace-analyzer/StackTraceAnalyzer.spec.ts @@ -8,9 +8,9 @@ import { IStackTraceData } from '../../../src/interfaces/stack-trace-analyzer/IS import { readFileAsString } from '../../helpers/readFileAsString'; -import { Nodes } from '../../../src/Nodes'; +import { Node } from '../../../src/node/Node'; import { NodeMocks } from '../../mocks/NodeMocks'; -import { NodeUtils } from '../../../src/NodeUtils'; +import { NodeUtils } from '../../../src/node/NodeUtils'; import { StackTraceAnalyzer } from '../../../src/stack-trace-analyzer/StackTraceAnalyzer'; const assert: any = chai.assert; @@ -26,8 +26,8 @@ function getFunctionDeclarationByName (astTree: ESTree.Node, name: string): ESTr estraverse.traverse(astTree, { enter: (node: ESTree.Node): any => { if ( - Nodes.isFunctionDeclarationNode(node) && - Nodes.isIdentifierNode(node.id) && + Node.isFunctionDeclarationNode(node) && + Node.isIdentifierNode(node.id) && node.id.name === name ) { functionDeclarationNode = node; @@ -51,10 +51,10 @@ function getFunctionExpressionByName (astTree: ESTree.Node, name: string): ESTre estraverse.traverse(astTree, { enter: (node: ESTree.Node): any => { if ( - Nodes.isVariableDeclaratorNode(node) && + Node.isVariableDeclaratorNode(node) && node.init && - Nodes.isFunctionExpressionNode(node.init) && - Nodes.isIdentifierNode(node.id) && + Node.isFunctionExpressionNode(node.init) && + Node.isIdentifierNode(node.id) && node.id.name === name ) { functionExpressionNode = node.init; @@ -78,9 +78,9 @@ function getFunctionExpressionById (astTree: ESTree.Node, id: string): ESTree.Fu estraverse.traverse(astTree, { enter: (node: ESTree.Node): any => { if ( - Nodes.isFunctionExpressionNode(node) && + Node.isFunctionExpressionNode(node) && node.id && - Nodes.isIdentifierNode(node.id) && + Node.isIdentifierNode(node.id) && node.id.name === id ) { functionExpressionNode = node; @@ -106,10 +106,10 @@ function getObjectFunctionExpressionByName (astTree: ESTree.Node, objectName: st estraverse.traverse(astTree, { enter: (node: ESTree.Node): any => { if ( - Nodes.isVariableDeclaratorNode(node) && - Nodes.isIdentifierNode(node.id) && + Node.isVariableDeclaratorNode(node) && + Node.isIdentifierNode(node.id) && node.init && - Nodes.isObjectExpressionNode(node.init) && + Node.isObjectExpressionNode(node.init) && node.id.name === objectName ) { targetObjectExpressionNode = node.init; @@ -126,11 +126,11 @@ function getObjectFunctionExpressionByName (astTree: ESTree.Node, objectName: st estraverse.traverse(targetObjectExpressionNode, { enter: (node: ESTree.Node): any => { if ( - Nodes.isPropertyNode(node) && - Nodes.isFunctionExpressionNode(node.value) && + Node.isPropertyNode(node) && + Node.isFunctionExpressionNode(node.value) && ( - (Nodes.isIdentifierNode(node.key) && node.key.name === name) || - (Nodes.isLiteralNode(node.key) && node.key.value === name) + (Node.isIdentifierNode(node.key) && node.key.name === name) || + (Node.isLiteralNode(node.key) && node.key.value === name) ) ) { functionExpressionNode = node.value; diff --git a/test/index.spec.ts b/test/index.spec.ts index 30890f8d..4c3f3778 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -7,8 +7,8 @@ BabelPolyfill.append(); /** * Unit tests */ -import './unit-tests/NodeAppender.spec'; -import './unit-tests/NodeUtils.spec'; +import './unit-tests/node/NodeAppender.spec'; +import './unit-tests/node/NodeUtils.spec'; import './unit-tests/ObfuscationResult.spec'; import './unit-tests/OptionsNormalizer.spec'; import './unit-tests/SourceMapCorrector.spec'; diff --git a/test/unit-tests/NodeAppender.spec.ts b/test/unit-tests/node/NodeAppender.spec.ts similarity index 94% rename from test/unit-tests/NodeAppender.spec.ts rename to test/unit-tests/node/NodeAppender.spec.ts index c185ec4c..e88c63d6 100644 --- a/test/unit-tests/NodeAppender.spec.ts +++ b/test/unit-tests/node/NodeAppender.spec.ts @@ -1,16 +1,16 @@ import * as chai from 'chai'; import * as ESTree from 'estree'; -import { TStatement } from '../../src/types/TStatement'; +import { TStatement } from '../../../src/types/TStatement'; -import { IStackTraceData } from '../../src/interfaces/stack-trace-analyzer/IStackTraceData'; +import { IStackTraceData } from '../../../src/interfaces/stack-trace-analyzer/IStackTraceData'; -import { readFileAsString } from '../helpers/readFileAsString'; +import { readFileAsString } from '../../helpers/readFileAsString'; -import { NodeAppender } from '../../src/NodeAppender'; -import { NodeMocks } from '../mocks/NodeMocks'; -import { NodeUtils } from '../../src/NodeUtils'; -import { StackTraceAnalyzer } from '../../src/stack-trace-analyzer/StackTraceAnalyzer'; +import { NodeAppender } from '../../../src/node/NodeAppender'; +import { NodeMocks } from '../../mocks/NodeMocks'; +import { NodeUtils } from '../../../src/node/NodeUtils'; +import { StackTraceAnalyzer } from '../../../src/stack-trace-analyzer/StackTraceAnalyzer'; const assert: any = chai.assert; diff --git a/test/unit-tests/NodeUtils.spec.ts b/test/unit-tests/node/NodeUtils.spec.ts similarity index 98% rename from test/unit-tests/NodeUtils.spec.ts rename to test/unit-tests/node/NodeUtils.spec.ts index ba5838b9..126c4838 100644 --- a/test/unit-tests/NodeUtils.spec.ts +++ b/test/unit-tests/node/NodeUtils.spec.ts @@ -1,8 +1,8 @@ import * as chai from 'chai'; import * as ESTree from 'estree'; -import { NodeMocks } from '../mocks/NodeMocks'; -import { NodeUtils } from '../../src/NodeUtils'; +import { NodeMocks } from '../../mocks/NodeMocks'; +import { NodeUtils } from '../../../src/node/NodeUtils'; const assert: any = chai.assert;