@anfenn/dync 1.0.2 → 1.0.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.
Files changed (35) hide show
  1. package/README.md +33 -15
  2. package/dist/{chunk-66PSQW4D.js → chunk-PCA4XM2N.js} +17 -17
  3. package/dist/chunk-PCA4XM2N.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 +16 -16
  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-Byhq6TyU.d.ts} +1 -1
  18. package/dist/{index.shared-BGwvMH8f.d.cts → index.shared-DsDBNWlz.d.cts} +1 -1
  19. package/dist/react/index.cjs +2 -2
  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/package.json +9 -1
  25. package/src/core/tableEnhancers.ts +17 -17
  26. package/src/storage/dexie/DexieAdapter.ts +2 -2
  27. package/src/storage/dexie/{DexieStorageCollection.ts → DexieCollection.ts} +12 -12
  28. package/src/storage/dexie/DexieTable.ts +123 -0
  29. package/src/storage/dexie/{DexieStorageWhereClause.ts → DexieWhereClause.ts} +21 -21
  30. package/src/storage/dexie/index.ts +3 -3
  31. package/src/storage/memory/MemoryTable.ts +40 -40
  32. package/src/storage/sqlite/SQLiteTable.ts +34 -36
  33. package/src/storage/types.ts +22 -19
  34. package/dist/chunk-66PSQW4D.js.map +0 -1
  35. package/src/storage/dexie/DexieStorageTable.ts +0 -123
