tapimo 0.2.0 → 0.4.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 (362) hide show
  1. package/README.md +36 -8
  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 +7532 -4850
  11. package/dist/App.d.ts.map +1 -1
  12. package/dist/App.js +11 -3
  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 +63 -53
  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 +1049 -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/FundingRouteProviders.d.ts +54 -0
  43. package/dist/apps/data/FundingRouteProviders.d.ts.map +1 -0
  44. package/dist/apps/data/FundingRouteProviders.js +355 -0
  45. package/dist/apps/data/FundingRouteProviders.js.map +1 -0
  46. package/dist/apps/data/index.d.ts +1 -0
  47. package/dist/apps/data/index.d.ts.map +1 -1
  48. package/dist/apps/data/index.js +1 -0
  49. package/dist/apps/data/index.js.map +1 -1
  50. package/dist/apps/data/routes/balances.d.ts +45 -45
  51. package/dist/apps/data/routes/coingecko.d.ts +176 -176
  52. package/dist/apps/data/routes/exchanges.d.ts +455 -455
  53. package/dist/apps/data/routes/fee-amm.d.ts +101 -101
  54. package/dist/apps/data/routes/funding.d.ts +843 -0
  55. package/dist/apps/data/routes/funding.d.ts.map +1 -0
  56. package/dist/apps/data/routes/funding.js +443 -0
  57. package/dist/apps/data/routes/funding.js.map +1 -0
  58. package/dist/apps/data/routes/indexer.d.ts +5 -5
  59. package/dist/apps/data/routes/receipts.d.ts.map +1 -1
  60. package/dist/apps/data/routes/receipts.js +2 -8
  61. package/dist/apps/data/routes/receipts.js.map +1 -1
  62. package/dist/apps/data/routes/rpc.d.ts +29 -36
  63. package/dist/apps/data/routes/rpc.d.ts.map +1 -1
  64. package/dist/apps/data/routes/rpc.js +29 -1
  65. package/dist/apps/data/routes/rpc.js.map +1 -1
  66. package/dist/apps/data/routes/tokenlist.d.ts +36 -36
  67. package/dist/apps/data/routes/transfers.d.ts +56 -56
  68. package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
  69. package/dist/apps/data/routes/webhooks.d.ts +45 -45
  70. package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
  71. package/dist/apps/data/routes/webhooks.js +8 -8
  72. package/dist/apps/data/routes/webhooks.js.map +1 -1
  73. package/dist/apps/docs/App.d.ts +5 -3
  74. package/dist/apps/docs/App.d.ts.map +1 -1
  75. package/dist/apps/docs/App.js +28 -96
  76. package/dist/apps/docs/App.js.map +1 -1
  77. package/dist/apps/docs/reference.d.ts +21 -0
  78. package/dist/apps/docs/reference.d.ts.map +1 -0
  79. package/dist/apps/docs/reference.js +112 -0
  80. package/dist/apps/docs/reference.js.map +1 -0
  81. package/dist/apps/index.d.ts +3 -2
  82. package/dist/apps/index.d.ts.map +1 -1
  83. package/dist/apps/index.js +3 -2
  84. package/dist/apps/index.js.map +1 -1
  85. package/dist/apps/{platform → management}/App.d.ts +3015 -738
  86. package/dist/apps/management/App.d.ts.map +1 -0
  87. package/dist/apps/{platform → management}/App.js +20 -10
  88. package/dist/apps/management/App.js.map +1 -0
  89. package/dist/apps/management/Billing.d.ts +279 -0
  90. package/dist/apps/management/Billing.d.ts.map +1 -0
  91. package/dist/apps/management/Billing.js +477 -0
  92. package/dist/apps/management/Billing.js.map +1 -0
  93. package/dist/apps/management/index.d.ts +3 -0
  94. package/dist/apps/management/index.d.ts.map +1 -0
  95. package/dist/apps/management/index.js +3 -0
  96. package/dist/apps/management/index.js.map +1 -0
  97. package/dist/apps/{platform → management}/routes/api-keys.d.ts +341 -49
  98. package/dist/apps/management/routes/api-keys.d.ts.map +1 -0
  99. package/dist/apps/{platform → management}/routes/api-keys.js +116 -14
  100. package/dist/apps/management/routes/api-keys.js.map +1 -0
  101. package/dist/apps/management/routes/billing.d.ts +1520 -0
  102. package/dist/apps/management/routes/billing.d.ts.map +1 -0
  103. package/dist/apps/management/routes/billing.js +795 -0
  104. package/dist/apps/management/routes/billing.js.map +1 -0
  105. package/dist/apps/{platform → management}/routes/invitations.d.ts +202 -84
  106. package/dist/apps/management/routes/invitations.d.ts.map +1 -0
  107. package/dist/apps/{platform → management}/routes/invitations.js +59 -1
  108. package/dist/apps/management/routes/invitations.js.map +1 -0
  109. package/dist/apps/{platform → management}/routes/me.d.ts +17 -17
  110. package/dist/apps/management/routes/me.d.ts.map +1 -0
  111. package/dist/apps/management/routes/me.js.map +1 -0
  112. package/dist/apps/management/routes/members.d.ts.map +1 -0
  113. package/dist/apps/management/routes/members.js.map +1 -0
  114. package/dist/apps/{platform → management}/routes/orgs.d.ts +50 -36
  115. package/dist/apps/management/routes/orgs.d.ts.map +1 -0
  116. package/dist/apps/{platform → management}/routes/orgs.js +14 -3
  117. package/dist/apps/management/routes/orgs.js.map +1 -0
  118. package/dist/apps/{platform → management}/routes/projects.d.ts +97 -97
  119. package/dist/apps/{platform → management}/routes/projects.d.ts.map +1 -1
  120. package/dist/apps/management/routes/projects.js.map +1 -0
  121. package/dist/apps/management/routes/scopes.d.ts +107 -0
  122. package/dist/apps/management/routes/scopes.d.ts.map +1 -0
  123. package/dist/apps/management/routes/scopes.js +66 -0
  124. package/dist/apps/management/routes/scopes.js.map +1 -0
  125. package/dist/apps/management/routes/usage.d.ts +588 -0
  126. package/dist/apps/management/routes/usage.d.ts.map +1 -0
  127. package/dist/apps/management/routes/usage.js +391 -0
  128. package/dist/apps/management/routes/usage.js.map +1 -0
  129. package/dist/apps/mcp.d.ts +76 -0
  130. package/dist/apps/mcp.d.ts.map +1 -0
  131. package/dist/apps/mcp.js +188 -0
  132. package/dist/apps/mcp.js.map +1 -0
  133. package/dist/apps/relay/App.d.ts +4 -1
  134. package/dist/apps/relay/App.d.ts.map +1 -1
  135. package/dist/apps/relay/App.js +118 -10
  136. package/dist/apps/relay/App.js.map +1 -1
  137. package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
  138. package/dist/apps/relay/Sponsorships.js +2 -1
  139. package/dist/apps/relay/Sponsorships.js.map +1 -1
  140. package/dist/cli/Cli.d.ts +8 -1
  141. package/dist/cli/Cli.d.ts.map +1 -1
  142. package/dist/cli/Cli.js +11 -3
  143. package/dist/cli/Cli.js.map +1 -1
  144. package/dist/cli/commands/admin.d.ts +4 -0
  145. package/dist/cli/commands/admin.d.ts.map +1 -1
  146. package/dist/cli/commands/admin.js +80 -1
  147. package/dist/cli/commands/admin.js.map +1 -1
  148. package/dist/db/Db.d.ts +7 -0
  149. package/dist/db/Db.d.ts.map +1 -1
  150. package/dist/db/Db.js +126 -0
  151. package/dist/db/Db.js.map +1 -1
  152. package/dist/db/Schema.d.ts +79 -0
  153. package/dist/db/Schema.d.ts.map +1 -1
  154. package/dist/db/Schema.js +88 -2
  155. package/dist/db/Schema.js.map +1 -1
  156. package/dist/db/tables/billingSettings.d.ts +55 -0
  157. package/dist/db/tables/billingSettings.d.ts.map +1 -0
  158. package/dist/db/tables/billingSettings.js +70 -0
  159. package/dist/db/tables/billingSettings.js.map +1 -0
  160. package/dist/db/tables/invitations.js +2 -2
  161. package/dist/db/tables/invitations.js.map +1 -1
  162. package/dist/db/tables/organizations.d.ts +6 -2
  163. package/dist/db/tables/organizations.d.ts.map +1 -1
  164. package/dist/db/tables/organizations.js +10 -4
  165. package/dist/db/tables/organizations.js.map +1 -1
  166. package/dist/db/tables/projects.js +2 -2
  167. package/dist/db/tables/projects.js.map +1 -1
  168. package/dist/db/tables/requestUsage.d.ts +121 -0
  169. package/dist/db/tables/requestUsage.d.ts.map +1 -0
  170. package/dist/db/tables/requestUsage.js +150 -0
  171. package/dist/db/tables/requestUsage.js.map +1 -0
  172. package/dist/db/tables/sponsoredTransactions.d.ts +119 -0
  173. package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
  174. package/dist/db/tables/sponsoredTransactions.js +155 -2
  175. package/dist/db/tables/sponsoredTransactions.js.map +1 -1
  176. package/dist/db/tables/stripeCustomers.d.ts +81 -0
  177. package/dist/db/tables/stripeCustomers.d.ts.map +1 -0
  178. package/dist/db/tables/stripeCustomers.js +120 -0
  179. package/dist/db/tables/stripeCustomers.js.map +1 -0
  180. package/dist/db/tables/users.js +2 -2
  181. package/dist/db/tables/users.js.map +1 -1
  182. package/dist/handlers/internal/sponsorship.d.ts +5 -2
  183. package/dist/handlers/internal/sponsorship.d.ts.map +1 -1
  184. package/dist/handlers/internal/sponsorship.js +19 -5
  185. package/dist/handlers/internal/sponsorship.js.map +1 -1
  186. package/dist/handlers/internal/utils.d.ts +10 -3
  187. package/dist/handlers/internal/utils.d.ts.map +1 -1
  188. package/dist/handlers/internal/utils.js +14 -6
  189. package/dist/handlers/internal/utils.js.map +1 -1
  190. package/dist/index.d.ts +1 -0
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +1 -0
  193. package/dist/index.js.map +1 -1
  194. package/dist/internal/Auth.d.ts +18 -4
  195. package/dist/internal/Auth.d.ts.map +1 -1
  196. package/dist/internal/Auth.js +149 -77
  197. package/dist/internal/Auth.js.map +1 -1
  198. package/dist/internal/Cache.d.ts.map +1 -1
  199. package/dist/internal/Cache.js +4 -1
  200. package/dist/internal/Cache.js.map +1 -1
  201. package/dist/internal/EdgeCache.d.ts +10 -0
  202. package/dist/internal/EdgeCache.d.ts.map +1 -1
  203. package/dist/internal/EdgeCache.js +39 -8
  204. package/dist/internal/EdgeCache.js.map +1 -1
  205. package/dist/internal/Fees.d.ts +27 -0
  206. package/dist/internal/Fees.d.ts.map +1 -0
  207. package/dist/internal/Fees.js +48 -0
  208. package/dist/internal/Fees.js.map +1 -0
  209. package/dist/internal/FundingRoutes.d.ts +915 -0
  210. package/dist/internal/FundingRoutes.d.ts.map +1 -0
  211. package/dist/internal/FundingRoutes.js +625 -0
  212. package/dist/internal/FundingRoutes.js.map +1 -0
  213. package/dist/internal/Id.d.ts +15 -0
  214. package/dist/internal/Id.d.ts.map +1 -0
  215. package/dist/internal/Id.js +22 -0
  216. package/dist/internal/Id.js.map +1 -0
  217. package/dist/internal/Log.d.ts +2 -0
  218. package/dist/internal/Log.d.ts.map +1 -1
  219. package/dist/internal/Log.js +3 -0
  220. package/dist/internal/Log.js.map +1 -1
  221. package/dist/internal/OpenApi.d.ts +10 -1
  222. package/dist/internal/OpenApi.d.ts.map +1 -1
  223. package/dist/internal/OpenApi.js +8 -1
  224. package/dist/internal/OpenApi.js.map +1 -1
  225. package/dist/internal/RateLimit.d.ts +25 -0
  226. package/dist/internal/RateLimit.d.ts.map +1 -1
  227. package/dist/internal/RateLimit.js +51 -0
  228. package/dist/internal/RateLimit.js.map +1 -1
  229. package/dist/internal/Response.d.ts +1 -1
  230. package/dist/internal/Response.d.ts.map +1 -1
  231. package/dist/internal/Schema.d.ts +8 -0
  232. package/dist/internal/Schema.d.ts.map +1 -1
  233. package/dist/internal/Schema.js +7 -0
  234. package/dist/internal/Schema.js.map +1 -1
  235. package/dist/internal/Webhooks.d.ts.map +1 -1
  236. package/dist/internal/Webhooks.js +3 -3
  237. package/dist/internal/Webhooks.js.map +1 -1
  238. package/package.json +8 -7
  239. package/src/ApiKey.ts +9 -2
  240. package/src/ApiKeys.test.ts +51 -0
  241. package/src/ApiKeys.ts +50 -1
  242. package/src/App.test.ts +33 -86718
  243. package/src/App.ts +26 -8
  244. package/src/Client.test-d.ts +353 -2
  245. package/src/Scope.ts +16 -3
  246. package/src/admin/apps/scopes.test.ts +6 -0
  247. package/src/admin/apps/scopes.ts +3 -0
  248. package/src/admin/ui/src/components/Page.tsx +2 -3
  249. package/src/admin/ui/src/routes/__root.tsx +2 -2
  250. package/src/admin/ui/src/routes/api-keys.tsx +2 -2
  251. package/src/admin/ui.generated.ts +13 -13
  252. package/src/analytics/Analytics.test.ts +527 -0
  253. package/src/analytics/Analytics.ts +318 -0
  254. package/src/analytics/tables/requestEvents.ts +523 -0
  255. package/src/apps/composition.test.ts +26 -13
  256. package/src/apps/data/App.test.ts +72 -0
  257. package/src/apps/data/App.ts +37 -0
  258. package/src/apps/data/FundingRouteProviders.test.ts +281 -0
  259. package/src/apps/data/FundingRouteProviders.ts +459 -0
  260. package/src/apps/data/index.ts +1 -0
  261. package/src/apps/data/routes/funding.test.ts +314 -0
  262. package/src/apps/data/routes/funding.ts +698 -0
  263. package/src/apps/data/routes/receipts.ts +2 -9
  264. package/src/apps/data/routes/rpc.test.ts +78 -2
  265. package/src/apps/data/routes/rpc.ts +31 -1
  266. package/src/apps/data/routes/webhooks.test.ts +1 -1
  267. package/src/apps/data/routes/webhooks.ts +11 -8
  268. package/src/apps/docs/App.ts +30 -101
  269. package/src/apps/docs/reference.ts +132 -0
  270. package/src/apps/index.ts +3 -2
  271. package/src/apps/{platform → management}/App.ts +56 -17
  272. package/src/apps/management/Billing.test.ts +530 -0
  273. package/src/apps/management/Billing.ts +682 -0
  274. package/src/apps/management/index.ts +2 -0
  275. package/src/apps/{platform → management}/routes/api-keys.test.ts +172 -9
  276. package/src/apps/{platform → management}/routes/api-keys.ts +137 -21
  277. package/src/apps/management/routes/billing.test.ts +1100 -0
  278. package/src/apps/management/routes/billing.ts +966 -0
  279. package/src/apps/{platform → management}/routes/invitations.test.ts +55 -7
  280. package/src/apps/{platform → management}/routes/invitations.ts +69 -1
  281. package/src/apps/management/routes/me.test.ts +351 -0
  282. package/src/apps/{platform → management}/routes/orgs.ts +26 -4
  283. package/src/apps/management/routes/scopes.test.ts +29 -0
  284. package/src/apps/management/routes/scopes.ts +85 -0
  285. package/src/apps/management/routes/usage.test.ts +422 -0
  286. package/src/apps/management/routes/usage.ts +527 -0
  287. package/src/apps/mcp.test.ts +206 -0
  288. package/src/apps/mcp.ts +250 -0
  289. package/src/apps/relay/App.test.ts +457 -8
  290. package/src/apps/relay/App.ts +120 -12
  291. package/src/apps/relay/Sponsorships.test.ts +1 -1
  292. package/src/apps/relay/Sponsorships.ts +2 -1
  293. package/src/cli/Cli.test.ts +25 -2
  294. package/src/cli/Cli.ts +17 -2
  295. package/src/cli/commands/admin.test.ts +83 -0
  296. package/src/cli/commands/admin.ts +89 -1
  297. package/src/db/Db.ts +137 -0
  298. package/src/db/Schema.ts +104 -2
  299. package/src/db/tables/billingSettings.test.ts +87 -0
  300. package/src/db/tables/billingSettings.ts +108 -0
  301. package/src/db/tables/invitations.ts +2 -2
  302. package/src/db/tables/organizations.test.ts +1 -1
  303. package/src/db/tables/organizations.ts +15 -5
  304. package/src/db/tables/projects.ts +2 -2
  305. package/src/db/tables/requestUsage.ts +231 -0
  306. package/src/db/tables/sponsoredTransactions.test.ts +108 -1
  307. package/src/db/tables/sponsoredTransactions.ts +230 -2
  308. package/src/db/tables/stripeCustomers.test.ts +109 -0
  309. package/src/db/tables/stripeCustomers.ts +162 -0
  310. package/src/db/tables/users.ts +2 -2
  311. package/src/handlers/internal/sponsorship.ts +34 -7
  312. package/src/handlers/internal/utils.ts +19 -7
  313. package/src/index.ts +1 -0
  314. package/src/internal/Auth.test.ts +175 -25
  315. package/src/internal/Auth.ts +176 -87
  316. package/src/internal/Cache.ts +5 -1
  317. package/src/internal/EdgeCache.test.ts +27 -4
  318. package/src/internal/EdgeCache.ts +47 -9
  319. package/src/internal/Fees.test.ts +32 -0
  320. package/src/internal/Fees.ts +51 -0
  321. package/src/internal/FundingRoutes.test.ts +213 -0
  322. package/src/internal/FundingRoutes.ts +898 -0
  323. package/src/internal/Id.test.ts +17 -0
  324. package/src/internal/Id.ts +24 -0
  325. package/src/internal/Log.test.ts +1 -0
  326. package/src/internal/Log.ts +5 -0
  327. package/src/internal/OpenApi.ts +12 -1
  328. package/src/internal/RateLimit.test.ts +84 -0
  329. package/src/internal/RateLimit.ts +70 -0
  330. package/src/internal/Response.ts +1 -1
  331. package/src/internal/Schema.ts +8 -0
  332. package/src/internal/Webhooks.test.ts +3 -3
  333. package/src/internal/Webhooks.ts +3 -3
  334. package/dist/apps/platform/App.d.ts.map +0 -1
  335. package/dist/apps/platform/App.js.map +0 -1
  336. package/dist/apps/platform/index.d.ts +0 -2
  337. package/dist/apps/platform/index.d.ts.map +0 -1
  338. package/dist/apps/platform/index.js +0 -2
  339. package/dist/apps/platform/index.js.map +0 -1
  340. package/dist/apps/platform/routes/api-keys.d.ts.map +0 -1
  341. package/dist/apps/platform/routes/api-keys.js.map +0 -1
  342. package/dist/apps/platform/routes/invitations.d.ts.map +0 -1
  343. package/dist/apps/platform/routes/invitations.js.map +0 -1
  344. package/dist/apps/platform/routes/me.d.ts.map +0 -1
  345. package/dist/apps/platform/routes/me.js.map +0 -1
  346. package/dist/apps/platform/routes/members.d.ts.map +0 -1
  347. package/dist/apps/platform/routes/members.js.map +0 -1
  348. package/dist/apps/platform/routes/orgs.d.ts.map +0 -1
  349. package/dist/apps/platform/routes/orgs.js.map +0 -1
  350. package/dist/apps/platform/routes/projects.js.map +0 -1
  351. package/src/apps/platform/index.ts +0 -1
  352. package/src/apps/platform/routes/me.test.ts +0 -121
  353. /package/dist/apps/{platform → management}/routes/me.js +0 -0
  354. /package/dist/apps/{platform → management}/routes/members.d.ts +0 -0
  355. /package/dist/apps/{platform → management}/routes/members.js +0 -0
  356. /package/dist/apps/{platform → management}/routes/projects.js +0 -0
  357. /package/src/apps/{platform → management}/routes/me.ts +0 -0
  358. /package/src/apps/{platform → management}/routes/members.test.ts +0 -0
  359. /package/src/apps/{platform → management}/routes/members.ts +0 -0
  360. /package/src/apps/{platform → management}/routes/orgs.test.ts +0 -0
  361. /package/src/apps/{platform → management}/routes/projects.test.ts +0 -0
  362. /package/src/apps/{platform → management}/routes/projects.ts +0 -0
