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,17 +1,29 @@
1
- import { P as TableKey, _ as Insert, j as SchemaMeta, n as AnyFunctions, r as AnyModels, z as Update } from "../types-Dnf_wRDz.js";
2
- import { r as Executor } from "../executor-BunPOO-k.js";
3
- import { P as DbStats, l as CacheAdapter, t as BetterSupabase, y as Db } from "../define-Bp_BZa5h.js";
4
- import { g as RequestContext, n as AnyPlugin } from "../plugin-o144f322.js";
5
- import { b as ResolvedConfig, d as Generator, f as GeneratorInput } from "../config-T_ejwyd3.js";
6
- import { t as SqlClient } from "../executor-Cghdstwu.js";
7
- import { t as BetterPostgres } from "../pool-C9voM4Kw.js";
8
- import { n as AuthResolver } from "../resolve-C15TJq77.js";
9
- import { o as SupportSessionStore } from "../support-DT-OhSxD.js";
10
- import { r as EventSink, t as CloudEvent } from "../index-DOESKG27.js";
11
- import { p as QueueBackend } from "../queue-BYUCjr59.js";
12
- import { t as NotificationChannel } from "../channel-FQW-CnGR.js";
13
- import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-Cc6r98SW.js";
1
+ import { H as Update, L as TableKey, P as SchemaMeta, a as AnyModels, i as AnyFunctions, x as Insert } from "../types-6BdhkmZe.js";
2
+ import { r as Executor } from "../executor-DvsBbNBS.js";
3
+ import { t as SqlClient } from "../executor-DbvExCFC.js";
4
+ import { m as RequestContext, n as AnyPlugin } from "../plugin-FGY8UhYm.js";
5
+ import { n as AuthResolver } from "../resolve-KW8nCeL6.js";
6
+ import { a as CredentialSubject, i as CredentialRef, r as CredentialProvider } from "../provider-BH5UWZJ6.js";
7
+ import { k as QueueBackend } from "../queue-CLJurhdy.js";
8
+ import { n as Embedder } from "../knowledge-BXBbT0Tr.js";
9
+ import { o as StreamStore } from "../store-CGjgWu5n.js";
10
+ import { B as DbStats, b as Db, t as BetterSupabase, u as CacheAdapter } from "../define-CJJkkr1-.js";
11
+ import { r as EventSink, t as CloudEvent } from "../cloud-event-C1JCc1bH.js";
12
+ import { t as BetterPostgres } from "../pool-CAu2nLrL.js";
13
+ import { R as SupportSessionStore, i as ServerContext, o as ServerOptions } from "../server-CeVeeXwz.js";
14
+ import { s as Impersonator } from "../mfa-Daak8ukG.js";
15
+ import { n as SessionActor, r as SessionDelegation } from "../actor-CQTlc1Hh.js";
16
+ import { r as GuardOptions } from "../respond-DoBijysA.js";
17
+ import { i as AuthorizationProvider } from "../authorization-BFCqamMs.js";
18
+ import { i as AiTaskRun, o as AiTaskRunner, t as AiTask } from "../ai-tasks-Cd1HMFvB.js";
19
+ import { D as ResolvedConfig, _ as GeneratorInput, h as Generator, v as GeneratorModel } from "../config-D44Y7PAv.js";
20
+ import { a as BlockTransportMiddleware } from "../block-hooks-plbZ0AbJ.js";
21
+ import { t as NotificationChannel } from "../channel-_2Mx1Oyu.js";
22
+ import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-4y62_VIi.js";
23
+ import { T as WorkflowGraph, i as BuilderStarter, r as BuilderStartCall, s as GraphCompiler } from "../types-BI-0Sl2v.js";
24
+ import { t as EveDocumentBackend } from "../eve-gT2Fpjut.js";
14
25
  import { SupabaseClient } from "@supabase/supabase-js";
