@powersync/op-sqlite 0.0.0-dev-20250528152729 → 0.0.0-dev-20250604135557

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.
Files changed (31) hide show
  1. package/README.md +10 -5
  2. package/lib/commonjs/db/OPSqliteAdapter.js +45 -9
  3. package/lib/commonjs/db/OPSqliteAdapter.js.map +1 -1
  4. package/lib/commonjs/db/SqliteOptions.js +10 -1
  5. package/lib/commonjs/db/SqliteOptions.js.map +1 -1
  6. package/lib/commonjs/index.js +16 -0
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/module/db/OPSqliteAdapter.js +45 -9
  9. package/lib/module/db/OPSqliteAdapter.js.map +1 -1
  10. package/lib/module/db/SqliteOptions.js +9 -0
  11. package/lib/module/db/SqliteOptions.js.map +1 -1
  12. package/lib/module/index.js +1 -0
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/typescript/commonjs/src/db/OPSqliteAdapter.d.ts +9 -1
  15. package/lib/typescript/commonjs/src/db/OPSqliteAdapter.d.ts.map +1 -1
  16. package/lib/typescript/commonjs/src/db/SqliteOptions.d.ts +16 -0
  17. package/lib/typescript/commonjs/src/db/SqliteOptions.d.ts.map +1 -1
  18. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  19. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  20. package/lib/typescript/commonjs/tsconfig.build.tsbuildinfo +1 -1
  21. package/lib/typescript/module/src/db/OPSqliteAdapter.d.ts +9 -1
  22. package/lib/typescript/module/src/db/OPSqliteAdapter.d.ts.map +1 -1
  23. package/lib/typescript/module/src/db/SqliteOptions.d.ts +16 -0
  24. package/lib/typescript/module/src/db/SqliteOptions.d.ts.map +1 -1
  25. package/lib/typescript/module/src/index.d.ts +1 -0
  26. package/lib/typescript/module/src/index.d.ts.map +1 -1
  27. package/lib/typescript/module/tsconfig.build.tsbuildinfo +1 -1
  28. package/package.json +5 -5
  29. package/src/db/OPSqliteAdapter.ts +61 -10
  30. package/src/db/SqliteOptions.ts +19 -0
  31. package/src/index.ts +3 -4
