@framers/sql-storage-adapter 0.6.16 → 0.7.1
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 +130 -20
- package/dist/adapters/betterSqliteAdapter.d.ts +18 -2
- package/dist/adapters/betterSqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/betterSqliteAdapter.js +18 -7
- package/dist/adapters/betterSqliteAdapter.js.map +1 -1
- package/dist/adapters/capacitorSqliteAdapter.d.ts +8 -0
- package/dist/adapters/capacitorSqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/capacitorSqliteAdapter.js +4 -1
- package/dist/adapters/capacitorSqliteAdapter.js.map +1 -1
- package/dist/adapters/electron/electronMainAdapter.d.ts +10 -0
- package/dist/adapters/electron/electronMainAdapter.d.ts.map +1 -1
- package/dist/adapters/electron/electronMainAdapter.js +21 -12
- package/dist/adapters/electron/electronMainAdapter.js.map +1 -1
- package/dist/adapters/indexedDbAdapter.d.ts +198 -54
- package/dist/adapters/indexedDbAdapter.d.ts.map +1 -1
- package/dist/adapters/indexedDbAdapter.js +549 -129
- package/dist/adapters/indexedDbAdapter.js.map +1 -1
- package/dist/adapters/postgresAdapter.d.ts +143 -4
- package/dist/adapters/postgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresAdapter.js +612 -107
- package/dist/adapters/postgresAdapter.js.map +1 -1
- package/dist/adapters/sqlJsAdapter.d.ts +17 -3
- package/dist/adapters/sqlJsAdapter.d.ts.map +1 -1
- package/dist/adapters/sqlJsAdapter.js +15 -3
- package/dist/adapters/sqlJsAdapter.js.map +1 -1
- package/dist/core/contracts/dialect.d.ts +103 -4
- package/dist/core/contracts/dialect.d.ts.map +1 -1
- package/dist/core/contracts/index.d.ts +1 -1
- package/dist/core/contracts/index.d.ts.map +1 -1
- package/dist/core/database.d.ts +28 -8
- package/dist/core/database.d.ts.map +1 -1
- package/dist/core/database.js +34 -5
- package/dist/core/database.js.map +1 -1
- package/dist/core/resolver.d.ts +14 -1
- package/dist/core/resolver.d.ts.map +1 -1
- package/dist/core/resolver.js +28 -8
- package/dist/core/resolver.js.map +1 -1
- package/dist/dialects/PostgresDialect.d.ts +17 -1
- package/dist/dialects/PostgresDialect.d.ts.map +1 -1
- package/dist/dialects/PostgresDialect.js +91 -6
- package/dist/dialects/PostgresDialect.js.map +1 -1
- package/dist/dialects/SqliteDialect.d.ts +21 -5
- package/dist/dialects/SqliteDialect.d.ts.map +1 -1
- package/dist/dialects/SqliteDialect.js +109 -5
- package/dist/dialects/SqliteDialect.js.map +1 -1
- package/dist/dialects/shared.d.ts +17 -0
- package/dist/dialects/shared.d.ts.map +1 -0
- package/dist/dialects/shared.js +66 -0
- package/dist/dialects/shared.js.map +1 -0
- package/dist/features/kv/idb.d.ts +79 -0
- package/dist/features/kv/idb.d.ts.map +1 -0
- package/dist/features/kv/idb.js +14 -0
- package/dist/features/kv/idb.js.map +1 -0
- package/dist/features/kv/index.d.ts +14 -0
- package/dist/features/kv/index.d.ts.map +1 -0
- package/dist/features/kv/index.js +14 -0
- package/dist/features/kv/index.js.map +1 -0
- package/dist/features/kv/indexedDbKeyValueStore.d.ts +77 -0
- package/dist/features/kv/indexedDbKeyValueStore.d.ts.map +1 -0
- package/dist/features/kv/indexedDbKeyValueStore.js +127 -0
- package/dist/features/kv/indexedDbKeyValueStore.js.map +1 -0
- package/dist/features/kv/keyValueStore.d.ts +48 -0
- package/dist/features/kv/keyValueStore.d.ts.map +1 -0
- package/dist/features/kv/keyValueStore.js +54 -0
- package/dist/features/kv/keyValueStore.js.map +1 -0
- package/dist/features/kv/sqlKeyValueStore.d.ts +34 -0
- package/dist/features/kv/sqlKeyValueStore.d.ts.map +1 -0
- package/dist/features/kv/sqlKeyValueStore.js +91 -0
- package/dist/features/kv/sqlKeyValueStore.js.map +1 -0
- package/dist/features/kv/valueCodec.d.ts +35 -0
- package/dist/features/kv/valueCodec.d.ts.map +1 -0
- package/dist/features/kv/valueCodec.js +462 -0
- package/dist/features/kv/valueCodec.js.map +1 -0
- package/dist/features/migrations/dataExport.js +9 -6
- package/dist/features/migrations/dataExport.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/postgresTarget.d.ts +4 -3
- package/dist/shared/postgresTarget.d.ts.map +1 -1
- package/dist/shared/postgresTarget.js +6 -4
- package/dist/shared/postgresTarget.js.map +1 -1
- package/dist/shared/segment.d.ts +43 -0
- package/dist/shared/segment.d.ts.map +1 -0
- package/dist/shared/segment.js +77 -0
- package/dist/shared/segment.js.map +1 -0
- package/dist/shared/sqlPlaceholders.d.ts +8 -0
- package/dist/shared/sqlPlaceholders.d.ts.map +1 -1
- package/dist/shared/sqlPlaceholders.js +22 -0
- package/dist/shared/sqlPlaceholders.js.map +1 -1
- package/package.json +10 -2
|
@@ -36,6 +36,7 @@ import { BrowserWindow } from 'electron';
|
|
|
36
36
|
import { createBetterSqliteAdapter } from '../betterSqliteAdapter.js';
|
|
37
37
|
import { initializeIpcProtocol, disposeIpcProtocol } from './ipc/protocol.js';
|
|
38
38
|
import { BROADCAST_CHANNELS } from './ipc/channels.js';
|
|
39
|
+
import { segmentFilePath } from '../../shared/segment.js';
|
|
39
40
|
// ============================================================================
|
|
40
41
|
// Default Configurations
|
|
41
42
|
// ============================================================================
|
|
@@ -76,8 +77,9 @@ export class ElectronMainAdapter {
|
|
|
76
77
|
this.walConfig = { ...DEFAULT_WAL_CONFIG, ...options.wal };
|
|
77
78
|
this.recoveryConfig = { ...DEFAULT_RECOVERY_CONFIG, ...options.recovery };
|
|
78
79
|
this.multiWindowConfig = { ...DEFAULT_MULTI_WINDOW_CONFIG, ...options.multiWindow };
|
|
79
|
-
// Create inner adapter
|
|
80
|
-
this.
|
|
80
|
+
// Create inner adapter; it puts the segment into the file's name.
|
|
81
|
+
this.filePath = segmentFilePath(options.filePath, options.segment);
|
|
82
|
+
this.innerAdapter = createBetterSqliteAdapter(options.filePath, { segment: options.segment });
|
|
81
83
|
// Add electron-specific capabilities
|
|
82
84
|
const baseCapabilities = new Set(this.innerAdapter.capabilities);
|
|
83
85
|
baseCapabilities.add('batch');
|
|
@@ -106,8 +108,12 @@ export class ElectronMainAdapter {
|
|
|
106
108
|
await this.configureWalMode();
|
|
107
109
|
this.startWalCheckpointTimer();
|
|
108
110
|
}
|
|
109
|
-
// Initialize IPC protocol for renderer communication
|
|
110
|
-
|
|
111
|
+
// Initialize IPC protocol for renderer communication. The channels are
|
|
112
|
+
// one set per process: a segmented adapter would take the app's windows
|
|
113
|
+
// over to its segment, so it leaves them to the adapter without one.
|
|
114
|
+
if (this.options.segment === undefined) {
|
|
115
|
+
initializeIpcProtocol(this);
|
|
116
|
+
}
|
|
111
117
|
// Start backup scheduler if enabled
|
|
112
118
|
if (this.options.backup?.enabled && this.options.backup.provider) {
|
|
113
119
|
this.startBackupScheduler();
|
|
@@ -141,8 +147,10 @@ export class ElectronMainAdapter {
|
|
|
141
147
|
if (this.walConfig.enabled) {
|
|
142
148
|
await this.runWalCheckpoint();
|
|
143
149
|
}
|
|
144
|
-
// Dispose IPC handlers
|
|
145
|
-
|
|
150
|
+
// Dispose IPC handlers, which a segmented adapter never registered
|
|
151
|
+
if (this.options.segment === undefined) {
|
|
152
|
+
disposeIpcProtocol();
|
|
153
|
+
}
|
|
146
154
|
// Close inner adapter
|
|
147
155
|
await this.innerAdapter.close();
|
|
148
156
|
this.isInitialized = false;
|
|
@@ -312,8 +320,8 @@ export class ElectronMainAdapter {
|
|
|
312
320
|
if (!this.options.backup?.provider) {
|
|
313
321
|
throw new Error('No backup provider configured');
|
|
314
322
|
}
|
|
315
|
-
const backupPath = `${this.
|
|
316
|
-
const remotePath = `backups/${path.basename(this.
|
|
323
|
+
const backupPath = `${this.filePath}.backup`;
|
|
324
|
+
const remotePath = `backups/${path.basename(this.filePath)}_${Date.now()}.db`;
|
|
317
325
|
// Create a backup using VACUUM INTO
|
|
318
326
|
await this.innerAdapter.exec(`VACUUM INTO '${backupPath}'`);
|
|
319
327
|
// Upload to cloud
|
|
@@ -376,11 +384,12 @@ export class ElectronMainAdapter {
|
|
|
376
384
|
*/
|
|
377
385
|
extractTables(statement) {
|
|
378
386
|
const tables = [];
|
|
387
|
+
// matchAll() takes global patterns only; it throws for any other.
|
|
379
388
|
const patterns = [
|
|
380
389
|
/FROM\s+([^\s,;(]+)/gi,
|
|
381
|
-
/INSERT\s+INTO\s+([^\s(]+)/
|
|
382
|
-
/UPDATE\s+([^\s]+)/
|
|
383
|
-
/DELETE\s+FROM\s+([^\s]+)/
|
|
390
|
+
/INSERT\s+INTO\s+([^\s(]+)/gi,
|
|
391
|
+
/UPDATE\s+([^\s]+)/gi,
|
|
392
|
+
/DELETE\s+FROM\s+([^\s]+)/gi,
|
|
384
393
|
];
|
|
385
394
|
for (const pattern of patterns) {
|
|
386
395
|
const matches = statement.matchAll(pattern);
|
|
@@ -413,7 +422,7 @@ export class ElectronMainAdapter {
|
|
|
413
422
|
* Get the database file path.
|
|
414
423
|
*/
|
|
415
424
|
getFilePath() {
|
|
416
|
-
return this.
|
|
425
|
+
return this.filePath;
|
|
417
426
|
}
|
|
418
427
|
}
|
|
419
428
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electronMainAdapter.js","sourceRoot":"","sources":["../../../src/adapters/electron/electronMainAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"electronMainAdapter.js","sourceRoot":"","sources":["../../../src/adapters/electron/electronMainAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
*
|
|
27
27
|
* @example
|
|
28
28
|
* ```typescript
|
|
29
|
-
* import { IndexedDbAdapter } from '@framers/sql-storage-adapter
|
|
29
|
+
* import { IndexedDbAdapter } from '@framers/sql-storage-adapter';
|
|
30
30
|
*
|
|
31
31
|
* const adapter = new IndexedDbAdapter({
|
|
32
32
|
* dbName: 'my-app-db',
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* durability: 'commit', // each write is in IndexedDB before it resolves
|
|
34
|
+
* crossTab: true, // two tabs of the site keep each other's writes
|
|
35
35
|
* });
|
|
36
36
|
*
|
|
37
37
|
* await adapter.open();
|
|
@@ -43,6 +43,27 @@
|
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
45
|
import type { StorageAdapter, StorageCapability, StorageOpenOptions, StorageParameters, StorageRunResult } from '../core/contracts/index.js';
|
|
46
|
+
/**
|
|
47
|
+
* The part of the Web Locks API (`navigator.locks`) the adapter uses: an
|
|
48
|
+
* exclusive lock per name, granted to one holder at a time, in the order
|
|
49
|
+
* asked, and held until the callback's promise settles.
|
|
50
|
+
*/
|
|
51
|
+
export interface IndexedDbLockManager {
|
|
52
|
+
request<T>(name: string, options: {
|
|
53
|
+
mode: 'exclusive';
|
|
54
|
+
}, callback: () => Promise<T>): Promise<T>;
|
|
55
|
+
}
|
|
56
|
+
/** How tabs coordinate their saves. */
|
|
57
|
+
export interface IndexedDbCrossTabOptions {
|
|
58
|
+
/**
|
|
59
|
+
* The lock manager: the browser's `navigator.locks` when left out. `null`
|
|
60
|
+
* coordinates by the version stamp alone, as the adapter does where the
|
|
61
|
+
* browser has no Web Locks.
|
|
62
|
+
*/
|
|
63
|
+
locks?: IndexedDbLockManager | null;
|
|
64
|
+
}
|
|
65
|
+
/** When a write is stored in IndexedDB. */
|
|
66
|
+
export type IndexedDbDurability = 'interval' | 'commit';
|
|
46
67
|
/**
|
|
47
68
|
* Configuration for IndexedDB adapter.
|
|
48
69
|
*/
|
|
@@ -51,12 +72,63 @@ export interface IndexedDbAdapterOptions {
|
|
|
51
72
|
dbName?: string;
|
|
52
73
|
/** IndexedDB object store name (default: 'sqliteDb') */
|
|
53
74
|
storeName?: string;
|
|
54
|
-
/** Auto-save to IndexedDB
|
|
75
|
+
/** Auto-save to IndexedDB on a timer (default: true) */
|
|
55
76
|
autoSave?: boolean;
|
|
56
77
|
/** Save interval in milliseconds for batched writes (default: 5000) */
|
|
57
78
|
saveIntervalMs?: number;
|
|
58
79
|
/** sql.js configuration (e.g., locateFile for wasm) */
|
|
59
80
|
sqlJsConfig?: any;
|
|
81
|
+
/**
|
|
82
|
+
* When a write is stored in IndexedDB.
|
|
83
|
+
*
|
|
84
|
+
* - `'interval'`, the default: the auto-save tick stores the writes made
|
|
85
|
+
* since the last save, every `saveIntervalMs`; `flush()` and `close()`
|
|
86
|
+
* store them at once. A write can be lost when the page goes before the
|
|
87
|
+
* next tick.
|
|
88
|
+
* - `'commit'`: `run()`, `exec()`, a write through `all()` or `get()`
|
|
89
|
+
* (`INSERT ... RETURNING`) and `transaction()` resolve once their write is
|
|
90
|
+
* in IndexedDB, and reject when IndexedDB refuses it (the write stays in
|
|
91
|
+
* the database and the next save stores it). Each save writes the whole
|
|
92
|
+
* database image, so batch many writes in one `transaction()`. While a
|
|
93
|
+
* transaction a caller opened with `BEGIN` is open, nothing can be saved:
|
|
94
|
+
* its statements resolve at once, and its rows are stored when its
|
|
95
|
+
* `COMMIT` resolves.
|
|
96
|
+
*/
|
|
97
|
+
durability?: IndexedDbDurability;
|
|
98
|
+
/**
|
|
99
|
+
* Keeps the writes of two tabs of the site that open the same database.
|
|
100
|
+
* Each tab holds the whole database in memory and writes it back whole, so
|
|
101
|
+
* without this the tab that saves last overwrites the other's writes.
|
|
102
|
+
*
|
|
103
|
+
* With `crossTab`, every statement and transaction runs under a Web Lock on
|
|
104
|
+
* the database, on the newest stored image (a tab reloads it when another
|
|
105
|
+
* has saved), and is stored before the lock is let go: `durability` is
|
|
106
|
+
* `'commit'` whatever it says. Where the browser has no Web Locks (Safari
|
|
107
|
+
* before 15.4, an insecure origin, Lockdown Mode), the version stamp stored
|
|
108
|
+
* beside the image keeps both tabs' writes alone: a statement that finds
|
|
109
|
+
* another tab saved first runs again on the newer image, and a
|
|
110
|
+
* `transaction()` is refused with `IndexedDbConflictError`, storing
|
|
111
|
+
* nothing, for its caller to run again. The adapter says once when it runs
|
|
112
|
+
* without Web Locks.
|
|
113
|
+
*
|
|
114
|
+
* A transaction begun with `BEGIN` through `run()` or `exec()` cannot be
|
|
115
|
+
* held across tabs: it is rolled back and refused. Use `transaction()`.
|
|
116
|
+
*/
|
|
117
|
+
crossTab?: boolean | IndexedDbCrossTabOptions;
|
|
118
|
+
/**
|
|
119
|
+
* A database of its own: the segment is appended to `dbName`
|
|
120
|
+
* (`app-db` becomes `app-db-agentos`). Lower-case letters, digits and
|
|
121
|
+
* underscores.
|
|
122
|
+
*/
|
|
123
|
+
segment?: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* A `transaction()` another tab saved over: refused, with nothing of it
|
|
127
|
+
* stored. The adapter has loaded the other tab's image, so running the
|
|
128
|
+
* transaction again keeps both tabs' writes.
|
|
129
|
+
*/
|
|
130
|
+
export declare class IndexedDbConflictError extends Error {
|
|
131
|
+
constructor(message: string);
|
|
60
132
|
}
|
|
61
133
|
/**
|
|
62
134
|
* Storage adapter using IndexedDB + sql.js for client-side SQL persistence.
|
|
@@ -75,51 +147,21 @@ export interface IndexedDbAdapterOptions {
|
|
|
75
147
|
* - Auto-save batching reduces overhead
|
|
76
148
|
* - Good for: Production PWAs, offline-first apps, persistent client-side storage
|
|
77
149
|
*
|
|
78
|
-
* **Is This Necessary?**
|
|
79
|
-
*
|
|
80
|
-
* **✅ YES** if you need:
|
|
81
|
-
* - Data to survive page refreshes (production apps)
|
|
82
|
-
* - Offline-first functionality (PWAs)
|
|
83
|
-
* - Privacy-first apps (data never leaves browser)
|
|
84
|
-
* - Zero manual save logic (just works)
|
|
85
|
-
*
|
|
86
|
-
* **❌ NO** if you:
|
|
87
|
-
* - Only need temporary/in-memory data (edge functions)
|
|
88
|
-
* - Are prototyping and don't care about persistence
|
|
89
|
-
* - Want to manually control when data is saved
|
|
90
|
-
* - Don't need data to survive refreshes
|
|
91
|
-
*
|
|
92
|
-
* **Alternative:** You could use sql.js directly and manually save to IndexedDB yourself, but you'd lose:
|
|
93
|
-
* - Automatic batched saves (performance optimization)
|
|
94
|
-
* - Reliable persistence (easy to forget manual saves = data loss)
|
|
95
|
-
* - Consistent API across platforms
|
|
96
|
-
* - Production-ready defaults
|
|
97
|
-
*
|
|
98
|
-
* **Bottom line:** This adapter is **necessary for production web apps** that need persistence. For prototypes or edge functions, sql.js alone is fine.
|
|
99
|
-
*
|
|
100
150
|
* **How It Works:**
|
|
101
151
|
* 1. IndexedDB stores the SQLite database file (binary blob) - this is just storage
|
|
102
152
|
* 2. sql.js (WASM) loads the database into memory and executes SQL - this provides SQL capabilities
|
|
103
|
-
* 3. After writes, the updated database is
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* - IndexedDB alone: NoSQL key-value store, no SQL support
|
|
107
|
-
* - sql.js alone: In-memory SQL, but **no automatic persistence** (you must manually save)
|
|
108
|
-
* - Combined: Full SQL + **automatic browser-native persistence** = production-ready solution
|
|
153
|
+
* 3. After writes, the updated database is saved back to IndexedDB: on a timer
|
|
154
|
+
* (the default), before each write resolves (`durability: 'commit'`), or
|
|
155
|
+
* under a cross-tab lock (`crossTab`)
|
|
109
156
|
*
|
|
110
157
|
* **Capabilities:**
|
|
111
158
|
* - ✅ Transactions (via sql.js)
|
|
112
159
|
* - ✅ Persistence (via IndexedDB - automatic!)
|
|
113
160
|
* - ✅ Full SQL support (via sql.js)
|
|
114
161
|
* - ✅ Export/import
|
|
115
|
-
* -
|
|
162
|
+
* - ✅ Several tabs on one database, with `crossTab`
|
|
116
163
|
* - ❌ Server-side (browser only)
|
|
117
164
|
*
|
|
118
|
-
* **Performance:**
|
|
119
|
-
* - Fast reads (in-memory SQL)
|
|
120
|
-
* - Moderate writes (IndexedDB persistence)
|
|
121
|
-
* - Auto-save batching reduces IDB overhead
|
|
122
|
-
*
|
|
123
165
|
* @example Client-side application
|
|
124
166
|
* ```typescript
|
|
125
167
|
* const adapter = new IndexedDbAdapter({ dbName: 'my-app-db' });
|
|
@@ -142,13 +184,31 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
142
184
|
private savedGeneration;
|
|
143
185
|
/** The save in progress, if any. */
|
|
144
186
|
private saving;
|
|
187
|
+
/** The generation the save in progress exported. */
|
|
188
|
+
private savingGeneration;
|
|
145
189
|
/** Whether a failed auto-save has been reported since the last one that succeeded. */
|
|
146
190
|
private saveFailureReported;
|
|
191
|
+
/** The open() in progress, which a second call waits for. */
|
|
192
|
+
private opening;
|
|
147
193
|
/** Set while close() runs: no statement or transaction starts. */
|
|
148
194
|
private closing;
|
|
149
195
|
/** The close() in progress, which a second call waits for. */
|
|
150
196
|
private closeRun;
|
|
151
197
|
private longWaitReported;
|
|
198
|
+
private lockWaitReported;
|
|
199
|
+
/** The stamp of the image the database in memory was loaded from or last saved as. */
|
|
200
|
+
private loadedStamp;
|
|
201
|
+
/** How many stamps this adapter has made, which keeps two of its stamps apart. */
|
|
202
|
+
private stampCount;
|
|
203
|
+
/** The connection settings a fresh connection has, which a save need not set again. */
|
|
204
|
+
private pragmaDefaults;
|
|
205
|
+
/**
|
|
206
|
+
* With `crossTab`, the lock manager, or null for the version stamp alone;
|
|
207
|
+
* undefined without `crossTab`.
|
|
208
|
+
*/
|
|
209
|
+
private locks;
|
|
210
|
+
/** Without Web Locks, this adapter's coordinated operations run one at a time. */
|
|
211
|
+
private readonly runCoordinatedInTurn;
|
|
152
212
|
/**
|
|
153
213
|
* The connection is shared, so transaction() runs one callback at a time.
|
|
154
214
|
*/
|
|
@@ -166,17 +226,25 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
166
226
|
private readonly storeName;
|
|
167
227
|
private readonly autoSave;
|
|
168
228
|
private readonly saveIntervalMs;
|
|
229
|
+
private readonly durability;
|
|
230
|
+
private readonly crossTab;
|
|
169
231
|
private readonly sqlJsConfig;
|
|
232
|
+
/** @throws {Error} When `options.segment` is not a name a segment can take. */
|
|
170
233
|
constructor(options?: IndexedDbAdapterOptions);
|
|
234
|
+
/** The name of the Web Lock that coordinates the tabs on this database. */
|
|
235
|
+
private get lockName();
|
|
171
236
|
/**
|
|
172
237
|
* Opens IndexedDB and initializes sql.js database.
|
|
173
238
|
* Loads existing database from IndexedDB if present.
|
|
174
239
|
*
|
|
175
240
|
* Uses a global sql.js singleton to prevent race conditions when
|
|
176
241
|
* multiple adapters (e.g., fabric_codex_db and quarry-codex-local)
|
|
177
|
-
* are initialized simultaneously.
|
|
242
|
+
* are initialized simultaneously. Two calls at once open once.
|
|
178
243
|
*/
|
|
179
244
|
open(options?: StorageOpenOptions): Promise<void>;
|
|
245
|
+
private openNow;
|
|
246
|
+
/** The lock manager crossTab uses, or null for the version stamp alone. */
|
|
247
|
+
private resolveLocks;
|
|
180
248
|
/**
|
|
181
249
|
* Executes a SQL statement that doesn't return rows (INSERT, UPDATE, DELETE, CREATE, etc.).
|
|
182
250
|
* @param statement SQL statement with ? or :name placeholders
|
|
@@ -193,18 +261,26 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
193
261
|
*/
|
|
194
262
|
get<T>(statement: string, parameters?: StorageParameters): Promise<T | null>;
|
|
195
263
|
/**
|
|
196
|
-
* Executes a SQL query and returns all matching rows.
|
|
264
|
+
* Executes a SQL query and returns all matching rows. A statement that
|
|
265
|
+
* writes (`INSERT ... RETURNING`) is saved like a `run()`.
|
|
197
266
|
* @param statement SELECT statement
|
|
198
267
|
* @param parameters Query parameters
|
|
199
268
|
* @returns Array of result rows as objects
|
|
200
269
|
*/
|
|
201
270
|
all<T>(statement: string, parameters?: StorageParameters): Promise<T[]>;
|
|
202
271
|
private allNow;
|
|
272
|
+
/** The rows changed on this connection since it opened. */
|
|
273
|
+
private totalChanges;
|
|
203
274
|
/**
|
|
204
275
|
* Executes a script containing multiple SQL statements.
|
|
205
276
|
*/
|
|
206
277
|
exec(script: string): Promise<void>;
|
|
207
278
|
private execNow;
|
|
279
|
+
/**
|
|
280
|
+
* With `durability: 'commit'`, resolves with `result` once the write that
|
|
281
|
+
* produced it is stored; otherwise with `result` at once.
|
|
282
|
+
*/
|
|
283
|
+
private stored;
|
|
208
284
|
/**
|
|
209
285
|
* Executes a callback within a database transaction.
|
|
210
286
|
*
|
|
@@ -212,9 +288,12 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
212
288
|
* connection. The callback's statements go through the handle it receives;
|
|
213
289
|
* a statement issued through the adapter itself while the callback runs
|
|
214
290
|
* waits until the transaction ends, so a callback must not await one. The
|
|
215
|
-
* auto-save tick does not save while a transaction is open.
|
|
291
|
+
* auto-save tick does not save while a transaction is open. With
|
|
292
|
+
* `durability: 'commit'` the transaction resolves once it is stored.
|
|
216
293
|
*/
|
|
217
294
|
transaction<T>(fn: (trx: StorageAdapter) => Promise<T>): Promise<T>;
|
|
295
|
+
/** Runs one transaction: BEGIN, the callback through its handle, COMMIT or ROLLBACK. */
|
|
296
|
+
private transactionNow;
|
|
218
297
|
/**
|
|
219
298
|
* The statements of one transaction's handle: they carry the transaction's
|
|
220
299
|
* token, so the gate admits them while the transaction is open.
|
|
@@ -224,7 +303,8 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
224
303
|
private rollbackQuietly;
|
|
225
304
|
/**
|
|
226
305
|
* Begins a transaction the caller ends with commit() or rollback(). It is not
|
|
227
|
-
* the callback form: other callers' statements are not held out of it.
|
|
306
|
+
* the callback form: other callers' statements are not held out of it. With
|
|
307
|
+
* `crossTab` it is refused: use transaction().
|
|
228
308
|
*/
|
|
229
309
|
beginTransaction(): Promise<void>;
|
|
230
310
|
/**
|
|
@@ -235,6 +315,13 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
235
315
|
* Rolls back the current transaction.
|
|
236
316
|
*/
|
|
237
317
|
rollback(): Promise<void>;
|
|
318
|
+
/**
|
|
319
|
+
* Stores every write made so far in IndexedDB. A `transaction()` that is
|
|
320
|
+
* open is waited for and stored with the rest; a transaction a caller began
|
|
321
|
+
* with `BEGIN` cannot be stored without ending it, so flush() rejects while
|
|
322
|
+
* one is open. Resolves at once when nothing is waiting to be saved.
|
|
323
|
+
*/
|
|
324
|
+
flush(): Promise<void>;
|
|
238
325
|
/**
|
|
239
326
|
* Closes the database and saves its committed state to IndexedDB.
|
|
240
327
|
*
|
|
@@ -246,22 +333,74 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
246
333
|
private closeNow;
|
|
247
334
|
/**
|
|
248
335
|
* Exports the database as a Uint8Array (SQLite file format).
|
|
249
|
-
* Can be downloaded or stored externally.
|
|
336
|
+
* Can be downloaded or stored externally. With `crossTab` it is this tab's
|
|
337
|
+
* image, which another tab's save can have overtaken.
|
|
250
338
|
*
|
|
251
339
|
* Throws while a transaction is open: sql.js's export closes and reopens the
|
|
252
340
|
* connection, which would end the transaction.
|
|
253
341
|
* @returns SQLite database file as binary
|
|
254
342
|
*/
|
|
255
343
|
exportDatabase(): Uint8Array;
|
|
256
|
-
/**
|
|
344
|
+
/**
|
|
345
|
+
* Applies the connection settings open() was asked for. sql.js loses them
|
|
346
|
+
* whenever export() reopens the connection; a save, an export, an import
|
|
347
|
+
* and a reload set them again with the other settings a caller changed
|
|
348
|
+
* (exportImage, replaceDatabase).
|
|
349
|
+
*/
|
|
257
350
|
private applyConnectionSettings;
|
|
258
351
|
/**
|
|
259
352
|
* Imports a database from a Uint8Array (SQLite file).
|
|
260
353
|
* Replaces the current database once any open transaction() has ended, and
|
|
261
|
-
* saves it to IndexedDB before it resolves
|
|
354
|
+
* saves it to IndexedDB before it resolves; with `crossTab`, in place of
|
|
355
|
+
* what every tab stored. Bytes that are not a SQLite database are refused,
|
|
356
|
+
* and the adapter keeps its database.
|
|
262
357
|
* @param data SQLite database file
|
|
263
358
|
*/
|
|
264
359
|
importDatabase(data: Uint8Array): Promise<void>;
|
|
360
|
+
/** Replaces the database with an image, once sql.js has read it as a SQLite database. */
|
|
361
|
+
private swapIn;
|
|
362
|
+
/** Puts `next` in place of the database, with the connection settings the current one has. */
|
|
363
|
+
private replaceDatabase;
|
|
364
|
+
/**
|
|
365
|
+
* Runs `work` with this tab holding the database: under the Web Lock, or,
|
|
366
|
+
* without Web Locks, after this adapter's earlier coordinated work.
|
|
367
|
+
*/
|
|
368
|
+
private withCoordination;
|
|
369
|
+
/**
|
|
370
|
+
* One statement across tabs: on the newest stored image, and stored before
|
|
371
|
+
* it resolves. Without Web Locks another tab can save between the load and
|
|
372
|
+
* the save; the statement then runs again on that tab's image.
|
|
373
|
+
*/
|
|
374
|
+
private coordinatedStatement;
|
|
375
|
+
/**
|
|
376
|
+
* One transaction across tabs: on the newest stored image, and stored before
|
|
377
|
+
* it resolves. Without Web Locks another tab can save while the callback
|
|
378
|
+
* runs; the transaction is then refused, nothing of it is stored, and the
|
|
379
|
+
* other tab's image is loaded for the caller to run it again.
|
|
380
|
+
*/
|
|
381
|
+
private coordinatedTransaction;
|
|
382
|
+
/** Loads the stored image when another tab (or adapter) has saved since this one loaded or saved. */
|
|
383
|
+
private syncFromStore;
|
|
384
|
+
/** Reads the stored stamp, and the image with it when the stamp is not `known`; null when it is. */
|
|
385
|
+
private readIfChanged;
|
|
386
|
+
/**
|
|
387
|
+
* Stores the image when the stored stamp is still `expected`, in one
|
|
388
|
+
* IndexedDB transaction, so no other tab's save lands between the check and
|
|
389
|
+
* the write. `undefined` stores it whatever the stamp is. Resolves with
|
|
390
|
+
* whether it stored the image.
|
|
391
|
+
*/
|
|
392
|
+
private saveIfStampIs;
|
|
393
|
+
/** A stamp no other save of this or another tab writes. */
|
|
394
|
+
private nextStamp;
|
|
395
|
+
/**
|
|
396
|
+
* Exports the database for a save, keeping the connection settings a
|
|
397
|
+
* caller made: sql.js's export() closes the connection and opens it again.
|
|
398
|
+
*/
|
|
399
|
+
private exportImage;
|
|
400
|
+
/** The connection settings that differ from a fresh connection's. */
|
|
401
|
+
private changedPragmas;
|
|
402
|
+
/** Sets connection settings on the database, after a save or a reload. */
|
|
403
|
+
private applyPragmas;
|
|
265
404
|
/**
|
|
266
405
|
* Opens or creates the IndexedDB database.
|
|
267
406
|
*/
|
|
@@ -280,14 +419,14 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
280
419
|
*/
|
|
281
420
|
private openIndexedDbWithRetry;
|
|
282
421
|
/**
|
|
283
|
-
* Loads the SQLite database from IndexedDB
|
|
284
|
-
*
|
|
422
|
+
* Loads the SQLite database and its stamp from IndexedDB, in one
|
|
423
|
+
* transaction, so the two belong together.
|
|
285
424
|
*/
|
|
286
425
|
private loadFromIndexedDb;
|
|
287
426
|
/**
|
|
288
|
-
* Writes the current image to IndexedDB
|
|
289
|
-
* open (see saveIfIdle): sql.js's export() closes and
|
|
290
|
-
* which ends an open transaction.
|
|
427
|
+
* Writes the current image to IndexedDB, with a new stamp. Never called
|
|
428
|
+
* while a transaction is open (see saveIfIdle): sql.js's export() closes and
|
|
429
|
+
* reopens the connection, which ends an open transaction.
|
|
291
430
|
*
|
|
292
431
|
* Settles when the IndexedDB transaction completes, not when its put request
|
|
293
432
|
* succeeds: the transaction can still abort after that (a quota error at
|
|
@@ -311,6 +450,14 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
311
450
|
* transaction is open; the auto-save tick tries again later.
|
|
312
451
|
*/
|
|
313
452
|
private saveIfIdle;
|
|
453
|
+
/**
|
|
454
|
+
* Resolves once the writes up to `generation` are stored. A save in
|
|
455
|
+
* progress that holds them is waited for; an open transaction() is waited
|
|
456
|
+
* for, since its own save holds them; while a transaction a caller began
|
|
457
|
+
* with BEGIN is open, nothing can be stored, and its COMMIT stores them.
|
|
458
|
+
* Rejects when the save that held them failed.
|
|
459
|
+
*/
|
|
460
|
+
private saveThrough;
|
|
314
461
|
/**
|
|
315
462
|
* Starts a save at once and keeps it as the save in progress. The caller has
|
|
316
463
|
* made sure no transaction is open: the export would end it.
|
|
@@ -319,6 +466,7 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
319
466
|
/** Waits for a save in progress to settle, whether it succeeded or not. */
|
|
320
467
|
private settleSave;
|
|
321
468
|
private reportLongWait;
|
|
469
|
+
private reportLockWait;
|
|
322
470
|
/**
|
|
323
471
|
* Wraps a transaction operation with retry logic.
|
|
324
472
|
* Handles "NotFoundError" by reopening IndexedDB connection.
|
|
@@ -338,9 +486,5 @@ export declare class IndexedDbAdapter implements StorageAdapter {
|
|
|
338
486
|
* Normalizes last insert row ID to string or number.
|
|
339
487
|
*/
|
|
340
488
|
private normaliseRowId;
|
|
341
|
-
/**
|
|
342
|
-
* Prepares a SQL statement for execution.
|
|
343
|
-
*/
|
|
344
|
-
private prepareInternal;
|
|
345
489
|
}
|
|
346
490
|
//# sourceMappingURL=indexedDbAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexedDbAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/indexedDbAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"indexedDbAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/indexedDbAdapter.ts"],"names":[],"mappings":"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"}
|