better-supabase 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +299 -41
- package/dist/access-sql-B0dF-SoF.js +181 -0
- package/dist/actor-CQTlc1Hh.d.ts +43 -0
- 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-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
- 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-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
- package/dist/cli/{introspect--H7oGmcd.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-BKR2W_79.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-BDJuO0UR.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-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
- 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-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
- package/dist/{entitlements-DUxU4oHe.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-DcqaTBHx.js +148 -0
- 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-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
- 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-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
- package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
- package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
- package/dist/{resource-D8iqWMr-.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 -21
- package/dist/server/index.js +46 -14
- package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
- 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 +330 -194
- package/dist/sql/index.js +34901 -6489
- 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-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
- package/dist/{support-view-Da5peKFg.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 +343 -37
- package/dist/testing/index.js +1186 -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-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
- package/dist/view-BeFcRV6G.js +99 -0
- package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
- 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 +470 -29
- package/schemas/ai-message-v1.json +258 -0
- package/schemas/config-v1.json +1074 -140
- package/schemas/doctor-report-v1.json +21 -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 +62 -18
- 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-BJc9vdyu.js +0 -2
- package/dist/cli/gen-C2osRcr5.js +0 -2204
- package/dist/cli/read-sets-BfMQcKy8.js +0 -289
- package/dist/cli/sql-DzPbfngx.js +0 -348
- 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/impersonation-VfaGc4Q_.js +0 -41
- package/dist/index-BGdgBPdf.d.ts +0 -161
- package/dist/index-DOESKG27.d.ts +0 -100
- package/dist/index-DmXSxbLi.d.ts +0 -62
- package/dist/index-Dxn2a5cw.d.ts +0 -50
- 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/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-Csx2sRjg.js +0 -655
- package/dist/stats-Bqob3WqT.js +0 -592
- package/dist/support-DT-OhSxD.d.ts +0 -88
- 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 -100
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { S as BlockEvent, T as BlockEventPattern, a as EventHub } from "./events-DWDhx77e.js";
|
|
3
|
+
//#region src/events/cloud-event.d.ts
|
|
4
|
+
/** A CloudEvents 1.0 event. Extension attributes are lowercase alphanumerics. */
|
|
5
|
+
interface CloudEvent<T = unknown> {
|
|
6
|
+
readonly specversion: "1.0";
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly source: string;
|
|
9
|
+
readonly type: string;
|
|
10
|
+
readonly subject?: string;
|
|
11
|
+
readonly time?: string;
|
|
12
|
+
readonly datacontenttype?: string;
|
|
13
|
+
readonly dataschema?: string;
|
|
14
|
+
readonly data?: T;
|
|
15
|
+
readonly [extension: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
interface CloudEventOptions {
|
|
18
|
+
/** URI-reference of the producer, e.g. `https://crm.example.com` or `/crm`. */
|
|
19
|
+
readonly source: string;
|
|
20
|
+
/** Replaces the `dev.better-supabase` type prefix. */
|
|
21
|
+
readonly typePrefix?: string;
|
|
22
|
+
readonly id?: () => string;
|
|
23
|
+
readonly now?: () => Temporal.Instant;
|
|
24
|
+
}
|
|
25
|
+
/** Sends events somewhere: a queue, a bus, an outbox table, an HTTP endpoint. */
|
|
26
|
+
interface EventSink {
|
|
27
|
+
send(events: readonly CloudEvent[]): void | Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A block event as a CloudEvent: `dev.better-supabase.support.started` with
|
|
31
|
+
* the event data and the actor (`actorId`) as `data` and the tenant as
|
|
32
|
+
* `partitionkey`.
|
|
33
|
+
*/
|
|
34
|
+
declare function blockCloudEvent(event: BlockEvent, options: CloudEventOptions): CloudEvent;
|
|
35
|
+
interface ForwardBlockOptions extends CloudEventOptions {
|
|
36
|
+
/** Only forward events that match, e.g. `support.*`. Defaults to all. */
|
|
37
|
+
readonly types?: readonly BlockEventPattern[];
|
|
38
|
+
/** Sink failures never fail the block call. Defaults to the `Logger`. */
|
|
39
|
+
readonly onError?: (error: unknown, events: readonly CloudEvent[]) => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Sends a CloudEvent for every block event (`support.*`, `organization.*`, ...) to
|
|
43
|
+
* `sink`. Returns a function that stops forwarding. Like
|
|
44
|
+
* `forwardMutations`, sends are tracked on `betterSupabase.events`.
|
|
45
|
+
*/
|
|
46
|
+
declare function forwardBlockEvents(betterSupabase: {
|
|
47
|
+
readonly events: EventHub;
|
|
48
|
+
}, sink: EventSink, options: ForwardBlockOptions): () => void;
|
|
49
|
+
//#endregion
|
|
50
|
+
export { blockCloudEvent as a, ForwardBlockOptions as i, CloudEventOptions as n, forwardBlockEvents as o, EventSink as r, CloudEvent as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { v as Operation } from "./executor-DvsBbNBS.js";
|
|
2
|
+
import { a as PostgrestPlan } from "./postgrest-BLVdEnfe.js";
|
|
3
3
|
//#region src/core/compiler.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Turns an IR operation into something a backend runs. An `Executor` for a
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { n as dbError } from "./errors-B11Duf73.js";
|
|
2
|
+
import { t as AsyncResult } from "./result-DzUbqgdW.js";
|
|
3
|
+
import { n as credentialRefInTenant, t as credentialProviderOf } from "./provider-Di3sRutW.js";
|
|
4
|
+
//#region src/credentials/compose.ts
|
|
5
|
+
const NO_CAPABILITIES = {
|
|
6
|
+
userSubjects: false,
|
|
7
|
+
authorization: false,
|
|
8
|
+
revoke: false,
|
|
9
|
+
inbound: false
|
|
10
|
+
};
|
|
11
|
+
const unsupported = (provider, what) => dbError("unsupported", `The credential provider "${provider}" ${what}`, { hint: "CREDENTIAL_UNSUPPORTED" });
|
|
12
|
+
/**
|
|
13
|
+
* One provider over several: each call goes to the provider whose `name`
|
|
14
|
+
* is the ref's `provider`. A ref no provider handles fails with
|
|
15
|
+
* `invalid_input` (`CREDENTIAL_PROVIDER_UNKNOWN`), and an optional method
|
|
16
|
+
* the chosen provider lacks with `unsupported`.
|
|
17
|
+
*/
|
|
18
|
+
function credentialRouter(providers, options = {}) {
|
|
19
|
+
const byName = /* @__PURE__ */ new Map();
|
|
20
|
+
for (const provider of providers) {
|
|
21
|
+
if (byName.has(provider.name)) throw new TypeError(`credentialRouter got two providers named "${provider.name}"`);
|
|
22
|
+
byName.set(provider.name, credentialProviderOf(provider));
|
|
23
|
+
}
|
|
24
|
+
const unknown = (ref) => dbError("invalid_input", `No credential provider named "${ref.provider}" is configured`, { hint: "CREDENTIAL_PROVIDER_UNKNOWN" });
|
|
25
|
+
const route = (ref, then) => {
|
|
26
|
+
const provider = byName.get(ref.provider);
|
|
27
|
+
return provider === void 0 ? AsyncResult.err(unknown(ref)) : then(provider);
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
apiVersion: 1,
|
|
31
|
+
name: options.name ?? "router",
|
|
32
|
+
getToken: (ref, tokenOptions) => route(ref, (provider) => provider.getToken(ref, tokenOptions)),
|
|
33
|
+
capabilities: (ref) => byName.get(ref.provider)?.capabilities(ref) ?? NO_CAPABILITIES,
|
|
34
|
+
startAuthorization: (ref, startOptions) => route(ref, (provider) => provider.startAuthorization === void 0 ? AsyncResult.err(unsupported(provider.name, "doesn't authorize accounts")) : provider.startAuthorization(ref, startOptions)),
|
|
35
|
+
completeAuthorization: (ref, completeOptions) => route(ref, (provider) => provider.completeAuthorization === void 0 ? AsyncResult.err(unsupported(provider.name, "doesn't authorize accounts")) : provider.completeAuthorization(ref, completeOptions)),
|
|
36
|
+
revoke: (ref, revokeOptions) => route(ref, (provider) => provider.revoke(ref, revokeOptions)),
|
|
37
|
+
verifyInbound: (request, ref) => route(ref, (provider) => provider.verifyInbound === void 0 ? AsyncResult.err(unsupported(provider.name, "doesn't verify inbound requests")) : provider.verifyInbound(request, ref)),
|
|
38
|
+
set: (ref, value, setOptions) => route(ref, (provider) => provider.set === void 0 ? AsyncResult.err(unsupported(provider.name, "can't store secrets")) : provider.set(ref, value, setOptions))
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Revokes the credential a ref names when a provider is configured and can
|
|
43
|
+
* revoke it. Resolves `false` without a provider, for a provider without
|
|
44
|
+
* revocation, or for a ref outside `options.tenant`.
|
|
45
|
+
*/
|
|
46
|
+
function revokeIfConfigured(provider, ref, options) {
|
|
47
|
+
if (provider === void 0) return AsyncResult.ok(false);
|
|
48
|
+
if ("tenant" in options && !credentialRefInTenant(ref, options.tenant)) return AsyncResult.ok(false);
|
|
49
|
+
if (!provider.capabilities(ref).revoke) return AsyncResult.ok(false);
|
|
50
|
+
return provider.revoke(ref, { subject: options.subject });
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { revokeIfConfigured as n, credentialRouter as t };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { a as AnyModels, i as AnyFunctions } from "./types-6BdhkmZe.js";
|
|
2
|
+
import { a as EventHub } from "./events-DWDhx77e.js";
|
|
3
|
+
import { i as CookieScope, s as SessionEncoding } from "./session-ChiXDZdZ.js";
|
|
4
|
+
import { r as AuthState, t as AuthResolution } from "./resolve-KW8nCeL6.js";
|
|
5
|
+
import { b as Db, t as BetterSupabase } from "./define-CJJkkr1-.js";
|
|
6
|
+
import { b as ActiveSupport, g as ReplicaState, i as ServerContext, n as ContextOptions, o as ServerOptions, t as BetterServer } from "./server-CeVeeXwz.js";
|
|
7
|
+
import { d as RefreshPolicy, r as GuardOptions } from "./respond-DoBijysA.js";
|
|
8
|
+
import { SupabaseClient } from "@supabase/supabase-js";
|
|
9
|
+
import { Entry, SingleKeyEntry } from "@supabase/middleware";
|
|
10
|
+
import { AuthMode, JWTClaims, UserClaims } from "@supabase/server";
|
|
11
|
+
//#region src/server/entries/core.d.ts
|
|
12
|
+
/**
|
|
13
|
+
* What the entries need from a `createServer` server: its resolver, its
|
|
14
|
+
* request-scoped context builder and the settings behind them. The server
|
|
15
|
+
* registers it once; entries read it with `serverCore(server)`.
|
|
16
|
+
*/
|
|
17
|
+
interface ServerCore<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> {
|
|
18
|
+
readonly events: EventHub;
|
|
19
|
+
/** How long reads stay on the primary after a write. */
|
|
20
|
+
readonly pinMs: number;
|
|
21
|
+
resolve(request: Request, options: {
|
|
22
|
+
readonly refresh?: boolean;
|
|
23
|
+
readonly cookies?: boolean;
|
|
24
|
+
readonly encode?: SessionEncoding;
|
|
25
|
+
readonly checkSession?: boolean;
|
|
26
|
+
}): Promise<AuthResolution<C, P>>;
|
|
27
|
+
/** The session cookie's name (`auth.cookie.name`, else `sb-<ref>-auth-token`). */
|
|
28
|
+
sessionCookie(): string;
|
|
29
|
+
/** `ServerOptions.tenant`, or `undefined` without one. */
|
|
30
|
+
tenant(request: Request, auth: AuthState<C, P>): string | undefined | PromiseLike<string | undefined>;
|
|
31
|
+
support(request: Request, auth: AuthState<C, P>): Promise<ActiveSupport | undefined>;
|
|
32
|
+
context(resolution: AuthResolution<C, P>, request: Request, options: ContextOptions, tenant: string | undefined): ServerContext<M, F, E, C, P>;
|
|
33
|
+
}
|
|
34
|
+
/** The core of a server built by `createServer` or one of the adapter factories. */
|
|
35
|
+
declare function serverCore<M extends AnyModels, F extends AnyFunctions, E, C, P>(server: {
|
|
36
|
+
readonly events: EventHub;
|
|
37
|
+
context(request: Request): Promise<ServerContext<M, F, E, C, P>>;
|
|
38
|
+
}): ServerCore<M, F, E, C, P>;
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/server/entries/guard.d.ts
|
|
41
|
+
interface GuardEntryConfig extends GuardOptions {
|
|
42
|
+
/** Include error messages in problem responses. Defaults to `NODE_ENV === 'development'`. */
|
|
43
|
+
readonly expose?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Entry that answers callers `allow`, `aal` or `scopes` refuse with a 401 or
|
|
47
|
+
* 403 Problem Details response, before the handler runs. It contributes
|
|
48
|
+
* `ctx.guard`, the options the caller passed.
|
|
49
|
+
*/
|
|
50
|
+
declare function withGuard<C, P>(config?: GuardEntryConfig): SingleKeyEntry<"guard", {
|
|
51
|
+
readonly auth: AuthState<C, P>;
|
|
52
|
+
}, GuardOptions>;
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/server/entries/session.d.ts
|
|
55
|
+
interface SessionEntryConfig {
|
|
56
|
+
/**
|
|
57
|
+
* Refresh an expired cookie session and send the new cookies on the
|
|
58
|
+
* response. Only where cookies can be written once per request (a proxy, a
|
|
59
|
+
* framework middleware); never in Server Components. `'navigation'`
|
|
60
|
+
* refreshes page loads, navigations and form posts (`shouldRefresh`), so
|
|
61
|
+
* parallel `fetch` calls never race on the refresh token. Defaults to false.
|
|
62
|
+
*/
|
|
63
|
+
readonly refresh?: RefreshPolicy;
|
|
64
|
+
/**
|
|
65
|
+
* Ask the Auth server whether the session still exists, so a session
|
|
66
|
+
* ended elsewhere (sign-out on another device, an admin revoke) is anon
|
|
67
|
+
* here too. One Auth call per matching request: `true` checks every
|
|
68
|
+
* request, `'navigation'` full page loads (`shouldCheckSession`). Off by
|
|
69
|
+
* default, because a valid token otherwise never calls the Auth server.
|
|
70
|
+
*/
|
|
71
|
+
readonly checkSession?: boolean | "navigation" | ((request: Request) => boolean);
|
|
72
|
+
/** Read the session cookie. Defaults to true; `false` resolves bearer tokens only. */
|
|
73
|
+
readonly cookies?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Keeps the invocation alive for event sink sends the handler started:
|
|
76
|
+
* `EdgeRuntime.waitUntil`, the Workers `ctx.waitUntil` or Next's `after`.
|
|
77
|
+
*/
|
|
78
|
+
readonly waitUntil?: (promise: Promise<unknown>) => void;
|
|
79
|
+
/**
|
|
80
|
+
* The shape refreshed sessions are written in, `cookies.encode` in
|
|
81
|
+
* `@supabase/ssr`. Use the browser client's value. Defaults to the
|
|
82
|
+
* server's `auth.cookie.encode`, then `user-and-tokens`.
|
|
83
|
+
*/
|
|
84
|
+
readonly encode?: SessionEncoding;
|
|
85
|
+
/**
|
|
86
|
+
* Cookie scopes (`domain`, `path`) earlier deploys wrote the session at.
|
|
87
|
+
* Each response to a request that carries the session cookie expires it
|
|
88
|
+
* at these scopes, like `clearAuthCookiesAtScopes` in `@supabase/ssr`, so
|
|
89
|
+
* moving the cookie to a new domain or path is one config change. Never
|
|
90
|
+
* list the current scope: that clears the live session.
|
|
91
|
+
*/
|
|
92
|
+
readonly cookieScopes?: readonly CookieScope[];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Entry contributing `ctx.session`, the request's `AuthResolution`: a bearer
|
|
96
|
+
* token first, the session cookie second. It is the only entry with a
|
|
97
|
+
* response seam for cookies: on the way out it adds the refreshed session
|
|
98
|
+
* cookies and the no-store headers, and hands pending event sends to
|
|
99
|
+
* `waitUntil`.
|
|
100
|
+
*/
|
|
101
|
+
declare function withSession<M extends AnyModels, F extends AnyFunctions, E, C, P>(core: ServerCore<M, F, E, C, P>, config?: SessionEntryConfig): SingleKeyEntry<"session", Record<never, never>, AuthResolution<C, P>>;
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/server/composite.d.ts
|
|
104
|
+
/** What `withBetterSupabase` takes besides the definition or server. */
|
|
105
|
+
interface BetterSupabaseConfig extends SessionEntryConfig, GuardEntryConfig {}
|
|
106
|
+
/** The keys `withBetterSupabase` puts on `ctx`. */
|
|
107
|
+
interface BetterSupabaseContributions<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> {
|
|
108
|
+
/** The full request context: `auth`, `supabase`, `stats()`, `apply()` and the rest. */
|
|
109
|
+
bs: ServerContext<M, F, E, C, P>;
|
|
110
|
+
/** The verified token's payload, or `null`; the key `withSupabase` uses. */
|
|
111
|
+
jwtClaims: (JWTClaims & C) | null;
|
|
112
|
+
userClaims: UserClaims | null;
|
|
113
|
+
authMode: AuthMode;
|
|
114
|
+
/** Repositories over PostgREST as the caller. */
|
|
115
|
+
db: Db<M, F, E, SupabaseClient>;
|
|
116
|
+
/** Repositories over direct Postgres as the caller, when Postgres is configured or upstream. */
|
|
117
|
+
sql: Db<M, F, E, undefined> | undefined;
|
|
118
|
+
tenant: string | undefined;
|
|
119
|
+
support: ActiveSupport | undefined;
|
|
120
|
+
replica: ReplicaState | undefined;
|
|
121
|
+
}
|
|
122
|
+
/** The entry `withBetterSupabase` returns, for `pipeline` and the framework bridges. */
|
|
123
|
+
type BetterSupabaseEntry<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> = Entry<BetterSupabaseContributions<M, F, E, C, P>>;
|
|
124
|
+
/**
|
|
125
|
+
* The whole better-supabase server as one `@supabase/middleware` entry: it
|
|
126
|
+
* verifies the caller (bearer token or session cookie), refuses callers the
|
|
127
|
+
* guard rejects with Problem Details, and contributes `ctx.db`, `ctx.sql`,
|
|
128
|
+
* `ctx.bs` and the `withSupabase` keys (`jwtClaims`, `userClaims`,
|
|
129
|
+
* `authMode`), so `withPostgresClient` and `withOpenFeature` compose after
|
|
130
|
+
* it. Refreshed cookies and `bs-primary-until` go out on the response.
|
|
131
|
+
*
|
|
132
|
+
* ```ts
|
|
133
|
+
* export default {
|
|
134
|
+
* fetch: pipeline([withBetterSupabase(betterSupabase)], async (req, ctx) =>
|
|
135
|
+
* Response.json(await ctx.db.notes.findMany().orThrow())),
|
|
136
|
+
* }
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
139
|
+
* Pass a server from `createServer` to share its clients and JWKS cache
|
|
140
|
+
* with the rest of the app; pass the definition to build one with
|
|
141
|
+
* `config`'s server options.
|
|
142
|
+
*/
|
|
143
|
+
declare function withBetterSupabase<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, config?: BetterSupabaseConfig & ServerOptions): BetterSupabaseEntry<M, F, E, C, P>;
|
|
144
|
+
declare function withBetterSupabase<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown>(server: BetterServer<M, F, E, C, P>, config?: BetterSupabaseConfig): BetterSupabaseEntry<M, F, E, C, P>;
|
|
145
|
+
//#endregion
|
|
146
|
+
export { SessionEntryConfig as a, withGuard as c, withBetterSupabase as i, ServerCore as l, BetterSupabaseContributions as n, withSession as o, BetterSupabaseEntry as r, GuardEntryConfig as s, BetterSupabaseConfig as t, serverCore as u };
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { a as problemResponse } from "./problem-BreOl8b8.js";
|
|
2
|
+
import { C as serverCore, S as withServerContext, _ as withSession, g as withSupport, h as withTenant, s as createServer } from "./adapter-Bc1o3zyy.js";
|
|
3
|
+
import { s as withPrimaryPin } from "./replicas-CwrYp5Zj.js";
|
|
4
|
+
import { r as guard, t as defaultExpose } from "./respond-BUgsXNgk.js";
|
|
5
|
+
import { a as withAuthMode, i as withAuth, o as withJwtClaims, s as withUserClaims } from "./claims-DDBQT6BK.js";
|
|
6
|
+
import { defineComposite, defineMiddleware } from "@supabase/middleware";
|
|
7
|
+
//#region src/server/entries/db.ts
|
|
8
|
+
/**
|
|
9
|
+
* Entry contributing `ctx.db`: repositories over PostgREST as the caller
|
|
10
|
+
* (RLS applies), from `ctx.bs`. Reads go to the read replica when one is
|
|
11
|
+
* configured.
|
|
12
|
+
*/
|
|
13
|
+
function withDb() {
|
|
14
|
+
return defineMiddleware({
|
|
15
|
+
key: "db",
|
|
16
|
+
run: () => (_request, ctx) => Promise.resolve({ db: ctx.bs.db })
|
|
17
|
+
})();
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/server/entries/guard.ts
|
|
21
|
+
/**
|
|
22
|
+
* Entry that answers callers `allow`, `aal` or `scopes` refuse with a 401 or
|
|
23
|
+
* 403 Problem Details response, before the handler runs. It contributes
|
|
24
|
+
* `ctx.guard`, the options the caller passed.
|
|
25
|
+
*/
|
|
26
|
+
function withGuard(config = {}) {
|
|
27
|
+
const { expose = defaultExpose(), ...options } = config;
|
|
28
|
+
return defineMiddleware({
|
|
29
|
+
key: "guard",
|
|
30
|
+
run: () => (request, ctx) => {
|
|
31
|
+
const denied = guard(ctx.auth, options.allow, options.aal, options.scopes);
|
|
32
|
+
return Promise.resolve(denied ? problemResponse(denied, {
|
|
33
|
+
instance: new URL(request.url).pathname,
|
|
34
|
+
expose
|
|
35
|
+
}) : { guard: options });
|
|
36
|
+
}
|
|
37
|
+
})();
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/server/entries/replica.ts
|
|
41
|
+
/**
|
|
42
|
+
* Entry contributing `ctx.replica`, where `ctx.db` reads go when a read URL
|
|
43
|
+
* is configured (`undefined` without one). On the way out it sets the
|
|
44
|
+
* `bs-primary-until` cookie after a write, so the caller's next reads see it.
|
|
45
|
+
*/
|
|
46
|
+
function withReplica(core) {
|
|
47
|
+
return defineMiddleware({
|
|
48
|
+
key: "replica",
|
|
49
|
+
run: () => async function* (_request, ctx) {
|
|
50
|
+
const { replica } = ctx.bs;
|
|
51
|
+
const response = yield { replica };
|
|
52
|
+
return withPrimaryPin(response, ctx.bs.replica, core.pinMs);
|
|
53
|
+
}
|
|
54
|
+
})();
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/server/entries/sql.ts
|
|
58
|
+
/**
|
|
59
|
+
* Entry contributing `ctx.sql`: repositories over direct Postgres as the
|
|
60
|
+
* caller, with RLS, from `createServer`'s `postgres`, else `undefined`.
|
|
61
|
+
* `withPostgresClient` reads `jwtClaims`, so it runs after this entry and
|
|
62
|
+
* can't back `ctx.sql`; importing the SQL compiler here would also ship it
|
|
63
|
+
* to every app without Postgres.
|
|
64
|
+
*/
|
|
65
|
+
function withSql() {
|
|
66
|
+
return defineMiddleware({
|
|
67
|
+
key: "sql",
|
|
68
|
+
run: () => (_request, ctx) => Promise.resolve({ sql: ctx.bs.sql })
|
|
69
|
+
})();
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/server/composite.ts
|
|
73
|
+
/**
|
|
74
|
+
* The single-key entries `withBetterSupabase` bundles, outermost first. The
|
|
75
|
+
* framework factories run these directly, so their terminal sees `auth`.
|
|
76
|
+
*/
|
|
77
|
+
function betterSupabaseParts(core, config = {}) {
|
|
78
|
+
const { refresh, cookies, waitUntil, encode, cookieScopes, checkSession, ...guardConfig } = config;
|
|
79
|
+
return [
|
|
80
|
+
withSession(core, {
|
|
81
|
+
...refresh === void 0 ? {} : { refresh },
|
|
82
|
+
...cookies === void 0 ? {} : { cookies },
|
|
83
|
+
...waitUntil === void 0 ? {} : { waitUntil },
|
|
84
|
+
...encode === void 0 ? {} : { encode },
|
|
85
|
+
...cookieScopes === void 0 ? {} : { cookieScopes },
|
|
86
|
+
...checkSession === void 0 ? {} : { checkSession }
|
|
87
|
+
}),
|
|
88
|
+
withTenant(core),
|
|
89
|
+
withSupport(core),
|
|
90
|
+
withServerContext(core),
|
|
91
|
+
withAuth(),
|
|
92
|
+
withGuard(guardConfig),
|
|
93
|
+
withJwtClaims(),
|
|
94
|
+
withUserClaims(),
|
|
95
|
+
withAuthMode(),
|
|
96
|
+
withDb(),
|
|
97
|
+
withSql(),
|
|
98
|
+
withReplica(core)
|
|
99
|
+
];
|
|
100
|
+
}
|
|
101
|
+
function isDefinition(source) {
|
|
102
|
+
return "connect" in source && typeof source.connect === "function";
|
|
103
|
+
}
|
|
104
|
+
function withBetterSupabase(source, config = {}) {
|
|
105
|
+
const server = isDefinition(source) ? createServer(source, config) : source;
|
|
106
|
+
const core = serverCore(server);
|
|
107
|
+
const { refresh, cookies, waitUntil, encode, cookieScopes, checkSession, allow, aal, scopes, expose } = config;
|
|
108
|
+
const parts = betterSupabaseParts(core, {
|
|
109
|
+
...refresh === void 0 ? {} : { refresh },
|
|
110
|
+
...cookies === void 0 ? {} : { cookies },
|
|
111
|
+
...waitUntil === void 0 ? {} : { waitUntil },
|
|
112
|
+
...encode === void 0 ? {} : { encode },
|
|
113
|
+
...cookieScopes === void 0 ? {} : { cookieScopes },
|
|
114
|
+
...checkSession === void 0 ? {} : { checkSession },
|
|
115
|
+
...allow === void 0 ? {} : { allow },
|
|
116
|
+
...aal === void 0 ? {} : { aal },
|
|
117
|
+
...scopes === void 0 ? {} : { scopes },
|
|
118
|
+
...expose === void 0 ? {} : { expose }
|
|
119
|
+
});
|
|
120
|
+
return defineComposite({
|
|
121
|
+
build: () => parts,
|
|
122
|
+
internal: [
|
|
123
|
+
"session",
|
|
124
|
+
"auth",
|
|
125
|
+
"guard"
|
|
126
|
+
]
|
|
127
|
+
})();
|
|
128
|
+
}
|
|
129
|
+
//#endregion
|
|
130
|
+
export { withGuard as n, withBetterSupabase as t };
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { a as
|
|
4
|
-
|
|
1
|
+
import { c as Casing } from "../types-6BdhkmZe.js";
|
|
2
|
+
import { a as ModuleConfig, i as DisabledRow, n as ActiveTenantSource, o as ModuleMode, r as DEFAULT_ACTIVE_TENANT, s as ModulesConfig, t as AccessModuleConfig } from "../modules-DpPwzC7E.js";
|
|
3
|
+
import { a as AuthorizationRequirement, c as AuthorizationTokenHook, i as AuthorizationProvider, l as providerApiProblem, n as AuthorizationMembership, o as AuthorizationRoleSource, r as AuthorizationPermission, s as AuthorizationScope, t as AuthorizationFunctions } from "../authorization-BFCqamMs.js";
|
|
4
|
+
import { $ as CatalogTable, A as SeedConfig, B as resolveConfig, C as PluginFlagsConfig, D as ResolvedConfig, E as RelationsConfig, F as TenantConfig, G as CatalogColumnGrant, H as Catalog, I as TimestampsConfig, J as CatalogFunction, K as CatalogEnum, L as VectorDistance, M as SourceConfig, N as SqlConfig, O as ResolvedExpose, P as TableConfig, Q as CatalogPolicy, R as VectorSearchConfig, S as OpenApiConfig, T as RealtimeConfig, U as CatalogCheck, V as resolveJsonSchema, W as CatalogColumn, X as CatalogGrant, Y as CatalogFunctionArg, Z as CatalogIndex, _ as GeneratorInput, a as ClaimsConfig, at as ExtrasTable, b as JsonSchemaSource, c as DoctorConfig, ct as SnapshotBucket, d as ExposeConfig, dt as PostgresColumn, et as CatalogTrigger, f as ExposePrivilege, ft as PostgresFunction, g as GeneratorColumn, h as Generator, i as CONFIG_SCHEMA_URL, it as ExtrasHookFunction, j as SoftDeleteConfig, k as ResolvedSqlConfig, l as EntitlementPlansSource, lt as SnapshotExtras, m as GeneratedFile, n as BetterSupabaseConfig, nt as ExtrasFunction, o as CodecsConfig, ot as ForeignKeyAction, p as ExposeRole, pt as PostgresFunctionArg, q as CatalogForeignKey, r as BucketConfig, rt as ExtrasHook, s as ColumnPrivilege, st as Snapshot, t as ActorConfig, tt as CatalogUnique, u as EntitlementsConfig, ut as GeneratorMetadata, v as GeneratorModel, w as Privilege, x as JsonTypeConfig, y as GeneratorTable, z as defineConfig } from "../config-D44Y7PAv.js";
|
|
5
|
+
import { a as JsonSchemaGeneratorOptions, c as ClaimPaths, d as tenantClaimPaths, i as valibot, l as DEFAULT_CLAIMS, n as zod, o as buildJsonSchema, r as ValibotGeneratorOptions, s as jsonSchema, t as ZodGeneratorOptions, u as claimPaths } from "../index-DQh4VCc9.js";
|
|
6
|
+
export { type AccessModuleConfig, type ActiveTenantSource, type ActorConfig, type AuthorizationFunctions, type AuthorizationMembership, type AuthorizationPermission, type AuthorizationProvider, type AuthorizationRequirement, type AuthorizationRoleSource, type AuthorizationScope, type AuthorizationTokenHook, type BetterSupabaseConfig, type BucketConfig, CONFIG_SCHEMA_URL, type Casing, type Catalog, type CatalogCheck, type CatalogColumn, type CatalogColumnGrant, type CatalogEnum, type CatalogForeignKey, type CatalogFunction, type CatalogFunctionArg, type CatalogGrant, type CatalogIndex, type CatalogPolicy, type CatalogTable, type CatalogTrigger, type CatalogUnique, type ClaimPaths, type ClaimsConfig, type CodecsConfig, type ColumnPrivilege, DEFAULT_ACTIVE_TENANT, DEFAULT_CLAIMS, type DisabledRow, type DoctorConfig, type EntitlementPlansSource, type EntitlementsConfig, type ExposeConfig, type ExposePrivilege, type ExposeRole, type ExtrasFunction, type ExtrasHook, type ExtrasHookFunction, type ExtrasTable, type ForeignKeyAction, type GeneratedFile, type Generator, type GeneratorColumn, type GeneratorInput, type GeneratorMetadata, type GeneratorModel, type GeneratorTable, type JsonSchemaGeneratorOptions, type JsonSchemaSource, type JsonTypeConfig, type ModuleConfig, type ModuleMode, type ModulesConfig, type OpenApiConfig, type PluginFlagsConfig, type PostgresColumn, type PostgresFunction, type PostgresFunctionArg, type Privilege, type RealtimeConfig, type RelationsConfig, type ResolvedConfig, type ResolvedExpose, type ResolvedSqlConfig, type SeedConfig, type Snapshot, type SnapshotBucket, type SnapshotExtras, type SoftDeleteConfig, type SourceConfig, type SqlConfig, type TableConfig, type TenantConfig, type TimestampsConfig, type ValibotGeneratorOptions, type VectorDistance, type VectorSearchConfig, type ZodGeneratorOptions, buildJsonSchema, claimPaths, defineConfig, jsonSchema, providerApiProblem, resolveConfig, resolveJsonSchema, tenantClaimPaths, valibot, zod };
|
package/dist/config/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as resolveConfig, i as defineConfig, o as resolveJsonSchema, r as CONFIG_SCHEMA_URL, t as DEFAULT_ACTIVE_TENANT } from "../
|
|
3
|
-
import { n as jsonSchema, t as buildJsonSchema } from "../json-schema-
|
|
4
|
-
import { n as valibot, t as zod } from "../config-
|
|
5
|
-
export { CONFIG_SCHEMA_URL, DEFAULT_ACTIVE_TENANT, DEFAULT_CLAIMS, buildJsonSchema, defineConfig, jsonSchema, resolveConfig, resolveJsonSchema, tenantClaimPaths, valibot, zod };
|
|
1
|
+
import { a as tenantClaimPaths, r as claimPaths, t as DEFAULT_CLAIMS } from "../claims-PqzCxaTD.js";
|
|
2
|
+
import { a as resolveConfig, i as defineConfig, o as resolveJsonSchema, r as CONFIG_SCHEMA_URL, s as providerApiProblem, t as DEFAULT_ACTIVE_TENANT } from "../modules-dxrVK3ID.js";
|
|
3
|
+
import { n as jsonSchema, t as buildJsonSchema } from "../json-schema-CvER4kgT.js";
|
|
4
|
+
import { n as valibot, t as zod } from "../config-Dn7F5k9A.js";
|
|
5
|
+
export { CONFIG_SCHEMA_URL, DEFAULT_ACTIVE_TENANT, DEFAULT_CLAIMS, buildJsonSchema, claimPaths, defineConfig, jsonSchema, providerApiProblem, resolveConfig, resolveJsonSchema, tenantClaimPaths, valibot, zod };
|