dexie 4.0.1-beta.4 → 4.0.1-beta.6

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
@@ -250,6 +250,9 @@ Watch
250
250
  pnpm run watch
251
251
  ```
252
252
 
253
+ <br/>
254
+
255
+ [![Browser testing via LAMDBATEST](https://dexie.org/assets/images/lambdatest2.png)](https://www.lambdatest.com/)
253
256
 
254
257
  [npm-image]: https://img.shields.io/npm/v/dexie.svg?style=flat
255
258
  [npm-url]: https://npmjs.org/package/dexie
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.0.1-beta.4, Sat Dec 02 2023
7
+ * Version 4.0.1-beta.6, Mon Dec 18 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
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.0.1-beta.4, Sat Dec 02 2023
7
+ * Version 4.0.1-beta.6, Mon Dec 18 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -1083,7 +1083,7 @@
1083
1083
  psd.ref = 0;
1084
1084
  psd.global = false;
1085
1085
  psd.id = ++zone_id_counter;
1086
- var globalEnv = globalPSD.env;
1086
+ globalPSD.env;
1087
1087
  psd.env = patchGlobalPromise ? {
1088
1088
  Promise: DexiePromise,
1089
1089
  PromiseProp: { value: DexiePromise, configurable: true, writable: true },
@@ -1093,8 +1093,6 @@
1093
1093
  any: DexiePromise.any,
1094
1094
  resolve: DexiePromise.resolve,
1095
1095
  reject: DexiePromise.reject,
1096
- nthen: getPatchedPromiseThen(globalEnv.nthen, psd),
1097
- gthen: getPatchedPromiseThen(globalEnv.gthen, psd)
1098
1096
  } : {};
1099
1097
  if (props)
1100
1098
  extend(psd, props);
@@ -1141,7 +1139,7 @@
1141
1139
  function zoneEnterEcho(targetZone) {
1142
1140
  ++totalEchoes;
1143
1141
  if (!task.echoes || --task.echoes === 0) {
1144
- task.echoes = task.id = 0;
1142
+ task.echoes = task.awaits = task.id = 0;
1145
1143
  }
1146
1144
  zoneStack.push(PSD);
1147
1145
  switchToZone(targetZone, true);
@@ -1162,20 +1160,18 @@
1162
1160
  if (currentZone === globalPSD)
1163
1161
  globalPSD.env = snapShot();
1164
1162
  if (patchGlobalPromise) {
1165
- var GlobalPromise_1 = globalPSD.env.Promise;
1163
+ var GlobalPromise = globalPSD.env.Promise;
1166
1164
  var targetEnv = targetZone.env;
1167
- nativePromiseProto.then = targetEnv.nthen;
1168
- GlobalPromise_1.prototype.then = targetEnv.gthen;
1169
1165
  if (currentZone.global || targetZone.global) {
1170
1166
  Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);
1171
- GlobalPromise_1.all = targetEnv.all;
1172
- GlobalPromise_1.race = targetEnv.race;
1173
- GlobalPromise_1.resolve = targetEnv.resolve;
1174
- GlobalPromise_1.reject = targetEnv.reject;
1167
+ GlobalPromise.all = targetEnv.all;
1168
+ GlobalPromise.race = targetEnv.race;
1169
+ GlobalPromise.resolve = targetEnv.resolve;
1170
+ GlobalPromise.reject = targetEnv.reject;
1175
1171
  if (targetEnv.allSettled)
1176
- GlobalPromise_1.allSettled = targetEnv.allSettled;
1172
+ GlobalPromise.allSettled = targetEnv.allSettled;
1177
1173
  if (targetEnv.any)
1178
- GlobalPromise_1.any = targetEnv.any;
1174
+ GlobalPromise.any = targetEnv.any;
1179
1175
  }
1180
1176
  }
1181
1177
  }
@@ -1190,8 +1186,6 @@
1190
1186
  any: GlobalPromise.any,
1191
1187
  resolve: GlobalPromise.resolve,
1192
1188
  reject: GlobalPromise.reject,
1193
- nthen: nativePromiseProto.then,
1194
- gthen: GlobalPromise.prototype.then
1195
1189
  } : {};
1196
1190
  }
1197
1191
  function usePSD(psd, fn, a1, a2, a3) {
@@ -1220,10 +1214,18 @@
1220
1214
  }
1221
1215
  };
1222
1216
  }
1223
- function getPatchedPromiseThen(origThen, zone) {
1224
- return function (onResolved, onRejected) {
1225
- return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));
1226
- };
1217
+ function execInGlobalContext(cb) {
1218
+ if (Promise === NativePromise && task.echoes === 0) {
1219
+ if (zoneEchoes === 0) {
1220
+ cb();
1221
+ }
1222
+ else {
1223
+ enqueueNativeMicroTask(cb);
1224
+ }
1225
+ }
1226
+ else {
1227
+ setTimeout(cb, 0);
1228
+ }
1227
1229
  }
1228
1230
  var rejection = DexiePromise.reject;
1229
1231
 
@@ -1269,7 +1271,7 @@
1269
1271
  }
1270
1272
  }
1271
1273
 
1272
- var DEXIE_VERSION = '4.0.1-beta.4';
1274
+ var DEXIE_VERSION = '4.0.1-beta.6';
1273
1275
  var maxString = String.fromCharCode(65535);
1274
1276
  var minKey = -Infinity;
1275
1277
  var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
@@ -5538,15 +5540,7 @@
5538
5540
  if (scopeFuncIsAsync) {
5539
5541
  rv = rv.finally(decrementExpectedAwaits);
5540
5542
  }
5541
- return Promise.resolve(rv).finally(function () {
5542
- if (PSD.subscr === ctx.subscr) {
5543
- console.warn("Dexie liveQuery()'s querier callback did'nt await all of its spawned promises. Querier source: ".concat(querier));
5544
- return new NativePromise(function (resolve) { return setTimeout(resolve, 0); });
5545
- }
5546
- else if (Promise.PSD) {
5547
- return new NativePromise(function (resolve) { return setTimeout(resolve, 0); });
5548
- }
5549
- });
5543
+ return rv;
5550
5544
  }
5551
5545
  finally {
5552
5546
  wasRootExec && endMicroTickScope();
@@ -5572,6 +5566,7 @@
5572
5566
  };
5573
5567
  observer.start && observer.start(subscription);
5574
5568
  var startedListening = false;
5569
+ var doQuery = function () { return execInGlobalContext(_doQuery); };
5575
5570
  function shouldNotify() {
5576
5571
  return obsSetsOverlap(currentObs, accumMuts);
5577
5572
  }
@@ -5612,23 +5607,20 @@
5612
5607
  globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);
5613
5608
  startedListening = true;
5614
5609
  }
5615
- observer.next && observer.next(result);
5610
+ execInGlobalContext(function () { return !closed && observer.next && observer.next(result); });
5616
5611
  }, function (err) {
5617
5612
  hasValue = false;
5618
5613
  if (!['DatabaseClosedError', 'AbortError'].includes(err === null || err === void 0 ? void 0 : err.name)) {
5619
- if (closed)
5620
- return;
5621
- observer.error && observer.error(err);
5614
+ if (!closed)
5615
+ execInGlobalContext(function () {
5616
+ if (closed)
5617
+ return;
5618
+ observer.error && observer.error(err);
5619
+ });
5622
5620
  }
5623
5621
  });
5624
5622
  };
5625
- var doQuery = function () {
5626
- if (PSD.global && !Promise.PSD)
5627
- _doQuery();
5628
- else
5629
- setTimeout(_doQuery, 0);
5630
- };
5631
- doQuery();
5623
+ setTimeout(doQuery, 0);
5632
5624
  return subscription;
5633
5625
  });
5634
5626
  observable.hasValue = function () { return hasValue; };