better-supabase 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/README.md +299 -41
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/actor-CQTlc1Hh.d.ts +43 -0
  4. package/dist/adapter-Bc1o3zyy.js +1106 -0
  5. package/dist/agents-CVHGd7It.d.ts +94 -0
  6. package/dist/ai-cache-CBWs1W0k.js +80 -0
  7. package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
  8. package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
  9. package/dist/ai-chat-B24UI962.js +743 -0
  10. package/dist/ai-files-CSPNswUY.js +319 -0
  11. package/dist/ai-sdk/agents/index.d.ts +74 -0
  12. package/dist/ai-sdk/agents/index.js +159 -0
  13. package/dist/ai-sdk/batches/index.d.ts +74 -0
  14. package/dist/ai-sdk/batches/index.js +180 -0
  15. package/dist/ai-sdk/cache/index.d.ts +38 -0
  16. package/dist/ai-sdk/cache/index.js +127 -0
  17. package/dist/ai-sdk/chat/index.d.ts +2 -0
  18. package/dist/ai-sdk/chat/index.js +246 -0
  19. package/dist/ai-sdk/embeddings/index.d.ts +3 -0
  20. package/dist/ai-sdk/embeddings/index.js +2 -0
  21. package/dist/ai-sdk/files/index.d.ts +61 -0
  22. package/dist/ai-sdk/files/index.js +111 -0
  23. package/dist/ai-sdk/index.d.ts +145 -0
  24. package/dist/ai-sdk/index.js +174 -0
  25. package/dist/ai-sdk/mcp/index.d.ts +102 -0
  26. package/dist/ai-sdk/mcp/index.js +362 -0
  27. package/dist/ai-sdk/memory/index.d.ts +67 -0
  28. package/dist/ai-sdk/memory/index.js +175 -0
  29. package/dist/ai-sdk/react/index.d.ts +2 -0
  30. package/dist/ai-sdk/react/index.js +3 -0
  31. package/dist/ai-sdk/react/server.d.ts +6 -0
  32. package/dist/ai-sdk/react/server.js +7 -0
  33. package/dist/ai-sdk/workflow/index.d.ts +249 -0
  34. package/dist/ai-sdk/workflow/index.js +575 -0
  35. package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
  36. package/dist/ai-sdk/workflow/react/index.js +66 -0
  37. package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
  38. package/dist/ai-sdk/workflow/react/server.js +12 -0
  39. package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
  40. package/dist/announcements-CiyOs-xP.js +107 -0
  41. package/dist/announcements-ZRGnScWI.d.ts +72 -0
  42. package/dist/api-keys-rCGtKaZA.d.ts +156 -0
  43. package/dist/assistant-DwdpDH1q.d.ts +147 -0
  44. package/dist/astro/index.d.ts +86 -0
  45. package/dist/astro/index.js +93 -0
  46. package/dist/attributes-5dYul0u0.js +13 -0
  47. package/dist/auth-link-BjFPqwLz.d.ts +97 -0
  48. package/dist/auth-link-DrDX9KOT.js +114 -0
  49. package/dist/authorization-BFCqamMs.d.ts +172 -0
  50. package/dist/before-route-CnR0C0Jr.js +30 -0
  51. package/dist/bind-Bu_ZNa3W.d.ts +62 -0
  52. package/dist/bind-l4kAvYSv.js +97 -0
  53. package/dist/block-events-CrT8r7Fe.js +76 -0
  54. package/dist/block-fields-GFkxl4dP.js +49 -0
  55. package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
  56. package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
  57. package/dist/block-helpers-DWHxHsEQ.js +190 -0
  58. package/dist/block-hooks-BmjMyXTa.js +114 -0
  59. package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
  60. package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
  61. package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
  62. package/dist/blocks/agents/index.d.ts +3 -0
  63. package/dist/blocks/agents/index.js +123 -0
  64. package/dist/blocks/ai-cache/index.d.ts +3 -0
  65. package/dist/blocks/ai-cache/index.js +3 -0
  66. package/dist/blocks/ai-chat/index.d.ts +31 -0
  67. package/dist/blocks/ai-chat/index.js +5 -0
  68. package/dist/blocks/ai-chat/react/index.d.ts +77 -0
  69. package/dist/blocks/ai-chat/react/index.js +387 -0
  70. package/dist/blocks/ai-chat/react/server.d.ts +16 -0
  71. package/dist/blocks/ai-chat/react/server.js +14 -0
  72. package/dist/blocks/ai-files/index.d.ts +14 -0
  73. package/dist/blocks/ai-files/index.js +3 -0
  74. package/dist/blocks/ai-providers/index.d.ts +7 -0
  75. package/dist/blocks/ai-providers/index.js +211 -0
  76. package/dist/blocks/ai-tasks/index.d.ts +3 -0
  77. package/dist/blocks/ai-tasks/index.js +203 -0
  78. package/dist/blocks/announcements/index.d.ts +3 -0
  79. package/dist/blocks/announcements/index.js +3 -0
  80. package/dist/blocks/announcements/react/index.d.ts +31 -0
  81. package/dist/blocks/announcements/react/index.js +86 -0
  82. package/dist/blocks/announcements/react/server.d.ts +6 -0
  83. package/dist/blocks/announcements/react/server.js +7 -0
  84. package/dist/blocks/api-keys/index.d.ts +35 -0
  85. package/dist/blocks/api-keys/index.js +334 -0
  86. package/dist/blocks/attachments/index.d.ts +210 -0
  87. package/dist/blocks/attachments/index.js +222 -0
  88. package/dist/blocks/audit/index.d.ts +366 -0
  89. package/dist/blocks/audit/index.js +714 -0
  90. package/dist/blocks/billing/index.d.ts +265 -0
  91. package/dist/blocks/billing/index.js +400 -0
  92. package/dist/blocks/comments/index.d.ts +200 -0
  93. package/dist/blocks/comments/index.js +207 -0
  94. package/dist/blocks/connectors/index.d.ts +3 -0
  95. package/dist/blocks/connectors/index.js +164 -0
  96. package/dist/blocks/data-lifecycle/index.d.ts +251 -0
  97. package/dist/blocks/data-lifecycle/index.js +353 -0
  98. package/dist/blocks/entitlements/index.d.ts +14 -0
  99. package/dist/blocks/entitlements/index.js +25 -0
  100. package/dist/blocks/flags/index.d.ts +226 -0
  101. package/dist/blocks/flags/index.js +282 -0
  102. package/dist/blocks/inbox/index.d.ts +6 -0
  103. package/dist/blocks/inbox/index.js +499 -0
  104. package/dist/blocks/inbox/react/index.d.ts +2 -0
  105. package/dist/blocks/inbox/react/index.js +225 -0
  106. package/dist/blocks/inbox/react/server.d.ts +10 -0
  107. package/dist/blocks/inbox/react/server.js +12 -0
  108. package/dist/blocks/index.d.ts +65 -0
  109. package/dist/blocks/index.js +77 -0
  110. package/dist/blocks/jobs/index.d.ts +297 -0
  111. package/dist/blocks/jobs/index.js +1051 -0
  112. package/dist/blocks/knowledge/index.d.ts +3 -0
  113. package/dist/blocks/knowledge/index.js +3 -0
  114. package/dist/blocks/memory/index.d.ts +8 -0
  115. package/dist/blocks/memory/index.js +289 -0
  116. package/dist/blocks/notifications/index.d.ts +297 -0
  117. package/dist/blocks/notifications/index.js +425 -0
  118. package/dist/blocks/notifications/react/index.d.ts +44 -0
  119. package/dist/blocks/notifications/react/index.js +67 -0
  120. package/dist/blocks/notifications/react/server.d.ts +6 -0
  121. package/dist/blocks/notifications/react/server.js +7 -0
  122. package/dist/blocks/onboarding/index.d.ts +3 -0
  123. package/dist/blocks/onboarding/index.js +64 -0
  124. package/dist/blocks/onboarding/react/index.d.ts +28 -0
  125. package/dist/blocks/onboarding/react/index.js +78 -0
  126. package/dist/blocks/onboarding/react/server.d.ts +7 -0
  127. package/dist/blocks/onboarding/react/server.js +7 -0
  128. package/dist/blocks/organizations/index.d.ts +241 -0
  129. package/dist/blocks/organizations/index.js +400 -0
  130. package/dist/blocks/outbox/index.d.ts +3 -0
  131. package/dist/blocks/outbox/index.js +266 -0
  132. package/dist/blocks/profiles/index.d.ts +40 -0
  133. package/dist/blocks/profiles/index.js +28 -0
  134. package/dist/blocks/push/index.d.ts +185 -0
  135. package/dist/blocks/push/index.js +258 -0
  136. package/dist/blocks/settings/index.d.ts +89 -0
  137. package/dist/blocks/settings/index.js +104 -0
  138. package/dist/blocks/sso/index.d.ts +198 -0
  139. package/dist/blocks/sso/index.js +1297 -0
  140. package/dist/blocks/usage/index.d.ts +4 -0
  141. package/dist/blocks/usage/index.js +233 -0
  142. package/dist/blocks/waitlist/index.d.ts +117 -0
  143. package/dist/blocks/waitlist/index.js +132 -0
  144. package/dist/blocks/webhooks/index.d.ts +304 -0
  145. package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
  146. package/dist/blocks/workflow-builder/index.d.ts +21 -0
  147. package/dist/blocks/workflow-builder/index.js +5 -0
  148. package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
  149. package/dist/blocks/workflow-builder/react/index.js +119 -0
  150. package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
  151. package/dist/blocks/workflow-builder/react/server.js +11 -0
  152. package/dist/blocks/workflows/index.d.ts +3 -0
  153. package/dist/blocks/workflows/index.js +3 -0
  154. package/dist/blocks/workflows/react/index.d.ts +47 -0
  155. package/dist/blocks/workflows/react/index.js +137 -0
  156. package/dist/blocks/workflows/react/server.d.ts +8 -0
  157. package/dist/blocks/workflows/react/server.js +11 -0
  158. package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
  159. package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
  160. package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
  161. package/dist/channels-CkgQ_X60.js +114 -0
  162. package/dist/chat-sdk/index.d.ts +303 -0
  163. package/dist/chat-sdk/index.js +733 -0
  164. package/dist/chat-sdk/react/index.d.ts +2 -0
  165. package/dist/chat-sdk/react/index.js +3 -0
  166. package/dist/chat-sdk/react/server.d.ts +3 -0
  167. package/dist/chat-sdk/react/server.js +2 -0
  168. package/dist/claims-DDBQT6BK.js +61 -0
  169. package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
  170. package/dist/cli/bin.js +1 -1
  171. package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
  172. package/dist/cli/config-B9HkL8nF.js +2 -0
  173. package/dist/cli/config-DU7EJImt.js +49 -0
  174. package/dist/cli/config-NiPxAmUF.js +1077 -0
  175. package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
  176. package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
  177. package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
  178. package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
  179. package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
  180. package/dist/cli/gen-BGLb_zou.js +3100 -0
  181. package/dist/cli/gen-DAH8FM2W.js +2 -0
  182. package/dist/cli/index.d.ts +44 -5
  183. package/dist/cli/index.js +7 -7
  184. package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
  185. package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
  186. package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
  187. package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
  188. package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
  189. package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
  190. package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
  191. package/dist/cli/read-sets-CETOSFx4.js +223 -0
  192. package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
  193. package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
  194. package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
  195. package/dist/cli/sql-D0GUtUPp.js +536 -0
  196. package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
  197. package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
  198. package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
  199. package/dist/client/index.d.ts +3 -2
  200. package/dist/client/index.js +11 -71
  201. package/dist/client/native/index.d.ts +228 -0
  202. package/dist/client/native/index.js +361 -0
  203. package/dist/client-CI0Z2zWX.js +277 -0
  204. package/dist/cloud-event-BnmD5fb9.js +46 -0
  205. package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
  206. package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
  207. package/dist/compose-BIBNgAnq.js +53 -0
  208. package/dist/composite-Bt1YK3Ke.d.ts +146 -0
  209. package/dist/composite-DhE66P5u.js +130 -0
  210. package/dist/config/index.d.ts +6 -4
  211. package/dist/config/index.js +5 -5
  212. package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
  213. package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
  214. package/dist/connector-Dv8kK0MO.d.ts +107 -0
  215. package/dist/connectors-hkLCwyEz.d.ts +120 -0
  216. package/dist/context-BCrWe7ow.d.ts +237 -0
  217. package/dist/credentials/index.d.ts +31 -0
  218. package/dist/credentials/index.js +168 -0
  219. package/dist/cron-DVPUg5k3.js +145 -0
  220. package/dist/csv-CPAzEmB6.js +25 -0
  221. package/dist/db-exception-CnWcYPxL.js +15 -0
  222. package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
  223. package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
  224. package/dist/edge/index.d.ts +69 -11
  225. package/dist/edge/index.js +191 -75
  226. package/dist/elysia/index.d.ts +59 -0
  227. package/dist/elysia/index.js +62 -0
  228. package/dist/embeddings-4ZvFzjsU.js +127 -0
  229. package/dist/embeddings-C9KGQnXt.d.ts +68 -0
  230. package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
  232. package/dist/entitlements-DRl6ZJUm.js +24 -0
  233. package/dist/envelope-DqnYGRw7.js +47 -0
  234. package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
  235. package/dist/errors-DLjJHPLK.js +44 -0
  236. package/dist/escape-like-DHfx6jRr.js +7 -0
  237. package/dist/escape-like-ImTK0ps_.d.ts +15 -0
  238. package/dist/eve/index.d.ts +220 -0
  239. package/dist/eve/index.js +504 -0
  240. package/dist/eve-gT2Fpjut.d.ts +151 -0
  241. package/dist/events/index.d.ts +4 -3
  242. package/dist/events/index.js +9 -50
  243. package/dist/events-DWDhx77e.d.ts +549 -0
  244. package/dist/executor-Bq28caBo.js +718 -0
  245. package/dist/executor-C-R4pucm.js +83 -0
  246. package/dist/executor-CaWigTyR.d.ts +148 -0
  247. package/dist/executor-D14tGopJ.d.ts +36 -0
  248. package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
  249. package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
  250. package/dist/executor-DvsBbNBS.d.ts +261 -0
  251. package/dist/expo/index.d.ts +79 -0
  252. package/dist/expo/index.js +129 -0
  253. package/dist/expo-sqlite/index.d.ts +58 -0
  254. package/dist/expo-sqlite/index.js +104 -0
  255. package/dist/field-errors-BFOa7WhB.d.ts +99 -0
  256. package/dist/field-errors-VF1yb8yI.js +13 -0
  257. package/dist/framework-CONDyPYx.js +51 -0
  258. package/dist/framework-DuVb4Xa8.d.ts +25 -0
  259. package/dist/gateway-C1ssRHnf.d.ts +130 -0
  260. package/dist/graph-BGyLLFLX.js +265 -0
  261. package/dist/h3/index.d.ts +59 -0
  262. package/dist/h3/index.js +55 -0
  263. package/dist/h3/v1/index.d.ts +63 -0
  264. package/dist/h3/v1/index.js +49 -0
  265. package/dist/history-BZih6SFP.js +64 -0
  266. package/dist/hono/index.d.ts +56 -7
  267. package/dist/hono/index.js +97 -45
  268. package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
  269. package/dist/http-Cv4T29xh.js +40 -0
  270. package/dist/http-DdYadv-o.js +126 -0
  271. package/dist/image-url-pIVlO6R1.js +41 -0
  272. package/dist/impersonation-DcqaTBHx.js +148 -0
  273. package/dist/inbox-i7E1ppo6.d.ts +384 -0
  274. package/dist/index-ACiNPN4Z.d.ts +74 -0
  275. package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
  276. package/dist/index-BkWT_uBO.d.ts +51 -0
  277. package/dist/index-BpFYMsi0.d.ts +53 -0
  278. package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
  279. package/dist/index-CaxrMD1A.d.ts +1 -0
  280. package/dist/index-ClmjK_o-.d.ts +55 -0
  281. package/dist/index-CtuakVRc.d.ts +267 -0
  282. package/dist/index-D48jVS-N.d.ts +246 -0
  283. package/dist/index-DDrYaUcq.d.ts +138 -0
  284. package/dist/index-DQh4VCc9.d.ts +98 -0
  285. package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
  286. package/dist/index.d.ts +65 -18
  287. package/dist/index.js +42 -14
  288. package/dist/invalidate-BBqhpxyB.d.ts +19 -0
  289. package/dist/json-CEnpTHlZ.js +16 -0
  290. package/dist/json-schema-CvER4kgT.js +502 -0
  291. package/dist/keys-4MnkWTTh.js +35 -0
  292. package/dist/kit-B5tid-q5.d.ts +60 -0
  293. package/dist/kit-Fm-Fv7q5.js +78 -0
  294. package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
  295. package/dist/knowledge-CDmiMLew.js +255 -0
  296. package/dist/lint/index.d.ts +1 -1
  297. package/dist/lint/index.js +37 -0
  298. package/dist/list/index.d.ts +3 -2
  299. package/dist/list/index.js +1 -444
  300. package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
  301. package/dist/list-query-gl808ac1.js +459 -0
  302. package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
  303. package/dist/logger-DWVYUmwi.d.ts +18 -0
  304. package/dist/mcp/index.d.ts +38 -11
  305. package/dist/mcp/index.js +82 -46
  306. package/dist/mcp/sdk/index.d.ts +105 -0
  307. package/dist/mcp/sdk/index.js +126 -0
  308. package/dist/message-CaKlqdsX.js +219 -0
  309. package/dist/message-CfDoR0Y6.d.ts +94 -0
  310. package/dist/messages-B9-5887d.js +715 -0
  311. package/dist/messages-DYP0sUTe.d.ts +59 -0
  312. package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
  313. package/dist/modules-DpPwzC7E.d.ts +192 -0
  314. package/dist/modules-dxrVK3ID.js +228 -0
  315. package/dist/nestjs/index.d.ts +68 -0
  316. package/dist/nestjs/index.js +164 -0
  317. package/dist/next/client/index.d.ts +35 -0
  318. package/dist/next/client/index.js +36 -0
  319. package/dist/next/image/index.js +3 -24
  320. package/dist/next/index.d.ts +150 -51
  321. package/dist/next/index.js +261 -107
  322. package/dist/node/index.d.ts +4 -0
  323. package/dist/node/index.js +210 -0
  324. package/dist/node-headers-AO06VhqH.d.ts +24 -0
  325. package/dist/node-headers-C71zNQHe.js +55 -0
  326. package/dist/nuxt/index.d.ts +60 -0
  327. package/dist/nuxt/index.js +64 -0
  328. package/dist/onboarding-BZGHYJks.d.ts +62 -0
  329. package/dist/openapi/index.d.ts +1 -1
  330. package/dist/openapi/index.js +3 -3
  331. package/dist/orpc/index.d.ts +70 -11
  332. package/dist/orpc/index.js +73 -24
  333. package/dist/otel/index.d.ts +7 -7
  334. package/dist/otel/index.js +87 -57
  335. package/dist/outbox-Cq7pPYvl.d.ts +161 -0
  336. package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
  337. package/dist/plugin-tfXW1-qO.js +45 -0
  338. package/dist/plugins/actor/index.d.ts +2 -2
  339. package/dist/plugins/actor/index.js +3 -3
  340. package/dist/plugins/rules/index.d.ts +11 -4
  341. package/dist/plugins/rules/index.js +40 -13
  342. package/dist/plugins/soft-delete/index.d.ts +5 -4
  343. package/dist/plugins/soft-delete/index.js +10 -5
  344. package/dist/plugins/tenant/index.d.ts +2 -2
  345. package/dist/plugins/tenant/index.js +18 -11
  346. package/dist/plugins/timestamps/index.d.ts +5 -3
  347. package/dist/plugins/timestamps/index.js +6 -4
  348. package/dist/plugins/validation/index.d.ts +2 -2
  349. package/dist/plugins/validation/index.js +10 -6
  350. package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
  351. package/dist/postgres/index.d.ts +4 -4
  352. package/dist/postgres/index.js +1 -2
  353. package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
  354. package/dist/powersync/index.d.ts +43 -0
  355. package/dist/powersync/index.js +199 -0
  356. package/dist/powersync/react/index.d.ts +87 -0
  357. package/dist/powersync/react/index.js +108 -0
  358. package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
  359. package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
  360. package/dist/provider-BH5UWZJ6.d.ts +113 -0
  361. package/dist/provider-Di3sRutW.js +57 -0
  362. package/dist/query/index.d.ts +4 -2
  363. package/dist/query/index.js +4 -3
  364. package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
  365. package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
  366. package/dist/react/index.d.ts +11 -7
  367. package/dist/react/index.js +7 -3
  368. package/dist/react/native/index.d.ts +116 -0
  369. package/dist/react/native/index.js +130 -0
  370. package/dist/react/server.d.ts +28 -10
  371. package/dist/react/server.js +22 -5
  372. package/dist/react/session.d.ts +2 -2
  373. package/dist/react-4ZqkP8da.js +79 -0
  374. package/dist/react-F80mF4-t.js +409 -0
  375. package/dist/react-router/index.d.ts +83 -0
  376. package/dist/react-router/index.js +89 -0
  377. package/dist/react-topic-seAWjL3_.js +38 -0
  378. package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
  379. package/dist/realtime/index.d.ts +4 -5
  380. package/dist/realtime/index.js +144 -82
  381. package/dist/refusal-CeJWxmkH.js +61 -0
  382. package/dist/refusal-D1rgbzNq.d.ts +15 -0
  383. package/dist/replicas-CwrYp5Zj.js +94 -0
  384. package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
  385. package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
  386. package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
  388. package/dist/respond-BUgsXNgk.js +91 -0
  389. package/dist/respond-DoBijysA.d.ts +93 -0
  390. package/dist/result-D7y2fT87.d.ts +282 -0
  391. package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
  392. package/dist/run-state-CPo-1X2B.d.ts +12 -0
  393. package/dist/run-state-CgBKzYMW.js +13 -0
  394. package/dist/search-CUWCRYKL.js +9 -0
  395. package/dist/server/index.d.ts +143 -21
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
  398. package/dist/session-ChiXDZdZ.d.ts +72 -0
  399. package/dist/shared-CBxosKK3.js +75 -0
  400. package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
  401. package/dist/shared-DDSjEGDR.d.ts +11 -0
  402. package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
  403. package/dist/sign-in-Cb1mwv6X.js +86 -0
  404. package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
  405. package/dist/simplify-DDO0j0LI.js +83 -0
  406. package/dist/solid/index.d.ts +131 -0
  407. package/dist/solid/index.js +344 -0
  408. package/dist/solid-start/index.d.ts +75 -0
  409. package/dist/solid-start/index.js +58 -0
  410. package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
  411. package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
  412. package/dist/sql/index.d.ts +330 -194
  413. package/dist/sql/index.js +34901 -6489
  414. package/dist/ssr/index.d.ts +6 -5
  415. package/dist/ssr/index.js +3 -3
  416. package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
  417. package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
  418. package/dist/stats-D_AD9GGu.js +1123 -0
  419. package/dist/storage/index.d.ts +5 -5
  420. package/dist/storage/index.js +1027 -368
  421. package/dist/store-BdH5ruDx.js +66 -0
  422. package/dist/store-CGjgWu5n.d.ts +68 -0
  423. package/dist/streams/index.d.ts +76 -0
  424. package/dist/streams/index.js +77 -0
  425. package/dist/streams/redis/index.d.ts +52 -0
  426. package/dist/streams/redis/index.js +185 -0
  427. package/dist/stripe-BMj5LtsT.js +38 -0
  428. package/dist/stripe-D04h-QBT.d.ts +136 -0
  429. package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
  430. package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  431. package/dist/svelte/index.d.ts +114 -0
  432. package/dist/svelte/index.js +344 -0
  433. package/dist/sveltekit/index.d.ts +116 -0
  434. package/dist/sveltekit/index.js +106 -0
  435. package/dist/tags-B99_U9Pp.js +39 -0
  436. package/dist/tags-Cx-LnIQP.d.ts +30 -0
  437. package/dist/tanstack-db/index.d.ts +71 -0
  438. package/dist/tanstack-db/index.js +72 -0
  439. package/dist/tanstack-start/index.d.ts +75 -0
  440. package/dist/tanstack-start/index.js +95 -0
  441. package/dist/tee-CoEppCER.js +101 -0
  442. package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
  443. package/dist/template-CwO38Do8.d.ts +6 -0
  444. package/dist/temporal-BJGitm-h.js +79 -0
  445. package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
  446. package/dist/tenant-I1TEZ_BX.js +27 -0
  447. package/dist/tenant-icPeuUBN.d.ts +17 -0
  448. package/dist/testing/index.d.ts +343 -37
  449. package/dist/testing/index.js +1186 -79
  450. package/dist/timing-CyTQPubY.js +92 -0
  451. package/dist/ttl-Hr34gRu8.js +12 -0
  452. package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
  453. package/dist/types-BI-0Sl2v.d.ts +359 -0
  454. package/dist/types-C05bxW-W.d.ts +220 -0
  455. package/dist/types-DGs5L0VN.d.ts +192 -0
  456. package/dist/types-TaiEeBGA.d.ts +156 -0
  457. package/dist/usage-CrvrL2vw.d.ts +177 -0
  458. package/dist/user-change-XzvgafU4.js +130 -0
  459. package/dist/vault-CSO7ss5C.d.ts +50 -0
  460. package/dist/vercel-connect/index.d.ts +47 -0
  461. package/dist/vercel-connect/index.js +119 -0
  462. package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
  463. package/dist/verify-DPuWngD4.d.ts +172 -0
  464. package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +470 -29
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +21 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +62 -18
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-BJc9vdyu.js +0 -2
  504. package/dist/cli/gen-C2osRcr5.js +0 -2204
  505. package/dist/cli/read-sets-BfMQcKy8.js +0 -289
  506. package/dist/cli/sql-DzPbfngx.js +0 -348
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/impersonation-VfaGc4Q_.js +0 -41
  512. package/dist/index-BGdgBPdf.d.ts +0 -161
  513. package/dist/index-DOESKG27.d.ts +0 -100
  514. package/dist/index-DmXSxbLi.d.ts +0 -62
  515. package/dist/index-Dxn2a5cw.d.ts +0 -50
  516. package/dist/jobs/index.d.ts +0 -226
  517. package/dist/jobs/index.js +0 -1007
  518. package/dist/json-schema-m1fiwKgN.js +0 -208
  519. package/dist/kit-events-CTFDfSwb.js +0 -60
  520. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  521. package/dist/kits-CGLLrNPd.js +0 -157
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-Csx2sRjg.js +0 -655
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-DT-OhSxD.d.ts +0 -88
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. package/skills/better-supabase-auth/references/permdock.md +0 -100
@@ -0,0 +1,210 @@
1
+ import { i as toResponse, t as around } from "../shared-CBxosKK3.js";
2
+ import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../refusal-CeJWxmkH.js";
3
+ import { t as beforeRoute } from "../before-route-CnR0C0Jr.js";
4
+ import { i as toWebHeaders, t as applyWebHeaders } from "../node-headers-C71zNQHe.js";
5
+ import { n as toWebRequest, t as sendWebResponse } from "../http-Cv4T29xh.js";
6
+ //#region src/node/index.ts
7
+ /**
8
+ * A `node:http` request listener running the entries around `handler`.
9
+ * Response-phase entries see the handler's response, so refreshed cookies
10
+ * and `withDbStats` totals reach the client.
11
+ *
12
+ * ```ts
13
+ * createServer(toNodeHandler([withBetterSupabase(server)], (request, { db }) => db.notes.findMany()))
14
+ * ```
15
+ */
16
+ function toNodeHandler(entries, handler, options = {}) {
17
+ const run = around(entries);
18
+ return async (req, res) => {
19
+ const request = toWebRequest(req, options);
20
+ const response = await run(request, options.env?.(req), async (contributions) => toResponse(await handler(request, contributions)));
21
+ await sendWebResponse(res, response);
22
+ };
23
+ }
24
+ /** Calls `next()` when `step` resolves true and `next(error)` when it rejects. */
25
+ async function continueWith(step, next) {
26
+ let proceed;
27
+ try {
28
+ proceed = await step;
29
+ } catch (error) {
30
+ next(error);
31
+ return;
32
+ }
33
+ if (proceed) next();
34
+ }
35
+ /**
36
+ * Express middleware that puts every contribution on `res.locals`
37
+ * (`res.locals.db`, `res.locals.bs`). Mount it before the routes.
38
+ *
39
+ * ```ts
40
+ * app.use(toExpress([withBetterSupabase(server)]))
41
+ * app.get('/notes', async (req, res) => res.json(await res.locals.db.notes.findMany().orThrow()))
42
+ * ```
43
+ */
44
+ function toExpress(entries, options = {}) {
45
+ const run = beforeRoute(entries);
46
+ const handle = async (req, res) => {
47
+ const outcome = await run(toWebRequest(req, {
48
+ ...options,
49
+ body: false
50
+ }), options.env?.(req));
51
+ if (!outcome.reached) {
52
+ await sendWebResponse(res, outcome.response);
53
+ return false;
54
+ }
55
+ applyWebHeaders(res, outcome.headers);
56
+ Object.assign(res.locals, outcome.contributions);
57
+ return true;
58
+ };
59
+ return (req, res, next) => {
60
+ continueWith(handle(req, res), next);
61
+ };
62
+ }
63
+ /**
64
+ * Express route middleware that refuses callers outside `options`:
65
+ * Problem Details, or a redirect to `signIn` or `mfa`. Runs after `toExpress`.
66
+ *
67
+ * ```ts
68
+ * app.get('/admin', guard({ roles: ['admin'] }), handler)
69
+ * ```
70
+ */
71
+ function guard(options = {}) {
72
+ const handle = async (req, res) => {
73
+ const refused = await routeRefusal(guardedLocals(res.locals), toWebRequest(req, { body: false }), options);
74
+ if (!refused) return true;
75
+ await sendWebResponse(res, refused);
76
+ return false;
77
+ };
78
+ return (req, res, next) => {
79
+ continueWith(handle(req, res), next);
80
+ };
81
+ }
82
+ /**
83
+ * An Express error handler that answers thrown `DbException`s (from
84
+ * `.orThrow()`) with Problem Details and passes every other error on.
85
+ * Register it after the routes.
86
+ */
87
+ function problemErrorHandler(options = {}) {
88
+ return (error, req, res, next) => {
89
+ const response = errorResponse(error, toWebRequest(req, { body: false }), options);
90
+ if (!response || res.headersSent) {
91
+ next(error);
92
+ return;
93
+ }
94
+ continueWith(sendWebResponse(res, response).then(() => false), next);
95
+ };
96
+ }
97
+ function replyHeaders(reply) {
98
+ return {
99
+ getHeader: (name) => reply.getHeader(name),
100
+ setHeader: (name, value) => {
101
+ reply.header(name, typeof value === "number" ? String(value) : value);
102
+ }
103
+ };
104
+ }
105
+ async function sendReply(reply, response) {
106
+ applyWebHeaders(replyHeaders(reply), response.headers);
107
+ reply.code(response.status);
108
+ const body = response.body ? new Uint8Array(await response.arrayBuffer()) : void 0;
109
+ reply.send(body);
110
+ }
111
+ /**
112
+ * A Fastify `onRequest` hook that puts every contribution on
113
+ * `request.locals`. Declare `locals` with `app.decorateRequest('locals', null)`.
114
+ *
115
+ * ```ts
116
+ * app.decorateRequest('locals', null)
117
+ * app.addHook('onRequest', toFastify([withBetterSupabase(server)]))
118
+ * app.get('/notes', (request) => request.locals.db.notes.findMany().orThrow())
119
+ * ```
120
+ */
121
+ function toFastify(entries, options = {}) {
122
+ const run = beforeRoute(entries);
123
+ return async (request, reply) => {
124
+ const web = toWebRequest(request.raw, {
125
+ ...options,
126
+ body: false
127
+ });
128
+ const outcome = await run(web, options.env?.(request));
129
+ if (!outcome.reached) {
130
+ await sendReply(reply, outcome.response);
131
+ return;
132
+ }
133
+ applyWebHeaders(replyHeaders(reply), outcome.headers);
134
+ request.locals = {
135
+ ...request.locals,
136
+ ...outcome.contributions
137
+ };
138
+ };
139
+ }
140
+ /**
141
+ * A Fastify `preHandler` hook that refuses callers outside `options`. Runs
142
+ * after `toFastify`.
143
+ */
144
+ function fastifyGuard(options = {}) {
145
+ return async (request, reply) => {
146
+ const refused = await routeRefusal(guardedLocals(request.locals ?? {}), toWebRequest(request.raw, { body: false }), options);
147
+ if (refused) await sendReply(reply, refused);
148
+ };
149
+ }
150
+ function koaHeaders(ctx) {
151
+ return {
152
+ getHeader: (name) => {
153
+ const value = ctx.response.get(name);
154
+ return value === "" ? void 0 : value;
155
+ },
156
+ setHeader: (name, value) => {
157
+ ctx.set(name, typeof value === "number" ? String(value) : value);
158
+ }
159
+ };
160
+ }
161
+ async function sendKoa(ctx, response) {
162
+ applyWebHeaders(koaHeaders(ctx), response.headers);
163
+ ctx.status = response.status;
164
+ ctx.body = response.body ? Buffer.from(await response.arrayBuffer()) : null;
165
+ }
166
+ /**
167
+ * Koa middleware that puts every contribution on `ctx.state`, then awaits
168
+ * the rest of the chain. Thrown `DbException`s become Problem Details.
169
+ *
170
+ * ```ts
171
+ * app.use(toKoa([withBetterSupabase(server)]))
172
+ * app.use(async (ctx) => { ctx.body = await ctx.state.db.notes.findMany().orThrow() })
173
+ * ```
174
+ */
175
+ function toKoa(entries, options = {}) {
176
+ const run = beforeRoute(entries);
177
+ return async (ctx, next) => {
178
+ const web = toWebRequest(ctx.req, {
179
+ ...options,
180
+ body: false
181
+ });
182
+ const outcome = await run(web, options.env?.(ctx));
183
+ if (!outcome.reached) {
184
+ await sendKoa(ctx, outcome.response);
185
+ return;
186
+ }
187
+ applyWebHeaders(koaHeaders(ctx), outcome.headers);
188
+ Object.assign(ctx.state, outcome.contributions);
189
+ try {
190
+ await next();
191
+ } catch (error) {
192
+ const response = errorResponse(error, web, options);
193
+ if (!response) throw error;
194
+ await sendKoa(ctx, response);
195
+ }
196
+ };
197
+ }
198
+ /** Koa middleware that refuses callers outside `options`. Runs after `toKoa`. */
199
+ function koaGuard(options = {}) {
200
+ return async (ctx, next) => {
201
+ const refused = await routeRefusal(guardedLocals(ctx.state), toWebRequest(ctx.req, { body: false }), options);
202
+ if (refused) {
203
+ await sendKoa(ctx, refused);
204
+ return;
205
+ }
206
+ await next();
207
+ };
208
+ }
209
+ //#endregion
210
+ export { applyWebHeaders, fastifyGuard, guard, koaGuard, problemErrorHandler, sendWebResponse, toExpress, toFastify, toKoa, toNodeHandler, toWebHeaders, toWebRequest };
@@ -0,0 +1,24 @@
1
+ //#region src/bridges/node-headers.d.ts
2
+ /** Node's request headers: a string, an array of strings, or absent. */
3
+ type NodeIncomingHeaders = Readonly<Record<string, string | readonly string[] | undefined>>;
4
+ /** The part of a Node `IncomingMessage` a URL and headers need; no stream is read. */
5
+ interface NodeRequestHead {
6
+ readonly method?: string | undefined;
7
+ readonly url?: string | undefined;
8
+ readonly headers: NodeIncomingHeaders;
9
+ readonly socket?: object | undefined;
10
+ }
11
+ /** Node's headers as `Headers`; HTTP/2 pseudo-headers (`:path`) are dropped. */
12
+ declare function toWebHeaders(incoming: NodeIncomingHeaders): Headers;
13
+ /** The part of a Node `ServerResponse` header writes need. */
14
+ interface NodeHeaderTarget {
15
+ getHeader(name: string): number | string | readonly string[] | undefined;
16
+ setHeader(name: string, value: number | string | readonly string[]): unknown;
17
+ }
18
+ /**
19
+ * Copies a `Response`'s headers onto a Node response: `set-cookie` and
20
+ * `server-timing` are appended to what is already there, the rest replaced.
21
+ */
22
+ declare function applyWebHeaders(target: NodeHeaderTarget, headers: Headers): void;
23
+ //#endregion
24
+ export { toWebHeaders as i, NodeRequestHead as n, applyWebHeaders as r, NodeHeaderTarget as t };
@@ -0,0 +1,55 @@
1
+ //#region src/bridges/node-headers.ts
2
+ function first(value) {
3
+ return typeof value === "string" ? value : value?.[0];
4
+ }
5
+ /** Node's headers as `Headers`; HTTP/2 pseudo-headers (`:path`) are dropped. */
6
+ function toWebHeaders(incoming) {
7
+ const headers = new Headers();
8
+ for (const [name, value] of Object.entries(incoming)) {
9
+ if (value === void 0 || name.startsWith(":")) continue;
10
+ if (typeof value === "string") headers.set(name, value);
11
+ else for (const item of value) headers.append(name, item);
12
+ }
13
+ return headers;
14
+ }
15
+ function originOf(req, trustProxy) {
16
+ const forwardedProto = trustProxy ? first(req.headers["x-forwarded-proto"])?.split(",")[0]?.trim() : void 0;
17
+ const socket = req.socket;
18
+ const encrypted = socket !== void 0 && "encrypted" in socket && socket.encrypted === true;
19
+ return `${forwardedProto ?? (encrypted ? "https" : "http")}://${(trustProxy ? first(req.headers["x-forwarded-host"])?.split(",")[0]?.trim() : void 0) ?? first(req.headers["host"]) ?? "localhost"}`;
20
+ }
21
+ /**
22
+ * The absolute URL of a Node request. Express keeps the mounted path in
23
+ * `originalUrl`; `x-forwarded-*` count only with `trustProxy`.
24
+ */
25
+ function nodeRequestUrl(req, trustProxy = false) {
26
+ const path = "originalUrl" in req && typeof req.originalUrl === "string" ? req.originalUrl : req.url ?? "/";
27
+ return new URL(path, originOf(req, trustProxy));
28
+ }
29
+ /** A body-less `Request` with a Node request's method, URL and headers. */
30
+ function headRequest(req, trustProxy = false) {
31
+ return new Request(nodeRequestUrl(req, trustProxy), {
32
+ method: req.method ?? "GET",
33
+ headers: toWebHeaders(req.headers)
34
+ });
35
+ }
36
+ /**
37
+ * Copies a `Response`'s headers onto a Node response: `set-cookie` and
38
+ * `server-timing` are appended to what is already there, the rest replaced.
39
+ */
40
+ function applyWebHeaders(target, headers) {
41
+ const append = (name, values) => {
42
+ if (values.length === 0) return;
43
+ const existing = target.getHeader(name);
44
+ const before = existing === void 0 ? [] : typeof existing === "object" ? existing : [String(existing)];
45
+ target.setHeader(name, [...before, ...values]);
46
+ };
47
+ append("set-cookie", headers.getSetCookie());
48
+ for (const [name, value] of headers) {
49
+ if (name === "set-cookie") continue;
50
+ if (name === "server-timing") append(name, [value]);
51
+ else target.setHeader(name, value);
52
+ }
53
+ }
54
+ //#endregion
55
+ export { toWebHeaders as i, headRequest as n, nodeRequestUrl as r, applyWebHeaders as t };
@@ -0,0 +1,60 @@
1
+ //#region src/nuxt/index.d.ts
2
+ /** `betterSupabase` in `nuxt.config.ts`, or the module's inline options. */
3
+ export interface NuxtModuleOptions {
4
+ /**
5
+ * The server module whose default export is the entry array, e.g.
6
+ * `'~~/server/better-supabase'` exporting `[withBetterSupabase(server)]`.
7
+ * Without it the module registers no server middleware.
8
+ */
9
+ readonly server?: string;
10
+ /** Auto-import the `better-supabase/vue` composables. Defaults to true. */
11
+ readonly composables?: boolean;
12
+ }
13
+ /** A Nitro handler registration. */
14
+ export interface NitroHandlerLike {
15
+ readonly handler: string;
16
+ readonly middleware?: boolean;
17
+ readonly route?: string;
18
+ }
19
+ /** An auto-import registration. */
20
+ export interface NuxtImportLike {
21
+ readonly name: string;
22
+ readonly from: string;
23
+ }
24
+ /** The part of the Nuxt instance the module writes, typed structurally. */
25
+ export interface NuxtLike {
26
+ readonly options: {
27
+ readonly betterSupabase?: NuxtModuleOptions | undefined;
28
+ nitro: {
29
+ virtual?: Record<string, string | (() => string)>;
30
+ handlers?: NitroHandlerLike[];
31
+ };
32
+ };
33
+ hook(name: "imports:extend", fn: (imports: NuxtImportLike[]) => void): void;
34
+ }
35
+ /** The composables `better-supabase/vue` exports, auto-imported in components. */
36
+ export declare const VUE_COMPOSABLES: readonly string[];
37
+ /** The virtual Nitro middleware: the app's entries through `toH3V1`. */
38
+ export declare function middlewareSource(server: string): string;
39
+ /** A Nuxt module, typed structurally so the package does not import `@nuxt/kit`. */
40
+ export interface BetterSupabaseNuxtModule {
41
+ (inline: NuxtModuleOptions | undefined, nuxt: NuxtLike): void;
42
+ getMeta(): Promise<{
43
+ readonly name: string;
44
+ readonly configKey: string;
45
+ }>;
46
+ }
47
+ /**
48
+ * Registers the app's entries as Nitro server middleware (every
49
+ * contribution on `event.context`) and auto-imports the Vue composables.
50
+ *
51
+ * ```ts title="nuxt.config.ts"
52
+ * export default defineNuxtConfig({
53
+ * modules: ['better-supabase/nuxt'],
54
+ * betterSupabase: { server: '~~/server/better-supabase' },
55
+ * })
56
+ * ```
57
+ */
58
+ declare const betterSupabaseNuxt: BetterSupabaseNuxtModule;
59
+ //#endregion
60
+ export { betterSupabaseNuxt as default };
@@ -0,0 +1,64 @@
1
+ //#region src/nuxt/index.ts
2
+ /** The composables `better-supabase/vue` exports, auto-imported in components. */
3
+ const VUE_COMPOSABLES = [
4
+ "useAuth",
5
+ "useSupabase",
6
+ "useSession",
7
+ "useSupportSession",
8
+ "provideSession",
9
+ "useLiveQuery",
10
+ "useLiveCount",
11
+ "useBroadcast",
12
+ "usePresence",
13
+ "useAction"
14
+ ];
15
+ const MIDDLEWARE_ID = "#better-supabase/middleware";
16
+ /** The virtual Nitro middleware: the app's entries through `toH3V1`. */
17
+ function middlewareSource(server) {
18
+ return [
19
+ `import { defineEventHandler } from "h3";`,
20
+ `import { toH3V1 } from "better-supabase/h3/v1";`,
21
+ `import entries from ${JSON.stringify(server)};`,
22
+ `export default defineEventHandler(toH3V1(entries));`
23
+ ].join("\n");
24
+ }
25
+ function setup(inline, nuxt) {
26
+ const options = {
27
+ ...nuxt.options.betterSupabase,
28
+ ...inline
29
+ };
30
+ if (options.server !== void 0) {
31
+ const nitro = nuxt.options.nitro;
32
+ nitro.virtual = {
33
+ ...nitro.virtual,
34
+ [MIDDLEWARE_ID]: middlewareSource(options.server)
35
+ };
36
+ nitro.handlers = [...nitro.handlers ?? [], {
37
+ handler: MIDDLEWARE_ID,
38
+ middleware: true
39
+ }];
40
+ }
41
+ if (options.composables ?? true) nuxt.hook("imports:extend", (imports) => {
42
+ for (const name of VUE_COMPOSABLES) imports.push({
43
+ name,
44
+ from: "better-supabase/vue"
45
+ });
46
+ });
47
+ }
48
+ /**
49
+ * Registers the app's entries as Nitro server middleware (every
50
+ * contribution on `event.context`) and auto-imports the Vue composables.
51
+ *
52
+ * ```ts title="nuxt.config.ts"
53
+ * export default defineNuxtConfig({
54
+ * modules: ['better-supabase/nuxt'],
55
+ * betterSupabase: { server: '~~/server/better-supabase' },
56
+ * })
57
+ * ```
58
+ */
59
+ const betterSupabaseNuxt = Object.assign(setup, { getMeta: () => Promise.resolve({
60
+ name: "better-supabase",
61
+ configKey: "betterSupabase"
62
+ }) });
63
+ //#endregion
64
+ export { VUE_COMPOSABLES, betterSupabaseNuxt as default, middlewareSource };
@@ -0,0 +1,62 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
3
+ import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
4
+ import { r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
5
+ //#region src/blocks/onboarding/onboarding.d.ts
6
+ type ChecklistScope = "user" | "organization";
7
+ /** One step. `events` completes it when the outbox records one of those types. */
8
+ interface ChecklistStep<Id extends string = string> {
9
+ readonly id: Id;
10
+ readonly title?: string;
11
+ readonly description?: string;
12
+ /** Where the step is done in the app, for a "Start" link. */
13
+ readonly href?: string;
14
+ readonly events?: readonly string[];
15
+ }
16
+ interface ChecklistSpec<Id extends string, Scope extends ChecklistScope> {
17
+ readonly id: string;
18
+ /** `user` tracks each user; `organization` tracks each tenant. */
19
+ readonly scope: Scope;
20
+ readonly steps: readonly ChecklistStep<Id>[];
21
+ }
22
+ interface ChecklistConnectOptions extends BlockTemporalOptions {
23
+ readonly transport: BlockTransport;
24
+ /** The module schema (`sql.modules.onboarding.schema`), default `better_supabase`. */
25
+ readonly schema?: string;
26
+ readonly mappers?: readonly ErrorMapper[];
27
+ }
28
+ /** A step with the subject's progress. */
29
+ interface StepProgress<Id extends string> extends ChecklistStep<Id> {
30
+ readonly completed: boolean;
31
+ readonly completedAt: Temporal.Instant | undefined;
32
+ readonly completedBy: string | undefined;
33
+ }
34
+ interface ChecklistProgress<Id extends string> {
35
+ readonly steps: readonly StepProgress<Id>[];
36
+ readonly completed: number;
37
+ readonly total: number;
38
+ /** Every step is complete. */
39
+ readonly done: boolean;
40
+ /** The first step not done yet. */
41
+ readonly next: StepProgress<Id> | undefined;
42
+ }
43
+ /** The organization for an organization checklist; nothing for a user one. */
44
+ type ChecklistSubject<Scope extends ChecklistScope> = Scope extends "organization" ? [organizationId: string] : [];
45
+ interface ChecklistClient<Id extends string, Scope extends ChecklistScope> {
46
+ progress(...subject: ChecklistSubject<Scope>): AsyncResult<ChecklistProgress<Id>>;
47
+ /** Marks a step done; `false` when it already was. */
48
+ complete(step: Id, ...subject: ChecklistSubject<Scope>): AsyncResult<boolean>;
49
+ /** Marks a step not done; `false` when it wasn't. */
50
+ reset(step: Id, ...subject: ChecklistSubject<Scope>): AsyncResult<boolean>;
51
+ }
52
+ interface Checklist<Id extends string, Scope extends ChecklistScope> extends ChecklistSpec<Id, Scope> {
53
+ connect(options: ChecklistConnectOptions): ChecklistClient<Id, Scope>;
54
+ }
55
+ /**
56
+ * Declares an onboarding checklist. Pass the result to
57
+ * `sql.modules.onboarding.options.checklists` so the database knows its
58
+ * steps, and `connect` it to read and complete them.
59
+ */
60
+ declare function defineChecklist<const Id extends string, const Scope extends ChecklistScope>(spec: ChecklistSpec<Id, Scope>): Checklist<Id, Scope>;
61
+ //#endregion
62
+ export { ChecklistScope as a, ChecklistSubject as c, ChecklistProgress as i, StepProgress as l, ChecklistClient as n, ChecklistSpec as o, ChecklistConnectOptions as r, ChecklistStep as s, Checklist as t, defineChecklist as u };
@@ -1,2 +1,2 @@
1
- import { a as ResourceOptions, i as ResourceOperation, n as OpenApiOptions, o as createOpenApi, r as PROBLEM_SCHEMA, t as OpenApiDocument } from "../index-C7f8cOBM.js";
1
+ import { a as ResourceOptions, i as ResourceOperation, n as OpenApiOptions, o as createOpenApi, r as PROBLEM_SCHEMA, t as OpenApiDocument } from "../index-Bxih3l0u.js";
2
2
  export { OpenApiDocument, OpenApiOptions, PROBLEM_SCHEMA, ResourceOperation, ResourceOptions, createOpenApi };
@@ -1,6 +1,6 @@
1
- import { n as PROBLEM_TYPE_BASE, t as PROBLEM_CONTENT_TYPE } from "../problem-BW1KhzSG.js";
2
- import { t as SPEC_PINS } from "../spec-pins-C3oc-Tdp.js";
3
- import { t as buildJsonSchema } from "../json-schema-m1fiwKgN.js";
1
+ import { n as PROBLEM_TYPE_BASE, t as PROBLEM_CONTENT_TYPE } from "../problem-BreOl8b8.js";
2
+ import { t as SPEC_PINS } from "../spec-pins--j6mTok4.js";
3
+ import { t as buildJsonSchema } from "../json-schema-CvER4kgT.js";
4
4
  //#region src/openapi/index.ts
5
5
  /** JSON Schema for RFC 9457 Problem Details as better-supabase sends them. */
6
6
  const PROBLEM_SCHEMA = {
@@ -1,10 +1,44 @@
1
- import { n as AnyFunctions, r as AnyModels } from "../types-Dnf_wRDz.js";
2
- import { _ as DbError, u as Result } from "../executor-BunPOO-k.js";
3
- import { t as BetterSupabase } from "../define-Bp_BZa5h.js";
4
- import { r as AuthState } from "../resolve-C15TJq77.js";
5
- import { f as ServerContext, n as GuardOptions, p as ServerOptions, r as MiddlewareOptions, u as BetterServer } from "../respond-D2OQl62-.js";
6
- import { r as ProblemDetails } from "../problem-Blxe8S31.js";
7
- import { DecoratedMiddleware, ORPCError } from "@orpc/server";
1
+ import { b as DbError, f as Result } from "../result-D7y2fT87.js";
2
+ import { a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
3
+ import { r as AuthState } from "../resolve-KW8nCeL6.js";
4
+ import { i as ProblemDetails } from "../problem-DD8LZFjc.js";
5
+ import { t as BetterSupabase } from "../define-CJJkkr1-.js";
6
+ import { i as ServerContext, o as ServerOptions, t as BetterServer } from "../server-CeVeeXwz.js";
7
+ import { i as MiddlewareOptions, r as GuardOptions } from "../respond-DoBijysA.js";
8
+ import { s as BlockRequireOptions } from "../kit-B5tid-q5.js";
9
+ import { t as Validated } from "../shared-DDSjEGDR.js";
10
+ import { AnyEntry, Contributions } from "@supabase/middleware";
11
+ import { BuilderWithMiddlewares, DecoratedMiddleware, ORPCError } from "@orpc/server";
12
+ //#region src/bridges/orpc.d.ts
13
+ /** The part of an oRPC fetch handler (`RPCHandler`, `OpenAPIHandler`) a bridge calls. */
14
+ interface OrpcHandlerLike<Context> {
15
+ handle(request: Request, options: {
16
+ readonly prefix?: `/${string}`;
17
+ readonly context: Context;
18
+ }): Promise<{
19
+ readonly matched: boolean;
20
+ readonly response?: Response | undefined;
21
+ }>;
22
+ }
23
+ interface ToOrpcOptions {
24
+ /** Path prefix the router is mounted under, e.g. `/rpc`. */
25
+ readonly prefix?: `/${string}`;
26
+ }
27
+ /**
28
+ * Runs an entry array around an oRPC fetch handler. The procedures' initial
29
+ * context is `{ request }` plus every contributed key, and the response
30
+ * passes back through the entries, so refreshed cookies and response-phase
31
+ * headers reach it. A request no procedure matched answers 404.
32
+ *
33
+ * ```ts
34
+ * const os = implement(contract).$context<{ request: Request; db: Db }>()
35
+ * export default { fetch: toOrpc([withBetterSupabase(server)], new RPCHandler(router), { prefix: '/rpc' }) }
36
+ * ```
37
+ */
38
+ export declare function toOrpc<const Entries extends readonly AnyEntry[]>(entries: Entries & Validated<Entries>, handler: OrpcHandlerLike<{
39
+ readonly request: Request;
40
+ } & Contributions<Entries>>, options?: ToOrpcOptions): (request: Request, env?: unknown) => Promise<Response>;
41
+ //#endregion
8
42
  //#region src/orpc/index.d.ts
9
43
  /** Initial context: pass `{ context: { request } }` to the oRPC handler. */
10
44
  export interface OrpcRequestContext {
@@ -19,6 +53,11 @@ export interface OrpcContext<M extends AnyModels, F extends AnyFunctions, E, C =
19
53
  export interface OrpcOptions extends ServerOptions {
20
54
  /** Include internal error messages. Defaults to `NODE_ENV === 'development'`. */
21
55
  readonly exposeErrors?: boolean;
56
+ /**
57
+ * Keeps the invocation alive for event sink sends a procedure started,
58
+ * e.g. `EdgeRuntime.waitUntil` or Next's `after`. `fetchHandler` calls it.
59
+ */
60
+ readonly waitUntil?: (promise: Promise<unknown>) => void;
22
61
  }
23
62
  /** The part of an oRPC fetch handler (`RPCHandler`, `OpenAPIHandler`) `fetchHandler` calls. */
24
63
  export interface OrpcFetchHandler {
@@ -35,6 +74,14 @@ export interface OrpcFetchOptions {
35
74
  readonly prefix?: `/${string}`;
36
75
  }
37
76
  export type OrpcMiddleware<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> = DecoratedMiddleware<OrpcRequestContext, OrpcContext<M, F, E, C, P>, unknown, unknown, Record<never, never>>;
77
+ /** Guard and authorize options of `middleware()` and `authed()`. */
78
+ export interface OrpcGuardOptions<C = unknown, P = unknown> extends MiddlewareOptions, BlockRequireOptions<C, P> {}
79
+ /** `os` with the caller's context: `bs.authed().handler(({ context }) => ...)`. */
80
+ export type OrpcAuthed<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> = BuilderWithMiddlewares<OrpcRequestContext, OrpcContext<M, F, E, C, P>, Record<never, never>>;
81
+ /** The Workers execution context, typed structurally. */
82
+ export interface OrpcExecutionContext {
83
+ waitUntil(promise: Promise<unknown>): void;
84
+ }
38
85
  export interface BetterOrpc<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> extends BetterServer<M, F, E, C, P> {
39
86
  /**
40
87
  * Resolves the caller, enforces `allow` and adds `context.db`, `context.auth`
@@ -42,13 +89,25 @@ export interface BetterOrpc<M extends AnyModels, F extends AnyFunctions, E, C =
42
89
  * `DbError`, become `ORPCError`s. Serve the router with `fetchHandler` so
43
90
  * refreshed session cookies and `bs-primary-until` reach the response.
44
91
  */
45
- middleware(options?: MiddlewareOptions): OrpcMiddleware<M, F, E, C, P>;
92
+ middleware(options?: OrpcGuardOptions<C, P>): OrpcMiddleware<M, F, E, C, P>;
93
+ /**
94
+ * A procedure builder behind `middleware(options)`, so each procedure
95
+ * starts from the caller's context instead of repeating `.use()`:
96
+ *
97
+ * ```ts
98
+ * export const list = bs.authed({ requireTenant: true })
99
+ * .handler(({ context }) => bs.unwrap(context.db.customers.findMany()))
100
+ * ```
101
+ */
102
+ authed(options?: OrpcGuardOptions<C, P>): OrpcAuthed<M, F, E, C, P>;
46
103
  /**
47
104
  * A fetch handler for an oRPC handler: passes `{ request }` as the initial
48
105
  * context, answers 404 when no procedure matched, and applies the cookies
49
- * of the request's context (`ctx.apply`).
106
+ * of the request's context (`ctx.apply`). On Workers, pending event sends
107
+ * go to the `ctx.waitUntil` of `fetch(request, env, ctx)` when
108
+ * `OrpcOptions.waitUntil` is unset.
50
109
  */
51
- fetchHandler(handler: OrpcFetchHandler, options?: OrpcFetchOptions): (request: Request) => Promise<Response>;
110
+ fetchHandler(handler: OrpcFetchHandler, options?: OrpcFetchOptions): (request: Request, env?: unknown, executionContext?: OrpcExecutionContext) => Promise<Response>;
52
111
  /** A `Result` (or `AsyncResult`) as data, throwing an `ORPCError` on failure. */
53
112
  unwrap<T>(value: Result<T> | PromiseLike<Result<T>>): Promise<T>;
54
113
  /** Plain values pass through; thrown `DbException`s become `ORPCError`s. */
@@ -60,4 +119,4 @@ export declare function orpcCode(error: DbError): string;
60
119
  /** oRPC integration: middleware adding the caller's repositories to `context`. */
61
120
  export declare function createOrpc<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options?: OrpcOptions): BetterOrpc<M, F, E, C, P>;
62
121
  //#endregion
63
- export type { GuardOptions, MiddlewareOptions };
122
+ export type { GuardOptions, MiddlewareOptions, OrpcHandlerLike, ToOrpcOptions };