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.
- package/README.md +187 -46
- package/dist/access-sql-B0dF-SoF.js +181 -0
- package/dist/{actor-DaJjqD5R.d.ts → actor-CQTlc1Hh.d.ts} +1 -1
- package/dist/adapter-CHnPkCPd.js +1160 -0
- package/dist/agents-CVHGd7It.d.ts +94 -0
- package/dist/ai-cache-CBWs1W0k.js +80 -0
- package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
- package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
- package/dist/ai-chat-B24UI962.js +743 -0
- package/dist/ai-files-CSPNswUY.js +319 -0
- package/dist/ai-sdk/agents/index.d.ts +74 -0
- package/dist/ai-sdk/agents/index.js +159 -0
- package/dist/ai-sdk/batches/index.d.ts +74 -0
- package/dist/ai-sdk/batches/index.js +180 -0
- package/dist/ai-sdk/cache/index.d.ts +38 -0
- package/dist/ai-sdk/cache/index.js +127 -0
- package/dist/ai-sdk/chat/index.d.ts +2 -0
- package/dist/ai-sdk/chat/index.js +246 -0
- package/dist/ai-sdk/embeddings/index.d.ts +3 -0
- package/dist/ai-sdk/embeddings/index.js +2 -0
- package/dist/ai-sdk/files/index.d.ts +61 -0
- package/dist/ai-sdk/files/index.js +111 -0
- package/dist/ai-sdk/index.d.ts +145 -0
- package/dist/ai-sdk/index.js +174 -0
- package/dist/ai-sdk/mcp/index.d.ts +102 -0
- package/dist/ai-sdk/mcp/index.js +362 -0
- package/dist/ai-sdk/memory/index.d.ts +67 -0
- package/dist/ai-sdk/memory/index.js +175 -0
- package/dist/ai-sdk/react/index.d.ts +2 -0
- package/dist/ai-sdk/react/index.js +3 -0
- package/dist/ai-sdk/react/server.d.ts +6 -0
- package/dist/ai-sdk/react/server.js +7 -0
- package/dist/ai-sdk/workflow/index.d.ts +249 -0
- package/dist/ai-sdk/workflow/index.js +575 -0
- package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
- package/dist/ai-sdk/workflow/react/index.js +66 -0
- package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
- package/dist/ai-sdk/workflow/react/server.js +12 -0
- package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
- package/dist/announcements-CiyOs-xP.js +107 -0
- package/dist/announcements-ZRGnScWI.d.ts +72 -0
- package/dist/api-keys-rCGtKaZA.d.ts +156 -0
- package/dist/assistant-DwdpDH1q.d.ts +147 -0
- package/dist/astro/index.d.ts +86 -0
- package/dist/astro/index.js +93 -0
- package/dist/attributes-5dYul0u0.js +13 -0
- package/dist/auth-link-BjFPqwLz.d.ts +97 -0
- package/dist/auth-link-DrDX9KOT.js +114 -0
- package/dist/authorization-BFCqamMs.d.ts +172 -0
- package/dist/before-route-CnR0C0Jr.js +30 -0
- package/dist/bind-Bu_ZNa3W.d.ts +62 -0
- package/dist/bind-l4kAvYSv.js +97 -0
- package/dist/block-events-CrT8r7Fe.js +76 -0
- package/dist/block-fields-GFkxl4dP.js +49 -0
- package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
- package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
- package/dist/block-helpers-DWHxHsEQ.js +190 -0
- package/dist/block-hooks-BmjMyXTa.js +114 -0
- package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
- package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
- package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
- package/dist/blocks/agents/index.d.ts +3 -0
- package/dist/blocks/agents/index.js +123 -0
- package/dist/blocks/ai-cache/index.d.ts +3 -0
- package/dist/blocks/ai-cache/index.js +3 -0
- package/dist/blocks/ai-chat/index.d.ts +31 -0
- package/dist/blocks/ai-chat/index.js +5 -0
- package/dist/blocks/ai-chat/react/index.d.ts +77 -0
- package/dist/blocks/ai-chat/react/index.js +387 -0
- package/dist/blocks/ai-chat/react/server.d.ts +16 -0
- package/dist/blocks/ai-chat/react/server.js +14 -0
- package/dist/blocks/ai-files/index.d.ts +14 -0
- package/dist/blocks/ai-files/index.js +3 -0
- package/dist/blocks/ai-providers/index.d.ts +7 -0
- package/dist/blocks/ai-providers/index.js +211 -0
- package/dist/blocks/ai-tasks/index.d.ts +3 -0
- package/dist/blocks/ai-tasks/index.js +203 -0
- package/dist/blocks/announcements/index.d.ts +3 -0
- package/dist/blocks/announcements/index.js +3 -0
- package/dist/blocks/announcements/react/index.d.ts +31 -0
- package/dist/blocks/announcements/react/index.js +86 -0
- package/dist/blocks/announcements/react/server.d.ts +6 -0
- package/dist/blocks/announcements/react/server.js +7 -0
- package/dist/blocks/api-keys/index.d.ts +35 -0
- package/dist/blocks/api-keys/index.js +334 -0
- package/dist/blocks/attachments/index.d.ts +224 -0
- package/dist/blocks/attachments/index.js +234 -0
- package/dist/blocks/audit/index.d.ts +366 -0
- package/dist/blocks/audit/index.js +714 -0
- package/dist/blocks/billing/index.d.ts +265 -0
- package/dist/blocks/billing/index.js +400 -0
- package/dist/blocks/comments/index.d.ts +200 -0
- package/dist/blocks/comments/index.js +207 -0
- package/dist/blocks/connectors/index.d.ts +3 -0
- package/dist/blocks/connectors/index.js +164 -0
- package/dist/blocks/data-lifecycle/index.d.ts +259 -0
- package/dist/blocks/data-lifecycle/index.js +358 -0
- package/dist/blocks/entitlements/index.d.ts +14 -0
- package/dist/blocks/entitlements/index.js +25 -0
- package/dist/blocks/flags/index.d.ts +226 -0
- package/dist/blocks/flags/index.js +282 -0
- package/dist/blocks/inbox/index.d.ts +6 -0
- package/dist/blocks/inbox/index.js +499 -0
- package/dist/blocks/inbox/react/index.d.ts +2 -0
- package/dist/blocks/inbox/react/index.js +225 -0
- package/dist/blocks/inbox/react/server.d.ts +10 -0
- package/dist/blocks/inbox/react/server.js +12 -0
- package/dist/blocks/index.d.ts +65 -0
- package/dist/blocks/index.js +77 -0
- package/dist/blocks/jobs/index.d.ts +297 -0
- package/dist/blocks/jobs/index.js +1051 -0
- package/dist/blocks/knowledge/index.d.ts +3 -0
- package/dist/blocks/knowledge/index.js +3 -0
- package/dist/blocks/memory/index.d.ts +8 -0
- package/dist/blocks/memory/index.js +289 -0
- package/dist/blocks/notifications/index.d.ts +297 -0
- package/dist/blocks/notifications/index.js +425 -0
- package/dist/blocks/notifications/react/index.d.ts +44 -0
- package/dist/blocks/notifications/react/index.js +67 -0
- package/dist/blocks/notifications/react/server.d.ts +6 -0
- package/dist/blocks/notifications/react/server.js +7 -0
- package/dist/blocks/onboarding/index.d.ts +3 -0
- package/dist/blocks/onboarding/index.js +64 -0
- package/dist/blocks/onboarding/react/index.d.ts +28 -0
- package/dist/blocks/onboarding/react/index.js +78 -0
- package/dist/blocks/onboarding/react/server.d.ts +7 -0
- package/dist/blocks/onboarding/react/server.js +7 -0
- package/dist/blocks/organizations/index.d.ts +241 -0
- package/dist/blocks/organizations/index.js +400 -0
- package/dist/blocks/outbox/index.d.ts +3 -0
- package/dist/blocks/outbox/index.js +266 -0
- package/dist/blocks/profiles/index.d.ts +40 -0
- package/dist/blocks/profiles/index.js +28 -0
- package/dist/blocks/push/index.d.ts +185 -0
- package/dist/blocks/push/index.js +258 -0
- package/dist/blocks/settings/index.d.ts +89 -0
- package/dist/blocks/settings/index.js +104 -0
- package/dist/blocks/sso/index.d.ts +198 -0
- package/dist/blocks/sso/index.js +1297 -0
- package/dist/blocks/usage/index.d.ts +4 -0
- package/dist/blocks/usage/index.js +233 -0
- package/dist/blocks/waitlist/index.d.ts +117 -0
- package/dist/blocks/waitlist/index.js +132 -0
- package/dist/blocks/webhooks/index.d.ts +304 -0
- package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
- package/dist/blocks/workflow-builder/index.d.ts +21 -0
- package/dist/blocks/workflow-builder/index.js +5 -0
- package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
- package/dist/blocks/workflow-builder/react/index.js +119 -0
- package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
- package/dist/blocks/workflow-builder/react/server.js +11 -0
- package/dist/blocks/workflows/index.d.ts +3 -0
- package/dist/blocks/workflows/index.js +3 -0
- package/dist/blocks/workflows/react/index.d.ts +47 -0
- package/dist/blocks/workflows/react/index.js +137 -0
- package/dist/blocks/workflows/react/server.d.ts +8 -0
- package/dist/blocks/workflows/react/server.js +11 -0
- package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
- package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
- package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
- package/dist/channels-CkgQ_X60.js +114 -0
- package/dist/chat-sdk/index.d.ts +303 -0
- package/dist/chat-sdk/index.js +733 -0
- package/dist/chat-sdk/react/index.d.ts +2 -0
- package/dist/chat-sdk/react/index.js +3 -0
- package/dist/chat-sdk/react/server.d.ts +3 -0
- package/dist/chat-sdk/react/server.js +2 -0
- package/dist/claims-DDBQT6BK.js +61 -0
- package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
- package/dist/cli/bin.js +1 -1
- package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
- package/dist/cli/config-B9HkL8nF.js +2 -0
- package/dist/cli/config-DU7EJImt.js +49 -0
- package/dist/cli/config-NiPxAmUF.js +1077 -0
- package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
- package/dist/cli/{doctor-C_A-KEAz.js → doctor-BMqBgM3X.js} +991 -317
- package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
- package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
- package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
- package/dist/cli/gen-4JlOwgWG.js +2 -0
- package/dist/cli/gen-DeuDgPxN.js +3100 -0
- package/dist/cli/index.d.ts +44 -5
- package/dist/cli/index.js +7 -7
- package/dist/cli/{init-DMa6M7hV.js → init-C7Xd0Kda.js} +242 -27
- package/dist/cli/{introspect-BKlaIu_M.js → introspect-CSnMJ94U.js} +5 -5
- package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
- package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
- package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
- package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
- package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
- package/dist/cli/read-sets-CETOSFx4.js +223 -0
- package/dist/cli/{run-Bo_NLT5n.js → run-C8tnlHSb.js} +33 -23
- package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
- package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
- package/dist/cli/sql-D0GUtUPp.js +536 -0
- package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
- package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
- package/dist/cli/{version-BCtlgDQx.js → version-C_4JwyiM.js} +1 -1
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.js +11 -71
- package/dist/client/native/index.d.ts +228 -0
- package/dist/client/native/index.js +361 -0
- package/dist/client-CI0Z2zWX.js +277 -0
- package/dist/cloud-event-BnmD5fb9.js +46 -0
- package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
- package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
- package/dist/compose-BIBNgAnq.js +53 -0
- package/dist/composite-CLqs9-OA.js +130 -0
- package/dist/composite-pSfeJNce.d.ts +146 -0
- package/dist/config/index.d.ts +6 -4
- package/dist/config/index.js +5 -5
- package/dist/{config-Bv7gvfzC.d.ts → config-D44Y7PAv.d.ts} +406 -214
- package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
- package/dist/connector-Dv8kK0MO.d.ts +107 -0
- package/dist/connectors-hkLCwyEz.d.ts +120 -0
- package/dist/context-BCrWe7ow.d.ts +237 -0
- package/dist/credentials/index.d.ts +31 -0
- package/dist/credentials/index.js +168 -0
- package/dist/cron-DVPUg5k3.js +145 -0
- package/dist/csv-CPAzEmB6.js +25 -0
- package/dist/db-exception-CnWcYPxL.js +15 -0
- package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
- package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
- package/dist/edge/index.d.ts +69 -11
- package/dist/edge/index.js +191 -75
- package/dist/elysia/index.d.ts +59 -0
- package/dist/elysia/index.js +62 -0
- package/dist/embeddings-4ZvFzjsU.js +127 -0
- package/dist/embeddings-C9KGQnXt.d.ts +68 -0
- package/dist/{refresh-CFPX0Qft.d.ts → ended-jLfvw8h-.d.ts} +20 -2
- package/dist/{entitlements-BiJZ4t49.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
- package/dist/entitlements-DRl6ZJUm.js +24 -0
- package/dist/envelope-DqnYGRw7.js +47 -0
- package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
- package/dist/errors-DLjJHPLK.js +44 -0
- package/dist/escape-like-DHfx6jRr.js +7 -0
- package/dist/escape-like-ImTK0ps_.d.ts +15 -0
- package/dist/eve/index.d.ts +220 -0
- package/dist/eve/index.js +504 -0
- package/dist/eve-gT2Fpjut.d.ts +151 -0
- package/dist/events/index.d.ts +4 -3
- package/dist/events/index.js +9 -50
- package/dist/events-DWDhx77e.d.ts +549 -0
- package/dist/executor-Bq28caBo.js +718 -0
- package/dist/executor-C-R4pucm.js +83 -0
- package/dist/executor-CaWigTyR.d.ts +148 -0
- package/dist/executor-D14tGopJ.d.ts +36 -0
- package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
- package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
- package/dist/executor-DvsBbNBS.d.ts +261 -0
- package/dist/expo/index.d.ts +79 -0
- package/dist/expo/index.js +129 -0
- package/dist/expo-sqlite/index.d.ts +58 -0
- package/dist/expo-sqlite/index.js +104 -0
- package/dist/field-errors-BFOa7WhB.d.ts +99 -0
- package/dist/field-errors-VF1yb8yI.js +13 -0
- package/dist/framework-CdPDPpFs.d.ts +25 -0
- package/dist/framework-xjTBoyBB.js +51 -0
- package/dist/gateway-C1ssRHnf.d.ts +130 -0
- package/dist/graph-BGyLLFLX.js +265 -0
- package/dist/h3/index.d.ts +59 -0
- package/dist/h3/index.js +55 -0
- package/dist/h3/v1/index.d.ts +63 -0
- package/dist/h3/v1/index.js +49 -0
- package/dist/history-BZih6SFP.js +64 -0
- package/dist/hono/index.d.ts +56 -7
- package/dist/hono/index.js +97 -45
- package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
- package/dist/http-Cv4T29xh.js +40 -0
- package/dist/http-DdYadv-o.js +126 -0
- package/dist/image-url-pIVlO6R1.js +41 -0
- package/dist/{impersonation-BgSHAYLf.js → impersonation-DcqaTBHx.js} +21 -6
- package/dist/inbox-i7E1ppo6.d.ts +384 -0
- package/dist/index-ACiNPN4Z.d.ts +74 -0
- package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
- package/dist/index-BkWT_uBO.d.ts +51 -0
- package/dist/index-BpFYMsi0.d.ts +53 -0
- package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-ClmjK_o-.d.ts +55 -0
- package/dist/index-CtuakVRc.d.ts +267 -0
- package/dist/index-D48jVS-N.d.ts +246 -0
- package/dist/index-DDrYaUcq.d.ts +138 -0
- package/dist/index-DQh4VCc9.d.ts +98 -0
- package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
- package/dist/index.d.ts +65 -18
- package/dist/index.js +42 -14
- package/dist/invalidate-BBqhpxyB.d.ts +19 -0
- package/dist/json-CEnpTHlZ.js +16 -0
- package/dist/json-schema-CvER4kgT.js +502 -0
- package/dist/keys-4MnkWTTh.js +35 -0
- package/dist/kit-B5tid-q5.d.ts +60 -0
- package/dist/kit-Fm-Fv7q5.js +78 -0
- package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
- package/dist/knowledge-CDmiMLew.js +255 -0
- package/dist/lint/index.d.ts +1 -1
- package/dist/lint/index.js +37 -0
- package/dist/list/index.d.ts +3 -2
- package/dist/list/index.js +1 -444
- package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
- package/dist/list-query-gl808ac1.js +459 -0
- package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
- package/dist/logger-DWVYUmwi.d.ts +18 -0
- package/dist/mcp/index.d.ts +38 -11
- package/dist/mcp/index.js +82 -46
- package/dist/mcp/sdk/index.d.ts +105 -0
- package/dist/mcp/sdk/index.js +126 -0
- package/dist/message-CaKlqdsX.js +219 -0
- package/dist/message-CfDoR0Y6.d.ts +94 -0
- package/dist/messages-B9-5887d.js +715 -0
- package/dist/messages-DYP0sUTe.d.ts +59 -0
- package/dist/mfa-Daak8ukG.d.ts +54 -0
- package/dist/modules-DpPwzC7E.d.ts +192 -0
- package/dist/modules-dxrVK3ID.js +228 -0
- package/dist/nestjs/index.d.ts +68 -0
- package/dist/nestjs/index.js +164 -0
- package/dist/next/client/index.d.ts +35 -0
- package/dist/next/client/index.js +36 -0
- package/dist/next/image/index.js +3 -24
- package/dist/next/index.d.ts +150 -51
- package/dist/next/index.js +261 -107
- package/dist/node/index.d.ts +4 -0
- package/dist/node/index.js +210 -0
- package/dist/node-headers-AO06VhqH.d.ts +24 -0
- package/dist/node-headers-C71zNQHe.js +55 -0
- package/dist/nuxt/index.d.ts +60 -0
- package/dist/nuxt/index.js +64 -0
- package/dist/onboarding-BZGHYJks.d.ts +62 -0
- package/dist/openapi/index.d.ts +1 -1
- package/dist/openapi/index.js +3 -3
- package/dist/orpc/index.d.ts +70 -11
- package/dist/orpc/index.js +73 -24
- package/dist/otel/index.d.ts +7 -7
- package/dist/otel/index.js +87 -57
- package/dist/outbox-Cq7pPYvl.d.ts +161 -0
- package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
- package/dist/plugin-tfXW1-qO.js +45 -0
- package/dist/plugins/actor/index.d.ts +2 -2
- package/dist/plugins/actor/index.js +3 -3
- package/dist/plugins/rules/index.d.ts +11 -4
- package/dist/plugins/rules/index.js +40 -13
- package/dist/plugins/soft-delete/index.d.ts +5 -4
- package/dist/plugins/soft-delete/index.js +10 -5
- package/dist/plugins/tenant/index.d.ts +2 -2
- package/dist/plugins/tenant/index.js +18 -11
- package/dist/plugins/timestamps/index.d.ts +5 -3
- package/dist/plugins/timestamps/index.js +6 -4
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +10 -6
- package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
- package/dist/postgres/index.d.ts +4 -4
- package/dist/postgres/index.js +1 -2
- package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
- package/dist/powersync/index.d.ts +43 -0
- package/dist/powersync/index.js +199 -0
- package/dist/powersync/react/index.d.ts +87 -0
- package/dist/powersync/react/index.js +108 -0
- package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
- package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
- package/dist/provider-BH5UWZJ6.d.ts +113 -0
- package/dist/provider-Di3sRutW.js +57 -0
- package/dist/query/index.d.ts +4 -2
- package/dist/query/index.js +4 -3
- package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
- package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
- package/dist/react/index.d.ts +11 -7
- package/dist/react/index.js +7 -3
- package/dist/react/native/index.d.ts +116 -0
- package/dist/react/native/index.js +130 -0
- package/dist/react/server.d.ts +28 -10
- package/dist/react/server.js +22 -5
- package/dist/react/session.d.ts +2 -2
- package/dist/react-4ZqkP8da.js +79 -0
- package/dist/react-F80mF4-t.js +409 -0
- package/dist/react-router/index.d.ts +83 -0
- package/dist/react-router/index.js +89 -0
- package/dist/react-topic-seAWjL3_.js +38 -0
- package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
- package/dist/realtime/index.d.ts +4 -5
- package/dist/realtime/index.js +144 -82
- package/dist/refusal-CeJWxmkH.js +61 -0
- package/dist/refusal-D1rgbzNq.d.ts +15 -0
- package/dist/replicas-CwrYp5Zj.js +94 -0
- package/dist/{view-Bn6HNKUe.js → resolve-D_IcnvFd.js} +248 -240
- package/dist/{impersonation-BmePsuxz.d.ts → resolve-KW8nCeL6.d.ts} +29 -69
- package/dist/{resource-mqfJW4YF.js → resource-BsvzCMlX.js} +4 -4
- package/dist/{resource-DNRFP7KR.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
- package/dist/respond-BUgsXNgk.js +91 -0
- package/dist/respond-DoBijysA.d.ts +93 -0
- package/dist/result-D7y2fT87.d.ts +282 -0
- package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
- package/dist/run-state-CPo-1X2B.d.ts +12 -0
- package/dist/run-state-CgBKzYMW.js +13 -0
- package/dist/search-CUWCRYKL.js +9 -0
- package/dist/server/index.d.ts +143 -22
- package/dist/server/index.js +46 -14
- package/dist/{respond-BR1fJWOB.d.ts → server-C6DWVEVG.d.ts} +237 -85
- package/dist/session-ChiXDZdZ.d.ts +72 -0
- package/dist/shared-CBxosKK3.js +75 -0
- package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
- package/dist/shared-DDSjEGDR.d.ts +11 -0
- package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
- package/dist/sign-in-Cb1mwv6X.js +86 -0
- package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
- package/dist/simplify-DDO0j0LI.js +83 -0
- package/dist/solid/index.d.ts +131 -0
- package/dist/solid/index.js +344 -0
- package/dist/solid-start/index.d.ts +75 -0
- package/dist/solid-start/index.js +58 -0
- package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
- package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
- package/dist/sql/index.d.ts +313 -212
- package/dist/sql/index.js +34924 -6609
- package/dist/ssr/index.d.ts +6 -5
- package/dist/ssr/index.js +3 -3
- package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
- package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
- package/dist/stats-D_AD9GGu.js +1123 -0
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +1027 -368
- package/dist/store-BdH5ruDx.js +66 -0
- package/dist/store-CGjgWu5n.d.ts +68 -0
- package/dist/streams/index.d.ts +76 -0
- package/dist/streams/index.js +77 -0
- package/dist/streams/redis/index.d.ts +52 -0
- package/dist/streams/redis/index.js +185 -0
- package/dist/stripe-BMj5LtsT.js +38 -0
- package/dist/stripe-D04h-QBT.d.ts +136 -0
- package/dist/{support-view-B8SlToQX.d.ts → support-view-33Oi07TT.d.ts} +1 -1
- package/dist/{support-wHnK6zp-.js → support-zIa1URaN.js} +32 -11
- package/dist/svelte/index.d.ts +114 -0
- package/dist/svelte/index.js +344 -0
- package/dist/sveltekit/index.d.ts +116 -0
- package/dist/sveltekit/index.js +106 -0
- package/dist/tags-B99_U9Pp.js +39 -0
- package/dist/tags-Cx-LnIQP.d.ts +30 -0
- package/dist/tanstack-db/index.d.ts +71 -0
- package/dist/tanstack-db/index.js +72 -0
- package/dist/tanstack-start/index.d.ts +75 -0
- package/dist/tanstack-start/index.js +95 -0
- package/dist/tee-CoEppCER.js +101 -0
- package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
- package/dist/template-CwO38Do8.d.ts +6 -0
- package/dist/temporal-BJGitm-h.js +79 -0
- package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
- package/dist/tenant-I1TEZ_BX.js +27 -0
- package/dist/tenant-icPeuUBN.d.ts +17 -0
- package/dist/testing/index.d.ts +315 -41
- package/dist/testing/index.js +1046 -79
- package/dist/timing-CyTQPubY.js +92 -0
- package/dist/ttl-Hr34gRu8.js +12 -0
- package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
- package/dist/types-BI-0Sl2v.d.ts +359 -0
- package/dist/types-C05bxW-W.d.ts +220 -0
- package/dist/types-DGs5L0VN.d.ts +192 -0
- package/dist/types-TaiEeBGA.d.ts +156 -0
- package/dist/usage-CrvrL2vw.d.ts +177 -0
- package/dist/user-change-XzvgafU4.js +130 -0
- package/dist/vault-CSO7ss5C.d.ts +50 -0
- package/dist/vercel-connect/index.d.ts +47 -0
- package/dist/vercel-connect/index.js +119 -0
- package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
- package/dist/verify-DPuWngD4.d.ts +172 -0
- package/dist/{version-DOYTYwHP.js → version-CQt77F3T.js} +1 -1
- package/dist/view-BeFcRV6G.js +99 -0
- package/dist/{view-CbgObAeb.d.ts → view-DbxLNu8L.d.ts} +22 -5
- package/dist/vue/index.d.ts +141 -0
- package/dist/vue/index.js +362 -0
- package/dist/watch-DI34G86j.d.ts +60 -0
- package/dist/watch-Xuxrvxq-.js +122 -0
- package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
- package/dist/workflow-builder-DJ1oHn8g.js +398 -0
- package/dist/workflow-sdk/builder/index.d.ts +85 -0
- package/dist/workflow-sdk/builder/index.js +250 -0
- package/dist/workflow-sdk/index.d.ts +14 -0
- package/dist/workflow-sdk/index.js +3 -0
- package/dist/workflow-sdk/world/index.d.ts +107 -0
- package/dist/workflow-sdk/world/index.js +702 -0
- package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
- package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
- package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
- package/dist/workflows-B0j9WKPu.d.ts +185 -0
- package/dist/workflows-wu1WWBn7.js +216 -0
- package/package.json +461 -20
- package/schemas/ai-message-v1.json +258 -0
- package/schemas/config-v1.json +1074 -140
- package/schemas/doctor-report-v1.json +20 -1
- package/schemas/snapshot-v2.json +8 -0
- package/skills/better-supabase/SKILL.md +41 -12
- package/skills/better-supabase/references/frontend.md +96 -0
- package/skills/better-supabase/references/plugins.md +10 -6
- package/skills/better-supabase/references/troubleshooting.md +2 -1
- package/skills/better-supabase-api/SKILL.md +76 -22
- package/skills/better-supabase-api/references/adapters.md +207 -0
- package/skills/better-supabase-api/references/ai.md +125 -0
- package/skills/better-supabase-api/references/expo.md +65 -0
- package/skills/better-supabase-api/references/powersync.md +35 -0
- package/skills/better-supabase-api/references/streams-credentials.md +105 -0
- package/skills/better-supabase-auth/SKILL.md +47 -11
- package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
- package/skills/better-supabase-testing/SKILL.md +3 -1
- package/dist/cli/config-dtoekM0v.js +0 -2
- package/dist/cli/gen-CIdSQZad.js +0 -2
- package/dist/cli/gen-CjElD1Vw.js +0 -2241
- package/dist/cli/read-sets-VQcPgxU9.js +0 -436
- package/dist/cli/sql-CVx-1O8G.js +0 -373
- package/dist/entitlements-CTEBm7IB.js +0 -20
- package/dist/events-aIO7vsIk.d.ts +0 -230
- package/dist/executor-BunPOO-k.d.ts +0 -402
- package/dist/executor-XycESQPH.js +0 -94
- package/dist/index-CWMDdEr4.d.ts +0 -50
- package/dist/index-DOESKG27.d.ts +0 -100
- package/dist/index-DmXSxbLi.d.ts +0 -62
- package/dist/index-Dp2VDwog.d.ts +0 -161
- package/dist/jobs/index.d.ts +0 -226
- package/dist/jobs/index.js +0 -1007
- package/dist/json-schema-m1fiwKgN.js +0 -208
- package/dist/kit-events-CTFDfSwb.js +0 -60
- package/dist/kit-transport-B82k1djG.d.ts +0 -33
- package/dist/kits-CGLLrNPd.js +0 -157
- package/dist/mfa-Cu96oJdw.d.ts +0 -30
- package/dist/notifications/index.d.ts +0 -162
- package/dist/notifications/index.js +0 -264
- package/dist/orgs/index.d.ts +0 -132
- package/dist/orgs/index.js +0 -245
- package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
- package/dist/permdock-sql-DgOfeixi.js +0 -51
- package/dist/plugin-DwARMuQp.js +0 -59
- package/dist/server-B1mZ7CgQ.js +0 -660
- package/dist/stats-Bqob3WqT.js +0 -592
- package/dist/support-CEPwlw2G.d.ts +0 -89
- package/dist/template-mbvlysOo.d.ts +0 -6
- package/dist/temporal-CVlIV2DZ.js +0 -40
- package/dist/user-change-CHFEUro1.js +0 -49
- package/dist/webhooks/index.d.ts +0 -285
- 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 };
|