@cello-protocol/client 0.0.19 → 0.0.20

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.
@@ -4,6 +4,22 @@
4
4
  * PERSIST-009: Implements the ClientStore interface backed by SQLCipher-encrypted SQLite.
5
5
  * Used only by the composition root. Never exported from packages/client/src/index.ts.
6
6
  *
7
+ * CELLO-M6B-013: Replaced @journeyapps/sqlcipher (always compiles from source, 20-40s)
8
+ * with @signalapp/sqlcipher (ships prebuilt binaries for darwin-arm64, darwin-x64,
9
+ * linux-arm64, linux-x64, win32-arm64, win32-x64). The prebuilt binaries are bundled
10
+ * inside the npm tarball — no node-gyp invocation occurs on install.
11
+ *
12
+ * @signalapp/sqlcipher is a SQLCipher 4 binding with the same AES-256-CBC defaults
13
+ * as @journeyapps/sqlcipher. Databases created by @journeyapps/sqlcipher are readable
14
+ * by @signalapp/sqlcipher using the same PRAGMA key = "x'<hexkey>'" format. Verified
15
+ * by the cross-library compatibility test in m6b-013-sqlcipher-compat.test.ts (AC-002).
16
+ *
17
+ * API: @signalapp/sqlcipher uses a synchronous better-sqlite3-style API:
18
+ * db.prepare(sql).run([params]) / .get([params]) / .all([params])
19
+ * db.exec(sql)
20
+ * db.pragma(source, { simple: true })
21
+ * db.transaction(fn)
22
+ *
7
23
  * Security invariants (PERSIST-009):
8
24
  * SI-001: db_key is NEVER logged, serialized, or included in any error message.
9
25
  * SI-002: Constructor takes db_key (Uint8Array), NOT identity_key. The caller
