humanifyjs
Version:
> Deobfuscate Javascript code using LLMs ("AI")
32 lines (31 loc) • 1.34 kB
JavaScript
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;
}