26
+ import { Message, StateAdapter } from "chat";
15
27
  import { webcrypto } from "node:crypto";
16
28
  //#region src/testing/jwt.d.ts
17
29
  interface TestJwtClaims {
@@ -111,19 +123,24 @@ interface TestUser<M extends AnyModels, F extends AnyFunctions, E> {
111
123
  export declare function asUser<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, claims: TestJwtClaims, stack?: LocalStack): Promise<TestUser<M, F, E>>;
112
124
  //#endregion
113
125
  //#region src/testing/budget.d.ts
126
+ /** The part of a Playwright `Request` the budget check reads. */
127
+ interface BudgetRequest {
128
+ headers(): Record<string, string>;
129
+ }
114
130
  /** The part of a Playwright `Response` the budget check reads. */
115
131
  interface BudgetResponse {
116
132
  url(): string;
117
133
  headers(): Record<string, string>;
134
+ /** Never settles when the browser aborts the stream, so `requestfailed` ends the wait too. */
118
135
  finished(): Promise<unknown>;
119
- request(): {
120
- headers(): Record<string, string>;
121
- };
136
+ request(): BudgetRequest;
122
137
  }
123
138
  /** The part of a Playwright `Page` the budget check uses. */
124
139
  interface BudgetPage {
125
140
  on(event: "response", listener: (response: BudgetResponse) => void): unknown;
141
+ on(event: "requestfailed", listener: (request: BudgetRequest) => void): unknown;
126
142
  off(event: "response", listener: (response: BudgetResponse) => void): unknown;
143
+ off(event: "requestfailed", listener: (request: BudgetRequest) => void): unknown;
127
144
  reload(): Promise<unknown>;
128
145
  readonly request: {
129
146
  get(url: string): Promise<{
@@ -142,12 +159,39 @@ interface DbBudgetExpectation {
142
159
  readonly prefetches?: boolean;
143
160
  /** How long to wait for a streamed response to finish. Defaults to 10 seconds. */
144
161
  readonly timeoutMs?: number;
162
+ /**
163
+ * How long to keep listening once `during` resolves and no new response
164
+ * arrives, for renders it started that answer later (the dynamic render
165
+ * after an `instant()` lock releases). Defaults to 500 ms.
166
+ */
167
+ readonly settleMs?: number;
168
+ /**
169
+ * When no document or RSC response carries `x-bs-request-id`, throw
170
+ * (the default) or return `[]`. Cache-only navigations never hit the
171
+ * proxy, so they have no request id.
172
+ */
173
+ readonly requireRequest?: boolean;
145
174
  }
146
175
  interface MeasuredRender {
147
176
  readonly url: string;
148
177
  readonly requestId: string;
149
178
  readonly stats: DbStats;
150
179
  }
180
+ /** What `expectDbBudget` measures on a plain fetch `Response`. */
181
+ interface ResponseBudgetExpectation {
182
+ readonly maxCalls?: number;
183
+ readonly maxWaves?: number;
184
+ /** The header `withDbStats` wrote. Defaults to `x-bs-db-calls`. */
185
+ readonly header?: string;
186
+ }
187
+ /** The calls, waves and time one response's request made. */
188
+ type ResponseDbStats = Pick<DbStats, "calls" | "waves" | "ms">;
189
+ /**
190
+ * Reads the `withDbStats()` header of a fetch `Response` from any adapter
191
+ * (Hono, SvelteKit, oRPC, an edge function) and fails when its request made
192
+ * more database calls or waves than allowed.
193
+ */
194
+ export declare function expectDbBudget(response: Response, expectation: ResponseBudgetExpectation): ResponseDbStats;
151
195
  /**
152
196
  * Measures every document and RSC navigation response during `during` and
153
197
  * fails when one render makes more database calls or waves than allowed.
@@ -155,6 +199,67 @@ interface MeasuredRender {
155
199
  */
156
200
  export declare function expectDbBudget(page: BudgetPage, expectation: DbBudgetExpectation): Promise<readonly MeasuredRender[]>;
157
201
  //#endregion
202
+ //#region src/testing/instant.d.ts
203
+ /** The part of a Playwright `BrowserContext` that `instant()` uses. */
204
+ interface InstantBrowserContext {
205
+ addCookies(cookies: {
206
+ name: string;
207
+ value: string;
208
+ url?: string;
209
+ domain?: string;
210
+ path?: string;
211
+ expires?: number;
212
+ }[]): Promise<void>;
213
+ cookies(): Promise<{
214
+ name: string;
215
+ value: string;
216
+ domain: string;
217
+ path: string;
218
+ }[]>;
219
+ }
220
+ /** The part of a Playwright `Page` that `expectInstant` uses. */
221
+ interface InstantPage extends BudgetPage {
222
+ url(): string;
223
+ context(): InstantBrowserContext;
224
+ }
225
+ /** The part of a Playwright `Locator` that `expectInstant` checks. */
226
+ interface InstantLocator {
227
+ waitFor(options: {
228
+ state: "visible";
229
+ timeout?: number;
230
+ }): Promise<void>;
231
+ count(): Promise<number>;
232
+ }
233
+ interface InstantExpectation {
234
+ /** The navigation to hold, such as a click on a `<Link>`. */
235
+ readonly during: () => Promise<unknown>;
236
+ /** Locators that must be visible while the lock holds. */
237
+ readonly visible: readonly InstantLocator[];
238
+ /** Locators that must not exist while the lock holds. */
239
+ readonly absent?: readonly InstantLocator[];
240
+ /**
241
+ * Fails when one render of the navigation makes more database calls, or
242
+ * when no render reached the proxy (a navigation the client cache served
243
+ * has nothing to measure: drop the budget for it).
244
+ */
245
+ readonly maxCalls?: number;
246
+ /** Fails when one render of the navigation makes more sequential waves. */
247
+ readonly maxWaves?: number;
248
+ /** How long to wait for the render that streams in after the lock releases. Defaults to 500 ms. */
249
+ readonly settleMs?: number;
250
+ /** Scopes the lock on a page that has not loaded yet. */
251
+ readonly baseURL?: string;
252
+ /** How long each `visible` locator may take. Defaults to 5 seconds. */
253
+ readonly timeoutMs?: number;
254
+ }
255
+ /**
256
+ * Runs `during` inside `@next/playwright`'s `instant()`, checks what the
257
+ * prefetched UI shows while the lock holds, and with `maxCalls` or
258
+ * `maxWaves` checks the navigation's database budget like `expectDbBudget`.
259
+ * Needs a `next build` with the testing API exposed.
260
+ */
261
+ export declare function expectInstant(page: InstantPage, expectation: InstantExpectation): Promise<readonly MeasuredRender[]>;
262
+ //#endregion
158
263
  //#region src/testing/conformance.d.ts
159
264
  interface ConformanceCheck {
160
265
  readonly name: string;
@@ -171,10 +276,10 @@ export declare class ConformanceError extends Error {
171
276
  readonly report: ConformanceReport;
172
277
  constructor(report: ConformanceReport);
173
278
  }
174
- type AnySupabase = BetterSupabase<any, any, any, any>;
279
+ type AnySupabase$1 = BetterSupabase<any, any, any, any>;
175
280
  interface TestExecutorOptions {
176
281
  /** A definition whose schema matches the executor's database. Install no plugins. */
177
- readonly betterSupabase: AnySupabase;
282
+ readonly betterSupabase: AnySupabase$1;
178
283
  /** App key of a table with rows the executor can read. Defaults to the first table. */
179
284
  readonly table?: string;
180
285
  /** A row to insert and delete again, to check writes. Skips write checks when omitted. */
@@ -183,7 +288,8 @@ interface TestExecutorOptions {
183
288
  /**
184
289
  * Proves an `Executor` meets the contract: rows keyed by the selection's
185
290
  * aliases, counts, `aborted` errors, failures returned as `Result`s rather
186
- * than thrown, and (with `create`) a write round trip.
291
+ * than thrown, and (with `create`) a write round trip and a `deleteMany`
292
+ * that `maxAffected` refuses without deleting anything.
187
293
  *
188
294
  * ```ts
189
295
  * it('conforms', () => testExecutor(myExecutor, { betterSupabase, table: 'tags', create: { name: 'x' } }));
@@ -248,19 +354,9 @@ interface TestAuthResolverOptions {
248
354
  * closed (`invalid`, never anon) on bad credentials, and never throws.
249
355
  */
250
356
  export declare function testAuthResolver(resolver: AuthResolver, options: TestAuthResolverOptions): Promise<ConformanceReport>;
251
- interface TestGeneratorOptions {
252
- /** Schema metadata to generate from: `schema.meta` from your generated module. */
253
- readonly meta: SchemaMeta;
254
- /** Typegen metadata; defaults to an empty database. */
255
- readonly introspection?: GeneratorInput["introspection"];
256
- readonly extras?: GeneratorInput["extras"];
257
- readonly config?: ResolvedConfig;
258
- }
259
- /** Proves a `Generator` writes relative, unique paths, is deterministic and doesn't mutate its input. */
260
- export declare function testGenerator(generator: Generator, options: TestGeneratorOptions): Promise<ConformanceReport>;
261
357
  interface TestPluginOptions {
262
358
  /** The definition without this plugin. */
263
- readonly betterSupabase: AnySupabase;
359
+ readonly betterSupabase: AnySupabase$1;
264
360
  /** Table to exercise. Defaults to the first table. */
265
361
  readonly table?: string;
266
362
  /** Context the plugin needs, such as `{ tenant }` for `tenant()`. */
@@ -269,8 +365,10 @@ interface TestPluginOptions {
269
365
  readonly create?: Readonly<Record<string, unknown>>;
270
366
  }
271
367
  /**
272
- * Proves a `Plugin` targets API v1, installs cleanly, keeps `transformQuery`
273
- * and `beforeMutation` pure and deterministic, and keeps executors'
368
+ * Proves a `Plugin` targets API v1, installs cleanly on its own and next to
369
+ * the first-party plugins in either order, adds repository methods without
370
+ * replacing base ones, keeps `context`, `transformQuery` and
371
+ * `beforeMutation` pure and deterministic, and keeps executors'
274
372
  * results intact when it wraps them.
275
373
  */
276
374
  export declare function testPlugin(plugin: AnyPlugin, options: TestPluginOptions): Promise<ConformanceReport>;
@@ -326,6 +424,36 @@ interface TenantIsolationOptions<M extends AnyModels> {
326
424
  */
327
425
  export declare function expectTenantIsolation<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, options: TenantIsolationOptions<M>): Promise<ConformanceReport>;
328
426
  //#endregion
427
+ //#region src/testing/claims-fixtures.d.ts
428
+ /**
429
+ * Claims of a Supabase access token where someone acts for the user, with
430
+ * what `toSession` reads from them: `actor`, `impersonator` and
431
+ * `delegation`. Plain data, so another library that reads the same `act`
432
+ * claim (RFC 8693) can test against the same fixtures.
433
+ */
434
+ interface SupabaseClaimFixture {
435
+ /** Without `iat` and `exp`, so a test signer sets them. */
436
+ readonly claims: {
437
+ readonly sub: string;
438
+ readonly [claim: string]: unknown;
439
+ };
440
+ readonly expect: {
441
+ readonly actor: SessionActor;
442
+ /** Set for support and impersonated sessions only. */
443
+ readonly impersonator?: Impersonator;
444
+ /** Set for an `oauth-client` actor only. */
445
+ readonly delegation?: SessionDelegation;
446
+ };
447
+ }
448
+ type SupabaseClaimFixtureName = "supportSession" | "supportSessionReadOnly" | "impersonation" | "oauthClient" | "agentChain";
449
+ /**
450
+ * `supportSession` and `supportSessionReadOnly` are what `supportClaims`
451
+ * mints (`act.kind: "support"`), `impersonation` what `actingAs` mints
452
+ * (`act.kind: "impersonation"`), `oauthClient` a Supabase OAuth server token
453
+ * and `agentChain` an RFC 8693 chain without `kind`.
454
+ */
455
+ export declare const supabaseClaimFixtures: Readonly<Record<SupabaseClaimFixtureName, SupabaseClaimFixture>>;
456
+ //#endregion
329
457
  //#region src/testing/seed.d.ts
330
458
  /** Named rows per table, in app casing: `{ customers: { acme: { ... } } }`. */
331
459
  type SeedFixtures<M extends AnyModels> = { readonly [K in keyof M]?: Readonly<Record<string, M[K]["Insert"]>>; };
@@ -356,13 +484,135 @@ export declare function isSeed(value: unknown): value is Seed<unknown>;
356
484
  */
357
485
  export declare function defineSeed<M extends AnyModels, D, F extends AnyFunctions, E, const S extends SeedFixtures<M>>(betterSupabase: BetterSupabase<M, D, F, E>, fixtures: S & ExactSeed<M, S>): Seed<S>;
358
486
  //#endregion
487
+ //#region src/testing/adapter.d.ts
488
+ type AnySupabase = BetterSupabase<any, any, any, any>;
489
+ /** What the adapter module asks a handler to do with the caller's context. */
490
+ type AdapterRun = (ctx: Pick<ServerContext<AnyModels, AnyFunctions, unknown>, "auth" | "replica">) => unknown;
491
+ interface TestAdapterOptions {
492
+ /** The definition the adapter is built from: the module tracks event sends on its `events`. */
493
+ readonly betterSupabase: AnySupabase;
494
+ /**
495
+ * Builds the adapter with `server` (pass it to `createX(betterSupabase,
496
+ * server)`) and returns a fetch function that answers a request with
497
+ * `run` as the caller, behind a guard that allows `allow`. Translate the
498
+ * module's bare GET into what the adapter expects (a JSON-RPC `tools/call`,
499
+ * an oRPC call) inside the function.
500
+ */
501
+ readonly serve: (server: ServerOptions & {
502
+ readonly exposeErrors: false;
503
+ }, run: AdapterRun, options: {
504
+ readonly allow: NonNullable<GuardOptions["allow"]>;
505
+ readonly waitUntil: (promise: Promise<unknown>) => void;
506
+ }) => (request: Request) => Promise<Response>;
507
+ /** The adapter answers handler errors in a 200 body (MCP tool results), not with HTTP statuses. */
508
+ readonly errorsInBody?: boolean;
509
+ /** The adapter sends no cookies (bearer-only transports such as MCP). */
510
+ readonly cookies?: false;
511
+ }
512
+ /**
513
+ * Proves a framework adapter refuses callers its guard rejects, answers
514
+ * `DbError`s with their status, hides unexpected errors, applies the
515
+ * context's cookies and hands pending event sends to `waitUntil`, the way
516
+ * `handle()` from `better-supabase/server` does.
517
+ */
518
+ export declare function testAdapter(name: string, options: TestAdapterOptions): Promise<ConformanceReport>;
519
+ //#endregion
520
+ //#region src/testing/transport-middleware.d.ts
521
+ /**
522
+ * Proves a `BlockTransportMiddleware` meets the contract: it declares API 1
523
+ * and a name, calls `next` at most once per call, leaves the request it got
524
+ * unchanged, resolves when `next` does, and rejects with the database error
525
+ * `next` rejected with, so blocks still map it to a `DbError`.
526
+ *
527
+ * ```ts
528
+ * it('conforms', () => testBlockTransportMiddleware(statementTimeout('5s')));
529
+ * ```
530
+ */
531
+ export declare function testBlockTransportMiddleware(middleware: BlockTransportMiddleware): Promise<ConformanceReport>;
532
+ //#endregion
533
+ //#region src/testing/authorization-provider.d.ts
534
+ /**
535
+ * Proves an `AuthorizationProvider` targets API v1, is plain JSON, names
536
+ * valid scopes with a tenant scope that has an id type, writes templates
537
+ * that are safe to inline and use the placeholders they need, lists every
538
+ * function its templates call in `requires`, and keeps its token hook,
539
+ * suspension rows, role sources and deciding columns well formed.
540
+ */
541
+ export declare function testAuthorizationProvider(provider: AuthorizationProvider): Promise<ConformanceReport>;
542
+ //#endregion
543
+ //#region src/testing/generator.d.ts
544
+ interface TestGeneratorOptions {
545
+ /** Schema metadata to generate from: `schema.meta` from your generated module. */
546
+ readonly meta: SchemaMeta;
547
+ /** Typegen metadata; defaults to an empty database. */
548
+ readonly introspection?: GeneratorInput["introspection"];
549
+ readonly extras?: GeneratorInput["extras"];
550
+ readonly config?: ResolvedConfig;
551
+ /** Defaults to one built from `meta`, with `unknown` for column types it can't name. */
552
+ readonly model?: GeneratorModel;
553
+ }
554
+ /** Proves a `Generator` writes relative, unique paths, is deterministic and doesn't mutate its input. */
555
+ export declare function testGenerator(generator: Generator, options: TestGeneratorOptions): Promise<ConformanceReport>;
556
+ //#endregion
557
+ //#region src/testing/injectables.d.ts
558
+ interface TestEmbedderOptions {
559
+ /** The texts to embed. Defaults to two short sentences. */
560
+ readonly values?: readonly string[];
561
+ }
562
+ /**
563
+ * Proves an `Embedder` for the knowledge and memory blocks names its model,
564
+ * embeds an empty list to nothing, and returns one finite vector per value,
565
+ * all of the same length on every call. It calls the real model.
566
+ */
567
+ export declare function testEmbedder(embedder: Embedder, options?: TestEmbedderOptions): Promise<ConformanceReport>;
568
+ interface TestAiTaskRunnerOptions {
569
+ /** A task the runner can run, as the ai-tasks block passes it. */
570
+ readonly task: AiTask;
571
+ /** The claimed run for `task`. */
572
+ readonly run: AiTaskRun;
573
+ }
574
+ /**
575
+ * Proves an `AiTaskRunner` resolves with nothing or a chat id and stops when
576
+ * its signal is already aborted. It runs `options.task` for real.
577
+ */
578
+ export declare function testAiTaskRunner(runner: AiTaskRunner, options: TestAiTaskRunnerOptions): Promise<ConformanceReport>;
579
+ interface TestGraphCompilerOptions {
580
+ /** A valid graph for the compiler's engine. */
581
+ readonly graph: WorkflowGraph;
582
+ }
583
+ /**
584
+ * Proves a `GraphCompiler` returns a JSON value (stored with the published
585
+ * version), compiles the same graph to the same value and leaves the graph
586
+ * unchanged.
587
+ */
588
+ export declare function testGraphCompiler(compile: GraphCompiler, options: TestGraphCompilerOptions): Promise<ConformanceReport>;
589
+ interface TestBuilderStarterOptions {
590
+ /** A start call the engine can run. */
591
+ readonly call: BuilderStartCall;
592
+ }
593
+ /**
594
+ * Proves a `BuilderStarter` returns a run id and returns the same id when
595
+ * the same idempotency key starts again. It starts real runs.
596
+ */
597
+ export declare function testBuilderStarter(start: BuilderStarter, options: TestBuilderStarterOptions): Promise<ConformanceReport>;
598
+ interface TestEveDocumentBackendOptions {
599
+ /** The document key to write. Defaults to a random `conformance/` key. */
600
+ readonly key?: string;
601
+ }
602
+ /**
603
+ * Proves an `EveDocumentBackend` reads a missing document as `null`, creates
604
+ * one with `expectedVersion: null`, refuses a stale version and moves the
605
+ * version on every write. It writes `options.key` on the real store.
606
+ */
607
+ export declare function testEveDocumentBackend(backend: EveDocumentBackend, options?: TestEveDocumentBackendOptions): Promise<ConformanceReport>;
608
+ //#endregion
359
609
  //#region src/testing/notification-channel.d.ts
360
610
  interface TestNotificationChannelOptions {
361
611
  /** The recipient's email in the sample message. Defaults to `null`. */
362
612
  readonly email?: string | null;
363
613
  /**
364
- * The delivery ids the provider received, read after the kit sends. When
365
- * given, the kit checks that the sample message arrived.
614
+ * The delivery ids the provider received, read after the module sends. When
615
+ * given, the module checks that the sample message arrived.
366
616
  */
367
617
  readonly received?: () => Promise<readonly string[]>;
368
618
  }
@@ -376,7 +626,7 @@ export declare function testNotificationChannel(channel: NotificationChannel, op
376
626
  //#region src/testing/webhooks.d.ts
377
627
  interface TestWebhookSignerOptions {
378
628
  /**
379
- * The receiver's check, e.g. `verifyWebhook`. When given, the kit checks
629
+ * The receiver's check, e.g. `verifyWebhook`. When given, the module checks
380
630
  * that the signed sample verifies with its secret.
381
631
  */
382
632
  readonly verify?: (request: {
@@ -393,7 +643,7 @@ export declare function testWebhookSigner(signer: WebhookSigner, options?: TestW
393
643
  interface TestWebhookTransportOptions {
394
644
  /** A receiver the transport may POST the sample to, e.g. a local server. */
395
645
  readonly url: string;
396
- /** The bodies the receiver got, read after the kit sends. */
646
+ /** The bodies the receiver got, read after the module sends. */
397
647
  readonly received?: () => Promise<readonly string[]>;
398
648
  }
399
649
  /**
@@ -413,4 +663,60 @@ interface TestWebhookSecretStoreOptions {
413
663
  */
414
664
  export declare function testWebhookSecretStore(store: WebhookSecretStore, options: TestWebhookSecretStoreOptions): Promise<ConformanceReport>;
415
665
  //#endregion
416
- export type { BudgetPage, BudgetResponse, ConformanceCheck, ConformanceReport, DbBudgetExpectation, ExactSeed, IsolationTable, IsolationTables, IsolationTenant, LocalStack, MeasuredRender, Seed, SeedFixtures, SigningJwk, TenantIsolationOptions, TestAuthResolverOptions, TestEventSinkOptions, TestExecutorOptions, TestGeneratorOptions, TestJwtClaims, TestNotificationChannelOptions, TestPluginOptions, TestQueueBackendOptions, TestSigner, TestSupportSessionStoreOptions, TestUser, TestWebhookSecretStoreOptions, TestWebhookSignerOptions, TestWebhookTransportOptions };
666
+ //#region src/testing/chat-state.d.ts
667
+ interface TestChatStateOptions {
668
+ /** Builds a queued message, e.g. `createTestMessage(id, text)` from `@chat-adapter/tests`. */
669
+ readonly message: (id: string, text: string) => Message;
670
+ /** A fresh key or thread id per call. Defaults to `conformance-<uuid>`. */
671
+ readonly id?: () => string;
672
+ /** The TTL the expiry checks use, in milliseconds. Defaults to 300. */
673
+ readonly ttlMs?: number;
674
+ }
675
+ /**
676
+ * Runs the Chat SDK `StateAdapter` contract against `state`: subscriptions,
677
+ * one lock holder at a time with token-checked release and extension, lock
678
+ * and cache TTLs, `setIfNotExists`, list trimming, and a per-thread queue
679
+ * that keeps the newest entries, reports its depth and drops expired ones.
680
+ */
681
+ export declare function testChatState(state: StateAdapter, options: TestChatStateOptions): Promise<ConformanceReport>;
682
+ //#endregion
683
+ //#region src/testing/streams.d.ts
684
+ interface TestStreamStoreOptions {
685
+ /** A fresh stream id per call. Defaults to `conformance-<uuid>`. */
686
+ readonly id?: () => string;
687
+ /** Milliseconds a read may take before the check fails. Defaults to 5000. */
688
+ readonly timeoutMs?: number;
689
+ }
690
+ /**
691
+ * Runs the `StreamStore` contract against `store`: the API version, open
692
+ * once, idempotent appends that refuse gaps, reads from any index that end
693
+ * when the stream closes, a live read that sees later appends, cancel seen by
694
+ * the writer, a closed stream that refuses appends, and a missing stream.
695
+ */
696
+ export declare function testStreamStore(store: StreamStore, options?: TestStreamStoreOptions): Promise<ConformanceReport>;
697
+ //#endregion
698
+ //#region src/testing/credentials.d.ts
699
+ interface TestCredentialProviderOptions {
700
+ /** An app-scoped ref the kit may store into and revoke. */
701
+ readonly ref: CredentialRef;
702
+ /** Stores `value` as the credential `ref` names for `subject`. */
703
+ readonly seed: (ref: CredentialRef, subject: CredentialSubject, value: string) => Promise<void>;
704
+ /** A per-user ref, for providers that keep one credential per user. */
705
+ readonly userRef?: CredentialRef;
706
+ /** A ref with an inbound scheme and a function that signs a request with `secret`. */
707
+ readonly inbound?: {
708
+ readonly ref: CredentialRef;
709
+ readonly sign: (body: string, secret: string) => Promise<Request>;
710
+ };
711
+ }
712
+ /**
713
+ * Runs the `CredentialProvider` contract against `provider`: the API version,
714
+ * an unknown ref, a stored token with its headers, a new value seen after it
715
+ * is stored, separate credentials per user and per tenant (`ref` with a
716
+ * `tenant`, which `seed` must store too), revoke (per user, as the
717
+ * organization purger revokes connector grants), and inbound checks that
718
+ * accept a signed request and refuse a tampered one.
719
+ */
720
+ export declare function testCredentialProvider(provider: CredentialProvider, options: TestCredentialProviderOptions): Promise<ConformanceReport>;
721
+ //#endregion
722
+ export type { AdapterRun, BudgetPage, BudgetRequest, BudgetResponse, ConformanceCheck, ConformanceReport, DbBudgetExpectation, ExactSeed, InstantBrowserContext, InstantExpectation, InstantLocator, InstantPage, IsolationTable, IsolationTables, IsolationTenant, LocalStack, MeasuredRender, ResponseBudgetExpectation, ResponseDbStats, Seed, SeedFixtures, SigningJwk, SupabaseClaimFixture, SupabaseClaimFixtureName, TenantIsolationOptions, TestAdapterOptions, TestAiTaskRunnerOptions, TestAuthResolverOptions, TestBuilderStarterOptions, TestChatStateOptions, TestCredentialProviderOptions, TestEmbedderOptions, TestEveDocumentBackendOptions, TestEventSinkOptions, TestExecutorOptions, TestGeneratorOptions, TestGraphCompilerOptions, TestJwtClaims, TestNotificationChannelOptions, TestPluginOptions, TestQueueBackendOptions, TestSigner, TestStreamStoreOptions, TestSupportSessionStoreOptions, TestUser, TestWebhookSecretStoreOptions, TestWebhookSignerOptions, TestWebhookTransportOptions };