better-supabase 0.5.1 → 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 +187 -46
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/{actor-DaJjqD5R.d.ts → actor-CQTlc1Hh.d.ts} +1 -1
  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-C_A-KEAz.js → doctor-B4JOm_ox.js} +991 -317
  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-DMa6M7hV.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect-BKlaIu_M.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-Bo_NLT5n.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-BCtlgDQx.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-Bv7gvfzC.d.ts → config-D44Y7PAv.d.ts} +406 -214
  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-CFPX0Qft.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-BiJZ4t49.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-BgSHAYLf.js → impersonation-DcqaTBHx.js} +21 -6
  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-Daak8ukG.d.ts +54 -0
  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-Bn6HNKUe.js → resolve-D_IcnvFd.js} +248 -240
  385. package/dist/{impersonation-BmePsuxz.d.ts → resolve-KW8nCeL6.d.ts} +29 -69
  386. package/dist/{resource-mqfJW4YF.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-DNRFP7KR.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 -22
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-BR1fJWOB.d.ts → server-CeVeeXwz.d.ts} +224 -85
  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 +313 -212
  413. package/dist/sql/index.js +34872 -6579
  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-wHnK6zp-.js → support-BivNqSpK.js} +32 -11
  430. package/dist/{support-view-B8SlToQX.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 +315 -41
  449. package/dist/testing/index.js +1046 -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-DOYTYwHP.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-CbgObAeb.d.ts → view-DbxLNu8L.d.ts} +22 -5
  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 +461 -20
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +20 -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 +47 -11
  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-CIdSQZad.js +0 -2
  504. package/dist/cli/gen-CjElD1Vw.js +0 -2241
  505. package/dist/cli/read-sets-VQcPgxU9.js +0 -436
  506. package/dist/cli/sql-CVx-1O8G.js +0 -373
  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/index-CWMDdEr4.d.ts +0 -50
  512. package/dist/index-DOESKG27.d.ts +0 -100
  513. package/dist/index-DmXSxbLi.d.ts +0 -62
  514. package/dist/index-Dp2VDwog.d.ts +0 -161
  515. package/dist/jobs/index.d.ts +0 -226
  516. package/dist/jobs/index.js +0 -1007
  517. package/dist/json-schema-m1fiwKgN.js +0 -208
  518. package/dist/kit-events-CTFDfSwb.js +0 -60
  519. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  520. package/dist/kits-CGLLrNPd.js +0 -157
  521. package/dist/mfa-Cu96oJdw.d.ts +0 -30
  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-B1mZ7CgQ.js +0 -660
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-CEPwlw2G.d.ts +0 -89
  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 -122
