@framers/sql-storage-adapter 0.4.2 → 0.5.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 +94 -2
- package/dist/adapters/electron/electronMainAdapter.d.ts +241 -0
- package/dist/adapters/electron/electronMainAdapter.d.ts.map +1 -0
- package/dist/adapters/electron/electronMainAdapter.js +442 -0
- package/dist/adapters/electron/electronMainAdapter.js.map +1 -0
- package/dist/adapters/electron/electronRendererAdapter.d.ts +177 -0
- package/dist/adapters/electron/electronRendererAdapter.d.ts.map +1 -0
- package/dist/adapters/electron/electronRendererAdapter.js +339 -0
- package/dist/adapters/electron/electronRendererAdapter.js.map +1 -0
- package/dist/adapters/electron/index.d.ts +74 -0
- package/dist/adapters/electron/index.d.ts.map +1 -0
- package/dist/adapters/electron/index.js +96 -0
- package/dist/adapters/electron/index.js.map +1 -0
- package/dist/adapters/electron/ipc/channels.d.ts +196 -0
- package/dist/adapters/electron/ipc/channels.d.ts.map +1 -0
- package/dist/adapters/electron/ipc/channels.js +121 -0
- package/dist/adapters/electron/ipc/channels.js.map +1 -0
- package/dist/adapters/electron/ipc/index.d.ts +11 -0
- package/dist/adapters/electron/ipc/index.d.ts.map +1 -0
- package/dist/adapters/electron/ipc/index.js +11 -0
- package/dist/adapters/electron/ipc/index.js.map +1 -0
- package/dist/adapters/electron/ipc/protocol.d.ts +78 -0
- package/dist/adapters/electron/ipc/protocol.d.ts.map +1 -0
- package/dist/adapters/electron/ipc/protocol.js +347 -0
- package/dist/adapters/electron/ipc/protocol.js.map +1 -0
- package/dist/adapters/electron/ipc/types.d.ts +248 -0
- package/dist/adapters/electron/ipc/types.d.ts.map +1 -0
- package/dist/adapters/electron/ipc/types.js +8 -0
- package/dist/adapters/electron/ipc/types.js.map +1 -0
- package/dist/adapters/electron/migration/autoMigrator.d.ts +184 -0
- package/dist/adapters/electron/migration/autoMigrator.d.ts.map +1 -0
- package/dist/adapters/electron/migration/autoMigrator.js +478 -0
- package/dist/adapters/electron/migration/autoMigrator.js.map +1 -0
- package/dist/adapters/electron/migration/index.d.ts +9 -0
- package/dist/adapters/electron/migration/index.d.ts.map +1 -0
- package/dist/adapters/electron/migration/index.js +9 -0
- package/dist/adapters/electron/migration/index.js.map +1 -0
- package/dist/adapters/electron/preload.d.ts +126 -0
- package/dist/adapters/electron/preload.d.ts.map +1 -0
- package/dist/adapters/electron/preload.js +254 -0
- package/dist/adapters/electron/preload.js.map +1 -0
- package/dist/adapters/electron/recovery/corruptionDetector.d.ts +214 -0
- package/dist/adapters/electron/recovery/corruptionDetector.d.ts.map +1 -0
- package/dist/adapters/electron/recovery/corruptionDetector.js +410 -0
- package/dist/adapters/electron/recovery/corruptionDetector.js.map +1 -0
- package/dist/adapters/electron/recovery/index.d.ts +11 -0
- package/dist/adapters/electron/recovery/index.d.ts.map +1 -0
- package/dist/adapters/electron/recovery/index.js +11 -0
- package/dist/adapters/electron/recovery/index.js.map +1 -0
- package/dist/adapters/electron/recovery/walCheckpoint.d.ts +186 -0
- package/dist/adapters/electron/recovery/walCheckpoint.d.ts.map +1 -0
- package/dist/adapters/electron/recovery/walCheckpoint.js +302 -0
- package/dist/adapters/electron/recovery/walCheckpoint.js.map +1 -0
- package/dist/adapters/electron/window/index.d.ts +9 -0
- package/dist/adapters/electron/window/index.d.ts.map +1 -0
- package/dist/adapters/electron/window/index.js +9 -0
- package/dist/adapters/electron/window/index.js.map +1 -0
- package/dist/adapters/electron/window/windowManager.d.ts +190 -0
- package/dist/adapters/electron/window/windowManager.d.ts.map +1 -0
- package/dist/adapters/electron/window/windowManager.js +358 -0
- package/dist/adapters/electron/window/windowManager.js.map +1 -0
- package/dist/core/contracts/context.d.ts +2 -2
- package/dist/core/contracts/context.d.ts.map +1 -1
- package/dist/core/database.d.ts +19 -0
- package/dist/core/database.d.ts.map +1 -1
- package/dist/core/database.js +4 -0
- package/dist/core/database.js.map +1 -1
- package/dist/core/resolver.d.ts +3 -0
- package/dist/core/resolver.d.ts.map +1 -1
- package/dist/core/resolver.js +39 -3
- package/dist/core/resolver.js.map +1 -1
- package/dist/features/sync/conflicts/conflictResolver.d.ts +222 -0
- package/dist/features/sync/conflicts/conflictResolver.d.ts.map +1 -0
- package/dist/features/sync/conflicts/conflictResolver.js +396 -0
- package/dist/features/sync/conflicts/conflictResolver.js.map +1 -0
- package/dist/features/sync/conflicts/index.d.ts +9 -0
- package/dist/features/sync/conflicts/index.d.ts.map +1 -0
- package/dist/features/sync/conflicts/index.js +9 -0
- package/dist/features/sync/conflicts/index.js.map +1 -0
- package/dist/features/sync/crossPlatformSync.d.ts +281 -0
- package/dist/features/sync/crossPlatformSync.d.ts.map +1 -0
- package/dist/features/sync/crossPlatformSync.js +623 -0
- package/dist/features/sync/crossPlatformSync.js.map +1 -0
- package/dist/features/sync/devices/deviceManager.d.ts +243 -0
- package/dist/features/sync/devices/deviceManager.d.ts.map +1 -0
- package/dist/features/sync/devices/deviceManager.js +494 -0
- package/dist/features/sync/devices/deviceManager.js.map +1 -0
- package/dist/features/sync/devices/index.d.ts +10 -0
- package/dist/features/sync/devices/index.d.ts.map +1 -0
- package/dist/features/sync/devices/index.js +10 -0
- package/dist/features/sync/devices/index.js.map +1 -0
- package/dist/features/sync/index.d.ts +37 -0
- package/dist/features/sync/index.d.ts.map +1 -0
- package/dist/features/sync/index.js +47 -0
- package/dist/features/sync/index.js.map +1 -0
- package/dist/features/sync/protocol/index.d.ts +11 -0
- package/dist/features/sync/protocol/index.d.ts.map +1 -0
- package/dist/features/sync/protocol/index.js +11 -0
- package/dist/features/sync/protocol/index.js.map +1 -0
- package/dist/features/sync/protocol/messages.d.ts +348 -0
- package/dist/features/sync/protocol/messages.d.ts.map +1 -0
- package/dist/features/sync/protocol/messages.js +216 -0
- package/dist/features/sync/protocol/messages.js.map +1 -0
- package/dist/features/sync/protocol/vectorClock.d.ts +164 -0
- package/dist/features/sync/protocol/vectorClock.d.ts.map +1 -0
- package/dist/features/sync/protocol/vectorClock.js +286 -0
- package/dist/features/sync/protocol/vectorClock.js.map +1 -0
- package/dist/features/sync/tables/index.d.ts +10 -0
- package/dist/features/sync/tables/index.d.ts.map +1 -0
- package/dist/features/sync/tables/index.js +10 -0
- package/dist/features/sync/tables/index.js.map +1 -0
- package/dist/features/sync/tables/syncLogManager.d.ts +216 -0
- package/dist/features/sync/tables/syncLogManager.d.ts.map +1 -0
- package/dist/features/sync/tables/syncLogManager.js +456 -0
- package/dist/features/sync/tables/syncLogManager.js.map +1 -0
- package/dist/features/sync/transport/httpTransport.d.ts +123 -0
- package/dist/features/sync/transport/httpTransport.d.ts.map +1 -0
- package/dist/features/sync/transport/httpTransport.js +380 -0
- package/dist/features/sync/transport/httpTransport.js.map +1 -0
- package/dist/features/sync/transport/index.d.ts +12 -0
- package/dist/features/sync/transport/index.d.ts.map +1 -0
- package/dist/features/sync/transport/index.js +12 -0
- package/dist/features/sync/transport/index.js.map +1 -0
- package/dist/features/sync/transport/transport.d.ts +259 -0
- package/dist/features/sync/transport/transport.d.ts.map +1 -0
- package/dist/features/sync/transport/transport.js +153 -0
- package/dist/features/sync/transport/transport.js.map +1 -0
- package/dist/features/sync/transport/websocketTransport.d.ts +126 -0
- package/dist/features/sync/transport/websocketTransport.d.ts.map +1 -0
- package/dist/features/sync/transport/websocketTransport.js +374 -0
- package/dist/features/sync/transport/websocketTransport.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/package.json +21 -1
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Protocol Handlers for Electron SQL Storage Adapter.
|
|
3
|
+
*
|
|
4
|
+
* Registers IPC handlers in the main process to handle database
|
|
5
|
+
* operations from renderer processes. Ensures type-safe communication
|
|
6
|
+
* and proper error handling.
|
|
7
|
+
*/
|
|
8
|
+
import { ipcMain, BrowserWindow } from 'electron';
|
|
9
|
+
import { DB_CHANNELS, TRANSACTION_CHANNELS, BROADCAST_CHANNELS } from './channels.js';
|
|
10
|
+
/**
|
|
11
|
+
* IPC Protocol Manager.
|
|
12
|
+
*
|
|
13
|
+
* Manages IPC communication between main and renderer processes
|
|
14
|
+
* for database operations. Handles request routing, error handling,
|
|
15
|
+
* and change broadcasting.
|
|
16
|
+
*/
|
|
17
|
+
export class IpcProtocolManager {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.adapter = null;
|
|
20
|
+
this.activeTransactions = new Map();
|
|
21
|
+
this.handlersRegistered = false;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Initialize the protocol manager with a storage adapter.
|
|
25
|
+
*/
|
|
26
|
+
initialize(adapter) {
|
|
27
|
+
this.adapter = adapter;
|
|
28
|
+
this.registerHandlers();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Register all IPC handlers.
|
|
32
|
+
*/
|
|
33
|
+
registerHandlers() {
|
|
34
|
+
if (this.handlersRegistered) {
|
|
35
|
+
console.warn('[IpcProtocol] Handlers already registered');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// Database operations
|
|
39
|
+
ipcMain.handle(DB_CHANNELS.OPEN, this.handleOpen.bind(this));
|
|
40
|
+
ipcMain.handle(DB_CHANNELS.CLOSE, this.handleClose.bind(this));
|
|
41
|
+
ipcMain.handle(DB_CHANNELS.IS_OPEN, this.handleIsOpen.bind(this));
|
|
42
|
+
ipcMain.handle(DB_CHANNELS.CAPABILITIES, this.handleCapabilities.bind(this));
|
|
43
|
+
ipcMain.handle(DB_CHANNELS.RUN, this.handleRun.bind(this));
|
|
44
|
+
ipcMain.handle(DB_CHANNELS.GET, this.handleGet.bind(this));
|
|
45
|
+
ipcMain.handle(DB_CHANNELS.ALL, this.handleAll.bind(this));
|
|
46
|
+
ipcMain.handle(DB_CHANNELS.EXEC, this.handleExec.bind(this));
|
|
47
|
+
ipcMain.handle(DB_CHANNELS.BATCH, this.handleBatch.bind(this));
|
|
48
|
+
// Transaction operations
|
|
49
|
+
ipcMain.handle(TRANSACTION_CHANNELS.BEGIN, this.handleTransactionBegin.bind(this));
|
|
50
|
+
ipcMain.handle(TRANSACTION_CHANNELS.COMMIT, this.handleTransactionCommit.bind(this));
|
|
51
|
+
ipcMain.handle(TRANSACTION_CHANNELS.ROLLBACK, this.handleTransactionRollback.bind(this));
|
|
52
|
+
ipcMain.handle(TRANSACTION_CHANNELS.EXECUTE, this.handleTransactionExecute.bind(this));
|
|
53
|
+
this.handlersRegistered = true;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Unregister all IPC handlers.
|
|
57
|
+
*/
|
|
58
|
+
dispose() {
|
|
59
|
+
if (!this.handlersRegistered)
|
|
60
|
+
return;
|
|
61
|
+
// Remove database operation handlers
|
|
62
|
+
ipcMain.removeHandler(DB_CHANNELS.OPEN);
|
|
63
|
+
ipcMain.removeHandler(DB_CHANNELS.CLOSE);
|
|
64
|
+
ipcMain.removeHandler(DB_CHANNELS.IS_OPEN);
|
|
65
|
+
ipcMain.removeHandler(DB_CHANNELS.CAPABILITIES);
|
|
66
|
+
ipcMain.removeHandler(DB_CHANNELS.RUN);
|
|
67
|
+
ipcMain.removeHandler(DB_CHANNELS.GET);
|
|
68
|
+
ipcMain.removeHandler(DB_CHANNELS.ALL);
|
|
69
|
+
ipcMain.removeHandler(DB_CHANNELS.EXEC);
|
|
70
|
+
ipcMain.removeHandler(DB_CHANNELS.BATCH);
|
|
71
|
+
// Remove transaction handlers
|
|
72
|
+
ipcMain.removeHandler(TRANSACTION_CHANNELS.BEGIN);
|
|
73
|
+
ipcMain.removeHandler(TRANSACTION_CHANNELS.COMMIT);
|
|
74
|
+
ipcMain.removeHandler(TRANSACTION_CHANNELS.ROLLBACK);
|
|
75
|
+
ipcMain.removeHandler(TRANSACTION_CHANNELS.EXECUTE);
|
|
76
|
+
this.handlersRegistered = false;
|
|
77
|
+
}
|
|
78
|
+
// ============================================================================
|
|
79
|
+
// Database Operation Handlers
|
|
80
|
+
// ============================================================================
|
|
81
|
+
async handleOpen(_event, request) {
|
|
82
|
+
return this.wrapHandler(request, async () => {
|
|
83
|
+
await this.adapter.open(request.payload.options);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async handleClose(_event, request) {
|
|
87
|
+
return this.wrapHandler(request, async () => {
|
|
88
|
+
await this.adapter.close();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async handleIsOpen(_event, request) {
|
|
92
|
+
return this.wrapHandler(request, async () => {
|
|
93
|
+
// Check if adapter has isOpen method, otherwise try to execute a simple query
|
|
94
|
+
if ('isOpen' in this.adapter && typeof this.adapter.isOpen === 'function') {
|
|
95
|
+
return this.adapter.isOpen();
|
|
96
|
+
}
|
|
97
|
+
// Fallback: try a simple operation
|
|
98
|
+
try {
|
|
99
|
+
await this.adapter.get('SELECT 1');
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
async handleCapabilities(_event, request) {
|
|
108
|
+
return this.wrapHandler(request, async () => {
|
|
109
|
+
return Array.from(this.adapter.capabilities);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async handleRun(event, request) {
|
|
113
|
+
return this.wrapHandler(request, async () => {
|
|
114
|
+
const result = await this.adapter.run(request.payload.statement, request.payload.parameters);
|
|
115
|
+
// Broadcast change to all windows except sender
|
|
116
|
+
this.broadcastDbChange(event, {
|
|
117
|
+
type: this.detectMutationType(request.payload.statement),
|
|
118
|
+
tables: this.extractTables(request.payload.statement),
|
|
119
|
+
changes: result.changes,
|
|
120
|
+
timestamp: Date.now(),
|
|
121
|
+
sourceWindowId: BrowserWindow.fromWebContents(event.sender)?.id,
|
|
122
|
+
});
|
|
123
|
+
return result;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
async handleGet(_event, request) {
|
|
127
|
+
return this.wrapHandler(request, async () => {
|
|
128
|
+
return this.adapter.get(request.payload.statement, request.payload.parameters);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
async handleAll(_event, request) {
|
|
132
|
+
return this.wrapHandler(request, async () => {
|
|
133
|
+
return this.adapter.all(request.payload.statement, request.payload.parameters);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async handleExec(event, request) {
|
|
137
|
+
return this.wrapHandler(request, async () => {
|
|
138
|
+
await this.adapter.exec(request.payload.script);
|
|
139
|
+
// Broadcast change for exec operations
|
|
140
|
+
this.broadcastDbChange(event, {
|
|
141
|
+
type: 'transaction',
|
|
142
|
+
tables: [],
|
|
143
|
+
changes: 0,
|
|
144
|
+
timestamp: Date.now(),
|
|
145
|
+
sourceWindowId: BrowserWindow.fromWebContents(event.sender)?.id,
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
async handleBatch(event, request) {
|
|
150
|
+
return this.wrapHandler(request, async () => {
|
|
151
|
+
if (!this.adapter.batch) {
|
|
152
|
+
throw new Error('Batch operations not supported by this adapter');
|
|
153
|
+
}
|
|
154
|
+
const result = await this.adapter.batch(request.payload.operations);
|
|
155
|
+
// Broadcast change
|
|
156
|
+
this.broadcastDbChange(event, {
|
|
157
|
+
type: 'transaction',
|
|
158
|
+
tables: request.payload.operations.flatMap(op => this.extractTables(op.statement)),
|
|
159
|
+
changes: result.successful,
|
|
160
|
+
timestamp: Date.now(),
|
|
161
|
+
sourceWindowId: BrowserWindow.fromWebContents(event.sender)?.id,
|
|
162
|
+
});
|
|
163
|
+
return result;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
// ============================================================================
|
|
167
|
+
// Transaction Handlers
|
|
168
|
+
// ============================================================================
|
|
169
|
+
async handleTransactionBegin(event, request) {
|
|
170
|
+
return this.wrapHandler(request, async () => {
|
|
171
|
+
const transactionId = `trx_${Date.now()}_${Math.random().toString(36).slice(2)}`;
|
|
172
|
+
const windowId = BrowserWindow.fromWebContents(event.sender)?.id ?? 0;
|
|
173
|
+
// Start transaction
|
|
174
|
+
await this.adapter.exec('BEGIN IMMEDIATE');
|
|
175
|
+
const context = {
|
|
176
|
+
transactionId,
|
|
177
|
+
active: true,
|
|
178
|
+
startedAt: Date.now(),
|
|
179
|
+
};
|
|
180
|
+
this.activeTransactions.set(transactionId, {
|
|
181
|
+
id: transactionId,
|
|
182
|
+
startedAt: context.startedAt,
|
|
183
|
+
windowId,
|
|
184
|
+
});
|
|
185
|
+
return context;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
async handleTransactionCommit(event, request) {
|
|
189
|
+
return this.wrapHandler(request, async () => {
|
|
190
|
+
const trx = this.activeTransactions.get(request.payload.transactionId);
|
|
191
|
+
if (!trx) {
|
|
192
|
+
throw new Error(`Transaction ${request.payload.transactionId} not found`);
|
|
193
|
+
}
|
|
194
|
+
await this.adapter.exec('COMMIT');
|
|
195
|
+
this.activeTransactions.delete(request.payload.transactionId);
|
|
196
|
+
// Broadcast transaction completion
|
|
197
|
+
this.broadcastDbChange(event, {
|
|
198
|
+
type: 'transaction',
|
|
199
|
+
tables: [],
|
|
200
|
+
changes: 0,
|
|
201
|
+
timestamp: Date.now(),
|
|
202
|
+
sourceWindowId: BrowserWindow.fromWebContents(event.sender)?.id,
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
async handleTransactionRollback(_event, request) {
|
|
207
|
+
return this.wrapHandler(request, async () => {
|
|
208
|
+
const trx = this.activeTransactions.get(request.payload.transactionId);
|
|
209
|
+
if (!trx) {
|
|
210
|
+
throw new Error(`Transaction ${request.payload.transactionId} not found`);
|
|
211
|
+
}
|
|
212
|
+
await this.adapter.exec('ROLLBACK');
|
|
213
|
+
this.activeTransactions.delete(request.payload.transactionId);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
async handleTransactionExecute(_event, request) {
|
|
217
|
+
return this.wrapHandler(request, async () => {
|
|
218
|
+
const trx = this.activeTransactions.get(request.payload.transactionId);
|
|
219
|
+
if (!trx) {
|
|
220
|
+
throw new Error(`Transaction ${request.payload.transactionId} not found`);
|
|
221
|
+
}
|
|
222
|
+
const { statement, parameters } = request.payload.operation;
|
|
223
|
+
const upperStatement = statement.trim().toUpperCase();
|
|
224
|
+
if (upperStatement.startsWith('SELECT')) {
|
|
225
|
+
return this.adapter.all(statement, parameters);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
return this.adapter.run(statement, parameters);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
// ============================================================================
|
|
233
|
+
// Helper Methods
|
|
234
|
+
// ============================================================================
|
|
235
|
+
/**
|
|
236
|
+
* Wrap handler with error handling and response formatting.
|
|
237
|
+
*/
|
|
238
|
+
async wrapHandler(request, handler) {
|
|
239
|
+
const startTime = Date.now();
|
|
240
|
+
if (!this.adapter) {
|
|
241
|
+
return {
|
|
242
|
+
messageId: request.messageId,
|
|
243
|
+
success: false,
|
|
244
|
+
error: this.formatError(new Error('Adapter not initialized')),
|
|
245
|
+
duration: Date.now() - startTime,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
try {
|
|
249
|
+
const data = await handler();
|
|
250
|
+
return {
|
|
251
|
+
messageId: request.messageId,
|
|
252
|
+
success: true,
|
|
253
|
+
data,
|
|
254
|
+
duration: Date.now() - startTime,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
return {
|
|
259
|
+
messageId: request.messageId,
|
|
260
|
+
success: false,
|
|
261
|
+
error: this.formatError(error),
|
|
262
|
+
duration: Date.now() - startTime,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Format error for IPC response.
|
|
268
|
+
*/
|
|
269
|
+
formatError(error) {
|
|
270
|
+
if (error instanceof Error) {
|
|
271
|
+
return {
|
|
272
|
+
code: error.name || 'ERROR',
|
|
273
|
+
message: error.message,
|
|
274
|
+
stack: process.env.NODE_ENV === 'development' ? error.stack : undefined,
|
|
275
|
+
cause: error.cause,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
code: 'UNKNOWN_ERROR',
|
|
280
|
+
message: String(error),
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Broadcast database change to all windows except sender.
|
|
285
|
+
*/
|
|
286
|
+
broadcastDbChange(event, change) {
|
|
287
|
+
const senderWindow = BrowserWindow.fromWebContents(event.sender);
|
|
288
|
+
const allWindows = BrowserWindow.getAllWindows();
|
|
289
|
+
for (const win of allWindows) {
|
|
290
|
+
if (win.id !== senderWindow?.id && !win.isDestroyed()) {
|
|
291
|
+
win.webContents.send(BROADCAST_CHANNELS.DB_CHANGE, change);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Detect mutation type from SQL statement.
|
|
297
|
+
*/
|
|
298
|
+
detectMutationType(statement) {
|
|
299
|
+
const upper = statement.trim().toUpperCase();
|
|
300
|
+
if (upper.startsWith('INSERT'))
|
|
301
|
+
return 'insert';
|
|
302
|
+
if (upper.startsWith('UPDATE'))
|
|
303
|
+
return 'update';
|
|
304
|
+
if (upper.startsWith('DELETE'))
|
|
305
|
+
return 'delete';
|
|
306
|
+
return 'transaction';
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Extract table names from SQL statement.
|
|
310
|
+
*/
|
|
311
|
+
extractTables(statement) {
|
|
312
|
+
const tables = [];
|
|
313
|
+
const patterns = [
|
|
314
|
+
/FROM\s+([^\s,;(]+)/gi,
|
|
315
|
+
/INSERT\s+INTO\s+([^\s(]+)/i,
|
|
316
|
+
/UPDATE\s+([^\s]+)/i,
|
|
317
|
+
/DELETE\s+FROM\s+([^\s]+)/i,
|
|
318
|
+
/JOIN\s+([^\s]+)/gi,
|
|
319
|
+
];
|
|
320
|
+
for (const pattern of patterns) {
|
|
321
|
+
const matches = statement.matchAll(pattern);
|
|
322
|
+
for (const match of matches) {
|
|
323
|
+
if (match[1]) {
|
|
324
|
+
tables.push(match[1].toLowerCase().replace(/["`[\]]/g, ''));
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return [...new Set(tables)];
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Singleton protocol manager instance.
|
|
333
|
+
*/
|
|
334
|
+
export const protocolManager = new IpcProtocolManager();
|
|
335
|
+
/**
|
|
336
|
+
* Initialize IPC protocol with the given adapter.
|
|
337
|
+
*/
|
|
338
|
+
export function initializeIpcProtocol(adapter) {
|
|
339
|
+
protocolManager.initialize(adapter);
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Dispose IPC protocol handlers.
|
|
343
|
+
*/
|
|
344
|
+
export function disposeIpcProtocol() {
|
|
345
|
+
protocolManager.dispose();
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../src/adapters/electron/ipc/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for IPC messages in Electron SQL Storage Adapter.
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe request/response patterns for IPC communication
|
|
5
|
+
* between main and renderer processes.
|
|
6
|
+
*/
|
|
7
|
+
import type { StorageParameters, StorageRunResult, StorageOpenOptions, StorageCapability, BatchOperation, BatchResult } from '../../../core/contracts';
|
|
8
|
+
/**
|
|
9
|
+
* Base request structure with correlation ID for request tracking.
|
|
10
|
+
*/
|
|
11
|
+
export interface IpcRequest<T = unknown> {
|
|
12
|
+
/** Unique identifier for correlating request/response pairs */
|
|
13
|
+
messageId: string;
|
|
14
|
+
/** Request payload */
|
|
15
|
+
payload: T;
|
|
16
|
+
/** Timestamp when request was created */
|
|
17
|
+
timestamp: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Base response structure with success/error handling.
|
|
21
|
+
*/
|
|
22
|
+
export interface IpcResponse<T = unknown> {
|
|
23
|
+
/** Correlation ID matching the request */
|
|
24
|
+
messageId: string;
|
|
25
|
+
/** Whether the operation succeeded */
|
|
26
|
+
success: boolean;
|
|
27
|
+
/** Response data (if successful) */
|
|
28
|
+
data?: T;
|
|
29
|
+
/** Error information (if failed) */
|
|
30
|
+
error?: IpcError;
|
|
31
|
+
/** Operation duration in milliseconds */
|
|
32
|
+
duration?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Error structure for IPC responses.
|
|
36
|
+
*/
|
|
37
|
+
export interface IpcError {
|
|
38
|
+
/** Error code for programmatic handling */
|
|
39
|
+
code: string;
|
|
40
|
+
/** Human-readable error message */
|
|
41
|
+
message: string;
|
|
42
|
+
/** Optional stack trace (development only) */
|
|
43
|
+
stack?: string;
|
|
44
|
+
/** Original error details */
|
|
45
|
+
cause?: unknown;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Payload for run/get/all operations.
|
|
49
|
+
*/
|
|
50
|
+
export interface SqlOperationPayload {
|
|
51
|
+
statement: string;
|
|
52
|
+
parameters?: StorageParameters;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Payload for exec operations.
|
|
56
|
+
*/
|
|
57
|
+
export interface ExecPayload {
|
|
58
|
+
script: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Payload for batch operations.
|
|
62
|
+
*/
|
|
63
|
+
export interface BatchPayload {
|
|
64
|
+
operations: BatchOperation[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Payload for open operations.
|
|
68
|
+
*/
|
|
69
|
+
export interface OpenPayload {
|
|
70
|
+
options?: StorageOpenOptions;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Transaction context for multi-step transactions.
|
|
74
|
+
*/
|
|
75
|
+
export interface TransactionContext {
|
|
76
|
+
/** Unique transaction ID */
|
|
77
|
+
transactionId: string;
|
|
78
|
+
/** Whether the transaction is active */
|
|
79
|
+
active: boolean;
|
|
80
|
+
/** Timestamp when transaction started */
|
|
81
|
+
startedAt: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Payload for transaction operations.
|
|
85
|
+
*/
|
|
86
|
+
export interface TransactionOperationPayload {
|
|
87
|
+
transactionId: string;
|
|
88
|
+
operation: SqlOperationPayload;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Sync status information.
|
|
92
|
+
*/
|
|
93
|
+
export interface SyncStatus {
|
|
94
|
+
/** Whether sync is currently running */
|
|
95
|
+
isSyncing: boolean;
|
|
96
|
+
/** Last sync timestamp */
|
|
97
|
+
lastSyncAt: number | null;
|
|
98
|
+
/** Number of pending changes */
|
|
99
|
+
pendingChanges: number;
|
|
100
|
+
/** Connected device count */
|
|
101
|
+
connectedDevices: number;
|
|
102
|
+
/** Current sync progress (0-100) */
|
|
103
|
+
progress?: number;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Backup information.
|
|
107
|
+
*/
|
|
108
|
+
export interface BackupInfo {
|
|
109
|
+
id: string;
|
|
110
|
+
createdAt: number;
|
|
111
|
+
size: number;
|
|
112
|
+
provider: string;
|
|
113
|
+
path?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Database change notification payload.
|
|
117
|
+
*/
|
|
118
|
+
export interface DbChangeEvent {
|
|
119
|
+
/** Type of change */
|
|
120
|
+
type: 'insert' | 'update' | 'delete' | 'transaction';
|
|
121
|
+
/** Affected table(s) */
|
|
122
|
+
tables: string[];
|
|
123
|
+
/** Number of affected rows */
|
|
124
|
+
changes: number;
|
|
125
|
+
/** Timestamp of change */
|
|
126
|
+
timestamp: number;
|
|
127
|
+
/** Source window ID (if applicable) */
|
|
128
|
+
sourceWindowId?: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Connection state change payload.
|
|
132
|
+
*/
|
|
133
|
+
export interface ConnectionStateEvent {
|
|
134
|
+
/** New connection state */
|
|
135
|
+
state: 'open' | 'closed' | 'error';
|
|
136
|
+
/** Timestamp of state change */
|
|
137
|
+
timestamp: number;
|
|
138
|
+
/** Error details (if state is 'error') */
|
|
139
|
+
error?: IpcError;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Integrity check result.
|
|
143
|
+
*/
|
|
144
|
+
export interface IntegrityCheckResult {
|
|
145
|
+
/** Whether the database is healthy */
|
|
146
|
+
ok: boolean;
|
|
147
|
+
/** List of issues found */
|
|
148
|
+
issues: string[];
|
|
149
|
+
/** Timestamp of check */
|
|
150
|
+
checkedAt: number;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* WAL checkpoint result.
|
|
154
|
+
*/
|
|
155
|
+
export interface WalCheckpointResult {
|
|
156
|
+
/** Number of frames checkpointed */
|
|
157
|
+
framesCheckpointed: number;
|
|
158
|
+
/** Total frames in WAL */
|
|
159
|
+
totalFrames: number;
|
|
160
|
+
/** Whether checkpoint was successful */
|
|
161
|
+
success: boolean;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Migration status.
|
|
165
|
+
*/
|
|
166
|
+
export interface MigrationStatus {
|
|
167
|
+
/** Current database version */
|
|
168
|
+
currentVersion: number;
|
|
169
|
+
/** Latest available version */
|
|
170
|
+
latestVersion: number;
|
|
171
|
+
/** List of pending migrations */
|
|
172
|
+
pending: string[];
|
|
173
|
+
/** List of applied migrations */
|
|
174
|
+
applied: string[];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Map of channel to request payload types.
|
|
178
|
+
*/
|
|
179
|
+
export interface IpcRequestPayloads {
|
|
180
|
+
'sql-storage:db:run': SqlOperationPayload;
|
|
181
|
+
'sql-storage:db:get': SqlOperationPayload;
|
|
182
|
+
'sql-storage:db:all': SqlOperationPayload;
|
|
183
|
+
'sql-storage:db:exec': ExecPayload;
|
|
184
|
+
'sql-storage:db:batch': BatchPayload;
|
|
185
|
+
'sql-storage:db:open': OpenPayload;
|
|
186
|
+
'sql-storage:db:close': void;
|
|
187
|
+
'sql-storage:db:is-open': void;
|
|
188
|
+
'sql-storage:db:capabilities': void;
|
|
189
|
+
'sql-storage:transaction:begin': void;
|
|
190
|
+
'sql-storage:transaction:commit': {
|
|
191
|
+
transactionId: string;
|
|
192
|
+
};
|
|
193
|
+
'sql-storage:transaction:rollback': {
|
|
194
|
+
transactionId: string;
|
|
195
|
+
};
|
|
196
|
+
'sql-storage:transaction:execute': TransactionOperationPayload;
|
|
197
|
+
'sql-storage:sync:status': void;
|
|
198
|
+
'sql-storage:sync:trigger': void;
|
|
199
|
+
'sql-storage:backup:trigger': void;
|
|
200
|
+
'sql-storage:backup:list': void;
|
|
201
|
+
'sql-storage:backup:restore': {
|
|
202
|
+
backupId: string;
|
|
203
|
+
};
|
|
204
|
+
'sql-storage:recovery:check-integrity': void;
|
|
205
|
+
'sql-storage:recovery:wal-checkpoint': void;
|
|
206
|
+
'sql-storage:recovery:repair': void;
|
|
207
|
+
'sql-storage:migration:run': void;
|
|
208
|
+
'sql-storage:migration:status': void;
|
|
209
|
+
'sql-storage:migration:rollback': void;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Map of channel to response data types.
|
|
213
|
+
*/
|
|
214
|
+
export interface IpcResponseData {
|
|
215
|
+
'sql-storage:db:run': StorageRunResult;
|
|
216
|
+
'sql-storage:db:get': unknown;
|
|
217
|
+
'sql-storage:db:all': unknown[];
|
|
218
|
+
'sql-storage:db:exec': void;
|
|
219
|
+
'sql-storage:db:batch': BatchResult;
|
|
220
|
+
'sql-storage:db:open': void;
|
|
221
|
+
'sql-storage:db:close': void;
|
|
222
|
+
'sql-storage:db:is-open': boolean;
|
|
223
|
+
'sql-storage:db:capabilities': StorageCapability[];
|
|
224
|
+
'sql-storage:transaction:begin': TransactionContext;
|
|
225
|
+
'sql-storage:transaction:commit': void;
|
|
226
|
+
'sql-storage:transaction:rollback': void;
|
|
227
|
+
'sql-storage:transaction:execute': StorageRunResult | unknown;
|
|
228
|
+
'sql-storage:sync:status': SyncStatus;
|
|
229
|
+
'sql-storage:sync:trigger': void;
|
|
230
|
+
'sql-storage:backup:trigger': void;
|
|
231
|
+
'sql-storage:backup:list': BackupInfo[];
|
|
232
|
+
'sql-storage:backup:restore': void;
|
|
233
|
+
'sql-storage:recovery:check-integrity': IntegrityCheckResult;
|
|
234
|
+
'sql-storage:recovery:wal-checkpoint': WalCheckpointResult;
|
|
235
|
+
'sql-storage:recovery:repair': void;
|
|
236
|
+
'sql-storage:migration:run': void;
|
|
237
|
+
'sql-storage:migration:status': MigrationStatus;
|
|
238
|
+
'sql-storage:migration:rollback': void;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Helper type for typed invoke calls.
|
|
242
|
+
*/
|
|
243
|
+
export type TypedIpcInvoke = <K extends keyof IpcRequestPayloads>(channel: K, payload: IpcRequestPayloads[K]) => Promise<IpcResponseData[K]>;
|
|
244
|
+
/**
|
|
245
|
+
* Helper type for typed handle registration.
|
|
246
|
+
*/
|
|
247
|
+
export type TypedIpcHandle = <K extends keyof IpcRequestPayloads>(channel: K, handler: (event: Electron.IpcMainInvokeEvent, request: IpcRequest<IpcRequestPayloads[K]>) => Promise<IpcResponse<IpcResponseData[K]>>) => void;
|
|
248
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/adapters/electron/ipc/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/adapters/electron/ipc/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|