dexie 4.0.1-alpha.21 → 4.0.1-alpha.23

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/dist/dexie.mjs CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 4.0.1-alpha.21+test1, Wed Jun 14 2023
7
+ * Version 4.0.1-alpha.23, Tue Jul 04 2023
8
8
  *
9
9
  * https://dexie.org
10
10
  *
@@ -1278,7 +1278,7 @@ function tempTransaction(db, mode, storeNames, fn) {
1278
1278
  }
1279
1279
  }
1280
1280
 
1281
- var DEXIE_VERSION = '4.0.1-alpha.21+test1';
1281
+ var DEXIE_VERSION = '4.0.1-alpha.23';
1282
1282
  var maxString = String.fromCharCode(65535);
1283
1283
  var minKey = -Infinity;
1284
1284
  var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
@@ -3781,6 +3781,237 @@ function idbReady() {
3781
3781
  }).finally(function () { return clearInterval(intervalId); });
3782
3782
  }
3783
3783
 
3784
+ var _a;
3785
+ function isEmptyRange(node) {
3786
+ return !("from" in node);
3787
+ }
3788
+ var RangeSet = function (fromOrTree, to) {
3789
+ if (this) {
3790
+ extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });
3791
+ }
3792
+ else {
3793
+ var rv = new RangeSet();
3794
+ if (fromOrTree && ("d" in fromOrTree)) {
3795
+ extend(rv, fromOrTree);
3796
+ }
3797
+ return rv;
3798
+ }
3799
+ };
3800
+ props(RangeSet.prototype, (_a = {
3801
+ add: function (rangeSet) {
3802
+ mergeRanges(this, rangeSet);
3803
+ return this;
3804
+ },
3805
+ addKey: function (key) {
3806
+ addRange(this, key, key);
3807
+ return this;
3808
+ },
3809
+ addKeys: function (keys) {
3810
+ var _this = this;
3811
+ keys.forEach(function (key) { return addRange(_this, key, key); });
3812
+ return this;
3813
+ }
3814
+ },
3815
+ _a[iteratorSymbol] = function () {
3816
+ return getRangeSetIterator(this);
3817
+ },
3818
+ _a));
3819
+ function addRange(target, from, to) {
3820
+ var diff = cmp(from, to);
3821
+ if (isNaN(diff))
3822
+ return;
3823
+ if (diff > 0)
3824
+ throw RangeError();
3825
+ if (isEmptyRange(target))
3826
+ return extend(target, { from: from, to: to, d: 1 });
3827
+ var left = target.l;
3828
+ var right = target.r;
3829
+ if (cmp(to, target.from) < 0) {
3830
+ left
3831
+ ? addRange(left, from, to)
3832
+ : (target.l = { from: from, to: to, d: 1, l: null, r: null });
3833
+ return rebalance(target);
3834
+ }
3835
+ if (cmp(from, target.to) > 0) {
3836
+ right
3837
+ ? addRange(right, from, to)
3838
+ : (target.r = { from: from, to: to, d: 1, l: null, r: null });
3839
+ return rebalance(target);
3840
+ }
3841
+ if (cmp(from, target.from) < 0) {
3842
+ target.from = from;
3843
+ target.l = null;
3844
+ target.d = right ? right.d + 1 : 1;
3845
+ }
3846
+ if (cmp(to, target.to) > 0) {
3847
+ target.to = to;
3848
+ target.r = null;
3849
+ target.d = target.l ? target.l.d + 1 : 1;
3850
+ }
3851
+ var rightWasCutOff = !target.r;
3852
+ if (left && !target.l) {
3853
+ mergeRanges(target, left);
3854
+ }
3855
+ if (right && rightWasCutOff) {
3856
+ mergeRanges(target, right);
3857
+ }
3858
+ }
3859
+ function mergeRanges(target, newSet) {
3860
+ function _addRangeSet(target, _a) {
3861
+ var from = _a.from, to = _a.to, l = _a.l, r = _a.r;
3862
+ addRange(target, from, to);
3863
+ if (l)
3864
+ _addRangeSet(target, l);
3865
+ if (r)
3866
+ _addRangeSet(target, r);
3867
+ }
3868
+ if (!isEmptyRange(newSet))
3869
+ _addRangeSet(target, newSet);
3870
+ }
3871
+ function rangesOverlap(rangeSet1, rangeSet2) {
3872
+ var i1 = getRangeSetIterator(rangeSet2);
3873
+ var nextResult1 = i1.next();
3874
+ if (nextResult1.done)
3875
+ return false;
3876
+ var a = nextResult1.value;
3877
+ var i2 = getRangeSetIterator(rangeSet1);
3878
+ var nextResult2 = i2.next(a.from);
3879
+ var b = nextResult2.value;
3880
+ while (!nextResult1.done && !nextResult2.done) {
3881
+ if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)
3882
+ return true;
3883
+ cmp(a.from, b.from) < 0
3884
+ ? (a = (nextResult1 = i1.next(b.from)).value)
3885
+ : (b = (nextResult2 = i2.next(a.from)).value);
3886
+ }
3887
+ return false;
3888
+ }
3889
+ function getRangeSetIterator(node) {
3890
+ var state = isEmptyRange(node) ? null : { s: 0, n: node };
3891
+ return {
3892
+ next: function (key) {
3893
+ var keyProvided = arguments.length > 0;
3894
+ while (state) {
3895
+ switch (state.s) {
3896
+ case 0:
3897
+ state.s = 1;
3898
+ if (keyProvided) {
3899
+ while (state.n.l && cmp(key, state.n.from) < 0)
3900
+ state = { up: state, n: state.n.l, s: 1 };
3901
+ }
3902
+ else {
3903
+ while (state.n.l)
3904
+ state = { up: state, n: state.n.l, s: 1 };
3905
+ }
3906
+ case 1:
3907
+ state.s = 2;
3908
+ if (!keyProvided || cmp(key, state.n.to) <= 0)
3909
+ return { value: state.n, done: false };
3910
+ case 2:
3911
+ if (state.n.r) {
3912
+ state.s = 3;
3913
+ state = { up: state, n: state.n.r, s: 0 };
3914
+ continue;
3915
+ }
3916
+ case 3:
3917
+ state = state.up;
3918
+ }
3919
+ }
3920
+ return { done: true };
3921
+ },
3922
+ };
3923
+ }
3924
+ function rebalance(target) {
3925
+ var _a, _b;
3926
+ var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);
3927
+ var r = diff > 1 ? "r" : diff < -1 ? "l" : "";
3928
+ if (r) {
3929
+ var l = r === "r" ? "l" : "r";
3930
+ var rootClone = __assign({}, target);
3931
+ var oldRootRight = target[r];
3932
+ target.from = oldRootRight.from;
3933
+ target.to = oldRootRight.to;
3934
+ target[r] = oldRootRight[r];
3935
+ rootClone[r] = oldRootRight[l];
3936
+ target[l] = rootClone;
3937
+ rootClone.d = computeDepth(rootClone);
3938
+ }
3939
+ target.d = computeDepth(target);
3940
+ }
3941
+ function computeDepth(_a) {
3942
+ var r = _a.r, l = _a.l;
3943
+ return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;
3944
+ }
3945
+
3946
+ function extendObservabilitySet(target, newSet) {
3947
+ keys(newSet).forEach(function (part) {
3948
+ if (target[part])
3949
+ mergeRanges(target[part], newSet[part]);
3950
+ else
3951
+ target[part] = cloneSimpleObjectTree(newSet[part]);
3952
+ });
3953
+ return target;
3954
+ }
3955
+
3956
+ function obsSetsOverlap(os1, os2) {
3957
+ return Object.keys(os1).some(function (key) { return os2[key] && rangesOverlap(os2[key], os1[key]); });
3958
+ }
3959
+
3960
+ var cache = {};
3961
+
3962
+ var unsignaledParts = {};
3963
+ var isTaskEnqueued = false;
3964
+ function signalSubscribersLazily(part) {
3965
+ extendObservabilitySet(unsignaledParts, part);
3966
+ if (!isTaskEnqueued) {
3967
+ isTaskEnqueued = true;
3968
+ queueMicrotask(function () {
3969
+ isTaskEnqueued = false;
3970
+ var parts = unsignaledParts;
3971
+ unsignaledParts = {};
3972
+ signalSubscribersNow(parts);
3973
+ });
3974
+ }
3975
+ }
3976
+ function signalSubscribersNow(updatedParts, deleteAffectedCacheEntries) {
3977
+ if (deleteAffectedCacheEntries === void 0) { deleteAffectedCacheEntries = false; }
3978
+ var queriesToSignal = new Set();
3979
+ for (var key in updatedParts) {
3980
+ var parts = /^idb\:\/\/(.*)\/(.*)\//.exec(key);
3981
+ if (parts) {
3982
+ var dbName = parts[1], tableName = parts[2];
3983
+ var tblCache = cache["idb://".concat(dbName, "/").concat(tableName)];
3984
+ if (tblCache)
3985
+ signalTableSubscribersNow(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);
3986
+ }
3987
+ }
3988
+ queriesToSignal.forEach(function (requery) { return requery(); });
3989
+ }
3990
+ function signalTableSubscribersNow(tblCache, updatedParts, outQueriesToSignal, deleteAffectedCacheEntries) {
3991
+ var updatedEntryLists = deleteAffectedCacheEntries && [];
3992
+ for (var _i = 0, _a = Object.entries(tblCache.queries.query); _i < _a.length; _i++) {
3993
+ var _b = _a[_i], indexName = _b[0], entries = _b[1];
3994
+ var filteredEntries = deleteAffectedCacheEntries && [];
3995
+ for (var _c = 0, entries_1 = entries; _c < entries_1.length; _c++) {
3996
+ var entry = entries_1[_c];
3997
+ if (entry.obsSet && obsSetsOverlap(updatedParts, entry.obsSet)) {
3998
+ entry.subscribers.forEach(function (requery) { return outQueriesToSignal.add(requery); });
3999
+ }
4000
+ else if (deleteAffectedCacheEntries) {
4001
+ filteredEntries.push(entry);
4002
+ }
4003
+ }
4004
+ if (deleteAffectedCacheEntries)
4005
+ updatedEntryLists.push([indexName, filteredEntries]);
4006
+ }
4007
+ if (deleteAffectedCacheEntries) {
4008
+ for (var _d = 0, updatedEntryLists_1 = updatedEntryLists; _d < updatedEntryLists_1.length; _d++) {
4009
+ var _e = updatedEntryLists_1[_d], indexName = _e[0], filteredEntries = _e[1];
4010
+ tblCache.queries.query[indexName] = filteredEntries;
4011
+ }
4012
+ }
4013
+ }
4014
+
3784
4015
  function dexieOpen(db) {
3785
4016
  var state = db._state;
3786
4017
  var indexedDB = db._deps.indexedDB;
@@ -3872,10 +4103,10 @@ function dexieOpen(db) {
3872
4103
  }
3873
4104
  });
