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.
Files changed (263) hide show
  1. package/README.md +1 -1
  2. package/dist/ApiKey.d.ts +1 -9
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +2 -3
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +53 -27
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +32 -17
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +1990 -1442
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +23 -9
  13. package/dist/App.js.map +1 -1
  14. package/dist/Assets.d.ts +10 -0
  15. package/dist/Assets.d.ts.map +1 -1
  16. package/dist/Assets.js +4 -0
  17. package/dist/Assets.js.map +1 -1
  18. package/dist/Auth.d.ts +2 -1
  19. package/dist/Auth.d.ts.map +1 -1
  20. package/dist/Auth.js +2 -1
  21. package/dist/Auth.js.map +1 -1
  22. package/dist/Scope.d.ts +40 -15
  23. package/dist/Scope.d.ts.map +1 -1
  24. package/dist/Scope.js +44 -13
  25. package/dist/Scope.js.map +1 -1
  26. package/dist/admin/App.d.ts +560 -9
  27. package/dist/admin/App.d.ts.map +1 -1
  28. package/dist/admin/App.js +38 -6
  29. package/dist/admin/App.js.map +1 -1
  30. package/dist/admin/apps/api-keys.d.ts +10 -24
  31. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  32. package/dist/admin/apps/api-keys.js +10 -3
  33. package/dist/admin/apps/api-keys.js.map +1 -1
  34. package/dist/admin/apps/organizations.d.ts +833 -0
  35. package/dist/admin/apps/organizations.d.ts.map +1 -0
  36. package/dist/admin/apps/organizations.js +733 -0
  37. package/dist/admin/apps/organizations.js.map +1 -0
  38. package/dist/admin/apps/scopes.d.ts +8 -0
  39. package/dist/admin/apps/scopes.d.ts.map +1 -1
  40. package/dist/admin/apps/verified-tokens.d.ts +57 -57
  41. package/dist/admin/ui.generated.d.ts +1 -1
  42. package/dist/admin/ui.generated.d.ts.map +1 -1
  43. package/dist/admin/ui.generated.js +53 -13
  44. package/dist/admin/ui.generated.js.map +1 -1
  45. package/dist/analytics/Analytics.d.ts +10 -0
  46. package/dist/analytics/Analytics.d.ts.map +1 -1
  47. package/dist/analytics/Analytics.js +8 -0
  48. package/dist/analytics/Analytics.js.map +1 -1
  49. package/dist/analytics/tables/requestEvents.d.ts +9 -0
  50. package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
  51. package/dist/analytics/tables/requestEvents.js +14 -0
  52. package/dist/analytics/tables/requestEvents.js.map +1 -1
  53. package/dist/apps/data/App.d.ts +1304 -1304
  54. package/dist/apps/data/FundingRouteProviders.d.ts +4 -22
  55. package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -1
  56. package/dist/apps/data/FundingRouteProviders.js +10 -120
  57. package/dist/apps/data/FundingRouteProviders.js.map +1 -1
  58. package/dist/apps/data/routes/activities.d.ts +38 -38
  59. package/dist/apps/data/routes/addresses.d.ts +24 -24
  60. package/dist/apps/data/routes/blocks.d.ts +39 -39
  61. package/dist/apps/data/routes/fee-amm.d.ts +20 -20
  62. package/dist/apps/data/routes/funding.js +7 -7
  63. package/dist/apps/data/routes/funding.js.map +1 -1
  64. package/dist/apps/data/routes/indexer.d.ts +5 -5
  65. package/dist/apps/data/routes/tokenlist.d.ts +12 -12
  66. package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
  67. package/dist/apps/management/App.d.ts +808 -267
  68. package/dist/apps/management/App.d.ts.map +1 -1
  69. package/dist/apps/management/App.js +2 -2
  70. package/dist/apps/management/Billing.d.ts +3 -0
  71. package/dist/apps/management/Billing.d.ts.map +1 -1
  72. package/dist/apps/management/Billing.js +7 -2
  73. package/dist/apps/management/Billing.js.map +1 -1
  74. package/dist/apps/management/routes/api-keys.d.ts +116 -100
  75. package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
  76. package/dist/apps/management/routes/api-keys.js +41 -30
  77. package/dist/apps/management/routes/api-keys.js.map +1 -1
  78. package/dist/apps/management/routes/billing.d.ts +182 -50
  79. package/dist/apps/management/routes/billing.d.ts.map +1 -1
  80. package/dist/apps/management/routes/billing.js +14 -14
  81. package/dist/apps/management/routes/billing.js.map +1 -1
  82. package/dist/apps/management/routes/invitations.d.ts +93 -20
  83. package/dist/apps/management/routes/invitations.d.ts.map +1 -1
  84. package/dist/apps/management/routes/invitations.js +12 -15
  85. package/dist/apps/management/routes/invitations.js.map +1 -1
  86. package/dist/apps/management/routes/members.d.ts +89 -18
  87. package/dist/apps/management/routes/members.d.ts.map +1 -1
  88. package/dist/apps/management/routes/members.js +10 -10
  89. package/dist/apps/management/routes/members.js.map +1 -1
  90. package/dist/apps/management/routes/orgs.d.ts +100 -40
  91. package/dist/apps/management/routes/orgs.d.ts.map +1 -1
  92. package/dist/apps/management/routes/orgs.js +19 -19
  93. package/dist/apps/management/routes/orgs.js.map +1 -1
  94. package/dist/apps/management/routes/projects.d.ts +122 -33
  95. package/dist/apps/management/routes/projects.d.ts.map +1 -1
  96. package/dist/apps/management/routes/projects.js +12 -13
  97. package/dist/apps/management/routes/projects.js.map +1 -1
  98. package/dist/apps/management/routes/scopes.d.ts +4 -18
  99. package/dist/apps/management/routes/scopes.d.ts.map +1 -1
  100. package/dist/apps/management/routes/scopes.js +6 -7
  101. package/dist/apps/management/routes/scopes.js.map +1 -1
  102. package/dist/apps/management/routes/usage.d.ts +63 -19
  103. package/dist/apps/management/routes/usage.d.ts.map +1 -1
  104. package/dist/apps/management/routes/usage.js +9 -10
  105. package/dist/apps/management/routes/usage.js.map +1 -1
  106. package/dist/apps/mcp.d.ts.map +1 -1
  107. package/dist/apps/mcp.js +38 -4
  108. package/dist/apps/mcp.js.map +1 -1
  109. package/dist/apps/relay/App.d.ts +26 -4
  110. package/dist/apps/relay/App.d.ts.map +1 -1
  111. package/dist/apps/relay/App.js +17 -14
  112. package/dist/apps/relay/App.js.map +1 -1
  113. package/dist/cloudflare.d.ts +2 -0
  114. package/dist/cloudflare.d.ts.map +1 -1
  115. package/dist/cloudflare.js +4 -0
  116. package/dist/cloudflare.js.map +1 -1
  117. package/dist/db/Db.d.ts +5 -3
  118. package/dist/db/Db.d.ts.map +1 -1
  119. package/dist/db/Db.js +52 -0
  120. package/dist/db/Db.js.map +1 -1
  121. package/dist/db/Schema.d.ts +13 -0
  122. package/dist/db/Schema.d.ts.map +1 -1
  123. package/dist/db/Schema.js +16 -1
  124. package/dist/db/Schema.js.map +1 -1
  125. package/dist/db/tables/adminAuditLogs.d.ts +27 -0
  126. package/dist/db/tables/adminAuditLogs.d.ts.map +1 -0
  127. package/dist/db/tables/adminAuditLogs.js +19 -0
  128. package/dist/db/tables/adminAuditLogs.js.map +1 -0
  129. package/dist/db/tables/invitations.d.ts +1 -1
  130. package/dist/db/tables/invitations.d.ts.map +1 -1
  131. package/dist/db/tables/memberships.d.ts +32 -4
  132. package/dist/db/tables/memberships.d.ts.map +1 -1
  133. package/dist/db/tables/memberships.js +31 -0
  134. package/dist/db/tables/memberships.js.map +1 -1
  135. package/dist/db/tables/organizations.d.ts +43 -1
  136. package/dist/db/tables/organizations.d.ts.map +1 -1
  137. package/dist/db/tables/organizations.js +103 -0
  138. package/dist/db/tables/organizations.js.map +1 -1
  139. package/dist/db/tables/projects.d.ts +25 -0
  140. package/dist/db/tables/projects.d.ts.map +1 -1
  141. package/dist/db/tables/projects.js +22 -0
  142. package/dist/db/tables/projects.js.map +1 -1
  143. package/dist/db/tables/webhookDeliveries.d.ts +26 -0
  144. package/dist/db/tables/webhookDeliveries.d.ts.map +1 -1
  145. package/dist/db/tables/webhookDeliveries.js +37 -0
  146. package/dist/db/tables/webhookDeliveries.js.map +1 -1
  147. package/dist/internal/Auth.d.ts +46 -40
  148. package/dist/internal/Auth.d.ts.map +1 -1
  149. package/dist/internal/Auth.js +118 -69
  150. package/dist/internal/Auth.js.map +1 -1
  151. package/dist/internal/Cursor.d.ts +1 -1
  152. package/dist/internal/Cursor.d.ts.map +1 -1
  153. package/dist/internal/Cursor.js +4 -0
  154. package/dist/internal/Cursor.js.map +1 -1
  155. package/dist/internal/EdgeCache.d.ts.map +1 -1
  156. package/dist/internal/EdgeCache.js +2 -0
  157. package/dist/internal/EdgeCache.js.map +1 -1
  158. package/dist/internal/Errors.d.ts +6 -0
  159. package/dist/internal/Errors.d.ts.map +1 -0
  160. package/dist/internal/Errors.js +16 -0
  161. package/dist/internal/Errors.js.map +1 -0
  162. package/dist/internal/FundingRoutes.d.ts +15 -43
  163. package/dist/internal/FundingRoutes.d.ts.map +1 -1
  164. package/dist/internal/FundingRoutes.js +8 -17
  165. package/dist/internal/FundingRoutes.js.map +1 -1
  166. package/dist/internal/Log.d.ts +16 -1
  167. package/dist/internal/Log.d.ts.map +1 -1
  168. package/dist/internal/Log.js +5 -3
  169. package/dist/internal/Log.js.map +1 -1
  170. package/dist/internal/Store.d.ts +61 -16
  171. package/dist/internal/Store.d.ts.map +1 -1
  172. package/dist/internal/Store.js +72 -17
  173. package/dist/internal/Store.js.map +1 -1
  174. package/dist/internal/Viem.d.ts +1 -1
  175. package/dist/internal/index.d.ts +27 -0
  176. package/dist/internal/index.d.ts.map +1 -0
  177. package/dist/internal/index.js +27 -0
  178. package/dist/internal/index.js.map +1 -0
  179. package/package.json +8 -3
  180. package/src/ApiKey.ts +2 -3
  181. package/src/ApiKeys.ts +95 -17
  182. package/src/App.test.ts +104 -6
  183. package/src/App.ts +29 -9
  184. package/src/Assets.ts +8 -0
  185. package/src/Auth.test-d.ts +36 -0
  186. package/src/Auth.ts +20 -1
  187. package/src/Client.test-d.ts +17 -17
  188. package/src/Scope.test.ts +34 -0
  189. package/src/Scope.ts +53 -17
  190. package/src/admin/App.test.ts +33 -3
  191. package/src/admin/App.ts +49 -14
  192. package/src/admin/apps/api-keys.ts +10 -3
  193. package/src/admin/apps/organizations.test.ts +455 -0
  194. package/src/admin/apps/organizations.ts +953 -0
  195. package/src/admin/apps/scopes.test.ts +10 -0
  196. package/src/admin/ui/plugin.ts +1 -1
  197. package/src/admin/ui/src/components/MobileProfile.tsx +2 -0
  198. package/src/admin/ui/src/components/ThemeToggle.tsx +20 -0
  199. package/src/admin/ui/src/lib/api-keys.ts +36 -19
  200. package/src/admin/ui/src/lib/config.ts +2 -3
  201. package/src/admin/ui/src/lib/organizations.test.ts +89 -0
  202. package/src/admin/ui/src/lib/organizations.ts +262 -0
  203. package/src/admin/ui/src/lib/query-client.ts +3 -1
  204. package/src/admin/ui/src/lib/theme.ts +57 -0
  205. package/src/admin/ui/src/routeTree.gen.ts +47 -4
  206. package/src/admin/ui/src/routes/__root.tsx +18 -3
  207. package/src/admin/ui/src/routes/api-keys.tsx +52 -7
  208. package/src/admin/ui/src/routes/index.tsx +1 -1
  209. package/src/admin/ui/src/routes/organizations.tsx +158 -0
  210. package/src/admin/ui/src/routes/organizations_.$orgId.tsx +710 -0
  211. package/src/admin/ui/src/start.ts +6 -0
  212. package/src/admin/ui.generated.ts +63 -13
  213. package/src/analytics/Analytics.ts +25 -0
  214. package/src/analytics/tables/requestEvents.ts +33 -0
  215. package/src/apps/composition.test.ts +82 -2
  216. package/src/apps/data/FundingRouteProviders.test.ts +37 -93
  217. package/src/apps/data/FundingRouteProviders.ts +14 -161
  218. package/src/apps/data/routes/funding.test.ts +7 -42
  219. package/src/apps/data/routes/funding.ts +8 -8
  220. package/src/apps/data/routes/indexer.test.ts +2 -2
  221. package/src/apps/data/routes/webhooks.test.ts +2 -2
  222. package/src/apps/management/App.ts +2 -2
  223. package/src/apps/management/Billing.ts +10 -2
  224. package/src/apps/management/routes/api-keys.test.ts +137 -1
  225. package/src/apps/management/routes/api-keys.ts +63 -38
  226. package/src/apps/management/routes/billing.ts +14 -14
  227. package/src/apps/management/routes/invitations.test.ts +102 -1
  228. package/src/apps/management/routes/invitations.ts +13 -15
  229. package/src/apps/management/routes/members.ts +10 -10
  230. package/src/apps/management/routes/orgs.test.ts +78 -16
  231. package/src/apps/management/routes/orgs.ts +21 -20
  232. package/src/apps/management/routes/projects.ts +12 -13
  233. package/src/apps/management/routes/scopes.test.ts +16 -0
  234. package/src/apps/management/routes/scopes.ts +6 -7
  235. package/src/apps/management/routes/usage.ts +9 -14
  236. package/src/apps/mcp.test.ts +72 -7
  237. package/src/apps/mcp.ts +46 -4
  238. package/src/apps/relay/App.test.ts +23 -18
  239. package/src/apps/relay/App.ts +35 -14
  240. package/src/cloudflare.ts +5 -0
  241. package/src/db/Db.ts +59 -3
  242. package/src/db/Schema.ts +20 -1
  243. package/src/db/tables/adminAuditLogs.ts +47 -0
  244. package/src/db/tables/invitations.ts +1 -1
  245. package/src/db/tables/memberships.ts +59 -3
  246. package/src/db/tables/organizations.ts +148 -1
  247. package/src/db/tables/projects.ts +47 -0
  248. package/src/db/tables/webhookDeliveries.ts +83 -0
  249. package/src/internal/Auth.test.ts +571 -23
  250. package/src/internal/Auth.ts +166 -94
  251. package/src/internal/Cursor.test.ts +10 -0
  252. package/src/internal/Cursor.ts +5 -1
  253. package/src/internal/EdgeCache.test.ts +11 -0
  254. package/src/internal/EdgeCache.ts +2 -0
  255. package/src/internal/FundingRoutes.test.ts +8 -8
  256. package/src/internal/FundingRoutes.ts +25 -29
  257. package/src/internal/Log.test.ts +41 -3
  258. package/src/internal/Log.ts +23 -4
  259. package/src/internal/Store.test-d.ts +15 -0
  260. package/src/internal/Store.test.ts +153 -2
  261. package/src/internal/Store.ts +157 -41
  262. package/src/internal/index.test.ts +34 -0
  263. package/src/internal/index.ts +26 -0
