@powersync/op-sqlite 0.0.0-dev-20260202162549 → 0.0.0-dev-20260216124709
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/lib/commonjs/db/OPSQLiteConnection.js +106 -0
- package/lib/commonjs/db/OPSQLiteConnection.js.map +1 -0
- package/lib/commonjs/db/OPSqliteAdapter.js +261 -0
- package/lib/commonjs/db/OPSqliteAdapter.js.map +1 -0
- package/lib/commonjs/db/OPSqliteDBOpenFactory.js +26 -0
- package/lib/commonjs/db/OPSqliteDBOpenFactory.js.map +1 -0
- package/lib/commonjs/db/SqliteOptions.js +41 -0
- package/lib/commonjs/db/SqliteOptions.js.map +1 -0
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/db/OPSQLiteConnection.js +101 -0
- package/lib/module/db/OPSQLiteConnection.js.map +1 -0
- package/lib/module/db/OPSqliteAdapter.js +257 -0
- package/lib/module/db/OPSqliteAdapter.js.map +1 -0
- package/lib/module/db/OPSqliteDBOpenFactory.js +21 -0
- package/lib/module/db/OPSqliteDBOpenFactory.js.map +1 -0
- package/lib/module/db/SqliteOptions.js +39 -0
- package/lib/module/db/SqliteOptions.js.map +1 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/db/OPSQLiteConnection.d.ts +28 -0
- package/lib/typescript/commonjs/src/db/OPSQLiteConnection.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/db/OPSqliteAdapter.d.ts +46 -0
- package/lib/typescript/commonjs/src/db/OPSqliteAdapter.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/db/OPSqliteDBOpenFactory.d.ts +12 -0
- package/lib/typescript/commonjs/src/db/OPSqliteDBOpenFactory.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/db/SqliteOptions.d.ts +69 -0
- package/lib/typescript/commonjs/src/db/SqliteOptions.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +2 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/db/OPSQLiteConnection.d.ts +28 -0
- package/lib/typescript/module/src/db/OPSQLiteConnection.d.ts.map +1 -0
- package/lib/typescript/module/src/db/OPSqliteAdapter.d.ts +46 -0
- package/lib/typescript/module/src/db/OPSqliteAdapter.d.ts.map +1 -0
- package/lib/typescript/module/src/db/OPSqliteDBOpenFactory.d.ts +12 -0
- package/lib/typescript/module/src/db/OPSqliteDBOpenFactory.d.ts.map +1 -0
- package/lib/typescript/module/src/db/SqliteOptions.d.ts +69 -0
- package/lib/typescript/module/src/db/SqliteOptions.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +2 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { getDylibPath, open } from '@op-engineering/op-sqlite';
|
|
4
|
+
import { BaseObserver, mutexRunExclusive } from '@powersync/common';
|
|
5
|
+
import { Mutex } from 'async-mutex';
|
|
6
|
+
import { Platform } from 'react-native';
|
|
7
|
+
import { OPSQLiteConnection } from "./OPSQLiteConnection.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Adapter for React Native Quick SQLite
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const READ_CONNECTIONS = 5;
|
|
14
|
+
export class OPSQLiteDBAdapter extends BaseObserver {
|
|
15
|
+
readQueue = [];
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super();
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.name = this.options.name;
|
|
20
|
+
this.writeMutex = new Mutex();
|
|
21
|
+
this.readConnections = null;
|
|
22
|
+
this.writeConnection = null;
|
|
23
|
+
this.abortController = new AbortController();
|
|
24
|
+
this.initialized = this.init();
|
|
25
|
+
}
|
|
26
|
+
async init() {
|
|
27
|
+
const {
|
|
28
|
+
lockTimeoutMs,
|
|
29
|
+
journalMode,
|
|
30
|
+
journalSizeLimit,
|
|
31
|
+
synchronous,
|
|
32
|
+
cacheSizeKb,
|
|
33
|
+
temporaryStorage
|
|
34
|
+
} = this.options.sqliteOptions;
|
|
35
|
+
const dbFilename = this.options.name;
|
|
36
|
+
this.writeConnection = await this.openConnection(dbFilename);
|
|
37
|
+
const baseStatements = [`PRAGMA busy_timeout = ${lockTimeoutMs}`, `PRAGMA cache_size = -${cacheSizeKb}`, `PRAGMA temp_store = ${temporaryStorage}`];
|
|
38
|
+
const writeConnectionStatements = [...baseStatements, `PRAGMA journal_mode = ${journalMode}`, `PRAGMA journal_size_limit = ${journalSizeLimit}`, `PRAGMA synchronous = ${synchronous}`];
|
|
39
|
+
const readConnectionStatements = [...baseStatements, 'PRAGMA query_only = true'];
|
|
40
|
+
for (const statement of writeConnectionStatements) {
|
|
41
|
+
for (let tries = 0; tries < 30; tries++) {
|
|
42
|
+
try {
|
|
43
|
+
await this.writeConnection.execute(statement);
|
|
44
|
+
break;
|
|
45
|
+
} catch (e) {
|
|
46
|
+
if (e instanceof Error && e.message.includes('database is locked') && tries < 29) {
|
|
47
|
+
continue;
|
|
48
|
+
} else {
|
|
49
|
+
throw e;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Changes should only occur in the write connection
|
|
56
|
+
this.writeConnection.registerListener({
|
|
57
|
+
tablesUpdated: notification => this.iterateListeners(cb => cb.tablesUpdated?.(notification))
|
|
58
|
+
});
|
|
59
|
+
this.readConnections = [];
|
|
60
|
+
for (let i = 0; i < READ_CONNECTIONS; i++) {
|
|
61
|
+
const conn = await this.openConnection(dbFilename);
|
|
62
|
+
for (let statement of readConnectionStatements) {
|
|
63
|
+
await conn.execute(statement);
|
|
64
|
+
}
|
|
65
|
+
this.readConnections.push({
|
|
66
|
+
busy: false,
|
|
67
|
+
connection: conn
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async openConnection(filenameOverride) {
|
|
72
|
+
const dbFilename = filenameOverride ?? this.options.name;
|
|
73
|
+
const DB = this.openDatabase(dbFilename, this.options.sqliteOptions?.encryptionKey ?? undefined);
|
|
74
|
+
|
|
75
|
+
//Load extensions for all connections
|
|
76
|
+
this.loadAdditionalExtensions(DB);
|
|
77
|
+
this.loadPowerSyncExtension(DB);
|
|
78
|
+
await DB.execute('SELECT powersync_init()');
|
|
79
|
+
return new OPSQLiteConnection({
|
|
80
|
+
baseDB: DB
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
openDatabase(dbFilename, encryptionKey) {
|
|
84
|
+
const openOptions = {
|
|
85
|
+
name: dbFilename
|
|
86
|
+
};
|
|
87
|
+
if (this.options.dbLocation) {
|
|
88
|
+
openOptions.location = this.options.dbLocation;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// If the encryption key is undefined/null when using SQLCipher it will cause the open function to fail
|
|
92
|
+
if (encryptionKey) {
|
|
93
|
+
openOptions.encryptionKey = encryptionKey;
|
|
94
|
+
}
|
|
95
|
+
return open(openOptions);
|
|
96
|
+
}
|
|
97
|
+
loadAdditionalExtensions(DB) {
|
|
98
|
+
if (this.options.sqliteOptions?.extensions && this.options.sqliteOptions.extensions.length > 0) {
|
|
99
|
+
for (const extension of this.options.sqliteOptions.extensions) {
|
|
100
|
+
DB.loadExtension(extension.path, extension.entryPoint);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async loadPowerSyncExtension(DB) {
|
|
105
|
+
if (Platform.OS === 'ios') {
|
|
106
|
+
const libPath = getDylibPath('co.powersync.sqlitecore', 'powersync-sqlite-core');
|
|
107
|
+
DB.loadExtension(libPath, 'sqlite3_powersync_init');
|
|
108
|
+
} else {
|
|
109
|
+
DB.loadExtension('libpowersync', 'sqlite3_powersync_init');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async close() {
|
|
113
|
+
await this.initialized;
|
|
114
|
+
// Abort any pending operations
|
|
115
|
+
this.abortController.abort();
|
|
116
|
+
this.readQueue = [];
|
|
117
|
+
this.writeConnection.close();
|
|
118
|
+
this.readConnections.forEach(c => c.connection.close());
|
|
119
|
+
}
|
|
120
|
+
async readLock(fn, options) {
|
|
121
|
+
await this.initialized;
|
|
122
|
+
return new Promise(async (resolve, reject) => {
|
|
123
|
+
const execute = async () => {
|
|
124
|
+
// Find an available connection that is not busy
|
|
125
|
+
const availableConnection = this.readConnections.find(conn => !conn.busy);
|
|
126
|
+
|
|
127
|
+
// If we have an available connection, use it
|
|
128
|
+
if (availableConnection) {
|
|
129
|
+
availableConnection.busy = true;
|
|
130
|
+
try {
|
|
131
|
+
resolve(await fn(availableConnection.connection));
|
|
132
|
+
} catch (error) {
|
|
133
|
+
reject(error);
|
|
134
|
+
} finally {
|
|
135
|
+
availableConnection.busy = false;
|
|
136
|
+
// After query execution, process any queued tasks
|
|
137
|
+
this.processQueue();
|
|
138
|
+
}
|
|
139
|
+
} else {
|
|
140
|
+
// If no available connections, add to the queue
|
|
141
|
+
this.readQueue.push(execute);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
execute();
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
async processQueue() {
|
|
148
|
+
if (this.readQueue.length > 0) {
|
|
149
|
+
const next = this.readQueue.shift();
|
|
150
|
+
if (next) {
|
|
151
|
+
next();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async writeLock(fn, options) {
|
|
156
|
+
await this.initialized;
|
|
157
|
+
return new Promise(async (resolve, reject) => {
|
|
158
|
+
// Set up abort signal listener
|
|
159
|
+
const abortListener = () => {
|
|
160
|
+
reject(new Error('Database connection was closed'));
|
|
161
|
+
};
|
|
162
|
+
this.abortController.signal.addEventListener('abort', abortListener);
|
|
163
|
+
try {
|
|
164
|
+
await mutexRunExclusive(this.writeMutex, async () => {
|
|
165
|
+
// Check if operation was aborted before executing
|
|
166
|
+
if (this.abortController.signal.aborted) {
|
|
167
|
+
reject(new Error('Database connection was closed'));
|
|
168
|
+
}
|
|
169
|
+
resolve(await fn(this.writeConnection));
|
|
170
|
+
}, options);
|
|
171
|
+
// flush updates once a write lock has been released
|
|
172
|
+
this.writeConnection.flushUpdates();
|
|
173
|
+
} catch (ex) {
|
|
174
|
+
reject(ex);
|
|
175
|
+
} finally {
|
|
176
|
+
this.abortController.signal.removeEventListener('abort', abortListener);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
readTransaction(fn, options) {
|
|
181
|
+
return this.readLock(ctx => this.internalTransaction(ctx, fn));
|
|
182
|
+
}
|
|
183
|
+
writeTransaction(fn, options) {
|
|
184
|
+
return this.writeLock(ctx => this.internalTransaction(ctx, fn));
|
|
185
|
+
}
|
|
186
|
+
getAll(sql, parameters) {
|
|
187
|
+
return this.readLock(ctx => ctx.getAll(sql, parameters));
|
|
188
|
+
}
|
|
189
|
+
getOptional(sql, parameters) {
|
|
190
|
+
return this.readLock(ctx => ctx.getOptional(sql, parameters));
|
|
191
|
+
}
|
|
192
|
+
get(sql, parameters) {
|
|
193
|
+
return this.readLock(ctx => ctx.get(sql, parameters));
|
|
194
|
+
}
|
|
195
|
+
execute(query, params) {
|
|
196
|
+
return this.writeLock(ctx => ctx.execute(query, params));
|
|
197
|
+
}
|
|
198
|
+
executeRaw(query, params) {
|
|
199
|
+
return this.writeLock(ctx => ctx.executeRaw(query, params));
|
|
200
|
+
}
|
|
201
|
+
async executeBatch(query, params = []) {
|
|
202
|
+
return this.writeLock(ctx => ctx.executeBatch(query, params));
|
|
203
|
+
}
|
|
204
|
+
async internalTransaction(connection, fn) {
|
|
205
|
+
let finalized = false;
|
|
206
|
+
const commit = async () => {
|
|
207
|
+
if (finalized) {
|
|
208
|
+
return {
|
|
209
|
+
rowsAffected: 0
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
finalized = true;
|
|
213
|
+
return connection.execute('COMMIT');
|
|
214
|
+
};
|
|
215
|
+
const rollback = async () => {
|
|
216
|
+
if (finalized) {
|
|
217
|
+
return {
|
|
218
|
+
rowsAffected: 0
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
finalized = true;
|
|
222
|
+
return connection.execute('ROLLBACK');
|
|
223
|
+
};
|
|
224
|
+
try {
|
|
225
|
+
await connection.execute('BEGIN');
|
|
226
|
+
const result = await fn({
|
|
227
|
+
execute: (query, params) => connection.execute(query, params),
|
|
228
|
+
executeRaw: (query, params) => connection.executeRaw(query, params),
|
|
229
|
+
get: (query, params) => connection.get(query, params),
|
|
230
|
+
getAll: (query, params) => connection.getAll(query, params),
|
|
231
|
+
getOptional: (query, params) => connection.getOptional(query, params),
|
|
232
|
+
commit,
|
|
233
|
+
rollback
|
|
234
|
+
});
|
|
235
|
+
await commit();
|
|
236
|
+
return result;
|
|
237
|
+
} catch (ex) {
|
|
238
|
+
try {
|
|
239
|
+
await rollback();
|
|
240
|
+
} catch (ex2) {
|
|
241
|
+
// In rare cases, a rollback may fail.
|
|
242
|
+
// Safe to ignore.
|
|
243
|
+
}
|
|
244
|
+
throw ex;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
async refreshSchema() {
|
|
248
|
+
await this.initialized;
|
|
249
|
+
await this.writeConnection.refreshSchema();
|
|
250
|
+
if (this.readConnections) {
|
|
251
|
+
for (let readConnection of this.readConnections) {
|
|
252
|
+
await readConnection.connection.refreshSchema();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=OPSqliteAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getDylibPath","open","BaseObserver","mutexRunExclusive","Mutex","Platform","OPSQLiteConnection","READ_CONNECTIONS","OPSQLiteDBAdapter","readQueue","constructor","options","name","writeMutex","readConnections","writeConnection","abortController","AbortController","initialized","init","lockTimeoutMs","journalMode","journalSizeLimit","synchronous","cacheSizeKb","temporaryStorage","sqliteOptions","dbFilename","openConnection","baseStatements","writeConnectionStatements","readConnectionStatements","statement","tries","execute","e","Error","message","includes","registerListener","tablesUpdated","notification","iterateListeners","cb","i","conn","push","busy","connection","filenameOverride","DB","openDatabase","encryptionKey","undefined","loadAdditionalExtensions","loadPowerSyncExtension","baseDB","openOptions","dbLocation","location","extensions","length","extension","loadExtension","path","entryPoint","OS","libPath","close","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","aborted","flushUpdates","ex","removeEventListener","readTransaction","ctx","internalTransaction","writeTransaction","getAll","sql","parameters","getOptional","get","query","params","executeRaw","executeBatch","finalized","commit","rowsAffected","rollback","result","ex2","refreshSchema","readConnection"],"sourceRoot":"../../../src","sources":["db/OPSqliteAdapter.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,IAAI,QAAiB,2BAA2B;AACvE,SACEC,YAAY,EAMZC,iBAAiB,QACZ,mBAAmB;AAC1B,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,kBAAkB,QAAQ,yBAAsB;;AAGzD;AACA;AACA;;AAOA,MAAMC,gBAAgB,GAAG,CAAC;AAE1B,OAAO,MAAMC,iBAAiB,SAASN,YAAY,CAAyC;EAUlFO,SAAS,GAAsB,EAAE;EAGzCC,WAAWA,CAAWC,OAA+B,EAAE;IACrD,KAAK,CAAC,CAAC;IAAC,KADYA,OAA+B,GAA/BA,OAA+B;IAEnD,IAAI,CAACC,IAAI,GAAG,IAAI,CAACD,OAAO,CAACC,IAAI;IAE7B,IAAI,CAACC,UAAU,GAAG,IAAIT,KAAK,CAAC,CAAC;IAC7B,IAAI,CAACU,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACC,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACC,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAACC,WAAW,GAAG,IAAI,CAACC,IAAI,CAAC,CAAC;EAChC;EAEA,MAAgBA,IAAIA,CAAA,EAAG;IACrB,MAAM;MAAEC,aAAa;MAAEC,WAAW;MAAEC,gBAAgB;MAAEC,WAAW;MAAEC,WAAW;MAAEC;IAAiB,CAAC,GAChG,IAAI,CAACd,OAAO,CAACe,aAAc;IAC7B,MAAMC,UAAU,GAAG,IAAI,CAAChB,OAAO,CAACC,IAAI;IAEpC,IAAI,CAACG,eAAe,GAAG,MAAM,IAAI,CAACa,cAAc,CAACD,UAAU,CAAC;IAE5D,MAAME,cAAc,GAAG,CACrB,yBAAyBT,aAAa,EAAE,EACxC,wBAAwBI,WAAW,EAAE,EACrC,uBAAuBC,gBAAgB,EAAE,CAC1C;IAED,MAAMK,yBAAyB,GAAG,CAChC,GAAGD,cAAc,EACjB,yBAAyBR,WAAW,EAAE,EACtC,+BAA+BC,gBAAgB,EAAE,EACjD,wBAAwBC,WAAW,EAAE,CACtC;IAED,MAAMQ,wBAAwB,GAAG,CAAC,GAAGF,cAAc,EAAE,0BAA0B,CAAC;IAEhF,KAAK,MAAMG,SAAS,IAAIF,yBAAyB,EAAE;MACjD,KAAK,IAAIG,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,EAAE,EAAEA,KAAK,EAAE,EAAE;QACvC,IAAI;UACF,MAAM,IAAI,CAAClB,eAAe,CAAEmB,OAAO,CAACF,SAAS,CAAC;UAC9C;QACF,CAAC,CAAC,OAAOG,CAAM,EAAE;UACf,IAAIA,CAAC,YAAYC,KAAK,IAAID,CAAC,CAACE,OAAO,CAACC,QAAQ,CAAC,oBAAoB,CAAC,IAAIL,KAAK,GAAG,EAAE,EAAE;YAChF;UACF,CAAC,MAAM;YACL,MAAME,CAAC;UACT;QACF;MACF;IACF;;IAEA;IACA,IAAI,CAACpB,eAAe,CAAEwB,gBAAgB,CAAC;MACrCC,aAAa,EAAGC,YAAY,IAAK,IAAI,CAACC,gBAAgB,CAAEC,EAAE,IAAKA,EAAE,CAACH,aAAa,GAAGC,YAAY,CAAC;IACjG,CAAC,CAAC;IAEF,IAAI,CAAC3B,eAAe,GAAG,EAAE;IACzB,KAAK,IAAI8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGrC,gBAAgB,EAAEqC,CAAC,EAAE,EAAE;MACzC,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACjB,cAAc,CAACD,UAAU,CAAC;MAClD,KAAK,IAAIK,SAAS,IAAID,wBAAwB,EAAE;QAC9C,MAAMc,IAAI,CAACX,OAAO,CAACF,SAAS,CAAC;MAC/B;MACA,IAAI,CAAClB,eAAe,CAACgC,IAAI,CAAC;QAAEC,IAAI,EAAE,KAAK;QAAEC,UAAU,EAAEH;MAAK,CAAC,CAAC;IAC9D;EACF;EAEA,MAAgBjB,cAAcA,CAACqB,gBAAyB,EAA+B;IACrF,MAAMtB,UAAU,GAAGsB,gBAAgB,IAAI,IAAI,CAACtC,OAAO,CAACC,IAAI;IACxD,MAAMsC,EAAM,GAAG,IAAI,CAACC,YAAY,CAACxB,UAAU,EAAE,IAAI,CAAChB,OAAO,CAACe,aAAa,EAAE0B,aAAa,IAAIC,SAAS,CAAC;;IAEpG;IACA,IAAI,CAACC,wBAAwB,CAACJ,EAAE,CAAC;IACjC,IAAI,CAACK,sBAAsB,CAACL,EAAE,CAAC;IAE/B,MAAMA,EAAE,CAAChB,OAAO,CAAC,yBAAyB,CAAC;IAE3C,OAAO,IAAI5B,kBAAkB,CAAC;MAC5BkD,MAAM,EAAEN;IACV,CAAC,CAAC;EACJ;EAEQC,YAAYA,CAACxB,UAAkB,EAAEyB,aAAsB,EAAM;IACnE,MAAMK,WAAuC,GAAG;MAC9C7C,IAAI,EAAEe;IACR,CAAC;IAED,IAAI,IAAI,CAAChB,OAAO,CAAC+C,UAAU,EAAE;MAC3BD,WAAW,CAACE,QAAQ,GAAG,IAAI,CAAChD,OAAO,CAAC+C,UAAU;IAChD;;IAEA;IACA,IAAIN,aAAa,EAAE;MACjBK,WAAW,CAACL,aAAa,GAAGA,aAAa;IAC3C;IAEA,OAAOnD,IAAI,CAACwD,WAAW,CAAC;EAC1B;EAEQH,wBAAwBA,CAACJ,EAAM,EAAE;IACvC,IAAI,IAAI,CAACvC,OAAO,CAACe,aAAa,EAAEkC,UAAU,IAAI,IAAI,CAACjD,OAAO,CAACe,aAAa,CAACkC,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;MAC9F,KAAK,MAAMC,SAAS,IAAI,IAAI,CAACnD,OAAO,CAACe,aAAa,CAACkC,UAAU,EAAE;QAC7DV,EAAE,CAACa,aAAa,CAACD,SAAS,CAACE,IAAI,EAAEF,SAAS,CAACG,UAAU,CAAC;MACxD;IACF;EACF;EAEA,MAAcV,sBAAsBA,CAACL,EAAM,EAAE;IAC3C,IAAI7C,QAAQ,CAAC6D,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMC,OAAO,GAAGnE,YAAY,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;MAChFkD,EAAE,CAACa,aAAa,CAACI,OAAO,EAAE,wBAAwB,CAAC;IACrD,CAAC,MAAM;MACLjB,EAAE,CAACa,aAAa,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAC5D;EACF;EAEA,MAAMK,KAAKA,CAAA,EAAG;IACZ,MAAM,IAAI,CAAClD,WAAW;IACtB;IACA,IAAI,CAACF,eAAe,CAACqD,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC5D,SAAS,GAAG,EAAE;IAEnB,IAAI,CAACM,eAAe,CAAEqD,KAAK,CAAC,CAAC;IAC7B,IAAI,CAACtD,eAAe,CAAEwD,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACvB,UAAU,CAACoB,KAAK,CAAC,CAAC,CAAC;EAC5D;EAEA,MAAMI,QAAQA,CAAIC,EAA0C,EAAE9D,OAAuB,EAAc;IACjG,MAAM,IAAI,CAACO,WAAW;IACtB,OAAO,IAAIwD,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC5C,MAAM1C,OAAO,GAAG,MAAAA,CAAA,KAAY;QAC1B;QACA,MAAM2C,mBAAmB,GAAG,IAAI,CAAC/D,eAAe,CAAEgE,IAAI,CAAEjC,IAAI,IAAK,CAACA,IAAI,CAACE,IAAI,CAAC;;QAE5E;QACA,IAAI8B,mBAAmB,EAAE;UACvBA,mBAAmB,CAAC9B,IAAI,GAAG,IAAI;UAC/B,IAAI;YACF4B,OAAO,CAAC,MAAMF,EAAE,CAACI,mBAAmB,CAAC7B,UAAU,CAAC,CAAC;UACnD,CAAC,CAAC,OAAO+B,KAAK,EAAE;YACdH,MAAM,CAACG,KAAK,CAAC;UACf,CAAC,SAAS;YACRF,mBAAmB,CAAC9B,IAAI,GAAG,KAAK;YAChC;YACA,IAAI,CAACiC,YAAY,CAAC,CAAC;UACrB;QACF,CAAC,MAAM;UACL;UACA,IAAI,CAACvE,SAAS,CAACqC,IAAI,CAACZ,OAAO,CAAC;QAC9B;MACF,CAAC;MAEDA,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;EACJ;EAEA,MAAc8C,YAAYA,CAAA,EAAkB;IAC1C,IAAI,IAAI,CAACvE,SAAS,CAACoD,MAAM,GAAG,CAAC,EAAE;MAC7B,MAAMoB,IAAI,GAAG,IAAI,CAACxE,SAAS,CAACyE,KAAK,CAAC,CAAC;MACnC,IAAID,IAAI,EAAE;QACRA,IAAI,CAAC,CAAC;MACR;IACF;EACF;EAEA,MAAME,SAASA,CAAIV,EAA0C,EAAE9D,OAAuB,EAAc;IAClG,MAAM,IAAI,CAACO,WAAW;IAEtB,OAAO,IAAIwD,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC5C;MACA,MAAMQ,aAAa,GAAGA,CAAA,KAAM;QAC1BR,MAAM,CAAC,IAAIxC,KAAK,CAAC,gCAAgC,CAAC,CAAC;MACrD,CAAC;MACD,IAAI,CAACpB,eAAe,CAACqE,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAEF,aAAa,CAAC;MAEpE,IAAI;QACF,MAAMjF,iBAAiB,CACrB,IAAI,CAACU,UAAU,EACf,YAAY;UACV;UACA,IAAI,IAAI,CAACG,eAAe,CAACqE,MAAM,CAACE,OAAO,EAAE;YACvCX,MAAM,CAAC,IAAIxC,KAAK,CAAC,gCAAgC,CAAC,CAAC;UACrD;UACAuC,OAAO,CAAC,MAAMF,EAAE,CAAC,IAAI,CAAC1D,eAAgB,CAAC,CAAC;QAC1C,CAAC,EACDJ,OACF,CAAC;QACD;QACA,IAAI,CAACI,eAAe,CAAEyE,YAAY,CAAC,CAAC;MACtC,CAAC,CAAC,OAAOC,EAAE,EAAE;QACXb,MAAM,CAACa,EAAE,CAAC;MACZ,CAAC,SAAS;QACR,IAAI,CAACzE,eAAe,CAACqE,MAAM,CAACK,mBAAmB,CAAC,OAAO,EAAEN,aAAa,CAAC;MACzE;IACF,CAAC,CAAC;EACJ;EAEAO,eAAeA,CAAIlB,EAAmC,EAAE9D,OAAuB,EAAc;IAC3F,OAAO,IAAI,CAAC6D,QAAQ,CAAEoB,GAAG,IAAK,IAAI,CAACC,mBAAmB,CAACD,GAAG,EAAEnB,EAAE,CAAC,CAAC;EAClE;EAEAqB,gBAAgBA,CAAIrB,EAAmC,EAAE9D,OAAuB,EAAc;IAC5F,OAAO,IAAI,CAACwE,SAAS,CAAES,GAAG,IAAK,IAAI,CAACC,mBAAmB,CAACD,GAAG,EAAEnB,EAAE,CAAC,CAAC;EACnE;EAEAsB,MAAMA,CAAIC,GAAW,EAAEC,UAAkB,EAAgB;IACvD,OAAO,IAAI,CAACzB,QAAQ,CAAEoB,GAAG,IAAKA,GAAG,CAACG,MAAM,CAACC,GAAG,EAAEC,UAAU,CAAC,CAAC;EAC5D;EAEAC,WAAWA,CAAIF,GAAW,EAAEC,UAAkB,EAAqB;IACjE,OAAO,IAAI,CAACzB,QAAQ,CAAEoB,GAAG,IAAKA,GAAG,CAACM,WAAW,CAACF,GAAG,EAAEC,UAAU,CAAC,CAAC;EACjE;EAEAE,GAAGA,CAAIH,GAAW,EAAEC,UAAkB,EAAc;IAClD,OAAO,IAAI,CAACzB,QAAQ,CAAEoB,GAAG,IAAKA,GAAG,CAACO,GAAG,CAACH,GAAG,EAAEC,UAAU,CAAC,CAAC;EACzD;EAEA/D,OAAOA,CAACkE,KAAa,EAAEC,MAAc,EAAE;IACrC,OAAO,IAAI,CAAClB,SAAS,CAAES,GAAG,IAAKA,GAAG,CAAC1D,OAAO,CAACkE,KAAK,EAAEC,MAAM,CAAC,CAAC;EAC5D;EAEAC,UAAUA,CAACF,KAAa,EAAEC,MAAc,EAAE;IACxC,OAAO,IAAI,CAAClB,SAAS,CAAES,GAAG,IAAKA,GAAG,CAACU,UAAU,CAACF,KAAK,EAAEC,MAAM,CAAC,CAAC;EAC/D;EAEA,MAAME,YAAYA,CAACH,KAAa,EAAEC,MAAe,GAAG,EAAE,EAAwB;IAC5E,OAAO,IAAI,CAAClB,SAAS,CAAES,GAAG,IAAKA,GAAG,CAACW,YAAY,CAACH,KAAK,EAAEC,MAAM,CAAC,CAAC;EACjE;EAEA,MAAgBR,mBAAmBA,CACjC7C,UAA8B,EAC9ByB,EAAmC,EACvB;IACZ,IAAI+B,SAAS,GAAG,KAAK;IACrB,MAAMC,MAAM,GAAG,MAAAA,CAAA,KAAkC;MAC/C,IAAID,SAAS,EAAE;QACb,OAAO;UAAEE,YAAY,EAAE;QAAE,CAAC;MAC5B;MACAF,SAAS,GAAG,IAAI;MAChB,OAAOxD,UAAU,CAACd,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;IACD,MAAMyE,QAAQ,GAAG,MAAAA,CAAA,KAAkC;MACjD,IAAIH,SAAS,EAAE;QACb,OAAO;UAAEE,YAAY,EAAE;QAAE,CAAC;MAC5B;MACAF,SAAS,GAAG,IAAI;MAChB,OAAOxD,UAAU,CAACd,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IACD,IAAI;MACF,MAAMc,UAAU,CAACd,OAAO,CAAC,OAAO,CAAC;MACjC,MAAM0E,MAAM,GAAG,MAAMnC,EAAE,CAAC;QACtBvC,OAAO,EAAEA,CAACkE,KAAK,EAAEC,MAAM,KAAKrD,UAAU,CAACd,OAAO,CAACkE,KAAK,EAAEC,MAAM,CAAC;QAC7DC,UAAU,EAAEA,CAACF,KAAK,EAAEC,MAAM,KAAKrD,UAAU,CAACsD,UAAU,CAACF,KAAK,EAAEC,MAAM,CAAC;QACnEF,GAAG,EAAEA,CAACC,KAAK,EAAEC,MAAM,KAAKrD,UAAU,CAACmD,GAAG,CAACC,KAAK,EAAEC,MAAM,CAAC;QACrDN,MAAM,EAAEA,CAACK,KAAK,EAAEC,MAAM,KAAKrD,UAAU,CAAC+C,MAAM,CAACK,KAAK,EAAEC,MAAM,CAAC;QAC3DH,WAAW,EAAEA,CAACE,KAAK,EAAEC,MAAM,KAAKrD,UAAU,CAACkD,WAAW,CAACE,KAAK,EAAEC,MAAM,CAAC;QACrEI,MAAM;QACNE;MACF,CAAC,CAAC;MACF,MAAMF,MAAM,CAAC,CAAC;MACd,OAAOG,MAAM;IACf,CAAC,CAAC,OAAOnB,EAAE,EAAE;MACX,IAAI;QACF,MAAMkB,QAAQ,CAAC,CAAC;MAClB,CAAC,CAAC,OAAOE,GAAG,EAAE;QACZ;QACA;MAAA;MAEF,MAAMpB,EAAE;IACV;EACF;EAEA,MAAMqB,aAAaA,CAAA,EAAkB;IACnC,MAAM,IAAI,CAAC5F,WAAW;IACtB,MAAM,IAAI,CAACH,eAAe,CAAE+F,aAAa,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAChG,eAAe,EAAE;MACxB,KAAK,IAAIiG,cAAc,IAAI,IAAI,CAACjG,eAAe,EAAE;QAC/C,MAAMiG,cAAc,CAAC/D,UAAU,CAAC8D,aAAa,CAAC,CAAC;MACjD;IACF;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { OPSQLiteDBAdapter } from "./OPSqliteAdapter.js";
|
|
4
|
+
import { DEFAULT_SQLITE_OPTIONS } from "./SqliteOptions.js";
|
|
5
|
+
export class OPSqliteOpenFactory {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
this.sqliteOptions = {
|
|
9
|
+
...DEFAULT_SQLITE_OPTIONS,
|
|
10
|
+
...this.options.sqliteOptions
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
openDB() {
|
|
14
|
+
return new OPSQLiteDBAdapter({
|
|
15
|
+
name: this.options.dbFilename,
|
|
16
|
+
dbLocation: this.options.dbLocation,
|
|
17
|
+
sqliteOptions: this.sqliteOptions
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=OPSqliteDBOpenFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OPSQLiteDBAdapter","DEFAULT_SQLITE_OPTIONS","OPSqliteOpenFactory","constructor","options","sqliteOptions","openDB","name","dbFilename","dbLocation"],"sourceRoot":"../../../src","sources":["db/OPSqliteDBOpenFactory.ts"],"mappings":";;AACA,SAASA,iBAAiB,QAAQ,sBAAmB;AACrD,SAASC,sBAAsB,QAAuB,oBAAiB;AAKvE,OAAO,MAAMC,mBAAmB,CAA2B;EAGzDC,WAAWA,CAAWC,OAAmC,EAAE;IAAA,KAArCA,OAAmC,GAAnCA,OAAmC;IACvD,IAAI,CAACC,aAAa,GAAG;MACnB,GAAGJ,sBAAsB;MACzB,GAAG,IAAI,CAACG,OAAO,CAACC;IAClB,CAAC;EACH;EAEAC,MAAMA,CAAA,EAAc;IAClB,OAAO,IAAIN,iBAAiB,CAAC;MAC3BO,IAAI,EAAE,IAAI,CAACH,OAAO,CAACI,UAAU;MAC7BC,UAAU,EAAE,IAAI,CAACL,OAAO,CAACK,UAAU;MACnCJ,aAAa,EAAE,IAAI,CAACA;IACtB,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export let TemporaryStorageOption = /*#__PURE__*/function (TemporaryStorageOption) {
|
|
4
|
+
TemporaryStorageOption["MEMORY"] = "memory";
|
|
5
|
+
TemporaryStorageOption["FILESYSTEM"] = "file";
|
|
6
|
+
return TemporaryStorageOption;
|
|
7
|
+
}({});
|
|
8
|
+
|
|
9
|
+
// SQLite journal mode. Set on the primary connection.
|
|
10
|
+
// This library is written with WAL mode in mind - other modes may cause
|
|
11
|
+
// unexpected locking behavior.
|
|
12
|
+
var SqliteJournalMode = /*#__PURE__*/function (SqliteJournalMode) {
|
|
13
|
+
// Use a write-ahead log instead of a rollback journal.
|
|
14
|
+
// This provides good performance and concurrency.
|
|
15
|
+
SqliteJournalMode["wal"] = "WAL";
|
|
16
|
+
SqliteJournalMode["delete"] = "DELETE";
|
|
17
|
+
SqliteJournalMode["truncate"] = "TRUNCATE";
|
|
18
|
+
SqliteJournalMode["persist"] = "PERSIST";
|
|
19
|
+
SqliteJournalMode["memory"] = "MEMORY";
|
|
20
|
+
SqliteJournalMode["off"] = "OFF";
|
|
21
|
+
return SqliteJournalMode;
|
|
22
|
+
}(SqliteJournalMode || {}); // SQLite file commit mode.
|
|
23
|
+
var SqliteSynchronous = /*#__PURE__*/function (SqliteSynchronous) {
|
|
24
|
+
SqliteSynchronous["normal"] = "NORMAL";
|
|
25
|
+
SqliteSynchronous["full"] = "FULL";
|
|
26
|
+
SqliteSynchronous["off"] = "OFF";
|
|
27
|
+
return SqliteSynchronous;
|
|
28
|
+
}(SqliteSynchronous || {});
|
|
29
|
+
export const DEFAULT_SQLITE_OPTIONS = {
|
|
30
|
+
journalMode: SqliteJournalMode.wal,
|
|
31
|
+
synchronous: SqliteSynchronous.normal,
|
|
32
|
+
journalSizeLimit: 6 * 1024 * 1024,
|
|
33
|
+
cacheSizeKb: 50 * 1024,
|
|
34
|
+
temporaryStorage: TemporaryStorageOption.MEMORY,
|
|
35
|
+
lockTimeoutMs: 30000,
|
|
36
|
+
encryptionKey: null,
|
|
37
|
+
extensions: []
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=SqliteOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TemporaryStorageOption","SqliteJournalMode","SqliteSynchronous","DEFAULT_SQLITE_OPTIONS","journalMode","wal","synchronous","normal","journalSizeLimit","cacheSizeKb","temporaryStorage","MEMORY","lockTimeoutMs","encryptionKey","extensions"],"sourceRoot":"../../../src","sources":["db/SqliteOptions.ts"],"mappings":";;AAyDA,WAAYA,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;;AAKlC;AACA;AACA;AAAA,IACKC,iBAAiB,0BAAjBA,iBAAiB;EACpB;EACA;EAFGA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA,EAAjBA,iBAAiB,SAWtB;AAAA,IACKC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA,EAAjBA,iBAAiB;AAMtB,OAAO,MAAMC,sBAA+C,GAAG;EAC7DC,WAAW,EAAEH,iBAAiB,CAACI,GAAG;EAClCC,WAAW,EAAEJ,iBAAiB,CAACK,MAAM;EACrCC,gBAAgB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;EACjCC,WAAW,EAAE,EAAE,GAAG,IAAI;EACtBC,gBAAgB,EAAEV,sBAAsB,CAACW,MAAM;EAC/CC,aAAa,EAAE,KAAK;EACpBC,aAAa,EAAE,IAAI;EACnBC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OPSqliteOpenFactory","OPSQLiteOpenFactoryOptions"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,0BAA0B,QACrB,+BAA4B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DB, UpdateHookOperation } from '@op-engineering/op-sqlite';
|
|
2
|
+
import { BaseObserver, DBAdapterListener, QueryResult } from '@powersync/common';
|
|
3
|
+
export type OPSQLiteConnectionOptions = {
|
|
4
|
+
baseDB: DB;
|
|
5
|
+
};
|
|
6
|
+
export type OPSQLiteUpdateNotification = {
|
|
7
|
+
table: string;
|
|
8
|
+
operation: UpdateHookOperation;
|
|
9
|
+
row?: any;
|
|
10
|
+
rowId: number;
|
|
11
|
+
};
|
|
12
|
+
export declare class OPSQLiteConnection extends BaseObserver<DBAdapterListener> {
|
|
13
|
+
protected options: OPSQLiteConnectionOptions;
|
|
14
|
+
protected DB: DB;
|
|
15
|
+
private updateBuffer;
|
|
16
|
+
constructor(options: OPSQLiteConnectionOptions);
|
|
17
|
+
addTableUpdate(update: OPSQLiteUpdateNotification): void;
|
|
18
|
+
flushUpdates(): void;
|
|
19
|
+
close(): void;
|
|
20
|
+
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
21
|
+
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
22
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
23
|
+
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
24
|
+
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
25
|
+
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
26
|
+
refreshSchema(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=OPSQLiteConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OPSQLiteConnection.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSQLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,YAAY,EAEZ,iBAAiB,EACjB,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IAIzD,SAAS,CAAC,OAAO,EAAE,yBAAyB;IAHxD,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;IACjB,OAAO,CAAC,YAAY,CAAuB;gBAErB,OAAO,EAAE,yBAAyB;IAcxD,cAAc,CAAC,MAAM,EAAE,0BAA0B;IAqBjD,YAAY;IAsBZ,KAAK;IAIC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAa5D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAI3D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAUvE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKxD,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKlE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnD,aAAa;CAGpB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseObserver, DBAdapter, DBAdapterListener, DBLockOptions, QueryResult, Transaction } from '@powersync/common';
|
|
2
|
+
import { Mutex } from 'async-mutex';
|
|
3
|
+
import { OPSQLiteConnection } from './OPSQLiteConnection';
|
|
4
|
+
import { SqliteOptions } from './SqliteOptions';
|
|
5
|
+
/**
|
|
6
|
+
* Adapter for React Native Quick SQLite
|
|
7
|
+
*/
|
|
8
|
+
export type OPSQLiteAdapterOptions = {
|
|
9
|
+
name: string;
|
|
10
|
+
dbLocation?: string;
|
|
11
|
+
sqliteOptions?: SqliteOptions;
|
|
12
|
+
};
|
|
13
|
+
export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> implements DBAdapter {
|
|
14
|
+
protected options: OPSQLiteAdapterOptions;
|
|
15
|
+
name: string;
|
|
16
|
+
protected writeMutex: Mutex;
|
|
17
|
+
protected initialized: Promise<void>;
|
|
18
|
+
protected readConnections: Array<{
|
|
19
|
+
busy: boolean;
|
|
20
|
+
connection: OPSQLiteConnection;
|
|
21
|
+
}> | null;
|
|
22
|
+
protected writeConnection: OPSQLiteConnection | null;
|
|
23
|
+
private readQueue;
|
|
24
|
+
private abortController;
|
|
25
|
+
constructor(options: OPSQLiteAdapterOptions);
|
|
26
|
+
protected init(): Promise<void>;
|
|
27
|
+
protected openConnection(filenameOverride?: string): Promise<OPSQLiteConnection>;
|
|
28
|
+
private openDatabase;
|
|
29
|
+
private loadAdditionalExtensions;
|
|
30
|
+
private loadPowerSyncExtension;
|
|
31
|
+
close(): Promise<void>;
|
|
32
|
+
readLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
33
|
+
private processQueue;
|
|
34
|
+
writeLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
35
|
+
readTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
36
|
+
writeTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
37
|
+
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
38
|
+
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
39
|
+
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
40
|
+
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
41
|
+
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
42
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
43
|
+
protected internalTransaction<T>(connection: OPSQLiteConnection, fn: (tx: Transaction) => Promise<T>): Promise<T>;
|
|
44
|
+
refreshSchema(): Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=OPSqliteAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DBAdapter, SQLOpenFactory, SQLOpenOptions } from '@powersync/common';
|
|
2
|
+
import { SqliteOptions } from './SqliteOptions';
|
|
3
|
+
export interface OPSQLiteOpenFactoryOptions extends SQLOpenOptions {
|
|
4
|
+
sqliteOptions?: SqliteOptions;
|
|
5
|
+
}
|
|
6
|
+
export declare class OPSqliteOpenFactory implements SQLOpenFactory {
|
|
7
|
+
protected options: OPSQLiteOpenFactoryOptions;
|
|
8
|
+
private sqliteOptions;
|
|
9
|
+
constructor(options: OPSQLiteOpenFactoryOptions);
|
|
10
|
+
openDB(): DBAdapter;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=OPSqliteDBOpenFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OPSqliteDBOpenFactory.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteDBOpenFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAA0B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,WAAW,0BAA2B,SAAQ,cAAc;IAChE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AACD,qBAAa,mBAAoB,YAAW,cAAc;IAG5C,SAAS,CAAC,OAAO,EAAE,0BAA0B;IAFzD,OAAO,CAAC,aAAa,CAA0B;gBAEzB,OAAO,EAAE,0BAA0B;IAOzD,MAAM,IAAI,SAAS;CAOpB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface SqliteOptions {
|
|
2
|
+
/**
|
|
3
|
+
* SQLite journal mode. Defaults to [SqliteJournalMode.wal].
|
|
4
|
+
*/
|
|
5
|
+
journalMode?: SqliteJournalMode;
|
|
6
|
+
/**
|
|
7
|
+
* SQLite synchronous flag. Defaults to [SqliteSynchronous.normal], which
|
|
8
|
+
* is safe for WAL mode.
|
|
9
|
+
*/
|
|
10
|
+
synchronous?: SqliteSynchronous;
|
|
11
|
+
/**
|
|
12
|
+
* Journal/WAL size limit. Defaults to 6MB.
|
|
13
|
+
* The WAL may grow larger than this limit during writes, but SQLite will
|
|
14
|
+
* attempt to truncate the file afterwards.
|
|
15
|
+
*/
|
|
16
|
+
journalSizeLimit?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Timeout in milliseconds waiting for locks to be released by other connections.
|
|
19
|
+
* Defaults to 30 seconds.
|
|
20
|
+
* Set to null or zero to fail immediately when the database is locked.
|
|
21
|
+
*/
|
|
22
|
+
lockTimeoutMs?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Encryption key for the database.
|
|
25
|
+
* If set, the database will be encrypted using SQLCipher.
|
|
26
|
+
*/
|
|
27
|
+
encryptionKey?: string | null;
|
|
28
|
+
/**
|
|
29
|
+
* Where to store SQLite temporary files. Defaults to 'MEMORY'.
|
|
30
|
+
* Setting this to `FILESYSTEM` can cause issues with larger queries or datasets.
|
|
31
|
+
*
|
|
32
|
+
* For details, see: https://www.sqlite.org/pragma.html#pragma_temp_store
|
|
33
|
+
*/
|
|
34
|
+
temporaryStorage?: TemporaryStorageOption;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum SQLite cache size. Defaults to 50MB.
|
|
37
|
+
*
|
|
38
|
+
* For details, see: https://www.sqlite.org/pragma.html#pragma_cache_size
|
|
39
|
+
*/
|
|
40
|
+
cacheSizeKb?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Load extensions using the path and entryPoint.
|
|
43
|
+
* More info can be found here https://op-engineering.github.io/op-sqlite/docs/api#loading-extensions.
|
|
44
|
+
*/
|
|
45
|
+
extensions?: Array<{
|
|
46
|
+
path: string;
|
|
47
|
+
entryPoint?: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
50
|
+
export declare enum TemporaryStorageOption {
|
|
51
|
+
MEMORY = "memory",
|
|
52
|
+
FILESYSTEM = "file"
|
|
53
|
+
}
|
|
54
|
+
declare enum SqliteJournalMode {
|
|
55
|
+
wal = "WAL",
|
|
56
|
+
delete = "DELETE",
|
|
57
|
+
truncate = "TRUNCATE",
|
|
58
|
+
persist = "PERSIST",
|
|
59
|
+
memory = "MEMORY",
|
|
60
|
+
off = "OFF"
|
|
61
|
+
}
|
|
62
|
+
declare enum SqliteSynchronous {
|
|
63
|
+
normal = "NORMAL",
|
|
64
|
+
full = "FULL",
|
|
65
|
+
off = "OFF"
|
|
66
|
+
}
|
|
67
|
+
export declare const DEFAULT_SQLITE_OPTIONS: Required<SqliteOptions>;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=SqliteOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteOptions.d.ts","sourceRoot":"","sources":["../../../../../src/db/SqliteOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC;;;OAGG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAE1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,UAAU,SAAS;CACpB;AAKD,aAAK,iBAAiB;IAGpB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAGD,aAAK,iBAAiB;IACpB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAS1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DB, UpdateHookOperation } from '@op-engineering/op-sqlite';
|
|
2
|
+
import { BaseObserver, DBAdapterListener, QueryResult } from '@powersync/common';
|
|
3
|
+
export type OPSQLiteConnectionOptions = {
|
|
4
|
+
baseDB: DB;
|
|
5
|
+
};
|
|
6
|
+
export type OPSQLiteUpdateNotification = {
|
|
7
|
+
table: string;
|
|
8
|
+
operation: UpdateHookOperation;
|
|
9
|
+
row?: any;
|
|
10
|
+
rowId: number;
|
|
11
|
+
};
|
|
12
|
+
export declare class OPSQLiteConnection extends BaseObserver<DBAdapterListener> {
|
|
13
|
+
protected options: OPSQLiteConnectionOptions;
|
|
14
|
+
protected DB: DB;
|
|
15
|
+
private updateBuffer;
|
|
16
|
+
constructor(options: OPSQLiteConnectionOptions);
|
|
17
|
+
addTableUpdate(update: OPSQLiteUpdateNotification): void;
|
|
18
|
+
flushUpdates(): void;
|
|
19
|
+
close(): void;
|
|
20
|
+
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
21
|
+
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
22
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
23
|
+
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
24
|
+
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
25
|
+
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
26
|
+
refreshSchema(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=OPSQLiteConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OPSQLiteConnection.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSQLiteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAiB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EACL,YAAY,EAEZ,iBAAiB,EACjB,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;IAC/B,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IAIzD,SAAS,CAAC,OAAO,EAAE,yBAAyB;IAHxD,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;IACjB,OAAO,CAAC,YAAY,CAAuB;gBAErB,OAAO,EAAE,yBAAyB;IAcxD,cAAc,CAAC,MAAM,EAAE,0BAA0B;IAqBjD,YAAY;IAsBZ,KAAK;IAIC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAa5D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAI3D,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAUvE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKxD,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKlE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnD,aAAa;CAGpB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseObserver, DBAdapter, DBAdapterListener, DBLockOptions, QueryResult, Transaction } from '@powersync/common';
|
|
2
|
+
import { Mutex } from 'async-mutex';
|
|
3
|
+
import { OPSQLiteConnection } from './OPSQLiteConnection';
|
|
4
|
+
import { SqliteOptions } from './SqliteOptions';
|
|
5
|
+
/**
|
|
6
|
+
* Adapter for React Native Quick SQLite
|
|
7
|
+
*/
|
|
8
|
+
export type OPSQLiteAdapterOptions = {
|
|
9
|
+
name: string;
|
|
10
|
+
dbLocation?: string;
|
|
11
|
+
sqliteOptions?: SqliteOptions;
|
|
12
|
+
};
|
|
13
|
+
export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> implements DBAdapter {
|
|
14
|
+
protected options: OPSQLiteAdapterOptions;
|
|
15
|
+
name: string;
|
|
16
|
+
protected writeMutex: Mutex;
|
|
17
|
+
protected initialized: Promise<void>;
|
|
18
|
+
protected readConnections: Array<{
|
|
19
|
+
busy: boolean;
|
|
20
|
+
connection: OPSQLiteConnection;
|
|
21
|
+
}> | null;
|
|
22
|
+
protected writeConnection: OPSQLiteConnection | null;
|
|
23
|
+
private readQueue;
|
|
24
|
+
private abortController;
|
|
25
|
+
constructor(options: OPSQLiteAdapterOptions);
|
|
26
|
+
protected init(): Promise<void>;
|
|
27
|
+
protected openConnection(filenameOverride?: string): Promise<OPSQLiteConnection>;
|
|
28
|
+
private openDatabase;
|
|
29
|
+
private loadAdditionalExtensions;
|
|
30
|
+
private loadPowerSyncExtension;
|
|
31
|
+
close(): Promise<void>;
|
|
32
|
+
readLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
33
|
+
private processQueue;
|
|
34
|
+
writeLock<T>(fn: (tx: OPSQLiteConnection) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
35
|
+
readTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
36
|
+
writeTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
37
|
+
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
38
|
+
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
39
|
+
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
40
|
+
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
41
|
+
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
42
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
43
|
+
protected internalTransaction<T>(connection: OPSQLiteConnection, fn: (tx: Transaction) => Promise<T>): Promise<T>;
|
|
44
|
+
refreshSchema(): Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=OPSqliteAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"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"}
|