From 758277573aabd24e7bc5d444d3f133fb5d28f9ea Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Thu, 12 Jan 2017 22:58:05 +0300 Subject: [PATCH] extract few transformers to new `converting-transformers` subtype --- dist/index.js | 682 +++++++++--------- package.json | 2 +- src/Obfuscator.ts | 17 +- .../NodeTransformersModule.ts | 35 +- .../MemberExpressionTransformer.ts | 11 - .../MethodDefinitionTransformer.ts | 11 - .../TemplateLiteralTransformer.ts | 12 - .../ObjectExpressionTransformer.ts | 8 +- .../MemberExpressionTransformer.spec.ts | 0 .../fixtures/dot-notation-call.js | 0 .../fixtures/square-brackets-call.js | 0 .../square-brackets-with-identifier-call.js | 0 .../MethodDefinitionTransformer.spec.ts | 0 .../fixtures/input.js | 0 .../TemplateLiteralTransformer.spec.ts | 0 .../fixtures/expression-only.js | 0 .../fixtures/literal-inside-expression.js | 0 .../fixtures/multiple-expressions.js | 0 .../fixtures/simple-input.js | 0 test/index.spec.ts | 6 +- 20 files changed, 370 insertions(+), 414 deletions(-) rename src/node-transformers/{obfuscation-transformers => converting-transformers}/MemberExpressionTransformer.ts (72%) rename src/node-transformers/{obfuscation-transformers => converting-transformers}/MethodDefinitionTransformer.ts (76%) rename src/node-transformers/{obfuscation-transformers => converting-transformers}/TemplateLiteralTransformer.ts (81%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/member-expression-transformer/MemberExpressionTransformer.spec.ts (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/member-expression-transformer/fixtures/dot-notation-call.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/member-expression-transformer/fixtures/square-brackets-call.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/member-expression-transformer/fixtures/square-brackets-with-identifier-call.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/method-definition-transformer/MethodDefinitionTransformer.spec.ts (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/method-definition-transformer/fixtures/input.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/template-literal-transformer/TemplateLiteralTransformer.spec.ts (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/template-literal-transformer/fixtures/expression-only.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/template-literal-transformer/fixtures/literal-inside-expression.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/template-literal-transformer/fixtures/multiple-expressions.js (100%) rename test/functional-tests/node-transformers/{obfuscation-transformers => converting-transformers}/template-literal-transformer/fixtures/simple-input.js (100%) diff --git a/dist/index.js b/dist/index.js index cfa4683e..1c4ce3ba 100644 --- a/dist/index.js +++ b/dist/index.js @@ -182,7 +182,7 @@ module.exports = require("babel-runtime/helpers/possibleConstructorReturn"); "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -201,7 +201,7 @@ var esprima = __webpack_require__(49); var estraverse = __webpack_require__(17); var NodeType_1 = __webpack_require__(18); var Node_1 = __webpack_require__(12); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils = function () { function NodeUtils() { @@ -755,7 +755,7 @@ var _slicedToArray2 = __webpack_require__(35); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -1047,21 +1047,6 @@ module.exports = require("string-template"); "use strict"; -var NodeObfuscatorsReplacers; -(function (NodeObfuscatorsReplacers) { - NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["BooleanReplacer"] = 0] = "BooleanReplacer"; - NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["IdentifierReplacer"] = 1] = "IdentifierReplacer"; - NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["NumberLiteralReplacer"] = 2] = "NumberLiteralReplacer"; - NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["StringLiteralReplacer"] = 3] = "StringLiteralReplacer"; -})(NodeObfuscatorsReplacers = exports.NodeObfuscatorsReplacers || (exports.NodeObfuscatorsReplacers = {})); - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - var _classCallCheck2 = __webpack_require__(0); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); @@ -1390,13 +1375,13 @@ var Nodes = function () { exports.Nodes = Nodes; /***/ }), -/* 22 */ +/* 21 */ /***/ (function(module, exports) { module.exports = require("babel-runtime/core-js/get-iterator"); /***/ }), -/* 23 */ +/* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1407,6 +1392,21 @@ exports.ObfuscationEvents = { BeforeObfuscation: 'beforeObfuscation' }; +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var NodeObfuscatorsReplacers; +(function (NodeObfuscatorsReplacers) { + NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["BooleanReplacer"] = 0] = "BooleanReplacer"; + NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["IdentifierReplacer"] = 1] = "IdentifierReplacer"; + NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["NumberLiteralReplacer"] = 2] = "NumberLiteralReplacer"; + NodeObfuscatorsReplacers[NodeObfuscatorsReplacers["StringLiteralReplacer"] = 3] = "StringLiteralReplacer"; +})(NodeObfuscatorsReplacers = exports.NodeObfuscatorsReplacers || (exports.NodeObfuscatorsReplacers = {})); + /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { @@ -1469,7 +1469,7 @@ exports.JavaScriptObfuscator = JavaScriptObfuscator; "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -2470,7 +2470,7 @@ var ServiceIdentifiers_1 = __webpack_require__(4); var estraverse = __webpack_require__(17); var NodeTransformers_1 = __webpack_require__(40); var NodeType_1 = __webpack_require__(18); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var VisitorDirection_1 = __webpack_require__(86); var Node_1 = __webpack_require__(12); var NodeUtils_1 = __webpack_require__(8); @@ -2501,9 +2501,9 @@ var Obfuscator = Obfuscator_1 = function () { }); this.obfuscationEventEmitter.emit(ObfuscationEvents_1.ObfuscationEvents.BeforeObfuscation, astTree, stackTraceData); if (this.options.controlFlowFlattening) { - astTree = this.transformAstTree(astTree, VisitorDirection_1.VisitorDirection.leave, this.nodeTransformersFactory(Obfuscator_1.nodeControlFlowTransformersMap)); + astTree = this.transformAstTree(astTree, VisitorDirection_1.VisitorDirection.leave, this.nodeTransformersFactory(Obfuscator_1.controlFlowTransformersMap)); } - astTree = this.transformAstTree(astTree, VisitorDirection_1.VisitorDirection.enter, this.nodeTransformersFactory(Obfuscator_1.nodeObfuscatorsMap)); + astTree = this.transformAstTree(astTree, VisitorDirection_1.VisitorDirection.enter, this.nodeTransformersFactory(Obfuscator_1.nodeTransformersMap)); this.obfuscationEventEmitter.emit(ObfuscationEvents_1.ObfuscationEvents.AfterObfuscation, astTree, stackTraceData); return astTree; } @@ -2522,8 +2522,8 @@ var Obfuscator = Obfuscator_1 = function () { }]); return Obfuscator; }(); -Obfuscator.nodeControlFlowTransformersMap = new _map2.default([[NodeType_1.NodeType.BlockStatement, [NodeTransformers_1.NodeTransformers.BlockStatementControlFlowTransformer]], [NodeType_1.NodeType.FunctionDeclaration, [NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer]], [NodeType_1.NodeType.FunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer]]]); -Obfuscator.nodeObfuscatorsMap = new _map2.default([[NodeType_1.NodeType.ArrowFunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionTransformer]], [NodeType_1.NodeType.ClassDeclaration, [NodeTransformers_1.NodeTransformers.FunctionDeclarationTransformer]], [NodeType_1.NodeType.CatchClause, [NodeTransformers_1.NodeTransformers.CatchClauseTransformer]], [NodeType_1.NodeType.FunctionDeclaration, [NodeTransformers_1.NodeTransformers.FunctionDeclarationTransformer, NodeTransformers_1.NodeTransformers.FunctionTransformer]], [NodeType_1.NodeType.FunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionTransformer]], [NodeType_1.NodeType.MemberExpression, [NodeTransformers_1.NodeTransformers.MemberExpressionTransformer]], [NodeType_1.NodeType.MethodDefinition, [NodeTransformers_1.NodeTransformers.MethodDefinitionTransformer]], [NodeType_1.NodeType.ObjectExpression, [NodeTransformers_1.NodeTransformers.ObjectExpressionTransformer]], [NodeType_1.NodeType.VariableDeclaration, [NodeTransformers_1.NodeTransformers.VariableDeclarationTransformer]], [NodeType_1.NodeType.LabeledStatement, [NodeTransformers_1.NodeTransformers.LabeledStatementTransformer]], [NodeType_1.NodeType.TemplateLiteral, [NodeTransformers_1.NodeTransformers.TemplateLiteralTransformer]], [NodeType_1.NodeType.Literal, [NodeTransformers_1.NodeTransformers.LiteralTransformer]]]); +Obfuscator.controlFlowTransformersMap = new _map2.default([[NodeType_1.NodeType.BlockStatement, [NodeTransformers_1.NodeTransformers.BlockStatementControlFlowTransformer]], [NodeType_1.NodeType.FunctionDeclaration, [NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer]], [NodeType_1.NodeType.FunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer]]]); +Obfuscator.nodeTransformersMap = new _map2.default([[NodeType_1.NodeType.MemberExpression, [NodeTransformers_1.NodeTransformers.MemberExpressionTransformer]], [NodeType_1.NodeType.MethodDefinition, [NodeTransformers_1.NodeTransformers.MethodDefinitionTransformer]], [NodeType_1.NodeType.TemplateLiteral, [NodeTransformers_1.NodeTransformers.TemplateLiteralTransformer]], [NodeType_1.NodeType.ArrowFunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionTransformer]], [NodeType_1.NodeType.ClassDeclaration, [NodeTransformers_1.NodeTransformers.FunctionDeclarationTransformer]], [NodeType_1.NodeType.CatchClause, [NodeTransformers_1.NodeTransformers.CatchClauseTransformer]], [NodeType_1.NodeType.FunctionDeclaration, [NodeTransformers_1.NodeTransformers.FunctionDeclarationTransformer, NodeTransformers_1.NodeTransformers.FunctionTransformer]], [NodeType_1.NodeType.FunctionExpression, [NodeTransformers_1.NodeTransformers.FunctionTransformer]], [NodeType_1.NodeType.ObjectExpression, [NodeTransformers_1.NodeTransformers.ObjectExpressionTransformer]], [NodeType_1.NodeType.VariableDeclaration, [NodeTransformers_1.NodeTransformers.VariableDeclarationTransformer]], [NodeType_1.NodeType.LabeledStatement, [NodeTransformers_1.NodeTransformers.LabeledStatementTransformer]], [NodeType_1.NodeType.Literal, [NodeTransformers_1.NodeTransformers.LiteralTransformer]]]); Obfuscator = Obfuscator_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IStackTraceAnalyzer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IObfuscationEventEmitter)), tslib_1.__param(2, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.TCustomNodeGroupStorage)), tslib_1.__param(3, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer)), tslib_1.__param(4, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Function, Object])], Obfuscator); exports.Obfuscator = Obfuscator; var Obfuscator_1; @@ -3058,28 +3058,28 @@ var ServiceIdentifiers_1 = __webpack_require__(4); var NodeTransformers_1 = __webpack_require__(40); var FunctionControlFlowTransformer_1 = __webpack_require__(89); var BlockStatementControlFlowTransformer_1 = __webpack_require__(88); -var CatchClauseTransformer_1 = __webpack_require__(93); -var FunctionDeclarationTransformer_1 = __webpack_require__(94); -var FunctionTransformer_1 = __webpack_require__(95); -var LabeledStatementTransformer_1 = __webpack_require__(96); -var LiteralTransformer_1 = __webpack_require__(97); -var MemberExpressionTransformer_1 = __webpack_require__(98); -var MethodDefinitionTransformer_1 = __webpack_require__(99); -var ObjectExpressionTransformer_1 = __webpack_require__(100); -var TemplateLiteralTransformer_1 = __webpack_require__(101); +var CatchClauseTransformer_1 = __webpack_require__(96); +var FunctionDeclarationTransformer_1 = __webpack_require__(97); +var FunctionTransformer_1 = __webpack_require__(98); +var LabeledStatementTransformer_1 = __webpack_require__(99); +var LiteralTransformer_1 = __webpack_require__(100); +var MemberExpressionTransformer_1 = __webpack_require__(93); +var MethodDefinitionTransformer_1 = __webpack_require__(94); +var ObjectExpressionTransformer_1 = __webpack_require__(101); +var TemplateLiteralTransformer_1 = __webpack_require__(95); var VariableDeclarationTransformer_1 = __webpack_require__(102); exports.nodeTransformersModule = new inversify_1.ContainerModule(function (bind) { bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(BlockStatementControlFlowTransformer_1.BlockStatementControlFlowTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.BlockStatementControlFlowTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionControlFlowTransformer_1.FunctionControlFlowTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.FunctionControlFlowTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.MemberExpressionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.MethodDefinitionTransformer); + bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.TemplateLiteralTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(CatchClauseTransformer_1.CatchClauseTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.CatchClauseTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionDeclarationTransformer_1.FunctionDeclarationTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.FunctionDeclarationTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(FunctionTransformer_1.FunctionTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.FunctionTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LabeledStatementTransformer_1.LabeledStatementTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.LabeledStatementTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(LiteralTransformer_1.LiteralTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.LiteralTransformer); - bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MemberExpressionTransformer_1.MemberExpressionTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.MemberExpressionTransformer); - bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(MethodDefinitionTransformer_1.MethodDefinitionTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.MethodDefinitionTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(ObjectExpressionTransformer_1.ObjectExpressionTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.ObjectExpressionTransformer); - bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(TemplateLiteralTransformer_1.TemplateLiteralTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.TemplateLiteralTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.INodeTransformer).to(VariableDeclarationTransformer_1.VariableDeclarationTransformer).whenTargetNamed(NodeTransformers_1.NodeTransformers.VariableDeclarationTransformer); bind(ServiceIdentifiers_1.ServiceIdentifiers.Factory__INodeTransformer).toFactory(function (context) { var cache = new _map2.default(); @@ -3118,7 +3118,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var BooleanLiteralReplacer_1 = __webpack_require__(103); var IdentifierReplacer_1 = __webpack_require__(104); var NumberLiteralReplacer_1 = __webpack_require__(105); @@ -3312,7 +3312,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var CustomNodes_1 = __webpack_require__(15); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var AbstractCustomNodeGroup_1 = __webpack_require__(27); var NodeAppender_1 = __webpack_require__(25); var RandomGeneratorUtils_1 = __webpack_require__(9); @@ -3403,7 +3403,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils_1 = __webpack_require__(8); var RandomGeneratorUtils_1 = __webpack_require__(9); var BinaryExpressionFunctionNode = function (_AbstractCustomNode_) { @@ -3467,7 +3467,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils_1 = __webpack_require__(8); var RandomGeneratorUtils_1 = __webpack_require__(9); var BlockStatementControlFlowFlatteningNode = function (_AbstractCustomNode_) { @@ -3541,7 +3541,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils_1 = __webpack_require__(8); var RandomGeneratorUtils_1 = __webpack_require__(9); var CallExpressionFunctionNode = function (_AbstractCustomNode_) { @@ -3611,7 +3611,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var RandomGeneratorUtils_1 = __webpack_require__(9); var NodeUtils_1 = __webpack_require__(8); var LogicalExpressionFunctionNode = function (_AbstractCustomNode_) { @@ -3679,7 +3679,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils_1 = __webpack_require__(8); var CallExpressionControlFlowStorageCallNode = function (_AbstractCustomNode_) { (0, _inherits3.default)(CallExpressionControlFlowStorageCallNode, _AbstractCustomNode_); @@ -3756,7 +3756,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils_1 = __webpack_require__(8); var ControlFlowStorageNode = function (_AbstractCustomNode_) { (0, _inherits3.default)(ControlFlowStorageNode, _AbstractCustomNode_); @@ -3825,7 +3825,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var AbstractCustomNode_1 = __webpack_require__(13); -var Nodes_1 = __webpack_require__(21); +var Nodes_1 = __webpack_require__(20); var NodeUtils_1 = __webpack_require__(8); var ExpressionWithOperatorControlFlowStorageCallNode = function (_AbstractCustomNode_) { (0, _inherits3.default)(ExpressionWithOperatorControlFlowStorageCallNode, _AbstractCustomNode_); @@ -4105,7 +4105,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var CustomNodes_1 = __webpack_require__(15); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var AbstractCustomNodeGroup_1 = __webpack_require__(27); var NodeAppender_1 = __webpack_require__(25); var RandomGeneratorUtils_1 = __webpack_require__(9); @@ -4288,7 +4288,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var CustomNodes_1 = __webpack_require__(15); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var AbstractCustomNodeGroup_1 = __webpack_require__(27); var NodeAppender_1 = __webpack_require__(25); var RandomGeneratorUtils_1 = __webpack_require__(9); @@ -4378,7 +4378,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var format = __webpack_require__(19); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var Initializable_1 = __webpack_require__(10); var SingleNodeCallControllerTemplate_1 = __webpack_require__(120); var NoCustomNodes_1 = __webpack_require__(31); @@ -4535,7 +4535,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var CustomNodes_1 = __webpack_require__(15); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var AbstractCustomNodeGroup_1 = __webpack_require__(27); var NodeAppender_1 = __webpack_require__(25); var RandomGeneratorUtils_1 = __webpack_require__(9); @@ -4921,7 +4921,7 @@ var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var Initializable_1 = __webpack_require__(10); var CustomNodes_1 = __webpack_require__(15); -var ObfuscationEvents_1 = __webpack_require__(23); +var ObfuscationEvents_1 = __webpack_require__(22); var AbstractCustomNodeGroup_1 = __webpack_require__(27); var NodeAppender_1 = __webpack_require__(25); var RandomGeneratorUtils_1 = __webpack_require__(9); @@ -5494,6 +5494,266 @@ var LogicalExpressionControlFlowReplacer_1; "use strict"; +var _getPrototypeOf = __webpack_require__(5); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__(0); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__(1); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__(7); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__(6); + +var _inherits3 = _interopRequireDefault(_inherits2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var tslib_1 = __webpack_require__(3); +var inversify_1 = __webpack_require__(2); +var ServiceIdentifiers_1 = __webpack_require__(4); +var NodeType_1 = __webpack_require__(18); +var AbstractNodeTransformer_1 = __webpack_require__(16); +var Node_1 = __webpack_require__(12); +var MemberExpressionTransformer = function (_AbstractNodeTransfor) { + (0, _inherits3.default)(MemberExpressionTransformer, _AbstractNodeTransfor); + + function MemberExpressionTransformer(options) { + (0, _classCallCheck3.default)(this, MemberExpressionTransformer); + return (0, _possibleConstructorReturn3.default)(this, (MemberExpressionTransformer.__proto__ || (0, _getPrototypeOf2.default)(MemberExpressionTransformer)).call(this, options)); + } + + (0, _createClass3.default)(MemberExpressionTransformer, [{ + key: "transformNode", + value: function transformNode(memberExpressionNode) { + if (Node_1.Node.isIdentifierNode(memberExpressionNode.property)) { + if (memberExpressionNode.computed) { + return memberExpressionNode; + } + memberExpressionNode.computed = true; + memberExpressionNode.property = { + type: NodeType_1.NodeType.Literal, + value: memberExpressionNode.property.name, + raw: "'" + memberExpressionNode.property.name + "'" + }; + } + return memberExpressionNode; + } + }]); + return MemberExpressionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); +MemberExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], MemberExpressionTransformer); +exports.MemberExpressionTransformer = MemberExpressionTransformer; + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _getPrototypeOf = __webpack_require__(5); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__(0); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__(1); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__(7); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__(6); + +var _inherits3 = _interopRequireDefault(_inherits2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var tslib_1 = __webpack_require__(3); +var inversify_1 = __webpack_require__(2); +var ServiceIdentifiers_1 = __webpack_require__(4); +var NodeType_1 = __webpack_require__(18); +var AbstractNodeTransformer_1 = __webpack_require__(16); +var Node_1 = __webpack_require__(12); +var MethodDefinitionTransformer = MethodDefinitionTransformer_1 = function (_AbstractNodeTransfor) { + (0, _inherits3.default)(MethodDefinitionTransformer, _AbstractNodeTransfor); + + function MethodDefinitionTransformer(options) { + (0, _classCallCheck3.default)(this, MethodDefinitionTransformer); + return (0, _possibleConstructorReturn3.default)(this, (MethodDefinitionTransformer.__proto__ || (0, _getPrototypeOf2.default)(MethodDefinitionTransformer)).call(this, options)); + } + + (0, _createClass3.default)(MethodDefinitionTransformer, [{ + key: "transformNode", + value: function transformNode(methodDefinitionNode, parentNode) { + if (Node_1.Node.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) { + methodDefinitionNode.computed = true; + methodDefinitionNode.key = { + type: NodeType_1.NodeType.Literal, + value: methodDefinitionNode.key.name, + raw: "'" + methodDefinitionNode.key.name + "'" + }; + } + return methodDefinitionNode; + } + }]); + return MethodDefinitionTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); +MethodDefinitionTransformer.ignoredNames = ['constructor']; +MethodDefinitionTransformer = MethodDefinitionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], MethodDefinitionTransformer); +exports.MethodDefinitionTransformer = MethodDefinitionTransformer; +var MethodDefinitionTransformer_1; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _getIterator2 = __webpack_require__(21); + +var _getIterator3 = _interopRequireDefault(_getIterator2); + +var _getPrototypeOf = __webpack_require__(5); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _classCallCheck2 = __webpack_require__(0); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _createClass2 = __webpack_require__(1); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _possibleConstructorReturn2 = __webpack_require__(7); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _inherits2 = __webpack_require__(6); + +var _inherits3 = _interopRequireDefault(_inherits2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var tslib_1 = __webpack_require__(3); +var inversify_1 = __webpack_require__(2); +var ServiceIdentifiers_1 = __webpack_require__(4); +var AbstractNodeTransformer_1 = __webpack_require__(16); +var Node_1 = __webpack_require__(12); +var Nodes_1 = __webpack_require__(20); +var TemplateLiteralTransformer = TemplateLiteralTransformer_1 = function (_AbstractNodeTransfor) { + (0, _inherits3.default)(TemplateLiteralTransformer, _AbstractNodeTransfor); + + function TemplateLiteralTransformer(options) { + (0, _classCallCheck3.default)(this, TemplateLiteralTransformer); + return (0, _possibleConstructorReturn3.default)(this, (TemplateLiteralTransformer.__proto__ || (0, _getPrototypeOf2.default)(TemplateLiteralTransformer)).call(this, options)); + } + + (0, _createClass3.default)(TemplateLiteralTransformer, [{ + key: "transformNode", + value: function transformNode(templateLiteralNode, parentNode) { + var templateLiteralExpressions = templateLiteralNode.expressions; + var nodes = []; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = (0, _getIterator3.default)(templateLiteralNode.quasis), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var templateElement = _step.value; + + nodes.push(Nodes_1.Nodes.getLiteralNode(templateElement.value.cooked)); + var expression = templateLiteralExpressions.shift(); + if (!expression) { + continue; + } + nodes.push(expression); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + nodes = nodes.filter(function (node) { + return !(Node_1.Node.isLiteralNode(node) && node.value === ''); + }); + if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) { + nodes.unshift(Nodes_1.Nodes.getLiteralNode('')); + } + if (nodes.length > 1) { + var root = Nodes_1.Nodes.getBinaryExpressionNode('+', nodes.shift(), nodes.shift()); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = (0, _getIterator3.default)(nodes), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var node = _step2.value; + + root = Nodes_1.Nodes.getBinaryExpressionNode('+', root, node); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + return root; + } + return nodes[0]; + } + }], [{ + key: "isLiteralNodeWithStringValue", + value: function isLiteralNodeWithStringValue(node) { + return node && Node_1.Node.isLiteralNode(node) && typeof node.value === 'string'; + } + }]); + return TemplateLiteralTransformer; +}(AbstractNodeTransformer_1.AbstractNodeTransformer); +TemplateLiteralTransformer = TemplateLiteralTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Object])], TemplateLiteralTransformer); +exports.TemplateLiteralTransformer = TemplateLiteralTransformer; +var TemplateLiteralTransformer_1; + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + var _getPrototypeOf = __webpack_require__(5); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); @@ -5520,7 +5780,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var estraverse = __webpack_require__(17); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var AbstractNodeTransformer_1 = __webpack_require__(16); var Node_1 = __webpack_require__(12); var CatchClauseTransformer = function (_AbstractNodeTransfor) { @@ -5574,13 +5834,13 @@ CatchClauseTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1._ exports.CatchClauseTransformer = CatchClauseTransformer; /***/ }), -/* 94 */ +/* 97 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -5614,7 +5874,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var estraverse = __webpack_require__(17); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var NodeType_1 = __webpack_require__(18); var AbstractNodeTransformer_1 = __webpack_require__(16); var Node_1 = __webpack_require__(12); @@ -5706,7 +5966,7 @@ FunctionDeclarationTransformer = tslib_1.__decorate([inversify_1.injectable(), t exports.FunctionDeclarationTransformer = FunctionDeclarationTransformer; /***/ }), -/* 95 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5738,7 +5998,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var estraverse = __webpack_require__(17); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var AbstractNodeTransformer_1 = __webpack_require__(16); var Node_1 = __webpack_require__(12); var FunctionTransformer = function (_AbstractNodeTransfor) { @@ -5800,7 +6060,7 @@ FunctionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__pa exports.FunctionTransformer = FunctionTransformer; /***/ }), -/* 96 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5832,7 +6092,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var estraverse = __webpack_require__(17); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var AbstractNodeTransformer_1 = __webpack_require__(16); var Node_1 = __webpack_require__(12); var LabeledStatementTransformer = function (_AbstractNodeTransfor) { @@ -5880,7 +6140,7 @@ LabeledStatementTransformer = tslib_1.__decorate([inversify_1.injectable(), tsli exports.LabeledStatementTransformer = LabeledStatementTransformer; /***/ }), -/* 97 */ +/* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5916,7 +6176,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var escodegen = __webpack_require__(28); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var AbstractNodeTransformer_1 = __webpack_require__(16); var Node_1 = __webpack_require__(12); var LiteralTransformer = function (_AbstractNodeTransfor) { @@ -5964,146 +6224,7 @@ LiteralTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__par exports.LiteralTransformer = LiteralTransformer; /***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _getPrototypeOf = __webpack_require__(5); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(1); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__(7); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__(6); - -var _inherits3 = _interopRequireDefault(_inherits2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var tslib_1 = __webpack_require__(3); -var inversify_1 = __webpack_require__(2); -var ServiceIdentifiers_1 = __webpack_require__(4); -var NodeObfuscationReplacers_1 = __webpack_require__(20); -var NodeType_1 = __webpack_require__(18); -var AbstractNodeTransformer_1 = __webpack_require__(16); -var Node_1 = __webpack_require__(12); -var MemberExpressionTransformer = function (_AbstractNodeTransfor) { - (0, _inherits3.default)(MemberExpressionTransformer, _AbstractNodeTransfor); - - function MemberExpressionTransformer(replacersFactory, options) { - (0, _classCallCheck3.default)(this, MemberExpressionTransformer); - - var _this = (0, _possibleConstructorReturn3.default)(this, (MemberExpressionTransformer.__proto__ || (0, _getPrototypeOf2.default)(MemberExpressionTransformer)).call(this, options)); - - _this.stringLiteralReplacer = replacersFactory(NodeObfuscationReplacers_1.NodeObfuscatorsReplacers.StringLiteralReplacer); - return _this; - } - - (0, _createClass3.default)(MemberExpressionTransformer, [{ - key: "transformNode", - value: function transformNode(memberExpressionNode) { - if (Node_1.Node.isIdentifierNode(memberExpressionNode.property)) { - if (memberExpressionNode.computed) { - return memberExpressionNode; - } - memberExpressionNode.computed = true; - memberExpressionNode.property = { - type: NodeType_1.NodeType.Literal, - value: memberExpressionNode.property.name, - raw: "'" + memberExpressionNode.property.name + "'" - }; - } - return memberExpressionNode; - } - }]); - return MemberExpressionTransformer; -}(AbstractNodeTransformer_1.AbstractNodeTransformer); -MemberExpressionTransformer = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatorReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], MemberExpressionTransformer); -exports.MemberExpressionTransformer = MemberExpressionTransformer; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _getPrototypeOf = __webpack_require__(5); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(1); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__(7); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__(6); - -var _inherits3 = _interopRequireDefault(_inherits2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var tslib_1 = __webpack_require__(3); -var inversify_1 = __webpack_require__(2); -var ServiceIdentifiers_1 = __webpack_require__(4); -var NodeObfuscationReplacers_1 = __webpack_require__(20); -var NodeType_1 = __webpack_require__(18); -var AbstractNodeTransformer_1 = __webpack_require__(16); -var Node_1 = __webpack_require__(12); -var MethodDefinitionTransformer = MethodDefinitionTransformer_1 = function (_AbstractNodeTransfor) { - (0, _inherits3.default)(MethodDefinitionTransformer, _AbstractNodeTransfor); - - function MethodDefinitionTransformer(replacersFactory, options) { - (0, _classCallCheck3.default)(this, MethodDefinitionTransformer); - - var _this = (0, _possibleConstructorReturn3.default)(this, (MethodDefinitionTransformer.__proto__ || (0, _getPrototypeOf2.default)(MethodDefinitionTransformer)).call(this, options)); - - _this.stringLiteralReplacer = replacersFactory(NodeObfuscationReplacers_1.NodeObfuscatorsReplacers.StringLiteralReplacer); - return _this; - } - - (0, _createClass3.default)(MethodDefinitionTransformer, [{ - key: "transformNode", - value: function transformNode(methodDefinitionNode, parentNode) { - if (Node_1.Node.isIdentifierNode(methodDefinitionNode.key) && !MethodDefinitionTransformer_1.ignoredNames.includes(methodDefinitionNode.key.name) && methodDefinitionNode.computed === false) { - methodDefinitionNode.computed = true; - methodDefinitionNode.key = { - type: NodeType_1.NodeType.Literal, - value: methodDefinitionNode.key.name, - raw: "'" + methodDefinitionNode.key.name + "'" - }; - } - return methodDefinitionNode; - } - }]); - return MethodDefinitionTransformer; -}(AbstractNodeTransformer_1.AbstractNodeTransformer); -MethodDefinitionTransformer.ignoredNames = ['constructor']; -MethodDefinitionTransformer = MethodDefinitionTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatorReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], MethodDefinitionTransformer); -exports.MethodDefinitionTransformer = MethodDefinitionTransformer; -var MethodDefinitionTransformer_1; - -/***/ }), -/* 100 */ +/* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6155,16 +6276,16 @@ var ObjectExpressionTransformer = ObjectExpressionTransformer_1 = function (_Abs property.shorthand = false; } if (Node_1.Node.isLiteralNode(property.key)) { - property.key = ObjectExpressionTransformer_1.obfuscateLiteralPropertyKey(property.key); + property.key = ObjectExpressionTransformer_1.transformLiteralPropertyKey(property.key); } else if (Node_1.Node.isIdentifierNode(property.key)) { - property.key = ObjectExpressionTransformer_1.obfuscateIdentifierPropertyKey(property.key); + property.key = ObjectExpressionTransformer_1.transformIdentifierPropertyKey(property.key); } }); return objectExpressionNode; } }], [{ - key: "obfuscateLiteralPropertyKey", - value: function obfuscateLiteralPropertyKey(node) { + key: "transformLiteralPropertyKey", + value: function transformLiteralPropertyKey(node) { if (typeof node.value === 'string' && !node['x-verbatim-property']) { node['x-verbatim-property'] = { content: "'" + Utils_1.Utils.stringToUnicodeEscapeSequence(node.value) + "'", @@ -6174,8 +6295,8 @@ var ObjectExpressionTransformer = ObjectExpressionTransformer_1 = function (_Abs return node; } }, { - key: "obfuscateIdentifierPropertyKey", - value: function obfuscateIdentifierPropertyKey(node) { + key: "transformIdentifierPropertyKey", + value: function transformIdentifierPropertyKey(node) { return { type: NodeType_1.NodeType.Literal, value: node.name, @@ -6193,141 +6314,6 @@ ObjectExpressionTransformer = ObjectExpressionTransformer_1 = tslib_1.__decorate exports.ObjectExpressionTransformer = ObjectExpressionTransformer; var ObjectExpressionTransformer_1; -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _getIterator2 = __webpack_require__(22); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _getPrototypeOf = __webpack_require__(5); - -var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _createClass2 = __webpack_require__(1); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _possibleConstructorReturn2 = __webpack_require__(7); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__(6); - -var _inherits3 = _interopRequireDefault(_inherits2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var tslib_1 = __webpack_require__(3); -var inversify_1 = __webpack_require__(2); -var ServiceIdentifiers_1 = __webpack_require__(4); -var AbstractNodeTransformer_1 = __webpack_require__(16); -var Node_1 = __webpack_require__(12); -var Nodes_1 = __webpack_require__(21); -var TemplateLiteralTransformer = TemplateLiteralTransformer_1 = function (_AbstractNodeTransfor) { - (0, _inherits3.default)(TemplateLiteralTransformer, _AbstractNodeTransfor); - - function TemplateLiteralTransformer(replacersFactory, options) { - (0, _classCallCheck3.default)(this, TemplateLiteralTransformer); - - var _this = (0, _possibleConstructorReturn3.default)(this, (TemplateLiteralTransformer.__proto__ || (0, _getPrototypeOf2.default)(TemplateLiteralTransformer)).call(this, options)); - - _this.replacersFactory = replacersFactory; - return _this; - } - - (0, _createClass3.default)(TemplateLiteralTransformer, [{ - key: "transformNode", - value: function transformNode(templateLiteralNode, parentNode) { - var templateLiteralExpressions = templateLiteralNode.expressions; - var nodes = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(templateLiteralNode.quasis), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var templateElement = _step.value; - - nodes.push(Nodes_1.Nodes.getLiteralNode(templateElement.value.cooked)); - var expression = templateLiteralExpressions.shift(); - if (!expression) { - continue; - } - nodes.push(expression); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - nodes = nodes.filter(function (node) { - return !(Node_1.Node.isLiteralNode(node) && node.value === ''); - }); - if (!TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[0]) && !TemplateLiteralTransformer_1.isLiteralNodeWithStringValue(nodes[1])) { - nodes.unshift(Nodes_1.Nodes.getLiteralNode('')); - } - if (nodes.length > 1) { - var root = Nodes_1.Nodes.getBinaryExpressionNode('+', nodes.shift(), nodes.shift()); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(nodes), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var node = _step2.value; - - root = Nodes_1.Nodes.getBinaryExpressionNode('+', root, node); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return root; - } - return nodes[0]; - } - }], [{ - key: "isLiteralNodeWithStringValue", - value: function isLiteralNodeWithStringValue(node) { - return node && Node_1.Node.isLiteralNode(node) && typeof node.value === 'string'; - } - }]); - return TemplateLiteralTransformer; -}(AbstractNodeTransformer_1.AbstractNodeTransformer); -TemplateLiteralTransformer = TemplateLiteralTransformer_1 = tslib_1.__decorate([inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.Factory__IObfuscatorReplacer)), tslib_1.__param(1, inversify_1.inject(ServiceIdentifiers_1.ServiceIdentifiers.IOptions)), tslib_1.__metadata("design:paramtypes", [Function, Object])], TemplateLiteralTransformer); -exports.TemplateLiteralTransformer = TemplateLiteralTransformer; -var TemplateLiteralTransformer_1; - /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { @@ -6335,7 +6321,7 @@ var TemplateLiteralTransformer_1; "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -6369,7 +6355,7 @@ var tslib_1 = __webpack_require__(3); var inversify_1 = __webpack_require__(2); var ServiceIdentifiers_1 = __webpack_require__(4); var estraverse = __webpack_require__(17); -var NodeObfuscationReplacers_1 = __webpack_require__(20); +var NodeObfuscationReplacers_1 = __webpack_require__(23); var NodeType_1 = __webpack_require__(18); var AbstractNodeTransformer_1 = __webpack_require__(16); var Node_1 = __webpack_require__(12); @@ -6877,7 +6863,7 @@ var Options_1; "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -7062,7 +7048,7 @@ exports.OptionsNormalizer = OptionsNormalizer; "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); @@ -7404,7 +7390,7 @@ exports.FunctionExpressionCalleeDataExtractor = FunctionExpressionCalleeDataExtr "use strict"; -var _getIterator2 = __webpack_require__(22); +var _getIterator2 = __webpack_require__(21); var _getIterator3 = _interopRequireDefault(_getIterator2); diff --git a/package.json b/package.json index 2cd9fb45..1faf9117 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@types/esprima": "2.1.33", "@types/estraverse": "0.0.6", "@types/estree": "0.0.34", - "@types/lodash": "4.14.48", + "@types/lodash": "4.14.50", "@types/mkdirp": "0.3.29", "@types/mocha": "2.2.37", "@types/node": "7.0.0", diff --git a/src/Obfuscator.ts b/src/Obfuscator.ts index f261b0db..b62ff610 100644 --- a/src/Obfuscator.ts +++ b/src/Obfuscator.ts @@ -29,7 +29,7 @@ export class Obfuscator implements IObfuscator { /** * @type {Map} */ - private static readonly nodeControlFlowTransformersMap: Map = new Map([ + private static readonly controlFlowTransformersMap: Map = new Map([ [NodeType.BlockStatement, [NodeTransformers.BlockStatementControlFlowTransformer]], [NodeType.FunctionDeclaration, [NodeTransformers.FunctionControlFlowTransformer]], [NodeType.FunctionExpression, [NodeTransformers.FunctionControlFlowTransformer]] @@ -38,7 +38,13 @@ export class Obfuscator implements IObfuscator { /** * @type {Map} */ - private static readonly nodeObfuscatorsMap: Map = new Map([ + private static readonly nodeTransformersMap: Map = new Map([ + // converting transformers + [NodeType.MemberExpression, [NodeTransformers.MemberExpressionTransformer]], + [NodeType.MethodDefinition, [NodeTransformers.MethodDefinitionTransformer]], + [NodeType.TemplateLiteral, [NodeTransformers.TemplateLiteralTransformer]], + + // obfuscation transformers [NodeType.ArrowFunctionExpression, [NodeTransformers.FunctionTransformer]], [NodeType.ClassDeclaration, [NodeTransformers.FunctionDeclarationTransformer]], [NodeType.CatchClause, [NodeTransformers.CatchClauseTransformer]], @@ -47,12 +53,9 @@ export class Obfuscator implements IObfuscator { NodeTransformers.FunctionTransformer ]], [NodeType.FunctionExpression, [NodeTransformers.FunctionTransformer]], - [NodeType.MemberExpression, [NodeTransformers.MemberExpressionTransformer]], - [NodeType.MethodDefinition, [NodeTransformers.MethodDefinitionTransformer]], [NodeType.ObjectExpression, [NodeTransformers.ObjectExpressionTransformer]], [NodeType.VariableDeclaration, [NodeTransformers.VariableDeclarationTransformer]], [NodeType.LabeledStatement, [NodeTransformers.LabeledStatementTransformer]], - [NodeType.TemplateLiteral, [NodeTransformers.TemplateLiteralTransformer]], [NodeType.Literal, [NodeTransformers.LiteralTransformer]] // should be latest in the chain of obfuscators ]); @@ -134,7 +137,7 @@ export class Obfuscator implements IObfuscator { astTree = this.transformAstTree( astTree, VisitorDirection.leave, - this.nodeTransformersFactory(Obfuscator.nodeControlFlowTransformersMap) + this.nodeTransformersFactory(Obfuscator.controlFlowTransformersMap) ); } @@ -142,7 +145,7 @@ export class Obfuscator implements IObfuscator { astTree = this.transformAstTree( astTree, VisitorDirection.enter, - this.nodeTransformersFactory(Obfuscator.nodeObfuscatorsMap) + this.nodeTransformersFactory(Obfuscator.nodeTransformersMap) ); this.obfuscationEventEmitter.emit(ObfuscationEvents.AfterObfuscation, astTree, stackTraceData); diff --git a/src/container/modules/node-transformers/NodeTransformersModule.ts b/src/container/modules/node-transformers/NodeTransformersModule.ts index 6dee4c5e..80f95e29 100644 --- a/src/container/modules/node-transformers/NodeTransformersModule.ts +++ b/src/container/modules/node-transformers/NodeTransformersModule.ts @@ -13,14 +13,14 @@ import { FunctionDeclarationTransformer } from '../../../node-transformers/obfus import { FunctionTransformer } from '../../../node-transformers/obfuscation-transformers/FunctionTransformer'; import { LabeledStatementTransformer } from '../../../node-transformers/obfuscation-transformers/LabeledStatementTransformer'; import { LiteralTransformer } from '../../../node-transformers/obfuscation-transformers/LiteralTransformer'; -import { MemberExpressionTransformer } from '../../../node-transformers/obfuscation-transformers/MemberExpressionTransformer'; -import { MethodDefinitionTransformer } from '../../../node-transformers/obfuscation-transformers/MethodDefinitionTransformer'; +import { MemberExpressionTransformer } from '../../../node-transformers/converting-transformers/MemberExpressionTransformer'; +import { MethodDefinitionTransformer } from '../../../node-transformers/converting-transformers/MethodDefinitionTransformer'; import { ObjectExpressionTransformer } from '../../../node-transformers/obfuscation-transformers/ObjectExpressionTransformer'; -import { TemplateLiteralTransformer } from '../../../node-transformers/obfuscation-transformers/TemplateLiteralTransformer'; +import { TemplateLiteralTransformer } from '../../../node-transformers/converting-transformers/TemplateLiteralTransformer'; import { VariableDeclarationTransformer } from '../../../node-transformers/obfuscation-transformers/VariableDeclarationTransformer'; export const nodeTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => { - // node control flow transformers + // control flow transformers bind(ServiceIdentifiers.INodeTransformer) .to(BlockStatementControlFlowTransformer) .whenTargetNamed(NodeTransformers.BlockStatementControlFlowTransformer); @@ -29,7 +29,20 @@ export const nodeTransformersModule: interfaces.ContainerModule = new ContainerM .to(FunctionControlFlowTransformer) .whenTargetNamed(NodeTransformers.FunctionControlFlowTransformer); - // node obfuscators + // converting transformers + bind(ServiceIdentifiers.INodeTransformer) + .to(MemberExpressionTransformer) + .whenTargetNamed(NodeTransformers.MemberExpressionTransformer); + + bind(ServiceIdentifiers.INodeTransformer) + .to(MethodDefinitionTransformer) + .whenTargetNamed(NodeTransformers.MethodDefinitionTransformer); + + bind(ServiceIdentifiers.INodeTransformer) + .to(TemplateLiteralTransformer) + .whenTargetNamed(NodeTransformers.TemplateLiteralTransformer); + + // obfuscation transformers bind(ServiceIdentifiers.INodeTransformer) .to(CatchClauseTransformer) .whenTargetNamed(NodeTransformers.CatchClauseTransformer); @@ -50,22 +63,10 @@ export const nodeTransformersModule: interfaces.ContainerModule = new ContainerM .to(LiteralTransformer) .whenTargetNamed(NodeTransformers.LiteralTransformer); - bind(ServiceIdentifiers.INodeTransformer) - .to(MemberExpressionTransformer) - .whenTargetNamed(NodeTransformers.MemberExpressionTransformer); - - bind(ServiceIdentifiers.INodeTransformer) - .to(MethodDefinitionTransformer) - .whenTargetNamed(NodeTransformers.MethodDefinitionTransformer); - bind(ServiceIdentifiers.INodeTransformer) .to(ObjectExpressionTransformer) .whenTargetNamed(NodeTransformers.ObjectExpressionTransformer); - bind(ServiceIdentifiers.INodeTransformer) - .to(TemplateLiteralTransformer) - .whenTargetNamed(NodeTransformers.TemplateLiteralTransformer); - bind(ServiceIdentifiers.INodeTransformer) .to(VariableDeclarationTransformer) .whenTargetNamed(NodeTransformers.VariableDeclarationTransformer); diff --git a/src/node-transformers/obfuscation-transformers/MemberExpressionTransformer.ts b/src/node-transformers/converting-transformers/MemberExpressionTransformer.ts similarity index 72% rename from src/node-transformers/obfuscation-transformers/MemberExpressionTransformer.ts rename to src/node-transformers/converting-transformers/MemberExpressionTransformer.ts index 98eb479d..8e00cad2 100644 --- a/src/node-transformers/obfuscation-transformers/MemberExpressionTransformer.ts +++ b/src/node-transformers/converting-transformers/MemberExpressionTransformer.ts @@ -4,9 +4,7 @@ import { ServiceIdentifiers } from '../../container/ServiceIdentifiers'; import * as ESTree from 'estree'; import { IOptions } from '../../interfaces/options/IOptions'; -import { IObfuscationReplacer } from '../../interfaces/node-transformers/IObfuscationReplacer'; -import { NodeObfuscatorsReplacers } from '../../enums/container/NodeObfuscationReplacers'; import { NodeType } from '../../enums/NodeType'; import { AbstractNodeTransformer } from '../AbstractNodeTransformer'; @@ -15,21 +13,12 @@ import { Node } from '../../node/Node'; @injectable() export class MemberExpressionTransformer extends AbstractNodeTransformer { /** - * @type {IObfuscationReplacer} - */ - private readonly stringLiteralReplacer: IObfuscationReplacer; - - /** - * @param replacersFactory * @param options */ constructor ( - @inject(ServiceIdentifiers.Factory__IObfuscatorReplacer) replacersFactory: (replacer: NodeObfuscatorsReplacers) => IObfuscationReplacer, @inject(ServiceIdentifiers.IOptions) options: IOptions ) { super(options); - - this.stringLiteralReplacer = replacersFactory(NodeObfuscatorsReplacers.StringLiteralReplacer); } /** diff --git a/src/node-transformers/obfuscation-transformers/MethodDefinitionTransformer.ts b/src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts similarity index 76% rename from src/node-transformers/obfuscation-transformers/MethodDefinitionTransformer.ts rename to src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts index 15b1d4b4..13ab7e1c 100644 --- a/src/node-transformers/obfuscation-transformers/MethodDefinitionTransformer.ts +++ b/src/node-transformers/converting-transformers/MethodDefinitionTransformer.ts @@ -4,9 +4,7 @@ import { ServiceIdentifiers } from '../../container/ServiceIdentifiers'; import * as ESTree from 'estree'; import { IOptions } from '../../interfaces/options/IOptions'; -import { IObfuscationReplacer } from '../../interfaces/node-transformers/IObfuscationReplacer'; -import { NodeObfuscatorsReplacers } from '../../enums/container/NodeObfuscationReplacers'; import { NodeType } from '../../enums/NodeType'; import { AbstractNodeTransformer } from '../AbstractNodeTransformer'; @@ -29,21 +27,12 @@ export class MethodDefinitionTransformer extends AbstractNodeTransformer { private static readonly ignoredNames: string[] = ['constructor']; /** - * @type {IObfuscationReplacer} - */ - private readonly stringLiteralReplacer: IObfuscationReplacer; - - /** - * @param replacersFactory * @param options */ constructor ( - @inject(ServiceIdentifiers.Factory__IObfuscatorReplacer) replacersFactory: (replacer: NodeObfuscatorsReplacers) => IObfuscationReplacer, @inject(ServiceIdentifiers.IOptions) options: IOptions ) { super(options); - - this.stringLiteralReplacer = replacersFactory(NodeObfuscatorsReplacers.StringLiteralReplacer); } /** diff --git a/src/node-transformers/obfuscation-transformers/TemplateLiteralTransformer.ts b/src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts similarity index 81% rename from src/node-transformers/obfuscation-transformers/TemplateLiteralTransformer.ts rename to src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts index 75de2f53..c390ed4d 100644 --- a/src/node-transformers/obfuscation-transformers/TemplateLiteralTransformer.ts +++ b/src/node-transformers/converting-transformers/TemplateLiteralTransformer.ts @@ -4,9 +4,6 @@ import { ServiceIdentifiers } from '../../container/ServiceIdentifiers'; import * as ESTree from 'estree'; import { IOptions } from '../../interfaces/options/IOptions'; -import { IObfuscationReplacer } from '../../interfaces/node-transformers/IObfuscationReplacer'; - -import { NodeObfuscatorsReplacers } from '../../enums/container/NodeObfuscationReplacers'; import { AbstractNodeTransformer } from '../AbstractNodeTransformer'; import { Node } from '../../node/Node'; @@ -19,21 +16,12 @@ import { Nodes } from '../../node/Nodes'; @injectable() export class TemplateLiteralTransformer extends AbstractNodeTransformer { /** - * @type {(replacer: NodeObfuscatorsReplacers) => IObfuscationReplacer} - */ - private readonly replacersFactory: (replacer: NodeObfuscatorsReplacers) => IObfuscationReplacer; - - /** - * @param replacersFactory * @param options */ constructor ( - @inject(ServiceIdentifiers.Factory__IObfuscatorReplacer) replacersFactory: (replacer: NodeObfuscatorsReplacers) => IObfuscationReplacer, @inject(ServiceIdentifiers.IOptions) options: IOptions ) { super(options); - - this.replacersFactory = replacersFactory; } /** diff --git a/src/node-transformers/obfuscation-transformers/ObjectExpressionTransformer.ts b/src/node-transformers/obfuscation-transformers/ObjectExpressionTransformer.ts index 133166bd..8beddd29 100644 --- a/src/node-transformers/obfuscation-transformers/ObjectExpressionTransformer.ts +++ b/src/node-transformers/obfuscation-transformers/ObjectExpressionTransformer.ts @@ -37,7 +37,7 @@ export class ObjectExpressionTransformer extends AbstractNodeTransformer { * @param node * @returns {ESTree.Literal} */ - private static obfuscateLiteralPropertyKey (node: ESTree.Literal): ESTree.Literal { + private static transformLiteralPropertyKey (node: ESTree.Literal): ESTree.Literal { if (typeof node.value === 'string' && !node['x-verbatim-property']) { node['x-verbatim-property'] = { content : `'${Utils.stringToUnicodeEscapeSequence(node.value)}'`, @@ -52,7 +52,7 @@ export class ObjectExpressionTransformer extends AbstractNodeTransformer { * @param node * @returns {ESTree.Literal} */ - private static obfuscateIdentifierPropertyKey (node: ESTree.Identifier): ESTree.Literal { + private static transformIdentifierPropertyKey (node: ESTree.Identifier): ESTree.Literal { return { type: NodeType.Literal, value: node.name, @@ -76,9 +76,9 @@ export class ObjectExpressionTransformer extends AbstractNodeTransformer { } if (Node.isLiteralNode(property.key)) { - property.key = ObjectExpressionTransformer.obfuscateLiteralPropertyKey(property.key); + property.key = ObjectExpressionTransformer.transformLiteralPropertyKey(property.key); } else if (Node.isIdentifierNode(property.key)) { - property.key = ObjectExpressionTransformer.obfuscateIdentifierPropertyKey(property.key); + property.key = ObjectExpressionTransformer.transformIdentifierPropertyKey(property.key); } }); diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/MemberExpressionTransformer.spec.ts b/test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/MemberExpressionTransformer.spec.ts similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/MemberExpressionTransformer.spec.ts rename to test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/MemberExpressionTransformer.spec.ts diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/fixtures/dot-notation-call.js b/test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/fixtures/dot-notation-call.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/fixtures/dot-notation-call.js rename to test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/fixtures/dot-notation-call.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/fixtures/square-brackets-call.js b/test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/fixtures/square-brackets-call.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/fixtures/square-brackets-call.js rename to test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/fixtures/square-brackets-call.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/fixtures/square-brackets-with-identifier-call.js b/test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/fixtures/square-brackets-with-identifier-call.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/fixtures/square-brackets-with-identifier-call.js rename to test/functional-tests/node-transformers/converting-transformers/member-expression-transformer/fixtures/square-brackets-with-identifier-call.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/method-definition-transformer/MethodDefinitionTransformer.spec.ts b/test/functional-tests/node-transformers/converting-transformers/method-definition-transformer/MethodDefinitionTransformer.spec.ts similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/method-definition-transformer/MethodDefinitionTransformer.spec.ts rename to test/functional-tests/node-transformers/converting-transformers/method-definition-transformer/MethodDefinitionTransformer.spec.ts diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/method-definition-transformer/fixtures/input.js b/test/functional-tests/node-transformers/converting-transformers/method-definition-transformer/fixtures/input.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/method-definition-transformer/fixtures/input.js rename to test/functional-tests/node-transformers/converting-transformers/method-definition-transformer/fixtures/input.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/TemplateLiteralTransformer.spec.ts b/test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/TemplateLiteralTransformer.spec.ts similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/TemplateLiteralTransformer.spec.ts rename to test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/TemplateLiteralTransformer.spec.ts diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/expression-only.js b/test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/expression-only.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/expression-only.js rename to test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/expression-only.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/literal-inside-expression.js b/test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/literal-inside-expression.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/literal-inside-expression.js rename to test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/literal-inside-expression.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/multiple-expressions.js b/test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/multiple-expressions.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/multiple-expressions.js rename to test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/multiple-expressions.js diff --git a/test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/simple-input.js b/test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/simple-input.js similarity index 100% rename from test/functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/fixtures/simple-input.js rename to test/functional-tests/node-transformers/converting-transformers/template-literal-transformer/fixtures/simple-input.js diff --git a/test/index.spec.ts b/test/index.spec.ts index d857a69f..23476259 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -35,15 +35,15 @@ import './functional-tests/node-transformers/control-flow-transformers/function- import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/binary-expression-control-flow-replacer/BinaryExpressionControlFlowReplacer.spec'; import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/call-expression-control-flow-replacer/CallExpressionControlFlowReplacer.spec'; import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/logical-expression-control-flow-replacer/LogicalExpressionControlFlowReplacer.spec'; +import './functional-tests/node-transformers/converting-transformers/member-expression-transformer/MemberExpressionTransformer.spec'; +import './functional-tests/node-transformers/converting-transformers/method-definition-transformer/MethodDefinitionTransformer.spec'; +import './functional-tests/node-transformers/converting-transformers/template-literal-transformer/TemplateLiteralTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/catch-clause-transformer/CatchClauseTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/function-declaration-transformer/FunctionDeclarationTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/function-transformer/FunctionTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/labeled-statement-transformer/LabeledStatementTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/literal-transformer/LiteralTransformer.spec'; -import './functional-tests/node-transformers/obfuscation-transformers/member-expression-transformer/MemberExpressionTransformer.spec'; -import './functional-tests/node-transformers/obfuscation-transformers/method-definition-transformer/MethodDefinitionTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/object-expression-transformer/ObjectExpressionTransformer.spec'; -import './functional-tests/node-transformers/obfuscation-transformers/template-literal-transformer/TemplateLiteralTransformer.spec'; import './functional-tests/node-transformers/obfuscation-transformers/variable-declaration-transformer/VariableDeclarationTransformer.spec'; import './functional-tests/stack-trace-analyzer/stack-trace-analyzer/StackTraceAnalyzer.spec'; import './functional-tests/templates/custom-nodes/domain-lock-nodes/DomainLockNodeTemplate.spec';