@quereus/plugin-indexeddb 0.6.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,8 @@ IndexedDB storage plugin for Quereus. Provides persistent storage for browser en
6
6
 
7
7
  - **Browser-native**: Uses IndexedDB for reliable persistent storage
8
8
  - **Transaction isolation**: Read-your-own-writes and snapshot isolation by default
9
- - **Cross-tab sync**: BroadcastChannel-based synchronization across browser tabs
9
+ - **Read cache**: In-memory LRU cache reduces redundant IDB transactions (enabled by default)
10
+ - **Cross-tab sync**: BroadcastChannel-based synchronization across browser tabs, with automatic cache invalidation
10
11
  - **Async iteration**: Efficient range queries with cursor-based iteration
11
12
 
12
13
  ## Installation
@@ -127,14 +128,24 @@ sync.close();
127
128
 
128
129
  | Setting | Type | Default | Description |
129
130
  |---------|------|---------|-------------|
130
- | `prefix` | string | `'quereus'` | Prefix for IndexedDB database names |
131
+ | `databaseName` | string | `'quereus'` | Name for the unified IndexedDB database |
131
132
  | `moduleName` | string | `'store'` | Name to register the virtual table module under |
133
+ | `cache` | CacheOptions | `{ enabled: true, maxEntries: 1000 }` | Read cache configuration (see below) |
134
+
135
+ ### Cache Options
136
+
137
+ | Option | Type | Default | Description |
138
+ |--------|------|---------|-------------|
139
+ | `maxEntries` | number | `1000` | Maximum cached entries per store |
140
+ | `maxBytes` | number | — | Maximum cached bytes per store (unlimited if omitted) |
141
+ | `enabled` | boolean | `true` | Set `false` to disable caching entirely |
132
142
 
133
143
  ### IndexedDBProvider Options
134
144
 
135
145
  | Option | Type | Default | Description |
136
146
  |--------|------|---------|-------------|
137
- | `prefix` | string | `'quereus'` | Prefix for database names: `${prefix}_${schema}_${table}` |
147
+ | `databaseName` | string | `'quereus'` | Name for the unified IndexedDB database |
148
+ | `cache` | CacheOptions | — | Read cache configuration |
138
149
 
139
150
  ## Related Packages
140
151
 
@@ -4,18 +4,21 @@
4
4
  * Propagates DataChangeEvent across browser tabs sharing the same origin.
5
5
  */
6
6
  import type { StoreEventEmitter } from '@quereus/store';
7
+ import type { IndexedDBProvider } from './provider.js';
7
8
  /**
8
9
  * Cross-tab synchronization for IndexedDB stores.
9
10
  *
10
11
  * Listens for local data changes and broadcasts them to other tabs.
11
12
  * Receives broadcasts from other tabs and emits them locally.
13
+ * Invalidates read caches on remote data change events.
12
14
  */
