UNPKG

react-native-decompiler

Version:

react native decompile apk and ipa(soon)

95 lines 8.34 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const babylon = __importStar(require("@babel/parser")); 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")); const progressBar_1 = __importDefault(require("../util/progressBar")); class ReactNativeFolderParser extends performanceTracker_1.default { constructor() { super(...arguments); this.SEVEN_PARAM_MAPPING = { globals: 0, require: 1, module: 4, exports: 5, }; this.progressBar = progressBar_1.default.getInstance(); } async canParse(args) { try { const fileNames = await fs_extra_1.default.readdir(args.in); return fileNames.some((fileName) => { const file = fs_extra_1.default.readFileSync(path_1.default.join(args.in, fileName), 'utf8'); return /__d\(function\([a-z],[a-z],[a-z],[a-z],[a-z],[a-z],[a-z]\)/.test(file) || /__d\(function\([a-z],[a-z],[a-z],[a-z],[a-z],[a-z]\)/.test(file) || /__d\(function\([a-z],[a-z],[a-z],[a-z],[a-z]\)/.test(file); }); } catch (e) { return false; } } async parse(args) { const fileNames = (await fs_extra_1.default.readdir(args.in)).filter((fileName) => fileName.endsWith('.js')); console.log('Parsing folder...'); this.startTimer('parse'); this.progressBar.start(0, fileNames.length); const modules = []; await Promise.all(fileNames.map(async (fileName) => { const file = await fs_extra_1.default.readFile(path_1.default.join(args.in, fileName), 'utf8'); const ast = babylon.parse(file); traverse_1.default(ast, { CallExpression: (nodePath) => { if (types_1.isIdentifier(nodePath.node.callee) && nodePath.node.callee.name === '__d') { const functionArg = nodePath.get('arguments')[0]; const moduleId = nodePath.get('arguments')[1]; const dependencies = nodePath.get('arguments')[2]; if (functionArg.isFunctionExpression() && moduleId.isNumericLiteral() && dependencies.isArrayExpression() && functionArg.node.body.body.length) { const dependencyValues = dependencies.node.elements.map((e) => { if (!types_1.isNumericLiteral(e)) throw new Error('Not numeric literal'); return e.value; }); const newModule = new module_1.default(ast, functionArg, moduleId.node.value, dependencyValues, this.SEVEN_PARAM_MAPPING); newModule.calculateFields(); modules[newModule.moduleId] = newModule; } } nodePath.skip(); }, }); this.progressBar.increment(); })); this.progressBar.stop(); this.stopAndPrintTime('parse'); return modules; } } exports.default = ReactNativeFolderParser; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3ROYXRpdmVGb2xkZXJQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsZVBhcnNlcnMvcmVhY3ROYXRpdmVGb2xkZXJQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsd0RBQTBCO0FBQzFCLGdEQUF3QjtBQUN4Qix1REFBeUM7QUFDekMsK0RBQXVDO0FBQ3ZDLHdDQUE4RDtBQUU5RCx1REFBK0I7QUFFL0Isb0ZBQTREO0FBRTVELHNFQUE4QztBQUU5QyxNQUFxQix1QkFBd0IsU0FBUSw0QkFBa0I7SUFBdkU7O1FBQ21CLHdCQUFtQixHQUFrQjtZQUNwRCxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUUsQ0FBQztTQUNYLENBQUM7UUFDZSxnQkFBVyxHQUFHLHFCQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUEwRDNELENBQUM7SUF4REMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFhO1FBQzFCLElBQUk7WUFDRixNQUFNLFNBQVMsR0FBRyxNQUFNLGtCQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU1QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxJQUFJLEdBQUcsa0JBQUUsQ0FBQyxZQUFZLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRSxPQUFPLDREQUE0RCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7dUJBQ3pFLHNEQUFzRCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7dUJBQ2pFLGdEQUFnRCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRSxDQUFDLENBQUMs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