UNPKG

react-native-decompiler

Version:

react native decompile apk and ipa(soon)

108 lines 11.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const traverse_1 = __importDefault(require("@babel/traverse")); const types_1 = require("@babel/types"); const module_1 = __importDefault(require("../module")); const performanceTracker_1 = __importDefault(require("../util/performanceTracker")); class WebpackParser extends performanceTracker_1.default { constructor() { super(...arguments); this.PARAM_MAPPING = { module: 0, exports: 1, require: 2, }; this.fileIsWebpackEntry = (file) => file.includes('window.webpackHotUpdate') || (file.includes('"Loading chunk "') && file.includes('"ChunkLoadError"')); } parseAst(ast, modules) { traverse_1.default(ast, { CallExpression: (nodePath) => { const firstArg = nodePath.get('arguments')[0]; if (types_1.isFunctionExpression(nodePath.node.callee) && (firstArg === null || firstArg === void 0 ? void 0 : firstArg.isArrayExpression())) { this.parseArray(ast, firstArg, modules); } else if (types_1.isMemberExpression(nodePath.node.callee) && types_1.isAssignmentExpression(nodePath.node.callee.object) && (firstArg === null || firstArg === void 0 ? void 0 : firstArg.isArrayExpression())) { const assignment = nodePath.node.callee.object; if (types_1.isMemberExpression(assignment.left)) { let leftPropName = ''; if (types_1.isIdentifier(assignment.left.property)) { leftPropName = assignment.left.property.name; } else if (types_1.isStringLiteral(assignment.left.property)) { leftPropName = assignment.left.property.value; } if (leftPropName.startsWith('webpackJsonp')) { const modulesObject = firstArg.get('elements')[1]; if (modulesObject.isArrayExpression()) { this.parseArray(ast, modulesObject, modules); } else { if (!modulesObject || !modulesObject.isObjectExpression()) throw new Error('Failed assertion'); this.parseObject(ast, modulesObject, modules); } } } } nodePath.skip(); }, }); } parseArray(file, ast, modules) { ast.get('elements').forEach((element, i) => { if (!element.isFunctionExpression()) return; if (element.node.body.body.length === 0) return; const dependencyValues = []; const requireIdentifer = element.node.params[2]; if (types_1.isIdentifier(requireIdentifer)) { element.traverse({ CallExpression: (dependencyPath) => { if (!types_1.isIdentifier(dependencyPath.node.callee) || !types_1.isNumericLiteral(dependencyPath.node.arguments[0])) return; if (dependencyPath.scope.bindingIdentifierEquals(dependencyPath.node.callee.name, requireIdentifer)) { dependencyValues[dependencyPath.node.arguments[0].value] = dependencyPath.node.arguments[0].value; } }, }); } const newModule = new module_1.default(file, element, i, dependencyValues, this.PARAM_MAPPING); newModule.calculateFields(); modules[i] = newModule; }); } parseObject(file, ast, modules) { ast.get('properties').forEach((property) => { if (!property.isObjectProperty() || !types_1.isNumericLiteral(property.node.key)) return; const element = property.get('value'); const i = property.node.key.value; if (!element.isFunctionExpression()) return; if (element.node.body.body.length === 0) return; const dependencyValues = []; const requireIdentifer = element.node.params[2]; if (types_1.isIdentifier(requireIdentifer)) { element.traverse({ CallExpression: (dependencyPath) => { if (!types_1.isIdentifier(dependencyPath.node.callee) || !types_1.isNumericLiteral(dependencyPath.node.arguments[0])) return; if (dependencyPath.scope.bindingIdentifierEquals(dependencyPath.node.callee.name, requireIdentifer)) { dependencyValues[dependencyPath.node.arguments[0].value] = dependencyPath.node.arguments[0].value; } }, }); } const newModule = new module_1.default(file, element, i, dependencyValues, this.PARAM_MAPPING); newModule.calculateFields(); modules[i] = newModule; }); } } exports.default = WebpackParser; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFja1BhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWxlUGFyc2Vycy93ZWJwYWNrUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZUEsK0RBQXFEO0FBQ3JELHdDQUVzQjtBQUV0Qix1REFBK0I7QUFDL0Isb0ZBQTREO0FBRTVELE1BQXFCLGFBQWMsU0FBUSw0QkFBa0I7SUFBN0Q7O1FBQ21CLGtCQUFhLEdBQWtCO1lBQzlDLE1BQU0sRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYLENBQUM7UUFFUSx1QkFBa0IsR0FBRyxDQUFDLElBQVksRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBb0ZqTCxDQUFDO0lBbEZXLFFBQVEsQ0FBQyxHQUFTLEVBQUUsT0FBaUI7UUFDN0Msa0JBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixjQUFjLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUMsSUFBSSw0QkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFJLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxpQkFBaUIsR0FBRSxFQUFFO29CQUMvRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ3pDO3FCQUFNLElBQUksMEJBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSw4QkFBc0IsQ0FBQyxR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