UNPKG

react-native-decompiler

Version:

react native decompile apk and ipa(soon)

115 lines 10.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const generator_1 = __importDefault(require("@babel/generator")); const crypto_1 = __importDefault(require("crypto")); const types_1 = require("@babel/types"); class Module { constructor(originalFile, rootPath, moduleId, dependencies, paramMappings) { this.originalCode = ''; this.previousRunChecksum = ''; this.moduleStrings = []; this.moduleComments = []; this.variableNames = new Set(); this.isNpmModule = false; this.isPolyfill = false; this.isStatic = false; this.staticContent = ''; this.ignored = false; this.failedToDecompile = false; this.tags = []; this.originalFile = originalFile; this.rootPath = rootPath; this.moduleId = moduleId; this.dependencies = dependencies; this.originalDependencies = dependencies; this.paramMappings = paramMappings; this.moduleCode = rootPath.node.body; this.moduleName = this.moduleId.toString(); this.globalsParam = this.getFunctionParam(paramMappings.globals); this.requireParam = this.getFunctionParam(paramMappings.require); this.moduleParam = this.getFunctionParam(paramMappings.module); this.exportsParam = this.getFunctionParam(paramMappings.exports); } getFunctionParam(index) { if (index == null) return undefined; const param = this.rootPath.get('params')[index]; if (!param || !param.isIdentifier()) return undefined; return param.node; } calculateFields() { var _a, _b; this.originalCode = generator_1.default({ ...this.originalFile.program, type: 'Program', body: [types_1.expressionStatement(this.rootPath.node)], }, { compact: true }).code; this.rootPath.traverse({ StringLiteral: (path) => { this.moduleStrings.push(path.node.value); }, Identifier: (path) => { if (path.node.name.length > 1) { this.variableNames.add(path.node.name); } }, }); this.moduleComments = ((_b = (_a = this.originalFile.comments) === null || _a === void 0 ? void 0 : _a.filter((comment) => this.rootPath.node.start && this.rootPath.node.end && comment.start > this.rootPath.node.start && comment.end < this.rootPath.node.end)) === null || _b === void 0 ? void 0 : _b.map((comment) => comment.value)) || []; } validate() { if (!this.originalCode) throw new Error('Original code is required'); if (!this.moduleStrings) throw new Error('Module strings is required'); if (!this.moduleComments) throw new Error('Module comments is required'); } unpack() { var _a, _b, _c, _d, _e, _f, _g, _h; if ((_a = this.globalsParam) === null || _a === void 0 ? void 0 : _a.name) { this.rootPath.scope.rename((_b = this.globalsParam) === null || _b === void 0 ? void 0 : _b.name, 'globals'); } if ((_c = this.requireParam) === null || _c === void 0 ? void 0 : _c.name) { this.rootPath.scope.rename((_d = this.requireParam) === null || _d === void 0 ? void 0 : _d.name, 'require'); } if ((_e = this.moduleParam) === null || _e === void 0 ? void 0 : _e.name) { this.rootPath.scope.rename((_f = this.moduleParam) === null || _f === void 0 ? void 0 : _f.name, 'module'); } if ((_g = this.exportsParam) === null || _g === void 0 ? void 0 : _g.name) { this.rootPath.scope.rename((_h = this.exportsParam) === null || _h === void 0 ? void 0 : _h.name, 'exports'); } } toCache() { return { code: this.originalCode, dependencies: this.dependencies, originalDependencies: this.originalDependencies, ignored: this.ignored, isNpmModule: this.isNpmModule, isPolyfill: this.isPolyfill, isStatic: this.isStatic, staticContent: this.staticContent, moduleId: this.moduleId, moduleName: this.moduleName, moduleStrings: this.moduleStrings, moduleComments: this.moduleComments, variableNames: [...this.variableNames], paramMappings: this.paramMappings, npmModuleVarName: this.npmModuleVarName, previousRunChecksum: crypto_1.default.createHash('md5').update(JSON.stringify(this.moduleCode.body)).digest('hex'), }; } debugToCode() { return generator_1.default({ ...this.originalFile.program, type: 'Program', body: this.moduleCode.body, }).code; } } exports.default = Module; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQSxpRUFBeUM7QUFDekMsb0RBQTRCO0FBQzVCLHdDQUVzQjtBQUl0QixNQUFxQixNQUFNO0lBbUR6QixZQUFZLFlBQWtCLEVBQUUsUUFBc0MsRUFBRSxRQUFnQixFQUFFLFlBQXNCLEVBQUUsYUFBNEI7UUExQjlJLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6QixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixrQkFBYSxHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBUXZDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUVuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUUxQixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBR2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxZQUFZLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFFbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFM0Ms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