UNPKG

middleout.js

Version:

A spoof compression library that pretends to revolutionize data compression using made-up algorithms — inspired by the legendary middle-out compression from Silicon Valley

64 lines (61 loc) 1.68 kB
#!/usr/bin/env node import { decodeMO, encodeMO } from "./chunk-EKQOSSOR.js"; import { getWeissmanScore } from "./chunk-MRISBIOS.js"; // src/algorithms/stk.ts function compressWithSTK(input, config) { const preserveWhitespace = config?.preserveWhitespace ?? true; const cleanedInput = preserveWhitespace ? input : input.replace(/\s+/g, ""); const patterns = [ { key: "Exception", token: "T1" }, { key: "at", token: "T2" }, { key: "null", token: "T3" }, { key: "undefined", token: "T4" }, { key: "function", token: "T5" } ]; let compressed = cleanedInput; for (const { key, token } of patterns) { const regex = new RegExp(key, "g"); compressed = compressed.replace(regex, token); } const targetWeissman = config?.targetWeissman || 10; const weissmanScore = getWeissmanScore( "stk", input.length, compressed.length, targetWeissman ); return { original: input, compressed, originalSize: input.length, compressedSize: compressed.length, algorithm: "stk", weissmanScore, encoded: encodeMO("stk", compressed, weissmanScore) }; } function decompressWithSTK(encoded) { const { compressedData } = decodeMO(encoded); const patterns = [ { key: "Exception", token: "T1" }, { key: "at", token: "T2" }, { key: "null", token: "T3" }, { key: "undefined", token: "T4" }, { key: "function", token: "T5" } ]; let decompressed = compressedData; for (const { key, token } of patterns) { const regex = new RegExp(token, "g"); decompressed = decompressed.replace(regex, key); } return decompressed; } export { compressWithSTK, decompressWithSTK };