dexie 4.0.7 → 4.0.8
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.d.ts +12 -10
- package/dist/dexie.js +27 -23
- package/dist/dexie.js.map +1 -1
- package/dist/dexie.min.js +1 -1
- package/dist/dexie.min.js.map +1 -1
- package/dist/dexie.mjs +27 -23
- package/dist/dexie.mjs.map +1 -1
- package/dist/modern/dexie.min.mjs +1 -1
- package/dist/modern/dexie.min.mjs.map +1 -1
- package/dist/modern/dexie.mjs +27 -23
- package/dist/modern/dexie.mjs.map +1 -1
- package/package.json +2 -2
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.
|
|
7
|
+
* Version 4.0.8, Wed Jul 10 2024
|
|
8
8
|
*
|
|
9
9
|
* https://dexie.org
|
|
10
10
|
*
|
|
@@ -360,19 +360,20 @@ export interface PromiseExtended<T = any> extends Promise<T> {
|
|
|
360
360
|
timeout(ms: number, msg?: string): PromiseExtended<T>;
|
|
361
361
|
}
|
|
362
362
|
export type KeyPaths<T> = {
|
|
363
|
-
[P in keyof T]: P extends string ? T[P] extends Array<infer K> ? K extends
|
|
363
|
+
[P in keyof T]: P extends string ? T[P] extends Array<infer K> ? K extends any[] // Array of arrays (issue #2026)
|
|
364
|
+
? P | `${P}.${number}` | `${P}.${number}.${number}` : K extends object // only drill into the array element if it's an object
|
|
364
365
|
? P | `${P}.${number}` | `${P}.${number}.${KeyPaths<K>}` : P | `${P}.${number}` : T[P] extends (...args: any[]) => any // Method
|
|
365
366
|
? never : T[P] extends object ? P | `${P}.${KeyPaths<T[P]>}` : P : never;
|
|
366
367
|
}[keyof T];
|
|
367
|
-
export type KeyPathValue<T, PATH> = PATH extends `${infer R}.${infer S}` ? R extends keyof T ? KeyPathValue<T[R], S> : T extends any[] ? PATH extends `${number}.${infer S}` ? KeyPathValue<T[number], S> : void : void : PATH extends `${number}` ? T extends any[] ? T[number] : void : PATH extends keyof T ? T[PATH] :
|
|
368
|
+
export type KeyPathValue<T, PATH> = PATH extends `${infer R}.${infer S}` ? R extends keyof T ? KeyPathValue<T[R], S> : T extends any[] ? PATH extends `${number}.${infer S}` ? KeyPathValue<T[number], S> : void : void : PATH extends `${number}` ? T extends any[] ? T[number] : void : PATH extends keyof T ? T[PATH] : any;
|
|
368
369
|
export declare const PropModSymbol: unique symbol;
|
|
369
370
|
export type PropModSpec = {
|
|
370
371
|
replacePrefix?: [
|
|
371
372
|
string,
|
|
372
373
|
string
|
|
373
374
|
];
|
|
374
|
-
add?: number |
|
|
375
|
-
remove?: number |
|
|
375
|
+
add?: number | bigint | Array<string | number>;
|
|
376
|
+
remove?: number | bigint | Array<string | number>;
|
|
376
377
|
};
|
|
377
378
|
export class PropModification implements PropModSpec {
|
|
378
379
|
[PropModSymbol]?: true;
|
|
@@ -380,8 +381,8 @@ export class PropModification implements PropModSpec {
|
|
|
380
381
|
string,
|
|
381
382
|
string
|
|
382
383
|
];
|
|
383
|
-
add?: number |
|
|
384
|
-
remove?: number |
|
|
384
|
+
add?: number | bigint | Array<string | number>;
|
|
385
|
+
remove?: number | bigint | Array<string | number>;
|
|
385
386
|
execute<T>(value: T): T;
|
|
386
387
|
constructor(spec: PropModSpec);
|
|
387
388
|
}
|
|
@@ -444,8 +445,8 @@ export type IntervalTree = IntervalTreeNode | EmptyRange;
|
|
|
444
445
|
export interface IntervalTreeNode {
|
|
445
446
|
from: IndexableType; // lower bound
|
|
446
447
|
to: IndexableType; // upper bound
|
|
447
|
-
l
|
|
448
|
-
r
|
|
448
|
+
l?: IntervalTreeNode | null; // left
|
|
449
|
+
r?: IntervalTreeNode | null; // right
|
|
449
450
|
d: number; // depth
|
|
450
451
|
}
|
|
451
452
|
export interface EmptyRange {
|
|
@@ -737,10 +738,11 @@ export interface Table<T = any, TKey = any, TInsertType = T> {
|
|
|
737
738
|
reverse(): Collection<T, TKey, TInsertType>;
|
|
738
739
|
mapToClass(constructor: Function): Function;
|
|
739
740
|
add(item: TInsertType, key?: TKey): PromiseExtended<TKey>;
|
|
740
|
-
update(key: TKey | T, changes:
|
|
741
|
+
update(key: TKey | T, changes: ((obj: T, ctx: {
|
|
741
742
|
value: any;
|
|
742
743
|
primKey: IndexableType;
|
|
743
744
|
}) => void | boolean)): PromiseExtended<number>;
|
|
745
|
+
update(key: TKey | T, changes: UpdateSpec<TInsertType>): PromiseExtended<number>;
|
|
744
746
|
put(item: TInsertType, key?: TKey): PromiseExtended<TKey>;
|
|
745
747
|
delete(key: TKey): PromiseExtended<void>;
|
|
746
748
|
clear(): PromiseExtended<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.0.
|
|
7
|
+
* Version 4.0.8, Wed Jul 10 2024
|
|
8
8
|
*
|
|
9
9
|
* https://dexie.org
|
|
10
10
|
*
|
|
@@ -1150,7 +1150,7 @@
|
|
|
1150
1150
|
}
|
|
1151
1151
|
}
|
|
1152
1152
|
|
|
1153
|
-
var DEXIE_VERSION = '4.0.
|
|
1153
|
+
var DEXIE_VERSION = '4.0.8';
|
|
1154
1154
|
var maxString = String.fromCharCode(65535);
|
|
1155
1155
|
var minKey = -Infinity;
|
|
1156
1156
|
var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
|
|
@@ -3799,6 +3799,10 @@
|
|
|
3799
3799
|
var _this = this;
|
|
3800
3800
|
keys.forEach(function (key) { return addRange(_this, key, key); });
|
|
3801
3801
|
return this;
|
|
3802
|
+
},
|
|
3803
|
+
hasKey: function (key) {
|
|
3804
|
+
var node = getRangeSetIterator(this).next(key).value;
|
|
3805
|
+
return node && cmp(node.from, key) <= 0 && cmp(node.to, key) >= 0;
|
|
3802
3806
|
}
|
|
3803
3807
|
},
|
|
3804
3808
|
_a[iteratorSymbol] = function () {
|
|
@@ -4860,19 +4864,23 @@
|
|
|
4860
4864
|
var extractLowLevelIndex = (index.lowLevelIndex || index).extractKey;
|
|
4861
4865
|
var finalResult = ops.reduce(function (result, op) {
|
|
4862
4866
|
var modifedResult = result;
|
|
4863
|
-
var includedValues =
|
|
4864
|
-
|
|
4865
|
-
|
|
4866
|
-
|
|
4867
|
+
var includedValues = [];
|
|
4868
|
+
if (op.type === 'add' || op.type === 'put') {
|
|
4869
|
+
var includedPKs = new RangeSet();
|
|
4870
|
+
for (var i = op.values.length - 1; i >= 0; --i) {
|
|
4871
|
+
var value = op.values[i];
|
|
4872
|
+
var pk = extractPrimKey(value);
|
|
4873
|
+
if (includedPKs.hasKey(pk))
|
|
4874
|
+
continue;
|
|
4875
|
+
var key = extractIndex(value);
|
|
4876
|
+
if (multiEntry && isArray(key)
|
|
4867
4877
|
? key.some(function (k) { return isWithinRange(k, queryRange); })
|
|
4868
|
-
: isWithinRange(key, queryRange)
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
})
|
|
4875
|
-
: [];
|
|
4878
|
+
: isWithinRange(key, queryRange)) {
|
|
4879
|
+
includedPKs.addKey(pk);
|
|
4880
|
+
includedValues.push(value);
|
|
4881
|
+
}
|
|
4882
|
+
}
|
|
4883
|
+
}
|
|
4876
4884
|
switch (op.type) {
|
|
4877
4885
|
case 'add':
|
|
4878
4886
|
modifedResult = result.concat(req.values
|
|
@@ -4882,20 +4890,16 @@
|
|
|
4882
4890
|
case 'put':
|
|
4883
4891
|
var keySet_1 = new RangeSet().addKeys(op.values.map(function (v) { return extractPrimKey(v); }));
|
|
4884
4892
|
modifedResult = result
|
|
4885
|
-
.filter(
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
.concat(req.values
|
|
4893
|
+
.filter(
|
|
4894
|
+
function (item) { return !keySet_1.hasKey(req.values ? extractPrimKey(item) : item); })
|
|
4895
|
+
.concat(
|
|
4896
|
+
req.values
|
|
4890
4897
|
? includedValues
|
|
4891
4898
|
: includedValues.map(function (v) { return extractPrimKey(v); }));
|
|
4892
4899
|
break;
|
|
4893
4900
|
case 'delete':
|
|
4894
4901
|
var keysToDelete_1 = new RangeSet().addKeys(op.keys);
|
|
4895
|
-
modifedResult = result.filter(function (item) {
|
|
4896
|
-
var key = req.values ? extractPrimKey(item) : item;
|
|
4897
|
-
return !rangesOverlap(new RangeSet(key), keysToDelete_1);
|
|
4898
|
-
});
|
|
4902
|
+
modifedResult = result.filter(function (item) { return !keysToDelete_1.hasKey(req.values ? extractPrimKey(item) : item); });
|
|
4899
4903
|
break;
|
|
4900
4904
|
case 'deleteRange':
|
|
4901
4905
|
var range_1 = op.range;
|