@@ -16,15 +16,7 @@ export declare namespace schema {
16
16
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
17
17
  orgId: z.ZodMiniString<string>;
18
18
  projectId: z.ZodMiniOptional<z.ZodMiniString<string>>;
19
- scopes: z.ZodMiniArray<z.ZodMiniEnum<{
20
- "*": "*";
21
- "data:read": "data:read";
22
- "indexer:query": "indexer:query";
23
- "rpc-relay:read": "rpc-relay:read";
24
- "rpc-relay:sponsor": "rpc-relay:sponsor";
25
- "webhooks:read": "webhooks:read";
26
- "webhooks:write": "webhooks:write";
27
- }>>;
19
+ scopes: z.ZodMiniArray<z.ZodMiniString<string>>;
28
20
  tokenLast4: z.ZodMiniString<string>;
29
21
  }, z.core.$strip>;
30
22
  /** Path parameters addressing a project's key collection. */
@@ -49,14 +41,7 @@ export declare namespace schema {
49
41
  sandbox: "sandbox";
50
42
  }>>;
51
43
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
52
- scopes: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniEnum<{
53
- "data:read": "data:read";
54
- "indexer:query": "indexer:query";
55
- "rpc-relay:read": "rpc-relay:read";
56
- "rpc-relay:sponsor": "rpc-relay:sponsor";
57
- "webhooks:read": "webhooks:read";
58
- "webhooks:write": "webhooks:write";
59
- }>>>;
44
+ scopes: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniString<string>>>;
60
45
  }, z.core.$strip>;
