Skip to content

v2.2.1

Latest

Choose a tag to compare

@th3nu11 th3nu11 released this 08 May 15:25
· 0 commits to master since this release

Bug fixes

Fix KDBX 4.1 LastModificationTime encoding (binary save)

XmlUtils.setDate() was called without the binary=true flag in two places,
causing LastModificationTime fields to be written as ISO-8601 strings instead
of the 8-byte little-endian Base64 binary that KDBX 4+ requires.

KeePass and KeePassXC reject such files with "Invalid Base-64 string", silently
corrupting the database on save. kdbxweb itself reads both formats, so a plain
save/reload roundtrip did not surface the issue.

Affected fields:

  • CustomData items (KdbxCustomData.write) — closes keeweb#49
  • CustomIcons items (KdbxMeta.writeCustomIcons)

Both fixes are covered by new unit + integration tests (AAA pattern).

Maintenance

  • mocha upgraded 9 → 11 (resolves CVEs in nanoid / serialize-javascript in the test environment)
  • TypeScript pinned at ~5.7 (5.9 introduces breaking Uint8Array<ArrayBufferLike> changes across the whole codebase — deferred to a dedicated refactor)
  • All other in-range devDependencies updated

Relation to upstream

This fork is based on keeweb/kdbxweb master.
A PR with the core fix has been opened upstream: keeweb#50.