react-native-decompiler
Version:
react native decompile apk and ipa(soon)
47 lines • 4.99 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const moduleFinder_1 = __importDefault(require("./moduleFinder"));
class PolyfillModuleFinder extends moduleFinder_1.default {
constructor() {
super(...arguments);
this.name = 'PolyfillModuleFinder';
this.commentMappings = {};
this.stringMappings = {};
this.codeRegexMappings = {
ResizeObserver: [/var .=void 0!==.\.ResizeObserver\?.\.ResizeObserver:.;.\.default=./],
};
}
evaluate() {
const commentMappingMatch = Object.keys(this.commentMappings).find((key) => this.test(this.module.moduleComments, this.commentMappings[key]));
if (commentMappingMatch) {
this.debugLog(`${this.module.moduleId} matched module ${commentMappingMatch} via comment`);
this.tagAsNpmModule(commentMappingMatch, commentMappingMatch);
this.module.isPolyfill = true;
return;
}
const stringMappingMatch = Object.keys(this.stringMappings).find((key) => this.test(this.module.moduleStrings, this.stringMappings[key]));
if (stringMappingMatch) {
this.debugLog(`${this.module.moduleId} matched module ${stringMappingMatch} via string`);
this.tagAsNpmModule(stringMappingMatch, stringMappingMatch);
this.module.isPolyfill = true;
return;
}
const codeRegexMatch = Object.keys(this.codeRegexMappings).find((key) => this.regexTest(this.module.originalCode, this.codeRegexMappings[key]));
if (codeRegexMatch) {
this.debugLog(`${this.module.moduleId} matched module ${codeRegexMatch} via code regex`);
this.tagAsNpmModule(codeRegexMatch, codeRegexMatch);
this.module.isPolyfill = true;
}
}
test(moduleStrings, stringsToFind) {
return stringsToFind.every((stringToFind) => moduleStrings.some((moduleString) => moduleString.includes(stringToFind)));
}
regexTest(originalCode, regexes) {
return regexes.every((regex) => regex.test(originalCode));
}
}
exports.default = PolyfillModuleFinder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWZpbGxNb2R1bGVGaW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFnZ2Vycy9ucG1Nb2R1bGVGaW5kZXJzL3BvbHlmaWxsTW9kdWxlRmluZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZ0JBLGtFQUEwQztBQUsxQyxNQUFxQixvQkFBcUIsU0FBUSxzQkFBWTtJQUE5RDs7UUFDRSxTQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFFYixvQkFBZSxHQUE2QixFQUM1RCxDQUFDO1FBRWUsbUJBQWMsR0FBNkIsRUFDM0QsQ0FBQztRQUVlLHNCQUFpQixHQUE2QjtZQUM3RCxjQUFjLEVBQUUsQ0FBQyxvRUFBb0UsQ0FBQztTQUN2RixDQUFDO0lBa0NKLENBQUM7SUFoQ0MsUUFBUTtRQUNOLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlJLElBQUksbUJBQW1CLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxtQkFBbUIsbUJBQW1CLGNBQWMsQ0FBQyxDQUFDO1lBQzNGLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDOUIsT0FBTztTQUNSO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUksSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLG1CQUFtQixrQkFBa0IsYUFBYSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM5QixPQUFPO1NBQ1I7UUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hKLElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsbUJBQW1CLGNBQWMsaUJBQWlCLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRU8sSUFBSSxDQUFDLGFBQXVCLEVBQUUsYUFBdUI7UUFDM0QsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRU8sU0FBUyxDQUFDLFlBQW9CLEVBQUUsT0FBaUI7UUFDdkQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBN0NELHVDQTZDQyJ9