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:
CustomDataitems (KdbxCustomData.write) — closes keeweb#49CustomIconsitems (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.