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.
- 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-Bc1o3zyy.js +1106 -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 +210 -0
- package/dist/blocks/attachments/index.js +222 -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 +251 -0
- package/dist/blocks/data-lifecycle/index.js +353 -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-B4JOm_ox.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-BGLb_zou.js +3100 -0
- package/dist/cli/gen-DAH8FM2W.js +2 -0
- package/dist/cli/index.d.ts +44 -5
- package/dist/cli/index.js +7 -7
- package/dist/cli/{init-DMa6M7hV.js → init-BIIwclPg.js} +242 -27
- package/dist/cli/{introspect-BKlaIu_M.js → introspect-DNUTuNvb.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-DNWxHynX.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-hr88OZG0.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-Bt1YK3Ke.d.ts +146 -0
- package/dist/composite-DhE66P5u.js +130 -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-CONDyPYx.js +51 -0
- package/dist/framework-DuVb4Xa8.d.ts +25 -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-CeVeeXwz.d.ts} +224 -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 +34872 -6579
- 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-wHnK6zp-.js → support-BivNqSpK.js} +32 -11
- package/dist/{support-view-B8SlToQX.d.ts → support-view-33Oi07TT.d.ts} +1 -1
- 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-Bvv6aLjZ.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
|
@@ -1,402 +0,0 @@
|
|
|
1
|
-
import { E as RelationMeta, F as TableMeta, l as Codec } from "./types-Dnf_wRDz.js";
|
|
2
|
-
//#region src/ir/types.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* The query IR. Every repository call becomes one of these operations; the
|
|
5
|
-
* executor compiles it to PostgREST or SQL. Column names in the IR are
|
|
6
|
-
* database names; `Selection` carries the app aliases.
|
|
7
|
-
*/
|
|
8
|
-
type ColumnOp = "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "in" | "is" | "like" | "ilike" | "contains" | "containedBy" | "overlaps" | "fts";
|
|
9
|
-
type Quantifier = "some" | "none" | "every";
|
|
10
|
-
type Condition = {
|
|
11
|
-
readonly kind: "and";
|
|
12
|
-
readonly items: readonly Condition[];
|
|
13
|
-
} | {
|
|
14
|
-
readonly kind: "or";
|
|
15
|
-
readonly items: readonly Condition[];
|
|
16
|
-
} | {
|
|
17
|
-
readonly kind: "not";
|
|
18
|
-
readonly item: Condition;
|
|
19
|
-
} | {
|
|
20
|
-
readonly kind: "column";
|
|
21
|
-
readonly column: string;
|
|
22
|
-
readonly op: ColumnOp;
|
|
23
|
-
readonly value: unknown;
|
|
24
|
-
/** Full-text search configuration for `fts`. */
|
|
25
|
-
readonly config?: string;
|
|
26
|
-
} | {
|
|
27
|
-
readonly kind: "relation";
|
|
28
|
-
readonly name: string;
|
|
29
|
-
readonly relation: RelationMeta;
|
|
30
|
-
readonly target: TableMeta;
|
|
31
|
-
readonly quantifier: Quantifier;
|
|
32
|
-
readonly where: Condition | undefined;
|
|
33
|
-
};
|
|
34
|
-
interface SelectColumn {
|
|
35
|
-
/** Key in the returned row. */
|
|
36
|
-
readonly alias: string;
|
|
37
|
-
/** Database column name. */
|
|
38
|
-
readonly column: string;
|
|
39
|
-
/** Read the column as text, so exact `int8`/`numeric` values survive JSON. */
|
|
40
|
-
readonly cast?: "text";
|
|
41
|
-
/** Decodes the returned value (see `ColumnMeta.codec`). */
|
|
42
|
-
readonly codec?: Codec;
|
|
43
|
-
}
|
|
44
|
-
interface OrderTerm {
|
|
45
|
-
readonly column: string;
|
|
46
|
-
readonly direction: "asc" | "desc";
|
|
47
|
-
readonly nulls?: "first" | "last";
|
|
48
|
-
}
|
|
49
|
-
interface Include {
|
|
50
|
-
readonly alias: string;
|
|
51
|
-
readonly relation: RelationMeta;
|
|
52
|
-
readonly target: TableMeta;
|
|
53
|
-
readonly selection: Selection;
|
|
54
|
-
readonly where: Condition | undefined;
|
|
55
|
-
readonly orderBy: readonly OrderTerm[];
|
|
56
|
-
readonly limit: number | undefined;
|
|
57
|
-
/** Drop parent rows without a match (`!inner`). */
|
|
58
|
-
readonly required: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* `_count` include: returns the number of matching related rows instead of
|
|
61
|
-
* rows, folded into `row._count[count]` when decoded.
|
|
62
|
-
*/
|
|
63
|
-
readonly count?: string;
|
|
64
|
-
/**
|
|
65
|
-
* `_sum`/`_avg`/`_min`/`_max` include: `selection.aggregate` holds the
|
|
66
|
-
* measures, folded into `row[`_${fn}`][name]` when decoded.
|
|
67
|
-
*/
|
|
68
|
-
readonly aggregate?: {
|
|
69
|
-
readonly fn: AggregateFn;
|
|
70
|
-
readonly name: string;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
type AggregateFn = "sum" | "avg" | "min" | "max";
|
|
74
|
-
interface Measure {
|
|
75
|
-
readonly fn: AggregateFn;
|
|
76
|
-
/** Key in the returned row (`_sum_amount`, or the column alias in an include). */
|
|
77
|
-
readonly key: string;
|
|
78
|
-
/** App column name, the key under `_sum` in the decoded row. */
|
|
79
|
-
readonly alias: string;
|
|
80
|
-
/** Database column name. */
|
|
81
|
-
readonly column: string;
|
|
82
|
-
/** Read the result as text, so exact `int8`/`numeric` values survive JSON. */
|
|
83
|
-
readonly cast?: "text";
|
|
84
|
-
readonly codec?: Codec;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Aggregates instead of rows. `Selection.columns` become the grouping
|
|
88
|
-
* columns; without any, the result is exactly one row.
|
|
89
|
-
*/
|
|
90
|
-
interface Aggregation {
|
|
91
|
-
/** Also return `_count`, the number of rows in each group. */
|
|
92
|
-
readonly count: boolean;
|
|
93
|
-
readonly measures: readonly Measure[];
|
|
94
|
-
}
|
|
95
|
-
interface Selection {
|
|
96
|
-
readonly columns: readonly SelectColumn[];
|
|
97
|
-
readonly includes: readonly Include[];
|
|
98
|
-
readonly aggregate?: Aggregation;
|
|
99
|
-
}
|
|
100
|
-
type CountMode = "exact" | "planned" | "estimated";
|
|
101
|
-
interface SelectOp {
|
|
102
|
-
readonly kind: "select";
|
|
103
|
-
readonly table: TableMeta;
|
|
104
|
-
readonly selection: Selection;
|
|
105
|
-
readonly where: Condition | undefined;
|
|
106
|
-
readonly orderBy: readonly OrderTerm[];
|
|
107
|
-
readonly limit: number | undefined;
|
|
108
|
-
readonly offset: number | undefined;
|
|
109
|
-
readonly count: CountMode | undefined;
|
|
110
|
-
/** Only count, return no rows. */
|
|
111
|
-
readonly head: boolean;
|
|
112
|
-
readonly single: "one" | "maybe" | undefined;
|
|
113
|
-
/** `limit` includes one row past the page, which `paginate()` reads to set `hasMore`. */
|
|
114
|
-
readonly lookAhead?: boolean;
|
|
115
|
-
/**
|
|
116
|
-
* Read from this set-returning function instead of the table (`db.$search`).
|
|
117
|
-
* Only executors with `functionSources` honor it.
|
|
118
|
-
*/
|
|
119
|
-
readonly source?: FunctionSource;
|
|
120
|
-
}
|
|
121
|
-
/** A function returning `setof <table>`, called with named arguments. */
|
|
122
|
-
interface FunctionSource {
|
|
123
|
-
readonly schema: string;
|
|
124
|
-
readonly name: string;
|
|
125
|
-
readonly args: Readonly<Record<string, unknown>>;
|
|
126
|
-
}
|
|
127
|
-
interface InsertOp {
|
|
128
|
-
readonly kind: "insert";
|
|
129
|
-
readonly table: TableMeta;
|
|
130
|
-
/** Rows keyed by database column names. */
|
|
131
|
-
readonly rows: readonly Readonly<Record<string, unknown>>[];
|
|
132
|
-
readonly returning: Selection | undefined;
|
|
133
|
-
readonly onConflict: {
|
|
134
|
-
readonly columns: readonly string[];
|
|
135
|
-
readonly action: "update" | "ignore";
|
|
136
|
-
} | undefined;
|
|
137
|
-
/** Missing columns become `null` instead of their default in bulk inserts. */
|
|
138
|
-
readonly defaultToNull: boolean;
|
|
139
|
-
}
|
|
140
|
-
interface UpdateOp {
|
|
141
|
-
readonly kind: "update";
|
|
142
|
-
readonly table: TableMeta;
|
|
143
|
-
/** Keyed by database column names. */
|
|
144
|
-
readonly set: Readonly<Record<string, unknown>>;
|
|
145
|
-
readonly where: Condition | undefined;
|
|
146
|
-
readonly returning: Selection | undefined;
|
|
147
|
-
}
|
|
148
|
-
interface DeleteOp {
|
|
149
|
-
readonly kind: "delete";
|
|
150
|
-
readonly table: TableMeta;
|
|
151
|
-
readonly where: Condition | undefined;
|
|
152
|
-
readonly returning: Selection | undefined;
|
|
153
|
-
}
|
|
154
|
-
type Operation = SelectOp | InsertOp | UpdateOp | DeleteOp;
|
|
155
|
-
type MutationOp = InsertOp | UpdateOp | DeleteOp;
|
|
156
|
-
declare const and: (...items: (Condition | undefined)[]) => Condition | undefined;
|
|
157
|
-
declare const or: (...items: Condition[]) => Condition;
|
|
158
|
-
declare const not: (item: Condition) => Condition;
|
|
159
|
-
declare const column: (name: string, op: ColumnOp, value: unknown) => Condition;
|
|
160
|
-
//#endregion
|
|
161
|
-
//#region src/core/errors.d.ts
|
|
162
|
-
/**
|
|
163
|
-
* Extra fields carried by each error kind. Plugins can add kinds through the
|
|
164
|
-
* `errors` extension point; apps that want the new kinds in the union can add
|
|
165
|
-
* them to this interface.
|
|
166
|
-
*/
|
|
167
|
-
interface DbErrorKinds {
|
|
168
|
-
not_found: Record<never, never>;
|
|
169
|
-
unauthorized: Record<never, never>;
|
|
170
|
-
/**
|
|
171
|
-
* `required`: the assurance level the route needs, when a second factor is
|
|
172
|
-
* missing. `scopes`: the OAuth scopes the route needs, when a delegated
|
|
173
|
-
* token lacks one (`INSUFFICIENT_SCOPE`).
|
|
174
|
-
*/
|
|
175
|
-
forbidden: {
|
|
176
|
-
required?: "aal1" | "aal2";
|
|
177
|
-
scopes?: readonly string[];
|
|
178
|
-
};
|
|
179
|
-
conflict: {
|
|
180
|
-
constraint?: string;
|
|
181
|
-
columns?: readonly string[];
|
|
182
|
-
};
|
|
183
|
-
foreign_key: {
|
|
184
|
-
constraint?: string;
|
|
185
|
-
columns?: readonly string[];
|
|
186
|
-
};
|
|
187
|
-
check: {
|
|
188
|
-
constraint?: string;
|
|
189
|
-
};
|
|
190
|
-
not_null: {
|
|
191
|
-
column?: string;
|
|
192
|
-
};
|
|
193
|
-
exclusion: {
|
|
194
|
-
constraint?: string;
|
|
195
|
-
};
|
|
196
|
-
invalid_input: Record<never, never>;
|
|
197
|
-
/** A stored value the app type can't hold, e.g. `infinity` for a Temporal timestamp. */
|
|
198
|
-
invalid_value: {
|
|
199
|
-
column?: string;
|
|
200
|
-
};
|
|
201
|
-
raised: Record<never, never>;
|
|
202
|
-
timeout: Record<never, never>;
|
|
203
|
-
serialization: Record<never, never>;
|
|
204
|
-
network: Record<never, never>;
|
|
205
|
-
aborted: Record<never, never>;
|
|
206
|
-
invalid_request: Record<never, never>;
|
|
207
|
-
validation: {
|
|
208
|
-
issues: readonly ValidationIssue[];
|
|
209
|
-
};
|
|
210
|
-
multiple_rows: Record<never, never>;
|
|
211
|
-
stale: Record<never, never>;
|
|
212
|
-
/** `retryAfter`: seconds until the window resets (the `Retry-After` header). */
|
|
213
|
-
rate_limited: {
|
|
214
|
-
retryAfter?: number;
|
|
215
|
-
};
|
|
216
|
-
unexpected: Record<never, never>;
|
|
217
|
-
}
|
|
218
|
-
type DbErrorKind = keyof DbErrorKinds;
|
|
219
|
-
interface ValidationIssue {
|
|
220
|
-
readonly message: string;
|
|
221
|
-
readonly path?: readonly PropertyKey[];
|
|
222
|
-
}
|
|
223
|
-
interface DbErrorBase<K extends DbErrorKind> {
|
|
224
|
-
readonly kind: K;
|
|
225
|
-
readonly message: string;
|
|
226
|
-
/** SQLSTATE or PostgREST code (`23505`, `PGRST116`), when known. */
|
|
227
|
-
readonly code?: string;
|
|
228
|
-
/** Suggested HTTP status, used by the RFC 9457 mapping. */
|
|
229
|
-
readonly status: number;
|
|
230
|
-
readonly details?: string;
|
|
231
|
-
/** Postgres `HINT`. `raised` errors use it as an app-level error code. */
|
|
232
|
-
readonly hint?: string;
|
|
233
|
-
/** App-cased table key the operation ran against. */
|
|
234
|
-
readonly table?: string;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* A database error as plain, serializable data. Safe to send across server
|
|
238
|
-
* action and RPC boundaries.
|
|
239
|
-
*/
|
|
240
|
-
type DbError = { [K in DbErrorKind]: DbErrorBase<K> & DbErrorKinds[K]; }[DbErrorKind];
|
|
241
|
-
type DbErrorOf<K extends DbErrorKind> = Extract<DbError, {
|
|
242
|
-
kind: K;
|
|
243
|
-
}>;
|
|
244
|
-
declare function statusOf(kind: DbErrorKind): number;
|
|
245
|
-
type ExtraOf<K extends DbErrorKind> = Record<never, never> extends DbErrorKinds[K] ? [extra?: DbErrorKinds[K] & Partial<Omit<DbErrorBase<K>, "kind">>] : [extra: DbErrorKinds[K] & Partial<Omit<DbErrorBase<K>, "kind">>];
|
|
246
|
-
/** Creates a `DbError` with the default status for its kind. */
|
|
247
|
-
declare function dbError<K extends DbErrorKind>(kind: K, message: string, ...[extra]: ExtraOf<K>): DbErrorOf<K>;
|
|
248
|
-
declare function isDbError(value: unknown): value is DbError;
|
|
249
|
-
/**
|
|
250
|
-
* A unique violation, optionally for one constraint. Accepts a `DbError` or a
|
|
251
|
-
* `DbException`. Pass the generated `UniqueConstraint` type to check names:
|
|
252
|
-
* `isConflict<UniqueConstraint>(error, 'customers_organization_id_kvk_key')`.
|
|
253
|
-
*/
|
|
254
|
-
declare const isConflict: <C extends string = string>(error: unknown, constraint?: NoInfer<C>) => error is DbErrorOf<"conflict"> & {
|
|
255
|
-
readonly constraint: C;
|
|
256
|
-
};
|
|
257
|
-
/** A CHECK violation, optionally for one constraint (`CheckConstraint`). */
|
|
258
|
-
declare const isCheck: <C extends string = string>(error: unknown, constraint?: NoInfer<C>) => error is DbErrorOf<"check"> & {
|
|
259
|
-
readonly constraint: C;
|
|
260
|
-
};
|
|
261
|
-
/** A foreign key violation, optionally for one constraint (`ForeignKeyConstraint`). */
|
|
262
|
-
declare const isForeignKey: <C extends string = string>(error: unknown, constraint?: NoInfer<C>) => error is DbErrorOf<"foreign_key"> & {
|
|
263
|
-
readonly constraint: C;
|
|
264
|
-
};
|
|
265
|
-
/** Thrown by `.orThrow()`. Carries the plain `DbError` as `error`. */
|
|
266
|
-
declare class DbException extends Error {
|
|
267
|
-
override readonly name = "DbException";
|
|
268
|
-
readonly error: DbError;
|
|
269
|
-
constructor(error: DbError);
|
|
270
|
-
get kind(): DbErrorKind;
|
|
271
|
-
}
|
|
272
|
-
/** Raw error shape shared by PostgREST responses and `pg` errors. */
|
|
273
|
-
interface RawDbError {
|
|
274
|
-
readonly message?: string;
|
|
275
|
-
readonly code?: string;
|
|
276
|
-
readonly details?: string | null;
|
|
277
|
-
readonly hint?: string | null;
|
|
278
|
-
readonly constraint?: string;
|
|
279
|
-
readonly column?: string;
|
|
280
|
-
readonly table?: string;
|
|
281
|
-
readonly name?: string;
|
|
282
|
-
}
|
|
283
|
-
type ErrorMapper = (raw: RawDbError, fallback: DbError) => DbError | undefined;
|
|
284
|
-
/**
|
|
285
|
-
* Maps a PostgREST or Postgres error to a `DbError`. Custom mappers run
|
|
286
|
-
* first; the first one that returns an error wins.
|
|
287
|
-
*/
|
|
288
|
-
declare function mapDbError(raw: RawDbError, mappers?: readonly ErrorMapper[]): DbError;
|
|
289
|
-
//#endregion
|
|
290
|
-
//#region src/core/result.d.ts
|
|
291
|
-
/** Turns a `DbError` into the error `.orThrow()` throws; set with `betterSupabase.mapError()`. */
|
|
292
|
-
type ThrowMapper = (error: DbError) => unknown;
|
|
293
|
-
type Ok<T> = {
|
|
294
|
-
readonly ok: true;
|
|
295
|
-
readonly data: T;
|
|
296
|
-
readonly error: null;
|
|
297
|
-
};
|
|
298
|
-
type Err<E = DbError> = {
|
|
299
|
-
readonly ok: false;
|
|
300
|
-
readonly data: null;
|
|
301
|
-
readonly error: E;
|
|
302
|
-
};
|
|
303
|
-
type Result<T, E = DbError> = Ok<T> | Err<E>;
|
|
304
|
-
declare function ok<T>(data: T): Ok<T>;
|
|
305
|
-
declare function err<E = DbError>(error: E): Err<E>;
|
|
306
|
-
/**
|
|
307
|
-
* A lazy-free `PromiseLike<Result<T>>` with helpers. `await` gives the
|
|
308
|
-
* `Result`; `.orThrow()` gives the data or throws a `DbException`.
|
|
309
|
-
*/
|
|
310
|
-
declare class AsyncResult<T> implements PromiseLike<Result<T>> {
|
|
311
|
-
#private;
|
|
312
|
-
constructor(promise: Promise<Result<T>>);
|
|
313
|
-
static from<T>(run: () => Promise<Result<T>>): AsyncResult<T>;
|
|
314
|
-
static ok<T>(data: T): AsyncResult<T>;
|
|
315
|
-
static err<T = never>(error: DbError): AsyncResult<T>;
|
|
316
|
-
then<R1 = Result<T>, R2 = never>(onfulfilled?: ((value: Result<T>) => R1 | PromiseLike<R1>) | null, onrejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null): Promise<R1 | R2>;
|
|
317
|
-
/**
|
|
318
|
-
* Resolves with the data, or rejects with a `DbException`. Pass `factory`
|
|
319
|
-
* to throw your own error instead, e.g. an HTTP error for your framework;
|
|
320
|
-
* without it, the mapper from `betterSupabase.mapError()` applies when one is set.
|
|
321
|
-
*/
|
|
322
|
-
orThrow(factory?: (error: DbError) => unknown): Promise<T>;
|
|
323
|
-
/** Resolves with the data, or `fallback` when the result is an error. */
|
|
324
|
-
unwrapOr<F>(fallback: F): Promise<T | F>;
|
|
325
|
-
map<U>(fn: (data: T) => U): AsyncResult<U>;
|
|
326
|
-
mapError(fn: (error: DbError) => DbError): AsyncResult<T>;
|
|
327
|
-
andThen<U>(fn: (data: T) => PromiseLike<Result<U>>): AsyncResult<U>;
|
|
328
|
-
}
|
|
329
|
-
/** What `toBetterResult` returns: the `status`/`value`/`error` fields every better-result value has. */
|
|
330
|
-
type BetterResultValue<T, E> = {
|
|
331
|
-
readonly status: "ok";
|
|
332
|
-
readonly value: T;
|
|
333
|
-
} | {
|
|
334
|
-
readonly status: "error";
|
|
335
|
-
readonly error: E;
|
|
336
|
-
};
|
|
337
|
-
/** The part of better-result's `Result` namespace `toBetterResult` calls. */
|
|
338
|
-
interface BetterResultApi<T, E> {
|
|
339
|
-
ok(value: NoInfer<T>): unknown;
|
|
340
|
-
err(error: NoInfer<E>): unknown;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Builds a better-result value with the `Result` namespace you pass, so
|
|
344
|
-
* better-result stays your dependency. Errors go through `mapError`, or, for a
|
|
345
|
-
* result from a `db` of `betterSupabase.mapError(fn)`, through `fn` (typed `unknown`).
|
|
346
|
-
* The value is a real `Ok`/`Err`: cast it (`as Result<T, E>`) for its
|
|
347
|
-
* methods in types; the cast itself is not checked against `T`.
|
|
348
|
-
*
|
|
349
|
-
* ```ts
|
|
350
|
-
* import { Result } from 'better-result';
|
|
351
|
-
* const customer = toBetterResult(await db.customers.findById(id), Result, toAppError);
|
|
352
|
-
* ```
|
|
353
|
-
*/
|
|
354
|
-
declare function toBetterResult<T, E>(result: Result<T>, api: BetterResultApi<T, E>, mapError: (error: DbError) => E): BetterResultValue<T, E>;
|
|
355
|
-
declare function toBetterResult<T>(result: Result<T>, api: BetterResultApi<T, DbError>): BetterResultValue<T, DbError>;
|
|
356
|
-
declare function toBetterResult<T, E>(result: AsyncResult<T>, api: BetterResultApi<T, E>, mapError: (error: DbError) => E): Promise<BetterResultValue<T, E>>;
|
|
357
|
-
declare function toBetterResult<T>(result: AsyncResult<T>, api: BetterResultApi<T, unknown>): Promise<BetterResultValue<T, unknown>>;
|
|
358
|
-
/**
|
|
359
|
-
* Converts a better-result value back into a `Result`, by its `status`
|
|
360
|
-
* field, so it works across better-result versions. A `DbError`, or an
|
|
361
|
-
* error whose `cause` is one, is kept; others go through `mapError`
|
|
362
|
-
* (default `toDbError`).
|
|
363
|
-
*/
|
|
364
|
-
declare function fromBetterResult<T>(result: BetterResultValue<T, unknown>, mapError?: (error: unknown) => DbError): Result<T>;
|
|
365
|
-
declare function toDbError(cause: unknown): DbError;
|
|
366
|
-
//#endregion
|
|
367
|
-
//#region src/core/executor.d.ts
|
|
368
|
-
interface ExecuteContext {
|
|
369
|
-
readonly signal?: AbortSignal;
|
|
370
|
-
readonly errorMappers: readonly ErrorMapper[];
|
|
371
|
-
}
|
|
372
|
-
interface ExecuteResult {
|
|
373
|
-
/** Rows keyed by the aliases in the operation's selection. */
|
|
374
|
-
readonly rows: readonly Record<string, unknown>[];
|
|
375
|
-
readonly count: number | null;
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Runs IR operations. PostgREST (`postgrestExecutor`) and SQL
|
|
379
|
-
* (`better-supabase/postgres`) are built in; any other backend can implement
|
|
380
|
-
* this interface and prove it with `testExecutor` from `better-supabase/testing`.
|
|
381
|
-
*/
|
|
382
|
-
interface Executor {
|
|
383
|
-
readonly name: string;
|
|
384
|
-
/** Honors `SelectOp.source`. `db.$search` fails on executors without it. */
|
|
385
|
-
readonly functionSources?: boolean;
|
|
386
|
-
execute(op: Operation, context: ExecuteContext): Promise<Result<ExecuteResult>>;
|
|
387
|
-
/** Calls a database function. Optional; `db.$rpc` fails without it. */
|
|
388
|
-
rpc?(name: string, args: Readonly<Record<string, unknown>>, context: RpcContext): Promise<Result<unknown>>;
|
|
389
|
-
/**
|
|
390
|
-
* Runs several reads together, for `db.$many`: one transaction on a SQL
|
|
391
|
-
* connection. Returns one result per operation, in order. Optional;
|
|
392
|
-
* without it `db.$many` runs the operations in parallel.
|
|
393
|
-
*/
|
|
394
|
-
batch?(ops: readonly Operation[], context: ExecuteContext): Promise<readonly Result<ExecuteResult>[]>;
|
|
395
|
-
}
|
|
396
|
-
interface RpcContext extends ExecuteContext {
|
|
397
|
-
readonly schema: string;
|
|
398
|
-
/** The function is `stable`: send it as a GET, so read replicas can serve it. */
|
|
399
|
-
readonly get?: boolean;
|
|
400
|
-
}
|
|
401
|
-
//#endregion
|
|
402
|
-
export { or as $, mapDbError as A, InsertOp as B, RawDbError as C, isConflict as D, isCheck as E, Condition as F, Quantifier as G, MutationOp as H, CountMode as I, Selection as J, SelectColumn as K, DeleteOp as L, AggregateFn as M, Aggregation as N, isDbError as O, ColumnOp as P, not as Q, FunctionSource as R, ErrorMapper as S, dbError as T, Operation as U, Measure as V, OrderTerm as W, and as X, UpdateOp as Y, column as Z, DbError as _, AsyncResult as a, DbErrorOf as b, Err as c, ThrowMapper as d, err as f, toDbError as g, toBetterResult as h, RpcContext as i, statusOf as j, isForeignKey as k, Ok as l, ok as m, ExecuteResult as n, BetterResultApi as o, fromBetterResult as p, SelectOp as q, Executor as r, BetterResultValue as s, ExecuteContext as t, Result as u, DbErrorKind as v, ValidationIssue as w, DbException as x, DbErrorKinds as y, Include as z };
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { c as mapDbError, n as dbError } from "./errors-DtwXa6b8.js";
|
|
2
|
-
import { i as ok, n as err, o as toDbError } from "./result-BKiliPY7.js";
|
|
3
|
-
import { t as compileSql } from "./sql-Coh6n4cC.js";
|
|
4
|
-
//#region src/postgres/executor.ts
|
|
5
|
-
function isPgError(value) {
|
|
6
|
-
return typeof value === "object" && value !== null && typeof value.code === "string";
|
|
7
|
-
}
|
|
8
|
-
/** node-postgres error fields to the shape `mapDbError` reads. */
|
|
9
|
-
function fromPgError(error) {
|
|
10
|
-
if (!isPgError(error)) return void 0;
|
|
11
|
-
const raw = {};
|
|
12
|
-
if (error.code !== void 0) raw.code = error.code;
|
|
13
|
-
if (error.message !== void 0) raw.message = error.message;
|
|
14
|
-
if (error.detail !== void 0) raw.details = error.detail;
|
|
15
|
-
if (error.hint !== void 0) raw.hint = error.hint;
|
|
16
|
-
if (error.constraint !== void 0) raw.constraint = error.constraint;
|
|
17
|
-
if (error.column !== void 0) raw.column = error.column;
|
|
18
|
-
if (error.table !== void 0) raw.table = error.table;
|
|
19
|
-
return raw;
|
|
20
|
-
}
|
|
21
|
-
async function run(client, plan, op) {
|
|
22
|
-
const rows = plan.rows ? (await client.queryRaw(plan.rows.text, [...plan.rows.params])).map((entry) => entry.row) : [];
|
|
23
|
-
let count = null;
|
|
24
|
-
if (plan.count) {
|
|
25
|
-
const [first] = await client.queryRaw(plan.count.text, [...plan.count.params]);
|
|
26
|
-
count = first?.count ?? 0;
|
|
27
|
-
} else if (op.kind !== "select") count = rows.length;
|
|
28
|
-
for (const next of plan.chunks ?? []) {
|
|
29
|
-
const more = await run(client, next, op);
|
|
30
|
-
rows.push(...more.rows);
|
|
31
|
-
count = (count ?? 0) + (more.count ?? 0);
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
rows,
|
|
35
|
-
count
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Executes repository operations as SQL on a direct Postgres connection.
|
|
40
|
-
* Rows have the same shape as over PostgREST. RLS applies when the client
|
|
41
|
-
* runs as the caller (`ctx.postgres`, `createPostgres().asUser()`).
|
|
42
|
-
*/
|
|
43
|
-
function postgresExecutor(client) {
|
|
44
|
-
return {
|
|
45
|
-
name: "postgres",
|
|
46
|
-
functionSources: true,
|
|
47
|
-
execute: (op, context) => executeOn(client, op, context),
|
|
48
|
-
async batch(ops, context) {
|
|
49
|
-
if (!client.transaction) return Promise.all(ops.map((op) => executeOn(client, op, context)));
|
|
50
|
-
try {
|
|
51
|
-
return await client.transaction(async (scoped) => {
|
|
52
|
-
const results = [];
|
|
53
|
-
for (const op of ops) {
|
|
54
|
-
const result = await executeOn(scoped, op, context);
|
|
55
|
-
if (!result.ok) throw new BatchFailed();
|
|
56
|
-
results.push(result);
|
|
57
|
-
}
|
|
58
|
-
return results;
|
|
59
|
-
});
|
|
60
|
-
} catch (cause) {
|
|
61
|
-
if (!(cause instanceof BatchFailed)) throw cause;
|
|
62
|
-
return Promise.all(ops.map((op) => executeOn(client, op, context)));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
var BatchFailed = class extends Error {};
|
|
68
|
-
async function executeOn(client, op, context) {
|
|
69
|
-
let plan;
|
|
70
|
-
try {
|
|
71
|
-
plan = compileSql(op);
|
|
72
|
-
} catch (cause) {
|
|
73
|
-
return err(toDbError(cause));
|
|
74
|
-
}
|
|
75
|
-
if (plan.never) return ok({
|
|
76
|
-
rows: [],
|
|
77
|
-
count: 0
|
|
78
|
-
});
|
|
79
|
-
if (context.signal?.aborted) return err(dbError("aborted", "The request was aborted"));
|
|
80
|
-
let result;
|
|
81
|
-
try {
|
|
82
|
-
result = plan.chunks && client.transaction ? await client.transaction((scoped) => run(scoped, plan, op)) : await run(client, plan, op);
|
|
83
|
-
} catch (cause) {
|
|
84
|
-
const raw = fromPgError(cause);
|
|
85
|
-
return err(raw ? mapDbError(raw, context.errorMappers) : toDbError(cause));
|
|
86
|
-
}
|
|
87
|
-
if (op.kind === "select" && op.single) {
|
|
88
|
-
if (result.rows.length > 1) return err(dbError("multiple_rows", `Expected one ${op.table.key} row`));
|
|
89
|
-
if (result.rows.length === 0 && op.single === "one") return err(dbError("not_found", `No ${op.table.key} row matched`));
|
|
90
|
-
}
|
|
91
|
-
return ok(result);
|
|
92
|
-
}
|
|
93
|
-
//#endregion
|
|
94
|
-
export { postgresExecutor as n, fromPgError as t };
|
package/dist/index-CWMDdEr4.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { c as ClaimsMeta, j as SchemaMeta } from "./types-Dnf_wRDz.js";
|
|
2
|
-
import { d as Generator } from "./config-Bv7gvfzC.js";
|
|
3
|
-
//#region src/core/claims.d.ts
|
|
4
|
-
declare const DEFAULT_CLAIMS: ClaimsMeta;
|
|
5
|
-
/** Where the active tenant is read from: the top-level claim, then `app_metadata`. */
|
|
6
|
-
declare function tenantClaimPaths(tenant?: string): readonly [string, string];
|
|
7
|
-
//#endregion
|
|
8
|
-
//#region src/generators/shared.d.ts
|
|
9
|
-
/** What field planning reads: the metadata and the typed-jsonb config. */
|
|
10
|
-
interface SchemaSource {
|
|
11
|
-
readonly meta: SchemaMeta;
|
|
12
|
-
readonly config: {
|
|
13
|
-
readonly json: Readonly<Record<string, unknown>>;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
//#endregion
|
|
17
|
-
//#region src/generators/json-schema.d.ts
|
|
18
|
-
interface JsonSchemaGeneratorOptions {
|
|
19
|
-
/** Output path relative to the project root. Defaults to `<output>.schema.json`. */
|
|
20
|
-
readonly output?: string;
|
|
21
|
-
/** `$id` of the document. */
|
|
22
|
-
readonly id?: string;
|
|
23
|
-
}
|
|
24
|
-
type JsonSchema = Record<string, unknown>;
|
|
25
|
-
/** JSON Schema (2020-12) `$defs` for every table: `customersRow`, `customersInsert`, ... */
|
|
26
|
-
declare function buildJsonSchema(input: SchemaSource, id?: string): JsonSchema;
|
|
27
|
-
/** Writes the JSON Schema document; `createOpenApi` reuses the same `$defs`. */
|
|
28
|
-
declare function jsonSchema(options?: JsonSchemaGeneratorOptions): Generator;
|
|
29
|
-
//#endregion
|
|
30
|
-
//#region src/generators/valibot.d.ts
|
|
31
|
-
interface ValibotGeneratorOptions {
|
|
32
|
-
/** Output path relative to the project root. Defaults to `<output>.valibot.ts`. */
|
|
33
|
-
readonly output?: string;
|
|
34
|
-
/** Schemas for typed jsonb columns: `{ 'customers.metadata': './schemas.ts#metadata' }`. */
|
|
35
|
-
readonly json?: Readonly<Record<string, string>>;
|
|
36
|
-
}
|
|
37
|
-
/** Valibot schemas for every table's Row, Insert and Update shape. */
|
|
38
|
-
declare function valibot(options?: ValibotGeneratorOptions): Generator;
|
|
39
|
-
//#endregion
|
|
40
|
-
//#region src/generators/zod.d.ts
|
|
41
|
-
interface ZodGeneratorOptions {
|
|
42
|
-
/** Output path relative to the project root. Defaults to `<output>.zod.ts`. */
|
|
43
|
-
readonly output?: string;
|
|
44
|
-
/** Schemas for typed jsonb columns: `{ 'customers.metadata': './schemas.ts#metadata' }`. */
|
|
45
|
-
readonly json?: Readonly<Record<string, string>>;
|
|
46
|
-
}
|
|
47
|
-
/** Zod 4 schemas for every table's Row, Insert and Update shape. */
|
|
48
|
-
declare function zod(options?: ZodGeneratorOptions): Generator;
|
|
49
|
-
//#endregion
|
|
50
|
-
export { JsonSchemaGeneratorOptions as a, DEFAULT_CLAIMS as c, valibot as i, tenantClaimPaths as l, zod as n, buildJsonSchema as o, ValibotGeneratorOptions as r, jsonSchema as s, ZodGeneratorOptions as t };
|
package/dist/index-DOESKG27.d.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/// <reference lib="esnext.temporal" />
|
|
2
|
-
import { j as SchemaMeta } from "./types-Dnf_wRDz.js";
|
|
3
|
-
import { a as EventHub, g as KitEventPattern, p as KitEvent, s as MutationNotice } from "./events-aIO7vsIk.js";
|
|
4
|
-
import { l as MutationIntent } from "./plugin-o144f322.js";
|
|
5
|
-
//#region src/events/index.d.ts
|
|
6
|
-
/** A CloudEvents 1.0 event. Extension attributes are lowercase alphanumerics. */
|
|
7
|
-
interface CloudEvent<T = unknown> {
|
|
8
|
-
readonly specversion: "1.0";
|
|
9
|
-
readonly id: string;
|
|
10
|
-
readonly source: string;
|
|
11
|
-
readonly type: string;
|
|
12
|
-
readonly subject?: string;
|
|
13
|
-
readonly time?: string;
|
|
14
|
-
readonly datacontenttype?: string;
|
|
15
|
-
readonly dataschema?: string;
|
|
16
|
-
readonly data?: T;
|
|
17
|
-
readonly [extension: string]: unknown;
|
|
18
|
-
}
|
|
19
|
-
declare const ROW_EVENT_TYPES: { readonly [K in MutationIntent]: string; };
|
|
20
|
-
interface RowEventData {
|
|
21
|
-
readonly table: string;
|
|
22
|
-
readonly row: Readonly<Record<string, unknown>>;
|
|
23
|
-
readonly actorId?: string;
|
|
24
|
-
}
|
|
25
|
-
interface CloudEventOptions {
|
|
26
|
-
/** URI-reference of the producer, e.g. `https://crm.example.com` or `/crm`. */
|
|
27
|
-
readonly source: string;
|
|
28
|
-
/** Replaces the `dev.better-supabase` type prefix. */
|
|
29
|
-
readonly typePrefix?: string;
|
|
30
|
-
readonly id?: () => string;
|
|
31
|
-
readonly now?: () => Temporal.Instant;
|
|
32
|
-
}
|
|
33
|
-
/** Sends events somewhere: a queue, a bus, an outbox table, an HTTP endpoint. */
|
|
34
|
-
interface EventSink {
|
|
35
|
-
send(events: readonly CloudEvent[]): void | Promise<void>;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* One CloudEvent per mutated row: `dev.better-supabase.row.created` with the
|
|
39
|
-
* app-cased row and the actor in `data`, the primary key as `subject` and the
|
|
40
|
-
* tenant as `partitionkey`. Writes that return no rows (soft
|
|
41
|
-
* deletes, `returning: false`) send one event per known primary key, with the
|
|
42
|
-
* key as `row`.
|
|
43
|
-
*/
|
|
44
|
-
declare function toCloudEvents(notice: MutationNotice, options: CloudEventOptions & {
|
|
45
|
-
readonly meta?: SchemaMeta;
|
|
46
|
-
}): CloudEvent<RowEventData>[];
|
|
47
|
-
interface ForwardOptions extends CloudEventOptions {
|
|
48
|
-
/** Only forward these tables or kinds. */
|
|
49
|
-
readonly filter?: (notice: MutationNotice) => boolean;
|
|
50
|
-
/** Sink failures never fail the mutation. Defaults to the `Logger`. */
|
|
51
|
-
readonly onError?: (error: unknown, events: readonly CloudEvent[]) => void;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Sends a CloudEvent for every mutation to `sink`. Returns a function that
|
|
55
|
-
* stops forwarding. Sends in flight are tracked on `betterSupabase.events`
|
|
56
|
-
* (`settled()`), which the Next adapter hands to `after()` and the edge
|
|
57
|
-
* entry to `waitUntil`. Use an outbox (SQL kit) when events must not be lost.
|
|
58
|
-
*/
|
|
59
|
-
declare function forwardMutations(betterSupabase: {
|
|
60
|
-
readonly events: EventHub;
|
|
61
|
-
readonly meta: SchemaMeta;
|
|
62
|
-
}, sink: EventSink, options: ForwardOptions): () => void;
|
|
63
|
-
/**
|
|
64
|
-
* A kit event as a CloudEvent: `dev.better-supabase.support.started` with
|
|
65
|
-
* the event data and the actor (`actorId`) as `data` and the tenant as
|
|
66
|
-
* `partitionkey`.
|
|
67
|
-
*/
|
|
68
|
-
declare function kitCloudEvent(event: KitEvent, options: CloudEventOptions): CloudEvent;
|
|
69
|
-
interface ForwardKitOptions extends CloudEventOptions {
|
|
70
|
-
/** Only forward events that match, e.g. `support.*`. Defaults to all. */
|
|
71
|
-
readonly types?: readonly KitEventPattern[];
|
|
72
|
-
/** Sink failures never fail the kit call. Defaults to the `Logger`. */
|
|
73
|
-
readonly onError?: (error: unknown, events: readonly CloudEvent[]) => void;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Sends a CloudEvent for every kit event (`support.*`, `org.*`, ...) to
|
|
77
|
-
* `sink`. Returns a function that stops forwarding. Like
|
|
78
|
-
* `forwardMutations`, sends are tracked on `betterSupabase.events`.
|
|
79
|
-
*/
|
|
80
|
-
declare function forwardKitEvents(betterSupabase: {
|
|
81
|
-
readonly events: EventHub;
|
|
82
|
-
}, sink: EventSink, options: ForwardKitOptions): () => void;
|
|
83
|
-
type HttpMode = "structured" | "binary" | "batch";
|
|
84
|
-
/** The HTTP protocol binding: headers and body for one event (or a batch). */
|
|
85
|
-
declare function toHttp(events: CloudEvent | readonly CloudEvent[], mode?: HttpMode): {
|
|
86
|
-
headers: Record<string, string>;
|
|
87
|
-
body: string;
|
|
88
|
-
}[];
|
|
89
|
-
declare function isCloudEvent(value: unknown): value is CloudEvent;
|
|
90
|
-
/** Reads CloudEvents from a request in any of the three HTTP modes. */
|
|
91
|
-
declare function fromHttp(request: Request): Promise<CloudEvent[]>;
|
|
92
|
-
interface HttpSinkOptions {
|
|
93
|
-
readonly mode?: HttpMode;
|
|
94
|
-
readonly headers?: Readonly<Record<string, string>>;
|
|
95
|
-
readonly fetch?: typeof fetch;
|
|
96
|
-
}
|
|
97
|
-
/** POSTs events to `url`. Non-2xx responses reject. */
|
|
98
|
-
declare function httpSink(url: string | URL, options?: HttpSinkOptions): EventSink;
|
|
99
|
-
//#endregion
|
|
100
|
-
export { toHttp as _, ForwardOptions as a, ROW_EVENT_TYPES as c, forwardMutations as d, fromHttp as f, toCloudEvents as g, kitCloudEvent as h, ForwardKitOptions as i, RowEventData as l, isCloudEvent as m, CloudEventOptions as n, HttpMode as o, httpSink as p, EventSink as r, HttpSinkOptions as s, CloudEvent as t, forwardKitEvents as u };
|