tapimo 0.4.4 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.d.ts +4701 -3416
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +24 -2
- package/dist/App.js.map +1 -1
- package/dist/Assets.js +3 -3
- package/dist/Assets.js.map +1 -1
- package/dist/Scope.d.ts +18 -1
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +23 -3
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.d.ts +1 -1
- package/dist/Webhooks.d.ts.map +1 -1
- package/dist/Webhooks.js +5 -10
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/App.d.ts +6 -34
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +3 -3
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +4 -1
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/scopes.d.ts +6 -34
- package/dist/admin/apps/scopes.d.ts.map +1 -1
- package/dist/admin/apps/scopes.js +2 -2
- 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 +33 -33
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/apps/data/App.d.ts +4574 -4277
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +155 -77
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FundingQuoteProviders.d.ts +109 -0
- package/dist/apps/data/FundingQuoteProviders.d.ts.map +1 -0
- package/dist/apps/data/FundingQuoteProviders.js +464 -0
- package/dist/apps/data/FundingQuoteProviders.js.map +1 -0
- package/dist/apps/data/index.d.ts +1 -1
- package/dist/apps/data/index.js +1 -1
- package/dist/apps/data/routes/activities.d.ts +26 -26
- package/dist/apps/data/routes/addresses.d.ts +38 -38
- package/dist/apps/data/routes/balances.d.ts +45 -45
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +67 -149
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +2 -3
- package/dist/apps/data/routes/blocks.d.ts.map +1 -1
- package/dist/apps/data/routes/blocks.js +3 -5
- package/dist/apps/data/routes/blocks.js.map +1 -1
- package/dist/apps/data/routes/coingecko.d.ts +177 -176
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +3 -8
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/funding.d.ts +131 -228
- package/dist/apps/data/routes/funding.d.ts.map +1 -1
- package/dist/apps/data/routes/funding.js +152 -219
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +34 -34
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +9 -2
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +228 -228
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +86 -16
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +12 -12
- package/dist/apps/data/routes/verified-tokens.d.ts +5 -5
- package/dist/apps/data/routes/webhooks.d.ts +340 -0
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +13 -1
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/index.js +1 -1
- package/dist/apps/management/App.d.ts +1833 -851
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +4 -0
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +41 -41
- package/dist/apps/management/routes/api-keys.js +2 -2
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +48 -48
- package/dist/apps/management/routes/invitations.d.ts +132 -132
- package/dist/apps/management/routes/invite-links.d.ts +1100 -0
- package/dist/apps/management/routes/invite-links.d.ts.map +1 -0
- package/dist/apps/management/routes/invite-links.js +411 -0
- package/dist/apps/management/routes/invite-links.js.map +1 -0
- package/dist/apps/management/routes/members.d.ts +41 -41
- package/dist/apps/management/routes/orgs.d.ts +92 -92
- package/dist/apps/management/routes/projects.d.ts +9 -9
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +2 -2
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +24 -24
- package/dist/apps/mcp.js +2 -2
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/relay/App.d.ts +2 -2
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +44 -6
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/db/Db.d.ts +3 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +57 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +31 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +31 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/inviteLinks.d.ts +42 -0
- package/dist/db/tables/inviteLinks.d.ts.map +1 -0
- package/dist/db/tables/inviteLinks.js +148 -0
- package/dist/db/tables/inviteLinks.js.map +1 -0
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +2 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +6 -2
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +13 -3
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +9 -1
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +138 -10
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts +3 -1
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +17 -2
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/{FundingRoutes.d.ts → FundingQuotes.d.ts} +240 -369
- package/dist/internal/FundingQuotes.d.ts.map +1 -0
- package/dist/internal/{FundingRoutes.js → FundingQuotes.js} +144 -183
- package/dist/internal/FundingQuotes.js.map +1 -0
- package/dist/internal/Log.d.ts +18 -12
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +2 -0
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/Tidx.d.ts +9 -3
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +13 -7
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +17 -2
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +30 -3
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +1 -1
- package/package.json +2 -2
- package/src/ApiKeys.test.ts +25 -0
- package/src/App.test-d.ts +2 -0
- package/src/App.test.ts +13 -2
- package/src/App.ts +37 -5
- package/src/Assets.ts +3 -3
- package/src/Client.test-d.ts +21 -11
- package/src/Scope.test.ts +1 -0
- package/src/Scope.ts +32 -4
- package/src/Webhooks.ts +5 -10
- package/src/admin/apps/api-keys.test.ts +27 -0
- package/src/admin/apps/api-keys.ts +8 -1
- package/src/admin/apps/scopes.test.ts +7 -2
- package/src/admin/apps/scopes.ts +2 -2
- package/src/admin/ui/src/components/Dialog.tsx +8 -2
- package/src/admin/ui/src/lib/scopes.test.ts +19 -0
- package/src/admin/ui/src/lib/scopes.ts +12 -0
- package/src/admin/ui/src/routes/api-keys.tsx +128 -27
- package/src/admin/ui.generated.ts +33 -33
- package/src/apps/composition.test.ts +77 -0
- package/src/apps/data/App.test.ts +354 -0
- package/src/apps/data/App.ts +178 -91
- package/src/apps/data/FundingQuoteProviders.test.ts +577 -0
- package/src/apps/data/FundingQuoteProviders.ts +633 -0
- package/src/apps/data/index.ts +1 -1
- package/src/apps/data/routes/balances.test.ts +64 -18
- package/src/apps/data/routes/balances.ts +76 -177
- package/src/apps/data/routes/blocks.ts +3 -5
- package/src/apps/data/routes/coingecko.ts +3 -8
- package/src/apps/data/routes/funding.test.ts +304 -192
- package/src/apps/data/routes/funding.ts +166 -286
- package/src/apps/data/routes/indexer.test.ts +173 -15
- package/src/apps/data/routes/indexer.ts +8 -2
- package/src/apps/data/routes/rpc.test.ts +219 -0
- package/src/apps/data/routes/rpc.ts +92 -17
- package/src/apps/data/routes/webhooks.test.ts +21 -0
- package/src/apps/data/routes/webhooks.ts +13 -1
- package/src/apps/index.ts +1 -1
- package/src/apps/management/App.ts +4 -0
- package/src/apps/management/Billing.test.ts +2 -2
- package/src/apps/management/routes/api-keys.test.ts +47 -3
- package/src/apps/management/routes/api-keys.ts +2 -2
- package/src/apps/management/routes/invite-links.test.ts +385 -0
- package/src/apps/management/routes/invite-links.ts +570 -0
- package/src/apps/management/routes/scopes.test.ts +3 -2
- package/src/apps/management/routes/scopes.ts +4 -2
- package/src/apps/mcp.test.ts +18 -0
- package/src/apps/mcp.ts +2 -2
- package/src/apps/relay/App.test.ts +328 -7
- package/src/apps/relay/App.ts +42 -6
- package/src/apps/relay/Sponsorships.test.ts +2 -2
- package/src/db/Db.test.ts +5 -5
- package/src/db/Db.ts +65 -0
- package/src/db/Schema.ts +39 -0
- package/src/db/tables/billingSettings.test.ts +2 -2
- package/src/db/tables/inviteLinks.ts +187 -0
- package/src/db/tables/organizations.test.ts +2 -2
- package/src/db/tables/organizations.ts +2 -0
- package/src/db/tables/sponsoredTransactions.test.ts +19 -2
- package/src/db/tables/sponsoredTransactions.ts +21 -14
- package/src/db/tables/stripeCustomers.test.ts +2 -2
- package/src/handlers/relay.ts +16 -4
- package/src/internal/Auth.test.ts +132 -22
- package/src/internal/Auth.ts +181 -14
- package/src/internal/EdgeCache.test.ts +24 -3
- package/src/internal/EdgeCache.ts +18 -2
- package/src/internal/FundingQuotes.test.ts +268 -0
- package/src/internal/{FundingRoutes.ts → FundingQuotes.ts} +216 -277
- package/src/internal/Log.ts +21 -14
- package/src/internal/Tidx.test.ts +48 -0
- package/src/internal/Tidx.ts +21 -7
- package/src/internal/Viem.test.ts +46 -0
- package/src/internal/Viem.ts +48 -6
- package/src/internal/index.test.ts +1 -1
- package/src/internal/index.ts +1 -1
- package/dist/apps/data/FundingRouteProviders.d.ts +0 -36
- package/dist/apps/data/FundingRouteProviders.d.ts.map +0 -1
- package/dist/apps/data/FundingRouteProviders.js +0 -245
- package/dist/apps/data/FundingRouteProviders.js.map +0 -1
- package/dist/internal/FundingRoutes.d.ts.map +0 -1
- package/dist/internal/FundingRoutes.js.map +0 -1
- package/src/apps/data/FundingRouteProviders.test.ts +0 -225
- package/src/apps/data/FundingRouteProviders.ts +0 -312
- package/src/internal/FundingRoutes.test.ts +0 -213
|
@@ -54,6 +54,19 @@ export declare namespace schema {
|
|
|
54
54
|
export declare function orgs(): import("hono/hono-base").HonoBase<App.Environment, {
|
|
55
55
|
"/v1/orgs": {
|
|
56
56
|
$get: {
|
|
57
|
+
output: {
|
|
58
|
+
data: {
|
|
59
|
+
createdAt: string;
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
role?: "admin" | "member" | "owner" | undefined;
|
|
63
|
+
updatedAt: string;
|
|
64
|
+
}[];
|
|
65
|
+
};
|
|
66
|
+
outputFormat: "json";
|
|
67
|
+
status: 200;
|
|
68
|
+
input: {};
|
|
69
|
+
} | {
|
|
57
70
|
output: {
|
|
58
71
|
error: {
|
|
59
72
|
code: "api_key_malformed";
|
|
@@ -113,24 +126,26 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
113
126
|
outputFormat: "json";
|
|
114
127
|
status: 502;
|
|
115
128
|
input: {};
|
|
116
|
-
} | {
|
|
117
|
-
output: {
|
|
118
|
-
data: {
|
|
119
|
-
createdAt: string;
|
|
120
|
-
id: string;
|
|
121
|
-
name: string;
|
|
122
|
-
role?: "admin" | "member" | "owner" | undefined;
|
|
123
|
-
updatedAt: string;
|
|
124
|
-
}[];
|
|
125
|
-
};
|
|
126
|
-
outputFormat: "json";
|
|
127
|
-
status: 200;
|
|
128
|
-
input: {};
|
|
129
129
|
};
|
|
130
130
|
};
|
|
131
131
|
} & {
|
|
132
132
|
"/v1/orgs": {
|
|
133
133
|
$post: {
|
|
134
|
+
output: {
|
|
135
|
+
createdAt: string;
|
|
136
|
+
id: string;
|
|
137
|
+
name: string;
|
|
138
|
+
role?: "admin" | "member" | "owner" | undefined;
|
|
139
|
+
updatedAt: string;
|
|
140
|
+
};
|
|
141
|
+
outputFormat: "json";
|
|
142
|
+
status: 200;
|
|
143
|
+
input: {
|
|
144
|
+
json: {
|
|
145
|
+
name: string;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
} | {
|
|
134
149
|
output: {
|
|
135
150
|
error: {
|
|
136
151
|
code: "api_key_malformed";
|
|
@@ -149,14 +164,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
149
164
|
} | {
|
|
150
165
|
output: {
|
|
151
166
|
error: {
|
|
152
|
-
code: "
|
|
167
|
+
code: "body_invalid";
|
|
153
168
|
details?: readonly Response.error.Detail[] | undefined;
|
|
154
169
|
message: string;
|
|
155
170
|
};
|
|
156
171
|
requestId: string;
|
|
157
172
|
};
|
|
158
173
|
outputFormat: "json";
|
|
159
|
-
status:
|
|
174
|
+
status: 400;
|
|
160
175
|
input: {
|
|
161
176
|
json: {
|
|
162
177
|
name: string;
|
|
@@ -165,14 +180,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
165
180
|
} | {
|
|
166
181
|
output: {
|
|
167
182
|
error: {
|
|
168
|
-
code: "
|
|
183
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
169
184
|
details?: readonly Response.error.Detail[] | undefined;
|
|
170
185
|
message: string;
|
|
171
186
|
};
|
|
172
187
|
requestId: string;
|
|
173
188
|
};
|
|
174
189
|
outputFormat: "json";
|
|
175
|
-
status:
|
|
190
|
+
status: 401;
|
|
176
191
|
input: {
|
|
177
192
|
json: {
|
|
178
193
|
name: string;
|
|
@@ -181,14 +196,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
181
196
|
} | {
|
|
182
197
|
output: {
|
|
183
198
|
error: {
|
|
184
|
-
code: "
|
|
199
|
+
code: "forbidden";
|
|
185
200
|
details?: readonly Response.error.Detail[] | undefined;
|
|
186
201
|
message: string;
|
|
187
202
|
};
|
|
188
203
|
requestId: string;
|
|
189
204
|
};
|
|
190
205
|
outputFormat: "json";
|
|
191
|
-
status:
|
|
206
|
+
status: 403;
|
|
192
207
|
input: {
|
|
193
208
|
json: {
|
|
194
209
|
name: string;
|
|
@@ -197,20 +212,24 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
197
212
|
} | {
|
|
198
213
|
output: {
|
|
199
214
|
error: {
|
|
200
|
-
code: "
|
|
215
|
+
code: "upstream_error";
|
|
201
216
|
details?: readonly Response.error.Detail[] | undefined;
|
|
202
217
|
message: string;
|
|
203
218
|
};
|
|
204
219
|
requestId: string;
|
|
205
220
|
};
|
|
206
221
|
outputFormat: "json";
|
|
207
|
-
status:
|
|
222
|
+
status: 502;
|
|
208
223
|
input: {
|
|
209
224
|
json: {
|
|
210
225
|
name: string;
|
|
211
226
|
};
|
|
212
227
|
};
|
|
213
|
-
}
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
} & {
|
|
231
|
+
"/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}": {
|
|
232
|
+
$get: {
|
|
214
233
|
output: {
|
|
215
234
|
createdAt: string;
|
|
216
235
|
id: string;
|
|
@@ -221,15 +240,11 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
221
240
|
outputFormat: "json";
|
|
222
241
|
status: 200;
|
|
223
242
|
input: {
|
|
224
|
-
|
|
225
|
-
|
|
243
|
+
param: {
|
|
244
|
+
orgId: string;
|
|
226
245
|
};
|
|
227
246
|
};
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
} & {
|
|
231
|
-
"/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}": {
|
|
232
|
-
$get: {
|
|
247
|
+
} | {
|
|
233
248
|
output: {
|
|
234
249
|
error: {
|
|
235
250
|
code: "api_key_malformed";
|
|
@@ -248,14 +263,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
248
263
|
} | {
|
|
249
264
|
output: {
|
|
250
265
|
error: {
|
|
251
|
-
code: "
|
|
266
|
+
code: "param_invalid";
|
|
252
267
|
details?: readonly Response.error.Detail[] | undefined;
|
|
253
268
|
message: string;
|
|
254
269
|
};
|
|
255
270
|
requestId: string;
|
|
256
271
|
};
|
|
257
272
|
outputFormat: "json";
|
|
258
|
-
status:
|
|
273
|
+
status: 400;
|
|
259
274
|
input: {
|
|
260
275
|
param: {
|
|
261
276
|
orgId: string;
|
|
@@ -264,14 +279,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
264
279
|
} | {
|
|
265
280
|
output: {
|
|
266
281
|
error: {
|
|
267
|
-
code: "
|
|
282
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
268
283
|
details?: readonly Response.error.Detail[] | undefined;
|
|
269
284
|
message: string;
|
|
270
285
|
};
|
|
271
286
|
requestId: string;
|
|
272
287
|
};
|
|
273
288
|
outputFormat: "json";
|
|
274
|
-
status:
|
|
289
|
+
status: 401;
|
|
275
290
|
input: {
|
|
276
291
|
param: {
|
|
277
292
|
orgId: string;
|
|
@@ -280,14 +295,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
280
295
|
} | {
|
|
281
296
|
output: {
|
|
282
297
|
error: {
|
|
283
|
-
code: "
|
|
298
|
+
code: "api_key_forbidden";
|
|
284
299
|
details?: readonly Response.error.Detail[] | undefined;
|
|
285
300
|
message: string;
|
|
286
301
|
};
|
|
287
302
|
requestId: string;
|
|
288
303
|
};
|
|
289
304
|
outputFormat: "json";
|
|
290
|
-
status:
|
|
305
|
+
status: 403;
|
|
291
306
|
input: {
|
|
292
307
|
param: {
|
|
293
308
|
orgId: string;
|
|
@@ -312,20 +327,24 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
312
327
|
} | {
|
|
313
328
|
output: {
|
|
314
329
|
error: {
|
|
315
|
-
code: "
|
|
330
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
316
331
|
details?: readonly Response.error.Detail[] | undefined;
|
|
317
332
|
message: string;
|
|
318
333
|
};
|
|
319
334
|
requestId: string;
|
|
320
335
|
};
|
|
321
336
|
outputFormat: "json";
|
|
322
|
-
status:
|
|
337
|
+
status: 429;
|
|
323
338
|
input: {
|
|
324
339
|
param: {
|
|
325
340
|
orgId: string;
|
|
326
341
|
};
|
|
327
342
|
};
|
|
328
|
-
}
|
|
343
|
+
};
|
|
344
|
+
};
|
|
345
|
+
} & {
|
|
346
|
+
"/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}": {
|
|
347
|
+
$patch: {
|
|
329
348
|
output: {
|
|
330
349
|
createdAt: string;
|
|
331
350
|
id: string;
|
|
@@ -339,12 +358,12 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
339
358
|
param: {
|
|
340
359
|
orgId: string;
|
|
341
360
|
};
|
|
361
|
+
} & {
|
|
362
|
+
json: {
|
|
363
|
+
name: string;
|
|
364
|
+
};
|
|
342
365
|
};
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
|
-
} & {
|
|
346
|
-
"/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}": {
|
|
347
|
-
$patch: {
|
|
366
|
+
} | {
|
|
348
367
|
output: {
|
|
349
368
|
error: {
|
|
350
369
|
code: "api_key_malformed";
|
|
@@ -367,14 +386,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
367
386
|
} | {
|
|
368
387
|
output: {
|
|
369
388
|
error: {
|
|
370
|
-
code: "
|
|
389
|
+
code: "body_invalid";
|
|
371
390
|
details?: readonly Response.error.Detail[] | undefined;
|
|
372
391
|
message: string;
|
|
373
392
|
};
|
|
374
393
|
requestId: string;
|
|
375
394
|
};
|
|
376
395
|
outputFormat: "json";
|
|
377
|
-
status:
|
|
396
|
+
status: 400;
|
|
378
397
|
input: {
|
|
379
398
|
param: {
|
|
380
399
|
orgId: string;
|
|
@@ -387,14 +406,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
387
406
|
} | {
|
|
388
407
|
output: {
|
|
389
408
|
error: {
|
|
390
|
-
code: "
|
|
409
|
+
code: "param_invalid";
|
|
391
410
|
details?: readonly Response.error.Detail[] | undefined;
|
|
392
411
|
message: string;
|
|
393
412
|
};
|
|
394
413
|
requestId: string;
|
|
395
414
|
};
|
|
396
415
|
outputFormat: "json";
|
|
397
|
-
status:
|
|
416
|
+
status: 400;
|
|
398
417
|
input: {
|
|
399
418
|
param: {
|
|
400
419
|
orgId: string;
|
|
@@ -407,14 +426,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
407
426
|
} | {
|
|
408
427
|
output: {
|
|
409
428
|
error: {
|
|
410
|
-
code: "
|
|
429
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
411
430
|
details?: readonly Response.error.Detail[] | undefined;
|
|
412
431
|
message: string;
|
|
413
432
|
};
|
|
414
433
|
requestId: string;
|
|
415
434
|
};
|
|
416
435
|
outputFormat: "json";
|
|
417
|
-
status:
|
|
436
|
+
status: 401;
|
|
418
437
|
input: {
|
|
419
438
|
param: {
|
|
420
439
|
orgId: string;
|
|
@@ -427,14 +446,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
427
446
|
} | {
|
|
428
447
|
output: {
|
|
429
448
|
error: {
|
|
430
|
-
code: "
|
|
449
|
+
code: "api_key_forbidden";
|
|
431
450
|
details?: readonly Response.error.Detail[] | undefined;
|
|
432
451
|
message: string;
|
|
433
452
|
};
|
|
434
453
|
requestId: string;
|
|
435
454
|
};
|
|
436
455
|
outputFormat: "json";
|
|
437
|
-
status:
|
|
456
|
+
status: 403;
|
|
438
457
|
input: {
|
|
439
458
|
param: {
|
|
440
459
|
orgId: string;
|
|
@@ -467,14 +486,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
467
486
|
} | {
|
|
468
487
|
output: {
|
|
469
488
|
error: {
|
|
470
|
-
code: "
|
|
489
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
471
490
|
details?: readonly Response.error.Detail[] | undefined;
|
|
472
491
|
message: string;
|
|
473
492
|
};
|
|
474
493
|
requestId: string;
|
|
475
494
|
};
|
|
476
495
|
outputFormat: "json";
|
|
477
|
-
status:
|
|
496
|
+
status: 429;
|
|
478
497
|
input: {
|
|
479
498
|
param: {
|
|
480
499
|
orgId: string;
|
|
@@ -487,14 +506,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
487
506
|
} | {
|
|
488
507
|
output: {
|
|
489
508
|
error: {
|
|
490
|
-
code: "
|
|
509
|
+
code: "upstream_error";
|
|
491
510
|
details?: readonly Response.error.Detail[] | undefined;
|
|
492
511
|
message: string;
|
|
493
512
|
};
|
|
494
513
|
requestId: string;
|
|
495
514
|
};
|
|
496
515
|
outputFormat: "json";
|
|
497
|
-
status:
|
|
516
|
+
status: 502;
|
|
498
517
|
input: {
|
|
499
518
|
param: {
|
|
500
519
|
orgId: string;
|
|
@@ -504,13 +523,13 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
504
523
|
name: string;
|
|
505
524
|
};
|
|
506
525
|
};
|
|
507
|
-
}
|
|
526
|
+
};
|
|
527
|
+
};
|
|
528
|
+
} & {
|
|
529
|
+
"/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}": {
|
|
530
|
+
$delete: {
|
|
508
531
|
output: {
|
|
509
|
-
createdAt: string;
|
|
510
532
|
id: string;
|
|
511
|
-
name: string;
|
|
512
|
-
role?: "admin" | "member" | "owner" | undefined;
|
|
513
|
-
updatedAt: string;
|
|
514
533
|
};
|
|
515
534
|
outputFormat: "json";
|
|
516
535
|
status: 200;
|
|
@@ -518,16 +537,8 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
518
537
|
param: {
|
|
519
538
|
orgId: string;
|
|
520
539
|
};
|
|
521
|
-
} & {
|
|
522
|
-
json: {
|
|
523
|
-
name: string;
|
|
524
|
-
};
|
|
525
540
|
};
|
|
526
|
-
}
|
|
527
|
-
};
|
|
528
|
-
} & {
|
|
529
|
-
"/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}": {
|
|
530
|
-
$delete: {
|
|
541
|
+
} | {
|
|
531
542
|
output: {
|
|
532
543
|
error: {
|
|
533
544
|
code: "api_key_malformed";
|
|
@@ -546,14 +557,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
546
557
|
} | {
|
|
547
558
|
output: {
|
|
548
559
|
error: {
|
|
549
|
-
code: "
|
|
560
|
+
code: "param_invalid";
|
|
550
561
|
details?: readonly Response.error.Detail[] | undefined;
|
|
551
562
|
message: string;
|
|
552
563
|
};
|
|
553
564
|
requestId: string;
|
|
554
565
|
};
|
|
555
566
|
outputFormat: "json";
|
|
556
|
-
status:
|
|
567
|
+
status: 400;
|
|
557
568
|
input: {
|
|
558
569
|
param: {
|
|
559
570
|
orgId: string;
|
|
@@ -562,14 +573,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
562
573
|
} | {
|
|
563
574
|
output: {
|
|
564
575
|
error: {
|
|
565
|
-
code: "
|
|
576
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
566
577
|
details?: readonly Response.error.Detail[] | undefined;
|
|
567
578
|
message: string;
|
|
568
579
|
};
|
|
569
580
|
requestId: string;
|
|
570
581
|
};
|
|
571
582
|
outputFormat: "json";
|
|
572
|
-
status:
|
|
583
|
+
status: 401;
|
|
573
584
|
input: {
|
|
574
585
|
param: {
|
|
575
586
|
orgId: string;
|
|
@@ -578,14 +589,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
578
589
|
} | {
|
|
579
590
|
output: {
|
|
580
591
|
error: {
|
|
581
|
-
code: "
|
|
592
|
+
code: "api_key_forbidden";
|
|
582
593
|
details?: readonly Response.error.Detail[] | undefined;
|
|
583
594
|
message: string;
|
|
584
595
|
};
|
|
585
596
|
requestId: string;
|
|
586
597
|
};
|
|
587
598
|
outputFormat: "json";
|
|
588
|
-
status:
|
|
599
|
+
status: 403;
|
|
589
600
|
input: {
|
|
590
601
|
param: {
|
|
591
602
|
orgId: string;
|
|
@@ -594,14 +605,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
594
605
|
} | {
|
|
595
606
|
output: {
|
|
596
607
|
error: {
|
|
597
|
-
code: "
|
|
608
|
+
code: "organization_not_found";
|
|
598
609
|
details?: readonly Response.error.Detail[] | undefined;
|
|
599
610
|
message: string;
|
|
600
611
|
};
|
|
601
612
|
requestId: string;
|
|
602
613
|
};
|
|
603
614
|
outputFormat: "json";
|
|
604
|
-
status:
|
|
615
|
+
status: 404;
|
|
605
616
|
input: {
|
|
606
617
|
param: {
|
|
607
618
|
orgId: string;
|
|
@@ -610,14 +621,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
610
621
|
} | {
|
|
611
622
|
output: {
|
|
612
623
|
error: {
|
|
613
|
-
code: "
|
|
624
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
614
625
|
details?: readonly Response.error.Detail[] | undefined;
|
|
615
626
|
message: string;
|
|
616
627
|
};
|
|
617
628
|
requestId: string;
|
|
618
629
|
};
|
|
619
630
|
outputFormat: "json";
|
|
620
|
-
status:
|
|
631
|
+
status: 429;
|
|
621
632
|
input: {
|
|
622
633
|
param: {
|
|
623
634
|
orgId: string;
|
|
@@ -626,25 +637,14 @@ export declare function orgs(): import("hono/hono-base").HonoBase<App.Environmen
|
|
|
626
637
|
} | {
|
|
627
638
|
output: {
|
|
628
639
|
error: {
|
|
629
|
-
code: "
|
|
640
|
+
code: "upstream_error";
|
|
630
641
|
details?: readonly Response.error.Detail[] | undefined;
|
|
631
642
|
message: string;
|
|
632
643
|
};
|
|
633
644
|
requestId: string;
|
|
634
645
|
};
|
|
635
646
|
outputFormat: "json";
|
|
636
|
-
status:
|
|
637
|
-
input: {
|
|
638
|
-
param: {
|
|
639
|
-
orgId: string;
|
|
640
|
-
};
|
|
641
|
-
};
|
|
642
|
-
} | {
|
|
643
|
-
output: {
|
|
644
|
-
id: string;
|
|
645
|
-
};
|
|
646
|
-
outputFormat: "json";
|
|
647
|
-
status: 200;
|
|
647
|
+
status: 502;
|
|
648
648
|
input: {
|
|
649
649
|
param: {
|
|
650
650
|
orgId: string;
|
|
@@ -141,14 +141,14 @@ export declare function projects(): import("hono/hono-base").HonoBase<App.Enviro
|
|
|
141
141
|
} | {
|
|
142
142
|
output: {
|
|
143
143
|
error: {
|
|
144
|
-
code: "
|
|
144
|
+
code: "organization_not_found";
|
|
145
145
|
details?: readonly Response.error.Detail[] | undefined;
|
|
146
146
|
message: string;
|
|
147
147
|
};
|
|
148
148
|
requestId: string;
|
|
149
149
|
};
|
|
150
150
|
outputFormat: "json";
|
|
151
|
-
status:
|
|
151
|
+
status: 404;
|
|
152
152
|
input: {
|
|
153
153
|
param: {
|
|
154
154
|
orgId: string;
|
|
@@ -157,14 +157,14 @@ export declare function projects(): import("hono/hono-base").HonoBase<App.Enviro
|
|
|
157
157
|
} | {
|
|
158
158
|
output: {
|
|
159
159
|
error: {
|
|
160
|
-
code: "
|
|
160
|
+
code: "param_invalid";
|
|
161
161
|
details?: readonly Response.error.Detail[] | undefined;
|
|
162
162
|
message: string;
|
|
163
163
|
};
|
|
164
164
|
requestId: string;
|
|
165
165
|
};
|
|
166
166
|
outputFormat: "json";
|
|
167
|
-
status:
|
|
167
|
+
status: 400;
|
|
168
168
|
input: {
|
|
169
169
|
param: {
|
|
170
170
|
orgId: string;
|
|
@@ -295,14 +295,14 @@ export declare function projects(): import("hono/hono-base").HonoBase<App.Enviro
|
|
|
295
295
|
} | {
|
|
296
296
|
output: {
|
|
297
297
|
error: {
|
|
298
|
-
code: "
|
|
298
|
+
code: "organization_not_found";
|
|
299
299
|
details?: readonly Response.error.Detail[] | undefined;
|
|
300
300
|
message: string;
|
|
301
301
|
};
|
|
302
302
|
requestId: string;
|
|
303
303
|
};
|
|
304
304
|
outputFormat: "json";
|
|
305
|
-
status:
|
|
305
|
+
status: 404;
|
|
306
306
|
input: {
|
|
307
307
|
param: {
|
|
308
308
|
orgId: string;
|
|
@@ -315,7 +315,7 @@ export declare function projects(): import("hono/hono-base").HonoBase<App.Enviro
|
|
|
315
315
|
} | {
|
|
316
316
|
output: {
|
|
317
317
|
error: {
|
|
318
|
-
code: "
|
|
318
|
+
code: "body_invalid";
|
|
319
319
|
details?: readonly Response.error.Detail[] | undefined;
|
|
320
320
|
message: string;
|
|
321
321
|
};
|
|
@@ -335,14 +335,14 @@ export declare function projects(): import("hono/hono-base").HonoBase<App.Enviro
|
|
|
335
335
|
} | {
|
|
336
336
|
output: {
|
|
337
337
|
error: {
|
|
338
|
-
code: "
|
|
338
|
+
code: "param_invalid";
|
|
339
339
|
details?: readonly Response.error.Detail[] | undefined;
|
|
340
340
|
message: string;
|
|
341
341
|
};
|
|
342
342
|
requestId: string;
|
|
343
343
|
};
|
|
344
344
|
outputFormat: "json";
|
|
345
|
-
status:
|
|
345
|
+
status: 400;
|
|
346
346
|
input: {
|
|
347
347
|
param: {
|
|
348
348
|
orgId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../../../src/apps/management/routes/scopes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAEzD,uDAAuD;AACvD,yBAAiB,MAAM,CAAC;IACtB,2CAA2C;IAC3C,UAAiB,SAAS,CAAC;QACzB,uCAAuC;QAChC,MAAM,KAAK;;;;
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../../../src/apps/management/routes/scopes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAEzD,uDAAuD;AACvD,yBAAiB,MAAM,CAAC;IACtB,2CAA2C;IAC3C,UAAiB,SAAS,CAAC;QACzB,uCAAuC;QAChC,MAAM,KAAK;;;;yBAuBsC,CAAA;QAExD,2CAA2C;QACpC,MAAM,QAAQ;;;;;;yBAIuC,CAAA;KAC7D;CACF;AAED;;;;GAIG;AACH,wBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAgCrB"}
|
|
@@ -18,7 +18,7 @@ export var schema;
|
|
|
18
18
|
.check(z.describe('Human-readable explanation of what the scope grants.'), z.meta({ examples: ['Read webhook subscriptions.'] })),
|
|
19
19
|
scope: z
|
|
20
20
|
.string()
|
|
21
|
-
.check(z.describe('Scope identifier used in API-key grants and route policies.'), z.meta({ examples: ['data:read'] })),
|
|
21
|
+
.check(z.describe('Scope identifier used in API-key grants and route policies. `zone:<chainId>:read` is a template: grants carry a concrete zone chain id.'), z.meta({ examples: ['data:read'] })),
|
|
22
22
|
selfServe: z
|
|
23
23
|
.boolean()
|
|
24
24
|
.check(z.describe('Whether an eligible session may self-mint this scope.'), z.meta({ examples: [true] })),
|
|
@@ -48,7 +48,7 @@ export function scopes() {
|
|
|
48
48
|
tags: ['API Keys'],
|
|
49
49
|
}), Cache.response({
|
|
50
50
|
cacheControl: Cache.policies.stable,
|
|
51
|
-
name: 'tempo-api:scopes:
|
|
51
|
+
name: 'tempo-api:scopes:v3',
|
|
52
52
|
key: (c) => {
|
|
53
53
|
const url = new URL(c.req.url);
|
|
54
54
|
url.search = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../../src/apps/management/routes/scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAEzD,uDAAuD;AACvD,MAAM,KAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../../src/apps/management/routes/scopes.ts"],"names":[],"mappings":"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"}
|