@@ -0,0 +1,384 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
3
+ import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
4
+ import { i as CursorPageOptions, r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
5
+ //#region src/blocks/inbox/types.d.ts
6
+ /** The channels an inbox can sit on. */
7
+ type InboxChannel = "in_app" | "email" | "slack" | "teams" | "discord" | "telegram" | "whatsapp" | "messenger" | "instagram" | "sms" | "github" | "linear" | "other";
8
+ /** `bot`: the bot answers; `human`: staff answer; `paused`: nobody answers. */
9
+ type BotMode = "bot" | "human" | "paused";
10
+ type ConversationStatus = "open" | "pending" | "snoozed" | "resolved";
11
+ type ConversationPriority = "low" | "normal" | "high" | "urgent";
12
+ type MessageDirection = "inbound" | "outbound";
13
+ type MessageKind = "message" | "note";
14
+ type AuthorType = "contact" | "agent" | "bot" | "system";
15
+ type DeliveryStatus = "queued" | "sent" | "delivered" | "read" | "failed";
16
+ interface InboxRow {
17
+ readonly id: string;
18
+ readonly tenant: string;
19
+ readonly name: string;
20
+ readonly channel: InboxChannel;
21
+ readonly address: string | null;
22
+ readonly installationId: string | null;
23
+ readonly botMode: BotMode;
24
+ readonly settings: Readonly<Record<string, unknown>>;
25
+ readonly createdAt: Temporal.Instant;
26
+ readonly archivedAt: Temporal.Instant | null;
27
+ }
28
+ interface Contact {
29
+ readonly id: string;
30
+ readonly tenant?: string;
31
+ readonly userId: string | null;
32
+ readonly name: string | null;
33
+ readonly email: string | null;
34
+ readonly phone: string | null;
35
+ readonly avatarUrl: string | null;
36
+ readonly metadata?: Readonly<Record<string, unknown>>;
37
+ }
38
+ interface Conversation {
39
+ readonly id: string;
40
+ readonly tenant: string;
41
+ readonly inboxId: string;
42
+ readonly contactId: string;
43
+ readonly subject: string | null;
44
+ readonly status: ConversationStatus;
45
+ readonly priority: ConversationPriority;
46
+ readonly assigneeId: string | null;
47
+ readonly teamId: string | null;
48
+ readonly botMode: BotMode;
49
+ /** The Chat SDK thread id, or `inbox:<id>` for the in-app widget. */
50
+ readonly threadId: string;
51
+ readonly snoozedUntil: Temporal.Instant | null;
52
+ readonly lastMessageAt: Temporal.Instant | null;
53
+ readonly preview: string | null;
54
+ readonly firstResponseAt: Temporal.Instant | null;
55
+ readonly resolvedAt: Temporal.Instant | null;
56
+ readonly metadata: Readonly<Record<string, unknown>>;
57
+ readonly createdAt: Temporal.Instant;
58
+ readonly contact: Contact | null;
59
+ readonly inbox: {
60
+ readonly id: string;
61
+ readonly name: string;
62
+ readonly channel: InboxChannel;
63
+ } | null;
64
+ /** When the caller last read it. */
65
+ readonly lastReadAt: Temporal.Instant | null;
66
+ /** When the contact last read it; `null` for contacts and before they read. */
67
+ readonly contactReadAt: Temporal.Instant | null;
68
+ /** In lists: whether a message arrived after `lastReadAt`. */
69
+ readonly unread?: boolean;
70
+ }
71
+ interface MessageAttachment {
72
+ readonly path?: string;
73
+ readonly url?: string;
74
+ readonly name?: string;
75
+ readonly contentType?: string;
76
+ readonly size?: number;
77
+ }
78
+ interface MessageDelivery {
79
+ readonly channel: string;
80
+ readonly status: DeliveryStatus;
81
+ readonly error: string | null;
82
+ }
83
+ interface InboxMessage {
84
+ readonly id: string;
85
+ readonly conversationId: string;
86
+ readonly direction: MessageDirection;
87
+ readonly kind: MessageKind;
88
+ readonly authorType: AuthorType;
89
+ readonly authorId: string | null;
90
+ readonly body: string;
91
+ readonly format: "text" | "markdown";
92
+ readonly attachments: readonly MessageAttachment[];
93
+ /** Emoji to the actors (user ids or channel ids) who reacted. */
94
+ readonly reactions: Readonly<Record<string, readonly string[]>>;
95
+ readonly mentions: readonly string[];
96
+ readonly externalId: string | null;
97
+ readonly replyTo: string | null;
98
+ readonly metadata: Readonly<Record<string, unknown>>;
99
+ readonly createdAt: Temporal.Instant;
100
+ readonly editedAt: Temporal.Instant | null;
101
+ readonly deletedAt: Temporal.Instant | null;
102
+ readonly delivery?: MessageDelivery | null;
103
+ }
104
+ interface ConversationEvent {
105
+ readonly id: string;
106
+ readonly type: string;
107
+ readonly actorId: string | null;
108
+ readonly data: Readonly<Record<string, unknown>>;
109
+ readonly createdAt: Temporal.Instant;
110
+ }
111
+ interface InboxCounts {
112
+ readonly open: number;
113
+ readonly mine: number;
114
+ readonly unassigned: number;
115
+ readonly unread: number;
116
+ }
117
+ /** What `purgeContact` erased. */
118
+ interface PurgedContact {
119
+ readonly conversations: number;
120
+ readonly messages: number;
121
+ /** Storage paths of the erased messages' attachments, for the caller to remove. */
122
+ readonly attachments: readonly string[];
123
+ }
124
+ interface InboundResult {
125
+ readonly conversationId: string;
126
+ readonly messageId: string;
127
+ readonly contactId: string;
128
+ readonly tenant: string;
129
+ /** A new conversation was opened for the thread. */
130
+ readonly created: boolean;
131
+ /** The message's `externalId` was already stored. */
132
+ readonly duplicate: boolean;
133
+ }
134
+ interface MessageTemplate {
135
+ readonly id: string;
136
+ readonly tenant: string;
137
+ readonly inboxId: string | null;
138
+ readonly name: string;
139
+ readonly channel: string;
140
+ readonly language: string;
141
+ readonly body: string;
142
+ readonly variables: readonly string[];
143
+ /** The provider's approved template name (WhatsApp). */
144
+ readonly externalId: string | null;
145
+ }
146
+ interface StoredInboundEvent {
147
+ readonly id: string;
148
+ readonly adapter: string;
149
+ readonly externalId: string | null;
150
+ readonly inboxId: string | null;
151
+ readonly tenant: string | null;
152
+ readonly headers: Readonly<Record<string, string>>;
153
+ readonly body: string;
154
+ readonly attempts: number;
155
+ readonly receivedAt: Temporal.Instant;
156
+ }
157
+ //#endregion
158
+ //#region src/blocks/inbox/inbox.d.ts
159
+ interface InboxOptions extends BlockTemporalOptions {
160
+ /**
161
+ * `sqlTransport(postgres.asUser(claims))` or `rpcTransport(supabase)` for a
162
+ * member or a contact; over the service role for webhooks and workers.
163
+ */
164
+ readonly transport: BlockTransport;
165
+ /** `sql.modules.inbox.schema`. Defaults to `better_supabase`. */
166
+ readonly schema?: string;
167
+ readonly mappers?: readonly ErrorMapper[];
168
+ }
169
+ interface CreateInboxInput {
170
+ readonly tenant: string;
171
+ readonly name: string;
172
+ readonly channel?: InboxChannel;
173
+ /** The channel's address: a phone number, a Slack team id, an email. */
174
+ readonly address?: string;
175
+ readonly botMode?: BotMode;
176
+ /** `widget: true` lets signed-in visitors open conversations in an in-app inbox. */
177
+ readonly settings?: Readonly<Record<string, unknown>>;
178
+ }
179
+ interface InboxPatch {
180
+ readonly name?: string;
181
+ readonly botMode?: BotMode;
182
+ readonly settings?: Readonly<Record<string, unknown>>;
183
+ readonly address?: string | null;
184
+ readonly installationId?: string | null;
185
+ readonly archived?: boolean;
186
+ }
187
+ interface ContactInput {
188
+ readonly id?: string;
189
+ readonly userId?: string;
190
+ readonly name?: string;
191
+ readonly email?: string;
192
+ readonly phone?: string;
193
+ readonly avatarUrl?: string;
194
+ readonly metadata?: Readonly<Record<string, unknown>>;
195
+ /** The contact's id on a channel, such as a WhatsApp number. */
196
+ readonly identity?: {
197
+ readonly channel: string;
198
+ readonly externalId: string;
199
+ };
200
+ }
201
+ interface MessageInput {
202
+ readonly body: string;
203
+ /** `note` is an internal note only staff see. */
204
+ readonly kind?: "message" | "note";
205
+ readonly format?: "text" | "markdown";
206
+ readonly attachments?: readonly MessageAttachment[];
207
+ /** User ids; those who cannot read the inbox are dropped. */
208
+ readonly mentions?: readonly string[];
209
+ readonly replyTo?: string;
210
+ readonly externalId?: string;
211
+ readonly metadata?: Readonly<Record<string, unknown>>;
212
+ /** For the service: who writes. Defaults to `bot`. */
213
+ readonly authorType?: "contact" | "bot" | "system";
214
+ /** For the service: the caller posts to the channel itself, so no outbound job is queued. */
215
+ readonly deliveredByCaller?: boolean;
216
+ }
217
+ interface StartConversationInput {
218
+ /**
219
+ * A contact id or the fields to find or create one. Leave it out on a
220
+ * widget inbox to open the conversation as the signed-in visitor, staff
221
+ * included.
222
+ */
223
+ readonly contact?: string | ContactInput;
224
+ readonly subject?: string;
225
+ readonly priority?: ConversationPriority;
226
+ readonly botMode?: BotMode;
227
+ /** The Chat SDK thread id. Defaults to `inbox:<conversation id>`. */
228
+ readonly threadId?: string;
229
+ readonly assigneeId?: string;
230
+ readonly metadata?: Readonly<Record<string, unknown>>;
231
+ readonly message?: string | MessageInput;
232
+ }
233
+ interface InboundInput {
234
+ readonly inboxId: string;
235
+ readonly threadId: string;
236
+ readonly contact: ContactInput & {
237
+ /** Shorthand for `identity` on the inbox's channel. */
238
+ readonly externalId?: string;
239
+ };
240
+ readonly message: Omit<MessageInput, "kind" | "authorType">;
241
+ readonly subject?: string;
242
+ /** `outbound` records a message sent from the platform by someone else. */
243
+ readonly direction?: "inbound" | "outbound";
244
+ readonly metadata?: Readonly<Record<string, unknown>>;
245
+ }
246
+ interface ConversationFilter extends CursorPageOptions<Pick<Conversation, "id" | "lastMessageAt">> {
247
+ readonly inboxId?: string;
248
+ /** Defaults to `open`. */
249
+ readonly status?: ConversationStatus | "all";
250
+ readonly assignee?: "me" | "unassigned" | (string & {});
251
+ readonly teamId?: string;
252
+ readonly contactId?: string;
253
+ readonly search?: string;
254
+ /** The last item of the previous page. */
255
+ readonly cursor?: Pick<Conversation, "id" | "lastMessageAt">;
256
+ /** Up to 200. Defaults to 50. */
257
+ readonly limit?: number;
258
+ }
259
+ interface TemplateInput {
260
+ readonly name: string;
261
+ readonly channel: string;
262
+ readonly body: string;
263
+ readonly language?: string;
264
+ readonly inboxId?: string;
265
+ readonly variables?: readonly string[];
266
+ readonly externalId?: string;
267
+ }
268
+ /** The `inbox` SQL module as typed calls. */
269
+ interface Inbox {
270
+ readonly inboxes: {
271
+ create(input: CreateInboxInput): AsyncResult<InboxRow>;
272
+ update(id: string, patch: InboxPatch): AsyncResult<InboxRow>;
273
+ /** `null` removes the member. */
274
+ setMember(inboxId: string, userId: string, role: "agent" | "lead" | null): AsyncResult<boolean>;
275
+ createTeam(tenant: string, name: string): AsyncResult<{
276
+ readonly id: string;
277
+ readonly name: string;
278
+ }>;
279
+ setTeamMember(teamId: string, userId: string, present?: boolean): AsyncResult<boolean>;
280
+ };
281
+ readonly contacts: {
282
+ /** Finds the contact by id, identity, user or email, filling in what is missing. */
283
+ upsert(tenant: string, input: ContactInput): AsyncResult<Contact>;
284
+ };
285
+ readonly conversations: {
286
+ open(inboxId: string, input?: StartConversationInput): AsyncResult<Conversation>;
287
+ list(tenant: string | null, filter?: ConversationFilter): AsyncResult<readonly Conversation[]>;
288
+ get(conversationId: string): AsyncResult<Conversation | null>;
289
+ assign(conversationId: string, to: {
290
+ readonly assigneeId: string | null;
291
+ readonly teamId?: string | null;
292
+ }): AsyncResult<Conversation>;
293
+ setStatus(conversationId: string, status: ConversationStatus, options?: {
294
+ readonly snoozedUntil?: Temporal.Instant;
295
+ }): AsyncResult<Conversation>;
296
+ snooze(conversationId: string, until: Temporal.Instant): AsyncResult<Conversation>;
297
+ resolve(conversationId: string): AsyncResult<Conversation>;
298
+ reopen(conversationId: string): AsyncResult<Conversation>;
299
+ /** Hands a bot conversation to staff (`bot_mode = 'human'`) and tells them. */
300
+ handoff(conversationId: string, reason?: string): AsyncResult<Conversation>;
301
+ setBotMode(conversationId: string, mode: BotMode, reason?: string): AsyncResult<Conversation>;
302
+ markRead(conversationId: string): AsyncResult<Temporal.Instant>;
303
+ /** A typing ping on `inbox:<id>`; the service names the bot in `actor`. */
304
+ typing(conversationId: string, typing?: boolean, actor?: string): AsyncResult<boolean>;
305
+ events(conversationId: string): AsyncResult<readonly ConversationEvent[]>;
306
+ counts(tenant: string): AsyncResult<InboxCounts>;
307
+ };
308
+ readonly messages: {
309
+ send(conversationId: string, input: MessageInput): AsyncResult<InboxMessage>;
310
+ /** An internal note only staff see. */
311
+ note(conversationId: string, body: string, input?: Pick<MessageInput, "mentions" | "attachments" | "format">): AsyncResult<InboxMessage>;
312
+ list(conversationId: string, options?: CursorPageOptions<Temporal.Instant>): AsyncResult<readonly InboxMessage[]>;
313
+ get(messageId: string): AsyncResult<InboxMessage | null>;
314
+ edit(messageId: string, body: string): AsyncResult<InboxMessage>;
315
+ /** Leaves a tombstone with an empty body. */
316
+ remove(messageId: string): AsyncResult<InboxMessage>;
317
+ react(messageId: string, emoji: string, options?: {
318
+ readonly present?: boolean;
319
+ readonly actor?: string;
320
+ }): AsyncResult<Readonly<Record<string, readonly string[]>>>;
321
+ };
322
+ readonly deliveries: {
323
+ /** Service only: after posting a message on its channel. */
324
+ record(input: {
325
+ readonly messageId: string;
326
+ readonly channel: string;
327
+ readonly externalId?: string;
328
+ readonly status?: DeliveryStatus;
329
+ readonly error?: string;
330
+ }): AsyncResult<void>;
331
+ /** Service only: a status callback; returns how many deliveries moved. */
332
+ setStatus(input: {
333
+ readonly channel: string;
334
+ readonly externalId: string;
335
+ readonly status: DeliveryStatus;
336
+ readonly error?: string;
337
+ }): AsyncResult<number>;
338
+ };
339
+ readonly templates: {
340
+ upsert(tenant: string, input: TemplateInput): AsyncResult<MessageTemplate>;
341
+ delete(id: string): AsyncResult<boolean>;
342
+ };
343
+ /** Service only: channel messages, the webhook store and its sweeps. */
344
+ readonly inbound: {
345
+ /** A message that arrived on a channel: finds or opens the thread's conversation. */
346
+ record(input: InboundInput): AsyncResult<InboundResult>;
347
+ store(input: {
348
+ readonly adapter: string;
349
+ readonly body: string;
350
+ readonly externalId?: string;
351
+ readonly headers?: Readonly<Record<string, string>>;
352
+ readonly inboxId?: string;
353
+ readonly tenant?: string;
354
+ }): AsyncResult<{
355
+ readonly id: string;
356
+ readonly duplicate: boolean;
357
+ }>;
358
+ setStatus(id: string, status: "processing" | "processed" | "ignored" | "failed", error?: string): AsyncResult<boolean>;
359
+ pending(options?: {
360
+ readonly limit?: number;
361
+ readonly maxAttempts?: number;
362
+ }): AsyncResult<readonly StoredInboundEvent[]>;
363
+ purge(options?: {
364
+ readonly olderThan?: number | string;
365
+ readonly batch?: number;
366
+ }): AsyncResult<number>;
367
+ };
368
+ /** Service only: reopens snoozed conversations whose time came. */
369
+ wakeSnoozed(): AsyncResult<number>;
370
+ /**
371
+ * Erases a contact and its conversations for a data subject request
372
+ * (`inbox.manage` or the service). Remove the returned attachment paths
373
+ * from Storage afterwards.
374
+ */
375
+ purgeContact(contactId: string): AsyncResult<PurgedContact>;
376
+ }
377
+ /**
378
+ * The `inbox` SQL module as typed calls: inboxes, contacts, conversations,
379
+ * messages and notes, assignment, bot hand-off, read state, deliveries and
380
+ * the stored webhook events. The database checks every permission.
381
+ */
382
+ declare function createInbox(options: InboxOptions): Inbox;
383
+ //#endregion
384
+ export { PurgedContact as A, InboxMessage as C, MessageDirection as D, MessageDelivery as E, MessageKind as O, InboxCounts as S, MessageAttachment as T, ConversationPriority as _, Inbox as a, InboundResult as b, MessageInput as c, createInbox as d, AuthorType as f, ConversationEvent as g, Conversation as h, InboundInput as i, StoredInboundEvent as j, MessageTemplate as k, StartConversationInput as l, Contact as m, ConversationFilter as n, InboxOptions as o, BotMode as p, CreateInboxInput as r, InboxPatch as s, ContactInput as t, TemplateInput as u, ConversationStatus as v, InboxRow as w, InboxChannel as x, DeliveryStatus as y };
@@ -0,0 +1,74 @@
1
+ import { x as SubscriptionStatus } from "./index-DunNRdnT.js";
2
+ //#region src/blocks/inbox/react/index.d.ts
3
+ /** Loads one list, e.g. a server action that calls `inbox.conversations.list()`. */
4
+ type InboxSource<T> = () => Promise<readonly T[]>;
5
+ interface UseInboxOptions<T> {
6
+ /** The organization; the hook joins `inbox:org:<id>`. `null` waits. */
7
+ readonly organizationId: string | null;
8
+ readonly load: InboxSource<T>;
9
+ /** `sql.modules.inbox.options.topic`. Defaults to `inbox`. */
10
+ readonly topic?: string;
11
+ /** Runs for each broadcast, e.g. to show a toast for `message`. */
12
+ readonly onMessage?: (event: string, payload: unknown) => void;
13
+ }
14
+ interface InboxListState<T> {
15
+ /** `undefined` until the first load. */
16
+ readonly items: readonly T[] | undefined;
17
+ readonly status: SubscriptionStatus;
18
+ readonly error: unknown;
19
+ readonly refresh: () => Promise<void>;
20
+ }
21
+ /**
22
+ * The staff view of an organization's conversations, kept current: loads,
23
+ * then loads again after each ping on `inbox:org:<id>` and on rejoin.
24
+ */
25
+ declare function useInbox<T>(options: UseInboxOptions<T>): InboxListState<T>;
26
+ interface UseConversationOptions<T> {
27
+ /** `null` waits, e.g. before the widget opens a conversation. */
28
+ readonly conversationId: string | null;
29
+ /** The messages, oldest first. */
30
+ readonly load: InboxSource<T>;
31
+ readonly topic?: string;
32
+ /** How long a typing ping counts. Defaults to 5000 ms. */
33
+ readonly typingMs?: number;
34
+ }
35
+ interface ConversationState<T> extends InboxListState<T> {
36
+ /** User ids typing now, the caller left out. */
37
+ readonly typing: readonly string[];
38
+ /** Tells the others the caller is typing; call it on input, throttled. */
39
+ readonly setTyping: (typing: boolean) => void;
40
+ }
41
+ /**
42
+ * One conversation's messages, kept current over `inbox:<id>`, with typing
43
+ * pings between staff and the contact. Notes never reach this topic.
44
+ */
45
+ declare function useConversation<T>(options: UseConversationOptions<T>): ConversationState<T>;
46
+ interface UseInboxWidgetOptions<T> {
47
+ /**
48
+ * Opens the visitor's conversation, e.g. a server action that calls
49
+ * `inbox.conversations.open(inboxId, { message })` with the visitor's
50
+ * transport. Returns its id.
51
+ */
52
+ readonly open: (message: string) => Promise<string>;
53
+ /** Sends into the open conversation. */
54
+ readonly send: (conversationId: string, message: string) => Promise<void>;
55
+ readonly load: (conversationId: string) => Promise<readonly T[]>;
56
+ /** Remembers the conversation across reloads. Defaults to `better-supabase:inbox-widget`. */
57
+ readonly storageKey?: string | null;
58
+ readonly topic?: string;
59
+ }
60
+ interface InboxWidgetState<T> extends ConversationState<T> {
61
+ readonly conversationId: string | null;
62
+ /** Opens the conversation with the first message, or sends into it. */
63
+ readonly submit: (message: string) => Promise<void>;
64
+ /** Forgets the conversation, so the next message opens a new one. */
65
+ readonly reset: () => void;
66
+ }
67
+ /**
68
+ * The visitor side of an in-app inbox: the first message opens the
69
+ * conversation, later ones go into it, and the messages and typing pings
70
+ * stay current. Visitors without an account sign in anonymously first.
71
+ */
72
+ declare function useInboxWidget<T>(options: UseInboxWidgetOptions<T>): InboxWidgetState<T>;
73
+ //#endregion
74
+ export { UseConversationOptions as a, useConversation as c, InboxWidgetState as i, useInbox as l, InboxListState as n, UseInboxOptions as o, InboxSource as r, UseInboxWidgetOptions as s, ConversationState as t, useInboxWidget as u };
@@ -1,22 +1,8 @@
1
- import { P as TableKey, R as UniqueWhere, _ as Insert, n as AnyFunctions, r as AnyModels, w as PrimaryKeyValue, z as Update } from "./types-Dnf_wRDz.js";
2
- import { x as DbException } from "./executor-BunPOO-k.js";
3
- import { C as FindExt, Ct as WhereInput, M as UpsertArgs, N as WriteArgs, S as DeleteExt, T as OffsetPageArgs, X as InferResult, Z as QuerySpec, _ as CursorPage, it as AggregateResult, j as UpdateArgs, k as Returned, l as CacheAdapter, lt as FindFirstArgs, rt as AggregateArgs, st as CountArgs, t as BetterSupabase, ut as FindManyArgs, v as CursorPageArgs, vt as Payload, w as OffsetPage, x as DeleteArgs, y as Db, yt as ReadArgs } from "./define-Bp_BZa5h.js";
4
- import { DataTag, InfiniteData, QueryClient, QueryMeta, SkipToken } from "@tanstack/query-core";
5
- //#region src/query/invalidate.d.ts
6
- /**
7
- * Carried by every better-supabase query: the tables whose changes make it
8
- * stale, on top of the app's `Register['queryMeta']`, so the options stay
9
- * assignable to `useQuery` when the app narrows its query meta.
10
- */
11
- type BetterQueryMeta = QueryMeta & {
12
- readonly bsTables: readonly string[];
13
- };
14
- /**
15
- * Invalidates every query that read one of `tables`: better-supabase queries
16
- * by their `meta.bsTables`, and other `['bs', table, ...]` keys by prefix.
17
- */
18
- declare function invalidateTables(client: QueryClient, tables: readonly string[]): Promise<void>;
19
- //#endregion
1
+ import { n as DbException } from "./escape-like-ImTK0ps_.js";
2
+ import { E as PrimaryKeyValue, H as Update, L as TableKey, V as UniqueWhere, a as AnyModels, i as AnyFunctions, x as Insert } from "./types-6BdhkmZe.js";
3
+ import { C as DeleteExt, D as OffsetPage, F as UpdateArgs, I as UpsertArgs, Mt as Payload, N as Returned, Nt as ReadArgs, O as OffsetPageArgs, R as WriteArgs, S as DeleteArgs, St as FindOnlyArgs, b as Db, bt as FindFirstArgs, it as QuerySpec, k as OffsetRangeArgs, pt as AggregateResult, rt as InferResult, t as BetterSupabase, u as CacheAdapter, ut as AggregateArgs, v as CursorPage, vt as CountArgs, w as FindExt, xt as FindManyArgs, y as CursorPageArgs, zt as WhereInput } from "./define-CJJkkr1-.js";
4
+ import { t as BetterQueryMeta } from "./invalidate-BBqhpxyB.js";
5
+ import { DataTag, InfiniteData, QueryClient, SkipToken } from "@tanstack/query-core";
20
6
  //#region src/query/queries.d.ts
21
7
  type QueryKeyOf<T> = DataTag<readonly unknown[], T, DbException>;
22
8
  type QueryFnOf<T> = ((context: {
@@ -38,9 +24,19 @@ interface InfiniteOptionsOf<P, Param> {
38
24
  }) => Promise<P>;
39
25
  readonly initialPageParam: Param;
40
26
  readonly getNextPageParam: (last: P) => Param | undefined;
27
+ /** Set on numbered pages, so a window trimmed by `maxPages` can load backwards. */
28
+ readonly getPreviousPageParam?: (first: P) => Param | undefined;
29
+ readonly maxPages?: number;
41
30
  readonly meta: BetterQueryMeta;
42
31
  readonly staleTime?: number;
43
32
  }
33
+ interface InfiniteExtras {
34
+ /**
35
+ * Pages kept in the cache; older ones are dropped as new ones load. Keeps
36
+ * long feeds from holding every page in memory and refetching them all.
37
+ */
38
+ readonly maxPages?: number;
39
+ }
44
40
  /** Options for `useMutation`. Invalidates every query that read a changed table. */
45
41
  interface MutationOptionsOf<V, R> {
46
42
  readonly mutationKey: readonly unknown[];
@@ -54,6 +50,7 @@ interface TableQueries<M extends AnyModels, T extends TableKey<M>, E> {
54
50
  readonly key: readonly ["bs", T];
55
51
  findMany<const A extends FindManyArgs<M, T> & FindExt<E, M, T>>(args?: A | SkipToken): QueryOptionsOf<Payload<M, T, A>[]>;
56
52
  findFirst<const A extends FindFirstArgs<M, T> & FindExt<E, M, T>>(args?: A | SkipToken): QueryOptionsOf<Payload<M, T, A> | null>;
53
+ findOnly<const A extends FindOnlyArgs<M, T> & FindExt<E, M, T>>(args: A | SkipToken): QueryOptionsOf<Payload<M, T, A> | null>;
57
54
  findUnique<const A extends ReadArgs<M, T> & {
58
55
  readonly where: UniqueWhere<M, T>;
59
56
  } & FindExt<E, M, T>>(args: A | SkipToken): QueryOptionsOf<Payload<M, T, A> | null>;
@@ -63,11 +60,11 @@ interface TableQueries<M extends AnyModels, T extends TableKey<M>, E> {
63
60
  exists(args?: ({
64
61
  readonly where?: WhereInput<M, T>;
65
62
  } & FindExt<E, M, T>) | SkipToken): QueryOptionsOf<boolean>;
66
- paginate<const A extends OffsetPageArgs<M, T> & FindExt<E, M, T>>(args: A | SkipToken): QueryOptionsOf<OffsetPage<Payload<M, T, A>>>;
63
+ paginate<const A extends (OffsetPageArgs<M, T> | OffsetRangeArgs<M, T>) & FindExt<E, M, T>>(args: A | SkipToken): QueryOptionsOf<OffsetPage<Payload<M, T, A>>>;
67
64
  /** Cursor pages for `useInfiniteQuery`. */
68
- infinite<const A extends Omit<CursorPageArgs<M, T>, "after"> & FindExt<E, M, T>>(args: A): InfiniteOptionsOf<CursorPage<Payload<M, T, A>>, string | null>;
65
+ infinite<const A extends Omit<CursorPageArgs<M, T>, "after"> & FindExt<E, M, T>>(args: A, options?: InfiniteExtras): InfiniteOptionsOf<CursorPage<Payload<M, T, A>>, string | null>;
69
66
  /** Numbered pages for `useInfiniteQuery`, starting at `args.page` (default 1). */
70
- infinitePages<const A extends OffsetPageArgs<M, T> & FindExt<E, M, T>>(args: A): InfiniteOptionsOf<OffsetPage<Payload<M, T, A>>, number>;
67
+ infinitePages<const A extends OffsetPageArgs<M, T> & FindExt<E, M, T>>(args: A, options?: InfiniteExtras): InfiniteOptionsOf<OffsetPage<Payload<M, T, A>>, number>;
71
68
  create<const A extends WriteArgs<M, T> = {}>(args?: A): MutationOptionsOf<Insert<M, T>, Returned<M, T, A>>;
72
69
  update<const A extends UpdateArgs<M, T> = {}>(args?: A): MutationOptionsOf<{
73
70
  readonly id: PrimaryKeyValue<M, T>;
@@ -98,6 +95,13 @@ interface QueriesOptions {
98
95
  * the server so hydrated data isn't refetched on mount.
99
96
  */
100
97
  readonly staleTime?: number;
98
+ /**
99
+ * Appended to every query key. Give each executor its own scope (`'local'`
100
+ * for PowerSync, for instance) when several share one QueryClient, so their
101
+ * results never land in the same cache entry. Invalidation by table still
102
+ * reaches every scope.
103
+ */
104
+ readonly scope?: string;
101
105
  }
102
106
  /**
103
107
  * TanStack Query option factories for every table, framework-neutral: pass
@@ -126,18 +130,77 @@ interface UserChangeSource {
126
130
  readonly user: {
127
131
  readonly id: string;
128
132
  } | null;
133
+ readonly claims?: Readonly<Record<string, unknown>> | null;
129
134
  };
130
135
  }
131
136
  /**
132
- * Removes every `['bs', ...]` query when the signed-in user changes or signs
133
- * out, so the next user never sees the previous user's rows. Returns the
134
- * function that stops listening. `BetterSupabaseProvider` calls it for React;
135
- * call it yourself with Vue, Solid, Svelte or Angular Query.
137
+ * Resets every `['bs', ...]` query when the caller changes: another user,
138
+ * signing out, or new claims for the same user (an organization switch, a
139
+ * role change). Mounted queries refetch, so no one sees the previous
140
+ * identity's rows. Returns the function that stops listening.
141
+ * `BetterSupabaseProvider` calls it for React; call it yourself with Vue,
142
+ * Solid, Svelte or Angular Query.
143
+ *
144
+ * Queries that fetched while the session was still loading ran as anon, so
145
+ * they are reset when a user arrives. Data already in the cache when loading
146
+ * started (hydrated from the server) stays.
136
147
  *
137
148
  * ```ts
138
149
  * const stop = clearOnUserChange(queryClient, bs.auth);
139
150
  * ```
140
151
  */
141
- declare function clearOnUserChange(queryClient: Pick<QueryClient, "removeQueries">, auth: UserChangeSource): () => void;
152
+ declare function clearOnUserChange(queryClient: Pick<QueryClient, "resetQueries" | "getQueryCache">, auth: UserChangeSource): () => void;
153
+ //#endregion
154
+ //#region src/query/optimistic.d.ts
155
+ /** A query whose cached data an optimistic update rewrites: any `q.<table>.*()` option. */
156
+ interface OptimisticTarget<T> {
157
+ readonly queryKey: QueryKeyOf<T>;
158
+ }
159
+ interface MutationContext {
160
+ readonly client: QueryClient;
161
+ }
162
+ /** What `onMutate` returns: the data each target held before the change. */
163
+ interface OptimisticSnapshot {
164
+ readonly previous: readonly (readonly [queryKey: readonly unknown[], data: unknown])[];
165
+ }
166
+ /**
167
+ * `onMutate`, `onError` and `onSettled` for `useMutation`: spread them next
168
+ * to a mutation option, which keeps its `onSuccess` invalidation.
169
+ */
170
+ interface OptimisticHandlers<V> {
171
+ onMutate(variables: V, context: MutationContext): Promise<OptimisticSnapshot>;
172
+ onError(error: Error, variables: V, snapshot: OptimisticSnapshot | undefined, context: MutationContext): void;
173
+ onSettled(data: unknown, error: Error | null, variables: V, snapshot: OptimisticSnapshot | undefined, context: MutationContext): Promise<void>;
174
+ }
175
+ type Targets<T> = OptimisticTarget<T> | readonly OptimisticTarget<T>[];
176
+ type Keyed<R> = Extract<keyof R, string>;
177
+ /**
178
+ * Optimistic updates for list queries (`findMany`), keyed by a row column
179
+ * (`id` by default):
180
+ *
181
+ * - `optimistic.create(list, (input) => row)` adds the row the input will make.
182
+ * - `optimistic.update(list)` merges `{ id, patch }` into the matching row.
183
+ * - `optimistic.remove(list)` drops the row whose key is the deleted id.
184
+ * - `optimistic(target, apply)` rewrites any cached data.
185
+ *
186
+ * ```ts
187
+ * const list = q.todos.findMany({ where: { done: false } });
188
+ * useMutation({ ...q.todos.update(), ...optimistic.update(list) });
189
+ * ```
190
+ */
191
+ declare const optimistic: (<T, V>(targets: Targets<T>, apply: (current: T, variables: V) => T) => OptimisticHandlers<V>) & {
192
+ create<R, V>(targets: Targets<R[]>, toRow: (variables: V) => R, options?: {
193
+ readonly position?: "start" | "end";
194
+ }): OptimisticHandlers<V>;
195
+ update<R, K extends Keyed<R> = Keyed<R> & "id">(targets: Targets<R[]>, options?: {
196
+ readonly key?: K;
197
+ }): OptimisticHandlers<{
198
+ readonly id: R[K];
199
+ readonly patch: Partial<R>;
200
+ }>;
201
+ remove<R, K extends Keyed<R> = Keyed<R> & "id">(targets: Targets<R[]>, options?: {
202
+ readonly key?: K;
203
+ }): OptimisticHandlers<R[K]>;
204
+ };
142
205
  //#endregion
143
- export { MutationOptionsOf as a, QueryKeyOf as c, createQueries as d, invalidateOnMutation as f, invalidateTables as h, InfiniteOptionsOf as i, QueryOptionsOf as l, BetterQueryMeta as m, clearOnUserChange as n, QueriesOptions as o, queryCache as p, BetterQueries as r, QueryHelpers as s, UserChangeSource as t, TableQueries as u };
206
+ export { invalidateOnMutation as _, UserChangeSource as a, InfiniteExtras as c, QueriesOptions as d, QueryHelpers as f, createQueries as g, TableQueries as h, optimistic as i, InfiniteOptionsOf as l, QueryOptionsOf as m, OptimisticSnapshot as n, clearOnUserChange as o, QueryKeyOf as p, OptimisticTarget as r, BetterQueries as s, OptimisticHandlers as t, MutationOptionsOf as u, queryCache as v };