package/README.md CHANGED
@@ -6,10 +6,6 @@ This package (`packages/powersync-op-sqlite`) enables using [OP-SQLite](https://
6
6
 
7
7
  If you are not yet familiar with PowerSync, please see the [PowerSync React Native SDK README](https://github.com/powersync-ja/powersync-js/tree/main/packages/react-native) for more information.
8
8
 
9
- ## Beta Release
10
-
11
- This package is currently in a beta release.
12
-
13
9
  ## Installation
14
10
 
15
11
  Follow the installation instructions for the [React Native SDK](https://github.com/powersync-ja/powersync-js/tree/main/packages/react-native) if you haven't yet set up PowerSync in your project. However, note that this package cannot be installed alongside `@journeyapps/react-native-quick-sqlite`. Skip the step about installing it as a peer dependency, or uninstall it if it is already installed.
@@ -30,6 +26,15 @@ Install it in your app with:
30
26
  npx expo install @op-engineering/op-sqlite
31
27
  ```
32
28
 
29
+ ## Version Compatibility
30
+
31
+ This package version reflects the supported OP-SQLite major version:
32
+
33
+ - `@powersync/op-sqlite` version `0.14.x` supports `@op-engineering/op-sqlite` version `14.x.x`
34
+ - `@powersync/op-sqlite` version `0.15.x` supports `@op-engineering/op-sqlite` version `15.x.x`
35
+
36
+ Always ensure your OP-SQLite peer dependency matches the major version indicated by this package.
37
+
33
38
  ## Usage
34
39
 
35
40
  ```typescript
@@ -45,7 +50,7 @@ this.powersync = new PowerSyncDatabase({ database: factory, schema: AppSchema })
45
50
 
46
51
  ### Encryption with SQLCipher
47
52
 
48
- To enable SQLCipher you need to add the following configuration option to your application's `package.json`
53
+ To enable SQLCipher you need to add the following configuration option to your application's `package.json`. Note that for [monorepos](https://op-engineering.github.io/op-sqlite/docs/installation) you may have to add this configuration to the monorepo root `package.json` instead, this depends on where your package manager tool hoists modules.
49
54
 
50
55
  ```json
51
56
  {
@@ -9,6 +9,7 @@ var _common = require("@powersync/common");
9
9
  var _asyncLock = _interopRequireDefault(require("async-lock"));
10
10
  var _reactNative = require("react-native");
11
11
  var _OPSQLiteConnection = require("./OPSQLiteConnection.js");
12
+ var _SqliteOptions = require("./SqliteOptions.js");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  /**
14
15
  * Adapter for React Native Quick SQLite
@@ -41,7 +42,7 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
41
42
  temporaryStorage
42
43
  } = this.options.sqliteOptions;
43
44
  const dbFilename = this.options.name;
44
- this.writeConnection = await this.openConnection(dbFilename);
45
+ this.writeConnection = await this.openConnection(dbFilename, true);
45
46
  const baseStatements = [`PRAGMA busy_timeout = ${lockTimeoutMs}`, `PRAGMA cache_size = -${cacheSizeKb}`, `PRAGMA temp_store = ${temporaryStorage}`];
46
47
  const writeConnectionStatements = [...baseStatements, `PRAGMA journal_mode = ${journalMode}`, `PRAGMA journal_size_limit = ${journalSizeLimit}`, `PRAGMA synchronous = ${synchronous}`];
47
48
  const readConnectionStatements = [...baseStatements, 'PRAGMA query_only = true'];
@@ -76,9 +77,9 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
76
77
  });
77
78
  }
78
79
  }
79
- async openConnection(filenameOverride) {
80
+ async openConnection(filenameOverride, writeConnection) {
80
81
  const dbFilename = filenameOverride ?? this.options.name;
81
- const DB = this.openDatabase(dbFilename, this.options.sqliteOptions?.encryptionKey ?? undefined);
82
+ const DB = await this.openDatabase(dbFilename, this.options.sqliteOptions?.encryptionKey ?? undefined, writeConnection);
82
83
 
83
84
  //Load extensions for all connections
84
85
  this.loadAdditionalExtensions(DB);
@@ -95,16 +96,12 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
95
96
  return dbLocation ?? _opSqlite.ANDROID_DATABASE_PATH;
96
97
  }
97
98
  }
98
- openDatabase(dbFilename, encryptionKey) {
99
+ async openDatabase(dbFilename, encryptionKey, writeConnection) {
99
100
  //This is needed because an undefined/null dbLocation will cause the open function to fail
100
101
  const location = this.getDbLocation(this.options.dbLocation);
101
102
  //Simarlily if the encryption key is undefined/null when using SQLCipher it will cause the open function to fail
102
103
  if (encryptionKey) {
103
- return (0, _opSqlite.open)({
104
- name: dbFilename,
105
- location: location,
106
- encryptionKey: encryptionKey
107
- });
104
+ return await this.openSQLCipher(dbFilename, location, encryptionKey, writeConnection);
108
105
  } else {
109
106
  return (0, _opSqlite.open)({
110
107
  name: dbFilename,
@@ -112,6 +109,45 @@ class OPSQLiteDBAdapter extends _common.BaseObserver {
112
109
  });
113
110
  }
114
111
  }
112
+
113
+ /**
114
+ * We set up SQLCipher compatibility here.
115
+ *
116
+ * - For compability with SQLCipher 3 databases, we set the cipher_compatibility pragma to 3 for all connections.
117
+ * - For upgrading SQLCipher 3 databases to version 4, we do the migration on the write connection.
118
+ * - For SQLCipher 4 databases, we do not need to set the cipher_compatibility pragma, as it is the default.
119
+ */
120
+ async openSQLCipher(dbFilename, location, encryptionKey, writeConnection) {
121
+ const openDb = () => (0, _opSqlite.open)({
122
+ name: dbFilename,
123
+ location: location,
124
+ encryptionKey: encryptionKey
125
+ });
126
+ const db = openDb();
127
+ const cipherVersion = this.options.sqliteOptions?.cipherVersion;
128
+ if (cipherVersion == _SqliteOptions.CipherVersion.VERSION_3) {
129
+ await db.execute('PRAGMA cipher_compatibility = 3;');
130
+ return db;
131
+ } else if (cipherVersion == _SqliteOptions.CipherVersion.UPGRADE_3_TO_4 && writeConnection) {
132
+ // Based on steps described at https://www.zetetic.net/sqlcipher/sqlcipher-api/#cipher_migrate
133
+ try {
134
+ // Valid version agnostic query to confirm SQLCipher version
135
+ await db.execute('SELECT count(*) FROM sqlite_master;');
136
+ // Query succeeded, so we are on SQLCipher 4 and don't have to do anything
137
+ console.log('SQLCipher 4 database detected, no migration needed.');
138
+ return db;
139
+ } catch (e) {
140
+ // Query failed, assuming we are on SQLCipher 3 and need to upgrade
141
+ // Catch any error
142
+ }
143
+ db.close();
144
+ const reopenedDB = openDb();
145
+ const migrationResult = await reopenedDB.execute('PRAGMA cipher_migrate;');
146
+ console.log('SQLCipher migration result:', migrationResult);
147
+ return reopenedDB;
148
+ }
149
+ return db;
150
+ }
115
151
  loadAdditionalExtensions(DB) {
116
152
  if (this.options.sqliteOptions?.extensions && this.options.sqliteOptions.extensions.length > 0) {
117
153
  for (const extension of this.options.sqliteOptions.extensions) {
@@ -1 +1 @@
1
- {"version":3,"names":["_opSqlite","require","_common","_asyncLock","_interopRequireDefault","_reactNative","_OPSQLiteConnection","e","__esModule","default","LockType","READ_CONNECTIONS","OPSQLiteDBAdapter","BaseObserver","readQueue","constructor","options","name","locks","Lock","readConnections","writeConnection","abortController","AbortController","initialized","init","lockTimeoutMs","journalMode","journalSizeLimit","synchronous","cacheSizeKb","temporaryStorage","sqliteOptions","dbFilename","openConnection","baseStatements","writeConnectionStatements","readConnectionStatements","statement","tries","execute","Error","message","includes","registerListener","tablesUpdated","notification","iterateListeners","cb","i","conn","push","busy","connection","filenameOverride","DB","openDatabase","encryptionKey","undefined","loadAdditionalExtensions","loadPowerSyncExtension","OPSQLiteConnection","baseDB","getDbLocation","dbLocation","Platform","OS","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","location","open","extensions","length","extension","loadExtension","path","entryPoint","libPath","getDylibPath","close","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","acquire","WRITE","aborted","timeout","timeoutMs","then","flushUpdates","finally","removeEventListener","ex","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","_asyncLock","_interopRequireDefault","_reactNative","_OPSQLiteConnection","_SqliteOptions","e","__esModule","default","LockType","READ_CONNECTIONS","OPSQLiteDBAdapter","BaseObserver","readQueue","constructor","options","name","locks","Lock","readConnections","writeConnection","abortController","AbortController","initialized","init","lockTimeoutMs","journalMode","journalSizeLimit","synchronous","cacheSizeKb","temporaryStorage","sqliteOptions","dbFilename","openConnection","baseStatements","writeConnectionStatements","readConnectionStatements","statement","tries","execute","Error","message","includes","registerListener","tablesUpdated","notification","iterateListeners","cb","i","conn","push","busy","connection","filenameOverride","DB","openDatabase","encryptionKey","undefined","loadAdditionalExtensions","loadPowerSyncExtension","OPSQLiteConnection","baseDB","getDbLocation","dbLocation","Platform","OS","IOS_LIBRARY_PATH","ANDROID_DATABASE_PATH","location","openSQLCipher","open","openDb","db","cipherVersion","CipherVersion","VERSION_3","UPGRADE_3_TO_4","console","log","close","reopenedDB","migrationResult","extensions","length","extension","loadExtension","path","entryPoint","libPath","getDylibPath","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","acquire","WRITE","aborted","timeout","timeoutMs","then","flushUpdates","finally","removeEventListener","ex","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":[]}
@@ -3,7 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TemporaryStorageOption = exports.DEFAULT_SQLITE_OPTIONS = void 0;
6
+ exports.TemporaryStorageOption = exports.DEFAULT_SQLITE_OPTIONS = exports.CipherVersion = void 0;
7
+ let CipherVersion = exports.CipherVersion = /*#__PURE__*/function (CipherVersion) {
8
+ CipherVersion["VERSION_4"] = "4";
9
+ CipherVersion["UPGRADE_3_TO_4"] = "upgrade3to4";
10
+ CipherVersion["VERSION_3"] = "3";
11
+ return CipherVersion;
12
+ }({});
7
13
  let TemporaryStorageOption = exports.TemporaryStorageOption = /*#__PURE__*/function (TemporaryStorageOption) {
8
14
  TemporaryStorageOption["MEMORY"] = "memory";
9
15
  TemporaryStorageOption["FILESYSTEM"] = "file";
@@ -12,6 +18,8 @@ let TemporaryStorageOption = exports.TemporaryStorageOption = /*#__PURE__*/funct
12
18
  // This library is written with WAL mode in mind - other modes may cause
13
19
  // unexpected locking behavior.
14
20
  var SqliteJournalMode = /*#__PURE__*/function (SqliteJournalMode) {
21
+ // Use a write-ahead log instead of a rollback journal.
22
+ // This provides good performance and concurrency.
15
23
  SqliteJournalMode["wal"] = "WAL";
16
24
  SqliteJournalMode["delete"] = "DELETE";
17
25
  SqliteJournalMode["truncate"] = "TRUNCATE";
@@ -34,6 +42,7 @@ const DEFAULT_SQLITE_OPTIONS = exports.DEFAULT_SQLITE_OPTIONS = {
34
42
  temporaryStorage: TemporaryStorageOption.MEMORY,
35
43
  lockTimeoutMs: 30000,
36
44
  encryptionKey: null,
45
+ cipherVersion: CipherVersion.VERSION_3,
37
46
  extensions: []
38
47
  };
39
48
  //# sourceMappingURL=SqliteOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TemporaryStorageOption","exports","SqliteJournalMode","SqliteSynchronous","DEFAULT_SQLITE_OPTIONS","journalMode","wal","synchronous","normal","journalSizeLimit","cacheSizeKb","temporaryStorage","MEMORY","lockTimeoutMs","encryptionKey","extensions"],"sourceRoot":"../../../src","sources":["db/SqliteOptions.ts"],"mappings":";;;;;;IAyDYA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA,OAKlC;AACA;AACA;AAAA,IACKE,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,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;AAMf,MAAMC,sBAA+C,GAAAH,OAAA,CAAAG,sBAAA,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,EAAEX,sBAAsB,CAACY,MAAM;EAC/CC,aAAa,EAAE,KAAK;EACpBC,aAAa,EAAE,IAAI;EACnBC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["CipherVersion","exports","TemporaryStorageOption","SqliteJournalMode","SqliteSynchronous","DEFAULT_SQLITE_OPTIONS","journalMode","wal","synchronous","normal","journalSizeLimit","cacheSizeKb","temporaryStorage","MEMORY","lockTimeoutMs","encryptionKey","cipherVersion","VERSION_3","extensions"],"sourceRoot":"../../../src","sources":["db/SqliteOptions.ts"],"mappings":";;;;;;IAqEYA,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAA,IAMbE,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA,OAKlC;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;AAMf,MAAMC,sBAA+C,GAAAJ,OAAA,CAAAI,sBAAA,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,aAAa,EAAEhB,aAAa,CAACiB,SAAS;EACtCC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
@@ -3,6 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ OPSqliteOpenFactory: true,
8
+ OPSQLiteOpenFactoryOptions: true
9
+ };
6
10
  Object.defineProperty(exports, "OPSQLiteOpenFactoryOptions", {
7
11
  enumerable: true,
8
12
  get: function () {
@@ -16,4 +20,16 @@ Object.defineProperty(exports, "OPSqliteOpenFactory", {
16
20
  }
17
21
  });
18
22
  var _OPSqliteDBOpenFactory = require("./db/OPSqliteDBOpenFactory.js");
23
+ var _SqliteOptions = require("./db/SqliteOptions.js");
24
+ Object.keys(_SqliteOptions).forEach(function (key) {
25
+ if (key === "default" || key === "__esModule") return;
26
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
27
+ if (key in exports && exports[key] === _SqliteOptions[key]) return;
28
+ Object.defineProperty(exports, key, {
29
+ enumerable: true,
30
+ get: function () {
31
+ return _SqliteOptions[key];
32
+ }
33
+ });
34
+ });
19
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_OPSqliteDBOpenFactory","require"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_OPSqliteDBOpenFactory","require","_SqliteOptions","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,cAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,cAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,cAAA,CAAAI,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ import { BaseObserver } from '@powersync/common';
5
5
  import Lock from 'async-lock';
6
6
  import { Platform } from 'react-native';
7
7
  import { OPSQLiteConnection } from "./OPSQLiteConnection.js";
8
+ import { CipherVersion } from "./SqliteOptions.js";
8
9
 
9
10
  /**
10
11
  * Adapter for React Native Quick SQLite
@@ -37,7 +38,7 @@ export class OPSQLiteDBAdapter extends BaseObserver {
37
38
  temporaryStorage
38
39
  } = this.options.sqliteOptions;
39
40
  const dbFilename = this.options.name;
40
- this.writeConnection = await this.openConnection(dbFilename);
41
+ this.writeConnection = await this.openConnection(dbFilename, true);
41
42
  const baseStatements = [`PRAGMA busy_timeout = ${lockTimeoutMs}`, `PRAGMA cache_size = -${cacheSizeKb}`, `PRAGMA temp_store = ${temporaryStorage}`];
42
43
  const writeConnectionStatements = [...baseStatements, `PRAGMA journal_mode = ${journalMode}`, `PRAGMA journal_size_limit = ${journalSizeLimit}`, `PRAGMA synchronous = ${synchronous}`];
43
44
  const readConnectionStatements = [...baseStatements, 'PRAGMA query_only = true'];
@@ -72,9 +73,9 @@ export class OPSQLiteDBAdapter extends BaseObserver {
72
73
  });
73
74
  }
74
75
  }
75
- async openConnection(filenameOverride) {
76
+ async openConnection(filenameOverride, writeConnection) {
76
77
  const dbFilename = filenameOverride ?? this.options.name;
77
- const DB = this.openDatabase(dbFilename, this.options.sqliteOptions?.encryptionKey ?? undefined);
78
+ const DB = await this.openDatabase(dbFilename, this.options.sqliteOptions?.encryptionKey ?? undefined, writeConnection);
78
79
 
79
80
  //Load extensions for all connections
80
81
  this.loadAdditionalExtensions(DB);
@@ -91,16 +92,12 @@ export class OPSQLiteDBAdapter extends BaseObserver {
91
92
  return dbLocation ?? ANDROID_DATABASE_PATH;
92
93
  }
93
94
  }
94
- openDatabase(dbFilename, encryptionKey) {
95
+ async openDatabase(dbFilename, encryptionKey, writeConnection) {
95
96
  //This is needed because an undefined/null dbLocation will cause the open function to fail
96
97
  const location = this.getDbLocation(this.options.dbLocation);
97
98
  //Simarlily if the encryption key is undefined/null when using SQLCipher it will cause the open function to fail
98
99
  if (encryptionKey) {
99
- return open({
100
- name: dbFilename,
101
- location: location,
102
- encryptionKey: encryptionKey
103
- });
100
+ return await this.openSQLCipher(dbFilename, location, encryptionKey, writeConnection);
104
101
  } else {
105
102
  return open({
106
103
  name: dbFilename,
@@ -108,6 +105,45 @@ export class OPSQLiteDBAdapter extends BaseObserver {
108
105
  });
109
106
  }
110
107
  }
108
+
109
+ /**
110
+ * We set up SQLCipher compatibility here.
111
+ *
112
+ * - For compability with SQLCipher 3 databases, we set the cipher_compatibility pragma to 3 for all connections.
113
+ * - For upgrading SQLCipher 3 databases to version 4, we do the migration on the write connection.
114
+ * - For SQLCipher 4 databases, we do not need to set the cipher_compatibility pragma, as it is the default.
115
+ */
116
+ async openSQLCipher(dbFilename, location, encryptionKey, writeConnection) {
117
+ const openDb = () => open({
118
+ name: dbFilename,
119
+ location: location,
120
+ encryptionKey: encryptionKey
121
+ });
122
+ const db = openDb();
123
+ const cipherVersion = this.options.sqliteOptions?.cipherVersion;
124
+ if (cipherVersion == CipherVersion.VERSION_3) {
125
+ await db.execute('PRAGMA cipher_compatibility = 3;');
126
+ return db;
127
+ } else if (cipherVersion == CipherVersion.UPGRADE_3_TO_4 && writeConnection) {
128
+ // Based on steps described at https://www.zetetic.net/sqlcipher/sqlcipher-api/#cipher_migrate
129
+ try {
130
+ // Valid version agnostic query to confirm SQLCipher version
131
+ await db.execute('SELECT count(*) FROM sqlite_master;');
132
+ // Query succeeded, so we are on SQLCipher 4 and don't have to do anything
133
+ console.log('SQLCipher 4 database detected, no migration needed.');
134
+ return db;
135
+ } catch (e) {
136
+ // Query failed, assuming we are on SQLCipher 3 and need to upgrade
137
+ // Catch any error
138
+ }
139
+ db.close();
140
+ const reopenedDB = openDb();
141
+ const migrationResult = await reopenedDB.execute('PRAGMA cipher_migrate;');
142
+ console.log('SQLCipher migration result:', migrationResult);
143
+ return reopenedDB;
144
+ }
145
+ return db;
146
+ }
111
147
  loadAdditionalExtensions(DB) {
112
148
  if (this.options.sqliteOptions?.extensions && this.options.sqliteOptions.extensions.length > 0) {
113
149
  for (const extension of this.options.sqliteOptions.extensions) {
@@ -1 +1 @@
1
- {"version":3,"names":["ANDROID_DATABASE_PATH","getDylibPath","IOS_LIBRARY_PATH","open","BaseObserver","Lock","Platform","OPSQLiteConnection","LockType","READ_CONNECTIONS","OPSQLiteDBAdapter","readQueue","constructor","options","name","locks","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","getDbLocation","dbLocation","OS","location","extensions","length","extension","loadExtension","path","entryPoint","libPath","close","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","acquire","WRITE","aborted","timeout","timeoutMs","then","flushUpdates","finally","removeEventListener","ex","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":"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","ignoreList":[]}
1
+ {"version":3,"names":["ANDROID_DATABASE_PATH","getDylibPath","IOS_LIBRARY_PATH","open","BaseObserver","Lock","Platform","OPSQLiteConnection","CipherVersion","LockType","READ_CONNECTIONS","OPSQLiteDBAdapter","readQueue","constructor","options","name","locks","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","getDbLocation","dbLocation","OS","location","openSQLCipher","openDb","db","cipherVersion","VERSION_3","UPGRADE_3_TO_4","console","log","close","reopenedDB","migrationResult","extensions","length","extension","loadExtension","path","entryPoint","libPath","abort","forEach","c","readLock","fn","Promise","resolve","reject","availableConnection","find","error","processQueue","next","shift","writeLock","abortListener","signal","addEventListener","acquire","WRITE","aborted","timeout","timeoutMs","then","flushUpdates","finally","removeEventListener","ex","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":"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","ignoreList":[]}
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ export let CipherVersion = /*#__PURE__*/function (CipherVersion) {
4
+ CipherVersion["VERSION_4"] = "4";
5
+ CipherVersion["UPGRADE_3_TO_4"] = "upgrade3to4";
6
+ CipherVersion["VERSION_3"] = "3";
7
+ return CipherVersion;
8
+ }({});
3
9
  export let TemporaryStorageOption = /*#__PURE__*/function (TemporaryStorageOption) {
4
10
  TemporaryStorageOption["MEMORY"] = "memory";
5
11
  TemporaryStorageOption["FILESYSTEM"] = "file";
@@ -10,6 +16,8 @@ export let TemporaryStorageOption = /*#__PURE__*/function (TemporaryStorageOptio
10
16
  // This library is written with WAL mode in mind - other modes may cause
11
17
  // unexpected locking behavior.
12
18
  var SqliteJournalMode = /*#__PURE__*/function (SqliteJournalMode) {
19
+ // Use a write-ahead log instead of a rollback journal.
20
+ // This provides good performance and concurrency.
13
21
  SqliteJournalMode["wal"] = "WAL";
14
22
  SqliteJournalMode["delete"] = "DELETE";
15
23
  SqliteJournalMode["truncate"] = "TRUNCATE";
@@ -32,6 +40,7 @@ export const DEFAULT_SQLITE_OPTIONS = {
32
40
  temporaryStorage: TemporaryStorageOption.MEMORY,
33
41
  lockTimeoutMs: 30000,
34
42
  encryptionKey: null,
43
+ cipherVersion: CipherVersion.VERSION_3,
35
44
  extensions: []
36
45
  };
37
46
  //# sourceMappingURL=SqliteOptions.js.map
@@ -1 +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;EAAjBA,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":[]}
1
+ {"version":3,"names":["CipherVersion","TemporaryStorageOption","SqliteJournalMode","SqliteSynchronous","DEFAULT_SQLITE_OPTIONS","journalMode","wal","synchronous","normal","journalSizeLimit","cacheSizeKb","temporaryStorage","MEMORY","lockTimeoutMs","encryptionKey","cipherVersion","VERSION_3","extensions"],"sourceRoot":"../../../src","sources":["db/SqliteOptions.ts"],"mappings":";;AAqEA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAMzB,WAAYC,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,aAAa,EAAEf,aAAa,CAACgB,SAAS;EACtCC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  export { OPSqliteOpenFactory, OPSQLiteOpenFactoryOptions } from "./db/OPSqliteDBOpenFactory.js";
4
+ export * from "./db/SqliteOptions.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OPSqliteOpenFactory","OPSQLiteOpenFactoryOptions"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,0BAA0B,QACrB,+BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["OPSqliteOpenFactory","OPSQLiteOpenFactoryOptions"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,mBAAmB,EAAEC,0BAA0B,QAAQ,+BAA4B;AAE5F,cAAc,uBAAoB","ignoreList":[]}
@@ -24,9 +24,17 @@ export declare class OPSQLiteDBAdapter extends BaseObserver<DBAdapterListener> i
24
24
  private abortController;
25
25
  constructor(options: OPSQLiteAdapterOptions);
26
26
  protected init(): Promise<void>;
27
- protected openConnection(filenameOverride?: string): Promise<OPSQLiteConnection>;
27
+ protected openConnection(filenameOverride?: string, writeConnection?: boolean): Promise<OPSQLiteConnection>;
28
28
  private getDbLocation;
29
29
  private openDatabase;
30
+ /**
31
+ * We set up SQLCipher compatibility here.
32
+ *
33
+ * - For compability with SQLCipher 3 databases, we set the cipher_compatibility pragma to 3 for all connections.
34
+ * - For upgrading SQLCipher 3 databases to version 4, we do the migration on the write connection.
35
+ * - For SQLCipher 4 databases, we do not need to set the cipher_compatibility pragma, as it is the default.
36
+ */
37
+ private openSQLCipher;
30
38
  private loadAdditionalExtensions;
31
39
  private loadPowerSyncExtension;
32
40
  close(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OPSqliteAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/db/OPSqliteAdapter.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,17 @@ export interface SqliteOptions {
25
25
  * If set, the database will be encrypted using SQLCipher.
26
26
  */
27
27
  encryptionKey?: string | null;
28
+ /**
29
+ * SQLCipher version compatibility option. Only applicable when encryptionKey is set.
30
+ *
31
+ * - '4': Use SQLCipher 4 format (recommended for new databases)
32
+ * - 'upgrade3to4': Automatically attempt to upgrade SQLCipher 3 databases to version 4
33
+ * - '3': Use SQLCipher 3 compatibility mode for existing databases (used by default)
34
+ *
35
+ * Note: The 'upgrade3to4' option will attempt migration only when needed and may
36
+ * be expensive on first run. Migration requires the correct encryption key.
37
+ */
38
+ cipherVersion?: CipherVersion | null;
28
39
  /**
29
40
  * Where to store SQLite temporary files. Defaults to 'MEMORY'.
30
41
  * Setting this to `FILESYSTEM` can cause issues with larger queries or datasets.
@@ -47,6 +58,11 @@ export interface SqliteOptions {
47
58
  entryPoint?: string;
48
59
  }>;
49
60
  }
61
+ export declare enum CipherVersion {
62
+ VERSION_4 = "4",
63
+ UPGRADE_3_TO_4 = "upgrade3to4",
64
+ VERSION_3 = "3"
65
+ }
50
66
  export declare enum TemporaryStorageOption {
51
67
  MEMORY = "memory",
52
68
  FILESYSTEM = "file"
@@ -1 +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"}
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;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAErC;;;;;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,aAAa;IACvB,SAAS,MAAM;IACf,cAAc,gBAAgB;IAC9B,SAAS,MAAM;CAChB;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,CAU1D,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { OPSqliteOpenFactory, OPSQLiteOpenFactoryOptions } from './db/OPSqliteDBOpenFactory';
2
+ export * from './db/SqliteOptions';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAE7F,cAAc,oBAAoB,CAAC"}