@@ -1 +1 @@
1
- {"version":3,"file":"sqlcipher-client-store.d.ts","sourceRoot":"","sources":["../src/sqlcipher-client-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAkCtE,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,WAAW;;IAWtD;;;;OAIG;gBACS,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,2BAA2B;IAkBnE;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0D3B,oEAAoE;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAIlD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmQzC;;;OAGG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAW5F;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAWtG;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAW7F;;OAEG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC;;OAEG;IACH,MAAM,IAAI,OAAO;CAGlB"}
1
+ {"version":3,"file":"sqlcipher-client-store.d.ts","sourceRoot":"","sources":["../src/sqlcipher-client-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAmCtE,MAAM,WAAW,2BAA2B;IAC1C,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,WAAW;;IAWtD;;;;OAIG;gBACS,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,2BAA2B;IAkBnE;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkE3B,oEAAoE;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAIlD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6LzC;;;OAGG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAM5F;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKtG;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAK7F;;OAEG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC;;OAEG;IACH,MAAM,IAAI,OAAO;CAGlB"}
@@ -4,6 +4,22 @@
4
4
  * PERSIST-009: Implements the ClientStore interface backed by SQLCipher-encrypted SQLite.
5
5
  * Used only by the composition root. Never exported from packages/client/src/index.ts.
6
6
  *
7
+ * CELLO-M6B-013: Replaced @journeyapps/sqlcipher (always compiles from source, 20-40s)
8
+ * with @signalapp/sqlcipher (ships prebuilt binaries for darwin-arm64, darwin-x64,
9
+ * linux-arm64, linux-x64, win32-arm64, win32-x64). The prebuilt binaries are bundled
10
+ * inside the npm tarball — no node-gyp invocation occurs on install.
11
+ *
12
+ * @signalapp/sqlcipher is a SQLCipher 4 binding with the same AES-256-CBC defaults
13
+ * as @journeyapps/sqlcipher. Databases created by @journeyapps/sqlcipher are readable
14
+ * by @signalapp/sqlcipher using the same PRAGMA key = "x'<hexkey>'" format. Verified
15
+ * by the cross-library compatibility test in m6b-013-sqlcipher-compat.test.ts (AC-002).
16
+ *
17
+ * API: @signalapp/sqlcipher uses a synchronous better-sqlite3-style API:
18
+ * db.prepare(sql).run([params]) / .get([params]) / .all([params])
19
+ * db.exec(sql)
20
+ * db.pragma(source, { simple: true })
21
+ * db.transaction(fn)
22
+ *
7
23
  * Security invariants (PERSIST-009):
8
24
  * SI-001: db_key is NEVER logged, serialized, or included in any error message.
9
25
  * SI-002: Constructor takes db_key (Uint8Array), NOT identity_key. The caller
@@ -76,35 +92,46 @@ export class SQLCipherClientStore {
76
92
  * database over the corrupt file (DB-001).
77
93
  */
78
94
  async open() {
79
- // Load the native module. Using createRequire because @journeyapps/sqlcipher
95
+ // Load the native module. Using createRequire because @signalapp/sqlcipher
80
96
  // is a CJS module and this file is ESM.
81
97
  const require = createRequire(import.meta.url);
82
- let sqlite3Module;
98
+ let signalModule;
83
99
  try {
84
- sqlite3Module = require("@journeyapps/sqlcipher");
100
+ signalModule = require("@signalapp/sqlcipher");
85
101
  }
86
102
  catch (loadErr) {
87
103
  const reason = loadErr instanceof Error ? loadErr.message : String(loadErr);
88
104
  this.#logger.error("client.store.open.failed", { reason: `SQLCipher native module unavailable: ${reason}`, agentId: this.#agentId });
89
105
  throw new Error(`SQLCipher native module unavailable: ${reason}`);
90
106
  }
91
- const db = await this.#openDatabase(sqlite3Module);
107
+ // @signalapp/sqlcipher exports { default: Database, Database, setLogger }
108
+ // The Database constructor takes a file path.
109
+ const DatabaseCtor = signalModule.Database ?? signalModule.default;
110
+ let db;
111
+ try {
112
+ db = new DatabaseCtor(this.#dbPath);
113
+ }
114
+ catch (openErr) {
115
+ const reason = openErr instanceof Error ? openErr.message : String(openErr);
116
+ this.#logger.error("client.store.open.failed", { reason, agentId: this.#agentId });
117
+ throw openErr;
118
+ }
92
119
  // NOTE: do not assign this.#db yet — #applyKey and #verifyKey must succeed first.
93
120
  try {
94
121
  // Apply PRAGMA key (SI-003: only the key PRAGMA — no weakening cipher settings)
95
- await this.#applyKey(db);
122
+ this.#applyKey(db);
96
123
  // Verify the key is correct by reading the sqlite_master table.
97
- // If the key is wrong or the file is corrupt, this will fail.
98
- await this.#verifyKey(db);
124
+ // If the key is wrong or the file is corrupt, this will throw.
125
+ this.#verifyKey(db);
99
126
  // SI-001 (M6B-005): WAL mode is set AFTER key verification and BEFORE migrations.
100
127
  // Order: (1) PRAGMA key, (2) verify key, (3) PRAGMA journal_mode=WAL, (4) migrations.
101
128
  // WAL mode is issued on a key-verified database — attackers with filesystem access
102
129
  // see encrypted WAL files, not plaintext.
103
- const journalMode = await this.#setWalMode(db);
130
+ const journalMode = this.#setWalMode(db);
104
131
  // Key is verified — safe to make the database accessible to other methods.
105
132
  this.#db = db;
106
133
  // Run migration runner — applies pending V{n}__*.sql files
107
- await this.#runMigrations(db);
134
+ this.#runMigrations(db);
108
135
  this.#logger.info("client.store.opened", {
109
136
  env: this.#env,
110
137
  dbPath: this.#dbPath,
@@ -120,9 +147,10 @@ export class SQLCipherClientStore {
120
147
  agentId: this.#agentId,
121
148
  });
122
149
  // Close the DB to release the file handle
123
- await new Promise((resolve) => {
124
- db.close(() => resolve());
125
- });
150
+ try {
151
+ db.close();
152
+ }
153
+ catch { /* ignore close error */ }
126
154
  this.#db = null;
127
155
  throw err;
128
156
  }
@@ -133,14 +161,7 @@ export class SQLCipherClientStore {
133
161
  return;
134
162
  const db = this.#db;
135
163
  this.#db = null;
136
- await new Promise((resolve, reject) => {
137
- db.close((err) => {
138
- if (err)
139
- reject(err);
140
- else
141
- resolve();
142
- });
143
- });
164
+ db.close();
144
165
  }
145
166
  // ─── ClientStore interface ─────────────────────────────────────────────────
146
167
  async set(_key, _value) {
@@ -161,41 +182,20 @@ export class SQLCipherClientStore {
161
182
  throw new Error("SQLCipherClientStore: database is not open. Call open() first.");
162
183
  }
163
184
  }
164
- /** Open the SQLite database file. Returns the Database instance on success. */
165
- async #openDatabase(sqlite3Module) {
166
- return new Promise((resolve, reject) => {
167
- // OPEN_CREATE creates the file if absent (first run). On an existing corrupt file,
168
- // SQLite opens it without error at the OS level; #verifyKey detects the corruption
169
- // and throws without writing to the file — satisfying DB-001 (never overwrite a
170
- // corrupt database).
171
- const mode = sqlite3Module.OPEN_READWRITE | sqlite3Module.OPEN_CREATE;
172
- const db = new sqlite3Module.Database(this.#dbPath, mode, (err) => {
173
- if (err)
174
- reject(err);
175
- else
176
- resolve(db);
177
- });
178
- });
179
- }
180
185
  /**
181
186
  * Apply the SQLCipher PRAGMA key using the raw hex format.
182
187
  * The key is passed as x'<hex>' which is the SQLCipher raw key format.
183
188
  * SI-001: The key hex is used only in the PRAGMA string and never logged.
184
189
  * SI-003: Only the `key` PRAGMA is set — no cipher_* weakening PRAGMAs.
190
+ *
191
+ * @signalapp/sqlcipher's synchronous pragma() throws on error — no callback needed.
185
192
  */
186
- async #applyKey(db) {
193
+ #applyKey(db) {
187
194
  const keyHex = Buffer.from(this.#dbKey).toString("hex");
188
- const pragmaSql = `PRAGMA key = "x'${keyHex}'"`;
195
+ const pragmaSource = `key = "x'${keyHex}'"`;
189
196
  // SI-001: keyHex is used only in the PRAGMA string and is never logged.
190
197
  // SI-003: only the `key` PRAGMA is issued — no cipher_* weakening PRAGMAs.
191
- return new Promise((resolve, reject) => {
192
- db.run(pragmaSql, [], function (err) {
193
- if (err)
194
- reject(err);
195
- else
196
- resolve();
197
- });
198
- });
198
+ db.pragma(pragmaSource);
199
199
  }
200
200
  /**
201
201
  * Verify the PRAGMA key is correct by executing a test query.
@@ -205,21 +205,14 @@ export class SQLCipherClientStore {
205
205
  * DB-001: We do NOT catch and recover here — the error propagates to open()
206
206
  * which logs client.store.open.failed and throws, halting the client.
207
207
  */
208
- async #verifyKey(db) {
209
- return new Promise((resolve, reject) => {
210
- db.get(`SELECT count(*) as c FROM sqlite_master`, [], (err, _row) => {
211
- if (err)
212
- reject(err);
213
- else
214
- resolve();
215
- });
216
- });
208
+ #verifyKey(db) {
209
+ db.prepare(`SELECT count(*) as c FROM sqlite_master`).get([]);
217
210
  }
218
211
  /**
219
212
  * Enable WAL (Write-Ahead Log) journal mode on the database.
220
213
  *
221
- * PRAGMA journal_mode=WAL is issued in a single `db.get()` call, which both
222
- * sets the mode and returns the active journal mode as a result row.
214
+ * @signalapp/sqlcipher's synchronous pragma() with { simple: true } returns
215
+ * the first column of the first result row directly.
223
216
  *
224
217
  * Implements SI-001 (M6B-005): Must only be called AFTER #verifyKey() succeeds.
225
218
  * WAL mode on an unverified database would operate on plaintext; by calling this after
@@ -227,21 +220,12 @@ export class SQLCipherClientStore {
227
220
  *
228
221
  * Returns the active journal mode string (normally 'wal').
229
222
  */
230
- async #setWalMode(db) {
231
- return new Promise((resolve, reject) => {
232
- db.get("PRAGMA journal_mode=WAL", [], (err, row) => {
233
- if (err)
234
- return reject(err);
235
- if (!row) {
236
- return reject(new Error("PRAGMA journal_mode=WAL returned no result"));
237
- }
238
- const mode = String(row.journal_mode);
239
- if (mode !== "wal") {
240
- return reject(new Error(`WAL mode failed: expected 'wal', got '${mode}'. This may occur on network filesystems (NFS, SMB). Move your CELLO_DB_PATH to a local filesystem.`));
241
- }
242
- resolve(mode);
243
- });
244
- });
223
+ #setWalMode(db) {
224
+ const mode = db.pragma("journal_mode=WAL", { simple: true });
225
+ if (mode !== "wal") {
226
+ throw new Error(`WAL mode failed: expected 'wal', got '${mode}'. This may occur on network filesystems (NFS, SMB). Move your CELLO_DB_PATH to a local filesystem.`);
227
+ }
228
+ return mode;
245
229
  }
