The shipped wasm was built from a vendored acadrust 0.4.1 carrying local changes in two files (read_mesh array bounds, OLE2FRAME corner decoding), and the published read_mesh patch did not even apply to the pristine crate, so the notice could not reproduce the source compiled into the wasm (MPL-2.0 3.2). acadrust 0.6.5 already does both on its own: the road-surface MESH and the C0060203 OLE2FRAME come out identical to the patched build, so the parser now uses the crate exactly as crates.io serves it. The notices name 0.6.5, its upstream commit and the crate SHA-256 (equal to the Cargo.lock checksum the build used), the stale patch file is removed, and the page links to the crate source instead. Verified on 22 samples, loading each with the old and the new wasm in Chrome: all load, 17 render pixel-identical, and the 5 that differ are 0.4.1 misreads that 0.6.5 corrects. The wrapper changes this needed live in hmwebviewer rust/dwg-wasm (branch chore/acadrust-0.6.5). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
55 lines
2.3 KiB
TypeScript
55 lines
2.3 KiB
TypeScript
/* tslint:disable */
|
||
/* eslint-disable */
|
||
|
||
export function parse_dwg(bytes: Uint8Array): any;
|
||
|
||
/**
|
||
* The same parseResult as [`parse_dwg`], returned as a JSON string for the
|
||
* caller to hand to `JSON.parse`. Prefer this on anything but small drawings.
|
||
*
|
||
* Materializing the whole result as a `serde_json::Value` is what makes big
|
||
* files unopenable. The tree costs ~150× the DWG on the heap (a 19 MB drawing
|
||
* peaks near 2 GB), and the wasm allocator's per-allocation cost rises with the
|
||
* live heap, so conversion goes quadratic — measured 352 s in wasm for work
|
||
* that takes 2.5 s natively. Converting one entity at a time and appending its
|
||
* JSON text keeps the live heap flat and the cost linear.
|
||
*/
|
||
export function parse_dwg_json(bytes: Uint8Array): string;
|
||
|
||
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
||
|
||
export interface InitOutput {
|
||
readonly memory: WebAssembly.Memory;
|
||
readonly parse_dwg: (a: number, b: number) => [number, number, number];
|
||
readonly parse_dwg_json: (a: number, b: number) => [number, number, number, number];
|
||
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
||
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
||
readonly __externref_table_alloc: () => number;
|
||
readonly __wbindgen_externrefs: WebAssembly.Table;
|
||
readonly __externref_table_dealloc: (a: number) => void;
|
||
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
||
readonly __wbindgen_start: () => void;
|
||
}
|
||
|
||
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
||
|
||
/**
|
||
* Instantiates the given `module`, which can either be bytes or
|
||
* a precompiled `WebAssembly.Module`.
|
||
*
|
||
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
||
*
|
||
* @returns {InitOutput}
|
||
*/
|
||
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
||
|
||
/**
|
||
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
||
* for everything else, calls `WebAssembly.instantiate` directly.
|
||
*
|
||
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
||
*
|
||
* @returns {Promise<InitOutput>}
|
||
*/
|
||
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|