13
15
  export declare class CrossTabSync {
14
16
  private channel;
15
17
  private eventEmitter;
16
18
  private databaseName;
17
19
  private unsubscribe;
18
- constructor(databaseName: string, eventEmitter: StoreEventEmitter);
20
+ private provider;
21
+ constructor(databaseName: string, eventEmitter: StoreEventEmitter, provider?: IndexedDBProvider);
19
22
  /**
20
23
  * Start cross-tab synchronization.
21
24
  * Safe to call in non-browser environments (no-op).
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAazE;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAA6B;gBAEpC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB;IAKjE;;;OAGG;IACH,KAAK,IAAI,IAAI;IAwBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,OAAO,CAAC,aAAa;CActB"}
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAavD;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAM/F;;;OAGG;IACH,KAAK,IAAI,IAAI;IAwBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,OAAO,CAAC,aAAa;CAwBtB"}
@@ -10,15 +10,18 @@ const CHANNEL_PREFIX = 'quereus-store:';
10
10
  *
11
11
  * Listens for local data changes and broadcasts them to other tabs.
12
12
  * Receives broadcasts from other tabs and emits them locally.
13
+ * Invalidates read caches on remote data change events.
13
14
  */
14
15
  export class CrossTabSync {
15
16
  channel = null;
16
17
  eventEmitter;
17
18
  databaseName;
18
19
  unsubscribe = null;
19
- constructor(databaseName, eventEmitter) {
20
+ provider = null;
21
+ constructor(databaseName, eventEmitter, provider) {
20
22
  this.databaseName = databaseName;
21
23
  this.eventEmitter = eventEmitter;
24
+ this.provider = provider ?? null;
22
25
  }
23
26
  /**
24
27
  * Start cross-tab synchronization.
@@ -83,6 +86,16 @@ export class CrossTabSync {
83
86
  if (message.type !== 'data-change') {
84
87
  return;
85
88
  }
89
+ // Invalidate read cache for the affected table
90
+ if (this.provider) {
91
+ const { schemaName, tableName } = message.event;
92
+ if (schemaName && tableName) {
93
+ this.provider.invalidateCache(schemaName, tableName);
94
+ }
95
+ else {
96
+ this.provider.invalidateAllCaches();
97
+ }
98
+ }
86
99
  // Mark as remote to prevent re-broadcast
87
100
  const remoteEvent = {
88
101
  ...message.event,
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wDAAwD;AACxD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAUxC;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,GAA4B,IAAI,CAAC;IACxC,YAAY,CAAoB;IAChC,YAAY,CAAS;IACrB,WAAW,GAAwB,IAAI,CAAC;IAEhD,YAAY,YAAoB,EAAE,YAA+B;QAC/D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,+DAA+D;QAC/D,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEjD,sCAAsC;QACtC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,KAAqC,EAAE,EAAE;YACjE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,oDAAoD;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1D,sDAAsD;YACtD,IAAK,KAAgD,CAAC,MAAM,EAAE,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,KAAsB;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE;SACpB,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,kEAAkE;YAClE,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,OAAyB;QAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,yCAAyC;QACzC,MAAM,WAAW,GAA0C;YACzD,GAAG,OAAO,CAAC,KAAK;YAChB,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,yCAAyC;QACzC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,wDAAwD;AACxD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAUxC;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,GAA4B,IAAI,CAAC;IACxC,YAAY,CAAoB;IAChC,YAAY,CAAS;IACrB,WAAW,GAAwB,IAAI,CAAC;IACxC,QAAQ,GAA6B,IAAI,CAAC;IAElD,YAAY,YAAoB,EAAE,YAA+B,EAAE,QAA4B;QAC7F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,+DAA+D;QAC/D,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEjD,sCAAsC;QACtC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,KAAqC,EAAE,EAAE;YACjE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,oDAAoD;QACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1D,sDAAsD;YACtD,IAAK,KAAgD,CAAC,MAAM,EAAE,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,KAAsB;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE;SACpB,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,kEAAkE;YAClE,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,OAAyB;QAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;YAChD,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,WAAW,GAA0C;YACzD,GAAG,OAAO,CAAC,KAAK;YAChB,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,yCAAyC;QACzC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;CACF"}
@@ -4,7 +4,7 @@
4
4
  * Registers a StoreModule backed by IndexedDB for browser environments.
5
5
  */
6
6
  import type { Database, SqlValue } from '@quereus/quereus';
7
- import { StoreModule } from '@quereus/store';
7
+ import { StoreModule, type CacheOptions } from '@quereus/store';
8
8
  /**
9
9
  * Plugin configuration options.
10
10
  */
@@ -26,6 +26,11 @@ export interface IndexedDBPluginConfig {
26
26
  * @default true
27
27
  */
28
28
  isolation?: boolean;
29
+ /**
30
+ * Read cache configuration for data and index stores.
31
+ * Wraps each store with an in-memory LRU cache to reduce IDB round-trips.
32
+ */
33
+ cache?: CacheOptions;
29
34
  }
30
35
  /**
31
36
  * Register the IndexedDB plugin with a database.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA6B,MAAM,gBAAgB,CAAC;AAGxE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,GAAG,EAAE,QAAQ,EACb,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM;;;;;EAsBrC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA6B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,GAAG,EAAE,QAAQ,EACb,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM;;;;;EAyBrC"}
@@ -12,8 +12,10 @@ export default function register(_db, config = {}) {
12
12
  const databaseName = config.databaseName ?? 'quereus';
13
13
  const moduleName = config.moduleName ?? 'store';
14
14
  const isolation = config.isolation ?? true;
15
+ const cache = config.cache;
15
16
  const provider = new IndexedDBProvider({
16
17
  databaseName,
18
+ cache,
17
19
  });
18
20
  const storeModule = isolation
19
21
  ? createIsolatedStoreModule({ provider })
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA2BlD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,GAAa,EACb,SAAmC,EAAE;IAErC,MAAM,YAAY,GAAI,MAAM,CAAC,YAAuB,IAAI,SAAS,CAAC;IAClE,MAAM,UAAU,GAAI,MAAM,CAAC,UAAqB,IAAI,OAAO,CAAC;IAC5D,MAAM,SAAS,GAAI,MAAM,CAAC,SAAqB,IAAI,IAAI,CAAC;IAExD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;QACtC,YAAY;KACZ,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,SAAS;QAC5B,CAAC,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,CAAC;QACzC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE7B,OAAO;QACN,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,WAAW;aACnB;SACD;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAqB,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAiClD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,GAAa,EACb,SAAmC,EAAE;IAErC,MAAM,YAAY,GAAI,MAAM,CAAC,YAAuB,IAAI,SAAS,CAAC;IAClE,MAAM,UAAU,GAAI,MAAM,CAAC,UAAqB,IAAI,OAAO,CAAC;IAC5D,MAAM,SAAS,GAAI,MAAM,CAAC,SAAqB,IAAI,IAAI,CAAC;IAExD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAuC,CAAC;IAE7D,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;QACtC,YAAY;QACZ,KAAK;KACL,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,SAAS;QAC5B,CAAC,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,CAAC;QACzC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE7B,OAAO;QACN,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,WAAW;aACnB;SACD;KACD,CAAC;AACH,CAAC"}
@@ -12,6 +12,7 @@
12
12
  * __catalog__ - Catalog store (DDL metadata)
13
13
  */
14
14
  import type { KVStore, KVStoreProvider } from '@quereus/store';
15
+ import { type CacheOptions } from '@quereus/store';
15
16
  import { IndexedDBManager } from './manager.js';
16
17
  /**
17
18
  * Options for creating an IndexedDB provider.
@@ -23,6 +24,11 @@ export interface IndexedDBProviderOptions {
23
24
  * @default 'quereus'
24
25
  */
25
26
  databaseName?: string;
27
+ /**
28
+ * Read cache configuration.
29
+ * Wraps each data/index store with an in-memory LRU cache.
30
+ */
31
+ cache?: CacheOptions;
26
32
  }
27
33
  /**
28
34
  * IndexedDB implementation of KVStoreProvider.
@@ -36,6 +42,7 @@ export declare class IndexedDBProvider implements KVStoreProvider {
36
42
  private catalogStore;
37
43
  private statsStore;
38
44
  private manager;
45
+ private cacheOptions;
39
46
  constructor(options?: IndexedDBProviderOptions);
40
47
  getStore(schemaName: string, tableName: string, _options?: Record<string, unknown>): Promise<KVStore>;
41
48
  getIndexStore(schemaName: string, tableName: string, indexName: string): Promise<KVStore>;
@@ -50,6 +57,16 @@ export declare class IndexedDBProvider implements KVStoreProvider {
50
57
  * Get the underlying IndexedDB manager for advanced operations.
51
58
  */
52
59
  getManager(): IndexedDBManager;
60
+ /**
61
+ * Invalidate the read cache for a specific table's data and index stores.
62
+ * Called by cross-tab sync when remote data changes are detected.
63
+ */
64
+ invalidateCache(schemaName: string, tableName: string): void;
65
+ /**
66
+ * Invalidate all read caches. Called on remote data change events
67
+ * when the affected store is unknown.
68
+ */
69
+ invalidateAllCaches(): void;
53
70
  private getOrCreateStore;
54
71
  private closeStoreByName;
55
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAS/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,GAAE,wBAA6B;IAK5C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzF,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxE,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAUnC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzF,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7E;;OAEG;IACH,UAAU,IAAI,gBAAgB;YAIhB,gBAAgB;YAgBhB,gBAAgB;CAO9B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,iBAAiB,CAE7F"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAON,KAAK,YAAY,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,YAAY,CAA2B;gBAEnC,OAAO,GAAE,wBAA6B;IAM5C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzF,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxE,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAUnC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzF,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7E;;OAEG;IACH,UAAU,IAAI,gBAAgB;IAI9B;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAW5D;;;OAGG;IACH,mBAAmB,IAAI,IAAI;YAQb,gBAAgB;YAmBhB,gBAAgB;CAO9B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,iBAAiB,CAE7F"}
@@ -11,7 +11,7 @@
11
11
  * __stats__ - Unified stats store (row counts for all tables)
12
12
  * __catalog__ - Catalog store (DDL metadata)
13
13
  */
14
- import { buildDataStoreName, buildIndexStoreName, CATALOG_STORE_NAME, STATS_STORE_NAME, STORE_SUFFIX, } from '@quereus/store';
14
+ import { buildDataStoreName, buildIndexStoreName, CachedKVStore, CATALOG_STORE_NAME, STATS_STORE_NAME, STORE_SUFFIX, } from '@quereus/store';
15
15
  import { IndexedDBStore } from './store.js';
16
16
  import { IndexedDBManager } from './manager.js';
17
17
  /**
@@ -26,9 +26,11 @@ export class IndexedDBProvider {
26
26
  catalogStore = null;
27
27
  statsStore = null;
28
28
  manager;
29
+ cacheOptions;
29
30
  constructor(options = {}) {
30
31
  this.databaseName = options.databaseName ?? 'quereus';
31
32
  this.manager = IndexedDBManager.getInstance(this.databaseName);
33
+ this.cacheOptions = options.cache;
32
34
  }
33
35
  async getStore(schemaName, tableName, _options) {
34
36
  const storeName = buildDataStoreName(schemaName, tableName);
@@ -105,13 +107,40 @@ export class IndexedDBProvider {
105
107
  getManager() {
106
108
  return this.manager;
107
109
  }
110
+ /**
111
+ * Invalidate the read cache for a specific table's data and index stores.
112
+ * Called by cross-tab sync when remote data changes are detected.
113
+ */
114
+ invalidateCache(schemaName, tableName) {
115
+ const dataStoreName = buildDataStoreName(schemaName, tableName);
116
+ const indexPrefix = `${dataStoreName}${STORE_SUFFIX.INDEX}`;
117
+ for (const [name, store] of this.stores) {
118
+ if ((name === dataStoreName || name.startsWith(indexPrefix)) && store instanceof CachedKVStore) {
119
+ store.invalidateAll();
120
+ }
121
+ }
122
+ }
123
+ /**
124
+ * Invalidate all read caches. Called on remote data change events
125
+ * when the affected store is unknown.
126
+ */
127
+ invalidateAllCaches() {
128
+ for (const store of this.stores.values()) {
129
+ if (store instanceof CachedKVStore) {
130
+ store.invalidateAll();
131
+ }
132
+ }
133
+ }
108
134
  async getOrCreateStore(storeName) {
109
135
  let store = this.stores.get(storeName);
110
136
  if (!store) {
111
- store = await IndexedDBStore.openForTable(this.databaseName, storeName);
112
- if (!store) {
137
+ const raw = await IndexedDBStore.openForTable(this.databaseName, storeName);
138
+ if (!raw) {
113
139
  throw new Error(`IndexedDBStore.openForTable returned null/undefined for ${storeName}`);
114
140
  }
141
+ store = this.cacheOptions?.enabled === false
142
+ ? raw
143
+ : new CachedKVStore(raw, this.cacheOptions);
115
144
  this.stores.set(storeName, store);
116
145
  }
117
146
  return store;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quereus/plugin-indexeddb",
3
- "version": "0.6.0",
3
+ "version": "1.0.0",
4
4
  "type": "module",
5
5
  "description": "IndexedDB storage plugin for Quereus - browser persistent storage",
6
6
  "keywords": [
@@ -38,9 +38,9 @@
38
38
  }
39
39
  },
40
40
  "peerDependencies": {
41
- "@quereus/isolation": "^0.3.0",
42
- "@quereus/quereus": "^0.18.0",
43
- "@quereus/store": "^0.7.0"
41
+ "@quereus/isolation": "^1.0.0",
42
+ "@quereus/quereus": "^1.0.0",
43
+ "@quereus/store": "^1.0.0"
44
44
  },
45
45
  "engines": {
46
46
  "quereus": "^0.24.0"