/** * DWG parser — rust/dwg-wasm wrapper around the acadrust crate (MPL-2.0, * consumed unmodified; see rust/dwg-wasm). Emits the parseResult shape * Viewer2D.load() consumes. Lazy-imported so the wasm is only fetched when a * DWG is actually opened. * * History: until 2026-07-10 this module selected between acadrust and * @horu2day/pure-cad-parser (?dwgparser= toggle). The old parser was removed * after side-by-side validation (PROGRESS.md Phase 15). * * Post-process: fixDwgKoreanText repairs CP949→Latin-1 mojibake common in * older Korean DWGs (see fixDwgKoreanText.ts). Unicode-correct drawings * (e.g. BasicSample) are left unchanged. */ import { fixDwgKoreanText } from './fixDwgKoreanText'; export type CadParseResult = { version?: string; vars?: Record; entities?: unknown[]; tables?: Record; stats?: Record; }; /** Parse a DWG buffer. Returns a parseResult for Viewer2D.load(). */ export async function parseDwgBuffer(bytes: Uint8Array): Promise { const { initAcadrustParser, parseDwgAcadrust } = await import('./acadrustParser'); await initAcadrustParser(); return fixDwgKoreanText(parseDwgAcadrust(bytes)); }