UNPKG

react-native-decompiler

Version:

react native decompile apk and ipa(soon)

119 lines 11.2 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 }); exports.Plugin = void 0; const t = __importStar(require("@babel/types")); const generator_1 = __importDefault(require("@babel/generator")); const debug_1 = __importDefault(require("debug")); class Plugin { constructor(cmdArgs, module, moduleList) { this.cmdArgs = cmdArgs; this.module = module; this.moduleList = moduleList; } getDebugName() { var _a; return `react-native-decompiler:${(_a = this.name) !== null && _a !== void 0 ? _a : 'plugin'}-${this.module.moduleId}`; } debugLog(formatter, ...args) { debug_1.default(this.getDebugName())(formatter, ...args); } debugPathToCode(path) { if (!debug_1.default(this.getDebugName()).enabled) return ''; return generator_1.default({ ...this.module.originalFile.program, type: 'Program', body: [t.isStatement(path.node) ? path.node : t.expressionStatement(path.node)], }).code; } navigateToModuleBody(path) { return path.get('body'); } hasTag(tag) { return this.module.tags.includes(tag); } addTag(tag) { this.module.tags.push(tag); } variableIsForDependency(path, dep) { var _a, _b, _c; const depArray = dep instanceof Array ? dep : [dep]; if (path.isVariableDeclarator()) { const callExpression = path.get('init'); if (!callExpression.isCallExpression()) return false; const requireValue = t.isStringLiteral(callExpression.node.arguments[0]) ? callExpression.node.arguments[0].value : null; const dependencyName = (_c = (_b = (_a = this.getModuleDependency(callExpression)) === null || _a === void 0 ? void 0 : _a.moduleName) !== null && _b !== void 0 ? _b : requireValue) !== null && _c !== void 0 ? _c : ''; return depArray.includes(dependencyName); } if (path.isImportDeclaration()) { if (!t.isStringLiteral(path.node.source)) return false; return depArray.includes(path.node.source.value); } return false; } getModuleDependency(path) { var _a, _b, _c, _d, _e; if (!t.isIdentifier(path.node.callee)) return null; if (!t.isNumericLiteral(path.node.arguments[0]) && !t.isMemberExpression(path.node.arguments[0]) && !t.isStringLiteral(path.node.arguments[0])) return null; if (((_a = path.scope.getBindingIdentifier(path.node.callee.name)) === null || _a === void 0 ? void 0 : _a.start) !== ((_b = this.module.requireParam) === null || _b === void 0 ? void 0 : _b.start)) return null; if (t.isMemberExpression(path.node.arguments[0]) && t.isNumericLiteral(path.node.arguments[0].property)) { return (_c = this.moduleList[this.module.dependencies[path.node.arguments[0].property.value]]) !== null && _c !== void 0 ? _c : null; } if (t.isStringLiteral(path.node.arguments[0])) { const nonNpmRegexTest = /\.\/([0-9]+)/.exec(path.node.arguments[0].value); if (nonNpmRegexTest != null) { return this.moduleList[this.module.dependencies[+nonNpmRegexTest[1]]]; } return (_d = this.moduleList.find((mod) => t.isStringLiteral(path.node.arguments[0]) && (mod === null || mod === void 0 ? void 0 : mod.moduleName) === path.node.arguments[0].value)) !== null && _d !== void 0 ? _d : null; } if (t.isNumericLiteral(path.node.arguments[0])) { return (_e = this.moduleList[this.module.dependencies[path.node.arguments[0].value]]) !== null && _e !== void 0 ? _e : null; } return null; } bindingTraverse(binding, varName, visitor) { binding.scope.traverse(binding.scope.block, { ...visitor, Scope: (path) => { if (!path.scope.bindingIdentifierEquals(varName, binding.identifier)) { path.skip(); } }, }); } mergeBindings(path, from, to) { const oldBinding = path.scope.bindings[to]; path.scope.rename(from, to); path.remove(); path.scope.bindings[to] = oldBinding; } } exports.Plugin = Plugin; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsZ0RBQWtDO0FBQ2xDLGlFQUF5QztBQUV6QyxrREFBMEI7QUFRMUIsTUFBc0IsTUFBTTtJQVMxQixZQUFZLE9BQWdCLEVBQUUsTUFBYyxFQUFFLFVBQW9CO1FBQ2hFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFjTyxZQUFZOztRQUNsQixPQUFPLDJCQUEyQixNQUFBLElBQUksQ0FBQyxJQUFJLG1DQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFUyxRQUFRLENBQUMsU0FBa0IsRUFBRSxHQUFHLElBQWU7UUFDdkQsZUFBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFPUyxlQUFlLENBQUMsSUFBbUI7UUFDM0MsSUFBSSxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkQsT0FBTyxtQkFBUyxDQUFDO1lBQ2YsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPO1lBQ25DLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMs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