better-supabase 0.5.0 → 0.6.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 (536) hide show
  1. package/README.md +299 -41
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/actor-CQTlc1Hh.d.ts +43 -0
  4. package/dist/adapter-Bc1o3zyy.js +1106 -0
  5. package/dist/agents-CVHGd7It.d.ts +94 -0
  6. package/dist/ai-cache-CBWs1W0k.js +80 -0
  7. package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
  8. package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
  9. package/dist/ai-chat-B24UI962.js +743 -0
  10. package/dist/ai-files-CSPNswUY.js +319 -0
  11. package/dist/ai-sdk/agents/index.d.ts +74 -0
  12. package/dist/ai-sdk/agents/index.js +159 -0
  13. package/dist/ai-sdk/batches/index.d.ts +74 -0
  14. package/dist/ai-sdk/batches/index.js +180 -0
  15. package/dist/ai-sdk/cache/index.d.ts +38 -0
  16. package/dist/ai-sdk/cache/index.js +127 -0
  17. package/dist/ai-sdk/chat/index.d.ts +2 -0
  18. package/dist/ai-sdk/chat/index.js +246 -0
  19. package/dist/ai-sdk/embeddings/index.d.ts +3 -0
  20. package/dist/ai-sdk/embeddings/index.js +2 -0
  21. package/dist/ai-sdk/files/index.d.ts +61 -0
  22. package/dist/ai-sdk/files/index.js +111 -0
  23. package/dist/ai-sdk/index.d.ts +145 -0
  24. package/dist/ai-sdk/index.js +174 -0
  25. package/dist/ai-sdk/mcp/index.d.ts +102 -0
  26. package/dist/ai-sdk/mcp/index.js +362 -0
  27. package/dist/ai-sdk/memory/index.d.ts +67 -0
  28. package/dist/ai-sdk/memory/index.js +175 -0
  29. package/dist/ai-sdk/react/index.d.ts +2 -0
  30. package/dist/ai-sdk/react/index.js +3 -0
  31. package/dist/ai-sdk/react/server.d.ts +6 -0
  32. package/dist/ai-sdk/react/server.js +7 -0
  33. package/dist/ai-sdk/workflow/index.d.ts +249 -0
  34. package/dist/ai-sdk/workflow/index.js +575 -0
  35. package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
  36. package/dist/ai-sdk/workflow/react/index.js +66 -0
  37. package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
  38. package/dist/ai-sdk/workflow/react/server.js +12 -0
  39. package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
  40. package/dist/announcements-CiyOs-xP.js +107 -0
  41. package/dist/announcements-ZRGnScWI.d.ts +72 -0
  42. package/dist/api-keys-rCGtKaZA.d.ts +156 -0
  43. package/dist/assistant-DwdpDH1q.d.ts +147 -0
  44. package/dist/astro/index.d.ts +86 -0
  45. package/dist/astro/index.js +93 -0
  46. package/dist/attributes-5dYul0u0.js +13 -0
  47. package/dist/auth-link-BjFPqwLz.d.ts +97 -0
  48. package/dist/auth-link-DrDX9KOT.js +114 -0
  49. package/dist/authorization-BFCqamMs.d.ts +172 -0
  50. package/dist/before-route-CnR0C0Jr.js +30 -0
  51. package/dist/bind-Bu_ZNa3W.d.ts +62 -0
  52. package/dist/bind-l4kAvYSv.js +97 -0
  53. package/dist/block-events-CrT8r7Fe.js +76 -0
  54. package/dist/block-fields-GFkxl4dP.js +49 -0
  55. package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
  56. package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
  57. package/dist/block-helpers-DWHxHsEQ.js +190 -0
  58. package/dist/block-hooks-BmjMyXTa.js +114 -0
  59. package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
  60. package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
  61. package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
  62. package/dist/blocks/agents/index.d.ts +3 -0
  63. package/dist/blocks/agents/index.js +123 -0
  64. package/dist/blocks/ai-cache/index.d.ts +3 -0
  65. package/dist/blocks/ai-cache/index.js +3 -0
  66. package/dist/blocks/ai-chat/index.d.ts +31 -0
  67. package/dist/blocks/ai-chat/index.js +5 -0
  68. package/dist/blocks/ai-chat/react/index.d.ts +77 -0
  69. package/dist/blocks/ai-chat/react/index.js +387 -0
  70. package/dist/blocks/ai-chat/react/server.d.ts +16 -0
  71. package/dist/blocks/ai-chat/react/server.js +14 -0
  72. package/dist/blocks/ai-files/index.d.ts +14 -0
  73. package/dist/blocks/ai-files/index.js +3 -0
  74. package/dist/blocks/ai-providers/index.d.ts +7 -0
  75. package/dist/blocks/ai-providers/index.js +211 -0
  76. package/dist/blocks/ai-tasks/index.d.ts +3 -0
  77. package/dist/blocks/ai-tasks/index.js +203 -0
  78. package/dist/blocks/announcements/index.d.ts +3 -0
  79. package/dist/blocks/announcements/index.js +3 -0
  80. package/dist/blocks/announcements/react/index.d.ts +31 -0
  81. package/dist/blocks/announcements/react/index.js +86 -0
  82. package/dist/blocks/announcements/react/server.d.ts +6 -0
  83. package/dist/blocks/announcements/react/server.js +7 -0
  84. package/dist/blocks/api-keys/index.d.ts +35 -0
  85. package/dist/blocks/api-keys/index.js +334 -0
  86. package/dist/blocks/attachments/index.d.ts +210 -0
  87. package/dist/blocks/attachments/index.js +222 -0
  88. package/dist/blocks/audit/index.d.ts +366 -0
  89. package/dist/blocks/audit/index.js +714 -0
  90. package/dist/blocks/billing/index.d.ts +265 -0
  91. package/dist/blocks/billing/index.js +400 -0
  92. package/dist/blocks/comments/index.d.ts +200 -0
  93. package/dist/blocks/comments/index.js +207 -0
  94. package/dist/blocks/connectors/index.d.ts +3 -0
  95. package/dist/blocks/connectors/index.js +164 -0
  96. package/dist/blocks/data-lifecycle/index.d.ts +251 -0
  97. package/dist/blocks/data-lifecycle/index.js +353 -0
  98. package/dist/blocks/entitlements/index.d.ts +14 -0
  99. package/dist/blocks/entitlements/index.js +25 -0
  100. package/dist/blocks/flags/index.d.ts +226 -0
  101. package/dist/blocks/flags/index.js +282 -0
  102. package/dist/blocks/inbox/index.d.ts +6 -0
  103. package/dist/blocks/inbox/index.js +499 -0
  104. package/dist/blocks/inbox/react/index.d.ts +2 -0
  105. package/dist/blocks/inbox/react/index.js +225 -0
  106. package/dist/blocks/inbox/react/server.d.ts +10 -0
  107. package/dist/blocks/inbox/react/server.js +12 -0
  108. package/dist/blocks/index.d.ts +65 -0
  109. package/dist/blocks/index.js +77 -0
  110. package/dist/blocks/jobs/index.d.ts +297 -0
  111. package/dist/blocks/jobs/index.js +1051 -0
  112. package/dist/blocks/knowledge/index.d.ts +3 -0
  113. package/dist/blocks/knowledge/index.js +3 -0
  114. package/dist/blocks/memory/index.d.ts +8 -0
  115. package/dist/blocks/memory/index.js +289 -0
  116. package/dist/blocks/notifications/index.d.ts +297 -0
  117. package/dist/blocks/notifications/index.js +425 -0
  118. package/dist/blocks/notifications/react/index.d.ts +44 -0
  119. package/dist/blocks/notifications/react/index.js +67 -0
  120. package/dist/blocks/notifications/react/server.d.ts +6 -0
  121. package/dist/blocks/notifications/react/server.js +7 -0
  122. package/dist/blocks/onboarding/index.d.ts +3 -0
  123. package/dist/blocks/onboarding/index.js +64 -0
  124. package/dist/blocks/onboarding/react/index.d.ts +28 -0
  125. package/dist/blocks/onboarding/react/index.js +78 -0
  126. package/dist/blocks/onboarding/react/server.d.ts +7 -0
  127. package/dist/blocks/onboarding/react/server.js +7 -0
  128. package/dist/blocks/organizations/index.d.ts +241 -0
  129. package/dist/blocks/organizations/index.js +400 -0
  130. package/dist/blocks/outbox/index.d.ts +3 -0
  131. package/dist/blocks/outbox/index.js +266 -0
  132. package/dist/blocks/profiles/index.d.ts +40 -0
  133. package/dist/blocks/profiles/index.js +28 -0
  134. package/dist/blocks/push/index.d.ts +185 -0
  135. package/dist/blocks/push/index.js +258 -0
  136. package/dist/blocks/settings/index.d.ts +89 -0
  137. package/dist/blocks/settings/index.js +104 -0
  138. package/dist/blocks/sso/index.d.ts +198 -0
  139. package/dist/blocks/sso/index.js +1297 -0
  140. package/dist/blocks/usage/index.d.ts +4 -0
  141. package/dist/blocks/usage/index.js +233 -0
  142. package/dist/blocks/waitlist/index.d.ts +117 -0
  143. package/dist/blocks/waitlist/index.js +132 -0
  144. package/dist/blocks/webhooks/index.d.ts +304 -0
  145. package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
  146. package/dist/blocks/workflow-builder/index.d.ts +21 -0
  147. package/dist/blocks/workflow-builder/index.js +5 -0
  148. package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
  149. package/dist/blocks/workflow-builder/react/index.js +119 -0
  150. package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
  151. package/dist/blocks/workflow-builder/react/server.js +11 -0
  152. package/dist/blocks/workflows/index.d.ts +3 -0
  153. package/dist/blocks/workflows/index.js +3 -0
  154. package/dist/blocks/workflows/react/index.d.ts +47 -0
  155. package/dist/blocks/workflows/react/index.js +137 -0
  156. package/dist/blocks/workflows/react/server.d.ts +8 -0
  157. package/dist/blocks/workflows/react/server.js +11 -0
  158. package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
  159. package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
  160. package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
  161. package/dist/channels-CkgQ_X60.js +114 -0
  162. package/dist/chat-sdk/index.d.ts +303 -0
  163. package/dist/chat-sdk/index.js +733 -0
  164. package/dist/chat-sdk/react/index.d.ts +2 -0
  165. package/dist/chat-sdk/react/index.js +3 -0
  166. package/dist/chat-sdk/react/server.d.ts +3 -0
  167. package/dist/chat-sdk/react/server.js +2 -0
  168. package/dist/claims-DDBQT6BK.js +61 -0
  169. package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
  170. package/dist/cli/bin.js +1 -1
  171. package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
  172. package/dist/cli/config-B9HkL8nF.js +2 -0
  173. package/dist/cli/config-DU7EJImt.js +49 -0
  174. package/dist/cli/config-NiPxAmUF.js +1077 -0
  175. package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
  176. package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
  177. package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
  178. package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
  179. package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
  180. package/dist/cli/gen-BGLb_zou.js +3100 -0
  181. package/dist/cli/gen-DAH8FM2W.js +2 -0
  182. package/dist/cli/index.d.ts +44 -5
  183. package/dist/cli/index.js +7 -7
  184. package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
  186. package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
  187. package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
  188. package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
  189. package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
  190. package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
  191. package/dist/cli/read-sets-CETOSFx4.js +223 -0
  192. package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
  193. package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
  194. package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
  195. package/dist/cli/sql-D0GUtUPp.js +536 -0
  196. package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
  197. package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
  198. package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
  199. package/dist/client/index.d.ts +3 -2
  200. package/dist/client/index.js +11 -71
  201. package/dist/client/native/index.d.ts +228 -0
  202. package/dist/client/native/index.js +361 -0
  203. package/dist/client-CI0Z2zWX.js +277 -0
  204. package/dist/cloud-event-BnmD5fb9.js +46 -0
  205. package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
  206. package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
  207. package/dist/compose-BIBNgAnq.js +53 -0
  208. package/dist/composite-Bt1YK3Ke.d.ts +146 -0
  209. package/dist/composite-DhE66P5u.js +130 -0
  210. package/dist/config/index.d.ts +6 -4
  211. package/dist/config/index.js +5 -5
  212. package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
  213. package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
  214. package/dist/connector-Dv8kK0MO.d.ts +107 -0
  215. package/dist/connectors-hkLCwyEz.d.ts +120 -0
  216. package/dist/context-BCrWe7ow.d.ts +237 -0
  217. package/dist/credentials/index.d.ts +31 -0
  218. package/dist/credentials/index.js +168 -0
  219. package/dist/cron-DVPUg5k3.js +145 -0
  220. package/dist/csv-CPAzEmB6.js +25 -0
  221. package/dist/db-exception-CnWcYPxL.js +15 -0
  222. package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
  223. package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
  224. package/dist/edge/index.d.ts +69 -11
  225. package/dist/edge/index.js +191 -75
  226. package/dist/elysia/index.d.ts +59 -0
  227. package/dist/elysia/index.js +62 -0
  228. package/dist/embeddings-4ZvFzjsU.js +127 -0
  229. package/dist/embeddings-C9KGQnXt.d.ts +68 -0
  230. package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
  232. package/dist/entitlements-DRl6ZJUm.js +24 -0
  233. package/dist/envelope-DqnYGRw7.js +47 -0
  234. package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
  235. package/dist/errors-DLjJHPLK.js +44 -0
  236. package/dist/escape-like-DHfx6jRr.js +7 -0
  237. package/dist/escape-like-ImTK0ps_.d.ts +15 -0
  238. package/dist/eve/index.d.ts +220 -0
  239. package/dist/eve/index.js +504 -0
  240. package/dist/eve-gT2Fpjut.d.ts +151 -0
  241. package/dist/events/index.d.ts +4 -3
  242. package/dist/events/index.js +9 -50
  243. package/dist/events-DWDhx77e.d.ts +549 -0
  244. package/dist/executor-Bq28caBo.js +718 -0
  245. package/dist/executor-C-R4pucm.js +83 -0
  246. package/dist/executor-CaWigTyR.d.ts +148 -0
  247. package/dist/executor-D14tGopJ.d.ts +36 -0
  248. package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
  249. package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
  250. package/dist/executor-DvsBbNBS.d.ts +261 -0
  251. package/dist/expo/index.d.ts +79 -0
  252. package/dist/expo/index.js +129 -0
  253. package/dist/expo-sqlite/index.d.ts +58 -0
  254. package/dist/expo-sqlite/index.js +104 -0
  255. package/dist/field-errors-BFOa7WhB.d.ts +99 -0
  256. package/dist/field-errors-VF1yb8yI.js +13 -0
  257. package/dist/framework-CONDyPYx.js +51 -0
  258. package/dist/framework-DuVb4Xa8.d.ts +25 -0
  259. package/dist/gateway-C1ssRHnf.d.ts +130 -0
  260. package/dist/graph-BGyLLFLX.js +265 -0
  261. package/dist/h3/index.d.ts +59 -0
  262. package/dist/h3/index.js +55 -0
  263. package/dist/h3/v1/index.d.ts +63 -0
  264. package/dist/h3/v1/index.js +49 -0
  265. package/dist/history-BZih6SFP.js +64 -0
  266. package/dist/hono/index.d.ts +56 -7
  267. package/dist/hono/index.js +97 -45
  268. package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
  269. package/dist/http-Cv4T29xh.js +40 -0
  270. package/dist/http-DdYadv-o.js +126 -0
  271. package/dist/image-url-pIVlO6R1.js +41 -0
  272. package/dist/impersonation-DcqaTBHx.js +148 -0
  273. package/dist/inbox-i7E1ppo6.d.ts +384 -0
  274. package/dist/index-ACiNPN4Z.d.ts +74 -0
  275. package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
  276. package/dist/index-BkWT_uBO.d.ts +51 -0
  277. package/dist/index-BpFYMsi0.d.ts +53 -0
  278. package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
  279. package/dist/index-CaxrMD1A.d.ts +1 -0
  280. package/dist/index-ClmjK_o-.d.ts +55 -0
  281. package/dist/index-CtuakVRc.d.ts +267 -0
  282. package/dist/index-D48jVS-N.d.ts +246 -0
  283. package/dist/index-DDrYaUcq.d.ts +138 -0
  284. package/dist/index-DQh4VCc9.d.ts +98 -0
  285. package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
  286. package/dist/index.d.ts +65 -18
  287. package/dist/index.js +42 -14
  288. package/dist/invalidate-BBqhpxyB.d.ts +19 -0
  289. package/dist/json-CEnpTHlZ.js +16 -0
  290. package/dist/json-schema-CvER4kgT.js +502 -0
  291. package/dist/keys-4MnkWTTh.js +35 -0
  292. package/dist/kit-B5tid-q5.d.ts +60 -0
  293. package/dist/kit-Fm-Fv7q5.js +78 -0
  294. package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
  295. package/dist/knowledge-CDmiMLew.js +255 -0
  296. package/dist/lint/index.d.ts +1 -1
  297. package/dist/lint/index.js +37 -0
  298. package/dist/list/index.d.ts +3 -2
  299. package/dist/list/index.js +1 -444
  300. package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
  301. package/dist/list-query-gl808ac1.js +459 -0
  302. package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
  303. package/dist/logger-DWVYUmwi.d.ts +18 -0
  304. package/dist/mcp/index.d.ts +38 -11
  305. package/dist/mcp/index.js +82 -46
  306. package/dist/mcp/sdk/index.d.ts +105 -0
  307. package/dist/mcp/sdk/index.js +126 -0
  308. package/dist/message-CaKlqdsX.js +219 -0
  309. package/dist/message-CfDoR0Y6.d.ts +94 -0
  310. package/dist/messages-B9-5887d.js +715 -0
  311. package/dist/messages-DYP0sUTe.d.ts +59 -0
  312. package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
  313. package/dist/modules-DpPwzC7E.d.ts +192 -0
  314. package/dist/modules-dxrVK3ID.js +228 -0
  315. package/dist/nestjs/index.d.ts +68 -0
  316. package/dist/nestjs/index.js +164 -0
  317. package/dist/next/client/index.d.ts +35 -0
  318. package/dist/next/client/index.js +36 -0
  319. package/dist/next/image/index.js +3 -24
  320. package/dist/next/index.d.ts +150 -51
  321. package/dist/next/index.js +261 -107
  322. package/dist/node/index.d.ts +4 -0
  323. package/dist/node/index.js +210 -0
  324. package/dist/node-headers-AO06VhqH.d.ts +24 -0
  325. package/dist/node-headers-C71zNQHe.js +55 -0
  326. package/dist/nuxt/index.d.ts +60 -0
  327. package/dist/nuxt/index.js +64 -0
  328. package/dist/onboarding-BZGHYJks.d.ts +62 -0
  329. package/dist/openapi/index.d.ts +1 -1
  330. package/dist/openapi/index.js +3 -3
  331. package/dist/orpc/index.d.ts +70 -11
  332. package/dist/orpc/index.js +73 -24
  333. package/dist/otel/index.d.ts +7 -7
  334. package/dist/otel/index.js +87 -57
  335. package/dist/outbox-Cq7pPYvl.d.ts +161 -0
  336. package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
  337. package/dist/plugin-tfXW1-qO.js +45 -0
  338. package/dist/plugins/actor/index.d.ts +2 -2
  339. package/dist/plugins/actor/index.js +3 -3
  340. package/dist/plugins/rules/index.d.ts +11 -4
  341. package/dist/plugins/rules/index.js +40 -13
  342. package/dist/plugins/soft-delete/index.d.ts +5 -4
  343. package/dist/plugins/soft-delete/index.js +10 -5
  344. package/dist/plugins/tenant/index.d.ts +2 -2
  345. package/dist/plugins/tenant/index.js +18 -11
  346. package/dist/plugins/timestamps/index.d.ts +5 -3
  347. package/dist/plugins/timestamps/index.js +6 -4
  348. package/dist/plugins/validation/index.d.ts +2 -2
  349. package/dist/plugins/validation/index.js +10 -6
  350. package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
  351. package/dist/postgres/index.d.ts +4 -4
  352. package/dist/postgres/index.js +1 -2
  353. package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
  354. package/dist/powersync/index.d.ts +43 -0
  355. package/dist/powersync/index.js +199 -0
  356. package/dist/powersync/react/index.d.ts +87 -0
  357. package/dist/powersync/react/index.js +108 -0
  358. package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
  359. package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
  360. package/dist/provider-BH5UWZJ6.d.ts +113 -0
  361. package/dist/provider-Di3sRutW.js +57 -0
  362. package/dist/query/index.d.ts +4 -2
  363. package/dist/query/index.js +4 -3
  364. package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
  365. package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
  366. package/dist/react/index.d.ts +11 -7
  367. package/dist/react/index.js +7 -3
  368. package/dist/react/native/index.d.ts +116 -0
  369. package/dist/react/native/index.js +130 -0
  370. package/dist/react/server.d.ts +28 -10
  371. package/dist/react/server.js +22 -5
  372. package/dist/react/session.d.ts +2 -2
  373. package/dist/react-4ZqkP8da.js +79 -0
  374. package/dist/react-F80mF4-t.js +409 -0
  375. package/dist/react-router/index.d.ts +83 -0
  376. package/dist/react-router/index.js +89 -0
  377. package/dist/react-topic-seAWjL3_.js +38 -0
  378. package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
  379. package/dist/realtime/index.d.ts +4 -5
  380. package/dist/realtime/index.js +144 -82
  381. package/dist/refusal-CeJWxmkH.js +61 -0
  382. package/dist/refusal-D1rgbzNq.d.ts +15 -0
  383. package/dist/replicas-CwrYp5Zj.js +94 -0
  384. package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
  385. package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
  386. package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
  388. package/dist/respond-BUgsXNgk.js +91 -0
  389. package/dist/respond-DoBijysA.d.ts +93 -0
  390. package/dist/result-D7y2fT87.d.ts +282 -0
  391. package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
  392. package/dist/run-state-CPo-1X2B.d.ts +12 -0
  393. package/dist/run-state-CgBKzYMW.js +13 -0
  394. package/dist/search-CUWCRYKL.js +9 -0
  395. package/dist/server/index.d.ts +143 -21
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
  398. package/dist/session-ChiXDZdZ.d.ts +72 -0
  399. package/dist/shared-CBxosKK3.js +75 -0
  400. package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
  401. package/dist/shared-DDSjEGDR.d.ts +11 -0
  402. package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
  403. package/dist/sign-in-Cb1mwv6X.js +86 -0
  404. package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
  405. package/dist/simplify-DDO0j0LI.js +83 -0
  406. package/dist/solid/index.d.ts +131 -0
  407. package/dist/solid/index.js +344 -0
  408. package/dist/solid-start/index.d.ts +75 -0
  409. package/dist/solid-start/index.js +58 -0
  410. package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
  411. package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
  412. package/dist/sql/index.d.ts +330 -194
  413. package/dist/sql/index.js +34901 -6489
  414. package/dist/ssr/index.d.ts +6 -5
  415. package/dist/ssr/index.js +3 -3
  416. package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
  417. package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
  418. package/dist/stats-D_AD9GGu.js +1123 -0
  419. package/dist/storage/index.d.ts +5 -5
  420. package/dist/storage/index.js +1027 -368
  421. package/dist/store-BdH5ruDx.js +66 -0
  422. package/dist/store-CGjgWu5n.d.ts +68 -0
  423. package/dist/streams/index.d.ts +76 -0
  424. package/dist/streams/index.js +77 -0
  425. package/dist/streams/redis/index.d.ts +52 -0
  426. package/dist/streams/redis/index.js +185 -0
  427. package/dist/stripe-BMj5LtsT.js +38 -0
  428. package/dist/stripe-D04h-QBT.d.ts +136 -0
  429. package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
  430. package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  431. package/dist/svelte/index.d.ts +114 -0
  432. package/dist/svelte/index.js +344 -0
  433. package/dist/sveltekit/index.d.ts +116 -0
  434. package/dist/sveltekit/index.js +106 -0
  435. package/dist/tags-B99_U9Pp.js +39 -0
  436. package/dist/tags-Cx-LnIQP.d.ts +30 -0
  437. package/dist/tanstack-db/index.d.ts +71 -0
  438. package/dist/tanstack-db/index.js +72 -0
  439. package/dist/tanstack-start/index.d.ts +75 -0
  440. package/dist/tanstack-start/index.js +95 -0
  441. package/dist/tee-CoEppCER.js +101 -0
  442. package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
  443. package/dist/template-CwO38Do8.d.ts +6 -0
  444. package/dist/temporal-BJGitm-h.js +79 -0
  445. package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
  446. package/dist/tenant-I1TEZ_BX.js +27 -0
  447. package/dist/tenant-icPeuUBN.d.ts +17 -0
  448. package/dist/testing/index.d.ts +343 -37
  449. package/dist/testing/index.js +1186 -79
  450. package/dist/timing-CyTQPubY.js +92 -0
  451. package/dist/ttl-Hr34gRu8.js +12 -0
  452. package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
  453. package/dist/types-BI-0Sl2v.d.ts +359 -0
  454. package/dist/types-C05bxW-W.d.ts +220 -0
  455. package/dist/types-DGs5L0VN.d.ts +192 -0
  456. package/dist/types-TaiEeBGA.d.ts +156 -0
  457. package/dist/usage-CrvrL2vw.d.ts +177 -0
  458. package/dist/user-change-XzvgafU4.js +130 -0
  459. package/dist/vault-CSO7ss5C.d.ts +50 -0
  460. package/dist/vercel-connect/index.d.ts +47 -0
  461. package/dist/vercel-connect/index.js +119 -0
  462. package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
  463. package/dist/verify-DPuWngD4.d.ts +172 -0
  464. package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +470 -29
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +21 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +62 -18
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-BJc9vdyu.js +0 -2
  504. package/dist/cli/gen-C2osRcr5.js +0 -2204
  505. package/dist/cli/read-sets-BfMQcKy8.js +0 -289
  506. package/dist/cli/sql-DzPbfngx.js +0 -348
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/impersonation-VfaGc4Q_.js +0 -41
  512. package/dist/index-BGdgBPdf.d.ts +0 -161
  513. package/dist/index-DOESKG27.d.ts +0 -100
  514. package/dist/index-DmXSxbLi.d.ts +0 -62
  515. package/dist/index-Dxn2a5cw.d.ts +0 -50
  516. package/dist/jobs/index.d.ts +0 -226
  517. package/dist/jobs/index.js +0 -1007
  518. package/dist/json-schema-m1fiwKgN.js +0 -208
  519. package/dist/kit-events-CTFDfSwb.js +0 -60
  520. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  521. package/dist/kits-CGLLrNPd.js +0 -157
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-Csx2sRjg.js +0 -655
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-DT-OhSxD.d.ts +0 -88
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. package/skills/better-supabase-auth/references/permdock.md +0 -100
@@ -1,4 +1,4 @@
1
- import { a as parseImport, c as schemaName, d as variantsFor, i as fieldsFor, l as siblingPath, o as propertyKey, r as HEADER, s as rowType, u as tableEntries } from "./json-schema-m1fiwKgN.js";
1
+ import { a as fieldsFor, c as propertyKey, d as siblingPath, f as tableDocs, g as variantsFor, h as variantTitle, i as fieldDocs, l as rowType, m as temporalGuardImport, o as optionalLine, p as tableEntries, r as HEADER, s as parseImport, u as schemaName } from "./json-schema-CvER4kgT.js";
2
2
  //#region src/generators/valibot.ts
