dexie 4.4.2 → 4.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -247,6 +247,14 @@ Source: [Dexie Cloud To-do app](https://github.com/dexie/Dexie.js/tree/master/sa
247
247
 
248
248
  Live demo: https://dexie.github.io/Dexie.js/dexie-cloud-todo-app/
249
249
 
250
+ ## Legacy Addons (dexie-observable, dexie-syncable)
251
+
252
+ > **⚠️ These packages are legacy and no longer maintained.**
253
+
254
+ If you find references to `dexie-observable` or `dexie-syncable` in tutorials, blog posts, or old code, be aware that these are **deprecated** sync solutions. They are not compatible with Dexie Cloud and should not be used in new projects.
255
+
256
+ **For local-first sync, use [`dexie-cloud-addon`](https://dexie.org/cloud/) instead.** It is the modern, actively maintained solution for offline-first apps with real-time sync.
257
+
250
258
  ## Samples
251
259
 
252
260
  https://dexie.org/docs/Samples
package/dist/dexie.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 4.4.2, Tue Mar 31 2026
7
+ * Version 4.4.4, Tue Jun 16 2026
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -860,7 +860,7 @@ export interface Dexie {
860
860
  transaction<U>(mode: TransactionMode, table: string | Table, table2: string | Table, scope: (trans: TXWithTables<this>) => PromiseLike<U> | U): PromiseExtended<U>;
861
861
  transaction<U>(mode: TransactionMode, table: string | Table, table2: string | Table, table3: string | Table, scope: (trans: TXWithTables<this>) => PromiseLike<U> | U): PromiseExtended<U>;
862
862
  transaction<U>(mode: TransactionMode, table: string | Table, table2: string | Table, table3: string | Table, table4: string | Table, scope: (trans: TXWithTables<this>) => PromiseLike<U> | U): PromiseExtended<U>;
863
- transaction<U>(mode: TransactionMode, table: string | Table, table2: string | Table, table3: string | Table, table5: string | Table, scope: (trans: TXWithTables<this>) => PromiseLike<U> | U): PromiseExtended<U>;
863
+ transaction<U>(mode: TransactionMode, table: string | Table, table2: string | Table, table3: string | Table, table4: string | Table, table5: string | Table, scope: (trans: TXWithTables<this>) => PromiseLike<U> | U): PromiseExtended<U>;
864
864
  close(closeOptions?: {
865
865
  disableAutoOpen: boolean;
866
866
  }): void;
package/dist/dexie.js CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 4.4.2, Tue Mar 31 2026
7
+ * Version 4.4.4, Tue Jun 16 2026
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -190,8 +190,11 @@
190
190
  obj[currentKeyPath] = value;
191
191
  else {
192
192
  var innerObj = obj[currentKeyPath];
193
- if (!innerObj || !hasOwn(obj, currentKeyPath))
193
+ if (!innerObj || !hasOwn(obj, currentKeyPath)) {
194
+ if (value === undefined)
195
+ return;
194
196
  innerObj = obj[currentKeyPath] = {};
197
+ }
195
198
  setByKeyPath(innerObj, remainingKeyPath, value);
196
199
  }
197
200
  }
@@ -1224,7 +1227,7 @@
1224
1227
  }
1225
1228
  }
1226
1229
 
1227
- var DEXIE_VERSION = '4.4.2';
1230
+ var DEXIE_VERSION = '4.4.4';
1228
1231
  var maxString = String.fromCharCode(65535);
1229
1232
  var minKey = -Infinity;
1230
1233
  var INVALID_KEY_ARGUMENT = 'Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.';
@@ -2143,7 +2146,7 @@
2143
2146
  return cmp(aVal, bVal) * order;
2144
2147
  }
2145
2148
  return this.toArray(function (a) {
2146
- return a.sort(sorter);
2149
+ return a.slice().sort(sorter);
2147
2150
  }).then(cb);
2148
2151
  };
2149
2152
  Collection.prototype.toArray = function (cb) {
@@ -5796,9 +5799,6 @@
5796
5799
  }
5797
5800
  Object.freeze(result);
5798
5801
  }
5799
- else {
5800
- res.result = deepClone(result);
5801
- }
5802
5802
  return res;
5803
5803
  })
5804
5804
  .catch(function (error) {
@@ -5835,8 +5835,9 @@
5835
5835
  }
5836
5836
  subscribeToCacheEntry(cacheEntry, container, requery, signal);
5837
5837
  return cacheEntry.promise.then(function (res) {
5838
+ var result = applyOptimisticOps(res.result, req, tblCache === null || tblCache === void 0 ? void 0 : tblCache.optimisticOps, downTable, cacheEntry, freezeResults);
5838
5839
  return {
5839
- result: applyOptimisticOps(res.result, req, tblCache === null || tblCache === void 0 ? void 0 : tblCache.optimisticOps, downTable, cacheEntry, freezeResults),
5840
+ result: freezeResults ? result : deepClone(result),
5840
5841
  };
5841
5842
  });
5842
5843
  } });
@@ -6330,7 +6331,7 @@
6330
6331
  };
6331
6332
  var ret = execute(ctx);
6332
6333
  if (!startedListening) {
6333
- globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);
6334
+ globalEvents.storagemutated.subscribe(mutationListener);
6334
6335
  startedListening = true;
6335
6336
  }
6336
6337
  Promise.resolve(ret).then(function (result) {