Skip to content

0.5.0: preservation-first legacy editing ​

This minor release adds explicit edit outcomes and extends safe read/write subsets. Existing JavaScript entry points, subpaths, arguments and byte-returning compatibility wrappers remain available. Constructed DocFib and DocCfbUnwrap TypeScript values remain source-compatible; parser return subtypes expose the new metadata as known values. The packed npm consumer compiles these old public interface shapes independently.

New public APIs include tryWriteOleDocParagraphEdit, editXlsNumericCell, editXlsStringCell, readPptSlideTexts, editPptSlideText, and their exported result/model types. DOC fixed-length edits preserve original runs and dependent character-position tables. XLS numeric edits support exact NUMBER/RK/MULRK values in worksheet tab order. PPT text reads resolve the active persist/save history; edits require fixed character slots and reject encrypted or mirrored text. CFB allocation reads and directory writing are hardened.

Safety refusals are intentional: malformed/truncated allocation tables and records no longer return synthesized or partial data; RK values are not rounded silently; ambiguous cell records, unsafe string rebuilds and unrecognized DOC growth dependencies retain the input with an explicit unsupported outcome. CFB writer names whose Unicode uppercase representation expands are rejected rather than producing an invalid directory tree. Complete Unicode name mapping, general stream resizing and complete format fidelity remain unsupported.

Fixture provenance ​

The historical ole-word-97.doc, sample-deck.ppt, picture-fixture.ppt and XLS fixtures were already tracked in public upstream main at 240da4f07cb4aec2c0db39b1dcd043682d8270f5 and are unchanged. Historical DOC/PPT origin remains unverified; this release does not add any third-party binaries. The only new binary is doc/header-field.doc, created from repository-owned neutral synthetic text by the included Word generator with macros disabled. The existing Excel corpus has its own generator. All fixtures and development scripts are excluded from the npm tarball; no new external fixture is redistributed.

Independent native checks ​

Desktop Word, Excel and PowerPoint 16.0 were launched on Christopher-PC. Five final comparisons passed: DOC paragraph replacement; CLX Prc/Prm1 formatting preservation; exact five-byte plain-paragraph replacement while retaining a header and fields; XLS B2 1.25 to 2.75 in the four-sheet features workbook; and PPT unmirrored Product Overview to Product Snapshot in the seven-slide deck. The original numeric no-op and superseded mirrored PPT target are excluded from the passing evidence.

Word assertions cover other captured paragraphs/styles/fonts and document counts, with header/field/footnote assertions for the synthetic feature case. Excel assertions cover all other captured cells, formulas, formatting, sheets, names, merges and shape/comment/link counts. PPT assertions cover other captured shape text, geometry, names/types, notes and dimensions. Inputs were explicit fixtures, opened read-only with macro automation security 3; personal documents and embedded objects were not accessed or activated.

Snapshots do not prove rendering, every character run, image identity or all unsupported records. See test/fixtures/NATIVE-VALIDATION.md, provenance hashes and docs/legacy-coverage.md for exact limits. An independent reviewer approved the container, DOC, XLS, PPT and compatibility changes after the extended FIB, tab-order, allocation-memory and OOXML-mirror issues were fixed.

Release uses the existing matching v0.5.0 tag and GitHub trusted npm workflow; published versions are not replaced. Consumer adapters remain in their own repositories and no cross-repository changes are included.

Released under the Apache-2.0 License.