tapimo 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +31 -3
  2. package/dist/ApiKey.d.ts +1 -0
  3. package/dist/ApiKey.d.ts.map +1 -1
  4. package/dist/ApiKey.js +5 -2
  5. package/dist/ApiKey.js.map +1 -1
  6. package/dist/ApiKeys.d.ts +28 -1
  7. package/dist/ApiKeys.d.ts.map +1 -1
  8. package/dist/ApiKeys.js +34 -1
  9. package/dist/ApiKeys.js.map +1 -1
  10. package/dist/App.d.ts +7167 -4507
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +8 -0
  13. package/dist/App.js.map +1 -1
  14. package/dist/Scope.d.ts +11 -2
  15. package/dist/Scope.d.ts.map +1 -1
  16. package/dist/Scope.js +14 -3
  17. package/dist/Scope.js.map +1 -1
  18. package/dist/admin/App.d.ts +128 -118
  19. package/dist/admin/App.d.ts.map +1 -1
  20. package/dist/admin/apps/api-keys.d.ts +7 -0
  21. package/dist/admin/apps/api-keys.d.ts.map +1 -1
  22. package/dist/admin/apps/scopes.d.ts +8 -0
  23. package/dist/admin/apps/scopes.d.ts.map +1 -1
  24. package/dist/admin/apps/scopes.js +3 -0
  25. package/dist/admin/apps/scopes.js.map +1 -1
  26. package/dist/admin/apps/verified-tokens.d.ts +57 -57
  27. package/dist/admin/ui.generated.d.ts +1 -1
  28. package/dist/admin/ui.generated.js +13 -13
  29. package/dist/admin/ui.generated.js.map +1 -1
  30. package/dist/analytics/Analytics.d.ts +151 -0
  31. package/dist/analytics/Analytics.d.ts.map +1 -0
  32. package/dist/analytics/Analytics.js +212 -0
  33. package/dist/analytics/Analytics.js.map +1 -0
  34. package/dist/analytics/tables/requestEvents.d.ts +215 -0
  35. package/dist/analytics/tables/requestEvents.d.ts.map +1 -0
  36. package/dist/analytics/tables/requestEvents.js +264 -0
  37. package/dist/analytics/tables/requestEvents.js.map +1 -0
  38. package/dist/apps/data/App.d.ts +1024 -624
  39. package/dist/apps/data/App.d.ts.map +1 -1
  40. package/dist/apps/data/App.js +36 -0
  41. package/dist/apps/data/App.js.map +1 -1
  42. package/dist/apps/data/routes/balances.d.ts +45 -45
  43. package/dist/apps/data/routes/coingecko.d.ts +176 -176
  44. package/dist/apps/data/routes/exchanges.d.ts +455 -455
  45. package/dist/apps/data/routes/fee-amm.d.ts +101 -101
  46. package/dist/apps/data/routes/funding.d.ts +765 -0
  47. package/dist/apps/data/routes/funding.d.ts.map +1 -0
  48. package/dist/apps/data/routes/funding.js +383 -0
  49. package/dist/apps/data/routes/funding.js.map +1 -0
  50. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  51. package/dist/apps/data/routes/receipts.js +2 -8
  52. package/dist/apps/data/routes/receipts.js.map +1 -1
  53. package/dist/apps/data/routes/rpc.d.ts +29 -36
  54. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  55. package/dist/apps/data/routes/rpc.js +29 -1
  56. package/dist/apps/data/routes/rpc.js.map +1 -1
  57. package/dist/apps/data/routes/tokenlist.d.ts +36 -36
  58. package/dist/apps/data/routes/transfers.d.ts +56 -56
  59. package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
  60. package/dist/apps/data/routes/webhooks.d.ts +45 -45
  61. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  62. package/dist/apps/data/routes/webhooks.js +8 -8
  63. package/dist/apps/data/routes/webhooks.js.map +1 -1
  64. package/dist/apps/docs/App.d.ts +4 -2
  65. package/dist/apps/docs/App.d.ts.map +1 -1
  66. package/dist/apps/docs/App.js +27 -95
  67. package/dist/apps/docs/App.js.map +1 -1
  68. package/dist/apps/docs/reference.d.ts +21 -0
  69. package/dist/apps/docs/reference.d.ts.map +1 -0
  70. package/dist/apps/docs/reference.js +112 -0
  71. package/dist/apps/docs/reference.js.map +1 -0
  72. package/dist/apps/index.d.ts +1 -0
  73. package/dist/apps/index.d.ts.map +1 -1
  74. package/dist/apps/index.js +1 -0
  75. package/dist/apps/index.js.map +1 -1
  76. package/dist/apps/mcp.d.ts +76 -0
  77. package/dist/apps/mcp.d.ts.map +1 -0
  78. package/dist/apps/mcp.js +188 -0
  79. package/dist/apps/mcp.js.map +1 -0
  80. package/dist/apps/platform/App.d.ts +3005 -728
  81. package/dist/apps/platform/App.d.ts.map +1 -1
  82. package/dist/apps/platform/App.js +13 -3
  83. package/dist/apps/platform/App.js.map +1 -1
  84. package/dist/apps/platform/Billing.d.ts +279 -0
  85. package/dist/apps/platform/Billing.d.ts.map +1 -0
  86. package/dist/apps/platform/Billing.js +477 -0
  87. package/dist/apps/platform/Billing.js.map +1 -0
  88. package/dist/apps/platform/index.d.ts +1 -0
  89. package/dist/apps/platform/index.d.ts.map +1 -1
  90. package/dist/apps/platform/index.js +1 -0
  91. package/dist/apps/platform/index.js.map +1 -1
  92. package/dist/apps/platform/routes/api-keys.d.ts +341 -49
  93. package/dist/apps/platform/routes/api-keys.d.ts.map +1 -1
  94. package/dist/apps/platform/routes/api-keys.js +115 -13
  95. package/dist/apps/platform/routes/api-keys.js.map +1 -1
  96. package/dist/apps/platform/routes/billing.d.ts +1520 -0
  97. package/dist/apps/platform/routes/billing.d.ts.map +1 -0
  98. package/dist/apps/platform/routes/billing.js +795 -0
  99. package/dist/apps/platform/routes/billing.js.map +1 -0
  100. package/dist/apps/platform/routes/invitations.d.ts +201 -83
  101. package/dist/apps/platform/routes/invitations.d.ts.map +1 -1
  102. package/dist/apps/platform/routes/invitations.js +58 -0
  103. package/dist/apps/platform/routes/invitations.js.map +1 -1
  104. package/dist/apps/platform/routes/me.d.ts +17 -17
  105. package/dist/apps/platform/routes/orgs.d.ts +50 -36
  106. package/dist/apps/platform/routes/orgs.d.ts.map +1 -1
  107. package/dist/apps/platform/routes/orgs.js +14 -3
  108. package/dist/apps/platform/routes/orgs.js.map +1 -1
  109. package/dist/apps/platform/routes/projects.d.ts +97 -97
  110. package/dist/apps/platform/routes/scopes.d.ts +107 -0
  111. package/dist/apps/platform/routes/scopes.d.ts.map +1 -0
  112. package/dist/apps/platform/routes/scopes.js +66 -0
  113. package/dist/apps/platform/routes/scopes.js.map +1 -0
  114. package/dist/apps/platform/routes/usage.d.ts +588 -0
  115. package/dist/apps/platform/routes/usage.d.ts.map +1 -0
  116. package/dist/apps/platform/routes/usage.js +391 -0
  117. package/dist/apps/platform/routes/usage.js.map +1 -0
  118. package/dist/apps/relay/App.d.ts +4 -1
  119. package/dist/apps/relay/App.d.ts.map +1 -1
  120. package/dist/apps/relay/App.js +118 -10
  121. package/dist/apps/relay/App.js.map +1 -1
  122. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  123. package/dist/apps/relay/Sponsorships.js +2 -1
  124. package/dist/apps/relay/Sponsorships.js.map +1 -1
  125. package/dist/cli/Cli.d.ts +8 -1
  126. package/dist/cli/Cli.d.ts.map +1 -1
  127. package/dist/cli/Cli.js +11 -3
  128. package/dist/cli/Cli.js.map +1 -1
  129. package/dist/cli/commands/admin.d.ts +4 -0
  130. package/dist/cli/commands/admin.d.ts.map +1 -1
  131. package/dist/cli/commands/admin.js +80 -1
  132. package/dist/cli/commands/admin.js.map +1 -1
  133. package/dist/db/Db.d.ts +7 -0
  134. package/dist/db/Db.d.ts.map +1 -1
  135. package/dist/db/Db.js +126 -0
  136. package/dist/db/Db.js.map +1 -1
  137. package/dist/db/Schema.d.ts +79 -0
  138. package/dist/db/Schema.d.ts.map +1 -1
  139. package/dist/db/Schema.js +88 -2
  140. package/dist/db/Schema.js.map +1 -1
  141. package/dist/db/tables/billingSettings.d.ts +55 -0
  142. package/dist/db/tables/billingSettings.d.ts.map +1 -0
  143. package/dist/db/tables/billingSettings.js +70 -0
  144. package/dist/db/tables/billingSettings.js.map +1 -0
  145. package/dist/db/tables/invitations.js +2 -2
  146. package/dist/db/tables/invitations.js.map +1 -1
  147. package/dist/db/tables/organizations.d.ts +6 -2
  148. package/dist/db/tables/organizations.d.ts.map +1 -1
  149. package/dist/db/tables/organizations.js +10 -4
  150. package/dist/db/tables/organizations.js.map +1 -1
  151. package/dist/db/tables/projects.js +2 -2
  152. package/dist/db/tables/projects.js.map +1 -1
  153. package/dist/db/tables/requestUsage.d.ts +121 -0
  154. package/dist/db/tables/requestUsage.d.ts.map +1 -0
  155. package/dist/db/tables/requestUsage.js +150 -0
  156. package/dist/db/tables/requestUsage.js.map +1 -0
  157. package/dist/db/tables/sponsoredTransactions.d.ts +119 -0
  158. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  159. package/dist/db/tables/sponsoredTransactions.js +155 -2
  160. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  161. package/dist/db/tables/stripeCustomers.d.ts +81 -0
  162. package/dist/db/tables/stripeCustomers.d.ts.map +1 -0
  163. package/dist/db/tables/stripeCustomers.js +120 -0
  164. package/dist/db/tables/stripeCustomers.js.map +1 -0
  165. package/dist/db/tables/users.js +2 -2
  166. package/dist/db/tables/users.js.map +1 -1
  167. package/dist/handlers/internal/sponsorship.d.ts +5 -2
  168. package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
  169. package/dist/handlers/internal/sponsorship.js +19 -5
  170. package/dist/handlers/internal/sponsorship.js.map +1 -1
  171. package/dist/handlers/internal/utils.d.ts +10 -3
  172. package/dist/handlers/internal/utils.d.ts.map +1 -1
  173. package/dist/handlers/internal/utils.js +14 -6
  174. package/dist/handlers/internal/utils.js.map +1 -1
  175. package/dist/index.d.ts +1 -0
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +1 -0
  178. package/dist/index.js.map +1 -1
  179. package/dist/internal/Auth.d.ts +18 -4
  180. package/dist/internal/Auth.d.ts.map +1 -1
  181. package/dist/internal/Auth.js +148 -76
  182. package/dist/internal/Auth.js.map +1 -1
  183. package/dist/internal/Cache.d.ts.map +1 -1
  184. package/dist/internal/Cache.js +4 -1
  185. package/dist/internal/Cache.js.map +1 -1
  186. package/dist/internal/EdgeCache.d.ts +10 -0
  187. package/dist/internal/EdgeCache.d.ts.map +1 -1
  188. package/dist/internal/EdgeCache.js +39 -8
  189. package/dist/internal/EdgeCache.js.map +1 -1
  190. package/dist/internal/Fees.d.ts +27 -0
  191. package/dist/internal/Fees.d.ts.map +1 -0
  192. package/dist/internal/Fees.js +48 -0
  193. package/dist/internal/Fees.js.map +1 -0
  194. package/dist/internal/FundingRoutes.d.ts +183 -0
  195. package/dist/internal/FundingRoutes.d.ts.map +1 -0
  196. package/dist/internal/FundingRoutes.js +490 -0
  197. package/dist/internal/FundingRoutes.js.map +1 -0
  198. package/dist/internal/Id.d.ts +15 -0
  199. package/dist/internal/Id.d.ts.map +1 -0
  200. package/dist/internal/Id.js +22 -0
  201. package/dist/internal/Id.js.map +1 -0
  202. package/dist/internal/Log.d.ts +2 -0
  203. package/dist/internal/Log.d.ts.map +1 -1
  204. package/dist/internal/Log.js +3 -0
  205. package/dist/internal/Log.js.map +1 -1
  206. package/dist/internal/OpenApi.d.ts +10 -1
  207. package/dist/internal/OpenApi.d.ts.map +1 -1
  208. package/dist/internal/OpenApi.js +8 -1
  209. package/dist/internal/OpenApi.js.map +1 -1
  210. package/dist/internal/RateLimit.d.ts +25 -0
  211. package/dist/internal/RateLimit.d.ts.map +1 -1
  212. package/dist/internal/RateLimit.js +51 -0
  213. package/dist/internal/RateLimit.js.map +1 -1
  214. package/dist/internal/Response.d.ts +1 -1
  215. package/dist/internal/Response.d.ts.map +1 -1
  216. package/dist/internal/Schema.d.ts +8 -0
  217. package/dist/internal/Schema.d.ts.map +1 -1
  218. package/dist/internal/Schema.js +7 -0
  219. package/dist/internal/Schema.js.map +1 -1
  220. package/dist/internal/Webhooks.d.ts.map +1 -1
  221. package/dist/internal/Webhooks.js +3 -3
  222. package/dist/internal/Webhooks.js.map +1 -1
  223. package/package.json +4 -3
  224. package/src/ApiKey.ts +9 -2
  225. package/src/ApiKeys.test.ts +51 -0
  226. package/src/ApiKeys.ts +50 -1
  227. package/src/App.test.ts +33 -86718
  228. package/src/App.ts +18 -0
  229. package/src/Client.test-d.ts +351 -0
  230. package/src/Scope.ts +16 -3
  231. package/src/admin/apps/scopes.test.ts +6 -0
  232. package/src/admin/apps/scopes.ts +3 -0
  233. package/src/admin/ui/src/components/Page.tsx +2 -3
  234. package/src/admin/ui/src/routes/__root.tsx +2 -2
  235. package/src/admin/ui/src/routes/api-keys.tsx +2 -2
  236. package/src/admin/ui.generated.ts +13 -13
  237. package/src/analytics/Analytics.test.ts +527 -0
  238. package/src/analytics/Analytics.ts +318 -0
  239. package/src/analytics/tables/requestEvents.ts +523 -0
  240. package/src/apps/data/App.test.ts +72 -0
  241. package/src/apps/data/App.ts +35 -0
  242. package/src/apps/data/routes/funding.test.ts +214 -0
  243. package/src/apps/data/routes/funding.ts +584 -0
  244. package/src/apps/data/routes/receipts.ts +2 -9
  245. package/src/apps/data/routes/rpc.test.ts +78 -2
  246. package/src/apps/data/routes/rpc.ts +31 -1
  247. package/src/apps/data/routes/webhooks.test.ts +1 -1
  248. package/src/apps/data/routes/webhooks.ts +11 -8
  249. package/src/apps/docs/App.ts +29 -100
  250. package/src/apps/docs/reference.ts +132 -0
  251. package/src/apps/index.ts +1 -0
  252. package/src/apps/mcp.test.ts +206 -0
  253. package/src/apps/mcp.ts +250 -0
  254. package/src/apps/platform/App.ts +43 -4
  255. package/src/apps/platform/Billing.test.ts +530 -0
  256. package/src/apps/platform/Billing.ts +682 -0
  257. package/src/apps/platform/index.ts +1 -0
  258. package/src/apps/platform/routes/api-keys.test.ts +172 -9
  259. package/src/apps/platform/routes/api-keys.ts +136 -20
  260. package/src/apps/platform/routes/billing.test.ts +1100 -0
  261. package/src/apps/platform/routes/billing.ts +966 -0
  262. package/src/apps/platform/routes/invitations.test.ts +55 -7
  263. package/src/apps/platform/routes/invitations.ts +68 -0
  264. package/src/apps/platform/routes/me.test.ts +230 -0
  265. package/src/apps/platform/routes/orgs.ts +26 -4
  266. package/src/apps/platform/routes/scopes.test.ts +29 -0
  267. package/src/apps/platform/routes/scopes.ts +85 -0
  268. package/src/apps/platform/routes/usage.test.ts +422 -0
  269. package/src/apps/platform/routes/usage.ts +527 -0
  270. package/src/apps/relay/App.test.ts +457 -8
  271. package/src/apps/relay/App.ts +120 -12
  272. package/src/apps/relay/Sponsorships.test.ts +1 -1
  273. package/src/apps/relay/Sponsorships.ts +2 -1
  274. package/src/cli/Cli.test.ts +25 -2
  275. package/src/cli/Cli.ts +17 -2
  276. package/src/cli/commands/admin.test.ts +83 -0
  277. package/src/cli/commands/admin.ts +89 -1
  278. package/src/db/Db.ts +137 -0
  279. package/src/db/Schema.ts +104 -2
  280. package/src/db/tables/billingSettings.test.ts +87 -0
  281. package/src/db/tables/billingSettings.ts +108 -0
  282. package/src/db/tables/invitations.ts +2 -2
  283. package/src/db/tables/organizations.test.ts +1 -1
  284. package/src/db/tables/organizations.ts +15 -5
  285. package/src/db/tables/projects.ts +2 -2
  286. package/src/db/tables/requestUsage.ts +231 -0
  287. package/src/db/tables/sponsoredTransactions.test.ts +108 -1
  288. package/src/db/tables/sponsoredTransactions.ts +230 -2
  289. package/src/db/tables/stripeCustomers.test.ts +109 -0
  290. package/src/db/tables/stripeCustomers.ts +162 -0
  291. package/src/db/tables/users.ts +2 -2
  292. package/src/handlers/internal/sponsorship.ts +34 -7
  293. package/src/handlers/internal/utils.ts +19 -7
  294. package/src/index.ts +1 -0
  295. package/src/internal/Auth.test.ts +175 -25
  296. package/src/internal/Auth.ts +175 -86
  297. package/src/internal/Cache.ts +5 -1
  298. package/src/internal/EdgeCache.test.ts +27 -4
  299. package/src/internal/EdgeCache.ts +47 -9
  300. package/src/internal/Fees.test.ts +32 -0
  301. package/src/internal/Fees.ts +51 -0
  302. package/src/internal/FundingRoutes.ts +583 -0
  303. package/src/internal/Id.test.ts +17 -0
  304. package/src/internal/Id.ts +24 -0
  305. package/src/internal/Log.test.ts +1 -0
  306. package/src/internal/Log.ts +5 -0
  307. package/src/internal/OpenApi.ts +12 -1
  308. package/src/internal/RateLimit.test.ts +84 -0
  309. package/src/internal/RateLimit.ts +70 -0
  310. package/src/internal/Response.ts +1 -1
  311. package/src/internal/Schema.ts +8 -0
  312. package/src/internal/Webhooks.test.ts +3 -3
  313. package/src/internal/Webhooks.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/apps/platform/App.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAUxC;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,iIAAiI;IACjI,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,iCAAiC;IACjC,KAAK,OAAO,GAAG;QACb,sBAAsB;QACtB,IAAI,EAAE,MAAM,CAAA;QACZ,iBAAiB;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,oBAAoB;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,uBAAuB;QACvB,IAAI,EAAE,MAAM,CAAA;QACZ,yBAAyB;QACzB,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG;QACxC,2FAA2F;QAC3F,KAAK,EAAE,KAAK,GAAG,SAAS,CAAA;KACzB,CAAA;CACF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,QAAQ,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAetD;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,4CAA4C;IAC5C,KAAK,OAAO,GAAG;QACb,kFAAkF;QAClF,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,0IAA0I;QAC1I,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAC1B,CAAA;CACF"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/apps/platform/App.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAEhC,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AAaxC;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,iIAAiI;IACjI,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACnD,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,iCAAiC;IACjC,KAAK,OAAO,GAAG;QACb,sBAAsB;QACtB,IAAI,EAAE,MAAM,CAAA;QACZ,iBAAiB;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,oBAAoB;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,uBAAuB;QACvB,IAAI,EAAE,MAAM,CAAA;QACZ,yBAAyB;QACzB,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF;AAED,uFAAuF;AACvF,MAAM,MAAM,OAAO,GAAG;IACpB;;OAEG;IACH,MAAM,EAAE;QACN,iCAAiC;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,yHAAyH;QACzH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,kFAAkF;QAClF,OAAO,CAAC,EACJ;YACE,2CAA2C;YAC3C,MAAM,EAAE,MAAM,CAAA;YACd,6DAA6D;YAC7D,aAAa,EAAE,MAAM,CAAA;SACtB,GACD,SAAS,CAAA;QACb,mDAAmD;QACnD,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG;QACxC,yEAAyE;QACzE,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;QAC5B,2FAA2F;QAC3F,KAAK,EAAE,KAAK,GAAG,SAAS,CAAA;KACzB,CAAA;CACF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,QAAQ,CAAC,OAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkBtD;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,4CAA4C;IAC5C,KAAK,OAAO,GAAG;QACb,kFAAkF;QAClF,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,8GAA8G;QAC9G,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B,0IAA0I;QAC1I,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAC1B,CAAA;CACF"}
