tapimo 0.10.1 → 0.11.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/dist/App.d.ts +5249 -3572
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js.map +1 -1
- package/dist/Webhooks.d.ts +1 -76
- package/dist/Webhooks.d.ts.map +1 -1
- package/dist/Webhooks.js +2 -144
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +74 -74
- package/dist/admin/apps/earn-vaults.d.ts +1 -1
- package/dist/admin/apps/organizations.d.ts +3 -3
- package/dist/admin/apps/verified-tokens.d.ts +74 -74
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +206 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +4 -0
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +2 -0
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/data/App.d.ts +3618 -2954
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +7 -2
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +1 -1
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +55 -27
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +11 -11
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +2 -6
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +5 -5
- package/dist/apps/data/routes/earn.d.ts +4 -4
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +63 -34
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +8 -4
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +115 -77
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +26 -26
- package/dist/apps/data/routes/receipts.d.ts +240 -239
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +15 -14
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +12 -12
- package/dist/apps/data/routes/tokens.d.ts +4 -4
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +4 -3
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +282 -282
- package/dist/apps/data/routes/transfers.d.ts +13 -13
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +25 -7
- 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/verified-tokens.d.ts +5 -5
- package/dist/apps/data/routes/webhooks.d.ts +1519 -643
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +134 -740
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +3 -3
- package/dist/apps/funding/App.d.ts +233 -0
- package/dist/apps/funding/App.d.ts.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts +331 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.js +207 -11
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
- package/dist/apps/funding/routes/transfers.d.ts +33 -33
- package/dist/apps/management/App.d.ts +793 -16
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +50 -50
- package/dist/apps/management/routes/faucet.d.ts +2 -2
- package/dist/apps/management/routes/invite-links.d.ts +42 -42
- package/dist/apps/management/routes/members.d.ts +2 -2
- package/dist/apps/management/routes/projects.d.ts +40 -40
- package/dist/apps/management/routes/webhooks.d.ts +1031 -59
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +27 -4
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +53 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +7 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +9 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/fundingDepositAddresses.d.ts +20 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -1
- package/dist/db/tables/fundingDepositAddresses.js +17 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -1
- package/dist/db/tables/fundingDeposits.d.ts +41 -0
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -1
- package/dist/db/tables/fundingDeposits.js +69 -0
- package/dist/db/tables/fundingDeposits.js.map +1 -1
- package/dist/db/tables/webhookQueueEvents.d.ts +3 -1
- package/dist/db/tables/webhookQueueEvents.d.ts.map +1 -1
- package/dist/db/tables/webhookQueueEvents.js +4 -0
- package/dist/db/tables/webhookQueueEvents.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +33 -69
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +63 -100
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/internal/Auth.d.ts +0 -26
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +0 -33
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Credential.d.ts +27 -0
- package/dist/internal/Credential.d.ts.map +1 -0
- package/dist/internal/Credential.js +34 -0
- package/dist/internal/Credential.js.map +1 -0
- package/dist/internal/EarnRates.js +11 -7
- package/dist/internal/EarnRates.js.map +1 -1
- package/dist/internal/Log.d.ts +8 -0
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +4 -0
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +50 -116
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +60 -106
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/Schema.d.ts +3 -1
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +4 -2
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Tidx.d.ts +4 -3
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +2 -2
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +4 -3
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +3 -2
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookTransfer.d.ts +1 -55
- package/dist/internal/WebhookTransfer.d.ts.map +1 -1
- package/dist/internal/WebhookTransfer.js +1 -239
- package/dist/internal/WebhookTransfer.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +85 -44
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +94 -73
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/funding/DepositWebhook.d.ts +25 -0
- package/dist/internal/funding/DepositWebhook.d.ts.map +1 -0
- package/dist/internal/funding/DepositWebhook.js +74 -0
- package/dist/internal/funding/DepositWebhook.js.map +1 -0
- package/dist/internal/funding/Reconciliation.d.ts +6 -0
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +42 -10
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/index.d.ts +1 -0
- package/dist/internal/funding/index.d.ts.map +1 -1
- package/dist/internal/funding/index.js +1 -0
- package/dist/internal/funding/index.js.map +1 -1
- package/dist/internal/index.d.ts +1 -0
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +1 -0
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/webhookDestinations/slack.d.ts.map +1 -1
- package/dist/internal/webhookDestinations/slack.js +16 -0
- package/dist/internal/webhookDestinations/slack.js.map +1 -1
- package/package.json +1 -1
- package/src/App.test.ts +30 -0
- package/src/App.ts +3 -0
- package/src/Client.test-d.ts +55 -2
- package/src/Webhooks.ts +2 -221
- package/src/analytics/Analytics.test.ts +34 -0
- package/src/analytics/Analytics.ts +206 -0
- package/src/analytics/tables/requestEvents.ts +6 -0
- package/src/apps/composition.test.ts +1 -0
- package/src/apps/data/App.ts +10 -2
- package/src/apps/data/routes/activities.test.ts +107 -11
- package/src/apps/data/routes/activities.ts +64 -32
- package/src/apps/data/routes/balances.ts +2 -6
- package/src/apps/data/routes/earn.ts +64 -34
- package/src/apps/data/routes/exchanges.test.ts +8 -3
- package/src/apps/data/routes/exchanges.ts +134 -82
- package/src/apps/data/routes/receipts.ts +16 -14
- package/src/apps/data/routes/tokens.ts +3 -2
- package/src/apps/data/routes/transactions.bench.ts +8 -0
- package/src/apps/data/routes/transfers.ts +36 -10
- package/src/apps/data/routes/webhooks.test.ts +179 -1497
- package/src/apps/data/routes/webhooks.ts +172 -975
- package/src/apps/funding/routes/deposit-addresses.test.ts +216 -2
- package/src/apps/funding/routes/deposit-addresses.ts +254 -18
- package/src/apps/funding/routes/transfers.test.ts +17 -2
- package/src/apps/management/routes/webhooks.test.ts +79 -1
- package/src/apps/management/routes/webhooks.ts +40 -4
- package/src/db/Db.test.ts +1 -5
- package/src/db/Db.ts +59 -0
- package/src/db/Schema.ts +13 -0
- package/src/db/tables/fundingDepositAddresses.test.ts +28 -0
- package/src/db/tables/fundingDepositAddresses.ts +39 -0
- package/src/db/tables/fundingDeposits.test.ts +82 -0
- package/src/db/tables/fundingDeposits.ts +130 -0
- package/src/db/tables/organizations.test.ts +5 -2
- package/src/db/tables/webhookQueueEvents.ts +7 -1
- package/src/db/tables/webhookSubscriptions.ts +89 -138
- package/src/internal/Auth.test.ts +0 -48
- package/src/internal/Auth.ts +0 -59
- package/src/internal/Credential.test.ts +51 -0
- package/src/internal/Credential.ts +58 -0
- package/src/internal/EarnRates.ts +13 -7
- package/src/internal/Log.test.ts +3 -1
- package/src/internal/Log.ts +14 -0
- package/src/internal/MetricSink.test.ts +75 -358
- package/src/internal/MetricSink.ts +117 -246
- package/src/internal/Schema.test.ts +18 -0
- package/src/internal/Schema.ts +13 -2
- package/src/internal/Tidx.ts +5 -4
- package/src/internal/Viem.test.ts +4 -0
- package/src/internal/Viem.ts +6 -4
- package/src/internal/WebhookTransfer.ts +1 -351
- package/src/internal/Webhooks.test.ts +111 -139
- package/src/internal/Webhooks.ts +181 -105
- package/src/internal/funding/DepositWebhook.test.ts +131 -0
- package/src/internal/funding/DepositWebhook.ts +101 -0
- package/src/internal/funding/Reconciliation.test.ts +14 -0
- package/src/internal/funding/Reconciliation.ts +161 -86
- package/src/internal/funding/index.test.ts +1 -0
- package/src/internal/funding/index.ts +1 -0
- package/src/internal/index.test.ts +1 -0
- package/src/internal/index.ts +1 -0
- package/src/internal/webhookDestinations/slack.ts +15 -0
- package/src/Webhooks.bench.ts +0 -714
- package/src/Webhooks.memory.bench.ts +0 -250
- package/src/Webhooks.test.ts +0 -146
|
@@ -31,6 +31,15 @@ export type Owner = {
|
|
|
31
31
|
/** Owner kind. */
|
|
32
32
|
type: 'mpp';
|
|
33
33
|
};
|
|
34
|
+
/** API-key scope applied when managing private-resource subscriptions. */
|
|
35
|
+
export type Access = {
|
|
36
|
+
/** API-key environment. */
|
|
37
|
+
environment: 'production' | 'sandbox';
|
|
38
|
+
/** Project attribution, when the key is project-scoped. */
|
|
39
|
+
projectId?: string | undefined;
|
|
40
|
+
/** API-key scopes used to authorize private resource reads. */
|
|
41
|
+
scopes: readonly string[];
|
|
42
|
+
};
|
|
34
43
|
/**
|
|
35
44
|
* Optional human context describing what a subscription is for. Carried onto
|
|
36
45
|
* every delivered {@link Envelope} and surfaced by destinations (Slack header +
|
|
@@ -54,6 +63,8 @@ export type Subscription = {
|
|
|
54
63
|
createdAt: string;
|
|
55
64
|
/** Where matched events are delivered (URL or Slack channel). */
|
|
56
65
|
destination: WebhookDestination.Destination;
|
|
66
|
+
/** API-key environment captured when the subscription was created. */
|
|
67
|
+
environment?: 'production' | 'sandbox' | undefined;
|
|
57
68
|
/** Event type the subscription listens to. */
|
|
58
69
|
eventType: EventType;
|
|
59
70
|
/** ISO expiry timestamp; set for MPP-owned subscriptions (TTL-bounded). */
|
|
@@ -68,6 +79,8 @@ export type Subscription = {
|
|
|
68
79
|
lastDeliveryAt?: string | undefined;
|
|
69
80
|
/** Authenticated owner. */
|
|
70
81
|
owner: Owner;
|
|
82
|
+
/** Project attribution captured from the creating API key. */
|
|
83
|
+
projectId?: string | undefined;
|
|
71
84
|
/** HMAC signing secret. Returned once at creation; never exposed by reads. */
|
|
72
85
|
secret: string;
|
|
73
86
|
/** Lifecycle status. */
|
|
@@ -83,12 +96,16 @@ export type CreateInput = {
|
|
|
83
96
|
context?: Context | undefined;
|
|
84
97
|
/** Where matched events are delivered. `url` destinations are SSRF-validated. */
|
|
85
98
|
destination: WebhookDestination.Destination;
|
|
99
|
+
/** API-key environment used to isolate private resource events. */
|
|
100
|
+
environment?: 'production' | 'sandbox' | undefined;
|
|
86
101
|
/** Event type to listen to. */
|
|
87
102
|
eventType: EventType;
|
|
88
103
|
/** Event-type-specific filter predicates. */
|
|
89
104
|
filters?: Record<string, unknown> | undefined;
|
|
90
105
|
/** Owner derived from the request principal. */
|
|
91
106
|
owner: Owner;
|
|
107
|
+
/** Project attribution used to isolate private resource events. */
|
|
108
|
+
projectId?: string | undefined;
|
|
92
109
|
/** Time-to-live in milliseconds; set the subscription to expire (MPP TTL). */
|
|
93
110
|
ttl?: number | undefined;
|
|
94
111
|
};
|
|
@@ -155,7 +172,13 @@ export declare namespace createSubscription {
|
|
|
155
172
|
};
|
|
156
173
|
}
|
|
157
174
|
/** Reads a single subscription scoped to its owner. Returns null when absent. */
|
|
158
|
-
export declare function getSubscription(db: Db.Db, owner: Owner, id: string): Promise<Subscription | null>;
|
|
175
|
+
export declare function getSubscription(db: Db.Db, owner: Owner, id: string, options?: getSubscription.Options): Promise<Subscription | null>;
|
|
176
|
+
export declare namespace getSubscription {
|
|
177
|
+
/** Private-resource visibility options. */
|
|
178
|
+
type Options = {
|
|
179
|
+
access?: Access | undefined;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
159
182
|
/**
|
|
160
183
|
* Lists an owner's subscriptions, newest first, with optional keyset paging.
|
|
161
184
|
* Subscription ids embed a timestamp, so lexical id order is chronological.
|
|
@@ -164,6 +187,8 @@ export declare function listSubscriptions(db: Db.Db, owner: Owner, options?: lis
|
|
|
164
187
|
export declare namespace listSubscriptions {
|
|
165
188
|
/** Options for {@link listSubscriptions}. */
|
|
166
189
|
type Options = {
|
|
190
|
+
/** Private-resource visibility scope. */
|
|
191
|
+
access?: Access | undefined;
|
|
167
192
|
/** Return subscriptions older than this id (keyset paging, newest first). */
|
|
168
193
|
cursor?: string | undefined;
|
|
169
194
|
/** Maximum subscriptions to return. */
|
|
@@ -177,71 +202,53 @@ export declare namespace listSubscriptions {
|
|
|
177
202
|
* since the per-owner set is bounded by `maxPerOwner`. Feeds the opt-in
|
|
178
203
|
* `meta.totalCount` on `GET /webhooks`.
|
|
179
204
|
*/
|
|
180
|
-
export declare function countSubscriptions(db: Db.Db, owner: Owner): Promise<number>;
|
|
205
|
+
export declare function countSubscriptions(db: Db.Db, owner: Owner, options?: countSubscriptions.Options): Promise<number>;
|
|
206
|
+
export declare namespace countSubscriptions {
|
|
207
|
+
/** Private-resource visibility options. */
|
|
208
|
+
type Options = {
|
|
209
|
+
access?: Access | undefined;
|
|
210
|
+
};
|
|
211
|
+
}
|
|
181
212
|
/**
|
|
182
213
|
* Patches an owner's subscription, re-validating the URL when changed.
|
|
183
|
-
* Returns null when absent. The status column drives the
|
|
214
|
+
* Returns null when absent. The status column drives the partial active
|
|
184
215
|
* index, so no secondary-index maintenance is needed.
|
|
185
216
|
*/
|
|
186
217
|
export declare function updateSubscription(db: Db.Db, owner: Owner, id: string, patch: PatchInput, options?: updateSubscription.Options): Promise<Subscription | null>;
|
|
187
218
|
export declare namespace updateSubscription {
|
|
188
219
|
/** Options for {@link updateSubscription}. */
|
|
189
220
|
type Options = {
|
|
221
|
+
/** Private-resource visibility scope. */
|
|
222
|
+
access?: Access | undefined;
|
|
190
223
|
/** Clock used for timestamps (injectable for tests). */
|
|
191
224
|
now?: (() => Date) | undefined;
|
|
192
225
|
};
|
|
193
226
|
}
|
|
194
227
|
/** Deletes an owner's subscription; its delivery rows cascade via the FK. */
|
|
195
|
-
export declare function deleteSubscription(db: Db.Db, owner: Owner, id: string): Promise<boolean>;
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Lists a stream's live active subscriptions paired with their poller cursors,
|
|
204
|
-
* from one query. The poller's per-tick lookup.
|
|
205
|
-
*/
|
|
206
|
-
export declare function listActiveWithCursors(db: Db.Db, chainId: number, eventType: EventType): Promise<{
|
|
207
|
-
cursor: string | null;
|
|
208
|
-
subscription: Subscription;
|
|
209
|
-
}[]>;
|
|
210
|
-
/** Reads every live active subscription on a chain in one poller query. */
|
|
228
|
+
export declare function deleteSubscription(db: Db.Db, owner: Owner, id: string, options?: deleteSubscription.Options): Promise<boolean>;
|
|
229
|
+
export declare namespace deleteSubscription {
|
|
230
|
+
/** Private-resource visibility options. */
|
|
231
|
+
type Options = {
|
|
232
|
+
access?: Access | undefined;
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** Reads every live active subscription on a chain in one query. */
|
|
211
236
|
export declare function listActiveForChain(db: Db.Db, options: listActiveForChain.Options): Promise<{
|
|
212
237
|
cursor: string | null;
|
|
213
238
|
subscription: Subscription;
|
|
214
239
|
}[]>;
|
|
215
240
|
export declare namespace listActiveForChain {
|
|
216
|
-
/** Filters for the
|
|
241
|
+
/** Filters for the chain-level subscription read. */
|
|
217
242
|
type Options = Pick<WebhookSubscriptions.listActiveForChain.Options, 'chainId' | 'eventTypes'>;
|
|
218
243
|
}
|
|
219
|
-
/**
|
|
220
|
-
|
|
221
|
-
* null when none carry a cursor. Creation checkpoints count at their recorded
|
|
222
|
-
* head, so a brand-new subscription reads as fresh.
|
|
223
|
-
*/
|
|
224
|
-
export declare function maxCursorBlock(db: Db.Db, chainId: number): Promise<number | null>;
|
|
244
|
+
/** Decodes the block component of a subscription cursor, if any. */
|
|
245
|
+
export declare function cursorBlock(cursor: string | null): number | undefined;
|
|
225
246
|
/** Reads a subscription's keyset cursor. Returns null when unset. */
|
|
226
247
|
export declare function getCursor(db: Db.Db, subscriptionId: string): Promise<string | null>;
|
|
227
|
-
/** Writes a cursor only when its stored value matches the expected cursor. */
|
|
228
|
-
export declare function compareAndSetCursor(db: Db.Db, options: compareAndSetCursor.Options): Promise<boolean>;
|
|
229
|
-
export declare namespace compareAndSetCursor {
|
|
230
|
-
/** Options for {@link compareAndSetCursor}. */
|
|
231
|
-
type Options = WebhookSubscriptions.compareAndSetCursor.Options;
|
|
232
|
-
}
|
|
233
|
-
/** Writes cursors whose stored values match their expected cursors. */
|
|
234
|
-
export declare function compareAndSetCursors(db: Db.Db, options: compareAndSetCursors.Options): Promise<Set<string>>;
|
|
235
|
-
export declare namespace compareAndSetCursors {
|
|
236
|
-
/** Options for {@link compareAndSetCursors}. */
|
|
237
|
-
type Options = WebhookSubscriptions.compareAndSetCursors.Options;
|
|
238
|
-
}
|
|
239
|
-
/** Writes a subscription's keyset cursor. */
|
|
240
|
-
export declare function setCursor(db: Db.Db, subscriptionId: string, cursor: string): Promise<void>;
|
|
241
248
|
/**
|
|
242
249
|
* Deletes expired MPP-owned subscriptions (delivery rows cascade) and
|
|
243
|
-
* deliveries past retention. Reads already filter expiry at query time
|
|
244
|
-
* is the janitor reclaiming space,
|
|
250
|
+
* deliveries past retention. Reads already filter expiry at query time; this
|
|
251
|
+
* is the janitor reclaiming space, run best-effort on a schedule.
|
|
245
252
|
*/
|
|
246
253
|
export declare function pruneExpired(db: Db.Db, options?: pruneExpired.Options): Promise<void>;
|
|
247
254
|
export declare namespace pruneExpired {
|
|
@@ -297,6 +304,8 @@ export declare namespace ensureQueueEvents {
|
|
|
297
304
|
type Options = {
|
|
298
305
|
/** Clock used for staging timestamps. */
|
|
299
306
|
now?: (() => Date) | undefined;
|
|
307
|
+
/** Epoch ms the head owing these events was observed; absent on replays. */
|
|
308
|
+
observedAt?: number | undefined;
|
|
300
309
|
/** Staged-envelope TTL in ms; defaults to {@link deliveryRetentionMs}. */
|
|
301
310
|
ttl?: number | undefined;
|
|
302
311
|
};
|
|
@@ -357,6 +366,8 @@ export declare namespace deliverClaimedAndRecord {
|
|
|
357
366
|
type Claimed = {
|
|
358
367
|
/** Immutable event envelope to deliver. */
|
|
359
368
|
envelope: Envelope;
|
|
369
|
+
/** ISO head-observation stamp carried by the staged row; null on replays. */
|
|
370
|
+
observedAt?: string | null | undefined;
|
|
360
371
|
/** Subscription re-resolved for current status and secret. */
|
|
361
372
|
subscriptionId: string;
|
|
362
373
|
};
|
|
@@ -423,7 +434,7 @@ export declare function countDeliveries(db: Db.Db, subscriptionId: string): Prom
|
|
|
423
434
|
export declare function getDelivery(db: Db.Db, subscriptionId: string, deliveryId: string): Promise<Delivery | null>;
|
|
424
435
|
/**
|
|
425
436
|
* Default number of consecutive delivery failures after which a subscription
|
|
426
|
-
* auto-disables (and is dropped from the
|
|
437
|
+
* auto-disables (and is dropped from the partial active index).
|
|
427
438
|
*/
|
|
428
439
|
export declare const maxFailures = 10;
|
|
429
440
|
/**
|
|
@@ -442,7 +453,7 @@ export declare namespace recordSuccess {
|
|
|
442
453
|
/**
|
|
443
454
|
* Records a failed delivery: atomically increments the consecutive-failure
|
|
444
455
|
* counter and, once it reaches `maxFailures`, sets `status: 'disabled'` so the
|
|
445
|
-
* subscription drops out of the
|
|
456
|
+
* subscription drops out of the partial active index (surfaced via the API).
|
|
446
457
|
* Returns the updated subscription.
|
|
447
458
|
*/
|
|
448
459
|
export declare function recordFailure(db: Db.Db, subscription: Subscription, options?: recordFailure.Options): Promise<Subscription>;
|
|
@@ -483,6 +494,8 @@ export declare namespace deliverAndRecord {
|
|
|
483
494
|
metrics?: Metrics.Metrics | undefined;
|
|
484
495
|
/** Clock used for timestamps; injectable for tests. */
|
|
485
496
|
now?: (() => Date) | undefined;
|
|
497
|
+
/** Epoch ms the head owing this event was observed; absent on replays. */
|
|
498
|
+
observedAt?: number | undefined;
|
|
486
499
|
/** Cloudflare Queue delivery attempt, starting at one; absent for inline delivery paths. */
|
|
487
500
|
queueAttempt?: number | undefined;
|
|
488
501
|
/** Queue enqueue time as epoch milliseconds, used to isolate queue wait. */
|
|
@@ -530,6 +543,19 @@ export declare namespace eventId {
|
|
|
530
543
|
logIndex: bigint | number | string;
|
|
531
544
|
};
|
|
532
545
|
}
|
|
546
|
+
/** Computes a stable event id from an event-type-specific identity key. */
|
|
547
|
+
export declare function eventIdFromKey(options: eventIdFromKey.Options): string;
|
|
548
|
+
export declare namespace eventIdFromKey {
|
|
549
|
+
/** Stable identity inputs for a webhook event. */
|
|
550
|
+
type Options = {
|
|
551
|
+
/** Chain the event belongs to. */
|
|
552
|
+
chainId: number;
|
|
553
|
+
/** Event type. */
|
|
554
|
+
eventType: EventType;
|
|
555
|
+
/** Stable event-type-specific identity. */
|
|
556
|
+
key: string;
|
|
557
|
+
};
|
|
558
|
+
}
|
|
533
559
|
/** The JSON envelope delivered to subscribers. */
|
|
534
560
|
export type Envelope = {
|
|
535
561
|
/** Chain the event occurred on. */
|
|
@@ -564,6 +590,21 @@ export declare namespace buildEnvelope {
|
|
|
564
590
|
subscription: Subscription;
|
|
565
591
|
};
|
|
566
592
|
}
|
|
593
|
+
/** Builds a delivery envelope from a stable application-event identity. */
|
|
594
|
+
export declare function buildKeyedEnvelope(options: buildKeyedEnvelope.Options): Envelope;
|
|
595
|
+
export declare namespace buildKeyedEnvelope {
|
|
596
|
+
/** Application-event envelope fields. */
|
|
597
|
+
type Options = {
|
|
598
|
+
/** Timestamp to stamp on the envelope; defaults to now. */
|
|
599
|
+
createdAt?: Date | undefined;
|
|
600
|
+
/** Public event payload. */
|
|
601
|
+
data: unknown;
|
|
602
|
+
/** Stable event-type-specific identity. */
|
|
603
|
+
key: string;
|
|
604
|
+
/** Subscription the event matched. */
|
|
605
|
+
subscription: Subscription;
|
|
606
|
+
};
|
|
607
|
+
}
|
|
567
608
|
/**
|
|
568
609
|
* Builds a synthetic `ping` envelope so an owner can test a subscription's
|
|
569
610
|
* endpoint (connectivity, TLS, signature verification) without waiting for a real
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Webhooks.d.ts","sourceRoot":"","sources":["../../src/internal/Webhooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Webhooks.d.ts","sourceRoot":"","sources":["../../src/internal/Webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,18 +20,20 @@ export async function createSubscription(db, input, options = {}) {
|
|
|
20
20
|
const now = (options.now ?? (() => new Date()))();
|
|
21
21
|
const iso = now.toISOString();
|
|
22
22
|
// A one-field checkpoint records the live creation head without claiming it
|
|
23
|
-
// was scanned
|
|
23
|
+
// was scanned; it anchors the fanout boundary for the new subscription.
|
|
24
24
|
const pollerCursor = options.startBlockNumber === undefined ? undefined : Cursor.encode([options.startBlockNumber]);
|
|
25
25
|
const subscription = {
|
|
26
26
|
chainId: input.chainId,
|
|
27
27
|
...(input.context === undefined ? {} : { context: input.context }),
|
|
28
28
|
createdAt: iso,
|
|
29
29
|
destination: input.destination,
|
|
30
|
+
...(input.environment === undefined ? {} : { environment: input.environment }),
|
|
30
31
|
eventType: input.eventType,
|
|
31
32
|
failureCount: 0,
|
|
32
33
|
filters: input.filters ?? {},
|
|
33
34
|
id: generateId(now),
|
|
34
35
|
owner: input.owner,
|
|
36
|
+
...(input.projectId === undefined ? {} : { projectId: input.projectId }),
|
|
35
37
|
secret: generateSecret(),
|
|
36
38
|
status: 'active',
|
|
37
39
|
updatedAt: iso,
|
|
@@ -53,8 +55,8 @@ export async function createSubscription(db, input, options = {}) {
|
|
|
53
55
|
return subscription;
|
|
54
56
|
}
|
|
55
57
|
/** Reads a single subscription scoped to its owner. Returns null when absent. */
|
|
56
|
-
export async function getSubscription(db, owner, id) {
|
|
57
|
-
return WebhookSubscriptions.get(db, owner, id, new Date().toISOString());
|
|
58
|
+
export async function getSubscription(db, owner, id, options = {}) {
|
|
59
|
+
return WebhookSubscriptions.get(db, owner, id, new Date().toISOString(), options.access);
|
|
58
60
|
}
|
|
59
61
|
/**
|
|
60
62
|
* Lists an owner's subscriptions, newest first, with optional keyset paging.
|
|
@@ -68,16 +70,16 @@ export async function listSubscriptions(db, owner, options = {}) {
|
|
|
68
70
|
* since the per-owner set is bounded by `maxPerOwner`. Feeds the opt-in
|
|
69
71
|
* `meta.totalCount` on `GET /webhooks`.
|
|
70
72
|
*/
|
|
71
|
-
export async function countSubscriptions(db, owner) {
|
|
72
|
-
return WebhookSubscriptions.count(db, owner, new Date().toISOString());
|
|
73
|
+
export async function countSubscriptions(db, owner, options = {}) {
|
|
74
|
+
return WebhookSubscriptions.count(db, owner, new Date().toISOString(), options.access);
|
|
73
75
|
}
|
|
74
76
|
/**
|
|
75
77
|
* Patches an owner's subscription, re-validating the URL when changed.
|
|
76
|
-
* Returns null when absent. The status column drives the
|
|
78
|
+
* Returns null when absent. The status column drives the partial active
|
|
77
79
|
* index, so no secondary-index maintenance is needed.
|
|
78
80
|
*/
|
|
79
81
|
export async function updateSubscription(db, owner, id, patch, options = {}) {
|
|
80
|
-
const current = await getSubscription(db, owner, id);
|
|
82
|
+
const current = await getSubscription(db, owner, id, options.access === undefined ? {} : { access: options.access });
|
|
81
83
|
if (!current)
|
|
82
84
|
return null;
|
|
83
85
|
if (current.destination.type !== 'url' && patch.destination?.type === 'url')
|
|
@@ -96,26 +98,10 @@ export async function updateSubscription(db, owner, id, patch, options = {}) {
|
|
|
96
98
|
return next ?? null;
|
|
97
99
|
}
|
|
98
100
|
/** Deletes an owner's subscription; its delivery rows cascade via the FK. */
|
|
99
|
-
export async function deleteSubscription(db, owner, id) {
|
|
100
|
-
return WebhookSubscriptions.remove(db, owner, id, new Date().toISOString());
|
|
101
|
+
export async function deleteSubscription(db, owner, id, options = {}) {
|
|
102
|
+
return WebhookSubscriptions.remove(db, owner, id, new Date().toISOString(), options.access);
|
|
101
103
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Lists active subscriptions for a `(chainId, eventType)` stream. Used by the
|
|
104
|
-
* poller; one indexed query (the partial status index replaces the old
|
|
105
|
-
* secondary key space).
|
|
106
|
-
*/
|
|
107
|
-
export async function listActive(db, chainId, eventType) {
|
|
108
|
-
const pairs = await listActiveWithCursors(db, chainId, eventType);
|
|
109
|
-
return pairs.map((pair) => pair.subscription);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Lists a stream's live active subscriptions paired with their poller cursors,
|
|
113
|
-
* from one query. The poller's per-tick lookup.
|
|
114
|
-
*/
|
|
115
|
-
export async function listActiveWithCursors(db, chainId, eventType) {
|
|
116
|
-
return WebhookSubscriptions.listActive(db, chainId, eventType, new Date().toISOString());
|
|
117
|
-
}
|
|
118
|
-
/** Reads every live active subscription on a chain in one poller query. */
|
|
104
|
+
/** Reads every live active subscription on a chain in one query. */
|
|
119
105
|
export async function listActiveForChain(db, options) {
|
|
120
106
|
return WebhookSubscriptions.listActiveForChain(db, {
|
|
121
107
|
chainId: options.chainId,
|
|
@@ -123,42 +109,22 @@ export async function listActiveForChain(db, options) {
|
|
|
123
109
|
now: new Date().toISOString(),
|
|
124
110
|
});
|
|
125
111
|
}
|
|
126
|
-
/**
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
let max = null;
|
|
134
|
-
for (const cursor of cursors) {
|
|
135
|
-
const decoded = Cursor.decode(cursor, ['int', 'int']) ?? Cursor.decode(cursor, ['int']);
|
|
136
|
-
const block = decoded?.[0];
|
|
137
|
-
if (typeof block === 'number' && (max === null || block > max))
|
|
138
|
-
max = block;
|
|
139
|
-
}
|
|
140
|
-
return max;
|
|
112
|
+
/** Decodes the block component of a subscription cursor, if any. */
|
|
113
|
+
export function cursorBlock(cursor) {
|
|
114
|
+
if (cursor === null)
|
|
115
|
+
return undefined;
|
|
116
|
+
const decoded = Cursor.decode(cursor, ['int', 'int']) ?? Cursor.decode(cursor, ['int']);
|
|
117
|
+
const block = decoded?.[0];
|
|
118
|
+
return typeof block === 'number' ? block : undefined;
|
|
141
119
|
}
|
|
142
120
|
/** Reads a subscription's keyset cursor. Returns null when unset. */
|
|
143
121
|
export async function getCursor(db, subscriptionId) {
|
|
144
122
|
return WebhookSubscriptions.getCursor(db, subscriptionId);
|
|
145
123
|
}
|
|
146
|
-
/** Writes a cursor only when its stored value matches the expected cursor. */
|
|
147
|
-
export async function compareAndSetCursor(db, options) {
|
|
148
|
-
return WebhookSubscriptions.compareAndSetCursor(db, options);
|
|
149
|
-
}
|
|
150
|
-
/** Writes cursors whose stored values match their expected cursors. */
|
|
151
|
-
export async function compareAndSetCursors(db, options) {
|
|
152
|
-
return WebhookSubscriptions.compareAndSetCursors(db, options);
|
|
153
|
-
}
|
|
154
|
-
/** Writes a subscription's keyset cursor. */
|
|
155
|
-
export async function setCursor(db, subscriptionId, cursor) {
|
|
156
|
-
await WebhookSubscriptions.setCursor(db, subscriptionId, cursor);
|
|
157
|
-
}
|
|
158
124
|
/**
|
|
159
125
|
* Deletes expired MPP-owned subscriptions (delivery rows cascade) and
|
|
160
|
-
* deliveries past retention. Reads already filter expiry at query time
|
|
161
|
-
* is the janitor reclaiming space,
|
|
126
|
+
* deliveries past retention. Reads already filter expiry at query time; this
|
|
127
|
+
* is the janitor reclaiming space, run best-effort on a schedule.
|
|
162
128
|
*/
|
|
163
129
|
export async function pruneExpired(db, options = {}) {
|
|
164
130
|
const iso = (options.now ?? (() => new Date()))().toISOString();
|
|
@@ -188,6 +154,9 @@ export function retryDelayMs(attemptCount) {
|
|
|
188
154
|
export async function ensureQueueEvents(db, dispatchables, options = {}) {
|
|
189
155
|
const now = (options.now ?? (() => new Date()))();
|
|
190
156
|
const expiresAt = new Date(now.getTime() + (options.ttl ?? deliveryRetentionMs)).toISOString();
|
|
157
|
+
// Carried so the delivery worker can measure observation-to-attempt without
|
|
158
|
+
// re-reading the block; replays have no observation and stay null.
|
|
159
|
+
const observedAt = options.observedAt === undefined ? null : new Date(options.observedAt).toISOString();
|
|
191
160
|
const events = dispatchables.map(({ envelope, subscription }) => ({
|
|
192
161
|
createdAt: now.toISOString(),
|
|
193
162
|
envelope,
|
|
@@ -197,6 +166,7 @@ export async function ensureQueueEvents(db, dispatchables, options = {}) {
|
|
|
197
166
|
expiresAt,
|
|
198
167
|
// Due immediately; the value orders the sweep so it is never null here.
|
|
199
168
|
nextAttemptAt: now.toISOString(),
|
|
169
|
+
observedAt,
|
|
200
170
|
subscriptionId: subscription.id,
|
|
201
171
|
}));
|
|
202
172
|
return {
|
|
@@ -272,10 +242,13 @@ export async function deliverClaimedAndRecord(db, claimed, options = {}) {
|
|
|
272
242
|
const subscription = await WebhookSubscriptions.getById(db, claimed.subscriptionId, new Date().toISOString());
|
|
273
243
|
if (!subscription || subscription.status !== 'active')
|
|
274
244
|
return { status: 'skipped' };
|
|
245
|
+
// A staged row predating the observation column, or a replay, reads null.
|
|
246
|
+
const observedAt = claimed.observedAt ? Date.parse(claimed.observedAt) : Number.NaN;
|
|
275
247
|
return {
|
|
276
248
|
result: await deliverAndRecord(db, subscription, claimed.envelope, {
|
|
277
249
|
...options,
|
|
278
250
|
dequeuedAt,
|
|
251
|
+
...(Number.isNaN(observedAt) ? {} : { observedAt }),
|
|
279
252
|
subscriptionReadMs: Date.now() - subscriptionReadStartedAt,
|
|
280
253
|
}),
|
|
281
254
|
status: 'delivered',
|
|
@@ -285,7 +258,7 @@ export async function deliverClaimedAndRecord(db, claimed, options = {}) {
|
|
|
285
258
|
export async function recordDelivery(db, delivery, options = {}) {
|
|
286
259
|
const ttl = options.ttl ?? deliveryRetentionMs;
|
|
287
260
|
// The retention deadline replaces the old store TTL: reads filter on it at
|
|
288
|
-
// query time and
|
|
261
|
+
// query time and pruning reclaims past it. Anchored to write time (not the
|
|
289
262
|
// row's `createdAt`, which tests pin) — exactly like the old `put` TTL.
|
|
290
263
|
const expiresAt = new Date(Date.now() + ttl).toISOString();
|
|
291
264
|
await WebhookDeliveries.insert(db, delivery, expiresAt);
|
|
@@ -311,7 +284,7 @@ export async function getDelivery(db, subscriptionId, deliveryId) {
|
|
|
311
284
|
}
|
|
312
285
|
/**
|
|
313
286
|
* Default number of consecutive delivery failures after which a subscription
|
|
314
|
-
* auto-disables (and is dropped from the
|
|
287
|
+
* auto-disables (and is dropped from the partial active index).
|
|
315
288
|
*/
|
|
316
289
|
export const maxFailures = 10;
|
|
317
290
|
/**
|
|
@@ -330,7 +303,7 @@ export async function recordSuccess(db, subscription, options = {}) {
|
|
|
330
303
|
/**
|
|
331
304
|
* Records a failed delivery: atomically increments the consecutive-failure
|
|
332
305
|
* counter and, once it reaches `maxFailures`, sets `status: 'disabled'` so the
|
|
333
|
-
* subscription drops out of the
|
|
306
|
+
* subscription drops out of the partial active index (surfaced via the API).
|
|
334
307
|
* Returns the updated subscription.
|
|
335
308
|
*/
|
|
336
309
|
export async function recordFailure(db, subscription, options = {}) {
|
|
@@ -375,21 +348,31 @@ export async function deliverAndRecord(db, subscription, envelope, options = {})
|
|
|
375
348
|
return { error: 'delivery failed before request', ok: false };
|
|
376
349
|
}
|
|
377
350
|
})();
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
await recordFailure(db, subscription, options);
|
|
383
|
-
const stateWriteMs = Date.now() - stateWriteStartedAt;
|
|
351
|
+
// Overlapped: the two writes touch different rows and the log carries the
|
|
352
|
+
// immutable pre-attempt subscription, so it never reads the state write's
|
|
353
|
+
// result. Sequentially they cost two Postgres round trips per delivery.
|
|
354
|
+
const writeStartedAt = Date.now();
|
|
384
355
|
// Append a delivery-log row. Best-effort: a logging failure must never change
|
|
385
356
|
// the delivery outcome the caller (Queue consumer / inline path) acts on.
|
|
386
|
-
const
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
357
|
+
const deliveryLog = (async () => {
|
|
358
|
+
try {
|
|
359
|
+
await recordDelivery(db, buildDelivery({ attempt, envelope, result, subscription }, options), options.deliveryRetentionMs === undefined ? {} : { ttl: options.deliveryRetentionMs });
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
// delivery logging is best-effort
|
|
363
|
+
}
|
|
364
|
+
return Date.now() - writeStartedAt;
|
|
365
|
+
})();
|
|
366
|
+
const stateWrite = (async () => {
|
|
367
|
+
if (result.ok)
|
|
368
|
+
await recordSuccess(db, subscription, options);
|
|
369
|
+
else
|
|
370
|
+
await recordFailure(db, subscription, options);
|
|
371
|
+
return Date.now() - writeStartedAt;
|
|
372
|
+
})();
|
|
373
|
+
// A state-write rejection still propagates to the caller's retry path; the
|
|
374
|
+
// log promise never rejects, so it cannot mask it or go unhandled.
|
|
375
|
+
const [stateWriteMs, deliveryLogMs] = await Promise.all([stateWrite, deliveryLog]);
|
|
393
376
|
const completedAt = Date.now();
|
|
394
377
|
// Emit after all delivery work so the timings cover every stage. The
|
|
395
378
|
// subscription is immutable, preserving the pre-attempt failure count.
|
|
@@ -405,16 +388,29 @@ export async function deliverAndRecord(db, subscription, envelope, options = {})
|
|
|
405
388
|
subscription,
|
|
406
389
|
attempt,
|
|
407
390
|
timings: {
|
|
408
|
-
deliveryLogMs
|
|
391
|
+
deliveryLogMs,
|
|
409
392
|
envelopeToQueueMs: options.queuedAt === undefined || Number.isNaN(envelopeAt)
|
|
410
393
|
? undefined
|
|
411
394
|
: Math.max(0, options.queuedAt - envelopeAt),
|
|
412
395
|
endToEndMs: eventAt === undefined ? undefined : Math.max(0, completedAt - eventAt),
|
|
396
|
+
// The attempt leaving, not bookkeeping finishing: everything after
|
|
397
|
+
// `startedAt` is either the subscriber's time or our own recording,
|
|
398
|
+
// neither of which delays the event reaching them. Gated on a request
|
|
399
|
+
// actually being made, so a failure before send (formatting, invalid
|
|
400
|
+
// destination) does not report an attempt that never left.
|
|
401
|
+
eventToAttemptMs: eventAt === undefined || result.durationMs === undefined
|
|
402
|
+
? undefined
|
|
403
|
+
: Math.max(0, startedAt - eventAt),
|
|
413
404
|
eventToEnvelopeMs: eventAt === undefined || Number.isNaN(envelopeAt)
|
|
414
405
|
? undefined
|
|
415
406
|
: Math.max(0, envelopeAt - eventAt),
|
|
407
|
+
observedToAttemptMs: options.observedAt === undefined || result.durationMs === undefined
|
|
408
|
+
? undefined
|
|
409
|
+
: Math.max(0, startedAt - options.observedAt),
|
|
410
|
+
preflightMs: Math.max(0, startedAt - dequeuedAt),
|
|
416
411
|
processingMs: Math.max(0, completedAt - dequeuedAt),
|
|
417
412
|
queueWaitMs: options.queuedAt === undefined ? undefined : Math.max(0, dequeuedAt - options.queuedAt),
|
|
413
|
+
settleMs: Math.max(0, completedAt - writeStartedAt),
|
|
418
414
|
stateWriteMs,
|
|
419
415
|
subscriptionReadMs: options.subscriptionReadMs,
|
|
420
416
|
},
|
|
@@ -478,7 +474,15 @@ function buildDelivery(input, options = {}) {
|
|
|
478
474
|
* re-deliveries are dedupable by the receiver.
|
|
479
475
|
*/
|
|
480
476
|
export function eventId(options) {
|
|
481
|
-
|
|
477
|
+
return eventIdFromKey({
|
|
478
|
+
chainId: options.chainId,
|
|
479
|
+
eventType: options.eventType,
|
|
480
|
+
key: `${options.blockNumber}:${options.logIndex}`,
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
/** Computes a stable event id from an event-type-specific identity key. */
|
|
484
|
+
export function eventIdFromKey(options) {
|
|
485
|
+
const input = `${options.chainId}:${options.eventType}:${options.key}`;
|
|
482
486
|
return `evt_${Hash.sha256(Hex.fromString(input)).slice(2)}`;
|
|
483
487
|
}
|
|
484
488
|
/** Builds a delivery envelope for an event matched against a subscription. */
|
|
@@ -499,6 +503,23 @@ export function buildEnvelope(options) {
|
|
|
499
503
|
type: subscription.eventType,
|
|
500
504
|
};
|
|
501
505
|
}
|
|
506
|
+
/** Builds a delivery envelope from a stable application-event identity. */
|
|
507
|
+
export function buildKeyedEnvelope(options) {
|
|
508
|
+
const { subscription } = options;
|
|
509
|
+
return {
|
|
510
|
+
chainId: subscription.chainId,
|
|
511
|
+
...(subscription.context === undefined ? {} : { context: subscription.context }),
|
|
512
|
+
createdAt: (options.createdAt ?? new Date()).toISOString(),
|
|
513
|
+
data: options.data,
|
|
514
|
+
id: eventIdFromKey({
|
|
515
|
+
chainId: subscription.chainId,
|
|
516
|
+
eventType: subscription.eventType,
|
|
517
|
+
key: options.key,
|
|
518
|
+
}),
|
|
519
|
+
subscriptionId: subscription.id,
|
|
520
|
+
type: subscription.eventType,
|
|
521
|
+
};
|
|
522
|
+
}
|
|
502
523
|
/**
|
|
503
524
|
* Builds a synthetic `ping` envelope so an owner can test a subscription's
|
|
504
525
|
* endpoint (connectivity, TLS, signature verification) without waiting for a real
|