UNPKG

humanifyjs

Version:

> Deobfuscate Javascript code using LLMs ("AI")

23 lines (22 loc) 1.01 kB
import fs from "fs/promises"; import { ensureFileExists } from "./file-utils.js"; import { webcrack } from "./plugins/webcrack.js"; import { verbose } from "./verbose.js"; export async function unminify(filename, outputDir, plugins = []) { ensureFileExists(filename); const bundledCode = await fs.readFile(filename, "utf-8"); const extractedFiles = await webcrack(bundledCode, outputDir); for (let i = 0; i < extractedFiles.length; i++) { console.log(`Processing file ${i + 1}/${extractedFiles.length}`); const file = extractedFiles[i]; const code = await fs.readFile(file.path, "utf-8"); if (code.trim().length === 0) { verbose.log(`Skipping empty file ${file.path}`); continue; } const formattedCode = await plugins.reduce((p, next) => p.then(next), Promise.resolve(code)); verbose.log("Input: ", code); verbose.log("Output: ", formattedCode); await fs.writeFile(file.path, formattedCode); } }