UNPKG

humanifyjs

Version:

> Deobfuscate Javascript code using LLMs ("AI")

32 lines (31 loc) 1.34 kB
import assert from "assert"; import { spawn } from "child_process"; import { verbose } from "./verbose.js"; export function assertMatches(actual, expected) { assert(expected.some((str) => actual.toLowerCase().includes(str.toLowerCase())), `Expected ${actual} to be one of ${JSON.stringify(expected)}`); } export async function humanify(...argv) { const extraArgs = argv.includes("local") ? ["--seed", "1"] : []; const process = spawn("./dist/index.mjs", [...argv, ...extraArgs]); const stdout = []; const stderr = []; process.stdout.on("data", (data) => stdout.push(data.toString())); process.stderr.on("data", (data) => stderr.push(data.toString())); await new Promise((resolve, reject) => process.on("close", () => { if (process.exitCode === 0) { resolve(undefined); } else { reject(new Error(`Process exited with code ${process.exitCode}, stderr: ${stderr.join("")}, stdout: ${stdout.join("")}`)); } })); verbose.log("stdout", stdout.join("")); verbose.log("stderr", stderr.join("")); return { stdout: stdout.join(""), stderr: stderr.join("") }; } export function ensure(value, message = "Value was null or undeined") { if (value === undefined || value === null) { throw new Error(message); } return value; }