@anfenn/dync 1.0.3 → 1.0.5

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.
Files changed (47) hide show
  1. package/README.md +32 -14
  2. package/dist/{chunk-66PSQW4D.js → chunk-YAAFAS64.js} +42 -42
  3. package/dist/chunk-YAAFAS64.js.map +1 -0
  4. package/dist/{dexie-Bv-fV10P.d.cts → dexie-1_xyU5MV.d.cts} +41 -38
  5. package/dist/{dexie-DJFApKsM.d.ts → dexie-ChZ0o0Sz.d.ts} +41 -38
  6. package/dist/dexie.cjs +40 -40
  7. package/dist/dexie.cjs.map +1 -1
  8. package/dist/dexie.d.cts +1 -1
  9. package/dist/dexie.d.ts +1 -1
  10. package/dist/dexie.js +40 -40
  11. package/dist/dexie.js.map +1 -1
  12. package/dist/index.cjs +41 -41
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +2 -2
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.js +1 -1
  17. package/dist/{index.shared-CkYsQYyn.d.ts → index.shared-3gbnIINY.d.ts} +4 -4
  18. package/dist/{index.shared-BGwvMH8f.d.cts → index.shared-XsB8HrvX.d.cts} +4 -4
  19. package/dist/react/index.cjs +26 -26
  20. package/dist/react/index.cjs.map +1 -1
  21. package/dist/react/index.d.cts +2 -2
  22. package/dist/react/index.d.ts +2 -2
  23. package/dist/react/index.js +1 -1
  24. package/dist/wa-sqlite.cjs +2 -2
  25. package/dist/wa-sqlite.cjs.map +1 -1
  26. package/dist/wa-sqlite.d.cts +2 -2
  27. package/dist/wa-sqlite.d.ts +2 -2
  28. package/dist/wa-sqlite.js +2 -2
  29. package/dist/wa-sqlite.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/core/StateManager.ts +4 -4
  32. package/src/core/pullOperations.ts +3 -3
  33. package/src/core/pushOperations.ts +13 -13
  34. package/src/core/tableEnhancers.ts +20 -20
  35. package/src/helpers.ts +1 -1
  36. package/src/storage/dexie/DexieAdapter.ts +2 -2
  37. package/src/storage/dexie/{DexieStorageCollection.ts → DexieCollection.ts} +12 -12
  38. package/src/storage/dexie/DexieTable.ts +123 -0
  39. package/src/storage/dexie/{DexieStorageWhereClause.ts → DexieWhereClause.ts} +21 -21
  40. package/src/storage/dexie/index.ts +3 -3
  41. package/src/storage/memory/MemoryTable.ts +40 -40
  42. package/src/storage/sqlite/SQLiteTable.ts +34 -36
  43. package/src/storage/sqlite/drivers/WaSqliteDriver.ts +6 -6
  44. package/src/storage/types.ts +22 -19
  45. package/src/types.ts +4 -4
  46. package/dist/chunk-66PSQW4D.js.map +0 -1
  47. package/src/storage/dexie/DexieStorageTable.ts +0 -123
@@ -137,42 +137,42 @@ declare class MemoryTable<T extends MemoryRecord = MemoryRecord> implements Stor
137
137
  readonly primaryKey: unknown;
138
138
  readonly hook: unknown;
139
139
  readonly raw: {
140
- add: (item: T) => Promise<unknown>;
141
- put: (item: T) => Promise<unknown>;
142
- update: (key: unknown, changes: Partial<T>) => Promise<number>;
143
- delete: (key: unknown) => Promise<void>;
144
- get: (key: unknown) => Promise<T | undefined>;
145
- bulkAdd: (items: T[]) => Promise<unknown>;
146
- bulkPut: (items: T[]) => Promise<unknown>;
140
+ add: (item: T) => Promise<string>;
141
+ put: (item: T) => Promise<string>;
142
+ update: (key: string, changes: Partial<T>) => Promise<number>;
143
+ delete: (key: string) => Promise<void>;
144
+ get: (key: string) => Promise<T | undefined>;
145
+ bulkAdd: (items: T[]) => Promise<string[]>;
146
+ bulkPut: (items: T[]) => Promise<string[]>;
147
147
  bulkUpdate: (keysAndChanges: Array<{
148
- key: unknown;
148
+ key: string;
149
149
  changes: Partial<T>;
150
150
  }>) => Promise<number>;
151
- bulkDelete: (keys: Array<unknown>) => Promise<void>;
151
+ bulkDelete: (keys: string[]) => Promise<void>;
152
152
  clear: () => Promise<void>;
153
153
  };
154
154
  private readonly records;
155
155
  constructor(name: string);
156
- add(item: T): Promise<unknown>;
157
- put(item: T): Promise<unknown>;
158
- update(key: unknown, changes: Partial<T>): Promise<number>;
159
- delete(key: unknown): Promise<void>;
156
+ add(item: AddItem<T>): Promise<string>;
157
+ put(item: T): Promise<string>;
158
+ update(key: string, changes: Partial<T>): Promise<number>;
159
+ delete(key: string): Promise<void>;
160
160
  clear(): Promise<void>;
161
161
  private baseClear;
162
- get(key: unknown): Promise<T | undefined>;
162
+ get(key: string): Promise<T | undefined>;
163
163
  toArray(): Promise<T[]>;
164
164
  count(): Promise<number>;
165
- bulkAdd(items: T[]): Promise<unknown>;
165
+ bulkAdd(items: AddItem<T>[]): Promise<string[]>;
166
166
  private baseBulkAdd;
167
- bulkPut(items: T[]): Promise<unknown>;
167
+ bulkPut(items: T[]): Promise<string[]>;
168
168
  private baseBulkPut;
169
- bulkGet(keys: Array<unknown>): Promise<Array<T | undefined>>;
169
+ bulkGet(keys: string[]): Promise<Array<T | undefined>>;
170
170
  bulkUpdate(keysAndChanges: Array<{
171
- key: unknown;
171
+ key: string;
172
172
  changes: Partial<T>;
173
173
  }>): Promise<number>;
174
174
  private baseBulkUpdate;
175
- bulkDelete(keys: Array<unknown>): Promise<void>;
175
+ bulkDelete(keys: string[]): Promise<void>;
176
176
  private baseBulkDelete;
177
177
  where(index: string | string[]): StorageWhereClause<T>;
178
178
  orderBy(index: string | string[]): StorageCollection<T>;
@@ -381,26 +381,29 @@ interface StorageWhereClause<T = any> {
381
381
  noneOf(values: any[]): StorageCollection<T>;
382
382
  notEqual(value: any): StorageCollection<T>;
383
383
  }