3
3
  function scalar$1(kind) {
4
4
  switch (kind.kind) {
@@ -9,8 +9,8 @@ function scalar$1(kind) {
9
9
  case "boolean": return "v.boolean()";
10
10
  case "datetime": return "v.pipe(v.string(), v.isoTimestamp())";
11
11
  case "date": return "v.pipe(v.string(), v.isoDate())";
12
- case "instant": return "v.instance(Temporal.Instant)";
13
- case "plainDateTime": return "v.instance(Temporal.PlainDateTime)";
12
+ case "instant": return "v.custom<Temporal.Instant>(isInstant)";
13
+ case "plainDateTime": return "v.custom<Temporal.PlainDateTime>(isPlainDateTime)";
14
14
  case "bigint": return "v.bigint()";
15
15
  case "json": return "json";
16
16
  case "enum": return `v.picklist([${kind.values.map((value) => JSON.stringify(value)).join(", ")}])`;
@@ -18,16 +18,36 @@ function scalar$1(kind) {
18
18
  default: return kind;
19
19
  }
20
20
  }
21
- function field$1(table, plan, jsonImports) {
22
- let expr = jsonImports.get(`${table}.${plan.column.db}`) ?? (plan.customJson ? `v.custom<NonNullable<RowOf<'${table}'>['${plan.name}']>>((value) => value !== undefined)` : plan.column.storage === void 0 ? scalar$1(plan.scalar) : `(v.string() as unknown as v.GenericSchema<${rowType(table, plan)}>)`);
21
+ /** `expr` with `actions` appended, flattening an existing top-level `v.pipe`. */
22
+ function piped(expr, actions) {
23
+ if (actions.length === 0) return expr;
24
+ return `v.pipe(${/^v\.pipe\((.*)\)$/s.exec(expr)?.[1] ?? expr}, ${actions.join(", ")})`;
25
+ }
26
+ function boundActions(docs) {
27
+ return [
28
+ docs.minimum === void 0 ? void 0 : `v.minValue(${docs.minimum})`,
29
+ docs.exclusiveMinimum === void 0 ? void 0 : `v.gtValue(${docs.exclusiveMinimum})`,
30
+ docs.maximum === void 0 ? void 0 : `v.maxValue(${docs.maximum})`,
31
+ docs.exclusiveMaximum === void 0 ? void 0 : `v.ltValue(${docs.exclusiveMaximum})`,
32
+ docs.minLength === void 0 ? void 0 : `v.minLength(${docs.minLength})`,
33
+ docs.maxLength === void 0 ? void 0 : `v.maxLength(${docs.maxLength})`
34
+ ].filter((action) => action !== void 0);
35
+ }
36
+ function docActions(docs) {
37
+ return [...docs.description === void 0 ? [] : [`v.description(${JSON.stringify(docs.description)})`], ...docs.examples === void 0 ? [] : [`v.examples(${JSON.stringify(docs.examples)})`]];
38
+ }
39
+ function field$1(table, plan, jsonImports, docs) {
40
+ let expr = jsonImports.get(`${table}.${plan.column.db}`) ?? (plan.customJson ? `v.custom<NonNullable<RowOf<'${table}'>['${plan.name}']>>((value) => value !== undefined)` : plan.column.storage === void 0 ? piped(scalar$1(plan.scalar), boundActions(docs)) : `(v.string() as unknown as v.GenericSchema<${rowType(table, plan)}>)`);
23
41
  if (plan.column.array) expr = `v.array(${expr})`;
24
42
  if (plan.nullable) expr = `v.nullable(${expr})`;
43
+ expr = piped(expr, docActions(docs));
25
44
  if (plan.optional) expr = `v.exactOptional(${expr})`;
26
45
  return ` ${propertyKey(plan.name)}: ${expr},`;
27
46
  }
28
47
  /** Valibot schemas for every table's Row, Insert and Update shape. */
29
48
  function valibot(options = {}) {
30
49
  return {
50
+ apiVersion: 1,
31
51
  name: "valibot",
32
52
  generate(input) {
33
53
  const path = options.output ?? siblingPath(input.config.output, "valibot.ts");
@@ -44,6 +64,7 @@ function valibot(options = {}) {
44
64
  const lines = [
45
65
  HEADER,
46
66
  "import * as v from \"valibot\";",
67
+ ...optionalLine(temporalGuardImport(input)),
47
68
  "",
48
69
  `import type { InsertOf, Json, RowOf, UpdateOf } from ${JSON.stringify(input.importPath(path, input.config.output))};`
49
70
  ];
@@ -54,11 +75,13 @@ function valibot(options = {}) {
54
75
  for (const [key, table] of tableEntries(input)) {
55
76
  lines.push("");
56
77
  const variants = variantsFor(table);
78
+ const docs = tableDocs(input, table);
57
79
  for (const variant of variants) {
58
80
  const name = schemaName(key, variant);
59
- lines.push(`export const ${name}: v.GenericSchema<${variant}Of<'${key}'>> = v.object({`);
60
- for (const plan of fieldsFor(table, variant, input)) lines.push(field$1(key, plan, jsonImports));
61
- lines.push("});");
81
+ const objectActions = docs ? [`v.title(${JSON.stringify(variantTitle(docs, variant))})`, ...docs.description === void 0 ? [] : [`v.description(${JSON.stringify(docs.description)})`]] : [];
82
+ lines.push(`export const ${name}: v.GenericSchema<${variant}Of<'${key}'>> = ${objectActions.length > 0 ? "v.pipe(" : ""}v.object({`);
83
+ for (const plan of fieldsFor(table, variant, input)) lines.push(field$1(key, plan, jsonImports, fieldDocs(docs, plan)));
84
+ lines.push(objectActions.length > 0 ? `}), ${objectActions.join(", ")});` : "});");
62
85
  }
63
86
  if (variants.includes("Insert")) {
64
87
  const insert = schemaName(key, "Insert");
@@ -86,8 +109,8 @@ function scalar(kind) {
86
109
  case "boolean": return "z.boolean()";
87
110
  case "datetime": return "z.iso.datetime({ offset: true })";
88
111
  case "date": return "z.iso.date()";
89
- case "instant": return "z.instanceof(Temporal.Instant)";
90
- case "plainDateTime": return "z.instanceof(Temporal.PlainDateTime)";
112
+ case "instant": return "z.custom<Temporal.Instant>(isInstant)";
113
+ case "plainDateTime": return "z.custom<Temporal.PlainDateTime>(isPlainDateTime)";
91
114
  case "bigint": return "z.bigint()";
92
115
  case "json": return "z.json()";
93
116
  case "enum": return `z.enum([${kind.values.map((value) => JSON.stringify(value)).join(", ")}])`;
@@ -95,16 +118,36 @@ function scalar(kind) {
95
118
  default: return kind;
96
119
  }
97
120
  }
98
- function field(table, plan, jsonImports) {
99
- let expr = jsonImports.get(`${table}.${plan.column.db}`) ?? (plan.customJson ? `z.custom<NonNullable<RowOf<'${table}'>['${plan.name}']>>((value) => value !== undefined)` : plan.column.storage === void 0 ? scalar(plan.scalar) : `(z.string() as unknown as z.ZodType<${rowType(table, plan)}>)`);
121
+ function bounds(docs) {
122
+ return [
123
+ docs.minimum === void 0 ? "" : `.min(${docs.minimum})`,
124
+ docs.exclusiveMinimum === void 0 ? "" : `.gt(${docs.exclusiveMinimum})`,
125
+ docs.maximum === void 0 ? "" : `.max(${docs.maximum})`,
126
+ docs.exclusiveMaximum === void 0 ? "" : `.lt(${docs.exclusiveMaximum})`,
127
+ docs.minLength === void 0 ? "" : `.min(${docs.minLength})`,
128
+ docs.maxLength === void 0 ? "" : `.max(${docs.maxLength})`
129
+ ].join("");
130
+ }
131
+ /** `.meta({ ... })` for the entries that are set, or nothing. */
132
+ function meta(entries) {
133
+ const set = Object.entries(entries).filter(([, value]) => value !== void 0);
134
+ return set.length === 0 ? "" : `.meta({ ${set.map(([key, value]) => `${key}: ${JSON.stringify(value)}`).join(", ")} })`;
135
+ }
136
+ function field(table, plan, jsonImports, docs) {
137
+ let expr = jsonImports.get(`${table}.${plan.column.db}`) ?? (plan.customJson ? `z.custom<NonNullable<RowOf<'${table}'>['${plan.name}']>>((value) => value !== undefined)` : plan.column.storage === void 0 ? `${scalar(plan.scalar)}${bounds(docs)}` : `(z.string() as unknown as z.ZodType<${rowType(table, plan)}>)`);
100
138
  if (plan.column.array) expr = `z.array(${expr})`;
101
139
  if (plan.nullable) expr = `${expr}.nullable()`;
140
+ expr += meta({
141
+ description: docs.description,
142
+ examples: docs.examples
143
+ });
102
144
  if (plan.optional) expr = `${expr}.exactOptional()`;
103
145
  return ` ${propertyKey(plan.name)}: ${expr},`;
104
146
  }
105
147
  /** Zod 4 schemas for every table's Row, Insert and Update shape. */
106
148
  function zod(options = {}) {
107
149
  return {
150
+ apiVersion: 1,
108
151
  name: "zod",
109
152
  generate(input) {
110
153
  const path = options.output ?? siblingPath(input.config.output, "zod.ts");
@@ -121,6 +164,7 @@ function zod(options = {}) {
121
164
  const lines = [
122
165
  HEADER,
123
166
  "import { z } from \"zod\";",
167
+ ...optionalLine(temporalGuardImport(input)),
124
168
  "",
125
169
  `import type { InsertOf, RowOf, UpdateOf } from ${JSON.stringify(input.importPath(path, input.config.output))};`
126
170
  ];
@@ -129,11 +173,15 @@ function zod(options = {}) {
129
173
  for (const [key, table] of tableEntries(input)) {
130
174
  lines.push("");
131
175
  const variants = variantsFor(table);
176
+ const docs = tableDocs(input, table);
132
177
  for (const variant of variants) {
133
178
  const name = schemaName(key, variant);
134
179
  lines.push(`export const ${name}: z.ZodType<${variant}Of<'${key}'>> = z.object({`);
135
- for (const plan of fieldsFor(table, variant, input)) lines.push(field(key, plan, jsonImports));
136
- lines.push("});");
180
+ for (const plan of fieldsFor(table, variant, input)) lines.push(field(key, plan, jsonImports, fieldDocs(docs, plan)));
181
+ lines.push(`})${docs ? meta({
182
+ title: variantTitle(docs, variant),
183
+ description: docs.description
184
+ }) : ""};`);
137
185
  }
138
186
  if (variants.includes("Insert")) validators.push(` ${propertyKey(key)}: { insert: ${schemaName(key, "Insert")}, update: ${schemaName(key, "Update")} },`);
139
187
  }
@@ -0,0 +1,107 @@
1
+ import { b as DbError, f as Result, x as DbErrorKind } from "./result-D7y2fT87.js";
2
+ //#region src/powersync/connector.d.ts
3
+ /** A queued local change: PowerSync's `CrudEntry`. */
4
+ interface CrudEntryLike {
5
+ /** `PUT`, `PATCH` or `DELETE` (PowerSync's `UpdateType`). */
6
+ readonly op: string;
7
+ readonly table: string;
8
+ readonly id: string;
9
+ readonly opData?: Readonly<Record<string, unknown>> | undefined;
10
+ }
11
+ /** The part of a PowerSync database the connector reads the queue from. */
12
+ interface CrudQueueLike {
13
+ getCrudBatch(limit?: number): Promise<{
14
+ readonly crud: readonly CrudEntryLike[];
15
+ complete(): Promise<void>;
16
+ } | null>;
17
+ }
18
+ /**
19
+ * A repository a table's changes replay through (`bs.db.customers`), so
20
+ * RLS, plugins and validation run as they do online.
21
+ */
22
+ interface UploadRepository {
23
+ upsert(data: never): PromiseLike<Result<unknown>>;
24
+ update(id: never, patch: never): PromiseLike<Result<unknown>>;
25
+ delete(id: never): PromiseLike<Result<unknown>>;
26
+ }
27
+ /** A table's route: its repository, or a function for custom replay. */
28
+ type UploadRoute = UploadRepository | ((entry: CrudEntryLike) => PromiseLike<Result<unknown>>);
29
+ /** What an upload error means for the queued change. */
30
+ type UploadOutcome = "retry" | "conflict" | "discard";
31
+ /** A change the server refused, kept for the UI. */
32
+ interface RejectedChange {
33
+ readonly entry: CrudEntryLike;
34
+ readonly error: DbError;
35
+ readonly outcome: "conflict" | "discard";
36
+ }
37
+ /** A `useSyncExternalStore`-compatible list of refused changes. */
38
+ interface RejectedStore {
39
+ readonly current: () => readonly RejectedChange[];
40
+ readonly subscribe: (listener: () => void) => () => void;
41
+ /** Forgets one change, or all of them. */
42
+ readonly dismiss: (change?: RejectedChange) => void;
43
+ }
44
+ interface SessionClient {
45
+ readonly auth: {
46
+ getSession(): Promise<{
47
+ readonly data: {
48
+ readonly session: {
49
+ readonly access_token: string;
50
+ readonly expires_at?: number | undefined;
51
+ } | null;
52
+ };
53
+ }>;
54
+ };
55
+ }
56
+ interface UploadConnectorOptions {
57
+ /** The PowerSync service URL. */
58
+ readonly endpoint: string;
59
+ /** The supabase-js client whose session authenticates sync and uploads. */
60
+ readonly supabase: SessionClient;
61
+ /** Every synced table that takes local writes, by its SQLite name. */
62
+ readonly tables: Readonly<Record<string, UploadRoute>>;
63
+ /** Changes per upload batch. Defaults to 100. */
64
+ readonly batchSize?: number;
65
+ /** Overrides `uploadOutcome` for some errors. */
66
+ readonly classify?: (error: DbError, entry: CrudEntryLike) => UploadOutcome | undefined;
67
+ readonly onConflict?: (change: RejectedChange) => void;
68
+ readonly onDiscard?: (change: RejectedChange) => void;
69
+ }
70
+ /** PowerSync's `PowerSyncBackendConnector`. */
71
+ interface UploadConnector {
72
+ fetchCredentials(): Promise<{
73
+ readonly endpoint: string;
74
+ readonly token: string;
75
+ readonly expiresAt?: Date;
76
+ } | null>;
77
+ uploadData(database: CrudQueueLike): Promise<void>;
78
+ /** Changes the server refused since the app started. */
79
+ readonly rejected: RejectedStore;
80
+ }
81
+ /**
82
+ * The default for a failed upload: transient errors retry, a newer server
83
+ * row is a conflict, and a change the server will never accept is
84
+ * discarded so it doesn't block the queue.
85
+ */
86
+ declare function uploadOutcome(kind: DbErrorKind): UploadOutcome;
87
+ /**
88
+ * A PowerSync connector that authenticates with the Supabase session and
89
+ * replays queued changes through repositories. Changes upload in batches;
90
+ * a transient error keeps the batch queued for PowerSync's retry, and
91
+ * refused changes land in `rejected` instead of blocking the queue. A table
92
+ * without a route stops the upload with an error, so no change is dropped
93
+ * silently. When the session is gone (the refresh token was revoked), the
94
+ * upload stops until the user signs in again.
95
+ *
96
+ * ```ts
97
+ * const connector = createUploadConnector({
98
+ * endpoint: process.env.EXPO_PUBLIC_POWERSYNC_URL,
99
+ * supabase,
100
+ * tables: { customers: bs.db.customers },
101
+ * });
102
+ * await powersync.connect(connector);
103
+ * ```
104
+ */
105
+ declare function createUploadConnector(options: UploadConnectorOptions): UploadConnector;
106
+ //#endregion
107
+ export { UploadConnector as a, UploadRepository as c, uploadOutcome as d, RejectedStore as i, UploadRoute as l, CrudQueueLike as n, UploadConnectorOptions as o, RejectedChange as r, UploadOutcome as s, CrudEntryLike as t, createUploadConnector as u };
@@ -0,0 +1,120 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
3
+ import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
4
+ import { i as CredentialRef, r as CredentialProvider } from "./provider-BH5UWZJ6.js";
5
+ import { r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
6
+ //#region src/blocks/connectors/connectors.d.ts
7
+ type ConnectorTransport = "http" | "sse";
8
+ /** `none`, OAuth per user (a grant each), or a header from the server's credential_ref. */
9
+ type ConnectorAuth = "none" | "oauth" | "header";
10
+ type FingerprintStatus = "approved" | "pending" | "rejected";
11
+ interface ConnectorGrant {
12
+ readonly id: string;
13
+ readonly userId: string;
14
+ readonly serverId: string;
15
+ readonly organizationId: string;
16
+ readonly credentialRef: CredentialRef;
17
+ readonly scopes: readonly string[];
18
+ readonly expiresAt: Temporal.Instant | undefined;
19
+ readonly grantedAt: Temporal.Instant;
20
+ readonly revokedAt: Temporal.Instant | undefined;
21
+ }
22
+ interface ConnectorServer {
23
+ readonly id: string;
24
+ readonly organizationId: string;
25
+ readonly name: string;
26
+ readonly url: string;
27
+ readonly transport: ConnectorTransport;
28
+ readonly authType: ConnectorAuth;
29
+ /** For `header` auth: the app credential sent with every request. */
30
+ readonly credentialRef: CredentialRef | undefined;
31
+ /** The OAuth scopes to ask for. */
32
+ readonly scopes: readonly string[];
33
+ /** OAuth client metadata for dynamic client registration. */
34
+ readonly clientMetadata: Readonly<Record<string, unknown>>;
35
+ readonly enabled: boolean;
36
+ /** The caller's (or `ownerId`'s) active grant, from `list` and `get`. */
37
+ readonly grant: ConnectorGrant | undefined;
38
+ readonly createdAt: Temporal.Instant;
39
+ readonly updatedAt: Temporal.Instant;
40
+ }
41
+ interface ConnectorServerFields {
42
+ readonly name?: string;
43
+ readonly url?: string;
44
+ readonly transport?: ConnectorTransport;
45
+ readonly authType?: ConnectorAuth;
46
+ readonly credentialRef?: CredentialRef | null;
47
+ readonly scopes?: readonly string[];
48
+ readonly clientMetadata?: Readonly<Record<string, unknown>>;
49
+ readonly enabled?: boolean;
50
+ }
51
+ interface ConnectorSession {
52
+ readonly sessionId: string | undefined;
53
+ readonly initializeResult: Readonly<Record<string, unknown>> | undefined;
54
+ readonly expiresAt: Temporal.Instant;
55
+ }
56
+ interface ConnectorsOptions extends BlockTemporalOptions {
57
+ /** Calls as the user: `rpcTransport(supabase)`. */
58
+ readonly transport: BlockTransport;
59
+ /** Calls as the service role, for grants and renewals. */
60
+ readonly service?: BlockTransport;
61
+ /** The module schema (`sql.modules.connectors.schema`), default `better_supabase`. */
62
+ readonly schema?: string;
63
+ readonly mappers?: readonly ErrorMapper[];
64
+ /** Revokes a grant's credential when the grant or its server goes away. */
65
+ readonly credentials?: CredentialProvider;
66
+ }
67
+ interface Connectors {
68
+ readonly servers: {
69
+ list(organizationId: string): AsyncResult<readonly ConnectorServer[]>;
70
+ /** With `ownerId` (service role), the grant is that user's. */
71
+ get(serverId: string, options?: {
72
+ readonly ownerId?: string;
73
+ }): AsyncResult<ConnectorServer>;
74
+ create(organizationId: string, server: ConnectorServerFields & {
75
+ readonly name: string;
76
+ readonly url: string;
77
+ }): AsyncResult<ConnectorServer>;
78
+ update(organizationId: string, serverId: string, fields: ConnectorServerFields): AsyncResult<ConnectorServer>;
79
+ /** Deletes a server and revokes its grants' credentials. Returns how many. */
80
+ remove(serverId: string): AsyncResult<number>;
81
+ };
82
+ readonly grants: {
83
+ /**
84
+ * Records a user's grant after the provider stored the credential
85
+ * (service role), revoking the grant it replaces.
86
+ */
87
+ record(serverId: string, userId: string, credentialRef: CredentialRef, options?: {
88
+ readonly scopes?: readonly string[];
89
+ readonly expiresAt?: Temporal.Instant;
90
+ }): AsyncResult<ConnectorGrant>;
91
+ /** Revokes a grant (its owner or the service role) and its credential. */
92
+ revoke(grantId: string): AsyncResult<boolean>;
93
+ /** Active grants expiring before `before` (service role). */
94
+ expiring(before: Temporal.Instant, options?: {
95
+ readonly limit?: number;
96
+ }): AsyncResult<readonly ConnectorGrant[]>;
97
+ renew(grantId: string, expiresAt: Temporal.Instant): AsyncResult<boolean>;
98
+ };
99
+ readonly sessions: {
100
+ get(serverId: string, chatKey?: string): AsyncResult<ConnectorSession | undefined>;
101
+ save(serverId: string, session: {
102
+ readonly chatKey?: string;
103
+ readonly sessionId?: string;
104
+ readonly initializeResult?: Readonly<Record<string, unknown>>;
105
+ }): AsyncResult<boolean>;
106
+ forget(serverId: string, chatKey?: string): AsyncResult<boolean>;
107
+ /** Deletes expired sessions (service role). */
108
+ purge(): AsyncResult<number>;
109
+ };
110
+ readonly fingerprints: {
111
+ /** Records a tool list's fingerprint and returns whether it may be called. */
112
+ check(serverId: string, fingerprint: string, tools?: Readonly<Record<string, unknown>>): AsyncResult<FingerprintStatus>;
113
+ approve(serverId: string, fingerprint: string): AsyncResult<boolean>;
114
+ reject(serverId: string, fingerprint: string): AsyncResult<boolean>;
115
+ };
116
+ }
117
+ /** MCP servers, per-user grants, sessions and tool list fingerprints. */
118
+ declare function createConnectors(options: ConnectorsOptions): Connectors;
119
+ //#endregion
120
+ export { ConnectorSession as a, ConnectorsOptions as c, ConnectorServerFields as i, FingerprintStatus as l, ConnectorGrant as n, ConnectorTransport as o, ConnectorServer as r, Connectors as s, ConnectorAuth as t, createConnectors as u };
@@ -0,0 +1,237 @@
1
+ import { u as ClaimsMeta } from "./types-6BdhkmZe.js";
2
+ import { C as BlockEventMap, E as BlockEventType } from "./events-DWDhx77e.js";
3
+ import { c as ResolvedModule, o as ModuleMode, s as ModulesConfig } from "./modules-DpPwzC7E.js";
4
+ //#region src/sql/context.d.ts
5
+ /** The scope id types SQL modules render. */
6
+ declare const MODULE_ID_TYPES: readonly ["uuid", "text", "bigint", "integer"];
7
+ type ModuleIdType = (typeof MODULE_ID_TYPES)[number];
8
+ declare const isModuleIdType: (value: string) => value is ModuleIdType;
9
+ /**
10
+ * A Postgres type name as one of `MODULE_ID_TYPES`: case and spacing are
11
+ * normalised and aliases such as `int8` resolved. `undefined` for any other
12
+ * type, so callers refuse it instead of guessing.
13
+ */
14
+ declare function moduleIdType(value: string): ModuleIdType | undefined;
15
+ /** One logical table of a module: its default name and logical columns. */
16
+ interface ModuleTableSpec {
17
+ /** Default name, in the module's schema. */
18
+ readonly name: string;
19
+ /** Logical column to default column name. */
20
+ readonly columns: Readonly<Record<string, string>>;
21
+ /**
22
+ * Logical columns an adopted table may lack (mapped to `null`): the module
23
+ * leaves out the feature that needs them.
24
+ */
25
+ readonly optional?: readonly string[];
26
+ /** The app may lack the whole table (`sql.modules.<name>.tables.<table>: null`). */
27
+ readonly optionalTable?: boolean;
28
+ readonly lifecycle?: ModuleTableLifecycle;
29
+ }
30
+ interface ModuleTableLifecycle {
31
+ readonly user?: string;
32
+ readonly tenant?: string;
33
+ readonly purge?: boolean;
34
+ readonly omit?: readonly string[];
35
+ readonly export?: boolean;
36
+ /**
37
+ * Columns that hold a `credential_ref`. Exports leave them out, and the
38
+ * organization purger revokes each ref that carries the row's tenant
39
+ * through the `CredentialProvider` before the purge deletes the row.
40
+ */
41
+ readonly credentials?: readonly string[];
42
+ /** Revoke for the row's `user` instead of the app. Default `app`. */
43
+ readonly credentialSubject?: "app" | "user";
44
+ }
45
+ interface ModuleNames {
46
+ readonly tables: Readonly<Record<string, ModuleTableSpec>>;
47
+ /** The `before_*` and `after_*` hooks the module calls, so `sql.modules.<name>.hooks.functions` is checked. */
48
+ readonly hooks?: readonly string[];
49
+ /** The `sql.modules.<name>.options` keys the module reads; any other key is rejected. */
50
+ readonly options?: readonly string[];
51
+ /** The events the module records; `record` rejects any other type. */
52
+ readonly events?: ModuleEvents;
53
+ }
54
+ /** An event in a module's catalog, checked against what `record` renders. */
55
+ interface ModuleEventSpec<K extends BlockEventType = BlockEventType> {
56
+ /** The kebab-case collection every subject starts with, e.g. `organizations`. */
57
+ readonly subject: string;
58
+ /** The payload keys, all of them in the event's `BlockEventMap` data. */
59
+ readonly payload: readonly PayloadKey<K>[];
60
+ /** A job, a webhook or an engine may call the writer again, so the event needs a `key`. */
61
+ readonly retries?: boolean;
62
+ }
63
+ type PayloadKey<K extends BlockEventType> = K extends BlockEventType ? keyof BlockEventMap[K] & string : never;
64
+ type ModuleEvents = { readonly [K in BlockEventType]?: ModuleEventSpec<K>; };
65
+ /** An event a module writes to the outbox, as SQL expressions. */
66
+ interface ModuleEmit {
67
+ /** The event type, e.g. `organization.created`. */
68
+ readonly type: string;
69
+ /** A `jsonb` expression. */
70
+ readonly payload: string;
71
+ /** A `text` expression, e.g. `'organizations/' || new_organization`. */
72
+ readonly subject?: string;
73
+ /** The tenant id expression; it is cast to text. */
74
+ readonly tenant?: string;
75
+ /** A `text` idempotency key expression. */
76
+ readonly key?: string;
77
+ }
78
+ /**
79
+ * The categories module actions are audited under. An adopted log with its
80
+ * own names maps them through `sql.modules.audit.options.values.category`.
81
+ */
82
+ declare const AUDIT_CATEGORIES: readonly ["membership", "access", "security", "configuration", "billing", "data", "ai", "integration"];
83
+ type AuditCategory = (typeof AUDIT_CATEGORIES)[number];
84
+ /** How `record` writes an action to the audit log, as SQL expressions. */
85
+ interface ModuleAudit {
86
+ /** The audit category, mapped through `sql.modules.audit.options.values`. */
87
+ readonly category: AuditCategory;
88
+ /** What the action changed, e.g. `user` or `api_key`. */
89
+ readonly targetType?: string;
90
+ /** A `text` expression for the changed record's id. */
91
+ readonly recordId?: string;
92
+ /** A `text` expression people recognize the target by. */
93
+ readonly targetLabel?: string;
94
+ /** A `text` expression that says what happened. */
95
+ readonly summary?: string;
96
+ /** A `jsonb` expression; defaults to the event payload. */
97
+ readonly metadata?: string;
98
+ /** A `uuid` expression for the actor; defaults to the caller. */
99
+ readonly actor?: string;
100
+ }
101
+ /**
102
+ * An action a module records once: the outbox gets it as an event and the
103
+ * audit log as an entry, each when its module is installed.
104
+ */
105
+ interface ModuleAction extends ModuleEmit {
106
+ /**
107
+ * How the action is audited, or `false` for an event that is not an
108
+ * audited action, such as a chat message or a run status.
109
+ */
110
+ readonly audit: ModuleAudit | false;
111
+ }
112
+ /** A function of a module's contract: what other modules and the TypeScript side call. */
113
+ interface ModuleContractFunction {
114
+ readonly name: string;
115
+ /** Argument types; `{id}` stands for the module's id type. */
116
+ readonly args: readonly string[];
117
+ readonly returns: string;
118
+ }
119
+ /** What a module's `build` reads: resolved names for one layout. */
120
+ interface ModuleContext {
121
+ readonly module: string;
122
+ readonly mode: ModuleMode;
123
+ readonly config: ResolvedModule;
124
+ /** The quoted schema of the module's functions and managed tables. */
125
+ readonly schema: string;
126
+ readonly schemaName: string;
127
+ readonly idType: ModuleIdType;
128
+ readonly claims: ClaimsMeta;
129
+ readonly modules: ModulesConfig;
130
+ /** `schema.name` of a module function, quoted. */
131
+ fn(name: string): string;
132
+ /** `schema.table` of a logical table, quoted. */
133
+ table(logical: string): string;
134
+ /** The unquoted schema and name of a logical table. */
135
+ tableName(logical: string): {
136
+ readonly schema: string;
137
+ readonly name: string;
138
+ };
139
+ /** A logical column, quoted. Throws when an adopted table lacks it. */
140
+ col(table: string, column: string): string;
141
+ /** Whether a logical column exists (adopted tables can map it to `null`). */
142
+ has(table: string, column: string): boolean;
143
+ /** Whether an optional logical table exists (it can be mapped to `null`). */
144
+ hasTable(table: string): boolean;
145
+ /** Whether the module owns `table` (managed mode). */
146
+ readonly manages: boolean;
147
+ readonly names: ModuleNames;
148
+ readonly installedModules: readonly string[];
149
+ /** The permission key for a module action, as a SQL literal. */
150
+ permission(action: string, fallback: string): string;
151
+ /** The permission key for a module action. */
152
+ permissionKey(action: string, fallback: string): string;
153
+ /** A trigger name with the module's prefix, quoted. */
154
+ trigger(name: string): string;
155
+ /** Whether `module` is installed alongside this one. */
156
+ installed(module: string): boolean;
157
+ /** The context of another module in the same layout. */
158
+ of(module: string): ModuleContext;
159
+ /** A string module option (`sql.modules.<name>.options`). */
160
+ text(name: string, fallback: string): string;
161
+ number(name: string, fallback: number): number;
162
+ flag(name: string, fallback: boolean): boolean;
163
+ /** A module option that is a list of strings. */
164
+ list(name: string, fallback: readonly string[]): readonly string[];
165
+ /** A declared module option as configured, for object-shaped options. */
166
+ option(name: string): unknown;
167
+ /**
168
+ * `options.extraColumns` (column name to SQL type), checked: names are
169
+ * lower-case identifiers, types are SQL types, and no name shadows one of
170
+ * `table`'s mapped columns or a key in `reserved`, the stable keys the
171
+ * module's read functions return next to them.
172
+ */
173
+ extraColumns(table: string, reserved?: readonly string[]): readonly ExtraColumn[];
174
+ /**
175
+ * PL/pgSQL that calls the app's hook function when it exists, with
176
+ * `[type, expression]` arguments: `if to_regprocedure(...) is not null
177
+ * then execute format(...) using ...; end if;`. The name comes from
178
+ * `to_regprocedure` rather than a literal: plpgsql_check (`supabase db
179
+ * lint`) checks constant dynamic SQL and fails when the hook is missing.
180
+ */
181
+ hook(name: string, args: readonly (readonly [string, string])[]): string;
182
+ /** The app function a hook calls, quoted, for hooks that return a value. */
183
+ hookTarget(name: string): string;
184
+ /**
185
+ * PL/pgSQL that writes the event to the outbox (`emit_event`) when the
186
+ * `outbox` module is installed and `sql.modules.<name>.events` isn't false;
187
+ * otherwise an empty string. `record` without the audit entry.
188
+ */
189
+ emit(event: ModuleEmit): string;
190
+ /**
191
+ * PL/pgSQL that writes the action to the outbox (as `emit` does) and, when
192
+ * it carries `audit` and the `audit` module is installed, to the audit log
193
+ * (`audit_event`), with `key` as the idempotency key of both. `null;`
194
+ * when neither applies, so it is always a valid statement.
195
+ */
196
+ record(action: ModuleAction): string;
197
+ /**
198
+ * PL/pgSQL that calls `notify(fields)` as the service role, which
199
+ * `notify()` requires, then restores the caller's claims. The function
200
+ * declares `v_claims text`. `null;` without the `notifications` module.
201
+ */
202
+ notify(fields: string, options?: {
203
+ readonly indent?: string;
204
+ }): string;
205
+ /** PL/pgSQL that enqueues a job (`enqueue_job`); `null;` without the `jobs` module. */
206
+ enqueue(queue: string, payload: string, dedupe: string): string;
207
+ /** The `text[]` of a tenant's entitlements, or `fallback` without the `entitlements` module. */
208
+ entitlements(tenant: string): string | undefined;
209
+ entitlements(tenant: string, fallback: string): string;
210
+ /**
211
+ * PL/pgSQL that broadcasts on a Realtime topic when `realtime.send`
212
+ * exists: projects without Realtime skip it.
213
+ */
214
+ broadcast(topic: string, event: string, payload: string, options?: {
215
+ readonly indent?: string;
216
+ }): string;
217
+ /** `coalesce(better_supabase.can(scope, id, permission), false)`; `permission` is a SQL expression. */
218
+ can(scope: string, id: string, permission: string): string;
219
+ /**
220
+ * True for the service role and platform staff holding `permission` (a SQL
221
+ * expression); the service role only without the `access` module.
222
+ */
223
+ staff(permission: string): string;
224
+ }
225
+ /** A column from `options.extraColumns`. */
226
+ interface ExtraColumn {
227
+ /** The column name, as reads return it. */
228
+ readonly name: string;
229
+ /** The name, quoted. */
230
+ readonly ident: string;
231
+ /** Its SQL type, such as `text not null default 'en'`. */
232
+ readonly type: string;
233
+ }
234
+ /** The contract's argument list with `{id}` resolved, as Postgres prints it. */
235
+ declare function contractSignature(fn: ModuleContractFunction, idType: string): string;
236
+ //#endregion
237
+ export { ModuleAudit as a, ModuleEmit as c, ModuleTableSpec as d, contractSignature as f, ModuleAction as i, ModuleIdType as l, moduleIdType as m, AuditCategory as n, ModuleContext as o, isModuleIdType as p, MODULE_ID_TYPES as r, ModuleContractFunction as s, AUDIT_CATEGORIES as t, ModuleNames as u };
@@ -0,0 +1,31 @@
1
+ import { t as AsyncResult } from "../result-D7y2fT87.js";
2
+ import { i as sqlTransport, r as rpcTransport, t as BlockTransport } from "../block-transport-DvaoPuZ9.js";
3
+ import { a as CredentialSubject, c as SetCredentialOptions, d as foreignCredentialRef, f as subjectFor, i as CredentialRef, l as StartAuthorizationOptions, n as CredentialCapabilities, o as CredentialToken, p as tenantCredentialRef, r as CredentialProvider, s as GetTokenOptions, t as CompleteAuthorizationOptions, u as credentialRefInTenant } from "../provider-BH5UWZJ6.js";
4
+ import { a as vaultCredentials, i as VaultInboundScheme, n as VaultCredentials, r as VaultCredentialsOptions, t as VaultCredentialRef } from "../vault-CSO7ss5C.js";
5
+ //#region src/credentials/compose.d.ts
6
+ /**
7
+ * One provider over several: each call goes to the provider whose `name`
8
+ * is the ref's `provider`. A ref no provider handles fails with
9
+ * `invalid_input` (`CREDENTIAL_PROVIDER_UNKNOWN`), and an optional method
10
+ * the chosen provider lacks with `unsupported`.
11
+ */
12
+ export declare function credentialRouter(providers: readonly CredentialProvider[], options?: {
13
+ readonly name?: string;
14
+ }): CredentialProvider;
15
+ interface RevokeIfConfiguredOptions {
16
+ readonly subject: CredentialSubject;
17
+ /**
18
+ * The tenant of the row that holds the ref, or `undefined` for an
19
+ * app-level row. When the key is present, a ref outside that tenant is
20
+ * left alone, so a row can never revoke another tenant's credential.
21
+ */
22
+ readonly tenant?: string | undefined;
23
+ }
24
+ /**
25
+ * Revokes the credential a ref names when a provider is configured and can
26
+ * revoke it. Resolves `false` without a provider, for a provider without
27
+ * revocation, or for a ref outside `options.tenant`.
28
+ */
29
+ export declare function revokeIfConfigured(provider: CredentialProvider | undefined, ref: CredentialRef, options: RevokeIfConfiguredOptions): AsyncResult<boolean>;
30
+ //#endregion
31
+ export { type BlockTransport, type CompleteAuthorizationOptions, type CredentialCapabilities, type CredentialProvider, type CredentialRef, type CredentialSubject, type CredentialToken, type GetTokenOptions, type RevokeIfConfiguredOptions, type SetCredentialOptions, type StartAuthorizationOptions, type VaultCredentialRef, type VaultCredentials, type VaultCredentialsOptions, type VaultInboundScheme, credentialRefInTenant, foreignCredentialRef, rpcTransport, sqlTransport, subjectFor, tenantCredentialRef, vaultCredentials };