61
46
  /** Schemas for the createApiKey operation. */
62
47
  namespace createApiKey {
@@ -73,15 +58,7 @@ export declare namespace schema {
73
58
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
74
59
  orgId: z.ZodMiniString<string>;
75
60
  projectId: z.ZodMiniOptional<z.ZodMiniString<string>>;
76
- scopes: z.ZodMiniArray<z.ZodMiniEnum<{
77
- "*": "*";
78
- "data:read": "data:read";
79
- "indexer:query": "indexer:query";
80
- "rpc-relay:read": "rpc-relay:read";
81
- "rpc-relay:sponsor": "rpc-relay:sponsor";
82
- "webhooks:read": "webhooks:read";
83
- "webhooks:write": "webhooks:write";
84
- }>>;
61
+ scopes: z.ZodMiniArray<z.ZodMiniString<string>>;
85
62
  tokenLast4: z.ZodMiniString<string>;
86
63
  token: z.ZodMiniString<string>;
87
64
  }, z.core.$strip>;
@@ -109,15 +86,7 @@ export declare namespace schema {
109
86
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
110
87
  orgId: z.ZodMiniString<string>;
111
88
  projectId: z.ZodMiniOptional<z.ZodMiniString<string>>;
112
- scopes: z.ZodMiniArray<z.ZodMiniEnum<{
113
- "*": "*";
114
- "data:read": "data:read";
115
- "indexer:query": "indexer:query";
116
- "rpc-relay:read": "rpc-relay:read";
117
- "rpc-relay:sponsor": "rpc-relay:sponsor";
118
- "webhooks:read": "webhooks:read";
119
- "webhooks:write": "webhooks:write";
120
- }>>;
89
+ scopes: z.ZodMiniArray<z.ZodMiniString<string>>;
121
90
  tokenLast4: z.ZodMiniString<string>;
122
91
  }, z.core.$strip>>;
123
92
  }, z.core.$strip>;
