@resvary/postgres 0.5.0-alpha.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 +1 -0
- package/README.md +5 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +74 -0
- package/dist/cli.js.map +1 -0
- package/dist/connection.d.ts +19 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +37 -0
- package/dist/connection.js.map +1 -0
- package/dist/credit.d.ts +41 -0
- package/dist/credit.d.ts.map +1 -0
- package/dist/credit.js +468 -0
- package/dist/credit.js.map +1 -0
- package/dist/health.d.ts +13 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +40 -0
- package/dist/health.js.map +1 -0
- package/dist/import-sqlite.d.ts +19 -0
- package/dist/import-sqlite.d.ts.map +1 -0
- package/dist/import-sqlite.js +293 -0
- package/dist/import-sqlite.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations.d.ts +11 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +160 -0
- package/dist/migrations.js.map +1 -0
- package/dist/receipt.d.ts +29 -0
- package/dist/receipt.d.ts.map +1 -0
- package/dist/receipt.js +129 -0
- package/dist/receipt.js.map +1 -0
- package/package.json +50 -0
package/dist/receipt.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { parseReceiptStoreValue, serializeReceiptStoreValue } from '@resvary/sdk/receipts';
|
|
2
|
+
import { createPostgresHandle, table, } from './connection.js';
|
|
3
|
+
export class PostgresReceiptStore {
|
|
4
|
+
handle;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.handle = createPostgresHandle(config);
|
|
7
|
+
}
|
|
8
|
+
async saveInvoice(value) {
|
|
9
|
+
await this.handle.pool.query(`INSERT INTO ${table(this.handle, 'resvary_invoices')}
|
|
10
|
+
(id, status, customer_id, amount_units, created_at, payload)
|
|
11
|
+
VALUES ($1, $2, $3, $4, $5, $6)
|
|
12
|
+
ON CONFLICT (id) DO UPDATE SET status = EXCLUDED.status,
|
|
13
|
+
customer_id = EXCLUDED.customer_id, amount_units = EXCLUDED.amount_units,
|
|
14
|
+
created_at = EXCLUDED.created_at, payload = EXCLUDED.payload`, [
|
|
15
|
+
value.id,
|
|
16
|
+
value.status,
|
|
17
|
+
value.customerId ?? null,
|
|
18
|
+
value.amountUnits,
|
|
19
|
+
value.createdAt,
|
|
20
|
+
serializeReceiptStoreValue(value),
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
getInvoice(id) {
|
|
24
|
+
return this.one(`SELECT payload::text AS payload FROM ${table(this.handle, 'resvary_invoices')} WHERE id = $1`, [id]);
|
|
25
|
+
}
|
|
26
|
+
async listInvoices(filter = {}) {
|
|
27
|
+
return (await this.all(`SELECT payload::text AS payload FROM ${table(this.handle, 'resvary_invoices')} ORDER BY created_at ASC`)).filter((value) => (!filter.status || value.status === filter.status) &&
|
|
28
|
+
(!filter.customerId || value.customerId === filter.customerId));
|
|
29
|
+
}
|
|
30
|
+
async saveReceipt(value) {
|
|
31
|
+
await this.handle.pool.query(`INSERT INTO ${table(this.handle, 'resvary_receipts')}
|
|
32
|
+
(id, invoice_id, tx_hash_norm, status, amount_units, created_at, payload)
|
|
33
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
34
|
+
ON CONFLICT DO NOTHING`, [
|
|
35
|
+
value.id,
|
|
36
|
+
value.invoiceId,
|
|
37
|
+
value.txHash?.toLowerCase() ?? null,
|
|
38
|
+
value.status,
|
|
39
|
+
value.amountUnits,
|
|
40
|
+
value.createdAt,
|
|
41
|
+
serializeReceiptStoreValue(value),
|
|
42
|
+
]);
|
|
43
|
+
}
|
|
44
|
+
getReceipt(id) {
|
|
45
|
+
return this.one(`SELECT payload::text AS payload FROM ${table(this.handle, 'resvary_receipts')} WHERE id = $1`, [id]);
|
|
46
|
+
}
|
|
47
|
+
getReceiptByTxHash(txHash, invoiceId) {
|
|
48
|
+
return this.one(`SELECT payload::text AS payload FROM ${table(this.handle, 'resvary_receipts')}
|
|
49
|
+
WHERE tx_hash_norm = $1 ${invoiceId ? 'AND invoice_id = $2' : ''} LIMIT 1`, invoiceId ? [txHash.toLowerCase(), invoiceId] : [txHash.toLowerCase()]);
|
|
50
|
+
}
|
|
51
|
+
listReceipts() {
|
|
52
|
+
return this.all(`SELECT payload::text AS payload FROM ${table(this.handle, 'resvary_receipts')} ORDER BY created_at ASC`);
|
|
53
|
+
}
|
|
54
|
+
async saveWebhookEvent(value) {
|
|
55
|
+
await this.handle.pool.query(`INSERT INTO ${table(this.handle, 'arc_webhook_events')}(id, type, created_at, payload)
|
|
56
|
+
VALUES ($1, $2, $3, $4)
|
|
57
|
+
ON CONFLICT (id) DO UPDATE SET type = EXCLUDED.type,
|
|
58
|
+
created_at = EXCLUDED.created_at, payload = EXCLUDED.payload`, [value.id, value.type, value.createdAt, serializeReceiptStoreValue(value)]);
|
|
59
|
+
}
|
|
60
|
+
async listWebhookEvents(filter = {}) {
|
|
61
|
+
return (await this.all(`SELECT payload::text AS payload FROM ${table(this.handle, 'arc_webhook_events')} ORDER BY created_at ASC`)).filter((value) => !filter.type || value.type === filter.type);
|
|
62
|
+
}
|
|
63
|
+
async saveWebhookDelivery(value) {
|
|
64
|
+
await this.handle.pool.query(`INSERT INTO ${table(this.handle, 'arc_webhook_deliveries')}
|
|
65
|
+
(id, event_id, event_type, attempt, status, received_at, payload)
|
|
66
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
67
|
+
ON CONFLICT (id) DO UPDATE SET event_id = EXCLUDED.event_id,
|
|
68
|
+
event_type = EXCLUDED.event_type, attempt = EXCLUDED.attempt,
|
|
69
|
+
status = EXCLUDED.status, received_at = EXCLUDED.received_at,
|
|
70
|
+
payload = EXCLUDED.payload`, [
|
|
71
|
+
value.id,
|
|
72
|
+
value.eventId,
|
|
73
|
+
value.eventType,
|
|
74
|
+
value.attempt,
|
|
75
|
+
value.status,
|
|
76
|
+
value.receivedAt,
|
|
77
|
+
serializeReceiptStoreValue(value),
|
|
78
|
+
]);
|
|
79
|
+
}
|
|
80
|
+
getWebhookDelivery(id) {
|
|
81
|
+
return this.one(`SELECT payload::text AS payload FROM ${table(this.handle, 'arc_webhook_deliveries')} WHERE id = $1`, [id]);
|
|
82
|
+
}
|
|
83
|
+
async listWebhookDeliveries(filter = {}) {
|
|
84
|
+
return (await this.all(`SELECT payload::text AS payload FROM ${table(this.handle, 'arc_webhook_deliveries')} ORDER BY received_at ASC, attempt ASC`)).filter((value) => (!filter.eventId || value.eventId === filter.eventId) &&
|
|
85
|
+
(!filter.status || value.status === filter.status));
|
|
86
|
+
}
|
|
87
|
+
getWatcherCursor(key) {
|
|
88
|
+
return this.one(`SELECT payload::text AS payload FROM ${table(this.handle, 'arc_watcher_cursors')} WHERE key = $1`, [key]);
|
|
89
|
+
}
|
|
90
|
+
listWatcherCursors() {
|
|
91
|
+
return this.all(`SELECT payload::text AS payload FROM ${table(this.handle, 'arc_watcher_cursors')} ORDER BY updated_at ASC`);
|
|
92
|
+
}
|
|
93
|
+
async saveWatcherCursor(value) {
|
|
94
|
+
await this.handle.pool.query(`INSERT INTO ${table(this.handle, 'arc_watcher_cursors')}
|
|
95
|
+
(key, network, invoice_id, memo_id_norm, next_from_block, updated_at, payload)
|
|
96
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
97
|
+
ON CONFLICT (key) DO UPDATE SET network = EXCLUDED.network,
|
|
98
|
+
invoice_id = EXCLUDED.invoice_id, memo_id_norm = EXCLUDED.memo_id_norm,
|
|
99
|
+
next_from_block = EXCLUDED.next_from_block, updated_at = EXCLUDED.updated_at,
|
|
100
|
+
payload = EXCLUDED.payload`, [
|
|
101
|
+
value.key,
|
|
102
|
+
value.network,
|
|
103
|
+
value.invoiceId ?? null,
|
|
104
|
+
value.memoId?.toLowerCase() ?? null,
|
|
105
|
+
value.nextFromBlock.toString(),
|
|
106
|
+
value.updatedAt,
|
|
107
|
+
serializeReceiptStoreValue(value),
|
|
108
|
+
]);
|
|
109
|
+
}
|
|
110
|
+
async deleteWatcherCursor(key) {
|
|
111
|
+
await this.handle.pool.query(`DELETE FROM ${table(this.handle, 'arc_watcher_cursors')} WHERE key = $1`, [key]);
|
|
112
|
+
}
|
|
113
|
+
async close() {
|
|
114
|
+
if (this.handle.ownsPool)
|
|
115
|
+
await this.handle.pool.end();
|
|
116
|
+
}
|
|
117
|
+
async one(sql, values = []) {
|
|
118
|
+
const result = await this.handle.pool.query(sql, values);
|
|
119
|
+
return result.rows[0] ? parseReceiptStoreValue(result.rows[0].payload) : undefined;
|
|
120
|
+
}
|
|
121
|
+
async all(sql, values = []) {
|
|
122
|
+
const result = await this.handle.pool.query(sql, values);
|
|
123
|
+
return result.rows.map((row) => parseReceiptStoreValue(row.payload));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
export function createPostgresReceiptStore(config) {
|
|
127
|
+
return new PostgresReceiptStore(config);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@resvary/postgres",
|
|
3
|
+
"version": "0.5.0-alpha.1",
|
|
4
|
+
"description": "Postgres persistence and migration tooling for Resvary",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"resvary-postgres": "./dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./import-sqlite": {
|
|
17
|
+
"types": "./dist/import-sqlite.d.ts",
|
|
18
|
+
"import": "./dist/import-sqlite.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"README.md",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public",
|
|
28
|
+
"tag": "alpha"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc",
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"clean": "node -e \"const fs=require('node:fs');fs.rmSync('dist',{recursive:true,force:true});fs.rmSync('tsconfig.tsbuildinfo',{force:true})\"",
|
|
34
|
+
"test": "vitest run"
|
|
35
|
+
},
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=20.0.0"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@resvary/sdk": "0.5.0-alpha.1",
|
|
41
|
+
"pg": "^8.16.3"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/node": "^22.0.0",
|
|
45
|
+
"@types/pg": "^8.15.5",
|
|
46
|
+
"typescript": "^5.6.0",
|
|
47
|
+
"vitest": "^4.1.10"
|
|
48
|
+
},
|
|
49
|
+
"license": "Apache-2.0"
|
|
50
|
+
}
|