tapimo 0.9.0 → 0.10.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/dist/ApiKey.d.ts +2 -1
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKeys.d.ts +4 -2
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +26 -1
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +4292 -3708
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +1 -0
- package/dist/App.js.map +1 -1
- package/dist/Webhooks.d.ts +21 -20
- package/dist/Webhooks.d.ts.map +1 -1
- package/dist/Webhooks.js +66 -23
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +91 -84
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +26 -17
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +6 -0
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +4 -2
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +168 -168
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.js +69 -69
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +26 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/apps/Zones.d.ts +4280 -84
- package/dist/apps/Zones.d.ts.map +1 -1
- package/dist/apps/Zones.js +30 -10
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +5799 -4929
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +4 -5
- package/dist/apps/data/FxOracle.d.ts.map +1 -1
- package/dist/apps/data/FxOracle.js +19 -4
- package/dist/apps/data/FxOracle.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +3391 -492
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +372 -29
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +853 -339
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +10 -10
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +145 -83
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +123 -123
- package/dist/apps/data/routes/coingecko.d.ts +169 -169
- package/dist/apps/data/routes/earn.d.ts +455 -1
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +369 -45
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +114 -118
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +24 -24
- package/dist/apps/data/routes/indexer.d.ts +35 -34
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +3 -2
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +68 -47
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +31 -31
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +5 -1
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +12 -12
- package/dist/apps/data/routes/tokens.d.ts +461 -459
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +313 -305
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +25 -23
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +108 -86
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +618 -105
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +21 -21
- package/dist/apps/data/routes/valuation.d.ts.map +1 -1
- package/dist/apps/data/routes/valuation.js +2 -2
- package/dist/apps/data/routes/valuation.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +519 -868
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +642 -353
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +31 -31
- package/dist/apps/data/routes/zones.d.ts.map +1 -1
- package/dist/apps/data/routes/zones.js +4 -2
- package/dist/apps/data/routes/zones.js.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.js +1 -1
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
- package/dist/apps/funding/routes/providers.d.ts +13 -13
- package/dist/apps/funding/routes/quotes.d.ts +89 -89
- package/dist/apps/funding/routes/transfers.d.ts +36 -36
- package/dist/apps/funding/routes/transfers.js +1 -1
- package/dist/apps/funding/routes/transfers.js.map +1 -1
- package/dist/apps/management/App.d.ts +11 -309
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +74 -74
- package/dist/apps/management/routes/billing.js +1 -1
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/faucet.d.ts +35 -35
- package/dist/apps/management/routes/faucet.js +2 -2
- package/dist/apps/management/routes/faucet.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +134 -134
- package/dist/apps/management/routes/invite-links.d.ts +80 -80
- package/dist/apps/management/routes/members.d.ts +69 -69
- package/dist/apps/management/routes/orgs.d.ts +98 -98
- package/dist/apps/management/routes/projects.d.ts +60 -60
- package/dist/apps/management/routes/usage.d.ts +72 -72
- package/dist/apps/management/routes/verified-token-requests.d.ts +83 -83
- package/dist/apps/management/routes/webhooks.d.ts +203 -618
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +4 -1
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +56 -44
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.d.ts +3 -0
- package/dist/apps/mpp/Mpp.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.js +3 -0
- package/dist/apps/mpp/Mpp.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +9 -2
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/db/Db.d.ts +4 -2
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +75 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +19 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +24 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +4 -1
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/webhookQueueEvents.d.ts +122 -0
- package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -0
- package/dist/db/tables/webhookQueueEvents.js +160 -0
- package/dist/db/tables/webhookQueueEvents.js.map +1 -0
- package/dist/db/tables/webhookSubscriptions.d.ts +58 -3
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +86 -3
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/internal/Auth.d.ts +3 -0
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +6 -4
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +139 -3
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +144 -4
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/RateLimit.d.ts +4 -6
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +15 -14
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Schema.js +1 -1
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Store.d.ts +2 -1
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +57 -18
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +1 -3
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +1 -3
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Value.d.ts +2 -0
- package/dist/internal/Value.d.ts.map +1 -1
- package/dist/internal/Value.js +25 -0
- package/dist/internal/Value.js.map +1 -1
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +2 -1
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookDestination.d.ts +2 -0
- package/dist/internal/WebhookDestination.d.ts.map +1 -1
- package/dist/internal/WebhookDestination.js +11 -0
- package/dist/internal/WebhookDestination.js.map +1 -1
- package/dist/internal/WebhookTransfer.d.ts +75 -0
- package/dist/internal/WebhookTransfer.d.ts.map +1 -0
- package/dist/internal/WebhookTransfer.js +299 -0
- package/dist/internal/WebhookTransfer.js.map +1 -0
- package/dist/internal/Webhooks.d.ts +176 -0
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +216 -20
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/funding/Provider.d.ts +4 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -1
- package/dist/internal/funding/Provider.js +11 -7
- package/dist/internal/funding/Provider.js.map +1 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +128 -0
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/providers/relay.d.ts +6 -4
- package/dist/internal/funding/providers/relay.d.ts.map +1 -1
- package/dist/internal/funding/providers/relay.js +71 -9
- package/dist/internal/funding/providers/relay.js.map +1 -1
- package/package.json +4 -4
- package/src/ApiKeys.test.ts +20 -0
- package/src/ApiKeys.ts +28 -1
- package/src/App.test.ts +10 -8
- package/src/App.ts +1 -0
- package/src/Client.test-d.ts +61 -5
- package/src/Webhooks.bench.ts +714 -0
- package/src/Webhooks.memory.bench.ts +250 -0
- package/src/Webhooks.test.ts +77 -6
- package/src/Webhooks.ts +85 -29
- package/src/admin/apps/api-keys.test.ts +9 -0
- package/src/admin/apps/api-keys.ts +15 -0
- package/src/admin/ui/src/lib/query-client.ts +3 -2
- package/src/admin/ui/src/routes/api-keys.tsx +31 -9
- package/src/admin/ui.generated.ts +69 -69
- package/src/analytics/Analytics.test.ts +8 -0
- package/src/analytics/Analytics.ts +26 -0
- package/src/apps/Zones.test.ts +23 -5
- package/src/apps/Zones.ts +31 -10
- package/src/apps/composition.test.ts +1 -0
- package/src/apps/data/App.test.ts +2 -2
- package/src/apps/data/FxOracle.test.ts +18 -0
- package/src/apps/data/FxOracle.ts +28 -5
- package/src/apps/data/routes/activities.bench.ts +41 -0
- package/src/apps/data/routes/activities.test.ts +122 -2
- package/src/apps/data/routes/activities.ts +435 -32
- package/src/apps/data/routes/balances.bench.ts +21 -0
- package/src/apps/data/routes/balances.test.ts +119 -10
- package/src/apps/data/routes/balances.ts +164 -97
- package/src/apps/data/routes/blocks.bench.ts +34 -0
- package/src/apps/data/routes/blocks.test.ts +12 -6
- package/src/apps/data/routes/coingecko.bench.ts +53 -0
- package/src/apps/data/routes/earn.bench.ts +71 -0
- package/src/apps/data/routes/earn.test.ts +197 -0
- package/src/apps/data/routes/earn.ts +487 -45
- package/src/apps/data/routes/exchanges.bench.ts +85 -0
- package/src/apps/data/routes/exchanges.test.ts +7 -6
- package/src/apps/data/routes/exchanges.ts +124 -117
- package/src/apps/data/routes/fee-amm.bench.ts +13 -0
- package/src/apps/data/routes/indexer.bench.ts +8 -0
- package/src/apps/data/routes/indexer.test.ts +2 -1
- package/src/apps/data/routes/indexer.ts +3 -2
- package/src/apps/data/routes/receipts.bench.ts +39 -0
- package/src/apps/data/routes/receipts.test.ts +24 -7
- package/src/apps/data/routes/receipts.ts +67 -50
- package/src/apps/data/routes/rpc.bench.ts +14 -0
- package/src/apps/data/routes/rpc.test.ts +27 -0
- package/src/apps/data/routes/rpc.ts +5 -1
- package/src/apps/data/routes/tokenlist.bench.ts +3 -0
- package/src/apps/data/routes/tokens.bench.ts +76 -0
- package/src/apps/data/routes/tokens.test.ts +51 -0
- package/src/apps/data/routes/transactions.bench.ts +40 -0
- package/src/apps/data/routes/transactions.test.ts +42 -0
- package/src/apps/data/routes/transactions.ts +44 -39
- package/src/apps/data/routes/transfers.bench.ts +28 -0
- package/src/apps/data/routes/transfers.test.ts +402 -24
- package/src/apps/data/routes/transfers.ts +708 -101
- package/src/apps/data/routes/valuation.bench.ts +14 -0
- package/src/apps/data/routes/valuation.test.ts +26 -0
- package/src/apps/data/routes/valuation.ts +6 -2
- package/src/apps/data/routes/verified-tokens.bench.ts +8 -0
- package/src/apps/data/routes/webhooks.bench.ts +26 -0
- package/src/apps/data/routes/webhooks.scan.test.ts +326 -0
- package/src/apps/data/routes/webhooks.test.ts +466 -135
- package/src/apps/data/routes/webhooks.ts +820 -429
- package/src/apps/data/routes/zones.bench.ts +32 -0
- package/src/apps/data/routes/zones.test.ts +1 -1
- package/src/apps/data/routes/zones.ts +7 -2
- package/src/apps/funding/routes/chains.test.ts +1 -1
- package/src/apps/funding/routes/deposit-addresses.test.ts +1 -1
- package/src/apps/funding/routes/deposit-addresses.ts +1 -1
- package/src/apps/funding/routes/providers.test.ts +1 -1
- package/src/apps/funding/routes/quotes.test.ts +2 -2
- package/src/apps/funding/routes/transfers.test.ts +3 -6
- package/src/apps/funding/routes/transfers.ts +1 -1
- package/src/apps/management/routes/billing.ts +1 -1
- package/src/apps/management/routes/faucet.ts +2 -2
- package/src/apps/management/routes/me.test.ts +31 -0
- package/src/apps/mcp.ts +4 -1
- package/src/apps/mpp/Mpp.test.ts +13 -1
- package/src/apps/mpp/Mpp.ts +8 -0
- package/src/apps/mpp/internal/Adapter.ts +10 -2
- package/src/db/Db.test.ts +40 -6
- package/src/db/Db.ts +114 -19
- package/src/db/Schema.ts +32 -0
- package/src/db/tables/sponsoredTransactions.ts +9 -2
- package/src/db/tables/webhookQueueEvents.ts +285 -0
- package/src/db/tables/webhookSubscriptions.ts +131 -4
- package/src/internal/Auth.test.ts +61 -50
- package/src/internal/Auth.ts +9 -4
- package/src/internal/EarnVaults.test.ts +2 -2
- package/src/internal/MetricSink.test.ts +575 -0
- package/src/internal/MetricSink.ts +325 -10
- package/src/internal/RateLimit.test.ts +23 -18
- package/src/internal/RateLimit.ts +23 -15
- package/src/internal/Schema.ts +1 -1
- package/src/internal/Store.test.ts +99 -13
- package/src/internal/Store.ts +52 -17
- package/src/internal/Tidx.test.ts +4 -4
- package/src/internal/Tidx.ts +1 -3
- package/src/internal/Value.test.ts +25 -0
- package/src/internal/Value.ts +29 -0
- package/src/internal/Viem.test.ts +8 -0
- package/src/internal/Viem.ts +2 -1
- package/src/internal/WebhookDestination.test.ts +20 -0
- package/src/internal/WebhookDestination.ts +10 -0
- package/src/internal/WebhookTransfer.test.ts +89 -0
- package/src/internal/WebhookTransfer.ts +430 -0
- package/src/internal/Webhooks.test.ts +616 -0
- package/src/internal/Webhooks.ts +412 -24
- package/src/internal/funding/Provider.test.ts +48 -8
- package/src/internal/funding/Provider.ts +12 -7
- package/src/internal/funding/Reconciliation.local.test.ts +3 -1
- package/src/internal/funding/Reconciliation.test.ts +1240 -0
- package/src/internal/funding/Reconciliation.ts +136 -0
- package/src/internal/funding/SourceObservation.test.ts +1 -0
- package/src/internal/funding/providers/index.test.ts +73 -3
- package/src/internal/funding/providers/relay.test.ts +2 -9
- package/src/internal/funding/providers/relay.ts +72 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sponsoredTransactions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/sponsoredTransactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,
|
|
1
|
+
{"version":3,"file":"sponsoredTransactions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/sponsoredTransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -145,7 +145,10 @@ export async function assignTransactionHash(db, id, transactionHash, limit) {
|
|
|
145
145
|
.where('status', '=', record.status)
|
|
146
146
|
.where('transactionHash', 'is', null);
|
|
147
147
|
if (record.status === 'failed')
|
|
148
|
-
query = query.where(
|
|
148
|
+
query = query.where((eb) => eb.exists(eb
|
|
149
|
+
.selectFrom('organizations')
|
|
150
|
+
.select('organizations.id')
|
|
151
|
+
.whereRef('organizations.id', '=', 'sponsored_transactions.orgId')));
|
|
149
152
|
const updated = await query.executeTakeFirst();
|
|
150
153
|
if (updated.numUpdatedRows === 0n)
|
|
151
154
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sponsoredTransactions.js","sourceRoot":"","sources":["../../../src/db/tables/sponsoredTransactions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sponsoredTransactions.js","sourceRoot":"","sources":["../../../src/db/tables/sponsoredTransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type Generated, type Insertable, type Selectable } from 'kysely';
|
|
2
|
+
import type * as Webhooks from '../../internal/Webhooks.js';
|
|
3
|
+
import type * as Db from '../Db.js';
|
|
4
|
+
import type * as db_Schema from '../Schema.js';
|
|
5
|
+
/** Columns of the `webhook_queue_events` table, derived from `Schema.WebhookQueueEvent`. */
|
|
6
|
+
export type Table = Omit<db_Schema.WebhookQueueEvent, 'attemptCount' | 'attemptingAt' | 'nextAttemptAt' | 'status'> & {
|
|
7
|
+
/** Delivery attempts claimed so far; database default 0. */
|
|
8
|
+
attemptCount: Generated<number>;
|
|
9
|
+
/** ISO timestamp of the current claim; database default null. */
|
|
10
|
+
attemptingAt: Generated<string | null>;
|
|
11
|
+
/** ISO retry due time; database default null (due immediately). */
|
|
12
|
+
nextAttemptAt: Generated<string | null>;
|
|
13
|
+
/** Delivery-obligation lifecycle status; database default `pending`. */
|
|
14
|
+
status: Generated<db_Schema.WebhookQueueEvent['status']>;
|
|
15
|
+
};
|
|
16
|
+
/** A stored webhook Queue event. */
|
|
17
|
+
export type Record = Selectable<Table>;
|
|
18
|
+
/** A terminal delivery-obligation outcome. */
|
|
19
|
+
export type TerminalStatus = Exclude<db_Schema.WebhookQueueEvent['status'], 'pending'>;
|
|
20
|
+
/**
|
|
21
|
+
* Reads one pending envelope. Terminal rows read as absent so no consumer
|
|
22
|
+
* can redeliver a completed obligation or disturb its dedupe row.
|
|
23
|
+
*/
|
|
24
|
+
export declare function get(db: Db.Db, reference: Webhooks.QueueReference): Promise<Webhooks.QueueEvent | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Stages envelopes as fresh obligations. Pending conflicts keep their first
|
|
27
|
+
* envelope and backoff position; terminal conflicts inside the dedupe window
|
|
28
|
+
* suppress the replay; terminal conflicts past it are replaced, so an expired
|
|
29
|
+
* dedupe row pruning has not yet reclaimed never blocks a replay.
|
|
30
|
+
*/
|
|
31
|
+
export declare function ensure(db: Db.Db, rows: readonly Insertable<Table>[]): Promise<number>;
|
|
32
|
+
/** Claims one due pending obligation with a single atomic update. */
|
|
33
|
+
export declare function claim(db: Db.Db, reference: Webhooks.QueueReference, options: claim.Options): Promise<claim.Result>;
|
|
34
|
+
export declare namespace claim {
|
|
35
|
+
/** Claim clock bounds. */
|
|
36
|
+
type Options = {
|
|
37
|
+
/** Current ISO timestamp; becomes the claim marker. */
|
|
38
|
+
now: string;
|
|
39
|
+
/** ISO cutoff below which an existing claim counts as stale. */
|
|
40
|
+
staleBefore: string;
|
|
41
|
+
};
|
|
42
|
+
/** Atomic claim outcome. */
|
|
43
|
+
type Result = {
|
|
44
|
+
type: 'attempting';
|
|
45
|
+
} | {
|
|
46
|
+
record: Record;
|
|
47
|
+
type: 'claimed';
|
|
48
|
+
} | {
|
|
49
|
+
type: 'missing';
|
|
50
|
+
} | {
|
|
51
|
+
nextAttemptAt: string | null;
|
|
52
|
+
type: 'scheduled';
|
|
53
|
+
} | {
|
|
54
|
+
status: TerminalStatus;
|
|
55
|
+
type: 'terminal';
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Marks a claimed obligation terminal, starting its dedupe retention window;
|
|
60
|
+
* pending rows never expire, so this stamp is the only expiry that matters.
|
|
61
|
+
* The `attemptingAt` predicate fences stale claimants.
|
|
62
|
+
*/
|
|
63
|
+
export declare function complete(db: Db.Db, reference: Webhooks.QueueReference, options: complete.Options): Promise<boolean>;
|
|
64
|
+
export declare namespace complete {
|
|
65
|
+
/** Fenced terminal transition. */
|
|
66
|
+
type Options = {
|
|
67
|
+
/** Claim marker returned by {@link claim}; fences stale claimants. */
|
|
68
|
+
claimedAt: string;
|
|
69
|
+
/** Replacement ISO retention deadline for the terminal dedupe row. */
|
|
70
|
+
expiresAt: string;
|
|
71
|
+
/** Terminal outcome. */
|
|
72
|
+
status: TerminalStatus;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/** Releases a claim and schedules the next attempt; fenced like {@link complete}. */
|
|
76
|
+
export declare function schedule(db: Db.Db, reference: Webhooks.QueueReference, options: schedule.Options): Promise<boolean>;
|
|
77
|
+
export declare namespace schedule {
|
|
78
|
+
/** Fenced retry scheduling. */
|
|
79
|
+
type Options = {
|
|
80
|
+
/** Claim marker returned by {@link claim}; fences stale claimants. */
|
|
81
|
+
claimedAt: string;
|
|
82
|
+
/** ISO due time of the next attempt. */
|
|
83
|
+
nextAttemptAt: string;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Lists due pending references for the sweeper, most overdue first. */
|
|
87
|
+
export declare function due(db: Db.Db, options: due.Options): Promise<Webhooks.QueueReference[]>;
|
|
88
|
+
export declare namespace due {
|
|
89
|
+
/** Sweep bounds. */
|
|
90
|
+
type Options = {
|
|
91
|
+
/** Maximum references to return. */
|
|
92
|
+
limit: number;
|
|
93
|
+
/** Current ISO timestamp. */
|
|
94
|
+
now: string;
|
|
95
|
+
/** ISO cutoff below which an existing claim counts as stale. */
|
|
96
|
+
staleBefore: string;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/** Returns the pending-obligation snapshot, split by due-and-unclaimed work. */
|
|
100
|
+
export declare function pending(db: Db.Db, options: pending.Options): Promise<pending.Result>;
|
|
101
|
+
export declare namespace pending {
|
|
102
|
+
/** Snapshot clock bounds; the read-only subset of {@link claim.Options}. */
|
|
103
|
+
type Options = Pick<claim.Options, 'now' | 'staleBefore'>;
|
|
104
|
+
/** Pending-work snapshot. */
|
|
105
|
+
type Result = {
|
|
106
|
+
/** Pending obligations, including in-flight claims and scheduled retries. */
|
|
107
|
+
count: number;
|
|
108
|
+
/** Obligations due now with no live claim; the sweeper's backlog. */
|
|
109
|
+
dueCount: number;
|
|
110
|
+
/** Oldest pending staging timestamp, or null when none. */
|
|
111
|
+
oldestAt: string | null;
|
|
112
|
+
/** Oldest due-and-unclaimed retry time, or null when none; drives the stall alert. */
|
|
113
|
+
oldestDueAt: string | null;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Deletes terminal dedupe rows past their retention deadline. Pending rows
|
|
118
|
+
* never expire: owed work drains only through terminal transitions
|
|
119
|
+
* (delivery, permanent failure, or the skip after auto-disable).
|
|
120
|
+
*/
|
|
121
|
+
export declare function pruneExpired(db: Db.Db, now: string): Promise<number>;
|
|
122
|
+
//# sourceMappingURL=webhookQueueEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhookQueueEvents.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookQueueEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { sql } from 'kysely'; // prettier-ignore
|
|
2
|
+
/**
|
|
3
|
+
* Reads one pending envelope. Terminal rows read as absent so no consumer
|
|
4
|
+
* can redeliver a completed obligation or disturb its dedupe row.
|
|
5
|
+
*/
|
|
6
|
+
export async function get(db, reference) {
|
|
7
|
+
return ((await db.kysely
|
|
8
|
+
.selectFrom('webhook_queue_events')
|
|
9
|
+
.selectAll()
|
|
10
|
+
.where('eventId', '=', reference.eventId)
|
|
11
|
+
.where('status', '=', 'pending')
|
|
12
|
+
.where('subscriptionId', '=', reference.subscriptionId)
|
|
13
|
+
.executeTakeFirst()) ?? null);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Stages envelopes as fresh obligations. Pending conflicts keep their first
|
|
17
|
+
* envelope and backoff position; terminal conflicts inside the dedupe window
|
|
18
|
+
* suppress the replay; terminal conflicts past it are replaced, so an expired
|
|
19
|
+
* dedupe row pruning has not yet reclaimed never blocks a replay.
|
|
20
|
+
*/
|
|
21
|
+
export async function ensure(db, rows) {
|
|
22
|
+
if (rows.length === 0)
|
|
23
|
+
return 0;
|
|
24
|
+
const result = await db.kysely
|
|
25
|
+
.insertInto('webhook_queue_events')
|
|
26
|
+
.values([...rows])
|
|
27
|
+
.onConflict((oc) => oc
|
|
28
|
+
.columns(['subscriptionId', 'eventId'])
|
|
29
|
+
.doUpdateSet((eb) => ({
|
|
30
|
+
attemptCount: 0,
|
|
31
|
+
attemptingAt: null,
|
|
32
|
+
createdAt: eb.ref('excluded.createdAt'),
|
|
33
|
+
envelope: eb.ref('excluded.envelope'),
|
|
34
|
+
expiresAt: eb.ref('excluded.expiresAt'),
|
|
35
|
+
nextAttemptAt: eb.ref('excluded.nextAttemptAt'),
|
|
36
|
+
status: 'pending',
|
|
37
|
+
}))
|
|
38
|
+
.where((eb) => eb.and([
|
|
39
|
+
eb('webhook_queue_events.status', '!=', 'pending'),
|
|
40
|
+
eb('webhook_queue_events.expiresAt', '<=', eb.ref('excluded.createdAt')),
|
|
41
|
+
])))
|
|
42
|
+
.executeTakeFirst();
|
|
43
|
+
// The command tag counts inserted rows plus replaced expired rows; live
|
|
44
|
+
// conflicts fall out of the conditional update and are not counted.
|
|
45
|
+
return Number(result.numInsertedOrUpdatedRows ?? 0n);
|
|
46
|
+
}
|
|
47
|
+
/** Due, unclaimed pending work: shared by {@link claim} and {@link due}. */
|
|
48
|
+
function whereClaimable(eb, options) {
|
|
49
|
+
return eb.and([
|
|
50
|
+
eb('status', '=', 'pending'),
|
|
51
|
+
eb.or([eb('nextAttemptAt', 'is', null), eb('nextAttemptAt', '<=', options.now)]),
|
|
52
|
+
eb.or([eb('attemptingAt', 'is', null), eb('attemptingAt', '<=', options.staleBefore)]),
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
/** Claims one due pending obligation with a single atomic update. */
|
|
56
|
+
export async function claim(db, reference, options) {
|
|
57
|
+
const claimed = await db.kysely
|
|
58
|
+
.updateTable('webhook_queue_events')
|
|
59
|
+
.set((eb) => ({ attemptCount: eb('attemptCount', '+', 1), attemptingAt: options.now }))
|
|
60
|
+
.where('subscriptionId', '=', reference.subscriptionId)
|
|
61
|
+
.where('eventId', '=', reference.eventId)
|
|
62
|
+
.where((eb) => whereClaimable(eb, options))
|
|
63
|
+
.returningAll()
|
|
64
|
+
.executeTakeFirst();
|
|
65
|
+
if (claimed)
|
|
66
|
+
return { record: claimed, type: 'claimed' };
|
|
67
|
+
const existing = await db.kysely
|
|
68
|
+
.selectFrom('webhook_queue_events')
|
|
69
|
+
.select(['attemptingAt', 'nextAttemptAt', 'status'])
|
|
70
|
+
.where('subscriptionId', '=', reference.subscriptionId)
|
|
71
|
+
.where('eventId', '=', reference.eventId)
|
|
72
|
+
.executeTakeFirst();
|
|
73
|
+
if (!existing)
|
|
74
|
+
return { type: 'missing' };
|
|
75
|
+
if (existing.status !== 'pending')
|
|
76
|
+
return { status: existing.status, type: 'terminal' };
|
|
77
|
+
if (existing.attemptingAt !== null && existing.attemptingAt > options.staleBefore)
|
|
78
|
+
return { type: 'attempting' };
|
|
79
|
+
return { nextAttemptAt: existing.nextAttemptAt, type: 'scheduled' };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Marks a claimed obligation terminal, starting its dedupe retention window;
|
|
83
|
+
* pending rows never expire, so this stamp is the only expiry that matters.
|
|
84
|
+
* The `attemptingAt` predicate fences stale claimants.
|
|
85
|
+
*/
|
|
86
|
+
export async function complete(db, reference, options) {
|
|
87
|
+
const result = await db.kysely
|
|
88
|
+
.updateTable('webhook_queue_events')
|
|
89
|
+
.set({ attemptingAt: null, expiresAt: options.expiresAt, status: options.status })
|
|
90
|
+
.where('subscriptionId', '=', reference.subscriptionId)
|
|
91
|
+
.where('eventId', '=', reference.eventId)
|
|
92
|
+
.where('status', '=', 'pending')
|
|
93
|
+
.where('attemptingAt', '=', options.claimedAt)
|
|
94
|
+
.executeTakeFirst();
|
|
95
|
+
return result.numUpdatedRows === 1n;
|
|
96
|
+
}
|
|
97
|
+
/** Releases a claim and schedules the next attempt; fenced like {@link complete}. */
|
|
98
|
+
export async function schedule(db, reference, options) {
|
|
99
|
+
const result = await db.kysely
|
|
100
|
+
.updateTable('webhook_queue_events')
|
|
101
|
+
.set({ attemptingAt: null, nextAttemptAt: options.nextAttemptAt })
|
|
102
|
+
.where('subscriptionId', '=', reference.subscriptionId)
|
|
103
|
+
.where('eventId', '=', reference.eventId)
|
|
104
|
+
.where('status', '=', 'pending')
|
|
105
|
+
.where('attemptingAt', '=', options.claimedAt)
|
|
106
|
+
.executeTakeFirst();
|
|
107
|
+
return result.numUpdatedRows === 1n;
|
|
108
|
+
}
|
|
109
|
+
/** Lists due pending references for the sweeper, most overdue first. */
|
|
110
|
+
export async function due(db, options) {
|
|
111
|
+
return (db.kysely
|
|
112
|
+
.selectFrom('webhook_queue_events')
|
|
113
|
+
.select(['eventId', 'subscriptionId'])
|
|
114
|
+
.where((eb) => whereClaimable(eb, options))
|
|
115
|
+
// Matches the pending partial index order so the scan needs no sort.
|
|
116
|
+
.orderBy(sql `next_attempt_at nulls first`)
|
|
117
|
+
.limit(options.limit)
|
|
118
|
+
.execute());
|
|
119
|
+
}
|
|
120
|
+
/** Returns the pending-obligation snapshot, split by due-and-unclaimed work. */
|
|
121
|
+
export async function pending(db, options) {
|
|
122
|
+
const row = await db.kysely
|
|
123
|
+
.selectFrom('webhook_queue_events')
|
|
124
|
+
.select((eb) => [
|
|
125
|
+
eb.fn.countAll().as('count'),
|
|
126
|
+
eb.fn.min('createdAt').as('oldestAt'),
|
|
127
|
+
eb.fn
|
|
128
|
+
.countAll()
|
|
129
|
+
.filterWhere((fb) => whereClaimable(fb, options))
|
|
130
|
+
.as('dueCount'),
|
|
131
|
+
eb.fn
|
|
132
|
+
// Null next attempts (migration-backfilled rows) are due immediately;
|
|
133
|
+
// coalesce to staging time so they age instead of vanishing from MIN.
|
|
134
|
+
.min(eb.fn.coalesce('nextAttemptAt', 'createdAt'))
|
|
135
|
+
.filterWhere((fb) => whereClaimable(fb, options))
|
|
136
|
+
.as('oldestDueAt'),
|
|
137
|
+
])
|
|
138
|
+
.where('status', '=', 'pending')
|
|
139
|
+
.executeTakeFirstOrThrow();
|
|
140
|
+
return {
|
|
141
|
+
count: Number(row.count),
|
|
142
|
+
dueCount: Number(row.dueCount),
|
|
143
|
+
oldestAt: row.oldestAt,
|
|
144
|
+
oldestDueAt: row.oldestDueAt,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Deletes terminal dedupe rows past their retention deadline. Pending rows
|
|
149
|
+
* never expire: owed work drains only through terminal transitions
|
|
150
|
+
* (delivery, permanent failure, or the skip after auto-disable).
|
|
151
|
+
*/
|
|
152
|
+
export async function pruneExpired(db, now) {
|
|
153
|
+
const result = await db.kysely
|
|
154
|
+
.deleteFrom('webhook_queue_events')
|
|
155
|
+
.where('expiresAt', '<=', now)
|
|
156
|
+
.where('status', '!=', 'pending')
|
|
157
|
+
.executeTakeFirst();
|
|
158
|
+
return Number(result.numDeletedRows);
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=webhookQueueEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhookQueueEvents.js","sourceRoot":"","sources":["../../../src/db/tables/webhookQueueEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import type * as db_Schema from '../Schema.js';
|
|
|
6
6
|
export type Table = db_Schema.WebhookSubscription;
|
|
7
7
|
/** A stored webhook-subscription row. */
|
|
8
8
|
export type Record = Selectable<Table>;
|
|
9
|
+
/** Reads one live subscription by id for an internal Queue delivery. */
|
|
10
|
+
export declare function getById(db: Db.Db, id: string, now: string): Promise<Webhooks.Subscription | null>;
|
|
9
11
|
/** Maps an owner union to its stored `ownerId` column value. */
|
|
10
12
|
export declare function ownerId(owner: Webhooks.Owner): string;
|
|
11
13
|
/** Maps a stored row to the domain subscription (null columns → absent fields). */
|
|
@@ -122,15 +124,52 @@ export declare namespace update {
|
|
|
122
124
|
export declare function remove(db: Db.Db, owner: Webhooks.Owner, id: string, now: string): Promise<boolean>;
|
|
123
125
|
/**
|
|
124
126
|
* Lists live `active` subscriptions for a `(chainId, eventType)` stream — the
|
|
125
|
-
* poller's per-stream lookup, served by the partial status index.
|
|
127
|
+
* poller's per-stream lookup, served by the partial status index. Each row
|
|
128
|
+
* carries its poller cursor so the poller avoids a per-subscription read.
|
|
126
129
|
*
|
|
127
130
|
* @param db - The database.
|
|
128
131
|
* @param chainId - Chain the stream belongs to.
|
|
129
132
|
* @param eventType - Event type of the stream.
|
|
130
133
|
* @param now - ISO timestamp expiry is evaluated against.
|
|
131
|
-
* @returns
|
|
134
|
+
* @returns Cursor-and-subscription pairs, in id (chronological) order.
|
|
132
135
|
*/
|
|
133
|
-
export declare function listActive(db: Db.Db, chainId: number, eventType: Webhooks.EventType, now: string): Promise<
|
|
136
|
+
export declare function listActive(db: Db.Db, chainId: number, eventType: Webhooks.EventType, now: string): Promise<{
|
|
137
|
+
cursor: string | null;
|
|
138
|
+
subscription: Webhooks.Subscription;
|
|
139
|
+
}[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Lists every live `active` subscription on a chain in one read. The poller
|
|
142
|
+
* groups the rows by event type so empty streams cost no extra database reads.
|
|
143
|
+
*
|
|
144
|
+
* @param db - The database.
|
|
145
|
+
* @param options - Chain, configured event types, and expiry time.
|
|
146
|
+
* @returns Cursor-and-subscription pairs ordered by event type, then id.
|
|
147
|
+
*/
|
|
148
|
+
export declare function listActiveForChain(db: Db.Db, options: listActiveForChain.Options): Promise<{
|
|
149
|
+
cursor: string | null;
|
|
150
|
+
subscription: Webhooks.Subscription;
|
|
151
|
+
}[]>;
|
|
152
|
+
export declare namespace listActiveForChain {
|
|
153
|
+
/** Filters for the poller's chain-level subscription read. */
|
|
154
|
+
type Options = {
|
|
155
|
+
/** Chain whose subscriptions to read. */
|
|
156
|
+
chainId: number;
|
|
157
|
+
/** Event types configured for this poller tick. */
|
|
158
|
+
eventTypes: readonly Webhooks.EventType[];
|
|
159
|
+
/** ISO timestamp expiry is evaluated against. */
|
|
160
|
+
now: string;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Reads the poller cursors of every live `active` subscription on a chain,
|
|
165
|
+
* across event types. Feeds the cron's cursor-freshness fallback gate.
|
|
166
|
+
*
|
|
167
|
+
* @param db - The database.
|
|
168
|
+
* @param chainId - Chain whose cursors to read.
|
|
169
|
+
* @param now - ISO timestamp expiry is evaluated against.
|
|
170
|
+
* @returns The non-null cursors, unordered.
|
|
171
|
+
*/
|
|
172
|
+
export declare function listActiveCursors(db: Db.Db, chainId: number, now: string): Promise<string[]>;
|
|
134
173
|
/**
|
|
135
174
|
* Reads a subscription's poller cursor.
|
|
136
175
|
*
|
|
@@ -168,6 +207,22 @@ export declare namespace compareAndSetCursor {
|
|
|
168
207
|
subscriptionId: string;
|
|
169
208
|
};
|
|
170
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Writes multiple poller cursors when each stored value still matches the
|
|
212
|
+
* caller's observed value.
|
|
213
|
+
*
|
|
214
|
+
* @param db - The database.
|
|
215
|
+
* @param options - Candidate cursor writes.
|
|
216
|
+
* @returns Subscription ids whose cursors were updated.
|
|
217
|
+
*/
|
|
218
|
+
export declare function compareAndSetCursors(db: Db.Db, options: compareAndSetCursors.Options): Promise<Set<string>>;
|
|
219
|
+
export declare namespace compareAndSetCursors {
|
|
220
|
+
/** Options for {@link compareAndSetCursors}. */
|
|
221
|
+
type Options = {
|
|
222
|
+
/** Candidate cursor writes. */
|
|
223
|
+
cursors: readonly compareAndSetCursor.Options[];
|
|
224
|
+
};
|
|
225
|
+
}
|
|
171
226
|
/**
|
|
172
227
|
* Records a successful delivery: resets the consecutive-failure counter and
|
|
173
228
|
* stamps `lastDeliveryAt`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhookSubscriptions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webhookSubscriptions.d.ts","sourceRoot":"","sources":["../../../src/db/tables/webhookSubscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { sql } from 'kysely';
|
|
2
2
|
const subscriptionLimitLockClass = 1464353612;
|
|
3
|
+
/** Reads one live subscription by id for an internal Queue delivery. */
|
|
4
|
+
export async function getById(db, id, now) {
|
|
5
|
+
const row = await db.kysely
|
|
6
|
+
.selectFrom('webhook_subscriptions')
|
|
7
|
+
.selectAll()
|
|
8
|
+
.where('id', '=', id)
|
|
9
|
+
.where(live(now))
|
|
10
|
+
.executeTakeFirst();
|
|
11
|
+
return row ? toSubscription(row) : null;
|
|
12
|
+
}
|
|
3
13
|
/** Maps an owner union to its stored `ownerId` column value. */
|
|
4
14
|
export function ownerId(owner) {
|
|
5
15
|
return owner.type === 'api_key' ? owner.orgId : owner.payer;
|
|
@@ -174,13 +184,14 @@ export async function remove(db, owner, id, now) {
|
|
|
174
184
|
}
|
|
175
185
|
/**
|
|
176
186
|
* Lists live `active` subscriptions for a `(chainId, eventType)` stream — the
|
|
177
|
-
* poller's per-stream lookup, served by the partial status index.
|
|
187
|
+
* poller's per-stream lookup, served by the partial status index. Each row
|
|
188
|
+
* carries its poller cursor so the poller avoids a per-subscription read.
|
|
178
189
|
*
|
|
179
190
|
* @param db - The database.
|
|
180
191
|
* @param chainId - Chain the stream belongs to.
|
|
181
192
|
* @param eventType - Event type of the stream.
|
|
182
193
|
* @param now - ISO timestamp expiry is evaluated against.
|
|
183
|
-
* @returns
|
|
194
|
+
* @returns Cursor-and-subscription pairs, in id (chronological) order.
|
|
184
195
|
*/
|
|
185
196
|
export async function listActive(db, chainId, eventType, now) {
|
|
186
197
|
const rows = await db.kysely
|
|
@@ -192,7 +203,49 @@ export async function listActive(db, chainId, eventType, now) {
|
|
|
192
203
|
.where(live(now))
|
|
193
204
|
.orderBy('id')
|
|
194
205
|
.execute();
|
|
195
|
-
return rows.map(toSubscription);
|
|
206
|
+
return rows.map((row) => ({ cursor: row.pollerCursor, subscription: toSubscription(row) }));
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Lists every live `active` subscription on a chain in one read. The poller
|
|
210
|
+
* groups the rows by event type so empty streams cost no extra database reads.
|
|
211
|
+
*
|
|
212
|
+
* @param db - The database.
|
|
213
|
+
* @param options - Chain, configured event types, and expiry time.
|
|
214
|
+
* @returns Cursor-and-subscription pairs ordered by event type, then id.
|
|
215
|
+
*/
|
|
216
|
+
export async function listActiveForChain(db, options) {
|
|
217
|
+
if (options.eventTypes.length === 0)
|
|
218
|
+
return [];
|
|
219
|
+
const rows = await db.kysely
|
|
220
|
+
.selectFrom('webhook_subscriptions')
|
|
221
|
+
.selectAll()
|
|
222
|
+
.where('chainId', '=', options.chainId)
|
|
223
|
+
.where('eventType', 'in', options.eventTypes)
|
|
224
|
+
.where('status', '=', 'active')
|
|
225
|
+
.where(live(options.now))
|
|
226
|
+
.orderBy('eventType')
|
|
227
|
+
.orderBy('id')
|
|
228
|
+
.execute();
|
|
229
|
+
return rows.map((row) => ({ cursor: row.pollerCursor, subscription: toSubscription(row) }));
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Reads the poller cursors of every live `active` subscription on a chain,
|
|
233
|
+
* across event types. Feeds the cron's cursor-freshness fallback gate.
|
|
234
|
+
*
|
|
235
|
+
* @param db - The database.
|
|
236
|
+
* @param chainId - Chain whose cursors to read.
|
|
237
|
+
* @param now - ISO timestamp expiry is evaluated against.
|
|
238
|
+
* @returns The non-null cursors, unordered.
|
|
239
|
+
*/
|
|
240
|
+
export async function listActiveCursors(db, chainId, now) {
|
|
241
|
+
const rows = await db.kysely
|
|
242
|
+
.selectFrom('webhook_subscriptions')
|
|
243
|
+
.select('pollerCursor')
|
|
244
|
+
.where('chainId', '=', chainId)
|
|
245
|
+
.where('status', '=', 'active')
|
|
246
|
+
.where(live(now))
|
|
247
|
+
.execute();
|
|
248
|
+
return rows.flatMap((row) => (row.pollerCursor === null ? [] : [row.pollerCursor]));
|
|
196
249
|
}
|
|
197
250
|
/**
|
|
198
251
|
* Reads a subscription's poller cursor.
|
|
@@ -244,6 +297,36 @@ export async function compareAndSetCursor(db, options) {
|
|
|
244
297
|
const result = await query.executeTakeFirst();
|
|
245
298
|
return result.numUpdatedRows > 0n;
|
|
246
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Writes multiple poller cursors when each stored value still matches the
|
|
302
|
+
* caller's observed value.
|
|
303
|
+
*
|
|
304
|
+
* @param db - The database.
|
|
305
|
+
* @param options - Candidate cursor writes.
|
|
306
|
+
* @returns Subscription ids whose cursors were updated.
|
|
307
|
+
*/
|
|
308
|
+
export async function compareAndSetCursors(db, options) {
|
|
309
|
+
if (options.cursors.length === 0)
|
|
310
|
+
return new Set();
|
|
311
|
+
const values = JSON.stringify(options.cursors);
|
|
312
|
+
const result = await db.kysely
|
|
313
|
+
.with('candidates', () => sql `(
|
|
314
|
+
SELECT
|
|
315
|
+
candidate."subscriptionId" AS subscription_id,
|
|
316
|
+
candidate."expectedCursor" AS expected_cursor,
|
|
317
|
+
candidate.cursor
|
|
318
|
+
FROM jsonb_to_recordset(${values}::jsonb)
|
|
319
|
+
AS candidate("subscriptionId" text, "expectedCursor" text, cursor text)
|
|
320
|
+
)`)
|
|
321
|
+
.updateTable('webhook_subscriptions as subscription')
|
|
322
|
+
.from('candidates as candidate')
|
|
323
|
+
.set((eb) => ({ pollerCursor: eb.ref('candidate.cursor') }))
|
|
324
|
+
.whereRef('subscription.id', '=', 'candidate.subscriptionId')
|
|
325
|
+
.whereRef('subscription.pollerCursor', 'is not distinct from', 'candidate.expectedCursor')
|
|
326
|
+
.returning('subscription.id as subscriptionId')
|
|
327
|
+
.execute();
|
|
328
|
+
return new Set(result.map((row) => row.subscriptionId));
|
|
329
|
+
}
|
|
247
330
|
/**
|
|
248
331
|
* Records a successful delivery: resets the consecutive-failure counter and
|
|
249
332
|
* stamps `lastDeliveryAt`.
|