Skip to content

ppt-codec@1.7.5

Choose a tag to compare

@github-actions github-actions released this 13 Sep 13:00
· 1357 commits to main since this release

1.7.5 (2026-09-13)

Bug Fixes

  • ppt-codec: move writeFbse's cbName byte to its own real position (6702568)
  • ppt-codec: resolve a font family used only inside a table cell (bedf4d3)
  • ppt-codec: supply widthPt/heightPt on the picture-inset test's image block (558cb46)

Code Refactoring

  • ppt-codec: build asciiBytes via Uint8Array.from instead of a bounds-checked loop (ec4c823)
  • ppt-codec: capture buildPersistDirectory's current edit directly, not via edits[0] (79d4386)
  • ppt-codec: clamp the master-style level take-count on indentLevel, not levels.length (797bc41)
  • ppt-codec: drop blipForPib's redundant non-positive-pib guard (7295a1d)
  • ppt-codec: drop bytesToBase64's redundant length-gated fallbacks (b2cac9d)
  • ppt-codec: drop orderedMasterLevels' redundant empty check (b509f7a)
  • ppt-codec: drop table row sort and heightPt fallback that no consumer can observe (b88f6f7)
  • ppt-codec: drop the redundant explicit recInstance in writeSlideListWithText (f3a9369)
  • ppt-codec: drop the redundant lenUserName guard on the Unicode username read (7605f49)
  • ppt-codec: drop three cross-checked invariants in shapes-write (a11ae49)
  • ppt-codec: export the master's own colour scheme for direct byte comparison (07deb2c)
  • ppt-codec: let readFontNames accept a possibly-absent Environment record (b5d9ed9)
  • ppt-codec: move drop-message location prefixing off the context (5901a79)
  • ppt-codec: pair each master placeholder with its own frame (6880dfc)
  • ppt-codec: pair each paragraph with its own body text in buildTextBody (b616774)
  • ppt-codec: read colour-scheme slot bytes via DataView, not indexed access (49f00df)
  • ppt-codec: remove three no-op zero-fills from compoundFile (6cbc0e3)

Tests

  • ppt-codec: add a base64 test suite covering every padding remainder (a5fa126)
  • ppt-codec: add coverage for readExternalOleEmbeds and the OLE embed writer (076f346)
  • ppt-codec: add direct byte-level coverage for compoundFile (187c414)
  • ppt-codec: add direct unit tests for the byte-primitive writers (8c25d03)
  • ppt-codec: add master-write.ts test coverage for placeholder geometry (ff96b91)
  • ppt-codec: add readDocumentAtom and readFontNames test coverage (3d0cb92)
  • ppt-codec: add readSlideListWithText, readTextHeaderAtom, and writeEnvironment coverage (e8aba81)
  • ppt-codec: add writeNotesAtom/writeNotesContainer test coverage (f2fd4e6)
  • ppt-codec: add writeSlideDrawing test coverage for insets, rotation, pib and patriarch framing (c721edb)
  • ppt-codec: assert exact remaining-byte counts in readRecordHeader errors (9277b4b)
  • ppt-codec: cover each error class's own name and inherited Error shape (3f68659)
  • ppt-codec: cover every readDocumentEncryptionAtom/decryptPptDocumentStream rejection path (99d1567)
  • ppt-codec: cover IMsoArray under-supply and fBid's raw bit (6b900a4)
  • ppt-codec: cover mapAlignment's left/right cases and the lineSpacing-0 boundary (ef82007)
  • ppt-codec: cover readDrawingShapes' rejection paths and rotation boundary (91d6e1a)
  • ppt-codec: cover readPptStreams' malformed-input rejection paths (f81dba2)
  • ppt-codec: cover readTextPFException/readTextCFException's unprojected skip fields (f419cfa)
  • ppt-codec: cover shapes.ts' own record-type and identity guards (6976f3c)
  • ppt-codec: cover writeDocumentAtom's recVer stamp and mirrored notes size (8ddff43)
  • ppt-codec: cover writeTableGroup's row-height distribution and span diagnostics (1ad027d)
  • ppt-codec: exercise cRefIsZero's four bytes through the delay-stream path (4dac428)
  • ppt-codec: extend the synthetic presentation fixture with malformed-input options (c95ccda)
  • ppt-codec: pin buildParagraphs' cross-paragraph run slicing (3c37839)
  • ppt-codec: pin CF_POSITION's skip and the explicit-level boundary (9082948)
  • ppt-codec: pin DocumentEncryptionAtom's own length boundaries (cf23692)
  • ppt-codec: pin every default value and empty-branch fallback the fixture states (3bbb855)
  • ppt-codec: pin persist directory error messages and offsets (b294e7c)
  • ppt-codec: pin PptUnsupportedContentError messages for malformed dates (82c0cb0)
  • ppt-codec: pin readNotesAtom/readNotesContainerAtom error messages (f96cf00)
  • ppt-codec: pin readNotesListWithText's error messages and sibling-skip (d15ab2d)
  • ppt-codec: pin readRecordAt/readRecordSequence error message text (767fd96)
  • ppt-codec: pin readShapeProperties/readIMsoArray error text and byte order (7f24e3b)
  • ppt-codec: pin syntheticPresentation's own byte-level fidelity (2ccf566)
  • ppt-codec: pin the absence of rotationDeg, not just its presence (c9bf6ad)
  • ppt-codec: pin the exact masterIdRef a mismatched slide rejects on (ecf0497)
  • ppt-codec: prove an empty notes body contributes no separator (6a798de)
  • ppt-codec: prove OLE embed lookups filter by record identity (fb99668)
  • ppt-codec: prove readFontNames skips by record type, not length (34078e9)
  • ppt-codec: round-trip explicit-false character flags and scheme colour (7751b54)

Miscellaneous Chores

  • ppt-codec: raise the mutation break threshold to 100 (889fb9d)

Dependencies

  • Updated archive-codec to 1.11.3