@resvary/sqlite 0.5.0-alpha.3 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,13 +1,13 @@
1
- Copyright 2025-2026 horn111
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- https://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.
1
+ Copyright 2025-2026 horn111
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ https://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/README.md CHANGED
@@ -1,15 +1,19 @@
1
- # @resvary/sqlite
2
-
3
- SQLite persistence for Resvary credits, usage receipts, and stablecoin payment receipts.
4
-
5
- ```typescript
6
- import { CreditLedger } from '@resvary/sdk/credits';
7
- import { createSqliteCreditStore } from '@resvary/sqlite';
8
-
9
- const store = createSqliteCreditStore({ path: '.resvary/resvary.sqlite' });
10
- const credits = new CreditLedger({ projectId: 'my_ai_product', store });
11
- ```
12
-
13
- The existing `createSqliteReceiptStore` remains available for payment invoices, receipts, webhook deliveries, and Arc watcher cursors. Both stores can use the same file.
14
-
15
- Requires Node.js 24+ and local filesystem access. The credit store uses WAL, `BEGIN IMMEDIATE`, rollback-safe writes, and versioned schema metadata.
1
+ # @resvary/sqlite
2
+
3
+ SQLite persistence for Resvary credits, usage receipts, and stablecoin payment receipts.
4
+
5
+ ```typescript
6
+ import { CreditLedger } from '@resvary/sdk/credits';
7
+ import { createSqliteCreditStore } from '@resvary/sqlite';
8
+
9
+ const store = createSqliteCreditStore({ path: '.resvary/resvary.sqlite' });
10
+ const credits = new CreditLedger({ projectId: 'my_ai_product', store });
11
+ ```
12
+
13
+ On POSIX systems, newly created database directories use mode `0700`, while the database,
14
+ WAL, and shared-memory files use mode `0600`. On Windows, run the process under a dedicated
15
+ service account and restrict the database directory with NTFS ACLs.
16
+
17
+ The existing `createSqliteReceiptStore` remains available for payment invoices, receipts, webhook deliveries, and Arc watcher cursors. Both stores can use the same file.
18
+
19
+ Requires Node.js 24+ and local filesystem access. The credit store uses WAL, `BEGIN IMMEDIATE`, rollback-safe writes, and versioned schema metadata.
@@ -1 +1 @@
1
- {"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"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"}
package/dist/credit.js CHANGED
@@ -1,16 +1,14 @@
1
- import { mkdirSync } from 'node:fs';
2
- import { dirname } from 'node:path';
3
1
  import { DatabaseSync } from 'node:sqlite';
4
2
  import { parseReceiptStoreValue, serializeReceiptStoreValue } from '@resvary/sdk/receipts';
3
+ import { hardenSqliteDatabaseFiles, prepareSqliteDatabasePath } from './filesystem.js';
5
4
  export class SqliteCreditStore {
6
5
  db;
7
6
  transactionTail = Promise.resolve();
8
7
  constructor(config) {
9
- if (config.path !== ':memory:' && config.createDirectory !== false) {
10
- mkdirSync(dirname(config.path), { recursive: true });
11
- }
8
+ prepareSqliteDatabasePath(config.path, config.createDirectory !== false);
12
9
  this.db = new DatabaseSync(config.path);
13
10
  this.migrate();
11
+ hardenSqliteDatabaseFiles(config.path);
14
12
  }
15
13
  async transaction(handler) {
16
14
  let release;
@@ -182,128 +180,128 @@ export class SqliteCreditStore {
182
180
  this.db.close();
183
181
  }
184
182
  migrate() {
185
- this.db.exec(`
186
- PRAGMA journal_mode = WAL;
187
- PRAGMA busy_timeout = 5000;
188
- PRAGMA foreign_keys = ON;
189
-
190
- CREATE TABLE IF NOT EXISTS resvary_schema_migrations (
191
- version INTEGER PRIMARY KEY,
192
- applied_at INTEGER NOT NULL
193
- );
194
-
195
- CREATE TABLE IF NOT EXISTS resvary_credit_accounts (
196
- id TEXT PRIMARY KEY,
197
- project_id TEXT NOT NULL,
198
- customer_id TEXT NOT NULL,
199
- updated_at INTEGER NOT NULL,
200
- payload TEXT NOT NULL,
201
- UNIQUE(project_id, customer_id)
202
- );
203
-
204
- CREATE TABLE IF NOT EXISTS resvary_credit_grants (
205
- id TEXT PRIMARY KEY,
206
- account_id TEXT NOT NULL,
207
- created_at INTEGER NOT NULL,
208
- payload TEXT NOT NULL
209
- );
210
- CREATE INDEX IF NOT EXISTS resvary_credit_grants_account ON resvary_credit_grants(account_id);
211
-
212
- CREATE TABLE IF NOT EXISTS resvary_meters (
213
- id TEXT PRIMARY KEY,
214
- project_id TEXT NOT NULL,
215
- meter_key TEXT NOT NULL,
216
- payload TEXT NOT NULL,
217
- UNIQUE(project_id, meter_key)
218
- );
219
-
220
- CREATE TABLE IF NOT EXISTS resvary_price_versions (
221
- id TEXT PRIMARY KEY,
222
- meter_id TEXT NOT NULL,
223
- version INTEGER NOT NULL,
224
- created_at INTEGER NOT NULL,
225
- payload TEXT NOT NULL,
226
- UNIQUE(meter_id, version)
227
- );
228
-
229
- CREATE TABLE IF NOT EXISTS resvary_credit_reservations (
230
- id TEXT PRIMARY KEY,
231
- account_id TEXT NOT NULL,
232
- project_id TEXT NOT NULL,
233
- customer_id TEXT NOT NULL,
234
- status TEXT NOT NULL,
235
- expires_at INTEGER NOT NULL,
236
- created_at INTEGER NOT NULL,
237
- payload TEXT NOT NULL
238
- );
239
- CREATE INDEX IF NOT EXISTS resvary_credit_reservations_open
240
- ON resvary_credit_reservations(project_id, customer_id, status, expires_at);
241
-
242
- CREATE TABLE IF NOT EXISTS resvary_usage_events (
243
- id TEXT PRIMARY KEY,
244
- account_id TEXT NOT NULL,
245
- received_at INTEGER NOT NULL,
246
- payload TEXT NOT NULL
247
- );
248
-
249
- CREATE TABLE IF NOT EXISTS resvary_usage_receipts (
250
- id TEXT PRIMARY KEY,
251
- account_id TEXT NOT NULL,
252
- reservation_id TEXT NOT NULL UNIQUE,
253
- usage_event_id TEXT NOT NULL UNIQUE,
254
- created_at INTEGER NOT NULL,
255
- payload TEXT NOT NULL
256
- );
257
- CREATE INDEX IF NOT EXISTS resvary_usage_receipts_account ON resvary_usage_receipts(account_id, created_at);
258
-
259
- CREATE TABLE IF NOT EXISTS resvary_ledger_entries (
260
- id TEXT PRIMARY KEY,
261
- account_id TEXT NOT NULL,
262
- created_at INTEGER NOT NULL,
263
- payload TEXT NOT NULL
264
- );
265
- CREATE INDEX IF NOT EXISTS resvary_ledger_entries_account ON resvary_ledger_entries(account_id, created_at);
266
-
267
- CREATE TABLE IF NOT EXISTS resvary_funding_intents (
268
- id TEXT PRIMARY KEY,
269
- project_id TEXT NOT NULL,
270
- customer_id TEXT NOT NULL,
271
- status TEXT NOT NULL,
272
- created_at INTEGER NOT NULL,
273
- payload TEXT NOT NULL
274
- );
275
-
276
- CREATE TABLE IF NOT EXISTS resvary_funding_transactions (
277
- id TEXT PRIMARY KEY,
278
- funding_intent_id TEXT NOT NULL,
279
- network TEXT NOT NULL,
280
- tx_hash_norm TEXT NOT NULL,
281
- created_at INTEGER NOT NULL,
282
- payload TEXT NOT NULL,
283
- UNIQUE(network, tx_hash_norm)
284
- );
285
-
286
- CREATE TABLE IF NOT EXISTS resvary_idempotency_keys (
287
- scope TEXT NOT NULL,
288
- key TEXT NOT NULL,
289
- created_at INTEGER NOT NULL,
290
- payload TEXT NOT NULL,
291
- PRIMARY KEY(scope, key)
292
- );
293
-
294
- CREATE TABLE IF NOT EXISTS resvary_outbox_events (
295
- id TEXT PRIMARY KEY,
296
- project_id TEXT NOT NULL,
297
- type TEXT NOT NULL,
298
- status TEXT NOT NULL,
299
- created_at INTEGER NOT NULL,
300
- payload TEXT NOT NULL
301
- );
302
- CREATE INDEX IF NOT EXISTS resvary_outbox_events_pending
303
- ON resvary_outbox_events(project_id, status, created_at);
304
-
305
- INSERT OR IGNORE INTO resvary_schema_migrations(version, applied_at)
306
- VALUES (1, CAST(strftime('%s', 'now') AS INTEGER) * 1000);
183
+ this.db.exec(`
184
+ PRAGMA journal_mode = WAL;
185
+ PRAGMA busy_timeout = 5000;
186
+ PRAGMA foreign_keys = ON;
187
+
188
+ CREATE TABLE IF NOT EXISTS resvary_schema_migrations (
189
+ version INTEGER PRIMARY KEY,
190
+ applied_at INTEGER NOT NULL
191
+ );
192
+
193
+ CREATE TABLE IF NOT EXISTS resvary_credit_accounts (
194
+ id TEXT PRIMARY KEY,
195
+ project_id TEXT NOT NULL,
196
+ customer_id TEXT NOT NULL,
197
+ updated_at INTEGER NOT NULL,
198
+ payload TEXT NOT NULL,
199
+ UNIQUE(project_id, customer_id)
200
+ );
201
+
202
+ CREATE TABLE IF NOT EXISTS resvary_credit_grants (
203
+ id TEXT PRIMARY KEY,
204
+ account_id TEXT NOT NULL,
205
+ created_at INTEGER NOT NULL,
206
+ payload TEXT NOT NULL
207
+ );
208
+ CREATE INDEX IF NOT EXISTS resvary_credit_grants_account ON resvary_credit_grants(account_id);
209
+
210
+ CREATE TABLE IF NOT EXISTS resvary_meters (
211
+ id TEXT PRIMARY KEY,
212
+ project_id TEXT NOT NULL,
213
+ meter_key TEXT NOT NULL,
214
+ payload TEXT NOT NULL,
215
+ UNIQUE(project_id, meter_key)
216
+ );
217
+
218
+ CREATE TABLE IF NOT EXISTS resvary_price_versions (
219
+ id TEXT PRIMARY KEY,
220
+ meter_id TEXT NOT NULL,
221
+ version INTEGER NOT NULL,
222
+ created_at INTEGER NOT NULL,
223
+ payload TEXT NOT NULL,
224
+ UNIQUE(meter_id, version)
225
+ );
226
+
227
+ CREATE TABLE IF NOT EXISTS resvary_credit_reservations (
228
+ id TEXT PRIMARY KEY,
229
+ account_id TEXT NOT NULL,
230
+ project_id TEXT NOT NULL,
231
+ customer_id TEXT NOT NULL,
232
+ status TEXT NOT NULL,
233
+ expires_at INTEGER NOT NULL,
234
+ created_at INTEGER NOT NULL,
235
+ payload TEXT NOT NULL
236
+ );
237
+ CREATE INDEX IF NOT EXISTS resvary_credit_reservations_open
238
+ ON resvary_credit_reservations(project_id, customer_id, status, expires_at);
239
+
240
+ CREATE TABLE IF NOT EXISTS resvary_usage_events (
241
+ id TEXT PRIMARY KEY,
242
+ account_id TEXT NOT NULL,
243
+ received_at INTEGER NOT NULL,
244
+ payload TEXT NOT NULL
245
+ );
246
+
247
+ CREATE TABLE IF NOT EXISTS resvary_usage_receipts (
248
+ id TEXT PRIMARY KEY,
249
+ account_id TEXT NOT NULL,
250
+ reservation_id TEXT NOT NULL UNIQUE,
251
+ usage_event_id TEXT NOT NULL UNIQUE,
252
+ created_at INTEGER NOT NULL,
253
+ payload TEXT NOT NULL
254
+ );
255
+ CREATE INDEX IF NOT EXISTS resvary_usage_receipts_account ON resvary_usage_receipts(account_id, created_at);
256
+
257
+ CREATE TABLE IF NOT EXISTS resvary_ledger_entries (
258
+ id TEXT PRIMARY KEY,
259
+ account_id TEXT NOT NULL,
260
+ created_at INTEGER NOT NULL,
261
+ payload TEXT NOT NULL
262
+ );
263
+ CREATE INDEX IF NOT EXISTS resvary_ledger_entries_account ON resvary_ledger_entries(account_id, created_at);
264
+
265
+ CREATE TABLE IF NOT EXISTS resvary_funding_intents (
266
+ id TEXT PRIMARY KEY,
267
+ project_id TEXT NOT NULL,
268
+ customer_id TEXT NOT NULL,
269
+ status TEXT NOT NULL,
270
+ created_at INTEGER NOT NULL,
271
+ payload TEXT NOT NULL
272
+ );
273
+
274
+ CREATE TABLE IF NOT EXISTS resvary_funding_transactions (
275
+ id TEXT PRIMARY KEY,
276
+ funding_intent_id TEXT NOT NULL,
277
+ network TEXT NOT NULL,
278
+ tx_hash_norm TEXT NOT NULL,
279
+ created_at INTEGER NOT NULL,
280
+ payload TEXT NOT NULL,
281
+ UNIQUE(network, tx_hash_norm)
282
+ );
283
+
284
+ CREATE TABLE IF NOT EXISTS resvary_idempotency_keys (
285
+ scope TEXT NOT NULL,
286
+ key TEXT NOT NULL,
287
+ created_at INTEGER NOT NULL,
288
+ payload TEXT NOT NULL,
289
+ PRIMARY KEY(scope, key)
290
+ );
291
+
292
+ CREATE TABLE IF NOT EXISTS resvary_outbox_events (
293
+ id TEXT PRIMARY KEY,
294
+ project_id TEXT NOT NULL,
295
+ type TEXT NOT NULL,
296
+ status TEXT NOT NULL,
297
+ created_at INTEGER NOT NULL,
298
+ payload TEXT NOT NULL
299
+ );
300
+ CREATE INDEX IF NOT EXISTS resvary_outbox_events_pending
301
+ ON resvary_outbox_events(project_id, status, created_at);
302
+
303
+ INSERT OR IGNORE INTO resvary_schema_migrations(version, applied_at)
304
+ VALUES (1, CAST(strftime('%s', 'now') AS INTEGER) * 1000);
307
305
  `);
308
306
  this.migrateFundingV2();
309
307
  this.migrateOutboxV3();
@@ -317,51 +315,51 @@ export class SqliteCreditStore {
317
315
  return;
318
316
  this.db.exec('BEGIN IMMEDIATE;');
319
317
  try {
320
- this.db.exec(`
321
- ALTER TABLE resvary_funding_transactions
322
- ADD COLUMN rail TEXT NOT NULL DEFAULT 'arc_direct';
323
- ALTER TABLE resvary_funding_transactions
324
- ADD COLUMN external_payment_id_norm TEXT;
325
- UPDATE resvary_funding_transactions
326
- SET external_payment_id_norm = tx_hash_norm
327
- WHERE external_payment_id_norm IS NULL;
328
-
329
- ALTER TABLE resvary_funding_transactions
330
- RENAME TO resvary_funding_transactions_v1;
331
- CREATE TABLE resvary_funding_transactions (
332
- id TEXT PRIMARY KEY,
333
- funding_intent_id TEXT NOT NULL,
334
- rail TEXT NOT NULL,
335
- network TEXT NOT NULL,
336
- external_payment_id_norm TEXT NOT NULL,
337
- tx_hash_norm TEXT,
338
- created_at INTEGER NOT NULL,
339
- payload TEXT NOT NULL,
340
- UNIQUE(rail, network, external_payment_id_norm)
341
- );
342
- INSERT INTO resvary_funding_transactions(
343
- id,
344
- funding_intent_id,
345
- rail,
346
- network,
347
- external_payment_id_norm,
348
- tx_hash_norm,
349
- created_at,
350
- payload
351
- )
352
- SELECT
353
- id,
354
- funding_intent_id,
355
- rail,
356
- network,
357
- external_payment_id_norm,
358
- tx_hash_norm,
359
- created_at,
360
- payload
361
- FROM resvary_funding_transactions_v1;
362
- DROP TABLE resvary_funding_transactions_v1;
363
- CREATE INDEX resvary_funding_transactions_tx_hash
364
- ON resvary_funding_transactions(network, tx_hash_norm);
318
+ this.db.exec(`
319
+ ALTER TABLE resvary_funding_transactions
320
+ ADD COLUMN rail TEXT NOT NULL DEFAULT 'arc_direct';
321
+ ALTER TABLE resvary_funding_transactions
322
+ ADD COLUMN external_payment_id_norm TEXT;
323
+ UPDATE resvary_funding_transactions
324
+ SET external_payment_id_norm = tx_hash_norm
325
+ WHERE external_payment_id_norm IS NULL;
326
+
327
+ ALTER TABLE resvary_funding_transactions
328
+ RENAME TO resvary_funding_transactions_v1;
329
+ CREATE TABLE resvary_funding_transactions (
330
+ id TEXT PRIMARY KEY,
331
+ funding_intent_id TEXT NOT NULL,
332
+ rail TEXT NOT NULL,
333
+ network TEXT NOT NULL,
334
+ external_payment_id_norm TEXT NOT NULL,
335
+ tx_hash_norm TEXT,
336
+ created_at INTEGER NOT NULL,
337
+ payload TEXT NOT NULL,
338
+ UNIQUE(rail, network, external_payment_id_norm)
339
+ );
340
+ INSERT INTO resvary_funding_transactions(
341
+ id,
342
+ funding_intent_id,
343
+ rail,
344
+ network,
345
+ external_payment_id_norm,
346
+ tx_hash_norm,
347
+ created_at,
348
+ payload
349
+ )
350
+ SELECT
351
+ id,
352
+ funding_intent_id,
353
+ rail,
354
+ network,
355
+ external_payment_id_norm,
356
+ tx_hash_norm,
357
+ created_at,
358
+ payload
359
+ FROM resvary_funding_transactions_v1;
360
+ DROP TABLE resvary_funding_transactions_v1;
361
+ CREATE INDEX resvary_funding_transactions_tx_hash
362
+ ON resvary_funding_transactions(network, tx_hash_norm);
365
363
  `);
366
364
  const intents = this.db
367
365
  .prepare('SELECT id, payload FROM resvary_funding_intents')
@@ -391,10 +389,10 @@ export class SqliteCreditStore {
391
389
  },
392
390
  };
393
391
  this.db
394
- .prepare(`
395
- UPDATE resvary_funding_transactions
396
- SET rail = ?, external_payment_id_norm = ?, payload = ?
397
- WHERE id = ?
392
+ .prepare(`
393
+ UPDATE resvary_funding_transactions
394
+ SET rail = ?, external_payment_id_norm = ?, payload = ?
395
+ WHERE id = ?
398
396
  `)
399
397
  .run(migrated.rail, migrated.externalPaymentId.toLowerCase(), serializeReceiptStoreValue(migrated), transactionRow.id);
400
398
  }
@@ -416,14 +414,14 @@ export class SqliteCreditStore {
416
414
  return;
417
415
  this.db.exec('BEGIN IMMEDIATE;');
418
416
  try {
419
- this.db.exec(`
420
- ALTER TABLE resvary_outbox_events ADD COLUMN attempt_count INTEGER NOT NULL DEFAULT 0;
421
- ALTER TABLE resvary_outbox_events ADD COLUMN next_attempt_at INTEGER NOT NULL DEFAULT 0;
422
- ALTER TABLE resvary_outbox_events ADD COLUMN lease_owner TEXT;
423
- ALTER TABLE resvary_outbox_events ADD COLUMN lease_expires_at INTEGER;
424
- DROP INDEX IF EXISTS resvary_outbox_events_pending;
425
- CREATE INDEX resvary_outbox_events_due
426
- ON resvary_outbox_events(project_id, status, next_attempt_at, created_at);
417
+ this.db.exec(`
418
+ ALTER TABLE resvary_outbox_events ADD COLUMN attempt_count INTEGER NOT NULL DEFAULT 0;
419
+ ALTER TABLE resvary_outbox_events ADD COLUMN next_attempt_at INTEGER NOT NULL DEFAULT 0;
420
+ ALTER TABLE resvary_outbox_events ADD COLUMN lease_owner TEXT;
421
+ ALTER TABLE resvary_outbox_events ADD COLUMN lease_expires_at INTEGER;
422
+ DROP INDEX IF EXISTS resvary_outbox_events_pending;
423
+ CREATE INDEX resvary_outbox_events_due
424
+ ON resvary_outbox_events(project_id, status, next_attempt_at, created_at);
427
425
  `);
428
426
  const rows = this.db
429
427
  .prepare('SELECT id, created_at, payload FROM resvary_outbox_events')
@@ -436,8 +434,8 @@ export class SqliteCreditStore {
436
434
  nextAttemptAt: event.nextAttemptAt ?? item.created_at,
437
435
  };
438
436
  this.db
439
- .prepare(`UPDATE resvary_outbox_events
440
- SET attempt_count = ?, next_attempt_at = ?, lease_owner = ?, lease_expires_at = ?, payload = ?
437
+ .prepare(`UPDATE resvary_outbox_events
438
+ SET attempt_count = ?, next_attempt_at = ?, lease_owner = ?, lease_expires_at = ?, payload = ?
441
439
  WHERE id = ?`)
442
440
  .run(migrated.attemptCount, migrated.nextAttemptAt, migrated.leaseOwner ?? null, migrated.leaseExpiresAt ?? null, serializeReceiptStoreValue(migrated), item.id);
443
441
  }
@@ -460,21 +458,21 @@ export class SqliteCreditStore {
460
458
  this.db.exec('BEGIN IMMEDIATE;');
461
459
  try {
462
460
  const duplicate = this.db
463
- .prepare(`SELECT network, tx_hash_norm, COUNT(*) AS count
464
- FROM resvary_funding_transactions
465
- WHERE tx_hash_norm IS NOT NULL
466
- GROUP BY network, tx_hash_norm
467
- HAVING COUNT(*) > 1
461
+ .prepare(`SELECT network, tx_hash_norm, COUNT(*) AS count
462
+ FROM resvary_funding_transactions
463
+ WHERE tx_hash_norm IS NOT NULL
464
+ GROUP BY network, tx_hash_norm
465
+ HAVING COUNT(*) > 1
468
466
  LIMIT 1`)
469
467
  .get();
470
468
  if (duplicate) {
471
469
  throw new Error(`Cannot migrate SQLite funding transaction uniqueness: ${duplicate.count} records use ${duplicate.network}:${duplicate.tx_hash_norm}`);
472
470
  }
473
- this.db.exec(`
474
- DROP INDEX IF EXISTS resvary_funding_transactions_tx_hash;
475
- CREATE UNIQUE INDEX resvary_funding_transactions_tx_hash
476
- ON resvary_funding_transactions(network, tx_hash_norm)
477
- WHERE tx_hash_norm IS NOT NULL;
471
+ this.db.exec(`
472
+ DROP INDEX IF EXISTS resvary_funding_transactions_tx_hash;
473
+ CREATE UNIQUE INDEX resvary_funding_transactions_tx_hash
474
+ ON resvary_funding_transactions(network, tx_hash_norm)
475
+ WHERE tx_hash_norm IS NOT NULL;
478
476
  `);
479
477
  this.db
480
478
  .prepare('INSERT INTO resvary_schema_migrations(version, applied_at) VALUES (4, ?)')
@@ -729,7 +727,7 @@ function reader(db) {
729
727
  return one(db, 'SELECT payload FROM resvary_funding_transactions WHERE id = ?', [id]);
730
728
  },
731
729
  async getFundingTransactionByExternalPayment(rail, network, externalPaymentId) {
732
- return one(db, `SELECT payload FROM resvary_funding_transactions
730
+ return one(db, `SELECT payload FROM resvary_funding_transactions
733
731
  WHERE rail = ? AND network = ? AND external_payment_id_norm = ?`, [rail, network, externalPaymentId.toLowerCase()]);
734
732
  },
735
733
  async getFundingTransactionByTxHash(network, txHash) {
@@ -1 +1 @@
1
- {"version":3,"file":"credit.js","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credit.js","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function prepareSqliteDatabasePath(path: string, createDirectory?: boolean): void;
2
+ export declare function hardenSqliteDatabaseFiles(path: string): void;
3
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAGA,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,IAAI,CAcpF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO5D"}
@@ -0,0 +1,31 @@
1
+ import { chmodSync, closeSync, existsSync, mkdirSync, openSync } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ export function prepareSqliteDatabasePath(path, createDirectory = true) {
4
+ if (path === ':memory:')
5
+ return;
6
+ if (createDirectory) {
7
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
8
+ }
9
+ if (!existsSync(path)) {
10
+ try {
11
+ closeSync(openSync(path, 'wx', 0o600));
12
+ }
13
+ catch (error) {
14
+ if (!isAlreadyExistsError(error))
15
+ throw error;
16
+ }
17
+ }
18
+ }
19
+ export function hardenSqliteDatabaseFiles(path) {
20
+ if (path === ':memory:' || process.platform === 'win32')
21
+ return;
22
+ for (const suffix of ['', '-wal', '-shm']) {
23
+ const candidate = `${path}${suffix}`;
24
+ if (existsSync(candidate))
25
+ chmodSync(candidate, 0o600);
26
+ }
27
+ }
28
+ function isAlreadyExistsError(error) {
29
+ return Boolean(error && typeof error === 'object' && 'code' in error && error.code === 'EEXIST');
30
+ }
31
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,eAAe,GAAG,IAAI;IAC5E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO;IAEhC,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,IAAI,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO;IAEhE,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACnG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,qBAAa,kBAAmB,YAAW,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmB;IACtC,OAAO,CAAC,eAAe,CAAoC;gBAE/C,MAAM,EAAE,wBAAwB;IAStC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsBxE,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAM3D,YAAY,CAAC,MAAM,GAAE,yBAA8B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgB/E,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAM3D,kBAAkB,CACtB,MAAM,EAAE,KAAK,MAAM,EAAE,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAchC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAMzC,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,iBAAiB,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAMhF,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCpE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAM3E,qBAAqB,CACzB,MAAM,GAAE,0BAA+B,GACtC,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAgB9B,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMjE,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAM9C,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCvD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,OAAO;IAiFf,OAAO,CAAC,WAAW;CAMpB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAE7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,qBAAa,kBAAmB,YAAW,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmB;IACtC,OAAO,CAAC,eAAe,CAAoC;gBAE/C,MAAM,EAAE,wBAAwB;IAOtC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsBxE,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAM3D,YAAY,CAAC,MAAM,GAAE,yBAA8B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgB/E,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAM3D,kBAAkB,CACtB,MAAM,EAAE,KAAK,MAAM,EAAE,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAchC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAMzC,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,iBAAiB,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAMhF,mBAAmB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCpE,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAM3E,qBAAqB,CACzB,MAAM,GAAE,0BAA+B,GACtC,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAgB9B,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAMjE,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAM9C,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCvD,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,OAAO;IAiFf,OAAO,CAAC,WAAW;CAMpB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAE7F"}
package/dist/index.js CHANGED
@@ -1,17 +1,15 @@
1
- import { mkdirSync } from 'node:fs';
2
- import { dirname } from 'node:path';
3
1
  import { DatabaseSync } from 'node:sqlite';
4
2
  import { parseReceiptStoreValue, serializeReceiptStoreValue, } from '@resvary/sdk/receipts';
3
+ import { hardenSqliteDatabaseFiles, prepareSqliteDatabasePath } from './filesystem.js';
5
4
  export { SqliteCreditStore, createSqliteCreditStore, } from './credit.js';
6
5
  export class SqliteReceiptStore {
7
6
  db;
8
7
  transactionTail = Promise.resolve();
9
8
  constructor(config) {
10
- if (config.path !== ':memory:' && config.createDirectory !== false) {
11
- mkdirSync(dirname(config.path), { recursive: true });
12
- }
9
+ prepareSqliteDatabasePath(config.path, config.createDirectory !== false);
13
10
  this.db = new DatabaseSync(config.path);
14
11
  this.migrate();
12
+ hardenSqliteDatabaseFiles(config.path);
15
13
  }
16
14
  async transaction(handler) {
17
15
  let release;
@@ -37,14 +35,14 @@ export class SqliteReceiptStore {
37
35
  }
38
36
  async saveInvoice(invoice) {
39
37
  this.db
40
- .prepare(`
41
- INSERT INTO resvary_invoices (id, status, customer_id, created_at, payload)
42
- VALUES (?, ?, ?, ?, ?)
43
- ON CONFLICT(id) DO UPDATE SET
44
- status = excluded.status,
45
- customer_id = excluded.customer_id,
46
- created_at = excluded.created_at,
47
- payload = excluded.payload
38
+ .prepare(`
39
+ INSERT INTO resvary_invoices (id, status, customer_id, created_at, payload)
40
+ VALUES (?, ?, ?, ?, ?)
41
+ ON CONFLICT(id) DO UPDATE SET
42
+ status = excluded.status,
43
+ customer_id = excluded.customer_id,
44
+ created_at = excluded.created_at,
45
+ payload = excluded.payload
48
46
  `)
49
47
  .run(invoice.id, invoice.status, invoice.customerId ?? null, invoice.createdAt, serializeReceiptStoreValue(invoice));
50
48
  }
@@ -64,15 +62,15 @@ export class SqliteReceiptStore {
64
62
  }
65
63
  async saveReceipt(receipt) {
66
64
  this.db
67
- .prepare(`
68
- INSERT INTO resvary_receipts (id, invoice_id, tx_hash_norm, status, created_at, payload)
69
- VALUES (?, ?, ?, ?, ?, ?)
70
- ON CONFLICT(id) DO UPDATE SET
71
- invoice_id = excluded.invoice_id,
72
- tx_hash_norm = excluded.tx_hash_norm,
73
- status = excluded.status,
74
- created_at = excluded.created_at,
75
- payload = excluded.payload
65
+ .prepare(`
66
+ INSERT INTO resvary_receipts (id, invoice_id, tx_hash_norm, status, created_at, payload)
67
+ VALUES (?, ?, ?, ?, ?, ?)
68
+ ON CONFLICT(id) DO UPDATE SET
69
+ invoice_id = excluded.invoice_id,
70
+ tx_hash_norm = excluded.tx_hash_norm,
71
+ status = excluded.status,
72
+ created_at = excluded.created_at,
73
+ payload = excluded.payload
76
74
  `)
77
75
  .run(receipt.id, receipt.invoiceId, receipt.txHash?.toLowerCase() ?? null, receipt.status, receipt.createdAt, serializeReceiptStoreValue(receipt));
78
76
  }
@@ -94,13 +92,13 @@ export class SqliteReceiptStore {
94
92
  }
95
93
  async saveWebhookEvent(event) {
96
94
  this.db
97
- .prepare(`
98
- INSERT INTO arc_webhook_events (id, type, created_at, payload)
99
- VALUES (?, ?, ?, ?)
100
- ON CONFLICT(id) DO UPDATE SET
101
- type = excluded.type,
102
- created_at = excluded.created_at,
103
- payload = excluded.payload
95
+ .prepare(`
96
+ INSERT INTO arc_webhook_events (id, type, created_at, payload)
97
+ VALUES (?, ?, ?, ?)
98
+ ON CONFLICT(id) DO UPDATE SET
99
+ type = excluded.type,
100
+ created_at = excluded.created_at,
101
+ payload = excluded.payload
104
102
  `)
105
103
  .run(event.id, event.type, event.createdAt, serializeReceiptStoreValue(event));
106
104
  }
@@ -109,24 +107,24 @@ export class SqliteReceiptStore {
109
107
  }
110
108
  async saveWebhookDelivery(delivery) {
111
109
  this.db
112
- .prepare(`
113
- INSERT INTO arc_webhook_deliveries (
114
- id,
115
- event_id,
116
- event_type,
117
- attempt,
118
- status,
119
- received_at,
120
- payload
121
- )
122
- VALUES (?, ?, ?, ?, ?, ?, ?)
123
- ON CONFLICT(id) DO UPDATE SET
124
- event_id = excluded.event_id,
125
- event_type = excluded.event_type,
126
- attempt = excluded.attempt,
127
- status = excluded.status,
128
- received_at = excluded.received_at,
129
- payload = excluded.payload
110
+ .prepare(`
111
+ INSERT INTO arc_webhook_deliveries (
112
+ id,
113
+ event_id,
114
+ event_type,
115
+ attempt,
116
+ status,
117
+ received_at,
118
+ payload
119
+ )
120
+ VALUES (?, ?, ?, ?, ?, ?, ?)
121
+ ON CONFLICT(id) DO UPDATE SET
122
+ event_id = excluded.event_id,
123
+ event_type = excluded.event_type,
124
+ attempt = excluded.attempt,
125
+ status = excluded.status,
126
+ received_at = excluded.received_at,
127
+ payload = excluded.payload
130
128
  `)
131
129
  .run(delivery.id, delivery.eventId, delivery.eventType, delivery.attempt, delivery.status, delivery.receivedAt, serializeReceiptStoreValue(delivery));
132
130
  }
@@ -152,24 +150,24 @@ export class SqliteReceiptStore {
152
150
  }
153
151
  async saveWatcherCursor(cursor) {
154
152
  this.db
155
- .prepare(`
156
- INSERT INTO arc_watcher_cursors (
157
- key,
158
- network,
159
- invoice_id,
160
- memo_id_norm,
161
- next_from_block,
162
- updated_at,
163
- payload
164
- )
165
- VALUES (?, ?, ?, ?, ?, ?, ?)
166
- ON CONFLICT(key) DO UPDATE SET
167
- network = excluded.network,
168
- invoice_id = excluded.invoice_id,
169
- memo_id_norm = excluded.memo_id_norm,
170
- next_from_block = excluded.next_from_block,
171
- updated_at = excluded.updated_at,
172
- payload = excluded.payload
153
+ .prepare(`
154
+ INSERT INTO arc_watcher_cursors (
155
+ key,
156
+ network,
157
+ invoice_id,
158
+ memo_id_norm,
159
+ next_from_block,
160
+ updated_at,
161
+ payload
162
+ )
163
+ VALUES (?, ?, ?, ?, ?, ?, ?)
164
+ ON CONFLICT(key) DO UPDATE SET
165
+ network = excluded.network,
166
+ invoice_id = excluded.invoice_id,
167
+ memo_id_norm = excluded.memo_id_norm,
168
+ next_from_block = excluded.next_from_block,
169
+ updated_at = excluded.updated_at,
170
+ payload = excluded.payload
173
171
  `)
174
172
  .run(cursor.key, cursor.network, cursor.invoiceId ?? null, cursor.memoId?.toLowerCase() ?? null, cursor.nextFromBlock.toString(), cursor.updatedAt, serializeReceiptStoreValue(cursor));
175
173
  }
@@ -180,78 +178,78 @@ export class SqliteReceiptStore {
180
178
  this.db.close();
181
179
  }
182
180
  migrate() {
183
- this.db.exec(`
184
- PRAGMA journal_mode = WAL;
185
-
186
- CREATE TABLE IF NOT EXISTS resvary_invoices (
187
- id TEXT PRIMARY KEY,
188
- status TEXT NOT NULL,
189
- customer_id TEXT,
190
- created_at INTEGER NOT NULL,
191
- payload TEXT NOT NULL
192
- );
193
-
194
- CREATE INDEX IF NOT EXISTS resvary_invoices_status
195
- ON resvary_invoices(status);
196
-
197
- CREATE INDEX IF NOT EXISTS resvary_invoices_customer_id
198
- ON resvary_invoices(customer_id);
199
-
200
- CREATE TABLE IF NOT EXISTS resvary_receipts (
201
- id TEXT PRIMARY KEY,
202
- invoice_id TEXT NOT NULL,
203
- tx_hash_norm TEXT,
204
- status TEXT NOT NULL,
205
- created_at INTEGER NOT NULL,
206
- payload TEXT NOT NULL
207
- );
208
-
209
- CREATE TABLE IF NOT EXISTS arc_webhook_events (
210
- id TEXT PRIMARY KEY,
211
- type TEXT NOT NULL,
212
- created_at INTEGER NOT NULL,
213
- payload TEXT NOT NULL
214
- );
215
-
216
- CREATE TABLE IF NOT EXISTS arc_webhook_deliveries (
217
- id TEXT PRIMARY KEY,
218
- event_id TEXT NOT NULL,
219
- event_type TEXT NOT NULL,
220
- attempt INTEGER NOT NULL,
221
- status TEXT NOT NULL,
222
- received_at INTEGER NOT NULL,
223
- payload TEXT NOT NULL
224
- );
225
-
226
- CREATE INDEX IF NOT EXISTS arc_webhook_deliveries_event_id
227
- ON arc_webhook_deliveries(event_id);
228
-
229
- CREATE TABLE IF NOT EXISTS arc_watcher_cursors (
230
- key TEXT PRIMARY KEY,
231
- network TEXT NOT NULL,
232
- invoice_id TEXT,
233
- memo_id_norm TEXT,
234
- next_from_block TEXT NOT NULL,
235
- updated_at INTEGER NOT NULL,
236
- payload TEXT NOT NULL
237
- );
181
+ this.db.exec(`
182
+ PRAGMA journal_mode = WAL;
183
+
184
+ CREATE TABLE IF NOT EXISTS resvary_invoices (
185
+ id TEXT PRIMARY KEY,
186
+ status TEXT NOT NULL,
187
+ customer_id TEXT,
188
+ created_at INTEGER NOT NULL,
189
+ payload TEXT NOT NULL
190
+ );
191
+
192
+ CREATE INDEX IF NOT EXISTS resvary_invoices_status
193
+ ON resvary_invoices(status);
194
+
195
+ CREATE INDEX IF NOT EXISTS resvary_invoices_customer_id
196
+ ON resvary_invoices(customer_id);
197
+
198
+ CREATE TABLE IF NOT EXISTS resvary_receipts (
199
+ id TEXT PRIMARY KEY,
200
+ invoice_id TEXT NOT NULL,
201
+ tx_hash_norm TEXT,
202
+ status TEXT NOT NULL,
203
+ created_at INTEGER NOT NULL,
204
+ payload TEXT NOT NULL
205
+ );
206
+
207
+ CREATE TABLE IF NOT EXISTS arc_webhook_events (
208
+ id TEXT PRIMARY KEY,
209
+ type TEXT NOT NULL,
210
+ created_at INTEGER NOT NULL,
211
+ payload TEXT NOT NULL
212
+ );
213
+
214
+ CREATE TABLE IF NOT EXISTS arc_webhook_deliveries (
215
+ id TEXT PRIMARY KEY,
216
+ event_id TEXT NOT NULL,
217
+ event_type TEXT NOT NULL,
218
+ attempt INTEGER NOT NULL,
219
+ status TEXT NOT NULL,
220
+ received_at INTEGER NOT NULL,
221
+ payload TEXT NOT NULL
222
+ );
223
+
224
+ CREATE INDEX IF NOT EXISTS arc_webhook_deliveries_event_id
225
+ ON arc_webhook_deliveries(event_id);
226
+
227
+ CREATE TABLE IF NOT EXISTS arc_watcher_cursors (
228
+ key TEXT PRIMARY KEY,
229
+ network TEXT NOT NULL,
230
+ invoice_id TEXT,
231
+ memo_id_norm TEXT,
232
+ next_from_block TEXT NOT NULL,
233
+ updated_at INTEGER NOT NULL,
234
+ payload TEXT NOT NULL
235
+ );
238
236
  `);
239
237
  const duplicate = this.db
240
- .prepare(`SELECT tx_hash_norm, COUNT(*) AS count
241
- FROM resvary_receipts
242
- WHERE tx_hash_norm IS NOT NULL
243
- GROUP BY tx_hash_norm
244
- HAVING COUNT(*) > 1
238
+ .prepare(`SELECT tx_hash_norm, COUNT(*) AS count
239
+ FROM resvary_receipts
240
+ WHERE tx_hash_norm IS NOT NULL
241
+ GROUP BY tx_hash_norm
242
+ HAVING COUNT(*) > 1
245
243
  LIMIT 1`)
246
244
  .get();
247
245
  if (duplicate) {
248
246
  throw new Error(`Cannot enforce receipt transaction uniqueness: ${duplicate.count} receipts use ${duplicate.tx_hash_norm}`);
249
247
  }
250
- this.db.exec(`
251
- DROP INDEX IF EXISTS resvary_receipts_invoice_tx_hash;
252
- CREATE UNIQUE INDEX IF NOT EXISTS resvary_receipts_tx_hash
253
- ON resvary_receipts(tx_hash_norm)
254
- WHERE tx_hash_norm IS NOT NULL;
248
+ this.db.exec(`
249
+ DROP INDEX IF EXISTS resvary_receipts_invoice_tx_hash;
250
+ CREATE UNIQUE INDEX IF NOT EXISTS resvary_receipts_tx_hash
251
+ ON resvary_receipts(tx_hash_norm)
252
+ WHERE tx_hash_norm IS NOT NULL;
255
253
  `);
256
254
  }
257
255
  allPayloads(sql) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,41 +1,46 @@
1
- {
2
- "name": "@resvary/sqlite",
3
- "version": "0.5.0-alpha.3",
4
- "description": "SQLite persistence for Resvary credits, usage receipts, and payment receipts",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- }
13
- },
14
- "files": [
15
- "dist",
16
- "README.md",
17
- "LICENSE"
18
- ],
19
- "publishConfig": {
20
- "access": "public",
21
- "tag": "alpha"
22
- },
23
- "scripts": {
24
- "build": "tsc",
25
- "dev": "tsc --watch",
26
- "clean": "node -e \"const fs=require('node:fs');fs.rmSync('dist',{recursive:true,force:true});fs.rmSync('tsconfig.tsbuildinfo',{force:true})\"",
27
- "test": "vitest run"
28
- },
29
- "engines": {
30
- "node": ">=24.0.0"
31
- },
32
- "dependencies": {
33
- "@resvary/sdk": "0.5.0-alpha.3"
34
- },
35
- "devDependencies": {
36
- "@types/node": "^22.0.0",
37
- "typescript": "^5.6.0",
38
- "vitest": "^4.1.10"
39
- },
40
- "license": "Apache-2.0"
41
- }
1
+ {
2
+ "name": "@resvary/sqlite",
3
+ "version": "0.6.1",
4
+ "description": "SQLite persistence for Resvary credits, usage receipts, and payment receipts",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "dev": "tsc --watch",
25
+ "clean": "node -e \"const fs=require('node:fs');fs.rmSync('dist',{recursive:true,force:true});fs.rmSync('tsconfig.tsbuildinfo',{force:true})\"",
26
+ "test": "vitest run"
27
+ },
28
+ "engines": {
29
+ "node": ">=24.0.0"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/horn111/resvary.git",
34
+ "directory": "packages/sqlite"
35
+ },
36
+ "dependencies": {
37
+ "@resvary/sdk": "0.6.1"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.20.1",
41
+ "typescript": "^5.6.0",
42
+ "vitest": "^4.1.11"
43
+ },
44
+ "license": "Apache-2.0",
45
+ "gitHead": "10c79e7e5bdecebc8a56b735466dc6a75b4a1f43"
46
+ }