@@ -1,11 +1,14 @@
1
1
  import { Hono } from 'hono';
2
2
  import * as Metadata from '../metadata.js';
3
3
  import { apiKeys } from './routes/api-keys.js';
4
+ import { billing } from './routes/billing.js';
4
5
  import { invitations } from './routes/invitations.js';
5
6
  import { me } from './routes/me.js';
6
7
  import { members } from './routes/members.js';
7
8
  import { orgs } from './routes/orgs.js';
8
9
  import { projects } from './routes/projects.js';
10
+ import { scopes } from './routes/scopes.js';
11
+ import { usage } from './routes/usage.js';
9
12
  /**
10
13
  * The tenant-platform route group: the current user, orgs, projects, members,
11
14
  * invitations, and API-key management. Every route reads its dependencies from
@@ -20,18 +23,21 @@ import { projects } from './routes/projects.js';
20
23
  */
21
24
  export function platform(options = {}) {
22
25
  const app = new Hono()
23
- // Publish the transactional email sender for this group's handlers
24
- // (invitations read it off context); undefined disables dispatch.
26
+ // Publish this group's capabilities for handlers; undefined disables each.
25
27
  .use('*', async (c, next) => {
28
+ c.set('billing', options.billing);
26
29
  c.set('email', options.email);
27
30
  await next();
28
31
  })
29
32
  .route('/', apiKeys({ enabled: options.apiKeys !== false }))
33
+ .route('/', billing())
30
34
  .route('/', invitations())
31
35
  .route('/', me())
32
36
  .route('/', members())
33
37
  .route('/', orgs())
34
- .route('/', projects());
38
+ .route('/', projects())
39
+ .route('/', scopes())
40
+ .route('/', usage());
35
41
  return Metadata.attach(app, openapi);
36
42
  }
