better-supabase 0.12.0 → 0.13.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 +1 -0
- package/dist/access-sql-BpOdJvfj.js +205 -0
- package/dist/actor-C9pwyCVz.js +150 -0
- package/dist/actor-CoveJgya.d.ts +106 -0
- package/dist/adapter-D8dW6p2A.js +2190 -0
- package/dist/agents-CuxuXVWv.d.ts +117 -0
- package/dist/ai-cache-BXMXRhkx.d.ts +82 -0
- package/dist/ai-cache-Byy5q6EZ.js +87 -0
- package/dist/ai-chat-B00sIOjY.d.ts +619 -0
- package/dist/ai-files-DTbIJcxQ.js +339 -0
- package/dist/ai-sdk/agents/index.d.ts +64 -52
- package/dist/ai-sdk/agents/index.js +34 -26
- package/dist/ai-sdk/batches/index.d.ts +16 -7
- package/dist/ai-sdk/batches/index.js +5 -5
- package/dist/ai-sdk/cache/index.d.ts +6 -3
- package/dist/ai-sdk/cache/index.js +1 -1
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +10 -10
- package/dist/ai-sdk/embeddings/index.d.ts +2 -2
- package/dist/ai-sdk/embeddings/index.js +1 -1
- package/dist/ai-sdk/files/index.d.ts +9 -9
- package/dist/ai-sdk/files/index.js +10 -10
- package/dist/ai-sdk/index.d.ts +25 -22
- package/dist/ai-sdk/index.js +11 -8
- package/dist/ai-sdk/mcp/index.d.ts +32 -26
- package/dist/ai-sdk/mcp/index.js +19 -19
- package/dist/ai-sdk/memory/index.d.ts +9 -9
- package/dist/ai-sdk/memory/index.js +5 -5
- package/dist/ai-sdk/react/index.d.ts +1 -1
- package/dist/ai-sdk/react/index.js +1 -1
- package/dist/ai-sdk/react/server.d.ts +5 -2
- package/dist/ai-sdk/react/server.js +4 -1
- package/dist/ai-sdk/workflow/index.d.ts +57 -36
- package/dist/ai-sdk/workflow/index.js +29 -23
- package/dist/ai-sdk/workflow/react/index.d.ts +7 -8
- package/dist/ai-sdk/workflow/react/index.js +7 -8
- package/dist/ai-sdk/workflow/react/server.d.ts +1 -1
- package/dist/ai-tasks-DN-AV7qB.d.ts +166 -0
- package/dist/announcements-DqiLxtKK.js +128 -0
- package/dist/api-CmcTYuFT.js +685 -0
- package/dist/api-DwLhJS1j.d.ts +444 -0
- package/dist/api-keys-Bade6Qtl.d.ts +213 -0
- package/dist/api-keys-CO24Ffil.js +318 -0
- package/dist/app-tables-0YZ9IskE.js +831 -0
- package/dist/app-tables-CbWUI7h_.d.ts +35 -0
- package/dist/approvals-C-4MOWdV.d.ts +127 -0
- package/dist/arazzo/index.d.ts +58 -36
- package/dist/arazzo/index.js +49 -41
- package/dist/assistant-CcP_kpu7.d.ts +157 -0
- package/dist/astro/index.d.ts +39 -20
- package/dist/astro/index.js +14 -11
- package/dist/asyncapi/index.d.ts +22 -16
- package/dist/asyncapi/index.js +23 -20
- package/dist/attachments-CPkGJVfk.js +270 -0
- package/dist/attributes-BOFl922R.js +44 -0
- package/dist/audit-log-5aTnl7W2.js +788 -0
- package/dist/auth-DyF_LRxd.js +20 -0
- package/dist/auth-link-B4NL84XU.d.ts +104 -0
- package/dist/auth-link-D3-bU6yz.js +118 -0
- package/dist/auth-module-CwCIY97x.js +10 -0
- package/dist/auth-reply-D02x5NSv.js +31 -0
- package/dist/authorization-CB69cvnA.d.ts +1504 -0
- package/dist/authorization-hooks-HXVZXxUk.d.ts +217 -0
- package/dist/authorizer-BVR2vPGA.js +125 -0
- package/dist/authorizer-DFP3gHv8.d.ts +82 -0
- package/dist/base64-B9Wlsdj7.js +42 -0
- package/dist/before-route-B23K2zYU.js +30 -0
- package/dist/better-result/index.d.ts +26 -18
- package/dist/better-result/index.js +13 -9
- package/dist/bind-DcXLU1ul.d.ts +76 -0
- package/dist/block-env-YfPmSNa1.js +32 -0
- package/dist/block-env-kFcaaJLM.d.ts +10 -0
- package/dist/block-events-BURaqwyp.js +96 -0
- package/dist/block-fields-Cwd4c8m-.js +139 -0
- package/dist/block-fields-DnXkMney.d.ts +58 -0
- package/dist/block-helpers-DwE32_gT.js +272 -0
- package/dist/block-helpers-DyA5BAW4.d.ts +43 -0
- package/dist/block-hooks-BadAniNI.d.ts +117 -0
- package/dist/block-hooks-C1r-R2r0.js +130 -0
- package/dist/block-transport-DBPhgF3W.d.ts +69 -0
- package/dist/block-transport-Ds0C2mUf.js +84 -0
- package/dist/blocks/access-requests/index.d.ts +21 -15
- package/dist/blocks/access-requests/index.js +11 -8
- package/dist/blocks/agents/index.d.ts +4 -4
- package/dist/blocks/agents/index.js +6 -6
- package/dist/blocks/ai-cache/index.d.ts +3 -3
- package/dist/blocks/ai-cache/index.js +2 -2
- package/dist/blocks/ai-chat/index.d.ts +10 -7
- package/dist/blocks/ai-chat/index.js +3 -3
- package/dist/blocks/ai-chat/react/index.d.ts +18 -9
- package/dist/blocks/ai-chat/react/index.js +8 -8
- package/dist/blocks/ai-chat/react/server.d.ts +12 -3
- package/dist/blocks/ai-chat/react/server.js +12 -3
- package/dist/blocks/ai-chat/solid/index.d.ts +3 -3
- package/dist/blocks/ai-chat/solid/index.js +2 -2
- package/dist/blocks/ai-chat/svelte/index.d.ts +3 -3
- package/dist/blocks/ai-chat/svelte/index.js +2 -2
- package/dist/blocks/ai-chat/vue/index.d.ts +3 -3
- package/dist/blocks/ai-chat/vue/index.js +2 -2
- package/dist/blocks/ai-files/index.d.ts +5 -5
- package/dist/blocks/ai-files/index.js +2 -2
- package/dist/blocks/ai-providers/index.d.ts +4 -4
- package/dist/blocks/ai-providers/index.js +8 -8
- package/dist/blocks/ai-tasks/index.d.ts +3 -3
- package/dist/blocks/ai-tasks/index.js +8 -8
- package/dist/blocks/announcements/index.d.ts +4 -4
- package/dist/blocks/announcements/index.js +4 -4
- package/dist/blocks/announcements/react/index.d.ts +12 -5
- package/dist/blocks/announcements/react/index.js +7 -7
- package/dist/blocks/announcements/react/server.d.ts +4 -1
- package/dist/blocks/announcements/react/server.js +4 -1
- package/dist/blocks/announcements/solid/index.d.ts +3 -3
- package/dist/blocks/announcements/solid/index.js +2 -2
- package/dist/blocks/announcements/svelte/index.d.ts +3 -3
- package/dist/blocks/announcements/svelte/index.js +2 -2
- package/dist/blocks/announcements/vue/index.d.ts +3 -3
- package/dist/blocks/announcements/vue/index.js +2 -2
- package/dist/blocks/api-keys/index.d.ts +11 -8
- package/dist/blocks/api-keys/index.js +7 -7
- package/dist/blocks/api-keys/react/index.d.ts +11 -8
- package/dist/blocks/api-keys/react/index.js +9 -9
- package/dist/blocks/api-keys/react/server.d.ts +1 -1
- package/dist/blocks/api-keys/solid/index.d.ts +3 -3
- package/dist/blocks/api-keys/solid/index.js +2 -2
- package/dist/blocks/api-keys/svelte/index.d.ts +3 -3
- package/dist/blocks/api-keys/svelte/index.js +2 -2
- package/dist/blocks/api-keys/vue/index.d.ts +3 -3
- package/dist/blocks/api-keys/vue/index.js +2 -2
- package/dist/blocks/approvals/index.d.ts +4 -4
- package/dist/blocks/approvals/index.js +11 -8
- package/dist/blocks/attachments/index.d.ts +4 -4
- package/dist/blocks/attachments/index.js +3 -3
- package/dist/blocks/audit/index.d.ts +14 -8
- package/dist/blocks/audit/index.js +9 -9
- package/dist/blocks/audit/react/index.d.ts +12 -7
- package/dist/blocks/audit/react/index.js +12 -10
- package/dist/blocks/audit/react/server.d.ts +1 -1
- package/dist/blocks/audit/solid/index.d.ts +3 -3
- package/dist/blocks/audit/solid/index.js +2 -2
- package/dist/blocks/audit/svelte/index.d.ts +3 -3
- package/dist/blocks/audit/svelte/index.js +2 -2
- package/dist/blocks/audit/vue/index.d.ts +3 -3
- package/dist/blocks/audit/vue/index.js +2 -2
- package/dist/blocks/billing/index.d.ts +83 -51
- package/dist/blocks/billing/index.js +30 -18
- package/dist/blocks/billing/react/index.d.ts +19 -9
- package/dist/blocks/billing/react/index.js +12 -8
- package/dist/blocks/billing/react/server.d.ts +5 -2
- package/dist/blocks/billing/react/server.js +4 -1
- package/dist/blocks/billing/solid/index.d.ts +3 -3
- package/dist/blocks/billing/solid/index.js +2 -2
- package/dist/blocks/billing/svelte/index.d.ts +3 -3
- package/dist/blocks/billing/svelte/index.js +2 -2
- package/dist/blocks/billing/vue/index.d.ts +3 -3
- package/dist/blocks/billing/vue/index.js +2 -2
- package/dist/blocks/bookings/index.d.ts +11 -8
- package/dist/blocks/bookings/index.js +3 -3
- package/dist/blocks/bookings/react/index.d.ts +8 -4
- package/dist/blocks/bookings/react/index.js +12 -8
- package/dist/blocks/bookings/react/server.d.ts +4 -1
- package/dist/blocks/bookings/react/server.js +4 -1
- package/dist/blocks/bookings/solid/index.d.ts +3 -3
- package/dist/blocks/bookings/solid/index.js +2 -2
- package/dist/blocks/bookings/svelte/index.d.ts +3 -3
- package/dist/blocks/bookings/svelte/index.js +2 -2
- package/dist/blocks/bookings/vue/index.d.ts +3 -3
- package/dist/blocks/bookings/vue/index.js +2 -2
- package/dist/blocks/bulk/index.d.ts +27 -12
- package/dist/blocks/bulk/index.js +4 -4
- package/dist/blocks/calendar/index.d.ts +4 -4
- package/dist/blocks/calendar/index.js +3 -3
- package/dist/blocks/calendar/react/index.d.ts +5 -5
- package/dist/blocks/calendar/react/index.js +8 -8
- package/dist/blocks/calendar/react/server.d.ts +4 -1
- package/dist/blocks/calendar/react/server.js +4 -1
- package/dist/blocks/calendar/solid/index.d.ts +3 -3
- package/dist/blocks/calendar/solid/index.js +2 -2
- package/dist/blocks/calendar/svelte/index.d.ts +3 -3
- package/dist/blocks/calendar/svelte/index.js +2 -2
- package/dist/blocks/calendar/vue/index.d.ts +3 -3
- package/dist/blocks/calendar/vue/index.js +2 -2
- package/dist/blocks/catalog/index.d.ts +48 -27
- package/dist/blocks/catalog/index.js +16 -13
- package/dist/blocks/collections/index.d.ts +26 -21
- package/dist/blocks/collections/index.js +10 -10
- package/dist/blocks/comments/index.d.ts +11 -11
- package/dist/blocks/comments/index.js +4 -4
- package/dist/blocks/comments/react/index.d.ts +13 -6
- package/dist/blocks/comments/react/index.js +13 -9
- package/dist/blocks/comments/react/server.d.ts +1 -1
- package/dist/blocks/comments/solid/index.d.ts +3 -3
- package/dist/blocks/comments/solid/index.js +2 -2
- package/dist/blocks/comments/svelte/index.d.ts +3 -3
- package/dist/blocks/comments/svelte/index.js +2 -2
- package/dist/blocks/comments/vue/index.d.ts +3 -3
- package/dist/blocks/comments/vue/index.js +2 -2
- package/dist/blocks/connectors/index.d.ts +4 -4
- package/dist/blocks/connectors/index.js +8 -8
- package/dist/blocks/custom-fields/index.d.ts +13 -10
- package/dist/blocks/custom-fields/index.js +6 -6
- package/dist/blocks/data-lifecycle/index.d.ts +75 -51
- package/dist/blocks/data-lifecycle/index.js +17 -11
- package/dist/blocks/deals/index.d.ts +16 -16
- package/dist/blocks/deals/index.js +14 -14
- package/dist/blocks/documents/index.d.ts +4 -4
- package/dist/blocks/documents/index.js +5 -5
- package/dist/blocks/domains/index.d.ts +35 -20
- package/dist/blocks/domains/index.js +9 -9
- package/dist/blocks/drive/index.d.ts +45 -27
- package/dist/blocks/drive/index.js +17 -14
- package/dist/blocks/employees/index.d.ts +26 -21
- package/dist/blocks/employees/index.js +16 -13
- package/dist/blocks/engagements/index.d.ts +26 -17
- package/dist/blocks/engagements/index.js +9 -9
- package/dist/blocks/entitlements/index.d.ts +20 -14
- package/dist/blocks/entitlements/index.js +3 -3
- package/dist/blocks/entitlements/react/index.d.ts +10 -7
- package/dist/blocks/entitlements/react/index.js +7 -7
- package/dist/blocks/entitlements/react/server.d.ts +4 -1
- package/dist/blocks/entitlements/react/server.js +4 -1
- package/dist/blocks/entitlements/solid/index.d.ts +3 -3
- package/dist/blocks/entitlements/solid/index.js +2 -2
- package/dist/blocks/entitlements/svelte/index.d.ts +3 -3
- package/dist/blocks/entitlements/svelte/index.js +2 -2
- package/dist/blocks/entitlements/vue/index.d.ts +3 -3
- package/dist/blocks/entitlements/vue/index.js +2 -2
- package/dist/blocks/flags/index.d.ts +20 -14
- package/dist/blocks/flags/index.js +9 -9
- package/dist/blocks/forms/index.d.ts +28 -16
- package/dist/blocks/forms/index.js +12 -9
- package/dist/blocks/forms/react/index.d.ts +9 -6
- package/dist/blocks/forms/react/index.js +10 -7
- package/dist/blocks/forms/react/server.d.ts +4 -1
- package/dist/blocks/forms/react/server.js +4 -1
- package/dist/blocks/forms/solid/index.d.ts +3 -3
- package/dist/blocks/forms/solid/index.js +2 -2
- package/dist/blocks/forms/svelte/index.d.ts +3 -3
- package/dist/blocks/forms/svelte/index.js +2 -2
- package/dist/blocks/forms/vue/index.d.ts +3 -3
- package/dist/blocks/forms/vue/index.js +2 -2
- package/dist/blocks/hiring/index.d.ts +13 -13
- package/dist/blocks/hiring/index.js +9 -9
- package/dist/blocks/identities/index.d.ts +38 -20
- package/dist/blocks/identities/index.js +16 -10
- package/dist/blocks/imports/index.d.ts +30 -25
- package/dist/blocks/imports/index.js +18 -18
- package/dist/blocks/inbox/index.d.ts +5 -5
- package/dist/blocks/inbox/index.js +7 -7
- package/dist/blocks/inbox/react/index.d.ts +2 -2
- package/dist/blocks/inbox/react/index.js +7 -7
- package/dist/blocks/inbox/react/server.d.ts +10 -4
- package/dist/blocks/inbox/react/server.js +8 -2
- package/dist/blocks/inbox/solid/index.d.ts +3 -3
- package/dist/blocks/inbox/solid/index.js +2 -2
- package/dist/blocks/inbox/svelte/index.d.ts +3 -3
- package/dist/blocks/inbox/svelte/index.js +2 -2
- package/dist/blocks/inbox/vue/index.d.ts +3 -3
- package/dist/blocks/inbox/vue/index.js +2 -2
- package/dist/blocks/index.d.ts +10 -10
- package/dist/blocks/index.js +41 -39
- package/dist/blocks/inventory/index.d.ts +36 -19
- package/dist/blocks/inventory/index.js +15 -9
- package/dist/blocks/invoices/index.d.ts +13 -13
- package/dist/blocks/invoices/index.js +11 -11
- package/dist/blocks/jobs/index.d.ts +123 -86
- package/dist/blocks/jobs/index.js +58 -47
- package/dist/blocks/knowledge/index.d.ts +3 -3
- package/dist/blocks/knowledge/index.js +2 -2
- package/dist/blocks/leave/index.d.ts +30 -15
- package/dist/blocks/leave/index.js +6 -6
- package/dist/blocks/memory/index.d.ts +4 -4
- package/dist/blocks/memory/index.js +7 -7
- package/dist/blocks/metrics/index.d.ts +36 -30
- package/dist/blocks/metrics/index.js +19 -19
- package/dist/blocks/mfa/index.d.ts +2 -2
- package/dist/blocks/mfa/index.js +1 -1
- package/dist/blocks/mfa/react/index.d.ts +7 -7
- package/dist/blocks/mfa/react/index.js +9 -9
- package/dist/blocks/mfa/react/server.d.ts +1 -1
- package/dist/blocks/mfa/react/server.js +1 -1
- package/dist/blocks/mfa/solid/index.d.ts +3 -3
- package/dist/blocks/mfa/solid/index.js +2 -2
- package/dist/blocks/mfa/svelte/index.d.ts +3 -3
- package/dist/blocks/mfa/svelte/index.js +2 -2
- package/dist/blocks/mfa/vue/index.d.ts +3 -3
- package/dist/blocks/mfa/vue/index.js +2 -2
- package/dist/blocks/notifications/index.d.ts +132 -103
- package/dist/blocks/notifications/index.js +61 -46
- package/dist/blocks/notifications/react/index.d.ts +3 -3
- package/dist/blocks/notifications/react/index.js +5 -5
- package/dist/blocks/notifications/react/server.d.ts +5 -2
- package/dist/blocks/notifications/react/server.js +4 -1
- package/dist/blocks/notifications/solid/index.d.ts +3 -3
- package/dist/blocks/notifications/solid/index.js +2 -2
- package/dist/blocks/notifications/svelte/index.d.ts +3 -3
- package/dist/blocks/notifications/svelte/index.js +2 -2
- package/dist/blocks/notifications/vue/index.d.ts +3 -3
- package/dist/blocks/notifications/vue/index.js +2 -2
- package/dist/blocks/number-sequences/index.d.ts +15 -12
- package/dist/blocks/number-sequences/index.js +7 -4
- package/dist/blocks/oauth-server/index.d.ts +42 -21
- package/dist/blocks/oauth-server/index.js +16 -13
- package/dist/blocks/onboarding/index.d.ts +3 -3
- package/dist/blocks/onboarding/index.js +3 -3
- package/dist/blocks/onboarding/react/index.d.ts +10 -5
- package/dist/blocks/onboarding/react/index.js +10 -8
- package/dist/blocks/onboarding/react/server.d.ts +5 -2
- package/dist/blocks/onboarding/react/server.js +4 -1
- package/dist/blocks/onboarding/solid/index.d.ts +3 -3
- package/dist/blocks/onboarding/solid/index.js +2 -2
- package/dist/blocks/onboarding/svelte/index.d.ts +3 -3
- package/dist/blocks/onboarding/svelte/index.js +2 -2
- package/dist/blocks/onboarding/vue/index.d.ts +3 -3
- package/dist/blocks/onboarding/vue/index.js +2 -2
- package/dist/blocks/orders/index.d.ts +57 -30
- package/dist/blocks/orders/index.js +26 -17
- package/dist/blocks/organizations/index.d.ts +5 -5
- package/dist/blocks/organizations/index.js +5 -27
- package/dist/blocks/organizations/react/index.d.ts +40 -21
- package/dist/blocks/organizations/react/index.js +5 -5
- package/dist/blocks/organizations/react/server.d.ts +13 -4
- package/dist/blocks/organizations/react/server.js +12 -3
- package/dist/blocks/organizations/solid/index.d.ts +3 -3
- package/dist/blocks/organizations/solid/index.js +2 -2
- package/dist/blocks/organizations/svelte/index.d.ts +3 -3
- package/dist/blocks/organizations/svelte/index.js +2 -2
- package/dist/blocks/organizations/vue/index.d.ts +3 -3
- package/dist/blocks/organizations/vue/index.js +2 -2
- package/dist/blocks/outbox/index.d.ts +4 -4
- package/dist/blocks/outbox/index.js +20 -16
- package/dist/blocks/parties/index.d.ts +29 -20
- package/dist/blocks/parties/index.js +12 -9
- package/dist/blocks/pipelines/index.d.ts +26 -17
- package/dist/blocks/pipelines/index.js +11 -11
- package/dist/blocks/profiles/index.d.ts +23 -14
- package/dist/blocks/profiles/index.js +5 -5
- package/dist/blocks/promotions/index.d.ts +34 -16
- package/dist/blocks/promotions/index.js +12 -9
- package/dist/blocks/push/index.d.ts +43 -25
- package/dist/blocks/push/index.js +16 -16
- package/dist/blocks/quotes/index.d.ts +15 -12
- package/dist/blocks/quotes/index.js +9 -9
- package/dist/blocks/rank/index.d.ts +12 -12
- package/dist/blocks/rank/index.js +3 -3
- package/dist/blocks/reactions/index.d.ts +4 -4
- package/dist/blocks/reactions/index.js +3 -3
- package/dist/blocks/reactions/react/index.d.ts +14 -4
- package/dist/blocks/reactions/react/index.js +9 -5
- package/dist/blocks/reactions/react/server.d.ts +4 -1
- package/dist/blocks/reactions/react/server.js +4 -1
- package/dist/blocks/reactions/solid/index.d.ts +3 -3
- package/dist/blocks/reactions/solid/index.js +2 -2
- package/dist/blocks/reactions/svelte/index.d.ts +3 -3
- package/dist/blocks/reactions/svelte/index.js +2 -2
- package/dist/blocks/reactions/vue/index.d.ts +3 -3
- package/dist/blocks/reactions/vue/index.js +2 -2
- package/dist/blocks/relations/index.d.ts +40 -23
- package/dist/blocks/relations/index.js +8 -9
- package/dist/blocks/reminders/index.d.ts +35 -26
- package/dist/blocks/reminders/index.js +20 -14
- package/dist/blocks/reviews/index.d.ts +32 -17
- package/dist/blocks/reviews/index.js +6 -6
- package/dist/blocks/rules/index.d.ts +26 -24
- package/dist/blocks/rules/index.js +10 -11
- package/dist/blocks/rules/react/index.d.ts +9 -5
- package/dist/blocks/rules/react/index.js +12 -8
- package/dist/blocks/rules/solid/index.d.ts +3 -3
- package/dist/blocks/rules/solid/index.js +2 -2
- package/dist/blocks/rules/svelte/index.d.ts +3 -3
- package/dist/blocks/rules/svelte/index.js +2 -2
- package/dist/blocks/rules/vue/index.d.ts +3 -3
- package/dist/blocks/rules/vue/index.js +2 -2
- package/dist/blocks/saved-views/index.d.ts +3 -3
- package/dist/blocks/saved-views/index.js +2 -2
- package/dist/blocks/saved-views/react/index.d.ts +14 -8
- package/dist/blocks/saved-views/react/index.js +11 -8
- package/dist/blocks/saved-views/react/server.d.ts +5 -2
- package/dist/blocks/saved-views/react/server.js +4 -1
- package/dist/blocks/saved-views/solid/index.d.ts +3 -3
- package/dist/blocks/saved-views/solid/index.js +2 -2
- package/dist/blocks/saved-views/svelte/index.d.ts +3 -3
- package/dist/blocks/saved-views/svelte/index.js +2 -2
- package/dist/blocks/saved-views/vue/index.d.ts +3 -3
- package/dist/blocks/saved-views/vue/index.js +2 -2
- package/dist/blocks/search/index.d.ts +12 -9
- package/dist/blocks/search/index.js +9 -9
- package/dist/blocks/search/react/index.d.ts +8 -5
- package/dist/blocks/search/react/index.js +6 -6
- package/dist/blocks/search/react/server.d.ts +5 -2
- package/dist/blocks/search/react/server.js +4 -1
- package/dist/blocks/search/solid/index.d.ts +3 -3
- package/dist/blocks/search/solid/index.js +2 -2
- package/dist/blocks/search/svelte/index.d.ts +3 -3
- package/dist/blocks/search/svelte/index.js +2 -2
- package/dist/blocks/search/vue/index.d.ts +3 -3
- package/dist/blocks/search/vue/index.js +2 -2
- package/dist/blocks/service-principals/index.d.ts +24 -18
- package/dist/blocks/service-principals/index.js +11 -8
- package/dist/blocks/sessions/index.d.ts +2 -2
- package/dist/blocks/sessions/index.js +1 -1
- package/dist/blocks/sessions/react/index.d.ts +10 -5
- package/dist/blocks/sessions/react/index.js +8 -6
- package/dist/blocks/sessions/react/server.d.ts +9 -3
- package/dist/blocks/sessions/react/server.js +8 -2
- package/dist/blocks/sessions/solid/index.d.ts +3 -3
- package/dist/blocks/sessions/solid/index.js +2 -2
- package/dist/blocks/sessions/svelte/index.d.ts +3 -3
- package/dist/blocks/sessions/svelte/index.js +2 -2
- package/dist/blocks/sessions/vue/index.d.ts +3 -3
- package/dist/blocks/sessions/vue/index.js +2 -2
- package/dist/blocks/settings/index.d.ts +6 -5
- package/dist/blocks/settings/index.js +6 -5
- package/dist/blocks/settings/react/index.d.ts +13 -7
- package/dist/blocks/settings/react/index.js +5 -5
- package/dist/blocks/settings/react/server.d.ts +5 -2
- package/dist/blocks/settings/react/server.js +4 -1
- package/dist/blocks/settings/solid/index.d.ts +3 -3
- package/dist/blocks/settings/solid/index.js +2 -2
- package/dist/blocks/settings/svelte/index.d.ts +3 -3
- package/dist/blocks/settings/svelte/index.js +2 -2
- package/dist/blocks/settings/vue/index.d.ts +3 -3
- package/dist/blocks/settings/vue/index.js +2 -2
- package/dist/blocks/share-links/index.d.ts +19 -13
- package/dist/blocks/share-links/index.js +4 -4
- package/dist/blocks/shared-signals/index.d.ts +82 -37
- package/dist/blocks/shared-signals/index.js +24 -18
- package/dist/blocks/signing-keys/index.d.ts +5 -5
- package/dist/blocks/signing-keys/index.js +15 -15
- package/dist/blocks/sla/index.d.ts +13 -13
- package/dist/blocks/sla/index.js +8 -8
- package/dist/blocks/sso/index.d.ts +35 -30
- package/dist/blocks/sso/index.js +31 -17
- package/dist/blocks/state-machine/index.d.ts +22 -13
- package/dist/blocks/state-machine/index.js +3 -3
- package/dist/blocks/tags/index.d.ts +3 -3
- package/dist/blocks/tags/index.js +3 -3
- package/dist/blocks/tags/react/index.d.ts +15 -7
- package/dist/blocks/tags/react/index.js +15 -10
- package/dist/blocks/tags/react/server.d.ts +1 -1
- package/dist/blocks/tags/solid/index.d.ts +3 -3
- package/dist/blocks/tags/solid/index.js +2 -2
- package/dist/blocks/tags/svelte/index.d.ts +3 -3
- package/dist/blocks/tags/svelte/index.js +2 -2
- package/dist/blocks/tags/vue/index.d.ts +3 -3
- package/dist/blocks/tags/vue/index.js +2 -2
- package/dist/blocks/targets/index.d.ts +13 -13
- package/dist/blocks/targets/index.js +7 -7
- package/dist/blocks/teams/index.d.ts +9 -9
- package/dist/blocks/teams/index.js +4 -4
- package/dist/blocks/templates/index.d.ts +67 -51
- package/dist/blocks/templates/index.js +22 -23
- package/dist/blocks/time-tracking/index.d.ts +32 -22
- package/dist/blocks/time-tracking/index.js +19 -16
- package/dist/blocks/trash/index.d.ts +13 -11
- package/dist/blocks/trash/index.js +5 -5
- package/dist/blocks/undo/index.d.ts +4 -4
- package/dist/blocks/undo/index.js +3 -3
- package/dist/blocks/undo/react/index.d.ts +3 -3
- package/dist/blocks/undo/react/index.js +4 -4
- package/dist/blocks/undo/react/server.d.ts +5 -2
- package/dist/blocks/undo/react/server.js +4 -1
- package/dist/blocks/undo/solid/index.d.ts +3 -3
- package/dist/blocks/undo/solid/index.js +2 -2
- package/dist/blocks/undo/svelte/index.d.ts +3 -3
- package/dist/blocks/undo/svelte/index.js +2 -2
- package/dist/blocks/undo/vue/index.d.ts +3 -3
- package/dist/blocks/undo/vue/index.js +2 -2
- package/dist/blocks/usage/index.d.ts +5 -5
- package/dist/blocks/usage/index.js +3 -3
- package/dist/blocks/usage/react/index.d.ts +12 -6
- package/dist/blocks/usage/react/index.js +8 -8
- package/dist/blocks/usage/react/server.d.ts +1 -1
- package/dist/blocks/usage/solid/index.d.ts +3 -3
- package/dist/blocks/usage/solid/index.js +2 -2
- package/dist/blocks/usage/svelte/index.d.ts +3 -3
- package/dist/blocks/usage/svelte/index.js +2 -2
- package/dist/blocks/usage/vue/index.d.ts +3 -3
- package/dist/blocks/usage/vue/index.js +2 -2
- package/dist/blocks/vercel-marketplace/index.d.ts +252 -17
- package/dist/blocks/vercel-marketplace/index.js +489 -56
- package/dist/blocks/versions/index.d.ts +24 -21
- package/dist/blocks/versions/index.js +14 -16
- package/dist/blocks/waitlist/index.d.ts +31 -18
- package/dist/blocks/waitlist/index.js +10 -7
- package/dist/blocks/webhooks/index.d.ts +126 -89
- package/dist/blocks/webhooks/index.js +71 -60
- package/dist/blocks/work-items/index.d.ts +18 -16
- package/dist/blocks/work-items/index.js +11 -12
- package/dist/blocks/workflow-builder/index.d.ts +15 -13
- package/dist/blocks/workflow-builder/index.js +10 -7
- package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
- package/dist/blocks/workflow-builder/react/index.js +8 -8
- package/dist/blocks/workflow-builder/react/server.d.ts +8 -2
- package/dist/blocks/workflow-builder/react/server.js +8 -2
- package/dist/blocks/workflow-builder/solid/index.d.ts +3 -3
- package/dist/blocks/workflow-builder/solid/index.js +2 -2
- package/dist/blocks/workflow-builder/svelte/index.d.ts +3 -3
- package/dist/blocks/workflow-builder/svelte/index.js +2 -2
- package/dist/blocks/workflow-builder/vue/index.d.ts +3 -3
- package/dist/blocks/workflow-builder/vue/index.js +2 -2
- package/dist/blocks/workflows/index.d.ts +5 -5
- package/dist/blocks/workflows/index.js +4 -4
- package/dist/blocks/workflows/react/index.d.ts +13 -6
- package/dist/blocks/workflows/react/index.js +7 -7
- package/dist/blocks/workflows/react/server.d.ts +8 -2
- package/dist/blocks/workflows/react/server.js +8 -2
- package/dist/blocks/workflows/solid/index.d.ts +3 -3
- package/dist/blocks/workflows/solid/index.js +2 -2
- package/dist/blocks/workflows/svelte/index.d.ts +3 -3
- package/dist/blocks/workflows/svelte/index.js +2 -2
- package/dist/blocks/workflows/vue/index.d.ts +3 -3
- package/dist/blocks/workflows/vue/index.js +2 -2
- package/dist/blocks-CR3vCYhj.js +88 -0
- package/dist/bookings-DJflcGqs.js +184 -0
- package/dist/bucket-DBay-ICp.d.ts +667 -0
- package/dist/build-DxzJf79X.js +1839 -0
- package/dist/build-UqJeGtsH.js +703 -0
- package/dist/calendar-DvbYFkrh.js +801 -0
- package/dist/channel-BjvGO39m.d.ts +77 -0
- package/dist/channels-CfcFPuo_.js +114 -0
- package/dist/chat-sdk/index.d.ts +154 -78
- package/dist/chat-sdk/index.js +57 -39
- package/dist/chat-sdk/react/index.d.ts +2 -2
- package/dist/chat-sdk/react/server.d.ts +2 -2
- package/dist/claims-Bp9My7XP.js +88 -0
- package/dist/claims-T8TWZ53E.js +63 -0
- package/dist/cli/add-BRjL7LuG.js +1 -0
- package/dist/cli/add-Cf0uxfZ2.js +672 -0
- package/dist/cli/add-DPfdDRq7.js +75 -0
- package/dist/cli/adopt-B28iUeGg.js +1 -0
- package/dist/cli/adopt-C0VugVMu.js +421 -0
- package/dist/cli/agent-CbuPvI2x.js +185 -0
- package/dist/cli/apply-BlxtZPxe.js +329 -0
- package/dist/cli/bin.js +3 -3
- package/dist/cli/blocks-CHQ7K8Yz.js +1 -0
- package/dist/cli/blocks-D3tsq-mR.js +124 -0
- package/dist/cli/cache-DdgzhoaL.js +516 -0
- package/dist/cli/catalog-DwTUdJaQ.js +188 -0
- package/dist/cli/codemod-Dz4R-tVY.js +1127 -0
- package/dist/cli/command-33pu13LT.js +963 -0
- package/dist/cli/completion-6M6Hr8TL.js +211 -0
- package/dist/cli/completion-Bqu8yq0q.js +1 -0
- package/dist/cli/completion-Ddr3yqd3.js +30 -0
- package/dist/cli/config-2qlSTi2o.js +1503 -0
- package/dist/cli/config-B31tIvAl.js +42 -0
- package/dist/cli/config-DVksOjSr.js +1 -0
- package/dist/cli/config-edit-D46H0UHp.js +613 -0
- package/dist/cli/db-CQCLx7cx.js +78 -0
- package/dist/cli/db-D8iId4R8.js +473 -0
- package/dist/cli/design-edit-B2aBiarJ.js +205 -0
- package/dist/cli/detect-D9JaAX20.js +84 -0
- package/dist/cli/doctor-pIek4vIO.js +3897 -0
- package/dist/cli/emit-CJKf47Bi.js +1078 -0
- package/dist/cli/env-BrLZfqsL.js +143 -0
- package/dist/cli/env-C-Bl6Awn.js +1 -0
- package/dist/cli/env-DMgjB_4y.js +1114 -0
- package/dist/cli/env-cbCEa79W.js +1 -0
- package/dist/cli/errors-BTe6A15O.js +98 -0
- package/dist/cli/exec--Q1ZEWUW.js +463 -0
- package/dist/cli/files-C5JfVnj5.js +972 -0
- package/dist/cli/fresh-import-DzgsGHkX.js +40 -0
- package/dist/cli/gen-DquZzY5a.js +307 -0
- package/dist/cli/index.d.ts +239 -175
- package/dist/cli/index.js +16 -16
- package/dist/cli/init-Dd-UdrE0.js +397 -0
- package/dist/cli/introspect-IMQCji2l.js +51 -0
- package/dist/cli/io-DH1kcmmP.js +37 -0
- package/dist/cli/keys-iJs_1WT8.js +106 -0
- package/dist/cli/live-BfAO5YRX.js +344 -0
- package/dist/cli/mcp-D8Az0FNn.js +240 -0
- package/dist/cli/metadata-CTStQPfV.js +144 -0
- package/dist/cli/migration-safety-Dg1lxomi.js +305 -0
- package/dist/cli/module-migration-CbX-jRhV.js +606 -0
- package/dist/cli/moved-CdNtCf4t.js +161 -0
- package/dist/cli/parse-CRZLku1b.js +182 -0
- package/dist/cli/preset-DEvwDc7U.js +129 -0
- package/dist/cli/prompts-jqnr94b9.js +1140 -0
- package/dist/cli/redact-KGAk2Ul9.js +38 -0
- package/dist/cli/run-BXhJoghZ.js +1602 -0
- package/dist/cli/run-DdxNRTr0.js +63 -0
- package/dist/cli/run-dTu_PD4I.js +711 -0
- package/dist/cli/scaffold-Bx3bcy2R.js +901 -0
- package/dist/cli/scaffold-mbNAQE19.js +1 -0
- package/dist/cli/seed-CLseQdXQ.js +188 -0
- package/dist/cli/seed-DSHSUsYy.js +1 -0
- package/dist/cli/shared-CAdIkTR7.js +151 -0
- package/dist/cli/skills-Bz4INB8f.js +121 -0
- package/dist/cli/snapshot-GfdB9Cjl.js +350 -0
- package/dist/cli/source-args-Dy3j1-H-.js +59 -0
- package/dist/cli/spec-BfEK0_04.js +1 -0
- package/dist/cli/spec-DXTdodlO.js +7534 -0
- package/dist/cli/sql-BUhpAvrW.js +2 -0
- package/dist/cli/sql-CLbWk3Yb.js +332 -0
- package/dist/cli/stack-_F_JhllX.js +135 -0
- package/dist/cli/stack-env-6hS-WEmh.js +93 -0
- package/dist/cli/stack-status-B_Ipd_-z.js +46 -0
- package/dist/cli/stacks-BYlQ96WS.js +232 -0
- package/dist/cli/style-Bm2X5JrN.js +35 -0
- package/dist/cli/supabase-toml-CncmQbO0.js +1164 -0
- package/dist/cli/sync-BBzNO-v9.js +91 -0
- package/dist/cli/topics-BpdnYmWb.js +30 -0
- package/dist/cli/typegen-F9GEjpvD.js +502 -0
- package/dist/cli/validate-B3lF3-jB.js +7522 -0
- package/dist/cli/version-DiwcIKOL.js +4 -0
- package/dist/cli/write-DZKk5rSF.js +201 -0
- package/dist/client/index.d.ts +6 -6
- package/dist/client/index.js +16 -11
- package/dist/client/native/index.d.ts +87 -53
- package/dist/client/native/index.js +65 -43
- package/dist/client--tyFmxDT.js +52 -0
- package/dist/client-0qFNkNhT.js +1060 -0
- package/dist/client-2z1aHG57.d.ts +475 -0
- package/dist/client-5IVhjmtl.d.ts +74 -0
- package/dist/client-B3WBilR2.d.ts +69 -0
- package/dist/client-B4JPQgf-.d.ts +165 -0
- package/dist/client-BAYh7P2h.js +211 -0
- package/dist/client-BKGVUgo7.js +380 -0
- package/dist/client-BNaOcfeH.js +58 -0
- package/dist/client-BOuaQA0h.js +173 -0
- package/dist/client-BP-8vn9G.d.ts +37 -0
- package/dist/client-BU5Yd0yO.d.ts +103 -0
- package/dist/client-Bb_Pj9wL.js +137 -0
- package/dist/client-BkH-Vh3s.d.ts +112 -0
- package/dist/client-BsfsRHae.d.ts +136 -0
- package/dist/client-Bta7yl1C.d.ts +451 -0
- package/dist/client-BwKXlohx.js +121 -0
- package/dist/client-C1zOmnS8.js +89 -0
- package/dist/client-CMqO1gCn.d.ts +64 -0
- package/dist/client-CPirbPPi.js +85 -0
- package/dist/client-CQPB-VJx.d.ts +110 -0
- package/dist/client-CXbP_p02.d.ts +156 -0
- package/dist/client-C_S9avzV.d.ts +420 -0
- package/dist/client-Cb1g45Hc.js +99 -0
- package/dist/client-CebKlRU7.js +157 -0
- package/dist/client-Ch-dDfTB.js +437 -0
- package/dist/client-CuFD4o56.d.ts +111 -0
- package/dist/client-D2y_CfhU.d.ts +137 -0
- package/dist/client-DAcVF-YJ.js +134 -0
- package/dist/client-DCuE1rFm.js +441 -0
- package/dist/client-DD02cst6.d.ts +245 -0
- package/dist/client-DD3EcytK.js +65 -0
- package/dist/client-DEE57s9m.d.ts +132 -0
- package/dist/client-DScMvaty.js +38 -0
- package/dist/client-DVRFa59w.d.ts +309 -0
- package/dist/client-DXb1Nmr3.js +111 -0
- package/dist/client-DkI0oyR7.js +76 -0
- package/dist/client-DkQcRKhm.js +67 -0
- package/dist/client-DoXBX3vS.d.ts +116 -0
- package/dist/client-Dsuy9wfA.d.ts +59 -0
- package/dist/client-EQvEzUQg.d.ts +276 -0
- package/dist/client-G7NGXZKe.d.ts +43 -0
- package/dist/client-OhTiAol1.js +213 -0
- package/dist/client-Wt19DaEb.js +291 -0
- package/dist/client-Y-kaHabc.d.ts +46 -0
- package/dist/client-YASsOslj.js +321 -0
- package/dist/client-Y_HnZGF4.js +51 -0
- package/dist/client-_mL998Gl.js +129 -0
- package/dist/client-i_u1e0Kf.d.ts +144 -0
- package/dist/client-kRvHKAKS.js +60 -0
- package/dist/client-nieeGXdg.d.ts +178 -0
- package/dist/client-pxXoQOdC.js +40 -0
- package/dist/client-ysVOUgxM.d.ts +54 -0
- package/dist/clone-CkG0-hlI.js +33 -0
- package/dist/cloud-event-CidL9jiw.d.ts +64 -0
- package/dist/cloud-event-XsM53POL.js +63 -0
- package/dist/codecs-Du_zE1xu.js +358 -0
- package/dist/codecs-WHpM3Byy.d.ts +221 -0
- package/dist/codegen-DGtOsqz9.d.ts +1809 -0
- package/dist/comments-Ceqo9bwE.js +230 -0
- package/dist/commerce/index.d.ts +38 -33
- package/dist/commerce/index.js +38 -28
- package/dist/compiler-DCotQWcs.d.ts +14 -0
- package/dist/compose-VBQL7zIO.js +53 -0
- package/dist/composite-BgBzdYP-.d.ts +82 -0
- package/dist/composite-BgSdL5tk.js +130 -0
- package/dist/config/index.d.ts +6 -6
- package/dist/config/index.js +7 -7
- package/dist/config-V6HMvce5.js +3930 -0
- package/dist/config-xUf0dj0t.js +562 -0
- package/dist/connector-CKcTPJRV.d.ts +107 -0
- package/dist/connectors-CgWuPQks.d.ts +147 -0
- package/dist/context-CCz6ZgyI.js +19 -0
- package/dist/context-CMxVnPMY.js +9 -0
- package/dist/context-CrojkPNC.js +41 -0
- package/dist/context-DvBEhsXX.d.ts +403 -0
- package/dist/controller-BEliOBOv.js +79 -0
- package/dist/controller-lWRcKqCl.d.ts +52 -0
- package/dist/create/index.d.ts +296 -175
- package/dist/create/index.js +430 -297
- package/dist/create/lite/index.d.ts +19 -12
- package/dist/create/lite/index.js +10 -9
- package/dist/create/oauth/index.d.ts +2 -0
- package/dist/create/oauth/index.js +101 -0
- package/dist/create/supabase/index.d.ts +13 -34
- package/dist/create/supabase/index.js +16 -84
- package/dist/credentials/index.d.ts +12 -12
- package/dist/credentials/index.js +13 -13
- package/dist/cron-CI1kP-t5.js +148 -0
- package/dist/cron-route-BbVtwXZz.js +24 -0
- package/dist/csv-2rXGPNtP.js +89 -0
- package/dist/csv-DhHQS2x_.d.ts +28 -0
- package/dist/define-D0LSXmUP.d.ts +1117 -0
- package/dist/define-DwZ_LQVO.js +2011 -0
- package/dist/define-block-MyM4lH42.d.ts +281 -0
- package/dist/delegation-DeAJehLk.js +146 -0
- package/dist/delivery-Bm0jxmzI.js +29 -0
- package/dist/delivery-n6lZGuGx.d.ts +71 -0
- package/dist/documents-BijGGIjr.d.ts +99 -0
- package/dist/edge/index.d.ts +65 -38
- package/dist/edge/index.js +20 -17
- package/dist/elysia/index.d.ts +16 -14
- package/dist/elysia/index.js +11 -9
- package/dist/email-tt2QqiSc.d.ts +42 -0
- package/dist/embeddings-DRGIc8ti.js +128 -0
- package/dist/embeddings-Deusi99x.d.ts +78 -0
- package/dist/ended-D_Twxl8v.d.ts +76 -0
- package/dist/entitlements-CMGsO4gL.d.ts +54 -0
- package/dist/entitlements-_tw0V3BY.js +45 -0
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.js +16 -4
- package/dist/envelope-BDShQQ7-.js +90 -0
- package/dist/errors-Cq72lONT.js +44 -0
- package/dist/errors-D7u24ZJH.js +321 -0
- package/dist/escape-like-DuKupGUV.d.ts +15 -0
- package/dist/eve/index.d.ts +40 -22
- package/dist/eve/index.js +34 -25
- package/dist/eve-dWNqpd9Z.d.ts +157 -0
- package/dist/event-calendar-E6AI-dgg.d.ts +217 -0
- package/dist/event-map-CtPFhcOp.js +19 -0
- package/dist/events/index.d.ts +3 -3
- package/dist/events/index.js +10 -10
- package/dist/events-D6IZ5CE8.js +82 -0
- package/dist/events-DhGgwqQA.d.ts +842 -0
- package/dist/events-SqJLbb8q.js +24 -0
- package/dist/executor-C29668fO.d.ts +281 -0
- package/dist/executor-C5uyGttm.js +207 -0
- package/dist/executor-Cy1nk4MZ.d.ts +104 -0
- package/dist/executor-DK2F9Zis.js +746 -0
- package/dist/executor-DXfgDsKd.d.ts +37 -0
- package/dist/executor-D_viYkhf.d.ts +179 -0
- package/dist/executor-QtVn0axs.js +147 -0
- package/dist/expo/index.d.ts +37 -26
- package/dist/expo/index.js +17 -14
- package/dist/expo-sqlite/index.d.ts +20 -17
- package/dist/expo-sqlite/index.js +19 -13
- package/dist/field-errors-CKEqR38q.d.ts +119 -0
- package/dist/field-formats-BX2FqLle.d.ts +39 -0
- package/dist/field-formats-C6QKA3UR.js +102 -0
- package/dist/filter-evaluate-CRDXv0Dl.js +217 -0
- package/dist/filter-evaluate-CSWhzYWN.d.ts +37 -0
- package/dist/filter-query-C7qgRYYv.d.ts +133 -0
- package/dist/filter-query-D4ZSwbcJ.js +524 -0
- package/dist/flags-C--SBMT9.js +279 -0
- package/dist/flags-CJFDNAvL.d.ts +246 -0
- package/dist/flags-sdk/index.d.ts +13 -13
- package/dist/flags-sdk/index.js +18 -15
- package/dist/form-definition-BjeElHsB.js +311 -0
- package/dist/form-definition-DcVnFzl4.d.ts +95 -0
- package/dist/format-AYHceC2m.d.ts +79 -0
- package/dist/framework-BpEnOfAo.js +57 -0
- package/dist/framework-CMeAuJts.d.ts +41 -0
- package/dist/function-contract-4vfi93Y5.d.ts +27 -0
- package/dist/function-contract-pEmsaUIf.js +8 -0
- package/dist/gateway-Dar9C0uP.d.ts +115 -0
- package/dist/gateway-options-BlVCqgb8.d.ts +29 -0
- package/dist/gateway-options-Cl74B7k6.js +27 -0
- package/dist/graph-B4eubUQG.js +365 -0
- package/dist/h3/index.d.ts +19 -12
- package/dist/h3/index.js +15 -11
- package/dist/h3/v1/index.d.ts +34 -24
- package/dist/h3/v1/index.js +23 -19
- package/dist/hmac-B3CTTlfv.js +23 -0
- package/dist/hono/index.d.ts +54 -36
- package/dist/hono/index.js +18 -18
- package/dist/http-AkLjqOuB.js +28 -0
- package/dist/http-BjjojWg3.js +40 -0
- package/dist/http-DzbloBR-.js +141 -0
- package/dist/image-url-_d7xYsXK.js +84 -0
- package/dist/impersonation-DFfDVJHk.js +62 -0
- package/dist/impersonation-YTa9dZUv.d.ts +28 -0
- package/dist/inbox-CLsIrPXs.d.ts +417 -0
- package/dist/index-B5XcM3VY.d.ts +230 -0
- package/dist/index-B5dVVZtW.d.ts +142 -0
- package/dist/index-Brm8I8iZ.d.ts +232 -0
- package/dist/index-C7-2ZS9f.d.ts +127 -0
- package/dist/index-CE0p3st5.d.ts +227 -0
- package/dist/index-CcpGT2GI.d.ts +151 -0
- package/dist/index-CrAKHNJF.d.ts +287 -0
- package/dist/index-DLjs7j_z.d.ts +61 -0
- package/dist/index-DbyDZZlc.d.ts +53 -0
- package/dist/index-DdZcWH6q.d.ts +820 -0
- package/dist/index-Dh5ZFCtu.d.ts +61 -0
- package/dist/index-NRMMhhEi.d.ts +104 -0
- package/dist/index-PADpaDku.d.ts +447 -0
- package/dist/index-X2fkPUwb.d.ts +51 -0
- package/dist/index-eoAU_QaY.d.ts +357 -0
- package/dist/index.d.ts +34 -23
- package/dist/index.js +22 -18
- package/dist/invalidate-BLiBFbLy.d.ts +19 -0
- package/dist/iso4217-B-durg_y.js +176 -0
- package/dist/json-DaByVJpw.js +22 -0
- package/dist/json-schema-Bu4YCRbZ.js +551 -0
- package/dist/jwks-cache-DbgNmSgV.js +49 -0
- package/dist/jws-D0toeQlA.d.ts +66 -0
- package/dist/jws-DOgHJKHb.js +205 -0
- package/dist/kit-BeXTrlZn.js +127 -0
- package/dist/kit-LeQGMzLH.d.ts +94 -0
- package/dist/knowledge-Bx_qehoZ.js +272 -0
- package/dist/knowledge-CYdNJasZ.d.ts +202 -0
- package/dist/lint/index.d.ts +6 -6
- package/dist/lint/index.js +9 -6
- package/dist/list/index.d.ts +3 -3
- package/dist/list/index.js +3 -3
- package/dist/list-query-CuS1w2Af.js +559 -0
- package/dist/list-query-Dx5cAqG6.d.ts +223 -0
- package/dist/live-CZtRMh62.js +246 -0
- package/dist/management-wtecfrNf.d.ts +57 -0
- package/dist/mcp/index.d.ts +70 -42
- package/dist/mcp/index.js +53 -45
- package/dist/mcp/sdk/index.d.ts +37 -25
- package/dist/mcp/sdk/index.js +16 -13
- package/dist/message-Bg4TKA12.d.ts +99 -0
- package/dist/messages-Bd5-5ZjP.js +492 -0
- package/dist/metric-definition-EAYI1r2n.d.ts +69 -0
- package/dist/mfa-Dt8AdWht.d.ts +36 -0
- package/dist/model-Btl8X9cs.d.ts +326 -0
- package/dist/model-messages-BWyXXA4s.js +206 -0
- package/dist/model-messages-DrR4lZ_c.d.ts +34 -0
- package/dist/money-BNRdJQzA.d.ts +91 -0
- package/dist/money-BZl985O-.js +197 -0
- package/dist/money-codec-BdnIiFFX.js +41 -0
- package/dist/nestjs/index.d.ts +32 -17
- package/dist/nestjs/index.js +27 -18
- package/dist/next/client/index.d.ts +8 -7
- package/dist/next/client/index.js +8 -7
- package/dist/next/image/index.d.ts +8 -6
- package/dist/next/image/index.js +7 -5
- package/dist/next/index.d.ts +142 -110
- package/dist/next/index.js +57 -42
- package/dist/node/index.d.ts +3 -3
- package/dist/node/index.js +33 -23
- package/dist/node-headers-BPtMP4_V.d.ts +27 -0
- package/dist/nuxt/index.d.ts +7 -6
- package/dist/nuxt/index.js +7 -6
- package/dist/onboarding-DjXV4rgO.js +68 -0
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +10 -7
- package/dist/operations-Cc27HkTG.d.ts +6 -0
- package/dist/operations-DVHRHvv6.js +29 -0
- package/dist/optional-peer-C1NbBRJm.js +32 -0
- package/dist/options-CIf3xni7.d.ts +52 -0
- package/dist/organizations-R98kfFwF.js +401 -0
- package/dist/orpc/index.d.ts +50 -37
- package/dist/orpc/index.js +22 -18
- package/dist/otel/index.d.ts +19 -16
- package/dist/otel/index.js +22 -19
- package/dist/outbox-Bsk-HJnq.d.ts +199 -0
- package/dist/overlay/index.d.ts +71 -55
- package/dist/overlay/index.js +48 -41
- package/dist/payments-6uuergov.js +16 -0
- package/dist/pg-error-B5QLDcbG.js +26 -0
- package/dist/plugin-D9bYbYli.js +45 -0
- package/dist/plugin-DouW0Kvg.d.ts +203 -0
- package/dist/plugins/actor/index.d.ts +9 -6
- package/dist/plugins/actor/index.js +6 -6
- package/dist/plugins/rules/index.d.ts +15 -15
- package/dist/plugins/rules/index.js +12 -6
- package/dist/plugins/soft-delete/index.d.ts +7 -7
- package/dist/plugins/soft-delete/index.js +7 -7
- package/dist/plugins/tenant/index.d.ts +16 -11
- package/dist/plugins/tenant/index.js +8 -9
- package/dist/plugins/timestamps/index.d.ts +3 -3
- package/dist/plugins/timestamps/index.js +4 -4
- package/dist/plugins/validation/index.d.ts +4 -4
- package/dist/plugins/validation/index.js +4 -4
- package/dist/pool-Bu8zXGzI.d.ts +123 -0
- package/dist/pool-errors-DOZ3oDeS.js +27 -0
- package/dist/ports-BltcWsHf.d.ts +312 -0
- package/dist/ports-CM3aG3zn.js +137 -0
- package/dist/ports-n3ZWSS_I.d.ts +89 -0
- package/dist/postgres/index.d.ts +15 -15
- package/dist/postgres/index.js +14 -8
- package/dist/postgrest-DGjrW4sK.d.ts +53 -0
- package/dist/powersync/index.d.ts +12 -13
- package/dist/powersync/index.js +18 -19
- package/dist/powersync/react/index.d.ts +13 -12
- package/dist/powersync/react/index.js +15 -11
- package/dist/preset/index.d.ts +4 -4
- package/dist/preset/index.js +4 -4
- package/dist/preset-HNFqCWaD.js +838 -0
- package/dist/problem-D0KDiYPk.js +162 -0
- package/dist/problem-D_DEBfMn.d.ts +79 -0
- package/dist/provider-BhIkKBOh.js +57 -0
- package/dist/provider-Dmsbl8ug.d.ts +112 -0
- package/dist/push-token-8lvtOEv4.d.ts +24 -0
- package/dist/query/index.d.ts +3 -3
- package/dist/query/index.js +2 -2
- package/dist/query-DgPYlU82.js +311 -0
- package/dist/rank-result-C6vsw27N.js +18 -0
- package/dist/rank-result-DHflCNwo.d.ts +14 -0
- package/dist/rate-limit-B7N1ZGl6.d.ts +50 -0
- package/dist/rate-limit-CXpPm4_l.js +49 -0
- package/dist/rate-limit-CpTD_WHm.js +328 -0
- package/dist/ratelimit-headers-kEcXyO3H.js +62 -0
- package/dist/react/index.d.ts +11 -11
- package/dist/react/index.js +4 -4
- package/dist/react/native/index.d.ts +36 -21
- package/dist/react/native/index.js +32 -20
- package/dist/react/server.d.ts +50 -21
- package/dist/react/server.js +42 -13
- package/dist/react/session.d.ts +9 -7
- package/dist/react/session.js +7 -5
- package/dist/react-BKCnIuZs.js +79 -0
- package/dist/react-controller-CKSdtJ10.js +43 -0
- package/dist/react-env-CodKZgPk.js +16 -0
- package/dist/react-router/index.d.ts +30 -23
- package/dist/react-router/index.js +14 -13
- package/dist/react-uvu_KcVY.js +599 -0
- package/dist/read-set-DP6fm21F.js +316 -0
- package/dist/realtime/index.d.ts +7 -7
- package/dist/realtime/index.js +4 -4
- package/dist/realtime-status-BhNkb-Ow.d.ts +8 -0
- package/dist/realtime-status-asHvhiOh.js +11 -0
- package/dist/refusal-BEyNVFy7.d.ts +32 -0
- package/dist/refusal-Ce2p81VW.js +64 -0
- package/dist/resolve-D57oDWNr.d.ts +289 -0
- package/dist/resolve-sy3_Gz0i.js +892 -0
- package/dist/resource-BRRU-A7j.js +91 -0
- package/dist/resource-BVvIiuX_.js +469 -0
- package/dist/resource-DxQOPkZ5.d.ts +115 -0
- package/dist/resource-execute-BbjuiXwD.d.ts +15 -0
- package/dist/resource-schemas-up6bKOUi.js +82 -0
- package/dist/resource-types-NXau9LJE.d.ts +153 -0
- package/dist/resources-CIi7sw1T.js +64 -0
- package/dist/resources-CZ60Vqwq.d.ts +7 -0
- package/dist/respond-DjEmE_DN.js +100 -0
- package/dist/respond-QW-f1yio.d.ts +101 -0
- package/dist/result-DIT_qp4G.js +146 -0
- package/dist/result-mijqfoJN.d.ts +346 -0
- package/dist/rrule-CesB9Rxd.js +290 -0
- package/dist/rules-D75V7dAE.js +286 -0
- package/dist/run-watch-B-LoK5m1.js +53 -0
- package/dist/runtime-CoKxZibd.js +45 -0
- package/dist/sales-lines-9HsX89aO.d.ts +28 -0
- package/dist/sales-lines-DgXeOEar.js +41 -0
- package/dist/sales-shared-CjXsy0NJ.js +22 -0
- package/dist/search-9hoZ8rN1.js +106 -0
- package/dist/search-Cn_DGluL.js +9 -0
- package/dist/server/index.d.ts +153 -116
- package/dist/server/index.js +49 -40
- package/dist/server-types-D_cQ6OxZ.d.ts +809 -0
- package/dist/session-DNRYXIOU.d.ts +97 -0
- package/dist/settings-DzQtMwfl.js +93 -0
- package/dist/shared-Bf-I13Ht.js +91 -0
- package/dist/shared-C80IHf4B.js +60 -0
- package/dist/shared-CRRfQAKG.d.ts +11 -0
- package/dist/shared-D11SWNLx.js +17 -0
- package/dist/sign-in-B_QJ2u62.js +386 -0
- package/dist/sign-in-D54FLMQy.d.ts +55 -0
- package/dist/signatures-CzqfLlfV.d.ts +43 -0
- package/dist/signatures-D8IoN3Rw.js +145 -0
- package/dist/signers-BuVQKDfK.d.ts +390 -0
- package/dist/signing-keys-i2Rsll6L.d.ts +119 -0
- package/dist/solid/index.d.ts +50 -23
- package/dist/solid/index.js +35 -14
- package/dist/solid-controller-7TxGaJNy.js +33 -0
- package/dist/solid-controller-BnF3ovwV.d.ts +11 -0
- package/dist/solid-start/index.d.ts +22 -18
- package/dist/solid-start/index.js +9 -9
- package/dist/spec/index.d.ts +39 -25
- package/dist/spec/index.js +26 -21
- package/dist/spec-pins-CZ2CL8YZ.d.ts +120 -0
- package/dist/spec-pins-D3Tm6HJi.js +60 -0
- package/dist/sql/index.d.ts +5 -5
- package/dist/sql/index.js +5 -5
- package/dist/sql-CQIikLnQ.js +421 -0
- package/dist/sql-frpIs51D.js +89308 -0
- package/dist/sso-C86TPpZr.js +217 -0
- package/dist/sso-D_am-gBz.d.ts +161 -0
- package/dist/ssr/index.d.ts +4 -4
- package/dist/ssr/index.js +3 -3
- package/dist/standard-16AIDny5.d.ts +7 -0
- package/dist/standard-l10kE0yS.js +25 -0
- package/dist/stats-Bt1RyT-F.js +1147 -0
- package/dist/storage/index.d.ts +4 -4
- package/dist/storage/index.js +137 -73
- package/dist/store-DKqbuNvw.d.ts +83 -0
- package/dist/store-McN-2esd.js +69 -0
- package/dist/streams/index.d.ts +24 -18
- package/dist/streams/index.js +4 -4
- package/dist/streams/redis/index.d.ts +10 -7
- package/dist/streams/redis/index.js +9 -9
- package/dist/stripe/index.d.ts +5 -2
- package/dist/stripe/index.js +2 -2
- package/dist/stripe-BJUfp5jM.js +32 -0
- package/dist/stripe-BSEwKCni.d.ts +140 -0
- package/dist/subject-readers-BJzh7WF7.js +49 -0
- package/dist/subject-readers-Bbq1i0Ol.d.ts +21 -0
- package/dist/subjects-DQ2SU4cA.d.ts +77 -0
- package/dist/subscribers-BvZxcd63.js +33 -0
- package/dist/supabase-mcp-Dz9DgrKP.js +28 -0
- package/dist/supabase-mcp-Z4vtsuoO.d.ts +46 -0
- package/dist/support-CWVTM2AB.js +534 -0
- package/dist/support-view-BOJJSZKv.d.ts +17 -0
- package/dist/svelte/index.d.ts +32 -14
- package/dist/svelte/index.js +22 -10
- package/dist/svelte-controller-BmRhHvFz.js +50 -0
- package/dist/svelte-controller-DXO7gsmS.d.ts +13 -0
- package/dist/sveltekit/index.d.ts +45 -33
- package/dist/sveltekit/index.js +18 -17
- package/dist/table-schema-xqSXrjCN.js +284 -0
- package/dist/tags-C_ym1yDM.js +39 -0
- package/dist/tags-Co-QIHeK.js +84 -0
- package/dist/tags-tbiuHHMV.d.ts +30 -0
- package/dist/tanstack-db/index.d.ts +17 -11
- package/dist/tanstack-db/index.js +6 -6
- package/dist/tanstack-db/supabase/index.d.ts +24 -9
- package/dist/tanstack-db/supabase/index.js +6 -3
- package/dist/tanstack-start/index.d.ts +40 -29
- package/dist/tanstack-start/index.js +33 -19
- package/dist/tax-BHSCb5Rw.d.ts +280 -0
- package/dist/tax-keSd-q_1.js +140 -0
- package/dist/tee-1fsH3bEz.js +101 -0
- package/dist/template-DXsGm_R0.js +126 -0
- package/dist/temporal-DLZlWbOi.js +85 -0
- package/dist/temporal-required-Dt4mcPsi.js +20 -0
- package/dist/tenant-DnMqeNIM.js +27 -0
- package/dist/tenant-l3H2ouv7.d.ts +17 -0
- package/dist/testing/index.d.ts +483 -267
- package/dist/testing/index.js +333 -196
- package/dist/timing-C5NzaEgy.js +95 -0
- package/dist/topic-CZvLXFND.d.ts +415 -0
- package/dist/topic-Cr01EHZy.js +643 -0
- package/dist/ttl-cache-Bhr9swjT.js +32 -0
- package/dist/types-BTK75521.js +8 -0
- package/dist/types-Bzm0OgJk.d.ts +177 -0
- package/dist/types-CB5MvzuE.d.ts +624 -0
- package/dist/types-DYXhFhmQ.d.ts +251 -0
- package/dist/types-DmshMaXz.d.ts +421 -0
- package/dist/types-EUrisY2U.d.ts +217 -0
- package/dist/types-vVsLvOUJ.d.ts +700 -0
- package/dist/undo-CClrTbm9.d.ts +46 -0
- package/dist/undo-HHonvNeg.js +44 -0
- package/dist/upload-claim-DCuklVyh.js +33 -0
- package/dist/usage-BFwuH7GK.d.ts +232 -0
- package/dist/usage-CJmmCGzd.js +264 -0
- package/dist/user-change-CSR_prhd.js +133 -0
- package/dist/variants-Bat9zU8l.js +53 -0
- package/dist/vault-BQThkbws.d.ts +62 -0
- package/dist/vercel-connect/index.d.ts +3 -3
- package/dist/vercel-connect/index.js +8 -8
- package/dist/verify-BCmBaHlN.js +130 -0
- package/dist/verify-BTAEsJbF.d.ts +146 -0
- package/dist/view-CKzCp8FW.d.ts +90 -0
- package/dist/view-CfUd5vI9.js +108 -0
- package/dist/vue/index.d.ts +51 -27
- package/dist/vue/index.js +41 -20
- package/dist/vue-controller-DCOtUOA_.d.ts +11 -0
- package/dist/vue-controller-EzyTjqca.js +32 -0
- package/dist/watch-CYeMXFtj.d.ts +92 -0
- package/dist/watch-Cnd6XDnU.js +139 -0
- package/dist/watch-topic-CloXeDTO.d.ts +31 -0
- package/dist/watch-topic-CuaWfCuv.js +57 -0
- package/dist/wire-BJhepFbv.js +66 -0
- package/dist/workflow-builder-DzZNlI45.js +699 -0
- package/dist/workflow-sdk/builder/index.d.ts +51 -37
- package/dist/workflow-sdk/builder/index.js +30 -24
- package/dist/workflow-sdk/index.d.ts +24 -15
- package/dist/workflow-sdk/index.js +9 -6
- package/dist/workflow-sdk/world/index.d.ts +56 -24
- package/dist/workflow-sdk/world/index.js +47 -24
- package/dist/workflow-sdk-BXwl1THQ.d.ts +163 -0
- package/dist/workflow-sdk-CPGiFE1B.js +242 -0
- package/dist/workflow-sdk-world-BOEsvWmx.js +2123 -0
- package/dist/workflows-BHyYAR6c.d.ts +258 -0
- package/dist/workflows-otOMN33L.js +285 -0
- package/dist/yjs/index.d.ts +14 -11
- package/dist/yjs/index.js +13 -13
- package/package.json +7 -3
- package/schemas/cli-commands-v1.json +18 -0
- package/schemas/config-v1.json +9 -1
- package/schemas/design-v1.json +345 -0
- package/schemas/doctor-report-v1.json +5 -1
- package/skills/better-supabase/SKILL.md +4 -4
- package/skills/better-supabase/references/frontend.md +3 -2
- package/skills/better-supabase/references/ui-recipes.md +242 -245
- package/skills/better-supabase-api/references/adapters.md +3 -6
- package/skills/better-supabase-api/references/expo.md +1 -0
- package/skills/better-supabase-testing/SKILL.md +2 -3
- package/dist/access-sql-CTJPHjCL.js +0 -201
- package/dist/actor-BAhb-d1S.d.ts +0 -104
- package/dist/actor-CAL8mMih.js +0 -151
- package/dist/adapter-CRNH2aX_.js +0 -2107
- package/dist/agents-CGP2AQge.d.ts +0 -111
- package/dist/ai-cache-BdeJKlrV.d.ts +0 -70
- package/dist/ai-cache-CLninP-F.js +0 -84
- package/dist/ai-chat-D-2MH1sU.d.ts +0 -608
- package/dist/ai-files-ChFDkMLN.js +0 -339
- package/dist/ai-tasks-ZvPnNudQ.d.ts +0 -157
- package/dist/announcements-BNxTW5HJ.js +0 -128
- package/dist/api-C43_FYDp.js +0 -680
- package/dist/api-DoWK3dTw.d.ts +0 -411
- package/dist/api-keys-AgDXbcql.d.ts +0 -205
- package/dist/api-keys-BSXwI2jF.js +0 -318
- package/dist/app-tables-BRjMcWhW.js +0 -819
- package/dist/app-tables-BrMBjyuq.d.ts +0 -35
- package/dist/approvals-CyX709B-.d.ts +0 -124
- package/dist/assistant-DZsHsYIx.d.ts +0 -148
- package/dist/attachments-CK8D8bIV.js +0 -270
- package/dist/attributes-D4mA7WhI.js +0 -38
- package/dist/audit-log-ovUlF4Mk.js +0 -786
- package/dist/auth-CdBKt0CS.js +0 -20
- package/dist/auth-link-BjFPqwLz.d.ts +0 -97
- package/dist/auth-link-DrDX9KOT.js +0 -114
- package/dist/auth-module-DbZv2WrR.js +0 -10
- package/dist/auth-reply-Daq72lY4.js +0 -31
- package/dist/authorization-ClWBcXJi.d.ts +0 -1456
- package/dist/authorization-hooks-WDQMKIsc.d.ts +0 -214
- package/dist/authorizer-B3yyCVUF.js +0 -126
- package/dist/authorizer-eiOjo-3l.d.ts +0 -73
- package/dist/base64-D4aqdnDR.js +0 -42
- package/dist/before-route-B98js9m_.js +0 -30
- package/dist/bind-Bfo40o63.d.ts +0 -70
- package/dist/block-env-CBd_SoL5.js +0 -29
- package/dist/block-env-Dxl7rsI0.d.ts +0 -10
- package/dist/block-events-DD9Q_NUz.js +0 -96
- package/dist/block-fields-Bv1hV855.js +0 -139
- package/dist/block-fields-DnaDbgZS.d.ts +0 -55
- package/dist/block-helpers-CjcQM1yA.d.ts +0 -37
- package/dist/block-helpers-DkVZNDrj.js +0 -264
- package/dist/block-hooks-C22vuIUd.js +0 -114
- package/dist/block-hooks-DcPJHztl.d.ts +0 -107
- package/dist/block-transport-DezJPPA0.d.ts +0 -70
- package/dist/block-transport-J7ZepTq2.js +0 -85
- package/dist/blocks-D2WQ63PI.js +0 -84
- package/dist/bookings-DQ7P888X.js +0 -181
- package/dist/bucket-BbePDVwc.d.ts +0 -598
- package/dist/build-C-D_vn0U.js +0 -694
- package/dist/build-CT6SPZkI.js +0 -1815
- package/dist/calendar-eqyuQAoy.js +0 -801
- package/dist/channel-D-LHCY11.d.ts +0 -78
- package/dist/channels-C-GCoNLd.js +0 -114
- package/dist/claims-0KZVT804.js +0 -61
- package/dist/claims-PqzCxaTD.js +0 -85
- package/dist/cli/add-BcOHumvq.js +0 -75
- package/dist/cli/add-DnAyR9w_.js +0 -1
- package/dist/cli/add-TT72pQk6.js +0 -651
- package/dist/cli/adopt-BuS-DC7_.js +0 -1
- package/dist/cli/adopt-mbB1bcIG.js +0 -412
- package/dist/cli/agent-CCrTYK3W.js +0 -176
- package/dist/cli/apply-CiBFOFGw.js +0 -326
- package/dist/cli/blocks-5-JGzwXX.js +0 -124
- package/dist/cli/blocks-DeLQOlUK.js +0 -1
- package/dist/cli/cache-DQwgb3rg.js +0 -507
- package/dist/cli/catalog-Cm6BtquM.js +0 -188
- package/dist/cli/codemod-BzAMX4el.js +0 -985
- package/dist/cli/command-dfdVhU_2.js +0 -891
- package/dist/cli/completion-4lLjtI49.js +0 -1
- package/dist/cli/completion-D4InNrxw.js +0 -30
- package/dist/cli/completion-zsp5s0zI.js +0 -205
- package/dist/cli/config-CCyweX7Y.js +0 -1
- package/dist/cli/config-DI6ielsx.js +0 -39
- package/dist/cli/config-edit-Ct1lXe8a.js +0 -603
- package/dist/cli/config-yZ55rsKZ.js +0 -1463
- package/dist/cli/db-DT1bGB02.js +0 -78
- package/dist/cli/db-TRymMyAW.js +0 -90
- package/dist/cli/design-edit-0U9iCTiS.js +0 -202
- package/dist/cli/detect-DQsVeBHg.js +0 -84
- package/dist/cli/doctor-DOfy6kjt.js +0 -3732
- package/dist/cli/emit-56LAG_Px.js +0 -1067
- package/dist/cli/env-B7TWPEt0.js +0 -1
- package/dist/cli/env-C8R7Nf0a.js +0 -1088
- package/dist/cli/env-Cmu99uKR.js +0 -1
- package/dist/cli/env-Dh5K5t2U.js +0 -143
- package/dist/cli/errors-Caiz_0so.js +0 -98
- package/dist/cli/files-DDvAwTko.js +0 -963
- package/dist/cli/fresh-import-BeYf9I3x.js +0 -40
- package/dist/cli/gen-D3sC5jDn.js +0 -304
- package/dist/cli/init-DNomoycJ.js +0 -394
- package/dist/cli/introspect-kYX06Q2g.js +0 -51
- package/dist/cli/io-BiPX-_J1.js +0 -37
- package/dist/cli/keys-B8dIJwwi.js +0 -106
- package/dist/cli/live-CkV3d3yp.js +0 -329
- package/dist/cli/mcp-DrxB2Wuw.js +0 -237
- package/dist/cli/metadata-BGkle6WM.js +0 -138
- package/dist/cli/migration-safety-DjVpz2D6.js +0 -206
- package/dist/cli/module-migration-CPhuiY8C.js +0 -592
- package/dist/cli/moved-BMQu1YNY.js +0 -152
- package/dist/cli/parse-QzDvMpXH.js +0 -170
- package/dist/cli/preset-CfIs24cc.js +0 -129
- package/dist/cli/prompts-Bvg_DBpe.js +0 -1137
- package/dist/cli/redact-PjNswZOs.js +0 -35
- package/dist/cli/run-Bck-p0MI.js +0 -63
- package/dist/cli/run-BhJKAanr.js +0 -1528
- package/dist/cli/run-DRZ10srj.js +0 -694
- package/dist/cli/scaffold-DoURlDEI.js +0 -898
- package/dist/cli/scaffold-mzy3OsN5.js +0 -1
- package/dist/cli/seed-C5q4UUIL.js +0 -1
- package/dist/cli/seed-CIdg6s7m.js +0 -114
- package/dist/cli/shared-DKLuA1Tp.js +0 -145
- package/dist/cli/skills-D3zwIlGA.js +0 -121
- package/dist/cli/snapshot-BBKFojqM.js +0 -347
- package/dist/cli/source-args-Cwo7zwvq.js +0 -53
- package/dist/cli/spec-DOgQUZwM.js +0 -1
- package/dist/cli/spec-DZeIP9ta.js +0 -7501
- package/dist/cli/sql-CL_Lbhwl.js +0 -2
- package/dist/cli/sql-DLOvvnBV.js +0 -326
- package/dist/cli/stack-env-_uWWNHWq.js +0 -87
- package/dist/cli/stack-status-_NUgd-g5.js +0 -496
- package/dist/cli/style-2JfIPVMQ.js +0 -29
- package/dist/cli/supabase-toml-BC5sNVKU.js +0 -1153
- package/dist/cli/sync-DBvknfOK.js +0 -88
- package/dist/cli/topics-BBE1-Vrg.js +0 -30
- package/dist/cli/typegen--TfvOPLh.js +0 -494
- package/dist/cli/validate-BfWNKvxy.js +0 -7522
- package/dist/cli/version-B7akdvDv.js +0 -4
- package/dist/cli/write-VZljwoTB.js +0 -198
- package/dist/client-B9CqzgPO.js +0 -75
- package/dist/client-BAOZuBhz.d.ts +0 -101
- package/dist/client-BDO6i2Oe.js +0 -128
- package/dist/client-BGnJ5WJi.js +0 -438
- package/dist/client-BJN0IMEp.d.ts +0 -34
- package/dist/client-BMcjLG0V.d.ts +0 -263
- package/dist/client-BN_fXOs7.d.ts +0 -39
- package/dist/client-BONsuFYf.d.ts +0 -100
- package/dist/client-BPn9XhAM.d.ts +0 -218
- package/dist/client-BfgwocyT.js +0 -155
- package/dist/client-BpS8a6Fm.js +0 -51
- package/dist/client-BtC-r4hE.d.ts +0 -52
- package/dist/client-BuneNd-C.d.ts +0 -419
- package/dist/client-BzCv4kKE.js +0 -65
- package/dist/client-C-2ajnhM.js +0 -89
- package/dist/client-C5mUEb2n.js +0 -55
- package/dist/client-CFKONrrU.js +0 -1051
- package/dist/client-CHR8IBNG.js +0 -318
- package/dist/client-CHwNV8Kz.d.ts +0 -455
- package/dist/client-CLQHsa-2.d.ts +0 -131
- package/dist/client-CMxxwT3N.d.ts +0 -122
- package/dist/client-CU7aNN_B.d.ts +0 -277
- package/dist/client-CYEdJKjk.d.ts +0 -157
- package/dist/client-CYhSGlCN.d.ts +0 -107
- package/dist/client-C_-NZRrg.js +0 -120
- package/dist/client-CcPxbHeT.js +0 -288
- package/dist/client-CosiUrUb.js +0 -98
- package/dist/client-D3gRTNSi.d.ts +0 -68
- package/dist/client-D7T7OLiw.js +0 -169
- package/dist/client-DB34f_7i.d.ts +0 -58
- package/dist/client-DCawyopp.d.ts +0 -65
- package/dist/client-DNq8xYb-.js +0 -52
- package/dist/client-Dqa4XyJ5.d.ts +0 -108
- package/dist/client-Dr5h2r9r.d.ts +0 -34
- package/dist/client-DrTqKgvy.d.ts +0 -155
- package/dist/client-DyfWYU8S.js +0 -84
- package/dist/client-Dz1jWDA2.js +0 -209
- package/dist/client-DzTtOVRR.js +0 -137
- package/dist/client-Ezlbskjq.js +0 -60
- package/dist/client-GCCRI9ge.d.ts +0 -135
- package/dist/client-P6v3h7vh.d.ts +0 -130
- package/dist/client-P8l8ncxV.d.ts +0 -103
- package/dist/client-UnM3e32l.js +0 -133
- package/dist/client-WgrPIHH-.js +0 -213
- package/dist/client-ZTtSV3l8.js +0 -40
- package/dist/client-arq4daO_.js +0 -104
- package/dist/client-ckXfdy1k.js +0 -38
- package/dist/client-eCDPjOMo.js +0 -438
- package/dist/client-iaFm0aVf.js +0 -67
- package/dist/client-kWg4OqIr.d.ts +0 -162
- package/dist/client-pxjbgOz6.js +0 -376
- package/dist/client-tvG258_1.d.ts +0 -59
- package/dist/client-wKmX-f3r.d.ts +0 -388
- package/dist/clone-dN9XOL1K.js +0 -29
- package/dist/cloud-event-CTh9Sr5w.js +0 -60
- package/dist/cloud-event-DXkNoI6v.d.ts +0 -64
- package/dist/codecs-D-rpDifG.js +0 -358
- package/dist/codecs-RwFNK8Jh.d.ts +0 -215
- package/dist/codegen-C64C0NZG.d.ts +0 -1665
- package/dist/comments-CV5O8q50.js +0 -230
- package/dist/compiler-D_Gjpw_O.d.ts +0 -14
- package/dist/compose-CP0ss-cQ.js +0 -53
- package/dist/composite-1kPAxXto.js +0 -130
- package/dist/composite-DzvBL5nb.d.ts +0 -67
- package/dist/config-DHhQmmuD.js +0 -3917
- package/dist/config-NQmw_wsk.js +0 -558
- package/dist/connector-D9NMNkv0.d.ts +0 -107
- package/dist/connectors-BwPNt-ZG.d.ts +0 -141
- package/dist/context-BiwgsycK.js +0 -41
- package/dist/context-Cv3KlxWY.d.ts +0 -377
- package/dist/context-D6ZMKc2L.js +0 -19
- package/dist/context-wDKxSl9x.js +0 -9
- package/dist/controller-BZhiIb-N.d.ts +0 -46
- package/dist/controller-D6NyNrlZ.js +0 -79
- package/dist/cron-BHdXZFsJ.js +0 -145
- package/dist/cron-route-mTvWhork.js +0 -24
- package/dist/csv-CVfXqaAu.js +0 -89
- package/dist/csv-D3eKxV1T.d.ts +0 -28
- package/dist/define-Bu1v781m.js +0 -1962
- package/dist/define-DYZnvAbs.d.ts +0 -1058
- package/dist/define-block-BHxLHLys.d.ts +0 -256
- package/dist/delegation-B7uNnz6z.js +0 -140
- package/dist/delivery-B1mKaOen.js +0 -30
- package/dist/delivery-BeHgwS3k.d.ts +0 -69
- package/dist/documents-CqtVr2fg.d.ts +0 -96
- package/dist/email-BcmbIWOX.d.ts +0 -42
- package/dist/embeddings-CKhygw4C.d.ts +0 -78
- package/dist/embeddings-CVeOoufZ.js +0 -128
- package/dist/ended-De6H52nX.d.ts +0 -70
- package/dist/entitlements-C8UvF1Rz.js +0 -45
- package/dist/entitlements-CtBGXb3B.d.ts +0 -53
- package/dist/envelope-C4Z55LKW.js +0 -90
- package/dist/errors-BV1SKTVs.js +0 -315
- package/dist/errors-D3BR8iUk.js +0 -44
- package/dist/escape-like-B339PlP-.d.ts +0 -15
- package/dist/eve-B6ru2Bt4.d.ts +0 -151
- package/dist/event-calendar-DJXXMJ3x.d.ts +0 -217
- package/dist/event-map-Dy2vKHai.js +0 -19
- package/dist/events-P3raDX2E.d.ts +0 -800
- package/dist/events-xbpHkcK9.js +0 -82
- package/dist/executor-BWgJNbGh.d.ts +0 -95
- package/dist/executor-BiB0wMBA.js +0 -735
- package/dist/executor-BnMC0lj3.d.ts +0 -272
- package/dist/executor-CvsNcQsa.d.ts +0 -174
- package/dist/executor-CxGQiQN_.js +0 -206
- package/dist/executor-D1hECPGG.d.ts +0 -39
- package/dist/executor-D3K3tycZ.js +0 -147
- package/dist/field-errors-Z-sgsdoN.d.ts +0 -113
- package/dist/field-formats-Cif5gr7c.js +0 -102
- package/dist/field-formats-DCvOQlOy.d.ts +0 -39
- package/dist/filter-evaluate-BJcaL3o1.d.ts +0 -34
- package/dist/filter-evaluate-C0ULNfS7.js +0 -214
- package/dist/filter-query-B3lhckKX.js +0 -518
- package/dist/filter-query-Bc_Qa8V_.d.ts +0 -121
- package/dist/flags-6KK6Vqkr.d.ts +0 -230
- package/dist/flags-aUR7Rod6.js +0 -279
- package/dist/form-definition-GVZTILhS.js +0 -311
- package/dist/form-definition-sagoefQr.d.ts +0 -95
- package/dist/format-CNwSjXUU.d.ts +0 -70
- package/dist/framework-BQhTsLX-.d.ts +0 -26
- package/dist/framework-C6PKBgme.js +0 -51
- package/dist/function-contract-DWqFl_QO.d.ts +0 -21
- package/dist/function-contract-DmkBg19r.js +0 -5
- package/dist/gateway-Bq_tWwxE.d.ts +0 -109
- package/dist/gateway-options-ClvvfuuU.d.ts +0 -29
- package/dist/gateway-options-DcLcWL5_.js +0 -27
- package/dist/graph-Cs28bOlK.js +0 -360
- package/dist/hmac-BgpThYQW.js +0 -23
- package/dist/http-C7trc6uN.js +0 -25
- package/dist/http-Cv4T29xh.js +0 -40
- package/dist/http-DdYadv-o.js +0 -126
- package/dist/image-url-pIVlO6R1.js +0 -41
- package/dist/impersonation-D5chOkrO.d.ts +0 -25
- package/dist/impersonation-DxU6yHJV.js +0 -62
- package/dist/inbox-Du5aPwKB.d.ts +0 -400
- package/dist/index-1Vsg-7YV.d.ts +0 -58
- package/dist/index-BJLPQr2s.d.ts +0 -377
- package/dist/index-BpFYMsi0.d.ts +0 -53
- package/dist/index-BpyBH5O2.d.ts +0 -227
- package/dist/index-C-_fs7EI.d.ts +0 -258
- package/dist/index-CXFf-c-j.d.ts +0 -131
- package/dist/index-Cm2-g_4H.d.ts +0 -722
- package/dist/index-CxmVzT-3.d.ts +0 -86
- package/dist/index-DTQSeHx2.d.ts +0 -97
- package/dist/index-Hc4tetmB.d.ts +0 -245
- package/dist/index-QWTq2o31.d.ts +0 -138
- package/dist/index-XcTBR4Gb.d.ts +0 -206
- package/dist/index-k-rrfG1g.d.ts +0 -202
- package/dist/index-wTnPJUhv.d.ts +0 -58
- package/dist/invalidate-BBqhpxyB.d.ts +0 -19
- package/dist/iso4217-A8ev-CNW.js +0 -176
- package/dist/json-CEnpTHlZ.js +0 -16
- package/dist/json-schema-CpYINXG8.js +0 -548
- package/dist/jwks-cache-C4rA69hD.js +0 -49
- package/dist/jws-35a8VhFV.d.ts +0 -60
- package/dist/jws-CwBB5QAT.js +0 -193
- package/dist/kit-De-EVRhw.d.ts +0 -66
- package/dist/kit-LTbHrWWD.js +0 -104
- package/dist/knowledge-B5zdpDD-.d.ts +0 -187
- package/dist/knowledge-BbdXOJvY.js +0 -272
- package/dist/list-query-CBXNfJt4.js +0 -549
- package/dist/list-query-aXr2WkGA.d.ts +0 -194
- package/dist/live-DwDreq1n.js +0 -239
- package/dist/management-D1gG89z2.d.ts +0 -53
- package/dist/message-B0fNJgq8.d.ts +0 -93
- package/dist/messages-D5nIfCCf.js +0 -493
- package/dist/metric-definition-95HFoW1V.d.ts +0 -70
- package/dist/mfa-YzkRjNad.d.ts +0 -30
- package/dist/model-lUafmeBQ.d.ts +0 -311
- package/dist/model-messages-CIdqdUtk.js +0 -206
- package/dist/model-messages-D4GZllOD.d.ts +0 -34
- package/dist/money-95Rff2vT.js +0 -185
- package/dist/money-DFpWzQvk.d.ts +0 -76
- package/dist/money-codec-C21MWw50.js +0 -41
- package/dist/node-headers-AO06VhqH.d.ts +0 -24
- package/dist/onboarding-Du6kCmhF.js +0 -68
- package/dist/operations-CsIfMED7.js +0 -29
- package/dist/operations-DQCWqkt3.d.ts +0 -6
- package/dist/optional-peer-Dx8TaYXw.js +0 -29
- package/dist/options-ZQzNKKBS.d.ts +0 -52
- package/dist/organizations-CO2qg44D.js +0 -398
- package/dist/outbox-B1hZ7PPY.d.ts +0 -181
- package/dist/payments-CzjCdIcz.js +0 -16
- package/dist/pg-error-BV_X8Isq.js +0 -26
- package/dist/plugin-D-95Q0w0.d.ts +0 -190
- package/dist/plugin-tfXW1-qO.js +0 -45
- package/dist/pool-cM3rpOQr.d.ts +0 -117
- package/dist/pool-errors-CGqvTQOC.js +0 -27
- package/dist/ports-BCDIbC_U.d.ts +0 -86
- package/dist/ports-P0A5wo_-.d.ts +0 -285
- package/dist/ports-aALjot-D.js +0 -137
- package/dist/postgrest-CjnO1hbr.d.ts +0 -53
- package/dist/preset-Cf0T9GRt.js +0 -691
- package/dist/problem-DCDIQiTA.d.ts +0 -76
- package/dist/problem-JRCohp1j.js +0 -159
- package/dist/provider-C-Ti38J6.js +0 -57
- package/dist/provider-DXgx5oSA.d.ts +0 -113
- package/dist/push-token-y1Gnz5bQ.d.ts +0 -24
- package/dist/query-Ctz-qKRx.js +0 -303
- package/dist/rank-result-BcYfDA0x.d.ts +0 -14
- package/dist/rank-result-DtQuIvob.js +0 -18
- package/dist/rate-limit-DVZ7qIzW.js +0 -49
- package/dist/rate-limit-I3AncmM8.js +0 -325
- package/dist/rate-limit-c6c1mB6R.d.ts +0 -41
- package/dist/ratelimit-headers-Bsxx0Tj2.js +0 -62
- package/dist/react-4ZqkP8da.js +0 -79
- package/dist/react-DzukE6Wp.js +0 -410
- package/dist/react-controller-Xn-IU44p.js +0 -40
- package/dist/react-env-Cc7Vf6eb.js +0 -13
- package/dist/read-set-DeesfeL_.js +0 -314
- package/dist/realtime-status-D2dw1hOE.js +0 -12
- package/dist/realtime-status-DcsO00Gw.d.ts +0 -8
- package/dist/refusal-C7geIBRl.d.ts +0 -18
- package/dist/refusal-CFpfmjcS.js +0 -61
- package/dist/resolve-AtncaPTU.js +0 -877
- package/dist/resolve-Ceft-18-.d.ts +0 -270
- package/dist/resource-Bdkqi8jo.js +0 -463
- package/dist/resource-DO4gbVi5.js +0 -91
- package/dist/resource-DYEtc-KN.d.ts +0 -106
- package/dist/resource-execute-Bxvgmx-n.d.ts +0 -12
- package/dist/resource-schemas-BJ518zFH.js +0 -79
- package/dist/resource-types-LW1i5-h3.d.ts +0 -141
- package/dist/resources-Ck7itNeX.js +0 -64
- package/dist/resources-D3_FAz_H.d.ts +0 -7
- package/dist/respond-BSL36dQp.d.ts +0 -93
- package/dist/respond-Bhp3G__q.js +0 -95
- package/dist/result-BREt7qOh.d.ts +0 -312
- package/dist/result-DIeYscA3.js +0 -134
- package/dist/rrule-Cw4x4Pf_.js +0 -290
- package/dist/rules-BiQgmZ_U.js +0 -287
- package/dist/run-watch-CQRdpy-f.js +0 -53
- package/dist/runtime-BOXURhEW.js +0 -45
- package/dist/sales-lines-C6gafAwg.d.ts +0 -28
- package/dist/sales-lines-CQ1iC6QM.js +0 -41
- package/dist/sales-shared-CDSytDEn.js +0 -22
- package/dist/search-BtoWY6n_.js +0 -9
- package/dist/search-ZP13UTT4.js +0 -106
- package/dist/server-types-fLdep4gb.d.ts +0 -757
- package/dist/session-DObioXpX.d.ts +0 -95
- package/dist/settings-BiHDFglz.js +0 -90
- package/dist/shared-BmMcMoW9.js +0 -89
- package/dist/shared-C9zvURqC.js +0 -14
- package/dist/shared-D5Djh43x.js +0 -60
- package/dist/shared-DDSjEGDR.d.ts +0 -11
- package/dist/sign-in-BCV5S2WZ.d.ts +0 -49
- package/dist/sign-in-z2BaBdps.js +0 -367
- package/dist/signatures-BXlDXV3D.d.ts +0 -43
- package/dist/signatures-CeIoAelK.js +0 -145
- package/dist/signers-BwKV-9S6.d.ts +0 -385
- package/dist/signing-keys-v2MRYkDF.d.ts +0 -105
- package/dist/solid-controller-CWotGxcG.d.ts +0 -11
- package/dist/solid-controller-DLsmrczT.js +0 -33
- package/dist/spec-pins-Dqpml2dZ.d.ts +0 -84
- package/dist/spec-pins-S4PymRxp.js +0 -60
- package/dist/sql-BPKRNutj.js +0 -422
- package/dist/sql-CT1Jnwp8.js +0 -88660
- package/dist/sso-BaU_6ePE.js +0 -217
- package/dist/sso-Bu0mVh0V.d.ts +0 -131
- package/dist/standard-B1BigegP.js +0 -25
- package/dist/standard-BcUQuUgu.d.ts +0 -7
- package/dist/stats-Di5VAsYU.js +0 -1128
- package/dist/store-B18bIvKc.d.ts +0 -68
- package/dist/store-BdH5ruDx.js +0 -66
- package/dist/stripe-NVcNOhHy.d.ts +0 -140
- package/dist/stripe-XZrSmDTf.js +0 -32
- package/dist/subject-readers-BUChuOxL.d.ts +0 -21
- package/dist/subject-readers-BpwUFJtp.js +0 -46
- package/dist/subjects-DP-fvFkk.d.ts +0 -77
- package/dist/subscribers-Cq--DL1E.js +0 -34
- package/dist/supabase-mcp-C6tMoEjn.d.ts +0 -43
- package/dist/supabase-mcp-DomZ-amK.js +0 -28
- package/dist/support-C2wPYwD7.js +0 -522
- package/dist/support-view-Bj_lZ8Wr.d.ts +0 -17
- package/dist/svelte-controller-CDAujo-_.js +0 -50
- package/dist/svelte-controller-sS4X66yL.d.ts +0 -10
- package/dist/table-schema-pQlER3jj.js +0 -283
- package/dist/tags-B99_U9Pp.js +0 -39
- package/dist/tags-BqgaxCnv.js +0 -84
- package/dist/tags-BrGopDVG.d.ts +0 -30
- package/dist/tax-DMWDUzKt.d.ts +0 -273
- package/dist/tax-wm9g2mD2.js +0 -140
- package/dist/tee-Cw-iJAWL.js +0 -101
- package/dist/template-Dw3dTmKe.js +0 -123
- package/dist/temporal-CB5Fpo5d.js +0 -79
- package/dist/temporal-required-nfZ87U-0.js +0 -20
- package/dist/tenant-B-fiItlJ.js +0 -27
- package/dist/tenant-DZMLVuyQ.d.ts +0 -17
- package/dist/timing-BMCWgpdZ.js +0 -92
- package/dist/topic-DAY_HOX2.d.ts +0 -387
- package/dist/topic-mee21pux.js +0 -629
- package/dist/ttl-Hr34gRu8.js +0 -12
- package/dist/ttl-cache-XzZ-Q2eX.js +0 -29
- package/dist/types-BA1eTvy4.d.ts +0 -162
- package/dist/types-BEEFkNFY.d.ts +0 -564
- package/dist/types-BRTSpOIh.js +0 -5
- package/dist/types-Bels39_u.d.ts +0 -649
- package/dist/types-BrpW5ixT.d.ts +0 -370
- package/dist/types-DOC7wnh6.d.ts +0 -249
- package/dist/types-D_2rClz-.d.ts +0 -205
- package/dist/undo-B5LgpGLy.js +0 -44
- package/dist/undo-BsdYRox7.d.ts +0 -43
- package/dist/upload-claim-BBFCZbBF.js +0 -33
- package/dist/usage-C504GF55.d.ts +0 -220
- package/dist/usage-DdqT13_X.js +0 -261
- package/dist/user-change-XzvgafU4.js +0 -130
- package/dist/vault-ClkzMGTP.d.ts +0 -50
- package/dist/verify-DU4p9-Ve.d.ts +0 -142
- package/dist/verify-DnU-uWU2.js +0 -126
- package/dist/version-DSWxci83.js +0 -4
- package/dist/view-CYX1wsgp.js +0 -105
- package/dist/view-KQhe6eNc.d.ts +0 -90
- package/dist/vue-controller-BUo1oove.d.ts +0 -11
- package/dist/vue-controller-C9tFzqAc.js +0 -32
- package/dist/watch-5btote1y.d.ts +0 -84
- package/dist/watch-BAuIzC2r.js +0 -139
- package/dist/watch-topic-C79ZW5-R.d.ts +0 -28
- package/dist/watch-topic-miuymrli.js +0 -57
- package/dist/wire-BCJxCtHS.js +0 -45
- package/dist/workflow-builder-CynLqc6H.js +0 -697
- package/dist/workflow-sdk-CWdCWj7M.d.ts +0 -161
- package/dist/workflow-sdk-QnnzIQRc.js +0 -243
- package/dist/workflow-sdk-world-QzcxaaCD.js +0 -2103
- package/dist/workflows-DQBCzrHC.d.ts +0 -243
- package/dist/workflows-H9qJge3f.js +0 -282
|
@@ -0,0 +1,1809 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { F as SchemaMeta, c as Casing, q as BucketLifecycle, s as BucketPolicyName, t as AccessBucketPolicy } from "./types-DmshMaXz.js";
|
|
3
|
+
import { _ as BlocksConfig, a as AuthorizationProvider, g as BlockScope, p as AnyBlocksConfig, x as SqlNaming } from "./authorization-CB69cvnA.js";
|
|
4
|
+
import { n as SubjectsConfig } from "./subjects-DQ2SU4cA.js";
|
|
5
|
+
import { i as FIELD_FORMAT_NAMES, s as FieldFormatName } from "./field-formats-BX2FqLle.js";
|
|
6
|
+
//#region src/config/types/app-tables.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* The column types an app table may use. Money is a `bigint` of minor units
|
|
9
|
+
* next to a `text` currency column (ADR 0024 and 0037), never `numeric`.
|
|
10
|
+
*/
|
|
11
|
+
declare const APP_COLUMN_TYPES: readonly ["text", "uuid", "integer", "bigint", "numeric", "boolean", "timestamptz", "date", "jsonb", "text[]"];
|
|
12
|
+
type AppColumnType = (typeof APP_COLUMN_TYPES)[number];
|
|
13
|
+
/**
|
|
14
|
+
* What a reference does when the row it points at is deleted
|
|
15
|
+
* (`references.onDelete`).
|
|
16
|
+
*/
|
|
17
|
+
declare const APP_ON_DELETE_ACTIONS: readonly ["cascade", "restrict", "set null", "no action"];
|
|
18
|
+
type AppOnDeleteAction = (typeof APP_ON_DELETE_ACTIONS)[number];
|
|
19
|
+
/**
|
|
20
|
+
* What a column references: another app table, `auth.users` (`{ table:
|
|
21
|
+
* "auth.users" }`), or a logical table of an installed block (`{ block: "crm",
|
|
22
|
+
* table: "contacts" }`), which follows the block's renames.
|
|
23
|
+
*/
|
|
24
|
+
type AppReferenceTarget = {
|
|
25
|
+
readonly table: string;
|
|
26
|
+
} | {
|
|
27
|
+
readonly block: string;
|
|
28
|
+
readonly table: string;
|
|
29
|
+
};
|
|
30
|
+
type AppReference = AppReferenceTarget & {
|
|
31
|
+
/** Defaults to `no action`. */
|
|
32
|
+
readonly onDelete?: AppOnDeleteAction;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* What a column holds, beyond its Postgres type. `email`, `url`, `rating` and
|
|
36
|
+
* `percent` add a check; the others tell the UI and `gen` how to show the
|
|
37
|
+
* value. `FIELD_FORMATS` lists the types each fits and its input.
|
|
38
|
+
*/
|
|
39
|
+
declare const APP_COLUMN_FORMATS: typeof FIELD_FORMAT_NAMES;
|
|
40
|
+
type AppColumnFormat = FieldFormatName;
|
|
41
|
+
interface AppColumnConfig {
|
|
42
|
+
readonly type: AppColumnType;
|
|
43
|
+
/** Defaults to true. */
|
|
44
|
+
readonly nullable?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* The column default, from an allowlist: `now()`, `gen_random_uuid()`,
|
|
47
|
+
* `auth.uid()`, `true`, `false`, a number, a `'quoted'` text literal, and
|
|
48
|
+
* `'{}'` or `'[]'` for `jsonb` and `text[]`.
|
|
49
|
+
*/
|
|
50
|
+
readonly default?: string;
|
|
51
|
+
readonly unique?: boolean;
|
|
52
|
+
readonly references?: AppReference;
|
|
53
|
+
/** What the column holds; see `APP_COLUMN_FORMATS`. */
|
|
54
|
+
readonly format?: AppColumnFormat;
|
|
55
|
+
/**
|
|
56
|
+
* The values a `text` column (single select) or each element of a `text[]`
|
|
57
|
+
* column (multi-select) may take, checked by the database.
|
|
58
|
+
*/
|
|
59
|
+
readonly options?: readonly string[];
|
|
60
|
+
/** The smallest value of a number column, or the shortest `text`. */
|
|
61
|
+
readonly min?: number;
|
|
62
|
+
/** The largest value of a number column, or the longest `text`. */
|
|
63
|
+
readonly max?: number;
|
|
64
|
+
/** Rendered as `comment on column`. */
|
|
65
|
+
readonly comment?: string;
|
|
66
|
+
/**
|
|
67
|
+
* An `integer` or `bigint` the database numbers (`generated by default as
|
|
68
|
+
* identity`).
|
|
69
|
+
*/
|
|
70
|
+
readonly identity?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Who reaches the column, through column grants (ADR 0051). By default
|
|
73
|
+
* signed-in users read and write it, within the row's policies. `read` lets
|
|
74
|
+
* them read it while only the service role, triggers and defaults write it;
|
|
75
|
+
* `server` hides it from them, so only the service role reads and writes it.
|
|
76
|
+
*/
|
|
77
|
+
readonly access?: AppColumnAccess;
|
|
78
|
+
}
|
|
79
|
+
declare const APP_COLUMN_ACCESS: readonly ["read", "server"];
|
|
80
|
+
type AppColumnAccess = (typeof APP_COLUMN_ACCESS)[number];
|
|
81
|
+
/**
|
|
82
|
+
* A table the app owns, created in `public` by `better-supabase sql sync` next
|
|
83
|
+
* to the block files. Every table gets `id`, the scope column and (unless
|
|
84
|
+
* `timestamps: false`) `created_at` and `updated_at`.
|
|
85
|
+
*/
|
|
86
|
+
interface AppTableConfig {
|
|
87
|
+
/** The table's own columns, keyed by lower snake name. */
|
|
88
|
+
readonly columns?: Readonly<Record<string, AppColumnConfig>>;
|
|
89
|
+
/**
|
|
90
|
+
* Who reaches a row. `inherit` (the default) follows `sql.scope`: per tenant,
|
|
91
|
+
* members of the row's tenant; per user, the row's user. `user` keeps rows
|
|
92
|
+
* per user in any scope, and `none` lets signed-in users read every row while
|
|
93
|
+
* only the service role writes.
|
|
94
|
+
*/
|
|
95
|
+
readonly scope?: "inherit" | "user" | "none";
|
|
96
|
+
/** `created_at` and `updated_at`. Defaults to true. */
|
|
97
|
+
readonly timestamps?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* The id's type: `uuid` (the default, `gen_random_uuid()`) or `bigint` (an
|
|
100
|
+
* identity). A reference to the table needs a column of the same type.
|
|
101
|
+
*/
|
|
102
|
+
readonly id?: "uuid" | "bigint";
|
|
103
|
+
/** Sets of columns that are unique together, each a unique constraint. */
|
|
104
|
+
readonly unique?: readonly (readonly string[])[];
|
|
105
|
+
/**
|
|
106
|
+
* Sets of columns to index, in order. Reference and scope columns already
|
|
107
|
+
* have one.
|
|
108
|
+
*/
|
|
109
|
+
readonly indexes?: readonly (readonly string[])[];
|
|
110
|
+
/** Rendered as `comment on table`. */
|
|
111
|
+
readonly comment?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Registers the table as a subject (ADR 0043), so blocks that attach rows to
|
|
114
|
+
* subjects (comments, attachments, tags, versions, search and others) reach
|
|
115
|
+
* its rows without a `subjects` entry.
|
|
116
|
+
*/
|
|
117
|
+
readonly subject?: AppTableSubject;
|
|
118
|
+
/**
|
|
119
|
+
* Values computed from the rows of another app table that references this
|
|
120
|
+
* one, keyed by the column name they get in `public.<table>_view` (ADR
|
|
121
|
+
* 0044).
|
|
122
|
+
*/
|
|
123
|
+
readonly rollups?: Readonly<Record<string, AppRollupConfig>>;
|
|
124
|
+
/**
|
|
125
|
+
* Columns of the row a reference points at, keyed by the column name they get
|
|
126
|
+
* in `public.<table>_view` (ADR 0044).
|
|
127
|
+
*/
|
|
128
|
+
readonly lookups?: Readonly<Record<string, AppLookupConfig>>;
|
|
129
|
+
/**
|
|
130
|
+
* Emits an outbox event for each insert, update and delete (ADR 0048):
|
|
131
|
+
* `<subject type or table>.created`, `.updated` and `.deleted`. Needs the
|
|
132
|
+
* `outbox` block.
|
|
133
|
+
*/
|
|
134
|
+
readonly events?: true | AppTableEvents;
|
|
135
|
+
}
|
|
136
|
+
declare const APP_TABLE_EVENT_KINDS: readonly ["created", "updated", "deleted"];
|
|
137
|
+
type AppTableEventKind = (typeof APP_TABLE_EVENT_KINDS)[number];
|
|
138
|
+
/** Which writes emit an event and which column values its payload carries. */
|
|
139
|
+
interface AppTableEvents {
|
|
140
|
+
/** Defaults to all three. */
|
|
141
|
+
readonly on?: readonly AppTableEventKind[];
|
|
142
|
+
/**
|
|
143
|
+
* Columns whose values go in the payload. By default it holds the row id and,
|
|
144
|
+
* for updates, the names of the changed columns.
|
|
145
|
+
*/
|
|
146
|
+
readonly include?: readonly string[];
|
|
147
|
+
}
|
|
148
|
+
declare const APP_ROLLUP_AGGREGATES: readonly ["count", "sum", "min", "max", "avg"];
|
|
149
|
+
type AppRollupAggregate = (typeof APP_ROLLUP_AGGREGATES)[number];
|
|
150
|
+
/**
|
|
151
|
+
* An aggregate over the rows of `table` whose `via` column references this
|
|
152
|
+
* table: `{ table: "tasks", via: "project_id", aggregate: "count" }`.
|
|
153
|
+
*/
|
|
154
|
+
interface AppRollupConfig {
|
|
155
|
+
/** The app table whose rows are aggregated. */
|
|
156
|
+
readonly table: string;
|
|
157
|
+
/** The column of `table` that references this table. */
|
|
158
|
+
readonly via: string;
|
|
159
|
+
/** `sum` of no rows is 0; `min`, `max` and `avg` of no rows are null. */
|
|
160
|
+
readonly aggregate: AppRollupAggregate;
|
|
161
|
+
/**
|
|
162
|
+
* The column of `table` the aggregate reads: a number for `sum` and `avg`, a
|
|
163
|
+
* number, date, time or text for `min` and `max`. `count` takes none and
|
|
164
|
+
* counts rows.
|
|
165
|
+
*/
|
|
166
|
+
readonly column?: string;
|
|
167
|
+
/**
|
|
168
|
+
* Only the rows whose select column (a `text` column with `options`) holds
|
|
169
|
+
* `equals`.
|
|
170
|
+
*/
|
|
171
|
+
readonly where?: {
|
|
172
|
+
readonly column: string;
|
|
173
|
+
readonly equals: string;
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/** The `column` of the app table row that this table's `via` column references. */
|
|
177
|
+
interface AppLookupConfig {
|
|
178
|
+
/** A column of this table that references another app table. */
|
|
179
|
+
readonly via: string;
|
|
180
|
+
/** A column of the referenced table. */
|
|
181
|
+
readonly column: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The subject an app table registers. The table, id type and tenant column come
|
|
185
|
+
* from the table itself.
|
|
186
|
+
*/
|
|
187
|
+
interface AppTableSubject {
|
|
188
|
+
/** The subject type, lowercase letters, digits and underscores. */
|
|
189
|
+
readonly type: string;
|
|
190
|
+
/** The column `subject_title` returns. */
|
|
191
|
+
readonly title?: string;
|
|
192
|
+
/**
|
|
193
|
+
* The path `subject_url` returns, with `{column}` placeholders:
|
|
194
|
+
* `/projects/{id}`.
|
|
195
|
+
*/
|
|
196
|
+
readonly url?: string;
|
|
197
|
+
/** The columns a search index reads. */
|
|
198
|
+
readonly search?: {
|
|
199
|
+
readonly title?: string;
|
|
200
|
+
readonly body?: readonly string[];
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* A permission key per action that `can_subject` checks; see
|
|
204
|
+
* `SubjectConfig.permissions`.
|
|
205
|
+
*/
|
|
206
|
+
readonly permissions?: Readonly<Record<string, string>>;
|
|
207
|
+
/**
|
|
208
|
+
* Adds a `rank text collate "C"` column for `move()` (ADR 0021), ordered
|
|
209
|
+
* within `group` when set.
|
|
210
|
+
*/
|
|
211
|
+
readonly rank?: true | {
|
|
212
|
+
readonly group?: string;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Adds a `deleted_at timestamptz` column that blocks treat as the soft-delete
|
|
216
|
+
* time.
|
|
217
|
+
*/
|
|
218
|
+
readonly softDelete?: boolean;
|
|
219
|
+
/**
|
|
220
|
+
* Registers the table with the versions block: `true` snapshots every column
|
|
221
|
+
* of the table on each change; `columns` and `auto` narrow it.
|
|
222
|
+
*/
|
|
223
|
+
readonly versions?: true | AppTableVersions;
|
|
224
|
+
}
|
|
225
|
+
/** What the versions block keeps of an app table's rows. */
|
|
226
|
+
interface AppTableVersions {
|
|
227
|
+
/**
|
|
228
|
+
* The columns a snapshot copies and a restore writes back; every column of
|
|
229
|
+
* the table by default.
|
|
230
|
+
*/
|
|
231
|
+
readonly columns?: readonly string[];
|
|
232
|
+
/** Snapshot on each change to `columns`, debounced; `true` by default. */
|
|
233
|
+
readonly auto?: boolean;
|
|
234
|
+
}
|
|
235
|
+
type AppTablesConfig = Readonly<Record<string, AppTableConfig>>;
|
|
236
|
+
//#endregion
|
|
237
|
+
//#region src/config/names.d.ts
|
|
238
|
+
/** The steps `better-supabase gen` runs, in the order it runs them. */
|
|
239
|
+
declare const GEN_TASKS: readonly ["types", "sql", "spec", "seed", "scaffold", "env"];
|
|
240
|
+
/** Glue `better-supabase init` and `add` write for a framework or runtime. */
|
|
241
|
+
declare const INTEGRATION_NAMES: readonly ["next", "hono", "orpc", "edge", "expo", "mcp", "client", "react"];
|
|
242
|
+
/**
|
|
243
|
+
* An integration as `init`, `add` and `/create` show it, and the integrations
|
|
244
|
+
* it needs.
|
|
245
|
+
*/
|
|
246
|
+
interface IntegrationInfo {
|
|
247
|
+
readonly title: string;
|
|
248
|
+
/** What `init` or `add` writes, one sentence. */
|
|
249
|
+
readonly description: string;
|
|
250
|
+
readonly requires: readonly (typeof INTEGRATION_NAMES)[number][];
|
|
251
|
+
}
|
|
252
|
+
declare const INTEGRATION_INFO: Readonly<Record<(typeof INTEGRATION_NAMES)[number], IntegrationInfo>>;
|
|
253
|
+
/** The agent folders `better-supabase skills install` writes to. */
|
|
254
|
+
declare const SKILLS_AGENTS: readonly ["cursor", "claude", "agents"];
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region src/config/generator-metadata.d.ts
|
|
257
|
+
/**
|
|
258
|
+
* A copy of `@supabase/postgrest-typegen`'s `GeneratorMetadata` contract
|
|
259
|
+
* (version 1), so the published types don't reference the package: it is an
|
|
260
|
+
* optional peer that only the CLI loads.
|
|
261
|
+
* `tests/config/generator-metadata.test-d.ts` checks the copy against the
|
|
262
|
+
* pinned version.
|
|
263
|
+
*/
|
|
264
|
+
interface PostgresColumn {
|
|
265
|
+
table_id: number;
|
|
266
|
+
schema: string;
|
|
267
|
+
table: string;
|
|
268
|
+
id: string;
|
|
269
|
+
ordinal_position: number;
|
|
270
|
+
name: string;
|
|
271
|
+
default_value: unknown;
|
|
272
|
+
data_type: string;
|
|
273
|
+
format: string;
|
|
274
|
+
type_schema: string;
|
|
275
|
+
is_identity: boolean;
|
|
276
|
+
identity_generation: "ALWAYS" | "BY DEFAULT" | null;
|
|
277
|
+
is_generated: boolean;
|
|
278
|
+
is_nullable: boolean;
|
|
279
|
+
is_updatable: boolean;
|
|
280
|
+
is_unique: boolean;
|
|
281
|
+
enums: string[];
|
|
282
|
+
check: string | null;
|
|
283
|
+
comment: string | null;
|
|
284
|
+
}
|
|
285
|
+
interface PostgresFunctionArg {
|
|
286
|
+
mode: "in" | "inout" | "out" | "table" | "variadic";
|
|
287
|
+
name: string;
|
|
288
|
+
type_id: number;
|
|
289
|
+
has_default: boolean | null;
|
|
290
|
+
}
|
|
291
|
+
interface PostgresFunction {
|
|
292
|
+
id: number;
|
|
293
|
+
schema: string;
|
|
294
|
+
name: string;
|
|
295
|
+
language: string;
|
|
296
|
+
definition: string;
|
|
297
|
+
complete_statement: string;
|
|
298
|
+
args: PostgresFunctionArg[];
|
|
299
|
+
argument_types: string;
|
|
300
|
+
identity_argument_types: string;
|
|
301
|
+
return_type_id: number;
|
|
302
|
+
return_type: string;
|
|
303
|
+
return_type_relation_id: number | null;
|
|
304
|
+
is_set_returning_function: boolean;
|
|
305
|
+
prorows: number | null;
|
|
306
|
+
behavior: "IMMUTABLE" | "STABLE" | "VOLATILE";
|
|
307
|
+
security_definer: boolean;
|
|
308
|
+
config_params: {
|
|
309
|
+
[x: string]: string;
|
|
310
|
+
} | null;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* A reference to a `types` entry by oid; `null` names when it is not in
|
|
314
|
+
* `types`.
|
|
315
|
+
*/
|
|
316
|
+
interface RpcTypeReference {
|
|
317
|
+
type_id: number;
|
|
318
|
+
format: string | null;
|
|
319
|
+
type_schema: string | null;
|
|
320
|
+
}
|
|
321
|
+
interface RpcFunctionArg extends RpcTypeReference {
|
|
322
|
+
name: string;
|
|
323
|
+
mode: "in" | "inout" | "variadic";
|
|
324
|
+
has_default: boolean;
|
|
325
|
+
relation_id: number | null;
|
|
326
|
+
}
|
|
327
|
+
interface RpcReturnColumn extends RpcTypeReference {
|
|
328
|
+
name: string;
|
|
329
|
+
}
|
|
330
|
+
interface RpcFunctionReturns extends RpcTypeReference {
|
|
331
|
+
relation_id: number | null;
|
|
332
|
+
columns: RpcReturnColumn[] | null;
|
|
333
|
+
}
|
|
334
|
+
interface RpcFunctionOverload {
|
|
335
|
+
function_id: number;
|
|
336
|
+
args: RpcFunctionArg[];
|
|
337
|
+
returns: RpcFunctionReturns;
|
|
338
|
+
is_set_returning: boolean;
|
|
339
|
+
rows_estimate: number | null;
|
|
340
|
+
setof_options: {
|
|
341
|
+
from: string;
|
|
342
|
+
to: string;
|
|
343
|
+
is_one_to_one: boolean;
|
|
344
|
+
is_setof_return: boolean;
|
|
345
|
+
} | null;
|
|
346
|
+
computed_field_of: number | null;
|
|
347
|
+
error: string | null;
|
|
348
|
+
}
|
|
349
|
+
/** A function PostgREST exposes under `/rpc`, with its overloads resolved. */
|
|
350
|
+
interface RpcFunction {
|
|
351
|
+
schema: string;
|
|
352
|
+
name: string;
|
|
353
|
+
overloads: RpcFunctionOverload[];
|
|
354
|
+
}
|
|
355
|
+
interface GeneratorMetadata {
|
|
356
|
+
version: 1;
|
|
357
|
+
schemas: {
|
|
358
|
+
id: number;
|
|
359
|
+
name: string;
|
|
360
|
+
owner: string;
|
|
361
|
+
}[];
|
|
362
|
+
tables: {
|
|
363
|
+
bytes: number;
|
|
364
|
+
comment: string | null;
|
|
365
|
+
dead_rows_estimate: number;
|
|
366
|
+
id: number;
|
|
367
|
+
live_rows_estimate: number;
|
|
368
|
+
name: string;
|
|
369
|
+
replica_identity: "DEFAULT" | "FULL" | "INDEX" | "NOTHING";
|
|
370
|
+
rls_enabled: boolean;
|
|
371
|
+
rls_forced: boolean;
|
|
372
|
+
schema: string;
|
|
373
|
+
size: string;
|
|
374
|
+
}[];
|
|
375
|
+
foreignTables: {
|
|
376
|
+
comment: string | null;
|
|
377
|
+
id: number;
|
|
378
|
+
name: string;
|
|
379
|
+
schema: string;
|
|
380
|
+
}[];
|
|
381
|
+
views: {
|
|
382
|
+
comment: string | null;
|
|
383
|
+
id: number;
|
|
384
|
+
is_insert_enabled?: boolean | undefined;
|
|
385
|
+
is_updatable: boolean;
|
|
386
|
+
is_update_enabled?: boolean | undefined;
|
|
387
|
+
name: string;
|
|
388
|
+
schema: string;
|
|
389
|
+
}[];
|
|
390
|
+
materializedViews: {
|
|
391
|
+
comment: string | null;
|
|
392
|
+
id: number;
|
|
393
|
+
is_populated: boolean;
|
|
394
|
+
name: string;
|
|
395
|
+
schema: string;
|
|
396
|
+
}[];
|
|
397
|
+
columns: PostgresColumn[];
|
|
398
|
+
primaryKeys: {
|
|
399
|
+
schema: string;
|
|
400
|
+
table_name: string;
|
|
401
|
+
name: string;
|
|
402
|
+
table_id: number;
|
|
403
|
+
}[];
|
|
404
|
+
relationships: {
|
|
405
|
+
foreign_key_name: string;
|
|
406
|
+
schema: string;
|
|
407
|
+
relation: string;
|
|
408
|
+
columns: string[];
|
|
409
|
+
is_one_to_one: boolean;
|
|
410
|
+
referenced_schema: string;
|
|
411
|
+
referenced_relation: string;
|
|
412
|
+
referenced_columns: string[];
|
|
413
|
+
}[];
|
|
414
|
+
functions: PostgresFunction[];
|
|
415
|
+
types: {
|
|
416
|
+
id: number;
|
|
417
|
+
name: string;
|
|
418
|
+
schema: string;
|
|
419
|
+
format: string;
|
|
420
|
+
enums: string[];
|
|
421
|
+
attributes: {
|
|
422
|
+
name: string;
|
|
423
|
+
type_id: number;
|
|
424
|
+
}[];
|
|
425
|
+
comment: string | null;
|
|
426
|
+
type_relation_id: number | null;
|
|
427
|
+
}[];
|
|
428
|
+
/**
|
|
429
|
+
* Derived from `functions`; generators resolve it themselves when it is
|
|
430
|
+
* absent, which is how better-supabase stores metadata.
|
|
431
|
+
*/
|
|
432
|
+
rpcFunctions?: RpcFunction[] | undefined;
|
|
433
|
+
}
|
|
434
|
+
//#endregion
|
|
435
|
+
//#region src/config/snapshot.d.ts
|
|
436
|
+
/**
|
|
437
|
+
* What `better-supabase introspect` reads from Postgres. `generator` is the
|
|
438
|
+
* `@supabase/postgrest-typegen` contract (the same metadata behind `supabase
|
|
439
|
+
* gen types`); `extras` holds what that contract leaves out. Codegen and doctor
|
|
440
|
+
* both work from this snapshot, so either can run offline from a saved file.
|
|
441
|
+
*/
|
|
442
|
+
interface Snapshot {
|
|
443
|
+
readonly $schema?: string;
|
|
444
|
+
readonly version: 2;
|
|
445
|
+
/** Every schema that was read, including helper schemas for doctor. */
|
|
446
|
+
readonly schemas: readonly string[];
|
|
447
|
+
readonly generator: GeneratorMetadata;
|
|
448
|
+
readonly extras: SnapshotExtras;
|
|
449
|
+
}
|
|
450
|
+
/** Catalog details `GeneratorMetadata` does not carry. */
|
|
451
|
+
interface SnapshotExtras {
|
|
452
|
+
readonly tables: readonly ExtrasTable[];
|
|
453
|
+
readonly buckets: readonly SnapshotBucket[];
|
|
454
|
+
/** Tables in the `supabase_realtime` publication, as `schema.table`. */
|
|
455
|
+
readonly realtime: readonly string[];
|
|
456
|
+
/**
|
|
457
|
+
* `alter role ... set` values for the Data API roles (`authenticator`), such
|
|
458
|
+
* as `pgrst.db_aggregates_enabled`. Absent in older snapshots.
|
|
459
|
+
*/
|
|
460
|
+
readonly roleSettings?: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
461
|
+
/**
|
|
462
|
+
* Functions that policies in the read schemas call, plus functions in those
|
|
463
|
+
* schemas with `set` options. Absent in older snapshots.
|
|
464
|
+
*/
|
|
465
|
+
readonly functions?: readonly ExtrasFunction[];
|
|
466
|
+
/**
|
|
467
|
+
* The Postgres functions `supabase/config.toml` configures as Auth hooks, in
|
|
468
|
+
* any schema. Absent in older snapshots and without a `config.toml`.
|
|
469
|
+
*/
|
|
470
|
+
readonly hooks?: readonly ExtrasHook[];
|
|
471
|
+
/**
|
|
472
|
+
* Comments of the functions in the read schemas that carry a gen tag
|
|
473
|
+
* (`@notNull`), keyed by `schema.name(signature)`. Absent when none do.
|
|
474
|
+
*/
|
|
475
|
+
readonly functionComments?: Readonly<Record<string, string>>;
|
|
476
|
+
/**
|
|
477
|
+
* Set when the snapshot comes from a `GeneratorMetadata` document alone (`gen
|
|
478
|
+
* --metadata`): unique keys, checks and foreign keys are inferred from the
|
|
479
|
+
* columns and relationships, and the rest is empty, so doctor skips the rules
|
|
480
|
+
* that read it.
|
|
481
|
+
*/
|
|
482
|
+
readonly fromMetadata?: true;
|
|
483
|
+
}
|
|
484
|
+
/** An `[auth.hook.<name>]` with a `pg-functions://` URI. */
|
|
485
|
+
interface ExtrasHook {
|
|
486
|
+
/** `custom_access_token`, `send_email`, ... */
|
|
487
|
+
readonly hook: string;
|
|
488
|
+
readonly schema: string;
|
|
489
|
+
readonly name: string;
|
|
490
|
+
/** Every overload with that name; empty when the function does not exist. */
|
|
491
|
+
readonly functions: readonly ExtrasHookFunction[];
|
|
492
|
+
}
|
|
493
|
+
interface ExtrasHookFunction extends ExtrasFunction {
|
|
494
|
+
/**
|
|
495
|
+
* Of `supabase_auth_admin`, `authenticated` and `anon`, the roles that may
|
|
496
|
+
* execute it (directly or through `public`).
|
|
497
|
+
*/
|
|
498
|
+
readonly execute: readonly string[];
|
|
499
|
+
/** Whether `public` may execute it (the default until revoked). */
|
|
500
|
+
readonly publicExecute: boolean;
|
|
501
|
+
/** Of the same roles, those with `usage` on its schema. */
|
|
502
|
+
readonly schemaUsage: readonly string[];
|
|
503
|
+
/** The function body (`pg_proc.prosrc`). Absent in snapshots that predate it. */
|
|
504
|
+
readonly source?: string;
|
|
505
|
+
}
|
|
506
|
+
/** A function as doctor needs it for RLS checks, in any schema. */
|
|
507
|
+
interface ExtrasFunction {
|
|
508
|
+
readonly schema: string;
|
|
509
|
+
readonly name: string;
|
|
510
|
+
/** Identity arguments, e.g. `organization uuid`. */
|
|
511
|
+
readonly signature: string;
|
|
512
|
+
/** `sql`, `plpgsql`, `c`, ... */
|
|
513
|
+
readonly language: string;
|
|
514
|
+
readonly volatility: "immutable" | "stable" | "volatile";
|
|
515
|
+
readonly securityDefiner: boolean;
|
|
516
|
+
/** `set` options, e.g. `{ statement_timeout: '5s' }`. */
|
|
517
|
+
readonly settings: Readonly<Record<string, string>>;
|
|
518
|
+
/**
|
|
519
|
+
* Which of `anon` and `authenticated` may execute it. Absent in older
|
|
520
|
+
* snapshots.
|
|
521
|
+
*/
|
|
522
|
+
readonly execute?: readonly string[];
|
|
523
|
+
}
|
|
524
|
+
interface ExtrasTable {
|
|
525
|
+
/** Table oid, matching `GeneratorMetadata.tables[].id`. */
|
|
526
|
+
readonly id: number;
|
|
527
|
+
readonly schema: string;
|
|
528
|
+
readonly name: string;
|
|
529
|
+
/** Primary key columns in key order. */
|
|
530
|
+
readonly primaryKey: readonly string[];
|
|
531
|
+
readonly uniques: readonly CatalogUnique[];
|
|
532
|
+
readonly foreignKeys: readonly {
|
|
533
|
+
readonly name: string;
|
|
534
|
+
readonly onDelete: ForeignKeyAction;
|
|
535
|
+
readonly onUpdate: ForeignKeyAction;
|
|
536
|
+
}[];
|
|
537
|
+
readonly checks: readonly CatalogCheck[];
|
|
538
|
+
readonly indexes: readonly CatalogIndex[];
|
|
539
|
+
readonly policies: readonly CatalogPolicy[];
|
|
540
|
+
readonly triggers: readonly CatalogTrigger[];
|
|
541
|
+
readonly grants: readonly CatalogGrant[];
|
|
542
|
+
/** Absent in snapshots taken before column grants were introspected. */
|
|
543
|
+
readonly columnGrants?: readonly CatalogColumnGrant[];
|
|
544
|
+
/**
|
|
545
|
+
* Postgres estimates at least `LARGE_TABLE_ROWS` rows; the `unbounded-read`
|
|
546
|
+
* lint reads it.
|
|
547
|
+
*/
|
|
548
|
+
readonly large?: true;
|
|
549
|
+
/** The partitioned parent as `schema.name`, when the table is a partition. */
|
|
550
|
+
readonly partitionOf?: string;
|
|
551
|
+
}
|
|
552
|
+
type ForeignKeyAction = "no action" | "restrict" | "cascade" | "set null" | "set default";
|
|
553
|
+
interface CatalogUnique {
|
|
554
|
+
readonly name: string;
|
|
555
|
+
readonly columns: readonly string[];
|
|
556
|
+
}
|
|
557
|
+
interface CatalogCheck {
|
|
558
|
+
readonly name: string;
|
|
559
|
+
readonly definition: string;
|
|
560
|
+
}
|
|
561
|
+
interface CatalogIndex {
|
|
562
|
+
readonly name: string;
|
|
563
|
+
readonly columns: readonly string[];
|
|
564
|
+
readonly unique: boolean;
|
|
565
|
+
readonly primary: boolean;
|
|
566
|
+
readonly partial: boolean;
|
|
567
|
+
/** Access method (`btree`, `gin`, `gist`, ...). Absent in older snapshots. */
|
|
568
|
+
readonly method?: string;
|
|
569
|
+
/**
|
|
570
|
+
* The `where` of a partial index, as Postgres prints it. Absent in older
|
|
571
|
+
* snapshots.
|
|
572
|
+
*/
|
|
573
|
+
readonly predicate?: string | null;
|
|
574
|
+
}
|
|
575
|
+
interface CatalogPolicy {
|
|
576
|
+
readonly name: string;
|
|
577
|
+
readonly command: "all" | "select" | "insert" | "update" | "delete";
|
|
578
|
+
readonly roles: readonly string[];
|
|
579
|
+
readonly permissive: boolean;
|
|
580
|
+
readonly using: string | null;
|
|
581
|
+
readonly check: string | null;
|
|
582
|
+
/**
|
|
583
|
+
* Functions the policy expressions call, as `schema.name`, from `pg_depend`.
|
|
584
|
+
* Absent in older snapshots.
|
|
585
|
+
*/
|
|
586
|
+
readonly functions?: readonly string[];
|
|
587
|
+
}
|
|
588
|
+
interface CatalogTrigger {
|
|
589
|
+
readonly name: string;
|
|
590
|
+
readonly timing: "before" | "after" | "instead of";
|
|
591
|
+
readonly events: readonly ("insert" | "update" | "delete" | "truncate")[];
|
|
592
|
+
readonly level: "row" | "statement";
|
|
593
|
+
readonly function: string;
|
|
594
|
+
/** The `create trigger` arguments, when there are any. */
|
|
595
|
+
readonly args?: readonly string[];
|
|
596
|
+
/**
|
|
597
|
+
* The function's body, only for functions that call `realtime.send()` or
|
|
598
|
+
* `realtime.broadcast_changes()`, other than `broadcast_topic()`.
|
|
599
|
+
*/
|
|
600
|
+
readonly source?: string;
|
|
601
|
+
/** The function's comment, for the same functions as `source`. */
|
|
602
|
+
readonly comment?: string;
|
|
603
|
+
}
|
|
604
|
+
interface CatalogGrant {
|
|
605
|
+
readonly role: string;
|
|
606
|
+
readonly privileges: readonly string[];
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
* A column-level `select`, `insert` or `update` grant to `anon` or
|
|
610
|
+
* `authenticated`.
|
|
611
|
+
*/
|
|
612
|
+
interface CatalogColumnGrant {
|
|
613
|
+
readonly column: string;
|
|
614
|
+
readonly role: string;
|
|
615
|
+
readonly privileges: readonly string[];
|
|
616
|
+
}
|
|
617
|
+
interface SnapshotBucket {
|
|
618
|
+
readonly id: string;
|
|
619
|
+
readonly public: boolean;
|
|
620
|
+
readonly fileSizeLimit: number | null;
|
|
621
|
+
readonly allowedMimeTypes: readonly string[] | null;
|
|
622
|
+
/** `versioning_status`; absent when Storage has no versioning. */
|
|
623
|
+
readonly versioning?: "DISABLED" | "ENABLED" | "SUSPENDED" | null;
|
|
624
|
+
/** `lifecycle_configuration`; absent when Storage has no lifecycles. */
|
|
625
|
+
readonly lifecycle?: unknown;
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* The snapshot joined into one record per table, function and enum. Codegen and
|
|
629
|
+
* doctor read this view rather than the raw snapshot.
|
|
630
|
+
*/
|
|
631
|
+
interface Catalog {
|
|
632
|
+
readonly schemas: readonly string[];
|
|
633
|
+
readonly tables: readonly CatalogTable[];
|
|
634
|
+
readonly enums: readonly CatalogEnum[];
|
|
635
|
+
readonly functions: readonly CatalogFunction[];
|
|
636
|
+
readonly buckets: readonly SnapshotBucket[];
|
|
637
|
+
readonly realtime: readonly string[];
|
|
638
|
+
}
|
|
639
|
+
interface CatalogTable {
|
|
640
|
+
readonly id: number;
|
|
641
|
+
readonly schema: string;
|
|
642
|
+
readonly name: string;
|
|
643
|
+
/** Materialized views count as views; foreign tables as tables. */
|
|
644
|
+
readonly kind: "table" | "view";
|
|
645
|
+
readonly rls: boolean;
|
|
646
|
+
readonly forceRls: boolean;
|
|
647
|
+
readonly replicaIdentity: "DEFAULT" | "INDEX" | "FULL" | "NOTHING" | null;
|
|
648
|
+
/** Inserts work (always true for tables). */
|
|
649
|
+
readonly insertable: boolean;
|
|
650
|
+
/** Updates work (always true for tables). */
|
|
651
|
+
readonly updatable: boolean;
|
|
652
|
+
readonly comment: string | null;
|
|
653
|
+
readonly columns: readonly CatalogColumn[];
|
|
654
|
+
readonly primaryKey: readonly string[];
|
|
655
|
+
readonly uniques: readonly CatalogUnique[];
|
|
656
|
+
readonly foreignKeys: readonly CatalogForeignKey[];
|
|
657
|
+
readonly checks: readonly CatalogCheck[];
|
|
658
|
+
readonly indexes: readonly CatalogIndex[];
|
|
659
|
+
readonly policies: readonly CatalogPolicy[];
|
|
660
|
+
readonly triggers: readonly CatalogTrigger[];
|
|
661
|
+
readonly grants: readonly CatalogGrant[];
|
|
662
|
+
/** Absent in snapshots taken before column grants were introspected. */
|
|
663
|
+
readonly columnGrants?: readonly CatalogColumnGrant[];
|
|
664
|
+
/** The partitioned parent as `schema.name`, when the table is a partition. */
|
|
665
|
+
readonly partitionOf?: string;
|
|
666
|
+
}
|
|
667
|
+
interface CatalogColumn {
|
|
668
|
+
readonly name: string;
|
|
669
|
+
/** Type name; the element type for arrays (`uuid`, `int8`, `note_kind`). */
|
|
670
|
+
readonly udt: string;
|
|
671
|
+
/** Raw type name as Postgres reports it (`_text` for `text[]`). */
|
|
672
|
+
readonly format: string;
|
|
673
|
+
readonly typeSchema: string;
|
|
674
|
+
readonly isArray: boolean;
|
|
675
|
+
readonly isEnum: boolean;
|
|
676
|
+
readonly nullable: boolean;
|
|
677
|
+
readonly hasDefault: boolean;
|
|
678
|
+
readonly default: string | null;
|
|
679
|
+
readonly identity: "always" | "by default" | null;
|
|
680
|
+
readonly generated: boolean;
|
|
681
|
+
readonly updatable: boolean;
|
|
682
|
+
readonly comment: string | null;
|
|
683
|
+
}
|
|
684
|
+
interface CatalogForeignKey {
|
|
685
|
+
readonly name: string;
|
|
686
|
+
readonly columns: readonly string[];
|
|
687
|
+
readonly refSchema: string;
|
|
688
|
+
readonly refTable: string;
|
|
689
|
+
readonly refColumns: readonly string[];
|
|
690
|
+
readonly oneToOne: boolean;
|
|
691
|
+
readonly onDelete: ForeignKeyAction;
|
|
692
|
+
readonly onUpdate: ForeignKeyAction;
|
|
693
|
+
}
|
|
694
|
+
interface CatalogEnum {
|
|
695
|
+
readonly schema: string;
|
|
696
|
+
readonly name: string;
|
|
697
|
+
readonly values: readonly string[];
|
|
698
|
+
}
|
|
699
|
+
interface CatalogFunction {
|
|
700
|
+
readonly schema: string;
|
|
701
|
+
readonly name: string;
|
|
702
|
+
/** Signature that tells overloads apart, e.g. `a integer, b text`. */
|
|
703
|
+
readonly signature: string;
|
|
704
|
+
readonly args: readonly CatalogFunctionArg[];
|
|
705
|
+
/** Columns for `returns table (...)` functions. */
|
|
706
|
+
readonly returnsTable: readonly {
|
|
707
|
+
readonly name: string;
|
|
708
|
+
readonly udt: string;
|
|
709
|
+
/** Schema of the column's type, when typegen knows it. */
|
|
710
|
+
readonly typeSchema?: string;
|
|
711
|
+
}[] | null;
|
|
712
|
+
/** Return type name (`int4`, `_text`, a table's row type). */
|
|
713
|
+
readonly returns: string;
|
|
714
|
+
/** Schema of the return type, when typegen knows it. */
|
|
715
|
+
readonly returnsSchema?: string;
|
|
716
|
+
/** `schema.table` when the function returns rows of a table or view. */
|
|
717
|
+
readonly returnsRelation: string | null;
|
|
718
|
+
readonly returnsSet: boolean;
|
|
719
|
+
readonly volatility: "immutable" | "stable" | "volatile";
|
|
720
|
+
readonly securityDefiner: boolean;
|
|
721
|
+
readonly language: string;
|
|
722
|
+
/** `search_path` from `SET search_path`, or `null` when unset. */
|
|
723
|
+
readonly searchPath: string | null;
|
|
724
|
+
/** The function's comment, when it carries a gen tag such as `@notNull`. */
|
|
725
|
+
readonly comment?: string;
|
|
726
|
+
}
|
|
727
|
+
interface CatalogFunctionArg {
|
|
728
|
+
readonly name: string;
|
|
729
|
+
readonly udt: string;
|
|
730
|
+
/** Schema of the argument's type, when typegen knows it. */
|
|
731
|
+
readonly typeSchema?: string;
|
|
732
|
+
readonly isArray: boolean;
|
|
733
|
+
readonly hasDefault: boolean;
|
|
734
|
+
}
|
|
735
|
+
//#endregion
|
|
736
|
+
//#region src/config/types/tooling.d.ts
|
|
737
|
+
interface OpenApiConfig {
|
|
738
|
+
/**
|
|
739
|
+
* Module exporting the document (or a function returning it) as `openapi` or
|
|
740
|
+
* default.
|
|
741
|
+
*/
|
|
742
|
+
readonly entry?: string;
|
|
743
|
+
/** JSON file `better-supabase spec emit openapi` writes. */
|
|
744
|
+
readonly output?: string;
|
|
745
|
+
}
|
|
746
|
+
/** A docs UI `spec emit --ui` writes next to an OpenAPI document. */
|
|
747
|
+
type SpecUiName = "scalar" | "swagger" | "redoc" | "elements" | "rapidoc";
|
|
748
|
+
/** One document `better-supabase spec emit` writes. */
|
|
749
|
+
interface SpecOutputConfig {
|
|
750
|
+
/** A format id: `openapi`, `asyncapi` or `arazzo`. */
|
|
751
|
+
readonly format: string;
|
|
752
|
+
/** Defaults to the format's default version, e.g. `3.1` for OpenAPI. */
|
|
753
|
+
readonly version?: string;
|
|
754
|
+
/** File to write, relative to the root. Defaults to the format's file name. */
|
|
755
|
+
readonly output?: string;
|
|
756
|
+
/** Overlay files (JSON or YAML), applied in order. */
|
|
757
|
+
readonly overlays?: readonly string[];
|
|
758
|
+
/**
|
|
759
|
+
* Defaults to `yaml` when `output` ends in `.yaml` or `.yml`, otherwise
|
|
760
|
+
* `json`.
|
|
761
|
+
*/
|
|
762
|
+
readonly serialize?: "json" | "yaml";
|
|
763
|
+
/**
|
|
764
|
+
* Also writes a reference page (`openapi.html` for `openapi.json`) next to
|
|
765
|
+
* OpenAPI outputs.
|
|
766
|
+
*/
|
|
767
|
+
readonly ui?: SpecUiName;
|
|
768
|
+
}
|
|
769
|
+
interface SpecsConfig {
|
|
770
|
+
/**
|
|
771
|
+
* Module exporting a `defineApi()` result (or a function returning one) as
|
|
772
|
+
* `api` or default.
|
|
773
|
+
*/
|
|
774
|
+
readonly entry?: string;
|
|
775
|
+
/** The documents to write. Defaults to one OpenAPI document. */
|
|
776
|
+
readonly outputs?: readonly SpecOutputConfig[];
|
|
777
|
+
/**
|
|
778
|
+
* The lowest severity that fails `spec emit`, `check` and `validate`.
|
|
779
|
+
* Defaults to `error`.
|
|
780
|
+
*/
|
|
781
|
+
readonly failOn?: "error" | "warning" | "never";
|
|
782
|
+
/**
|
|
783
|
+
* Also write the diagnostics manifest (JSON) to this file, like `spec
|
|
784
|
+
* --manifest`.
|
|
785
|
+
*/
|
|
786
|
+
readonly manifest?: string;
|
|
787
|
+
}
|
|
788
|
+
/** A step `better-supabase gen` runs. */
|
|
789
|
+
type GenTask = (typeof GEN_TASKS)[number];
|
|
790
|
+
interface GenConfig {
|
|
791
|
+
/**
|
|
792
|
+
* The steps `better-supabase gen` runs, in this order: `types` (the generated
|
|
793
|
+
* modules and `generators`), `sql` (`sql sync`), `spec` (`spec emit`),
|
|
794
|
+
* `seed`, `scaffold` (`scaffold api`, its generated file only) and `env`.
|
|
795
|
+
* Without a list, `types` runs, plus `sql` when `blocks` or
|
|
796
|
+
* `realtime.policies` is set, `spec` and `seed` when their entry file exists,
|
|
797
|
+
* and `scaffold` when `scaffold.api` is set. `env` runs only when listed,
|
|
798
|
+
* because it needs the local stack. A listed step always runs.
|
|
799
|
+
*/
|
|
800
|
+
readonly tasks?: readonly GenTask[];
|
|
801
|
+
/** Milliseconds between checks in `gen --watch` and `spec emit --watch`. */
|
|
802
|
+
readonly watchInterval?: number;
|
|
803
|
+
}
|
|
804
|
+
/** Glue `better-supabase init` and `add` write for a framework or runtime. */
|
|
805
|
+
type IntegrationName = (typeof INTEGRATION_NAMES)[number];
|
|
806
|
+
interface EnvFileConfig {
|
|
807
|
+
/** Env file `better-supabase env` writes. Defaults to `.env.local`. */
|
|
808
|
+
readonly output?: string;
|
|
809
|
+
/**
|
|
810
|
+
* Prefix for the browser variables, such as `NEXT_PUBLIC_`; `'none'` for no
|
|
811
|
+
* prefix. Detected from the framework by default.
|
|
812
|
+
*/
|
|
813
|
+
readonly prefix?: string;
|
|
814
|
+
}
|
|
815
|
+
interface ScaffoldApiConfig {
|
|
816
|
+
/** Detected from `package.json` when the project has exactly one of them. */
|
|
817
|
+
readonly framework?: "hono" | "next";
|
|
818
|
+
/** Tables to serve. Defaults to every table and view in the public schema. */
|
|
819
|
+
readonly tables?: readonly string[];
|
|
820
|
+
/**
|
|
821
|
+
* The API module's name: `lib/<name>.ts` and `lib/<name>.generated.ts`.
|
|
822
|
+
* Defaults to `api`.
|
|
823
|
+
*/
|
|
824
|
+
readonly name?: string;
|
|
825
|
+
/** Where the resources are served. Defaults to `/api`. */
|
|
826
|
+
readonly basePath?: string;
|
|
827
|
+
}
|
|
828
|
+
interface ScaffoldConfig {
|
|
829
|
+
/**
|
|
830
|
+
* What `better-supabase scaffold api` writes; the `scaffold` gen step keeps
|
|
831
|
+
* its generated file current.
|
|
832
|
+
*/
|
|
833
|
+
readonly api?: ScaffoldApiConfig;
|
|
834
|
+
}
|
|
835
|
+
/** An agent folder `better-supabase skills install` writes to. */
|
|
836
|
+
type SkillsAgent = (typeof SKILLS_AGENTS)[number];
|
|
837
|
+
interface SkillsConfig {
|
|
838
|
+
/** Defaults to the agent folders the project has, else `agents`. */
|
|
839
|
+
readonly agents?: readonly SkillsAgent[];
|
|
840
|
+
}
|
|
841
|
+
interface KeysConfig {
|
|
842
|
+
/**
|
|
843
|
+
* Signing key file `better-supabase keys` writes. Defaults to
|
|
844
|
+
* `supabase/signing_keys.json`.
|
|
845
|
+
*/
|
|
846
|
+
readonly output?: string;
|
|
847
|
+
}
|
|
848
|
+
interface DoctorConfig {
|
|
849
|
+
/** Finding codes to skip, e.g. `['BS204']`. */
|
|
850
|
+
readonly ignore?: readonly string[];
|
|
851
|
+
/** Run only these checks, e.g. `['BS100', 'BS304']`. */
|
|
852
|
+
readonly only?: readonly string[];
|
|
853
|
+
/** Treat warnings as errors. */
|
|
854
|
+
readonly strict?: boolean;
|
|
855
|
+
/**
|
|
856
|
+
* Report format: `text` (default), `sarif` (code scanning) or `github`
|
|
857
|
+
* (workflow annotations). `--json` still wins.
|
|
858
|
+
*/
|
|
859
|
+
readonly format?: "text" | "sarif" | "github";
|
|
860
|
+
/** Write the report to this file. */
|
|
861
|
+
readonly output?: string;
|
|
862
|
+
/**
|
|
863
|
+
* App source files doctor scans for API use (BS210). Globs relative to the
|
|
864
|
+
* root. Defaults to `['src/**\/*.{ts,tsx}']`.
|
|
865
|
+
*/
|
|
866
|
+
readonly sources?: readonly string[];
|
|
867
|
+
/**
|
|
868
|
+
* How many policies a security definer helper may appear in before BS206 asks
|
|
869
|
+
* for an inlinable `language sql stable` function. Defaults to 5.
|
|
870
|
+
*/
|
|
871
|
+
readonly policyHelperLimit?: number;
|
|
872
|
+
/**
|
|
873
|
+
* The BS405 limit in bytes. When the authorization provider's token hook has
|
|
874
|
+
* a budget, it replaces that budget and the whole token keeps 2048. Otherwise
|
|
875
|
+
* it limits the whole token's claims (default 2048).
|
|
876
|
+
*/
|
|
877
|
+
readonly claimsLimit?: number;
|
|
878
|
+
/** Which migrations the lock checks (BS229 to BS235) read. */
|
|
879
|
+
readonly migrationSafety?: MigrationSafetyConfig;
|
|
880
|
+
}
|
|
881
|
+
interface MigrationSafetyConfig {
|
|
882
|
+
/**
|
|
883
|
+
* The newest migration that is already applied everywhere, by file name
|
|
884
|
+
* (`20260101000000_init.sql`) or version (`20260101000000`). Offline, doctor
|
|
885
|
+
* checks only the migrations after it; with `--db-url` it checks the ones the
|
|
886
|
+
* database hasn't applied. `init` and `adopt` set it to the latest
|
|
887
|
+
* migration.
|
|
888
|
+
*/
|
|
889
|
+
readonly since?: string;
|
|
890
|
+
}
|
|
891
|
+
//#endregion
|
|
892
|
+
//#region src/preset/fields.d.ts
|
|
893
|
+
/**
|
|
894
|
+
* How `/create` and `init` show one value: its label and, where the label is
|
|
895
|
+
* not enough, a hint.
|
|
896
|
+
*/
|
|
897
|
+
interface PresetValueInfo {
|
|
898
|
+
readonly label: string;
|
|
899
|
+
readonly hint?: string;
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* One convention a preset sets. `values` and the field list are append-only: a
|
|
903
|
+
* code stores each value's index in `bits` bits, so a value keeps its index
|
|
904
|
+
* forever and a new value fits only while `values` stays within `bits`. A
|
|
905
|
+
* `multi` field stores one bit per value.
|
|
906
|
+
*/
|
|
907
|
+
interface PresetCodeField<K extends string = string, V extends string = string> {
|
|
908
|
+
readonly key: K;
|
|
909
|
+
readonly values: readonly V[];
|
|
910
|
+
readonly default: V | readonly V[];
|
|
911
|
+
readonly bits: number;
|
|
912
|
+
readonly multi?: true;
|
|
913
|
+
/**
|
|
914
|
+
* The code version that added the field; older codes decode it as its
|
|
915
|
+
* default.
|
|
916
|
+
*/
|
|
917
|
+
readonly since: number;
|
|
918
|
+
}
|
|
919
|
+
/** A convention field with the names `/create` and the `init` prompts show. */
|
|
920
|
+
interface PresetField<K extends string = string, V extends string = string> extends PresetCodeField<K, V> {
|
|
921
|
+
readonly label: string;
|
|
922
|
+
readonly labels: { readonly [P in V]: PresetValueInfo; };
|
|
923
|
+
}
|
|
924
|
+
/** The value each convention field takes. */
|
|
925
|
+
interface PresetConventions {
|
|
926
|
+
readonly framework: PresetFramework;
|
|
927
|
+
readonly platforms: "web" | "native" | "both";
|
|
928
|
+
readonly casing: "snake" | "camel";
|
|
929
|
+
readonly idType: "uuid" | "text" | "bigint" | "integer";
|
|
930
|
+
readonly scope: "tenant" | "user" | "none";
|
|
931
|
+
readonly tenantName: PresetTenantName;
|
|
932
|
+
readonly access: "roles" | "catalog" | "provider" | "custom";
|
|
933
|
+
readonly api: "none" | "api";
|
|
934
|
+
readonly integrations: readonly IntegrationName[];
|
|
935
|
+
}
|
|
936
|
+
/** A convention field's key. */
|
|
937
|
+
type PresetFieldKey = keyof PresetConventions;
|
|
938
|
+
/** The values a convention field takes. */
|
|
939
|
+
type PresetFieldValue<K extends PresetFieldKey> = ValueOf<K>;
|
|
940
|
+
type ValueOf<K extends PresetFieldKey> = PresetConventions[K] extends readonly (infer V extends string)[] ? V : Extract<PresetConventions[K], string>;
|
|
941
|
+
/** The tenant names a preset can set (`sql.naming.tenant`), in code order. */
|
|
942
|
+
declare const PRESET_TENANT_NAMES: readonly ["organization", "workspace", "team"];
|
|
943
|
+
type PresetTenantName = (typeof PRESET_TENANT_NAMES)[number];
|
|
944
|
+
/** The frameworks `/create` and `init --preset` set up glue for. */
|
|
945
|
+
declare const PRESET_FRAMEWORKS: readonly ["next", "vite", "tanstack-start", "expo", "sveltekit", "nuxt", "hono", "astro", "react-router"];
|
|
946
|
+
type PresetFramework = (typeof PRESET_FRAMEWORKS)[number];
|
|
947
|
+
/**
|
|
948
|
+
* The convention fields, in code order. Append new fields at the end with the
|
|
949
|
+
* next `since`, and never remove or reorder one.
|
|
950
|
+
*/
|
|
951
|
+
declare const PRESET_FIELDS: readonly PresetField<PresetFieldKey>[];
|
|
952
|
+
/** A convention field by key, with its values and labels typed. */
|
|
953
|
+
declare function presetField<K extends PresetFieldKey>(key: K): PresetField<K, ValueOf<K>>;
|
|
954
|
+
/** A field value's label, or the value itself when it has none. */
|
|
955
|
+
declare function presetValueLabel(key: PresetFieldKey, value: string): PresetValueInfo;
|
|
956
|
+
/**
|
|
957
|
+
* The integrations `init --preset` adds for a framework whatever the selection
|
|
958
|
+
* says: the framework's own one, when it has one, then what that one requires.
|
|
959
|
+
*/
|
|
960
|
+
declare function integrationsForFramework(framework: PresetFramework): readonly IntegrationName[];
|
|
961
|
+
type PresetPlatforms = PresetConventions["platforms"];
|
|
962
|
+
type PresetScope = PresetConventions["scope"];
|
|
963
|
+
type PresetAccess = PresetConventions["access"];
|
|
964
|
+
/** A block selection and its conventions: what a preset code encodes. */
|
|
965
|
+
interface Preset extends PresetConventions {
|
|
966
|
+
/**
|
|
967
|
+
* Block names (`blocks` keys in the config), as selected; `resolvePreset`
|
|
968
|
+
* adds what they require.
|
|
969
|
+
*/
|
|
970
|
+
readonly blocks: readonly string[];
|
|
971
|
+
}
|
|
972
|
+
/** The newest code version; `encodePreset` writes it. */
|
|
973
|
+
declare const PRESET_VERSION = 1;
|
|
974
|
+
/** Every convention at its default. */
|
|
975
|
+
declare const DEFAULT_CONVENTIONS: PresetConventions;
|
|
976
|
+
//#endregion
|
|
977
|
+
//#region src/preset/presets.d.ts
|
|
978
|
+
/** Where a named preset sits in the `/create` and `init` pickers. */
|
|
979
|
+
type PresetGroup = "starters" | "products" | "ai" | "platforms" | "everything";
|
|
980
|
+
/** The preset groups in display order, with their headings. */
|
|
981
|
+
declare const PRESET_GROUPS: Readonly<Record<PresetGroup, string>>;
|
|
982
|
+
/** A named starting point: a block selection with the default conventions. */
|
|
983
|
+
interface NamedPreset {
|
|
984
|
+
readonly name: string;
|
|
985
|
+
readonly title: string;
|
|
986
|
+
readonly description: string;
|
|
987
|
+
readonly group: PresetGroup;
|
|
988
|
+
/** The blocks it selects; `resolvePreset` adds what they require. */
|
|
989
|
+
readonly blocks: readonly string[];
|
|
990
|
+
/** The conventions it sets over the defaults, such as a user scope. */
|
|
991
|
+
readonly conventions?: Partial<PresetConventions>;
|
|
992
|
+
}
|
|
993
|
+
/** A named preset's name. */
|
|
994
|
+
type PresetName = "minimal" | "saas" | "consumer" | "crm" | "projects" | "helpdesk" | "commerce" | "marketplace" | "scheduling" | "people" | "drive" | "docs" | "invoicing" | "forms" | "ai" | "ai-chat" | "ai-agents" | "developer-api" | "automation" | "enterprise" | "admin" | "everything";
|
|
995
|
+
/** The named presets, for `defineConfig({ preset })` and `/create`. */
|
|
996
|
+
declare const PRESETS: Readonly<Record<PresetName, NamedPreset>>;
|
|
997
|
+
/** The named presets in display order, grouped by `group`. */
|
|
998
|
+
declare const PRESET_NAMES: readonly PresetName[];
|
|
999
|
+
declare function isPresetName(value: string): value is PresetName;
|
|
1000
|
+
/** The named preset as a `Preset`: the default conventions, then its own. */
|
|
1001
|
+
declare function namedPreset(name: PresetName): Preset;
|
|
1002
|
+
/** The preset `/create` and `init` start from. */
|
|
1003
|
+
declare const DEFAULT_PRESET_NAME: "saas";
|
|
1004
|
+
/** The default preset as a `Preset`, so a new design can start from it. */
|
|
1005
|
+
declare function defaultPreset(): Preset;
|
|
1006
|
+
/** The default preset's code, for a `/create` URL or `init --preset`. */
|
|
1007
|
+
declare function defaultPresetCode(): string;
|
|
1008
|
+
//#endregion
|
|
1009
|
+
//#region src/config/expose.d.ts
|
|
1010
|
+
/** A privilege the Data API roles can be granted on a table or view. */
|
|
1011
|
+
type Privilege = "select" | "insert" | "update" | "delete";
|
|
1012
|
+
type ColumnPrivilege = `${"select" | "insert" | "update"}(${string})`;
|
|
1013
|
+
type ExposePrivilege = Privilege | ColumnPrivilege;
|
|
1014
|
+
/** A role the `grants` module writes privileges for. */
|
|
1015
|
+
type ExposeRole = "anon" | "authenticated" | "service_role";
|
|
1016
|
+
/**
|
|
1017
|
+
* Data API grants for one table: privileges for `authenticated`, or per role.
|
|
1018
|
+
* `serviceRole` defaults to every privilege. For a function, keyed by its
|
|
1019
|
+
* signature (`search_notes(text, integer)`), `execute` lists the roles that may
|
|
1020
|
+
* call it; `service_role` is added unless `serviceRole` is false.
|
|
1021
|
+
*/
|
|
1022
|
+
type ExposeConfig = readonly ExposePrivilege[] | {
|
|
1023
|
+
readonly anon?: readonly ExposePrivilege[];
|
|
1024
|
+
readonly authenticated?: readonly ExposePrivilege[];
|
|
1025
|
+
readonly serviceRole?: readonly ExposePrivilege[];
|
|
1026
|
+
} | {
|
|
1027
|
+
readonly execute: readonly ("anon" | "authenticated")[];
|
|
1028
|
+
readonly serviceRole?: boolean;
|
|
1029
|
+
};
|
|
1030
|
+
/** Resolved grants for one table. */
|
|
1031
|
+
interface ResolvedExpose {
|
|
1032
|
+
readonly anon: readonly ExposePrivilege[];
|
|
1033
|
+
readonly authenticated: readonly ExposePrivilege[];
|
|
1034
|
+
readonly serviceRole: readonly ExposePrivilege[];
|
|
1035
|
+
}
|
|
1036
|
+
//#endregion
|
|
1037
|
+
//#region src/config/types/database.d.ts
|
|
1038
|
+
interface BucketConfig {
|
|
1039
|
+
readonly id?: string;
|
|
1040
|
+
readonly public?: boolean;
|
|
1041
|
+
/**
|
|
1042
|
+
* Path template with `{placeholders}`, e.g.
|
|
1043
|
+
* `{organizationId}/{customerId}/logo.webp`, or several when the bucket
|
|
1044
|
+
* stores objects in more than one layout. A last segment `{...rest}` matches
|
|
1045
|
+
* one or more segments.
|
|
1046
|
+
*/
|
|
1047
|
+
readonly path: string | readonly [string, ...string[]];
|
|
1048
|
+
/** Generated storage policy, or an access contract policy (`{ access }`). */
|
|
1049
|
+
readonly policy?: BucketPolicyName | AccessBucketPolicy;
|
|
1050
|
+
readonly fileSizeLimit?: string;
|
|
1051
|
+
readonly allowedMimeTypes?: readonly string[];
|
|
1052
|
+
/**
|
|
1053
|
+
* Keep earlier object versions. `bucket.apply()` sets it; doctor (BS302)
|
|
1054
|
+
* compares it.
|
|
1055
|
+
*/
|
|
1056
|
+
readonly versioning?: boolean;
|
|
1057
|
+
/** When noncurrent versions expire. Needs `versioning: true`. */
|
|
1058
|
+
readonly lifecycle?: BucketLifecycle;
|
|
1059
|
+
}
|
|
1060
|
+
/**
|
|
1061
|
+
* How the SQL modules reach the database: `pg-delta` (Supabase Declarative
|
|
1062
|
+
* Schemas 2.0, `supabase db schema declarative sync`), `migra` (declarative
|
|
1063
|
+
* schemas 1.0, `supabase db diff`) or `migrations` (no declarative schemas: the
|
|
1064
|
+
* `sql` commands write the modules into a migration).
|
|
1065
|
+
*/
|
|
1066
|
+
type SqlWorkflow = "pg-delta" | "migra" | "migrations";
|
|
1067
|
+
interface SqlConfig {
|
|
1068
|
+
/**
|
|
1069
|
+
* The workflow. Unset, better-supabase reads `supabase/config.toml`: pg-delta
|
|
1070
|
+
* when it enables it or nothing says otherwise, migra when it turns pg-delta
|
|
1071
|
+
* off or the project keeps migra's declarative schemas.
|
|
1072
|
+
*/
|
|
1073
|
+
readonly workflow?: SqlWorkflow;
|
|
1074
|
+
/** Directory declarative schema files are written to. */
|
|
1075
|
+
readonly dir?: string;
|
|
1076
|
+
/** File name prefix, so generated files sort after yours. */
|
|
1077
|
+
readonly prefix?: string;
|
|
1078
|
+
/** Directory pgTAP files (the `pgtap` module) are written to. */
|
|
1079
|
+
readonly testsDir?: string;
|
|
1080
|
+
/**
|
|
1081
|
+
* The schema every module writes its functions and managed tables to, unless
|
|
1082
|
+
* `blocks.<name>.schema` sets its own. Defaults to `better_supabase`.
|
|
1083
|
+
*/
|
|
1084
|
+
readonly schema?: string;
|
|
1085
|
+
/**
|
|
1086
|
+
* The Data API schema, such as `api`, every module writes its `security
|
|
1087
|
+
* invoker` wrappers to, unless `blocks.<name>.api` sets its own or `false`.
|
|
1088
|
+
*/
|
|
1089
|
+
readonly api?: string;
|
|
1090
|
+
/**
|
|
1091
|
+
* Who a block's rows belong to, unless `blocks.<name>.scope` sets its own:
|
|
1092
|
+
* `tenant` (a tenant, checked through the access contract; the default),
|
|
1093
|
+
* `user` (the signed-in user, with no tenants) or `none` (one shared space
|
|
1094
|
+
* every signed-in user reads and writes).
|
|
1095
|
+
*/
|
|
1096
|
+
readonly scope?: BlockScope;
|
|
1097
|
+
/** Names for the tenant concept in tables, functions and columns. */
|
|
1098
|
+
readonly naming?: SqlNaming;
|
|
1099
|
+
}
|
|
1100
|
+
/** `sql` with defaults applied. */
|
|
1101
|
+
interface ResolvedSqlConfig {
|
|
1102
|
+
/** Unset when the config leaves it to `supabase/config.toml`. */
|
|
1103
|
+
readonly workflow?: SqlWorkflow;
|
|
1104
|
+
readonly dir: string;
|
|
1105
|
+
readonly prefix: string;
|
|
1106
|
+
readonly testsDir: string;
|
|
1107
|
+
/** Unset means `tenant`. */
|
|
1108
|
+
readonly scope?: BlockScope;
|
|
1109
|
+
readonly naming?: SqlNaming;
|
|
1110
|
+
}
|
|
1111
|
+
interface SeedConfig {
|
|
1112
|
+
/** Module exporting `defineSeed(...)` as `seed` or default. */
|
|
1113
|
+
readonly entry?: string;
|
|
1114
|
+
/** SQL file `better-supabase seed` writes. Add it to `[db.seed] sql_paths`. */
|
|
1115
|
+
readonly output?: string;
|
|
1116
|
+
/**
|
|
1117
|
+
* Module exporting `defineTenantSeed(...)` as `seed` or default.
|
|
1118
|
+
* `better-supabase seed --tenant <slug>` applies it to one tenant.
|
|
1119
|
+
*/
|
|
1120
|
+
readonly perTenant?: string;
|
|
1121
|
+
}
|
|
1122
|
+
interface RealtimeConfig {
|
|
1123
|
+
/**
|
|
1124
|
+
* Tables that broadcast a change signal for live queries (`table` or
|
|
1125
|
+
* `schema.table`). Tenant tables broadcast per tenant. Install the triggers
|
|
1126
|
+
* with `better-supabase add realtime-tables`.
|
|
1127
|
+
*/
|
|
1128
|
+
readonly tables?: readonly string[];
|
|
1129
|
+
/**
|
|
1130
|
+
* Tables in `tables` without a tenant column. They broadcast on one topic
|
|
1131
|
+
* every signed-in user receives. With the `tenant` plugin, a table that lacks
|
|
1132
|
+
* the tenant column and is not listed here fails to install.
|
|
1133
|
+
*/
|
|
1134
|
+
readonly global?: readonly string[];
|
|
1135
|
+
/**
|
|
1136
|
+
* Tables in `tables` whose rows belong to one user: table to its user column
|
|
1137
|
+
* (`{ notifications: "user_id" }`). They broadcast on a topic per user,
|
|
1138
|
+
* `bs:t:<schema>.<table>:u:<user id>`, which only that user receives, instead
|
|
1139
|
+
* of the tenant's topic.
|
|
1140
|
+
*/
|
|
1141
|
+
readonly users?: Readonly<Record<string, string>>;
|
|
1142
|
+
/**
|
|
1143
|
+
* Writes the `realtime.messages` policies of the topics that `from` exports
|
|
1144
|
+
* (`defineTopic`) to `output`, a file in `supabase/schemas`, on
|
|
1145
|
+
* `better-supabase sql sync`; `sql sync --check` fails when it is stale.
|
|
1146
|
+
*/
|
|
1147
|
+
readonly policies?: TopicPoliciesConfig;
|
|
1148
|
+
/**
|
|
1149
|
+
* Broadcast triggers that `sql sync` writes to `policies.output` next to the
|
|
1150
|
+
* policies, through the topic's `trigger()`, for topics that `policies.from`
|
|
1151
|
+
* exports. A trigger with column values, one topic, a `keys` or `row` payload
|
|
1152
|
+
* and one event name calls `better_supabase.broadcast_topic()` (the
|
|
1153
|
+
* `realtime-tables` module); any other gets a generated function.
|
|
1154
|
+
*/
|
|
1155
|
+
readonly triggers?: readonly TopicTriggerConfig[];
|
|
1156
|
+
}
|
|
1157
|
+
interface TopicTriggerLookupConfig {
|
|
1158
|
+
readonly from: string;
|
|
1159
|
+
readonly via: TopicTriggerValueConfig;
|
|
1160
|
+
readonly select: string;
|
|
1161
|
+
readonly key?: string;
|
|
1162
|
+
}
|
|
1163
|
+
type TopicTriggerValueConfig = string | TopicTriggerLookupConfig;
|
|
1164
|
+
type TopicTriggerPayloadValueConfig = TopicTriggerValueConfig | {
|
|
1165
|
+
readonly sql: string;
|
|
1166
|
+
};
|
|
1167
|
+
interface TopicTriggerTopicConfig {
|
|
1168
|
+
readonly topic: string;
|
|
1169
|
+
readonly values?: Readonly<Record<string, TopicTriggerValueConfig>>;
|
|
1170
|
+
}
|
|
1171
|
+
/** One `realtime.triggers` entry: a table whose row changes go to a topic. */
|
|
1172
|
+
interface TopicTriggerConfig {
|
|
1173
|
+
/** The template of a topic that `realtime.policies.from` exports. */
|
|
1174
|
+
readonly topic: string;
|
|
1175
|
+
/** `table` or `schema.table`. */
|
|
1176
|
+
readonly table: string;
|
|
1177
|
+
/**
|
|
1178
|
+
* The column or lookup per placeholder. Defaults to the placeholder in
|
|
1179
|
+
* snake_case. A row whose topic comes out null is not sent to it.
|
|
1180
|
+
*/
|
|
1181
|
+
readonly values?: Readonly<Record<string, TopicTriggerValueConfig>>;
|
|
1182
|
+
/** Defaults to all three. */
|
|
1183
|
+
readonly events?: readonly ("insert" | "update" | "delete")[];
|
|
1184
|
+
/**
|
|
1185
|
+
* The broadcast event name, or one per operation (`{ insert: "created",
|
|
1186
|
+
* delete: "deleted" }`). Defaults to the operation.
|
|
1187
|
+
*/
|
|
1188
|
+
readonly event?: string | {
|
|
1189
|
+
readonly insert?: string;
|
|
1190
|
+
readonly update?: string;
|
|
1191
|
+
readonly delete?: string;
|
|
1192
|
+
};
|
|
1193
|
+
/**
|
|
1194
|
+
* `"keys"` (default) sends the primary key and the placeholder values.
|
|
1195
|
+
* `"row"` sends the whole row, which bypasses column grants. An object is the
|
|
1196
|
+
* payload itself: each key is a column, a lookup, or `{ sql }`, an expression
|
|
1197
|
+
* on the row `{row}` (`tg_op` is the operation).
|
|
1198
|
+
*/
|
|
1199
|
+
readonly payload?: "keys" | "row" | Readonly<Record<string, TopicTriggerPayloadValueConfig>>;
|
|
1200
|
+
readonly topics?: readonly TopicTriggerTopicConfig[];
|
|
1201
|
+
readonly functionSchema?: string;
|
|
1202
|
+
/**
|
|
1203
|
+
* `{ changed: ["status"] }` sends an UPDATE only when one of these columns
|
|
1204
|
+
* changed. Inserts and deletes always send.
|
|
1205
|
+
*/
|
|
1206
|
+
readonly when?: {
|
|
1207
|
+
readonly changed: readonly string[];
|
|
1208
|
+
};
|
|
1209
|
+
}
|
|
1210
|
+
/** `realtime.policies`: where topic policies come from and go. */
|
|
1211
|
+
interface TopicPoliciesConfig {
|
|
1212
|
+
/** Modules that export `defineTopic` results. Node imports them. */
|
|
1213
|
+
readonly from: readonly string[];
|
|
1214
|
+
/** The SQL file to write, such as `supabase/schemas/905_topics.sql`. */
|
|
1215
|
+
readonly output: string;
|
|
1216
|
+
}
|
|
1217
|
+
/**
|
|
1218
|
+
* Pgvector distance: `<=>` (cosine), `<->` (l2) or `<#>` (negative inner
|
|
1219
|
+
* product).
|
|
1220
|
+
*/
|
|
1221
|
+
type VectorDistance = "cosine" | "l2" | "inner_product";
|
|
1222
|
+
/** The embedding column, or the column and its distance (default `cosine`). */
|
|
1223
|
+
type VectorSearchConfig = string | {
|
|
1224
|
+
readonly column: string;
|
|
1225
|
+
readonly distance?: VectorDistance;
|
|
1226
|
+
/** The column's pgvector type. Defaults to `vector`. */
|
|
1227
|
+
readonly type?: "vector" | "halfvec";
|
|
1228
|
+
/**
|
|
1229
|
+
* The primary key column `db.$search({ score: true })` merges by.
|
|
1230
|
+
* Defaults to `id`.
|
|
1231
|
+
*/
|
|
1232
|
+
readonly key?: string;
|
|
1233
|
+
/**
|
|
1234
|
+
* Fuses a full-text ranking over a `tsvector` column with the vector
|
|
1235
|
+
* ranking (reciprocal rank fusion), for `db.$search({ text })`.
|
|
1236
|
+
*/
|
|
1237
|
+
readonly hybrid?: {
|
|
1238
|
+
readonly tsvector: string;
|
|
1239
|
+
/** The query's text search configuration. Defaults to `simple`. */
|
|
1240
|
+
readonly config?: string;
|
|
1241
|
+
/** The RRF constant. Defaults to 60. */
|
|
1242
|
+
readonly k?: number;
|
|
1243
|
+
};
|
|
1244
|
+
/**
|
|
1245
|
+
* A SQL expression over the row `t` the score is multiplied by, such as
|
|
1246
|
+
* `t.priority`.
|
|
1247
|
+
*/
|
|
1248
|
+
readonly boost?: string;
|
|
1249
|
+
/** Columns `db.$search({ filter })` narrows before ranking. */
|
|
1250
|
+
readonly prefilter?: readonly string[];
|
|
1251
|
+
/**
|
|
1252
|
+
* A SQL condition over the row `t` every candidate must meet, applied
|
|
1253
|
+
* before ranking: ranges, a parent row, such as `t.expires_at > now() and
|
|
1254
|
+
* exists (select 1 from public.folders f where f.id = t.folder_id and not
|
|
1255
|
+
* f.disabled)`.
|
|
1256
|
+
*/
|
|
1257
|
+
readonly predicate?: string;
|
|
1258
|
+
/** How `boost` combines with the score: `multiply` (default) or `add`. */
|
|
1259
|
+
readonly boostMode?: "multiply" | "add";
|
|
1260
|
+
/**
|
|
1261
|
+
* A SQL `order by` list over the row `t` that breaks score ties, such as
|
|
1262
|
+
* `t.created_at desc`.
|
|
1263
|
+
*/
|
|
1264
|
+
readonly order?: string;
|
|
1265
|
+
};
|
|
1266
|
+
//#endregion
|
|
1267
|
+
//#region src/config/types/entitlements.d.ts
|
|
1268
|
+
interface EntitlementsConfig {
|
|
1269
|
+
/**
|
|
1270
|
+
* `table.column` (or `schema.table.column`) holding each tenant's Stripe
|
|
1271
|
+
* customer id, read by the `entitlements` SQL module. Required without the
|
|
1272
|
+
* `organizations` module; with it, defaults to the `stripe_customer_id`
|
|
1273
|
+
* column that module adds.
|
|
1274
|
+
*/
|
|
1275
|
+
readonly customer?: string;
|
|
1276
|
+
/** The tenant id column of that table. Defaults to `id`. */
|
|
1277
|
+
readonly key?: string;
|
|
1278
|
+
/**
|
|
1279
|
+
* Where `has_entitlement` and `feature_claims` read memberships from.
|
|
1280
|
+
* `"provider"` calls the authorization provider's `memberIds` and
|
|
1281
|
+
* `memberIdsFor` functions; `"tenant"` reads `better_supabase.memberships`.
|
|
1282
|
+
* Defaults to `"provider"` when `authorization` is set, else `"tenant"`.
|
|
1283
|
+
*/
|
|
1284
|
+
readonly memberships?: "tenant" | "provider";
|
|
1285
|
+
/**
|
|
1286
|
+
* Where each tenant's entitlements come from. `"stripe-sync"` (the default)
|
|
1287
|
+
* reads the Stripe Sync Engine's `stripe.active_entitlements` through
|
|
1288
|
+
* `customer`. `{ plans }` reads a plan catalog: the tenant's active
|
|
1289
|
+
* subscription and the features its plan includes. `"custom"` leaves
|
|
1290
|
+
* `better_supabase.tenant_entitlements(tenant)` to you; the module writes the
|
|
1291
|
+
* checks and the claim over it.
|
|
1292
|
+
*/
|
|
1293
|
+
readonly source?: "stripe-sync" | "custom" | EntitlementPlansSource;
|
|
1294
|
+
/**
|
|
1295
|
+
* The shape of the features claim `feature_claims` writes, which every token
|
|
1296
|
+
* carries. `false` writes `{}` (check entitlements in SQL with
|
|
1297
|
+
* `has_entitlement` only); `maxTenants` keeps at most that many tenants;
|
|
1298
|
+
* `keys` writes short codes instead of the feature keys. Pass the same `keys`
|
|
1299
|
+
* to `hasEntitlement`.
|
|
1300
|
+
*/
|
|
1301
|
+
readonly claim?: false | {
|
|
1302
|
+
readonly maxTenants?: number;
|
|
1303
|
+
readonly keys?: Readonly<Record<string, string>>;
|
|
1304
|
+
};
|
|
1305
|
+
}
|
|
1306
|
+
/** `entitlements.source.plans`: a plan catalog in your own tables. */
|
|
1307
|
+
interface EntitlementPlansSource {
|
|
1308
|
+
readonly plans: {
|
|
1309
|
+
readonly subscriptions: {
|
|
1310
|
+
/** `table` or `schema.table`. */
|
|
1311
|
+
readonly table: string;
|
|
1312
|
+
/** The tenant id column. */
|
|
1313
|
+
readonly tenant: string;
|
|
1314
|
+
/** The plan key column. */
|
|
1315
|
+
readonly plan: string;
|
|
1316
|
+
/** A status column; with it, only rows in `activeStatuses` count. */
|
|
1317
|
+
readonly status?: string;
|
|
1318
|
+
/** Defaults to `["active", "trialing"]`. */
|
|
1319
|
+
readonly activeStatuses?: readonly string[];
|
|
1320
|
+
};
|
|
1321
|
+
readonly features: {
|
|
1322
|
+
/** `table` or `schema.table`. */
|
|
1323
|
+
readonly table: string;
|
|
1324
|
+
/** The plan key column. */
|
|
1325
|
+
readonly plan: string;
|
|
1326
|
+
/** The feature key column: what `has_entitlement` and the claim name. */
|
|
1327
|
+
readonly feature: string;
|
|
1328
|
+
/** A boolean column; with it, only included features count. */
|
|
1329
|
+
readonly included?: string;
|
|
1330
|
+
/**
|
|
1331
|
+
* A column with the feature's value (a number, text or jsonb), such as a
|
|
1332
|
+
* limit, that `tenant_entitlement_value` returns.
|
|
1333
|
+
*/
|
|
1334
|
+
readonly value?: string;
|
|
1335
|
+
};
|
|
1336
|
+
};
|
|
1337
|
+
}
|
|
1338
|
+
//#endregion
|
|
1339
|
+
//#region src/config/types/config.d.ts
|
|
1340
|
+
interface BetterSupabaseConfig {
|
|
1341
|
+
readonly $schema?: string;
|
|
1342
|
+
readonly source?: SourceConfig;
|
|
1343
|
+
/** Postgres schemas to generate. Defaults to `['public']`. */
|
|
1344
|
+
readonly schemas?: readonly string[];
|
|
1345
|
+
/** Casing of generated models and returned rows. Defaults to `'snake'`. */
|
|
1346
|
+
readonly casing?: Casing;
|
|
1347
|
+
readonly tables?: Readonly<Record<string, TableConfig>>;
|
|
1348
|
+
/**
|
|
1349
|
+
* Main generated module. Defaults to `src/lib/supabase/generated.ts`;
|
|
1350
|
+
* `database.types.ts` is written next to it.
|
|
1351
|
+
*/
|
|
1352
|
+
readonly output?: string;
|
|
1353
|
+
/**
|
|
1354
|
+
* PostgREST major version, written to `__InternalSupabase` in
|
|
1355
|
+
* `database.types.ts` so `createClient` picks matching behavior. Defaults to
|
|
1356
|
+
* `'13'`.
|
|
1357
|
+
*/
|
|
1358
|
+
readonly postgrestVersion?: string;
|
|
1359
|
+
/** Types for jsonb columns, keyed by `table.column`. */
|
|
1360
|
+
readonly json?: Readonly<Record<string, JsonTypeConfig>>;
|
|
1361
|
+
readonly codecs?: CodecsConfig;
|
|
1362
|
+
readonly relations?: RelationsConfig;
|
|
1363
|
+
/**
|
|
1364
|
+
* Columns that must not be read by accident (`table.column` or
|
|
1365
|
+
* `schema.table.column`, database names), for the `noSensitiveSelect` rule.
|
|
1366
|
+
*/
|
|
1367
|
+
readonly sensitive?: readonly string[];
|
|
1368
|
+
/**
|
|
1369
|
+
* Text columns that hold an object path, keyed by `table.column` or
|
|
1370
|
+
* `schema.table.column` (database names), with the bucket as the value (a
|
|
1371
|
+
* `buckets` key or a bucket id). Generated rows type them as
|
|
1372
|
+
* `StoragePath<'bucket-id'>`.
|
|
1373
|
+
*/
|
|
1374
|
+
readonly storagePaths?: Readonly<Record<string, string>>;
|
|
1375
|
+
/**
|
|
1376
|
+
* Function results `gen` may type as not null, keyed by function name.
|
|
1377
|
+
* Results are `| null` by default, since Postgres can't promise a function
|
|
1378
|
+
* returns a value. `notNull: true` covers the whole result (each element of a
|
|
1379
|
+
* set, each column of `returns table`); a list names the `returns table`
|
|
1380
|
+
* columns that are never null.
|
|
1381
|
+
*/
|
|
1382
|
+
readonly functions?: Readonly<Record<string, FunctionConfig>>;
|
|
1383
|
+
/**
|
|
1384
|
+
* Data API grants, keyed by `table` or `schema.table`, and function `execute`
|
|
1385
|
+
* grants, keyed by `name(argument types)` or `schema.name(argument types)`. A
|
|
1386
|
+
* project with default privileges turned off grants new tables to no Data API
|
|
1387
|
+
* role; the `grants` SQL module writes these as the complete privilege set
|
|
1388
|
+
* (it revokes what is not listed), and doctor (BS106) checks them. Tables not
|
|
1389
|
+
* listed need `select, insert, update, delete` for `authenticated` (`select`
|
|
1390
|
+
* for views).
|
|
1391
|
+
*/
|
|
1392
|
+
readonly expose?: Readonly<Record<string, ExposeConfig>>;
|
|
1393
|
+
/**
|
|
1394
|
+
* Modules that export `defineReadSet` results. `gen` compiles each set to a
|
|
1395
|
+
* function in the `read-sets` SQL module. Node imports them, so relative
|
|
1396
|
+
* imports need their `.ts` extension.
|
|
1397
|
+
*/
|
|
1398
|
+
readonly readSets?: readonly string[];
|
|
1399
|
+
readonly generators?: readonly Generator[];
|
|
1400
|
+
/** Enables plugin flags in the generated metadata. */
|
|
1401
|
+
readonly plugins?: PluginFlagsConfig;
|
|
1402
|
+
readonly claims?: ClaimsConfig;
|
|
1403
|
+
readonly buckets?: Readonly<Record<string, BucketConfig>>;
|
|
1404
|
+
/**
|
|
1405
|
+
* Realtime topic templates: `{ notifications:
|
|
1406
|
+
* 'organization:{organizationId}:notifications' }`.
|
|
1407
|
+
*/
|
|
1408
|
+
readonly topics?: Readonly<Record<string, string>>;
|
|
1409
|
+
readonly realtime?: RealtimeConfig;
|
|
1410
|
+
readonly entitlements?: EntitlementsConfig;
|
|
1411
|
+
/**
|
|
1412
|
+
* An authorization system the SQL modules, policies and doctor delegate to:
|
|
1413
|
+
* the `provider` access model, `entitlements.memberships` and the hook and
|
|
1414
|
+
* policy checks.
|
|
1415
|
+
*/
|
|
1416
|
+
readonly authorization?: AuthorizationProvider;
|
|
1417
|
+
/**
|
|
1418
|
+
* Embedding columns, keyed by `table` or `schema.table`. The `vector-search`
|
|
1419
|
+
* SQL module writes `search_<table>(query, k)` for each, which
|
|
1420
|
+
* `db.$search(table, { vector, k })` calls.
|
|
1421
|
+
*/
|
|
1422
|
+
readonly vectorSearch?: Readonly<Record<string, VectorSearchConfig>>;
|
|
1423
|
+
/**
|
|
1424
|
+
* The app's subject types: the entities blocks attach tags, comments, fields
|
|
1425
|
+
* and ranks to. Subject-bound SQL modules read this registry, the `subjects`
|
|
1426
|
+
* module writes `subject_title`, `subject_url` and `can_subject` from it, and
|
|
1427
|
+
* `gen` types `SubjectType` from its keys.
|
|
1428
|
+
*/
|
|
1429
|
+
readonly subjects?: SubjectsConfig;
|
|
1430
|
+
/**
|
|
1431
|
+
* A named preset (`saas`, `crm`, ...), a code from `/create`, or its URL.
|
|
1432
|
+
* `defineConfig` expands it into `blocks`, with the blocks they require, and
|
|
1433
|
+
* the conventions it sets (`casing`, `sql.api`, `integrations`); the keys you
|
|
1434
|
+
* set win.
|
|
1435
|
+
*/
|
|
1436
|
+
readonly preset?: PresetName | (string & {});
|
|
1437
|
+
/**
|
|
1438
|
+
* The blocks to install and keep in sync (`better-supabase add`): a list of
|
|
1439
|
+
* names, or an object keyed by block name whose values set each block's mode,
|
|
1440
|
+
* schema, table and column names, permission keys and options. The foundation
|
|
1441
|
+
* blocks (`tenant`, `access`, `updated-at`, `ensure-rls`, ...) are configured
|
|
1442
|
+
* here too.
|
|
1443
|
+
*/
|
|
1444
|
+
readonly blocks?: readonly string[] | BlocksConfig;
|
|
1445
|
+
/**
|
|
1446
|
+
* Tables the app owns, keyed by name, created in `public` by `better-supabase
|
|
1447
|
+
* sql sync` with an `id`, the scope column, timestamps, row level security
|
|
1448
|
+
* and policies for the scope. Columns reference each other, `auth.users` or a
|
|
1449
|
+
* block's logical table. ADR 0040.
|
|
1450
|
+
*/
|
|
1451
|
+
readonly appTables?: AppTablesConfig;
|
|
1452
|
+
/**
|
|
1453
|
+
* SQL-wide settings: the workflow, paths, and the `schema` and `api` every
|
|
1454
|
+
* block inherits.
|
|
1455
|
+
*/
|
|
1456
|
+
readonly sql?: SqlConfig;
|
|
1457
|
+
readonly seed?: SeedConfig;
|
|
1458
|
+
/** @deprecated Use `specs`; `openapi.entry` and `openapi.output` map onto it. */
|
|
1459
|
+
readonly openapi?: OpenApiConfig;
|
|
1460
|
+
/**
|
|
1461
|
+
* The documents `better-supabase spec emit` writes (OpenAPI, AsyncAPI,
|
|
1462
|
+
* Arazzo).
|
|
1463
|
+
*/
|
|
1464
|
+
readonly specs?: SpecsConfig;
|
|
1465
|
+
readonly doctor?: DoctorConfig;
|
|
1466
|
+
/** What `better-supabase gen` runs. */
|
|
1467
|
+
readonly gen?: GenConfig;
|
|
1468
|
+
readonly env?: EnvFileConfig;
|
|
1469
|
+
readonly scaffold?: ScaffoldConfig;
|
|
1470
|
+
/**
|
|
1471
|
+
* The integrations `init` and `add` wrote; `add` without a name sets up the
|
|
1472
|
+
* ones that have no files yet.
|
|
1473
|
+
*/
|
|
1474
|
+
readonly integrations?: readonly IntegrationName[];
|
|
1475
|
+
readonly skills?: SkillsConfig;
|
|
1476
|
+
readonly keys?: KeysConfig;
|
|
1477
|
+
/**
|
|
1478
|
+
* Overrides per environment, keyed by name. The CLI applies the block for
|
|
1479
|
+
* `--env <name>`, else `$BETTER_SUPABASE_ENV`, else `ci` when `$CI` is set.
|
|
1480
|
+
* Objects merge into the config; arrays and other values replace.
|
|
1481
|
+
*/
|
|
1482
|
+
readonly $env?: Readonly<Record<string, EnvironmentConfig>>;
|
|
1483
|
+
/** Shorthand for `$env.development`. */
|
|
1484
|
+
readonly $development?: EnvironmentConfig;
|
|
1485
|
+
/** Shorthand for `$env.production`. */
|
|
1486
|
+
readonly $production?: EnvironmentConfig;
|
|
1487
|
+
/** Shorthand for `$env.test`. */
|
|
1488
|
+
readonly $test?: EnvironmentConfig;
|
|
1489
|
+
/** Shorthand for `$env.ci`, which the CLI picks when `$CI` is set. */
|
|
1490
|
+
readonly $ci?: EnvironmentConfig;
|
|
1491
|
+
}
|
|
1492
|
+
/** The keys an environment block may override. */
|
|
1493
|
+
type EnvironmentConfig = Omit<BetterSupabaseConfig, "$schema" | "$env" | "$development" | "$production" | "$test" | "$ci" | "preset">;
|
|
1494
|
+
/** The config with defaults applied. */
|
|
1495
|
+
interface ResolvedConfig {
|
|
1496
|
+
readonly root: string;
|
|
1497
|
+
readonly source: SourceConfig;
|
|
1498
|
+
readonly schemas: readonly string[];
|
|
1499
|
+
readonly casing: Casing;
|
|
1500
|
+
readonly tables: Readonly<Record<string, TableConfig>>;
|
|
1501
|
+
readonly output: string;
|
|
1502
|
+
/** `database.types.ts` next to `output`. */
|
|
1503
|
+
readonly databaseTypesOutput: string;
|
|
1504
|
+
readonly postgrestVersion: string;
|
|
1505
|
+
readonly json: Readonly<Record<string, JsonTypeConfig>>;
|
|
1506
|
+
readonly codecs: Required<CodecsConfig>;
|
|
1507
|
+
readonly relations: Required<RelationsConfig>;
|
|
1508
|
+
readonly sensitive: readonly string[];
|
|
1509
|
+
readonly storagePaths: Readonly<Record<string, string>>;
|
|
1510
|
+
readonly functions: Readonly<Record<string, FunctionConfig>>;
|
|
1511
|
+
/** The table entries of `expose`. */
|
|
1512
|
+
readonly expose: Readonly<Record<string, ResolvedExpose>>;
|
|
1513
|
+
/** The function entries of `expose`: the roles that may execute each one. */
|
|
1514
|
+
readonly exposeFunctions: Readonly<Record<string, readonly ExposeRole[]>>;
|
|
1515
|
+
readonly readSets: readonly string[];
|
|
1516
|
+
readonly generators: readonly Generator[];
|
|
1517
|
+
readonly plugins: {
|
|
1518
|
+
readonly timestamps: Required<TimestampsConfig> | undefined;
|
|
1519
|
+
readonly softDelete: Required<SoftDeleteConfig> | undefined;
|
|
1520
|
+
readonly tenant: Required<TenantConfig> | undefined;
|
|
1521
|
+
readonly actor: Required<ActorConfig> | undefined;
|
|
1522
|
+
};
|
|
1523
|
+
readonly claims: Required<ClaimsConfig>;
|
|
1524
|
+
readonly buckets: Readonly<Record<string, BucketConfig>>;
|
|
1525
|
+
readonly entitlements: {
|
|
1526
|
+
/** Unset without `entitlements.customer`. */
|
|
1527
|
+
readonly table?: string;
|
|
1528
|
+
readonly column?: string;
|
|
1529
|
+
readonly key: string;
|
|
1530
|
+
readonly memberships: "tenant" | "provider";
|
|
1531
|
+
readonly source: NonNullable<EntitlementsConfig["source"]>;
|
|
1532
|
+
readonly claim?: NonNullable<EntitlementsConfig["claim"]>;
|
|
1533
|
+
};
|
|
1534
|
+
readonly authorization?: AuthorizationProvider;
|
|
1535
|
+
readonly vectorSearch: readonly ({
|
|
1536
|
+
readonly table: string;
|
|
1537
|
+
readonly column: string;
|
|
1538
|
+
readonly distance: VectorDistance;
|
|
1539
|
+
} & Omit<Exclude<VectorSearchConfig, string>, "column" | "distance">)[];
|
|
1540
|
+
readonly subjects: SubjectsConfig;
|
|
1541
|
+
readonly topics: Readonly<Record<string, string>>;
|
|
1542
|
+
readonly realtime: Required<Omit<RealtimeConfig, "policies">> & {
|
|
1543
|
+
readonly policies?: TopicPoliciesConfig;
|
|
1544
|
+
};
|
|
1545
|
+
/**
|
|
1546
|
+
* The `preset` the config started from, as written; `blocks` already holds it
|
|
1547
|
+
* expanded.
|
|
1548
|
+
*/
|
|
1549
|
+
readonly preset?: string;
|
|
1550
|
+
/** `blocks` with `sql.schema` and `sql.api` applied, keyed by block name. */
|
|
1551
|
+
readonly blocks: AnyBlocksConfig;
|
|
1552
|
+
/** The installed blocks, in config order. */
|
|
1553
|
+
readonly blockNames: readonly string[];
|
|
1554
|
+
/** `appTables`, checked; empty without any. */
|
|
1555
|
+
readonly appTables: AppTablesConfig;
|
|
1556
|
+
readonly sql: ResolvedSqlConfig;
|
|
1557
|
+
readonly seed: Required<SeedConfig>;
|
|
1558
|
+
readonly openapi: Required<OpenApiConfig>;
|
|
1559
|
+
readonly specs: {
|
|
1560
|
+
readonly entry: string;
|
|
1561
|
+
readonly outputs: readonly SpecOutputConfig[];
|
|
1562
|
+
readonly failOn: NonNullable<SpecsConfig["failOn"]>;
|
|
1563
|
+
readonly manifest?: string;
|
|
1564
|
+
};
|
|
1565
|
+
readonly doctor: Required<Omit<DoctorConfig, "claimsLimit" | "output" | "migrationSafety">> & Pick<DoctorConfig, "claimsLimit" | "output" | "migrationSafety">;
|
|
1566
|
+
/**
|
|
1567
|
+
* `tasks` stays unset without a list, so `gen` picks the steps the project
|
|
1568
|
+
* uses.
|
|
1569
|
+
*/
|
|
1570
|
+
readonly gen: GenConfig;
|
|
1571
|
+
readonly env: {
|
|
1572
|
+
readonly output: string;
|
|
1573
|
+
readonly prefix?: string;
|
|
1574
|
+
};
|
|
1575
|
+
readonly scaffold: ScaffoldConfig;
|
|
1576
|
+
readonly integrations: readonly IntegrationName[];
|
|
1577
|
+
readonly skills: SkillsConfig;
|
|
1578
|
+
readonly keys: KeysConfig;
|
|
1579
|
+
/** The environment block the CLI applied, when one was active. */
|
|
1580
|
+
readonly environment?: string;
|
|
1581
|
+
}
|
|
1582
|
+
//#endregion
|
|
1583
|
+
//#region src/config/types/codegen.d.ts
|
|
1584
|
+
/**
|
|
1585
|
+
* Where codegen reads the database from. Without any of these, `$DATABASE_URL`,
|
|
1586
|
+
* `$SUPABASE_DB_URL` and then the local stack (`supabase start`) are used.
|
|
1587
|
+
*/
|
|
1588
|
+
interface SourceConfig {
|
|
1589
|
+
/** Postgres connection string. */
|
|
1590
|
+
readonly dbUrl?: string;
|
|
1591
|
+
/**
|
|
1592
|
+
* Hosted project ref. Read through the Management API's read-only SQL
|
|
1593
|
+
* endpoint, so no database password is needed.
|
|
1594
|
+
*/
|
|
1595
|
+
readonly projectRef?: string;
|
|
1596
|
+
/**
|
|
1597
|
+
* Management API token for `projectRef`. Defaults to
|
|
1598
|
+
* `$SUPABASE_ACCESS_TOKEN`; prefer the env var over committing a token.
|
|
1599
|
+
*/
|
|
1600
|
+
readonly accessToken?: string;
|
|
1601
|
+
/** Read a saved `better-supabase introspect` snapshot instead of connecting. */
|
|
1602
|
+
readonly snapshot?: string;
|
|
1603
|
+
/**
|
|
1604
|
+
* Read a Supabase Lite project's schema the way Lite runs it, from `[db]
|
|
1605
|
+
* driver` in `supabase/config.toml`. On by default when that key is present;
|
|
1606
|
+
* `false` reads the database like any other project.
|
|
1607
|
+
*/
|
|
1608
|
+
readonly lite?: boolean;
|
|
1609
|
+
}
|
|
1610
|
+
/**
|
|
1611
|
+
* A JSON Schema object, or a Standard JSON Schema value (zod 4, valibot,
|
|
1612
|
+
* arktype, ...) that can produce one.
|
|
1613
|
+
*/
|
|
1614
|
+
type JsonSchemaSource = Readonly<Record<string, unknown>> | {
|
|
1615
|
+
readonly "~standard": {
|
|
1616
|
+
readonly jsonSchema: {
|
|
1617
|
+
readonly input: (options: {
|
|
1618
|
+
readonly target: string;
|
|
1619
|
+
}) => Record<string, unknown>;
|
|
1620
|
+
};
|
|
1621
|
+
};
|
|
1622
|
+
};
|
|
1623
|
+
type JsonTypeConfig = ({
|
|
1624
|
+
readonly import: string;
|
|
1625
|
+
} | {
|
|
1626
|
+
readonly type: string;
|
|
1627
|
+
}) & {
|
|
1628
|
+
/**
|
|
1629
|
+
* Enforced in the database by `better-supabase add jsonb-schemas`
|
|
1630
|
+
* (pg_jsonschema).
|
|
1631
|
+
*/
|
|
1632
|
+
readonly schema?: JsonSchemaSource;
|
|
1633
|
+
};
|
|
1634
|
+
interface TableConfig {
|
|
1635
|
+
readonly casing?: Casing;
|
|
1636
|
+
/** Leave the table out of the generated models. */
|
|
1637
|
+
readonly exclude?: boolean;
|
|
1638
|
+
/**
|
|
1639
|
+
* Keep the table off the Data API on purpose: only `service_role` reaches it.
|
|
1640
|
+
* The models are still generated for admin clients, and doctor (BS106) checks
|
|
1641
|
+
* that `anon` and `authenticated` have no grants instead of requiring them.
|
|
1642
|
+
*/
|
|
1643
|
+
readonly serviceRole?: boolean;
|
|
1644
|
+
/** Rename generated relations: `{ primaryContact: 'contact' }`. */
|
|
1645
|
+
readonly relations?: Readonly<Record<string, string>>;
|
|
1646
|
+
/**
|
|
1647
|
+
* Database names of not-null columns an insert may leave out because the
|
|
1648
|
+
* database fills them, for example from a `before insert` trigger. `gen`
|
|
1649
|
+
* makes them optional in `InsertOf` and the insert validators.
|
|
1650
|
+
*/
|
|
1651
|
+
readonly insertOptional?: readonly string[];
|
|
1652
|
+
}
|
|
1653
|
+
interface FunctionConfig {
|
|
1654
|
+
/**
|
|
1655
|
+
* `true`, or the `returns table` columns (database names) that are never
|
|
1656
|
+
* null.
|
|
1657
|
+
*/
|
|
1658
|
+
readonly notNull?: true | readonly string[];
|
|
1659
|
+
}
|
|
1660
|
+
interface TimestampsConfig {
|
|
1661
|
+
readonly createdAt?: string;
|
|
1662
|
+
readonly updatedAt?: string;
|
|
1663
|
+
}
|
|
1664
|
+
interface SoftDeleteConfig {
|
|
1665
|
+
readonly column?: string;
|
|
1666
|
+
}
|
|
1667
|
+
interface TenantConfig {
|
|
1668
|
+
/**
|
|
1669
|
+
* Defaults to `organization_id`, or `<sql.naming.tenant>_id` when the tenant
|
|
1670
|
+
* is renamed.
|
|
1671
|
+
*/
|
|
1672
|
+
readonly column?: string;
|
|
1673
|
+
}
|
|
1674
|
+
/** Claim names shared by the SQL modules, codegen and the runtime defaults. */
|
|
1675
|
+
interface ClaimsConfig {
|
|
1676
|
+
/** Top-level claim holding the active tenant id. Defaults to `tenant_id`. */
|
|
1677
|
+
readonly tenant?: string;
|
|
1678
|
+
/**
|
|
1679
|
+
* `scope` of the tenant entries `membership_claims()` writes. Defaults to
|
|
1680
|
+
* `tenant`.
|
|
1681
|
+
*/
|
|
1682
|
+
readonly scope?: string;
|
|
1683
|
+
/**
|
|
1684
|
+
* Claim holding plan features per tenant (`{ [tenantId]: string[] }`).
|
|
1685
|
+
* Defaults to `features`.
|
|
1686
|
+
*/
|
|
1687
|
+
readonly features?: string;
|
|
1688
|
+
/**
|
|
1689
|
+
* Claim the memberships hook (`membership_claims()` or the provider's)
|
|
1690
|
+
* writes. Defaults to `memberships`.
|
|
1691
|
+
*/
|
|
1692
|
+
readonly memberships?: string;
|
|
1693
|
+
}
|
|
1694
|
+
interface ActorConfig {
|
|
1695
|
+
readonly createdBy?: string;
|
|
1696
|
+
readonly updatedBy?: string;
|
|
1697
|
+
/**
|
|
1698
|
+
* Defaults to `impersonated_by`, the column the SQL modules' `track_actor`
|
|
1699
|
+
* fills.
|
|
1700
|
+
*/
|
|
1701
|
+
readonly impersonatedBy?: string;
|
|
1702
|
+
}
|
|
1703
|
+
interface PluginFlagsConfig {
|
|
1704
|
+
readonly timestamps?: boolean | TimestampsConfig;
|
|
1705
|
+
readonly softDelete?: boolean | SoftDeleteConfig;
|
|
1706
|
+
readonly tenant?: boolean | TenantConfig;
|
|
1707
|
+
readonly actor?: boolean | ActorConfig;
|
|
1708
|
+
}
|
|
1709
|
+
/**
|
|
1710
|
+
* Runtime types for columns whose JSON form loses information. Defaults match
|
|
1711
|
+
* `supabase gen types`: timestamps as ISO strings, `int8` and `numeric` as
|
|
1712
|
+
* numbers.
|
|
1713
|
+
*/
|
|
1714
|
+
interface CodecsConfig {
|
|
1715
|
+
/**
|
|
1716
|
+
* `'instant'` decodes `timestamptz` columns to `Temporal.Instant` and
|
|
1717
|
+
* `timestamp` columns to `Temporal.PlainDateTime`. `'utc'` keeps
|
|
1718
|
+
* `timestamptz` columns as strings, always in UTC as ISO 8601 with a `Z` and
|
|
1719
|
+
* every fraction digit (`2026-10-21T05:10:00.123456Z`).
|
|
1720
|
+
*/
|
|
1721
|
+
readonly timestamptz?: "string" | "instant" | "utc";
|
|
1722
|
+
/** `'bigint'` or `'string'` read `int8` exactly (above 2^53). */
|
|
1723
|
+
readonly int8?: "number" | "string" | "bigint";
|
|
1724
|
+
/** `'string'` reads `numeric` exactly. */
|
|
1725
|
+
readonly numeric?: "number" | "string";
|
|
1726
|
+
}
|
|
1727
|
+
interface GeneratedFile {
|
|
1728
|
+
/** Path relative to the project root. */
|
|
1729
|
+
readonly path: string;
|
|
1730
|
+
readonly contents: string;
|
|
1731
|
+
}
|
|
1732
|
+
interface GeneratorInput {
|
|
1733
|
+
readonly meta: SchemaMeta;
|
|
1734
|
+
/**
|
|
1735
|
+
* The `@supabase/postgrest-typegen` metadata for the configured schemas, the
|
|
1736
|
+
* same contract `supabase gen types` is built on.
|
|
1737
|
+
*/
|
|
1738
|
+
readonly introspection: GeneratorMetadata;
|
|
1739
|
+
/** Constraints, indexes, policies, triggers and grants typegen leaves out. */
|
|
1740
|
+
readonly extras: SnapshotExtras;
|
|
1741
|
+
readonly config: ResolvedConfig;
|
|
1742
|
+
/** Absolute path of the main generated module. */
|
|
1743
|
+
readonly output: string;
|
|
1744
|
+
/** Import path from `from` (a generated file) to `to`, with extension. */
|
|
1745
|
+
readonly importPath: (from: string, to: string) => string;
|
|
1746
|
+
/**
|
|
1747
|
+
* Where generated files import `better-supabase` runtime helpers from.
|
|
1748
|
+
* Defaults to `better-supabase`.
|
|
1749
|
+
*/
|
|
1750
|
+
readonly runtimeImport?: string;
|
|
1751
|
+
/**
|
|
1752
|
+
* The tables and enums `gen` emits, with the TypeScript type it wrote for
|
|
1753
|
+
* each column (after `json` overrides, codecs and enum unions). Frozen.
|
|
1754
|
+
*/
|
|
1755
|
+
readonly model: GeneratorModel;
|
|
1756
|
+
}
|
|
1757
|
+
interface GeneratorColumn {
|
|
1758
|
+
/** Name in rows, after casing. */
|
|
1759
|
+
readonly app: string;
|
|
1760
|
+
/** Database name. */
|
|
1761
|
+
readonly db: string;
|
|
1762
|
+
/** TypeScript type without `| null`. */
|
|
1763
|
+
readonly tsType: string;
|
|
1764
|
+
readonly nullable: boolean;
|
|
1765
|
+
/** Optional on insert. */
|
|
1766
|
+
readonly optional: boolean;
|
|
1767
|
+
/** Generated or identity always: never written. */
|
|
1768
|
+
readonly readonly: boolean;
|
|
1769
|
+
/** Enum or check-constraint values, when the column has a closed set. */
|
|
1770
|
+
readonly values: readonly string[] | undefined;
|
|
1771
|
+
readonly json: boolean;
|
|
1772
|
+
}
|
|
1773
|
+
interface GeneratorTable {
|
|
1774
|
+
/** Key in `schema.tables` and on the client. */
|
|
1775
|
+
readonly key: string;
|
|
1776
|
+
readonly schema: string;
|
|
1777
|
+
readonly name: string;
|
|
1778
|
+
readonly casing: Casing;
|
|
1779
|
+
readonly columns: readonly GeneratorColumn[];
|
|
1780
|
+
}
|
|
1781
|
+
interface GeneratorModel {
|
|
1782
|
+
readonly tables: readonly GeneratorTable[];
|
|
1783
|
+
readonly enums: readonly {
|
|
1784
|
+
readonly schema: string;
|
|
1785
|
+
readonly name: string;
|
|
1786
|
+
readonly values: readonly string[];
|
|
1787
|
+
}[];
|
|
1788
|
+
}
|
|
1789
|
+
/**
|
|
1790
|
+
* Codegen extension point. First-party generators: `zod()`, `valibot()`,
|
|
1791
|
+
* `jsonSchema()`, `standardSchema()`. Prove custom ones with `testGenerator`.
|
|
1792
|
+
*/
|
|
1793
|
+
interface Generator {
|
|
1794
|
+
/** The generator contract it targets. `gen` refuses versions it doesn't know. */
|
|
1795
|
+
readonly apiVersion?: 1;
|
|
1796
|
+
readonly name: string;
|
|
1797
|
+
generate(input: GeneratorInput): readonly GeneratedFile[] | Promise<readonly GeneratedFile[]>;
|
|
1798
|
+
}
|
|
1799
|
+
interface RelationsConfig {
|
|
1800
|
+
/**
|
|
1801
|
+
* Type a to-one include as `| null` when the related table has row level
|
|
1802
|
+
* security, even over a `not null` foreign key, since a policy can hide the
|
|
1803
|
+
* related row. `required: true` on the include keeps it non-null. Defaults to
|
|
1804
|
+
* `false`.
|
|
1805
|
+
*/
|
|
1806
|
+
readonly nullableUnderRls?: boolean;
|
|
1807
|
+
}
|
|
1808
|
+
//#endregion
|
|
1809
|
+
export { namedPreset as $, SnapshotExtras as $t, TopicTriggerConfig as A, AppRollupConfig as An, SkillsAgent as At, ExposeRole as B, CatalogGrant as Bt, EntitlementsConfig as C, AppColumnFormat as Cn, GenTask as Ct, SeedConfig as D, AppReference as Dn, OpenApiConfig as Dt, ResolvedSqlConfig as E, AppOnDeleteAction as En, MigrationSafetyConfig as Et, VectorDistance as F, AppTableVersions as Fn, CatalogColumnGrant as Ft, PRESETS as G, CatalogUnique as Gt, ResolvedExpose as H, CatalogPolicy as Ht, VectorSearchConfig as I, AppTablesConfig as In, CatalogEnum as It, PresetGroup as J, ExtrasHookFunction as Jt, PRESET_GROUPS as K, ExtrasFunction as Kt, ColumnPrivilege as L, CatalogForeignKey as Lt, TopicTriggerPayloadValueConfig as M, AppTableEventKind as Mn, Catalog as Mt, TopicTriggerTopicConfig as N, AppTableEvents as Nn, CatalogCheck as Nt, SqlConfig as O, AppReferenceTarget as On, ScaffoldApiConfig as Ot, TopicTriggerValueConfig as P, AppTableSubject as Pn, CatalogColumn as Pt, isPresetName as Q, SnapshotBucket as Qt, ExposeConfig as R, CatalogFunction as Rt, EntitlementPlansSource as S, AppColumnConfig as Sn, GenConfig as St, RealtimeConfig as T, AppLookupConfig as Tn, KeysConfig as Tt, DEFAULT_PRESET_NAME as U, CatalogTable as Ut, Privilege as V, CatalogIndex as Vt, NamedPreset as W, CatalogTrigger as Wt, defaultPreset as X, ForeignKeyAction as Xt, PresetName as Y, ExtrasTable as Yt, defaultPresetCode as Z, Snapshot as Zt, TenantConfig as _, APP_COLUMN_TYPES as _n, integrationsForFramework as _t, Generator as a, RpcFunctionArg as an, Preset as at, EnvironmentConfig as b, APP_TABLE_EVENT_KINDS as bn, DoctorConfig as bt, GeneratorModel as c, RpcReturnColumn as cn, PresetConventions as ct, JsonTypeConfig as d, INTEGRATION_INFO as dn, PresetFieldValue as dt, GeneratorMetadata as en, DEFAULT_CONVENTIONS as et, PluginFlagsConfig as f, INTEGRATION_NAMES as fn, PresetFramework as ft, TableConfig as g, APP_COLUMN_FORMATS as gn, PresetValueInfo as gt, SourceConfig as h, APP_COLUMN_ACCESS as hn, PresetTenantName as ht, GeneratedFile as i, RpcFunction as in, PRESET_VERSION as it, TopicTriggerLookupConfig as j, AppTableConfig as jn, SkillsConfig as jt, SqlWorkflow as k, AppRollupAggregate as kn, ScaffoldConfig as kt, GeneratorTable as l, RpcTypeReference as ln, PresetField as lt, SoftDeleteConfig as m, SKILLS_AGENTS as mn, PresetScope as mt, ClaimsConfig as n, PostgresFunction as nn, PRESET_FRAMEWORKS as nt, GeneratorColumn as o, RpcFunctionOverload as on, PresetAccess as ot, RelationsConfig as p, IntegrationInfo as pn, PresetPlatforms as pt, PRESET_NAMES as q, ExtrasHook as qt, CodecsConfig as r, PostgresFunctionArg as rn, PRESET_TENANT_NAMES as rt, GeneratorInput as s, RpcFunctionReturns as sn, PresetCodeField as st, ActorConfig as t, PostgresColumn as tn, PRESET_FIELDS as tt, JsonSchemaSource as u, GEN_TASKS as un, PresetFieldKey as ut, TimestampsConfig as v, APP_ON_DELETE_ACTIONS as vn, presetField as vt, BucketConfig as w, AppColumnType as wn, IntegrationName as wt, ResolvedConfig as x, AppColumnAccess as xn, EnvFileConfig as xt, BetterSupabaseConfig as y, APP_ROLLUP_AGGREGATES as yn, presetValueLabel as yt, ExposePrivilege as z, CatalogFunctionArg as zt };
|