package/dist/dexie.js CHANGED
@@ -17,68 +17,68 @@ var DexieQueryContext = class {
17
17
  // src/storage/dexie/helpers.ts
18
18
  var normalizeIndexName = (index) => Array.isArray(index) ? `[${index.join("+")}]` : index;
19
19
 
20
- // src/storage/dexie/DexieStorageWhereClause.ts
21
- var DexieStorageWhereClause = class {
20
+ // src/storage/dexie/DexieWhereClause.ts
21
+ var DexieWhereClause = class {
22
22
  clause;
23
23
  constructor(clause) {
24
24
  this.clause = clause;
25
25
  }
26
26
  equals(value) {
27
- return new DexieStorageCollection(this.clause.equals(value));
27
+ return new DexieCollection(this.clause.equals(value));
28
28
  }
29
29
  above(value) {
30
- return new DexieStorageCollection(this.clause.above(value));
30
+ return new DexieCollection(this.clause.above(value));
31
31
  }
32
32
  aboveOrEqual(value) {
33
- return new DexieStorageCollection(this.clause.aboveOrEqual(value));
33
+ return new DexieCollection(this.clause.aboveOrEqual(value));
34
34
  }
35
35
  below(value) {
36
- return new DexieStorageCollection(this.clause.below(value));
36
+ return new DexieCollection(this.clause.below(value));
37
37
  }
38
38
  belowOrEqual(value) {
39
- return new DexieStorageCollection(this.clause.belowOrEqual(value));
39
+ return new DexieCollection(this.clause.belowOrEqual(value));
40
40
  }
41
41
  between(lower, upper, includeLower, includeUpper) {
42
- return new DexieStorageCollection(this.clause.between(lower, upper, includeLower, includeUpper));
42
+ return new DexieCollection(this.clause.between(lower, upper, includeLower, includeUpper));
43
43
  }
44
44
  inAnyRange(ranges, options) {
45
45
  const normalizedOptions = options ? {
46
46
  includeLowers: options.includeLower,
47
47
  includeUppers: options.includeUpper
48
48
  } : void 0;
49
- return new DexieStorageCollection(this.clause.inAnyRange(ranges, normalizedOptions));
49
+ return new DexieCollection(this.clause.inAnyRange(ranges, normalizedOptions));
50
50
  }
51
51
  startsWith(prefix) {
52
- return new DexieStorageCollection(this.clause.startsWith(prefix));
52
+ return new DexieCollection(this.clause.startsWith(prefix));
53
53
  }
54
54
  startsWithIgnoreCase(prefix) {
55
- return new DexieStorageCollection(this.clause.startsWithIgnoreCase(prefix));
55
+ return new DexieCollection(this.clause.startsWithIgnoreCase(prefix));
56
56
  }
57
57
  startsWithAnyOf(...args) {
58
58
  const values = this.flattenArgs(args);
59
- return new DexieStorageCollection(this.clause.startsWithAnyOf(...values));
59
+ return new DexieCollection(this.clause.startsWithAnyOf(...values));
60
60
  }
61
61
  startsWithAnyOfIgnoreCase(...args) {
62
62
  const values = this.flattenArgs(args);
63
- return new DexieStorageCollection(this.clause.startsWithAnyOfIgnoreCase(...values));
63
+ return new DexieCollection(this.clause.startsWithAnyOfIgnoreCase(...values));
64
64
  }
65
65
  equalsIgnoreCase(value) {
66
- return new DexieStorageCollection(this.clause.equalsIgnoreCase(value));
66
+ return new DexieCollection(this.clause.equalsIgnoreCase(value));
67
67
  }
68
68
  anyOf(...args) {
69
69
  const values = this.flattenArgs(args);
70
- return new DexieStorageCollection(this.clause.anyOf(...values));
70
+ return new DexieCollection(this.clause.anyOf(...values));
71
71
  }
72
72
  anyOfIgnoreCase(...args) {
73
73
  const values = this.flattenArgs(args);
74
- return new DexieStorageCollection(this.clause.anyOfIgnoreCase(...values));
74
+ return new DexieCollection(this.clause.anyOfIgnoreCase(...values));
75
75
  }
76
76
  noneOf(...args) {
77
77
  const values = this.flattenArgs(args);
78
- return new DexieStorageCollection(this.clause.noneOf(values));
78
+ return new DexieCollection(this.clause.noneOf(values));
79
79
  }
80
80
  notEqual(value) {
81
- return new DexieStorageCollection(this.clause.notEqual(value));
81
+ return new DexieCollection(this.clause.notEqual(value));
82
82
  }
83
83
  flattenArgs(args) {
84
84
  if (args.length === 1 && Array.isArray(args[0])) {
@@ -88,8 +88,8 @@ var DexieStorageWhereClause = class {
88
88
  }
89
89
  };
90
90
 
91
- // src/storage/dexie/DexieStorageCollection.ts
92
- var DexieStorageCollection = class _DexieStorageCollection {
91
+ // src/storage/dexie/DexieCollection.ts
92
+ var DexieCollection = class _DexieCollection {
93
93
  collection;
94
94
  constructor(collection) {
95
95
  this.collection = collection;
@@ -152,25 +152,25 @@ var DexieStorageCollection = class _DexieStorageCollection {
152
152
  return this.collection.sortBy(key);
153
153
  }
154
154
  distinct() {
155
- return new _DexieStorageCollection(this.collection.distinct());
155
+ return new _DexieCollection(this.collection.distinct());
156
156
  }
157
157
  jsFilter(predicate) {
158
- return new _DexieStorageCollection(this.collection.filter(predicate));
158
+ return new _DexieCollection(this.collection.filter(predicate));
159
159
  }
160
160
  or(index) {
161
- return new DexieStorageWhereClause(this.collection.or(normalizeIndexName(index)));
161
+ return new DexieWhereClause(this.collection.or(normalizeIndexName(index)));
162
162
  }
163
163
  clone(props) {
164
- return new _DexieStorageCollection(this.collection.clone(props));
164
+ return new _DexieCollection(this.collection.clone(props));
165
165
  }
166
166
  reverse() {
167
- return new _DexieStorageCollection(this.collection.reverse());
167
+ return new _DexieCollection(this.collection.reverse());
168
168
  }
169
169
  offset(offset) {
170
- return new _DexieStorageCollection(this.collection.offset(offset));
170
+ return new _DexieCollection(this.collection.offset(offset));
171
171
  }
172
172
  limit(count) {
173
- return new _DexieStorageCollection(this.collection.limit(count));
173
+ return new _DexieCollection(this.collection.limit(count));
174
174
  }
175
175
  toCollection() {
176
176
  return this.clone();
@@ -186,8 +186,8 @@ var DexieStorageCollection = class _DexieStorageCollection {
186
186
  }
187
187
  };
188
188
 
189
- // src/storage/dexie/DexieStorageTable.ts
190
- var DexieStorageTable = class {
189
+ // src/storage/dexie/DexieTable.ts
190
+ var DexieTable = class {
191
191
  name;
192
192
  schema;
193
193
  primaryKey;
@@ -198,8 +198,8 @@ var DexieStorageTable = class {
198
198
  update: (key, changes) => this.table.update(key, changes),
199
199
  delete: (key) => this.table.delete(key),
200
200
  get: (key) => this.table.get(key),
201
- bulkAdd: (items) => this.table.bulkAdd(items),
202
- bulkPut: (items) => this.table.bulkPut(items),
201
+ bulkAdd: (items) => this.table.bulkAdd(items, { allKeys: true }),
202
+ bulkPut: (items) => this.table.bulkPut(items, { allKeys: true }),
203
203
  bulkUpdate: (keysAndChanges) => this.table.bulkUpdate(keysAndChanges),
204
204
  bulkDelete: (keys) => this.table.bulkDelete(keys),
205
205
  clear: () => this.table.clear()
@@ -237,10 +237,10 @@ var DexieStorageTable = class {
237
237
  return this.table.count();
238
238
  }
239
239
  bulkAdd(items) {
240
- return this.table.bulkAdd(items);
240
+ return this.table.bulkAdd(items, { allKeys: true });
241
241
  }
242
242
  bulkPut(items) {
243
- return this.table.bulkPut(items);
243
+ return this.table.bulkPut(items, { allKeys: true });
244
244
  }
245
245
  bulkGet(keys) {
246
246
  return this.table.bulkGet(keys);
@@ -252,19 +252,19 @@ var DexieStorageTable = class {
252
252
  return this.table.bulkDelete(keys);
253
253
  }
254
254
  where(index) {
255
- return new DexieStorageWhereClause(this.table.where(normalizeIndexName(index)));
255
+ return new DexieWhereClause(this.table.where(normalizeIndexName(index)));
256
256
  }
257
257
  orderBy(index) {
258
- return new DexieStorageCollection(this.table.orderBy(normalizeIndexName(index)));
258
+ return new DexieCollection(this.table.orderBy(normalizeIndexName(index)));
259
259
  }
260
260
  reverse() {
261
- return new DexieStorageCollection(this.table.reverse());
261
+ return new DexieCollection(this.table.reverse());
262
262
  }
263
263
  offset(offset) {
264
- return new DexieStorageCollection(this.table.offset(offset));
264
+ return new DexieCollection(this.table.offset(offset));
265
265
  }
266
266
  limit(count) {
267
- return new DexieStorageCollection(this.table.limit(count));
267
+ return new DexieCollection(this.table.limit(count));
268
268
  }
269
269
  mapToClass(ctor) {
270
270
  this.table.mapToClass(ctor);
@@ -278,7 +278,7 @@ var DexieStorageTable = class {
278
278
  await Promise.all(tasks.map((task) => task ? Promise.resolve(task) : Promise.resolve()));
279
279
  }
280
280
  jsFilter(predicate) {
281
- return new DexieStorageCollection(this.table.filter(predicate));
281
+ return new DexieCollection(this.table.filter(predicate));
282
282
  }
283
283
  };
284
284
 
@@ -322,7 +322,7 @@ var DexieAdapter = class {
322
322
  table(name) {
323
323
  if (!this.tableCache.has(name)) {
324
324
  const table = this.db.table(name);
325
- this.tableCache.set(name, new DexieStorageTable(table));
325
+ this.tableCache.set(name, new DexieTable(table));
326
326
  }
327
327
  return this.tableCache.get(name);
328
328
  }
package/dist/dexie.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../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":["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":";AAAA,OAAO,WAAW;;;ACGX,IAAM,oBAAN,MAAwB;AAAA,EAC3B,YAA6B,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAErD,MAAe,MAA+B;AAC1C,WAAO,KAAK,QAAQ,MAAM,IAAI;AAAA,EAClC;AAAA,EAEA,YAAe,MAAuB,YAAsB,UAA0E;AAClI,WAAO,KAAK,QAAQ,YAAY,MAAM,YAAY,QAAQ;AAAA,EAC9D;AACJ;;;ACbO,IAAM,qBAAqB,CAAC,UAAsC,MAAM,QAAQ,KAAK,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM;;;ACIlH,IAAM,0BAAN,MAAwE;AAAA,EAC1D;AAAA,EAEjB,YAAY,QAAqC;AAC7C,SAAK,SAAS;AAAA,EAClB;AAAA,EAEA,OAAO,OAAkC;AACrC,WAAO,IAAI,uBAAuB,KAAK,OAAO,OAAO,KAAK,CAAC;AAAA,EAC/D;AAAA,EAEA,MAAM,OAAkC;AACpC,WAAO,IAAI,uBAAuB,KAAK,OAAO,MAAM,KAAK,CAAC;AAAA,EAC9D;AAAA,EAEA,aAAa,OAAkC;AAC3C,WAAO,IAAI,uBAAuB,KAAK,OAAO,aAAa,KAAK,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,OAAkC;AACpC,WAAO,IAAI,uBAAuB,KAAK,OAAO,MAAM,KAAK,CAAC;AAAA,EAC9D;AAAA,EAEA,aAAa,OAAkC;AAC3C,WAAO,IAAI,uBAAuB,KAAK,OAAO,aAAa,KAAK,CAAC;AAAA,EACrE;AAAA,EAEA,QAAQ,OAAY,OAAY,cAAwB,cAA8C;AAClG,WAAO,IAAI,uBAAuB,KAAK,OAAO,QAAQ,OAAO,OAAO,cAAc,YAAY,CAAC;AAAA,EACnG;AAAA,EAEA,WAAW,QAA2B,SAAoF;AACtH,UAAM,oBAAoB,UACpB;AAAA,MACI,eAAe,QAAQ;AAAA,MACvB,eAAe,QAAQ;AAAA,IAC3B,IACA;AACN,WAAO,IAAI,uBAAuB,KAAK,OAAO,WAAW,QAAe,iBAAiB,CAAC;AAAA,EAC9F;AAAA,EAEA,WAAW,QAAsC;AAC7C,WAAO,IAAI,uBAAuB,KAAK,OAAO,WAAW,MAAM,CAAC;AAAA,EACpE;AAAA,EAEA,qBAAqB,QAAsC;AACvD,WAAO,IAAI,uBAAuB,KAAK,OAAO,qBAAqB,MAAM,CAAC;AAAA,EAC9E;AAAA,EAIA,mBAAmB,MAAmC;AAClD,UAAM,SAAS,KAAK,YAAoB,IAAI;AAC5C,WAAO,IAAI,uBAAuB,KAAK,OAAO,gBAAgB,GAAG,MAAM,CAAC;AAAA,EAC5E;AAAA,EAIA,6BAA6B,MAAmC;AAC5D,UAAM,SAAS,KAAK,YAAoB,IAAI;AAC5C,WAAO,IAAI,uBAAuB,KAAK,OAAO,0BAA0B,GAAG,MAAM,CAAC;AAAA,EACtF;AAAA,EAEA,iBAAiB,OAAqC;AAClD,WAAO,IAAI,uBAAuB,KAAK,OAAO,iBAAiB,KAAK,CAAC;AAAA,EACzE;AAAA,EAIA,SAAS,MAAmC;AACxC,UAAM,SAAS,KAAK,YAAiB,IAAI;AACzC,WAAO,IAAI,uBAAuB,KAAK,OAAO,MAAM,GAAG,MAAM,CAAC;AAAA,EAClE;AAAA,EAIA,mBAAmB,MAAmC;AAClD,UAAM,SAAS,KAAK,YAAoB,IAAI;AAC5C,WAAO,IAAI,uBAAuB,KAAK,OAAO,gBAAgB,GAAG,MAAM,CAAC;AAAA,EAC5E;AAAA,EAIA,UAAU,MAAmC;AACzC,UAAM,SAAS,KAAK,YAAiB,IAAI;AACzC,WAAO,IAAI,uBAAuB,KAAK,OAAO,OAAO,MAAa,CAAC;AAAA,EACvE;AAAA,EAEA,SAAS,OAAkC;AACvC,WAAO,IAAI,uBAAuB,KAAK,OAAO,SAAS,KAAK,CAAC;AAAA,EACjE;AAAA,EAEQ,YAAoB,MAAuB;AAC/C,QAAI,KAAK,WAAW,KAAK,MAAM,QAAQ,KAAK,CAAC,CAAC,GAAG;AAC7C,aAAO,KAAK,CAAC;AAAA,IACjB;AACA,WAAO;AAAA,EACX;AACJ;;;ACjGO,IAAM,yBAAN,MAAM,wBAAgE;AAAA,EACxD;AAAA,EAEjB,YAAY,YAAwC;AAChD,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,QAAgC;AAC5B,WAAO,KAAK,WAAW,MAAM;AAAA,EACjC;AAAA,EAEA,MAAM,OAA+B;AACjC,WAAO,KAAK,WAAW,KAAK;AAAA,EAChC;AAAA,EAEA,MAAM,KAAK,UAA2E;AAClF,UAAM,QAAqC,CAAC;AAC5C,QAAI,QAAQ;AACZ,UAAM,KAAK,WAAW,KAAK,CAAC,SAAS;AACjC,YAAM,KAAK,SAAS,MAAM,KAAK,CAAC;AAChC,eAAS;AAAA,IACb,CAAC;AACD,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAU,OAAO,QAAQ,QAAQ,IAAI,IAAI,QAAQ,QAAQ,CAAE,CAAC;AAAA,EAC7F;AAAA,EAEA,MAAM,QAAQ,UAAgF;AAC1F,UAAM,QAAqC,CAAC;AAC5C,QAAI,QAAQ;AACZ,UAAM,KAAK,WAAW,QAAQ,CAAC,QAAQ;AACnC,YAAM,KAAK,SAAS,KAAK,KAAK,CAAC;AAC/B,eAAS;AAAA,IACb,CAAC;AACD,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAU,OAAO,QAAQ,QAAQ,IAAI,IAAI,QAAQ,QAAQ,CAAE,CAAC;AAAA,EAC7F;AAAA,EAEA,MAAM,eAAe,UAAgF;AACjG,UAAM,QAAqC,CAAC;AAC5C,QAAI,QAAQ;AACZ,UAAM,KAAK,WAAW,eAAe,CAAC,QAAQ;AAC1C,YAAM,KAAK,SAAS,KAAK,KAAK,CAAC;AAC/B,eAAS;AAAA,IACb,CAAC;AACD,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAU,OAAO,QAAQ,QAAQ,IAAI,IAAI,QAAQ,QAAQ,CAAE,CAAC;AAAA,EAC7F;AAAA,EAEA,MAAM,cAAc,UAAgF;AAChG,UAAM,QAAqC,CAAC;AAC5C,QAAI,QAAQ;AACZ,UAAM,KAAK,WAAW,cAAc,CAAC,QAAQ;AACzC,YAAM,KAAK,SAAS,KAAK,KAAK,CAAC;AAC/B,eAAS;AAAA,IACb,CAAC;AACD,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAU,OAAO,QAAQ,QAAQ,IAAI,IAAI,QAAQ,QAAQ,CAAE,CAAC;AAAA,EAC7F;AAAA,EAEA,OAA2B;AACvB,WAAO,KAAK,WAAW,KAAK;AAAA,EAChC;AAAA,EAEA,cAAkC;AAC9B,WAAO,KAAK,WAAW,YAAY;AAAA,EACvC;AAAA,EAEA,aAAiC;AAC7B,WAAO,KAAK,WAAW,WAAW;AAAA,EACtC;AAAA,EAEA,QAAyB;AACrB,WAAO,KAAK,WAAW,MAAM;AAAA,EACjC;AAAA,EAEA,OAAO,KAA2B;AAC9B,WAAO,KAAK,WAAW,OAAO,GAAG;AAAA,EACrC;AAAA,EAEA,WAAiC;AAC7B,WAAO,IAAI,wBAAuB,KAAK,WAAW,SAAS,CAAC;AAAA,EAChE;AAAA,EAEA,SAAS,WAAuD;AAC5D,WAAO,IAAI,wBAAuB,KAAK,WAAW,OAAO,SAAS,CAAC;AAAA,EACvE;AAAA,EAEA,GAAG,OAAsC;AACrC,WAAO,IAAI,wBAAwB,KAAK,WAAW,GAAG,mBAAmB,KAAK,CAAC,CAAC;AAAA,EACpF;AAAA,EAEA,MAAM,OAAuD;AACzD,WAAO,IAAI,wBAAuB,KAAK,WAAW,MAAM,KAAK,CAAC;AAAA,EAClE;AAAA,EAEA,UAAgC;AAC5B,WAAO,IAAI,wBAAuB,KAAK,WAAW,QAAQ,CAAC;AAAA,EAC/D;AAAA,EAEA,OAAO,QAAsC;AACzC,WAAO,IAAI,wBAAuB,KAAK,WAAW,OAAO,MAAM,CAAC;AAAA,EACpE;AAAA,EAEA,MAAM,OAAqC;AACvC,WAAO,IAAI,wBAAuB,KAAK,WAAW,MAAM,KAAK,CAAC;AAAA,EAClE;AAAA,EAEA,eAAqC;AACjC,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,SAA0B;AACtB,WAAO,KAAK,WAAW,OAAO;AAAA,EAClC;AAAA,EAEA,OAAO,SAA4E;AAC/E,WAAO,KAAK,WAAW,OAAO,OAAc;AAAA,EAChD;AAAA,EAEA,UAAwB;AACpB,WAAO,KAAK,WAAW,QAAQ;AAAA,EACnC;AACJ;;;ACrHO,IAAM,oBAAN,MAA4D;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM,OAAO,OAAO;AAAA,IACzB,KAAK,CAAC,SAAY,KAAK,MAAM,IAAI,IAAI;AAAA,IACrC,KAAK,CAAC,SAAY,KAAK,MAAM,IAAI,IAAI;AAAA,IACrC,QAAQ,CAAC,KAAc,YAAwB,KAAK,MAAM,OAAO,KAAY,OAAc;AAAA,IAC3F,QAAQ,CAAC,QAAiB,KAAK,MAAM,OAAO,GAAU;AAAA,IACtD,KAAK,CAAC,QAAiB,KAAK,MAAM,IAAI,GAAU;AAAA,IAChD,SAAS,CAAC,UAAe,KAAK,MAAM,QAAQ,KAAK;AAAA,IACjD,SAAS,CAAC,UAAe,KAAK,MAAM,QAAQ,KAAK;AAAA,IACjD,YAAY,CAAC,mBAAiE,KAAK,MAAM,WAAW,cAAqB;AAAA,IACzH,YAAY,CAAC,SAAyB,KAAK,MAAM,WAAW,IAAW;AAAA,IACvE,OAAO,MAAM,KAAK,MAAM,MAAM;AAAA,EAClC,CAAC;AAAA,EAEgB;AAAA,EAEjB,YAAY,OAA8B;AACtC,SAAK,QAAQ;AACb,SAAK,OAAO,MAAM;AAClB,SAAK,SAAS,MAAM;AACpB,SAAK,aAAa,MAAM,QAAQ;AAChC,SAAK,OAAO,MAAM;AAAA,EACtB;AAAA,EAEA,IAAI,MAA2B;AAC3B,WAAO,KAAK,MAAM,IAAI,IAAI;AAAA,EAC9B;AAAA,EAEA,IAAI,MAA2B;AAC3B,WAAO,KAAK,MAAM,IAAI,IAAI;AAAA,EAC9B;AAAA,EAEA,OAAO,KAAc,SAAsC;AACvD,WAAO,KAAK,MAAM,OAAO,KAAY,OAAc;AAAA,EACvD;AAAA,EAEA,OAAO,KAA6B;AAChC,WAAO,KAAK,MAAM,OAAO,GAAU,EAAE,KAAK,MAAM,MAAS;AAAA,EAC7D;AAAA,EAEA,QAAuB;AACnB,WAAO,KAAK,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,IAAI,KAAsC;AACtC,WAAO,KAAK,MAAM,IAAI,GAAU;AAAA,EACpC;AAAA,EAEA,UAAwB;AACpB,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC9B;AAAA,EAEA,QAAyB;AACrB,WAAO,KAAK,MAAM,MAAM;AAAA,EAC5B;AAAA,EAEA,QAAQ,OAA8B;AAClC,WAAO,KAAK,MAAM,QAAQ,KAAK;AAAA,EACnC;AAAA,EAEA,QAAQ,OAA8B;AAClC,WAAO,KAAK,MAAM,QAAQ,KAAK;AAAA,EACnC;AAAA,EAEA,QAAQ,MAAqD;AACzD,WAAO,KAAK,MAAM,QAAQ,IAAW;AAAA,EACzC;AAAA,EAEA,WAAW,gBAA+E;AACtF,WAAO,KAAK,MAAM,WAAW,cAAqB;AAAA,EACtD;AAAA,EAEA,WAAW,MAAqC;AAC5C,WAAO,KAAK,MAAM,WAAW,IAAW;AAAA,EAC5C;AAAA,EAEA,MAAM,OAAiD;AACnD,WAAO,IAAI,wBAAwB,KAAK,MAAM,MAAM,mBAAmB,KAAK,CAAC,CAAC;AAAA,EAClF;AAAA,EAEA,QAAQ,OAAgD;AACpD,WAAO,IAAI,uBAAuB,KAAK,MAAM,QAAQ,mBAAmB,KAAK,CAAC,CAAC;AAAA,EACnF;AAAA,EAEA,UAAgC;AAC5B,WAAO,IAAI,uBAAuB,KAAK,MAAM,QAAQ,CAAC;AAAA,EAC1D;AAAA,EAEA,OAAO,QAAsC;AACzC,WAAO,IAAI,uBAAuB,KAAK,MAAM,OAAO,MAAM,CAAC;AAAA,EAC/D;AAAA,EAEA,MAAM,OAAqC;AACvC,WAAO,IAAI,uBAAuB,KAAK,MAAM,MAAM,KAAK,CAAC;AAAA,EAC7D;AAAA,EAEA,WAAW,MAAoD;AAC3D,SAAK,MAAM,WAAW,IAAW;AACjC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,KAAK,UAA4D;AACnE,UAAM,QAAqC,CAAC;AAC5C,UAAM,KAAK,MAAM,KAAK,CAAC,SAAS;AAC5B,YAAM,KAAK,SAAS,IAAI,CAAC;AAAA,IAC7B,CAAC;AACD,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAU,OAAO,QAAQ,QAAQ,IAAI,IAAI,QAAQ,QAAQ,CAAE,CAAC;AAAA,EAC7F;AAAA,EAEA,SAAS,WAAuD;AAC5D,WAAO,IAAI,uBAAuB,KAAK,MAAM,OAAO,SAAS,CAAC;AAAA,EAClE;AACJ;;;ALnHO,IAAM,eAAN,MAA6C;AAAA,EACvC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACQ,aAAa,oBAAI,IAA+B;AAAA,EAEjE,YAAY,cAAsB;AAC9B,SAAK,KAAK,IAAI,MAAM,YAAY;AAChC,SAAK,OAAO,KAAK,GAAG;AAAA,EACxB;AAAA,EAEA,MAAM,OAAsB;AAAA,EAG5B;AAAA,EAEA,MAAM,QAAuB;AACzB,QAAI,KAAK,GAAG,OAAO,GAAG;AAClB,WAAK,GAAG,MAAM;AAAA,IAClB;AACA,SAAK,WAAW,MAAM;AAAA,EAC1B;AAAA,EAEA,MAAM,SAAwB;AAC1B,UAAM,KAAK,GAAG,OAAO;AACrB,SAAK,WAAW,MAAM;AAGtB,UAAM,KAAK,GAAG,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,MAAS,UAA8D;AACzE,WAAO,SAAS,IAAI,kBAAkB,IAAI,CAAC;AAAA,EAC/C;AAAA,EAEA,aAAa,SAAiB,QAA+C,UAAiD;AAC1H,UAAM,aAAqC,CAAC;AAC5C,eAAW,CAAC,WAAW,UAAU,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC1D,UAAI,OAAO,eAAe,UAAU;AAChC,cAAM,IAAI,MAAM,8FAA8F,SAAS,IAAI;AAAA,MAC/H;AACA,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,UAAM,eAAe,KAAK,GAAG,QAAQ,OAAO;AAC5C,iBAAa,OAAO,UAAU;AAAA,EAClC;AAAA,EAEA,MAAe,MAA+B;AAC1C,QAAI,CAAC,KAAK,WAAW,IAAI,IAAI,GAAG;AAC5B,YAAM,QAAQ,KAAK,GAAG,MAAS,IAAI;AACnC,WAAK,WAAW,IAAI,MAAM,IAAI,kBAAkB,KAAK,CAAC;AAAA,IAC1D;AACA,WAAO,KAAK,WAAW,IAAI,IAAI;AAAA,EACnC;AAAA,EAEA,MAAM,YAAe,MAAuB,YAAsB,UAA0E;AACxI,WAAQ,KAAK,GAAG,YAAoB,MAAM,GAAG,YAAY,YAAY;AACjE,YAAM,SAA4C,CAAC;AACnD,iBAAW,aAAa,YAAY;AAChC,eAAO,SAAS,IAAI,KAAK,MAAM,SAAS;AAAA,MAC5C;AACA,aAAO,SAAS,EAAE,OAAO,CAAC;AAAA,IAC9B,CAAC;AAAA,EACL;AACJ;","names":[]}
1
+ {"version":3,"sources":["../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":["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":[]}
package/dist/index.cjs CHANGED
@@ -513,7 +513,7 @@ function enhanceSyncTable({ table, tableName, withTransaction, state, enhancedTa
513
513
  }
514
514
  };
515
515
  const wrappedBulkAdd = async (items) => {
516
- if (items.length === 0) return;
516
+ if (items.length === 0) return [];
517
517
  const now = (/* @__PURE__ */ new Date()).toISOString();
518
518
  const syncedItems = items.map((item) => {
519
519
  const localId = item._localId || createLocalId();
@@ -541,7 +541,7 @@ function enhanceSyncTable({ table, tableName, withTransaction, state, enhancedTa
541
541
  return result;
542
542
  };
543
543
  const wrappedBulkPut = async (items) => {
544
- if (items.length === 0) return;
544
+ if (items.length === 0) return [];
545
545
  const now = (/* @__PURE__ */ new Date()).toISOString();
546
546
  const syncedItems = items.map((item) => {
547
547
  const localId = item._localId || createLocalId();
@@ -2047,23 +2047,23 @@ var MemoryTable = class {
2047
2047
  return this.baseBulkAdd(items);
2048
2048
  }
2049
2049
  baseBulkAdd(items) {
2050
- let lastKey = void 0;
2050
+ const keys = [];
2051
2051
  for (let index = 0; index < items.length; index += 1) {
2052
2052
  const item = items[index];
2053
- lastKey = this.baseAdd(item);
2053
+ keys.push(this.baseAdd(item));
2054
2054
  }
2055
- return lastKey;
2055
+ return keys;
2056
2056
  }
2057
2057
  async bulkPut(items) {
2058
2058
  return this.baseBulkPut(items);
2059
2059
  }
2060
2060
  baseBulkPut(items) {
2061
- let lastKey = void 0;
2061
+ const keys = [];
2062
2062
  for (let index = 0; index < items.length; index += 1) {
2063
2063
  const item = items[index];
2064
- lastKey = this.basePut(item);
2064
+ keys.push(this.basePut(item));
2065
2065
  }
2066
- return lastKey;
2066
+ return keys;
2067
2067
  }
2068
2068
  async bulkGet(keys) {
2069
2069
  return Promise.all(keys.map((key) => this.get(key)));
@@ -3283,12 +3283,12 @@ var SQLiteTable = class {
3283
3283
  return this.baseBulkAdd(items);
3284
3284
  }
3285
3285
  async baseBulkAdd(items) {
3286
- if (!items.length) return void 0;
3286
+ if (!items.length) return [];
3287
3287
  const columns = this.columnNames;
3288
3288
  const columnCount = columns.length;
3289
3289
  const maxParamsPerBatch = 500;
3290
3290
  const batchSize = Math.max(1, Math.floor(maxParamsPerBatch / columnCount));
3291
- let lastKey = void 0;
3291
+ const allKeys = [];
3292
3292
  for (let i = 0; i < items.length; i += batchSize) {
3293
3293
  const batch = items.slice(i, i + batchSize);
3294
3294
  const records = batch.map((item) => this.prepareRecordForWrite(item));
@@ -3297,25 +3297,25 @@ var SQLiteTable = class {
3297
3297
  const values = [];
3298
3298
  for (const record of records) {
3299
3299
  values.push(...this.extractColumnValues(record));
3300
+ allKeys.push(record[LOCAL_PK]);
3300
3301
  }
3301
3302
  await this.adapter.run(
3302
3303
  `INSERT INTO ${quoteIdentifier(this.name)} (${columns.map((c) => quoteIdentifier(c)).join(", ")}) VALUES ${placeholders}`,
3303
3304
  values
3304
3305
  );
3305
- lastKey = records[records.length - 1][LOCAL_PK];
3306
3306
  }
3307
- return lastKey;
3307
+ return allKeys;
3308
3308
  }
3309
3309
  async bulkPut(items) {
3310
3310
  return this.baseBulkPut(items);
3311
3311
  }
3312
3312
  async baseBulkPut(items) {
3313
- if (!items.length) return void 0;
3313
+ if (!items.length) return [];
3314
3314
  const columns = this.columnNames;
3315
3315
  const columnCount = columns.length;
3316
3316
  const maxParamsPerBatch = 500;
3317
3317
  const batchSize = Math.max(1, Math.floor(maxParamsPerBatch / columnCount));
3318
- let lastKey = void 0;
3318
+ const allKeys = [];
3319
3319
  for (let i = 0; i < items.length; i += batchSize) {
3320
3320
  const batch = items.slice(i, i + batchSize);
3321
3321
  const records = batch.map((item) => this.prepareRecordForWrite(item));
@@ -3324,14 +3324,14 @@ var SQLiteTable = class {
3324
3324
  const values = [];
3325
3325
  for (const record of records) {
3326
3326
  values.push(...this.extractColumnValues(record));
3327
+ allKeys.push(record[LOCAL_PK]);
3327
3328
  }
3328
3329
  await this.adapter.run(
3329
3330
  `INSERT OR REPLACE INTO ${quoteIdentifier(this.name)} (${columns.map((c) => quoteIdentifier(c)).join(", ")}) VALUES ${placeholders}`,
3330
3331
  values
3331
3332
  );
3332
- lastKey = records[records.length - 1][LOCAL_PK];
3333
3333
  }
3334
- return lastKey;
3334
+ return allKeys;
3335
3335
  }
3336
3336
  async bulkGet(keys) {
3337
3337
  if (!keys.length) return [];