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,10 +1,20 @@
1
- import { n as dbError, t as DbException } from "./errors-DtwXa6b8.js";
2
- import { i as temporalText } from "./temporal-CVlIV2DZ.js";
3
- import { t as temporal } from "./temporal-required-CAt4Dc9Z.js";
1
+ import { t as DbException } from "./db-exception-CnWcYPxL.js";
2
+ import { n as dbError } from "./errors-B11Duf73.js";
3
+ import { d as temporalText } from "./temporal-BJGitm-h.js";
4
+ import { t as temporal } from "./temporal-required-BVvW7SYJ.js";
4
5
  //#region src/ir/wire.ts
5
- /** Wire form of an app value: Temporal values to ISO text, `bigint` to decimal text. */
6
+ /** ISO text of a `Date`; an invalid date has none. */
7
+ function dateText(value) {
8
+ if (Number.isNaN(value.getTime())) throw new DbException(dbError("invalid_value", "The Date is invalid"));
9
+ return value.toISOString();
10
+ }
11
+ /**
12
+ * Wire form of an app value: Temporal values and `Date` to ISO text, `bigint`
13
+ * to decimal text.
14
+ */
6
15
  function encodeValue(value) {
7
16
  if (typeof value !== "object" || value === null) return typeof value === "bigint" ? value.toString() : value;
17
+ if (value instanceof Date) return dateText(value);
8
18
  const text = temporalText(value);
9
19
  if (text !== void 0) return text;
10
20
  if (Array.isArray(value)) return value.map(encodeValue);
@@ -32,4 +42,4 @@ function decodeValue(codec, value) {
32
42
  return Array.isArray(value) ? value.map((item) => decodeScalar(codec, item)) : decodeScalar(codec, value);
33
43
  }
34
44
  //#endregion
35
- export { decodeValue as n, encodeValue as r, decodeScalar as t };
45
+ export { encodeValue as i, decodeScalar as n, decodeValue as r, dateText as t };
@@ -0,0 +1,398 @@
1
+ import { n as dbError } from "./errors-B11Duf73.js";
2
+ import { a as ok, r as err, t as AsyncResult } from "./result-DzUbqgdW.js";
3
+ import { n as credentialRefInTenant, r as foreignCredentialRef } from "./provider-Di3sRutW.js";
4
+ import { D as stringsOf, O as textOf, S as requiredInstant, _ as randomToken, b as recordOrEmpty, d as isRecord, h as optionalText, i as blockCall, l as injectableOf, m as optionalInstant, n as applyTemporal, s as enumOrThrow, w as seconds, x as recordsOf, y as recordOf } from "./block-helpers-DWHxHsEQ.js";
5
+ import { t as createWorkflows } from "./workflows-wu1WWBn7.js";
6
+ import { o as graphOf, r as diffGraphs } from "./graph-BGyLLFLX.js";
7
+ //#region src/blocks/workflow-builder/rows.ts
8
+ const VERSION_STATUSES = [
9
+ "draft",
10
+ "published",
11
+ "archived"
12
+ ];
13
+ const TRIGGER_KINDS = [
14
+ "manual",
15
+ "webhook",
16
+ "schedule",
17
+ "event",
18
+ "form",
19
+ "chat"
20
+ ];
21
+ const NODE_RUN_STATUSES = [
22
+ "running",
23
+ "waiting",
24
+ "completed",
25
+ "failed",
26
+ "skipped"
27
+ ];
28
+ function definitionOf(row) {
29
+ const published = row["published"];
30
+ return {
31
+ id: textOf(row["id"]),
32
+ tenant: optionalText(row["tenant"]),
33
+ slug: textOf(row["slug"]),
34
+ name: textOf(row["name"]),
35
+ description: optionalText(row["description"]),
36
+ createdBy: optionalText(row["createdBy"]),
37
+ createdAt: requiredInstant(row["createdAt"], "createdAt"),
38
+ updatedAt: requiredInstant(row["updatedAt"], "updatedAt"),
39
+ ..."published" in row ? { published: typeof published === "number" ? published : void 0 } : {},
40
+ ..."draft" in row ? { draft: row["draft"] === true } : {}
41
+ };
42
+ }
43
+ function versionOf(row) {
44
+ return {
45
+ id: textOf(row["id"]),
46
+ definition: textOf(row["definition"]),
47
+ version: Number(row["version"]),
48
+ status: enumOrThrow(row["status"], VERSION_STATUSES, "version status"),
49
+ createdBy: optionalText(row["createdBy"]),
50
+ createdAt: requiredInstant(row["createdAt"], "createdAt"),
51
+ publishedAt: optionalInstant(row["publishedAt"]),
52
+ ..."graph" in row ? { graph: graphOf(row["graph"]) } : {},
53
+ ..."compiled" in row && row["compiled"] !== null ? { compiled: row["compiled"] } : {}
54
+ };
55
+ }
56
+ function triggerOf(row) {
57
+ return {
58
+ id: textOf(row["id"]),
59
+ definition: textOf(row["definition"]),
60
+ kind: enumOrThrow(row["kind"], TRIGGER_KINDS, "trigger kind"),
61
+ config: recordOrEmpty(row["config"]),
62
+ enabled: row["enabled"] !== false,
63
+ createdAt: requiredInstant(row["createdAt"], "createdAt"),
64
+ updatedAt: requiredInstant(row["updatedAt"], "updatedAt")
65
+ };
66
+ }
67
+ function refOf(value) {
68
+ if (!isRecord(value) || typeof value["provider"] !== "string") throw new TypeError("workflow-builder: a credential_ref has no provider");
69
+ return {
70
+ ...value,
71
+ provider: value["provider"]
72
+ };
73
+ }
74
+ function credentialOf(row) {
75
+ return {
76
+ id: textOf(row["id"]),
77
+ tenant: optionalText(row["tenant"]),
78
+ kind: textOf(row["kind"]),
79
+ name: textOf(row["name"]),
80
+ ref: refOf(row["ref"]),
81
+ scopes: Array.isArray(row["scopes"]) ? stringsOf(row["scopes"]) : [],
82
+ createdBy: optionalText(row["createdBy"]),
83
+ createdAt: requiredInstant(row["createdAt"], "createdAt")
84
+ };
85
+ }
86
+ function stepOf(row) {
87
+ return {
88
+ name: textOf(row["name"]),
89
+ title: textOf(row["title"]),
90
+ description: optionalText(row["description"]),
91
+ inputSchema: recordOrEmpty(row["inputSchema"]),
92
+ outputSchema: recordOrEmpty(row["outputSchema"]),
93
+ credentialKind: optionalText(row["credentialKind"])
94
+ };
95
+ }
96
+ function nodeRunOf(row) {
97
+ return {
98
+ run: textOf(row["run"]),
99
+ node: textOf(row["node"]),
100
+ status: enumOrThrow(row["status"], NODE_RUN_STATUSES, "node status"),
101
+ attempts: Number(row["attempts"] ?? 0),
102
+ output: row["output"] ?? void 0,
103
+ error: optionalText(row["error"]),
104
+ startedAt: optionalInstant(row["startedAt"]),
105
+ endedAt: optionalInstant(row["endedAt"])
106
+ };
107
+ }
108
+ function alertOf(row) {
109
+ const threshold = row["threshold"];
110
+ return {
111
+ id: textOf(row["id"]),
112
+ definition: textOf(row["definition"]),
113
+ onEvent: row["onEvent"] === "slow" ? "slow" : "failed",
114
+ threshold: threshold === null || threshold === void 0 ? void 0 : Number(threshold),
115
+ channel: recordOrEmpty(row["channel"]),
116
+ createdBy: optionalText(row["createdBy"]),
117
+ createdAt: requiredInstant(row["createdAt"], "createdAt")
118
+ };
119
+ }
120
+ /** `map` over an object result, or `undefined` for anything else. */
121
+ function optionalOf(map) {
122
+ return (value) => isRecord(value) ? map(value) : void 0;
123
+ }
124
+ //#endregion
125
+ //#region src/blocks/workflow-builder/workflow-builder.ts
126
+ const BUILDER_PREFIX = "builder:";
127
+ /**
128
+ * The `workflow-builder` module's definitions, versions, triggers,
129
+ * credentials, step library, node runs and alerts. The engine plugs in
130
+ * through `compile` and `start`; credential rows resolve through the
131
+ * `credentials` providers.
132
+ *
133
+ * ```ts
134
+ * const builder = createBuilder({
135
+ * transport: rpcTransport(supabase),
136
+ * compile: compileGraph,
137
+ * start: graphStarter({ executor: builderWorkflow, steps: { runNode } }),
138
+ * });
139
+ * ```
140
+ */
141
+ function createBuilder(options) {
142
+ applyTemporal(options);
143
+ injectableOf("workflow-builder compiler", options.compile);
144
+ injectableOf("workflow-builder starter", options.start);
145
+ const call = blockCall(options.transport, options.schema, options.mappers);
146
+ const serviceCall = blockCall(options.service ?? options.transport, options.schema, options.mappers);
147
+ const providers = options.credentials === void 0 ? [] : Array.isArray(options.credentials) ? options.credentials : [options.credentials];
148
+ const providerFor = (ref) => providers.find((provider) => provider.name === ref.provider);
149
+ const noProvider = (ref) => dbError("invalid_request", `No credential provider named "${ref.provider}" was passed to createBuilder`);
150
+ const getVersion = (version) => call("workflow_version_get", { version }, optionalOf(versionOf));
151
+ const startTarget = (caller, definition, start) => caller("workflow_start_target", { definition }, (value) => recordOf(value, "workflow_start_target")).andThen(async (row) => {
152
+ const target = {
153
+ definition: definitionOf(recordOf(row["definition"], "definition")),
154
+ version: versionOf(recordOf(row["version"], "version"))
155
+ };
156
+ return ok(await start(target));
157
+ });
158
+ const starterOf = () => options.start;
159
+ const missingStarter = () => dbError("invalid_request", "Pass `start` to createBuilder to run workflows");
160
+ const runWith = (caller, input) => {
161
+ const start = starterOf();
162
+ if (start === void 0) return AsyncResult.err(missingStarter());
163
+ return startTarget(caller, input.definition, (target) => start({
164
+ definition: target.definition,
165
+ version: target.version,
166
+ input: input.input ?? {},
167
+ tenant: target.definition.tenant,
168
+ actor: input.actor,
169
+ idempotencyKey: input.idempotencyKey ?? `run:${randomToken(16)}`,
170
+ ...input.trigger === void 0 ? {} : { trigger: input.trigger }
171
+ }));
172
+ };
173
+ const credentialRow = (id) => serviceCall("workflow_credential_get", { credential: id }, (value) => isRecord(value) ? credentialOf(value) : void 0);
174
+ return {
175
+ definitions: {
176
+ save: (input) => call("save_workflow_definition", {
177
+ tenant: input.tenant,
178
+ slug: input.slug,
179
+ name: input.name,
180
+ description: input.description
181
+ }, (value) => definitionOf(recordOf(value, "save_workflow_definition"))),
182
+ list: (tenant) => call("workflow_definitions_list", { tenant }, (value) => recordsOf(value, "workflow_definitions_list").map(definitionOf)),
183
+ get: (id) => call("workflow_definition_get", { definition: id }, optionalOf(definitionOf)),
184
+ remove: (id) => call("remove_workflow_definition", { definition: id }, (value) => value === true)
185
+ },
186
+ versions: {
187
+ save: (definition, graph) => call("save_workflow_draft", {
188
+ definition,
189
+ graph
190
+ }, (value) => versionOf(recordOf(value, "save_workflow_draft"))),
191
+ publish: (version) => getVersion(version).andThen(async (found) => {
192
+ if (found === void 0) return err(dbError("not_found", "No such workflow version"));
193
+ let compiled = null;
194
+ if (options.compile !== void 0 && found.status !== "published") try {
195
+ compiled = await options.compile(found.graph ?? graphOf(void 0)) ?? null;
196
+ } catch (cause) {
197
+ return err(dbError("invalid_input", cause instanceof Error ? cause.message : String(cause)));
198
+ }
199
+ const publish = (caller, stored) => caller("publish_workflow_version", {
200
+ version,
201
+ compiled: stored
202
+ }, (value) => versionOf(recordOf(value, "publish_workflow_version")));
203
+ const result = await publish(call, null);
204
+ if (!result.ok || compiled === null || options.service === void 0) return result;
205
+ return publish(serviceCall, compiled);
206
+ }),
207
+ list: (definition) => call("workflow_versions_list", { definition }, (value) => recordsOf(value, "workflow_versions_list").map(versionOf)),
208
+ get: getVersion,
209
+ diff: (from, to) => getVersion(from).andThen(async (before) => {
210
+ const after = await getVersion(to);
211
+ if (!after.ok) return after;
212
+ if (before === void 0 || after.data === void 0) return err(dbError("not_found", "No such workflow version"));
213
+ return ok(diffGraphs(before.graph ?? graphOf(void 0), after.data.graph ?? graphOf(void 0)));
214
+ })
215
+ },
216
+ run: (input) => runWith(call, input),
217
+ triggers: {
218
+ save: (input) => call("save_workflow_trigger", {
219
+ definition: input.definition,
220
+ kind: input.kind,
221
+ config: input.config ?? {},
222
+ enabled: input.enabled ?? true,
223
+ trigger: input.id
224
+ }, (value) => triggerOf(recordOf(value, "save_workflow_trigger"))),
225
+ list: (definition) => call("workflow_triggers_list", { definition }, (value) => recordsOf(value, "workflow_triggers_list").map(triggerOf)),
226
+ remove: (id) => call("remove_workflow_trigger", { trigger: id }, (value) => value === true),
227
+ rotateToken: (id) => call("rotate_workflow_webhook_token", { trigger: id }, textOf),
228
+ webhook: async (request) => {
229
+ if (request.method !== "POST") return Response.json({ error: "Method not allowed" }, {
230
+ status: 405,
231
+ headers: { allow: "POST" }
232
+ });
233
+ const token = webhookToken(request);
234
+ if (token === void 0) return Response.json({ error: "Not found" }, { status: 404 });
235
+ const target = await serviceCall("workflow_webhook_target", { token }, (value) => isRecord(value) ? value : void 0);
236
+ if (!target.ok) return Response.json({ error: target.error.message }, { status: 500 });
237
+ if (target.data === void 0) return Response.json({ error: "Not found" }, { status: 404 });
238
+ const trigger = triggerOf(recordOf(target.data["trigger"], "trigger"));
239
+ const key = request.headers.get("idempotency-key");
240
+ const started = await runWith(serviceCall, {
241
+ definition: trigger.definition,
242
+ input: await bodyOf(request),
243
+ idempotencyKey: key === null || key.length === 0 ? `webhook:${trigger.id}:${randomToken(16)}` : `webhook:${trigger.id}:${key}`,
244
+ trigger
245
+ });
246
+ return started.ok ? Response.json({ runId: started.data }, { status: 202 }) : Response.json({ error: started.error.message }, { status: started.error.status });
247
+ },
248
+ onEvent: (event) => serviceCall("workflow_event_targets", {
249
+ type: event.type,
250
+ tenant: event.tenant
251
+ }, (value) => recordsOf(value, "workflow_event_targets")).andThen(async (rows) => {
252
+ const runs = [];
253
+ for (const row of rows) {
254
+ const trigger = triggerOf(recordOf(row["trigger"], "trigger"));
255
+ const started = await runWith(serviceCall, {
256
+ definition: trigger.definition,
257
+ input: event.payload ?? {},
258
+ idempotencyKey: `event:${trigger.id}:${event.id}`,
259
+ trigger
260
+ });
261
+ if (!started.ok) return started;
262
+ runs.push(started.data);
263
+ }
264
+ return ok(runs);
265
+ }),
266
+ syncSchedule: (trigger, tenant) => {
267
+ const cron = trigger.config["cron"];
268
+ if (trigger.kind !== "schedule" || typeof cron !== "string") return AsyncResult.err(dbError("invalid_input", "Only a schedule trigger with config.cron has a schedule"));
269
+ const timezone = trigger.config["timezone"];
270
+ return createWorkflows({
271
+ transport: options.service ?? options.transport,
272
+ ...options.mappers === void 0 ? {} : { mappers: options.mappers }
273
+ }).schedules.create({
274
+ name: `builder-trigger:${trigger.id}`,
275
+ workflow: `${BUILDER_PREFIX}${trigger.definition}`,
276
+ cron,
277
+ ...typeof timezone === "string" ? { timezone } : {},
278
+ input: trigger.config["input"] ?? {},
279
+ ...tenant === void 0 ? {} : { tenant }
280
+ });
281
+ },
282
+ starter: (fallback) => async (scheduled) => {
283
+ if (!scheduled.workflow.startsWith(BUILDER_PREFIX)) {
284
+ if (fallback === void 0) throw new Error(`better-supabase: no starter for workflow "${scheduled.workflow}"`);
285
+ return fallback(scheduled);
286
+ }
287
+ return runWith(serviceCall, {
288
+ definition: scheduled.workflow.slice(8),
289
+ input: scheduled.input,
290
+ idempotencyKey: scheduled.idempotencyKey,
291
+ ...scheduled.actor === void 0 ? {} : { actor: scheduled.actor }
292
+ }).orThrow();
293
+ }
294
+ },
295
+ credentials: {
296
+ list: (tenant) => call("workflow_credentials_list", { tenant }, (value) => recordsOf(value, "workflow_credentials_list").map(credentialOf)),
297
+ create: (input) => {
298
+ const save = () => call("save_workflow_credential", {
299
+ tenant: input.tenant,
300
+ kind: input.kind,
301
+ name: input.name,
302
+ ref: input.ref,
303
+ scopes: input.scopes ?? []
304
+ }, (value) => credentialOf(recordOf(value, "save_workflow_credential")));
305
+ if (input.secret === void 0) return save();
306
+ if (!credentialRefInTenant(input.ref, input.tenant)) return AsyncResult.err(foreignCredentialRef(input.tenant));
307
+ const provider = providerFor(input.ref);
308
+ if (provider === void 0) return AsyncResult.err(noProvider(input.ref));
309
+ if (provider.set === void 0) return AsyncResult.err(dbError("unsupported", `The credential provider "${provider.name}" can't store secrets`));
310
+ return provider.set(input.ref, input.secret, { subject: { type: "app" } }).andThen(() => save());
311
+ },
312
+ authorize: (id, authorize) => credentialRow(id).andThen(async (row) => {
313
+ if (row === void 0) return err(dbError("not_found", "No such credential"));
314
+ const provider = providerFor(row.ref);
315
+ if (provider === void 0) return err(noProvider(row.ref));
316
+ if (provider.startAuthorization === void 0 || !provider.capabilities(row.ref).authorization) return err(dbError("unsupported", `The credential provider "${provider.name}" doesn't authorize accounts`));
317
+ return provider.startAuthorization(row.ref, {
318
+ subject: { type: "app" },
319
+ redirectUri: authorize.redirectUri,
320
+ scopes: row.scopes,
321
+ ...authorize.state === void 0 ? {} : { state: authorize.state }
322
+ }).map((started) => started.url);
323
+ }),
324
+ revoke: (id) => call("remove_workflow_credential", { credential: id }, (value) => isRecord(value) ? credentialOf(value) : void 0).andThen(async (row) => {
325
+ if (row === void 0) return ok(false);
326
+ if (!credentialRefInTenant(row.ref, row.tenant)) return ok(true);
327
+ const provider = providerFor(row.ref);
328
+ if (provider === void 0) return err(noProvider(row.ref));
329
+ if (!provider.capabilities(row.ref).revoke) return ok(true);
330
+ const revoked = await provider.revoke(row.ref, { subject: { type: "app" } });
331
+ return revoked.ok ? ok(true) : revoked;
332
+ }),
333
+ resolve: (id) => credentialRow(id).andThen(async (row) => {
334
+ if (row === void 0) return err(dbError("not_found", "No such credential"));
335
+ if (!credentialRefInTenant(row.ref, row.tenant)) return err(foreignCredentialRef(row.tenant));
336
+ const provider = providerFor(row.ref);
337
+ if (provider === void 0) return err(noProvider(row.ref));
338
+ return provider.getToken(row.ref, {
339
+ subject: { type: "app" },
340
+ scopes: row.scopes
341
+ });
342
+ })
343
+ },
344
+ steps: {
345
+ sync: (steps = options.steps ?? []) => serviceCall("sync_workflow_steps", { steps: Object.fromEntries(steps.map((step) => [step.name, {
346
+ title: step.title,
347
+ description: step.description,
348
+ inputSchema: step.inputSchema ?? {},
349
+ outputSchema: step.outputSchema ?? {},
350
+ credentialKind: step.credentialKind
351
+ }])) }, Number),
352
+ list: () => call("workflow_steps_list", {}, (value) => recordsOf(value, "workflow_steps_list").map(stepOf))
353
+ },
354
+ nodeRuns: {
355
+ record: (input) => serviceCall("record_workflow_node_run", {
356
+ run: input.run,
357
+ node: input.node,
358
+ status: input.status,
359
+ attempt: input.attempt,
360
+ output: input.output,
361
+ error: input.error
362
+ }, (value) => value === true),
363
+ list: (run) => call("workflow_node_runs_list", { run }, (value) => recordsOf(value, "workflow_node_runs_list").map(nodeRunOf))
364
+ },
365
+ alerts: {
366
+ save: (input) => call("save_workflow_alert", {
367
+ definition: input.definition,
368
+ on_event: input.onEvent,
369
+ channel: input.channel ?? {},
370
+ threshold: input.threshold === void 0 ? void 0 : seconds(input.threshold),
371
+ alert: input.id
372
+ }, (value) => alertOf(recordOf(value, "save_workflow_alert"))),
373
+ list: (definition) => call("workflow_alerts_list", { definition }, (value) => recordsOf(value, "workflow_alerts_list").map(alertOf)),
374
+ remove: (id) => call("remove_workflow_alert", { alert: id }, (value) => value === true),
375
+ check: (check = {}) => serviceCall("check_workflow_alerts", { batch: check.batch }, Number)
376
+ }
377
+ };
378
+ }
379
+ function webhookToken(request) {
380
+ const header = request.headers.get("authorization");
381
+ if (header !== null && /^bearer\s+/i.test(header)) {
382
+ const token = header.replace(/^bearer\s+/i, "").trim();
383
+ return token.length > 0 ? token : void 0;
384
+ }
385
+ const segment = new URL(request.url).pathname.split("/").findLast(Boolean);
386
+ return segment?.startsWith("wfh_") === true ? decodeURIComponent(segment) : void 0;
387
+ }
388
+ async function bodyOf(request) {
389
+ const text = await request.text();
390
+ if (text.length === 0) return {};
391
+ try {
392
+ return JSON.parse(text);
393
+ } catch {
394
+ return { body: text };
395
+ }
396
+ }
397
+ //#endregion
398
+ export { createBuilder as t };
@@ -0,0 +1,85 @@
1
+ import { T as WorkflowGraph, c as NodeRunRecord, i as BuilderStarter } from "../../types-BI-0Sl2v.js";
2
+ import { i as executeGraph, n as GraphStepCall, r as approvalToken, t as GraphRuntime } from "../../executor-D14tGopJ.js";
3
+ import { o as WorkflowFn } from "../../workflow-sdk-B3yLD6Br.js";
4
+ import { World } from "@workflow/world";
5
+ //#region src/workflow-sdk/builder/builder.d.ts
6
+ /** The env flag the Workflow SDK reads before it starts or runs dynamic source. */
7
+ export declare const DYNAMIC_WORKFLOWS_ENV = "WORKFLOW_EXPERIMENTAL_DYNAMIC_WORKFLOWS";
8
+ /** The Workflow SDK's limit on dynamic source. */
9
+ export declare const DYNAMIC_SOURCE_MAX_BYTES: number;
10
+ /** A graph compiled to Workflow SDK dynamic source. */
11
+ interface CompiledGraph {
12
+ readonly engine: "workflow-sdk";
13
+ readonly format: 1;
14
+ /** The workflow function's name in `source`. */
15
+ readonly exportName: string;
16
+ /** `async function workflow(input, meta)`, bound to `steps`, `sleep` and `createHook`. */
17
+ readonly source: string;
18
+ /** The step each `steps.<alias>` call runs, by alias (one alias per step node). */
19
+ readonly aliases: Readonly<Record<string, string>>;
20
+ }
21
+ /** The second argument of a compiled or static run. */
22
+ interface GraphRunMeta {
23
+ /** Approval hooks use `<runKey>:<node>` as their token. */
24
+ readonly runKey: string;
25
+ readonly definition: string;
26
+ readonly version: number;
27
+ }
28
+ /**
29
+ * Compiles a graph to Workflow SDK dynamic source: plain JavaScript that
30
+ * calls each step node through its own alias, sleeps with `sleep` and waits
31
+ * on approvals with `createHook({ token: "<runKey>:<node>" })`. It runs the
32
+ * same way `executeGraph` does. Throws when the graph is invalid or the
33
+ * source is over 128 KiB. Pass it as `compile` to `createBuilder`.
34
+ */
35
+ export declare function compileGraph(graph: WorkflowGraph): CompiledGraph;
36
+ /** `value` as a compiled graph, or `undefined` when it isn't one. */
37
+ export declare function compiledGraphOf(value: unknown): CompiledGraph | undefined;
38
+ /** A step a graph can call: a `"use step"` function, or `{ stepId }`. */
39
+ type GraphStep = ((call: GraphStepCall) => Promise<unknown>) | {
40
+ readonly stepId: string;
41
+ };
42
+ interface GraphStarterOptions {
43
+ /** The library's step functions by step name; each takes a `GraphStepCall`. */
44
+ readonly steps: Readonly<Record<string, GraphStep>>;
45
+ /**
46
+ * The static executor: a `"use workflow"` function that calls
47
+ * `executeGraph(graph, input, runtime)`. Runs start with it when dynamic
48
+ * workflows are off.
49
+ */
50
+ readonly executor?: WorkflowFn<[WorkflowGraph, unknown, GraphRunMeta]>;
51
+ /** Whether to start dynamic source; defaults to `WORKFLOW_EXPERIMENTAL_DYNAMIC_WORKFLOWS`. */
52
+ readonly dynamic?: boolean;
53
+ /** The World to look idempotency keys up in. Defaults to the configured one. */
54
+ readonly world?: World;
55
+ }
56
+ /**
57
+ * The `start` for `createBuilder`: starts the published version as dynamic
58
+ * source when dynamic workflows are on, and through `executor` otherwise.
59
+ * The source is always compiled from the version's graph; a stored
60
+ * compiled form is never run. Runs carry
61
+ * `bs.tenant`, `bs.actor`, `bs.definition`, `bs.version` and `bs.key`, and
62
+ * a repeated key returns the first run.
63
+ */
64
+ export declare function graphStarter(options: GraphStarterOptions): BuilderStarter;
65
+ /** Where `nodeRunReporter` writes: `builder.nodeRuns` from `createBuilder`. */
66
+ interface NodeRunSink {
67
+ record(input: NodeRunRecord): PromiseLike<unknown>;
68
+ }
69
+ /**
70
+ * Wraps a step so it records its node in `workflow_node_runs`: `running`
71
+ * with the attempt when it starts, then `completed` with its output or
72
+ * `failed` with the error. Call the result inside a `"use step"` function;
73
+ * a failed record never fails the step.
74
+ *
75
+ * ```ts
76
+ * const report = nodeRunReporter(serviceBuilder.nodeRuns);
77
+ * export async function sendEmail(call: GraphStepCall) {
78
+ * "use step";
79
+ * return report(call, () => email.send(call.config));
80
+ * }
81
+ * ```
82
+ */
83
+ export declare function nodeRunReporter(sink: NodeRunSink): <T>(call: GraphStepCall, run: () => Promise<T>) => Promise<T>;
84
+ //#endregion
85
+ export { type CompiledGraph, type GraphRunMeta, type GraphRuntime, type GraphStarterOptions, type GraphStep, type GraphStepCall, type NodeRunSink, approvalToken, executeGraph };