@@ -145,15 +114,7 @@ export declare namespace schema {
145
114
  name: z.ZodMiniOptional<z.ZodMiniString<string>>;
146
115
  orgId: z.ZodMiniString<string>;
147
116
  projectId: z.ZodMiniOptional<z.ZodMiniString<string>>;
148
- scopes: z.ZodMiniArray<z.ZodMiniEnum<{
149
- "*": "*";
150
- "data:read": "data:read";
151
- "indexer:query": "indexer:query";
152
- "rpc-relay:read": "rpc-relay:read";
153
- "rpc-relay:sponsor": "rpc-relay:sponsor";
154
- "webhooks:read": "webhooks:read";
155
- "webhooks:write": "webhooks:write";
156
- }>>;
117
+ scopes: z.ZodMiniArray<z.ZodMiniString<string>>;
157
118
  tokenLast4: z.ZodMiniString<string>;
158
119
  }, z.core.$strip>>;
159
120
  }, z.core.$strip>;
@@ -167,25 +128,21 @@ export declare namespace schema {
167
128
  }
168
129
  }
169
130
  /**
170
- * Mounts the `/orgs/:orgId/projects/:projectId/api-keys` resource
171
- * (project-scoped mint/list/revoke) plus the org-wide read
172
- * `/orgs/:orgId/api-keys`, over the KV state store. Access follows the
173
- * org/project scope (owning session or super admin); the token appears once,
174
- * at mint.
131
+ * Mounts project-attributed API key mint, list, and revoke routes plus the org-wide list. Access follows the caller's organization ownership.
175
132
  */
