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,10 +1,12 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { A as Schema, D as RelationTypes, F as TableMeta, L as UniqueKeyName, M as Simplify, O as Relations, P as TableKey, R as UniqueWhere, _ as Insert, j as SchemaMeta, k as Row, n as AnyFunctions, r as AnyModels, w as PrimaryKeyValue, z as Update } from "./types-Dnf_wRDz.js";
3
- import { I as CountMode, S as ErrorMapper, U as Operation, _ as DbError, a as AsyncResult, d as ThrowMapper, r as Executor } from "./executor-BunPOO-k.js";
4
- import { E as Logger, a as EventHub, i as EventHandler, o as EventName, s as MutationNotice, u as RpcNotice } from "./events-aIO7vsIk.js";
5
- import { _ as WithExtension, a as ExtensionOf, g as RequestContext, n as AnyPlugin, r as ApplyExtension } from "./plugin-o144f322.js";
6
- import { t as StandardSchemaV1 } from "./standard-J4YgMOLm.js";
7
- import { i as PostgrestPlan } from "./postgrest-CruYKAvV.js";
2
+ import { b as DbError, p as ThrowMapper, t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
3
+ import { A as Relations, B as UniqueKeyName, E as PrimaryKeyValue, F as Simplify, H as Update, L as TableKey, M as Row, N as Schema, P as SchemaMeta, R as TableMeta, V as UniqueWhere, a as AnyModels, i as AnyFunctions, k as RelationTypes, x as Insert } from "./types-6BdhkmZe.js";
4
+ import { l as CountMode, r as Executor, v as Operation } from "./executor-DvsBbNBS.js";
5
+ import { a as ExtensionOf, h as WithExtension, m as RequestContext, n as AnyPlugin, r as ApplyExtension } from "./plugin-FGY8UhYm.js";
6
+ import { a as EventHub, i as EventHandler, o as EventName, s as MutationNotice, u as RpcNotice } from "./events-DWDhx77e.js";
7
+ import { n as Logger } from "./logger-DWVYUmwi.js";
8
+ import { t as StandardSchemaV1 } from "./standard-CYsm7xpT.js";
9
+ import { a as PostgrestPlan, i as PostgrestCompileOptions } from "./postgrest-BLVdEnfe.js";
8
10
  //#region src/ir/args.d.ts
9
11
  interface BaseOps<V> {
10
12
  readonly eq?: V;
@@ -25,11 +27,19 @@ interface TextOps {
25
27
  readonly like?: string;
26
28
  /** Case-insensitive LIKE pattern. */
27
29
  readonly ilike?: string;
30
+ /** POSIX regular expression (`~`). */
31
+ readonly match?: string;
32
+ /** Case-insensitive POSIX regular expression (`~*`). */
33
+ readonly imatch?: string;
28
34
  /** Case-insensitive substring match; wildcards in the value are escaped. */
29
35
  readonly contains?: string;
30
36
  readonly startsWith?: string;
31
37
  readonly endsWith?: string;
32
- /** Full-text search (`websearch_to_tsquery`). */
38
+ /**
39
+ * Full-text search (`websearch_to_tsquery`). `config` is a text search
40
+ * configuration name such as `english` or `pg_catalog.dutch`; anything else
41
+ * is an `invalid_request` error.
42
+ */
33
43
  readonly search?: string | {
34
44
  readonly query: string;
35
45
  readonly config?: string;
@@ -46,10 +56,37 @@ interface ArrayOps<E> {
46
56
  readonly containedBy?: readonly E[];
47
57
  }
48
58
  interface JsonOps<V> {
49
- /** jsonb `@>`: the value contains the given structure. */
50
- readonly contains?: Partial<V> | Record<string, unknown>;
59
+ /**
60
+ * jsonb `@>`: the value contains the given structure. An array matches a
61
+ * JSON array holding every given element (`[{ "type": "image" }]`).
62
+ */
63
+ readonly contains?: Partial<V> | Record<string, unknown> | readonly unknown[];
51
64
  }
52
- type OpsFor<V> = [NonNullable<V>] extends [string] ? BaseOps<V> & ComparableOps<V> & TextOps : [NonNullable<V>] extends [number | bigint] ? BaseOps<V> & ComparableOps<V> : [NonNullable<V>] extends [boolean] ? BaseOps<V> : [NonNullable<V>] extends [readonly (infer E)[]] ? BaseOps<V> & ArrayOps<E> : BaseOps<V> & JsonOps<NonNullable<V>>;
65
+ type JsonText = string | number | boolean;
66
+ /**
67
+ * Compares the text at a path inside a json column (`column->a->>b`).
68
+ * Numbers and booleans compare as their text; `isNull` and `eq: null` match a
69
+ * missing key and JSON `null`.
70
+ */
71
+ interface JsonPathOps {
72
+ /** Keys from the column down; a number-like key indexes an array. */
73
+ readonly path: readonly [string, ...string[]];
74
+ readonly eq?: JsonText | null;
75
+ readonly neq?: JsonText | null;
76
+ readonly in?: readonly JsonText[];
77
+ readonly notIn?: readonly JsonText[];
78
+ readonly isNull?: boolean;
79
+ /** Text comparison, so `"10" < "9"`; store numbers you compare in a column. */
80
+ readonly gt?: string;
81
+ readonly gte?: string;
82
+ readonly lt?: string;
83
+ readonly lte?: string;
84
+ readonly like?: string;
85
+ readonly ilike?: string;
86
+ readonly match?: string;
87
+ readonly imatch?: string;
88
+ }
89
+ type OpsFor<V> = [NonNullable<V>] extends [string] ? BaseOps<V> & ComparableOps<V> & TextOps : [NonNullable<V>] extends [number | bigint] ? BaseOps<V> & ComparableOps<V> : [NonNullable<V>] extends [boolean] ? BaseOps<V> : [NonNullable<V>] extends [readonly (infer E)[]] ? BaseOps<V> & ArrayOps<E> : (BaseOps<V> & JsonOps<NonNullable<V>>) | JsonPathOps;
53
90
  /** A value (equality, or `null` for `is null`) or an operator object. */
54
91
  type FieldFilter<V> = V | OpsFor<V>;
55
92
  type RelationFilter<M extends AnyModels, R> = R extends {
@@ -74,18 +111,37 @@ type WhereInput<M extends AnyModels, T extends keyof M> = { readonly [K in keyof
74
111
  readonly OR?: readonly WhereInput<M, T>[];
75
112
  readonly NOT?: WhereInput<M, T>;
76
113
  };
114
+ /**
115
+ * A `where` you build one statement at a time:
116
+ * `const where: MutableWhere<Models, "customers"> = {}; if (status) where.status = status;`.
117
+ * The generated module exports it per table as `WhereOf<"customers">`.
118
+ */
119
+ type MutableWhere<M extends AnyModels, T extends keyof M> = { -readonly [K in keyof WhereInput<M, T>]?: WhereInput<M, T>[K]; };
77
120
  type SortDirection = "asc" | "desc";
78
- type OrderByInput<M extends AnyModels, T extends keyof M> = { readonly [K in keyof Row<M, T>]?: SortDirection | {
121
+ type SortSpec = SortDirection | {
79
122
  readonly direction: SortDirection;
80
123
  readonly nulls?: "first" | "last";
81
- }; };
124
+ };
125
+ /** The columns of one table, each with a sort direction. */
126
+ type ColumnOrderBy<M extends AnyModels, T extends keyof M> = { readonly [K in keyof Row<M, T>]?: SortSpec; };
127
+ /**
128
+ * Columns of the table, and of its to-one relations one level down:
129
+ * `{ organization: { name: "asc" } }` sorts by the related row's name.
130
+ */
131
+ type OrderByInput<M extends AnyModels, T extends keyof M> = ColumnOrderBy<M, T> & { readonly [R in keyof Relations<M, T>]?: RelationOrderBy<M, Relations<M, T>[R]>; };
132
+ type RelationOrderBy<M extends AnyModels, R> = R extends {
133
+ readonly kind: "one";
134
+ readonly table: infer X extends keyof M;
135
+ } ? ColumnOrderBy<M, X> : never;
82
136
  type OrderByArg<M extends AnyModels, T extends keyof M> = OrderByInput<M, T> | readonly OrderByInput<M, T>[];
137
+ /** Sorts by the table's own columns only (includes, aggregates). */
138
+ type ColumnOrderByArg<M extends AnyModels, T extends keyof M> = ColumnOrderBy<M, T> | readonly ColumnOrderBy<M, T>[];
83
139
  type SelectArg<M extends AnyModels, T extends keyof M> = readonly Extract<keyof Row<M, T>, string>[];
84
140
  interface IncludeArgs<M extends AnyModels, T extends keyof M> {
85
141
  readonly select?: SelectArg<M, T>;
86
142
  readonly include?: IncludeArg<M, T>;
87
143
  readonly where?: WhereInput<M, T>;
88
- readonly orderBy?: OrderByArg<M, T>;
144
+ readonly orderBy?: ColumnOrderByArg<M, T>;
89
145
  readonly limit?: number;
90
146
  /** Only return parent rows that have a matching related row. */
91
147
  readonly required?: boolean;
@@ -111,10 +167,25 @@ type CountArg<M extends AnyModels, T extends keyof M> = { readonly [R in ManyRel
111
167
  type TargetOf<R> = R extends {
112
168
  readonly table: infer X;
113
169
  } ? X : never;
114
- interface ReadArgs<M extends AnyModels, T extends keyof M> {
170
+ /** Per-call request settings every repository method takes. */
171
+ interface RequestArgs {
172
+ readonly signal?: AbortSignal;
173
+ /**
174
+ * Fails the call with a `timeout` error after this many milliseconds,
175
+ * composed with `signal` (`AbortSignal.any`). Replaces the connection's
176
+ * `timeout`. SQL executors only check it before the statement starts.
177
+ */
178
+ readonly timeout?: number;
179
+ /**
180
+ * postgrest-js retries of idempotent requests (reads) on network errors,
181
+ * 503 and 520; `false` turns them off for this call. Writes are never
182
+ * retried. SQL executors ignore it.
183
+ */
184
+ readonly retry?: boolean;
185
+ }
186
+ interface ReadArgs<M extends AnyModels, T extends keyof M> extends RequestArgs {
115
187
  readonly select?: SelectArg<M, T>;
116
188
  readonly include?: IncludeArg<M, T>;
117
- readonly signal?: AbortSignal;
118
189
  }
119
190
  interface FindManyArgs<M extends AnyModels, T extends keyof M> extends ReadArgs<M, T> {
120
191
  readonly where?: WhereInput<M, T>;
@@ -123,12 +194,14 @@ interface FindManyArgs<M extends AnyModels, T extends keyof M> extends ReadArgs<
123
194
  readonly offset?: number;
124
195
  }
125
196
  type FindFirstArgs<M extends AnyModels, T extends keyof M> = Omit<FindManyArgs<M, T>, "limit">;
126
- interface CountArgs<M extends AnyModels, T extends keyof M> {
197
+ interface FindOnlyArgs<M extends AnyModels, T extends keyof M> extends ReadArgs<M, T> {
198
+ readonly where: WhereInput<M, T>;
199
+ }
200
+ interface CountArgs<M extends AnyModels, T extends keyof M> extends RequestArgs {
127
201
  readonly where?: WhereInput<M, T>;
128
202
  readonly mode?: "exact" | "planned" | "estimated";
129
- readonly signal?: AbortSignal;
130
203
  }
131
- interface AggregateArgs<M extends AnyModels, T extends keyof M> {
204
+ interface AggregateArgs<M extends AnyModels, T extends keyof M> extends RequestArgs {
132
205
  readonly where?: WhereInput<M, T>;
133
206
  /** One result per distinct combination; without it, one result. */
134
207
  readonly groupBy?: SelectArg<M, T>;
@@ -138,16 +211,30 @@ interface AggregateArgs<M extends AnyModels, T extends keyof M> {
138
211
  readonly _avg?: NumericMeasureArg<M, T>;
139
212
  readonly _min?: MeasureArg<M, T>;
140
213
  readonly _max?: MeasureArg<M, T>;
141
- /** Sorts groups; only `groupBy` columns. */
142
- readonly orderBy?: OrderByArg<M, T>;
214
+ /** Sorts groups by `groupBy` columns, `_count` and measures. */
215
+ readonly orderBy?: AggregateOrderByArg<M, T>;
143
216
  readonly limit?: number;
144
217
  readonly offset?: number;
145
- readonly signal?: AbortSignal;
146
218
  }
219
+ /**
220
+ * Sorts `aggregate()` groups: `{ _count: "desc" }`,
221
+ * `{ _sum: { amount: "desc" } }` or a `groupBy` column.
222
+ */
223
+ type AggregateOrderBy<M extends AnyModels, T extends keyof M> = ColumnOrderBy<M, T> & {
224
+ readonly _count?: SortSpec;
225
+ readonly _sum?: { readonly [K in NumericKey<M, T>]?: SortSpec; };
226
+ readonly _avg?: { readonly [K in NumericKey<M, T>]?: SortSpec; };
227
+ readonly _min?: ColumnOrderBy<M, T>;
228
+ readonly _max?: ColumnOrderBy<M, T>;
229
+ };
230
+ type AggregateOrderByArg<M extends AnyModels, T extends keyof M> = AggregateOrderBy<M, T> | readonly AggregateOrderBy<M, T>[];
147
231
  type SelectPart<M extends AnyModels, T extends keyof M, A> = A extends {
148
232
  readonly select: readonly (infer K)[];
149
233
  } ? Pick<Row<M, T>, Extract<K, keyof Row<M, T>>> : Row<M, T>;
150
- type RelationPayload<M extends AnyModels, R, V> = R extends RelationTypes ? R["kind"] extends "many" ? Payload<M, Extract<R["table"], keyof M>, V extends true ? unknown : V>[] : R["nullable"] extends true ? Payload<M, Extract<R["table"], keyof M>, V extends true ? unknown : V> | null : Payload<M, Extract<R["table"], keyof M>, V extends true ? unknown : V> : never;
234
+ /** `required: true` drops parents without the related row, so it is never `null`. */
235
+ type RelationPayload<M extends AnyModels, R, V> = R extends RelationTypes ? R["kind"] extends "many" ? Payload<M, Extract<R["table"], keyof M>, V extends true ? unknown : V>[] : R["nullable"] extends true ? V extends {
236
+ readonly required: true;
237
+ } ? Payload<M, Extract<R["table"], keyof M>, V> : Payload<M, Extract<R["table"], keyof M>, V extends true ? unknown : V> | null : Payload<M, Extract<R["table"], keyof M>, V extends true ? unknown : V> : never;
151
238
  type IncludePart<M extends AnyModels, T extends keyof M, A> = A extends {
152
239
  readonly include: infer I;
153
240
  } ? { -readonly [R in keyof I & keyof Relations<M, T>]: RelationPayload<M, Relations<M, T>[R], I[R]>; } & CountPart<I> & ([keyof I & MeasureKey] extends [never] ? unknown : RelationMeasures<M, T, I>) : unknown;
@@ -184,7 +271,7 @@ type Payload<M extends AnyModels, T extends keyof M, A> = A extends {
184
271
  } ? Simplify<SelectPart<M, T, A>> : Row<M, T>;
185
272
  //#endregion
186
273
  //#region src/core/spec.d.ts
187
- type ReadMethod = "findMany" | "findFirst" | "findUnique" | "findById" | "count" | "aggregate" | "exists" | "paginate";
274
+ type ReadMethod = "findMany" | "findFirst" | "findOnly" | "findUnique" | "findById" | "count" | "aggregate" | "exists" | "paginate";
188
275
  declare const resultType: unique symbol;
189
276
  /**
190
277
  * A read, described as plain JSON: build it with `betterSupabase.spec`, run it with
@@ -206,6 +293,7 @@ type NoSignal<A> = Omit<A, "signal">;
206
293
  interface TableSpecs<M extends AnyModels, T extends TableKey<M>, E> {
207
294
  findMany<const A extends NoSignal<FindManyArgs<M, T>> & FindExt<E, M, T>>(args?: A): QuerySpec<T, "findMany", Payload<M, T, A>[]>;
208
295
  findFirst<const A extends NoSignal<FindFirstArgs<M, T>> & FindExt<E, M, T>>(args?: A): QuerySpec<T, "findFirst", Payload<M, T, A> | null>;
296
+ findOnly<const A extends NoSignal<FindOnlyArgs<M, T>> & FindExt<E, M, T>>(args: A): QuerySpec<T, "findOnly", Payload<M, T, A> | null>;
209
297
  findUnique<const A extends NoSignal<ReadArgs<M, T>> & {
210
298
  readonly where: UniqueWhere<M, T>;
211
299
  } & FindExt<E, M, T>>(args: A): QuerySpec<T, "findUnique", Payload<M, T, A> | null>;
@@ -215,7 +303,7 @@ interface TableSpecs<M extends AnyModels, T extends TableKey<M>, E> {
215
303
  exists(args?: {
216
304
  readonly where?: WhereInput<M, T>;
217
305
  } & FindExt<E, M, T>): QuerySpec<T, "exists", boolean>;
218
- paginate<const A extends NoSignal<OffsetPageArgs<M, T> | CursorPageArgs<M, T>> & FindExt<E, M, T>>(args: A): QuerySpec<T, "paginate", PageOf<M, T, A>>;
306
+ paginate<const A extends NoSignal<OffsetPageArgs<M, T> | OffsetRangeArgs<M, T> | CursorPageArgs<M, T>> & FindExt<E, M, T>>(args: A): QuerySpec<T, "paginate", PageOf<M, T, A>>;
219
307
  }
220
308
  type Specs<M extends AnyModels, E> = { readonly [T in TableKey<M>]: TableSpecs<M, T, E>; };
221
309
  declare function isQuerySpec(value: unknown): value is QuerySpec;
@@ -240,6 +328,15 @@ type ScalarValue<T> = T extends "int2" | "int4" | "int8" | "float4" | "float8" |
240
328
  /** The value a parameter of type `T` takes. */
241
329
  type ReadSetParamValue<T> = T extends `${infer E}[]` ? readonly ScalarValue<E>[] : ScalarValue<T>;
242
330
  type ReadSetParams<P extends ReadSetParamTypes> = { readonly [K in keyof P]: ReadSetParamValue<P[K]>; };
331
+ /**
332
+ * Placeholders for the caller's identity, the third argument of a read
333
+ * set's builder. The function reads them in the database, so callers can't
334
+ * pass someone else's.
335
+ */
336
+ interface ReadSetAuth {
337
+ /** The caller's user id: `auth.uid()` in the function, the JWT `sub` claim otherwise. */
338
+ readonly uid: string;
339
+ }
243
340
  type ReadSetRole = "anon" | "authenticated";
244
341
  /**
245
342
  * Named reads that run together: one `stable` function over PostgREST (a
@@ -285,7 +382,7 @@ interface ReadSetOptions<P extends ReadSetParamTypes> {
285
382
  * `p` holds placeholders, not values: pass them straight into `where` (or
286
383
  * `in`), where the function reads them from its `p jsonb` argument.
287
384
  */
288
- declare function defineReadSet<M extends AnyModels, D, F extends AnyFunctions, E, const N extends string, const P extends ReadSetParamTypes, const S extends Readonly<Record<string, QuerySpec>>>(betterSupabase: BetterSupabase<M, D, F, E>, name: N, options: ReadSetOptions<P>, build: (specs: Specs<M, E>, params: ReadSetParams<P>) => S): ReadSet<N, P, S>;
385
+ declare function defineReadSet<M extends AnyModels, D, F extends AnyFunctions, E, const N extends string, const P extends ReadSetParamTypes, const S extends Readonly<Record<string, QuerySpec>>>(betterSupabase: BetterSupabase<M, D, F, E>, name: N, options: ReadSetOptions<P>, build: (specs: Specs<M, E>, params: ReadSetParams<P>, auth: ReadSetAuth) => S): ReadSet<N, P, S>;
289
386
  declare function isReadSet(value: unknown): value is ReadSet;
290
387
  /** App keys of every table the set reads. */
291
388
  declare function readSetTables(set: ReadSet, meta?: SchemaMeta): string[];
@@ -293,11 +390,30 @@ declare function readSetTables(set: ReadSet, meta?: SchemaMeta): string[];
293
390
  //#region src/core/search.d.ts
294
391
  /** `db.$search(table, args)`: the `k` rows nearest to `vector`. */
295
392
  type SearchArgs<M extends AnyModels, T extends keyof M> = Pick<FindManyArgs<M, T>, "select" | "include" | "where" | "signal"> & {
296
- /** The query embedding, as numbers or pgvector text (`'[0.1,0.2]'`). */
297
- readonly vector: readonly number[] | string;
393
+ /**
394
+ * The query embedding, as numbers or pgvector text (`'[0.1,0.2]'`). Leave
395
+ * it out (or pass `null`) with `text` on a `hybrid` entry to rank by
396
+ * full-text search alone, such as when the embedding call failed.
397
+ */
398
+ readonly vector?: readonly number[] | string | null;
298
399
  /** Rows to return. Defaults to 10. */
299
400
  readonly k?: number;
401
+ /**
402
+ * Values for the entry's `prefilter` columns, applied before ranking: a
403
+ * value or a list (`null` matches a null column).
404
+ */
405
+ readonly filter?: Readonly<Record<string, unknown>>;
406
+ /** The text query a `hybrid` entry ranks with full-text search. */
407
+ readonly text?: string;
408
+ /** Adds `$score` to each row: the entry's similarity, fused and boosted. */
409
+ readonly score?: boolean;
300
410
  };
411
+ /** What `db.$search` adds to each row with `score: true`. */
412
+ type SearchScore<A> = A extends {
413
+ readonly score: true;
414
+ } ? {
415
+ readonly $score: number;
416
+ } : unknown;
301
417
  //#endregion
302
418
  //#region src/core/stats.d.ts
303
419
  /** Database work for one request (or one `db`). */
@@ -344,10 +460,49 @@ interface WriteArgs<M extends AnyModels, T extends keyof M> extends ReadArgs<M,
344
460
  }
345
461
  interface UpdateArgs<M extends AnyModels, T extends keyof M> extends WriteArgs<M, T> {
346
462
  /**
347
- * Optimistic concurrency: the update only applies when these columns still
348
- * have these values. A mismatch returns a `stale` error.
463
+ * More conditions the row must meet, such as a tenant or a status. A row
464
+ * with this key that does not match returns `not_found`, in one request.
465
+ */
466
+ readonly where?: WhereInput<M, T>;
467
+ /**
468
+ * Optimistic concurrency: the update only applies when the row still
469
+ * matches. Plain values mean equality; operators work as in `where`. A
470
+ * mismatch returns a `stale` error, found with a second request.
471
+ */
472
+ readonly expect?: WhereInput<M, T>;
473
+ }
474
+ /** `updateMany` and `deleteMany` return the written rows with `returning: true`. */
475
+ type ManyResult<M extends AnyModels, T extends keyof M, A> = A extends {
476
+ readonly returning: true;
477
+ } ? Payload<M, T, A>[] : {
478
+ count: number;
479
+ };
480
+ interface ManyReturningArgs<M extends AnyModels, T extends keyof M> extends RequestArgs {
481
+ readonly where: WhereInput<M, T>;
482
+ /** Return the written rows instead of `{ count }`. */
483
+ readonly returning?: boolean;
484
+ /** The columns to return with `returning: true`. */
485
+ readonly select?: ReadArgs<M, T>["select"];
486
+ /** Related rows to return with `returning: true`. */
487
+ readonly include?: ReadArgs<M, T>["include"];
488
+ /**
489
+ * The most rows the call may change. When `where` matches more, the call
490
+ * fails with `max_affected` and changes nothing. Over PostgREST it needs
491
+ * PostgREST 13 or later (`Prefer: max-affected`).
492
+ */
493
+ readonly maxAffected?: number;
494
+ /** How `{ count }` is counted over PostgREST. Defaults to `exact`. */
495
+ readonly count?: CountMode;
496
+ }
497
+ /** `createMany` and `upsertMany` options. */
498
+ interface WriteManyArgs<M extends AnyModels, T extends keyof M> extends WriteArgs<M, T> {
499
+ /**
500
+ * Columns some rows leave out become `null` instead of their column
501
+ * default. Defaults to `false`, so a left-out column takes its default.
349
502
  */
350
- readonly expect?: Partial<Row<M, T>>;
503
+ readonly defaultToNull?: boolean;
504
+ /** How `{ count }` is counted over PostgREST with `returning: false`. Defaults to `exact`. */
505
+ readonly count?: CountMode;
351
506
  }
352
507
  type ConflictTarget<M extends AnyModels, T extends keyof M> = "primaryKey" | UniqueKeyName<M, T> | readonly Extract<keyof Row<M, T>, string>[];
353
508
  interface UpsertArgs<M extends AnyModels, T extends keyof M> extends WriteArgs<M, T> {
@@ -356,9 +511,9 @@ interface UpsertArgs<M extends AnyModels, T extends keyof M> extends WriteArgs<M
356
511
  /** Keep the existing row instead of updating it (`ON CONFLICT DO NOTHING`). */
357
512
  readonly ignoreDuplicates?: boolean;
358
513
  }
359
- interface DeleteArgs {
360
- readonly signal?: AbortSignal;
361
- }
514
+ type DeleteArgs = RequestArgs;
515
+ /** `upsertMany` options. */
516
+ interface UpsertManyArgs<M extends AnyModels, T extends keyof M> extends UpsertArgs<M, T>, WriteManyArgs<M, T> {}
362
517
  type Returned<M extends AnyModels, T extends keyof M, A> = A extends {
363
518
  readonly returning: false;
364
519
  } ? null : Payload<M, T, A>;
@@ -368,6 +523,17 @@ type OffsetPageArgs<M extends AnyModels, T extends keyof M> = Omit<FindManyArgs<
368
523
  readonly size: number;
369
524
  /** Also count all matching rows. */
370
525
  readonly count?: CountMode;
526
+ readonly offset?: never;
527
+ readonly limit?: never;
528
+ };
529
+ type OffsetRangeArgs<M extends AnyModels, T extends keyof M> = Omit<FindManyArgs<M, T>, "limit" | "offset"> & {
530
+ /** Rows to skip before the page. */
531
+ readonly offset: number;
532
+ readonly limit: number;
533
+ /** Also count all matching rows. */
534
+ readonly count?: CountMode;
535
+ readonly page?: never;
536
+ readonly size?: never;
371
537
  };
372
538
  type CursorPageArgs<M extends AnyModels, T extends keyof M> = Omit<FindManyArgs<M, T>, "limit" | "offset"> & {
373
539
  /** Cursor from the previous page, or `null` for the first page. */
@@ -397,6 +563,12 @@ interface Repository<M extends AnyModels, T extends TableKey<M>, E = unknown> {
397
563
  readonly $meta: TableMeta;
398
564
  findMany<const A extends FindManyArgs<M, T> & FindExt<E, M, T>>(args?: A): AsyncResult<Payload<M, T, A>[]>;
399
565
  findFirst<const A extends FindFirstArgs<M, T> & FindExt<E, M, T>>(args?: A): AsyncResult<Payload<M, T, A> | null>;
566
+ /**
567
+ * The one row matching `where`, or `null` when none does, like supabase-js
568
+ * `maybeSingle()`. Several matching rows are a `multiple_rows` error, so
569
+ * a filter that should pick one row never reads an arbitrary one.
570
+ */
571
+ findOnly<const A extends FindOnlyArgs<M, T> & FindExt<E, M, T>>(args: A): AsyncResult<Payload<M, T, A> | null>;
400
572
  /**
401
573
  * The row with these values for the primary key or one named unique key
402
574
  * (`{ email }`, `{ organizationId, slug }`), or `null`.
@@ -412,66 +584,119 @@ interface Repository<M extends AnyModels, T extends TableKey<M>, E = unknown> {
412
584
  * `groupBy` columns. Needs `pgrst.db_aggregates_enabled` over PostgREST.
413
585
  */
414
586
  aggregate<const A extends AggregateArgs<M, T> & FindExt<E, M, T>>(args: A): AsyncResult<AggregateResult<M, T, A>>;
415
- exists(args?: {
587
+ exists(args?: RequestArgs & {
416
588
  readonly where?: WhereInput<M, T>;
417
- readonly signal?: AbortSignal;
418
589
  } & FindExt<E, M, T>): AsyncResult<boolean>;
419
- paginate<const A extends (OffsetPageArgs<M, T> | CursorPageArgs<M, T>) & FindExt<E, M, T>>(args: A): AsyncResult<PageOf<M, T, A>>;
590
+ paginate<const A extends (OffsetPageArgs<M, T> | OffsetRangeArgs<M, T> | CursorPageArgs<M, T>) & FindExt<E, M, T>>(args: A): AsyncResult<PageOf<M, T, A>>;
420
591
  create<const A extends WriteArgs<M, T> = {}>(data: Insert<M, T>, args?: A): AsyncResult<Returned<M, T, A>>;
421
- createMany<const A extends WriteArgs<M, T> = {}>(rows: readonly Insert<M, T>[], args?: A): AsyncResult<A extends {
592
+ createMany<const A extends WriteManyArgs<M, T> = {}>(rows: readonly Insert<M, T>[], args?: A): AsyncResult<A extends {
422
593
  readonly returning: false;
423
594
  } ? {
424
595
  count: number;
425
596
  } : Payload<M, T, A>[]>;
426
597
  update<const A extends UpdateArgs<M, T> = {}>(id: PrimaryKeyValue<M, T>, patch: Update<M, T>, args?: A): AsyncResult<Returned<M, T, A>>;
427
- updateMany(args: {
428
- readonly where: WhereInput<M, T>;
598
+ /**
599
+ * Fails with `invalid_request` when `where` filters no rows (it is empty or
600
+ * every value is `undefined`), unless `allowAll` is `true`.
601
+ */
602
+ updateMany<const A extends ManyReturningArgs<M, T> & {
429
603
  readonly data: Update<M, T>;
430
- readonly signal?: AbortSignal;
431
- } & FindExt<E, M, T>): AsyncResult<{
432
- count: number;
433
- }>;
604
+ /** Update every visible row when `where` filters nothing. */
605
+ readonly allowAll?: boolean;
606
+ } & FindExt<E, M, T>>(args: A): AsyncResult<ManyResult<M, T, A>>;
434
607
  upsert<const A extends UpsertArgs<M, T> = {}>(data: Insert<M, T>, args?: A): AsyncResult<A extends {
435
608
  readonly ignoreDuplicates: true;
436
609
  } ? Returned<M, T, A> | null : Returned<M, T, A>>;
437
- upsertMany<const A extends UpsertArgs<M, T> = {}>(rows: readonly Insert<M, T>[], args?: A): AsyncResult<A extends {
610
+ upsertMany<const A extends UpsertManyArgs<M, T> = {}>(rows: readonly Insert<M, T>[], args?: A): AsyncResult<A extends {
438
611
  readonly returning: false;
439
612
  } ? {
440
613
  count: number;
441
614
  } : Payload<M, T, A>[]>;
442
615
  /** Returns a `not_found` error when no visible row has this key. */
443
616
  delete(id: PrimaryKeyValue<M, T>, args?: DeleteArgs & DeleteExt<E, M, T>): AsyncResult<void>;
444
- deleteMany(args: {
445
- readonly where: WhereInput<M, T>;
446
- readonly signal?: AbortSignal;
447
- } & DeleteExt<E, M, T> & FindExt<E, M, T>): AsyncResult<{
448
- count: number;
449
- }>;
617
+ deleteMany<const A extends ManyReturningArgs<M, T> & DeleteExt<E, M, T> & FindExt<E, M, T>>(args: A): AsyncResult<ManyResult<M, T, A>>;
450
618
  /** Adds methods built on this repository. */
451
619
  extend<X extends object>(build: (base: this) => X): this & X;
452
620
  }
453
621
  type RepositoryOf<M extends AnyModels, T extends TableKey<M>, E> = Repository<M, T, E> & ApplyExtension<E, M, T, "methods">;
454
- interface RpcOptions<R> {
455
- readonly signal?: AbortSignal;
456
- /** Validates the return value; the result carries the schema's output type. */
622
+ interface RpcOptions<R> extends RequestArgs {
623
+ /**
624
+ * Validates the return value after decoding, so the schema sees the
625
+ * configured casing and codecs; the result carries its output type.
626
+ */
457
627
  readonly returns?: StandardSchemaV1<unknown, R>;
458
628
  readonly schema?: string;
629
+ /**
630
+ * Return what PostgREST sent, with database names and no codecs. Rows of a
631
+ * table or a `returns table (...)` record are decoded like reads otherwise.
632
+ */
633
+ readonly raw?: boolean;
459
634
  }
460
635
  type RpcArgs<F extends AnyFunctions, N extends keyof F> = Record<never, never> extends F[N]["Args"] ? [args?: F[N]["Args"]] : [args: F[N]["Args"]];
636
+ type IsUnion<T, U = T> = T extends unknown ? [U] extends [T] ? false : true : never;
637
+ /** Names generated as a union of `{ Args; Returns }`, one per overload. */
638
+ type OverloadedName<F extends AnyFunctions> = { [K in keyof F]: true extends IsUnion<F[K]> ? K : never; }[keyof F] & string;
639
+ type PlainName<F extends AnyFunctions> = Exclude<Extract<keyof F, string>, OverloadedName<F>>;
640
+ /** Overloaded names with an overload that a call without arguments matches. */
641
+ type NoArgName<F extends AnyFunctions> = { [K in OverloadedName<F>]: Record<never, never> extends F[K]["Args"] ? K : never; }[OverloadedName<F>];
642
+ /** Property names without index signatures (`Record<PropertyKey, never>` has none). */
643
+ type KnownKeys<T> = keyof { [K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: 0; };
644
+ type RequiredKeys<T> = { [K in keyof T]-?: Record<never, never> extends Pick<T, K> ? never : K; }[keyof T];
645
+ /**
646
+ * The overloads PostgREST can pick for arguments `A`: every name in `A` is an
647
+ * argument, and every argument without a default is in `A`. Overloads with
648
+ * the same names stay a union, since the call can't tell them apart.
649
+ */
650
+ type MatchingOverload<O, A> = A extends unknown ? O extends {
651
+ readonly Args: infer OA;
652
+ } ? [Exclude<keyof A, KnownKeys<OA>>] extends [never] ? [Exclude<RequiredKeys<OA>, keyof A>] extends [never] ? O : never : never : never : never;
653
+ type OverloadReturns<O, A> = [MatchingOverload<O, A>] extends [never] ? O extends {
654
+ readonly Returns: infer R;
655
+ } ? R : never : MatchingOverload<O, A> extends {
656
+ readonly Returns: infer R;
657
+ } ? R : never;
658
+ /**
659
+ * `A` when its names pick an overload, with a name that no overload takes
660
+ * typed `never`, and `never` when the names mix overloads.
661
+ */
662
+ type OverloadArgs<O extends {
663
+ readonly Args: unknown;
664
+ }, A> = A & NoInfer<[MatchingOverload<O, A>] extends [never] ? never : { readonly [K in Exclude<keyof A, O extends {
665
+ readonly Args: infer OA;
666
+ } ? KnownKeys<OA> : never>]: never; }>;
667
+ type RawRpcOptions = Omit<RpcOptions<unknown>, "returns" | "raw"> & {
668
+ readonly raw: true;
669
+ };
461
670
  interface DbHelpers<M extends AnyModels, F extends AnyFunctions, E, C> {
462
671
  /** The underlying client (supabase-js), for anything the repository lacks. */
463
672
  readonly $client: C;
464
673
  readonly $executor: Executor;
465
674
  readonly $context: RequestContext;
466
- /** Calls a database function with typed arguments. */
467
- $rpc<N extends Extract<keyof F, string>, R = F[N]["Returns"]>(name: N, ...rest: [...RpcArgs<F, N>, options?: RpcOptions<R>]): AsyncResult<R>;
675
+ /**
676
+ * Calls a database function with typed arguments. Rows of a table or a
677
+ * `returns table (...)` record come back in the configured casing, with
678
+ * codecs applied; `raw: true` returns them as PostgREST sent them.
679
+ */
680
+ $rpc<N extends PlainName<F>>(name: N, ...rest: [...RpcArgs<F, N>, options: RawRpcOptions]): AsyncResult<unknown>;
681
+ $rpc<N extends PlainName<F>, R = F[N]["Returns"]>(name: N, ...rest: [...RpcArgs<F, N>, options?: RpcOptions<R>]): AsyncResult<R>;
682
+ /**
683
+ * An overloaded function: the arguments match one overload, and the
684
+ * result is the return type of the overloads with those argument names.
685
+ */
686
+ $rpc<N extends OverloadedName<F>, const A extends F[N]["Args"]>(name: N, args: OverloadArgs<F[N], A>, options: RawRpcOptions): AsyncResult<unknown>;
687
+ $rpc<N extends OverloadedName<F>, const A extends F[N]["Args"], R = OverloadReturns<F[N], A>>(name: N, args: OverloadArgs<F[N], A>, options?: RpcOptions<R>): AsyncResult<R>;
688
+ $rpc<N extends NoArgName<F>>(name: N): AsyncResult<OverloadReturns<F[N], Record<never, never>>>;
468
689
  /** Same connection with more context (for example a tenant). */
469
690
  $with(context: RequestContext): Db<M, F, E, C>;
470
691
  /**
471
692
  * Same connection without plugins: no tenant scoping, soft-delete filters,
472
693
  * timestamps, rules or executor wrappers. For migrations and admin tools.
694
+ * `keep` names plugins to leave installed, such as tracing (`keep: ["otel"]`);
695
+ * a name that isn't installed throws a `TypeError`.
473
696
  */
474
- $withoutPlugins(): Db<M, F, unknown, C>;
697
+ $withoutPlugins(options?: {
698
+ readonly keep?: readonly string[];
699
+ }): Db<M, F, unknown, C>;
475
700
  /**
476
701
  * The repository for a table named at runtime (MCP tools, admin screens).
477
702
  * Throws a `TypeError` for unknown names.
@@ -499,10 +724,10 @@ interface DbHelpers<M extends AnyModels, F extends AnyFunctions, E, C> {
499
724
  }): AsyncResult<{ -readonly [K in keyof S]: InferResult<S[K]>; }>;
500
725
  /**
501
726
  * The `k` rows nearest to `vector`, nearest first, through the
502
- * `search_<table>` function of the `vector-search` SQL kit module. RLS
727
+ * `search_<table>` function of the `vector-search` SQL module. RLS
503
728
  * applies inside the search; `where` filters the `k` rows it returns.
504
729
  */
505
- $search<T extends TableKey<M>, const A extends SearchArgs<M, T>>(table: T, args: A): AsyncResult<Payload<M, T, A>[]>;
730
+ $search<T extends TableKey<M>, const A extends SearchArgs<M, T>>(table: T, args: A): AsyncResult<(Payload<M, T, A> & SearchScore<A>)[]>;
506
731
  }
507
732
  type Db<M extends AnyModels, F extends AnyFunctions, E, C> = { readonly [T in TableKey<M>]: RepositoryOf<M, T, E>; } & DbHelpers<M, F, E, C>;
508
733
  //#endregion
@@ -553,18 +778,53 @@ interface PostgrestClientLike {
553
778
  schema?(schema: never): unknown;
554
779
  rpc?(fn: never, args?: never): unknown;
555
780
  }
556
- declare function postgrestExecutor(client: PostgrestClientLike): Executor;
781
+ interface PostgrestExecutorOptions extends PostgrestCompileOptions {
782
+ /**
783
+ * The longest query string a read may send, in characters. A longer read
784
+ * is split along its longest `in` list into reads that fit, or fails with
785
+ * `invalid_request` when it can't be split. Defaults to 6000, below the
786
+ * 8 KB request line the Supabase API gateway and common proxies accept,
787
+ * or to the client's `db.urlLengthLimit` when that is lower.
788
+ */
789
+ readonly urlLengthLimit?: number;
790
+ /**
791
+ * Aborts each request after this many milliseconds with a `timeout`
792
+ * error. A call's own `timeout` replaces it. Off by default.
793
+ */
794
+ readonly timeout?: number;
795
+ /**
796
+ * postgrest-js retries of idempotent requests (GET and HEAD) on network
797
+ * errors, 503 and 520. A call's own `retry` replaces it. Defaults to the
798
+ * client's setting, which is on.
799
+ */
800
+ readonly retry?: boolean;
801
+ }
802
+ /** Executes IR operations through a supabase-js client. */
803
+ declare function postgrestExecutor(client: PostgrestClientLike, options?: PostgrestExecutorOptions): Executor;
557
804
  /** The compiled plan for an operation; useful for debugging and tests. */
558
- declare function explainPostgrest(op: Operation): PostgrestPlan;
805
+ declare function explainPostgrest(op: Operation, options?: PostgrestCompileOptions): PostgrestPlan;
559
806
  //#endregion
560
807
  //#region src/core/define.d.ts
561
808
  interface SupabaseOptions {
562
809
  /** Clock used by plugins (timestamps, soft delete). */
563
810
  readonly now?: () => Temporal.Instant;
811
+ /**
812
+ * The `Temporal` namespace, for runtimes without a global one (Hermes,
813
+ * Node 24) when patching `globalThis` is not an option:
814
+ * `import { Temporal } from 'temporal-polyfill'`. Defaults to `globalThis.Temporal`.
815
+ */
816
+ readonly temporal?: typeof Temporal;
564
817
  /** Extra error mappers, run before plugin mappers. */
565
818
  readonly errors?: readonly ErrorMapper[];
566
819
  /** Receives errors from event handlers, hooks and cache adapters. Defaults to `console`. */
567
820
  readonly logger?: Logger;
821
+ /**
822
+ * Debug records on `logger` for every query, database error, session
823
+ * refresh and auth resolution: table, operation, outcome, timing and row
824
+ * count, never tokens, row values, filters or error messages. Off by
825
+ * default; with it off, no handler runs.
826
+ */
827
+ readonly diagnostics?: boolean;
568
828
  /** RPCs that change tables, keyed by function name. Prefer `betterSupabase.defineRpc()`. */
569
829
  readonly rpc?: Readonly<Record<string, RpcDefinition>>;
570
830
  /** Builds the error `.orThrow()` throws. Prefer `betterSupabase.mapError()`. */
@@ -579,6 +839,20 @@ interface SupabaseOptions {
579
839
  * and logs a warning once per table. Defaults to 1000, the hosted default.
580
840
  */
581
841
  readonly maxRows?: number;
842
+ /**
843
+ * The longest query string one PostgREST read sends, like supabase-js
844
+ * `db.urlLengthLimit`. Longer reads are split along their longest `in`
845
+ * list. Defaults to 6000 characters, or the client's `db.urlLengthLimit`
846
+ * when that is lower.
847
+ */
848
+ readonly urlLengthLimit?: number;
849
+ /**
850
+ * The PostgREST version the app talks to, as in `postgrestVersion` in
851
+ * the better-supabase config. `maxAffected` needs 13 or later, and fails
852
+ * with `invalid_request` before any request on an older version.
853
+ * Defaults to `"13"`.
854
+ */
855
+ readonly postgrestVersion?: string;
582
856
  }
583
857
  interface ConnectOptions {
584
858
  /** Also records this connection's calls into a request-wide recorder. */
@@ -588,6 +862,16 @@ interface ConnectOptions {
588
862
  * stays the client (e.g. routing reads to a replica).
589
863
  */
590
864
  readonly executor?: Executor;
865
+ /**
866
+ * Fails each repository call and `$rpc` after this many milliseconds with
867
+ * a `timeout` error. A call's own `timeout` replaces it.
868
+ */
869
+ readonly timeout?: number;
870
+ /**
871
+ * postgrest-js retries of idempotent requests for this connection; a
872
+ * call's own `retry` replaces it. Defaults to the client's setting.
873
+ */
874
+ readonly retry?: boolean;
591
875
  }
592
876
  interface RpcDefinition {
593
877
  /** App keys of the tables the function writes; their cached reads are invalidated on success. */
@@ -605,6 +889,8 @@ declare class BetterSupabase<M extends AnyModels = AnyModels, D = unknown, F ext
605
889
  readonly options: SupabaseOptions;
606
890
  constructor(schema: Schema<M, D, F>, plugins?: readonly AnyPlugin[], options?: SupabaseOptions, events?: EventHub);
607
891
  get meta(): SchemaMeta;
892
+ /** The `Temporal` this definition uses: the `temporal` option, else the global. */
893
+ get temporal(): typeof Temporal | undefined;
608
894
  /** The schema set by `claims()`; its output types `session.claims`. */
609
895
  get claimsSchema(): StandardSchemaV1<unknown, C> | undefined;
610
896
  /** The schema set by `userMetadata()`; its output types `session.profile`. */
@@ -675,6 +961,12 @@ declare class BetterSupabase<M extends AnyModels = AnyModels, D = unknown, F ext
675
961
  */
676
962
  connect<C extends PostgrestClientLike>(client: C, context?: RequestContext, options?: ConnectOptions): Db<M, F, E, C>;
677
963
  connect(executor: Executor, context?: RequestContext, options?: ConnectOptions): Db<M, F, E, undefined>;
964
+ /**
965
+ * The `postgrestExecutor` options this definition implies
966
+ * (`urlLengthLimit`, `postgrestVersion`), for adapters that build their
967
+ * own executor and should chunk reads the same way.
968
+ */
969
+ executorOptions(): PostgrestExecutorOptions;
678
970
  }
679
971
  /**
680
972
  * Creates the data-layer definition from the generated `schema`.
@@ -685,4 +977,4 @@ declare class BetterSupabase<M extends AnyModels = AnyModels, D = unknown, F ext
685
977
  */
686
978
  declare function defineSupabase<M extends AnyModels, D, F extends AnyFunctions>(schema: Schema<M, D, F>, options?: SupabaseOptions): BetterSupabase<M, D, F>;
687
979
  //#endregion
688
- export { Specs as $, RpcOptions as A, ReadSet as B, FindExt as C, WhereInput as Ct, Repository as D, PageOf as E, EMPTY_STATS as F, ReadSetParams as G, ReadSetParamType as H, StatsRecorder as I, isReadSet as J, ReadSetResult as K, recordStats as L, UpsertArgs as M, WriteArgs as N, RepositoryOf as O, DbStats as P, ReadMethod as Q, SearchArgs as R, DeleteExt as S, SortDirection as St, OffsetPageArgs as T, ReadSetParamTypes as U, ReadSetOptions as V, ReadSetParamValue as W, InferResult as X, readSetTables as Y, QuerySpec as Z, CursorPage as _, OrderByInput as _t, defineSupabase as a, AggregateRow as at, DbHelpers as b, RelationMeasureArg as bt, postgrestExecutor as c, FieldFilter as ct, MemoryCache as d, IncludeArg as dt, TableSpecs as et, cacheTargetOf as f, IncludeArgs as ft, ConflictTarget as g, OrderByArg as gt, rpcCacheTargets as h, NumericMeasureArg as ht, SupabaseOptions as i, AggregateResult as it, UpdateArgs as j, Returned as k, CacheAdapter as l, FindFirstArgs as lt, rowKey as m, MeasureKey as mt, ConnectOptions as n, specTables as nt, PostgrestClientLike as o, CountArg as ot, memoryCache as p, MeasureArg as pt, defineReadSet as q, RpcDefinition as r, AggregateArgs as rt, explainPostgrest as s, CountArgs as st, BetterSupabase as t, isQuerySpec as tt, CacheTarget as u, FindManyArgs as ut, CursorPageArgs as v, Payload as vt, OffsetPage as w, DeleteArgs as x, SelectArg as xt, Db as y, ReadArgs as yt, InferReadSetParams as z };
980
+ export { ReadSetResult as $, PageOf as A, OrderByArg as At, DbStats as B, DeleteExt as C, IncludeArg as Ct, OffsetPage as D, MeasureKey as Dt, ManyReturningArgs as E, MeasureArg as Et, UpdateArgs as F, RequestArgs as Ft, InferReadSetParams as G, StatsRecorder as H, UpsertArgs as I, SelectArg as It, ReadSetOptions as J, ReadSet as K, UpsertManyArgs as L, SortDirection as Lt, RepositoryOf as M, Payload as Mt, Returned as N, ReadArgs as Nt, OffsetPageArgs as O, MutableWhere as Ot, RpcOptions as P, RelationMeasureArg as Pt, ReadSetParams as Q, WriteArgs as R, SortSpec as Rt, DeleteArgs as S, FindOnlyArgs as St, ManyResult as T, JsonPathOps as Tt, recordStats as U, EMPTY_STATS as V, SearchArgs as W, ReadSetParamTypes as X, ReadSetParamType as Y, ReadSetParamValue as Z, ConflictTarget as _, CountArg as _t, defineSupabase as a, ReadMethod as at, Db as b, FindFirstArgs as bt, explainPostgrest as c, isQuerySpec as ct, CacheTarget as d, AggregateOrderBy as dt, defineReadSet as et, MemoryCache as f, AggregateOrderByArg as ft, rpcCacheTargets as g, ColumnOrderByArg as gt, rowKey as h, ColumnOrderBy as ht, SupabaseOptions as i, QuerySpec as it, Repository as j, OrderByInput as jt, OffsetRangeArgs as k, NumericMeasureArg as kt, postgrestExecutor as l, specTables as lt, memoryCache as m, AggregateRow as mt, ConnectOptions as n, readSetTables as nt, PostgrestClientLike as o, Specs as ot, cacheTargetOf as p, AggregateResult as pt, ReadSetAuth as q, RpcDefinition as r, InferResult as rt, PostgrestExecutorOptions as s, TableSpecs as st, BetterSupabase as t, isReadSet as tt, CacheAdapter as u, AggregateArgs as ut, CursorPage as v, CountArgs as vt, FindExt as w, IncludeArgs as wt, DbHelpers as x, FindManyArgs as xt, CursorPageArgs as y, FieldFilter as yt, WriteManyArgs as z, WhereInput as zt };