Repository navigation
Releases
@christophervr/ole2 0.14.0
What's Changed
- Expand bounded legacy Office edits and read compatibility by @ChristopherVR in #1
New Contributors
- @ChristopherVR made their first contribution in #1
Full Changelog: v0.13.0...v0.14.0
@christophervr/ole2 0.13.0
Full Changelog: v0.12.0...v0.13.0
@christophervr/ole2 0.12.0
Full Changelog: v0.11.0...v0.12.0
@christophervr/ole2 0.11.0
DOC character-run handles now edit existing exclusive direct underline operands through directUnderline = 'none' | 'single' | 'double'. Inherited, missing, opaque, shared and stale operands refuse atomically; no formatting records are inserted. Three native Word cases pass save/reopen with only selected underline changing, and restoration is byte-exact.
Existing BIFF8 boolean/error cells now accept finite numbers or plain strings through cell.value, retaining selected XF, unrelated records, SST aliases and saved formula caches. Six native Excel cases pass explicit normal open and save/reopen, including CJK text and a supplementary Unicode character. Missing cells, formulas, clearing, malformed records and unsafe relocation refuse. Excel RepairMode was unavailable; the library does not recalculate formulas.
Validation: 659 tests across 66 files, typecheck, build, documentation and independent packed runtime/strict TypeScript consumers pass. Independent review binds all 71 compiled modules and reproduces the nine new native-tested artifacts byte-for-byte. The retained 20-case VSD text matrix, 33 atomic refusals and native PPT goldens remain unchanged.
The 0.10.1 VSD exact-decoded-length compression and PPT ownership safeguards remain in place. This release adds no native VSD transform admission, general drawing renderer, master/group/style evaluation or full legacy parity. New setters extend preservation of existing supported records. A broader owned native fixture confirmed that current VSD shape enumeration follows physical record order rather than native drawing order, with group children retained as local flattened entries; a separate reader correction is in progress.
Source: cec0e99fc18a942305e2ed30690349633384f43e.
Scope and release notes | Native evidence and reproduction.
@christophervr/ole2 0.10.1
Upgrade to 0.10.1 before writing binary VSD files. The released 0.10.0 compressed text writer could return a file that Visio rejects, even for a same-length edit. An owned native Hello\n\n → Jello\n\n case reproduced the failure. The previously accepted World case did not establish safety for other text patterns.
npm install @christophervr/ole2@0.10.1This release fits compressed edits while preserving both the original encoded allocation and exact decoded block length, without adding decoded padding. Bounded token variations find an exact fit or reject the edit atomically, retaining bytes, model state and revision. Five production text cases passed native Visio open, save and reopen; only captured target text changed. No-op and repeated-edit artifacts are checked byte-for-byte.
It also refuses PPT slide/outline text edits whose owning container overlaps another live persist object or save-history metadata, and captures caller selection fields once. Legitimate native-verified title output remains byte-identical.
Validation: 635 tests, typecheck, build, packed-consumer and documentation checks passed, with independent source and native-artifact review. Native evidence covers declared semantic fields; rendering, complete legacy parity, nonempty masters/layers and general ShapeSheet evaluation remain unverified. Native VSD translation remains unsupported and is excluded from this release.
Source: 92a2750c9031dd97448b00dae7fd9a2807be6570.
Native evidence and reproduction · Visio safety history.
Expanded validation on the same released source passed 20 additional native Visio text cases covering varied ASCII, Japanese/Greek/Cyrillic, combining marks, emoji, seeded random text, repeated edits and restoration. Five representative cases also passed native save/reopen; 33 invalid edits were refused atomically, and two files serialized after refusals reopened unchanged. All 27 owned native processes closed. These checks compare captured semantics on two owned flat fixtures; they add no rendering or translation fidelity claim.
@christophervr/ole2 0.10.0
Full Changelog: v0.9.1...v0.10.0
@christophervr/ole2 0.9.1
Full Changelog: v0.9.0...v0.9.1
@christophervr/ole2 0.9.0
Full Changelog: v0.8.0...v0.9.0
@christophervr/ole2 0.8.0
Full Changelog: v0.7.0...v0.8.0
@christophervr/ole2 0.7.0
Full Changelog: v0.6.0...v0.7.0