176
133
  export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-base").HonoBase<App.Environment, {
177
134
  "/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}/projects/:projectId{prj_[A-Za-z0-9_-]+}/api-keys": {
178
135
  $post: {
179
136
  output: {
180
137
  error: {
181
- code: "api_key_malformed";
138
+ code: "upstream_error";
182
139
  details?: readonly Response.error.Detail[] | undefined;
183
140
  message: string;
184
141
  };
185
142
  requestId: string;
186
143
  };
187
144
  outputFormat: "json";
188
- status: 400;
145
+ status: 502;
189
146
  input: {
190
147
  param: {
191
148
  orgId: string;
@@ -195,20 +152,20 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
195
152
  json: {
196
153
  environment?: "production" | "sandbox" | undefined;
197
154
  name?: string | undefined;
198
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
155
+ scopes?: string[] | undefined;
199
156
  };
200
157
  };
201
158
  } | {
202
159
  output: {
203
160
  error: {
204
- code: "api_key_invalid" | "api_key_missing";
161
+ code: "api_key_malformed";
205
162
  details?: readonly Response.error.Detail[] | undefined;
206
163
  message: string;
207
164
  };
208
165
  requestId: string;
209
166
  };
210
167
  outputFormat: "json";
211
- status: 401;
168
+ status: 400;
212
169
  input: {
213
170
  param: {
214
171
  orgId: string;
@@ -218,20 +175,20 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
218
175
  json: {
219
176
  environment?: "production" | "sandbox" | undefined;
220
177
  name?: string | undefined;
221
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
178
+ scopes?: string[] | undefined;
222
179
  };
223
180
  };
224
181
  } | {
225
182
  output: {
226
183
  error: {
227
- code: "upstream_error";
184
+ code: "api_key_invalid" | "api_key_missing";
228
185
  details?: readonly Response.error.Detail[] | undefined;
229
186
  message: string;
230
187
  };
231
188
  requestId: string;
232
189
  };
233
190
  outputFormat: "json";
234
- status: 502;
191
+ status: 401;
235
192
  input: {
236
193
  param: {
237
194
  orgId: string;
@@ -241,20 +198,20 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
241
198
  json: {
242
199
  environment?: "production" | "sandbox" | undefined;
243
200
  name?: string | undefined;
244
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
201
+ scopes?: string[] | undefined;
245
202
  };
246
203
  };
247
204
  } | {
248
205
  output: {
249
206
  error: {
250
- code: "body_invalid";
207
+ code: "forbidden";
251
208
  details?: readonly Response.error.Detail[] | undefined;
252
209
  message: string;
253
210
  };
254
211
  requestId: string;
255
212
  };
256
213
  outputFormat: "json";
257
- status: 400;
214
+ status: 403;
258
215
  input: {
259
216
  param: {
260
217
  orgId: string;
@@ -264,20 +221,20 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
264
221
  json: {
265
222
  environment?: "production" | "sandbox" | undefined;
266
223
  name?: string | undefined;
267
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
224
+ scopes?: string[] | undefined;
268
225
  };
269
226
  };
270
227
  } | {
271
228
  output: {
272
229
  error: {
273
- code: "param_invalid";
230
+ code: "organization_not_found" | "project_not_found";
274
231
  details?: readonly Response.error.Detail[] | undefined;
275
232
  message: string;
276
233
  };
277
234
  requestId: string;
278
235
  };
279
236
  outputFormat: "json";
280
- status: 400;
237
+ status: 404;
281
238
  input: {
282
239
  param: {
283
240
  orgId: string;
@@ -287,20 +244,20 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
287
244
  json: {
288
245
  environment?: "production" | "sandbox" | undefined;
289
246
  name?: string | undefined;
290
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
247
+ scopes?: string[] | undefined;
291
248
  };
292
249
  };
293
250
  } | {
294
251
  output: {
295
252
  error: {
296
- code: "forbidden";
253
+ code: "param_invalid";
297
254
  details?: readonly Response.error.Detail[] | undefined;
298
255
  message: string;
299
256
  };
300
257
  requestId: string;
301
258
  };
302
259
  outputFormat: "json";
303
- status: 403;
260
+ status: 400;
304
261
  input: {
305
262
  param: {
306
263
  orgId: string;
@@ -310,20 +267,20 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
310
267
  json: {
311
268
  environment?: "production" | "sandbox" | undefined;
312
269
  name?: string | undefined;
313
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
270
+ scopes?: string[] | undefined;
314
271
  };
315
272
  };
316
273
  } | {
317
274
  output: {
318
275
  error: {
319
- code: "organization_not_found" | "project_not_found";
276
+ code: "body_invalid";
320
277
  details?: readonly Response.error.Detail[] | undefined;
321
278
  message: string;
322
279
  };
323
280
  requestId: string;
324
281
  };
325
282
  outputFormat: "json";
326
- status: 404;
283
+ status: 400;
327
284
  input: {
328
285
  param: {
329
286
  orgId: string;
@@ -333,7 +290,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
333
290
  json: {
334
291
  environment?: "production" | "sandbox" | undefined;
335
292
  name?: string | undefined;
336
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
293
+ scopes?: string[] | undefined;
337
294
  };
338
295
  };
339
296
  } | {
@@ -356,7 +313,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
356
313
  json: {
357
314
  environment?: "production" | "sandbox" | undefined;
358
315
  name?: string | undefined;
359
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
316
+ scopes?: string[] | undefined;
360
317
  };
361
318
  };
362
319
  } | {
@@ -379,7 +336,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
379
336
  json: {
380
337
  environment?: "production" | "sandbox" | undefined;
381
338
  name?: string | undefined;
382
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
339
+ scopes?: string[] | undefined;
383
340
  };
384
341
  };
385
342
  } | {
@@ -392,7 +349,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
392
349
  name?: string | undefined;
393
350
  orgId: string;
394
351
  projectId?: string | undefined;
395
- scopes: ("*" | "data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[];
352
+ scopes: string[];
396
353
  tokenLast4: string;
397
354
  token: string;
398
355
  };
@@ -407,7 +364,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
407
364
  json: {
408
365
  environment?: "production" | "sandbox" | undefined;
409
366
  name?: string | undefined;
410
- scopes?: ("data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[] | undefined;
367
+ scopes?: string[] | undefined;
411
368
  };
412
369
  };
413
370
  };
@@ -415,6 +372,27 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
415
372
  } & {
416
373
  "/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}/projects/:projectId{prj_[A-Za-z0-9_-]+}/api-keys": {
417
374
  $get: {
375
+ output: {
376
+ error: {
377
+ code: "upstream_error";
378
+ details?: readonly Response.error.Detail[] | undefined;
379
+ message: string;
380
+ };
381
+ requestId: string;
382
+ };
383
+ outputFormat: "json";
384
+ status: 502;
385
+ input: {
386
+ param: {
387
+ orgId: string;
388
+ projectId: string;
389
+ };
390
+ } & {
391
+ query?: {
392
+ environment?: string | string[];
393
+ } | undefined;
394
+ };
395
+ } | {
418
396
  output: {
419
397
  error: {
420
398
  code: "api_key_malformed";
@@ -459,14 +437,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
459
437
  } | {
460
438
  output: {
461
439
  error: {
462
- code: "query_invalid";
440
+ code: "api_key_forbidden";
463
441
  details?: readonly Response.error.Detail[] | undefined;
464
442
  message: string;
465
443
  };
466
444
  requestId: string;
467
445
  };
468
446
  outputFormat: "json";
469
- status: 400;
447
+ status: 403;
470
448
  input: {
471
449
  param: {
472
450
  orgId: string;
@@ -480,14 +458,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
480
458
  } | {
481
459
  output: {
482
460
  error: {
483
- code: "upstream_error";
461
+ code: "payment_required" | "rate_limit_exceeded";
484
462
  details?: readonly Response.error.Detail[] | undefined;
485
463
  message: string;
486
464
  };
487
465
  requestId: string;
488
466
  };
489
467
  outputFormat: "json";
490
- status: 502;
468
+ status: 429;
491
469
  input: {
492
470
  param: {
493
471
  orgId: string;
@@ -501,7 +479,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
501
479
  } | {
502
480
  output: {
503
481
  error: {
504
- code: "param_invalid";
482
+ code: "query_invalid";
505
483
  details?: readonly Response.error.Detail[] | undefined;
506
484
  message: string;
507
485
  };
@@ -522,14 +500,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
522
500
  } | {
523
501
  output: {
524
502
  error: {
525
- code: "forbidden";
503
+ code: "organization_not_found" | "project_not_found";
526
504
  details?: readonly Response.error.Detail[] | undefined;
527
505
  message: string;
528
506
  };
529
507
  requestId: string;
530
508
  };
531
509
  outputFormat: "json";
532
- status: 403;
510
+ status: 404;
533
511
  input: {
534
512
  param: {
535
513
  orgId: string;
@@ -543,14 +521,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
543
521
  } | {
544
522
  output: {
545
523
  error: {
546
- code: "organization_not_found" | "project_not_found";
524
+ code: "param_invalid";
547
525
  details?: readonly Response.error.Detail[] | undefined;
548
526
  message: string;
549
527
  };
550
528
  requestId: string;
551
529
  };
552
530
  outputFormat: "json";
553
- status: 404;
531
+ status: 400;
554
532
  input: {
555
533
  param: {
556
534
  orgId: string;
@@ -593,7 +571,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
593
571
  name?: string | undefined;
594
572
  orgId: string;
595
573
  projectId?: string | undefined;
596
- scopes: ("*" | "data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[];
574
+ scopes: string[];
597
575
  tokenLast4: string;
598
576
  }[];
599
577
  };
@@ -614,6 +592,26 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
614
592
  } & {
615
593
  "/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}/api-keys": {
616
594
  $get: {
595
+ output: {
596
+ error: {
597
+ code: "upstream_error";
598
+ details?: readonly Response.error.Detail[] | undefined;
599
+ message: string;
600
+ };
601
+ requestId: string;
602
+ };
603
+ outputFormat: "json";
604
+ status: 502;
605
+ input: {
606
+ param: {
607
+ orgId: string;
608
+ };
609
+ } & {
610
+ query?: {
611
+ environment?: string | string[];
612
+ } | undefined;
613
+ };
614
+ } | {
617
615
  output: {
618
616
  error: {
619
617
  code: "api_key_malformed";
@@ -656,14 +654,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
656
654
  } | {
657
655
  output: {
658
656
  error: {
659
- code: "query_invalid";
657
+ code: "api_key_forbidden";
660
658
  details?: readonly Response.error.Detail[] | undefined;
661
659
  message: string;
662
660
  };
663
661
  requestId: string;
664
662
  };
665
663
  outputFormat: "json";
666
- status: 400;
664
+ status: 403;
667
665
  input: {
668
666
  param: {
669
667
  orgId: string;
@@ -676,14 +674,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
676
674
  } | {
677
675
  output: {
678
676
  error: {
679
- code: "upstream_error";
677
+ code: "payment_required" | "rate_limit_exceeded";
680
678
  details?: readonly Response.error.Detail[] | undefined;
681
679
  message: string;
682
680
  };
683
681
  requestId: string;
684
682
  };
685
683
  outputFormat: "json";
686
- status: 502;
684
+ status: 429;
687
685
  input: {
688
686
  param: {
689
687
  orgId: string;
@@ -696,7 +694,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
696
694
  } | {
697
695
  output: {
698
696
  error: {
699
- code: "param_invalid";
697
+ code: "query_invalid";
700
698
  details?: readonly Response.error.Detail[] | undefined;
701
699
  message: string;
702
700
  };
@@ -716,14 +714,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
716
714
  } | {
717
715
  output: {
718
716
  error: {
719
- code: "forbidden";
717
+ code: "param_invalid";
720
718
  details?: readonly Response.error.Detail[] | undefined;
721
719
  message: string;
722
720
  };
723
721
  requestId: string;
724
722
  };
725
723
  outputFormat: "json";
726
- status: 403;
724
+ status: 400;
727
725
  input: {
728
726
  param: {
729
727
  orgId: string;
@@ -784,7 +782,7 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
784
782
  name?: string | undefined;
785
783
  orgId: string;
786
784
  projectId?: string | undefined;
787
- scopes: ("*" | "data:read" | "indexer:query" | "rpc-relay:read" | "rpc-relay:sponsor" | "webhooks:read" | "webhooks:write")[];
785
+ scopes: string[];
788
786
  tokenLast4: string;
789
787
  }[];
790
788
  };
@@ -804,6 +802,24 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
804
802
  } & {
805
803
  "/v1/orgs/:orgId{org_[A-Za-z0-9_-]+}/projects/:projectId{prj_[A-Za-z0-9_-]+}/api-keys/:keyId{key_[A-Za-z0-9_-]+}": {
806
804
  $delete: {
805
+ output: {
806
+ error: {
807
+ code: "upstream_error";
808
+ details?: readonly Response.error.Detail[] | undefined;
809
+ message: string;
810
+ };
811
+ requestId: string;
812
+ };
813
+ outputFormat: "json";
814
+ status: 502;
815
+ input: {
816
+ param: {
817
+ keyId: string;
818
+ orgId: string;
819
+ projectId: string;
820
+ };
821
+ };
822
+ } | {
807
823
  output: {
808
824
  error: {
809
825
  code: "api_key_malformed";
@@ -842,14 +858,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
842
858
  } | {
843
859
  output: {
844
860
  error: {
845
- code: "upstream_error";
861
+ code: "api_key_forbidden";
846
862
  details?: readonly Response.error.Detail[] | undefined;
847
863
  message: string;
848
864
  };
849
865
  requestId: string;
850
866
  };
851
867
  outputFormat: "json";
852
- status: 502;
868
+ status: 403;
853
869
  input: {
854
870
  param: {
855
871
  keyId: string;
@@ -860,14 +876,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
860
876
  } | {
861
877
  output: {
862
878
  error: {
863
- code: "param_invalid";
879
+ code: "payment_required" | "rate_limit_exceeded";
864
880
  details?: readonly Response.error.Detail[] | undefined;
865
881
  message: string;
866
882
  };
867
883
  requestId: string;
868
884
  };
869
885
  outputFormat: "json";
870
- status: 400;
886
+ status: 429;
871
887
  input: {
872
888
  param: {
873
889
  keyId: string;
@@ -878,14 +894,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
878
894
  } | {
879
895
  output: {
880
896
  error: {
881
- code: "forbidden";
897
+ code: "organization_not_found" | "project_not_found";
882
898
  details?: readonly Response.error.Detail[] | undefined;
883
899
  message: string;
884
900
  };
885
901
  requestId: string;
886
902
  };
887
903
  outputFormat: "json";
888
- status: 403;
904
+ status: 404;
889
905
  input: {
890
906
  param: {
891
907
  keyId: string;
@@ -896,14 +912,14 @@ export declare function apiKeys(options?: apiKeys.Options): import("hono/hono-ba
896
912
  } | {
897
913
  output: {
898
914
  error: {
899
- code: "organization_not_found" | "project_not_found";
915
+ code: "param_invalid";
900
916
  details?: readonly Response.error.Detail[] | undefined;
901
917
  message: string;
902
918
  };
903
919
  requestId: string;
904
920
  };
905
921
  outputFormat: "json";
906
- status: 404;
922
+ status: 400;
907
923
  input: {
908
924
  param: {
909
925
  keyId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../../src/apps/management/routes/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAK3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAIzD,kDAAkD;AAClD,yBAAiB,MAAM,CAAC;IACtB,oEAAoE;IAC7D,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;qBA0Df,CAAA;IAED,6DAA6D;IACtD,MAAM,MAAM;;;qBAe8C,CAAA;IAEjE,mEAAmE;IAC5D,MAAM,SAAS;;qBASiD,CAAA;IAEvE,8CAA8C;IACvC,MAAM,SAAS;;;;qBAqBkC,CAAA;IAExD,2EAA2E;IACpE,MAAM,OAAO;;;;;;;;;;;;;;qBAYkC,CAAA;IAEtD,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,8CAA8C;QACvC,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;yBAUpB,CAAA;KACF;IAED,6CAA6C;IAC7C,UAAiB,WAAW,CAAC;QAC3B,mDAAmD;QAC5C,MAAM,KAAK;;;;;0BAEgD,CAAA;QAElE,8CAA8C;QACvC,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;yBAKpB,CAAA;KACF;IAED,gDAAgD;IAChD,UAAiB,cAAc,CAAC;QAC9B,0DAA0D;QACnD,MAAM,KAAK;;;;;0BAEsD,CAAA;QAExE,2DAA2D;QACpD,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;yBAOpB,CAAA;KACF;IAED,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,6CAA6C;QACtC,MAAM,QAAQ;;yBASyC,CAAA;KAC/D;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,OAAO,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2HA4QpD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,kDAAkD;IAClD,KAAK,OAAO,GAAG;QACb,oHAAoH;QACpH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC9B,CAAA;CACF"}
1
+ {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../../../src/apps/management/routes/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAK3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAIzD,kDAAkD;AAClD,yBAAiB,MAAM,CAAC;IACtB,oEAAoE;IAC7D,MAAM,GAAG;;;;;;;;;;;;;;qBA0Df,CAAA;IAED,6DAA6D;IACtD,MAAM,MAAM;;;qBAe8C,CAAA;IAEjE,mEAAmE;IAC5D,MAAM,SAAS;;qBASiD,CAAA;IAEvE,8CAA8C;IACvC,MAAM,SAAS;;;;qBAqBkC,CAAA;IAExD,2EAA2E;IACpE,MAAM,OAAO;;;;;;;qBAoBkC,CAAA;IAEtD,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,8CAA8C;QACvC,MAAM,QAAQ;;;;;;;;;;;;;;;yBAUpB,CAAA;KACF;IAED,6CAA6C;IAC7C,UAAiB,WAAW,CAAC;QAC3B,mDAAmD;QAC5C,MAAM,KAAK;;;;;0BAEgD,CAAA;QAElE,8CAA8C;QACvC,MAAM,QAAQ;;;;;;;;;;;;;;;;yBAKpB,CAAA;KACF;IAED,gDAAgD;IAChD,UAAiB,cAAc,CAAC;QAC9B,0DAA0D;QACnD,MAAM,KAAK;;;;;0BAEsD,CAAA;QAExE,2DAA2D;QACpD,MAAM,QAAQ;;;;;;;;;;;;;;;;yBAOpB,CAAA;KACF;IAED,8CAA8C;IAC9C,UAAiB,YAAY,CAAC;QAC5B,6CAA6C;QACtC,MAAM,QAAQ;;yBASyC,CAAA;KAC/D;CACF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,OAAO,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2HAmRpD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,kDAAkD;IAClD,KAAK,OAAO,GAAG;QACb,oHAAoH;QACpH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC9B,CAAA;CACF"}