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
package/dist/sql/index.d.ts
CHANGED
|
@@ -1,138 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/** Default name, in the module's schema. */
|
|
19
|
-
readonly name: string;
|
|
20
|
-
/** Logical column to default column name. */
|
|
21
|
-
readonly columns: Readonly<Record<string, string>>;
|
|
22
|
-
/**
|
|
23
|
-
* Logical columns an adopted table may lack (mapped to `null`): the module
|
|
24
|
-
* leaves out the feature that needs them.
|
|
25
|
-
*/
|
|
26
|
-
readonly optional?: readonly string[];
|
|
27
|
-
/** The app may lack the whole table (`kits.<name>.tables.<table>: null`). */
|
|
28
|
-
readonly optionalTable?: boolean;
|
|
29
|
-
}
|
|
30
|
-
interface KitNames {
|
|
31
|
-
readonly tables: Readonly<Record<string, KitTableSpec>>;
|
|
32
|
-
/** The `before_*` and `after_*` hooks the module calls, so `kits.<name>.hooks.functions` is checked. */
|
|
33
|
-
readonly hooks?: readonly string[];
|
|
34
|
-
/** The `kits.<name>.options` keys the module reads; any other key is rejected. */
|
|
35
|
-
readonly options?: readonly string[];
|
|
36
|
-
}
|
|
37
|
-
/** An event a module writes to the outbox, as SQL expressions. */
|
|
38
|
-
interface KitEmit {
|
|
39
|
-
/** The event type, e.g. `org.created`. */
|
|
40
|
-
readonly type: string;
|
|
41
|
-
/** A `jsonb` expression. */
|
|
42
|
-
readonly payload: string;
|
|
43
|
-
/** A `text` expression, e.g. `'organizations/' || new_org`. */
|
|
44
|
-
readonly subject?: string;
|
|
45
|
-
/** The tenant id expression; it is cast to text. */
|
|
46
|
-
readonly tenant?: string;
|
|
47
|
-
/** A `text` idempotency key expression. */
|
|
48
|
-
readonly key?: string;
|
|
49
|
-
}
|
|
50
|
-
/** A function of a module's contract: what other modules and the TypeScript side call. */
|
|
51
|
-
interface KitContractFunction {
|
|
52
|
-
readonly name: string;
|
|
53
|
-
/** Argument types; `{id}` stands for the module's id type. */
|
|
54
|
-
readonly args: readonly string[];
|
|
55
|
-
readonly returns: string;
|
|
56
|
-
}
|
|
57
|
-
/** What a module's `build` reads: resolved names for one layout. */
|
|
58
|
-
interface KitContext {
|
|
59
|
-
readonly module: string;
|
|
60
|
-
readonly mode: KitMode;
|
|
61
|
-
readonly config: ResolvedKitModule;
|
|
62
|
-
/** The quoted schema of the module's functions and managed tables. */
|
|
63
|
-
readonly schema: string;
|
|
64
|
-
readonly schemaName: string;
|
|
65
|
-
readonly idType: KitIdType;
|
|
66
|
-
readonly claims: ClaimsMeta;
|
|
67
|
-
readonly kits: KitsConfig;
|
|
68
|
-
/** `schema.name` of a module function, quoted. */
|
|
69
|
-
fn(name: string): string;
|
|
70
|
-
/** `schema.table` of a logical table, quoted. */
|
|
71
|
-
table(logical: string): string;
|
|
72
|
-
/** The unquoted schema and name of a logical table. */
|
|
73
|
-
tableName(logical: string): {
|
|
74
|
-
readonly schema: string;
|
|
75
|
-
readonly name: string;
|
|
1
|
+
import { n as AccessPolicySql, u as ClaimsMeta } from "../types-6BdhkmZe.js";
|
|
2
|
+
import { K as ReadSet } from "../define-CJJkkr1-.js";
|
|
3
|
+
import { i as DisabledRow, o as ModuleMode, s as ModulesConfig } from "../modules-DpPwzC7E.js";
|
|
4
|
+
import { n as AuthorizationMembership, o as AuthorizationRoleSource, t as AuthorizationFunctions } from "../authorization-BFCqamMs.js";
|
|
5
|
+
import { a as ModuleAudit, c as ModuleEmit, d as ModuleTableSpec, f as contractSignature, i as ModuleAction, l as ModuleIdType, m as moduleIdType, n as AuditCategory, o as ModuleContext, p as isModuleIdType, r as MODULE_ID_TYPES, s as ModuleContractFunction, t as AUDIT_CATEGORIES, u as ModuleNames } from "../context-BCrWe7ow.js";
|
|
6
|
+
import { D as ResolvedConfig, l as EntitlementPlansSource } from "../config-D44Y7PAv.js";
|
|
7
|
+
//#region src/sql/shared.d.ts
|
|
8
|
+
/** A `pg_jsonschema` check on a jsonb column, for the `jsonb-schemas` module and key-value tables. */
|
|
9
|
+
interface JsonSchemaCheck {
|
|
10
|
+
/** `table` or `schema.table`. */
|
|
11
|
+
readonly table: string;
|
|
12
|
+
readonly column: string;
|
|
13
|
+
readonly schema: Readonly<Record<string, unknown>>;
|
|
14
|
+
/** Checks only rows whose `where.column` equals `where.value` (a settings key). */
|
|
15
|
+
readonly where?: {
|
|
16
|
+
readonly column: string;
|
|
17
|
+
readonly value: string;
|
|
76
18
|
};
|
|
77
|
-
/** A logical column, quoted. Throws when an adopted table lacks it. */
|
|
78
|
-
col(table: string, column: string): string;
|
|
79
|
-
/** Whether a logical column exists (adopted tables can map it to `null`). */
|
|
80
|
-
has(table: string, column: string): boolean;
|
|
81
|
-
/** Whether an optional logical table exists (it can be mapped to `null`). */
|
|
82
|
-
hasTable(table: string): boolean;
|
|
83
|
-
/** Whether the module owns `table` (managed mode). */
|
|
84
|
-
readonly manages: boolean;
|
|
85
|
-
/** The permission key for a kit action, as a SQL literal. */
|
|
86
|
-
permission(action: string, fallback: string): string;
|
|
87
|
-
/** The permission key for a kit action. */
|
|
88
|
-
permissionKey(action: string, fallback: string): string;
|
|
89
|
-
/** A trigger name with the module's prefix, quoted. */
|
|
90
|
-
trigger(name: string): string;
|
|
91
|
-
/** Whether `module` is installed alongside this one. */
|
|
92
|
-
installed(module: string): boolean;
|
|
93
|
-
/** The context of another module in the same layout. */
|
|
94
|
-
of(module: string): KitContext;
|
|
95
|
-
/** A string module option (`kits.<name>.options`). */
|
|
96
|
-
text(name: string, fallback: string): string;
|
|
97
|
-
number(name: string, fallback: number): number;
|
|
98
|
-
flag(name: string, fallback: boolean): boolean;
|
|
99
|
-
/** A module option that is a list of strings. */
|
|
100
|
-
list(name: string, fallback: readonly string[]): readonly string[];
|
|
101
|
-
/** A declared module option as configured, for object-shaped options. */
|
|
102
|
-
option(name: string): unknown;
|
|
103
|
-
/**
|
|
104
|
-
* PL/pgSQL that calls the app's hook function when it exists, with
|
|
105
|
-
* `[type, expression]` arguments: `if to_regprocedure(...) is not null
|
|
106
|
-
* then perform ...; end if;`.
|
|
107
|
-
*/
|
|
108
|
-
hook(name: string, args: readonly (readonly [string, string])[]): string;
|
|
109
|
-
/** The app function a hook calls, quoted, for hooks that return a value. */
|
|
110
|
-
hookTarget(name: string): string;
|
|
111
|
-
/**
|
|
112
|
-
* PL/pgSQL that writes the event to the outbox (`emit_event`) when the
|
|
113
|
-
* `outbox` module is installed and `kits.<name>.events` isn't false;
|
|
114
|
-
* otherwise an empty string.
|
|
115
|
-
*/
|
|
116
|
-
emit(event: KitEmit): string;
|
|
117
19
|
}
|
|
118
|
-
/** The contract's argument list with `{id}` resolved, as Postgres prints it. */
|
|
119
|
-
export declare function contractSignature(fn: KitContractFunction, idType: string): string;
|
|
120
20
|
//#endregion
|
|
121
|
-
//#region src/sql/
|
|
21
|
+
//#region src/sql/audit-registrations.d.ts
|
|
22
|
+
/** A table registered with `better_supabase.audit(...)` in a SQL file. */
|
|
23
|
+
interface AuditedTable {
|
|
24
|
+
/** `schema.table`, unquoted; an unqualified name is in `public`. */
|
|
25
|
+
readonly target: string;
|
|
26
|
+
readonly ignore: readonly string[];
|
|
27
|
+
readonly redact: readonly string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The tables `files` register with `better_supabase.audit(...)` or a static
|
|
31
|
+
* `create trigger bs_audit ... execute function
|
|
32
|
+
* better_supabase.audit_row_change('{...}')`, in file order: a later
|
|
33
|
+
* registration for the same table replaces the earlier one, and
|
|
34
|
+
* `unaudit(...)` or a `drop table` removes it. Calls with non-literal
|
|
35
|
+
* arguments are skipped.
|
|
36
|
+
*/
|
|
37
|
+
export declare function auditRegistrations(files: readonly {
|
|
38
|
+
readonly text: string;
|
|
39
|
+
}[]): AuditedTable[];
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/sql/registry.d.ts
|
|
122
42
|
/** The step from one module version to the next, for `sql upgrade`. */
|
|
123
|
-
interface
|
|
43
|
+
interface ModuleUpgrade {
|
|
124
44
|
/** The installed version this step upgrades from. */
|
|
125
45
|
readonly from: number;
|
|
126
46
|
readonly description: string;
|
|
127
47
|
/** SQL run before the module's current file, e.g. renames and backfills. */
|
|
128
|
-
readonly sql: (ctx:
|
|
48
|
+
readonly sql: (ctx: ModuleContext) => string;
|
|
129
49
|
}
|
|
130
50
|
/**
|
|
131
|
-
* A renamed
|
|
51
|
+
* A renamed module symbol. It keeps a compatibility wrapper for at least one
|
|
132
52
|
* minor release, then is removed; doctor reports uses of both (BS309), and
|
|
133
53
|
* the name stays reserved.
|
|
134
54
|
*/
|
|
135
|
-
interface
|
|
55
|
+
interface ModuleDeprecation {
|
|
136
56
|
readonly kind: "function" | "claim" | "table" | "column";
|
|
137
57
|
/** The old name: `schema.function`, a claim name, `schema.table` or `table.column`. */
|
|
138
58
|
readonly symbol: string;
|
|
@@ -147,10 +67,10 @@ interface KitDeprecation {
|
|
|
147
67
|
* old name that calls the new one and a `comment on function ... is
|
|
148
68
|
* 'deprecated: use X'`.
|
|
149
69
|
*/
|
|
150
|
-
readonly wrapper?: (ctx:
|
|
70
|
+
readonly wrapper?: (ctx: ModuleContext) => string;
|
|
151
71
|
}
|
|
152
72
|
/**
|
|
153
|
-
* SQL
|
|
73
|
+
* SQL modules for `better-supabase sql add`. Every module is idempotent
|
|
154
74
|
* (`create or replace`, `if not exists`), so re-running it upgrades in place.
|
|
155
75
|
*/
|
|
156
76
|
interface SqlModule {
|
|
@@ -159,66 +79,118 @@ interface SqlModule {
|
|
|
159
79
|
readonly description: string;
|
|
160
80
|
/** Modules this one needs, added along with it. */
|
|
161
81
|
readonly requires: readonly string[];
|
|
162
|
-
/** What it needs instead when
|
|
163
|
-
readonly
|
|
164
|
-
/**
|
|
165
|
-
|
|
82
|
+
/** What it needs instead when an authorization provider supplies memberships. */
|
|
83
|
+
readonly providerRequires?: readonly string[];
|
|
84
|
+
/**
|
|
85
|
+
* The optional `authorization.functions` templates it calls under the
|
|
86
|
+
* `provider` access model, such as `idsWithFor` to check another user.
|
|
87
|
+
* Doctor warns (BS411) when the provider doesn't set one.
|
|
88
|
+
*/
|
|
89
|
+
readonly providerFunctions?: readonly (keyof AuthorizationFunctions)[];
|
|
90
|
+
/**
|
|
91
|
+
* Modules it works with when they are installed, without needing them.
|
|
92
|
+
* `ctx.installed` and `ctx.of` accept only these and what it requires;
|
|
93
|
+
* `record` reaches the outbox and the audit log without listing them.
|
|
94
|
+
* `*` stands for every module, for one that reads them all (`data-lifecycle`).
|
|
95
|
+
*/
|
|
96
|
+
readonly integrates?: readonly string[];
|
|
97
|
+
/** What it needs for this layout, e.g. per `sql.modules.access.model`; overrides both. */
|
|
98
|
+
readonly dependencies?: (layout: ModuleLayout) => readonly string[];
|
|
166
99
|
/** `schema` files go with your schemas; `test` files go to `supabase/tests`. */
|
|
167
100
|
readonly target: "schema" | "test";
|
|
168
101
|
/** The module with the default claim names. */
|
|
169
102
|
readonly sql: string;
|
|
170
103
|
/** The module for configured claim names (`config.claims`), when it reads claims. */
|
|
171
|
-
readonly render?: (claims: ClaimsMeta, layout:
|
|
104
|
+
readonly render?: (claims: ClaimsMeta, layout: ModuleLayout) => string;
|
|
172
105
|
/** Bumped when installed databases need an upgrade step. Defaults to 1. */
|
|
173
106
|
readonly version?: number;
|
|
174
|
-
/** The modes `
|
|
175
|
-
readonly modes?: readonly
|
|
176
|
-
/** The logical tables and columns `
|
|
177
|
-
readonly names?:
|
|
107
|
+
/** The modes `sql.modules.<name>.mode` accepts. Defaults to `managed` only. */
|
|
108
|
+
readonly modes?: readonly ModuleMode[];
|
|
109
|
+
/** The logical tables and columns `sql.modules.<name>.tables` and `columns` map. */
|
|
110
|
+
readonly names?: ModuleNames;
|
|
178
111
|
/** The functions other modules and the TypeScript side call. */
|
|
179
|
-
readonly contract?: (ctx:
|
|
112
|
+
readonly contract?: (ctx: ModuleContext) => readonly ModuleContractFunction[];
|
|
180
113
|
/** Renders the module for a layout; takes precedence over `render`. */
|
|
181
|
-
readonly build?: (ctx:
|
|
182
|
-
readonly upgrades?: readonly
|
|
183
|
-
readonly deprecated?: readonly
|
|
114
|
+
readonly build?: (ctx: ModuleContext, layout: ModuleLayout) => string;
|
|
115
|
+
readonly upgrades?: readonly ModuleUpgrade[];
|
|
116
|
+
readonly deprecated?: readonly ModuleDeprecation[];
|
|
184
117
|
/**
|
|
185
118
|
* Rows, role settings and calls that a schema diff doesn't capture. They
|
|
186
119
|
* go to `better-supabase-data/` next to the schema folder and a migration
|
|
187
120
|
* (`sql data`) instead of the schema file.
|
|
188
121
|
*/
|
|
189
|
-
readonly data?: (ctx:
|
|
122
|
+
readonly data?: (ctx: ModuleContext, layout: ModuleLayout) => string;
|
|
123
|
+
/** pgTAP files for this layout, written to the tests folder next to the `pgtap` module's. */
|
|
124
|
+
readonly tests?: (ctx: ModuleContext, layout: ModuleLayout) => readonly ModuleTestFile[];
|
|
125
|
+
readonly topics?: (ctx: ModuleContext) => readonly string[];
|
|
126
|
+
/**
|
|
127
|
+
* Functions granted to `anon` or `authenticated` only so the module's
|
|
128
|
+
* policies and triggers can call them as the client. `api` writes no
|
|
129
|
+
* entry point for them.
|
|
130
|
+
*/
|
|
131
|
+
readonly internal?: readonly string[];
|
|
132
|
+
readonly adoptOptional?: (ctx: ModuleContext) => Readonly<Record<string, readonly string[]>>;
|
|
133
|
+
}
|
|
134
|
+
/** A pgTAP file a module writes for the layout, e.g. one per audited table. */
|
|
135
|
+
interface ModuleTestFile {
|
|
136
|
+
/** The file name's suffix, after the module's slug. */
|
|
137
|
+
readonly name: string;
|
|
138
|
+
readonly sql: string;
|
|
190
139
|
}
|
|
191
140
|
export declare const moduleVersion: (module: SqlModule) => number;
|
|
141
|
+
/** `entitlements.claim`: what `feature_claims` puts in the token. */
|
|
142
|
+
type FeatureClaimOption = false | {
|
|
143
|
+
/** At most this many tenants, the lowest ids first. */
|
|
144
|
+
readonly maxTenants?: number;
|
|
145
|
+
/** Short codes written instead of the feature keys: `{ exports: "x" }`. */
|
|
146
|
+
readonly keys?: Readonly<Record<string, string>>;
|
|
147
|
+
};
|
|
192
148
|
/** New modules go at the end: the position is part of the file name. */
|
|
193
149
|
export declare const SQL_MODULES: Readonly<Record<string, SqlModule>>;
|
|
194
150
|
/** The modules to install for `names`, dependencies first. Throws on an unknown name. */
|
|
195
|
-
export declare function resolveModules(names: readonly string[], layout?:
|
|
196
|
-
interface
|
|
151
|
+
export declare function resolveModules(names: readonly string[], layout?: ModuleLayout): SqlModule[];
|
|
152
|
+
interface ModuleFile {
|
|
197
153
|
readonly module: string;
|
|
198
154
|
/** `schema` and `test` files are diffed; `data` files go in a migration too. */
|
|
199
155
|
readonly kind: "schema" | "data" | "test";
|
|
200
156
|
readonly path: string;
|
|
201
157
|
readonly contents: string;
|
|
202
158
|
}
|
|
203
|
-
interface
|
|
159
|
+
interface ModuleLayout {
|
|
204
160
|
/** Directory for schema modules. Defaults to `supabase/schemas`. */
|
|
205
161
|
readonly dir?: string;
|
|
162
|
+
/** The declarative schema folder the diff engine loads. Defaults to `supabase/schemas`. */
|
|
163
|
+
readonly schemasDir?: string;
|
|
206
164
|
/** File prefix. Defaults to `900_better_supabase`. */
|
|
207
165
|
readonly prefix?: string;
|
|
208
166
|
/** Directory for pgTAP files. Defaults to `supabase/tests`. */
|
|
209
167
|
readonly testsDir?: string;
|
|
168
|
+
/** The `better_supabase.audit(...)` calls in the SQL files: the `audit` module writes a pgTAP file per table. */
|
|
169
|
+
readonly auditedTables?: readonly AuditedTable[];
|
|
210
170
|
/** Version stamped into the header. */
|
|
211
171
|
readonly version?: string;
|
|
212
172
|
/** `config.realtime.tables`: registered at the end of the `realtime-tables` module. */
|
|
213
173
|
readonly realtimeTables?: readonly string[];
|
|
214
174
|
/** `config.realtime.global`: tables registered with `tenant_column => null`. */
|
|
215
175
|
readonly realtimeGlobal?: readonly string[];
|
|
176
|
+
/** `config.realtime.users`: tables registered with `user_column`. */
|
|
177
|
+
readonly realtimeUsers?: Readonly<Record<string, string>>;
|
|
216
178
|
/** Tenant column passed to `track_realtime` for the other tables. */
|
|
217
179
|
readonly tenantColumn?: string;
|
|
218
180
|
/** Check constraints for the `jsonb-schemas` module. */
|
|
219
181
|
readonly jsonSchemas?: readonly JsonSchemaCheck[];
|
|
220
182
|
/** `config.expose`: the grants the `grants` module writes. */
|
|
221
183
|
readonly grants?: readonly TableGrant[];
|
|
184
|
+
/** `config.expose` functions: the roles that may execute each one. */
|
|
185
|
+
readonly functionGrants?: readonly FunctionGrant[];
|
|
186
|
+
/**
|
|
187
|
+
* Grants the permissive policies in the schema files imply, for
|
|
188
|
+
* `sql.modules.grants.options.fromPolicies`. Tables in `grants` keep
|
|
189
|
+
* their listed privileges.
|
|
190
|
+
*/
|
|
191
|
+
readonly policyGrants?: readonly TableGrant[];
|
|
192
|
+
/** The tables the schema files create, for `sql.modules.sessions.options.policies`. */
|
|
193
|
+
readonly declaredTables?: readonly string[];
|
|
222
194
|
/** `config.readSets`, compiled: the functions the `read-sets` module writes. */
|
|
223
195
|
readonly readSets?: readonly {
|
|
224
196
|
readonly name: string;
|
|
@@ -228,34 +200,50 @@ interface KitLayout {
|
|
|
228
200
|
readonly entitlements?: EntitlementsSource;
|
|
229
201
|
/** `config.vectorSearch`: the tables the `vector-search` module writes a search function for. */
|
|
230
202
|
readonly vectorSearch?: readonly VectorSearchTable[];
|
|
203
|
+
readonly vectorSchema?: string;
|
|
231
204
|
/** `config.claims`: claim names the modules read and write. */
|
|
232
205
|
readonly claims?: ClaimsMeta;
|
|
233
|
-
/**
|
|
234
|
-
readonly
|
|
235
|
-
/**
|
|
236
|
-
readonly
|
|
206
|
+
/** The authorization provider's memberships: `entitlements` reads them instead of `tenant`'s. */
|
|
207
|
+
readonly entitlementsProvider?: ModuleEntitlementsProvider;
|
|
208
|
+
/** The authorization provider the `access` module's `provider` model calls. */
|
|
209
|
+
readonly accessProvider?: ModuleAccessProvider;
|
|
210
|
+
/** `config.sql.modules`: modes, names and permission keys per module. */
|
|
211
|
+
readonly modules?: ModulesConfig;
|
|
212
|
+
/** The authorization provider's permission keys, for `api-keys` scopes. */
|
|
213
|
+
readonly permissionCatalog?: readonly string[];
|
|
237
214
|
}
|
|
238
|
-
/**
|
|
239
|
-
interface
|
|
240
|
-
/**
|
|
241
|
-
readonly
|
|
242
|
-
|
|
243
|
-
readonly scope:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
readonly
|
|
215
|
+
/** Where the `entitlements` module reads the provider's memberships, and the tables behind them. */
|
|
216
|
+
interface ModuleEntitlementsProvider {
|
|
217
|
+
/** The provider's name, for comments. */
|
|
218
|
+
readonly name: string;
|
|
219
|
+
/** The provider scope tenants are, e.g. `organization`. */
|
|
220
|
+
readonly scope: string;
|
|
221
|
+
readonly idType: ModuleIdType;
|
|
222
|
+
/** `authorization.functions.memberIds`. */
|
|
223
|
+
readonly memberIds: string;
|
|
224
|
+
/** `authorization.functions.memberIdsFor`. */
|
|
225
|
+
readonly memberIdsFor: string;
|
|
226
|
+
readonly memberships: readonly AuthorizationMembership[];
|
|
249
227
|
}
|
|
250
|
-
/**
|
|
251
|
-
interface
|
|
252
|
-
/**
|
|
253
|
-
readonly
|
|
254
|
-
/** The
|
|
228
|
+
/** What the `access` module's `provider` model calls. */
|
|
229
|
+
interface ModuleAccessProvider {
|
|
230
|
+
/** The provider's name, for comments and errors. */
|
|
231
|
+
readonly name: string;
|
|
232
|
+
/** The provider scope tenants are. */
|
|
255
233
|
readonly scope: string;
|
|
256
|
-
|
|
257
|
-
readonly
|
|
258
|
-
|
|
234
|
+
readonly idType: ModuleIdType;
|
|
235
|
+
readonly functions: AuthorizationFunctions;
|
|
236
|
+
/** The access module's `disabled` setting defaults to these. */
|
|
237
|
+
readonly suspension?: {
|
|
238
|
+
readonly user?: DisabledRow;
|
|
239
|
+
readonly tenant?: DisabledRow;
|
|
240
|
+
};
|
|
241
|
+
/** An adopted `tenant` module on one of these tables reads role names the same way. */
|
|
242
|
+
readonly roleSources?: readonly AuthorizationRoleSource[];
|
|
243
|
+
/** How `ai-chat` applies `functions.canApprove`. */
|
|
244
|
+
readonly approvals?: {
|
|
245
|
+
readonly distinctApprover?: boolean;
|
|
246
|
+
};
|
|
259
247
|
}
|
|
260
248
|
/** An embedding column `db.$search` can query. */
|
|
261
249
|
interface VectorSearchTable {
|
|
@@ -263,6 +251,28 @@ interface VectorSearchTable {
|
|
|
263
251
|
readonly table: string;
|
|
264
252
|
readonly column: string;
|
|
265
253
|
readonly distance: "cosine" | "l2" | "inner_product";
|
|
254
|
+
/** The column's type: pgvector's `vector` (default) or `halfvec`. */
|
|
255
|
+
readonly type?: "vector" | "halfvec";
|
|
256
|
+
/** The primary key column the scores function returns. Defaults to `id`. */
|
|
257
|
+
readonly key?: string;
|
|
258
|
+
/** Full-text ranking fused with the vector ranking (reciprocal rank fusion). */
|
|
259
|
+
readonly hybrid?: {
|
|
260
|
+
readonly tsvector: string;
|
|
261
|
+
/** The text search configuration of the query. Defaults to `simple`. */
|
|
262
|
+
readonly config?: string;
|
|
263
|
+
/** The RRF constant. Defaults to 60. */
|
|
264
|
+
readonly k?: number;
|
|
265
|
+
};
|
|
266
|
+
/** A SQL expression over the row `t` the score is multiplied by, such as `t.priority`. */
|
|
267
|
+
readonly boost?: string;
|
|
268
|
+
/** Columns `filter` narrows before ranking, such as `organization_id`. */
|
|
269
|
+
readonly prefilter?: readonly string[];
|
|
270
|
+
/** A SQL condition over the row `t` every candidate must meet. */
|
|
271
|
+
readonly predicate?: string;
|
|
272
|
+
/** How `boost` combines with the score. Defaults to `multiply`. */
|
|
273
|
+
readonly boostMode?: "multiply" | "add";
|
|
274
|
+
/** A SQL `order by` list over the row `t` that breaks score ties. */
|
|
275
|
+
readonly order?: string;
|
|
266
276
|
}
|
|
267
277
|
/** The table holding each tenant's Stripe customer id. */
|
|
268
278
|
interface EntitlementsSource {
|
|
@@ -272,30 +282,69 @@ interface EntitlementsSource {
|
|
|
272
282
|
readonly column?: string;
|
|
273
283
|
/** Column with the tenant id. */
|
|
274
284
|
readonly key: string;
|
|
285
|
+
/** Where entitlements come from; the customer lookups are for `stripe-sync` only. */
|
|
286
|
+
readonly source?: "stripe-sync" | "custom" | EntitlementPlansSource;
|
|
287
|
+
readonly claim?: FeatureClaimOption;
|
|
275
288
|
}
|
|
276
|
-
/** Privileges one
|
|
289
|
+
/** Privileges one role gets on a table or view. */
|
|
277
290
|
interface TableGrant {
|
|
278
291
|
/** `table` or `schema.table`. */
|
|
279
292
|
readonly table: string;
|
|
280
|
-
readonly role: "anon" | "authenticated";
|
|
281
|
-
readonly privileges: readonly
|
|
293
|
+
readonly role: "anon" | "authenticated" | "service_role";
|
|
294
|
+
readonly privileges: readonly string[];
|
|
282
295
|
}
|
|
283
|
-
/**
|
|
284
|
-
interface
|
|
285
|
-
/** `
|
|
286
|
-
readonly
|
|
287
|
-
readonly
|
|
288
|
-
readonly schema: Readonly<Record<string, unknown>>;
|
|
296
|
+
/** The roles that may execute a function. */
|
|
297
|
+
interface FunctionGrant {
|
|
298
|
+
/** `name(argument types)` or `schema.name(argument types)`. */
|
|
299
|
+
readonly function: string;
|
|
300
|
+
readonly roles: readonly ("anon" | "authenticated" | "service_role")[];
|
|
289
301
|
}
|
|
290
|
-
/** Whether an installed file matches, ignoring the version stamped in its header. */
|
|
291
|
-
export declare function
|
|
292
|
-
/** The installed version of a
|
|
293
|
-
export declare function
|
|
302
|
+
/** Whether an installed file matches, ignoring the version stamped in its header and line endings. */
|
|
303
|
+
export declare function sameModuleFile(current: string | undefined, expected: string): boolean;
|
|
304
|
+
/** The installed version of a module file, from its `@bs-module` line. */
|
|
305
|
+
export declare function moduleFileVersion(contents: string): {
|
|
294
306
|
readonly module: string;
|
|
295
307
|
readonly version: number;
|
|
296
308
|
} | undefined;
|
|
297
309
|
/** A module's SQL for `layout`, without header; `undefined` in custom mode. */
|
|
298
|
-
export declare function moduleBody(name: string, layout?:
|
|
310
|
+
export declare function moduleBody(name: string, layout?: ModuleLayout): string | undefined;
|
|
311
|
+
/**
|
|
312
|
+
* The schema or test file `renderModules` writes for each of `names` and the
|
|
313
|
+
* modules they pull in, without rendering: modules in custom mode have none.
|
|
314
|
+
*/
|
|
315
|
+
export declare function moduleFilePaths(names: readonly string[], layout?: ModuleLayout): ReadonlyMap<string, string>;
|
|
316
|
+
/** A permission key a SQL module checks, from `modulePermissionKeys`. */
|
|
317
|
+
interface ModulePermissionKey {
|
|
318
|
+
readonly module: string;
|
|
319
|
+
/** The action in `sql.modules.<module>.permissions` that overrides the key. */
|
|
320
|
+
readonly action: string;
|
|
321
|
+
readonly key: string;
|
|
322
|
+
/**
|
|
323
|
+
* `tenant` for keys checked in a tenant (`member_can`, `can`,
|
|
324
|
+
* `tenant_ids_with`), `platform` for `is_platform` and `platform_can`.
|
|
325
|
+
*/
|
|
326
|
+
readonly scope: "tenant" | "platform";
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Every permission key the modules `names` install (with what they pull
|
|
330
|
+
* in) check, after `sql.modules.<module>.permissions` overrides. Modules in custom
|
|
331
|
+
* mode are skipped, and so is `invitations.invitePlatform` without platform
|
|
332
|
+
* roles.
|
|
333
|
+
*/
|
|
334
|
+
export declare function modulePermissionKeys(config: ModulesConfig, names: readonly string[]): ModulePermissionKey[];
|
|
335
|
+
interface ModuleExtension {
|
|
336
|
+
readonly name: string;
|
|
337
|
+
readonly statement: string;
|
|
338
|
+
}
|
|
339
|
+
export declare const moduleSchemaExtensions: (files: readonly ModuleFile[]) => ModuleExtension[];
|
|
340
|
+
/**
|
|
341
|
+
* The event triggers each of these modules creates, as its default file
|
|
342
|
+
* renders them, for doctor's check of a database.
|
|
343
|
+
*/
|
|
344
|
+
export declare function moduleEventTriggers(names: readonly string[], modules?: Readonly<Record<string, SqlModule>>): {
|
|
345
|
+
readonly module: string;
|
|
346
|
+
readonly name: string;
|
|
347
|
+
}[];
|
|
299
348
|
/**
|
|
300
349
|
* The files `sql add` writes for these modules. Modules in `custom` mode
|
|
301
350
|
* write nothing: the app implements their contract. A schema module's rows,
|
|
@@ -303,14 +352,19 @@ export declare function moduleBody(name: string, layout?: KitLayout): string | u
|
|
|
303
352
|
* second file in `better-supabase-data/` (`kind: 'data'`), which
|
|
304
353
|
* `sql data` writes into a migration.
|
|
305
354
|
*/
|
|
306
|
-
export declare function
|
|
307
|
-
|
|
308
|
-
|
|
355
|
+
export declare function renderModules(names: readonly string[], layout?: ModuleLayout): ModuleFile[];
|
|
356
|
+
interface ModuleTopic {
|
|
357
|
+
readonly module: string;
|
|
358
|
+
readonly topic: string;
|
|
359
|
+
}
|
|
360
|
+
export declare function moduleTopics(names: readonly string[], layout?: ModuleLayout): ModuleTopic[];
|
|
361
|
+
/** An installed module, from its file's `@bs-module` line or `modules`. */
|
|
362
|
+
interface InstalledModule {
|
|
309
363
|
readonly module: string;
|
|
310
364
|
readonly version: number;
|
|
311
365
|
}
|
|
312
366
|
/** What `sql upgrade` runs for one module behind the current version. */
|
|
313
|
-
interface
|
|
367
|
+
interface ModuleUpgradePlan {
|
|
314
368
|
readonly module: string;
|
|
315
369
|
readonly from: number;
|
|
316
370
|
readonly to: number;
|
|
@@ -325,22 +379,92 @@ interface KitUpgradePlan {
|
|
|
325
379
|
* without a step needs none: the module file upgrades in place. Modules in
|
|
326
380
|
* custom mode belong to the app and are skipped.
|
|
327
381
|
*/
|
|
328
|
-
export declare function upgradePlan(installed: readonly
|
|
329
|
-
/** Every deprecated or removed
|
|
330
|
-
export declare function
|
|
382
|
+
export declare function upgradePlan(installed: readonly InstalledModule[], layout?: ModuleLayout, modules?: Readonly<Record<string, SqlModule>>): ModuleUpgradePlan[];
|
|
383
|
+
/** Every deprecated or removed module symbol, with its module. */
|
|
384
|
+
export declare function moduleDeprecations(modules?: Readonly<Record<string, SqlModule>>): readonly (ModuleDeprecation & {
|
|
331
385
|
readonly module: string;
|
|
332
386
|
})[];
|
|
333
387
|
/** The contract functions of the modules in `custom` mode, for doctor. */
|
|
334
|
-
export declare function customContracts(names: readonly string[], layout?:
|
|
388
|
+
export declare function customContracts(names: readonly string[], layout?: ModuleLayout): {
|
|
335
389
|
readonly module: string;
|
|
336
390
|
readonly schema: string;
|
|
337
|
-
readonly idType:
|
|
338
|
-
readonly functions: readonly
|
|
391
|
+
readonly idType: ModuleIdType;
|
|
392
|
+
readonly functions: readonly ModuleContractFunction[];
|
|
339
393
|
}[];
|
|
340
394
|
//#endregion
|
|
395
|
+
//#region src/sql/adopted-columns.d.ts
|
|
396
|
+
/**
|
|
397
|
+
* Adopt-mode modules that default an optional column to its physical name
|
|
398
|
+
* while the adopted `create table` has no such column. `sql sync` refuses
|
|
399
|
+
* those configs so `has()` does not treat a missing column as present.
|
|
400
|
+
*/
|
|
401
|
+
export declare function adoptedColumnProblems(modules: ModulesConfig, files: readonly {
|
|
402
|
+
readonly text: string;
|
|
403
|
+
}[], schemas: readonly string[]): readonly string[];
|
|
404
|
+
//#endregion
|
|
405
|
+
//#region src/sql/schema-scan.d.ts
|
|
406
|
+
/** Privileges one role gets on a table, from the policies that name it. */
|
|
407
|
+
interface PolicyGrant {
|
|
408
|
+
/** `schema.table`, unquoted; an unqualified name is in `public`. */
|
|
409
|
+
readonly table: string;
|
|
410
|
+
readonly role: "anon" | "authenticated";
|
|
411
|
+
readonly privileges: readonly ("select" | "insert" | "update" | "delete")[];
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* The tables `files` create (`create table`), as `schema.table`, in the
|
|
415
|
+
* order they first appear. Only tables in `schemas` are kept.
|
|
416
|
+
*/
|
|
417
|
+
export declare function declaredTables(files: readonly {
|
|
418
|
+
readonly text: string;
|
|
419
|
+
}[], schemas: readonly string[]): string[];
|
|
420
|
+
/**
|
|
421
|
+
* The privileges the permissive policies in `files` imply, per table and
|
|
422
|
+
* role: `for all` gives the four commands, `to public` (or no `to`) counts
|
|
423
|
+
* for `authenticated` only, so `anon` needs a policy that names it.
|
|
424
|
+
* Restrictive policies grant nothing. Only tables in `schemas` are kept.
|
|
425
|
+
*/
|
|
426
|
+
export declare function policyGrants(files: readonly {
|
|
427
|
+
readonly text: string;
|
|
428
|
+
}[], schemas: readonly string[]): PolicyGrant[];
|
|
429
|
+
export declare function extensionSchema(sources: readonly {
|
|
430
|
+
readonly text: string;
|
|
431
|
+
}[], extension: string): string | undefined;
|
|
432
|
+
//#endregion
|
|
433
|
+
//#region src/core/access-sql.d.ts
|
|
434
|
+
/** The Postgres types a scope's ids can have. */
|
|
435
|
+
export declare const SCOPE_ID_TYPES: readonly string[];
|
|
436
|
+
/**
|
|
437
|
+
* What is wrong with a provider's scopes: an unknown tenant scope or
|
|
438
|
+
* parent, a parent cycle, an id type outside `SCOPE_ID_TYPES`, or a tenant
|
|
439
|
+
* scope without one.
|
|
440
|
+
*/
|
|
441
|
+
export declare function scopeProblems(provider: {
|
|
442
|
+
readonly scopes: readonly {
|
|
443
|
+
readonly name: string;
|
|
444
|
+
readonly idType?: string | undefined;
|
|
445
|
+
readonly parent?: string | undefined;
|
|
446
|
+
}[];
|
|
447
|
+
readonly tenantScope: string;
|
|
448
|
+
}): string[];
|
|
449
|
+
/** The `schema.name` of every schema-qualified function a template calls, with `{scope}` filled. */
|
|
450
|
+
export declare function templateFunctions(template: string, scope?: string): string[];
|
|
451
|
+
/** What a bucket or topic access policy decides with. */
|
|
452
|
+
interface AccessTarget {
|
|
453
|
+
/** `tenant` (default), `platform`, or with `sql` any scope its templates take. */
|
|
454
|
+
readonly scope?: string;
|
|
455
|
+
/** `"provider"` is replaced with `authorization.functions` by `gen`. */
|
|
456
|
+
readonly sql?: AccessPolicySql | "provider";
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* `target` with `sql: "provider"` replaced by the provider's `idsWith` and
|
|
460
|
+
* `isPlatform`. `where` names the policy in the error when there is no
|
|
461
|
+
* provider.
|
|
462
|
+
*/
|
|
463
|
+
export declare function resolveProviderSql<T extends AccessTarget>(where: string, target: T, functions: AuthorizationFunctions | undefined): T;
|
|
464
|
+
//#endregion
|
|
341
465
|
//#region src/sql/layout.d.ts
|
|
342
|
-
/** Where and how `sql add` writes
|
|
343
|
-
export declare function
|
|
466
|
+
/** Where and how `sql add` writes module files for this config. */
|
|
467
|
+
export declare function moduleLayout(config: ResolvedConfig, testsDir?: string, readSets?: ModuleLayout["readSets"], entitlementsProvider?: ModuleEntitlementsProvider, accessProvider?: ModuleAccessProvider, permissionCatalog?: readonly string[]): ModuleLayout;
|
|
344
468
|
//#endregion
|
|
345
469
|
//#region src/sql/migration-options.d.ts
|
|
346
470
|
/** A migration-only option a config sets. */
|
|
@@ -349,14 +473,26 @@ interface MigrationOptionUse {
|
|
|
349
473
|
readonly option: string;
|
|
350
474
|
readonly value: unknown;
|
|
351
475
|
readonly adopted: boolean;
|
|
352
|
-
/** `
|
|
476
|
+
/** `sql.modules.<module>.options.<option> ... It <effect>.` */
|
|
353
477
|
readonly message: string;
|
|
354
478
|
}
|
|
355
479
|
/**
|
|
356
|
-
* The migration-only options `
|
|
480
|
+
* The migration-only options `sql.modules` sets to a value other than the managed
|
|
357
481
|
* default. They are accepted in `adopt` mode only; doctor warns about each.
|
|
358
482
|
*/
|
|
359
|
-
export declare function migrationOptionUses(
|
|
483
|
+
export declare function migrationOptionUses(modules?: ModulesConfig): MigrationOptionUse[];
|
|
484
|
+
//#endregion
|
|
485
|
+
//#region src/sql/shared-roles.d.ts
|
|
486
|
+
/**
|
|
487
|
+
* Why a roles table that holds both tenant and platform roles (the tenant
|
|
488
|
+
* module's `roleThrough` and the invitations module's
|
|
489
|
+
* `platformRoles.through` under the `provider` model) can't tell them apart:
|
|
490
|
+
* the setting that lacks `where` and why. Empty when the modules don't share a roles table.
|
|
491
|
+
*/
|
|
492
|
+
export declare function sharedRolesProblems(names: readonly string[], layout: ModuleLayout): {
|
|
493
|
+
readonly setting: string;
|
|
494
|
+
readonly message: string;
|
|
495
|
+
}[];
|
|
360
496
|
//#endregion
|
|
361
497
|
//#region src/sql/read-sets.d.ts
|
|
362
498
|
/** A read set compiled to the SQL of its function. */
|
|
@@ -373,4 +509,4 @@ export declare function compileReadSet(set: ReadSet): Promise<CompiledReadSet>;
|
|
|
373
509
|
/** Compiles every set, sorted by name. Throws on a duplicate name. */
|
|
374
510
|
export declare function compileReadSets(sets: readonly ReadSet[]): Promise<CompiledReadSet[]>;
|
|
375
511
|
//#endregion
|
|
376
|
-
export { type CompiledReadSet, type
|
|
512
|
+
export { AUDIT_CATEGORIES, type AuditCategory, type AuditedTable, type CompiledReadSet, type InstalledModule, MODULE_ID_TYPES, type MigrationOptionUse, type ModuleAccessProvider, type ModuleAction, type ModuleAudit, type ModuleContext, type ModuleContractFunction, type ModuleDeprecation, type ModuleEmit, type ModuleEntitlementsProvider, type ModuleExtension, type ModuleFile, type ModuleIdType, type ModuleLayout, type ModuleNames, type ModulePermissionKey, type ModuleTableSpec, type ModuleTestFile, type ModuleTopic, type ModuleUpgrade, type ModuleUpgradePlan, type PolicyGrant, type SqlModule, contractSignature, isModuleIdType, moduleIdType };
|