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
@@ -0,0 +1,225 @@
1
+ "use client";
2
+ import { i as refreshRealtimeAuth } from "../../../live-CTAZQkwl.js";
3
+ import { i as useAuth, l as useSupabase } from "../../../hooks-1BTCJsiw.js";
4
+ import { t as watchTopic } from "../../../react-topic-seAWjL3_.js";
5
+ import { REALTIME_SUBSCRIBE_STATES } from "@supabase/supabase-js";
6
+ import { useCallback, useEffect, useRef, useState } from "react";
7
+ //#region src/blocks/inbox/react/index.ts
8
+ function useLoader(load) {
9
+ const [items, setItems] = useState(void 0);
10
+ const [error, setError] = useState(void 0);
11
+ const latest = useRef(load);
12
+ latest.current = load;
13
+ return {
14
+ items,
15
+ setItems,
16
+ error,
17
+ refresh: useCallback(async () => {
18
+ try {
19
+ setItems(await latest.current());
20
+ setError(void 0);
21
+ } catch (cause) {
22
+ setError(cause);
23
+ }
24
+ }, [])
25
+ };
26
+ }
27
+ /**
28
+ * The staff view of an organization's conversations, kept current: loads,
29
+ * then loads again after each ping on `inbox:org:<id>` and on rejoin.
30
+ */
31
+ function useInbox(options) {
32
+ const supabase = useSupabase();
33
+ const auth = useAuth();
34
+ const { items, error, refresh } = useLoader(options.load);
35
+ const [status, setStatus] = useState("closed");
36
+ const onMessage = useRef(options.onMessage);
37
+ onMessage.current = options.onMessage;
38
+ const topic = options.organizationId === null ? null : `${options.topic ?? "inbox"}:org:${options.organizationId}`;
39
+ useEffect(() => {
40
+ if (auth.status !== "signed-in" || topic === null) return;
41
+ refresh();
42
+ return watchTopic(supabase, topic, {
43
+ onMessage: (event, payload) => {
44
+ onMessage.current?.(event, payload);
45
+ refresh();
46
+ },
47
+ onRejoin: () => void refresh(),
48
+ onStatus: setStatus
49
+ });
50
+ }, [
51
+ supabase,
52
+ topic,
53
+ auth.status,
54
+ refresh
55
+ ]);
56
+ return {
57
+ items,
58
+ status,
59
+ error,
60
+ refresh
61
+ };
62
+ }
63
+ /** Joins `topic` for messages and typing pings; returns the function that leaves it. */
64
+ function joinConversation(supabase, topic, handlers) {
65
+ const { userId, typingMs, refresh, setStatus, setTypers } = handlers;
66
+ let closed = false;
67
+ let joined = false;
68
+ const seen = /* @__PURE__ */ new Map();
69
+ const typer = (who, on) => {
70
+ const timer = seen.get(who);
71
+ if (timer !== void 0) clearTimeout(timer);
72
+ if (on) seen.set(who, setTimeout(() => {
73
+ typer(who, false);
74
+ }, typingMs));
75
+ else seen.delete(who);
76
+ setTypers([...seen.keys()]);
77
+ };
78
+ const joinedChannel = supabase.channel(topic, { config: {
79
+ private: true,
80
+ broadcast: { self: false }
81
+ } });
82
+ handlers.channel.current = joinedChannel;
83
+ joinedChannel.on("broadcast", { event: "*" }, (message) => {
84
+ const payload = message["payload"];
85
+ if (message.event === "typing") {
86
+ if (typeof payload !== "object" || payload === null) return;
87
+ const who = "user_id" in payload ? String(payload.user_id) : "";
88
+ if (who !== "" && who !== userId) typer(who, !("typing" in payload) || payload.typing !== false);
89
+ return;
90
+ }
91
+ refresh();
92
+ });
93
+ (async () => {
94
+ setStatus("joining");
95
+ await refreshRealtimeAuth(supabase);
96
+ if (closed) return;
97
+ joinedChannel.subscribe((state) => {
98
+ switch (state) {
99
+ case REALTIME_SUBSCRIBE_STATES.SUBSCRIBED:
100
+ if (joined) refresh();
101
+ joined = true;
102
+ setStatus("subscribed");
103
+ return;
104
+ case REALTIME_SUBSCRIBE_STATES.CLOSED:
105
+ setStatus("closed");
106
+ return;
107
+ case REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR:
108
+ case REALTIME_SUBSCRIBE_STATES.TIMED_OUT:
109
+ setStatus("error");
110
+ return;
111
+ default: throw new Error(`Unknown realtime status ${String(state)}`);
112
+ }
113
+ });
114
+ })();
115
+ return () => {
116
+ closed = true;
117
+ for (const timer of seen.values()) clearTimeout(timer);
118
+ handlers.channel.current = null;
119
+ setTypers([]);
120
+ supabase.removeChannel(joinedChannel);
121
+ setStatus("closed");
122
+ };
123
+ }
124
+ /**
125
+ * One conversation's messages, kept current over `inbox:<id>`, with typing
126
+ * pings between staff and the contact. Notes never reach this topic.
127
+ */
128
+ function useConversation(options) {
129
+ const supabase = useSupabase();
130
+ const auth = useAuth();
131
+ const { items, error, refresh } = useLoader(options.load);
132
+ const [status, setStatus] = useState("closed");
133
+ const [typing, setTypers] = useState([]);
134
+ const channel = useRef(null);
135
+ const userId = auth.user?.id ?? null;
136
+ const typingMs = options.typingMs ?? 5e3;
137
+ const topic = options.conversationId === null ? null : `${options.topic ?? "inbox"}:${options.conversationId}`;
138
+ useEffect(() => {
139
+ if (auth.status !== "signed-in" || topic === null) return;
140
+ refresh();
141
+ return joinConversation(supabase, topic, {
142
+ userId,
143
+ typingMs,
144
+ refresh,
145
+ setStatus,
146
+ setTypers,
147
+ channel
148
+ });
149
+ }, [
150
+ supabase,
151
+ topic,
152
+ auth.status,
153
+ userId,
154
+ typingMs,
155
+ refresh
156
+ ]);
157
+ return {
158
+ items,
159
+ status,
160
+ error,
161
+ refresh,
162
+ typing,
163
+ setTyping: useCallback((on) => {
164
+ if (userId === null) return;
165
+ channel.current?.send({
166
+ type: "broadcast",
167
+ event: "typing",
168
+ payload: {
169
+ user_id: userId,
170
+ typing: on
171
+ }
172
+ });
173
+ }, [userId])
174
+ };
175
+ }
176
+ function storage() {
177
+ try {
178
+ return typeof localStorage === "undefined" ? void 0 : localStorage;
179
+ } catch {
180
+ return;
181
+ }
182
+ }
183
+ /**
184
+ * The visitor side of an in-app inbox: the first message opens the
185
+ * conversation, later ones go into it, and the messages and typing pings
186
+ * stay current. Visitors without an account sign in anonymously first.
187
+ */
188
+ function useInboxWidget(options) {
189
+ const key = options.storageKey === void 0 ? "better-supabase:inbox-widget" : options.storageKey;
190
+ const [conversationId, setConversationId] = useState(() => key === null ? null : storage()?.getItem(key) ?? null);
191
+ const latest = useRef(options);
192
+ latest.current = options;
193
+ const conversation = useConversation({
194
+ conversationId,
195
+ load: () => conversationId === null ? Promise.resolve([]) : latest.current.load(conversationId),
196
+ ...options.topic === void 0 ? {} : { topic: options.topic }
197
+ });
198
+ const { refresh } = conversation;
199
+ const submit = useCallback(async (message) => {
200
+ if (conversationId === null) {
201
+ const id = await latest.current.open(message);
202
+ if (key !== null) storage()?.setItem(key, id);
203
+ setConversationId(id);
204
+ return;
205
+ }
206
+ await latest.current.send(conversationId, message);
207
+ await refresh();
208
+ }, [
209
+ conversationId,
210
+ key,
211
+ refresh
212
+ ]);
213
+ const reset = useCallback(() => {
214
+ if (key !== null) storage()?.removeItem(key);
215
+ setConversationId(null);
216
+ }, [key]);
217
+ return {
218
+ ...conversation,
219
+ conversationId,
220
+ submit,
221
+ reset
222
+ };
223
+ }
224
+ //#endregion
225
+ export { useConversation, useInbox, useInboxWidget };
@@ -0,0 +1,10 @@
1
+ import { a as UseConversationOptions, i as InboxWidgetState, n as InboxListState, o as UseInboxOptions, r as InboxSource, s as UseInboxWidgetOptions, t as ConversationState } from "../../../index-ACiNPN4Z.js";
2
+ //#region src/blocks/inbox/react/server.d.ts
3
+ /** The `react-server` build of `useInbox`: call `inbox.conversations.list()` instead. */
4
+ export declare const useInbox: <T>(options: UseInboxOptions<T>) => InboxListState<T>;
5
+ /** The `react-server` build of `useConversation`: call `inbox.messages.list()` instead. */
6
+ export declare const useConversation: <T>(options: UseConversationOptions<T>) => ConversationState<T>;
7
+ /** The `react-server` build of `useInboxWidget`. */
8
+ export declare const useInboxWidget: <T>(options: UseInboxWidgetOptions<T>) => InboxWidgetState<T>;
9
+ //#endregion
10
+ export type { ConversationState, InboxListState, InboxSource, InboxWidgetState, UseConversationOptions, UseInboxOptions, UseInboxWidgetOptions };
@@ -0,0 +1,12 @@
1
+ //#region src/blocks/inbox/react/server.ts
2
+ const clientOnly = (hook, instead) => {
3
+ throw new Error(`better-supabase: ${hook}() runs in Client Components only. In Server Components call ${instead} instead.`);
4
+ };
5
+ /** The `react-server` build of `useInbox`: call `inbox.conversations.list()` instead. */
6
+ const useInbox = () => clientOnly("useInbox", "`inbox.conversations.list()`");
7
+ /** The `react-server` build of `useConversation`: call `inbox.messages.list()` instead. */
8
+ const useConversation = () => clientOnly("useConversation", "`inbox.messages.list()`");
9
+ /** The `react-server` build of `useInboxWidget`. */
10
+ const useInboxWidget = () => clientOnly("useInboxWidget", "`inbox.messages.list()`");
11
+ //#endregion
12
+ export { useConversation, useInbox, useInboxWidget };
@@ -0,0 +1,65 @@
1
+ import { i as sqlTransport, n as RpcClient, r as rpcTransport, t as BlockTransport } from "../block-transport-DvaoPuZ9.js";
2
+ import { a as EventHub } from "../events-DWDhx77e.js";
3
+ import { r as CredentialProvider } from "../provider-BH5UWZJ6.js";
4
+ import { i as CursorPageOptions, n as BlockOptions } from "../block-helpers-CKtbFcRv.js";
5
+ import { f as AiFiles } from "../types-C05bxW-W.js";
6
+ import { n as FinalRunState, r as RunState, t as FINAL_RUN_STATES } from "../run-state-CPo-1X2B.js";
7
+ import { r as EventSink } from "../cloud-event-C1JCc1bH.js";
8
+ import { r as AiTaskOutcome } from "../ai-tasks-Cd1HMFvB.js";
9
+ import { a as BlockTransportMiddleware, c as ExtendBlockTools, d as extendBlock, f as withBlockHooks, i as BlockMethodName, l as WithBlockHooksOptions, n as BlockHooks, o as BlockTransportRequest, p as wrapTransport, r as BlockMethodHooks, s as ExtendBlockOptions, t as BlockHookInfo, u as defineTransportMiddleware } from "../block-hooks-plbZ0AbJ.js";
10
+ import { n as FieldsOf, r as blockFields, t as BlockFields } from "../block-fields-SJ6fEf3o.js";
11
+ //#region src/blocks/create-blocks.d.ts
12
+ /** The CloudEvents `source` of block events that `createBlocks` forwards. */
13
+ export declare const BLOCK_EVENT_SOURCE = "/better-supabase/blocks";
14
+ interface CreateBlocksOptions extends BlockOptions {
15
+ /** Connectors, ai-providers and the builder store their secrets here. */
16
+ readonly credentials?: CredentialProvider;
17
+ /** `betterSupabase.events`, for the block events of the blocks that emit them. */
18
+ readonly events?: EventHub;
19
+ /**
20
+ * Where block events go, such as `auditLog.sink()`. Needs `events`; the
21
+ * forwarding lasts until `close()`, so build these blocks once rather than
22
+ * per request.
23
+ */
24
+ readonly audit?: EventSink;
25
+ /**
26
+ * The notification type ai-tasks sends for each finished run, through the
27
+ * `notifications` block. Its data is `{ taskId, runId, ok, error?, chatId? }`.
28
+ */
29
+ readonly aiTaskNotification?: string;
30
+ }
31
+ /** What each block factory receives: the shared options and its siblings. */
32
+ interface BlockContext extends BlockOptions {
33
+ readonly credentials?: CredentialProvider;
34
+ readonly events?: EventHub;
35
+ /** The `aiFiles` block, for knowledge. */
36
+ readonly files?: AiFiles;
37
+ /** Sends `aiTaskNotification` through the `notifications` block, for ai-tasks. */
38
+ readonly notify?: (outcome: AiTaskOutcome) => unknown;
39
+ }
40
+ /** Builds one block, usually a block creator such as `createOrganizations`. */
41
+ type BlockFactory<T = unknown> = (context: BlockContext) => T;
42
+ type BlockFactories = Readonly<Record<string, BlockFactory>> & {
43
+ readonly aiFiles?: BlockFactory<AiFiles>;
44
+ };
45
+ type BuiltBlocks<F extends BlockFactories> = { readonly [K in keyof F]: F[K] extends BlockFactory<infer T> ? T : never; };
46
+ /** `withBlockHooks` hooks for each block, keyed by the names in `factories`. */
47
+ type BlocksHooks<F extends BlockFactories> = { readonly [K in keyof F]?: BlockHooks<BuiltBlocks<F>[K]>; };
48
+ type Blocks<F extends BlockFactories> = BuiltBlocks<F> & {
49
+ /** Stops forwarding block events to `audit`. */
50
+ close(): void;
51
+ };
52
+ /**
53
+ * Builds the blocks in `factories` with one set of options, and wires the
54
+ * siblings they share: the `aiFiles` block into knowledge, `credentials`
55
+ * into connectors, ai-providers and the builder, the `notifications` block
56
+ * into ai-tasks (with `aiTaskNotification`), and block events into `audit`.
57
+ * Only the blocks you pass are imported, so the rest stay out of the bundle.
58
+ * `hooks` wraps each block's methods with `withBlockHooks`, so siblings that
59
+ * call a block (ai-tasks sending notifications) go through its hooks too.
60
+ */
61
+ export declare function createBlocks<const F extends BlockFactories>(options: CreateBlocksOptions & {
62
+ readonly hooks?: NoInfer<BlocksHooks<F>>;
63
+ }, factories: F): Blocks<F>;
64
+ //#endregion
65
+ export { type BlockContext, type BlockFactories, type BlockFactory, type BlockFields, type BlockHookInfo, type BlockHooks, type BlockMethodHooks, type BlockMethodName, type BlockOptions, type BlockTransport, type BlockTransportMiddleware, type BlockTransportRequest, type Blocks, type BlocksHooks, type CreateBlocksOptions, type CursorPageOptions, type ExtendBlockOptions, type ExtendBlockTools, FINAL_RUN_STATES, type FieldsOf, type FinalRunState, type RpcClient, type RunState, type WithBlockHooksOptions, blockFields, defineTransportMiddleware, extendBlock, rpcTransport, sqlTransport, withBlockHooks, wrapTransport };
@@ -0,0 +1,77 @@
1
+ import { n as forwardBlockEvents } from "../cloud-event-BnmD5fb9.js";
2
+ import { n as rpcTransport, r as sqlTransport } from "../block-transport-BLr-ZgLc.js";
3
+ import { d as isRecord } from "../block-helpers-DWHxHsEQ.js";
4
+ import { i as wrapTransport, n as extendBlock, r as withBlockHooks, t as defineTransportMiddleware } from "../block-hooks-BmjMyXTa.js";
5
+ import { t as FINAL_RUN_STATES } from "../run-state-CgBKzYMW.js";
6
+ import { t as blockFields } from "../block-fields-GFkxl4dP.js";
7
+ //#region src/blocks/create-blocks.ts
8
+ /** The CloudEvents `source` of block events that `createBlocks` forwards. */
9
+ const BLOCK_EVENT_SOURCE = "/better-supabase/blocks";
10
+ const isNotificationSender = (value) => isRecord(value) && typeof value["send"] === "function";
11
+ /**
12
+ * Builds the blocks in `factories` with one set of options, and wires the
13
+ * siblings they share: the `aiFiles` block into knowledge, `credentials`
14
+ * into connectors, ai-providers and the builder, the `notifications` block
15
+ * into ai-tasks (with `aiTaskNotification`), and block events into `audit`.
16
+ * Only the blocks you pass are imported, so the rest stay out of the bundle.
17
+ * `hooks` wraps each block's methods with `withBlockHooks`, so siblings that
18
+ * call a block (ai-tasks sending notifications) go through its hooks too.
19
+ */
20
+ function createBlocks(options, factories) {
21
+ const { credentials, events, audit, aiTaskNotification, hooks, ...shared } = options;
22
+ if (audit !== void 0 && events === void 0) throw new TypeError("createBlocks: `audit` needs `events` to forward");
23
+ const built = /* @__PURE__ */ new Map();
24
+ const building = /* @__PURE__ */ new Set();
25
+ const notify = aiTaskNotification === void 0 || factories["notifications"] === void 0 ? void 0 : (outcome) => {
26
+ const notifications = build("notifications");
27
+ if (!isNotificationSender(notifications)) throw new TypeError("The notifications block has no send method");
28
+ return notifications.send(aiTaskNotification, {
29
+ recipients: [outcome.task.userId],
30
+ tenant: outcome.task.organizationId,
31
+ key: `ai-task-run:${outcome.run.id}`,
32
+ data: {
33
+ taskId: outcome.task.id,
34
+ runId: outcome.run.id,
35
+ ok: outcome.ok,
36
+ ...outcome.error === void 0 ? {} : { error: outcome.error },
37
+ ...outcome.chatId === void 0 ? {} : { chatId: outcome.chatId }
38
+ }
39
+ });
40
+ };
41
+ function contextFor(name) {
42
+ const files = name === "aiFiles" || factories.aiFiles === void 0 ? void 0 : build("aiFiles");
43
+ return {
44
+ ...shared,
45
+ ...credentials === void 0 ? {} : { credentials },
46
+ ...events === void 0 ? {} : { events },
47
+ ...files === void 0 ? {} : { files },
48
+ ...notify === void 0 ? {} : { notify }
49
+ };
50
+ }
51
+ function build(name) {
52
+ if (built.has(name)) return built.get(name);
53
+ const factory = factories[name];
54
+ if (factory === void 0) throw new TypeError(`No block named "${name}"`);
55
+ if (building.has(name)) throw new TypeError(`The "${name}" block depends on itself`);
56
+ building.add(name);
57
+ try {
58
+ const created = factory(contextFor(name));
59
+ const blockHooks = hooks?.[name];
60
+ const block = blockHooks !== void 0 && isRecord(created) ? withBlockHooks(created, blockHooks, {
61
+ block: name,
62
+ ...events === void 0 ? {} : { logger: events.logger }
63
+ }) : created;
64
+ built.set(name, block);
65
+ return block;
66
+ } finally {
67
+ building.delete(name);
68
+ }
69
+ }
70
+ const blocks = {};
71
+ for (const name of Object.keys(factories)) blocks[name] = build(name);
72
+ const stop = audit === void 0 || events === void 0 ? void 0 : forwardBlockEvents({ events }, audit, { source: BLOCK_EVENT_SOURCE });
73
+ blocks["close"] = () => stop?.();
74
+ return blocks;
75
+ }
76
+ //#endregion
77
+ export { BLOCK_EVENT_SOURCE, FINAL_RUN_STATES, blockFields, createBlocks, defineTransportMiddleware, extendBlock, rpcTransport, sqlTransport, withBlockHooks, wrapTransport };