better-supabase 0.5.1 → 0.6.1

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-CHnPkCPd.js +1160 -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 +224 -0
  87. package/dist/blocks/attachments/index.js +234 -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 +259 -0
  97. package/dist/blocks/data-lifecycle/index.js +358 -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-BMqBgM3X.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-4JlOwgWG.js +2 -0
  181. package/dist/cli/gen-DeuDgPxN.js +3100 -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-C7Xd0Kda.js} +242 -27
  185. package/dist/cli/{introspect-BKlaIu_M.js → introspect-CSnMJ94U.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-C8tnlHSb.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-C_4JwyiM.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-CLqs9-OA.js +130 -0
  209. package/dist/composite-pSfeJNce.d.ts +146 -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-CdPDPpFs.d.ts +25 -0
  258. package/dist/framework-xjTBoyBB.js +51 -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-C6DWVEVG.d.ts} +237 -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 +34924 -6609
  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-view-B8SlToQX.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  430. package/dist/{support-wHnK6zp-.js → support-zIa1URaN.js} +32 -11
  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-CQt77F3T.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-CbgObAeb.d.ts → view-DbxLNu8L.d.ts} +22 -5
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +461 -20
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +20 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +47 -11
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-CIdSQZad.js +0 -2
  504. package/dist/cli/gen-CjElD1Vw.js +0 -2241
  505. package/dist/cli/read-sets-VQcPgxU9.js +0 -436
  506. package/dist/cli/sql-CVx-1O8G.js +0 -373
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/index-CWMDdEr4.d.ts +0 -50
  512. package/dist/index-DOESKG27.d.ts +0 -100
  513. package/dist/index-DmXSxbLi.d.ts +0 -62
  514. package/dist/index-Dp2VDwog.d.ts +0 -161
  515. package/dist/jobs/index.d.ts +0 -226
  516. package/dist/jobs/index.js +0 -1007
  517. package/dist/json-schema-m1fiwKgN.js +0 -208
  518. package/dist/kit-events-CTFDfSwb.js +0 -60
  519. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  520. package/dist/kits-CGLLrNPd.js +0 -157
  521. package/dist/mfa-Cu96oJdw.d.ts +0 -30
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-B1mZ7CgQ.js +0 -660
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-CEPwlw2G.d.ts +0 -89
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. package/skills/better-supabase-auth/references/permdock.md +0 -122
@@ -0,0 +1,185 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
3
+ import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
4
+ import { i as CursorPageOptions, r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
5
+ import { r as RunState } from "./run-state-CPo-1X2B.js";
6
+ //#region src/blocks/workflows/workflows.d.ts
7
+ /** A workflow run's state, in the words ai-chat and ai-tasks runs share. */
8
+ type WorkflowRunStatus = Exclude<RunState, "cancel_requested">;
9
+ /** A run of any engine, as the `workflows` module records it. */
10
+ interface WorkflowRun {
11
+ readonly id: string;
12
+ /** The engine that runs it, e.g. `workflow-sdk`. */
13
+ readonly engine: string;
14
+ /** The engine's id for the run. */
15
+ readonly externalId: string;
16
+ /** The workflow it runs. */
17
+ readonly definition: string;
18
+ readonly tenant: string | undefined;
19
+ readonly actor: string | undefined;
20
+ readonly status: WorkflowRunStatus;
21
+ readonly attributes: Readonly<Record<string, unknown>>;
22
+ readonly error: string | undefined;
23
+ readonly createdAt: Temporal.Instant;
24
+ readonly updatedAt: Temporal.Instant;
25
+ readonly startedAt: Temporal.Instant | undefined;
26
+ readonly completedAt: Temporal.Instant | undefined;
27
+ readonly cancelRequestedAt: Temporal.Instant | undefined;
28
+ }
29
+ interface WorkflowSchedule {
30
+ readonly id: string;
31
+ readonly tenant: string | undefined;
32
+ readonly name: string;
33
+ readonly workflow: string;
34
+ readonly input: unknown;
35
+ readonly cron: string;
36
+ readonly timezone: string;
37
+ readonly nextRunAt: Temporal.Instant;
38
+ readonly lastRunAt: Temporal.Instant | undefined;
39
+ readonly paused: boolean;
40
+ readonly createdBy: string | undefined;
41
+ readonly createdAt: Temporal.Instant;
42
+ }
43
+ interface WorkflowRunsQuery extends CursorPageOptions<Temporal.Instant> {
44
+ readonly tenant?: string;
45
+ readonly definition?: string;
46
+ readonly status?: WorkflowRunStatus;
47
+ /** At most this many runs, newest first (default 50, at most 500). */
48
+ readonly limit?: number;
49
+ /** Runs created before this instant, for the next page. */
50
+ readonly cursor?: Temporal.Instant;
51
+ }
52
+ /** What an engine reports about a run (service role). */
53
+ interface WorkflowRunRecord {
54
+ readonly engine: string;
55
+ readonly externalId: string;
56
+ readonly definition: string;
57
+ readonly status: WorkflowRunStatus;
58
+ readonly tenant?: string;
59
+ readonly actor?: string;
60
+ readonly attributes?: Readonly<Record<string, unknown>>;
61
+ readonly error?: string;
62
+ readonly startedAt?: Temporal.Instant;
63
+ readonly completedAt?: Temporal.Instant;
64
+ }
65
+ interface WorkflowScheduleInput {
66
+ /** Unique per tenant: creating it again replaces it. */
67
+ readonly name: string;
68
+ readonly workflow: string;
69
+ /** Five cron fields, a macro such as `@daily`, or an interval such as `30 seconds`. */
70
+ readonly cron: string;
71
+ /** IANA time zone the cron fields are read in (default `UTC`). */
72
+ readonly timezone?: string;
73
+ /** The workflow's arguments. */
74
+ readonly input?: unknown;
75
+ readonly tenant?: string;
76
+ }
77
+ /** One start the tick asks the engine for. */
78
+ interface WorkflowStartCall {
79
+ readonly workflow: string;
80
+ readonly input: unknown;
81
+ readonly tenant: string | undefined;
82
+ readonly actor: string | undefined;
83
+ /** Pass to the engine so a repeated tick doesn't start the run twice. */
84
+ readonly idempotencyKey: string;
85
+ }
86
+ /** Starts a run and returns the engine's run id. */
87
+ type WorkflowStarter = (call: WorkflowStartCall) => Promise<string>;
88
+ interface WorkflowTickOptions {
89
+ readonly start: WorkflowStarter;
90
+ /** Seconds a claimed row stays leased (default 60). */
91
+ readonly lease?: number;
92
+ readonly batch?: number;
93
+ }
94
+ interface WorkflowTickResult {
95
+ readonly started: number;
96
+ /** The rows whose start threw; they run again once their lease ends. */
97
+ readonly failed: readonly {
98
+ readonly id: string;
99
+ readonly error: string;
100
+ }[];
101
+ }
102
+ interface WorkflowStartRequest {
103
+ /** The admission key: runs with the same key share the limits below. */
104
+ readonly key: string;
105
+ readonly workflow: string;
106
+ readonly input?: unknown;
107
+ readonly tenant?: string;
108
+ readonly actor?: string;
109
+ /** At most this many runs with the key at once. */
110
+ readonly concurrency?: number;
111
+ /** Waits this many seconds and replaces a request with the key still waiting. */
112
+ readonly debounce?: number;
113
+ /** Drops the request while a run with the key is waiting or active. */
114
+ readonly singleton?: boolean;
115
+ }
116
+ interface WorkflowStartTicket {
117
+ readonly id: string | undefined;
118
+ readonly status: "pending" | "dropped";
119
+ }
120
+ interface WorkflowsOptions extends BlockTemporalOptions {
121
+ readonly transport: BlockTransport;
122
+ /** The module schema (`sql.modules.workflows.schema`), default `better_supabase`. */
123
+ readonly schema?: string;
124
+ readonly mappers?: readonly ErrorMapper[];
125
+ }
126
+ interface Workflows {
127
+ readonly runs: {
128
+ /** The runs the caller may read, newest first. */
129
+ list(query?: WorkflowRunsQuery): AsyncResult<readonly WorkflowRun[]>;
130
+ /** A run by its id or its engine's id. */
131
+ get(run: string): AsyncResult<WorkflowRun | undefined>;
132
+ /**
133
+ * Marks a run for cancellation: the actor, `workflow.admin` in its
134
+ * tenant, or the service role. The engine does the cancelling.
135
+ */
136
+ requestCancel(run: string): AsyncResult<WorkflowRun | undefined>;
137
+ /** Creates or updates a run (service role; engines call it). */
138
+ record(run: WorkflowRunRecord): AsyncResult<string>;
139
+ /** Deletes finished runs older than `olderThan` seconds (default 30 days). */
140
+ purge(options?: {
141
+ readonly olderThan?: number;
142
+ readonly batch?: number;
143
+ }): AsyncResult<number>;
144
+ };
145
+ readonly schedules: {
146
+ /** Creates or replaces a schedule: the service role, or `workflow.admin` in its tenant. */
147
+ create(input: WorkflowScheduleInput): AsyncResult<WorkflowSchedule>;
148
+ list(tenant?: string): AsyncResult<readonly WorkflowSchedule[]>;
149
+ pause(id: string, paused?: boolean): AsyncResult<boolean>;
150
+ remove(id: string): AsyncResult<boolean>;
151
+ /**
152
+ * Starts every due schedule once (service role), with the idempotency
153
+ * key `schedule:<id>:<fire time>`, then moves it to its next cron time
154
+ * after now. Call it from a cron route or a job.
155
+ */
156
+ tick(options: WorkflowTickOptions): AsyncResult<WorkflowTickResult>;
157
+ };
158
+ readonly semaphores: {
159
+ /** Takes one of `max` slots of `key` for `holder`, for `ttl` seconds (default 300). */
160
+ acquire(key: string, holder: string, options: {
161
+ readonly max: number;
162
+ readonly ttl?: number;
163
+ }): AsyncResult<boolean>;
164
+ release(key: string, holder: string): AsyncResult<boolean>;
165
+ };
166
+ readonly admission: {
167
+ /** Queues a start under its key's concurrency, debounce and singleton rules. */
168
+ request(input: WorkflowStartRequest): AsyncResult<WorkflowStartTicket>;
169
+ /** Starts the queued requests whose key has room (service role). */
170
+ tick(options: WorkflowTickOptions): AsyncResult<WorkflowTickResult>;
171
+ };
172
+ }
173
+ /**
174
+ * The `workflows` module's runs, schedules, semaphores and start admission,
175
+ * for any engine. Run with the user's transport to read what RLS allows;
176
+ * the ticks and `record` need the service role.
177
+ *
178
+ * ```ts
179
+ * const workflows = createWorkflows({ transport: rpcTransport(supabase) });
180
+ * const runs = await workflows.runs.list({ tenant: orgId }).orThrow();
181
+ * ```
182
+ */
183
+ declare function createWorkflows(options: WorkflowsOptions): Workflows;
184
+ //#endregion
185
+ export { WorkflowSchedule as a, WorkflowStartRequest as c, WorkflowTickOptions as d, WorkflowTickResult as f, createWorkflows as h, WorkflowRunsQuery as i, WorkflowStartTicket as l, WorkflowsOptions as m, WorkflowRunRecord as n, WorkflowScheduleInput as o, Workflows as p, WorkflowRunStatus as r, WorkflowStartCall as s, WorkflowRun as t, WorkflowStarter as u };
@@ -0,0 +1,216 @@
1
+ import { t as temporal } from "./temporal-required-BVvW7SYJ.js";
2
+ import { a as ok, r as err } from "./result-DzUbqgdW.js";
3
+ import { n as nextCronRun, t as assertCron } from "./cron-DVPUg5k3.js";
4
+ import { O as textOf, S as requiredInstant, c as errorText, d as isRecord, g as pageOf, h as optionalText, i as blockCall, m as optionalInstant, n as applyTemporal, u as instantArg, w as seconds, x as recordsOf, y as recordOf } from "./block-helpers-DWHxHsEQ.js";
5
+ //#region src/blocks/workflows/workflows.ts
6
+ const STATUSES = /* @__PURE__ */ new Set([
7
+ "queued",
8
+ "running",
9
+ "waiting",
10
+ "completed",
11
+ "failed",
12
+ "cancelled"
13
+ ]);
14
+ function isStatus(text) {
15
+ return STATUSES.has(text);
16
+ }
17
+ /** An engine may add statuses: an unknown one reads as `running`, never as finished. */
18
+ function statusOf(value) {
19
+ const text = textOf(value);
20
+ return isStatus(text) ? text : "running";
21
+ }
22
+ /** A run from the jsonb the module returns. */
23
+ function workflowRunOf(row) {
24
+ const attributes = row["attributes"];
25
+ return {
26
+ id: textOf(row["id"]),
27
+ engine: textOf(row["engine"]),
28
+ externalId: textOf(row["externalId"]),
29
+ definition: textOf(row["definition"]),
30
+ tenant: optionalText(row["tenant"]),
31
+ actor: optionalText(row["actor"]),
32
+ status: statusOf(row["status"]),
33
+ attributes: isRecord(attributes) ? attributes : {},
34
+ error: optionalText(row["error"]),
35
+ createdAt: requiredInstant(row["createdAt"], "createdAt"),
36
+ updatedAt: requiredInstant(row["updatedAt"], "updatedAt"),
37
+ startedAt: optionalInstant(row["startedAt"]),
38
+ completedAt: optionalInstant(row["completedAt"]),
39
+ cancelRequestedAt: optionalInstant(row["cancelRequestedAt"])
40
+ };
41
+ }
42
+ function scheduleOf(row) {
43
+ return {
44
+ id: textOf(row["id"]),
45
+ tenant: optionalText(row["tenant"]),
46
+ name: textOf(row["name"]),
47
+ workflow: textOf(row["workflow"]),
48
+ input: row["input"],
49
+ cron: textOf(row["cron"]),
50
+ timezone: textOf(row["timezone"]),
51
+ nextRunAt: requiredInstant(row["nextRunAt"], "nextRunAt"),
52
+ lastRunAt: optionalInstant(row["lastRunAt"]),
53
+ paused: row["paused"] === true,
54
+ createdBy: optionalText(row["createdBy"]),
55
+ createdAt: requiredInstant(row["createdAt"], "createdAt")
56
+ };
57
+ }
58
+ const optionalRun = (value) => isRecord(value) ? workflowRunOf(value) : void 0;
59
+ /**
60
+ * The `workflows` module's runs, schedules, semaphores and start admission,
61
+ * for any engine. Run with the user's transport to read what RLS allows;
62
+ * the ticks and `record` need the service role.
63
+ *
64
+ * ```ts
65
+ * const workflows = createWorkflows({ transport: rpcTransport(supabase) });
66
+ * const runs = await workflows.runs.list({ tenant: orgId }).orThrow();
67
+ * ```
68
+ */
69
+ function createWorkflows(options) {
70
+ applyTemporal(options);
71
+ const call = blockCall(options.transport, options.schema, options.mappers);
72
+ const now = () => temporal().Now.instant();
73
+ const tick = (claimFn, options, each) => call(claimFn, {
74
+ lease: options.lease ?? 60,
75
+ batch: options.batch ?? 50
76
+ }, (value) => recordsOf(value, claimFn)).andThen(async (rows) => {
77
+ let started = 0;
78
+ const failed = [];
79
+ for (const row of rows) {
80
+ const id = textOf(row["id"]);
81
+ const step = each(row);
82
+ try {
83
+ const run = await options.start(step.call);
84
+ const done = await step.done(run);
85
+ if (!done.ok) return err(done.error);
86
+ started += 1;
87
+ } catch (cause) {
88
+ failed.push({
89
+ id,
90
+ error: errorText(cause)
91
+ });
92
+ }
93
+ }
94
+ return ok({
95
+ started,
96
+ failed
97
+ });
98
+ });
99
+ return {
100
+ runs: {
101
+ list: (query = {}) => call("workflow_runs_list", {
102
+ tenant: query.tenant,
103
+ definition: query.definition,
104
+ status: query.status,
105
+ max: query.limit,
106
+ before: instantArg(pageOf(query).cursor)
107
+ }, (value) => recordsOf(value, "workflow_runs_list").map(workflowRunOf)),
108
+ get: (run) => call("workflow_run_get", { run }, optionalRun),
109
+ requestCancel: (run) => call("request_workflow_cancel", { run }, optionalRun),
110
+ record: (run) => call("record_workflow_run", {
111
+ engine: run.engine,
112
+ external_id: run.externalId,
113
+ definition: run.definition,
114
+ status: run.status,
115
+ tenant: run.tenant,
116
+ actor: run.actor,
117
+ attributes: run.attributes,
118
+ error: run.error,
119
+ started_at: instantArg(run.startedAt),
120
+ completed_at: instantArg(run.completedAt)
121
+ }, textOf),
122
+ purge: (purge = {}) => call("purge_workflow_runs", {
123
+ older_than: purge.olderThan === void 0 ? void 0 : seconds(purge.olderThan),
124
+ batch: purge.batch
125
+ }, Number)
126
+ },
127
+ schedules: {
128
+ create: (input) => {
129
+ const timezone = input.timezone ?? "UTC";
130
+ assertCron(input.cron);
131
+ return call("create_workflow_schedule", {
132
+ name: input.name,
133
+ workflow: input.workflow,
134
+ cron: input.cron,
135
+ next_run: nextCronRun(input.cron, timezone, now()).toString(),
136
+ payload: { input: input.input ?? [] },
137
+ timezone,
138
+ tenant: input.tenant
139
+ }, (value) => scheduleOf(recordOf(value, "create_workflow_schedule")));
140
+ },
141
+ list: (tenant) => call("workflow_schedules_list", { tenant }, (value) => recordsOf(value, "workflow_schedules_list").map(scheduleOf)),
142
+ pause: (id, paused = true) => call("pause_workflow_schedule", {
143
+ schedule: id,
144
+ paused
145
+ }, (value) => value === true),
146
+ remove: (id) => call("remove_workflow_schedule", { schedule: id }, (value) => value === true),
147
+ tick: (tickOptions) => tick("claim_due_workflow_schedules", tickOptions, (row) => {
148
+ const schedule = scheduleOf(row);
149
+ const fireAt = requiredInstant(row["fireAt"], "fireAt");
150
+ const after = temporal().Instant.compare(fireAt, now()) > 0 ? fireAt : now();
151
+ return {
152
+ call: {
153
+ workflow: schedule.workflow,
154
+ input: schedule.input,
155
+ tenant: schedule.tenant,
156
+ actor: schedule.createdBy,
157
+ idempotencyKey: `schedule:${schedule.id}:${fireAt.toString()}`
158
+ },
159
+ done: () => call("advance_workflow_schedule", {
160
+ schedule: schedule.id,
161
+ fired: fireAt.toString(),
162
+ next_run: nextCronRun(schedule.cron, schedule.timezone, after).toString()
163
+ }, (value) => value === true)
164
+ };
165
+ })
166
+ },
167
+ semaphores: {
168
+ acquire: (key, holder, semaphore) => call("acquire_workflow_semaphore", {
169
+ key,
170
+ holder,
171
+ max: semaphore.max,
172
+ ttl: seconds(semaphore.ttl ?? 300)
173
+ }, (value) => value === true),
174
+ release: (key, holder) => call("release_workflow_semaphore", {
175
+ key,
176
+ holder
177
+ }, (value) => value === true)
178
+ },
179
+ admission: {
180
+ request: (input) => call("request_workflow_start", {
181
+ key: input.key,
182
+ workflow: input.workflow,
183
+ payload: { input: input.input ?? [] },
184
+ tenant: input.tenant,
185
+ actor: input.actor,
186
+ concurrency: input.concurrency,
187
+ debounce: input.debounce === void 0 ? void 0 : seconds(input.debounce),
188
+ singleton: input.singleton
189
+ }, (value) => {
190
+ const row = recordOf(value, "request_workflow_start");
191
+ return {
192
+ id: optionalText(row["id"]),
193
+ status: row["status"] === "dropped" ? "dropped" : "pending"
194
+ };
195
+ }),
196
+ tick: (tickOptions) => tick("claim_workflow_start_requests", tickOptions, (row) => {
197
+ const id = textOf(row["id"]);
198
+ return {
199
+ call: {
200
+ workflow: textOf(row["workflow"]),
201
+ input: row["input"],
202
+ tenant: optionalText(row["tenant"]),
203
+ actor: optionalText(row["actor"]),
204
+ idempotencyKey: `admission:${id}`
205
+ },
206
+ done: (run) => call("mark_workflow_start_request", {
207
+ request: id,
208
+ run
209
+ }, (value) => value === true)
210
+ };
211
+ })
212
+ }
213
+ };
214
+ }
215
+ //#endregion
216
+ export { createWorkflows as t };