@resvary/postgres 1.0.0 → 1.1.0
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/README.md +2 -5
- package/dist/credit.d.ts.map +1 -1
- package/dist/credit.js +85 -27
- package/dist/credit.js.map +1 -1
- package/dist/health.d.ts +3 -0
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +15 -1
- package/dist/health.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -17,10 +17,7 @@ await store.close();
|
|
|
17
17
|
|
|
18
18
|
Pass either `connectionString` or an existing `pg.Pool`. A store created from a connection string owns and closes its pool. A store given a pool never closes it.
|
|
19
19
|
|
|
20
|
-
Credit transactions and bundled receipt ledger operations run at `SERIALIZABLE` isolation with bounded retry. Schema
|
|
21
|
-
|
|
22
|
-
Resvary 0.8 keeps schema v3. Graduated/package price definitions and their receipt line items use
|
|
23
|
-
the existing JSONB payloads, so upgrading from 0.7 requires no database migration.
|
|
20
|
+
Credit transactions and bundled receipt ledger operations run at `SERIALIZABLE` isolation with bounded retry. Schema v4 adds normalized admin query columns, timeline indexes, and the append-only operator action journal. Apply migrations before starting application, worker, or console processes.
|
|
24
21
|
|
|
25
22
|
CLI commands:
|
|
26
23
|
|
|
@@ -32,4 +29,4 @@ resvary-postgres import-sqlite --sqlite .resvary/resvary.sqlite
|
|
|
32
29
|
resvary-postgres verify-import --sqlite .resvary/resvary.sqlite
|
|
33
30
|
```
|
|
34
31
|
|
|
35
|
-
SQLite import requires Node.js 24 and SQLite schema v5. Stop every writer before importing. Verification compares entity payloads, balances, ledger totals, lots, allocations, and open reservations.
|
|
32
|
+
SQLite import requires Node.js 24 and an offline Resvary 0.8 SQLite schema v5 database. Stop every writer before importing. Verification compares entity payloads, balances, ledger totals, lots, allocations, and open reservations.
|
package/dist/credit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EAEvB,iBAAiB,EAEjB,4BAA4B,EAC5B,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAKL,KAAK,wBAAwB,EAE9B,MAAM,iBAAiB,CAAC;AAqBzB,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;CAAG;AAE9E,qBAAa,mBAAoB,YAAW,iBAAiB,EAAE,mBAAmB;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,yBAAyB;IAIvC,WAAW,CAAC,CAAC,EACjB,OAAO,EAAE,CAAC,WAAW,EAAE,4BAA4B,KAAK,OAAO,CAAC,CAAC,CAAC,GACjE,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../src/credit.ts"],"names":[],"mappings":"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"}
|
package/dist/credit.js
CHANGED
|
@@ -8,6 +8,7 @@ export class PostgresCreditStore {
|
|
|
8
8
|
async transaction(handler) {
|
|
9
9
|
for (let attempt = 0;; attempt += 1) {
|
|
10
10
|
const client = await this.handle.pool.connect();
|
|
11
|
+
let retry = false;
|
|
11
12
|
try {
|
|
12
13
|
await client.query('BEGIN ISOLATION LEVEL SERIALIZABLE');
|
|
13
14
|
const result = await handler(new PostgresCreditTransaction(client, this.handle));
|
|
@@ -19,11 +20,16 @@ export class PostgresCreditStore {
|
|
|
19
20
|
if (!isRetryableTransactionError(error) || attempt >= this.handle.maxTransactionRetries) {
|
|
20
21
|
throw error;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
retry = true;
|
|
23
24
|
}
|
|
24
25
|
finally {
|
|
25
26
|
client.release();
|
|
26
27
|
}
|
|
28
|
+
if (retry) {
|
|
29
|
+
const maximumDelayMs = Math.min(10 * 2 ** attempt, 250);
|
|
30
|
+
const delayMs = Math.round(maximumDelayMs * (0.5 + Math.random() * 0.5));
|
|
31
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
32
|
+
}
|
|
27
33
|
}
|
|
28
34
|
}
|
|
29
35
|
getAccount(id) {
|
|
@@ -423,6 +429,9 @@ class PostgresCreditTransaction {
|
|
|
423
429
|
saveIdempotencyRecord(value) {
|
|
424
430
|
return insert(this.client, this.handle, 'resvary_idempotency_keys', ['scope', 'key', 'created_at'], [value.scope, value.key, value.createdAt], value, ['scope', 'key']);
|
|
425
431
|
}
|
|
432
|
+
claimIdempotencyRecord(value) {
|
|
433
|
+
return insertOnce(this.client, this.handle, 'resvary_idempotency_keys', ['scope', 'key', 'created_at'], [value.scope, value.key, value.createdAt], value, ['scope', 'key']);
|
|
434
|
+
}
|
|
426
435
|
saveFundingIntent(value) {
|
|
427
436
|
return upsert(this.client, this.handle, 'resvary_funding_intents', ['id', 'project_id', 'customer_id', 'status', 'requested_units', 'created_at'], [
|
|
428
437
|
value.id,
|
|
@@ -546,7 +555,13 @@ function reader(db, handle) {
|
|
|
546
555
|
return {
|
|
547
556
|
getAccount: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_accounts')} WHERE id = $1`, [id]),
|
|
548
557
|
getAccountByCustomer: (projectId, customerId) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_accounts')} WHERE project_id = $1 AND customer_id = $2`, [projectId, customerId]),
|
|
549
|
-
listAccounts: (filter = {}) =>
|
|
558
|
+
listAccounts: (filter = {}) => {
|
|
559
|
+
const query = sqlFilter([
|
|
560
|
+
['project_id', filter.projectId],
|
|
561
|
+
['customer_id', filter.customerId],
|
|
562
|
+
]);
|
|
563
|
+
return all(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_accounts')} ${query.where} ORDER BY updated_at ASC`, query.values);
|
|
564
|
+
},
|
|
550
565
|
getGrant: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_grants')} WHERE id = $1`, [
|
|
551
566
|
id,
|
|
552
567
|
]),
|
|
@@ -558,7 +573,16 @@ function reader(db, handle) {
|
|
|
558
573
|
]),
|
|
559
574
|
listPriceVersions: (meterId) => all(db, `SELECT payload::text AS payload FROM ${t('resvary_price_versions')} ${meterId ? 'WHERE meter_id = $1' : ''} ORDER BY created_at ASC`, meterId ? [meterId] : []),
|
|
560
575
|
getReservation: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_reservations')} WHERE id = $1`, [id]),
|
|
561
|
-
listReservations: (filter = {}) =>
|
|
576
|
+
listReservations: (filter = {}) => {
|
|
577
|
+
const query = sqlFilter([
|
|
578
|
+
['project_id', filter.projectId],
|
|
579
|
+
['customer_id', filter.customerId],
|
|
580
|
+
['status', filter.status],
|
|
581
|
+
['expires_at', filter.expiresBefore, '<='],
|
|
582
|
+
]);
|
|
583
|
+
const limit = sqlLimit(filter.limit, query.values);
|
|
584
|
+
return all(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_reservations')} ${query.where} ORDER BY created_at ASC ${limit.sql}`, limit.values);
|
|
585
|
+
},
|
|
562
586
|
getUsageEvent: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_usage_events')} WHERE id = $1`, [
|
|
563
587
|
id,
|
|
564
588
|
]),
|
|
@@ -572,12 +596,13 @@ function reader(db, handle) {
|
|
|
572
596
|
return result.rows[0] ? parseOutboxRow(result.rows[0]) : undefined;
|
|
573
597
|
},
|
|
574
598
|
listOutboxEvents: async (filter = {}) => {
|
|
575
|
-
const
|
|
576
|
-
|
|
577
|
-
.
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
599
|
+
const query = sqlFilter([
|
|
600
|
+
['project_id', filter.projectId],
|
|
601
|
+
['status', filter.status],
|
|
602
|
+
['type', filter.type],
|
|
603
|
+
]);
|
|
604
|
+
const result = await db.query(outboxSelect(t('resvary_outbox_events'), `${query.where} ORDER BY created_at ASC, id ASC`), query.values);
|
|
605
|
+
return result.rows.map(parseOutboxRow);
|
|
581
606
|
},
|
|
582
607
|
getIdempotencyRecord: (scope, key) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_idempotency_keys')} WHERE scope = $1 AND key = $2`, [scope, key]),
|
|
583
608
|
getFundingIntent: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_funding_intents')} WHERE id = $1`, [id]),
|
|
@@ -594,23 +619,56 @@ function reader(db, handle) {
|
|
|
594
619
|
getCreditLot: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_lots')} WHERE id = $1`, [
|
|
595
620
|
id,
|
|
596
621
|
]),
|
|
597
|
-
listCreditLots: (filter = {}) =>
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
622
|
+
listCreditLots: (filter = {}) => {
|
|
623
|
+
const query = sqlFilter([
|
|
624
|
+
['project_id', filter.projectId],
|
|
625
|
+
['customer_id', filter.customerId],
|
|
626
|
+
['account_id', filter.accountId],
|
|
627
|
+
['policy_id', filter.policyId],
|
|
628
|
+
['kind', filter.kind],
|
|
629
|
+
['expires_at', filter.expiresBefore, '<='],
|
|
630
|
+
]);
|
|
631
|
+
return all(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_lots')} ${query.where} ORDER BY created_at, id`, query.values);
|
|
632
|
+
},
|
|
602
633
|
listCreditLotAllocations: (reservationId) => all(db, `SELECT payload::text AS payload FROM ${t('resvary_credit_lot_allocations')}
|
|
603
634
|
${reservationId ? 'WHERE reservation_id = $1' : ''} ORDER BY created_at, id`, reservationId ? [reservationId] : []),
|
|
604
635
|
getGrantPolicyApplication: (id) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_grant_policy_applications')} WHERE id = $1`, [id]),
|
|
605
636
|
getGrantPolicyApplicationByIdentity: (policyId, accountId, periodKey) => one(db, `SELECT payload::text AS payload FROM ${t('resvary_grant_policy_applications')}
|
|
606
637
|
WHERE policy_id = $1 AND account_id = $2 AND period_key = $3`, [policyId, accountId, periodKey]),
|
|
607
|
-
listGrantPolicyApplications: (filter = {}) =>
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
638
|
+
listGrantPolicyApplications: (filter = {}) => {
|
|
639
|
+
const query = sqlFilter([
|
|
640
|
+
['project_id', filter.projectId],
|
|
641
|
+
['customer_id', filter.customerId],
|
|
642
|
+
['policy_id', filter.policyId],
|
|
643
|
+
['policy_type', filter.policyType],
|
|
644
|
+
['period_key', filter.periodKey],
|
|
645
|
+
]);
|
|
646
|
+
return all(db, `SELECT payload::text AS payload FROM ${t('resvary_grant_policy_applications')} ${query.where} ORDER BY created_at, id`, query.values);
|
|
647
|
+
},
|
|
612
648
|
};
|
|
613
649
|
}
|
|
650
|
+
function sqlFilter(filters) {
|
|
651
|
+
const values = [];
|
|
652
|
+
const predicates = [];
|
|
653
|
+
for (const [column, value, operator = '='] of filters) {
|
|
654
|
+
if (value === undefined)
|
|
655
|
+
continue;
|
|
656
|
+
values.push(value);
|
|
657
|
+
predicates.push(`${column} ${operator} $${values.length}`);
|
|
658
|
+
}
|
|
659
|
+
return {
|
|
660
|
+
where: predicates.length ? `WHERE ${predicates.join(' AND ')}` : '',
|
|
661
|
+
values,
|
|
662
|
+
};
|
|
663
|
+
}
|
|
664
|
+
function sqlLimit(limit, values) {
|
|
665
|
+
if (limit === undefined)
|
|
666
|
+
return { sql: '', values };
|
|
667
|
+
if (!Number.isSafeInteger(limit) || limit <= 0) {
|
|
668
|
+
throw new Error('Query limit must be a positive safe integer');
|
|
669
|
+
}
|
|
670
|
+
return { sql: `LIMIT $${values.length + 1}`, values: [...values, limit] };
|
|
671
|
+
}
|
|
614
672
|
function outboxSelect(tableName, suffix) {
|
|
615
673
|
return `SELECT payload::text AS payload, status, attempt_count,
|
|
616
674
|
next_attempt_at::text, lease_owner, lease_expires_at::text,
|
|
@@ -638,13 +696,17 @@ async function all(db, sql, values = []) {
|
|
|
638
696
|
const result = await db.query(sql, values);
|
|
639
697
|
return result.rows.map((row) => parseReceiptStoreValue(row.payload));
|
|
640
698
|
}
|
|
641
|
-
async function filteredAll(db, sql, values, filter) {
|
|
642
|
-
return (await all(db, sql, values)).filter(filter);
|
|
643
|
-
}
|
|
644
699
|
async function insert(db, handle, name, columns, values, payload, conflictColumns = ['id']) {
|
|
700
|
+
await insertResult(db, handle, name, columns, values, payload, conflictColumns);
|
|
701
|
+
}
|
|
702
|
+
async function insertOnce(db, handle, name, columns, values, payload, conflictColumns = ['id']) {
|
|
703
|
+
const result = await insertResult(db, handle, name, columns, values, payload, conflictColumns);
|
|
704
|
+
return result.rowCount === 1;
|
|
705
|
+
}
|
|
706
|
+
function insertResult(db, handle, name, columns, values, payload, conflictColumns) {
|
|
645
707
|
const allColumns = [...columns, 'payload'];
|
|
646
708
|
const params = allColumns.map((_, index) => `$${index + 1}`).join(', ');
|
|
647
|
-
|
|
709
|
+
return db.query(`INSERT INTO ${table(handle, name)} (${allColumns.join(', ')}) VALUES (${params})
|
|
648
710
|
ON CONFLICT (${conflictColumns.join(', ')}) DO NOTHING`, [...values, serializeReceiptStoreValue(payload)]);
|
|
649
711
|
}
|
|
650
712
|
async function upsert(db, handle, name, columns, values, payload) {
|
|
@@ -657,10 +719,6 @@ async function upsert(db, handle, name, columns, values, payload) {
|
|
|
657
719
|
await db.query(`INSERT INTO ${table(handle, name)} (${allColumns.join(', ')}) VALUES (${params})
|
|
658
720
|
ON CONFLICT (id) DO UPDATE SET ${updates}`, [...values, serializeReceiptStoreValue(payload)]);
|
|
659
721
|
}
|
|
660
|
-
function matchesBalanceFilter(value, filter) {
|
|
661
|
-
return ((!filter.projectId || value.projectId === filter.projectId) &&
|
|
662
|
-
(!filter.customerId || value.customerId === filter.customerId));
|
|
663
|
-
}
|
|
664
722
|
export function createPostgresCreditStore(config) {
|
|
665
723
|
return new PostgresCreditStore(config);
|
|
666
724
|
}
|
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":"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"}
|
package/dist/health.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ export interface PostgresHealth {
|
|
|
7
7
|
latestSchemaVersion: number;
|
|
8
8
|
pendingOutboxEvents: number;
|
|
9
9
|
deadLetterEvents: number;
|
|
10
|
+
oldestPendingOutboxAgeMs: number;
|
|
11
|
+
overdueReservations: number;
|
|
12
|
+
reconciliationRequiredFunding: number;
|
|
10
13
|
error?: string;
|
|
11
14
|
}
|
|
12
15
|
export declare function checkPostgresHealth(config: PostgresConnectionConfig): Promise<PostgresHealth>;
|
package/dist/health.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG7F,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG7F,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6BAA6B,EAAE,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,cAAc,CAAC,CA6DzB"}
|
package/dist/health.js
CHANGED
|
@@ -4,11 +4,19 @@ export async function checkPostgresHealth(config) {
|
|
|
4
4
|
const handle = createPostgresHandle(config);
|
|
5
5
|
const startedAt = Date.now();
|
|
6
6
|
try {
|
|
7
|
+
const now = Date.now();
|
|
7
8
|
await handle.pool.query('SELECT 1');
|
|
8
9
|
const version = await handle.pool.query(`SELECT version FROM ${table(handle, 'resvary_schema_migrations')} ORDER BY version ASC`);
|
|
9
|
-
const outbox = await handle.pool.query(`SELECT status, COUNT(*)::text AS count
|
|
10
|
+
const outbox = await handle.pool.query(`SELECT status, COUNT(*)::text AS count, MIN(created_at)::text AS oldest
|
|
11
|
+
FROM ${table(handle, 'resvary_outbox_events')}
|
|
10
12
|
WHERE status IN ('pending', 'dead_letter') GROUP BY status`);
|
|
11
13
|
const counts = new Map(outbox.rows.map((row) => [row.status, Number(row.count)]));
|
|
14
|
+
const oldestPending = outbox.rows.find((row) => row.status === 'pending')?.oldest;
|
|
15
|
+
const operational = await handle.pool.query(`SELECT
|
|
16
|
+
(SELECT COUNT(*)::text FROM ${table(handle, 'resvary_credit_reservations')}
|
|
17
|
+
WHERE status = 'open' AND expires_at <= $1) AS overdue_reservations,
|
|
18
|
+
(SELECT COUNT(*)::text FROM ${table(handle, 'resvary_funding_transactions')}
|
|
19
|
+
WHERE settlement_status = 'reconciliation_required') AS reconciliation_required`, [now]);
|
|
12
20
|
const appliedVersions = version.rows.map((row) => row.version);
|
|
13
21
|
const schemaVersion = appliedVersions.at(-1) ?? 0;
|
|
14
22
|
const migrationHistoryValid = appliedVersions.every((appliedVersion, index) => appliedVersion === index + 1);
|
|
@@ -20,6 +28,9 @@ export async function checkPostgresHealth(config) {
|
|
|
20
28
|
latestSchemaVersion: POSTGRES_SCHEMA_VERSION,
|
|
21
29
|
pendingOutboxEvents: counts.get('pending') ?? 0,
|
|
22
30
|
deadLetterEvents: counts.get('dead_letter') ?? 0,
|
|
31
|
+
oldestPendingOutboxAgeMs: oldestPending ? Math.max(0, now - Number(oldestPending)) : 0,
|
|
32
|
+
overdueReservations: Number(operational.rows[0]?.overdue_reservations ?? 0),
|
|
33
|
+
reconciliationRequiredFunding: Number(operational.rows[0]?.reconciliation_required ?? 0),
|
|
23
34
|
};
|
|
24
35
|
}
|
|
25
36
|
catch (error) {
|
|
@@ -31,6 +42,9 @@ export async function checkPostgresHealth(config) {
|
|
|
31
42
|
latestSchemaVersion: POSTGRES_SCHEMA_VERSION,
|
|
32
43
|
pendingOutboxEvents: 0,
|
|
33
44
|
deadLetterEvents: 0,
|
|
45
|
+
oldestPendingOutboxAgeMs: 0,
|
|
46
|
+
overdueReservations: 0,
|
|
47
|
+
reconciliationRequiredFunding: 0,
|
|
34
48
|
error: error instanceof Error ? error.message : String(error),
|
|
35
49
|
};
|
|
36
50
|
}
|
package/dist/health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAiC,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@resvary/postgres",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Postgres persistence and migration tooling for Resvary",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"directory": "packages/postgres"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@resvary/sdk": "1.
|
|
48
|
+
"@resvary/sdk": "1.1.0",
|
|
49
49
|
"pg": "^8.16.3"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"vitest": "^4.1.11"
|
|
56
56
|
},
|
|
57
57
|
"license": "Apache-2.0",
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "2ac07971e36b6d8b8e09bff0ba4d80b55dafd3ca"
|
|
59
59
|
}
|