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
@@ -1,264 +0,0 @@
1
- import { c as mapDbError, n as dbError } from "../errors-DtwXa6b8.js";
2
- import { t as temporal } from "../temporal-required-CAt4Dc9Z.js";
3
- import { i as ok, n as err, o as toDbError, t as AsyncResult } from "../result-BKiliPY7.js";
4
- import { t as validate } from "../standard-D7r6dMUu.js";
5
- import { n as emitKitEvent } from "../kit-events-CTFDfSwb.js";
6
- import { n as rpcTransport, r as sqlTransport, t as rawError } from "../kit-transport-DJlHQUBU.js";
7
- //#region src/notifications/notifications.ts
8
- const DEFAULT_SCHEMA = "better_supabase";
9
- const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
10
- const textOf = (value) => value === null || value === void 0 ? null : String(value);
11
- const instantOf = (value) => typeof value === "string" ? temporal().Instant.from(value) : null;
12
- function toItem(row) {
13
- const type = textOf(row["subject_type"]);
14
- const id = textOf(row["subject_id"]);
15
- const label = textOf(row["subject_label"]);
16
- return {
17
- id: String(row["id"]),
18
- eventId: String(row["event_id"]),
19
- type: String(row["type"]),
20
- data: row["data"] ?? {},
21
- tenant: textOf(row["tenant"]),
22
- actorId: textOf(row["actor_id"]),
23
- subject: type === null || id === null ? null : {
24
- type,
25
- id,
26
- ...label === null ? {} : { label }
27
- },
28
- summary: textOf(row["summary"]),
29
- actionPath: textOf(row["action_path"]),
30
- priority: textOf(row["priority"]),
31
- createdAt: instantOf(row["created_at"]) ?? temporal().Now.instant(),
32
- readAt: instantOf(row["read_at"]),
33
- resolvedAt: instantOf(row["resolved_at"])
34
- };
35
- }
36
- function cursorOf(before) {
37
- if (before === void 0) return {
38
- before: null,
39
- before_id: null
40
- };
41
- if ("epochNanoseconds" in before) return {
42
- before: before.toString(),
43
- before_id: null
44
- };
45
- return {
46
- before: before.createdAt.toString(),
47
- before_id: before.id
48
- };
49
- }
50
- const errorText = (cause) => cause instanceof Error ? cause.message : String(cause);
51
- function createNotifications(options) {
52
- const { transport } = options;
53
- const schema = options.schema ?? DEFAULT_SCHEMA;
54
- const mappers = options.errorMappers ?? [];
55
- const call = async (fn, args) => transport.call(schema, fn, args);
56
- function run(fn, args, then) {
57
- return AsyncResult.from(async () => {
58
- let value;
59
- try {
60
- value = await call(fn, args);
61
- } catch (cause) {
62
- const raw = rawError(cause);
63
- return err(raw ? mapDbError(raw, mappers) : toDbError(cause));
64
- }
65
- return ok(await then(value));
66
- });
67
- }
68
- function emit(type, data, tenant) {
69
- if (!options.events) return;
70
- emitKitEvent(options.events, type, data, {
71
- subject: `notifications/${data.notificationId}`,
72
- ...tenant ? { tenant } : {},
73
- ...options.actorId ? { actorId: options.actorId } : {},
74
- ...options.context ? { context: options.context } : {}
75
- });
76
- }
77
- const render = (item, locale) => {
78
- if (!options.render) return item;
79
- return {
80
- ...item,
81
- text: options.render(item, locale === void 0 ? {} : { locale })
82
- };
83
- };
84
- async function deliverOne(channel, row, maxAttempts) {
85
- const notification = isRecord(row["notification"]) ? toItem(row["notification"]) : void 0;
86
- if (!notification) throw new TypeError("claim returned no notification");
87
- const attempts = Number(row["attempts"] ?? 1);
88
- const message = {
89
- deliveryId: String(row["delivery_id"]),
90
- channel: channel.name,
91
- attempts,
92
- userId: String(row["user_id"]),
93
- email: textOf(row["email"]),
94
- notification,
95
- ...options.render ? { text: options.render(notification, {}) } : {}
96
- };
97
- try {
98
- const result = await channel.send(message);
99
- const status = result?.status ?? "sent";
100
- await call("complete_notification_delivery", {
101
- delivery: message.deliveryId,
102
- status,
103
- provider: result?.provider ?? null,
104
- provider_message_id: result?.providerMessageId ?? null
105
- });
106
- if (status === "sent") emit("notification.delivered", {
107
- notificationId: notification.eventId,
108
- type: notification.type,
109
- channel: channel.name
110
- }, notification.tenant);
111
- return status;
112
- } catch (cause) {
113
- const error = errorText(cause);
114
- await call("complete_notification_delivery", {
115
- delivery: message.deliveryId,
116
- status: "pending",
117
- error,
118
- max_attempts: maxAttempts
119
- });
120
- emit("notification.failed", {
121
- notificationId: notification.eventId,
122
- type: notification.type,
123
- channel: channel.name,
124
- error
125
- }, notification.tenant);
126
- return "failed";
127
- }
128
- }
129
- return {
130
- send(type, input) {
131
- return AsyncResult.from(async () => {
132
- const schemaOf = Object.hasOwn(options.types, type) ? options.types[type] : void 0;
133
- if (schemaOf === void 0) return err(dbError("validation", `Unknown notification type "${type}"`, {
134
- issues: [{
135
- path: ["type"],
136
- message: `Unknown type "${type}"`
137
- }],
138
- hint: "NOTIFICATION_TYPE_UNKNOWN"
139
- }));
140
- const data = await validate(schemaOf, input.data, `${type} data`);
141
- if (!data.ok) return err(data.error);
142
- const sent = await run("notify", { notification: {
143
- type,
144
- data: data.data,
145
- recipients: input.recipients ?? [],
146
- tenant: input.tenant,
147
- subject_type: input.subject?.type,
148
- subject_id: input.subject?.id,
149
- subject_label: input.subject?.label,
150
- summary: input.summary,
151
- action_path: input.actionPath,
152
- priority: input.priority,
153
- key: input.key,
154
- channels: input.channels,
155
- include_actor: input.includeActor,
156
- activity: input.activity,
157
- resolved: input.resolved,
158
- actor: input.actorId
159
- } }, (value) => value === null ? null : String(value));
160
- if (!sent.ok || sent.data === null) return sent;
161
- const recipients = input.recipients ?? [];
162
- emit("notification.created", {
163
- notificationId: sent.data,
164
- type,
165
- recipientIds: recipients
166
- }, input.tenant ?? null);
167
- if (options.onSent) try {
168
- await options.onSent({
169
- id: sent.data,
170
- type,
171
- tenant: input.tenant ?? null,
172
- recipients
173
- });
174
- } catch (cause) {
175
- return err(toDbError(cause));
176
- }
177
- return sent;
178
- });
179
- },
180
- list(listOptions = {}) {
181
- return run("list_notifications", {
182
- tenant: listOptions.tenant ?? null,
183
- status: listOptions.status ?? "all",
184
- types: listOptions.types ?? null,
185
- ...cursorOf(listOptions.before),
186
- max_items: listOptions.limit ?? 50
187
- }, (value) => (Array.isArray(value) ? value : []).filter(isRecord).map((row) => render(toItem(row), listOptions.locale)));
188
- },
189
- counts(countOptions = {}) {
190
- return run("notification_counts", {
191
- tenant: countOptions.tenant ?? null,
192
- actionable: options.actionable ?? []
193
- }, (value) => ({
194
- unread: Number(isRecord(value) ? value["unread"] ?? 0 : 0),
195
- actionable: Number(isRecord(value) ? value["actionable"] ?? 0 : 0)
196
- }));
197
- },
198
- markRead(readOptions = {}) {
199
- return run("mark_notifications_read", {
200
- ids: readOptions.ids ?? null,
201
- tenant: readOptions.tenant ?? null
202
- }, Number);
203
- },
204
- dismiss(ids) {
205
- return run("dismiss_notifications", { ids }, Number);
206
- },
207
- resolve(input) {
208
- return run("resolve_notifications", {
209
- type: input.type,
210
- subject_type: input.subject.type,
211
- subject_id: input.subject.id,
212
- tenant: input.tenant ?? null
213
- }, Number);
214
- },
215
- subscribe(input) {
216
- return run("set_notification_subscription", {
217
- subject_type: input.subject.type,
218
- subject_id: input.subject.id,
219
- level: input.level,
220
- tenant: input.tenant ?? null,
221
- member: input.userId ?? null
222
- }, () => void 0);
223
- },
224
- setPreference(input) {
225
- return run("set_notification_preference", {
226
- type: input.type,
227
- channel: input.channel,
228
- enabled: input.enabled,
229
- tenant: input.tenant ?? null
230
- }, () => void 0);
231
- },
232
- async deliver(deliverOptions = {}) {
233
- const wanted = deliverOptions.channels;
234
- const channels = (options.channels ?? []).filter((channel) => !wanted || wanted.includes(channel.name));
235
- const deadline = deliverOptions.budgetMs === void 0 ? Number.POSITIVE_INFINITY : Date.now() + deliverOptions.budgetMs;
236
- const batch = deliverOptions.batch ?? 50;
237
- const counts = {
238
- sent: 0,
239
- skipped: 0,
240
- failed: 0
241
- };
242
- for (const channel of channels) while (Date.now() < deadline) {
243
- const claimed = await call("claim_notification_deliveries", {
244
- channel: channel.name,
245
- max_items: batch,
246
- lease: deliverOptions.lease ?? "5 minutes",
247
- max_attempts: deliverOptions.maxAttempts ?? 5
248
- });
249
- const rows = (Array.isArray(claimed) ? claimed : []).filter(isRecord);
250
- for (const row of rows) counts[await deliverOne(channel, row, deliverOptions.maxAttempts ?? 5)] += 1;
251
- if (rows.length < batch) break;
252
- }
253
- return counts;
254
- },
255
- purge(olderThan, batch) {
256
- return run("purge_notifications", {
257
- older_than: olderThan ?? null,
258
- batch: batch ?? null
259
- }, Number);
260
- }
261
- };
262
- }
263
- //#endregion
264
- export { createNotifications, rpcTransport, sqlTransport };
@@ -1,132 +0,0 @@
1
- /// <reference lib="esnext.temporal" />
2
- import { S as ErrorMapper, a as AsyncResult } from "../executor-BunPOO-k.js";
3
- import { a as EventHub } from "../events-aIO7vsIk.js";
4
- import { g as RequestContext } from "../plugin-o144f322.js";
5
- import { i as sqlTransport, n as RpcClient, r as rpcTransport, t as KitTransport } from "../kit-transport-B82k1djG.js";
6
- //#region src/orgs/orgs.d.ts
7
- /**
8
- * Organization columns by database name: `name`, `slug` and the columns in
9
- * `kits.organizations.options.attributes`. Other keys are ignored.
10
- */
11
- interface OrgAttributes {
12
- readonly name?: string;
13
- readonly slug?: string;
14
- readonly [column: string]: unknown;
15
- }
16
- interface CreateOrgOptions {
17
- /** The owner, when the transport runs as the service role. */
18
- readonly ownerId?: string;
19
- }
20
- type SlugProblem = "invalid" | "reserved" | "taken";
21
- interface InviteRequest {
22
- /** `null` invites to the platform (`kits.access.model: 'catalog'`). */
23
- readonly organizationId: string | null;
24
- readonly email: string;
25
- /** A role name, or a role id or key under the catalog model. */
26
- readonly role: string;
27
- /** A Postgres interval such as `'3 days'`. Defaults to `options.validFor`. */
28
- readonly validFor?: string;
29
- /** Profile fields to fill in on sign-up. */
30
- readonly prefill?: Readonly<Record<string, unknown>>;
31
- }
32
- interface Invitation {
33
- readonly id: string;
34
- readonly organizationId: string | null;
35
- readonly email: string;
36
- readonly role: string;
37
- readonly expiresAt: Temporal.Instant;
38
- readonly invitedBy?: string;
39
- readonly prefill: Readonly<Record<string, unknown>>;
40
- }
41
- /** What `onInvite` receives: the place to send the email. */
42
- interface InvitationSent {
43
- readonly invitation: Invitation;
44
- /** Put it in the accept link. It is never stored in plain text by default. */
45
- readonly token: string;
46
- readonly resent: boolean;
47
- }
48
- type InvitationStatus = "pending" | "accepted" | "declined" | "revoked" | "expired";
49
- interface InvitationPreview {
50
- readonly status: InvitationStatus;
51
- readonly email: string;
52
- readonly role: string;
53
- readonly organizationId: string | null;
54
- readonly expiresAt: Temporal.Instant;
55
- /** The organization columns in `options.previewColumns`. */
56
- readonly organization: Readonly<Record<string, unknown>> | null;
57
- readonly prefill: Readonly<Record<string, unknown>>;
58
- }
59
- interface SwitchResult {
60
- readonly organizationId: string;
61
- /** The active tenant is a claim: refresh the session to get it. */
62
- readonly refresh: boolean;
63
- }
64
- interface OrgsOptions {
65
- /** `sqlTransport(postgres.asUser(claims))` or `rpcTransport(supabase)`. */
66
- readonly transport: KitTransport;
67
- /**
68
- * The schema holding the functions: `kits.<module>.schema` with
69
- * `sqlTransport`, the exposed API schema of wrappers with `rpcTransport`.
70
- * One schema for both modules, or one per module. Defaults to
71
- * `better_supabase`.
72
- */
73
- readonly schema?: string | {
74
- readonly organizations?: string;
75
- readonly invitations?: string;
76
- };
77
- /** `betterSupabase.events`, to emit `org.*` and `invitation.*` kit events. */
78
- readonly events?: EventHub;
79
- /** The user acting, for event metadata. */
80
- readonly actorId?: string;
81
- readonly context?: RequestContext;
82
- /**
83
- * Runs before an invitation is created, after the database checks the
84
- * caller may invite. Return `false` to refuse (seat limits, plans).
85
- */
86
- readonly canInvite?: (request: InviteRequest) => boolean | Promise<boolean>;
87
- /**
88
- * Runs after an invitation is created or resent, to send the email. When
89
- * it throws, the call returns an error and the invitation stays open:
90
- * call `resendInvitation` to retry.
91
- */
92
- readonly onInvite?: (sent: InvitationSent) => void | Promise<void>;
93
- /** Run before the built-in mapping, as in `betterSupabase.mapError()`. */
94
- readonly errorMappers?: readonly ErrorMapper[];
95
- }
96
- /**
97
- * The `organizations` and `invitations` SQL kit modules as typed calls. Each
98
- * method returns an `AsyncResult`; database errors carry the kit's error
99
- * code (`ORG_FORBIDDEN`, `INVITATION_INVALID`) as `hint`.
100
- */
101
- interface Orgs {
102
- create(attributes: OrgAttributes, options?: CreateOrgOptions): AsyncResult<{
103
- readonly id: string;
104
- }>;
105
- update(organizationId: string, attributes: OrgAttributes): AsyncResult<true>;
106
- /** `false` when it did not exist (or was already soft-deleted). */
107
- delete(organizationId: string): AsyncResult<boolean>;
108
- /** Why a slug can't be used, or `undefined` when it can. */
109
- slugProblem(slug: string, exceptOrganizationId?: string): AsyncResult<SlugProblem | undefined>;
110
- updateMemberRole(organizationId: string, userId: string, role: string): AsyncResult<true>;
111
- removeMember(organizationId: string, userId: string): AsyncResult<true>;
112
- leave(organizationId: string): AsyncResult<true>;
113
- /** `formerRole` defaults to `options.formerOwnerRole`. */
114
- transferOwnership(organizationId: string, newOwnerId: string, formerRole?: string): AsyncResult<true>;
115
- markUsed(organizationId: string): AsyncResult<boolean>;
116
- switch(organizationId: string): AsyncResult<SwitchResult>;
117
- invite(request: InviteRequest): AsyncResult<InvitationSent>;
118
- resendInvitation(invitationId: string, validFor?: string): AsyncResult<InvitationSent>;
119
- /** `false` when it was not open. */
120
- revokeInvitation(invitationId: string): AsyncResult<boolean>;
121
- declineInvitation(token: string): AsyncResult<boolean>;
122
- /** `undefined` for an unknown token. Callable without a session. */
123
- previewInvitation(token: string): AsyncResult<InvitationPreview | undefined>;
124
- /** Returns the organization joined, `null` for a platform invitation. */
125
- acceptInvitation(token: string): AsyncResult<{
126
- readonly organizationId: string | null;
127
- }>;
128
- }
129
- /** Calls the `organizations` and `invitations` kit functions. */
130
- export declare function createOrgs(options: OrgsOptions): Orgs;
131
- //#endregion
132
- export { type CreateOrgOptions, type Invitation, type InvitationPreview, type InvitationSent, type InvitationStatus, type InviteRequest, type KitTransport, type OrgAttributes, type Orgs, type OrgsOptions, type RpcClient, type SlugProblem, type SwitchResult, rpcTransport, sqlTransport };
@@ -1,245 +0,0 @@
1
- import { c as mapDbError, n as dbError } from "../errors-DtwXa6b8.js";
2
- import { t as temporal } from "../temporal-required-CAt4Dc9Z.js";
3
- import { i as ok, n as err, o as toDbError, t as AsyncResult } from "../result-BKiliPY7.js";
4
- import { n as emitKitEvent } from "../kit-events-CTFDfSwb.js";
5
- import { n as rpcTransport, r as sqlTransport, t as rawError } from "../kit-transport-DJlHQUBU.js";
6
- //#region src/orgs/orgs.ts
7
- const DEFAULT_SCHEMA = "better_supabase";
8
- const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
9
- const text = (value) => typeof value === "string" ? value : String(value);
10
- const optionalText = (value) => value === null || value === void 0 ? null : text(value);
11
- function invitationFrom(row) {
12
- const invitedBy = optionalText(row["invited_by"]);
13
- return {
14
- id: text(row["id"]),
15
- organizationId: optionalText(row["tenant"]),
16
- email: text(row["email"]),
17
- role: text(row["role"]),
18
- expiresAt: temporal().Instant.from(text(row["expires_at"])),
19
- ...invitedBy === null ? {} : { invitedBy },
20
- prefill: isRecord(row["prefill"]) ? row["prefill"] : {}
21
- };
22
- }
23
- const STATUSES = /* @__PURE__ */ new Set([
24
- "pending",
25
- "accepted",
26
- "declined",
27
- "revoked",
28
- "expired"
29
- ]);
30
- function isStatus(value) {
31
- return typeof value === "string" && STATUSES.has(value);
32
- }
33
- function previewFrom(row) {
34
- const status = row["status"];
35
- if (!isStatus(status)) throw new TypeError(`Unknown invitation status ${String(status)}`);
36
- return {
37
- status,
38
- email: text(row["email"]),
39
- role: text(row["role"]),
40
- organizationId: optionalText(row["tenant"]),
41
- expiresAt: temporal().Instant.from(text(row["expires_at"])),
42
- organization: isRecord(row["organization"]) ? row["organization"] : null,
43
- prefill: isRecord(row["prefill"]) ? row["prefill"] : {}
44
- };
45
- }
46
- function recordOf(value, fn) {
47
- if (!isRecord(value)) throw new TypeError(`${fn} returned ${JSON.stringify(value)}`);
48
- return value;
49
- }
50
- /** Calls the `organizations` and `invitations` kit functions. */
51
- function createOrgs(options) {
52
- const { transport } = options;
53
- const schemaOf = (module) => typeof options.schema === "string" ? options.schema : options.schema?.[module] ?? DEFAULT_SCHEMA;
54
- const mappers = options.errorMappers ?? [];
55
- function run(module, fn, args, then) {
56
- return AsyncResult.from(async () => {
57
- let value;
58
- try {
59
- value = await transport.call(schemaOf(module), fn, args);
60
- } catch (cause) {
61
- const raw = rawError(cause);
62
- return err(raw ? mapDbError(raw, mappers) : toDbError(cause));
63
- }
64
- return ok(await then(value));
65
- });
66
- }
67
- function emit(type, data, subject, tenant) {
68
- if (!options.events) return;
69
- emitKitEvent(options.events, type, data, {
70
- subject,
71
- ...tenant ? { tenant } : {},
72
- ...options.actorId ? { actorId: options.actorId } : {},
73
- ...options.context ? { context: options.context } : {}
74
- });
75
- }
76
- const orgEvent = (type, data) => {
77
- emit(type, data, `organizations/${data.organizationId}`, data.organizationId);
78
- };
79
- const invitationEvent = (type, data) => {
80
- emit(type, data, `invitations/${data.invitationId}`, data.organizationId ?? null);
81
- };
82
- const sent = async (value, fn, resent) => {
83
- const row = recordOf(value, fn);
84
- const invitation = invitationFrom(row);
85
- const result = {
86
- invitation,
87
- token: text(row["token"]),
88
- resent
89
- };
90
- invitationEvent(resent ? "invitation.resent" : "invitation.created", {
91
- invitationId: invitation.id,
92
- ...invitation.organizationId === null ? {} : { organizationId: invitation.organizationId },
93
- email: invitation.email,
94
- role: invitation.role
95
- });
96
- await options.onInvite?.(result);
97
- return result;
98
- };
99
- return {
100
- create(attributes, createOptions) {
101
- return run("organizations", "create_organization", { attrs: {
102
- ...attributes,
103
- ...createOptions?.ownerId ? { owner_id: createOptions.ownerId } : {}
104
- } }, (value) => {
105
- const id = text(value);
106
- orgEvent("org.created", {
107
- organizationId: id,
108
- ...createOptions?.ownerId ?? options.actorId ? { userId: createOptions?.ownerId ?? options.actorId } : {}
109
- });
110
- return { id };
111
- });
112
- },
113
- update(organizationId, attributes) {
114
- return run("organizations", "update_organization", {
115
- org: organizationId,
116
- attrs: attributes
117
- }, () => {
118
- orgEvent("org.updated", { organizationId });
119
- return true;
120
- });
121
- },
122
- delete(organizationId) {
123
- return run("organizations", "delete_organization", { org: organizationId }, (value) => {
124
- if (value === true) orgEvent("org.deleted", { organizationId });
125
- return value === true;
126
- });
127
- },
128
- slugProblem(slug, exceptOrganizationId) {
129
- return run("organizations", "organization_slug_problem", {
130
- value: slug,
131
- except_org: exceptOrganizationId
132
- }, (value) => {
133
- if (value === null) return;
134
- if (value === "invalid" || value === "reserved" || value === "taken") return value;
135
- throw new TypeError(`Unknown slug problem ${String(value)}`);
136
- });
137
- },
138
- updateMemberRole(organizationId, userId, role) {
139
- return run("organizations", "update_member_role", {
140
- org: organizationId,
141
- member: userId,
142
- role
143
- }, () => {
144
- orgEvent("org.role_changed", {
145
- organizationId,
146
- userId,
147
- role
148
- });
149
- return true;
150
- });
151
- },
152
- removeMember(organizationId, userId) {
153
- return run("organizations", "remove_member", {
154
- org: organizationId,
155
- member: userId
156
- }, () => {
157
- orgEvent("org.member_removed", {
158
- organizationId,
159
- userId
160
- });
161
- return true;
162
- });
163
- },
164
- leave(organizationId) {
165
- return run("organizations", "leave_organization", { org: organizationId }, () => {
166
- orgEvent("org.member_left", {
167
- organizationId,
168
- ...options.actorId ? { userId: options.actorId } : {}
169
- });
170
- return true;
171
- });
172
- },
173
- transferOwnership(organizationId, newOwnerId, formerRole) {
174
- return run("organizations", "transfer_ownership", {
175
- org: organizationId,
176
- new_owner: newOwnerId,
177
- former_role: formerRole
178
- }, () => {
179
- orgEvent("org.ownership_transferred", {
180
- organizationId,
181
- userId: newOwnerId
182
- });
183
- return true;
184
- });
185
- },
186
- markUsed(organizationId) {
187
- return run("organizations", "mark_used", { org: organizationId }, (value) => value === true);
188
- },
189
- switch(organizationId) {
190
- return run("organizations", "switch_organization", { org: organizationId }, (value) => {
191
- const row = recordOf(value, "switch_organization");
192
- orgEvent("org.switched", {
193
- organizationId,
194
- ...options.actorId ? { userId: options.actorId } : {}
195
- });
196
- return {
197
- organizationId: text(row["organization_id"]),
198
- refresh: row["refresh"] === true
199
- };
200
- });
201
- },
202
- invite(request) {
203
- return AsyncResult.from(async () => {
204
- if (options.canInvite && !await options.canInvite(request)) return err(dbError("forbidden", "The invitation was refused", { hint: "INVITATION_FORBIDDEN" }));
205
- return run("invitations", "invite_member", {
206
- tenant: request.organizationId,
207
- invitee_email: request.email,
208
- invitee_role: request.role,
209
- valid_for: request.validFor,
210
- prefill: request.prefill
211
- }, (value) => sent(value, "invite_member", false));
212
- });
213
- },
214
- resendInvitation(invitationId, validFor) {
215
- return run("invitations", "resend_invitation", {
216
- invitation_id: invitationId,
217
- valid_for: validFor
218
- }, (value) => sent(value, "resend_invitation", true));
219
- },
220
- revokeInvitation(invitationId) {
221
- return run("invitations", "revoke_invitation", { invitation_id: invitationId }, (value) => {
222
- if (value === true) invitationEvent("invitation.revoked", { invitationId });
223
- return value === true;
224
- });
225
- },
226
- declineInvitation(token) {
227
- return run("invitations", "decline_invitation", { token }, (value) => value === true);
228
- },
229
- previewInvitation(token) {
230
- return run("invitations", "invitation_preview", { token }, (value) => value === null ? void 0 : previewFrom(recordOf(value, "invitation_preview")));
231
- },
232
- acceptInvitation(token) {
233
- return run("invitations", "accept_invitation", { token }, (value) => {
234
- const organizationId = optionalText(value);
235
- if (organizationId !== null) orgEvent("org.member_added", {
236
- organizationId,
237
- ...options.actorId ? { userId: options.actorId } : {}
238
- });
239
- return { organizationId };
240
- });
241
- }
242
- };
243
- }
244
- //#endregion
245
- export { createOrgs, rpcTransport, sqlTransport };
@@ -1,29 +0,0 @@
1
- //#region src/core/permdock-sql.d.ts
2
- /** PermDock's default `rls.schema`, a schema the Data API does not expose. */
3
- declare const PERMDOCK_SCHEMA = "permdock";
4
- /**
5
- * The part of PermDock's `permissions.catalog.json` the Storage and Realtime
6
- * builders read: `import catalog from './permissions.catalog.json'`.
7
- */
8
- interface PermdockCatalog {
9
- readonly permissions: readonly {
10
- readonly key: string;
11
- readonly rowConditions?: boolean;
12
- /** The scope PermDock declares the permission at. */
13
- readonly scope?: string;
14
- }[];
15
- }
16
- /**
17
- * What PermDock's catalog says about a key: `scope-only` (`rowConditions:
18
- * false`), `row-conditions` (`true`), `no-flag` (an entry without a boolean
19
- * flag, from an older `permdock catalog`) or `missing`. Only `scope-only` is
20
- * safe for the SQL helpers.
21
- */
22
- type PermdockKeyStatus = "scope-only" | "row-conditions" | "no-flag" | "missing";
23
- declare function permdockKeyStatus(catalog: PermdockCatalog, key: string): PermdockKeyStatus;
24
- /** The keys a bucket or topic PermDock policy names. */
25
- declare function permdockKeys(policy: {
26
- readonly permdock: object;
27
- }): string[];
28
- //#endregion
29
- export { permdockKeys as a, permdockKeyStatus as i, PermdockCatalog as n, PermdockKeyStatus as r, PERMDOCK_SCHEMA as t };