384
+ type AddItem<T> = Omit<T, '_localId'> & {
385
+ _localId?: string;
386
+ };
384
387
  interface StorageTable<T = any> {
385
388
  readonly name: string;
386
389
  readonly schema: unknown;
387
390
  readonly hook: unknown;
388
- add(item: T): Promise<unknown>;
389
- put(item: T): Promise<unknown>;
390
- update(key: unknown, changes: Partial<T>): Promise<number>;
391
- delete(key: unknown): Promise<void>;
391
+ add(item: AddItem<T>): Promise<string>;
392
+ put(item: T): Promise<string>;
393
+ update(key: string, changes: Partial<T>): Promise<number>;
394
+ delete(key: string): Promise<void>;
392
395
  clear(): Promise<void>;
393
- get(key: unknown): Promise<T | undefined>;
396
+ get(key: string): Promise<T | undefined>;
394
397
  toArray(): Promise<T[]>;
395
398
  count(): Promise<number>;
396
- bulkAdd(items: T[]): Promise<unknown>;
397
- bulkPut(items: T[]): Promise<unknown>;
398
- bulkGet(keys: Array<unknown>): Promise<Array<T | undefined>>;
399
+ bulkAdd(items: AddItem<T>[]): Promise<string[]>;
400
+ bulkPut(items: T[]): Promise<string[]>;
401
+ bulkGet(keys: string[]): Promise<Array<T | undefined>>;
399
402
  bulkUpdate(keysAndChanges: Array<{
400
- key: unknown;
403
+ key: string;
401
404
  changes: Partial<T>;
402
405
  }>): Promise<number>;
403
- bulkDelete(keys: Array<unknown>): Promise<void>;
406
+ bulkDelete(keys: string[]): Promise<void>;
404
407
  where(index: string | string[]): StorageWhereClause<T>;
405
408
  orderBy(index: string | string[]): StorageCollection<T>;
406
409
  reverse(): StorageCollection<T>;
@@ -410,18 +413,18 @@ interface StorageTable<T = any> {
410
413
  each(callback: (item: T) => void | Promise<void>): Promise<void>;
411
414
  jsFilter(predicate: (item: T) => boolean): StorageCollection<T>;
412
415
  readonly raw: {
413
- add(item: T): Promise<unknown>;
414
- put(item: T): Promise<unknown>;
415
- update(key: unknown, changes: Partial<T>): Promise<number>;
416
- delete(key: unknown): Promise<void>;
417
- get(key: unknown): Promise<T | undefined>;
418
- bulkAdd(items: T[]): Promise<unknown>;
419
- bulkPut(items: T[]): Promise<unknown>;
416
+ add(item: T): Promise<string>;
417
+ put(item: T): Promise<string>;
418
+ update(key: string, changes: Partial<T>): Promise<number>;
419
+ delete(key: string): Promise<void>;
420
+ get(key: string): Promise<T | undefined>;
421
+ bulkAdd(items: T[]): Promise<string[]>;
422
+ bulkPut(items: T[]): Promise<string[]>;
420
423
  bulkUpdate(keysAndChanges: Array<{
421
- key: unknown;
424
+ key: string;
422
425
  changes: Partial<T>;
423
426
  }>): Promise<number>;
424
- bulkDelete(keys: Array<unknown>): Promise<void>;
427
+ bulkDelete(keys: string[]): Promise<void>;
425
428
  clear(): Promise<void>;
426
429
  };
427
430
  }
@@ -137,42 +137,42 @@ declare class MemoryTable<T extends MemoryRecord = MemoryRecord> implements Stor
137
137
  readonly primaryKey: unknown;
138
138
  readonly hook: unknown;
139
139
  readonly raw: {
140
- add: (item: T) => Promise<unknown>;
141
- put: (item: T) => Promise<unknown>;
142
- update: (key: unknown, changes: Partial<T>) => Promise<number>;
143
- delete: (key: unknown) => Promise<void>;
144
- get: (key: unknown) => Promise<T | undefined>;
145
- bulkAdd: (items: T[]) => Promise<unknown>;
146
- bulkPut: (items: T[]) => Promise<unknown>;
140
+ add: (item: T) => Promise<string>;
141
+ put: (item: T) => Promise<string>;
142
+ update: (key: string, changes: Partial<T>) => Promise<number>;
143
+ delete: (key: string) => Promise<void>;
144
+ get: (key: string) => Promise<T | undefined>;
145
+ bulkAdd: (items: T[]) => Promise<string[]>;
146
+ bulkPut: (items: T[]) => Promise<string[]>;
147
147
  bulkUpdate: (keysAndChanges: Array<{
148
- key: unknown;
148
+ key: string;
149
149
  changes: Partial<T>;
150
150
  }>) => Promise<number>;
151
- bulkDelete: (keys: Array<unknown>) => Promise<void>;
151
+ bulkDelete: (keys: string[]) => Promise<void>;
152
152
  clear: () => Promise<void>;
153
153
  };
154
154
  private readonly records;
155
155
  constructor(name: string);
156
- add(item: T): Promise<unknown>;
157
- put(item: T): Promise<unknown>;
158
- update(key: unknown, changes: Partial<T>): Promise<number>;
159
- delete(key: unknown): Promise<void>;
156
+ add(item: AddItem<T>): Promise<string>;
157
+ put(item: T): Promise<string>;
158
+ update(key: string, changes: Partial<T>): Promise<number>;
159
+ delete(key: string): Promise<void>;
160
160
  clear(): Promise<void>;
161
161
  private baseClear;
162
- get(key: unknown): Promise<T | undefined>;
162
+ get(key: string): Promise<T | undefined>;
163
163
  toArray(): Promise<T[]>;
164
164
  count(): Promise<number>;
165
- bulkAdd(items: T[]): Promise<unknown>;
165
+ bulkAdd(items: AddItem<T>[]): Promise<string[]>;
166
166
  private baseBulkAdd;
167
- bulkPut(items: T[]): Promise<unknown>;
167
+ bulkPut(items: T[]): Promise<string[]>;
168
168
  private baseBulkPut;
169
- bulkGet(keys: Array<unknown>): Promise<Array<T | undefined>>;
169
+ bulkGet(keys: string[]): Promise<Array<T | undefined>>;
170
170
  bulkUpdate(keysAndChanges: Array<{
171
- key: unknown;
171
+ key: string;
172
172
  changes: Partial<T>;
173
173
  }>): Promise<number>;
174
174
  private baseBulkUpdate;
175
- bulkDelete(keys: Array<unknown>): Promise<void>;
175
+ bulkDelete(keys: string[]): Promise<void>;
176
176
  private baseBulkDelete;
177
177
  where(index: string | string[]): StorageWhereClause<T>;
178
178
  orderBy(index: string | string[]): StorageCollection<T>;
@@ -381,26 +381,29 @@ interface StorageWhereClause<T = any> {
381
381
  noneOf(values: any[]): StorageCollection<T>;
382
382
  notEqual(value: any): StorageCollection<T>;
383
383
  }
384
+ type AddItem<T> = Omit<T, '_localId'> & {
385
+ _localId?: string;
386
+ };
384
387
  interface StorageTable<T = any> {
385
388
  readonly name: string;
386
389
  readonly schema: unknown;
387
390
  readonly hook: unknown;
388
- add(item: T): Promise<unknown>;
389
- put(item: T): Promise<unknown>;
390
- update(key: unknown, changes: Partial<T>): Promise<number>;
391
- delete(key: unknown): Promise<void>;
391
+ add(item: AddItem<T>): Promise<string>;
392
+ put(item: T): Promise<string>;
393
+ update(key: string, changes: Partial<T>): Promise<number>;
394
+ delete(key: string): Promise<void>;
392
395
  clear(): Promise<void>;
393
- get(key: unknown): Promise<T | undefined>;
396
+ get(key: string): Promise<T | undefined>;
394
397
  toArray(): Promise<T[]>;
395
398
  count(): Promise<number>;
396
- bulkAdd(items: T[]): Promise<unknown>;
397
- bulkPut(items: T[]): Promise<unknown>;
398
- bulkGet(keys: Array<unknown>): Promise<Array<T | undefined>>;
399
+ bulkAdd(items: AddItem<T>[]): Promise<string[]>;
400
+ bulkPut(items: T[]): Promise<string[]>;
401
+ bulkGet(keys: string[]): Promise<Array<T | undefined>>;
399
402
  bulkUpdate(keysAndChanges: Array<{
400
- key: unknown;
403
+ key: string;
401
404
  changes: Partial<T>;
402
405
  }>): Promise<number>;
403
- bulkDelete(keys: Array<unknown>): Promise<void>;
406
+ bulkDelete(keys: string[]): Promise<void>;
404
407
  where(index: string | string[]): StorageWhereClause<T>;
405
408
  orderBy(index: string | string[]): StorageCollection<T>;
406
409
  reverse(): StorageCollection<T>;
@@ -410,18 +413,18 @@ interface StorageTable<T = any> {
410
413
  each(callback: (item: T) => void | Promise<void>): Promise<void>;
411
414
  jsFilter(predicate: (item: T) => boolean): StorageCollection<T>;
412
415
  readonly raw: {
413
- add(item: T): Promise<unknown>;
414
- put(item: T): Promise<unknown>;
415
- update(key: unknown, changes: Partial<T>): Promise<number>;
416
- delete(key: unknown): Promise<void>;
417
- get(key: unknown): Promise<T | undefined>;
418
- bulkAdd(items: T[]): Promise<unknown>;
419
- bulkPut(items: T[]): Promise<unknown>;
416
+ add(item: T): Promise<string>;
417
+ put(item: T): Promise<string>;
418
+ update(key: string, changes: Partial<T>): Promise<number>;
419
+ delete(key: string): Promise<void>;
420
+ get(key: string): Promise<T | undefined>;
421
+ bulkAdd(items: T[]): Promise<string[]>;
422
+ bulkPut(items: T[]): Promise<string[]>;
420
423
  bulkUpdate(keysAndChanges: Array<{
421
- key: unknown;
424
+ key: string;
422
425
  changes: Partial<T>;
423
426
  }>): Promise<number>;
424
- bulkDelete(keys: Array<unknown>): Promise<void>;
427
+ bulkDelete(keys: string[]): Promise<void>;
425
428
  clear(): Promise<void>;
426
429
  };
427
430
  }
package/dist/dexie.cjs CHANGED
@@ -54,68 +54,68 @@ var DexieQueryContext = class {
54
54
  // src/storage/dexie/helpers.ts
55
55
  var normalizeIndexName = (index) => Array.isArray(index) ? `[${index.join("+")}]` : index;
56
56
 
57
- // src/storage/dexie/DexieStorageWhereClause.ts
58
- var DexieStorageWhereClause = class {
57
+ // src/storage/dexie/DexieWhereClause.ts
58
+ var DexieWhereClause = class {
59
59
  clause;
60
60
  constructor(clause) {
61
61
  this.clause = clause;
62
62
  }
63
63
  equals(value) {
64
- return new DexieStorageCollection(this.clause.equals(value));
64
+ return new DexieCollection(this.clause.equals(value));
65
65
  }
66
66
  above(value) {
67
- return new DexieStorageCollection(this.clause.above(value));
67
+ return new DexieCollection(this.clause.above(value));
68
68
  }
69
69
  aboveOrEqual(value) {
70
- return new DexieStorageCollection(this.clause.aboveOrEqual(value));
70
+ return new DexieCollection(this.clause.aboveOrEqual(value));
71
71
  }
72
72
  below(value) {
73
- return new DexieStorageCollection(this.clause.below(value));
73
+ return new DexieCollection(this.clause.below(value));
74
74
  }
75
75
  belowOrEqual(value) {
76
- return new DexieStorageCollection(this.clause.belowOrEqual(value));
76
+ return new DexieCollection(this.clause.belowOrEqual(value));
77
77
  }
78
78
  between(lower, upper, includeLower, includeUpper) {
79
- return new DexieStorageCollection(this.clause.between(lower, upper, includeLower, includeUpper));
79
+ return new DexieCollection(this.clause.between(lower, upper, includeLower, includeUpper));
80
80
  }
81
81
  inAnyRange(ranges, options) {
82
82
  const normalizedOptions = options ? {
83
83
  includeLowers: options.includeLower,
84
84
  includeUppers: options.includeUpper
85
85
  } : void 0;
86
- return new DexieStorageCollection(this.clause.inAnyRange(ranges, normalizedOptions));
86
+ return new DexieCollection(this.clause.inAnyRange(ranges, normalizedOptions));
87
87
  }
88
88
  startsWith(prefix) {
89
- return new DexieStorageCollection(this.clause.startsWith(prefix));
89
+ return new DexieCollection(this.clause.startsWith(prefix));
90
90
  }
91
91
  startsWithIgnoreCase(prefix) {
92
- return new DexieStorageCollection(this.clause.startsWithIgnoreCase(prefix));
92
+ return new DexieCollection(this.clause.startsWithIgnoreCase(prefix));
93
93
  }
94
94
  startsWithAnyOf(...args) {
95
95
  const values = this.flattenArgs(args);
96
- return new DexieStorageCollection(this.clause.startsWithAnyOf(...values));
96
+ return new DexieCollection(this.clause.startsWithAnyOf(...values));
97
97
  }
98
98
  startsWithAnyOfIgnoreCase(...args) {
99
99
  const values = this.flattenArgs(args);
100
- return new DexieStorageCollection(this.clause.startsWithAnyOfIgnoreCase(...values));
100
+ return new DexieCollection(this.clause.startsWithAnyOfIgnoreCase(...values));
101
101
  }
102
102
  equalsIgnoreCase(value) {
103
- return new DexieStorageCollection(this.clause.equalsIgnoreCase(value));
103
+ return new DexieCollection(this.clause.equalsIgnoreCase(value));
104
104
  }
105
105
  anyOf(...args) {
106
106
  const values = this.flattenArgs(args);
107
- return new DexieStorageCollection(this.clause.anyOf(...values));
107
+ return new DexieCollection(this.clause.anyOf(...values));
108
108
  }
109
109
  anyOfIgnoreCase(...args) {
110
110
  const values = this.flattenArgs(args);
111
- return new DexieStorageCollection(this.clause.anyOfIgnoreCase(...values));
111
+ return new DexieCollection(this.clause.anyOfIgnoreCase(...values));
112
112
  }
113
113
  noneOf(...args) {
114
114
  const values = this.flattenArgs(args);
115
- return new DexieStorageCollection(this.clause.noneOf(values));
115
+ return new DexieCollection(this.clause.noneOf(values));
116
116
  }
117
117
  notEqual(value) {
118
- return new DexieStorageCollection(this.clause.notEqual(value));
118
+ return new DexieCollection(this.clause.notEqual(value));
119
119
  }
120
120
  flattenArgs(args) {
121
121
  if (args.length === 1 && Array.isArray(args[0])) {
@@ -125,8 +125,8 @@ var DexieStorageWhereClause = class {
125
125
  }
126
126
  };
127
127
 
128
- // src/storage/dexie/DexieStorageCollection.ts
129
- var DexieStorageCollection = class _DexieStorageCollection {
128
+ // src/storage/dexie/DexieCollection.ts
129
+ var DexieCollection = class _DexieCollection {
130
130
  collection;
131
131
  constructor(collection) {
132
132
  this.collection = collection;
@@ -189,25 +189,25 @@ var DexieStorageCollection = class _DexieStorageCollection {
189
189
  return this.collection.sortBy(key);
190
190
  }
191
191
  distinct() {
192
- return new _DexieStorageCollection(this.collection.distinct());
192
+ return new _DexieCollection(this.collection.distinct());
193
193
  }
194
194
  jsFilter(predicate) {
195
- return new _DexieStorageCollection(this.collection.filter(predicate));
195
+ return new _DexieCollection(this.collection.filter(predicate));
196
196
  }
197
197
  or(index) {
198
- return new DexieStorageWhereClause(this.collection.or(normalizeIndexName(index)));
198
+ return new DexieWhereClause(this.collection.or(normalizeIndexName(index)));
199
199
  }
200
200
  clone(props) {
201
- return new _DexieStorageCollection(this.collection.clone(props));
201
+ return new _DexieCollection(this.collection.clone(props));
202
202
  }
203
203
  reverse() {
204
- return new _DexieStorageCollection(this.collection.reverse());
204
+ return new _DexieCollection(this.collection.reverse());
205
205
  }
206
206
  offset(offset) {
207
- return new _DexieStorageCollection(this.collection.offset(offset));
207
+ return new _DexieCollection(this.collection.offset(offset));
208
208
  }
209
209
  limit(count) {
210
- return new _DexieStorageCollection(this.collection.limit(count));
210
+ return new _DexieCollection(this.collection.limit(count));
211
211
  }
212
212
  toCollection() {
213
213
  return this.clone();
@@ -223,8 +223,8 @@ var DexieStorageCollection = class _DexieStorageCollection {
223
223
  }
224
224
  };
225
225
 
226
- // src/storage/dexie/DexieStorageTable.ts
227
- var DexieStorageTable = class {
226
+ // src/storage/dexie/DexieTable.ts
227
+ var DexieTable = class {
228
228
  name;
229
229
  schema;
230
230
  primaryKey;
@@ -235,8 +235,8 @@ var DexieStorageTable = class {
235
235
  update: (key, changes) => this.table.update(key, changes),
236
236
  delete: (key) => this.table.delete(key),
237
237
  get: (key) => this.table.get(key),
238
- bulkAdd: (items) => this.table.bulkAdd(items),
239
- bulkPut: (items) => this.table.bulkPut(items),
238
+ bulkAdd: (items) => this.table.bulkAdd(items, { allKeys: true }),
239
+ bulkPut: (items) => this.table.bulkPut(items, { allKeys: true }),
240
240
  bulkUpdate: (keysAndChanges) => this.table.bulkUpdate(keysAndChanges),
241
241
  bulkDelete: (keys) => this.table.bulkDelete(keys),
242
242
  clear: () => this.table.clear()
@@ -274,10 +274,10 @@ var DexieStorageTable = class {
274
274
  return this.table.count();
275
275
  }
276
276
  bulkAdd(items) {
277
- return this.table.bulkAdd(items);
277
+ return this.table.bulkAdd(items, { allKeys: true });
278
278
  }
279
279
  bulkPut(items) {
280
- return this.table.bulkPut(items);
280
+ return this.table.bulkPut(items, { allKeys: true });
281
281
  }
282
282
  bulkGet(keys) {
283
283
  return this.table.bulkGet(keys);
@@ -289,19 +289,19 @@ var DexieStorageTable = class {
289
289
  return this.table.bulkDelete(keys);
290
290
  }
291
291
  where(index) {
292
- return new DexieStorageWhereClause(this.table.where(normalizeIndexName(index)));
292
+ return new DexieWhereClause(this.table.where(normalizeIndexName(index)));
293
293
  }
294
294
  orderBy(index) {
295
- return new DexieStorageCollection(this.table.orderBy(normalizeIndexName(index)));
295
+ return new DexieCollection(this.table.orderBy(normalizeIndexName(index)));
296
296
  }
297
297
  reverse() {
298
- return new DexieStorageCollection(this.table.reverse());
298
+ return new DexieCollection(this.table.reverse());
299
299
  }
300
300
  offset(offset) {
301
- return new DexieStorageCollection(this.table.offset(offset));
301
+ return new DexieCollection(this.table.offset(offset));
302
302
  }
303
303
  limit(count) {
304
- return new DexieStorageCollection(this.table.limit(count));
304
+ return new DexieCollection(this.table.limit(count));
305
305
  }
306
306
  mapToClass(ctor) {
307
307
  this.table.mapToClass(ctor);
@@ -315,7 +315,7 @@ var DexieStorageTable = class {
315
315
  await Promise.all(tasks.map((task) => task ? Promise.resolve(task) : Promise.resolve()));
316
316
  }
317
317
  jsFilter(predicate) {
318
- return new DexieStorageCollection(this.table.filter(predicate));
318
+ return new DexieCollection(this.table.filter(predicate));
319
319
  }
320
320
  };
321
321
 
@@ -359,7 +359,7 @@ var DexieAdapter = class {
359
359
  table(name) {
360
360
  if (!this.tableCache.has(name)) {
361
361
  const table = this.db.table(name);
362
- this.tableCache.set(name, new DexieStorageTable(table));
362
+ this.tableCache.set(name, new DexieTable(table));
363
363
  }
364
364
  return this.tableCache.get(name);
365
365
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dexie.ts","../src/storage/dexie/DexieAdapter.ts","../src/storage/dexie/DexieQueryContext.ts","../src/storage/dexie/helpers.ts","../src/storage/dexie/DexieStorageWhereClause.ts","../src/storage/dexie/DexieStorageCollection.ts","../src/storage/dexie/DexieStorageTable.ts"],"sourcesContent":["export { DexieAdapter, DexieQueryContext } from './storage/dexie';\nexport type { StorageAdapter } from './storage/types';\n","import Dexie from 'dexie';\nimport type { StorageAdapter, StorageTable, StorageTransactionContext, TransactionMode } from '../types';\nimport type { StorageSchemaDefinitionOptions } from '../sqlite/types';\nimport type { TableSchemaDefinition } from '../sqlite/schema';\nimport { DexieQueryContext } from './DexieQueryContext';\nimport { DexieStorageTable } from './DexieStorageTable';\n\nexport class DexieAdapter implements StorageAdapter {\n readonly type = 'DexieAdapter';\n readonly name: string;\n readonly db: Dexie;\n private readonly tableCache = new Map<string, StorageTable<any>>();\n\n constructor(databaseName: string) {\n this.db = new Dexie(databaseName);\n this.name = this.db.name;\n }\n\n async open(): Promise<void> {\n // Dexie auto-opens on first operation, so this is typically a no-op.\n // However, after delete() we explicitly re-open to ensure continued usability.\n }\n\n async close(): Promise<void> {\n if (this.db.isOpen()) {\n this.db.close();\n }\n this.tableCache.clear();\n }\n\n async delete(): Promise<void> {\n await this.db.delete();\n this.tableCache.clear();\n // Dexie.delete() closes the database, so re-open it to allow continued use.\n // Without this, subsequent operations would fail with DatabaseClosedError.\n await this.db.open();\n }\n\n async query<R>(callback: (ctx: DexieQueryContext) => Promise<R>): Promise<R> {\n return callback(new DexieQueryContext(this));\n }\n\n defineSchema(version: number, schema: Record<string, TableSchemaDefinition>, _options?: StorageSchemaDefinitionOptions): void {\n const normalized: Record<string, string> = {};\n for (const [tableName, definition] of Object.entries(schema)) {\n if (typeof definition !== 'string') {\n throw new Error(`DexieAdapter requires string schema definitions. Received non-string definition for table '${tableName}'.`);\n }\n normalized[tableName] = definition;\n }\n const dexieVersion = this.db.version(version);\n dexieVersion.stores(normalized);\n }\n\n table<T = any>(name: string): StorageTable<T> {\n if (!this.tableCache.has(name)) {\n const table = this.db.table<T>(name);\n this.tableCache.set(name, new DexieStorageTable(table));\n }\n return this.tableCache.get(name)! as StorageTable<T>;\n }\n\n async transaction<T>(mode: TransactionMode, tableNames: string[], callback: (context: StorageTransactionContext) => Promise<T>): Promise<T> {\n return (this.db.transaction as any)(mode, ...tableNames, async () => {\n const tables: Record<string, StorageTable<any>> = {};\n for (const tableName of tableNames) {\n tables[tableName] = this.table(tableName);\n }\n return callback({ tables });\n });\n }\n}\n","import type { StorageTable, StorageTransactionContext, TransactionMode } from '../types';\nimport type { DexieAdapter } from './DexieAdapter';\n\nexport class DexieQueryContext {\n constructor(private readonly adapter: DexieAdapter) {}\n\n table<T = any>(name: string): StorageTable<T> {\n return this.adapter.table(name);\n }\n\n transaction<T>(mode: TransactionMode, tableNames: string[], callback: (context: StorageTransactionContext) => Promise<T>): Promise<T> {\n return this.adapter.transaction(mode, tableNames, callback);\n }\n}\n","export const normalizeIndexName = (index: string | string[]): string => (Array.isArray(index) ? `[${index.join('+')}]` : index);\n","import type { WhereClause as DexieWhereClause } from 'dexie';\nimport type { StorageCollection, StorageWhereClause } from '../types';\nimport { DexieStorageCollection } from './DexieStorageCollection';\n\nexport class DexieStorageWhereClause<T = any> implements StorageWhereClause<T> {\n private readonly clause: DexieWhereClause<T, any, T>;\n\n constructor(clause: DexieWhereClause<T, any, T>) {\n this.clause = clause;\n }\n\n equals(value: any): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.equals(value));\n }\n\n above(value: any): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.above(value));\n }\n\n aboveOrEqual(value: any): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.aboveOrEqual(value));\n }\n\n below(value: any): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.below(value));\n }\n\n belowOrEqual(value: any): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.belowOrEqual(value));\n }\n\n between(lower: any, upper: any, includeLower?: boolean, includeUpper?: boolean): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.between(lower, upper, includeLower, includeUpper));\n }\n\n inAnyRange(ranges: Array<[any, any]>, options?: { includeLower?: boolean; includeUpper?: boolean }): StorageCollection<T> {\n const normalizedOptions = options\n ? {\n includeLowers: options.includeLower,\n includeUppers: options.includeUpper,\n }\n : undefined;\n return new DexieStorageCollection(this.clause.inAnyRange(ranges as any, normalizedOptions));\n }\n\n startsWith(prefix: string): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.startsWith(prefix));\n }\n\n startsWithIgnoreCase(prefix: string): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.startsWithIgnoreCase(prefix));\n }\n\n startsWithAnyOf(...prefixes: string[]): StorageCollection<T>;\n startsWithAnyOf(prefixes: string[]): StorageCollection<T>;\n startsWithAnyOf(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<string>(args);\n return new DexieStorageCollection(this.clause.startsWithAnyOf(...values));\n }\n\n startsWithAnyOfIgnoreCase(...prefixes: string[]): StorageCollection<T>;\n startsWithAnyOfIgnoreCase(prefixes: string[]): StorageCollection<T>;\n startsWithAnyOfIgnoreCase(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<string>(args);\n return new DexieStorageCollection(this.clause.startsWithAnyOfIgnoreCase(...values));\n }\n\n equalsIgnoreCase(value: string): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.equalsIgnoreCase(value));\n }\n\n anyOf(...values: any[]): StorageCollection<T>;\n anyOf(values: any[]): StorageCollection<T>;\n anyOf(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<any>(args);\n return new DexieStorageCollection(this.clause.anyOf(...values));\n }\n\n anyOfIgnoreCase(...values: string[]): StorageCollection<T>;\n anyOfIgnoreCase(values: string[]): StorageCollection<T>;\n anyOfIgnoreCase(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<string>(args);\n return new DexieStorageCollection(this.clause.anyOfIgnoreCase(...values));\n }\n\n noneOf(...values: any[]): StorageCollection<T>;\n noneOf(values: any[]): StorageCollection<T>;\n noneOf(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<any>(args);\n return new DexieStorageCollection(this.clause.noneOf(values as any));\n }\n\n notEqual(value: any): StorageCollection<T> {\n return new DexieStorageCollection(this.clause.notEqual(value));\n }\n\n private flattenArgs<TValue>(args: any[]): TValue[] {\n if (args.length === 1 && Array.isArray(args[0])) {\n return args[0] as TValue[];\n }\n return args as TValue[];\n }\n}\n","import type { Collection as DexieCollection } from 'dexie';\nimport type { StorageCollection, StorageWhereClause } from '../types';\nimport { normalizeIndexName } from './helpers';\nimport { DexieStorageWhereClause } from './DexieStorageWhereClause';\n\nexport class DexieStorageCollection<T = any> implements StorageCollection<T> {\n private readonly collection: DexieCollection<T, any, T>;\n\n constructor(collection: DexieCollection<T, any, T>) {\n this.collection = collection;\n }\n\n first(): Promise<T | undefined> {\n return this.collection.first();\n }\n\n async last(): Promise<T | undefined> {\n return this.collection.last();\n }\n\n async each(callback: (item: T, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.each((item) => {\n tasks.push(callback(item, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n async eachKey(callback: (key: unknown, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.eachKey((key) => {\n tasks.push(callback(key, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n async eachPrimaryKey(callback: (key: unknown, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.eachPrimaryKey((key) => {\n tasks.push(callback(key, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n async eachUniqueKey(callback: (key: unknown, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.eachUniqueKey((key) => {\n tasks.push(callback(key, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n keys(): Promise<unknown[]> {\n return this.collection.keys();\n }\n\n primaryKeys(): Promise<unknown[]> {\n return this.collection.primaryKeys();\n }\n\n uniqueKeys(): Promise<unknown[]> {\n return this.collection.uniqueKeys();\n }\n\n count(): Promise<number> {\n return this.collection.count();\n }\n\n sortBy(key: string): Promise<T[]> {\n return this.collection.sortBy(key);\n }\n\n distinct(): StorageCollection<T> {\n return new DexieStorageCollection(this.collection.distinct());\n }\n\n jsFilter(predicate: (item: T) => boolean): StorageCollection<T> {\n return new DexieStorageCollection(this.collection.filter(predicate));\n }\n\n or(index: string): StorageWhereClause<T> {\n return new DexieStorageWhereClause(this.collection.or(normalizeIndexName(index)));\n }\n\n clone(props?: Record<string, unknown>): StorageCollection<T> {\n return new DexieStorageCollection(this.collection.clone(props));\n }\n\n reverse(): StorageCollection<T> {\n return new DexieStorageCollection(this.collection.reverse());\n }\n\n offset(offset: number): StorageCollection<T> {\n return new DexieStorageCollection(this.collection.offset(offset));\n }\n\n limit(count: number): StorageCollection<T> {\n return new DexieStorageCollection(this.collection.limit(count));\n }\n\n toCollection(): StorageCollection<T> {\n return this.clone();\n }\n\n delete(): Promise<number> {\n return this.collection.delete();\n }\n\n modify(changes: Partial<T> | ((item: T) => void | Promise<void>)): Promise<number> {\n return this.collection.modify(changes as any);\n }\n\n toArray(): Promise<T[]> {\n return this.collection.toArray();\n }\n}\n","import type { Table as DexieTable } from 'dexie';\nimport type { StorageCollection, StorageTable, StorageWhereClause } from '../types';\nimport { normalizeIndexName } from './helpers';\nimport { DexieStorageCollection } from './DexieStorageCollection';\nimport { DexieStorageWhereClause } from './DexieStorageWhereClause';\n\nexport class DexieStorageTable<T = any> implements StorageTable<T> {\n readonly name: string;\n readonly schema: unknown;\n readonly primaryKey: unknown;\n readonly hook: unknown;\n readonly raw = Object.freeze({\n add: (item: T) => this.table.add(item),\n put: (item: T) => this.table.put(item),\n update: (key: unknown, changes: Partial<T>) => this.table.update(key as any, changes as any),\n delete: (key: unknown) => this.table.delete(key as any),\n get: (key: unknown) => this.table.get(key as any),\n bulkAdd: (items: T[]) => this.table.bulkAdd(items),\n bulkPut: (items: T[]) => this.table.bulkPut(items),\n bulkUpdate: (keysAndChanges: Array<{ key: unknown; changes: Partial<T> }>) => this.table.bulkUpdate(keysAndChanges as any),\n bulkDelete: (keys: Array<unknown>) => this.table.bulkDelete(keys as any),\n clear: () => this.table.clear(),\n });\n\n private readonly table: DexieTable<T, any, T>;\n\n constructor(table: DexieTable<T, any, T>) {\n this.table = table;\n this.name = table.name;\n this.schema = table.schema;\n this.primaryKey = table.schema?.primKey;\n this.hook = table.hook;\n }\n\n add(item: T): Promise<unknown> {\n return this.table.add(item);\n }\n\n put(item: T): Promise<unknown> {\n return this.table.put(item);\n }\n\n update(key: unknown, changes: Partial<T>): Promise<number> {\n return this.table.update(key as any, changes as any);\n }\n\n delete(key: unknown): Promise<void> {\n return this.table.delete(key as any).then(() => undefined);\n }\n\n clear(): Promise<void> {\n return this.table.clear();\n }\n\n get(key: unknown): Promise<T | undefined> {\n return this.table.get(key as any);\n }\n\n toArray(): Promise<T[]> {\n return this.table.toArray();\n }\n\n count(): Promise<number> {\n return this.table.count();\n }\n\n bulkAdd(items: T[]): Promise<unknown> {\n return this.table.bulkAdd(items);\n }\n\n bulkPut(items: T[]): Promise<unknown> {\n return this.table.bulkPut(items);\n }\n\n bulkGet(keys: Array<unknown>): Promise<Array<T | undefined>> {\n return this.table.bulkGet(keys as any);\n }\n\n bulkUpdate(keysAndChanges: Array<{ key: unknown; changes: Partial<T> }>): Promise<number> {\n return this.table.bulkUpdate(keysAndChanges as any);\n }\n\n bulkDelete(keys: Array<unknown>): Promise<void> {\n return this.table.bulkDelete(keys as any);\n }\n\n where(index: string | string[]): StorageWhereClause<T> {\n return new DexieStorageWhereClause(this.table.where(normalizeIndexName(index)));\n }\n\n orderBy(index: string | string[]): StorageCollection<T> {\n return new DexieStorageCollection(this.table.orderBy(normalizeIndexName(index)));\n }\n\n reverse(): StorageCollection<T> {\n return new DexieStorageCollection(this.table.reverse());\n }\n\n offset(offset: number): StorageCollection<T> {\n return new DexieStorageCollection(this.table.offset(offset));\n }\n\n limit(count: number): StorageCollection<T> {\n return new DexieStorageCollection(this.table.limit(count));\n }\n\n mapToClass(ctor: new (...args: any[]) => any): StorageTable<T> {\n this.table.mapToClass(ctor as any);\n return this;\n }\n\n async each(callback: (item: T) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n await this.table.each((item) => {\n tasks.push(callback(item));\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n jsFilter(predicate: (item: T) => boolean): StorageCollection<T> {\n return new DexieStorageCollection(this.table.filter(predicate));\n }\n}\n"],"mappings":"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","names":["Dexie"]}
1
+ {"version":3,"sources":["../src/dexie.ts","../src/storage/dexie/DexieAdapter.ts","../src/storage/dexie/DexieQueryContext.ts","../src/storage/dexie/helpers.ts","../src/storage/dexie/DexieWhereClause.ts","../src/storage/dexie/DexieCollection.ts","../src/storage/dexie/DexieTable.ts"],"sourcesContent":["export { DexieAdapter, DexieQueryContext } from './storage/dexie';\nexport type { StorageAdapter } from './storage/types';\n","import Dexie from 'dexie';\nimport type { StorageAdapter, StorageTable, StorageTransactionContext, TransactionMode } from '../types';\nimport type { StorageSchemaDefinitionOptions } from '../sqlite/types';\nimport type { TableSchemaDefinition } from '../sqlite/schema';\nimport { DexieQueryContext } from './DexieQueryContext';\nimport { DexieTable } from './DexieTable';\n\nexport class DexieAdapter implements StorageAdapter {\n readonly type = 'DexieAdapter';\n readonly name: string;\n readonly db: Dexie;\n private readonly tableCache = new Map<string, StorageTable<any>>();\n\n constructor(databaseName: string) {\n this.db = new Dexie(databaseName);\n this.name = this.db.name;\n }\n\n async open(): Promise<void> {\n // Dexie auto-opens on first operation, so this is typically a no-op.\n // However, after delete() we explicitly re-open to ensure continued usability.\n }\n\n async close(): Promise<void> {\n if (this.db.isOpen()) {\n this.db.close();\n }\n this.tableCache.clear();\n }\n\n async delete(): Promise<void> {\n await this.db.delete();\n this.tableCache.clear();\n // Dexie.delete() closes the database, so re-open it to allow continued use.\n // Without this, subsequent operations would fail with DatabaseClosedError.\n await this.db.open();\n }\n\n async query<R>(callback: (ctx: DexieQueryContext) => Promise<R>): Promise<R> {\n return callback(new DexieQueryContext(this));\n }\n\n defineSchema(version: number, schema: Record<string, TableSchemaDefinition>, _options?: StorageSchemaDefinitionOptions): void {\n const normalized: Record<string, string> = {};\n for (const [tableName, definition] of Object.entries(schema)) {\n if (typeof definition !== 'string') {\n throw new Error(`DexieAdapter requires string schema definitions. Received non-string definition for table '${tableName}'.`);\n }\n normalized[tableName] = definition;\n }\n const dexieVersion = this.db.version(version);\n dexieVersion.stores(normalized);\n }\n\n table<T = any>(name: string): StorageTable<T> {\n if (!this.tableCache.has(name)) {\n const table = this.db.table<T>(name);\n this.tableCache.set(name, new DexieTable(table));\n }\n return this.tableCache.get(name)! as StorageTable<T>;\n }\n\n async transaction<T>(mode: TransactionMode, tableNames: string[], callback: (context: StorageTransactionContext) => Promise<T>): Promise<T> {\n return (this.db.transaction as any)(mode, ...tableNames, async () => {\n const tables: Record<string, StorageTable<any>> = {};\n for (const tableName of tableNames) {\n tables[tableName] = this.table(tableName);\n }\n return callback({ tables });\n });\n }\n}\n","import type { StorageTable, StorageTransactionContext, TransactionMode } from '../types';\nimport type { DexieAdapter } from './DexieAdapter';\n\nexport class DexieQueryContext {\n constructor(private readonly adapter: DexieAdapter) {}\n\n table<T = any>(name: string): StorageTable<T> {\n return this.adapter.table(name);\n }\n\n transaction<T>(mode: TransactionMode, tableNames: string[], callback: (context: StorageTransactionContext) => Promise<T>): Promise<T> {\n return this.adapter.transaction(mode, tableNames, callback);\n }\n}\n","export const normalizeIndexName = (index: string | string[]): string => (Array.isArray(index) ? `[${index.join('+')}]` : index);\n","import type { WhereClause } from 'dexie';\nimport type { StorageCollection, StorageWhereClause } from '../types';\nimport { DexieCollection } from './DexieCollection';\n\nexport class DexieWhereClause<T = any> implements StorageWhereClause<T> {\n private readonly clause: WhereClause<T, any, T>;\n\n constructor(clause: WhereClause<T, any, T>) {\n this.clause = clause;\n }\n\n equals(value: any): StorageCollection<T> {\n return new DexieCollection(this.clause.equals(value));\n }\n\n above(value: any): StorageCollection<T> {\n return new DexieCollection(this.clause.above(value));\n }\n\n aboveOrEqual(value: any): StorageCollection<T> {\n return new DexieCollection(this.clause.aboveOrEqual(value));\n }\n\n below(value: any): StorageCollection<T> {\n return new DexieCollection(this.clause.below(value));\n }\n\n belowOrEqual(value: any): StorageCollection<T> {\n return new DexieCollection(this.clause.belowOrEqual(value));\n }\n\n between(lower: any, upper: any, includeLower?: boolean, includeUpper?: boolean): StorageCollection<T> {\n return new DexieCollection(this.clause.between(lower, upper, includeLower, includeUpper));\n }\n\n inAnyRange(ranges: Array<[any, any]>, options?: { includeLower?: boolean; includeUpper?: boolean }): StorageCollection<T> {\n const normalizedOptions = options\n ? {\n includeLowers: options.includeLower,\n includeUppers: options.includeUpper,\n }\n : undefined;\n return new DexieCollection(this.clause.inAnyRange(ranges as any, normalizedOptions));\n }\n\n startsWith(prefix: string): StorageCollection<T> {\n return new DexieCollection(this.clause.startsWith(prefix));\n }\n\n startsWithIgnoreCase(prefix: string): StorageCollection<T> {\n return new DexieCollection(this.clause.startsWithIgnoreCase(prefix));\n }\n\n startsWithAnyOf(...prefixes: string[]): StorageCollection<T>;\n startsWithAnyOf(prefixes: string[]): StorageCollection<T>;\n startsWithAnyOf(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<string>(args);\n return new DexieCollection(this.clause.startsWithAnyOf(...values));\n }\n\n startsWithAnyOfIgnoreCase(...prefixes: string[]): StorageCollection<T>;\n startsWithAnyOfIgnoreCase(prefixes: string[]): StorageCollection<T>;\n startsWithAnyOfIgnoreCase(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<string>(args);\n return new DexieCollection(this.clause.startsWithAnyOfIgnoreCase(...values));\n }\n\n equalsIgnoreCase(value: string): StorageCollection<T> {\n return new DexieCollection(this.clause.equalsIgnoreCase(value));\n }\n\n anyOf(...values: any[]): StorageCollection<T>;\n anyOf(values: any[]): StorageCollection<T>;\n anyOf(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<any>(args);\n return new DexieCollection(this.clause.anyOf(...values));\n }\n\n anyOfIgnoreCase(...values: string[]): StorageCollection<T>;\n anyOfIgnoreCase(values: string[]): StorageCollection<T>;\n anyOfIgnoreCase(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<string>(args);\n return new DexieCollection(this.clause.anyOfIgnoreCase(...values));\n }\n\n noneOf(...values: any[]): StorageCollection<T>;\n noneOf(values: any[]): StorageCollection<T>;\n noneOf(...args: any[]): StorageCollection<T> {\n const values = this.flattenArgs<any>(args);\n return new DexieCollection(this.clause.noneOf(values as any));\n }\n\n notEqual(value: any): StorageCollection<T> {\n return new DexieCollection(this.clause.notEqual(value));\n }\n\n private flattenArgs<TValue>(args: any[]): TValue[] {\n if (args.length === 1 && Array.isArray(args[0])) {\n return args[0] as TValue[];\n }\n return args as TValue[];\n }\n}\n","import type { Collection } from 'dexie';\nimport type { StorageCollection, StorageWhereClause } from '../types';\nimport { normalizeIndexName } from './helpers';\nimport { DexieWhereClause } from './DexieWhereClause';\n\nexport class DexieCollection<T = any> implements StorageCollection<T> {\n private readonly collection: Collection<T, any, T>;\n\n constructor(collection: Collection<T, any, T>) {\n this.collection = collection;\n }\n\n first(): Promise<T | undefined> {\n return this.collection.first();\n }\n\n async last(): Promise<T | undefined> {\n return this.collection.last();\n }\n\n async each(callback: (item: T, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.each((item) => {\n tasks.push(callback(item, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n async eachKey(callback: (key: unknown, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.eachKey((key) => {\n tasks.push(callback(key, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n async eachPrimaryKey(callback: (key: unknown, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.eachPrimaryKey((key) => {\n tasks.push(callback(key, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n async eachUniqueKey(callback: (key: unknown, index: number) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n let index = 0;\n await this.collection.eachUniqueKey((key) => {\n tasks.push(callback(key, index));\n index += 1;\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n keys(): Promise<unknown[]> {\n return this.collection.keys();\n }\n\n primaryKeys(): Promise<unknown[]> {\n return this.collection.primaryKeys();\n }\n\n uniqueKeys(): Promise<unknown[]> {\n return this.collection.uniqueKeys();\n }\n\n count(): Promise<number> {\n return this.collection.count();\n }\n\n sortBy(key: string): Promise<T[]> {\n return this.collection.sortBy(key);\n }\n\n distinct(): StorageCollection<T> {\n return new DexieCollection(this.collection.distinct());\n }\n\n jsFilter(predicate: (item: T) => boolean): StorageCollection<T> {\n return new DexieCollection(this.collection.filter(predicate));\n }\n\n or(index: string): StorageWhereClause<T> {\n return new DexieWhereClause(this.collection.or(normalizeIndexName(index)));\n }\n\n clone(props?: Record<string, unknown>): StorageCollection<T> {\n return new DexieCollection(this.collection.clone(props));\n }\n\n reverse(): StorageCollection<T> {\n return new DexieCollection(this.collection.reverse());\n }\n\n offset(offset: number): StorageCollection<T> {\n return new DexieCollection(this.collection.offset(offset));\n }\n\n limit(count: number): StorageCollection<T> {\n return new DexieCollection(this.collection.limit(count));\n }\n\n toCollection(): StorageCollection<T> {\n return this.clone();\n }\n\n delete(): Promise<number> {\n return this.collection.delete();\n }\n\n modify(changes: Partial<T> | ((item: T) => void | Promise<void>)): Promise<number> {\n return this.collection.modify(changes as any);\n }\n\n toArray(): Promise<T[]> {\n return this.collection.toArray();\n }\n}\n","import type { Table } from 'dexie';\nimport type { AddItem, StorageCollection, StorageTable, StorageWhereClause } from '../types';\nimport { normalizeIndexName } from './helpers';\nimport { DexieCollection } from './DexieCollection';\nimport { DexieWhereClause } from './DexieWhereClause';\n\nexport class DexieTable<T = any> implements StorageTable<T> {\n readonly name: string;\n readonly schema: unknown;\n readonly primaryKey: unknown;\n readonly hook: unknown;\n readonly raw = Object.freeze({\n add: (item: T): Promise<string> => this.table.add(item) as Promise<string>,\n put: (item: T): Promise<string> => this.table.put(item) as Promise<string>,\n update: (key: string, changes: Partial<T>) => this.table.update(key as any, changes as any),\n delete: (key: string) => this.table.delete(key as any),\n get: (key: string) => this.table.get(key as any),\n bulkAdd: (items: T[]): Promise<string[]> => this.table.bulkAdd(items, { allKeys: true }) as Promise<string[]>,\n bulkPut: (items: T[]): Promise<string[]> => this.table.bulkPut(items, { allKeys: true }) as Promise<string[]>,\n bulkUpdate: (keysAndChanges: Array<{ key: string; changes: Partial<T> }>) => this.table.bulkUpdate(keysAndChanges as any),\n bulkDelete: (keys: string[]) => this.table.bulkDelete(keys as any),\n clear: () => this.table.clear(),\n });\n\n private readonly table: Table<T, any, T>;\n\n constructor(table: Table<T, any, T>) {\n this.table = table;\n this.name = table.name;\n this.schema = table.schema;\n this.primaryKey = table.schema?.primKey;\n this.hook = table.hook;\n }\n\n add(item: AddItem<T>): Promise<string> {\n return this.table.add(item as T);\n }\n\n put(item: T): Promise<string> {\n return this.table.put(item);\n }\n\n update(key: string, changes: Partial<T>): Promise<number> {\n return this.table.update(key as any, changes as any);\n }\n\n delete(key: string): Promise<void> {\n return this.table.delete(key as any).then(() => undefined);\n }\n\n clear(): Promise<void> {\n return this.table.clear();\n }\n\n get(key: string): Promise<T | undefined> {\n return this.table.get(key as any);\n }\n\n toArray(): Promise<T[]> {\n return this.table.toArray();\n }\n\n count(): Promise<number> {\n return this.table.count();\n }\n\n bulkAdd(items: AddItem<T>[]): Promise<string[]> {\n return this.table.bulkAdd(items as T[], { allKeys: true }) as Promise<string[]>;\n }\n\n bulkPut(items: T[]): Promise<string[]> {\n return this.table.bulkPut(items, { allKeys: true }) as Promise<string[]>;\n }\n\n bulkGet(keys: string[]): Promise<Array<T | undefined>> {\n return this.table.bulkGet(keys as any);\n }\n\n bulkUpdate(keysAndChanges: Array<{ key: string; changes: Partial<T> }>): Promise<number> {\n return this.table.bulkUpdate(keysAndChanges as any);\n }\n\n bulkDelete(keys: string[]): Promise<void> {\n return this.table.bulkDelete(keys as any);\n }\n\n where(index: string | string[]): StorageWhereClause<T> {\n return new DexieWhereClause(this.table.where(normalizeIndexName(index)));\n }\n\n orderBy(index: string | string[]): StorageCollection<T> {\n return new DexieCollection(this.table.orderBy(normalizeIndexName(index)));\n }\n\n reverse(): StorageCollection<T> {\n return new DexieCollection(this.table.reverse());\n }\n\n offset(offset: number): StorageCollection<T> {\n return new DexieCollection(this.table.offset(offset));\n }\n\n limit(count: number): StorageCollection<T> {\n return new DexieCollection(this.table.limit(count));\n }\n\n mapToClass(ctor: new (...args: any[]) => any): StorageTable<T> {\n this.table.mapToClass(ctor as any);\n return this;\n }\n\n async each(callback: (item: T) => void | Promise<void>): Promise<void> {\n const tasks: Array<void | Promise<void>> = [];\n await this.table.each((item) => {\n tasks.push(callback(item));\n });\n await Promise.all(tasks.map((task) => (task ? Promise.resolve(task) : Promise.resolve())));\n }\n\n jsFilter(predicate: (item: T) => boolean): StorageCollection<T> {\n return new DexieCollection(this.table.filter(predicate));\n }\n}\n"],"mappings":"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","names":["Dexie"]}
package/dist/dexie.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- export { e as DexieAdapter, D as DexieQueryContext, c as StorageAdapter } from './dexie-Bv-fV10P.cjs';
1
+ export { e as DexieAdapter, D as DexieQueryContext, c as StorageAdapter } from './dexie-1_xyU5MV.cjs';
2
2
  import 'dexie';
3
3
  import './types-CSbIAfu2.cjs';
package/dist/dexie.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { e as DexieAdapter, D as DexieQueryContext, c as StorageAdapter } from './dexie-DJFApKsM.js';
1
+ export { e as DexieAdapter, D as DexieQueryContext, c as StorageAdapter } from './dexie-ChZ0o0Sz.js';
2
2
  import 'dexie';
3
3
  import './types-CSbIAfu2.js';