@powersync/op-sqlite 0.0.0-dev-20260311081226 → 0.0.0-dev-20260414110516

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.
@@ -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":"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","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":[]}