37
43
  /**
@@ -50,10 +56,12 @@ const openapi = {
50
56
  },
51
57
  tags: [
52
58
  { name: 'API Keys', description: 'Credentials for accessing the Tempo API.' },
59
+ { name: 'Billing', description: 'Organization billing backed by Stripe.' },
53
60
  { name: 'Invitations', description: 'Pending organization invitations.' },
54
61
  { name: 'Members', description: 'Organization team membership.' },
55
62
  { name: 'Organizations', description: 'Teams that own application workspaces and members.' },
56
63
  { name: 'Projects', description: 'Application workspaces within an organization.' },
64
+ { name: 'Usage', description: 'Request and sponsorship usage for organizations.' },
57
65
  { name: 'Users', description: 'Users on the Tempo Platform.' },
58
66
  ],
59
67
  'x-tagGroups': [
@@ -62,10 +70,12 @@ const openapi = {
62
70
  tags: [
63
71
  'API Keys',
64
72
  'Authentication',
73
+ 'Billing',
65
74
  'Invitations',
66
75
  'Members',
67
76
  'Organizations',
68
77
  'Projects',
78
+ 'Usage',
69
79
  'Users',
70
80
  ],
71
81
  },
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/apps/platform/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AA4C/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAO,GAAqB,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAe;QACjC,mEAAmE;QACnE,kEAAkE;SACjE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;SAC3D,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;SACzB,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;SAClB,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;IACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACtC,CAAC;AAYD;;;;GAIG;AACH,MAAM,OAAO,GAAG;IACd,eAAe,EAAE;QACf,OAAO,EAAE;YACP,WAAW,EAAE,2IAA2I,EAAE,kBAAkB;YAC5K,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ;SACf;KACF;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;QAC7E,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,mCAAmC,EAAE;QACzE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACjE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,oDAAoD,EAAE;QAC5F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gDAAgD,EAAE;QACnF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE;KAC/D;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE;gBACJ,UAAU;gBACV,gBAAgB;gBAChB,aAAa;gBACb,SAAS;gBACT,eAAe;gBACf,UAAU;gBACV,OAAO;aACR;SACF;KACF;CAC4B,CAAA"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/apps/platform/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAsEzC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAO,GAAqB,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAe;QACjC,2EAA2E;SAC1E,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC1B,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;SAC3D,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;SACzB,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;SAClB,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;SACtB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;SACpB,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IACtB,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACtC,CAAC;AAcD;;;;GAIG;AACH,MAAM,OAAO,GAAG;IACd,eAAe,EAAE;QACf,OAAO,EAAE;YACP,WAAW,EAAE,2IAA2I,EAAE,kBAAkB;YAC5K,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ;SACf;KACF;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;QAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wCAAwC,EAAE;QAC1E,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,mCAAmC,EAAE;QACzE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACjE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,oDAAoD,EAAE;QAC5F,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,gDAAgD,EAAE;QACnF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,kDAAkD,EAAE;QAClF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE;KAC/D;IACD,aAAa,EAAE;QACb;YACE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE;gBACJ,UAAU;gBACV,gBAAgB;gBAChB,SAAS;gBACT,aAAa;gBACb,SAAS;gBACT,eAAe;gBACf,UAAU;gBACV,OAAO;gBACP,OAAO;aACR;SACF;KACF;CAC4B,CAAA"}
@@ -0,0 +1,279 @@
1
+ import type Stripe from 'stripe';
2
+ import type * as Store from '../../internal/Store.js';
3
+ import type * as BillingSettings from '../../db/tables/billingSettings.js';
4
+ import * as Db from '../../db/Db.js';
5
+ import * as StripeCustomers from '../../db/tables/stripeCustomers.js';
6
+ /**
7
+ * Whether the organization has any active billing source — the production
8
+ * sponsorship gate's read. Storage stays one table per source; this resolver
9
+ * is the union across them (Stripe today).
10
+ *
11
+ * @param db - The database.
12
+ * @param orgId - The organization id (`org_…`).
13
+ * @returns Whether any billing source is active.
14
+ */
15
+ export declare function active(db: Db.Db, orgId: string, environment?: StripeCustomers.Record['environment']): Promise<boolean>;
16
+ /**
17
+ * The organization's billing status derived from its stored billing source,
18
+ * or undefined when it has none. The sponsorship gate maps non-`active`
19
+ * statuses to distinct refusal reasons.
20
+ *
21
+ * @param db - The database.
22
+ * @param orgId - The organization id (`org_…`).
23
+ * @returns The stored status, or undefined.
24
+ */
25
+ export declare function status(db: Db.Db, orgId: string, environment?: StripeCustomers.Record['environment']): Promise<StripeCustomers.Record['status'] | undefined>;
26
+ /**
27
+ * Converts a decimal currency string (e.g. `'0.50'`) to fee-token base units.
28
+ *
29
+ * @param amount - The decimal string; at most {@link Fees.tokenDecimals} fraction digits.
30
+ * @returns The amount in base units.
31
+ */
32
+ export declare function toBaseUnits(amount: string): bigint;
33
+ /**
34
+ * Converts fee-token base units to a decimal currency string with trailing
35
+ * zeros trimmed (e.g. `350000n` → `'0.35'`).
36
+ *
37
+ * @param units - The amount in base units.
38
+ * @returns The decimal string.
39
+ */
40
+ export declare function fromBaseUnits(units: bigint): string;
41
+ /**
42
+ * Start of the limit window containing `now` (ISO 8601); `month` is the UTC
43
+ * calendar month.
44
+ *
45
+ * @param period - The configured window.
46
+ * @param now - Reference time; defaults to now.
47
+ * @returns The window start.
48
+ */
49
+ export declare function periodStart(period: BillingSettings.Record['period'], now?: Date): string;
50
+ /**
51
+ * A metered billing dimension: a Stripe meter plus its metered monthly price.
52
+ * Each kind bills as a distinct invoice line item on one shared subscription.
53
+ */
54
+ export type MeterKind = 'apiRequests' | 'feePayerSpend';
55
+ /** Descriptor for one metered dimension. */
56
+ export type MeterDescriptor = {
57
+ /** Human-readable meter/product display name. */
58
+ displayName: string;
59
+ /** Meter event name; the Stripe meter aggregates `sum(value)` per customer per period. */
60
+ eventName: string;
61
+ /** Versioned price lookup key; changing economics ships a new key, never a mutated price. */
62
+ lookupKey: string;
63
+ /** Price per meter unit in cents (`unit_amount_decimal`). */
64
+ unitAmountDecimal: string;
65
+ };
66
+ /**
67
+ * The metered dimensions and their unit economics. A price pins cents per meter
68
+ * unit; changing them ships a new versioned `lookupKey`, never a mutated price.
69
+ */
70
+ export declare const meters: {
71
+ readonly apiRequests: {
72
+ readonly displayName: 'API Requests';
73
+ readonly eventName: 'api_request_count';
74
+ readonly lookupKey: 'api-request-count-v1';
75
+ readonly unitAmountDecimal: '0.01';
76
+ };
77
+ readonly feePayerSpend: {
78
+ readonly displayName: 'Sponsor Usage';
79
+ readonly eventName: 'fee_payer_spend';
80
+ readonly lookupKey: 'fee-payer-spend-v1';
81
+ readonly unitAmountDecimal: '0.0001';
82
+ };
83
+ };
84
+ /**
85
+ * The metered dimensions billed in an environment. Production bills sponsorship
86
+ * spend and request counts; sandbox bills request counts only.
87
+ *
88
+ * @param environment - The environment.
89
+ * @returns The metered dimensions for that environment.
90
+ */
91
+ export declare function kindsFor(environment: StripeCustomers.Record['environment']): readonly MeterKind[];
92
+ /** Back-compat: the fee-payer meter event name. */
93
+ export declare const meterEventName: "fee_payer_spend";
94
+ /** Back-compat: the fee-payer metered price lookup key. */
95
+ export declare const priceLookupKey: "fee-payer-spend-v1";
96
+ /**
97
+ * Ensures the account-level metering fixtures exist for a kind: its meter and
98
+ * metered monthly price. Idempotent by lookup (meter `event_name`, price
99
+ * `lookup_key`) and memoized per `(client, kind)`.
100
+ *
101
+ * @param stripe - The Stripe client.
102
+ * @param kind - The metered dimension; defaults to fee-payer spend.
103
+ * @returns The fixture ids.
104
+ */
105
+ export declare function ensureFixtures(stripe: Stripe, kind?: MeterKind): Promise<ensureFixtures.Fixtures>;
106
+ export declare namespace ensureFixtures {
107
+ /** Account-level metering fixture ids. */
108
+ type Fixtures = {
109
+ /** Spend meter id (`mtr_…`). */
110
+ meterId: string;
111
+ /** Metered price id (`price_…`). */
112
+ priceId: string;
113
+ };
114
+ }
115
+ /**
116
+ * Ensures the customer holds exactly one live subscription carrying one metered
117
+ * item per requested {@link MeterKind}, creating the subscription or adding
118
+ * missing items as needed. Metered usage bills the customer's default payment
119
+ * method monthly.
120
+ *
121
+ * Fail-closed on more than one live managed subscription: duplicates would
122
+ * double-bill the same meter usage, so the caller must reconcile manually.
123
+ *
124
+ * @param stripe - The Stripe client.
125
+ * @param customerId - The Stripe customer id.
126
+ * @param kinds - The metered dimensions to ensure; defaults to fee-payer spend.
127
+ * @returns The per-kind creation state and whether a subscription was created.
128
+ */
129
+ export declare function ensureSubscription(stripe: Stripe, customerId: string, kinds?: readonly MeterKind[]): Promise<ensureSubscription.Result>;
130
+ export declare namespace ensureSubscription {
131
+ /** Per-kind item reconciliation state. */
132
+ type ItemResult = {
133
+ /** Whether this call added the item (a fresh item bills nothing before its start). */
134
+ created: boolean;
135
+ };
136
+ /** Outcome of {@link ensureSubscription}. */
137
+ type Result = {
138
+ /** Whether this call created the subscription (none was live before). */
139
+ created: boolean;
140
+ /** Per-kind item state, keyed by {@link MeterKind}. */
141
+ items: Partial<Record<MeterKind, ItemResult>>;
142
+ };
143
+ }
144
+ /** More than one live managed subscription for a customer; requires manual reconcile. */
145
+ export declare class DuplicateSubscriptionError extends Error {
146
+ constructor(customerId: string);
147
+ }
148
+ /**
149
+ * Creates the metering job: each tick reports finalized, unreported billable
150
+ * mainnet spend to the Stripe meter and marks rows reported. A host runtime
151
+ * drives {@link createReporter.Reporter.tick} on a timer, like the
152
+ * sponsorship finalizer.
153
+ */
154
+ export declare function createReporter(options: createReporter.Options): createReporter.Reporter;
155
+ export declare namespace createReporter {
156
+ /** Options for {@link createReporter}. */
157
+ type Options = {
158
+ /** Maximum rows reported per tick. @default 100 */
159
+ batchSize?: number | undefined;
160
+ /** Chains whose spend is metered. @default mainnet */
161
+ chainIds?: readonly number[] | undefined;
162
+ /** Database holding sponsorship rows, or a factory resolved per tick (Workers/Hyperdrive). */
163
+ db: Db.Source;
164
+ /** Stripe client used to send meter events. */
165
+ stripe: Stripe;
166
+ };
167
+ /** A scheduled metering job. */
168
+ type Reporter = {
169
+ /** Runs one reporting pass. Failed rows stay unmarked and retry next tick. */
170
+ tick(): Promise<{
171
+ failed: number;
172
+ reported: number;
173
+ skipped: number;
174
+ }>;
175
+ };
176
+ }
177
+ /**
178
+ * Creates the request-metered billing job: each tick reports deduped billable
179
+ * request counts to the `api_request_count` meter, per environment, using that
180
+ * environment's Stripe client. Exactly-once from the request analytics stream
181
+ * via a Postgres outbox with frozen counts:
182
+ *
183
+ * - Deduped counts come from `request_events` (`uniqExact(request_id)`), never
184
+ * a raw `count()`, so queue retries never over-bill.
185
+ * - Sandbox rows bill only when billing was active at request time
186
+ * (`billing_active = 1`); production rows always bill.
187
+ * - Each tick first re-sends any `pending` events (crash recovery, idempotent
188
+ * on `identifier`), then seals new additive deltas for buckets older than the
189
+ * settlement delay whose count has grown since the last report.
190
+ *
191
+ * A host runtime drives {@link createRequestUsageReporter.Reporter.tick} on a
192
+ * timer, like the fee-payer meter reporter.
193
+ */
194
+ export declare function createRequestUsageReporter(options: createRequestUsageReporter.Options): createRequestUsageReporter.Reporter;
195
+ export declare namespace createRequestUsageReporter {
196
+ /** Deduped billable request count for one `(org, hour)` bucket. */
197
+ type Count = {
198
+ /** UTC hour start (ISO 8601). */
199
+ bucketStart: string;
200
+ /** Deduped billable request count. */
201
+ count: number;
202
+ /** Organization id (`org_…`). */
203
+ orgId: string;
204
+ };
205
+ /** Options for {@link createRequestUsageReporter}. */
206
+ type Options = {
207
+ /** Database holding the outbox/watermarks, or a factory resolved per tick (Workers/Hyperdrive). */
208
+ db: Db.Source;
209
+ /** Clock seam for tests; defaults to `Date.now`. */
210
+ now?: (() => number) | undefined;
211
+ /** Reads deduped billable counts per `(org, hour)` for an environment window. */
212
+ readCounts: (options: {
213
+ environment: StripeCustomers.Record['environment'];
214
+ from: string;
215
+ to: string;
216
+ }) => Promise<readonly Count[]>;
217
+ /** Sandbox (test-mode) Stripe client; omit to skip sandbox billing. */
218
+ sandboxStripe?: Stripe | undefined;
219
+ /** Only seal buckets older than this. @default 15min */
220
+ settlementDelayMs?: number | undefined;
221
+ /** Production Stripe client. */
222
+ stripe: Stripe;
223
+ /** How far back a tick reconciles late deltas. @default 48h */
224
+ windowMs?: number | undefined;
225
+ };
226
+ /** A scheduled request-metering job. */
227
+ type Reporter = {
228
+ /** Runs one reporting pass across production (and sandbox when configured). */
229
+ tick(): Promise<{
230
+ failed: number;
231
+ reported: number;
232
+ skipped: number;
233
+ }>;
234
+ };
235
+ }
236
+ /**
237
+ * Every organization's billing-active flag in an environment — the driver set
238
+ * for reconciling cached snapshots against this table. Provider-agnostic seam:
239
+ * callers reconcile against `{ orgId, active }`, never the Stripe source shape.
240
+ *
241
+ * @param db - The database.
242
+ * @param environment - The environment to enumerate.
243
+ * @returns One `{ orgId, active }` per billing source in the environment.
244
+ */
245
+ export declare function listActive(db: Db.Db, environment: StripeCustomers.Record['environment']): Promise<{
246
+ active: boolean;
247
+ orgId: string;
248
+ }[]>;
249
+ /**
250
+ * Creates the snapshot reconciler: each tick re-stamps the `billingActive`
251
+ * flag cached on API-key records from the authoritative billing table, so a
252
+ * missed or failed webhook re-sync self-heals within a tick. A host runtime
253
+ * drives {@link createKeyBillingSyncer.Syncer.tick} on a timer, like the meter
254
+ * reporter. Off the request path, so the auth hot path never reads billing.
255
+ *
256
+ * Only environments where keys carry a billing snapshot are reconciled
257
+ * (sandbox today); production keys carry none.
258
+ */
259
+ export declare function createKeyBillingSyncer(options: createKeyBillingSyncer.Options): createKeyBillingSyncer.Syncer;
260
+ export declare namespace createKeyBillingSyncer {
261
+ /** Options for {@link createKeyBillingSyncer}. */
262
+ type Options = {
263
+ /** Database holding billing sources, or a factory resolved per tick (Workers/Hyperdrive). */
264
+ db: Db.Source;
265
+ /** Environments to reconcile. @default ['sandbox'] */
266
+ environments?: readonly StripeCustomers.Record['environment'][] | undefined;
267
+ /** KV state store holding API-key records. */
268
+ kv: Store.State;
269
+ };
270
+ /** A scheduled snapshot-reconcile job. */
271
+ type Syncer = {
272
+ /** Runs one reconcile pass, re-stamping drifted key records. */
273
+ tick(): Promise<{
274
+ checked: number;
275
+ updated: number;
276
+ }>;
277
+ };
278
+ }
279
+ //# sourceMappingURL=Billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Billing.d.ts","sourceRoot":"","sources":["../../../src/apps/platform/Billing.ts"],"names":[],"mappings":"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"}