@quereus/store 0.5.1 → 0.6.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 +310 -227
- package/dist/src/common/index.d.ts +1 -0
- package/dist/src/common/index.d.ts.map +1 -1
- package/dist/src/common/index.js +2 -0
- package/dist/src/common/index.js.map +1 -1
- package/dist/src/common/isolated-store.d.ts +73 -0
- package/dist/src/common/isolated-store.d.ts.map +1 -0
- package/dist/src/common/isolated-store.js +58 -0
- package/dist/src/common/isolated-store.js.map +1 -0
- package/dist/src/common/store-module.d.ts +21 -1
- package/dist/src/common/store-module.d.ts.map +1 -1
- package/dist/src/common/store-module.js +28 -0
- package/dist/src/common/store-module.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -1,227 +1,310 @@
|
|
|
1
|
-
# @quereus/store
|
|
2
|
-
|
|
3
|
-
Abstract key-value storage module for [Quereus](https://github.com/gotchoices/quereus). Provides platform-agnostic interfaces and a generic `StoreModule` virtual table implementation.
|
|
4
|
-
|
|
5
|
-
## Architecture
|
|
6
|
-
|
|
7
|
-
This package provides the **abstract layer** that separates virtual table logic from platform-specific storage:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
@quereus/store (this package)
|
|
11
|
-
├── KVStore interface - Abstract key-value store
|
|
12
|
-
├── KVStoreProvider interface - Store factory/management
|
|
13
|
-
├── StoreModule - Generic VirtualTableModule
|
|
14
|
-
├── StoreTable - Generic virtual table implementation
|
|
15
|
-
├── StoreConnection - Generic transaction support
|
|
16
|
-
└── Common utilities - Encoding, serialization, events
|
|
17
|
-
|
|
18
|
-
@quereus/plugin-leveldb (Node.js) @quereus/plugin-indexeddb (Browser)
|
|
19
|
-
├── LevelDBStore ├── IndexedDBStore
|
|
20
|
-
├── LevelDBProvider ├── IndexedDBProvider
|
|
21
|
-
└── Plugin registration ├── IndexedDBManager
|
|
22
|
-
└── CrossTabSync
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
This architecture enables:
|
|
26
|
-
- **Platform portability** - Same SQL tables work across Node.js, browsers, and mobile
|
|
27
|
-
- **Custom storage backends** - Implement `KVStore` for IndexedDB, LevelDB, LMDB, or other "NoSQL" stores
|
|
28
|
-
- **Dependency injection** - Use `KVStoreProvider` for store management
|
|
29
|
-
|
|
30
|
-
## Storage Architecture
|
|
31
|
-
|
|
32
|
-
The store module uses separate logical stores for different data types:
|
|
33
|
-
|
|
34
|
-
**Store Naming Convention:**
|
|
35
|
-
- `{schema}.{table}` - Data store (row data)
|
|
36
|
-
- `{schema}.{table}_idx_{indexName}` - Index stores (one per secondary index)
|
|
37
|
-
- `{prefix}.__stats__` - Unified stats store (row counts for all tables)
|
|
38
|
-
- `__catalog__` - Catalog store (DDL metadata)
|
|
39
|
-
|
|
40
|
-
**Key Formats:**
|
|
41
|
-
- **Data keys**: Encoded primary key (no prefix)
|
|
42
|
-
- **Index keys**: Encoded index columns + encoded PK
|
|
43
|
-
- **Catalog keys**: `{schema}.{table}` as string
|
|
44
|
-
|
|
45
|
-
This design eliminates redundant prefixes and groups related stores together by table name.
|
|
46
|
-
|
|
47
|
-
## Installation
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
npm install @quereus/store
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
For platform-specific implementations:
|
|
54
|
-
```bash
|
|
55
|
-
# Node.js
|
|
56
|
-
npm install @quereus/plugin-leveldb
|
|
57
|
-
|
|
58
|
-
# Browser
|
|
59
|
-
npm install @quereus/plugin-indexeddb
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Usage
|
|
63
|
-
|
|
64
|
-
### With a Provider
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
import { Database } from '@quereus/quereus';
|
|
68
|
-
import { StoreModule } from '@quereus/store';
|
|
69
|
-
import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
70
|
-
// OR: import { createIndexedDBProvider } from '@quereus/plugin-indexeddb';
|
|
71
|
-
|
|
72
|
-
const db = new Database();
|
|
73
|
-
|
|
74
|
-
// Create provider for your platform
|
|
75
|
-
const provider = createLevelDBProvider({ basePath: './data' });
|
|
76
|
-
|
|
77
|
-
// Create the generic store module with your provider
|
|
78
|
-
const storeModule = new StoreModule(provider);
|
|
79
|
-
db.registerModule('store', storeModule);
|
|
80
|
-
|
|
81
|
-
// Use it in SQL
|
|
82
|
-
await db.exec(`
|
|
83
|
-
create table users (id integer primary key, name text)
|
|
84
|
-
using store
|
|
85
|
-
`);
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Custom Storage Backend
|
|
89
|
-
|
|
90
|
-
Implement `KVStore` and `KVStoreProvider` to create custom storage backends:
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
import type { KVStore, KVStoreProvider } from '@quereus/store';
|
|
94
|
-
|
|
95
|
-
class MyCustomStore implements KVStore {
|
|
96
|
-
async get(key: Uint8Array) { /* ... */ }
|
|
97
|
-
async put(key: Uint8Array, value: Uint8Array) { /* ... */ }
|
|
98
|
-
async delete(key: Uint8Array) { /* ... */ }
|
|
99
|
-
async has(key: Uint8Array) { /* ... */ }
|
|
100
|
-
iterate(options?: IterateOptions) { /* ... */ }
|
|
101
|
-
batch() { /* ... */ }
|
|
102
|
-
async close() { /* ... */ }
|
|
103
|
-
async approximateCount(options?: IterateOptions) { /* ... */ }
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
class MyCustomProvider implements KVStoreProvider {
|
|
107
|
-
async getStore(schemaName: string, tableName: string) {
|
|
108
|
-
return new MyCustomStore(/* ... */);
|
|
109
|
-
}
|
|
110
|
-
async getIndexStore(schemaName: string, tableName: string, indexName: string) {
|
|
111
|
-
return new MyCustomStore(/* ... */);
|
|
112
|
-
}
|
|
113
|
-
async getStatsStore(schemaName: string, tableName: string) {
|
|
114
|
-
return new MyCustomStore(/* ... */);
|
|
115
|
-
}
|
|
116
|
-
async getCatalogStore() { /* ... */ }
|
|
117
|
-
async closeStore(schemaName: string, tableName: string) { /* ... */ }
|
|
118
|
-
async closeIndexStore(schemaName: string, tableName: string, indexName: string) { /* ... */ }
|
|
119
|
-
async closeAll() { /* ... */ }
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Use it with StoreModule
|
|
123
|
-
const provider = new MyCustomProvider();
|
|
124
|
-
const module = new StoreModule(provider);
|
|
125
|
-
db.registerModule('store', module);
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
## KVStore Interface
|
|
129
|
-
|
|
130
|
-
The `KVStore` interface is the foundation for all storage backends:
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
interface KVStore {
|
|
134
|
-
get(key: Uint8Array): Promise<Uint8Array | undefined>;
|
|
135
|
-
put(key: Uint8Array, value: Uint8Array): Promise<void>;
|
|
136
|
-
delete(key: Uint8Array): Promise<void>;
|
|
137
|
-
has(key: Uint8Array): Promise<boolean>;
|
|
138
|
-
iterate(options?: IterateOptions): AsyncIterable<KVEntry>;
|
|
139
|
-
batch(): WriteBatch;
|
|
140
|
-
close(): Promise<void>;
|
|
141
|
-
approximateCount(options?: IterateOptions): Promise<number>;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
interface KVStoreProvider {
|
|
145
|
-
// Get data store for a table
|
|
146
|
-
getStore(schemaName: string, tableName: string): Promise<KVStore>;
|
|
147
|
-
|
|
148
|
-
// Get index store for a secondary index
|
|
149
|
-
getIndexStore(schemaName: string, tableName: string, indexName: string): Promise<KVStore>;
|
|
150
|
-
|
|
151
|
-
// Get stats store for table statistics
|
|
152
|
-
getStatsStore(schemaName: string, tableName: string): Promise<KVStore>;
|
|
153
|
-
|
|
154
|
-
// Get catalog store for DDL metadata
|
|
155
|
-
getCatalogStore(): Promise<KVStore>;
|
|
156
|
-
|
|
157
|
-
// Close specific stores
|
|
158
|
-
closeStore(schemaName: string, tableName: string): Promise<void>;
|
|
159
|
-
closeIndexStore(schemaName: string, tableName: string, indexName: string): Promise<void>;
|
|
160
|
-
closeAll(): Promise<void>;
|
|
161
|
-
|
|
162
|
-
// Optional: Delete stores
|
|
163
|
-
deleteIndexStore?(schemaName: string, tableName: string, indexName: string): Promise<void>;
|
|
164
|
-
deleteTableStores?(schemaName: string, tableName: string): Promise<void>;
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
##
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
1
|
+
# @quereus/store
|
|
2
|
+
|
|
3
|
+
Abstract key-value storage module for [Quereus](https://github.com/gotchoices/quereus). Provides platform-agnostic interfaces and a generic `StoreModule` virtual table implementation.
|
|
4
|
+
|
|
5
|
+
## Architecture
|
|
6
|
+
|
|
7
|
+
This package provides the **abstract layer** that separates virtual table logic from platform-specific storage:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
@quereus/store (this package)
|
|
11
|
+
├── KVStore interface - Abstract key-value store
|
|
12
|
+
├── KVStoreProvider interface - Store factory/management
|
|
13
|
+
├── StoreModule - Generic VirtualTableModule
|
|
14
|
+
├── StoreTable - Generic virtual table implementation
|
|
15
|
+
├── StoreConnection - Generic transaction support
|
|
16
|
+
└── Common utilities - Encoding, serialization, events
|
|
17
|
+
|
|
18
|
+
@quereus/plugin-leveldb (Node.js) @quereus/plugin-indexeddb (Browser)
|
|
19
|
+
├── LevelDBStore ├── IndexedDBStore
|
|
20
|
+
├── LevelDBProvider ├── IndexedDBProvider
|
|
21
|
+
└── Plugin registration ├── IndexedDBManager
|
|
22
|
+
└── CrossTabSync
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This architecture enables:
|
|
26
|
+
- **Platform portability** - Same SQL tables work across Node.js, browsers, and mobile
|
|
27
|
+
- **Custom storage backends** - Implement `KVStore` for IndexedDB, LevelDB, LMDB, or other "NoSQL" stores
|
|
28
|
+
- **Dependency injection** - Use `KVStoreProvider` for store management
|
|
29
|
+
|
|
30
|
+
## Storage Architecture
|
|
31
|
+
|
|
32
|
+
The store module uses separate logical stores for different data types:
|
|
33
|
+
|
|
34
|
+
**Store Naming Convention:**
|
|
35
|
+
- `{schema}.{table}` - Data store (row data)
|
|
36
|
+
- `{schema}.{table}_idx_{indexName}` - Index stores (one per secondary index)
|
|
37
|
+
- `{prefix}.__stats__` - Unified stats store (row counts for all tables)
|
|
38
|
+
- `__catalog__` - Catalog store (DDL metadata)
|
|
39
|
+
|
|
40
|
+
**Key Formats:**
|
|
41
|
+
- **Data keys**: Encoded primary key (no prefix)
|
|
42
|
+
- **Index keys**: Encoded index columns + encoded PK
|
|
43
|
+
- **Catalog keys**: `{schema}.{table}` as string
|
|
44
|
+
|
|
45
|
+
This design eliminates redundant prefixes and groups related stores together by table name.
|
|
46
|
+
|
|
47
|
+
## Installation
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm install @quereus/store
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
For platform-specific implementations:
|
|
54
|
+
```bash
|
|
55
|
+
# Node.js
|
|
56
|
+
npm install @quereus/plugin-leveldb
|
|
57
|
+
|
|
58
|
+
# Browser
|
|
59
|
+
npm install @quereus/plugin-indexeddb
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Usage
|
|
63
|
+
|
|
64
|
+
### With a Provider
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
import { Database } from '@quereus/quereus';
|
|
68
|
+
import { StoreModule } from '@quereus/store';
|
|
69
|
+
import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
70
|
+
// OR: import { createIndexedDBProvider } from '@quereus/plugin-indexeddb';
|
|
71
|
+
|
|
72
|
+
const db = new Database();
|
|
73
|
+
|
|
74
|
+
// Create provider for your platform
|
|
75
|
+
const provider = createLevelDBProvider({ basePath: './data' });
|
|
76
|
+
|
|
77
|
+
// Create the generic store module with your provider
|
|
78
|
+
const storeModule = new StoreModule(provider);
|
|
79
|
+
db.registerModule('store', storeModule);
|
|
80
|
+
|
|
81
|
+
// Use it in SQL
|
|
82
|
+
await db.exec(`
|
|
83
|
+
create table users (id integer primary key, name text)
|
|
84
|
+
using store
|
|
85
|
+
`);
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Custom Storage Backend
|
|
89
|
+
|
|
90
|
+
Implement `KVStore` and `KVStoreProvider` to create custom storage backends:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
import type { KVStore, KVStoreProvider } from '@quereus/store';
|
|
94
|
+
|
|
95
|
+
class MyCustomStore implements KVStore {
|
|
96
|
+
async get(key: Uint8Array) { /* ... */ }
|
|
97
|
+
async put(key: Uint8Array, value: Uint8Array) { /* ... */ }
|
|
98
|
+
async delete(key: Uint8Array) { /* ... */ }
|
|
99
|
+
async has(key: Uint8Array) { /* ... */ }
|
|
100
|
+
iterate(options?: IterateOptions) { /* ... */ }
|
|
101
|
+
batch() { /* ... */ }
|
|
102
|
+
async close() { /* ... */ }
|
|
103
|
+
async approximateCount(options?: IterateOptions) { /* ... */ }
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
class MyCustomProvider implements KVStoreProvider {
|
|
107
|
+
async getStore(schemaName: string, tableName: string) {
|
|
108
|
+
return new MyCustomStore(/* ... */);
|
|
109
|
+
}
|
|
110
|
+
async getIndexStore(schemaName: string, tableName: string, indexName: string) {
|
|
111
|
+
return new MyCustomStore(/* ... */);
|
|
112
|
+
}
|
|
113
|
+
async getStatsStore(schemaName: string, tableName: string) {
|
|
114
|
+
return new MyCustomStore(/* ... */);
|
|
115
|
+
}
|
|
116
|
+
async getCatalogStore() { /* ... */ }
|
|
117
|
+
async closeStore(schemaName: string, tableName: string) { /* ... */ }
|
|
118
|
+
async closeIndexStore(schemaName: string, tableName: string, indexName: string) { /* ... */ }
|
|
119
|
+
async closeAll() { /* ... */ }
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Use it with StoreModule
|
|
123
|
+
const provider = new MyCustomProvider();
|
|
124
|
+
const module = new StoreModule(provider);
|
|
125
|
+
db.registerModule('store', module);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## KVStore Interface
|
|
129
|
+
|
|
130
|
+
The `KVStore` interface is the foundation for all storage backends:
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
interface KVStore {
|
|
134
|
+
get(key: Uint8Array): Promise<Uint8Array | undefined>;
|
|
135
|
+
put(key: Uint8Array, value: Uint8Array): Promise<void>;
|
|
136
|
+
delete(key: Uint8Array): Promise<void>;
|
|
137
|
+
has(key: Uint8Array): Promise<boolean>;
|
|
138
|
+
iterate(options?: IterateOptions): AsyncIterable<KVEntry>;
|
|
139
|
+
batch(): WriteBatch;
|
|
140
|
+
close(): Promise<void>;
|
|
141
|
+
approximateCount(options?: IterateOptions): Promise<number>;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
interface KVStoreProvider {
|
|
145
|
+
// Get data store for a table
|
|
146
|
+
getStore(schemaName: string, tableName: string): Promise<KVStore>;
|
|
147
|
+
|
|
148
|
+
// Get index store for a secondary index
|
|
149
|
+
getIndexStore(schemaName: string, tableName: string, indexName: string): Promise<KVStore>;
|
|
150
|
+
|
|
151
|
+
// Get stats store for table statistics
|
|
152
|
+
getStatsStore(schemaName: string, tableName: string): Promise<KVStore>;
|
|
153
|
+
|
|
154
|
+
// Get catalog store for DDL metadata
|
|
155
|
+
getCatalogStore(): Promise<KVStore>;
|
|
156
|
+
|
|
157
|
+
// Close specific stores
|
|
158
|
+
closeStore(schemaName: string, tableName: string): Promise<void>;
|
|
159
|
+
closeIndexStore(schemaName: string, tableName: string, indexName: string): Promise<void>;
|
|
160
|
+
closeAll(): Promise<void>;
|
|
161
|
+
|
|
162
|
+
// Optional: Delete stores
|
|
163
|
+
deleteIndexStore?(schemaName: string, tableName: string, indexName: string): Promise<void>;
|
|
164
|
+
deleteTableStores?(schemaName: string, tableName: string): Promise<void>;
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Module Capabilities
|
|
169
|
+
|
|
170
|
+
The `StoreModule` reports its capabilities via `getCapabilities()`:
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
const storeModule = new StoreModule(provider);
|
|
174
|
+
const caps = storeModule.getCapabilities();
|
|
175
|
+
|
|
176
|
+
// {
|
|
177
|
+
// isolation: false, // Store module does NOT provide transaction isolation
|
|
178
|
+
// savepoints: false, // No savepoint support without isolation layer
|
|
179
|
+
// persistent: true, // Data persists across restarts
|
|
180
|
+
// secondaryIndexes: true,// Supports secondary indexes
|
|
181
|
+
// rangeScans: true // Supports range scans
|
|
182
|
+
// }
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Important:** The base `StoreModule` does not provide transaction isolation. Without isolation:
|
|
186
|
+
- Reads see only committed data (no read-your-own-writes within a transaction)
|
|
187
|
+
- Concurrent readers may see partial writes
|
|
188
|
+
- Savepoints are not supported
|
|
189
|
+
|
|
190
|
+
## Transaction Isolation
|
|
191
|
+
|
|
192
|
+
To add full ACID transaction semantics with read-your-own-writes, wrap the store module with the `IsolationModule`:
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
import { Database, MemoryTableModule } from '@quereus/quereus';
|
|
196
|
+
import { IsolationModule } from '@quereus/isolation';
|
|
197
|
+
import { StoreModule, createIsolatedStoreModule } from '@quereus/store';
|
|
198
|
+
import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
199
|
+
|
|
200
|
+
const db = new Database();
|
|
201
|
+
const provider = createLevelDBProvider({ basePath: './data' });
|
|
202
|
+
|
|
203
|
+
// Option 1: Use the convenience function
|
|
204
|
+
const isolatedModule = createIsolatedStoreModule({ provider });
|
|
205
|
+
db.registerModule('store', isolatedModule);
|
|
206
|
+
|
|
207
|
+
// Option 2: Manual wrapping for more control
|
|
208
|
+
const storeModule = new StoreModule(provider);
|
|
209
|
+
const isolatedModule = new IsolationModule({
|
|
210
|
+
underlying: storeModule,
|
|
211
|
+
overlay: new MemoryTableModule(),
|
|
212
|
+
});
|
|
213
|
+
db.registerModule('store', isolatedModule);
|
|
214
|
+
|
|
215
|
+
// Now transactions have full isolation
|
|
216
|
+
await db.exec('BEGIN');
|
|
217
|
+
await db.exec(`INSERT INTO users VALUES (1, 'Alice')`);
|
|
218
|
+
|
|
219
|
+
// Read-your-own-writes: sees uncommitted insert
|
|
220
|
+
const user = await db.get('SELECT * FROM users WHERE id = 1');
|
|
221
|
+
console.log(user.name); // 'Alice'
|
|
222
|
+
|
|
223
|
+
await db.exec('COMMIT'); // Or ROLLBACK to discard
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
The isolation layer provides:
|
|
227
|
+
- **Read-your-own-writes** within transactions
|
|
228
|
+
- **Snapshot isolation** for consistent reads
|
|
229
|
+
- **Savepoint support** via the overlay module
|
|
230
|
+
|
|
231
|
+
### Checking for Isolation Support
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
import { hasIsolation } from '@quereus/store';
|
|
235
|
+
|
|
236
|
+
const storeModule = new StoreModule(provider);
|
|
237
|
+
console.log(hasIsolation(storeModule)); // false
|
|
238
|
+
|
|
239
|
+
const isolatedModule = createIsolatedStoreModule({ provider });
|
|
240
|
+
console.log(hasIsolation(isolatedModule)); // true
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## API
|
|
244
|
+
|
|
245
|
+
### Core Exports
|
|
246
|
+
|
|
247
|
+
| Export | Description |
|
|
248
|
+
|--------|-------------|
|
|
249
|
+
| `KVStore` | Key-value store interface (type) |
|
|
250
|
+
| `KVStoreProvider` | Store factory interface (type) |
|
|
251
|
+
| `WriteBatch` | Batch write interface (type) |
|
|
252
|
+
| `IterateOptions` | Iteration options (type) |
|
|
253
|
+
| `StoreModule` | Generic VirtualTableModule |
|
|
254
|
+
| `StoreTable` | Virtual table implementation |
|
|
255
|
+
| `StoreConnection` | Transaction connection |
|
|
256
|
+
| `TransactionCoordinator` | Transaction management |
|
|
257
|
+
| `StoreEventEmitter` | Event system for data/schema changes |
|
|
258
|
+
|
|
259
|
+
### Isolation Layer Utilities
|
|
260
|
+
|
|
261
|
+
| Export | Description |
|
|
262
|
+
|--------|-------------|
|
|
263
|
+
| `createIsolatedStoreModule` | Create store module with isolation layer |
|
|
264
|
+
| `hasIsolation` | Check if a module has isolation capability |
|
|
265
|
+
| `IsolatedStoreModuleConfig` | Configuration for isolated store module |
|
|
266
|
+
|
|
267
|
+
### Encoding Utilities
|
|
268
|
+
|
|
269
|
+
| Export | Description |
|
|
270
|
+
|--------|-------------|
|
|
271
|
+
| `encodeValue` | Encode a SQL value to sortable bytes |
|
|
272
|
+
| `decodeValue` | Decode bytes back to SQL value |
|
|
273
|
+
| `encodeCompositeKey` | Encode multiple values as composite key |
|
|
274
|
+
| `decodeCompositeKey` | Decode composite key to values |
|
|
275
|
+
| `registerCollationEncoder` | Register custom collation |
|
|
276
|
+
|
|
277
|
+
### Serialization Utilities
|
|
278
|
+
|
|
279
|
+
| Export | Description |
|
|
280
|
+
|--------|-------------|
|
|
281
|
+
| `serializeRow` | Serialize a row to bytes |
|
|
282
|
+
| `deserializeRow` | Deserialize bytes to row |
|
|
283
|
+
| `serializeValue` | Serialize a single value |
|
|
284
|
+
| `deserializeValue` | Deserialize a single value |
|
|
285
|
+
|
|
286
|
+
### Key Building
|
|
287
|
+
|
|
288
|
+
| Export | Description |
|
|
289
|
+
|--------|-------------|
|
|
290
|
+
| `buildDataStoreName` | Build store name for table data |
|
|
291
|
+
| `buildIndexStoreName` | Build store name for an index |
|
|
292
|
+
| `buildStatsStoreName` | Build store name for table stats |
|
|
293
|
+
| `buildDataKey` | Build key for row data (encoded PK) |
|
|
294
|
+
| `buildIndexKey` | Build key for index entry |
|
|
295
|
+
| `buildCatalogKey` | Build key for catalog metadata |
|
|
296
|
+
| `buildFullScanBounds` | Build bounds for full table scan |
|
|
297
|
+
| `buildIndexPrefixBounds` | Build bounds for index prefix scan |
|
|
298
|
+
| `buildCatalogScanBounds` | Build bounds for catalog scan |
|
|
299
|
+
| `CATALOG_STORE_NAME` | Reserved catalog store name constant |
|
|
300
|
+
| `STORE_SUFFIX` | Store name suffixes (INDEX, STATS) |
|
|
301
|
+
|
|
302
|
+
## Related Packages
|
|
303
|
+
|
|
304
|
+
- [`@quereus/plugin-leveldb`](../quereus-plugin-leveldb/) - LevelDB implementation for Node.js
|
|
305
|
+
- [`@quereus/plugin-indexeddb`](../quereus-plugin-indexeddb/) - IndexedDB implementation for browsers
|
|
306
|
+
- [`@quereus/sync`](../quereus-sync/) - CRDT sync layer
|
|
307
|
+
|
|
308
|
+
## License
|
|
309
|
+
|
|
310
|
+
MIT
|
|
@@ -12,4 +12,5 @@ export { InMemoryKVStore } from './memory-store.js';
|
|
|
12
12
|
export { StoreTable, type StoreTableConfig, type StoreTableModule, } from './store-table.js';
|
|
13
13
|
export { StoreConnection } from './store-connection.js';
|
|
14
14
|
export { StoreModule, type StoreModuleConfig } from './store-module.js';
|
|
15
|
+
export { createIsolatedStoreModule, hasIsolation, type IsolatedStoreModuleConfig, } from './isolated-store.js';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EACN,yBAAyB,EACzB,YAAY,EACZ,KAAK,yBAAyB,GAC9B,MAAM,qBAAqB,CAAC"}
|
package/dist/src/common/index.js
CHANGED
|
@@ -22,4 +22,6 @@ export { StoreTable, } from './store-table.js';
|
|
|
22
22
|
export { StoreConnection } from './store-connection.js';
|
|
23
23
|
// Generic store module
|
|
24
24
|
export { StoreModule } from './store-module.js';
|
|
25
|
+
// Isolation layer utilities
|
|
26
|
+
export { createIsolatedStoreModule, hasIsolation, } from './isolated-store.js';
|
|
25
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,eAAe;AACf,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GAGpB,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB;AACtB,8BAA8B;AAC9B,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,iBAAiB,GAKlB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EACL,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAE1B,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qCAAqC;AACrC,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,eAAe;AACf,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GAGpB,MAAM,eAAe,CAAC;AAEvB,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACN,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB;AACtB,8BAA8B;AAC9B,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,iBAAiB,GAKlB,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EACL,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAE1B,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qCAAqC;AACrC,OAAO,EACL,UAAU,GAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAA0B,MAAM,mBAAmB,CAAC;AAExE,4BAA4B;AAC5B,OAAO,EACN,yBAAyB,EACzB,YAAY,GAEZ,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convenience utilities for creating isolated store modules.
|
|
3
|
+
*
|
|
4
|
+
* The store module by itself does not provide transaction isolation.
|
|
5
|
+
* This module provides utilities to wrap store modules with an
|
|
6
|
+
* isolation layer for full ACID semantics including:
|
|
7
|
+
*
|
|
8
|
+
* - Read-your-own-writes within transactions
|
|
9
|
+
* - Snapshot isolation (reads see consistent state)
|
|
10
|
+
* - Savepoint support
|
|
11
|
+
*/
|
|
12
|
+
import { IsolationModule } from '@quereus/isolation';
|
|
13
|
+
import { type VTableEventEmitter } from '@quereus/quereus';
|
|
14
|
+
import type { KVStoreProvider } from './kv-store.js';
|
|
15
|
+
import type { StoreEventEmitter } from './events.js';
|
|
16
|
+
/**
|
|
17
|
+
* Configuration options for creating an isolated store module.
|
|
18
|
+
*/
|
|
19
|
+
export interface IsolatedStoreModuleConfig {
|
|
20
|
+
/**
|
|
21
|
+
* The KVStoreProvider for persistent storage.
|
|
22
|
+
*/
|
|
23
|
+
provider: KVStoreProvider;
|
|
24
|
+
/**
|
|
25
|
+
* Optional event emitter for store events (data changes, schema changes).
|
|
26
|
+
*/
|
|
27
|
+
eventEmitter?: StoreEventEmitter;
|
|
28
|
+
/**
|
|
29
|
+
* Optional overlay event emitter (typically not needed).
|
|
30
|
+
* If provided, will be passed to the overlay MemoryTableModule.
|
|
31
|
+
*/
|
|
32
|
+
overlayEventEmitter?: VTableEventEmitter;
|
|
33
|
+
/**
|
|
34
|
+
* Optional name for the tombstone column in the overlay.
|
|
35
|
+
* Defaults to '_tombstone'.
|
|
36
|
+
*/
|
|
37
|
+
tombstoneColumn?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates a store module wrapped with an isolation layer for full ACID semantics.
|
|
41
|
+
*
|
|
42
|
+
* This provides:
|
|
43
|
+
* - Read-your-own-writes within transactions
|
|
44
|
+
* - Snapshot isolation (reads see consistent state)
|
|
45
|
+
* - Savepoint support via overlay module
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* import { createIsolatedStoreModule } from '@quereus/store';
|
|
50
|
+
* import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
51
|
+
*
|
|
52
|
+
* const provider = createLevelDBProvider({ basePath: './data' });
|
|
53
|
+
* const module = createIsolatedStoreModule({ provider });
|
|
54
|
+
* db.registerModule('store', module);
|
|
55
|
+
*
|
|
56
|
+
* // Now transactions have full isolation
|
|
57
|
+
* await db.exec('BEGIN');
|
|
58
|
+
* await db.exec(`INSERT INTO users VALUES (1, 'Alice')`);
|
|
59
|
+
* // This SELECT sees the uncommitted insert
|
|
60
|
+
* const user = await db.get('SELECT * FROM users WHERE id = 1');
|
|
61
|
+
* await db.exec('COMMIT');
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function createIsolatedStoreModule(config: IsolatedStoreModuleConfig): IsolationModule;
|
|
65
|
+
/**
|
|
66
|
+
* Type guard to check if a module has isolation capability.
|
|
67
|
+
*/
|
|
68
|
+
export declare function hasIsolation(module: {
|
|
69
|
+
getCapabilities?: () => {
|
|
70
|
+
isolation?: boolean;
|
|
71
|
+
};
|
|
72
|
+
}): boolean;
|
|
73
|
+
//# sourceMappingURL=isolated-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isolated-store.d.ts","sourceRoot":"","sources":["../../../src/common/isolated-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;OAEG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IAEzC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,yBAAyB,GAAG,eAAe,CAa5F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,OAAO,CAEjG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convenience utilities for creating isolated store modules.
|
|
3
|
+
*
|
|
4
|
+
* The store module by itself does not provide transaction isolation.
|
|
5
|
+
* This module provides utilities to wrap store modules with an
|
|
6
|
+
* isolation layer for full ACID semantics including:
|
|
7
|
+
*
|
|
8
|
+
* - Read-your-own-writes within transactions
|
|
9
|
+
* - Snapshot isolation (reads see consistent state)
|
|
10
|
+
* - Savepoint support
|
|
11
|
+
*/
|
|
12
|
+
import { IsolationModule } from '@quereus/isolation';
|
|
13
|
+
import { MemoryTableModule } from '@quereus/quereus';
|
|
14
|
+
import { StoreModule } from './store-module.js';
|
|
15
|
+
/**
|
|
16
|
+
* Creates a store module wrapped with an isolation layer for full ACID semantics.
|
|
17
|
+
*
|
|
18
|
+
* This provides:
|
|
19
|
+
* - Read-your-own-writes within transactions
|
|
20
|
+
* - Snapshot isolation (reads see consistent state)
|
|
21
|
+
* - Savepoint support via overlay module
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { createIsolatedStoreModule } from '@quereus/store';
|
|
26
|
+
* import { createLevelDBProvider } from '@quereus/plugin-leveldb';
|
|
27
|
+
*
|
|
28
|
+
* const provider = createLevelDBProvider({ basePath: './data' });
|
|
29
|
+
* const module = createIsolatedStoreModule({ provider });
|
|
30
|
+
* db.registerModule('store', module);
|
|
31
|
+
*
|
|
32
|
+
* // Now transactions have full isolation
|
|
33
|
+
* await db.exec('BEGIN');
|
|
34
|
+
* await db.exec(`INSERT INTO users VALUES (1, 'Alice')`);
|
|
35
|
+
* // This SELECT sees the uncommitted insert
|
|
36
|
+
* const user = await db.get('SELECT * FROM users WHERE id = 1');
|
|
37
|
+
* await db.exec('COMMIT');
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function createIsolatedStoreModule(config) {
|
|
41
|
+
// Create the underlying store module
|
|
42
|
+
const storeModule = new StoreModule(config.provider, config.eventEmitter);
|
|
43
|
+
// Create the overlay module (memory tables for uncommitted changes)
|
|
44
|
+
const overlayModule = new MemoryTableModule(config.overlayEventEmitter);
|
|
45
|
+
// Wrap with isolation layer
|
|
46
|
+
return new IsolationModule({
|
|
47
|
+
underlying: storeModule,
|
|
48
|
+
overlay: overlayModule,
|
|
49
|
+
tombstoneColumn: config.tombstoneColumn,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Type guard to check if a module has isolation capability.
|
|
54
|
+
*/
|
|
55
|
+
export function hasIsolation(module) {
|
|
56
|
+
return module.getCapabilities?.().isolation === true;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=isolated-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isolated-store.js","sourceRoot":"","sources":["../../../src/common/isolated-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA6BhD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiC;IAC1E,qCAAqC;IACrC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAE1E,oEAAoE;IACpE,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAExE,4BAA4B;IAC5B,OAAO,IAAI,eAAe,CAAC;QAC1B,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,aAAa;QACtB,eAAe,EAAE,MAAM,CAAC,eAAe;KACvC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAA2D;IACvF,OAAO,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC;AACtD,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - {prefix}.__stats__ - Unified stats store (row counts for all tables)
|
|
13
13
|
* - Catalog store: __catalog__ - DDL metadata keyed by {schema}.{table}
|
|
14
14
|
*/
|
|
15
|
-
import type { Database, TableSchema, TableIndexSchema, VirtualTableModule, BaseModuleConfig, BestAccessPlanRequest, BestAccessPlanResult } from '@quereus/quereus';
|
|
15
|
+
import type { Database, TableSchema, TableIndexSchema, VirtualTableModule, BaseModuleConfig, BestAccessPlanRequest, BestAccessPlanResult, ModuleCapabilities } from '@quereus/quereus';
|
|
16
16
|
import type { KVStore, KVStoreProvider } from './kv-store.js';
|
|
17
17
|
import type { StoreEventEmitter } from './events.js';
|
|
18
18
|
import { TransactionCoordinator } from './transaction.js';
|
|
@@ -46,6 +46,26 @@ export declare class StoreModule implements VirtualTableModule<StoreTable, Store
|
|
|
46
46
|
private tables;
|
|
47
47
|
private eventEmitter?;
|
|
48
48
|
constructor(provider: KVStoreProvider, eventEmitter?: StoreEventEmitter);
|
|
49
|
+
/**
|
|
50
|
+
* Returns capability flags for this module.
|
|
51
|
+
*
|
|
52
|
+
* The base StoreModule does NOT provide transaction isolation.
|
|
53
|
+
* Without isolation, queries see only committed data (no read-your-own-writes
|
|
54
|
+
* within a transaction). To enable isolation, wrap with IsolationModule:
|
|
55
|
+
*
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import { IsolationModule, MemoryTableModule } from '@quereus/quereus';
|
|
58
|
+
* import { StoreModule } from '@quereus/store';
|
|
59
|
+
*
|
|
60
|
+
* const storeModule = new StoreModule(provider);
|
|
61
|
+
* const isolatedModule = new IsolationModule({
|
|
62
|
+
* underlying: storeModule,
|
|
63
|
+
* overlay: new MemoryTableModule(),
|
|
64
|
+
* });
|
|
65
|
+
* db.registerModule('store', isolatedModule);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
getCapabilities(): ModuleCapabilities;
|
|
49
69
|
/**
|
|
50
70
|
* Get the event emitter for this module.
|
|
51
71
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-module.d.ts","sourceRoot":"","sources":["../../../src/common/store-module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store-module.d.ts","sourceRoot":"","sources":["../../../src/common/store-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,34 @@ export class StoreModule {
|
|
|
41
41
|
this.provider = provider;
|
|
42
42
|
this.eventEmitter = eventEmitter;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns capability flags for this module.
|
|
46
|
+
*
|
|
47
|
+
* The base StoreModule does NOT provide transaction isolation.
|
|
48
|
+
* Without isolation, queries see only committed data (no read-your-own-writes
|
|
49
|
+
* within a transaction). To enable isolation, wrap with IsolationModule:
|
|
50
|
+
*
|
|
51
|
+
* ```typescript
|
|
52
|
+
* import { IsolationModule, MemoryTableModule } from '@quereus/quereus';
|
|
53
|
+
* import { StoreModule } from '@quereus/store';
|
|
54
|
+
*
|
|
55
|
+
* const storeModule = new StoreModule(provider);
|
|
56
|
+
* const isolatedModule = new IsolationModule({
|
|
57
|
+
* underlying: storeModule,
|
|
58
|
+
* overlay: new MemoryTableModule(),
|
|
59
|
+
* });
|
|
60
|
+
* db.registerModule('store', isolatedModule);
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
getCapabilities() {
|
|
64
|
+
return {
|
|
65
|
+
isolation: false,
|
|
66
|
+
savepoints: false,
|
|
67
|
+
persistent: true,
|
|
68
|
+
secondaryIndexes: true,
|
|
69
|
+
rangeScans: true,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
44
72
|
/**
|
|
45
73
|
* Get the event emitter for this module.
|
|
46
74
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-module.js","sourceRoot":"","sources":["../../../src/common/store-module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store-module.js","sourceRoot":"","sources":["../../../src/common/store-module.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quereus/store",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Abstract key-value storage module for Quereus",
|
|
6
6
|
"keywords": [
|
|
@@ -40,9 +40,11 @@
|
|
|
40
40
|
"test:single": "cd ../.. && node --import ./packages/quereus-store/register.mjs node_modules/mocha/bin/mocha.js --bail"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@quereus/
|
|
43
|
+
"@quereus/isolation": "^0.2.0",
|
|
44
|
+
"@quereus/quereus": "^0.13.0"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
47
|
+
"@quereus/isolation": "*",
|
|
46
48
|
"@quereus/quereus": "*",
|
|
47
49
|
"@types/mocha": "^10.0.10",
|
|
48
50
|
"@types/node": "^22.15.29",
|