perf: use lzma-wasm for SWF decompression and drop vite

Replace the pure-JS lzma decoder with lzma-wasm (Rust/WASM, base64-inlined,
zero-alloc decompress), giving an order-of-magnitude speedup on furni
imports. Remove the obsolete lzma type shim and the redundant top-level
vite dev dependency, which nothing imports directly.
This commit is contained in:
openhands committed 2026-08-29 19:27:27 +02:00
1 parent 7a41775c7e
commit ca59a1065f
6 files changed
+19 -31

No files matched your search

+5 -2
View File
@@ -3,8 +3,9 @@
*/
import { inflateSync } from "node:zlib";
import { initWasmSync, decompress as lzmaDecompress } from "lzma-wasm";
const LZMA = require("lzma/src/lzma_worker").LZMA_WORKER;
initWasmSync();
// ── SWF Tag Types ──────────────────────────────────────────────────
export const TAG_END = 0;
@@ -62,7 +63,9 @@ export function decompressSwf(buffer: Buffer): Buffer {
lzmaHeader.writeUInt32LE(0, 9);
const lzmaStream = Buffer.concat([lzmaHeader, compressedPayload]);
const decompressed = Buffer.from(LZMA.decompress(lzmaStream) as number[]);
const decompressed = Buffer.from(
lzmaDecompress(lzmaStream, { expectedSize: uncompressedSize }),
);
const header = Buffer.alloc(8);
buffer.copy(header, 0, 0, 8);