tapimo 0.4.1 → 0.4.4
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 +1 -1
- package/dist/ApiKey.d.ts +1 -9
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +2 -3
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +53 -27
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +32 -17
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +1990 -1442
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +23 -9
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts +10 -0
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +4 -0
- package/dist/Assets.js.map +1 -1
- package/dist/Auth.d.ts +2 -1
- package/dist/Auth.d.ts.map +1 -1
- package/dist/Auth.js +2 -1
- package/dist/Auth.js.map +1 -1
- package/dist/Scope.d.ts +40 -15
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +44 -13
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +560 -9
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +38 -6
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +10 -24
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +10 -3
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +833 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -0
- package/dist/admin/apps/organizations.js +733 -0
- package/dist/admin/apps/organizations.js.map +1 -0
- package/dist/admin/apps/scopes.d.ts +8 -0
- package/dist/admin/apps/scopes.d.ts.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.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +53 -13
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +10 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +8 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +9 -0
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +14 -0
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/data/App.d.ts +1304 -1304
- package/dist/apps/data/FundingRouteProviders.d.ts +4 -22
- package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -1
- package/dist/apps/data/FundingRouteProviders.js +10 -120
- package/dist/apps/data/FundingRouteProviders.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +38 -38
- package/dist/apps/data/routes/addresses.d.ts +24 -24
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/fee-amm.d.ts +20 -20
- package/dist/apps/data/routes/funding.js +7 -7
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +5 -5
- package/dist/apps/data/routes/tokenlist.d.ts +12 -12
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/management/App.d.ts +808 -267
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +2 -2
- package/dist/apps/management/Billing.d.ts +3 -0
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +7 -2
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +116 -100
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +41 -30
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +182 -50
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +14 -14
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/invitations.d.ts +93 -20
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +12 -15
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/members.d.ts +89 -18
- package/dist/apps/management/routes/members.d.ts.map +1 -1
- package/dist/apps/management/routes/members.js +10 -10
- package/dist/apps/management/routes/members.js.map +1 -1
- package/dist/apps/management/routes/orgs.d.ts +100 -40
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +19 -19
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +122 -33
- package/dist/apps/management/routes/projects.d.ts.map +1 -1
- package/dist/apps/management/routes/projects.js +12 -13
- package/dist/apps/management/routes/projects.js.map +1 -1
- package/dist/apps/management/routes/scopes.d.ts +4 -18
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +6 -7
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +63 -19
- package/dist/apps/management/routes/usage.d.ts.map +1 -1
- package/dist/apps/management/routes/usage.js +9 -10
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +38 -4
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/relay/App.d.ts +26 -4
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +17 -14
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/cloudflare.d.ts +2 -0
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +4 -0
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +5 -3
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +52 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +13 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +16 -1
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/adminAuditLogs.d.ts +27 -0
- package/dist/db/tables/adminAuditLogs.d.ts.map +1 -0
- package/dist/db/tables/adminAuditLogs.js +19 -0
- package/dist/db/tables/adminAuditLogs.js.map +1 -0
- package/dist/db/tables/invitations.d.ts +1 -1
- package/dist/db/tables/invitations.d.ts.map +1 -1
- package/dist/db/tables/memberships.d.ts +32 -4
- package/dist/db/tables/memberships.d.ts.map +1 -1
- package/dist/db/tables/memberships.js +31 -0
- package/dist/db/tables/memberships.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +43 -1
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +103 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +25 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +22 -0
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/webhookDeliveries.d.ts +26 -0
- package/dist/db/tables/webhookDeliveries.d.ts.map +1 -1
- package/dist/db/tables/webhookDeliveries.js +37 -0
- package/dist/db/tables/webhookDeliveries.js.map +1 -1
- package/dist/internal/Auth.d.ts +46 -40
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +118 -69
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cursor.d.ts +1 -1
- package/dist/internal/Cursor.d.ts.map +1 -1
- package/dist/internal/Cursor.js +4 -0
- package/dist/internal/Cursor.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +2 -0
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/Errors.d.ts +6 -0
- package/dist/internal/Errors.d.ts.map +1 -0
- package/dist/internal/Errors.js +16 -0
- package/dist/internal/Errors.js.map +1 -0
- package/dist/internal/FundingRoutes.d.ts +15 -43
- package/dist/internal/FundingRoutes.d.ts.map +1 -1
- package/dist/internal/FundingRoutes.js +8 -17
- package/dist/internal/FundingRoutes.js.map +1 -1
- package/dist/internal/Log.d.ts +16 -1
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +5 -3
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/Store.d.ts +61 -16
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +72 -17
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Viem.d.ts +1 -1
- package/dist/internal/index.d.ts +27 -0
- package/dist/internal/index.d.ts.map +1 -0
- package/dist/internal/index.js +27 -0
- package/dist/internal/index.js.map +1 -0
- package/package.json +8 -3
- package/src/ApiKey.ts +2 -3
- package/src/ApiKeys.ts +95 -17
- package/src/App.test.ts +104 -6
- package/src/App.ts +29 -9
- package/src/Assets.ts +8 -0
- package/src/Auth.test-d.ts +36 -0
- package/src/Auth.ts +20 -1
- package/src/Client.test-d.ts +17 -17
- package/src/Scope.test.ts +34 -0
- package/src/Scope.ts +53 -17
- package/src/admin/App.test.ts +33 -3
- package/src/admin/App.ts +49 -14
- package/src/admin/apps/api-keys.ts +10 -3
- package/src/admin/apps/organizations.test.ts +455 -0
- package/src/admin/apps/organizations.ts +953 -0
- package/src/admin/apps/scopes.test.ts +10 -0
- package/src/admin/ui/plugin.ts +1 -1
- package/src/admin/ui/src/components/MobileProfile.tsx +2 -0
- package/src/admin/ui/src/components/ThemeToggle.tsx +20 -0
- package/src/admin/ui/src/lib/api-keys.ts +36 -19
- package/src/admin/ui/src/lib/config.ts +2 -3
- package/src/admin/ui/src/lib/organizations.test.ts +89 -0
- package/src/admin/ui/src/lib/organizations.ts +262 -0
- package/src/admin/ui/src/lib/query-client.ts +3 -1
- package/src/admin/ui/src/lib/theme.ts +57 -0
- package/src/admin/ui/src/routeTree.gen.ts +47 -4
- package/src/admin/ui/src/routes/__root.tsx +18 -3
- package/src/admin/ui/src/routes/api-keys.tsx +52 -7
- package/src/admin/ui/src/routes/index.tsx +1 -1
- package/src/admin/ui/src/routes/organizations.tsx +158 -0
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +710 -0
- package/src/admin/ui/src/start.ts +6 -0
- package/src/admin/ui.generated.ts +63 -13
- package/src/analytics/Analytics.ts +25 -0
- package/src/analytics/tables/requestEvents.ts +33 -0
- package/src/apps/composition.test.ts +82 -2
- package/src/apps/data/FundingRouteProviders.test.ts +37 -93
- package/src/apps/data/FundingRouteProviders.ts +14 -161
- package/src/apps/data/routes/funding.test.ts +7 -42
- package/src/apps/data/routes/funding.ts +8 -8
- package/src/apps/data/routes/indexer.test.ts +2 -2
- package/src/apps/data/routes/webhooks.test.ts +2 -2
- package/src/apps/management/App.ts +2 -2
- package/src/apps/management/Billing.ts +10 -2
- package/src/apps/management/routes/api-keys.test.ts +137 -1
- package/src/apps/management/routes/api-keys.ts +63 -38
- package/src/apps/management/routes/billing.ts +14 -14
- package/src/apps/management/routes/invitations.test.ts +102 -1
- package/src/apps/management/routes/invitations.ts +13 -15
- package/src/apps/management/routes/members.ts +10 -10
- package/src/apps/management/routes/orgs.test.ts +78 -16
- package/src/apps/management/routes/orgs.ts +21 -20
- package/src/apps/management/routes/projects.ts +12 -13
- package/src/apps/management/routes/scopes.test.ts +16 -0
- package/src/apps/management/routes/scopes.ts +6 -7
- package/src/apps/management/routes/usage.ts +9 -14
- package/src/apps/mcp.test.ts +72 -7
- package/src/apps/mcp.ts +46 -4
- package/src/apps/relay/App.test.ts +23 -18
- package/src/apps/relay/App.ts +35 -14
- package/src/cloudflare.ts +5 -0
- package/src/db/Db.ts +59 -3
- package/src/db/Schema.ts +20 -1
- package/src/db/tables/adminAuditLogs.ts +47 -0
- package/src/db/tables/invitations.ts +1 -1
- package/src/db/tables/memberships.ts +59 -3
- package/src/db/tables/organizations.ts +148 -1
- package/src/db/tables/projects.ts +47 -0
- package/src/db/tables/webhookDeliveries.ts +83 -0
- package/src/internal/Auth.test.ts +571 -23
- package/src/internal/Auth.ts +166 -94
- package/src/internal/Cursor.test.ts +10 -0
- package/src/internal/Cursor.ts +5 -1
- package/src/internal/EdgeCache.test.ts +11 -0
- package/src/internal/EdgeCache.ts +2 -0
- package/src/internal/FundingRoutes.test.ts +8 -8
- package/src/internal/FundingRoutes.ts +25 -29
- package/src/internal/Log.test.ts +41 -3
- package/src/internal/Log.ts +23 -4
- package/src/internal/Store.test-d.ts +15 -0
- package/src/internal/Store.test.ts +153 -2
- package/src/internal/Store.ts +157 -41
- package/src/internal/index.test.ts +34 -0
- package/src/internal/index.ts +26 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/internal/Store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/internal/Store.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/Viem.d.ts
CHANGED
|
@@ -518,7 +518,7 @@ export declare const chains: ({
|
|
|
518
518
|
prepareTransactionRequest: [(r: import("viem").PrepareTransactionRequestParameters, { client, phase }: {
|
|
519
519
|
client: import("viem").Client;
|
|
520
520
|
phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
|
|
521
|
-
}) => Promise<import("viem").PrepareTransactionRequestParameters
|
|
521
|
+
}) => Promise<import("viem").PrepareTransactionRequestParameters<import("viem").Chain | undefined, import("viem").Account | undefined, import("viem").Chain | undefined, `0x${string}` | import("viem").Account | undefined, import("viem").PrepareTransactionRequestRequest<import("viem").Chain | undefined, import("viem").Chain | undefined, import("viem").Chain | undefined>>>, {
|
|
522
522
|
readonly runAt: readonly ["beforeFillTransaction", "afterFillParameters"];
|
|
523
523
|
}];
|
|
524
524
|
serializers: {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * as Auth from './Auth.js';
|
|
2
|
+
export * as Cache from './Cache.js';
|
|
3
|
+
export * as Cursor from './Cursor.js';
|
|
4
|
+
export * as EdgeCache from './EdgeCache.js';
|
|
5
|
+
export * as Errors from './Errors.js';
|
|
6
|
+
export * as Fees from './Fees.js';
|
|
7
|
+
export * as FundingRoutes from './FundingRoutes.js';
|
|
8
|
+
export * as Id from './Id.js';
|
|
9
|
+
export * as Log from './Log.js';
|
|
10
|
+
export * as MetricSink from './MetricSink.js';
|
|
11
|
+
export * as Mpp from './Mpp.js';
|
|
12
|
+
export * as OpenApi from './OpenApi.js';
|
|
13
|
+
export * as Path from './Path.js';
|
|
14
|
+
export * as RateLimit from './RateLimit.js';
|
|
15
|
+
export * as Response from './Response.js';
|
|
16
|
+
export * as RpcSchema from './RpcSchema.js';
|
|
17
|
+
export * as Schema from './Schema.js';
|
|
18
|
+
export * as Store from './Store.js';
|
|
19
|
+
export * as Tidx from './Tidx.js';
|
|
20
|
+
export * as Timing from './Timing.js';
|
|
21
|
+
export * as Ttl from './Ttl.js';
|
|
22
|
+
export * as Value from './Value.js';
|
|
23
|
+
export * as VerifiedTokens from './VerifiedTokens.js';
|
|
24
|
+
export * as Viem from './Viem.js';
|
|
25
|
+
export * as WebhookDestination from './WebhookDestination.js';
|
|
26
|
+
export * as Webhooks from './Webhooks.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * as Auth from './Auth.js';
|
|
2
|
+
export * as Cache from './Cache.js';
|
|
3
|
+
export * as Cursor from './Cursor.js';
|
|
4
|
+
export * as EdgeCache from './EdgeCache.js';
|
|
5
|
+
export * as Errors from './Errors.js';
|
|
6
|
+
export * as Fees from './Fees.js';
|
|
7
|
+
export * as FundingRoutes from './FundingRoutes.js';
|
|
8
|
+
export * as Id from './Id.js';
|
|
9
|
+
export * as Log from './Log.js';
|
|
10
|
+
export * as MetricSink from './MetricSink.js';
|
|
11
|
+
export * as Mpp from './Mpp.js';
|
|
12
|
+
export * as OpenApi from './OpenApi.js';
|
|
13
|
+
export * as Path from './Path.js';
|
|
14
|
+
export * as RateLimit from './RateLimit.js';
|
|
15
|
+
export * as Response from './Response.js';
|
|
16
|
+
export * as RpcSchema from './RpcSchema.js';
|
|
17
|
+
export * as Schema from './Schema.js';
|
|
18
|
+
export * as Store from './Store.js';
|
|
19
|
+
export * as Tidx from './Tidx.js';
|
|
20
|
+
export * as Timing from './Timing.js';
|
|
21
|
+
export * as Ttl from './Ttl.js';
|
|
22
|
+
export * as Value from './Value.js';
|
|
23
|
+
export * as VerifiedTokens from './VerifiedTokens.js';
|
|
24
|
+
export * as Viem from './Viem.js';
|
|
25
|
+
export * as WebhookDestination from './WebhookDestination.js';
|
|
26
|
+
export * as Webhooks from './Webhooks.js';
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tapimo",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.4",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"accounts": "^0.15.1",
|
|
19
19
|
"hono": "^4.12.26",
|
|
20
20
|
"hono-openapi": "^1.3.0",
|
|
21
|
-
"incur": "^0.4.
|
|
21
|
+
"incur": "^0.4.15",
|
|
22
22
|
"jose": "^6.2.3",
|
|
23
23
|
"kysely": "^0.29.2",
|
|
24
|
-
"mppx": "
|
|
24
|
+
"mppx": "0.8.9",
|
|
25
25
|
"nanoid": "^5.1.11",
|
|
26
26
|
"ox": "0.14.30",
|
|
27
27
|
"pg": "^8.22.0",
|
|
@@ -65,6 +65,11 @@
|
|
|
65
65
|
"types": "./dist/apps/docs/index.d.ts",
|
|
66
66
|
"default": "./dist/apps/docs/index.js"
|
|
67
67
|
},
|
|
68
|
+
"./internal": {
|
|
69
|
+
"src": "./src/internal/index.ts",
|
|
70
|
+
"types": "./dist/internal/index.d.ts",
|
|
71
|
+
"default": "./dist/internal/index.js"
|
|
72
|
+
},
|
|
68
73
|
"./management": {
|
|
69
74
|
"src": "./src/apps/management/index.ts",
|
|
70
75
|
"types": "./dist/apps/management/index.d.ts",
|
package/src/ApiKey.ts
CHANGED
|
@@ -16,7 +16,6 @@ import * as z from 'zod/mini'
|
|
|
16
16
|
|
|
17
17
|
import * as Id from './internal/Id.js'
|
|
18
18
|
import * as RateLimit from './internal/RateLimit.js'
|
|
19
|
-
import * as Scope from './Scope.js'
|
|
20
19
|
|
|
21
20
|
/** Zod schemas owned by the API-key module. */
|
|
22
21
|
export namespace schema {
|
|
@@ -40,7 +39,7 @@ export namespace schema {
|
|
|
40
39
|
id: z.string().check(z.describe('Stable key id.')),
|
|
41
40
|
name: z.optional(z.string()).check(z.describe('Human-readable key name.')),
|
|
42
41
|
orgId: z.string().check(z.describe('Owning organization id.')),
|
|
43
|
-
projectId: z.optional(z.string()).check(z.describe('
|
|
42
|
+
projectId: z.optional(z.string()).check(z.describe('Attributed project id (`prj_…`).')),
|
|
44
43
|
rateLimits: z
|
|
45
44
|
.optional(z.record(z.string(), RateLimit.schema.Limit))
|
|
46
45
|
.check(
|
|
@@ -49,7 +48,7 @@ export namespace schema {
|
|
|
49
48
|
),
|
|
50
49
|
),
|
|
51
50
|
scopes: z
|
|
52
|
-
.readonly(z.array(z.
|
|
51
|
+
.readonly(z.array(z.string().check(z.minLength(1))))
|
|
53
52
|
.check(z.describe("Granted scopes. '*' grants all scopes.")),
|
|
54
53
|
})
|
|
55
54
|
}
|
package/src/ApiKeys.ts
CHANGED
|
@@ -15,14 +15,14 @@ import * as z from 'zod/mini'
|
|
|
15
15
|
|
|
16
16
|
import * as ApiKey from './ApiKey.js'
|
|
17
17
|
import type * as Store from './internal/Store.js'
|
|
18
|
+
import * as Scope from './Scope.js'
|
|
18
19
|
|
|
19
20
|
/** Zod schemas owned by the API-keys module. */
|
|
20
21
|
export namespace schema {
|
|
21
22
|
/**
|
|
22
23
|
* Fields accepted when minting a key, and the single source of truth for the
|
|
23
|
-
* {@link MintInput} type and
|
|
24
|
-
*
|
|
25
|
-
* lockstep with the resolved shape.
|
|
24
|
+
* {@link MintInput} type and structural validation. {@link mint} validates
|
|
25
|
+
* scope identifiers against its configured catalog.
|
|
26
26
|
*/
|
|
27
27
|
export const MintInput = z.extend(z.omit(ApiKey.schema.ApiKey, { id: true }), {
|
|
28
28
|
createdBy: z
|
|
@@ -78,12 +78,19 @@ export type MintResult = {
|
|
|
78
78
|
*
|
|
79
79
|
* @param state - The KV state store holding key records.
|
|
80
80
|
* @param input - The key to mint.
|
|
81
|
+
* @param options - Scope catalog used for validation.
|
|
81
82
|
* @returns The persisted record and its one-time token.
|
|
82
83
|
*/
|
|
83
|
-
export async function mint(
|
|
84
|
+
export async function mint(
|
|
85
|
+
state: Store.State,
|
|
86
|
+
input: MintInput,
|
|
87
|
+
options: mint.Options = {},
|
|
88
|
+
): Promise<MintResult> {
|
|
84
89
|
const valid = schema.MintInput.safeParse(input)
|
|
85
90
|
if (!valid.success) throw new Error(`invalid API key input: ${z.prettifyError(valid.error)}`)
|
|
86
91
|
const data = valid.data
|
|
92
|
+
if (!validScopes(data.scopes, options.scopeCatalog ?? Scope.catalog))
|
|
93
|
+
throw new Error('invalid API key input: unknown scope')
|
|
87
94
|
|
|
88
95
|
const time = new Date()
|
|
89
96
|
const token = ApiKey.generateToken(data.environment)
|
|
@@ -121,6 +128,14 @@ export async function mint(state: Store.State, input: MintInput): Promise<MintRe
|
|
|
121
128
|
return { record, token }
|
|
122
129
|
}
|
|
123
130
|
|
|
131
|
+
export declare namespace mint {
|
|
132
|
+
/** Options for {@link mint}. */
|
|
133
|
+
type Options = {
|
|
134
|
+
/** Scope catalog accepted while minting the key. */
|
|
135
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
124
139
|
/**
|
|
125
140
|
* Resolves a plaintext API key token to its metadata, or `null`. Expiry is
|
|
126
141
|
* enforced on read — not just via the store's native TTL — so it holds on
|
|
@@ -128,10 +143,23 @@ export async function mint(state: Store.State, input: MintInput): Promise<MintRe
|
|
|
128
143
|
*
|
|
129
144
|
* @param state - The KV state store holding key records.
|
|
130
145
|
* @param token - The presented plaintext token.
|
|
146
|
+
* @param options - Scope catalog used for validation.
|
|
131
147
|
* @returns The resolved key metadata, or `null`.
|
|
132
148
|
*/
|
|
133
|
-
export async function resolve(
|
|
134
|
-
|
|
149
|
+
export async function resolve(
|
|
150
|
+
state: Store.State,
|
|
151
|
+
token: string,
|
|
152
|
+
options: resolve.Options = {},
|
|
153
|
+
): Promise<ApiKey.ApiKey | null> {
|
|
154
|
+
return read(state, ApiKey.keyFor(token), Date.now(), options.scopeCatalog ?? Scope.catalog)
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export declare namespace resolve {
|
|
158
|
+
/** Options for {@link resolve}. */
|
|
159
|
+
type Options = {
|
|
160
|
+
/** Scope catalog accepted while resolving the key. */
|
|
161
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
162
|
+
}
|
|
135
163
|
}
|
|
136
164
|
|
|
137
165
|
/**
|
|
@@ -139,12 +167,25 @@ export async function resolve(state: Store.State, token: string): Promise<ApiKey
|
|
|
139
167
|
*
|
|
140
168
|
* @param state - The KV state store holding key records.
|
|
141
169
|
* @param id - The key id (`key_…`).
|
|
170
|
+
* @param options - Scope catalog used for validation.
|
|
142
171
|
* @returns The record, or `null`.
|
|
143
172
|
*/
|
|
144
|
-
export async function get(
|
|
173
|
+
export async function get(
|
|
174
|
+
state: Store.State,
|
|
175
|
+
id: string,
|
|
176
|
+
options: get.Options = {},
|
|
177
|
+
): Promise<Record | null> {
|
|
145
178
|
const recordKey = await state.get(idKeyFor(id))
|
|
146
179
|
if (!recordKey) return null
|
|
147
|
-
return read(state, recordKey, Date.now())
|
|
180
|
+
return read(state, recordKey, Date.now(), options.scopeCatalog ?? Scope.catalog)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export declare namespace get {
|
|
184
|
+
/** Options for {@link get}. */
|
|
185
|
+
type Options = {
|
|
186
|
+
/** Scope catalog accepted while reading the key. */
|
|
187
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
188
|
+
}
|
|
148
189
|
}
|
|
149
190
|
|
|
150
191
|
/**
|
|
@@ -162,7 +203,7 @@ export async function list(
|
|
|
162
203
|
const { keys } = await state.list({ prefix: ApiKey.recordPrefix })
|
|
163
204
|
const records: Record[] = []
|
|
164
205
|
for (const { name } of keys) {
|
|
165
|
-
const record = await read(state, name, Date.now())
|
|
206
|
+
const record = await read(state, name, Date.now(), options.scopeCatalog ?? Scope.catalog)
|
|
166
207
|
if (record && (!options.orgId || record.orgId === options.orgId)) records.push(record)
|
|
167
208
|
}
|
|
168
209
|
// Newest first; ids are random, so sort by creation time.
|
|
@@ -174,6 +215,8 @@ export declare namespace list {
|
|
|
174
215
|
type Options = {
|
|
175
216
|
/** Restrict results to keys owned by this organization. */
|
|
176
217
|
orgId?: string | undefined
|
|
218
|
+
/** Scope catalog accepted while listing keys. */
|
|
219
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
177
220
|
}
|
|
178
221
|
}
|
|
179
222
|
|
|
@@ -196,7 +239,9 @@ export async function listByOrg(
|
|
|
196
239
|
const records: Record[] = []
|
|
197
240
|
for (const { name } of keys) {
|
|
198
241
|
const recordKey = await state.get(name)
|
|
199
|
-
const record = recordKey
|
|
242
|
+
const record = recordKey
|
|
243
|
+
? await read(state, recordKey, Date.now(), options.scopeCatalog ?? Scope.catalog)
|
|
244
|
+
: null
|
|
200
245
|
if (!record) {
|
|
201
246
|
await state.delete(name)
|
|
202
247
|
continue
|
|
@@ -214,6 +259,8 @@ export declare namespace listByOrg {
|
|
|
214
259
|
environment?: 'production' | 'sandbox' | undefined
|
|
215
260
|
/** Restrict results to keys attributed to this project. */
|
|
216
261
|
projectId?: string | undefined
|
|
262
|
+
/** Scope catalog accepted while listing keys. */
|
|
263
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
217
264
|
}
|
|
218
265
|
}
|
|
219
266
|
|
|
@@ -251,16 +298,18 @@ export async function revoke(state: Store.State, id: string): Promise<boolean> {
|
|
|
251
298
|
* @param state - The KV state store holding key records.
|
|
252
299
|
* @param id - The key id (`key_…`).
|
|
253
300
|
* @param input - The attribution to apply.
|
|
301
|
+
* @param options - Scope catalog used for validation.
|
|
254
302
|
* @returns The updated record, or `null` when the key is absent.
|
|
255
303
|
*/
|
|
256
304
|
export async function attribute(
|
|
257
305
|
state: Store.State,
|
|
258
306
|
id: string,
|
|
259
307
|
input: attribute.Input,
|
|
308
|
+
options: attribute.Options = {},
|
|
260
309
|
): Promise<Record | null> {
|
|
261
310
|
const recordKey = await state.get(idKeyFor(id))
|
|
262
311
|
if (!recordKey) return null
|
|
263
|
-
const record = await read(state, recordKey, Date.now())
|
|
312
|
+
const record = await read(state, recordKey, Date.now(), options.scopeCatalog ?? Scope.catalog)
|
|
264
313
|
if (!record) return null
|
|
265
314
|
|
|
266
315
|
const updated: Record = {
|
|
@@ -283,9 +332,15 @@ export declare namespace attribute {
|
|
|
283
332
|
type Input = {
|
|
284
333
|
/** New owning organization id (`org_…`). */
|
|
285
334
|
orgId?: string | undefined
|
|
286
|
-
/** New
|
|
335
|
+
/** New attributed project id (`prj_…`). */
|
|
287
336
|
projectId?: string | undefined
|
|
288
337
|
}
|
|
338
|
+
|
|
339
|
+
/** Options for {@link attribute}. */
|
|
340
|
+
type Options = {
|
|
341
|
+
/** Scope catalog accepted while reading the key. */
|
|
342
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
343
|
+
}
|
|
289
344
|
}
|
|
290
345
|
|
|
291
346
|
/**
|
|
@@ -303,8 +358,8 @@ export async function setBillingActive(
|
|
|
303
358
|
state: Store.State,
|
|
304
359
|
options: setBillingActive.Options,
|
|
305
360
|
): Promise<number> {
|
|
306
|
-
const { active, environment, orgId } = options
|
|
307
|
-
const records = await listByOrg(state, orgId, { environment })
|
|
361
|
+
const { active, environment, orgId, scopeCatalog } = options
|
|
362
|
+
const records = await listByOrg(state, orgId, { environment, scopeCatalog })
|
|
308
363
|
let updated = 0
|
|
309
364
|
for (const record of records) {
|
|
310
365
|
if (record.billingActive === active) continue
|
|
@@ -330,6 +385,8 @@ export declare namespace setBillingActive {
|
|
|
330
385
|
environment: 'production' | 'sandbox'
|
|
331
386
|
/** Owning organization id (`org_…`). */
|
|
332
387
|
orgId: string
|
|
388
|
+
/** Scope catalog accepted while updating keys. */
|
|
389
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
333
390
|
}
|
|
334
391
|
}
|
|
335
392
|
|
|
@@ -339,13 +396,17 @@ export declare namespace setBillingActive {
|
|
|
339
396
|
* themselves are never modified, so existing tokens keep resolving.
|
|
340
397
|
*
|
|
341
398
|
* @param state - The KV state store holding key records.
|
|
399
|
+
* @param options - Scope catalog used for validation.
|
|
342
400
|
* @returns Scanned and indexed record counts.
|
|
343
401
|
*/
|
|
344
|
-
export async function backfill(
|
|
402
|
+
export async function backfill(
|
|
403
|
+
state: Store.State,
|
|
404
|
+
options: backfill.Options = {},
|
|
405
|
+
): Promise<backfill.Result> {
|
|
345
406
|
const { keys } = await state.list({ prefix: ApiKey.recordPrefix })
|
|
346
407
|
let indexed = 0
|
|
347
408
|
for (const { name } of keys) {
|
|
348
|
-
const record = await read(state, name, Date.now())
|
|
409
|
+
const record = await read(state, name, Date.now(), options.scopeCatalog ?? Scope.catalog)
|
|
349
410
|
if (!record) continue
|
|
350
411
|
const ttl =
|
|
351
412
|
record.expiresAt === undefined
|
|
@@ -359,6 +420,12 @@ export async function backfill(state: Store.State): Promise<backfill.Result> {
|
|
|
359
420
|
}
|
|
360
421
|
|
|
361
422
|
export declare namespace backfill {
|
|
423
|
+
/** Options for {@link backfill}. */
|
|
424
|
+
type Options = {
|
|
425
|
+
/** Scope catalog accepted while reading keys. */
|
|
426
|
+
scopeCatalog?: Scope.Catalog | undefined
|
|
427
|
+
}
|
|
428
|
+
|
|
362
429
|
/** Result of {@link backfill}. */
|
|
363
430
|
type Result = {
|
|
364
431
|
/** Records whose index entries were written. */
|
|
@@ -372,7 +439,12 @@ export declare namespace backfill {
|
|
|
372
439
|
* Reads and validates a stored record by storage key. Invalid, corrupt, or
|
|
373
440
|
* expired records (`expiresAt <= now`) resolve to `null`.
|
|
374
441
|
*/
|
|
375
|
-
async function read(
|
|
442
|
+
async function read(
|
|
443
|
+
state: Store.State,
|
|
444
|
+
key: string,
|
|
445
|
+
now: number,
|
|
446
|
+
scopeCatalog: Scope.Catalog,
|
|
447
|
+
): Promise<Record | null> {
|
|
376
448
|
const raw = await state.get(key)
|
|
377
449
|
if (!raw) return null
|
|
378
450
|
const value = (() => {
|
|
@@ -386,10 +458,16 @@ async function read(state: Store.State, key: string, now: number): Promise<Recor
|
|
|
386
458
|
const parsed = schema.Record.safeParse(value)
|
|
387
459
|
if (!parsed.success) return null
|
|
388
460
|
const record = parsed.data
|
|
461
|
+
if (!validScopes(record.scopes, scopeCatalog)) return null
|
|
389
462
|
if (record.expiresAt !== undefined && Date.parse(record.expiresAt) <= now) return null
|
|
390
463
|
return record
|
|
391
464
|
}
|
|
392
465
|
|
|
466
|
+
/** Returns whether every granted scope belongs to the configured catalog. */
|
|
467
|
+
function validScopes(scopes: readonly string[], scopeCatalog: Scope.Catalog): boolean {
|
|
468
|
+
return scopes.every((scope) => scope === Scope.wildcard || Scope.includes(scopeCatalog, scope))
|
|
469
|
+
}
|
|
470
|
+
|
|
393
471
|
/** Storage-key prefix for the `id → recordKey` index. */
|
|
394
472
|
const idPrefix = 'apikey_id:'
|
|
395
473
|
|
package/src/App.test.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as http from 'node:http'
|
|
2
|
+
import { Challenge } from 'mppx'
|
|
2
3
|
import { ApiKeys, App, Metrics, RateLimit, Store } from 'tapimo'
|
|
3
4
|
import * as Docs from 'tapimo/docs'
|
|
4
5
|
import * as Tokens from './apps/data/routes/tokens.js'
|
|
5
6
|
import type * as Log from './internal/Log.js'
|
|
6
7
|
import * as TestApp from '../test/App.js'
|
|
7
8
|
import * as Runtime from '../test/runtime.js'
|
|
9
|
+
import * as Tempo from '../test/Tempo.js'
|
|
8
10
|
|
|
9
11
|
describe('create', () => {
|
|
10
12
|
test('composes default dependencies', async () => {
|
|
@@ -72,6 +74,45 @@ describe('create', () => {
|
|
|
72
74
|
`)
|
|
73
75
|
})
|
|
74
76
|
|
|
77
|
+
test('documents supported API key transports', async () => {
|
|
78
|
+
const app = TestApp.create()
|
|
79
|
+
const spec = await (await app.request('/openapi.json')).json()
|
|
80
|
+
|
|
81
|
+
expect({
|
|
82
|
+
queryApiKey: {
|
|
83
|
+
in: spec.components.securitySchemes.queryApiKey.in,
|
|
84
|
+
name: spec.components.securitySchemes.queryApiKey.name,
|
|
85
|
+
type: spec.components.securitySchemes.queryApiKey.type,
|
|
86
|
+
},
|
|
87
|
+
security: spec.security,
|
|
88
|
+
}).toMatchInlineSnapshot(`
|
|
89
|
+
{
|
|
90
|
+
"queryApiKey": {
|
|
91
|
+
"in": "query",
|
|
92
|
+
"name": "key",
|
|
93
|
+
"type": "apiKey",
|
|
94
|
+
},
|
|
95
|
+
"security": [
|
|
96
|
+
{
|
|
97
|
+
"apiKey": [],
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"queryApiKey": [],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"bearerAuth": [],
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
}
|
|
107
|
+
`)
|
|
108
|
+
expect(spec.paths['/v1/orgs'].get.security).toContainEqual({ queryApiKey: [] })
|
|
109
|
+
expect(spec.paths['/v1/orgs'].get['x-required-scopes']).toMatchInlineSnapshot(`
|
|
110
|
+
[
|
|
111
|
+
"management:read",
|
|
112
|
+
]
|
|
113
|
+
`)
|
|
114
|
+
})
|
|
115
|
+
|
|
75
116
|
test('authenticates a minted store-backed key and rejects after revoke', async () => {
|
|
76
117
|
const store = Store.memory()
|
|
77
118
|
const { record, token } = await ApiKeys.mint(store, {
|
|
@@ -93,7 +134,7 @@ describe('create', () => {
|
|
|
93
134
|
expect(revoked.status).toMatchInlineSnapshot(`401`)
|
|
94
135
|
})
|
|
95
136
|
|
|
96
|
-
test('authenticates via
|
|
137
|
+
test('authenticates via x-api-key header and key query param', async () => {
|
|
97
138
|
const store = Store.memory()
|
|
98
139
|
const { token } = await ApiKeys.mint(store, { orgId: 'org_test', scopes: ['data:read'] })
|
|
99
140
|
const app = TestApp.create({ auth: { cache: false }, kv: { store } })
|
|
@@ -105,10 +146,13 @@ describe('create', () => {
|
|
|
105
146
|
})
|
|
106
147
|
expect(viaHeader.status).toMatchInlineSnapshot(`400`)
|
|
107
148
|
|
|
108
|
-
//
|
|
149
|
+
// The `key` query parameter authenticates the same way.
|
|
109
150
|
const viaQuery = await app.request(`/v1/tokens/not-an-address?key=${encodeURIComponent(token)}`)
|
|
110
151
|
expect(viaQuery.status).toMatchInlineSnapshot(`400`)
|
|
111
152
|
|
|
153
|
+
const rejectedQuery = await app.request('/v1/tokens/not-an-address?key=wrong')
|
|
154
|
+
expect(rejectedQuery.status).toMatchInlineSnapshot(`401`)
|
|
155
|
+
|
|
112
156
|
// An unknown legacy credential is still rejected.
|
|
113
157
|
const rejected = await app.request('/v1/tokens/not-an-address', {
|
|
114
158
|
headers: { 'x-api-key': 'wrong' },
|
|
@@ -166,6 +210,53 @@ describe('create', () => {
|
|
|
166
210
|
`)
|
|
167
211
|
})
|
|
168
212
|
|
|
213
|
+
test('applies the configured global MPP rate limit', async () => {
|
|
214
|
+
const store = Store.memory()
|
|
215
|
+
const limit = { perMinute: 2 }
|
|
216
|
+
const app = TestApp.create({
|
|
217
|
+
mpp: { rateLimit: limit },
|
|
218
|
+
rateLimit: { store },
|
|
219
|
+
})
|
|
220
|
+
await exhaustQuota(RateLimit.memory({ store }), 'mpp:public:203.0.113.10', limit)
|
|
221
|
+
|
|
222
|
+
const response = await app.request(`/v1/tokens/${TestApp.token}`, {
|
|
223
|
+
headers: {
|
|
224
|
+
authorization: 'Payment malformed',
|
|
225
|
+
'x-forwarded-for': '203.0.113.10',
|
|
226
|
+
},
|
|
227
|
+
})
|
|
228
|
+
|
|
229
|
+
expect(response.status).toBe(429)
|
|
230
|
+
expect(response.headers.get('RateLimit-Limit')).toBe('2')
|
|
231
|
+
expect(response.headers.get('RateLimit-Scope')).toBe('mpp')
|
|
232
|
+
})
|
|
233
|
+
|
|
234
|
+
test('endpoint MPP rate limit overrides the global limit', async () => {
|
|
235
|
+
const store = Store.memory()
|
|
236
|
+
const routeLimit = { perMinute: 1 }
|
|
237
|
+
const app = TestApp.create({
|
|
238
|
+
auth: {
|
|
239
|
+
overrides: {
|
|
240
|
+
'GET /v1/tokens/:token': { mpp: { rateLimit: routeLimit } },
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
mpp: { rateLimit: { perMinute: 2 } },
|
|
244
|
+
rateLimit: { store },
|
|
245
|
+
})
|
|
246
|
+
await exhaustQuota(RateLimit.memory({ store }), 'mpp:public:203.0.113.10', routeLimit)
|
|
247
|
+
|
|
248
|
+
const response = await app.request(`/v1/tokens/${TestApp.token}`, {
|
|
249
|
+
headers: {
|
|
250
|
+
authorization: 'Payment malformed',
|
|
251
|
+
'x-forwarded-for': '203.0.113.10',
|
|
252
|
+
},
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
expect(response.status).toBe(429)
|
|
256
|
+
expect(response.headers.get('RateLimit-Limit')).toBe('1')
|
|
257
|
+
expect(response.headers.get('RateLimit-Scope')).toBe('mpp')
|
|
258
|
+
})
|
|
259
|
+
|
|
169
260
|
test('serves Vocs API reference', async () => {
|
|
170
261
|
const app = TestApp.create({ docs: Docs.docs() })
|
|
171
262
|
const response = await app.request('/')
|
|
@@ -560,11 +651,13 @@ describe('create', () => {
|
|
|
560
651
|
auth,
|
|
561
652
|
cache: { store },
|
|
562
653
|
mpp: {
|
|
563
|
-
charge: {
|
|
564
|
-
currency: 'USD',
|
|
565
|
-
decimals: 2,
|
|
566
|
-
},
|
|
567
654
|
secretKey: 'secret_test_key_0123456789abcdef',
|
|
655
|
+
session: {
|
|
656
|
+
chainId: Tempo.chain.id,
|
|
657
|
+
decimals: 6,
|
|
658
|
+
getClient: () => Tempo.client,
|
|
659
|
+
recipient: Tempo.accounts[2].address,
|
|
660
|
+
},
|
|
568
661
|
},
|
|
569
662
|
rateLimit: {
|
|
570
663
|
now,
|
|
@@ -585,6 +678,11 @@ describe('create', () => {
|
|
|
585
678
|
})
|
|
586
679
|
const overQuota = await app.request('/v1/tokens/not-an-address')
|
|
587
680
|
expect(overQuota.status).toMatchInlineSnapshot(`402`)
|
|
681
|
+
expect(Challenge.fromHeaders(overQuota.headers).request['currency']).toBe(Tempo.currency)
|
|
682
|
+
|
|
683
|
+
const head = await app.request('/v1/tokens/not-an-address', { method: 'HEAD' })
|
|
684
|
+
expect(head.status).toMatchInlineSnapshot(`402`)
|
|
685
|
+
expect(Challenge.fromHeaders(head.headers).intent).toBe('session')
|
|
588
686
|
})
|
|
589
687
|
|
|
590
688
|
test('supports bearer API-key fallback', async () => {
|