246
230
  /**
247
231
  * Run the custom migration runner.
@@ -254,18 +238,18 @@ export class SQLCipherClientStore {
254
238
  * 5. Record the version in schema_migrations.
255
239
  * 6. Log client.store.migration.applied for each applied migration.
256
240
  */
257
- async #runMigrations(db) {
241
+ #runMigrations(db) {
258
242
  // Bootstrap the migrations table before any migration runs — this is not a migration
259
243
  // itself and must not be inside a migration transaction.
260
244
  // Step 1: bootstrap the schema_migrations table itself
261
- await this.#execSql(db, `CREATE TABLE IF NOT EXISTS schema_migrations (
245
+ db.exec(`CREATE TABLE IF NOT EXISTS schema_migrations (
262
246
  version TEXT PRIMARY KEY,
263
247
  applied_at TEXT NOT NULL DEFAULT (datetime('now'))
264
248
  )`);
265
249
  // Step 2: read migration files
266
250
  const migrationFiles = this.#readMigrationFiles();
267
251
  // Step 3: find already-applied migrations
268
- const appliedVersions = await this.#queryAppliedVersions(db);
252
+ const appliedVersions = this.#queryAppliedVersions(db);
269
253
  // Step 4-6: apply pending migrations in order
270
254
  let v2Applied = false;
