This is a maintenance release with bug fixes and a configuration API improvement.
Related Package Releases
| Package | Version |
|---|---|
| dexie | 4.4.3 |
| dexie-cloud-addon | 4.4.13 |
Bug Fixes
dexie@4.4.3
-
fix:
delByKeyPath()creates empty intermediate objects on missing path —Dexie.delByKeyPath(obj, "foo.bar")on an object withoutfoowould create{foo: {}}as a side effect instead of doing nothing. This caused a real-world bug in dexie-cloud-addon where clearing a dotted key from a changeSpec (e.g.claims.sub) would leave{claims: {}}in the spec, which then overwrote the inline primary key withundefined, resulting in:DataError: Evaluating the object store's key path did not yield a value. Fixed insetByKeyPathto bail out early when value isundefinedand the intermediate path doesn't exist. (#2303) -
fix: Collection.sortBy() mutates frozen array in immutable cache mode — calling
.sortBy()on a table when using immutable cache mode could throwTypeError: Cannot assign to read only propertybecauseArray.sort()was called on a frozen array. Fixed by sorting on a copy instead. (#2294)
dexie-cloud-addon@4.4.12
-
rename:
maxStringLength→largeStringThreshold— the string offloading option is renamed for clarity. The old name is kept as a backward-compatible alias. (#2290) -
fix: blob writebacks routed through BlobSavingQueue to avoid PSD context loss — after an async native
fetch(blob download), Dexie's PSD zone is no longer active, causingtable.mutate()to crash withCannot read properties of undefined (reading 'table'). This surfaced as[dexie-cloud:blobResolve] Failed to resolve BlobRefs. Fixed by always routing blob writebacks throughBlobSavingQueue.saveBlobs(), which opens a proper Dexie rw-transaction in a fresh JS task. Fixes lazy blob mode crash when using Dexie hooks with dexie-cloud-addon. (#2302) -
fix: eager blob downloader could starve RAM — the eager downloader triggered
blobResolveMiddlewarewhich resolved all pending blobs into memory at once. Fixed by downloading blobs in chunks with a query limit, so memory usage stays bounded regardless of how many blobs are pending. (#2302) -
fix: in-flight blob downloads are now deduplicated — if a blob is requested after download starts but before it is persisted, the existing download promise is reused instead of starting a new download. (#2302)
-
fix: use
cache: no-storefor blob fetch requests — avoids the browser caching raw blob responses and double-storing them. (#2302)
dexie-cloud-addon@4.4.13
- fix: DataError when applying server-side
$loginsupdate — when a user received a server update for the$loginstable, dexie-cloud-addon tried to clearclaims.subfrom the changeSpec usingdelByKeyPath. Due to the bug above, this left{claims: {}}in the spec, overwriting the inline primary key withundefinedand causingDataError: Evaluating the object store's key path did not yield a value. Fixed by guarding against empty changeSpec objects after key deletion. (#2304)
Other Changes
dexie-observableanddexie-syncableREADME updated to mark them as legacy/unmaintained, with a recommendation to usedexie-cloud-addonfor sync. (#2298)