@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 +13 -13
- package/README.md +19 -15
- package/dist/credit.d.ts.map +1 -1
- package/dist/credit.js +195 -197
- package/dist/credit.js.map +1 -1
- package/dist/filesystem.d.ts +3 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +31 -0
- package/dist/filesystem.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +128 -130
- package/dist/index.js.map +1 -1
- package/package.json +46 -41
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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.
|
package/dist/credit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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) {
|
package/dist/credit.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAyC,MAAM,aAAa,CAAC;AAwBlF,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AASvF,MAAM,OAAO,iBAAiB;IACX,EAAE,CAAmB;IAC9B,eAAe,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE3D,YAAY,MAA+B;QACzC,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,OAA4D;QAC/E,IAAI,OAAoB,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC5C,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,QAAQ,CAAC;QACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,oBAAoB,CAAC,SAAiB,EAAE,UAAkB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IACD,YAAY,CAAC,MAA4B;QACvC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ,CAAC,EAAU;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,UAAU,CAAC,SAAkB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ,CAAC,EAAU;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,SAAiB,EAAE,GAAW;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,eAAe,CAAC,EAAU;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,OAAgB;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,cAAc,CAAC,EAAU;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,MAAgC;QAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,aAAa,CAAC,EAAU;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,eAAe,CAAC,EAAU;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,SAAkB;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,iBAAiB,CAAC,SAAkB;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,cAAc,CAAC,EAAU;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,MAA0B;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,oBAAoB,CAAC,KAAa,EAAE,GAAW;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,gBAAgB,CAAC,EAAU;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,kBAAkB,CAAC,SAAkB;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IACD,qBAAqB,CAAC,EAAU;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,sCAAsC,CACpC,IAAgC,EAChC,OAAe,EACf,iBAAyB;QAEzB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,sCAAsC,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClG,CAAC;IACD,6BAA6B,CAAC,OAAe,EAAE,MAAqB;QAClE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,uBAAuB,CAAC,eAAwB;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB,CAAC,KAA6B;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;iBACvE,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC;gBAChE,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAC9E;iBACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;iBAC9E,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAsB;oBAC/B,GAAG,KAAK;oBACR,MAAM,EAAE,YAAY;oBACpB,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC;oBACpC,UAAU,EAAE,KAAK,CAAC,QAAQ;oBAC1B,cAAc,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO;oBACzC,aAAa,EAAE,KAAK,CAAC,GAAG;iBACzB,CAAC;gBACF,MAAM,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAAe,EACf,QAAgB,EAChB,WAAmB,EACnB,YAAqB;QAErB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC7E,MAAM,EAAE,CAAC,eAAe,CAAC;gBACvB,GAAG,KAAK;gBACR,MAAM,EAAE,WAAW;gBACnB,WAAW;gBACX,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,SAAS;gBACzB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA2B;QAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACrC,EAAE,EACF,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,YAAY,CACnB,CAAC;YACF,MAAM,EAAE,CAAC,eAAe,CAAC;gBACvB,GAAG,KAAK;gBACR,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACpD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,SAAS;gBACzB,SAAS,EAAE,KAAK,CAAC,KAAK;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,SAAkB;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,GAAW;QACnD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,EAAE,CAAC,eAAe,CAAC;gBACvB,GAAG,KAAK;gBACR,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,GAAG;gBAClB,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,SAAS;gBACzB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0HZ,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,+BAA+B,EAAE,CAAC;IACzC,CAAC;IAEO,gBAAgB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,EAA6C,CAAC;QACpD,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO;QAErC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CZ,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;iBACpB,OAAO,CAAC,iDAAiD,CAAC;iBAC1D,GAAG,EAA4C,CAAC;YACnD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,sBAAsB,CAAgB,SAAS,CAAC,OAAO,CAAC,CAAC;gBACxE,IAAI,CAAC,EAAE;qBACJ,OAAO,CAAC,6DAA6D,CAAC;qBACtE,GAAG,CACF,0BAA0B,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC,EAC5E,SAAS,CAAC,EAAE,CACb,CAAC;YACN,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE;iBACzB,OAAO,CAAC,sDAAsD,CAAC;iBAC/D,GAAG,EAA4C,CAAC;YACnD,KAAK,MAAM,cAAc,IAAI,YAAY,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,sBAAsB,CAAqB,cAAc,CAAC,OAAO,CAAC,CAAC;gBACvF,MAAM,iBAAiB,GACrB,WAAW,CAAC,iBAAiB,IAAI,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC;gBAC3E,MAAM,QAAQ,GAAuB;oBACnC,GAAG,WAAW;oBACd,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,YAAY;oBACtC,iBAAiB;oBACjB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,IAAI,SAAS;oBAC3D,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,SAAS;oBAC3D,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS;oBACzD,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI;wBAChC,WAAW,EAAE,WAAW,CAAC,WAAW;wBACpC,KAAK,EAAE,WAAW,CAAC,KAAK;qBACzB;iBACF,CAAC;gBACF,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN;;;;SAIH,CACE;qBACA,GAAG,CACF,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,iBAAiB,CAAC,WAAW,EAAE,EACxC,0BAA0B,CAAC,QAAQ,CAAC,EACpC,cAAc,CAAC,EAAE,CAClB,CAAC;YACN,CAAC;YAED,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,0EAA0E,CAAC;iBACnF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,EAA6C,CAAC;QACpD,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO;QAErC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;OAQZ,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CAAC,2DAA2D,CAAC;iBACpE,GAAG,EAAgE,CAAC;YACvE,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,sBAAsB,CAAoB,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAsB;oBAClC,GAAG,KAAK;oBACR,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;oBACrC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU;iBACtD,CAAC;gBACF,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN;;0BAEc,CACf;qBACA,GAAG,CACF,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,UAAU,IAAI,IAAI,EAC3B,QAAQ,CAAC,cAAc,IAAI,IAAI,EAC/B,0BAA0B,CAAC,QAAQ,CAAC,EACpC,IAAI,CAAC,EAAE,CACR,CAAC;YACN,CAAC;YACD,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,0EAA0E,CAAC;iBACnF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,+BAA+B;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,EAA6C,CAAC;QACpD,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO;QAErC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE;iBACtB,OAAO,CACN;;;;;mBAKS,CACV;iBACA,GAAG,EAA0E,CAAC;YACjF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACb,yDAAyD,SAAS,CAAC,KAAK,gBAAgB,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,YAAY,EAAE,CACtI,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;OAKZ,CAAC,CAAC;YACH,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,0EAA0E,CAAC;iBACnF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,MAAM,uBAAuB;IACE;IAA7B,YAA6B,EAAoB;QAApB,OAAE,GAAF,EAAE,CAAkB;IAAG,CAAC;IACrD,UAAU,CAAC,EAAU;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,oBAAoB,CAAC,SAAiB,EAAE,UAAkB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IACD,YAAY,CAAC,MAA4B;QACvC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ,CAAC,EAAU;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,UAAU,CAAC,SAAkB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ,CAAC,EAAU;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,SAAiB,EAAE,GAAW;QAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,eAAe,CAAC,EAAU;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,OAAgB;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,cAAc,CAAC,EAAU;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,MAAgC;QAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,aAAa,CAAC,EAAU;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,eAAe,CAAC,EAAU;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,SAAkB;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,iBAAiB,CAAC,SAAkB;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,cAAc,CAAC,EAAU;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,gBAAgB,CAAC,MAA0B;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,oBAAoB,CAAC,KAAa,EAAE,GAAW;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,gBAAgB,CAAC,EAAU;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,kBAAkB,CAAC,SAAkB;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IACD,qBAAqB,CAAC,EAAU;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,sCAAsC,CACpC,IAAgC,EAChC,OAAe,EACf,iBAAyB;QAEzB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,sCAAsC,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAClG,CAAC;IACD,6BAA6B,CAAC,OAAe,EAAE,MAAqB;QAClE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,uBAAuB,CAAC,eAAwB;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoB;QACpC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,yBAAyB,EACzB,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EACjD,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,EAC9D,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,KAAkB;QAChC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,uBAAuB,EACvB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAClC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAC5C,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,KAAsB;QACpC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,gBAAgB,EAChB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,EACjC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,EACtC,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,gBAAgB,CAAC,KAAmB;QACxC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,wBAAwB,EACxB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,EAC3C,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EACzD,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,KAAwB;QAC5C,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,6BAA6B,EAC7B,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,EACvF;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS;SAChB,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,KAAiB;QACpC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,sBAAsB,EACtB,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,EACnC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,EAC7C,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,gBAAgB,CAAC,KAAmB;QACxC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,wBAAwB,EACxB,CAAC,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,EACtE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,EACrF,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,KAAkB;QACtC,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,wBAAwB,EACxB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAClC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAC5C,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,KAAwB;QAC5C,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,uBAAuB,EACvB;YACE,IAAI;YACJ,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,eAAe;YACf,iBAAiB;YACjB,aAAa;YACb,kBAAkB;SACnB,EACD;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,UAAU,IAAI,IAAI;YACxB,KAAK,CAAC,cAAc,IAAI,IAAI;SAC7B,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,qBAAqB,CAAC,KAAwB;QAClD,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,0BAA0B,EAC1B,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAC9B,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,EACzC,KAAK,EACL,CAAC,OAAO,EAAE,KAAK,CAAC,CACjB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,KAAoB;QAC1C,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,yBAAyB,EACzB,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,EAC3D,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,EAC5E,KAAK,CACN,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,sBAAsB,CAAC,KAAyB;QACpD,MAAM,CACJ,IAAI,CAAC,EAAE,EACP,8BAA8B,EAC9B;YACE,IAAI;YACJ,mBAAmB;YACnB,MAAM;YACN,SAAS;YACT,0BAA0B;YAC1B,cAAc;YACd,YAAY;SACb,EACD;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,eAAe;YACrB,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE;YACrC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,YAAY,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE;YAClF,KAAK,CAAC,SAAS;SAChB,EACD,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAED,SAAS,MAAM,CAAC,EAAoB;IAClC,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,EAAE;YACjB,OAAO,GAAG,CAAgB,EAAE,EAAE,0DAA0D,EAAE;gBACxF,EAAE;aACH,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,UAAU;YAC9C,OAAO,GAAG,CACR,EAAE,EACF,sFAAsF,EACtF,CAAC,SAAS,EAAE,UAAU,CAAC,CACxB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE;YAC5B,OAAO,GAAG,CACR,EAAE,EACF,qEAAqE,CACtE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,EAAE;YACf,OAAO,GAAG,CAAc,EAAE,EAAE,wDAAwD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,SAAS;YACxB,OAAO,SAAS;gBACd,CAAC,CAAC,GAAG,CACD,EAAE,EACF,wFAAwF,EACxF,CAAC,SAAS,CAAC,CACZ;gBACH,CAAC,CAAC,GAAG,CAAc,EAAE,EAAE,mEAAmE,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,EAAE;YACf,OAAO,GAAG,CAAkB,EAAE,EAAE,iDAAiD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG;YAChC,OAAO,GAAG,CACR,EAAE,EACF,2EAA2E,EAC3E,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,EAAE;YACtB,OAAO,GAAG,CAAe,EAAE,EAAE,yDAAyD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,OAAO;YAC7B,OAAO,OAAO;gBACZ,CAAC,CAAC,GAAG,CACD,EAAE,EACF,oFAAoF,EACpF,CAAC,OAAO,CAAC,CACV;gBACH,CAAC,CAAC,GAAG,CACD,EAAE,EACF,oEAAoE,CACrE,CAAC;QACR,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,EAAE;YACrB,OAAO,GAAG,CACR,EAAE,EACF,8DAA8D,EAC9D,CAAC,EAAE,CAAC,CACL,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE;YAChC,OAAO,GAAG,CACR,EAAE,EACF,yEAAyE,CAC1E,CAAC,MAAM,CACN,CAAC,IAAI,EAAE,EAAE,CACP,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,EAAE;YACpB,OAAO,GAAG,CAAa,EAAE,EAAE,uDAAuD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,EAAE;YACtB,OAAO,GAAG,CAAe,EAAE,EAAE,yDAAyD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,SAAS;YAC/B,OAAO,SAAS;gBACd,CAAC,CAAC,GAAG,CACD,EAAE,EACF,yFAAyF,EACzF,CAAC,SAAS,CAAC,CACZ;gBACH,CAAC,CAAC,GAAG,CACD,EAAE,EACF,oEAAoE,CACrE,CAAC;QACR,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,SAAS;YAC/B,OAAO,SAAS;gBACd,CAAC,CAAC,GAAG,CACD,EAAE,EACF,oGAAoG,EACpG,CAAC,SAAS,CAAC,CACZ;gBACH,CAAC,CAAC,GAAG,CACD,EAAE,EACF,+EAA+E,CAChF,CAAC;QACR,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,EAAE;YACrB,OAAO,GAAG,CAAoB,EAAE,EAAE,wDAAwD,EAAE;gBAC1F,EAAE;aACH,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE;YAChC,OAAO,GAAG,CACR,EAAE,EACF,8EAA8E,CAC/E,CAAC,MAAM,CACN,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC;gBAC1D,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;gBACjD,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAC9C,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG;YACnC,OAAO,GAAG,CACR,EAAE,EACF,0EAA0E,EAC1E,CAAC,KAAK,EAAE,GAAG,CAAC,CACb,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACvB,OAAO,GAAG,CAAgB,EAAE,EAAE,0DAA0D,EAAE;gBACxF,EAAE;aACH,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,kBAAkB,CAAC,SAAS;YAChC,OAAO,SAAS;gBACd,CAAC,CAAC,GAAG,CACD,EAAE,EACF,0FAA0F,EAC1F,CAAC,SAAS,CAAC,CACZ;gBACH,CAAC,CAAC,GAAG,CACD,EAAE,EACF,qEAAqE,CACtE,CAAC;QACR,CAAC;QACD,KAAK,CAAC,qBAAqB,CAAC,EAAE;YAC5B,OAAO,GAAG,CACR,EAAE,EACF,+DAA+D,EAC/D,CAAC,EAAE,CAAC,CACL,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,sCAAsC,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB;YAC3E,OAAO,GAAG,CACR,EAAE,EACF;yEACiE,EACjE,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC,CACjD,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,6BAA6B,CAAC,OAAO,EAAE,MAAM;YACjD,OAAO,GAAG,CACR,EAAE,EACF,yFAAyF,EACzF,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAChC,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,uBAAuB,CAAC,eAAe;YAC3C,OAAO,eAAe;gBACpB,CAAC,CAAC,GAAG,CACD,EAAE,EACF,sGAAsG,EACtG,CAAC,eAAe,CAAC,CAClB;gBACH,CAAC,CAAC,GAAG,CACD,EAAE,EACF,0EAA0E,CAC3E,CAAC;QACR,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CACb,EAAoB,EACpB,KAAa,EACb,OAAiB,EACjB,MAAiB,EACjB,OAAgB,EAChB,kBAA4B,CAAC,IAAI,CAAC;IAElC,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,EAAE,CAAC,OAAO,CACR,eAAe,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,iBAAiB,QAAQ,cAAc,CAC/G,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,MAAM,CACb,EAAoB,EACpB,KAAa,EACb,OAAiB,EACjB,MAAiB,EACjB,OAAgB;IAEhB,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,UAAU;SACvB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;SACnC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,eAAe,MAAM,EAAE,CAAC;SACjD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,EAAE,CAAC,OAAO,CACR,eAAe,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,YAAY,mCAAmC,OAAO,EAAE,CACpH,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,GAAG,CAAI,EAAoB,EAAE,GAAW,EAAE,SAAoB,EAAE;IACvE,OAAO,QAAQ,CAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AACD,SAAS,GAAG,CAAI,EAAoB,EAAE,GAAW,EAAE,SAAoB,EAAE;IACvE,OAAO,EAAE;SACN,OAAO,CAAC,GAAG,CAAC;SACZ,GAAG,CAAC,GAAG,MAAM,CAAC;SACd,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAI,GAAG,CAAE,CAAC;SAC/B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AACD,SAAS,QAAQ,CAAI,GAAY;IAC/B,IACE,CAAC,GAAG;QACJ,OAAO,GAAG,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;QACnB,OAAQ,GAAkB,CAAC,OAAO,KAAK,QAAQ;QAE/C,OAAO,SAAS,CAAC;IACnB,OAAO,sBAAsB,CAAK,GAAkB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC;AACD,SAAS,oBAAoB,CAC3B,KAAgD,EAChD,MAA2B;IAE3B,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC;QAC3D,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,EAA0B,EAC1B,OAAe,EACf,QAAgB,EAChB,YAAqB;IAErB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,
|
|
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.
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
+
}
|