package/dist/db/Schema.js CHANGED
@@ -4,6 +4,27 @@ import * as z from 'zod/mini';
4
4
  // nullable columns; the domain layer converts `null` back to absent fields.
5
5
  // Domain-owned unions and jsonb values stay typed by their owning module via
6
6
  // `z.custom` (type-only imports) so the two cannot drift.
7
+ /** An organization's billing configuration; source-agnostic (limits apply to any billing source). */
8
+ export const BillingSettings = z.object({
9
+ createdAt: z.string().check(z.describe('When the settings row was created (ISO 8601).')),
10
+ currency: z
11
+ .enum(['usd'])
12
+ .check(z.describe('ISO 4217 currency (lowercase) both limits are denominated in.')),
13
+ environment: z
14
+ .enum(['production', 'sandbox'])
15
+ .check(z.describe('Environment these settings apply to; `production` or `sandbox`.')),
16
+ orgId: z.string().check(z.describe('Organization id (`org_…`) these settings belong to.')),
17
+ period: z
18
+ .enum(['month'])
19
+ .check(z.describe('Window the spend limit applies over; `month` is a UTC calendar month.')),
20
+ spendLimit: z
21
+ .nullable(z.string())
22
+ .check(z.describe('Spend limit per period as a decimal string in `currency` units, or null for no limit.')), // prettier-ignore
23
+ txFeeLimit: z
24
+ .nullable(z.string())
25
+ .check(z.describe('Per-transaction fee cap as a decimal string in `currency` units, or null for the platform default.')), // prettier-ignore
26
+ updatedAt: z.string().check(z.describe('When the settings last changed (ISO 8601).')),
27
+ });
7
28
  /** A pending, expiring offer of organization membership. */