271
255
  const v2StartTime = Date.now();
@@ -275,7 +259,7 @@ export class SQLCipherClientStore {
275
259
  const sql = readFileSync(filename, "utf-8");
276
260
  const startTime = Date.now();
277
261
  try {
278
- await this.#applyMigration(db, sql, version);
262
+ this.#applyMigration(db, sql, version);
279
263
  const executionTime = Date.now() - startTime;
280
264
  this.#logger.info("client.store.migration.applied", {
281
265
  version,
@@ -342,59 +326,22 @@ export class SQLCipherClientStore {
342
326
  return migrations;
343
327
  }
344
328
  /** Query the schema_migrations table and return the set of applied version strings. */
345
- async #queryAppliedVersions(db) {
346
- return new Promise((resolve, reject) => {
347
- db.all(`SELECT version FROM schema_migrations`, [], (err, rows) => {
348
- if (err)
349
- return reject(err);
350
- const versions = new Set((rows ?? []).map((r) => String(r.version)));
351
- resolve(versions);
352
- });
353
- });
329
+ #queryAppliedVersions(db) {
330
+ const rows = db.prepare(`SELECT version FROM schema_migrations`).all([]);
331
+ return new Set(rows.map((r) => r.version));
354
332
  }
355
333
  /**
356
334
  * Apply a single migration SQL within a transaction and record it in schema_migrations.
357
335
  *
358
- * Implementation note: db.serialize() enqueues all db.run/db.exec calls synchronously
359
- * before any callbacks fire, so error recovery inside serialize() is broken the INSERT
360
- * and COMMIT are already queued when a ROLLBACK fires. This method uses a linear await
361
- * chain instead, which gives correct sequencing with real error propagation.
336
+ * @signalapp/sqlcipher's synchronous db.transaction(fn) wraps fn in a BEGIN/COMMIT pair.
337
+ * If fn throws, the transaction is automatically rolled back.
362
338
  */
363
- async #applyMigration(db, sql, version) {
364
- const run = (stmt, params = []) => new Promise((res, rej) => db.run(stmt, params, function (err) {
365
- if (err)
366
- rej(err);
367
- else
368
- res();
369
- }));
370
- const exec = (stmt) => new Promise((res, rej) => db.exec(stmt, (err) => {
371
- if (err)
372
- rej(err);
373
- else
374
- res();
375
- }));
376
- await run("BEGIN");
377
- try {
378
- await exec(sql);
379
- await run(`INSERT OR IGNORE INTO schema_migrations (version, applied_at) VALUES (?, datetime('now'))`, [version]);
380
- await run("COMMIT");
381
- }
382
- catch (err) {
383
- // Best-effort rollback — if ROLLBACK itself fails we still re-throw the original error.
384
- await run("ROLLBACK").catch(() => { });
385
- throw err;
386
- }
387
- }
388
- /** Execute a SQL statement with no parameters. */
389
- async #execSql(db, sql) {
390
- return new Promise((resolve, reject) => {
391
- db.exec(sql, (err) => {
392
- if (err)
393
- reject(err);
394
- else
395
- resolve();
396
- });
339
+ #applyMigration(db, sql, version) {
340
+ const applyFn = db.transaction(() => {
341
+ db.exec(sql);
342
+ db.prepare(`INSERT OR IGNORE INTO schema_migrations (version, applied_at) VALUES (?, datetime('now'))`).run([version]);
397
343
  });
344
+ applyFn();
398
345
  }
399
346
  // ─── Structured DB access (PERSIST-024) ───────────────────────────────────────
400
347
  /**
@@ -403,50 +350,29 @@ export class SQLCipherClientStore {
403
350
  */
404
351
  async run(sql, params = []) {
405
352
  this.#assertOpen();
406
- const db = this.#db;
407
- return new Promise((resolve, reject) => {
408
- db.run(sql, params, function (err) {
409
- if (err)
410
- reject(err);
411
- else
412
- resolve({ lastID: this.lastID, changes: this.changes });
413
- });
414
- });
353
+ const result = this.#db.prepare(sql).run(params);
354
+ return { lastID: result.lastInsertRowid, changes: result.changes };
415
355
  }
416
356
  /**
417
357
  * Execute a parameterized query returning a single row (or undefined).
418
358
  */
419
359
  async getRow(sql, params = []) {
420
360
  this.#assertOpen();
421
- const db = this.#db;
422
- return new Promise((resolve, reject) => {
423
- db.get(sql, params, (err, row) => {
424
- if (err)
425
- return reject(err);
426
- resolve(row);
427
- });
428
- });
361
+ return this.#db.prepare(sql).get(params);
429
362
  }
430
363
  /**
431
364
  * Execute a parameterized query returning all matching rows.
432
365
  */
433
366
  async allRows(sql, params = []) {
434
367
  this.#assertOpen();
435
- const db = this.#db;
436
- return new Promise((resolve, reject) => {
437
- db.all(sql, params, (err, rows) => {
438
- if (err)
439
- return reject(err);
440
- resolve((rows ?? []));
441
- });
442
- });
368
+ return this.#db.prepare(sql).all(params);
443
369
  }
444
370
  /**
445
371
  * Execute raw SQL without parameters (for multi-statement DDL or pragmas).
446
372
  */
447
373
  async exec(sql) {
448
374
  this.#assertOpen();
449
- return this.#execSql(this.#db, sql);
375
+ this.#db.exec(sql);
450
376
  }
451
377
  /**
452
378
  * Check if the database is open.
@@ -1 +1 @@
1
- {"version":3,"file":"sqlcipher-client-store.js","sourceRoot":"","sources":["../src/sqlcipher-client-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlcipher-client-store.js","sourceRoot":"","sources":["../src/sqlcipher-client-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cello-protocol/client",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -25,20 +25,21 @@
25
25
  "dependencies": {
26
26
  "@aws-sdk/client-s3": "3.1051.0",
27
27
  "@cello-protocol/interfaces": "0.0.3",
28
- "@journeyapps/sqlcipher": "^6.0.0",
29
28
  "@libp2p/interface": "^3.2.2",
30
29
  "@modelcontextprotocol/sdk": "^1.29.0",
31
30
  "@noble/curves": "^2.2.0",
31
+ "@signalapp/sqlcipher": "^3.3.5",
32
32
  "cbor-x": "^1.6.0",
33
33
  "it-length-prefixed": "^10.0.1",
34
34
  "it-pipe": "^3.0.1",
35
35
  "zod": "^4.4.2",
36
36
  "@cello-protocol/crypto": "0.0.7",
37
- "@cello-protocol/protocol-types": "0.0.3",
38
- "@cello-protocol/transport": "0.0.4"
37
+ "@cello-protocol/transport": "0.0.4",
38
+ "@cello-protocol/protocol-types": "0.0.3"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@claude-flow/testing": "3.0.0-alpha.6",
42
+ "@journeyapps/sqlcipher": "^6.0.0",
42
43
  "@types/node": "^25.6.2",
43
44
  "@cello-protocol/test-fixtures": "0.0.3"
44
45
  },