tapimo 0.2.0 → 0.3.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 +31 -3
- package/dist/ApiKey.d.ts +1 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +5 -2
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +28 -1
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +34 -1
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +7167 -4507
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +8 -0
- package/dist/App.js.map +1 -1
- package/dist/Scope.d.ts +11 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +14 -3
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +128 -118
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +7 -0
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/scopes.d.ts +8 -0
- package/dist/admin/apps/scopes.d.ts.map +1 -1
- package/dist/admin/apps/scopes.js +3 -0
- package/dist/admin/apps/scopes.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +57 -57
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.js +13 -13
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +151 -0
- package/dist/analytics/Analytics.d.ts.map +1 -0
- package/dist/analytics/Analytics.js +212 -0
- package/dist/analytics/Analytics.js.map +1 -0
- package/dist/analytics/tables/requestEvents.d.ts +215 -0
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -0
- package/dist/analytics/tables/requestEvents.js +264 -0
- package/dist/analytics/tables/requestEvents.js.map +1 -0
- package/dist/apps/data/App.d.ts +1024 -624
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +36 -0
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +45 -45
- package/dist/apps/data/routes/coingecko.d.ts +176 -176
- package/dist/apps/data/routes/exchanges.d.ts +455 -455
- package/dist/apps/data/routes/fee-amm.d.ts +101 -101
- package/dist/apps/data/routes/funding.d.ts +765 -0
- package/dist/apps/data/routes/funding.d.ts.map +1 -0
- package/dist/apps/data/routes/funding.js +383 -0
- package/dist/apps/data/routes/funding.js.map +1 -0
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +2 -8
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +29 -36
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +29 -1
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +36 -36
- package/dist/apps/data/routes/transfers.d.ts +56 -56
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +45 -45
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +8 -8
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/docs/App.d.ts +4 -2
- package/dist/apps/docs/App.d.ts.map +1 -1
- package/dist/apps/docs/App.js +27 -95
- package/dist/apps/docs/App.js.map +1 -1
- package/dist/apps/docs/reference.d.ts +21 -0
- package/dist/apps/docs/reference.d.ts.map +1 -0
- package/dist/apps/docs/reference.js +112 -0
- package/dist/apps/docs/reference.js.map +1 -0
- package/dist/apps/index.d.ts +1 -0
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +1 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/mcp.d.ts +76 -0
- package/dist/apps/mcp.d.ts.map +1 -0
- package/dist/apps/mcp.js +188 -0
- package/dist/apps/mcp.js.map +1 -0
- package/dist/apps/platform/App.d.ts +3005 -728
- package/dist/apps/platform/App.d.ts.map +1 -1
- package/dist/apps/platform/App.js +13 -3
- package/dist/apps/platform/App.js.map +1 -1
- package/dist/apps/platform/Billing.d.ts +279 -0
- package/dist/apps/platform/Billing.d.ts.map +1 -0
- package/dist/apps/platform/Billing.js +477 -0
- package/dist/apps/platform/Billing.js.map +1 -0
- package/dist/apps/platform/index.d.ts +1 -0
- package/dist/apps/platform/index.d.ts.map +1 -1
- package/dist/apps/platform/index.js +1 -0
- package/dist/apps/platform/index.js.map +1 -1
- package/dist/apps/platform/routes/api-keys.d.ts +341 -49
- package/dist/apps/platform/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/platform/routes/api-keys.js +115 -13
- package/dist/apps/platform/routes/api-keys.js.map +1 -1
- package/dist/apps/platform/routes/billing.d.ts +1520 -0
- package/dist/apps/platform/routes/billing.d.ts.map +1 -0
- package/dist/apps/platform/routes/billing.js +795 -0
- package/dist/apps/platform/routes/billing.js.map +1 -0
- package/dist/apps/platform/routes/invitations.d.ts +201 -83
- package/dist/apps/platform/routes/invitations.d.ts.map +1 -1
- package/dist/apps/platform/routes/invitations.js +58 -0
- package/dist/apps/platform/routes/invitations.js.map +1 -1
- package/dist/apps/platform/routes/me.d.ts +17 -17
- package/dist/apps/platform/routes/orgs.d.ts +50 -36
- package/dist/apps/platform/routes/orgs.d.ts.map +1 -1
- package/dist/apps/platform/routes/orgs.js +14 -3
- package/dist/apps/platform/routes/orgs.js.map +1 -1
- package/dist/apps/platform/routes/projects.d.ts +97 -97
- package/dist/apps/platform/routes/scopes.d.ts +107 -0
- package/dist/apps/platform/routes/scopes.d.ts.map +1 -0
- package/dist/apps/platform/routes/scopes.js +66 -0
- package/dist/apps/platform/routes/scopes.js.map +1 -0
- package/dist/apps/platform/routes/usage.d.ts +588 -0
- package/dist/apps/platform/routes/usage.d.ts.map +1 -0
- package/dist/apps/platform/routes/usage.js +391 -0
- package/dist/apps/platform/routes/usage.js.map +1 -0
- package/dist/apps/relay/App.d.ts +4 -1
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +118 -10
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +2 -1
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/cli/Cli.d.ts +8 -1
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/Cli.js +11 -3
- package/dist/cli/Cli.js.map +1 -1
- package/dist/cli/commands/admin.d.ts +4 -0
- package/dist/cli/commands/admin.d.ts.map +1 -1
- package/dist/cli/commands/admin.js +80 -1
- package/dist/cli/commands/admin.js.map +1 -1
- package/dist/db/Db.d.ts +7 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +126 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +79 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +88 -2
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/billingSettings.d.ts +55 -0
- package/dist/db/tables/billingSettings.d.ts.map +1 -0
- package/dist/db/tables/billingSettings.js +70 -0
- package/dist/db/tables/billingSettings.js.map +1 -0
- package/dist/db/tables/invitations.js +2 -2
- package/dist/db/tables/invitations.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +6 -2
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +10 -4
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.js +2 -2
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts +121 -0
- package/dist/db/tables/requestUsage.d.ts.map +1 -0
- package/dist/db/tables/requestUsage.js +150 -0
- package/dist/db/tables/requestUsage.js.map +1 -0
- package/dist/db/tables/sponsoredTransactions.d.ts +119 -0
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +155 -2
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/stripeCustomers.d.ts +81 -0
- package/dist/db/tables/stripeCustomers.d.ts.map +1 -0
- package/dist/db/tables/stripeCustomers.js +120 -0
- package/dist/db/tables/stripeCustomers.js.map +1 -0
- package/dist/db/tables/users.js +2 -2
- package/dist/db/tables/users.js.map +1 -1
- package/dist/handlers/internal/sponsorship.d.ts +5 -2
- package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
- package/dist/handlers/internal/sponsorship.js +19 -5
- package/dist/handlers/internal/sponsorship.js.map +1 -1
- package/dist/handlers/internal/utils.d.ts +10 -3
- package/dist/handlers/internal/utils.d.ts.map +1 -1
- package/dist/handlers/internal/utils.js +14 -6
- package/dist/handlers/internal/utils.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/Auth.d.ts +18 -4
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +148 -76
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +4 -1
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts +10 -0
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +39 -8
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/Fees.d.ts +27 -0
- package/dist/internal/Fees.d.ts.map +1 -0
- package/dist/internal/Fees.js +48 -0
- package/dist/internal/Fees.js.map +1 -0
- package/dist/internal/FundingRoutes.d.ts +183 -0
- package/dist/internal/FundingRoutes.d.ts.map +1 -0
- package/dist/internal/FundingRoutes.js +490 -0
- package/dist/internal/FundingRoutes.js.map +1 -0
- package/dist/internal/Id.d.ts +15 -0
- package/dist/internal/Id.d.ts.map +1 -0
- package/dist/internal/Id.js +22 -0
- package/dist/internal/Id.js.map +1 -0
- package/dist/internal/Log.d.ts +2 -0
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +3 -0
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +10 -1
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +8 -1
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/RateLimit.d.ts +25 -0
- package/dist/internal/RateLimit.d.ts.map +1 -1
- package/dist/internal/RateLimit.js +51 -0
- package/dist/internal/RateLimit.js.map +1 -1
- package/dist/internal/Response.d.ts +1 -1
- package/dist/internal/Response.d.ts.map +1 -1
- package/dist/internal/Schema.d.ts +8 -0
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +7 -0
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +3 -3
- package/dist/internal/Webhooks.js.map +1 -1
- package/package.json +4 -3
- package/src/ApiKey.ts +9 -2
- package/src/ApiKeys.test.ts +51 -0
- package/src/ApiKeys.ts +50 -1
- package/src/App.test.ts +33 -86718
- package/src/App.ts +18 -0
- package/src/Client.test-d.ts +351 -0
- package/src/Scope.ts +16 -3
- package/src/admin/apps/scopes.test.ts +6 -0
- package/src/admin/apps/scopes.ts +3 -0
- package/src/admin/ui/src/components/Page.tsx +2 -3
- package/src/admin/ui/src/routes/__root.tsx +2 -2
- package/src/admin/ui/src/routes/api-keys.tsx +2 -2
- package/src/admin/ui.generated.ts +13 -13
- package/src/analytics/Analytics.test.ts +527 -0
- package/src/analytics/Analytics.ts +318 -0
- package/src/analytics/tables/requestEvents.ts +523 -0
- package/src/apps/data/App.test.ts +72 -0
- package/src/apps/data/App.ts +35 -0
- package/src/apps/data/routes/funding.test.ts +214 -0
- package/src/apps/data/routes/funding.ts +584 -0
- package/src/apps/data/routes/receipts.ts +2 -9
- package/src/apps/data/routes/rpc.test.ts +78 -2
- package/src/apps/data/routes/rpc.ts +31 -1
- package/src/apps/data/routes/webhooks.test.ts +1 -1
- package/src/apps/data/routes/webhooks.ts +11 -8
- package/src/apps/docs/App.ts +29 -100
- package/src/apps/docs/reference.ts +132 -0
- package/src/apps/index.ts +1 -0
- package/src/apps/mcp.test.ts +206 -0
- package/src/apps/mcp.ts +250 -0
- package/src/apps/platform/App.ts +43 -4
- package/src/apps/platform/Billing.test.ts +530 -0
- package/src/apps/platform/Billing.ts +682 -0
- package/src/apps/platform/index.ts +1 -0
- package/src/apps/platform/routes/api-keys.test.ts +172 -9
- package/src/apps/platform/routes/api-keys.ts +136 -20
- package/src/apps/platform/routes/billing.test.ts +1100 -0
- package/src/apps/platform/routes/billing.ts +966 -0
- package/src/apps/platform/routes/invitations.test.ts +55 -7
- package/src/apps/platform/routes/invitations.ts +68 -0
- package/src/apps/platform/routes/me.test.ts +230 -0
- package/src/apps/platform/routes/orgs.ts +26 -4
- package/src/apps/platform/routes/scopes.test.ts +29 -0
- package/src/apps/platform/routes/scopes.ts +85 -0
- package/src/apps/platform/routes/usage.test.ts +422 -0
- package/src/apps/platform/routes/usage.ts +527 -0
- package/src/apps/relay/App.test.ts +457 -8
- package/src/apps/relay/App.ts +120 -12
- package/src/apps/relay/Sponsorships.test.ts +1 -1
- package/src/apps/relay/Sponsorships.ts +2 -1
- package/src/cli/Cli.test.ts +25 -2
- package/src/cli/Cli.ts +17 -2
- package/src/cli/commands/admin.test.ts +83 -0
- package/src/cli/commands/admin.ts +89 -1
- package/src/db/Db.ts +137 -0
- package/src/db/Schema.ts +104 -2
- package/src/db/tables/billingSettings.test.ts +87 -0
- package/src/db/tables/billingSettings.ts +108 -0
- package/src/db/tables/invitations.ts +2 -2
- package/src/db/tables/organizations.test.ts +1 -1
- package/src/db/tables/organizations.ts +15 -5
- package/src/db/tables/projects.ts +2 -2
- package/src/db/tables/requestUsage.ts +231 -0
- package/src/db/tables/sponsoredTransactions.test.ts +108 -1
- package/src/db/tables/sponsoredTransactions.ts +230 -2
- package/src/db/tables/stripeCustomers.test.ts +109 -0
- package/src/db/tables/stripeCustomers.ts +162 -0
- package/src/db/tables/users.ts +2 -2
- package/src/handlers/internal/sponsorship.ts +34 -7
- package/src/handlers/internal/utils.ts +19 -7
- package/src/index.ts +1 -0
- package/src/internal/Auth.test.ts +175 -25
- package/src/internal/Auth.ts +175 -86
- package/src/internal/Cache.ts +5 -1
- package/src/internal/EdgeCache.test.ts +27 -4
- package/src/internal/EdgeCache.ts +47 -9
- package/src/internal/Fees.test.ts +32 -0
- package/src/internal/Fees.ts +51 -0
- package/src/internal/FundingRoutes.ts +583 -0
- package/src/internal/Id.test.ts +17 -0
- package/src/internal/Id.ts +24 -0
- package/src/internal/Log.test.ts +1 -0
- package/src/internal/Log.ts +5 -0
- package/src/internal/OpenApi.ts +12 -1
- package/src/internal/RateLimit.test.ts +84 -0
- package/src/internal/RateLimit.ts +70 -0
- package/src/internal/Response.ts +1 -1
- package/src/internal/Schema.ts +8 -0
- package/src/internal/Webhooks.test.ts +3 -3
- package/src/internal/Webhooks.ts +3 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { matchedRoutes } from 'hono/route';
|
|
1
2
|
import { Base64 } from 'ox';
|
|
2
3
|
// Per-request headers that must never be persisted in a shared cache entry.
|
|
3
4
|
// `age`/`cf-cache-status` are CDN telemetry stamped by Cloudflare on Cache API
|
|
@@ -28,6 +29,10 @@ const volatileHeaders = [
|
|
|
28
29
|
* is that cache hits bypass origin metering: they are not counted against
|
|
29
30
|
* rate-limit quotas.
|
|
30
31
|
*
|
|
32
|
+
* Lookups are equally scoped: only requests whose matched route carries the
|
|
33
|
+
* {@link markCacheable} marker (applied by `Cache.response`) pay the store
|
|
34
|
+
* read, so GETs to non-cacheable routes skip the round trip entirely.
|
|
35
|
+
*
|
|
31
36
|
* The cache is a plain `Store.Store` — the same store the origin read cache uses
|
|
32
37
|
* — holding the response serialized to a string under a URL key. It is a no-op
|
|
33
38
|
* when no store is supplied.
|
|
@@ -41,7 +46,13 @@ const volatileHeaders = [
|
|
|
41
46
|
export function middleware(options = {}) {
|
|
42
47
|
return async (c, next) => {
|
|
43
48
|
const { store } = options;
|
|
44
|
-
|
|
49
|
+
// Pay the store lookup only when a matched handler is marked cacheable
|
|
50
|
+
// (mounted `Cache.response`); other GETs (authed platform routes, docs,
|
|
51
|
+
// 404s) can never hit, so the read would be a wasted round trip.
|
|
52
|
+
const eligible = store !== undefined &&
|
|
53
|
+
c.req.method === 'GET' &&
|
|
54
|
+
!c.req.raw.headers.has('range') &&
|
|
55
|
+
isCacheableRoute(c);
|
|
45
56
|
const key = eligible ? cacheKey(c.req.url) : undefined;
|
|
46
57
|
// Honor the standard request `Cache-Control` directives so a caller can
|
|
47
58
|
// refresh a stale entry on the colo serving them without any out-of-band
|
|
@@ -76,17 +87,37 @@ export function middleware(options = {}) {
|
|
|
76
87
|
if (c.res.headers.get('content-type')?.includes('text/event-stream'))
|
|
77
88
|
return;
|
|
78
89
|
// Store a public, sanitized copy; the client still receives the original
|
|
79
|
-
// (private, metered) response for this miss.
|
|
80
|
-
|
|
81
|
-
|
|
90
|
+
// (private, metered) response for this miss. Clone synchronously — the
|
|
91
|
+
// original body locks once it streams to the client — then serialize and
|
|
92
|
+
// write behind `waitUntil` so the miss response is not held open on the
|
|
93
|
+
// body read.
|
|
94
|
+
const copy = c.res.clone();
|
|
95
|
+
const persist = serialize(copy, policy).then((value) => store.put(key, value, { ttl: policy.maxAge * 1_000 }));
|
|
82
96
|
const waitUntil = getWaitUntil(c);
|
|
83
97
|
if (waitUntil)
|
|
84
|
-
waitUntil(
|
|
98
|
+
waitUntil(persist);
|
|
85
99
|
else
|
|
86
|
-
await
|
|
100
|
+
await persist.catch(() => { });
|
|
87
101
|
return;
|
|
88
102
|
};
|
|
89
103
|
}
|
|
104
|
+
// Marks handlers whose route publishes an edge-cache policy; the middleware
|
|
105
|
+
// pays the store lookup only when a matched handler carries it.
|
|
106
|
+
const cacheableSymbol = Symbol('tempoApi.edgeCacheable');
|
|
107
|
+
/**
|
|
108
|
+
* Marks a route handler/middleware as publishing an edge-cache policy, so
|
|
109
|
+
* {@link middleware} looks its route up in the edge cache. `Cache.response`
|
|
110
|
+
* applies it; routes composed any other way never enter the shared cache.
|
|
111
|
+
*/
|
|
112
|
+
export function markCacheable(handler) {
|
|
113
|
+
return Object.assign(handler, { [cacheableSymbol]: true });
|
|
114
|
+
}
|
|
115
|
+
// True when any handler matched for this request is marked cacheable.
|
|
116
|
+
function isCacheableRoute(c) {
|
|
117
|
+
return matchedRoutes(c).some((route) => cacheableSymbol in route.handler);
|
|
118
|
+
}
|
|
119
|
+
// Consumes `response` (callers pass a dedicated clone; the client streams the
|
|
120
|
+
// original).
|
|
90
121
|
async function serialize(response, policy) {
|
|
91
122
|
const headers = new Headers(response.headers);
|
|
92
123
|
for (const name of volatileHeaders)
|
|
@@ -99,8 +130,8 @@ async function serialize(response, policy) {
|
|
|
99
130
|
const textual = isTextual(headers.get('content-type'));
|
|
100
131
|
const stored = {
|
|
101
132
|
body: textual
|
|
102
|
-
? await response.
|
|
103
|
-
: Base64.fromBytes(new Uint8Array(await response.
|
|
133
|
+
? await response.text()
|
|
134
|
+
: Base64.fromBytes(new Uint8Array(await response.arrayBuffer())),
|
|
104
135
|
...(textual ? {} : { encoding: 'base64' }),
|
|
105
136
|
headers: [...headers],
|
|
106
137
|
status: response.status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeCache.js","sourceRoot":"","sources":["../../src/internal/EdgeCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAwB3B,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,sDAAsD;AACtD,MAAM,eAAe,GAAG;IACtB,KAAK;IACL,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,kBAAkB;CACnB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"EdgeCache.js","sourceRoot":"","sources":["../../src/internal/EdgeCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Fee-token decimals: TIP-20 fixes 6 (1 token unit = 1 microdollar). */
|
|
2
|
+
export declare const tokenDecimals = 6;
|
|
3
|
+
/** Scaling between attodollar gas math and fee-token units, derived from the exponents. */
|
|
4
|
+
export declare const scalingFactor: bigint;
|
|
5
|
+
/**
|
|
6
|
+
* Fee in fee-token base units for a gas amount priced in attodollars per gas
|
|
7
|
+
* (ceiling division). Works for actual fees (`gasUsed × effectiveGasPrice`)
|
|
8
|
+
* and signed caps (`gas × maxFeePerGas`) alike.
|
|
9
|
+
*
|
|
10
|
+
* @param gas - Gas amount.
|
|
11
|
+
* @param gasPrice - Price in attodollars per gas.
|
|
12
|
+
* @returns The fee in fee-token base units.
|
|
13
|
+
*/
|
|
14
|
+
export declare function fromGas(gas: bigint, gasPrice: bigint): bigint;
|
|
15
|
+
/**
|
|
16
|
+
* Signed fee cap of a candidate transaction in fee-token base units:
|
|
17
|
+
* `gas × maxFeePerGas` (attodollars) scaled through {@link fromGas}. Undefined
|
|
18
|
+
* when either field is missing or unparseable, so callers can fail closed.
|
|
19
|
+
*
|
|
20
|
+
* @param request - Transaction-shaped fee fields.
|
|
21
|
+
* @returns The cap in base units, or undefined.
|
|
22
|
+
*/
|
|
23
|
+
export declare function maxOf(request: {
|
|
24
|
+
gas?: unknown;
|
|
25
|
+
maxFeePerGas?: unknown;
|
|
26
|
+
}): bigint | undefined;
|
|
27
|
+
//# sourceMappingURL=Fees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fees.d.ts","sourceRoot":"","sources":["../../src/internal/Fees.ts"],"names":[],"mappings":"AAWA,yEAAyE;AACzE,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,2FAA2F;AAC3F,eAAO,MAAM,aAAa,QAA8C,CAAA;AAExE;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAK5F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Hex } from 'ox';
|
|
2
|
+
// Tempo gas prices (`maxFeePerGas`, `effectiveGasPrice`, block base fee) are
|
|
3
|
+
// denominated in attodollars (10^-18 USD) per gas, while fee-token balances
|
|
4
|
+
// use 6 decimals (microdollars, 10^-6 USD). The charged fee is
|
|
5
|
+
// `ceil(gas × gasPrice / 10^12)`, mirroring `calc_gas_balance_spending` in
|
|
6
|
+
// tempoxyz/tempo.
|
|
7
|
+
/** Attodollar exponent gas prices use (10^-18 USD per gas), fixed by the fee spec. */
|
|
8
|
+
const attoDecimals = 18;
|
|
9
|
+
/** Fee-token decimals: TIP-20 fixes 6 (1 token unit = 1 microdollar). */
|
|
10
|
+
export const tokenDecimals = 6;
|
|
11
|
+
/** Scaling between attodollar gas math and fee-token units, derived from the exponents. */
|
|
12
|
+
export const scalingFactor = 10n ** BigInt(attoDecimals - tokenDecimals);
|
|
13
|
+
/**
|
|
14
|
+
* Fee in fee-token base units for a gas amount priced in attodollars per gas
|
|
15
|
+
* (ceiling division). Works for actual fees (`gasUsed × effectiveGasPrice`)
|
|
16
|
+
* and signed caps (`gas × maxFeePerGas`) alike.
|
|
17
|
+
*
|
|
18
|
+
* @param gas - Gas amount.
|
|
19
|
+
* @param gasPrice - Price in attodollars per gas.
|
|
20
|
+
* @returns The fee in fee-token base units.
|
|
21
|
+
*/
|
|
22
|
+
export function fromGas(gas, gasPrice) {
|
|
23
|
+
return (gas * gasPrice + scalingFactor - 1n) / scalingFactor;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Signed fee cap of a candidate transaction in fee-token base units:
|
|
27
|
+
* `gas × maxFeePerGas` (attodollars) scaled through {@link fromGas}. Undefined
|
|
28
|
+
* when either field is missing or unparseable, so callers can fail closed.
|
|
29
|
+
*
|
|
30
|
+
* @param request - Transaction-shaped fee fields.
|
|
31
|
+
* @returns The cap in base units, or undefined.
|
|
32
|
+
*/
|
|
33
|
+
export function maxOf(request) {
|
|
34
|
+
const gas = toBigInt(request.gas);
|
|
35
|
+
const maxFeePerGas = toBigInt(request.maxFeePerGas);
|
|
36
|
+
if (gas === undefined || maxFeePerGas === undefined)
|
|
37
|
+
return undefined;
|
|
38
|
+
return fromGas(gas, maxFeePerGas);
|
|
39
|
+
}
|
|
40
|
+
/** Fee fields arrive as bigints (raw envelopes) or hex quantities (fills). */
|
|
41
|
+
function toBigInt(value) {
|
|
42
|
+
if (typeof value === 'bigint')
|
|
43
|
+
return value;
|
|
44
|
+
if (typeof value === 'string' && Hex.validate(value))
|
|
45
|
+
return Hex.toBigInt(value);
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=Fees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fees.js","sourceRoot":"","sources":["../../src/internal/Fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAExB,6EAA6E;AAC7E,4EAA4E;AAC5E,+DAA+D;AAC/D,2EAA2E;AAC3E,kBAAkB;AAElB,sFAAsF;AACtF,MAAM,YAAY,GAAG,EAAE,CAAA;AAEvB,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAE9B,2FAA2F;AAC3F,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,IAAI,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,CAAA;AAExE;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,QAAgB;IACnD,OAAO,CAAC,GAAG,GAAG,QAAQ,GAAG,aAAa,GAAG,EAAE,CAAC,GAAG,aAAa,CAAA;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,OAAkD;IACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACnD,IAAI,GAAG,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACrE,OAAO,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;AACnC,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChF,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/** Lists normalized chains and source tokens that can fund Tempo. */
|
|
2
|
+
export declare function listChains(): {
|
|
3
|
+
tokens: {
|
|
4
|
+
address: "0x1abaea1f7c830bd89acc67ec4af516284b1bc33c" | "0x55d398326f99059ff775485246999027b3197955" | "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" | "0x6b175474e89094c44da98b954eedeac495271d0f" | "0x6c3ea9036406852006290770bedfcaba0e23a0e8" | "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" | "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" | "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" | "0xdac17f958d2ee523a2206206994597c13d831ec7" | "0xfde4c96c8593536e31f229ea8f37b2ada2699bb2" | "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" | "Es9vMFrzaCERmJfrF4H2FYD4KCo3LwC1uix9YEaQ8t1v" | "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";
|
|
5
|
+
decimals: 6 | 18;
|
|
6
|
+
metadata: {
|
|
7
|
+
coingeckoId: "dai" | "euro-coin" | "paypal-usd" | "tether" | "usd-coin";
|
|
8
|
+
};
|
|
9
|
+
name: "Binance-Peg USD Coin" | "Dai Stablecoin" | "Euro Coin" | "PayPal USD" | "Tether USD" | "USD Coin";
|
|
10
|
+
standard: "BEP-20" | "ERC-20" | "SPL" | "TRC-20";
|
|
11
|
+
symbol: "DAI" | "EURC" | "PYUSD" | "USDC" | "USDT";
|
|
12
|
+
tokenKey: string;
|
|
13
|
+
verified: boolean;
|
|
14
|
+
}[];
|
|
15
|
+
addressFormat: "evm" | "solana" | "tron";
|
|
16
|
+
id: "eip155:1" | "eip155:56" | "eip155:8453" | "solana:mainnet" | "tron:mainnet";
|
|
17
|
+
kind: "evm" | "solana" | "tron";
|
|
18
|
+
name: "BNB Smart Chain" | "Base" | "Ethereum" | "Solana" | "Tron";
|
|
19
|
+
providerIds: {
|
|
20
|
+
readonly across: '1';
|
|
21
|
+
readonly bridge: 'ethereum';
|
|
22
|
+
readonly bungee: '1';
|
|
23
|
+
readonly lifi: '1';
|
|
24
|
+
readonly relay: '1';
|
|
25
|
+
} | {
|
|
26
|
+
readonly across: '8453';
|
|
27
|
+
readonly bridge: 'base';
|
|
28
|
+
readonly bungee: '8453';
|
|
29
|
+
readonly lifi: '8453';
|
|
30
|
+
readonly relay: '8453';
|
|
31
|
+
} | {
|
|
32
|
+
readonly across: '56';
|
|
33
|
+
readonly bungee: '56';
|
|
34
|
+
readonly lifi: '56';
|
|
35
|
+
readonly relay: '56';
|
|
36
|
+
} | {
|
|
37
|
+
readonly bridge: 'solana';
|
|
38
|
+
readonly relay: 'solana';
|
|
39
|
+
} | {
|
|
40
|
+
readonly bridge: 'tron';
|
|
41
|
+
readonly relay: 'tron';
|
|
42
|
+
};
|
|
43
|
+
}[];
|
|
44
|
+
/** Lists providers, optionally filtered by one provider capability. */
|
|
45
|
+
export declare function listProviders(options?: listProviders.Options): {
|
|
46
|
+
capabilities: "fundingRoutes"[];
|
|
47
|
+
id: "across" | "bridge" | "bungee" | "lifi" | "relay";
|
|
48
|
+
kind: "aggregator" | "enterpriseTransfer" | "intentBridge" | "solverNetwork";
|
|
49
|
+
name: "Across" | "Bridge.xyz" | "Bungee" | "LI.FI" | "Relay";
|
|
50
|
+
requiresApiKey: boolean;
|
|
51
|
+
status: "inventoryOnly" | "planned";
|
|
52
|
+
}[];
|
|
53
|
+
export declare namespace listProviders {
|
|
54
|
+
/** Options for listing providers. */
|
|
55
|
+
type Options = {
|
|
56
|
+
/** Provider capability to require. */
|
|
57
|
+
capability?: Capability | undefined;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Lists static funding route candidates for a normalized caller request. */
|
|
61
|
+
export declare function listRoutes(options: listRoutes.Options): {
|
|
62
|
+
destinationChain: {
|
|
63
|
+
readonly addressFormat: 'evm';
|
|
64
|
+
readonly id: 'eip155:4217';
|
|
65
|
+
readonly kind: 'evm';
|
|
66
|
+
readonly name: 'Tempo';
|
|
67
|
+
};
|
|
68
|
+
destinationToken: {
|
|
69
|
+
address: "0x20c0000000000000000000000000000000000000" | "0x20c00000000000000000000014f22ca97301eb73" | "0x20c0000000000000000000001621e21f71cf12fb" | "0x20c0000000000000000000003554d28269e0f3c2" | "0x20c000000000000000000000b9537d11c60e8b50";
|
|
70
|
+
decimals: 6;
|
|
71
|
+
metadata: {};
|
|
72
|
+
name: "Bridged EURC" | "Bridged USDC (Stargate)" | "USDT0" | "frxUSD" | "pathUSD";
|
|
73
|
+
standard: "TIP-20";
|
|
74
|
+
symbol: "EURC.e" | "USDC.e" | "USDT0" | "frxUSD" | "pathUSD";
|
|
75
|
+
tokenKey: string;
|
|
76
|
+
verified: boolean;
|
|
77
|
+
};
|
|
78
|
+
id: string;
|
|
79
|
+
provider: {
|
|
80
|
+
id: "across" | "bridge" | "bungee" | "lifi" | "relay";
|
|
81
|
+
kind: "aggregator" | "enterpriseTransfer" | "intentBridge" | "solverNetwork";
|
|
82
|
+
name: "Across" | "Bridge.xyz" | "Bungee" | "LI.FI" | "Relay";
|
|
83
|
+
requiresApiKey: boolean;
|
|
84
|
+
};
|
|
85
|
+
quality: {
|
|
86
|
+
availableVolumeUsd: null;
|
|
87
|
+
estimatedSeconds: null;
|
|
88
|
+
feeBps: null;
|
|
89
|
+
historicalVolumeUsd24h: null;
|
|
90
|
+
instantVolumeUsd: null;
|
|
91
|
+
liquiditySource: string;
|
|
92
|
+
score: null;
|
|
93
|
+
tier: 'unknown';
|
|
94
|
+
};
|
|
95
|
+
sourceAmount: {
|
|
96
|
+
amount: string;
|
|
97
|
+
formatted: string;
|
|
98
|
+
usd: null;
|
|
99
|
+
};
|
|
100
|
+
sourceChain: {
|
|
101
|
+
addressFormat: "evm" | "solana" | "tron";
|
|
102
|
+
id: "eip155:1" | "eip155:56" | "eip155:8453" | "solana:mainnet" | "tron:mainnet";
|
|
103
|
+
kind: "evm" | "solana" | "tron";
|
|
104
|
+
name: "BNB Smart Chain" | "Base" | "Ethereum" | "Solana" | "Tron";
|
|
105
|
+
providerIds: {
|
|
106
|
+
readonly across: '1';
|
|
107
|
+
readonly bridge: 'ethereum';
|
|
108
|
+
readonly bungee: '1';
|
|
109
|
+
readonly lifi: '1';
|
|
110
|
+
readonly relay: '1';
|
|
111
|
+
} | {
|
|
112
|
+
readonly across: '8453';
|
|
113
|
+
readonly bridge: 'base';
|
|
114
|
+
readonly bungee: '8453';
|
|
115
|
+
readonly lifi: '8453';
|
|
116
|
+
readonly relay: '8453';
|
|
117
|
+
} | {
|
|
118
|
+
readonly across: '56';
|
|
119
|
+
readonly bungee: '56';
|
|
120
|
+
readonly lifi: '56';
|
|
121
|
+
readonly relay: '56';
|
|
122
|
+
} | {
|
|
123
|
+
readonly bridge: 'solana';
|
|
124
|
+
readonly relay: 'solana';
|
|
125
|
+
} | {
|
|
126
|
+
readonly bridge: 'tron';
|
|
127
|
+
readonly relay: 'tron';
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
sourceToken: {
|
|
131
|
+
address: "0x1abaea1f7c830bd89acc67ec4af516284b1bc33c" | "0x55d398326f99059ff775485246999027b3197955" | "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" | "0x6b175474e89094c44da98b954eedeac495271d0f" | "0x6c3ea9036406852006290770bedfcaba0e23a0e8" | "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" | "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" | "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" | "0xdac17f958d2ee523a2206206994597c13d831ec7" | "0xfde4c96c8593536e31f229ea8f37b2ada2699bb2" | "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" | "Es9vMFrzaCERmJfrF4H2FYD4KCo3LwC1uix9YEaQ8t1v" | "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";
|
|
132
|
+
decimals: 6 | 18;
|
|
133
|
+
metadata: {
|
|
134
|
+
coingeckoId: "dai" | "euro-coin" | "paypal-usd" | "tether" | "usd-coin";
|
|
135
|
+
};
|
|
136
|
+
name: "Binance-Peg USD Coin" | "Dai Stablecoin" | "Euro Coin" | "PayPal USD" | "Tether USD" | "USD Coin";
|
|
137
|
+
standard: "BEP-20" | "ERC-20" | "SPL" | "TRC-20";
|
|
138
|
+
symbol: "DAI" | "EURC" | "PYUSD" | "USDC" | "USDT";
|
|
139
|
+
tokenKey: string;
|
|
140
|
+
verified: boolean;
|
|
141
|
+
};
|
|
142
|
+
status: 'unknown';
|
|
143
|
+
}[];
|
|
144
|
+
export declare namespace listRoutes {
|
|
145
|
+
/** Options for listing funding routes. */
|
|
146
|
+
type Options = {
|
|
147
|
+
/** Optional Tempo destination token symbol, address, or token key. */
|
|
148
|
+
destinationToken?: string | undefined;
|
|
149
|
+
/** Maximum number of route candidates to return. */
|
|
150
|
+
limit: number;
|
|
151
|
+
/** Optional provider id filter. */
|
|
152
|
+
provider?: string | undefined;
|
|
153
|
+
/** Source amount as supplied by the caller. */
|
|
154
|
+
sourceAmount: string;
|
|
155
|
+
/** Unit used by {@link sourceAmount}. */
|
|
156
|
+
sourceAmountUnits: SourceAmountUnits;
|
|
157
|
+
/** Chain alias or CAIP-2 source chain id. */
|
|
158
|
+
sourceChain: string;
|
|
159
|
+
/** Source token symbol, contract address, mint, or Tempo token key. */
|
|
160
|
+
sourceToken: string;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/** Provider capability identifiers accepted by the generic provider catalog. */
|
|
164
|
+
export type Capability = 'fundingRoutes';
|
|
165
|
+
/** Source amount unit accepted by the funding route request. */
|
|
166
|
+
export type SourceAmountUnits = 'baseUnits' | 'decimal';
|
|
167
|
+
/** Error thrown when the caller supplies an unsupported destination token. */
|
|
168
|
+
export declare class UnsupportedDestinationTokenError extends Error {
|
|
169
|
+
name: string;
|
|
170
|
+
}
|
|
171
|
+
/** Error thrown when the caller supplies an invalid source amount. */
|
|
172
|
+
export declare class InvalidAmountError extends Error {
|
|
173
|
+
name: string;
|
|
174
|
+
}
|
|
175
|
+
/** Error thrown when the caller filters to an unknown provider. */
|
|
176
|
+
export declare class UnsupportedProviderError extends Error {
|
|
177
|
+
name: string;
|
|
178
|
+
}
|
|
179
|
+
/** Error thrown when the caller supplies an unsupported source chain. */
|
|
180
|
+
export declare class UnsupportedSourceChainError extends Error {
|
|
181
|
+
name: string;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=FundingRoutes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FundingRoutes.d.ts","sourceRoot":"","sources":["../../src/internal/FundingRoutes.ts"],"names":[],"mappings":"AAkTA,qEAAqE;AACrE,wBAAgB,UAAU;;;;;YAsJV,WAAW;;;;;;;;;;;;;yBArbb,GAAG;yBACH,UAAU;yBACV,GAAG;uBACL,GAAG;wBACF,GAAG;;yBAqDF,MAAM;yBACN,MAAM;yBACN,MAAM;uBACR,MAAM;wBACL,MAAM;;yBAqCL,IAAI;yBACJ,IAAI;uBACN,IAAI;wBACH,IAAI;;yBA6BH,QAAQ;wBACT,QAAQ;;yBA6BP,MAAM;wBACP,MAAM;;IAmIlB;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAa,CAAC,OAAY;;;;;;;IAMhE;AAED,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,qCAAqC;IACrC,KAAK,OAAO,GAAG;QACb,sCAAsC;QACtC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;KACpC,CAAA;CACF;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO;;gCA1UrC,KAAK;qBAChB,aAAa;uBACX,KAAK;uBACL,OAAO;;;;;;;;;;;;;;;;;;;;QA4WL,kBAAkB;QAClB,gBAAgB;QAChB,MAAM;QACN,sBAAsB;QACtB,gBAAgB;QAChB,eAAe;QACf,KAAK;QACL,IAAI,EAAE,SAAS;;;;;;;;;;;;;6BApWX,GAAG;6BACH,UAAU;6BACV,GAAG;2BACL,GAAG;4BACF,GAAG;;6BAqDF,MAAM;6BACN,MAAM;6BACN,MAAM;2BACR,MAAM;4BACL,MAAM;;6BAqCL,IAAI;6BACJ,IAAI;2BACN,IAAI;4BACH,IAAI;;6BA6BH,QAAQ;4BACT,QAAQ;;6BA6BP,MAAM;4BACP,MAAM;;;;;;;YAoRH,WAAW;;;;;;;;YA5EX,SAAS;IAGxB;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,0CAA0C;IAC1C,KAAK,OAAO,GAAG;QACb,sEAAsE;QACtE,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACrC,oDAAoD;QACpD,KAAK,EAAE,MAAM,CAAA;QACb,mCAAmC;QACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,+CAA+C;QAC/C,YAAY,EAAE,MAAM,CAAA;QACpB,yCAAyC;QACzC,iBAAiB,EAAE,iBAAiB,CAAA;QACpC,6CAA6C;QAC7C,WAAW,EAAE,MAAM,CAAA;QACnB,uEAAuE;QACvE,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAAG,eAAe,CAAA;AAExC,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAAA;AA0JvD,8EAA8E;AAC9E,qBAAa,gCAAiC,SAAQ,KAAK;IAChD,IAAI,SAAmD;CACjE;AAED,sEAAsE;AACtE,qBAAa,kBAAmB,SAAQ,KAAK;IAClC,IAAI,SAAqC;CACnD;AAED,mEAAmE;AACnE,qBAAa,wBAAyB,SAAQ,KAAK;IACxC,IAAI,SAA2C;CACzD;AAED,yEAAyE;AACzE,qBAAa,2BAA4B,SAAQ,KAAK;IAC3C,IAAI,SAA8C;CAC5D"}
|