8
29
  export const Invitation = z.object({
9
30
  acceptedAt: z
@@ -73,12 +94,18 @@ export const SponsoredTransaction = z.object({
73
94
  .check(z.describe('Whether the sponsorship accrues billable spend; false for sandbox.')),
74
95
  chainId: z.number().check(z.describe('Chain the sponsored transaction targets.')),
75
96
  createdAt: z.string().check(z.describe('When the sponsorship was recorded (ISO 8601).')),
97
+ currency: z
98
+ .nullable(z.string())
99
+ .check(z.describe('Lowercase fee currency the sponsorship settles in (`usd`), or null when the fee token is unverified.')), // prettier-ignore
76
100
  environment: z
77
101
  .enum(['production', 'sandbox'])
78
102
  .check(z.describe('Key environment the sponsorship was requested under.')),
79
103
  feeAmount: z
80
104
  .nullable(z.string())
81
105
  .check(z.describe('Actual fee paid in fee-token base units, or null until finalized.')),
106
+ feeMax: z
107
+ .nullable(z.string())
108
+ .check(z.describe('Signed fee cap (`gas × maxFeePerGas`) in base units; pending rows count it against spend limits.')), // prettier-ignore
82
109
  feeToken: z
83
110
  .nullable(z.string())
84
111
  .check(z.describe('Fee token address, or null when the chain default applied.')),
@@ -88,6 +115,9 @@ export const SponsoredTransaction = z.object({
88
115
  id: z
89
116
  .string()
90
117
  .check(z.describe('Opaque sponsored-transaction id (`stx_…`).'), z.meta({ examples: ['stx_1a2b3c4d5e6f7g8h9j0k1m2n'] })),
118
+ meterReportedAt: z
119
+ .nullable(z.string())
120
+ .check(z.describe('When the row was reported to the billing meter (ISO 8601), or null; exactly-once marker.')), // prettier-ignore
91
121
  orgId: z.string().check(z.describe('Organization id (`org_…`) the spend attributes to.')),
92
122
  projectId: z.string().check(z.describe('Project id (`prj_…`) the spend attributes to.')),
93
123
  signPayload: z
@@ -103,6 +133,62 @@ export const SponsoredTransaction = z.object({
103
133
  .nullable(z.string())
104
134
  .check(z.describe('Transaction hash, or null for fill intents until reconciled.')),
105
135
  });
136
+ /** A per-hour request-count watermark: the running total already reported to the meter. */
137
+ export const RequestUsageBucket = z.object({
138
+ bucketStart: z.string().check(z.describe('UTC hour start this bucket covers (ISO 8601).')),
139
+ environment: z
140
+ .enum(['production', 'sandbox'])
141
+ .check(z.describe('Environment the requests were served under; `production` or `sandbox`.')),
142
+ orgId: z.string().check(z.describe('Organization id (`org_…`) the requests attribute to.')),
143
+ reportedCount: z
144
+ .number()
145
+ .check(z.describe('Cumulative request count already reported to the meter for this bucket.')),
146
+ updatedAt: z.string().check(z.describe('When the watermark last advanced (ISO 8601).')),
147
+ });
148
+ /** One request-count meter event: a frozen additive delta with its exactly-once state. */
149
+ export const RequestUsageMeterEvent = z.object({
150
+ bucketStart: z.string().check(z.describe('UTC hour start this event bills for (ISO 8601).')),
151
+ deltaCount: z
152
+ .number()
153
+ .check(z.describe('Frozen request count this event bills; a positive additive delta.')),
154
+ environment: z
155
+ .enum(['production', 'sandbox'])
156
+ .check(z.describe('Environment the requests were served under; `production` or `sandbox`.')),
157
+ error: z.nullable(z.string()).check(z.describe('Last failure detail while `pending`, or null.')),
158
+ firstAttemptedAt: z.string().check(z.describe('When this event was first claimed (ISO 8601).')),
159
+ identifier: z
160
+ .string()
161
+ .check(z.describe('Deterministic id; also the Stripe meter-event identifier and idempotency key.')), // prettier-ignore
162
+ orgId: z.string().check(z.describe('Organization id (`org_…`) the requests attribute to.')),
163
+ reason: z
164
+ .nullable(z.string())
165
+ .check(z.describe('Skip reason when `state` is `skipped` (`no_customer` | `customer_canceled`), or null.')), // prettier-ignore
166
+ reportedAt: z
167
+ .nullable(z.string())
168
+ .check(z.describe('When Stripe acknowledged the event (ISO 8601), or null.')),
169
+ sequence: z
170
+ .number()
171
+ .check(z.describe('Delta sequence within the bucket; `0` is the initial seal, `1..n` later deltas.')), // prettier-ignore
172
+ state: z
173
+ .enum(['pending', 'reported', 'skipped'])
174
+ .check(z.describe('Exactly-once state: `pending` retries, `reported` is done, `skipped` is audited.')), // prettier-ignore
175
+ stripeCustomerId: z.string().check(z.describe('Stripe customer id the event bills against.')),
176
+ });
177
+ /** An organization's Stripe billing source: the customer link and derived status. */
178
+ export const StripeCustomer = z.object({
179
+ createdAt: z.string().check(z.describe('When the Stripe source was connected (ISO 8601).')),
180
+ environment: z
181
+ .enum(['production', 'sandbox'])
182
+ .check(z.describe('Environment this Stripe source backs; `production` (live) or `sandbox` (test).')), // prettier-ignore
183
+ orgId: z.string().check(z.describe('Organization id (`org_…`) this Stripe source belongs to.')),
184
+ status: z
185
+ .enum(['active', 'canceled', 'none', 'past_due'])
186
+ .check(z.describe('Billing status derived from Stripe state; gates production sponsorship.')),
187
+ stripeCustomerId: z
188
+ .string()
189
+ .check(z.describe('Stripe customer id backing this source; never deleted by us.')),
190
+ updatedAt: z.string().check(z.describe('When the billing status last changed (ISO 8601).')),
191
+ });
106
192
  /** A developer identity. */
107
193
  export const User = z.object({
108
194
  address: z
@@ -174,7 +260,7 @@ export const WebhookSubscription = z.object({
174
260
  .check(z.describe('Event-type-specific filter predicates (`jsonb`).')),
175
261
  id: z
176
262
  .string()
177
- .check(z.describe('Subscription id (`wh_…`, lexically time-ordered).'), z.meta({ examples: ['wh_0000019c1a2b3c4d5e6f7g8h'] })),
263
+ .check(z.describe('Subscription id (`wh_…`, lexically time-ordered).'), z.meta({ examples: ['wh_001718668800000_2ZPE2gvateYEQ0dQslgvkhjx'] })),
178
264
  lastDeliveryAt: z
179
265
  .nullable(z.string())
180
266
  .check(z.describe('ISO timestamp of the last successful delivery, or null.')),
@@ -213,7 +299,7 @@ export const WebhookDelivery = z.object({
213
299
  .check(z.describe('ISO retention deadline; rows past it are invisible and pruned.')),
214
300
  id: z
215
301
  .string()
216
- .check(z.describe('Delivery id (`whd_…`, lexically time-ordered).'), z.meta({ examples: ['whd_0000019c1a2b3c4d5e6f7g8h'] })),
302
+ .check(z.describe('Delivery id (`whd_…`, lexically time-ordered).'), z.meta({ examples: ['whd_001718668800000_C1yJkk7CuML98HFthEDk9PsY'] })),
217
303
  requestUrl: z.string().check(z.describe('Subscriber callback URL the attempt targeted.')),
218
304
  responseMs: z
219
305
  .nullable(z.number())
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/db/Schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/db/Schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { Selectable } from 'kysely';
2
+ import type * as Db from '../Db.js';
3
+ import type * as db_Schema from '../Schema.js';
4
+ /** Columns of the `billing_settings` table, derived from `Schema.BillingSettings`. */
5
+ export type Table = db_Schema.BillingSettings;
6
+ /** A stored billing-settings row. */
7
+ export type Record = Selectable<Table>;
8
+ /** Currencies limits may be denominated in; single-member today, widens without schema changes. */
9
+ export declare const currencies: readonly ["usd"];
10
+ /** Spend-limit windows; single-member today, widens without schema changes. */
11
+ export declare const periods: readonly ["month"];
12
+ /**
13
+ * Reads an organization's billing settings.
14
+ *
15
+ * @param db - The database.
16
+ * @param orgId - The organization id (`org_…`).
17
+ * @param environment - The environment to read; defaults to `production`.
18
+ * @returns The stored record, or `undefined` when the org has none.
19
+ */
20
+ export declare function get(db: Db.Db, orgId: string, environment?: Record['environment']): Promise<Record | undefined>;
21
+ /**
22
+ * Upserts an organization's billing settings with PATCH semantics: absent
23
+ * fields keep their stored value, `null` clears the limit.
24
+ *
25
+ * @param db - The database.
26
+ * @param input - The settings to apply.
27
+ * @returns The stored record.
28
+ */
29
+ export declare function upsert(db: Db.Db, input: upsert.Input): Promise<Record>;
30
+ export declare namespace upsert {
31
+ /** Fields accepted when upserting billing settings; absent = unchanged, null = cleared. */
32
+ type Input = {
33
+ /** Currency both limits are denominated in. */
34
+ currency?: Record['currency'] | undefined;
35
+ /** Environment these settings apply to; defaults to `production`. */
36
+ environment?: Record['environment'] | undefined;
37
+ /** Organization id (`org_…`) the settings belong to. */
38
+ orgId: string;
39
+ /** Spend-limit window. */
40
+ period?: Record['period'] | undefined;
41
+ /** Spend limit per period (decimal string in `currency` units), or null to clear. */
42
+ spendLimit?: string | null | undefined;
43
+ /** Per-transaction fee cap (decimal string in `currency` units), or null to clear. */
44
+ txFeeLimit?: string | null | undefined;
45
+ };
46
+ }
47
+ /**
48
+ * Deletes an organization's billing settings.
49
+ *
50
+ * @param db - The database.
51
+ * @param orgId - The organization id (`org_…`).
52
+ * @returns Whether a settings row existed and was deleted.
53
+ */
54
+ export declare function deleteByOrg(db: Db.Db, orgId: string): Promise<boolean>;
55
+ //# sourceMappingURL=billingSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billingSettings.d.ts","sourceRoot":"","sources":["../../../src/db/tables/billingSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAExC,OAAO,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,KAAK,SAAS,MAAM,cAAc,CAAA;AAE9C,sFAAsF;AACtF,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,eAAe,CAAA;AAE7C,qCAAqC;AACrC,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AAEtC,mGAAmG;AACnG,eAAO,MAAM,UAAU,kBAA2D,CAAA;AAElF,+EAA+E;AAC/E,eAAO,MAAM,OAAO,oBAA2D,CAAA;AAE/E;;;;;;;GAOG;AACH,wBAAgB,GAAG,CACjB,EAAE,EAAE,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAM,CAAC,aAAa,CAAgB,GAChD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B5E;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,2FAA2F;IAC3F,KAAK,KAAK,GAAG;QACX,+CAA+C;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;QACzC,qEAAqE;QACrE,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;QAC/C,wDAAwD;QACxD,KAAK,EAAE,MAAM,CAAA;QACb,0BAA0B;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;QACrC,qFAAqF;QACrF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;QACtC,sFAAsF;QACtF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KACvC,CAAA;CACF;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5E"}
@@ -0,0 +1,70 @@
1
+ /** Currencies limits may be denominated in; single-member today, widens without schema changes. */
2
+ export const currencies = ['usd'];
3
+ /** Spend-limit windows; single-member today, widens without schema changes. */
4
+ export const periods = ['month'];
5
+ /**
6
+ * Reads an organization's billing settings.
7
+ *
8
+ * @param db - The database.
9
+ * @param orgId - The organization id (`org_…`).
10
+ * @param environment - The environment to read; defaults to `production`.
11
+ * @returns The stored record, or `undefined` when the org has none.
12
+ */
13
+ export function get(db, orgId, environment = 'production') {
14
+ return db.kysely
15
+ .selectFrom('billing_settings')
16
+ .selectAll()
17
+ .where('orgId', '=', orgId)
18
+ .where('environment', '=', environment)
19
+ .executeTakeFirst();
20
+ }
21
+ /**
22
+ * Upserts an organization's billing settings with PATCH semantics: absent
23
+ * fields keep their stored value, `null` clears the limit.
24
+ *
25
+ * @param db - The database.
26
+ * @param input - The settings to apply.
27
+ * @returns The stored record.
28
+ */
29
+ export async function upsert(db, input) {
30
+ const now = new Date().toISOString();
31
+ const environment = input.environment ?? 'production';
32
+ return await db.kysely
33
+ .insertInto('billing_settings')
34
+ .values({
35
+ createdAt: now,
36
+ currency: input.currency ?? 'usd',
37
+ environment,
38
+ orgId: input.orgId,
39
+ period: input.period ?? 'month',
40
+ spendLimit: input.spendLimit ?? null,
41
+ txFeeLimit: input.txFeeLimit ?? null,
42
+ updatedAt: now,
43
+ })
44
+ // Targets the `(org_id, environment)` unique index, which exists both
45
+ // before and after the org pkey drop release.
46
+ .onConflict((oc) => oc.columns(['orgId', 'environment']).doUpdateSet({
47
+ ...(input.currency !== undefined ? { currency: input.currency } : {}),
48
+ ...(input.period !== undefined ? { period: input.period } : {}),
49
+ ...(input.spendLimit !== undefined ? { spendLimit: input.spendLimit } : {}),
50
+ ...(input.txFeeLimit !== undefined ? { txFeeLimit: input.txFeeLimit } : {}),
51
+ updatedAt: now,
52
+ }))
53
+ .returningAll()
54
+ .executeTakeFirstOrThrow();
55
+ }
56
+ /**
57
+ * Deletes an organization's billing settings.
58
+ *
59
+ * @param db - The database.
60
+ * @param orgId - The organization id (`org_…`).
61
+ * @returns Whether a settings row existed and was deleted.
62
+ */
63
+ export async function deleteByOrg(db, orgId) {
64
+ const result = await db.kysely
65
+ .deleteFrom('billing_settings')
66
+ .where('orgId', '=', orgId)
67
+ .executeTakeFirst();
68
+ return result.numDeletedRows > 0n;
69
+ }
70
+ //# sourceMappingURL=billingSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billingSettings.js","sourceRoot":"","sources":["../../../src/db/tables/billingSettings.ts"],"names":[],"mappings":"AAWA,mGAAmG;AACnG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,CAAkD,CAAA;AAElF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAgD,CAAA;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CACjB,EAAS,EACT,KAAa,EACb,WAAW,GAA0B,YAAY;IAEjD,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,kBAAkB,CAAC;SAC9B,SAAS,EAAE;SACX,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;SAC1B,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,WAAW,CAAC;SACtC,gBAAgB,EAAE,CAAA;AACvB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,EAAS,EAAE,KAAmB;IACzD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,YAAY,CAAA;IACrD,OAAO,MAAM,EAAE,CAAC,MAAM;SACnB,UAAU,CAAC,kBAAkB,CAAC;SAC9B,MAAM,CAAC;QACN,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;QACjC,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO;QAC/B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,SAAS,EAAE,GAAG;KACf,CAAC;QACF,sEAAsE;QACtE,8CAA8C;SAC7C,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CACjB,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,SAAS,EAAE,GAAG;KACf,CAAC,CACH;SACA,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAA;AAC9B,CAAC;AAoBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAS,EAAE,KAAa;IACxD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM;SAC3B,UAAU,CAAC,kBAAkB,CAAC;SAC9B,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;SAC1B,gBAAgB,EAAE,CAAA;IACrB,OAAO,MAAM,CAAC,cAAc,GAAG,EAAE,CAAA;AACnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { nanoid } from 'nanoid';
1
+ import * as Id from '../../internal/Id.js';
2
2
  import * as Memberships from './memberships.js';
3
3
  /**
4
4
  * Inserts an invitation and returns the stored record. Emails are stored
@@ -20,7 +20,7 @@ export function create(db, input) {
20
20
  createdAt: now,
21
21
  email: input.email.toLowerCase(),
22
22
  expiresAt: input.expiresAt,
23
- id: `inv_${nanoid()}`,
23
+ id: Id.generate('inv'),
24
24
  invitedBy: input.invitedBy,
25
25
  orgId: input.orgId,
26
26
  revokedAt: null,
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../../src/db/tables/invitations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../../src/db/tables/invitations.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Selectable } from 'kysely';
2
2
  import type * as Db from '../Db.js';
3
3
  import type * as db_Schema from '../Schema.js';
4
+ import type * as Memberships from './memberships.js';
4
5
  /** Columns of the `organizations` table, derived from `Schema.Organization`. */
5
6
  export type Table = db_Schema.Organization;
6
7
  /** A stored organization row. */
@@ -77,13 +78,16 @@ export declare function list(db: Db.Db): Promise<Record[]>;
77
78
  */
78
79
  export declare function listByUser(db: Db.Db, userId: string): Promise<Record[]>;
79
80
  /**
80
- * Lists organizations `userId` is a member of (any role), newest first.
81
+ * Lists organizations `userId` is a member of (any role), newest first. Each
82
+ * row carries the caller's membership `role`.
81
83
  *
82
84
  * @param db - The database.
83
85
  * @param userId - The member user id (`usr_…`).
84
86
  * @returns The records.
85
87
  */
86
- export declare function listByMember(db: Db.Db, userId: string): Promise<Record[]>;
88
+ export declare function listByMember(db: Db.Db, userId: string): Promise<(Record & {
89
+ role: Memberships.Role;
90
+ })[]>;
87
91
  /**
88
92
  * Renames an organization, bumping `updatedAt`.
89
93
  *
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../../src/db/tables/organizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../../src/db/tables/organizations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { nanoid } from 'nanoid';
1
+ import * as Id from '../../internal/Id.js';
2
2
  /**
3
3
  * Inserts an organization and returns the stored record. The `id` defaults to
4
4
  * a generated `org_…` handle when omitted.
@@ -14,7 +14,7 @@ export function create(db, input) {
14
14
  .values({
15
15
  createdAt: now,
16
16
  createdBy: input.createdBy ?? null,
17
- id: input.id ?? `org_${nanoid()}`,
17
+ id: input.id ?? Id.generate('org'),
18
18
  name: input.name,
19
19
  updatedAt: now,
20
20
  userId: input.userId ?? null,
@@ -38,7 +38,7 @@ export function createOwned(db, input) {
38
38
  .values({
39
39
  createdAt: now,
40
40
  createdBy: input.userId,
41
- id: `org_${nanoid()}`,
41
+ id: Id.generate('org'),
42
42
  name: input.name,
43
43
  updatedAt: now,
44
44
  userId: input.userId,
@@ -72,9 +72,13 @@ export function deleteOrganization(db, id) {
72
72
  .where('ownerType', '=', 'api_key')
73
73
  .where('ownerId', '=', id)
74
74
  .execute();
75
+ await trx.deleteFrom('billing_settings').where('orgId', '=', id).execute();
75
76
  await trx.deleteFrom('invitations').where('orgId', '=', id).execute();
76
77
  await trx.deleteFrom('memberships').where('orgId', '=', id).execute();
77
78
  await trx.deleteFrom('projects').where('orgId', '=', id).execute();
79
+ await trx.deleteFrom('request_usage_buckets').where('orgId', '=', id).execute();
80
+ await trx.deleteFrom('request_usage_meter_events').where('orgId', '=', id).execute();
81
+ await trx.deleteFrom('stripe_customers').where('orgId', '=', id).execute();
78
82
  const result = await trx.deleteFrom('organizations').where('id', '=', id).executeTakeFirst();
79
83
  return result.numDeletedRows > 0n;
80
84
  });
@@ -114,7 +118,8 @@ export function listByUser(db, userId) {
114
118
  .execute();
115
119
  }
116
120
  /**
117
- * Lists organizations `userId` is a member of (any role), newest first.
121
+ * Lists organizations `userId` is a member of (any role), newest first. Each
122
+ * row carries the caller's membership `role`.
118
123
  *
119
124
  * @param db - The database.
120
125
  * @param userId - The member user id (`usr_…`).
@@ -126,6 +131,7 @@ export function listByMember(db, userId) {
126
131
  .innerJoin('memberships', 'memberships.orgId', 'organizations.id')
127
132
  .where('memberships.userId', '=', userId)
128
133
  .selectAll('organizations')
134
+ .select('memberships.role')
129
135
  .orderBy('organizations.createdAt', 'desc')
130
136
  .execute();
131
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../../src/db/tables/organizations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../../src/db/tables/organizations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { nanoid } from 'nanoid';
1
+ import * as Id from '../../internal/Id.js';
2
2
  /**
3
3
  * Inserts a project and returns the stored record.
4
4
  *
@@ -12,7 +12,7 @@ export function create(db, input) {
12
12
  .insertInto('projects')
13
13
  .values({
14
14
  createdAt: now,
15
- id: `prj_${nanoid()}`,
15
+ id: Id.generate('prj'),
16
16
  name: input.name,
17
17
  orgId: input.orgId,
18
18
  updatedAt: now,
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/db/tables/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAW/B;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,EAAS,EAAE,KAAmB;IACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,UAAU,CAAC;SACtB,MAAM,CAAC;QACN,SAAS,EAAE,GAAG;QACd,EAAE,EAAE,OAAO,MAAM,EAAE,EAAE;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,GAAG;KACf,CAAC;SACD,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAA;AAC9B,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAS,EAAE,EAAU;IACvD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAA;IAC7F,OAAO,MAAM,CAAC,cAAc,GAAG,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,EAAS,EAAE,EAAU;IACvC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAA;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EAAS,EAAE,KAAa;IAChD,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,UAAU,CAAC;SACtB,SAAS,EAAE;SACX,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;SAC5B,OAAO,EAAE,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,EAAS,EAAE,EAAU,EAAE,KAAmB;IAC/D,OAAO,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,UAAU,CAAC;SACvB,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;SAC9D,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;SACpB,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/db/tables/projects.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAU1C;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,EAAS,EAAE,KAAmB;IACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,UAAU,CAAC;SACtB,MAAM,CAAC;QACN,SAAS,EAAE,GAAG;QACd,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,GAAG;KACf,CAAC;SACD,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAA;AAC9B,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAS,EAAE,EAAU;IACvD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAA;IAC7F,OAAO,MAAM,CAAC,cAAc,GAAG,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAC,EAAS,EAAE,EAAU;IACvC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAA;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EAAS,EAAE,KAAa;IAChD,OAAO,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,UAAU,CAAC;SACtB,SAAS,EAAE;SACX,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;SAC5B,OAAO,EAAE,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,EAAS,EAAE,EAAU,EAAE,KAAmB;IAC/D,OAAO,EAAE,CAAC,MAAM;SACb,WAAW,CAAC,UAAU,CAAC;SACvB,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;SAC9D,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;SACpB,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;AACvB,CAAC"}
@@ -0,0 +1,121 @@
1
+ import { type ColumnType } from 'kysely';
2
+ import type * as Db from '../Db.js';
3
+ import type * as db_Schema from '../Schema.js';
4
+ /** A `bigint` count column: read as a string from pg, written as a number. */
5
+ type Count = ColumnType<string, number, number>;
6
+ /** Environment a request-usage row attributes to. */
7
+ export type Environment = db_Schema.RequestUsageBucket['environment'];
8
+ /** Exactly-once state of a meter event. */
9
+ export type State = db_Schema.RequestUsageMeterEvent['state'];
10
+ /** Columns of the `request_usage_buckets` table (pg representation). */
11
+ export type BucketTable = {
12
+ bucketStart: string;
13
+ environment: Environment;
14
+ orgId: string;
15
+ reportedCount: Count;
16
+ updatedAt: string;
17
+ };
18
+ /** Columns of the `request_usage_meter_events` table (pg representation). */
19
+ export type MeterEventTable = {
20
+ bucketStart: string;
21
+ deltaCount: Count;
22
+ environment: Environment;
23
+ error: string | null;
24
+ firstAttemptedAt: string;
25
+ identifier: string;
26
+ orgId: string;
27
+ reason: string | null;
28
+ reportedAt: string | null;
29
+ sequence: number;
30
+ state: State;
31
+ stripeCustomerId: string;
32
+ };
33
+ /** A stored per-hour request-count watermark. */
34
+ export type Bucket = db_Schema.RequestUsageBucket;
35
+ /** A stored request-count meter event. */
36
+ export type MeterEvent = db_Schema.RequestUsageMeterEvent;
37
+ /** Identifies one hourly bucket for an org in an environment. */
38
+ export type BucketKey = {
39
+ /** UTC hour start (ISO 8601). */
40
+ bucketStart: string;
41
+ /** Environment the requests were served under. */
42
+ environment: Environment;
43
+ /** Organization id (`org_…`). */
44
+ orgId: string;
45
+ };
46
+ /**
47
+ * Reads a bucket watermark.
48
+ *
49
+ * @param db - The database.
50
+ * @param key - The bucket key.
51
+ * @returns The watermark, or `undefined` when none has been reported yet.
52
+ */
53
+ export declare function getBucket(db: Db.Db, key: BucketKey): Promise<Bucket | undefined>;
54
+ /**
55
+ * Lists the meter events still awaiting a Stripe acknowledgement in an
56
+ * environment, oldest first — the reporter's crash-recovery drive.
57
+ *
58
+ * @param db - The database.
59
+ * @param environment - The environment to scan.
60
+ * @returns The pending meter events.
61
+ */
62
+ export declare function listPending(db: Db.Db, environment: Environment): Promise<MeterEvent[]>;
63
+ /**
64
+ * Counts the meter events already reported for a bucket — the next delta's
65
+ * `sequence`, so a new seal never collides with a settled one.
66
+ *
67
+ * @param db - The database.
68
+ * @param key - The bucket key.
69
+ * @returns The count of reported events for the bucket.
70
+ */
71
+ export declare function countReported(db: Db.Db, key: BucketKey): Promise<number>;
72
+ /**
73
+ * Inserts a frozen `pending` meter event, claiming a delta. Idempotent on the
74
+ * deterministic `identifier`: a re-seal after a crash resolves to the existing
75
+ * row rather than duplicating the delta.
76
+ *
77
+ * @param db - The database.
78
+ * @param input - The event to insert.
79
+ * @returns Whether this call inserted the row.
80
+ */
81
+ export declare function insertPending(db: Db.Db, input: insertPending.Input): Promise<boolean>;
82
+ export declare namespace insertPending {
83
+ /** Fields accepted when sealing a pending meter event. */
84
+ type Input = {
85
+ /** UTC hour start the delta bills for (ISO 8601). */
86
+ bucketStart: string;
87
+ /** Frozen request count this event bills (positive). */
88
+ deltaCount: number;
89
+ /** Environment the requests were served under. */
90
+ environment: Environment;
91
+ /** Deterministic id; also the Stripe identifier and idempotency key. */
92
+ identifier: string;
93
+ /** Organization id (`org_…`). */
94
+ orgId: string;
95
+ /** Delta sequence within the bucket. */
96
+ sequence: number;
97
+ /** Stripe customer id the event bills against. */
98
+ stripeCustomerId: string;
99
+ };
100
+ }
101
+ /**
102
+ * Marks a pending event reported and advances its bucket watermark by the
103
+ * event's frozen delta, atomically. A no-op once reported, so a retry after a
104
+ * crash between the Stripe ack and this write never double-advances.
105
+ *
106
+ * @param db - The database.
107
+ * @param identifier - The event identifier.
108
+ * @param at - When Stripe acknowledged the event (ISO 8601).
109
+ * @returns Whether this call settled the event (false when already reported).
110
+ */
111
+ export declare function settle(db: Db.Db, identifier: string, at: string): Promise<boolean>;
112
+ /**
113
+ * Records a transient failure on a pending event; it stays pending for retry.
114
+ *
115
+ * @param db - The database.
116
+ * @param identifier - The event identifier.
117
+ * @param error - The failure detail.
118
+ */
119
+ export declare function markError(db: Db.Db, identifier: string, error: string): Promise<void>;
120
+ export {};
121
+ //# sourceMappingURL=requestUsage.d.ts.map