Patching toString -> String
This commit is contained in:
parent
bd95cc449f
commit
f5be78d101
|
@ -441,7 +441,7 @@ async function runtime(token: string) {
|
||||||
|
|
||||||
Vencord.Webpack.factoryListeners.add(factory => {
|
Vencord.Webpack.factoryListeners.add(factory => {
|
||||||
let isResolved = false;
|
let isResolved = false;
|
||||||
searchAndLoadLazyChunks(factory.toString()).then(() => isResolved = true);
|
searchAndLoadLazyChunks(String(factory)).then(() => isResolved = true);
|
||||||
|
|
||||||
chunksSearchPromises.push(() => isResolved);
|
chunksSearchPromises.push(() => isResolved);
|
||||||
});
|
});
|
||||||
|
@ -451,7 +451,7 @@ async function runtime(token: string) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
for (const factoryId in wreq.m) {
|
for (const factoryId in wreq.m) {
|
||||||
let isResolved = false;
|
let isResolved = false;
|
||||||
searchAndLoadLazyChunks(wreq.m[factoryId].toString()).then(() => isResolved = true);
|
searchAndLoadLazyChunks(String(wreq.m[factoryId])).then(() => isResolved = true);
|
||||||
|
|
||||||
chunksSearchPromises.push(() => isResolved);
|
chunksSearchPromises.push(() => isResolved);
|
||||||
}
|
}
|
||||||
|
@ -470,7 +470,7 @@ async function runtime(token: string) {
|
||||||
const allChunks = [] as string[];
|
const allChunks = [] as string[];
|
||||||
|
|
||||||
// Matches "id" or id:
|
// Matches "id" or id:
|
||||||
for (const currentMatch of wreq.u.toString().matchAll(/(?:"(\d+?)")|(?:(\d+?):)/g)) {
|
for (const currentMatch of String(wreq.u).matchAll(/(?:"(\d+?)")|(?:(\d+?):)/g)) {
|
||||||
const id = currentMatch[1] ?? currentMatch[2];
|
const id = currentMatch[1] ?? currentMatch[2];
|
||||||
if (id == null) continue;
|
if (id == null) continue;
|
||||||
|
|
||||||
|
@ -525,7 +525,7 @@ async function runtime(token: string) {
|
||||||
const [code, matcher] = args;
|
const [code, matcher] = args;
|
||||||
|
|
||||||
const module = Vencord.Webpack.findModuleFactory(...code);
|
const module = Vencord.Webpack.findModuleFactory(...code);
|
||||||
if (module) result = module.toString().match(canonicalizeMatch(matcher));
|
if (module) result = String(module).match(canonicalizeMatch(matcher));
|
||||||
} else {
|
} else {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
result = Vencord.Webpack[method](...args);
|
result = Vencord.Webpack[method](...args);
|
||||||
|
@ -534,8 +534,8 @@ async function runtime(token: string) {
|
||||||
if (result == null || ("$$vencordInternal" in result && result.$$vencordInternal() == null)) throw "a rock at ben shapiro";
|
if (result == null || ("$$vencordInternal" in result && result.$$vencordInternal() == null)) throw "a rock at ben shapiro";
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
let logMessage = searchType;
|
let logMessage = searchType;
|
||||||
if (method === "find" || method === "proxyLazyWebpack" || method === "LazyComponentWebpack") logMessage += `(${args[0].toString().slice(0, 147)}...)`;
|
if (method === "find" || method === "proxyLazyWebpack" || method === "LazyComponentWebpack") logMessage += `(${String(args[0]).slice(0, 147)}...)`;
|
||||||
else if (method === "extractAndLoadChunks") logMessage += `([${args[0].map(arg => `"${arg}"`).join(", ")}], ${args[1].toString()})`;
|
else if (method === "extractAndLoadChunks") logMessage += `([${args[0].map(arg => `"${arg}"`).join(", ")}], ${String(args[1])})`;
|
||||||
else logMessage += `(${args.map(arg => `"${arg}"`).join(", ")})`;
|
else logMessage += `(${args.map(arg => `"${arg}"`).join(", ")})`;
|
||||||
|
|
||||||
console.log("[PUP_WEBPACK_FIND_FAIL]", logMessage);
|
console.log("[PUP_WEBPACK_FIND_FAIL]", logMessage);
|
||||||
|
|
|
@ -56,7 +56,7 @@ function ReplacementComponent({ module, match, replacement, setReplacementError
|
||||||
const [compileResult, setCompileResult] = React.useState<[boolean, string]>();
|
const [compileResult, setCompileResult] = React.useState<[boolean, string]>();
|
||||||
|
|
||||||
const [patchedCode, matchResult, diff] = React.useMemo(() => {
|
const [patchedCode, matchResult, diff] = React.useMemo(() => {
|
||||||
const src: string = fact.toString().replaceAll("\n", "");
|
const src: string = String(fact).replaceAll("\n", "");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
new RegExp(match);
|
new RegExp(match);
|
||||||
|
|
|
@ -160,7 +160,7 @@ function initWs(isManual = false) {
|
||||||
return reply("Expected exactly one 'find' matches, found " + keys.length);
|
return reply("Expected exactly one 'find' matches, found " + keys.length);
|
||||||
|
|
||||||
const mod = candidates[keys[0]];
|
const mod = candidates[keys[0]];
|
||||||
let src = mod.toString().replaceAll("\n", "");
|
let src = String(mod).replaceAll("\n", "");
|
||||||
|
|
||||||
if (src.startsWith("function(")) {
|
if (src.startsWith("function(")) {
|
||||||
src = "0," + src;
|
src = "0," + src;
|
||||||
|
|
|
@ -91,7 +91,7 @@ Object.defineProperty(Function.prototype, "O", {
|
||||||
|
|
||||||
const originalOnChunksLoaded = onChunksLoaded;
|
const originalOnChunksLoaded = onChunksLoaded;
|
||||||
onChunksLoaded = function (result, chunkIds, callback, priority) {
|
onChunksLoaded = function (result, chunkIds, callback, priority) {
|
||||||
if (callback != null && initCallbackRegex.test(callback.toString())) {
|
if (callback != null && initCallbackRegex.test(String(callback))) {
|
||||||
Object.defineProperty(this, "O", {
|
Object.defineProperty(this, "O", {
|
||||||
value: originalOnChunksLoaded,
|
value: originalOnChunksLoaded,
|
||||||
configurable: true,
|
configurable: true,
|
||||||
|
@ -218,7 +218,7 @@ function patchFactory(id: PropertyKey, factory: ModuleFactory) {
|
||||||
// cause issues.
|
// cause issues.
|
||||||
//
|
//
|
||||||
// 0, prefix is to turn it into an expression: 0,function(){} would be invalid syntax without the 0,
|
// 0, prefix is to turn it into an expression: 0,function(){} would be invalid syntax without the 0,
|
||||||
let code: string = "0," + factory.toString().replaceAll("\n", "");
|
let code: string = "0," + String(factory).replaceAll("\n", "");
|
||||||
|
|
||||||
for (let i = 0; i < patches.length; i++) {
|
for (let i = 0; i < patches.length; i++) {
|
||||||
const patch = patches[i];
|
const patch = patches[i];
|
||||||
|
|
|
@ -218,7 +218,7 @@ export const findBulk = traceFunction("findBulk", function findBulk(...filterFns
|
||||||
export const findModuleId = traceFunction("findModuleId", function findModuleId(...code: string[]) {
|
export const findModuleId = traceFunction("findModuleId", function findModuleId(...code: string[]) {
|
||||||
outer:
|
outer:
|
||||||
for (const id in wreq.m) {
|
for (const id in wreq.m) {
|
||||||
const str = wreq.m[id].toString();
|
const str = String(wreq.m[id]);
|
||||||
|
|
||||||
for (const c of code) {
|
for (const c of code) {
|
||||||
if (!str.includes(c)) continue outer;
|
if (!str.includes(c)) continue outer;
|
||||||
|
@ -420,7 +420,7 @@ export async function extractAndLoadChunks(code: string[], matcher: RegExp = Def
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const match = module.toString().match(canonicalizeMatch(matcher));
|
const match = String(module).match(canonicalizeMatch(matcher));
|
||||||
if (!match) {
|
if (!match) {
|
||||||
const err = new Error("extractAndLoadChunks: Couldn't find chunk loading in module factory code");
|
const err = new Error("extractAndLoadChunks: Couldn't find chunk loading in module factory code");
|
||||||
logger.warn(err, "Code:", code, "Matcher:", matcher);
|
logger.warn(err, "Code:", code, "Matcher:", matcher);
|
||||||
|
@ -501,7 +501,7 @@ export function search(...filters: Array<string | RegExp>) {
|
||||||
outer:
|
outer:
|
||||||
for (const id in factories) {
|
for (const id in factories) {
|
||||||
const factory = factories[id];
|
const factory = factories[id];
|
||||||
const str: string = factory.toString();
|
const str: string = String(factory);
|
||||||
for (const filter of filters) {
|
for (const filter of filters) {
|
||||||
if (typeof filter === "string" && !str.includes(filter)) continue outer;
|
if (typeof filter === "string" && !str.includes(filter)) continue outer;
|
||||||
if (filter instanceof RegExp && !filter.test(str)) continue outer;
|
if (filter instanceof RegExp && !filter.test(str)) continue outer;
|
||||||
|
@ -529,7 +529,7 @@ export function extract(id: PropertyKey) {
|
||||||
// WARNING: This module was extracted to be more easily readable.
|
// WARNING: This module was extracted to be more easily readable.
|
||||||
// This module is NOT ACTUALLY USED! This means putting breakpoints will have NO EFFECT!!
|
// This module is NOT ACTUALLY USED! This means putting breakpoints will have NO EFFECT!!
|
||||||
|
|
||||||
0,${mod.toString()}
|
0,${String(mod)}
|
||||||
//# sourceURL=ExtractedWebpackModule${String(id)}
|
//# sourceURL=ExtractedWebpackModule${String(id)}
|
||||||
`;
|
`;
|
||||||
const extracted: ModuleFactory = (0, eval)(code);
|
const extracted: ModuleFactory = (0, eval)(code);
|
||||||
|
|
Loading…
Reference in a new issue