3874
4105
  }).finally(function () {
3875
- state.onReadyBeingFired = null;
3876
- state.isBeingOpened = false;
3877
- }).then(function () {
3878
- return db;
4106
+ if (state.openCanceller === openCanceller) {
4107
+ state.onReadyBeingFired = null;
4108
+ state.isBeingOpened = false;
4109
+ }
3879
4110
  }).catch(function (err) {
3880
4111
  state.dbOpenError = err;
3881
4112
  try {
@@ -3889,6 +4120,20 @@ function dexieOpen(db) {
3889
4120
  }).finally(function () {
3890
4121
  state.openComplete = true;
3891
4122
  resolveDbReady();
4123
+ }).then(function () {
4124
+ if (wasCreated) {
4125
+ var everything_1 = {};
4126
+ db.tables.forEach(function (table) {
4127
+ table.schema.indexes.forEach(function (idx) {
4128
+ if (idx.name)
4129
+ everything_1["idb://".concat(db.name, "/").concat(table.name, "/").concat(idx.name)] = new RangeSet(-Infinity, [[[]]]);
4130
+ });
4131
+ everything_1["idb://".concat(db.name, "/").concat(table.name, "/")] = everything_1["idb://".concat(db.name, "/").concat(table.name, "/:dels")] = new RangeSet(-Infinity, [[[]]]);
4132
+ });
4133
+ globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME).fire(everything_1);
4134
+ signalSubscribersNow(everything_1, true);
4135
+ }
4136
+ return db;
3892
4137
  });
3893
4138
  }
