@powersync/op-sqlite 0.0.0-dev-20260311103504 → 0.0.0-dev-20260503073249

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.
@@ -107,7 +107,7 @@ repositories {
107
107
  def kotlin_version = getExtOrDefault("kotlinVersion")
108
108
 
109
109
  dependencies {
110
- implementation 'com.powersync:powersync-sqlite-core:0.4.11'
110
+ implementation 'com.powersync:powersync-sqlite-core:0.4.12'
111
111
  // For < 0.71, this will be from the local maven repo
112
112
  // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
113
113
  //noinspection GradleDynamicVersion
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.OPSQLiteConnection = void 0;
7
7
  var _common = require("@powersync/common");
8
- class OPSQLiteConnection extends _common.BaseObserver {
8
+ class OPSQLiteExecutor extends _common.BaseObserver {
9
9
  constructor(options) {
10
10
  super();
11
11
  this.options = options;
@@ -75,7 +75,7 @@ class OPSQLiteConnection extends _common.BaseObserver {
75
75
  async executeRaw(query, params) {
76
76
  return await this.DB.executeRaw(query, params);
77
77
  }
78
- async executeBatch(query, params = []) {
78
+ async executeNativeBatch(query, params = []) {
79
79
  const tuple = [[query, params[0]]];
80
80
  params.slice(1).forEach(p => tuple.push([query, p]));
81
81
  const result = await this.DB.executeBatch(tuple);
@@ -83,21 +83,8 @@ class OPSQLiteConnection extends _common.BaseObserver {
83
83
  rowsAffected: result.rowsAffected ?? 0
84
84
  };
85
85
  }
86
- async getAll(sql, parameters) {
87
- const result = await this.DB.execute(sql, parameters);
88
- return result.rows ?? [];
89
- }
90
- async getOptional(sql, parameters) {
91
- const result = await this.DB.execute(sql, parameters);
92
- return result.rows?.[0] ?? null;
93
- }
94
- async get(sql, parameters) {
95
- const result = await this.getOptional(sql, parameters);
96
- if (!result) {
97
- throw new Error('Result set is empty');
98
- }
99
- return result;
100
- }
86
+ }
87
+ class OPSQLiteConnection extends (0, _common.DBGetUtilsDefaultMixin)(OPSQLiteExecutor) {
101
88
  async refreshSchema() {
102
89
  await this.get("PRAGMA table_info('sqlite_master')");
103
90
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","OPSQLiteConnection","BaseObserver","constructor","options","DB","baseDB","updateBuffer","rollbackHook","updateHook","update","addTableUpdate","opType","operation","RowUpdateType","SQLITE_INSERT","SQLITE_DELETE","SQLITE_UPDATE","push","table","rowId","flushUpdates","length","groupedUpdates","reduce","grouping","updateGroup","batchedUpdate","rawUpdates","tables","Object","keys","iterateListeners","l","tablesUpdated","close","execute","query","params","res","insertId","rowsAffected","rows","_array","item","index","executeRaw","executeBatch","tuple","slice","forEach","p","result","getAll","sql","parameters","getOptional","get","Error","refreshSchema","exports"],"sourceRoot":"../../../src","sources":["db/OPSQLiteConnection.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_common","require","OPSQLiteExecutor","BaseObserver","constructor","options","DB","baseDB","updateBuffer","rollbackHook","updateHook","update","addTableUpdate","opType","operation","RowUpdateType","SQLITE_INSERT","SQLITE_DELETE","SQLITE_UPDATE","push","table","rowId","flushUpdates","length","groupedUpdates","reduce","grouping","updateGroup","batchedUpdate","rawUpdates","tables","Object","keys","iterateListeners","l","tablesUpdated","close","execute","query","params","res","insertId","rowsAffected","rows","_array","item","index","executeRaw","executeNativeBatch","tuple","slice","forEach","p","result","executeBatch","OPSQLiteConnection","DBGetUtilsDefaultMixin","refreshSchema","get","exports"],"sourceRoot":"../../../src","sources":["db/OPSQLiteConnection.ts"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.OPSQLiteDBAdapter = void 0;
7
7
  var _opSqlite = require("@op-engineering/op-sqlite");
8
8
  var _common = require("@powersync/common");
9
- var _asyncMutex = require("async-mutex");
10
9
  var _reactNative = require("react-native");
11
10
  var _OPSQLiteConnection = require("./OPSQLiteConnection.js");
12
11
  /**
@@ -14,13 +13,11 @@ var _OPSQLiteConnection = require("./OPSQLiteConnection.js");
14
13
  */
15
14
 
16
15
  const READ_CONNECTIONS = 5;
17
- class OPSQLiteDBAdapter extends _common.BaseObserver {
18
- readQueue = [];
16
+ class OPSQLiteConnectionPool extends _common.BaseObserver {
19
17
  constructor(options) {
20
18
  super();
21
19
  this.options = options;
22
20
  this.name = this.options.name;
23
- this.writeMutex = new _asyncMutex.Mutex();
24
21
  this.readConnections = null;
25
22
  this.writeConnection = null;
26
23
  this.abortController = new AbortController();
@@ -36,14 +33,14 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
36
33
  temporaryStorage
37
34
  } = this.options.sqliteOptions;
38
35
  const dbFilename = this.options.name;
39
- this.writeConnection = await this.openConnection(dbFilename);
36
+ const underlyingWriteConnection = await this.openConnection(dbFilename);
40
37
  const baseStatements = [`PRAGMA busy_timeout = ${lockTimeoutMs}`, `PRAGMA cache_size = -${cacheSizeKb}`, `PRAGMA temp_store = ${temporaryStorage}`];
41
38
  const writeConnectionStatements = [...baseStatements, `PRAGMA journal_mode = ${journalMode}`, `PRAGMA journal_size_limit = ${journalSizeLimit}`, `PRAGMA synchronous = ${synchronous}`];
42
39
  const readConnectionStatements = [...baseStatements, 'PRAGMA query_only = true'];
43
40
  for (const statement of writeConnectionStatements) {
44
41
  for (let tries = 0; tries < 30; tries++) {
45
42
  try {
46
- await this.writeConnection.execute(statement);
43
+ await underlyingWriteConnection.execute(statement);
47
44
  break;
48
45
  } catch (e) {
49
46
  if (e instanceof Error && e.message.includes('database is locked') && tries < 29) {
@@ -56,20 +53,19 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
56
53
  }
57
54
 
58
55
  // Changes should only occur in the write connection
59
- this.writeConnection.registerListener({
56
+ underlyingWriteConnection.registerListener({
60
57
  tablesUpdated: notification => this.iterateListeners(cb => cb.tablesUpdated?.(notification))
61
58
  });
62
- this.readConnections = [];
59
+ const underlyingReadConnections = [];
63
60
  for (let i = 0; i < READ_CONNECTIONS; i++) {
64
61
  const conn = await this.openConnection(dbFilename);
65
62
  for (let statement of readConnectionStatements) {
66
63
  await conn.execute(statement);
67
64
  }
68
- this.readConnections.push({
69
- busy: false,
70
- connection: conn
71
- });
65
+ underlyingReadConnections.push(conn);
72
66
  }
67
+ this.writeConnection = new _common.Semaphore([underlyingWriteConnection]);
68
+ this.readConnections = new _common.Semaphore(underlyingReadConnections);
73
69
  }
74
70
  async openConnection(filenameOverride) {
75
71
  const dbFilename = filenameOverride ?? this.options.name;
@@ -116,146 +112,102 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
116
112
  await this.initialized;
117
113
  // Abort any pending operations
118
114
  this.abortController.abort();
119
- this.readQueue = [];
120
- this.writeConnection.close();
121
- this.readConnections.forEach(c => c.connection.close());
115
+ const {
116
+ item: writeConnection,
117
+ release: returnWrite
118
+ } = await this.writeConnection.requestOne();
119
+ const {
120
+ items: readers,
121
+ release: returnReaders
122
+ } = await this.readConnections.requestAll();
123
+ try {
124
+ writeConnection.close();
125
+ readers.forEach(c => c.close());
126
+ } finally {
127
+ returnWrite();
128
+ returnReaders();
129
+ }
122
130
  }
123
- async readLock(fn, options) {
124
- await this.initialized;
125
- return new Promise(async (resolve, reject) => {
126
- const execute = async () => {
127
- // Find an available connection that is not busy
128
- const availableConnection = this.readConnections.find(conn => !conn.busy);
129
-
130
- // If we have an available connection, use it
131
- if (availableConnection) {
132
- availableConnection.busy = true;
133
- try {
134
- resolve(await fn(availableConnection.connection));
135
- } catch (error) {
136
- reject(error);
137
- } finally {
138
- availableConnection.busy = false;
139
- // After query execution, process any queued tasks
140
- this.processQueue();
141
- }
142
- } else {
143
- // If no available connections, add to the queue
144
- this.readQueue.push(execute);
145
- }
131
+ generateNestedAbortSignal(options) {
132
+ const outerSignal = this.abortController.signal;
133
+ let signal;
134
+ let cleanUpInnerSignal;
135
+ if (options?.timeoutMs && !outerSignal.aborted) {
136
+ // This is essentially an AbortSignal.any() polyfill.
137
+ const innerController = new AbortController();
138
+ cleanUpInnerSignal = () => {
139
+ innerController.abort();
140
+ outerSignal.removeEventListener('abort', cleanUpInnerSignal);
141
+ timeout.removeEventListener('abort', cleanUpInnerSignal);
146
142
  };
147
- execute();
148
- });
143
+ outerSignal.addEventListener('abort', cleanUpInnerSignal);
144
+ const timeout = (0, _common.timeoutSignal)(options.timeoutMs);
145
+ timeout.addEventListener('abort', cleanUpInnerSignal);
146
+ signal = innerController.signal;
147
+ } else {
148
+ signal = outerSignal;
149
+ }
150
+ return {
151
+ signal,
152
+ cleanUpInnerSignal
153
+ };
149
154
  }
150
- async processQueue() {
151
- if (this.readQueue.length > 0) {
152
- const next = this.readQueue.shift();
153
- if (next) {
154
- next();
155
- }
155
+ async readLock(fn, options) {
156
+ await this.initialized;
157
+ const {
158
+ signal,
159
+ cleanUpInnerSignal
160
+ } = this.generateNestedAbortSignal(options);
161
+ const {
162
+ item,
163
+ release
164
+ } = await this.readConnections.requestOne(signal);
165
+ try {
166
+ return await fn(item);
167
+ } finally {
168
+ release();
169
+ cleanUpInnerSignal?.();
156
170
  }
157
171
  }
158
172
  async writeLock(fn, options) {
159
173
  await this.initialized;
160
- return new Promise(async (resolve, reject) => {
161
- // Set up abort signal listener
162
- const abortListener = () => {
163
- reject(new Error('Database connection was closed'));
164
- };
165
- this.abortController.signal.addEventListener('abort', abortListener);
166
- try {
167
- await (0, _common.mutexRunExclusive)(this.writeMutex, async () => {
168
- // Check if operation was aborted before executing
169
- if (this.abortController.signal.aborted) {
170
- reject(new Error('Database connection was closed'));
171
- }
172
- resolve(await fn(this.writeConnection));
173
- }, options);
174
- // flush updates once a write lock has been released
175
- this.writeConnection.flushUpdates();
176
- } catch (ex) {
177
- reject(ex);
178
- } finally {
179
- this.abortController.signal.removeEventListener('abort', abortListener);
180
- }
181
- });
182
- }
183
- readTransaction(fn, options) {
184
- return this.readLock(ctx => this.internalTransaction(ctx, fn));
185
- }
186
- writeTransaction(fn, options) {
187
- return this.writeLock(ctx => this.internalTransaction(ctx, fn));
188
- }
189
- getAll(sql, parameters) {
190
- return this.readLock(ctx => ctx.getAll(sql, parameters));
191
- }
192
- getOptional(sql, parameters) {
193
- return this.readLock(ctx => ctx.getOptional(sql, parameters));
194
- }
195
- get(sql, parameters) {
196
- return this.readLock(ctx => ctx.get(sql, parameters));
197
- }
198
- execute(query, params) {
199
- return this.writeLock(ctx => ctx.execute(query, params));
200
- }
201
- executeRaw(query, params) {
202
- return this.writeLock(ctx => ctx.executeRaw(query, params));
203
- }
204
- async executeBatch(query, params = []) {
205
- return this.writeLock(ctx => ctx.executeBatch(query, params));
206
- }
207
- async internalTransaction(connection, fn) {
208
- let finalized = false;
209
- const commit = async () => {
210
- if (finalized) {
211
- return {
212
- rowsAffected: 0
213
- };
214
- }
215
- finalized = true;
216
- return connection.execute('COMMIT');
217
- };
218
- const rollback = async () => {
219
- if (finalized) {
220
- return {
221
- rowsAffected: 0
222
- };
223
- }
224
- finalized = true;
225
- return connection.execute('ROLLBACK');
226
- };
174
+ const {
175
+ signal,
176
+ cleanUpInnerSignal
177
+ } = this.generateNestedAbortSignal(options);
178
+ const {
179
+ item,
180
+ release
181
+ } = await this.writeConnection.requestOne(signal);
227
182
  try {
228
- await connection.execute('BEGIN');
229
- const result = await fn({
230
- execute: (query, params) => connection.execute(query, params),
231
- executeRaw: (query, params) => connection.executeRaw(query, params),
232
- get: (query, params) => connection.get(query, params),
233
- getAll: (query, params) => connection.getAll(query, params),
234
- getOptional: (query, params) => connection.getOptional(query, params),
235
- commit,
236
- rollback
237
- });
238
- await commit();
239
- return result;
240
- } catch (ex) {
241
- try {
242
- await rollback();
243
- } catch (ex2) {
244
- // In rare cases, a rollback may fail.
245
- // Safe to ignore.
246
- }
247
- throw ex;
183
+ return await fn(item).finally(() => item.flushUpdates());
184
+ } finally {
185
+ release();
186
+ cleanUpInnerSignal?.();
248
187
  }
249
188
  }
250
189
  async refreshSchema() {
251
190
  await this.initialized;
252
- await this.writeConnection.refreshSchema();
253
- if (this.readConnections) {
254
- for (let readConnection of this.readConnections) {
255
- await readConnection.connection.refreshSchema();
191
+ await this.writeLock(l => l.refreshSchema());
192
+ const {
193
+ items,
194
+ release
195
+ } = await this.readConnections.requestAll();
196
+ try {
197
+ for (let readConnection of items) {
198
+ await readConnection.refreshSchema();
256
199
  }
200
+ } finally {
201
+ release();
257
202
  }
258
203
  }
259
204
  }
205
+ class OPSQLiteDBAdapter extends (0, _common.DBAdapterDefaultMixin)(OPSQLiteConnectionPool) {
206
+ async executeBatch(query, params = []) {
207
+ return await this.writeLock(async tx => {
208
+ return await tx.executeNativeBatch(query, params);
209
+ });
210
+ }
211
+ }
260
212
  exports.OPSQLiteDBAdapter = OPSQLiteDBAdapter;
261
213
  //# sourceMappingURL=OPSqliteAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_opSqlite","require","_common","_asyncMutex","_reactNative","_OPSQLiteConnection","READ_CONNECTIONS","OPSQLiteDBAdapter","BaseObserver","readQueue","constructor","options","name","writeMutex","Mutex","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","OPSQLiteConnection","baseDB","openOptions","dbLocation","location","open","extensions","length","extension","loadExtension","path","entryPoint","Platform","OS","libPath","getDylibPath","close","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","mutexRunExclusive","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","exports"],"sourceRoot":"../../../src","sources":["db/OPSqliteAdapter.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AASA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAGA;AACA;AACA;;AAOA,MAAMK,gBAAgB,GAAG,CAAC;AAEnB,MAAMC,iBAAiB,SAASC,oBAAY,CAAyC;EAUlFC,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,IAAIC,iBAAK,CAAC,CAAC;IAC7B,IAAI,CAACC,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,CAACf,OAAO,CAACgB,aAAc;IAC7B,MAAMC,UAAU,GAAG,IAAI,CAACjB,OAAO,CAACC,IAAI;IAEpC,IAAI,CAACI,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,GAAGvC,gBAAgB,EAAEuC,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,CAACvC,OAAO,CAACC,IAAI;IACxD,MAAMuC,EAAM,GAAG,IAAI,CAACC,YAAY,CAACxB,UAAU,EAAE,IAAI,CAACjB,OAAO,CAACgB,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,IAAIsB,sCAAkB,CAAC;MAC5BC,MAAM,EAAEP;IACV,CAAC,CAAC;EACJ;EAEQC,YAAYA,CAACxB,UAAkB,EAAEyB,aAAsB,EAAM;IACnE,MAAMM,WAAuC,GAAG;MAC9C/C,IAAI,EAAEgB;IACR,CAAC;IAED,IAAI,IAAI,CAACjB,OAAO,CAACiD,UAAU,EAAE;MAC3BD,WAAW,CAACE,QAAQ,GAAG,IAAI,CAAClD,OAAO,CAACiD,UAAU;IAChD;;IAEA;IACA,IAAIP,aAAa,EAAE;MACjBM,WAAW,CAACN,aAAa,GAAGA,aAAa;IAC3C;IAEA,OAAO,IAAAS,cAAI,EAACH,WAAW,CAAC;EAC1B;EAEQJ,wBAAwBA,CAACJ,EAAM,EAAE;IACvC,IAAI,IAAI,CAACxC,OAAO,CAACgB,aAAa,EAAEoC,UAAU,IAAI,IAAI,CAACpD,OAAO,CAACgB,aAAa,CAACoC,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;MAC9F,KAAK,MAAMC,SAAS,IAAI,IAAI,CAACtD,OAAO,CAACgB,aAAa,CAACoC,UAAU,EAAE;QAC7DZ,EAAE,CAACe,aAAa,CAACD,SAAS,CAACE,IAAI,EAAEF,SAAS,CAACG,UAAU,CAAC;MACxD;IACF;EACF;EAEA,MAAcZ,sBAAsBA,CAACL,EAAM,EAAE;IAC3C,IAAIkB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMC,OAAO,GAAG,IAAAC,sBAAY,EAAC,yBAAyB,EAAE,uBAAuB,CAAC;MAChFrB,EAAE,CAACe,aAAa,CAACK,OAAO,EAAE,wBAAwB,CAAC;IACrD,CAAC,MAAM;MACLpB,EAAE,CAACe,aAAa,CAAC,cAAc,EAAE,wBAAwB,CAAC;IAC5D;EACF;EAEA,MAAMO,KAAKA,CAAA,EAAG;IACZ,MAAM,IAAI,CAACtD,WAAW;IACtB;IACA,IAAI,CAACF,eAAe,CAACyD,KAAK,CAAC,CAAC;IAC5B,IAAI,CAACjE,SAAS,GAAG,EAAE;IAEnB,IAAI,CAACO,eAAe,CAAEyD,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC1D,eAAe,CAAE4D,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC3B,UAAU,CAACwB,KAAK,CAAC,CAAC,CAAC;EAC5D;EAEA,MAAMI,QAAQA,CAAIC,EAA0C,EAAEnE,OAAuB,EAAc;IACjG,MAAM,IAAI,CAACQ,WAAW;IACtB,OAAO,IAAI4D,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC5C,MAAM9C,OAAO,GAAG,MAAAA,CAAA,KAAY;QAC1B;QACA,MAAM+C,mBAAmB,GAAG,IAAI,CAACnE,eAAe,CAAEoE,IAAI,CAAErC,IAAI,IAAK,CAACA,IAAI,CAACE,IAAI,CAAC;;QAE5E;QACA,IAAIkC,mBAAmB,EAAE;UACvBA,mBAAmB,CAAClC,IAAI,GAAG,IAAI;UAC/B,IAAI;YACFgC,OAAO,CAAC,MAAMF,EAAE,CAACI,mBAAmB,CAACjC,UAAU,CAAC,CAAC;UACnD,CAAC,CAAC,OAAOmC,KAAK,EAAE;YACdH,MAAM,CAACG,KAAK,CAAC;UACf,CAAC,SAAS;YACRF,mBAAmB,CAAClC,IAAI,GAAG,KAAK;YAChC;YACA,IAAI,CAACqC,YAAY,CAAC,CAAC;UACrB;QACF,CAAC,MAAM;UACL;UACA,IAAI,CAAC5E,SAAS,CAACsC,IAAI,CAACZ,OAAO,CAAC;QAC9B;MACF,CAAC;MAEDA,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;EACJ;EAEA,MAAckD,YAAYA,CAAA,EAAkB;IAC1C,IAAI,IAAI,CAAC5E,SAAS,CAACuD,MAAM,GAAG,CAAC,EAAE;MAC7B,MAAMsB,IAAI,GAAG,IAAI,CAAC7E,SAAS,CAAC8E,KAAK,CAAC,CAAC;MACnC,IAAID,IAAI,EAAE;QACRA,IAAI,CAAC,CAAC;MACR;IACF;EACF;EAEA,MAAME,SAASA,CAAIV,EAA0C,EAAEnE,OAAuB,EAAc;IAClG,MAAM,IAAI,CAACQ,WAAW;IAEtB,OAAO,IAAI4D,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC5C;MACA,MAAMQ,aAAa,GAAGA,CAAA,KAAM;QAC1BR,MAAM,CAAC,IAAI5C,KAAK,CAAC,gCAAgC,CAAC,CAAC;MACrD,CAAC;MACD,IAAI,CAACpB,eAAe,CAACyE,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAEF,aAAa,CAAC;MAEpE,IAAI;QACF,MAAM,IAAAG,yBAAiB,EACrB,IAAI,CAAC/E,UAAU,EACf,YAAY;UACV;UACA,IAAI,IAAI,CAACI,eAAe,CAACyE,MAAM,CAACG,OAAO,EAAE;YACvCZ,MAAM,CAAC,IAAI5C,KAAK,CAAC,gCAAgC,CAAC,CAAC;UACrD;UACA2C,OAAO,CAAC,MAAMF,EAAE,CAAC,IAAI,CAAC9D,eAAgB,CAAC,CAAC;QAC1C,CAAC,EACDL,OACF,CAAC;QACD;QACA,IAAI,CAACK,eAAe,CAAE8E,YAAY,CAAC,CAAC;MACtC,CAAC,CAAC,OAAOC,EAAE,EAAE;QACXd,MAAM,CAACc,EAAE,CAAC;MACZ,CAAC,SAAS;QACR,IAAI,CAAC9E,eAAe,CAACyE,MAAM,CAACM,mBAAmB,CAAC,OAAO,EAAEP,aAAa,CAAC;MACzE;IACF,CAAC,CAAC;EACJ;EAEAQ,eAAeA,CAAInB,EAAmC,EAAEnE,OAAuB,EAAc;IAC3F,OAAO,IAAI,CAACkE,QAAQ,CAAEqB,GAAG,IAAK,IAAI,CAACC,mBAAmB,CAACD,GAAG,EAAEpB,EAAE,CAAC,CAAC;EAClE;EAEAsB,gBAAgBA,CAAItB,EAAmC,EAAEnE,OAAuB,EAAc;IAC5F,OAAO,IAAI,CAAC6E,SAAS,CAAEU,GAAG,IAAK,IAAI,CAACC,mBAAmB,CAACD,GAAG,EAAEpB,EAAE,CAAC,CAAC;EACnE;EAEAuB,MAAMA,CAAIC,GAAW,EAAEC,UAAkB,EAAgB;IACvD,OAAO,IAAI,CAAC1B,QAAQ,CAAEqB,GAAG,IAAKA,GAAG,CAACG,MAAM,CAACC,GAAG,EAAEC,UAAU,CAAC,CAAC;EAC5D;EAEAC,WAAWA,CAAIF,GAAW,EAAEC,UAAkB,EAAqB;IACjE,OAAO,IAAI,CAAC1B,QAAQ,CAAEqB,GAAG,IAAKA,GAAG,CAACM,WAAW,CAACF,GAAG,EAAEC,UAAU,CAAC,CAAC;EACjE;EAEAE,GAAGA,CAAIH,GAAW,EAAEC,UAAkB,EAAc;IAClD,OAAO,IAAI,CAAC1B,QAAQ,CAAEqB,GAAG,IAAKA,GAAG,CAACO,GAAG,CAACH,GAAG,EAAEC,UAAU,CAAC,CAAC;EACzD;EAEApE,OAAOA,CAACuE,KAAa,EAAEC,MAAc,EAAE;IACrC,OAAO,IAAI,CAACnB,SAAS,CAAEU,GAAG,IAAKA,GAAG,CAAC/D,OAAO,CAACuE,KAAK,EAAEC,MAAM,CAAC,CAAC;EAC5D;EAEAC,UAAUA,CAACF,KAAa,EAAEC,MAAc,EAAE;IACxC,OAAO,IAAI,CAACnB,SAAS,CAAEU,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,CAACnB,SAAS,CAAEU,GAAG,IAAKA,GAAG,CAACW,YAAY,CAACH,KAAK,EAAEC,MAAM,CAAC,CAAC;EACjE;EAEA,MAAgBR,mBAAmBA,CACjClD,UAA8B,EAC9B6B,EAAmC,EACvB;IACZ,IAAIgC,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,OAAO7D,UAAU,CAACd,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;IACD,MAAM8E,QAAQ,GAAG,MAAAA,CAAA,KAAkC;MACjD,IAAIH,SAAS,EAAE;QACb,OAAO;UAAEE,YAAY,EAAE;QAAE,CAAC;MAC5B;MACAF,SAAS,GAAG,IAAI;MAChB,OAAO7D,UAAU,CAACd,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IACD,IAAI;MACF,MAAMc,UAAU,CAACd,OAAO,CAAC,OAAO,CAAC;MACjC,MAAM+E,MAAM,GAAG,MAAMpC,EAAE,CAAC;QACtB3C,OAAO,EAAEA,CAACuE,KAAK,EAAEC,MAAM,KAAK1D,UAAU,CAACd,OAAO,CAACuE,KAAK,EAAEC,MAAM,CAAC;QAC7DC,UAAU,EAAEA,CAACF,KAAK,EAAEC,MAAM,KAAK1D,UAAU,CAAC2D,UAAU,CAACF,KAAK,EAAEC,MAAM,CAAC;QACnEF,GAAG,EAAEA,CAACC,KAAK,EAAEC,MAAM,KAAK1D,UAAU,CAACwD,GAAG,CAACC,KAAK,EAAEC,MAAM,CAAC;QACrDN,MAAM,EAAEA,CAACK,KAAK,EAAEC,MAAM,KAAK1D,UAAU,CAACoD,MAAM,CAACK,KAAK,EAAEC,MAAM,CAAC;QAC3DH,WAAW,EAAEA,CAACE,KAAK,EAAEC,MAAM,KAAK1D,UAAU,CAACuD,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,CAACjG,WAAW;IACtB,MAAM,IAAI,CAACH,eAAe,CAAEoG,aAAa,CAAC,CAAC;IAE3C,IAAI,IAAI,CAACrG,eAAe,EAAE;MACxB,KAAK,IAAIsG,cAAc,IAAI,IAAI,CAACtG,eAAe,EAAE;QAC/C,MAAMsG,cAAc,CAACpE,UAAU,CAACmE,aAAa,CAAC,CAAC;MACjD;IACF;EACF;AACF;AAACE,OAAA,CAAA/G,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_opSqlite","require","_common","_reactNative","_OPSQLiteConnection","READ_CONNECTIONS","OPSQLiteConnectionPool","BaseObserver","constructor","options","name","readConnections","writeConnection","abortController","AbortController","initialized","init","lockTimeoutMs","journalMode","journalSizeLimit","synchronous","cacheSizeKb","temporaryStorage","sqliteOptions","dbFilename","underlyingWriteConnection","openConnection","baseStatements","writeConnectionStatements","readConnectionStatements","statement","tries","execute","e","Error","message","includes","registerListener","tablesUpdated","notification","iterateListeners","cb","underlyingReadConnections","i","conn","push","Semaphore","filenameOverride","DB","openDatabase","encryptionKey","undefined","loadAdditionalExtensions","loadPowerSyncExtension","OPSQLiteConnection","baseDB","openOptions","dbLocation","location","open","extensions","length","extension","loadExtension","path","entryPoint","Platform","OS","libPath","getDylibPath","close","abort","item","release","returnWrite","requestOne","items","readers","returnReaders","requestAll","forEach","c","generateNestedAbortSignal","outerSignal","signal","cleanUpInnerSignal","timeoutMs","aborted","innerController","removeEventListener","timeout","addEventListener","timeoutSignal","readLock","fn","writeLock","finally","flushUpdates","refreshSchema","l","readConnection","OPSQLiteDBAdapter","DBAdapterDefaultMixin","executeBatch","query","params","tx","executeNativeBatch","exports"],"sourceRoot":"../../../src","sources":["db/OPSqliteAdapter.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { BaseObserver, RowUpdateType } from '@powersync/common';
4
- export class OPSQLiteConnection extends BaseObserver {
3
+ import { BaseObserver, DBGetUtilsDefaultMixin, RowUpdateType } from '@powersync/common';
4
+ class OPSQLiteExecutor extends BaseObserver {
5
5
  constructor(options) {
6
6
  super();
7
7
  this.options = options;
@@ -71,7 +71,7 @@ export class OPSQLiteConnection extends BaseObserver {
71
71
  async executeRaw(query, params) {
72
72
  return await this.DB.executeRaw(query, params);
73
73
  }
74
- async executeBatch(query, params = []) {
74
+ async executeNativeBatch(query, params = []) {
75
75
  const tuple = [[query, params[0]]];
76
76
  params.slice(1).forEach(p => tuple.push([query, p]));
77
77
  const result = await this.DB.executeBatch(tuple);
@@ -79,21 +79,8 @@ export class OPSQLiteConnection extends BaseObserver {
79
79
  rowsAffected: result.rowsAffected ?? 0
80
80
  };
81
81
  }
82
- async getAll(sql, parameters) {
83
- const result = await this.DB.execute(sql, parameters);
84
- return result.rows ?? [];
85
- }
86
- async getOptional(sql, parameters) {
87
- const result = await this.DB.execute(sql, parameters);
88
- return result.rows?.[0] ?? null;
89
- }
90
- async get(sql, parameters) {
91
- const result = await this.getOptional(sql, parameters);
92
- if (!result) {
93
- throw new Error('Result set is empty');
94
- }
95
- return result;
96
- }
82
+ }
83
+ export class OPSQLiteConnection extends DBGetUtilsDefaultMixin(OPSQLiteExecutor) {
97
84
  async refreshSchema() {
98
85
  await this.get("PRAGMA table_info('sqlite_master')");
99
86
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BaseObserver","RowUpdateType","OPSQLiteConnection","constructor","options","DB","baseDB","updateBuffer","rollbackHook","updateHook","update","addTableUpdate","opType","operation","SQLITE_INSERT","SQLITE_DELETE","SQLITE_UPDATE","push","table","rowId","flushUpdates","length","groupedUpdates","reduce","grouping","updateGroup","batchedUpdate","rawUpdates","tables","Object","keys","iterateListeners","l","tablesUpdated","close","execute","query","params","res","insertId","rowsAffected","rows","_array","item","index","executeRaw","executeBatch","tuple","slice","forEach","p","result","getAll","sql","parameters","getOptional","get","Error","refreshSchema"],"sourceRoot":"../../../src","sources":["db/OPSQLiteConnection.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BaseObserver","DBGetUtilsDefaultMixin","RowUpdateType","OPSQLiteExecutor","constructor","options","DB","baseDB","updateBuffer","rollbackHook","updateHook","update","addTableUpdate","opType","operation","SQLITE_INSERT","SQLITE_DELETE","SQLITE_UPDATE","push","table","rowId","flushUpdates","length","groupedUpdates","reduce","grouping","updateGroup","batchedUpdate","rawUpdates","tables","Object","keys","iterateListeners","l","tablesUpdated","close","execute","query","params","res","insertId","rowsAffected","rows","_array","item","index","executeRaw","executeNativeBatch","tuple","slice","forEach","p","result","executeBatch","OPSQLiteConnection","refreshSchema","get"],"sourceRoot":"../../../src","sources":["db/OPSQLiteConnection.ts"],"mappings":"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","ignoreList":[]}