odf.js@6.4.0
·
94 commits
to main
since this release
6.4.0 (2026-09-04)
Features
- odf.js: add a real .sxc writer for OpenOffice.org 1.x (d54271b)
- odf.js: add a real .sxi writer for OpenOffice.org 1.x presentations (693d59f)
- odf.js: add the shared draw-shape writer for odp/odg (6094c63)
- odf.js: add writeOdp/writeOdpContent, a real .odp writer (989b210)
- odf.js: add writeOdsContent/writeOds, the genuine inverse of the ods reader (3e45986)
- odf.js: add writeSxw/writeSxwContent, a real .sxw writer (c54f6bd)
- odf.js: reverse the OpenOffice.org 1.x transform into an ODF-to-OOo1 rewrite (f2b2535)
- odf.js: serialise a path's own subpaths into svg:d and svg:viewBox (5b43224)
- odf.js: write .odg packages from the drawing content arm (a078382)
- odf.js: write .ott/.ots/.otp/.otg templates, and their .stw/.stc/.sti/.std counterparts (e50af49)
- odf.js: write .sxd through writeOdg and the OpenOffice.org 1.x transform (b55d43c)
- odf.js: write a shape's paint order as draw:z-index (92608cb)
- odf.js: write ContentVector rect/ellipse/line/path as draw: elements (8b38551)
Bug Fixes
- odf.js: declare the presentation namespace prefix on every written part (b07e712)
- odf.js: decode XML entities in a shape's draw:name (ec6abf2)
- odf.js: expand a drawing shape's rotate() angle out of exponent notation (3b4c78e)
- odf.js: format an ODF length as fixed-point decimal, never exponent notation (dd3e63b)
- odf.js: mint a text-in-a-frame shape's own graphic style unconditionally (05430a8)
- odf.js: refuse a paintOrder beyond Number.isSafeInteger's own bound (a988a61)
- odf.js: rename a drawing style's family between the graphics and graphic spellings (6551c71)
- odf.js: write draw:z-index unconditionally on every drawing shape and vector (5a467b0)
Code Refactoring
- odf.js: export border-formatting and column/row default constants for reuse (fc515db)
- odf.js: keep the draw-shape write seam out of the published surface (ee763d5)
- odf.js: move the metadata and draw-shape canonical forms beside what they describe (8eedaee)
- odf.js: share write-side list-numId planning and canonical-form helpers (d3e4c65)
- odf.js: state a canonicalised shape's and vector's paint order as required (fedc9d3)
Documentation
- odf.js: document .odg write support (71bdddc)
- odf.js: document odp write support and the LibreOffice verification (4984c6a)
- odf.js: document the .sxc writer (6ae314f)
- odf.js: document the .sxd writer and what its LibreOffice verification found (3fc0453)
- odf.js: document the .sxi writer (a8705a2)
- odf.js: document the .sxw writer and fix the now-stale read-only claim (380846d)
- odf.js: document the ods writer's real scope in the README (9152ada)
- odf.js: name all five fields canonicalShape drops, not four of them (29670de)
- odf.js: state that a .sx* writer produces its base media type, never its .st* template (89d4685)
- odf.js: state what the LibreOffice flat-XML check actually establishes (2081e23)
- odf.js: update ooo1 module comments now that a real writer exists (897393b)
Styles
- odf.js: wrap the .sxc barrel export across multiple lines (7b1556b)
Tests
- odf.js: assert the OpenOffice.org 1.x writers' tree-form output is genuinely OOo1x (0a34a3d)
- odf.js: audit the odg and sxi writers' namespace prefixes too (7ceede2)
- odf.js: check the svg:d serializer against the parser it inverts (37572cf)
- odf.js: construct the namespace audit's own fixture colours as Color objects (19b43ad)
- odf.js: cover transformToOoo1Package and the .sxw round-trip law (29808c9)
- odf.js: cover writeOdsContent's XML shapes and its round-trip law (498c9cb)
- odf.js: pin the odg custom-shape draw:name decode against a mutation (42c469b)
- odf.js: pin the odg writer's XML shapes and its round-trip law (b49c46c)
- odf.js: verify the .sxc writer round-trips through the unmodified reader (c60766a)
- odf.js: verify the .sxi writer round-trips through the unmodified reader (c1b568e)
- odf.js: verify writeOdp's XML shapes and its own round-trip law (98232db)
Dependencies
- Updated document-schema.js to ^5.5.1