3894
4139
 
@@ -4311,168 +4556,6 @@ var cacheExistingValuesMiddleware = {
4311
4556
  },
4312
4557
  };
4313
4558
 
4314
- var _a;
4315
- function isEmptyRange(node) {
4316
- return !("from" in node);
4317
- }
4318
- var RangeSet = function (fromOrTree, to) {
4319
- if (this) {
4320
- extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });
4321
- }
4322
- else {
4323
- var rv = new RangeSet();
4324
- if (fromOrTree && ("d" in fromOrTree)) {
4325
- extend(rv, fromOrTree);
4326
- }
4327
- return rv;
4328
- }
4329
- };
4330
- props(RangeSet.prototype, (_a = {
4331
- add: function (rangeSet) {
4332
- mergeRanges(this, rangeSet);
4333
- return this;
4334
- },
4335
- addKey: function (key) {
4336
- addRange(this, key, key);
4337
- return this;
4338
- },
4339
- addKeys: function (keys) {
4340
- var _this = this;
4341
- keys.forEach(function (key) { return addRange(_this, key, key); });
4342
- return this;
4343
- }
4344
- },
4345
- _a[iteratorSymbol] = function () {
4346
- return getRangeSetIterator(this);
4347
- },
4348
- _a));
4349
- function addRange(target, from, to) {
4350
- var diff = cmp(from, to);
4351
- if (isNaN(diff))
4352
- return;
4353
- if (diff > 0)
4354
- throw RangeError();
4355
- if (isEmptyRange(target))
4356
- return extend(target, { from: from, to: to, d: 1 });
4357
- var left = target.l;
4358
- var right = target.r;
4359
- if (cmp(to, target.from) < 0) {
4360
- left
4361
- ? addRange(left, from, to)
4362
- : (target.l = { from: from, to: to, d: 1, l: null, r: null });
4363
- return rebalance(target);
4364
- }
4365
- if (cmp(from, target.to) > 0) {
4366
- right
4367
- ? addRange(right, from, to)
4368
- : (target.r = { from: from, to: to, d: 1, l: null, r: null });
4369
- return rebalance(target);
4370
- }
4371
- if (cmp(from, target.from) < 0) {
4372
- target.from = from;
4373
- target.l = null;
4374
- target.d = right ? right.d + 1 : 1;
4375
- }
4376
- if (cmp(to, target.to) > 0) {
4377
- target.to = to;
4378
- target.r = null;
4379
- target.d = target.l ? target.l.d + 1 : 1;
4380
- }
4381
- var rightWasCutOff = !target.r;
4382
- if (left && !target.l) {
4383
- mergeRanges(target, left);
4384
- }
4385
- if (right && rightWasCutOff) {
4386
- mergeRanges(target, right);
4387
- }
4388
- }
4389
- function mergeRanges(target, newSet) {
4390
- function _addRangeSet(target, _a) {
4391
- var from = _a.from, to = _a.to, l = _a.l, r = _a.r;
4392
- addRange(target, from, to);
4393
- if (l)
4394
- _addRangeSet(target, l);
4395
- if (r)
4396
- _addRangeSet(target, r);
4397
- }
4398
- if (!isEmptyRange(newSet))
4399
- _addRangeSet(target, newSet);
4400
- }
4401
- function rangesOverlap(rangeSet1, rangeSet2) {
4402
- var i1 = getRangeSetIterator(rangeSet2);
4403
- var nextResult1 = i1.next();
4404
- if (nextResult1.done)
4405
- return false;
4406
- var a = nextResult1.value;
4407
- var i2 = getRangeSetIterator(rangeSet1);
4408
- var nextResult2 = i2.next(a.from);
4409
- var b = nextResult2.value;
4410
- while (!nextResult1.done && !nextResult2.done) {
4411
- if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)
4412
- return true;
4413
- cmp(a.from, b.from) < 0
4414
- ? (a = (nextResult1 = i1.next(b.from)).value)
4415
- : (b = (nextResult2 = i2.next(a.from)).value);
4416
- }
4417
- return false;
4418
- }
4419
- function getRangeSetIterator(node) {
4420
- var state = isEmptyRange(node) ? null : { s: 0, n: node };
4421
- return {
4422
- next: function (key) {
4423
- var keyProvided = arguments.length > 0;
4424
- while (state) {
4425
- switch (state.s) {
4426
- case 0:
4427
- state.s = 1;
4428
- if (keyProvided) {
4429
- while (state.n.l && cmp(key, state.n.from) < 0)
4430
- state = { up: state, n: state.n.l, s: 1 };
4431
- }
4432
- else {
4433
- while (state.n.l)
4434
- state = { up: state, n: state.n.l, s: 1 };
4435
- }
4436
- case 1:
4437
- state.s = 2;
4438
- if (!keyProvided || cmp(key, state.n.to) <= 0)
4439
- return { value: state.n, done: false };
4440
- case 2:
4441
- if (state.n.r) {
4442
- state.s = 3;
4443
- state = { up: state, n: state.n.r, s: 0 };
4444
- continue;
4445
- }
4446
- case 3:
4447
- state = state.up;
4448
- }
4449
- }
4450
- return { done: true };
4451
- },
4452
- };
4453
- }
4454
- function rebalance(target) {
4455
- var _a, _b;
4456
- var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);
4457
- var r = diff > 1 ? "r" : diff < -1 ? "l" : "";
4458
- if (r) {
4459
- var l = r === "r" ? "l" : "r";
4460
- var rootClone = __assign({}, target);
4461
- var oldRootRight = target[r];
4462
- target.from = oldRootRight.from;
4463
- target.to = oldRootRight.to;
4464
- target[r] = oldRootRight[r];
4465
- rootClone[r] = oldRootRight[l];
4466
- target[l] = rootClone;
4467
- rootClone.d = computeDepth(rootClone);
4468
- }
4469
- target.d = computeDepth(target);
4470
- }
4471
- function computeDepth(_a) {
4472
- var r = _a.r, l = _a.l;
4473
- return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;
4474
- }
4475
-
4476
4559
  function isCachableContext(ctx, table) {
4477
4560
  return (ctx.trans.mode === 'readonly' &&
4478
4561
  !!ctx.subscr &&
@@ -4496,28 +4579,17 @@ function isCachableRequest(type, req) {
4496
4579
  }
4497
4580
  }
4498
4581
 
4499
- function extendObservabilitySet(target, newSet) {
4500
- keys(newSet).forEach(function (part) {
4501
- if (target[part])
4502
- mergeRanges(target[part], newSet[part]);
4503
- else
4504
- target[part] = cloneSimpleObjectTree(newSet[part]);
4505
- });
4506
- return target;
4507
- }
4508
-
4509
4582
  var observabilityMiddleware = {
4510
4583
  stack: "dbcore",
4511
- level: 10,
4584
+ level: 0,
4512
4585
  name: "Observability",
4513
4586
  create: function (core) {
4514
4587
  var dbName = core.schema.name;
4515
4588
  var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);
4516
4589
  return __assign(__assign({}, core), { transaction: function (stores, mode, options) {
4517
- if (!PSD.subscr)
4518
- return core.transaction(stores, mode, options);
4519
- if (mode !== 'readonly')
4520
- throw new exceptions.ReadOnly('write transaction not allowed within liveQueries');
4590
+ if (PSD.subscr && mode !== 'readonly') {
4591
+ throw new exceptions.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(PSD.querier));
4592
+ }
4521
4593
  return core.transaction(stores, mode, options);
4522
4594
  }, table: function (tableName) {
4523
4595
  var table = core.table(tableName);
@@ -4779,8 +4851,6 @@ function applyOptimisticOps(result, req, ops, table, cacheEntry, immutable) {
4779
4851
  return immutable ? Object.freeze(finalResult) : finalResult;
4780
4852
  }
4781
4853
 
4782
- var cache = {};
4783
-
4784
4854
  function areRangesEqual(r1, r2) {
4785
4855
  return (cmp(r1.lower, r2.lower) === 0 &&
4786
4856
  cmp(r1.upper, r2.upper) === 0 &&
@@ -4865,63 +4935,6 @@ function findCompatibleQuery(dbName, tableName, type, req) {
4865
4935
  }
4866
4936
  }
4867
4937
 
4868
- function obsSetsOverlap(os1, os2) {
4869
- return Object.keys(os1).some(function (key) { return os2[key] && rangesOverlap(os2[key], os1[key]); });
4870
- }
4871
-
4872
- var unsignaledParts = {};
4873
- var isTaskEnqueued = false;
4874
- function signalSubscribersLazily(part) {
4875
- extendObservabilitySet(unsignaledParts, part);
4876
- if (!isTaskEnqueued) {
4877
- isTaskEnqueued = true;
4878
- queueMicrotask(function () {
4879
- isTaskEnqueued = false;
4880
- var parts = unsignaledParts;
4881
- unsignaledParts = {};
4882
- signalSubscribersNow(parts);
4883
- });
4884
- }
4885
- }
4886
- function signalSubscribersNow(updatedParts, deleteAffectedCacheEntries) {
4887
- if (deleteAffectedCacheEntries === void 0) { deleteAffectedCacheEntries = false; }
4888
- var queriesToSignal = new Set();
4889
- for (var key in updatedParts) {
4890
- var parts = /^idb\:\/\/(.*)\/(.*)\//.exec(key);
4891
- if (parts) {
4892
- var dbName = parts[1], tableName = parts[2];
4893
- var tblCache = cache["idb://".concat(dbName, "/").concat(tableName)];
4894
- if (tblCache)
4895
- signalTableSubscribersNow(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);
4896
- }
4897
- }
4898
- queriesToSignal.forEach(function (requery) { return requery(); });
4899
- }
4900
- function signalTableSubscribersNow(tblCache, updatedParts, outQueriesToSignal, deleteAffectedCacheEntries) {
4901
- var updatedEntryLists = deleteAffectedCacheEntries && [];
4902
- for (var _i = 0, _a = Object.entries(tblCache.queries.query); _i < _a.length; _i++) {
4903
- var _b = _a[_i], indexName = _b[0], entries = _b[1];
4904
- var filteredEntries = deleteAffectedCacheEntries && [];
4905
- for (var _c = 0, entries_1 = entries; _c < entries_1.length; _c++) {
4906
- var entry = entries_1[_c];
4907
- if (entry.obsSet && obsSetsOverlap(updatedParts, entry.obsSet)) {
4908
- entry.subscribers.forEach(function (requery) { return outQueriesToSignal.add(requery); });
4909
- }
4910
- else if (deleteAffectedCacheEntries) {
4911
- filteredEntries.push(entry);
4912
- }
4913
- }
4914
- if (deleteAffectedCacheEntries)
4915
- updatedEntryLists.push([indexName, filteredEntries]);
4916
- }
4917
- if (deleteAffectedCacheEntries) {
4918
- for (var _d = 0, updatedEntryLists_1 = updatedEntryLists; _d < updatedEntryLists_1.length; _d++) {
4919
- var _e = updatedEntryLists_1[_d], indexName = _e[0], filteredEntries = _e[1];
4920
- tblCache.queries.query[indexName] = filteredEntries;
4921
- }
4922
- }
4923
- }
4924
-
4925
4938
  function subscribeToCacheEntry(cacheEntry, container, requery, signal) {
4926
4939
  cacheEntry.subscribers.add(requery);
4927
4940
  signal.addEventListener("abort", function () {
@@ -4941,7 +4954,7 @@ function enqueForDeletion(cacheEntry, container) {
4941
4954
 
4942
4955
  var cacheMiddleware = {
4943
4956
  stack: 'dbcore',
4944
- level: 10,
4957
+ level: 0,
4945
4958
  name: 'Cache',
4946
4959
  create: function (core) {
4947
4960
  var dbName = core.schema.name;
@@ -5188,7 +5201,8 @@ var Dexie$1 = (function () {
5188
5201
  console.warn("Another connection wants to upgrade database '".concat(_this.name, "'. Closing db now to resume the upgrade."));
5189
5202
  else
5190
5203
  console.warn("Another connection wants to delete database '".concat(_this.name, "'. Closing db now to resume the delete request."));
5191
- _this.close();
5204
+ _this.close({ disableAutoOpen: false });
5205
+ _this._state.openComplete = false;
5192
5206
  });
5193
5207
  this.on("blocked", function (ev) {
5194
5208
  if (!ev.newVersion || ev.newVersion < ev.oldVersion)
@@ -5205,10 +5219,10 @@ var Dexie$1 = (function () {
5205
5219
  .map(function (c) { return c.on("versionchange").fire(ev); });
5206
5220
  };
5207
5221
  this.use(cacheExistingValuesMiddleware);
5208
- this.use(virtualIndexMiddleware);
5209
- this.use(hooksMiddleware);
5210
5222
  this.use(cacheMiddleware);
5211
5223
  this.use(observabilityMiddleware);
5224
+ this.use(virtualIndexMiddleware);
5225
+ this.use(hooksMiddleware);
5212
5226
  this.vip = Object.create(this, { _vip: { value: true } });
5213
5227
  addons.forEach(function (addon) { return addon(_this); });
5214
5228
  }
@@ -5290,10 +5304,12 @@ var Dexie$1 = (function () {
5290
5304
  state.cancelOpen = reject;
5291
5305
  });
5292
5306
  };
5293
- Dexie.prototype.close = function () {
5307
+ Dexie.prototype.close = function (_a) {
5308
+ var _b = _a === void 0 ? { disableAutoOpen: true } : _a, disableAutoOpen = _b.disableAutoOpen;
5294
5309
  this._close();
5295
5310
  var state = this._state;
5296
- this._options.autoOpen = false;
5311
+ if (disableAutoOpen)
5312
+ this._options.autoOpen = false;
5297
5313
  state.dbOpenError = new exceptions.DatabaseClosed();
5298
5314
  if (state.isBeingOpened)
5299
5315
  state.cancelOpen(state.dbOpenError);
@@ -5304,7 +5320,7 @@ var Dexie$1 = (function () {
5304
5320
  var state = this._state;
5305
5321
  return new DexiePromise(function (resolve, reject) {
5306
5322
  var doDelete = function () {
5307
- _this.close();
5323
+ _this.close({ disableAutoOpen: false });
5308
5324
  var req = _this._deps.indexedDB.deleteDatabase(_this.name);
5309
5325
  req.onsuccess = wrap(function () {
5310
5326
  _onDatabaseDeleted(_this._deps, _this.name);
@@ -5504,6 +5520,7 @@ function liveQuery(querier) {
5504
5520
  subscr: subscr,
5505
5521
  signal: abortController.signal,
5506
5522
  requery: doQuery,
5523
+ querier: querier,
5507
5524
  trans: null
5508
5525
  };
5509
5526
  var ret = execute(ctx);