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,208 +0,0 @@
1
- import { t as isList } from "./guards-BnzDvFrz.js";
2
- //#region src/generators/shared.ts
3
- const INTEGER = /* @__PURE__ */ new Set([
4
- "int2",
5
- "int4",
6
- "int8"
7
- ]);
8
- const NUMBER = /* @__PURE__ */ new Set([
9
- "float4",
10
- "float8",
11
- "numeric",
12
- "oid",
13
- "money"
14
- ]);
15
- const DATETIME = /* @__PURE__ */ new Set(["timestamptz"]);
16
- function scalarKind(column) {
17
- if (column.enum) return {
18
- kind: "enum",
19
- values: column.enum
20
- };
21
- if (column.json) return { kind: "json" };
22
- if (column.codec === "instant") return { kind: "instant" };
23
- if (column.codec === "plainDateTime") return { kind: "plainDateTime" };
24
- if (column.codec === "bigint") return { kind: "bigint" };
25
- if (column.codec === "string") return { kind: "string" };
26
- if (column.type === "uuid") return { kind: "uuid" };
27
- if (INTEGER.has(column.type)) return { kind: "integer" };
28
- if (NUMBER.has(column.type)) return { kind: "number" };
29
- if (column.type === "bool") return { kind: "boolean" };
30
- if (DATETIME.has(column.type)) return { kind: "datetime" };
31
- if (column.type === "date") return { kind: "date" };
32
- if (column.type === "record" || column.type === "void") return { kind: "unknown" };
33
- return { kind: "string" };
34
- }
35
- /** App names of the columns that plugins fill from the table's flags. */
36
- function managedColumns(table) {
37
- const { timestamps, actor, softDelete } = table.flags;
38
- return new Set([
39
- timestamps?.createdAt,
40
- timestamps?.updatedAt,
41
- actor?.createdBy,
42
- actor?.updatedBy,
43
- actor?.impersonatedBy,
44
- softDelete
45
- ].filter((name) => name !== void 0));
46
- }
47
- /**
48
- * The generated row type of a field (its element type for arrays). Storage
49
- * path columns validate as strings and are cast to their `StoragePath` brand.
50
- */
51
- function rowType(table, plan) {
52
- const type = `NonNullable<RowOf<'${table}'>['${plan.name}']>`;
53
- return plan.column.array ? `${type}[number]` : type;
54
- }
55
- /** The fields a variant accepts; read-only columns are left out of writes. */
56
- function fieldsFor(table, variant, input) {
57
- const fields = [];
58
- const managed = managedColumns(table);
59
- for (const [name, column] of Object.entries(table.columns)) {
60
- if (variant === "Insert" && (column.generated || column.insertable === false)) continue;
61
- if (variant === "Update" && (column.generated || column.updatable === false)) continue;
62
- fields.push({
63
- name,
64
- column,
65
- scalar: scalarKind(column),
66
- nullable: column.nullable,
67
- optional: variant === "Update" || variant === "Insert" && (column.nullable || column.hasDefault),
68
- customJson: Boolean(column.json && input.config.json[`${table.name}.${column.db}`]),
69
- managed: managed.has(name)
70
- });
71
- }
72
- return fields;
73
- }
74
- function variantsFor(table) {
75
- return table.kind === "view" ? ["Row"] : [
76
- "Row",
77
- "Insert",
78
- "Update"
79
- ];
80
- }
81
- function tableEntries(input) {
82
- return Object.entries(input.meta.tables).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
83
- }
84
- function propertyKey(name) {
85
- return /^[A-Za-z_$][\w$]*$/.test(name) ? name : JSON.stringify(name);
86
- }
87
- /** `customerTags` + `Insert` → `customerTagsInsert`. */
88
- function schemaName(table, variant) {
89
- return `${table.replace(/^[A-Z]/, (c) => c.toLowerCase())}${variant}`;
90
- }
91
- /** Output path next to the main module: `generated.ts` → `generated.zod.ts`. */
92
- function siblingPath(output, suffix) {
93
- return output.replace(/(\.[cm]?ts)?$/, `.${suffix}`);
94
- }
95
- const HEADER = "// Generated by better-supabase. Do not edit; run `better-supabase gen`.\n";
96
- /** `./metadata.ts#metadataSchema` → `{ from: './metadata.ts', name: 'metadataSchema' }`. */
97
- function parseImport(spec) {
98
- const [from, name] = spec.split("#");
99
- if (!from || !name) throw new Error(`Expected "path#export", got "${spec}"`);
100
- return {
101
- from,
102
- name
103
- };
104
- }
105
- //#endregion
106
- //#region src/generators/json-schema.ts
107
- function scalar(kind) {
108
- switch (kind.kind) {
109
- case "uuid": return {
110
- type: "string",
111
- format: "uuid"
112
- };
113
- case "string": return { type: "string" };
114
- case "integer": return { type: "integer" };
115
- case "number": return { type: "number" };
116
- case "boolean": return { type: "boolean" };
117
- case "datetime": return {
118
- type: "string",
119
- format: "date-time"
120
- };
121
- case "date": return {
122
- type: "string",
123
- format: "date"
124
- };
125
- case "instant": return {
126
- type: "string",
127
- format: "date-time"
128
- };
129
- case "plainDateTime": return {
130
- type: "string",
131
- pattern: "^\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?$"
132
- };
133
- case "bigint": return {
134
- type: "string",
135
- pattern: "^-?\\d+$"
136
- };
137
- case "json":
138
- case "unknown": return {};
139
- case "enum": return {
140
- type: "string",
141
- enum: [...kind.values]
142
- };
143
- default: return kind;
144
- }
145
- }
146
- function property(plan) {
147
- const schema = nullable(plan);
148
- return plan.managed ? {
149
- ...schema,
150
- readOnly: true
151
- } : schema;
152
- }
153
- function nullable(plan) {
154
- let schema = scalar(plan.scalar);
155
- if (plan.column.array) schema = {
156
- type: "array",
157
- items: schema
158
- };
159
- if (!plan.nullable) return schema;
160
- if (Object.keys(schema).length === 0) return schema;
161
- const { enum: values, ...rest } = schema;
162
- if (isList(values)) return {
163
- ...rest,
164
- type: ["string", "null"],
165
- enum: [...values, null]
166
- };
167
- return typeof schema["type"] === "string" ? {
168
- ...schema,
169
- type: [schema["type"], "null"]
170
- } : { anyOf: [schema, { type: "null" }] };
171
- }
172
- /** JSON Schema (2020-12) `$defs` for every table: `customersRow`, `customersInsert`, ... */
173
- function buildJsonSchema(input, id) {
174
- const defs = {};
175
- for (const [key, table] of tableEntries(input)) for (const variant of variantsFor(table)) {
176
- const properties = {};
177
- const required = [];
178
- for (const plan of fieldsFor(table, variant, input)) {
179
- properties[plan.name] = property(plan);
180
- if (!plan.optional) required.push(plan.name);
181
- }
182
- defs[`${key}${variant}`] = {
183
- type: "object",
184
- properties,
185
- ...required.length > 0 ? { required } : {},
186
- additionalProperties: false
187
- };
188
- }
189
- return {
190
- $schema: "https://json-schema.org/draft/2020-12/schema",
191
- ...id ? { $id: id } : {},
192
- $defs: defs
193
- };
194
- }
195
- /** Writes the JSON Schema document; `createOpenApi` reuses the same `$defs`. */
196
- function jsonSchema(options = {}) {
197
- return {
198
- name: "json-schema",
199
- generate(input) {
200
- return [{
201
- path: options.output ?? siblingPath(input.config.output, "schema.json"),
202
- contents: `${JSON.stringify(buildJsonSchema(input, options.id), null, 2)}\n`
203
- }];
204
- }
205
- };
206
- }
207
- //#endregion
208
- export { parseImport as a, schemaName as c, variantsFor as d, fieldsFor as i, siblingPath as l, jsonSchema as n, propertyKey as o, HEADER as r, rowType as s, buildJsonSchema as t, tableEntries as u };
@@ -1,60 +0,0 @@
1
- import { t as cloneValue } from "./clone-BfgmLU90.js";
2
- import { n as nowInstant } from "./temporal-CVlIV2DZ.js";
3
- //#region src/core/kit-events.ts
4
- /**
5
- * Fixed OpenTelemetry attribute names for kit work, so dashboards and
6
- * queries can rely on them.
7
- */
8
- const KIT_ATTRIBUTES = {
9
- event: "better_supabase.kit.event",
10
- tenant: "better_supabase.tenant",
11
- actor: "better_supabase.actor.id",
12
- supportSessionId: "better_supabase.support.session_id",
13
- orgId: "better_supabase.org.id",
14
- invitationId: "better_supabase.invitation.id",
15
- notificationType: "better_supabase.notification.type",
16
- webhookEndpointId: "better_supabase.webhook.endpoint_id"
17
- };
18
- /** The `KIT_ATTRIBUTES` an event carries. */
19
- function kitEventAttributes(event) {
20
- const attributes = { [KIT_ATTRIBUTES.event]: event.type };
21
- if (event.tenant) attributes[KIT_ATTRIBUTES.tenant] = event.tenant;
22
- if (event.actorId) attributes[KIT_ATTRIBUTES.actor] = event.actorId;
23
- const data = Object.fromEntries(Object.entries(event.data));
24
- const add = (key, value) => {
25
- if (typeof value === "string" && value.length > 0) attributes[key] = value;
26
- };
27
- add(KIT_ATTRIBUTES.supportSessionId, data["sessionId"]);
28
- add(KIT_ATTRIBUTES.orgId, data["organizationId"]);
29
- add(KIT_ATTRIBUTES.invitationId, data["invitationId"]);
30
- add(KIT_ATTRIBUTES.notificationType, data["type"]);
31
- add(KIT_ATTRIBUTES.webhookEndpointId, data["endpointId"]);
32
- return attributes;
33
- }
34
- /**
35
- * Emits a kit event on `events` with a copy of `data`. Does nothing without
36
- * a `kit` handler, so kits call it unconditionally.
37
- */
38
- function emitKitEvent(events, type, data, meta = {}) {
39
- if (!events.has("kit")) return;
40
- const event = {
41
- ...meta,
42
- type,
43
- data: cloneValue(data),
44
- time: nowInstant()
45
- };
46
- events.emit("kit", event);
47
- }
48
- const matches = (pattern, type) => pattern.endsWith(".*") ? type.startsWith(pattern.slice(0, -1)) : pattern === type;
49
- /**
50
- * Listens to the kit events that match `pattern` (`'support.started'` or
51
- * `'support.*'`). Returns a function that stops listening.
52
- */
53
- function onKitEvent(betterSupabase, pattern, handler) {
54
- return betterSupabase.events.on("kit", (event) => {
55
- if (!matches(pattern, event.type)) return;
56
- handler(event);
57
- });
58
- }
59
- //#endregion
60
- export { onKitEvent as i, emitKitEvent as n, kitEventAttributes as r, KIT_ATTRIBUTES as t };
@@ -1,33 +0,0 @@
1
- import { t as SqlClient } from "./executor-Cghdstwu.js";
2
- //#region src/core/kit-transport.d.ts
3
- /**
4
- * Calls a kit function as the current user and resolves with its result.
5
- * Rejects with the raw database error (a `pg` error or a PostgREST error
6
- * object), which the kit maps to a `DbError`.
7
- */
8
- interface KitTransport {
9
- call(schema: string, fn: string, args: Readonly<Record<string, unknown>>): Promise<unknown>;
10
- }
11
- /**
12
- * Calls the functions over Postgres, as the user `client` runs as:
13
- * `sqlTransport(postgres.asUser(ctx.auth.claims))`. Works for any schema.
14
- */
15
- declare function sqlTransport(client: SqlClient): KitTransport;
16
- interface RpcResponse {
17
- readonly data: unknown;
18
- readonly error: unknown;
19
- }
20
- /** The part of a supabase-js client `rpcTransport` uses. */
21
- interface RpcClient {
22
- schema(name: string): {
23
- rpc(fn: string, args: Record<string, unknown>): PromiseLike<RpcResponse>;
24
- };
25
- }
26
- /**
27
- * Calls the functions over the Data API with the user's session. The kit
28
- * schema must be exposed (`[api] schemas` in `config.toml`), or the modules
29
- * installed in `public` (`kits.<module>.schema`).
30
- */
31
- declare function rpcTransport(client: RpcClient): KitTransport;
32
- //#endregion
33
- export { sqlTransport as i, RpcClient as n, rpcTransport as r, KitTransport as t };
@@ -1,157 +0,0 @@
1
- import { t as DEFAULT_CLAIMS } from "./claims-BAf6c7is.js";
2
- //#region src/config/config.ts
3
- /** The JSON Schema document for a `json[...].schema` entry. */
4
- function resolveJsonSchema(source) {
5
- const standard = source["~standard"];
6
- if (standard === void 0) return source;
7
- const jsonSchema = standard.jsonSchema;
8
- if (typeof jsonSchema?.input !== "function") throw new TypeError("json[...].schema: this Standard Schema library does not implement Standard JSON Schema; pass a JSON Schema object instead");
9
- return jsonSchema.input({ target: "draft-2020-12" });
10
- }
11
- function entitlementsOf(config = {}) {
12
- const customer = config.customer;
13
- const dot = customer?.lastIndexOf(".") ?? -1;
14
- if (customer !== void 0 && dot <= 0) throw new TypeError(`entitlements.customer must be "table.column", got "${customer}"`);
15
- return {
16
- ...customer === void 0 ? {} : {
17
- table: customer.slice(0, dot),
18
- column: customer.slice(dot + 1)
19
- },
20
- key: config.key ?? "id",
21
- permdock: config.permdock === false ? false : config.permdock?.scope === void 0 ? {} : { scope: config.permdock.scope }
22
- };
23
- }
24
- function vectorSearchOf(config = {}) {
25
- return Object.entries(config).map(([table, entry]) => typeof entry === "string" ? {
26
- table,
27
- column: entry,
28
- distance: "cosine"
29
- } : {
30
- table,
31
- column: entry.column,
32
- distance: entry.distance ?? "cosine"
33
- });
34
- }
35
- const CONFIG_SCHEMA_URL = "https://unpkg.com/better-supabase/schemas/config-v1.json";
36
- /** Identity helper that types `better-supabase.config.ts`. */
37
- function defineConfig(config) {
38
- return config;
39
- }
40
- function pick(value, defaults) {
41
- if (value === void 0 || value === false) return void 0;
42
- if (value === true) return defaults;
43
- return {
44
- ...defaults,
45
- ...value
46
- };
47
- }
48
- function resolveExpose(entry) {
49
- if (Array.isArray(entry)) return {
50
- anon: [],
51
- authenticated: entry
52
- };
53
- const roles = entry;
54
- return {
55
- anon: roles.anon ?? [],
56
- authenticated: roles.authenticated ?? []
57
- };
58
- }
59
- /** Applies defaults. Paths stay relative to `root`. */
60
- function resolveConfig(config, root) {
61
- const output = config.output ?? "src/lib/supabase/generated.ts";
62
- return {
63
- root,
64
- source: config.source ?? {},
65
- schemas: config.schemas ?? ["public"],
66
- casing: config.casing ?? "snake",
67
- tables: config.tables ?? {},
68
- output,
69
- databaseTypesOutput: output.replace(/[^/]+$/, "database.types.ts"),
70
- postgrestVersion: config.postgrestVersion ?? "13",
71
- json: config.json ?? {},
72
- codecs: {
73
- timestamptz: config.codecs?.timestamptz ?? "string",
74
- int8: config.codecs?.int8 ?? "number",
75
- numeric: config.codecs?.numeric ?? "number"
76
- },
77
- sensitive: config.sensitive ?? [],
78
- storagePaths: config.storagePaths ?? {},
79
- expose: Object.fromEntries(Object.entries(config.expose ?? {}).map(([table, entry]) => [table, resolveExpose(entry)])),
80
- readSets: config.readSets ?? [],
81
- generators: config.generators ?? [],
82
- plugins: {
83
- timestamps: pick(config.plugins?.timestamps, {
84
- createdAt: "created_at",
85
- updatedAt: "updated_at"
86
- }),
87
- softDelete: pick(config.plugins?.softDelete, { column: "deleted_at" }),
88
- tenant: pick(config.plugins?.tenant, { column: "organization_id" }),
89
- actor: pick(config.plugins?.actor, {
90
- createdBy: "created_by",
91
- updatedBy: "updated_by",
92
- impersonatedBy: "impersonated_by"
93
- })
94
- },
95
- claims: {
96
- ...DEFAULT_CLAIMS,
97
- ...config.claims
98
- },
99
- buckets: config.buckets ?? {},
100
- topics: config.topics ?? {},
101
- realtime: {
102
- tables: config.realtime?.tables ?? [],
103
- global: config.realtime?.global ?? []
104
- },
105
- entitlements: entitlementsOf(config.entitlements),
106
- permdock: {
107
- manifest: config.permdock?.manifest ?? "permdock.manifest.json",
108
- catalog: config.permdock?.catalog ?? "permissions.catalog.json"
109
- },
110
- vectorSearch: vectorSearchOf(config.vectorSearch),
111
- sql: {
112
- dir: config.sql?.dir ?? "supabase/schemas",
113
- prefix: config.sql?.prefix ?? "900_better_supabase",
114
- testsDir: config.sql?.testsDir ?? "supabase/tests",
115
- kit: config.sql?.kit ?? []
116
- },
117
- kits: config.kits ?? {},
118
- seed: {
119
- entry: config.seed?.entry ?? "supabase/seed.ts",
120
- output: config.seed?.output ?? "supabase/seeds/000_better_supabase.sql"
121
- },
122
- openapi: {
123
- entry: config.openapi?.entry ?? "src/lib/openapi.ts",
124
- output: config.openapi?.output ?? "openapi.json"
125
- },
126
- doctor: {
127
- ignore: config.doctor?.ignore ?? [],
128
- strict: config.doctor?.strict ?? false,
129
- sources: config.doctor?.sources ?? ["src/**/*.{ts,tsx}"],
130
- policyHelperLimit: config.doctor?.policyHelperLimit ?? 5,
131
- ...config.doctor?.claimsLimit === void 0 ? {} : { claimsLimit: config.doctor.claimsLimit }
132
- }
133
- };
134
- }
135
- //#endregion
136
- //#region src/config/kits.ts
137
- /** URL tenancy: the tenant comes from the request (a slug), not a stored setting. */
138
- const DEFAULT_ACTIVE_TENANT = "resolver";
139
- const KIT_SCHEMA = "better_supabase";
140
- function resolveKitModule(config = {}) {
141
- return {
142
- mode: config.mode ?? "managed",
143
- schema: config.schema ?? KIT_SCHEMA,
144
- tables: config.tables ?? {},
145
- columns: config.columns ?? {},
146
- ...config.idType === void 0 ? {} : { idType: config.idType },
147
- permissions: config.permissions ?? {},
148
- options: config.options ?? {},
149
- hooks: {
150
- schema: config.hooks?.schema ?? "public",
151
- functions: config.hooks?.functions ?? {}
152
- },
153
- events: config.events ?? true
154
- };
155
- }
156
- //#endregion
157
- export { resolveConfig as a, defineConfig as i, resolveKitModule as n, resolveJsonSchema as o, CONFIG_SCHEMA_URL as r, DEFAULT_ACTIVE_TENANT as t };
@@ -1,30 +0,0 @@
1
- import { _ as DbError } from "./executor-BunPOO-k.js";
2
- //#region src/auth/mfa.d.ts
3
- /** Authenticator assurance level: `aal2` once a second factor is verified in this session. */
4
- type Aal = "aal1" | "aal2";
5
- /** One way the user proved who they are in this session (the JWT `amr` claim). */
6
- interface AmrEntry {
7
- /** `password`, `otp`, `oauth`, `totp`, `sso/saml`, `anonymous`, ... */
8
- readonly method: string;
9
- /** Seconds since epoch. */
10
- readonly timestamp: number;
11
- /** SSO provider id, for `sso/saml`. */
12
- readonly provider?: string;
13
- }
14
- /** The session's assurance level from its claims; anything but `aal2` reads as `aal1`. */
15
- declare function aalOf(claims: Readonly<Record<string, unknown>>): Aal;
16
- /** The `amr` claim as typed entries, skipping malformed ones. */
17
- declare function amrOf(claims: Readonly<Record<string, unknown>>): readonly AmrEntry[];
18
- /**
19
- * `undefined` when a user session meets `required`; otherwise a `forbidden`
20
- * error with `required` and code `INSUFFICIENT_AAL`, for the client to start
21
- * an MFA challenge. Non-user sessions pass: `allow` decides about them.
22
- */
23
- declare function checkAal(auth: {
24
- readonly kind: "user";
25
- readonly claims: object;
26
- } | {
27
- readonly kind: string;
28
- }, required: Aal): DbError | undefined;
29
- //#endregion
30
- export { checkAal as a, amrOf as i, AmrEntry as n, aalOf as r, Aal as t };
@@ -1,162 +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
- import { a as NotificationSubject, i as NotificationItem, n as NotificationMessage, o as RenderedText, r as NotificationSendResult, t as NotificationChannel } from "../channel-FQW-CnGR.js";
7
- import { StandardSchemaV1 } from "@standard-schema/spec";
8
- //#region src/notifications/notifications.d.ts
9
- /** Notification type to the Standard Schema of its `data`. */
10
- type NotificationTypes = Readonly<Record<string, StandardSchemaV1>>;
11
- type TypeName<K extends NotificationTypes> = keyof K & string;
12
- interface SendInput<D = unknown> {
13
- /** Who gets it. Watchers of `subject` and the `notification_audience` hook add more. */
14
- readonly recipients?: readonly string[];
15
- /** The organization; required when an authenticated user sends. */
16
- readonly tenant?: string;
17
- readonly subject?: NotificationSubject;
18
- readonly summary?: string;
19
- readonly actionPath?: string;
20
- /** One of `kits.notifications.options.priorities`. Defaults to `normal`. */
21
- readonly priority?: string;
22
- readonly data: D;
23
- /** With a key, sending again (per tenant) returns the first notification. */
24
- readonly key?: string;
25
- /** Defaults to `kits.notifications.options.channels`. */
26
- readonly channels?: readonly string[];
27
- /** Also notify the user who caused it. Defaults to `false`. */
28
- readonly includeActor?: boolean;
29
- /**
30
- * `participating` (default) reaches subject watchers at both levels;
31
- * `all` is routine activity that only `all` watchers get.
32
- */
33
- readonly activity?: "participating" | "all";
34
- /** Create it already resolved, e.g. for a record of a finished approval. */
35
- readonly resolved?: boolean;
36
- /** The actor, when the service sends on a user's behalf. */
37
- readonly actorId?: string;
38
- }
39
- interface ListOptions<K extends string = string> {
40
- readonly tenant?: string;
41
- readonly status?: "all" | "unread" | "read" | "unresolved";
42
- readonly types?: readonly K[];
43
- /**
44
- * Page: only notifications older than this. Pass the last item of the
45
- * previous page; a bare instant skips items created at that same instant.
46
- */
47
- readonly before?: Temporal.Instant | Pick<NotificationItem, "createdAt" | "id">;
48
- /** Up to 200. Defaults to 50. */
49
- readonly limit?: number;
50
- /** Passed to `render`. */
51
- readonly locale?: string;
52
- }
53
- interface NotificationCounts {
54
- readonly unread: number;
55
- /** Unresolved notifications of the `actionable` types. */
56
- readonly actionable: number;
57
- }
58
- type SubscriptionLevel = "participating" | "all" | "ignore";
59
- interface DeliverOptions {
60
- /** Channel names to work on. Defaults to every channel in `channels`. */
61
- readonly channels?: readonly string[];
62
- /** Deliveries per claim. Defaults to 50. */
63
- readonly batch?: number;
64
- /** How long a claimed delivery waits before another worker retries it. */
65
- readonly lease?: string;
66
- /**
67
- * Tries before a delivery is `failed`. Defaults to 5. Retries wait a random
68
- * time up to 30 seconds, doubling per attempt to an hour.
69
- */
70
- readonly maxAttempts?: number;
71
- readonly budgetMs?: number;
72
- }
73
- interface DeliverResult {
74
- readonly sent: number;
75
- readonly skipped: number;
76
- /** Deliveries that threw; retried later unless they ran out of attempts. */
77
- readonly failed: number;
78
- }
79
- interface Rendered<K extends string = string, D = unknown> extends NotificationItem<K, D> {
80
- /** What `render` returned. Absent without a `render` option. */
81
- readonly text?: RenderedText;
82
- }
83
- interface NotificationsOptions<K extends NotificationTypes> {
84
- /** `sqlTransport(postgres.asUser(claims))`, or over `postgres.admin` for the service. */
85
- readonly transport: KitTransport;
86
- /** Each type's `data` schema: `send` validates against it. */
87
- readonly types: K;
88
- /** `kits.notifications.schema`. Defaults to `better_supabase`. */
89
- readonly schema?: string;
90
- /** Turns a notification into text at read time, in the reader's locale. */
91
- readonly render?: (item: NotificationItem, context: {
92
- readonly locale?: string;
93
- }) => RenderedText;
94
- /** Types that wait for an action; `counts().actionable` counts them. */
95
- readonly actionable?: readonly TypeName<K>[];
96
- /** Senders for the non-`in_app` channels, used by `deliver()`. */
97
- readonly channels?: readonly NotificationChannel[];
98
- /** Runs after a notification is stored, e.g. to call Next's `updateTag`. */
99
- readonly onSent?: (sent: {
100
- readonly id: string;
101
- readonly type: string;
102
- readonly tenant: string | null;
103
- readonly recipients: readonly string[];
104
- }) => void | Promise<void>;
105
- /** `betterSupabase.events`, for `notification.*` kit events. */
106
- readonly events?: EventHub;
107
- readonly actorId?: string;
108
- readonly context?: RequestContext;
109
- readonly errorMappers?: readonly ErrorMapper[];
110
- }
111
- /**
112
- * The `notifications` SQL kit module as typed calls. `send` validates the
113
- * data against its type's schema; the database checks the send permission,
114
- * leaves out the actor and non-members and applies subscriptions and
115
- * preferences.
116
- */
117
- interface Notifications<K extends NotificationTypes> {
118
- /** The notification id, or `null` when nobody was left to notify. */
119
- send<N extends TypeName<K>>(type: N, input: SendInput<StandardSchemaV1.InferInput<K[N]>>): AsyncResult<string | null>;
120
- list(options?: ListOptions<TypeName<K>>): AsyncResult<readonly Rendered<TypeName<K>>[]>;
121
- counts(options?: {
122
- readonly tenant?: string;
123
- }): AsyncResult<NotificationCounts>;
124
- /** Marks the given notifications, or all of them, read. */
125
- markRead(options?: {
126
- readonly ids?: readonly string[];
127
- readonly tenant?: string;
128
- }): AsyncResult<number>;
129
- dismiss(ids: readonly string[]): AsyncResult<number>;
130
- /** Resolves every recipient's notification of a type about a subject. */
131
- resolve(input: {
132
- readonly type: TypeName<K>;
133
- readonly subject: NotificationSubject;
134
- readonly tenant?: string;
135
- }): AsyncResult<number>;
136
- /** Sets the user's level for a subject; `null` removes it. */
137
- subscribe(input: {
138
- readonly subject: NotificationSubject;
139
- readonly level: SubscriptionLevel | null;
140
- readonly tenant?: string;
141
- /** Another member; only the service can set it. */
142
- readonly userId?: string;
143
- }): AsyncResult<void>;
144
- /** Turns a type (`*` for all) on or off on a channel; `null` removes it. */
145
- setPreference(input: {
146
- readonly type: TypeName<K> | "*";
147
- readonly channel: string;
148
- readonly enabled: boolean | null;
149
- /** One organization, or everywhere when omitted. */
150
- readonly tenant?: string;
151
- }): AsyncResult<void>;
152
- /** Sends pending deliveries through `channels`. Run it from a cron or a job. */
153
- deliver(options?: DeliverOptions): Promise<DeliverResult>;
154
- /**
155
- * Deletes up to `batch` (10,000) notifications older than `olderThan`
156
- * (`90 days`) with their recipients and deliveries. Service only.
157
- */
158
- purge(olderThan?: string, batch?: number): AsyncResult<number>;
159
- }
160
- export declare function createNotifications<const K extends NotificationTypes>(options: NotificationsOptions<K>): Notifications<K>;
161
- //#endregion
162
- export { type DeliverOptions, type DeliverResult, type KitTransport, type ListOptions, type NotificationChannel, type NotificationCounts, type NotificationItem, type NotificationMessage, type NotificationSendResult, type NotificationSubject, type NotificationTypes, type Notifications, type NotificationsOptions, type Rendered, type RenderedText, type RpcClient, type SendInput, type SubscriptionLevel, rpcTransport, sqlTransport };