better-supabase 0.7.1 → 0.9.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 +146 -81
- package/bin/better-supabase.js +14 -2
- package/dist/access-sql-DUSSMaC3.js +201 -0
- package/dist/actor-BAhb-d1S.d.ts +104 -0
- package/dist/actor-KHDOKGb1.js +151 -0
- package/dist/adapter-CEjmtazZ.js +1984 -0
- package/dist/agents-BCNhIxVZ.d.ts +111 -0
- package/dist/ai-cache-Dps7aRu1.d.ts +70 -0
- package/dist/ai-cache-zeUL94pB.js +84 -0
- package/dist/ai-chat-3GBSlFR4.d.ts +608 -0
- package/dist/ai-files-D2_9YLjF.js +331 -0
- package/dist/ai-message-DfaP8sis.js +14 -0
- package/dist/ai-sdk/agents/index.d.ts +154 -10
- package/dist/ai-sdk/agents/index.js +172 -17
- package/dist/ai-sdk/batches/index.d.ts +4 -4
- package/dist/ai-sdk/batches/index.js +5 -5
- package/dist/ai-sdk/cache/index.d.ts +2 -2
- package/dist/ai-sdk/cache/index.js +2 -2
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +10 -21
- package/dist/ai-sdk/embeddings/index.d.ts +3 -3
- package/dist/ai-sdk/embeddings/index.js +1 -2
- package/dist/ai-sdk/files/index.d.ts +3 -3
- package/dist/ai-sdk/files/index.js +4 -4
- package/dist/ai-sdk/index.d.ts +38 -9
- package/dist/ai-sdk/index.js +5 -3
- package/dist/ai-sdk/mcp/index.d.ts +43 -6
- package/dist/ai-sdk/mcp/index.js +37 -8
- package/dist/ai-sdk/memory/index.d.ts +5 -2
- package/dist/ai-sdk/memory/index.js +2 -2
- package/dist/ai-sdk/react/index.js +1 -2
- package/dist/ai-sdk/workflow/index.d.ts +7 -6
- package/dist/ai-sdk/workflow/index.js +15 -26
- package/dist/ai-tasks-Ih5oHfyj.d.ts +157 -0
- package/dist/announcements-BHCzraR6.js +128 -0
- package/dist/api-CFjuYKFY.js +680 -0
- package/dist/api-TG3jE5aO.d.ts +411 -0
- package/dist/api-keys-BEQatEUW.js +318 -0
- package/dist/api-keys-BYoGCM9p.d.ts +205 -0
- package/dist/app-tables-BGl5_U2x.js +584 -0
- package/dist/approvals-a2KmioBh.d.ts +124 -0
- package/dist/arazzo/index.d.ts +255 -0
- package/dist/arazzo/index.js +622 -0
- package/dist/assistant-Bf2cA6RO.d.ts +148 -0
- package/dist/astro/index.d.ts +9 -8
- package/dist/astro/index.js +12 -9
- package/dist/asyncapi/index.d.ts +103 -0
- package/dist/asyncapi/index.js +569 -0
- package/dist/attachments-DAj2Yp95.js +264 -0
- package/dist/attributes-D4mA7WhI.js +38 -0
- package/dist/audit-log-BMMuGPdP.js +786 -0
- package/dist/auth-CdBKt0CS.js +20 -0
- package/dist/auth-reply-DUCwb8YO.js +31 -0
- package/dist/auth-reply-Dj124sbX.d.ts +11 -0
- package/dist/authorization-DpRfs6Wx.d.ts +1412 -0
- package/dist/authorization-hooks-DkmrnDX7.d.ts +214 -0
- package/dist/authorizer-DH7DjkL3.js +126 -0
- package/dist/authorizer-eiOjo-3l.d.ts +73 -0
- package/dist/base64-BmeCBgGo.js +42 -0
- package/dist/batch-limit-DKVQDz4o.js +5 -0
- package/dist/before-route-B98js9m_.js +30 -0
- package/dist/better-result/index.d.ts +118 -0
- package/dist/better-result/index.js +64 -0
- package/dist/bind-a7sUgvf4.d.ts +70 -0
- package/dist/block-env-CBd_SoL5.js +29 -0
- package/dist/block-env-Dxl7rsI0.d.ts +10 -0
- package/dist/block-events-DD9Q_NUz.js +96 -0
- package/dist/block-fields-5UA84ZUg.d.ts +55 -0
- package/dist/block-fields-ffD6Gxe4.js +139 -0
- package/dist/block-helpers-C86hPEjI.d.ts +37 -0
- package/dist/block-helpers-CfG_MvDR.js +264 -0
- package/dist/block-hooks-BLPWD3Jt.d.ts +107 -0
- package/dist/block-hooks-BsXncUlZ.js +114 -0
- package/dist/block-transport-DaGGXjIw.d.ts +70 -0
- package/dist/block-transport-G4t1umrR.js +85 -0
- package/dist/blocks/access-requests/index.d.ts +98 -0
- package/dist/blocks/access-requests/index.js +99 -0
- package/dist/blocks/agents/index.d.ts +21 -3
- package/dist/blocks/agents/index.js +65 -18
- package/dist/blocks/ai-cache/index.d.ts +8 -3
- package/dist/blocks/ai-cache/index.js +15 -3
- package/dist/blocks/ai-chat/index.d.ts +28 -4
- package/dist/blocks/ai-chat/index.js +31 -5
- package/dist/blocks/ai-chat/react/index.d.ts +12 -46
- package/dist/blocks/ai-chat/react/index.js +43 -335
- package/dist/blocks/ai-chat/solid/index.d.ts +34 -0
- package/dist/blocks/ai-chat/solid/index.js +41 -0
- package/dist/blocks/ai-chat/svelte/index.d.ts +34 -0
- package/dist/blocks/ai-chat/svelte/index.js +41 -0
- package/dist/blocks/ai-chat/vue/index.d.ts +34 -0
- package/dist/blocks/ai-chat/vue/index.js +41 -0
- package/dist/blocks/ai-files/index.d.ts +11 -4
- package/dist/blocks/ai-files/index.js +16 -3
- package/dist/blocks/ai-providers/index.d.ts +18 -3
- package/dist/blocks/ai-providers/index.js +41 -15
- package/dist/blocks/ai-tasks/index.d.ts +10 -3
- package/dist/blocks/ai-tasks/index.js +71 -21
- package/dist/blocks/announcements/index.d.ts +18 -3
- package/dist/blocks/announcements/index.js +27 -3
- package/dist/blocks/announcements/react/index.d.ts +4 -14
- package/dist/blocks/announcements/react/index.js +22 -70
- package/dist/blocks/announcements/solid/index.d.ts +13 -0
- package/dist/blocks/announcements/solid/index.js +14 -0
- package/dist/blocks/announcements/svelte/index.d.ts +13 -0
- package/dist/blocks/announcements/svelte/index.js +14 -0
- package/dist/blocks/announcements/vue/index.d.ts +13 -0
- package/dist/blocks/announcements/vue/index.js +14 -0
- package/dist/blocks/api-keys/index.d.ts +24 -7
- package/dist/blocks/api-keys/index.js +30 -295
- package/dist/blocks/api-keys/react/index.d.ts +29 -0
- package/dist/blocks/api-keys/react/index.js +43 -0
- package/dist/blocks/api-keys/react/server.d.ts +7 -0
- package/dist/blocks/api-keys/react/server.js +7 -0
- package/dist/blocks/api-keys/solid/index.d.ts +13 -0
- package/dist/blocks/api-keys/solid/index.js +14 -0
- package/dist/blocks/api-keys/svelte/index.d.ts +13 -0
- package/dist/blocks/api-keys/svelte/index.js +14 -0
- package/dist/blocks/api-keys/vue/index.d.ts +13 -0
- package/dist/blocks/api-keys/vue/index.js +14 -0
- package/dist/blocks/approvals/index.d.ts +22 -0
- package/dist/blocks/approvals/index.js +189 -0
- package/dist/blocks/attachments/index.d.ts +18 -223
- package/dist/blocks/attachments/index.js +26 -233
- package/dist/blocks/audit/index.d.ts +72 -354
- package/dist/blocks/audit/index.js +91 -695
- package/dist/blocks/audit/react/index.d.ts +26 -0
- package/dist/blocks/audit/react/index.js +44 -0
- package/dist/blocks/audit/react/server.d.ts +7 -0
- package/dist/blocks/audit/react/server.js +7 -0
- package/dist/blocks/audit/solid/index.d.ts +13 -0
- package/dist/blocks/audit/solid/index.js +14 -0
- package/dist/blocks/audit/svelte/index.d.ts +13 -0
- package/dist/blocks/audit/svelte/index.js +14 -0
- package/dist/blocks/audit/vue/index.d.ts +13 -0
- package/dist/blocks/audit/vue/index.js +14 -0
- package/dist/blocks/billing/index.d.ts +40 -13
- package/dist/blocks/billing/index.js +49 -18
- package/dist/blocks/billing/react/index.d.ts +34 -0
- package/dist/blocks/billing/react/index.js +36 -0
- package/dist/blocks/billing/react/server.d.ts +7 -0
- package/dist/blocks/billing/react/server.js +7 -0
- package/dist/blocks/billing/solid/index.d.ts +15 -0
- package/dist/blocks/billing/solid/index.js +14 -0
- package/dist/blocks/billing/svelte/index.d.ts +15 -0
- package/dist/blocks/billing/svelte/index.js +14 -0
- package/dist/blocks/billing/vue/index.d.ts +15 -0
- package/dist/blocks/billing/vue/index.js +14 -0
- package/dist/blocks/bookings/index.d.ts +36 -0
- package/dist/blocks/bookings/index.js +28 -0
- package/dist/blocks/bookings/react/index.d.ts +31 -0
- package/dist/blocks/bookings/react/index.js +59 -0
- package/dist/blocks/bookings/react/server.d.ts +6 -0
- package/dist/blocks/bookings/react/server.js +7 -0
- package/dist/blocks/bookings/solid/index.d.ts +13 -0
- package/dist/blocks/bookings/solid/index.js +14 -0
- package/dist/blocks/bookings/svelte/index.d.ts +13 -0
- package/dist/blocks/bookings/svelte/index.js +14 -0
- package/dist/blocks/bookings/vue/index.d.ts +13 -0
- package/dist/blocks/bookings/vue/index.js +14 -0
- package/dist/blocks/bulk/index.d.ts +142 -0
- package/dist/blocks/bulk/index.js +154 -0
- package/dist/blocks/calendar/index.d.ts +20 -0
- package/dist/blocks/calendar/index.js +33 -0
- package/dist/blocks/calendar/react/index.d.ts +26 -0
- package/dist/blocks/calendar/react/index.js +58 -0
- package/dist/blocks/calendar/react/server.d.ts +6 -0
- package/dist/blocks/calendar/react/server.js +7 -0
- package/dist/blocks/calendar/solid/index.d.ts +13 -0
- package/dist/blocks/calendar/solid/index.js +14 -0
- package/dist/blocks/calendar/svelte/index.d.ts +13 -0
- package/dist/blocks/calendar/svelte/index.js +14 -0
- package/dist/blocks/calendar/vue/index.d.ts +13 -0
- package/dist/blocks/calendar/vue/index.js +14 -0
- package/dist/blocks/catalog/index.d.ts +224 -0
- package/dist/blocks/catalog/index.js +292 -0
- package/dist/blocks/collections/index.d.ts +184 -0
- package/dist/blocks/collections/index.js +208 -0
- package/dist/blocks/comments/index.d.ts +19 -166
- package/dist/blocks/comments/index.js +26 -206
- package/dist/blocks/comments/react/index.d.ts +27 -0
- package/dist/blocks/comments/react/index.js +45 -0
- package/dist/blocks/comments/react/server.d.ts +7 -0
- package/dist/blocks/comments/react/server.js +7 -0
- package/dist/blocks/comments/solid/index.d.ts +13 -0
- package/dist/blocks/comments/solid/index.js +14 -0
- package/dist/blocks/comments/svelte/index.d.ts +13 -0
- package/dist/blocks/comments/svelte/index.js +14 -0
- package/dist/blocks/comments/vue/index.d.ts +13 -0
- package/dist/blocks/comments/vue/index.js +14 -0
- package/dist/blocks/connectors/index.d.ts +21 -3
- package/dist/blocks/connectors/index.js +54 -18
- package/dist/blocks/custom-fields/index.d.ts +62 -0
- package/dist/blocks/custom-fields/index.js +85 -0
- package/dist/blocks/data-lifecycle/index.d.ts +119 -10
- package/dist/blocks/data-lifecycle/index.js +103 -12
- package/dist/blocks/deals/index.d.ts +262 -0
- package/dist/blocks/deals/index.js +380 -0
- package/dist/blocks/documents/index.d.ts +17 -0
- package/dist/blocks/documents/index.js +118 -0
- package/dist/blocks/domains/index.d.ts +117 -0
- package/dist/blocks/domains/index.js +118 -0
- package/dist/blocks/drive/index.d.ts +296 -0
- package/dist/blocks/drive/index.js +483 -0
- package/dist/blocks/employees/index.d.ts +205 -0
- package/dist/blocks/employees/index.js +289 -0
- package/dist/blocks/engagements/index.d.ts +125 -0
- package/dist/blocks/engagements/index.js +143 -0
- package/dist/blocks/entitlements/index.d.ts +40 -4
- package/dist/blocks/entitlements/index.js +14 -24
- package/dist/blocks/entitlements/react/index.d.ts +24 -0
- package/dist/blocks/entitlements/react/index.js +35 -0
- package/dist/blocks/entitlements/react/server.d.ts +6 -0
- package/dist/blocks/entitlements/react/server.js +7 -0
- package/dist/blocks/entitlements/solid/index.d.ts +13 -0
- package/dist/blocks/entitlements/solid/index.js +14 -0
- package/dist/blocks/entitlements/svelte/index.d.ts +13 -0
- package/dist/blocks/entitlements/svelte/index.js +14 -0
- package/dist/blocks/entitlements/vue/index.d.ts +13 -0
- package/dist/blocks/entitlements/vue/index.js +14 -0
- package/dist/blocks/flags/index.d.ts +61 -187
- package/dist/blocks/flags/index.js +65 -252
- package/dist/blocks/forms/index.d.ts +302 -0
- package/dist/blocks/forms/index.js +341 -0
- package/dist/blocks/forms/react/index.d.ts +16 -0
- package/dist/blocks/forms/react/index.js +25 -0
- package/dist/blocks/forms/react/server.d.ts +6 -0
- package/dist/blocks/forms/react/server.js +7 -0
- package/dist/blocks/forms/solid/index.d.ts +13 -0
- package/dist/blocks/forms/solid/index.js +14 -0
- package/dist/blocks/forms/svelte/index.d.ts +13 -0
- package/dist/blocks/forms/svelte/index.js +14 -0
- package/dist/blocks/forms/vue/index.d.ts +13 -0
- package/dist/blocks/forms/vue/index.js +14 -0
- package/dist/blocks/hiring/index.d.ts +154 -0
- package/dist/blocks/hiring/index.js +180 -0
- package/dist/blocks/identities/index.d.ts +83 -0
- package/dist/blocks/identities/index.js +103 -0
- package/dist/blocks/imports/index.d.ts +91 -0
- package/dist/blocks/imports/index.js +123 -0
- package/dist/blocks/inbox/index.d.ts +22 -3
- package/dist/blocks/inbox/index.js +78 -6
- package/dist/blocks/inbox/react/index.d.ts +3 -2
- package/dist/blocks/inbox/react/index.js +55 -199
- package/dist/blocks/inbox/react/server.d.ts +2 -1
- package/dist/blocks/inbox/solid/index.d.ts +27 -0
- package/dist/blocks/inbox/solid/index.js +32 -0
- package/dist/blocks/inbox/svelte/index.d.ts +27 -0
- package/dist/blocks/inbox/svelte/index.js +32 -0
- package/dist/blocks/inbox/vue/index.d.ts +27 -0
- package/dist/blocks/inbox/vue/index.js +32 -0
- package/dist/blocks/index.d.ts +9 -64
- package/dist/blocks/index.js +193 -57
- package/dist/blocks/inventory/index.d.ts +181 -0
- package/dist/blocks/inventory/index.js +219 -0
- package/dist/blocks/invoices/index.d.ts +154 -0
- package/dist/blocks/invoices/index.js +216 -0
- package/dist/blocks/jobs/index.d.ts +188 -49
- package/dist/blocks/jobs/index.js +698 -527
- package/dist/blocks/knowledge/index.d.ts +10 -3
- package/dist/blocks/knowledge/index.js +17 -3
- package/dist/blocks/leave/index.d.ts +241 -0
- package/dist/blocks/leave/index.js +209 -0
- package/dist/blocks/memory/index.d.ts +9 -4
- package/dist/blocks/memory/index.js +49 -12
- package/dist/blocks/metrics/index.d.ts +174 -0
- package/dist/blocks/metrics/index.js +217 -0
- package/dist/blocks/mfa/index.d.ts +7 -0
- package/dist/blocks/mfa/index.js +12 -0
- package/dist/blocks/mfa/react/index.d.ts +30 -0
- package/dist/blocks/mfa/react/index.js +45 -0
- package/dist/blocks/mfa/react/server.d.ts +9 -0
- package/dist/blocks/mfa/react/server.js +12 -0
- package/dist/blocks/mfa/solid/index.d.ts +20 -0
- package/dist/blocks/mfa/solid/index.js +23 -0
- package/dist/blocks/mfa/svelte/index.d.ts +20 -0
- package/dist/blocks/mfa/svelte/index.js +23 -0
- package/dist/blocks/mfa/vue/index.d.ts +20 -0
- package/dist/blocks/mfa/vue/index.js +23 -0
- package/dist/blocks/notifications/index.d.ts +345 -26
- package/dist/blocks/notifications/index.js +744 -120
- package/dist/blocks/notifications/react/index.d.ts +7 -32
- package/dist/blocks/notifications/react/index.js +23 -49
- package/dist/blocks/notifications/react/server.d.ts +2 -1
- package/dist/blocks/notifications/solid/index.d.ts +13 -0
- package/dist/blocks/notifications/solid/index.js +14 -0
- package/dist/blocks/notifications/svelte/index.d.ts +13 -0
- package/dist/blocks/notifications/svelte/index.js +14 -0
- package/dist/blocks/notifications/vue/index.d.ts +13 -0
- package/dist/blocks/notifications/vue/index.js +14 -0
- package/dist/blocks/number-sequences/index.d.ts +39 -0
- package/dist/blocks/number-sequences/index.js +38 -0
- package/dist/blocks/oauth-server/index.d.ts +228 -0
- package/dist/blocks/oauth-server/index.js +309 -0
- package/dist/blocks/onboarding/index.d.ts +8 -3
- package/dist/blocks/onboarding/index.js +17 -63
- package/dist/blocks/onboarding/react/index.d.ts +3 -12
- package/dist/blocks/onboarding/react/index.js +18 -60
- package/dist/blocks/onboarding/react/server.d.ts +2 -2
- package/dist/blocks/onboarding/react/server.js +2 -2
- package/dist/blocks/onboarding/solid/index.d.ts +13 -0
- package/dist/blocks/onboarding/solid/index.js +14 -0
- package/dist/blocks/onboarding/svelte/index.d.ts +13 -0
- package/dist/blocks/onboarding/svelte/index.js +14 -0
- package/dist/blocks/onboarding/vue/index.d.ts +13 -0
- package/dist/blocks/onboarding/vue/index.js +14 -0
- package/dist/blocks/orders/index.d.ts +264 -0
- package/dist/blocks/orders/index.js +589 -0
- package/dist/blocks/organizations/index.d.ts +31 -238
- package/dist/blocks/organizations/index.js +49 -399
- package/dist/blocks/organizations/react/index.d.ts +108 -0
- package/dist/blocks/organizations/react/index.js +113 -0
- package/dist/blocks/organizations/react/server.d.ts +11 -0
- package/dist/blocks/organizations/react/server.js +15 -0
- package/dist/blocks/organizations/solid/index.d.ts +34 -0
- package/dist/blocks/organizations/solid/index.js +32 -0
- package/dist/blocks/organizations/svelte/index.d.ts +34 -0
- package/dist/blocks/organizations/svelte/index.js +32 -0
- package/dist/blocks/organizations/vue/index.d.ts +34 -0
- package/dist/blocks/organizations/vue/index.js +32 -0
- package/dist/blocks/outbox/index.d.ts +12 -3
- package/dist/blocks/outbox/index.js +97 -67
- package/dist/blocks/parties/index.d.ts +181 -0
- package/dist/blocks/parties/index.js +258 -0
- package/dist/blocks/pipelines/index.d.ts +189 -0
- package/dist/blocks/pipelines/index.js +204 -0
- package/dist/blocks/profiles/index.d.ts +14 -9
- package/dist/blocks/profiles/index.js +20 -6
- package/dist/blocks/promotions/index.d.ts +125 -0
- package/dist/blocks/promotions/index.js +123 -0
- package/dist/blocks/push/index.d.ts +48 -28
- package/dist/blocks/push/index.js +45 -16
- package/dist/blocks/quotes/index.d.ts +152 -0
- package/dist/blocks/quotes/index.js +209 -0
- package/dist/blocks/rank/index.d.ts +71 -0
- package/dist/blocks/rank/index.js +53 -0
- package/dist/blocks/reactions/index.d.ts +18 -0
- package/dist/blocks/reactions/index.js +26 -0
- package/dist/blocks/reactions/react/index.d.ts +23 -0
- package/dist/blocks/reactions/react/index.js +46 -0
- package/dist/blocks/reactions/react/server.d.ts +6 -0
- package/dist/blocks/reactions/react/server.js +7 -0
- package/dist/blocks/reactions/solid/index.d.ts +13 -0
- package/dist/blocks/reactions/solid/index.js +14 -0
- package/dist/blocks/reactions/svelte/index.d.ts +13 -0
- package/dist/blocks/reactions/svelte/index.js +14 -0
- package/dist/blocks/reactions/vue/index.d.ts +13 -0
- package/dist/blocks/reactions/vue/index.js +14 -0
- package/dist/blocks/relations/index.d.ts +180 -0
- package/dist/blocks/relations/index.js +254 -0
- package/dist/blocks/reminders/index.d.ts +177 -0
- package/dist/blocks/reminders/index.js +171 -0
- package/dist/blocks/reviews/index.d.ts +148 -0
- package/dist/blocks/reviews/index.js +139 -0
- package/dist/blocks/rules/index.d.ts +103 -0
- package/dist/blocks/rules/index.js +54 -0
- package/dist/blocks/rules/react/index.d.ts +34 -0
- package/dist/blocks/rules/react/index.js +55 -0
- package/dist/blocks/rules/react/server.d.ts +6 -0
- package/dist/blocks/rules/react/server.js +7 -0
- package/dist/blocks/rules/solid/index.d.ts +13 -0
- package/dist/blocks/rules/solid/index.js +14 -0
- package/dist/blocks/rules/svelte/index.d.ts +13 -0
- package/dist/blocks/rules/svelte/index.js +14 -0
- package/dist/blocks/rules/vue/index.d.ts +13 -0
- package/dist/blocks/rules/vue/index.js +14 -0
- package/dist/blocks/saved-views/index.d.ts +17 -0
- package/dist/blocks/saved-views/index.js +29 -0
- package/dist/blocks/saved-views/react/index.d.ts +34 -0
- package/dist/blocks/saved-views/react/index.js +57 -0
- package/dist/blocks/saved-views/react/server.d.ts +7 -0
- package/dist/blocks/saved-views/react/server.js +7 -0
- package/dist/blocks/saved-views/solid/index.d.ts +13 -0
- package/dist/blocks/saved-views/solid/index.js +14 -0
- package/dist/blocks/saved-views/svelte/index.d.ts +13 -0
- package/dist/blocks/saved-views/svelte/index.js +14 -0
- package/dist/blocks/saved-views/vue/index.d.ts +13 -0
- package/dist/blocks/saved-views/vue/index.js +14 -0
- package/dist/blocks/search/index.d.ts +31 -0
- package/dist/blocks/search/index.js +61 -0
- package/dist/blocks/search/react/index.d.ts +36 -0
- package/dist/blocks/search/react/index.js +49 -0
- package/dist/blocks/search/react/server.d.ts +7 -0
- package/dist/blocks/search/react/server.js +8 -0
- package/dist/blocks/search/solid/index.d.ts +13 -0
- package/dist/blocks/search/solid/index.js +14 -0
- package/dist/blocks/search/svelte/index.d.ts +13 -0
- package/dist/blocks/search/svelte/index.js +14 -0
- package/dist/blocks/search/vue/index.d.ts +13 -0
- package/dist/blocks/search/vue/index.js +14 -0
- package/dist/blocks/service-principals/index.d.ts +126 -0
- package/dist/blocks/service-principals/index.js +107 -0
- package/dist/blocks/sessions/index.d.ts +7 -0
- package/dist/blocks/sessions/index.js +14 -0
- package/dist/blocks/sessions/react/index.d.ts +31 -0
- package/dist/blocks/sessions/react/index.js +51 -0
- package/dist/blocks/sessions/react/server.d.ts +9 -0
- package/dist/blocks/sessions/react/server.js +11 -0
- package/dist/blocks/sessions/solid/index.d.ts +20 -0
- package/dist/blocks/sessions/solid/index.js +23 -0
- package/dist/blocks/sessions/svelte/index.d.ts +20 -0
- package/dist/blocks/sessions/svelte/index.js +23 -0
- package/dist/blocks/sessions/vue/index.d.ts +20 -0
- package/dist/blocks/sessions/vue/index.js +23 -0
- package/dist/blocks/settings/index.d.ts +20 -86
- package/dist/blocks/settings/index.js +28 -101
- package/dist/blocks/settings/react/index.d.ts +25 -0
- package/dist/blocks/settings/react/index.js +37 -0
- package/dist/blocks/settings/react/server.d.ts +7 -0
- package/dist/blocks/settings/react/server.js +7 -0
- package/dist/blocks/settings/solid/index.d.ts +13 -0
- package/dist/blocks/settings/solid/index.js +14 -0
- package/dist/blocks/settings/svelte/index.d.ts +13 -0
- package/dist/blocks/settings/svelte/index.js +14 -0
- package/dist/blocks/settings/vue/index.d.ts +13 -0
- package/dist/blocks/settings/vue/index.js +14 -0
- package/dist/blocks/share-links/index.d.ts +99 -0
- package/dist/blocks/share-links/index.js +99 -0
- package/dist/blocks/shared-signals/index.d.ts +395 -0
- package/dist/blocks/shared-signals/index.js +880 -0
- package/dist/blocks/signing-keys/index.d.ts +29 -0
- package/dist/blocks/signing-keys/index.js +161 -0
- package/dist/blocks/sla/index.d.ts +114 -0
- package/dist/blocks/sla/index.js +122 -0
- package/dist/blocks/sso/index.d.ts +169 -147
- package/dist/blocks/sso/index.js +259 -321
- package/dist/blocks/state-machine/index.d.ts +105 -0
- package/dist/blocks/state-machine/index.js +116 -0
- package/dist/blocks/tags/index.d.ts +20 -0
- package/dist/blocks/tags/index.js +28 -0
- package/dist/blocks/tags/react/index.d.ts +28 -0
- package/dist/blocks/tags/react/index.js +47 -0
- package/dist/blocks/tags/react/server.d.ts +7 -0
- package/dist/blocks/tags/react/server.js +7 -0
- package/dist/blocks/tags/solid/index.d.ts +13 -0
- package/dist/blocks/tags/solid/index.js +14 -0
- package/dist/blocks/tags/svelte/index.d.ts +13 -0
- package/dist/blocks/tags/svelte/index.js +14 -0
- package/dist/blocks/tags/vue/index.d.ts +13 -0
- package/dist/blocks/tags/vue/index.js +14 -0
- package/dist/blocks/targets/index.d.ts +82 -0
- package/dist/blocks/targets/index.js +73 -0
- package/dist/blocks/teams/index.d.ts +61 -0
- package/dist/blocks/teams/index.js +83 -0
- package/dist/blocks/templates/index.d.ts +362 -0
- package/dist/blocks/templates/index.js +483 -0
- package/dist/blocks/time-tracking/index.d.ts +250 -0
- package/dist/blocks/time-tracking/index.js +317 -0
- package/dist/blocks/trash/index.d.ts +78 -0
- package/dist/blocks/trash/index.js +79 -0
- package/dist/blocks/undo/index.d.ts +9 -0
- package/dist/blocks/undo/index.js +14 -0
- package/dist/blocks/undo/react/index.d.ts +17 -0
- package/dist/blocks/undo/react/index.js +24 -0
- package/dist/blocks/undo/react/server.d.ts +7 -0
- package/dist/blocks/undo/react/server.js +7 -0
- package/dist/blocks/undo/solid/index.d.ts +13 -0
- package/dist/blocks/undo/solid/index.js +14 -0
- package/dist/blocks/undo/svelte/index.d.ts +13 -0
- package/dist/blocks/undo/svelte/index.js +14 -0
- package/dist/blocks/undo/vue/index.d.ts +13 -0
- package/dist/blocks/undo/vue/index.js +14 -0
- package/dist/blocks/usage/index.d.ts +10 -4
- package/dist/blocks/usage/index.js +16 -232
- package/dist/blocks/usage/react/index.d.ts +23 -0
- package/dist/blocks/usage/react/index.js +38 -0
- package/dist/blocks/usage/react/server.d.ts +7 -0
- package/dist/blocks/usage/react/server.js +7 -0
- package/dist/blocks/usage/solid/index.d.ts +13 -0
- package/dist/blocks/usage/solid/index.js +14 -0
- package/dist/blocks/usage/svelte/index.d.ts +13 -0
- package/dist/blocks/usage/svelte/index.js +14 -0
- package/dist/blocks/usage/vue/index.d.ts +13 -0
- package/dist/blocks/usage/vue/index.js +14 -0
- package/dist/blocks/versions/index.d.ts +165 -0
- package/dist/blocks/versions/index.js +283 -0
- package/dist/blocks/waitlist/index.d.ts +57 -19
- package/dist/blocks/waitlist/index.js +47 -12
- package/dist/blocks/webhooks/index.d.ts +275 -134
- package/dist/blocks/webhooks/index.js +775 -231
- package/dist/blocks/work-items/index.d.ts +208 -0
- package/dist/blocks/work-items/index.js +305 -0
- package/dist/blocks/workflow-builder/index.d.ts +26 -6
- package/dist/blocks/workflow-builder/index.js +30 -5
- package/dist/blocks/workflow-builder/react/index.d.ts +4 -19
- package/dist/blocks/workflow-builder/react/index.js +45 -89
- package/dist/blocks/workflow-builder/solid/index.d.ts +20 -0
- package/dist/blocks/workflow-builder/solid/index.js +23 -0
- package/dist/blocks/workflow-builder/svelte/index.d.ts +20 -0
- package/dist/blocks/workflow-builder/svelte/index.js +23 -0
- package/dist/blocks/workflow-builder/vue/index.d.ts +20 -0
- package/dist/blocks/workflow-builder/vue/index.js +23 -0
- package/dist/blocks/workflows/index.d.ts +20 -3
- package/dist/blocks/workflows/index.js +27 -3
- package/dist/blocks/workflows/react/index.d.ts +5 -20
- package/dist/blocks/workflows/react/index.js +41 -113
- package/dist/blocks/workflows/solid/index.d.ts +20 -0
- package/dist/blocks/workflows/solid/index.js +23 -0
- package/dist/blocks/workflows/svelte/index.d.ts +20 -0
- package/dist/blocks/workflows/svelte/index.js +23 -0
- package/dist/blocks/workflows/vue/index.d.ts +20 -0
- package/dist/blocks/workflows/vue/index.js +23 -0
- package/dist/blocks-D2WQ63PI.js +84 -0
- package/dist/bookings-0XnhHNLM.js +181 -0
- package/dist/build-Cm0T5MVG.js +1815 -0
- package/dist/build-Cx08LOT7.js +689 -0
- package/dist/calendar-DcFrpSOy.js +801 -0
- package/dist/casing-DdFWEtqr.js +16 -0
- package/dist/channel-D-LHCY11.d.ts +78 -0
- package/dist/channels-C-GCoNLd.js +114 -0
- package/dist/chat-sdk/index.d.ts +131 -7
- package/dist/chat-sdk/index.js +155 -6
- package/dist/chat-sdk/react/index.d.ts +2 -1
- package/dist/chat-sdk/react/index.js +1 -2
- package/dist/chat-sdk/react/server.d.ts +2 -1
- package/dist/chat-sdk/react/server.js +1 -2
- package/dist/claims-0KZVT804.js +61 -0
- package/dist/cli/add-B0zoJUYX.js +651 -0
- package/dist/cli/add-Bd5M6uEZ.js +75 -0
- package/dist/cli/add-CT6p5psO.js +1 -0
- package/dist/cli/adopt-C9jl8z0h.js +1 -0
- package/dist/cli/adopt-CebmlHL-.js +393 -0
- package/dist/cli/agent-CCt_aXpJ.js +176 -0
- package/dist/cli/apply-Dxk8AUNU.js +302 -0
- package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
- package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
- package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
- package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
- package/dist/cli/bin.js +41 -21
- package/dist/cli/blocks-Bzz326nn.js +1 -0
- package/dist/cli/blocks-Dq25D80b.js +124 -0
- package/dist/cli/cache-Cx6qlRDR.js +502 -0
- package/dist/cli/catalog-Di15TkM2.js +187 -0
- package/dist/cli/codemod-woL4cVe0.js +985 -0
- package/dist/cli/command-CK9Cn8HV.js +836 -0
- package/dist/cli/completion-BO5UK6bG.js +1 -0
- package/dist/cli/completion-CWoDmFZr.js +205 -0
- package/dist/cli/completion-J3dqnNoW.js +30 -0
- package/dist/cli/config-C1d-mbUA.js +1 -0
- package/dist/cli/config-CLHpTk9Y.js +1421 -0
- package/dist/cli/config-MuKY9kUj.js +39 -0
- package/dist/cli/config-edit-Ct1lXe8a.js +603 -0
- package/dist/cli/db-DT1bGB02.js +78 -0
- package/dist/cli/design-edit-B-WsnhUF.js +175 -0
- package/dist/cli/detect-DYDUBLU4.js +84 -0
- package/dist/cli/dist-D_VbPAMR.js +129 -0
- package/dist/cli/dist-DuiMMRbJ.js +1112 -0
- package/dist/cli/doctor-SGw36h1D.js +3806 -0
- package/dist/cli/emit-ZAYeh4Yn.js +1042 -0
- package/dist/cli/env-CVXvJoLP.js +142 -0
- package/dist/cli/env-D3gZ-OHj.js +1 -0
- package/dist/cli/env-DJ4ZaJpe.js +1 -0
- package/dist/cli/env-DMw_MBe5.js +996 -0
- package/dist/cli/errors-Caiz_0so.js +98 -0
- package/dist/cli/fastest-levenshtein-dhRRvrM2.js +120 -0
- package/dist/cli/files-DDvAwTko.js +963 -0
- package/dist/cli/gen-B344S1Oy.js +304 -0
- package/dist/cli/guards-CUlDNYZs.js +8 -0
- package/dist/cli/index.d.ts +297 -140
- package/dist/cli/index.js +13 -8
- package/dist/cli/init-B1dL-RZL.js +393 -0
- package/dist/cli/introspect-BPcFi8ow.js +51 -0
- package/dist/cli/io-BiPX-_J1.js +37 -0
- package/dist/cli/jsonc-C8M0EhHB.js +1 -0
- package/dist/cli/keys-jsxCNJdz.js +106 -0
- package/dist/cli/metadata-CxBZo4KM.js +138 -0
- package/dist/cli/module-migration-YFFdWC5X.js +592 -0
- package/dist/cli/moved-D9OT_Uyy.js +152 -0
- package/dist/cli/names-D6LrQnOv.js +6 -0
- package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
- package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
- package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
- package/dist/cli/parse-DE59XyWt.js +170 -0
- package/dist/cli/preset-DmcC4nWE.js +129 -0
- package/dist/cli/prompts-Bvg_DBpe.js +1137 -0
- package/dist/cli/redact-PjNswZOs.js +35 -0
- package/dist/cli/rolldown-runtime-kJ_i4yPo.js +26 -0
- package/dist/cli/run-CM_2g6KQ.js +684 -0
- package/dist/cli/run-DaHfUUO9.js +1539 -0
- package/dist/cli/scaffold-CFdDq36-.js +898 -0
- package/dist/cli/scaffold-Dsjr7sOT.js +1 -0
- package/dist/cli/seed-DldDdXWO.js +113 -0
- package/dist/cli/seed-DtRFysBe.js +1 -0
- package/dist/cli/shell-Btv_4Yhe.js +10 -0
- package/dist/cli/skills-v34NDb2D.js +121 -0
- package/dist/cli/snapshot-DAxLi4hO.js +347 -0
- package/dist/cli/source-args-0I9zylYy.js +47 -0
- package/dist/cli/spec-CaaSOYZS.js +7501 -0
- package/dist/cli/spec-De0cfceR.js +1 -0
- package/dist/cli/sql-0I1EQ3JG.js +2 -0
- package/dist/cli/sql-DDLWwzh9.js +326 -0
- package/dist/cli/stack-status-CRanl-CN.js +456 -0
- package/dist/cli/style-2JfIPVMQ.js +29 -0
- package/dist/cli/supabase-toml-DjLgBYEo.js +1153 -0
- package/dist/cli/sync-DFx-6t5n.js +88 -0
- package/dist/cli/topics-GJuIDwlY.js +30 -0
- package/dist/cli/trace-VbdO6bcN.js +7 -0
- package/dist/cli/typegen--TfvOPLh.js +494 -0
- package/dist/cli/typegen-version-BNBPI4Eu.js +9 -0
- package/dist/cli/validate-BfWNKvxy.js +7522 -0
- package/dist/cli/version-DNRW4DAP.js +4 -0
- package/dist/cli/write-BS6F3Yvz.js +180 -0
- package/dist/client/index.d.ts +7 -3
- package/dist/client/index.js +207 -4
- package/dist/client/native/index.d.ts +71 -4
- package/dist/client/native/index.js +65 -6
- package/dist/client-01MAuqzW.js +137 -0
- package/dist/client-B7QVIrJS.d.ts +263 -0
- package/dist/client-B9CqzgPO.js +75 -0
- package/dist/client-BAcILZOf.d.ts +122 -0
- package/dist/client-BOT2KVIp.js +128 -0
- package/dist/client-BUGIS__1.js +1051 -0
- package/dist/client-BVZtq_rQ.d.ts +34 -0
- package/dist/client-BYaOGCOG.js +84 -0
- package/dist/client-BfgwocyT.js +155 -0
- package/dist/client-BpS8a6Fm.js +51 -0
- package/dist/client-BxnLb9bz.d.ts +58 -0
- package/dist/client-BzCv4kKE.js +65 -0
- package/dist/client-C-2ajnhM.js +89 -0
- package/dist/client-C5mUEb2n.js +55 -0
- package/dist/client-C9QrWrnt.js +209 -0
- package/dist/client-CFdMJ1h9.d.ts +277 -0
- package/dist/client-CHmjaI0j.d.ts +103 -0
- package/dist/client-CWs3X4g1.js +120 -0
- package/dist/client-Cdedx_lw.js +438 -0
- package/dist/client-CiGjS6us.js +169 -0
- package/dist/client-CilSKXNu.js +288 -0
- package/dist/client-ClZ0D-if.d.ts +162 -0
- package/dist/client-Cmensu7l.d.ts +419 -0
- package/dist/client-Co6BPmvr.d.ts +108 -0
- package/dist/client-CoVGPi0c.js +133 -0
- package/dist/client-CvITjt-9.js +310 -0
- package/dist/client-CzI4QpG3.d.ts +131 -0
- package/dist/client-D5CZ2a34.d.ts +455 -0
- package/dist/client-DAHsEOVV.d.ts +155 -0
- package/dist/client-DG7FwgZD.js +104 -0
- package/dist/client-DIrCmOXz.d.ts +157 -0
- package/dist/client-DNq8xYb-.js +52 -0
- package/dist/client-DdfSIZ3M.d.ts +107 -0
- package/dist/client-DjTRlN3a.d.ts +68 -0
- package/dist/client-Ezlbskjq.js +60 -0
- package/dist/client-LLmgiCwJ.d.ts +135 -0
- package/dist/client-Lx3mlvKO.d.ts +100 -0
- package/dist/client-PGRk3DGz.js +98 -0
- package/dist/client-Tc47rlSe.d.ts +350 -0
- package/dist/client-VvY0K3wr.d.ts +59 -0
- package/dist/client-WAdEBBrH.d.ts +65 -0
- package/dist/client-WHeWTNVL.d.ts +130 -0
- package/dist/client-WgrPIHH-.js +213 -0
- package/dist/client-ZTtSV3l8.js +40 -0
- package/dist/client-b2_GjzzD.js +438 -0
- package/dist/client-ckXfdy1k.js +38 -0
- package/dist/client-e-hFkLUf.d.ts +34 -0
- package/dist/client-hyP_nS5R.d.ts +218 -0
- package/dist/client-i8glKhxh.js +67 -0
- package/dist/client-iDLLvGR4.d.ts +52 -0
- package/dist/client-pxjbgOz6.js +376 -0
- package/dist/client-xkSCp9hN.d.ts +101 -0
- package/dist/client-ysNShuJZ.d.ts +39 -0
- package/dist/clone-dN9XOL1K.js +29 -0
- package/dist/cloud-event-5rCEzIgK.d.ts +64 -0
- package/dist/cloud-event-CTh9Sr5w.js +60 -0
- package/dist/codecs-Bm46sVxr.d.ts +215 -0
- package/dist/codecs-YAekuQ08.js +358 -0
- package/dist/codegen-DeoSt1mi.d.ts +1571 -0
- package/dist/comments-D7sbd0xG.js +230 -0
- package/dist/commerce/index.d.ts +211 -0
- package/dist/commerce/index.js +517 -0
- package/dist/compiler-BVxepAY0.d.ts +14 -0
- package/dist/compose-Djntdacs.js +53 -0
- package/dist/composite-M6zPs1Xm.js +130 -0
- package/dist/composite-djtGy6bz.d.ts +67 -0
- package/dist/config/index.d.ts +7 -6
- package/dist/config/index.js +7 -4
- package/dist/config-BA1K4OPk.js +557 -0
- package/dist/config-C4MozTD7.js +3892 -0
- package/dist/connector-Cp8CqssJ.d.ts +107 -0
- package/dist/connectors-CjD-R2ks.d.ts +141 -0
- package/dist/context-1sSWcd7_.d.ts +365 -0
- package/dist/context-B8_p3MXo.js +11 -0
- package/dist/context-BDDgjoxz.js +41 -0
- package/dist/context-C-bHOtoD.js +5 -0
- package/dist/context-D6ZMKc2L.js +19 -0
- package/dist/context-wDKxSl9x.js +9 -0
- package/dist/controller-D6NyNrlZ.js +79 -0
- package/dist/controller-D845qKh2.d.ts +46 -0
- package/dist/credentials/index.d.ts +15 -5
- package/dist/credentials/index.js +17 -17
- package/dist/cron-CUaKTjWC.js +145 -0
- package/dist/cron-route-CoL-By8Z.js +24 -0
- package/dist/csv-CVfXqaAu.js +89 -0
- package/dist/csv-D3eKxV1T.d.ts +28 -0
- package/dist/define-B2ln373W.js +1896 -0
- package/dist/define-DxHHbNEb.d.ts +1005 -0
- package/dist/define-block-B6Gjs57G.js +52 -0
- package/dist/define-block-CLZMEFeK.d.ts +256 -0
- package/dist/delegation-Dt8hMJWu.js +140 -0
- package/dist/delivery-B1mKaOen.js +30 -0
- package/dist/delivery-BeHgwS3k.d.ts +69 -0
- package/dist/documents-CWn2mtYf.d.ts +96 -0
- package/dist/edge/index.d.ts +68 -13
- package/dist/edge/index.js +75 -43
- package/dist/elysia/index.d.ts +1 -1
- package/dist/elysia/index.js +2 -2
- package/dist/email-BcmbIWOX.d.ts +42 -0
- package/dist/embeddings-C2S14foD.d.ts +78 -0
- package/dist/embeddings-CVeOoufZ.js +128 -0
- package/dist/ended-nIdGCHxk.d.ts +70 -0
- package/dist/entitlements-BvU5dLpW.js +45 -0
- package/dist/entitlements-CbzCKalR.d.ts +53 -0
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.js +12 -5
- package/dist/envelope-CHYk5MXU.js +90 -0
- package/dist/errors-8i6tSICm.js +301 -0
- package/dist/errors-PIpcoe4z.js +44 -0
- package/dist/escape-like-AUEPn-C5.d.ts +15 -0
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +11 -17
- package/dist/eve-DUF70Vgi.d.ts +151 -0
- package/dist/event-calendar-DJXXMJ3x.d.ts +217 -0
- package/dist/event-map-Dy2vKHai.js +19 -0
- package/dist/events/index.d.ts +4 -4
- package/dist/events/index.js +16 -8
- package/dist/events-CTreRrgP.d.ts +800 -0
- package/dist/events-xbpHkcK9.js +82 -0
- package/dist/executor-BBHgjUJu.d.ts +39 -0
- package/dist/executor-BINiCFNp.d.ts +95 -0
- package/dist/executor-BXSHYyW2.js +735 -0
- package/dist/executor-D1kYY5BA.js +206 -0
- package/dist/executor-D3K3tycZ.js +147 -0
- package/dist/executor-DKrZr3AC.d.ts +174 -0
- package/dist/executor-DoE-5iM8.d.ts +272 -0
- package/dist/expo/index.d.ts +4 -4
- package/dist/expo/index.js +7 -7
- package/dist/expo-sqlite/index.d.ts +3 -3
- package/dist/expo-sqlite/index.js +2 -2
- package/dist/extra-CGQ2_q3S.js +10 -0
- package/dist/field-errors-CWXN_h_E.d.ts +113 -0
- package/dist/field-errors-DZVRWRkf.js +13 -0
- package/dist/field-formats-Cif5gr7c.js +102 -0
- package/dist/field-formats-DCvOQlOy.d.ts +39 -0
- package/dist/filter-evaluate-C0ULNfS7.js +214 -0
- package/dist/filter-evaluate-CjcFq0RT.d.ts +34 -0
- package/dist/filter-query-B3lhckKX.js +518 -0
- package/dist/filter-query-BKmRYrTE.d.ts +121 -0
- package/dist/flags-D_D1jAHB.d.ts +230 -0
- package/dist/flags-XAOsdNAc.js +279 -0
- package/dist/flags-sdk/index.d.ts +143 -0
- package/dist/flags-sdk/index.js +175 -0
- package/dist/form-definition-sagoefQr.d.ts +95 -0
- package/dist/format-CNwSjXUU.d.ts +70 -0
- package/dist/framework-DG5Bv39u.d.ts +26 -0
- package/dist/framework-INbjMZX1.js +51 -0
- package/dist/function-contract-B4c0XuTU.d.ts +21 -0
- package/dist/function-contract-DmkBg19r.js +5 -0
- package/dist/gateway-Cup00l0w.d.ts +109 -0
- package/dist/gateway-options-ClvvfuuU.d.ts +29 -0
- package/dist/gateway-options-DcLcWL5_.js +27 -0
- package/dist/graph-Cs28bOlK.js +360 -0
- package/dist/groups-CxonH3u5.js +16 -0
- package/dist/guards-6F2bCtQR.js +12 -0
- package/dist/h3/index.d.ts +7 -3
- package/dist/h3/index.js +3 -3
- package/dist/h3/v1/index.d.ts +1 -1
- package/dist/h3/v1/index.js +2 -2
- package/dist/history-GH1HJWQV.js +271 -0
- package/dist/hmac-DCud0myt.js +22 -0
- package/dist/hono/index.d.ts +33 -14
- package/dist/hono/index.js +58 -25
- package/dist/http-BF-V0CUF.js +25 -0
- package/dist/impersonation-CDeCzZP6.js +62 -0
- package/dist/impersonation-D5chOkrO.d.ts +25 -0
- package/dist/inbox-3ql4phyr.d.ts +400 -0
- package/dist/index-BIi8i6BO.d.ts +97 -0
- package/dist/index-BkzNUPId.d.ts +131 -0
- package/dist/index-BlqrGvb3.d.ts +227 -0
- package/dist/index-Brhm22eL.d.ts +138 -0
- package/dist/index-Bvw9r94Q.d.ts +245 -0
- package/dist/index-CETRk4YO.d.ts +82 -0
- package/dist/index-CrZitvSC.d.ts +258 -0
- package/dist/index-DfVXx4Ia.d.ts +202 -0
- package/dist/index-DygICr8c.d.ts +206 -0
- package/dist/index-Ej8XQ9w9.d.ts +58 -0
- package/dist/index-jhqhynmh.d.ts +58 -0
- package/dist/index.d.ts +90 -15
- package/dist/index.js +16 -14
- package/dist/iso4217-A8ev-CNW.js +176 -0
- package/dist/json-schema-CpYINXG8.js +548 -0
- package/dist/jws-35a8VhFV.d.ts +60 -0
- package/dist/jws-milwSg7E.js +191 -0
- package/dist/kit-D5S7KNFe.d.ts +66 -0
- package/dist/kit-MUK34-ZG.js +104 -0
- package/dist/knowledge-BXQ2-V0a.d.ts +187 -0
- package/dist/knowledge-CJ_Mm3ic.js +272 -0
- package/dist/lint/index.js +9 -9
- package/dist/list/index.d.ts +4 -3
- package/dist/list/index.js +4 -2
- package/dist/list-query-CBXNfJt4.js +549 -0
- package/dist/list-query-PvP3pPGQ.d.ts +194 -0
- package/dist/live-DwDreq1n.js +239 -0
- package/dist/mcp/index.d.ts +67 -20
- package/dist/mcp/index.js +220 -135
- package/dist/mcp/sdk/index.d.ts +38 -6
- package/dist/mcp/sdk/index.js +89 -7
- package/dist/message-B0fNJgq8.d.ts +93 -0
- package/dist/messages-Cx4ttLJJ.js +493 -0
- package/dist/metric-definition-95HFoW1V.d.ts +70 -0
- package/dist/metric-definition-BjxVn4R5.js +117 -0
- package/dist/mfa-DtflCXEt.d.ts +30 -0
- package/dist/model-lUafmeBQ.d.ts +311 -0
- package/dist/model-messages-CTu-6kBu.js +206 -0
- package/dist/model-messages-D4GZllOD.d.ts +34 -0
- package/dist/money-95Rff2vT.js +185 -0
- package/dist/money-DFpWzQvk.d.ts +76 -0
- package/dist/money-codec-C_-K5ZUU.js +41 -0
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +2 -2
- package/dist/next/index.d.ts +115 -55
- package/dist/next/index.js +208 -173
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +3 -3
- package/dist/nuxt/index.d.ts +2 -2
- package/dist/nuxt/index.js +3 -2
- package/dist/onboarding-BZvLLPaY.js +68 -0
- package/dist/openapi/index.d.ts +4 -2
- package/dist/openapi/index.js +21 -343
- package/dist/operations-C9-UcReN.d.ts +6 -0
- package/dist/operations-CsIfMED7.js +29 -0
- package/dist/optional-peer-Dx8TaYXw.js +29 -0
- package/dist/options-B0FcEKtH.js +5 -0
- package/dist/options-B5BU2Yg7.js +11 -0
- package/dist/options-B5woz53h.js +5 -0
- package/dist/options-B7EJaOX-.js +5 -0
- package/dist/options-B9q8CROT.js +9 -0
- package/dist/options-BA6jV6py.js +10 -0
- package/dist/options-BAW2ZlZ8.js +8 -0
- package/dist/options-BMjcVuaI.js +82 -0
- package/dist/options-BOOEzor9.js +5 -0
- package/dist/options-BQ07tTYr.js +11 -0
- package/dist/options-BZsoPJGX.js +5 -0
- package/dist/options-BesyRBnM.js +16 -0
- package/dist/options-Bf96aVk5.js +10 -0
- package/dist/options-BlOPivzq.js +8 -0
- package/dist/options-Blg8lAkz.js +9 -0
- package/dist/options-Bn4cu0gt.js +5 -0
- package/dist/options-BnoJOwXK.js +8 -0
- package/dist/options-Bp7sgKvl.js +30 -0
- package/dist/options-BqO9GYig.js +311 -0
- package/dist/options-BxcFLL1G.js +8 -0
- package/dist/options-C1HR4UZd.js +13 -0
- package/dist/options-C239TLRF.js +14 -0
- package/dist/options-C2HesT4A.js +9 -0
- package/dist/options-C3EzJATk.js +10 -0
- package/dist/options-C3hZ1fbC.js +10 -0
- package/dist/options-C6rEL6U5.js +8 -0
- package/dist/options-CAzVf-1T.js +8 -0
- package/dist/options-CGKSUFUq.js +5 -0
- package/dist/options-CGjGE8xS.js +12 -0
- package/dist/options-CK5WiFwG.js +11 -0
- package/dist/options-CN7PHkhU.js +8 -0
- package/dist/options-CTZNpb2n.js +5 -0
- package/dist/options-CUqQ9pm7.js +9 -0
- package/dist/options-CVSWgZpY.js +8 -0
- package/dist/options-CXFz0xxS.js +8 -0
- package/dist/options-CZk_fbbg.js +9 -0
- package/dist/options-C_pb1Nd3.js +5 -0
- package/dist/options-CbSOj53r.d.ts +52 -0
- package/dist/options-ChD15QxJ.js +9 -0
- package/dist/options-CkScQRJR.js +12 -0
- package/dist/options-CljDnQt2.js +25 -0
- package/dist/options-CmraJhd9.js +5 -0
- package/dist/options-CoX6VKGb.js +8 -0
- package/dist/options-CrC78Tee.js +5 -0
- package/dist/options-Ctac2R0Q.js +11 -0
- package/dist/options-CyD7OObW.js +17 -0
- package/dist/options-D1blDihM.js +9 -0
- package/dist/options-D2Gd6VfS.js +8 -0
- package/dist/options-D2d1fFuw.js +11 -0
- package/dist/options-D40CQzji.js +8 -0
- package/dist/options-D7f2VKzj.js +25 -0
- package/dist/options-DARkpk2P.js +8 -0
- package/dist/options-DCduTMST.js +17 -0
- package/dist/options-DDzggjN7.js +8 -0
- package/dist/options-DMR68VAC.js +5 -0
- package/dist/options-DNKyN5uq.js +20 -0
- package/dist/options-DTDxFT6J.js +13 -0
- package/dist/options-DWpz3V3F.js +8 -0
- package/dist/options-DXqcJyOP.js +10 -0
- package/dist/options-DYBQ973I.js +8 -0
- package/dist/options-Dh4wu9Ks.js +15 -0
- package/dist/options-Dmg1Da9P.js +25 -0
- package/dist/options-DsUgamiy.js +5 -0
- package/dist/options-EsUh744F.js +13 -0
- package/dist/options-Fz6xqu-b.js +5 -0
- package/dist/options-HSv8R6h5.js +13 -0
- package/dist/options-I8zVkB_y.js +8 -0
- package/dist/options-MHhjOoWz.js +5 -0
- package/dist/options-MLxMkd5B.js +11 -0
- package/dist/options-OJ5zmgr8.js +10 -0
- package/dist/options-QKP9FFcK.js +8 -0
- package/dist/options-SViK_2x2.js +12 -0
- package/dist/options-XgfTctbI.js +5 -0
- package/dist/options-_9arpsX9.js +11 -0
- package/dist/options-eBPsk4WI.js +11 -0
- package/dist/options-kLKILdIu.js +10 -0
- package/dist/options-n22NK3PL.js +8 -0
- package/dist/options-oeAq4Ho5.js +12 -0
- package/dist/options-qU8vgxhO.js +18 -0
- package/dist/options-vXMBEWSH.js +5 -0
- package/dist/options-wFnK3qWl.js +9 -0
- package/dist/options-xVAy3UsV.js +9 -0
- package/dist/organizations-Cw7om8uk.js +398 -0
- package/dist/orpc/index.d.ts +26 -10
- package/dist/orpc/index.js +66 -44
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +42 -7
- package/dist/outbox-BTeqjbum.d.ts +181 -0
- package/dist/overlay/index.d.ts +233 -0
- package/dist/overlay/index.js +554 -0
- package/dist/payments-h45bswA-.js +16 -0
- package/dist/pg-error-BV_X8Isq.js +26 -0
- package/dist/plugin-CDLJRFFg.d.ts +190 -0
- package/dist/plugins/actor/index.d.ts +1 -1
- package/dist/plugins/actor/index.js +1 -1
- package/dist/plugins/rules/index.d.ts +2 -2
- package/dist/plugins/rules/index.js +2 -2
- package/dist/plugins/soft-delete/index.d.ts +3 -3
- package/dist/plugins/soft-delete/index.js +11 -4
- package/dist/plugins/tenant/index.d.ts +9 -3
- package/dist/plugins/tenant/index.js +17 -3
- package/dist/plugins/timestamps/index.d.ts +1 -1
- package/dist/plugins/timestamps/index.js +8 -1
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +4 -4
- package/dist/pool-CwOCsX9e.d.ts +114 -0
- package/dist/pool-errors-GMjlCN0d.js +27 -0
- package/dist/ports-Ca63W4cW.d.ts +285 -0
- package/dist/ports-DAdQyjZz.d.ts +86 -0
- package/dist/ports-DGK3KTDH.js +133 -0
- package/dist/postgres/index.d.ts +28 -6
- package/dist/postgres/index.js +54 -22
- package/dist/postgrest-Cw9Bs5gm.d.ts +53 -0
- package/dist/powersync/index.d.ts +5 -5
- package/dist/powersync/index.js +4 -4
- package/dist/powersync/react/index.d.ts +8 -3
- package/dist/powersync/react/index.js +11 -3
- package/dist/preset/index.d.ts +352 -0
- package/dist/preset/index.js +564 -0
- package/dist/problem-CEjyhV5T.d.ts +76 -0
- package/dist/problem-pIiL3WbE.js +159 -0
- package/dist/provider-9gBq9W6k.d.ts +113 -0
- package/dist/provider-DKh2xFZb.js +57 -0
- package/dist/push-token-D6REHMMw.js +16 -0
- package/dist/push-token-asrmi7-6.d.ts +24 -0
- package/dist/query/index.d.ts +2 -2
- package/dist/query/index.js +1 -1
- package/dist/query-Ctz-qKRx.js +303 -0
- package/dist/range-DwpWe8e7.js +7 -0
- package/dist/range-p5V4rBhZ.d.ts +8 -0
- package/dist/rank-keys-DcPMt_Jk.js +60 -0
- package/dist/rank-result-DS8IoLup.js +18 -0
- package/dist/rank-result-Dngpt2n5.d.ts +14 -0
- package/dist/rate-limit--QSiFA6D.js +325 -0
- package/dist/rate-limit-BtbddDnE.js +49 -0
- package/dist/rate-limit-C88MEAOm.d.ts +41 -0
- package/dist/ratelimit-headers-Bsxx0Tj2.js +62 -0
- package/dist/react/index.d.ts +9 -9
- package/dist/react/index.js +4 -5
- package/dist/react/native/index.d.ts +1 -1
- package/dist/react/native/index.js +2 -2
- package/dist/react/server.d.ts +10 -10
- package/dist/react/server.js +4 -4
- package/dist/react/session.d.ts +2 -2
- package/dist/react-CKXUkwPx.js +410 -0
- package/dist/react-controller-Xn-IU44p.js +40 -0
- package/dist/react-env-Cc7Vf6eb.js +13 -0
- package/dist/react-router/index.d.ts +6 -6
- package/dist/react-router/index.js +10 -12
- package/dist/read-set-GEb-i0On.js +314 -0
- package/dist/realtime/index.d.ts +8 -4
- package/dist/realtime/index.js +5 -333
- package/dist/realtime-status-D2dw1hOE.js +12 -0
- package/dist/realtime-status-DcsO00Gw.d.ts +8 -0
- package/dist/refusal-br4Ma9Cf.js +61 -0
- package/dist/refusal-oD3ISM9h.d.ts +18 -0
- package/dist/replicas-BvIL4_jL.js +94 -0
- package/dist/resolve-CAR9oaKW.js +869 -0
- package/dist/resolve-w9EpHzuM.d.ts +266 -0
- package/dist/resource-B4ka8dDH.d.ts +106 -0
- package/dist/resource-C8r5xGqY.js +463 -0
- package/dist/resource-DO4gbVi5.js +91 -0
- package/dist/resource-execute-D0yQ-8WR.d.ts +12 -0
- package/dist/resource-schemas-BJ518zFH.js +79 -0
- package/dist/resource-types-D2vEQVXI.d.ts +141 -0
- package/dist/resources-BklF-rjz.d.ts +7 -0
- package/dist/resources-BlZdLsWQ.js +64 -0
- package/dist/respond-C7I8kLK_.d.ts +93 -0
- package/dist/respond-DdhZ9Wbn.js +95 -0
- package/dist/result-BlgnMB0H.js +128 -0
- package/dist/result-Cj3yWhjH.d.ts +298 -0
- package/dist/rrule-zBh3CA1r.js +290 -0
- package/dist/rules-B0-3Iosu.js +261 -0
- package/dist/run-watch-CQRdpy-f.js +53 -0
- package/dist/sales-lines-BAk8In-Z.js +41 -0
- package/dist/sales-lines-C6gafAwg.d.ts +28 -0
- package/dist/sales-shared-DAAGwQwN.d.ts +8 -0
- package/dist/sales-shared-SblIgCgI.js +22 -0
- package/dist/scope-DgWjuXUw.js +90 -0
- package/dist/search-B6h03cAx.js +106 -0
- package/dist/search-BtoWY6n_.js +9 -0
- package/dist/server/index.d.ts +211 -43
- package/dist/server/index.js +296 -19
- package/dist/server-types-OohhIQb2.d.ts +737 -0
- package/dist/session-DiWHtYrO.d.ts +95 -0
- package/dist/settings-BXFn9zpS.js +90 -0
- package/dist/shared-BmMcMoW9.js +89 -0
- package/dist/shared-DbO3Dfms.js +14 -0
- package/dist/shared-as0EG51f.js +60 -0
- package/dist/sign-in-D0xN6E_l.js +360 -0
- package/dist/signatures-B41ApWXA.js +145 -0
- package/dist/signatures-BMdJ7neI.d.ts +43 -0
- package/dist/signers-CXt_wA9S.d.ts +385 -0
- package/dist/signing-keys-Bq9mMCTh.d.ts +90 -0
- package/dist/solid/index.d.ts +9 -18
- package/dist/solid/index.js +4 -9
- package/dist/solid-controller-DLsmrczT.js +33 -0
- package/dist/solid-controller-DqlvYFZa.d.ts +11 -0
- package/dist/solid-start/index.d.ts +8 -12
- package/dist/solid-start/index.js +10 -9
- package/dist/spec/index.d.ts +154 -0
- package/dist/spec/index.js +386 -0
- package/dist/spec-pins-Dqpml2dZ.d.ts +84 -0
- package/dist/spec-pins-S4PymRxp.js +60 -0
- package/dist/sql/index.d.ts +327 -140
- package/dist/sql/index.js +71245 -23282
- package/dist/sql-DJrXG-3Z.js +422 -0
- package/dist/sso-BDva_-4y.js +217 -0
- package/dist/sso-BN0LnMqE.d.ts +131 -0
- package/dist/ssr/index.d.ts +5 -6
- package/dist/ssr/index.js +4 -3
- package/dist/standard-B5fe2gnW.js +25 -0
- package/dist/standard-C3_AAF3g.d.ts +7 -0
- package/dist/stats-D6vkb89f.js +1128 -0
- package/dist/storage/index.d.ts +4 -6
- package/dist/storage/index.js +23 -20
- package/dist/storage-api-Cx-1iWBd.d.ts +582 -0
- package/dist/store-B5qYKsTh.d.ts +68 -0
- package/dist/streams/index.d.ts +5 -5
- package/dist/streams/index.js +6 -5
- package/dist/streams/redis/index.d.ts +1 -1
- package/dist/streams/redis/index.js +6 -12
- package/dist/stripe/index.d.ts +16 -0
- package/dist/stripe/index.js +14 -0
- package/dist/stripe-NVcNOhHy.d.ts +140 -0
- package/dist/stripe-XZrSmDTf.js +32 -0
- package/dist/subject-readers-DiePmaYP.js +46 -0
- package/dist/subject-readers-fxP5wu0s.d.ts +21 -0
- package/dist/subjects-z8VWA_lF.d.ts +69 -0
- package/dist/subscribers-Cq--DL1E.js +34 -0
- package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
- package/dist/supabase-mcp-DomZ-amK.js +28 -0
- package/dist/support-BsKkvA92.js +522 -0
- package/dist/support-view-BbcZR7Io.d.ts +17 -0
- package/dist/svelte/index.d.ts +8 -17
- package/dist/svelte/index.js +3 -3
- package/dist/svelte-controller-CDAujo-_.js +50 -0
- package/dist/svelte-controller-DxxHEHxD.d.ts +10 -0
- package/dist/sveltekit/index.d.ts +11 -13
- package/dist/sveltekit/index.js +12 -14
- package/dist/table-schema-pQlER3jj.js +283 -0
- package/dist/tags-Dw8vKkcI.d.ts +30 -0
- package/dist/tags-PaG0Ns_9.js +84 -0
- package/dist/tanstack-db/index.d.ts +2 -2
- package/dist/tanstack-db/index.js +1 -1
- package/dist/tanstack-db/supabase/index.d.ts +51 -0
- package/dist/tanstack-db/supabase/index.js +268 -0
- package/dist/tanstack-start/index.d.ts +7 -7
- package/dist/tanstack-start/index.js +9 -13
- package/dist/tax-DDZUB_oc.d.ts +273 -0
- package/dist/tax-D_kSCdWU.js +140 -0
- package/dist/tee-Bsisfd7t.js +101 -0
- package/dist/template-DdgYjIZ5.js +123 -0
- package/dist/temporal-CB5Fpo5d.js +79 -0
- package/dist/temporal-required-DqRzr7i0.js +20 -0
- package/dist/tenant-B-fiItlJ.js +27 -0
- package/dist/tenant-DdmVhsff.d.ts +17 -0
- package/dist/tenant-naming-Bsj3Uvap.js +27 -0
- package/dist/testing/index.d.ts +459 -125
- package/dist/testing/index.js +2368 -720
- package/dist/timing-BMCWgpdZ.js +92 -0
- package/dist/topic-ByDz9edV.js +542 -0
- package/dist/topic-cMS7UtM1.d.ts +359 -0
- package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
- package/dist/types-6oiy6rIa.d.ts +205 -0
- package/dist/types-BRTSpOIh.js +5 -0
- package/dist/types-CdP0z5tS.d.ts +564 -0
- package/dist/types-D0W4fnsc.d.ts +162 -0
- package/dist/types-R6syp1el.js +29 -0
- package/dist/types-YfwpIE-d.d.ts +357 -0
- package/dist/types-pNY_UpDs.d.ts +240 -0
- package/dist/types-vaoP9S9_.d.ts +635 -0
- package/dist/undo-CEGIRkPA.js +44 -0
- package/dist/undo-DGo0skyO.d.ts +43 -0
- package/dist/usage-CdlfuS3i.js +250 -0
- package/dist/usage-DM2rzczj.d.ts +202 -0
- package/dist/vault-tOkPLnMB.d.ts +50 -0
- package/dist/vercel-connect/index.d.ts +1 -1
- package/dist/vercel-connect/index.js +6 -12
- package/dist/verify-D63A2ALE.d.ts +142 -0
- package/dist/verify-EQcC3Khp.js +126 -0
- package/dist/version-D87ZteKy.js +4 -0
- package/dist/view-DZ63nqwt.js +105 -0
- package/dist/view-Dv0A949a.d.ts +90 -0
- package/dist/vue/index.d.ts +9 -18
- package/dist/vue/index.js +4 -17
- package/dist/vue-controller-C9tFzqAc.js +32 -0
- package/dist/vue-controller-HPfMTDa2.d.ts +11 -0
- package/dist/watch-DDuWYv0Y.d.ts +84 -0
- package/dist/watch-DT_B3CnJ.js +139 -0
- package/dist/watch-topic-EFpOIIDE.d.ts +28 -0
- package/dist/watch-topic-miuymrli.js +57 -0
- package/dist/wire-DEY0ajW9.js +45 -0
- package/dist/workflow-builder-OrglbXUh.js +681 -0
- package/dist/workflow-sdk/builder/index.d.ts +46 -15
- package/dist/workflow-sdk/builder/index.js +69 -21
- package/dist/workflow-sdk/index.d.ts +75 -2
- package/dist/workflow-sdk/index.js +83 -3
- package/dist/workflow-sdk/world/index.d.ts +51 -20
- package/dist/workflow-sdk/world/index.js +189 -128
- package/dist/workflow-sdk-BZ6qsRlY.js +243 -0
- package/dist/workflow-sdk-q8cLwW1K.d.ts +161 -0
- package/dist/workflow-sdk-world-DPMdBfzn.js +2103 -0
- package/dist/workflows-C-OvZpeg.js +282 -0
- package/dist/workflows-DFQeXDAI.d.ts +243 -0
- package/dist/yjs/index.d.ts +67 -0
- package/dist/yjs/index.js +212 -0
- package/package.json +837 -44
- package/schemas/cli-commands-v1.json +220 -0
- package/schemas/cli-result-v1.json +138 -0
- package/schemas/config-v1.json +4317 -653
- package/schemas/doctor-report-v1.json +27 -1
- package/schemas/snapshot-v2.json +271 -0
- package/schemas/spec-manifest-v1.json +95 -0
- package/skills/better-supabase/SKILL.md +19 -8
- package/skills/better-supabase/references/plugins.md +2 -2
- package/skills/better-supabase/references/troubleshooting.md +20 -20
- package/skills/better-supabase/references/ui-recipes.md +18652 -0
- package/skills/better-supabase-api/SKILL.md +14 -14
- package/skills/better-supabase-api/references/adapters.md +12 -2
- package/skills/better-supabase-api/references/ai.md +4 -4
- package/skills/better-supabase-api/references/expo.md +7 -4
- package/skills/better-supabase-api/references/powersync.md +2 -1
- package/skills/better-supabase-api/references/streams-credentials.md +8 -5
- package/skills/better-supabase-auth/SKILL.md +18 -11
- package/skills/better-supabase-auth/references/authorization-providers.md +5 -5
- package/skills/better-supabase-testing/SKILL.md +2 -2
- package/testing/act-cases.json +370 -0
- package/dist/access-sql-B0dF-SoF.js +0 -181
- package/dist/actor-CQTlc1Hh.d.ts +0 -43
- package/dist/adapter-iKgjHVPx.js +0 -1190
- package/dist/agents-CVHGd7It.d.ts +0 -94
- package/dist/ai-cache-CBWs1W0k.js +0 -80
- package/dist/ai-cache-DaDu_G5L.d.ts +0 -64
- package/dist/ai-chat-7amvXjmQ.d.ts +0 -590
- package/dist/ai-chat-B24UI962.js +0 -743
- package/dist/ai-files-CSPNswUY.js +0 -319
- package/dist/ai-tasks-Cd1HMFvB.d.ts +0 -131
- package/dist/announcements-CiyOs-xP.js +0 -107
- package/dist/announcements-ZRGnScWI.d.ts +0 -72
- package/dist/api-keys-CIjghYjV.d.ts +0 -156
- package/dist/assistant-DwdpDH1q.d.ts +0 -147
- package/dist/attributes-5dYul0u0.js +0 -13
- package/dist/authorization-BFCqamMs.d.ts +0 -172
- package/dist/base64-D2gsioCY.js +0 -42
- package/dist/before-route-CnR0C0Jr.js +0 -30
- package/dist/bind-Bu_ZNa3W.d.ts +0 -62
- package/dist/bind-l4kAvYSv.js +0 -97
- package/dist/block-events-CrT8r7Fe.js +0 -76
- package/dist/block-fields-GFkxl4dP.js +0 -49
- package/dist/block-fields-SJ6fEf3o.d.ts +0 -31
- package/dist/block-helpers-CKtbFcRv.d.ts +0 -37
- package/dist/block-helpers-DWHxHsEQ.js +0 -190
- package/dist/block-hooks-BmjMyXTa.js +0 -114
- package/dist/block-hooks-plbZ0AbJ.d.ts +0 -107
- package/dist/block-transport-BLr-ZgLc.js +0 -59
- package/dist/block-transport-DvaoPuZ9.d.ts +0 -48
- package/dist/bucket-Cl46E3jS.d.ts +0 -347
- package/dist/build-BXIzE6Xv.js +0 -689
- package/dist/channel-_2Mx1Oyu.d.ts +0 -70
- package/dist/channels-CkgQ_X60.js +0 -114
- package/dist/claims-DDBQT6BK.js +0 -61
- package/dist/cli/bin.d.ts +0 -1
- package/dist/cli/codemod-Bl_tQpHn.js +0 -491
- package/dist/cli/command-CK14fP91.js +0 -502
- package/dist/cli/config-B9HkL8nF.js +0 -2
- package/dist/cli/config-DU7EJImt.js +0 -49
- package/dist/cli/config-NiPxAmUF.js +0 -1077
- package/dist/cli/db-DOBPt660.js +0 -52
- package/dist/cli/diff-SjkO5rNr.js +0 -752
- package/dist/cli/dist-DBPdlPYK.js +0 -1112
- package/dist/cli/dist-DRAVaE6w.js +0 -842
- package/dist/cli/dist-DreZ24Sz.js +0 -129
- package/dist/cli/doctor-DJk0aeBi.js +0 -3591
- package/dist/cli/env-CJLbUVPB.js +0 -108
- package/dist/cli/env-qXgyMV6r.js +0 -511
- package/dist/cli/errors-4v4DTtda.js +0 -56
- package/dist/cli/fastest-levenshtein-CFN-lNDv.js +0 -120
- package/dist/cli/gen-CCMc39Dx.js +0 -3100
- package/dist/cli/gen-DRmzPI75.js +0 -2
- package/dist/cli/init-BHuEQrQK.js +0 -765
- package/dist/cli/introspect-DzR2nyQb.js +0 -81
- package/dist/cli/io-DI1mTdSA.js +0 -33
- package/dist/cli/jsonc-BUniUpOk.js +0 -2
- package/dist/cli/keys-BGCnnb-s.js +0 -85
- package/dist/cli/openapi-BlRJ18s3.js +0 -66
- package/dist/cli/project-DZRaBaY7.js +0 -75
- package/dist/cli/prompts-BNcNfAve.js +0 -1142
- package/dist/cli/prompts-BTYQGunc.js +0 -2
- package/dist/cli/read-sets-CETOSFx4.js +0 -223
- package/dist/cli/rolldown-runtime-BPOCksWG.js +0 -24
- package/dist/cli/run-BqDPh9UH.js +0 -361
- package/dist/cli/seed-DQzqT7LP.js +0 -100
- package/dist/cli/skills-QQs4q68J.js +0 -138
- package/dist/cli/sql-B8csQPyn.js +0 -495
- package/dist/cli/sql-layout-D6cphHT3.js +0 -69
- package/dist/cli/style-C0NFdJRL.js +0 -29
- package/dist/cli/supabase-toml-B-bIukQF.js +0 -1095
- package/dist/cli/typegen-version-DeFbtzYI.js +0 -8
- package/dist/cli/version-59gcepIG.js +0 -4
- package/dist/client-CI0Z2zWX.js +0 -277
- package/dist/clone-BfgmLU90.js +0 -21
- package/dist/cloud-event-BnmD5fb9.js +0 -46
- package/dist/cloud-event-C1JCc1bH.d.ts +0 -50
- package/dist/compiler-DY_wkj4R.d.ts +0 -14
- package/dist/compose-BIBNgAnq.js +0 -53
- package/dist/composite--yqry7uW.d.ts +0 -146
- package/dist/composite-DXVUibdi.js +0 -130
- package/dist/config-D44Y7PAv.d.ts +0 -984
- package/dist/config-Dn7F5k9A.js +0 -202
- package/dist/connector-Dv8kK0MO.d.ts +0 -107
- package/dist/connectors-CrpknU0P.d.ts +0 -120
- package/dist/context-BCrWe7ow.d.ts +0 -237
- package/dist/cron-DVPUg5k3.js +0 -145
- package/dist/csv-DCK-PT1n.js +0 -25
- package/dist/define-B-TVjC25.js +0 -1915
- package/dist/define-CJJkkr1-.d.ts +0 -980
- package/dist/embeddings-4ZvFzjsU.js +0 -127
- package/dist/embeddings-C9KGQnXt.d.ts +0 -68
- package/dist/ended-XjeGQ5XW.d.ts +0 -63
- package/dist/entitlements-BKSVGtrG.d.ts +0 -51
- package/dist/entitlements-DRl6ZJUm.js +0 -24
- package/dist/envelope-DqnYGRw7.js +0 -47
- package/dist/errors-B11Duf73.js +0 -266
- package/dist/errors-DLjJHPLK.js +0 -44
- package/dist/escape-like-ImTK0ps_.d.ts +0 -15
- package/dist/eve-gT2Fpjut.d.ts +0 -151
- package/dist/events-DWDhx77e.d.ts +0 -549
- package/dist/executor-BVBFM86G.d.ts +0 -36
- package/dist/executor-Bq28caBo.js +0 -718
- package/dist/executor-C-R4pucm.js +0 -83
- package/dist/executor-CaWigTyR.d.ts +0 -148
- package/dist/executor-DbvExCFC.d.ts +0 -30
- package/dist/executor-De1Of3m3.js +0 -523
- package/dist/executor-DvsBbNBS.d.ts +0 -261
- package/dist/field-errors-BFOa7WhB.d.ts +0 -99
- package/dist/field-errors-VF1yb8yI.js +0 -13
- package/dist/framework-BmzgK32X.d.ts +0 -25
- package/dist/framework-a7aRCIqv.js +0 -51
- package/dist/gateway-C1ssRHnf.d.ts +0 -130
- package/dist/graph-BGyLLFLX.js +0 -265
- package/dist/guards-BnzDvFrz.js +0 -10
- package/dist/history-BZih6SFP.js +0 -64
- package/dist/hooks-1BTCJsiw.js +0 -309
- package/dist/impersonation-DcqaTBHx.js +0 -148
- package/dist/inbox-i7E1ppo6.d.ts +0 -384
- package/dist/index-ACiNPN4Z.d.ts +0 -74
- package/dist/index-Bepi-Hgg.d.ts +0 -206
- package/dist/index-BkWT_uBO.d.ts +0 -51
- package/dist/index-Bxih3l0u.d.ts +0 -81
- package/dist/index-CLg87OBW.d.ts +0 -76
- package/dist/index-CaxrMD1A.d.ts +0 -1
- package/dist/index-CdZKQF98.d.ts +0 -138
- package/dist/index-CewnYSpv.d.ts +0 -267
- package/dist/index-ClmjK_o-.d.ts +0 -55
- package/dist/index-D48jVS-N.d.ts +0 -246
- package/dist/index-DQh4VCc9.d.ts +0 -98
- package/dist/index-DunNRdnT.d.ts +0 -300
- package/dist/json-schema-CvER4kgT.js +0 -502
- package/dist/keys-4MnkWTTh.js +0 -35
- package/dist/kit-CkNzZUqv.d.ts +0 -60
- package/dist/kit-Fm-Fv7q5.js +0 -78
- package/dist/knowledge-BXBbT0Tr.d.ts +0 -176
- package/dist/knowledge-CDmiMLew.js +0 -255
- package/dist/list-query-BRt-zDF7.d.ts +0 -164
- package/dist/list-query-gl808ac1.js +0 -459
- package/dist/live-CTAZQkwl.js +0 -257
- package/dist/message-CaKlqdsX.js +0 -219
- package/dist/message-CfDoR0Y6.d.ts +0 -94
- package/dist/messages-B9-5887d.js +0 -715
- package/dist/messages-DYP0sUTe.d.ts +0 -59
- package/dist/mfa-Daak8ukG.d.ts +0 -54
- package/dist/modules-DpPwzC7E.d.ts +0 -192
- package/dist/modules-dxrVK3ID.js +0 -228
- package/dist/onboarding-BZGHYJks.d.ts +0 -62
- package/dist/outbox-Cq7pPYvl.d.ts +0 -161
- package/dist/path-Cv__-OTj.d.ts +0 -17
- package/dist/plugin-FGY8UhYm.d.ts +0 -151
- package/dist/pool-CAu2nLrL.d.ts +0 -89
- package/dist/postgrest-BLVdEnfe.d.ts +0 -53
- package/dist/problem-BreOl8b8.js +0 -115
- package/dist/problem-DD8LZFjc.d.ts +0 -67
- package/dist/provider-D-UEMvSD.d.ts +0 -113
- package/dist/provider-Di3sRutW.js +0 -57
- package/dist/query-BQ-NaZon.js +0 -303
- package/dist/queue-CLJurhdy.d.ts +0 -427
- package/dist/react-F80mF4-t.js +0 -409
- package/dist/react-topic-seAWjL3_.js +0 -38
- package/dist/read-set-DuKWC9Mj.js +0 -314
- package/dist/refusal-CeJWxmkH.js +0 -61
- package/dist/refusal-DhSU2Vvr.d.ts +0 -15
- package/dist/replicas-CwrYp5Zj.js +0 -94
- package/dist/resolve-ChTYeTEl.d.ts +0 -169
- package/dist/resolve-tJZY3FEa.js +0 -697
- package/dist/resource-BsvzCMlX.js +0 -212
- package/dist/resource-IPS5xi9q.d.ts +0 -74
- package/dist/respond-BUgsXNgk.js +0 -91
- package/dist/respond-DprrgyXX.d.ts +0 -93
- package/dist/result-D7y2fT87.d.ts +0 -282
- package/dist/result-DzUbqgdW.js +0 -128
- package/dist/scope-CDHcS7dE.js +0 -90
- package/dist/search-CUWCRYKL.js +0 -9
- package/dist/server-Bh0EVSwU.d.ts +0 -558
- package/dist/session-ChiXDZdZ.d.ts +0 -72
- package/dist/shared-CBxosKK3.js +0 -75
- package/dist/shared-CxWmcyqB.js +0 -73
- package/dist/sign-in-Cb1mwv6X.js +0 -86
- package/dist/signers-4y62_VIi.d.ts +0 -166
- package/dist/spec-pins--j6mTok4.js +0 -27
- package/dist/spec-pins-C89s6DyW.d.ts +0 -27
- package/dist/standard-BK0cqJ7y.js +0 -25
- package/dist/standard-CYsm7xpT.d.ts +0 -7
- package/dist/stats-D_AD9GGu.js +0 -1123
- package/dist/store-CGjgWu5n.d.ts +0 -68
- package/dist/stripe-BMj5LtsT.js +0 -38
- package/dist/stripe-D04h-QBT.d.ts +0 -136
- package/dist/support-ig_K4PvS.js +0 -314
- package/dist/support-view-CVOJJLpc.d.ts +0 -17
- package/dist/tags-Cx-LnIQP.d.ts +0 -30
- package/dist/tee-CoEppCER.js +0 -101
- package/dist/template--jDkl3UP.js +0 -114
- package/dist/template-CwO38Do8.d.ts +0 -6
- package/dist/temporal-BJGitm-h.js +0 -79
- package/dist/temporal-required-BVvW7SYJ.js +0 -20
- package/dist/tenant-BxNFk9bx.d.ts +0 -17
- package/dist/tenant-I1TEZ_BX.js +0 -27
- package/dist/timing-CyTQPubY.js +0 -92
- package/dist/types-6BdhkmZe.d.ts +0 -340
- package/dist/types-6cYK9pbJ.js +0 -29
- package/dist/types-6rocye-y.d.ts +0 -156
- package/dist/types-AYOvcyep.d.ts +0 -359
- package/dist/types-C05bxW-W.d.ts +0 -220
- package/dist/types-DGs5L0VN.d.ts +0 -192
- package/dist/usage-CrvrL2vw.d.ts +0 -177
- package/dist/vault-wlbBhqm7.d.ts +0 -50
- package/dist/verify-DL41hbvY.js +0 -232
- package/dist/verify-DPuWngD4.d.ts +0 -172
- package/dist/version-C6OfRAIn.js +0 -4
- package/dist/view-BeFcRV6G.js +0 -99
- package/dist/view-CF7ihnkg.d.ts +0 -87
- package/dist/watch-DI34G86j.d.ts +0 -60
- package/dist/watch-Xuxrvxq-.js +0 -122
- package/dist/wire-DtZQ4sdE.js +0 -45
- package/dist/workflow-builder-DJ1oHn8g.js +0 -398
- package/dist/workflow-sdk-B3yLD6Br.d.ts +0 -98
- package/dist/workflow-sdk-C2WJ_G2O.js +0 -173
- package/dist/workflow-sdk-world-D-prir6O.js +0 -1397
- package/dist/workflows-B0j9WKPu.d.ts +0 -185
- package/dist/workflows-wu1WWBn7.js +0 -216
|
@@ -0,0 +1,1571 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { G as BucketLifecycle, P as SchemaMeta, c as Casing, s as BucketPolicyName, t as AccessBucketPolicy } from "./types-YfwpIE-d.js";
|
|
3
|
+
import { _ as BlocksConfig, a as AuthorizationProvider, g as BlockScope, p as AnyBlocksConfig, x as SqlNaming } from "./authorization-DpRfs6Wx.js";
|
|
4
|
+
import { n as SubjectsConfig } from "./subjects-z8VWA_lF.js";
|
|
5
|
+
import { i as FIELD_FORMAT_NAMES, s as FieldFormatName } from "./field-formats-DCvOQlOy.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
|
+
/** What a reference does when the row it points at is deleted (`references.onDelete`). */
|
|
14
|
+
declare const APP_ON_DELETE_ACTIONS: readonly ["cascade", "restrict", "set null", "no action"];
|
|
15
|
+
type AppOnDeleteAction = (typeof APP_ON_DELETE_ACTIONS)[number];
|
|
16
|
+
/**
|
|
17
|
+
* What a column references: another app table, `auth.users`
|
|
18
|
+
* (`{ table: "auth.users" }`), or a logical table of an installed block
|
|
19
|
+
* (`{ block: "crm", table: "contacts" }`), which follows the block's
|
|
20
|
+
* renames.
|
|
21
|
+
*/
|
|
22
|
+
type AppReferenceTarget = {
|
|
23
|
+
readonly table: string;
|
|
24
|
+
} | {
|
|
25
|
+
readonly block: string;
|
|
26
|
+
readonly table: string;
|
|
27
|
+
};
|
|
28
|
+
type AppReference = AppReferenceTarget & {
|
|
29
|
+
/** Defaults to `no action`. */
|
|
30
|
+
readonly onDelete?: AppOnDeleteAction;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* What a column holds, beyond its Postgres type. `email`, `url`, `rating`
|
|
34
|
+
* and `percent` add a check; the others tell the UI and `gen` how to show
|
|
35
|
+
* the value. `FIELD_FORMATS` lists the types each fits and its input.
|
|
36
|
+
*/
|
|
37
|
+
declare const APP_COLUMN_FORMATS: typeof FIELD_FORMAT_NAMES;
|
|
38
|
+
type AppColumnFormat = FieldFormatName;
|
|
39
|
+
interface AppColumnConfig {
|
|
40
|
+
readonly type: AppColumnType;
|
|
41
|
+
/** Defaults to true. */
|
|
42
|
+
readonly nullable?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* The column default, from an allowlist: `now()`, `gen_random_uuid()`,
|
|
45
|
+
* `auth.uid()`, `true`, `false`, a number, a `'quoted'` text literal,
|
|
46
|
+
* and `'{}'` or `'[]'` for `jsonb` and `text[]`.
|
|
47
|
+
*/
|
|
48
|
+
readonly default?: string;
|
|
49
|
+
readonly unique?: boolean;
|
|
50
|
+
readonly references?: AppReference;
|
|
51
|
+
/** What the column holds; see `APP_COLUMN_FORMATS`. */
|
|
52
|
+
readonly format?: AppColumnFormat;
|
|
53
|
+
/**
|
|
54
|
+
* The values a `text` column (single select) or each element of a
|
|
55
|
+
* `text[]` column (multi-select) may take, checked by the database.
|
|
56
|
+
*/
|
|
57
|
+
readonly options?: readonly string[];
|
|
58
|
+
/** The smallest value of a number column, or the shortest `text`. */
|
|
59
|
+
readonly min?: number;
|
|
60
|
+
/** The largest value of a number column, or the longest `text`. */
|
|
61
|
+
readonly max?: number;
|
|
62
|
+
/** Rendered as `comment on column`. */
|
|
63
|
+
readonly comment?: string;
|
|
64
|
+
/** An `integer` or `bigint` the database numbers (`generated by default as identity`). */
|
|
65
|
+
readonly identity?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A table the app owns, created in `public` by `better-supabase sql sync`
|
|
69
|
+
* next to the block files. Every table gets `id`, the scope column and
|
|
70
|
+
* (unless `timestamps: false`) `created_at` and `updated_at`.
|
|
71
|
+
*/
|
|
72
|
+
interface AppTableConfig {
|
|
73
|
+
/** The table's own columns, keyed by lower snake name. */
|
|
74
|
+
readonly columns?: Readonly<Record<string, AppColumnConfig>>;
|
|
75
|
+
/**
|
|
76
|
+
* Who reaches a row. `inherit` (the default) follows `sql.scope`: per
|
|
77
|
+
* tenant, members of the row's tenant; per user, the row's user. `user`
|
|
78
|
+
* keeps rows per user in any scope, and `none` lets signed-in users read
|
|
79
|
+
* every row while only the service role writes.
|
|
80
|
+
*/
|
|
81
|
+
readonly scope?: "inherit" | "user" | "none";
|
|
82
|
+
/** `created_at` and `updated_at`. Defaults to true. */
|
|
83
|
+
readonly timestamps?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* The id's type: `uuid` (the default, `gen_random_uuid()`) or `bigint`
|
|
86
|
+
* (an identity). A reference to the table needs a column of the same type.
|
|
87
|
+
*/
|
|
88
|
+
readonly id?: "uuid" | "bigint";
|
|
89
|
+
/** Sets of columns that are unique together, each a unique constraint. */
|
|
90
|
+
readonly unique?: readonly (readonly string[])[];
|
|
91
|
+
/** Sets of columns to index, in order. Reference and scope columns already have one. */
|
|
92
|
+
readonly indexes?: readonly (readonly string[])[];
|
|
93
|
+
/** Rendered as `comment on table`. */
|
|
94
|
+
readonly comment?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Registers the table as a subject (ADR 0043), so blocks that attach rows
|
|
97
|
+
* to subjects (comments, attachments, tags, versions, search and others)
|
|
98
|
+
* reach its rows without a `subjects` entry.
|
|
99
|
+
*/
|
|
100
|
+
readonly subject?: AppTableSubject;
|
|
101
|
+
/**
|
|
102
|
+
* Values computed from the rows of another app table that references this
|
|
103
|
+
* one, keyed by the column name they get in `public.<table>_view`
|
|
104
|
+
* (ADR 0044).
|
|
105
|
+
*/
|
|
106
|
+
readonly rollups?: Readonly<Record<string, AppRollupConfig>>;
|
|
107
|
+
/**
|
|
108
|
+
* Columns of the row a reference points at, keyed by the column name they
|
|
109
|
+
* get in `public.<table>_view` (ADR 0044).
|
|
110
|
+
*/
|
|
111
|
+
readonly lookups?: Readonly<Record<string, AppLookupConfig>>;
|
|
112
|
+
}
|
|
113
|
+
declare const APP_ROLLUP_AGGREGATES: readonly ["count", "sum", "min", "max", "avg"];
|
|
114
|
+
type AppRollupAggregate = (typeof APP_ROLLUP_AGGREGATES)[number];
|
|
115
|
+
/**
|
|
116
|
+
* An aggregate over the rows of `table` whose `via` column references this
|
|
117
|
+
* table: `{ table: "tasks", via: "project_id", aggregate: "count" }`.
|
|
118
|
+
*/
|
|
119
|
+
interface AppRollupConfig {
|
|
120
|
+
/** The app table whose rows are aggregated. */
|
|
121
|
+
readonly table: string;
|
|
122
|
+
/** The column of `table` that references this table. */
|
|
123
|
+
readonly via: string;
|
|
124
|
+
/** `sum` of no rows is 0; `min`, `max` and `avg` of no rows are null. */
|
|
125
|
+
readonly aggregate: AppRollupAggregate;
|
|
126
|
+
/**
|
|
127
|
+
* The column of `table` the aggregate reads: a number for `sum` and
|
|
128
|
+
* `avg`, a number, date, time or text for `min` and `max`. `count` takes
|
|
129
|
+
* none and counts rows.
|
|
130
|
+
*/
|
|
131
|
+
readonly column?: string;
|
|
132
|
+
/** Only the rows whose select column (a `text` column with `options`) holds `equals`. */
|
|
133
|
+
readonly where?: {
|
|
134
|
+
readonly column: string;
|
|
135
|
+
readonly equals: string;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/** The `column` of the app table row that this table's `via` column references. */
|
|
139
|
+
interface AppLookupConfig {
|
|
140
|
+
/** A column of this table that references another app table. */
|
|
141
|
+
readonly via: string;
|
|
142
|
+
/** A column of the referenced table. */
|
|
143
|
+
readonly column: string;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The subject an app table registers. The table, id type and tenant column
|
|
147
|
+
* come from the table itself.
|
|
148
|
+
*/
|
|
149
|
+
interface AppTableSubject {
|
|
150
|
+
/** The subject type, lowercase letters, digits and underscores. */
|
|
151
|
+
readonly type: string;
|
|
152
|
+
/** The column `subject_title` returns. */
|
|
153
|
+
readonly title?: string;
|
|
154
|
+
/** The path `subject_url` returns, with `{column}` placeholders: `/projects/{id}`. */
|
|
155
|
+
readonly url?: string;
|
|
156
|
+
/** The columns a search index reads. */
|
|
157
|
+
readonly search?: {
|
|
158
|
+
readonly title?: string;
|
|
159
|
+
readonly body?: readonly string[];
|
|
160
|
+
};
|
|
161
|
+
/** A permission key per action that `can_subject` checks; see `SubjectConfig.permissions`. */
|
|
162
|
+
readonly permissions?: Readonly<Record<string, string>>;
|
|
163
|
+
/**
|
|
164
|
+
* Adds a `rank text collate "C"` column for `move()` (ADR 0021), ordered
|
|
165
|
+
* within `group` when set.
|
|
166
|
+
*/
|
|
167
|
+
readonly rank?: true | {
|
|
168
|
+
readonly group?: string;
|
|
169
|
+
};
|
|
170
|
+
/** Adds a `deleted_at timestamptz` column that blocks treat as the soft-delete time. */
|
|
171
|
+
readonly softDelete?: boolean;
|
|
172
|
+
}
|
|
173
|
+
type AppTablesConfig = Readonly<Record<string, AppTableConfig>>;
|
|
174
|
+
//#endregion
|
|
175
|
+
//#region src/config/names.d.ts
|
|
176
|
+
/** The steps `better-supabase gen` runs, in the order it runs them. */
|
|
177
|
+
declare const GEN_TASKS: readonly ["types", "sql", "spec", "seed", "scaffold", "env"];
|
|
178
|
+
/** Glue `better-supabase init` and `add` write for a framework or runtime. */
|
|
179
|
+
declare const INTEGRATION_NAMES: readonly ["next", "hono", "orpc", "edge", "expo", "mcp", "client", "react"];
|
|
180
|
+
/** An integration as `init`, `add` and `/create` show it, and the integrations it needs. */
|
|
181
|
+
interface IntegrationInfo {
|
|
182
|
+
readonly title: string;
|
|
183
|
+
/** What `init` or `add` writes, one sentence. */
|
|
184
|
+
readonly description: string;
|
|
185
|
+
readonly requires: readonly (typeof INTEGRATION_NAMES)[number][];
|
|
186
|
+
}
|
|
187
|
+
declare const INTEGRATION_INFO: Readonly<Record<(typeof INTEGRATION_NAMES)[number], IntegrationInfo>>;
|
|
188
|
+
/** The agent folders `better-supabase skills install` writes to. */
|
|
189
|
+
declare const SKILLS_AGENTS: readonly ["cursor", "claude", "agents"];
|
|
190
|
+
//#endregion
|
|
191
|
+
//#region src/config/generator-metadata.d.ts
|
|
192
|
+
/**
|
|
193
|
+
* A copy of `@supabase/postgrest-typegen`'s `GeneratorMetadata` contract
|
|
194
|
+
* (version 1), so the published types don't reference the package: it is an
|
|
195
|
+
* optional peer that only the CLI loads. `tests/config/generator-metadata.test-d.ts`
|
|
196
|
+
* checks the copy against the pinned version.
|
|
197
|
+
*/
|
|
198
|
+
interface PostgresColumn {
|
|
199
|
+
table_id: number;
|
|
200
|
+
schema: string;
|
|
201
|
+
table: string;
|
|
202
|
+
id: string;
|
|
203
|
+
ordinal_position: number;
|
|
204
|
+
name: string;
|
|
205
|
+
default_value: unknown;
|
|
206
|
+
data_type: string;
|
|
207
|
+
format: string;
|
|
208
|
+
type_schema: string;
|
|
209
|
+
is_identity: boolean;
|
|
210
|
+
identity_generation: "ALWAYS" | "BY DEFAULT" | null;
|
|
211
|
+
is_generated: boolean;
|
|
212
|
+
is_nullable: boolean;
|
|
213
|
+
is_updatable: boolean;
|
|
214
|
+
is_unique: boolean;
|
|
215
|
+
enums: string[];
|
|
216
|
+
check: string | null;
|
|
217
|
+
comment: string | null;
|
|
218
|
+
}
|
|
219
|
+
interface PostgresFunctionArg {
|
|
220
|
+
mode: "in" | "inout" | "out" | "table" | "variadic";
|
|
221
|
+
name: string;
|
|
222
|
+
type_id: number;
|
|
223
|
+
has_default: boolean | null;
|
|
224
|
+
}
|
|
225
|
+
interface PostgresFunction {
|
|
226
|
+
id: number;
|
|
227
|
+
schema: string;
|
|
228
|
+
name: string;
|
|
229
|
+
language: string;
|
|
230
|
+
definition: string;
|
|
231
|
+
complete_statement: string;
|
|
232
|
+
args: PostgresFunctionArg[];
|
|
233
|
+
argument_types: string;
|
|
234
|
+
identity_argument_types: string;
|
|
235
|
+
return_type_id: number;
|
|
236
|
+
return_type: string;
|
|
237
|
+
return_type_relation_id: number | null;
|
|
238
|
+
is_set_returning_function: boolean;
|
|
239
|
+
prorows: number | null;
|
|
240
|
+
behavior: "IMMUTABLE" | "STABLE" | "VOLATILE";
|
|
241
|
+
security_definer: boolean;
|
|
242
|
+
config_params: {
|
|
243
|
+
[x: string]: string;
|
|
244
|
+
} | null;
|
|
245
|
+
}
|
|
246
|
+
/** A reference to a `types` entry by oid; `null` names when it is not in `types`. */
|
|
247
|
+
interface RpcTypeReference {
|
|
248
|
+
type_id: number;
|
|
249
|
+
format: string | null;
|
|
250
|
+
type_schema: string | null;
|
|
251
|
+
}
|
|
252
|
+
interface RpcFunctionArg extends RpcTypeReference {
|
|
253
|
+
name: string;
|
|
254
|
+
mode: "in" | "inout" | "variadic";
|
|
255
|
+
has_default: boolean;
|
|
256
|
+
relation_id: number | null;
|
|
257
|
+
}
|
|
258
|
+
interface RpcReturnColumn extends RpcTypeReference {
|
|
259
|
+
name: string;
|
|
260
|
+
}
|
|
261
|
+
interface RpcFunctionReturns extends RpcTypeReference {
|
|
262
|
+
relation_id: number | null;
|
|
263
|
+
columns: RpcReturnColumn[] | null;
|
|
264
|
+
}
|
|
265
|
+
interface RpcFunctionOverload {
|
|
266
|
+
function_id: number;
|
|
267
|
+
args: RpcFunctionArg[];
|
|
268
|
+
returns: RpcFunctionReturns;
|
|
269
|
+
is_set_returning: boolean;
|
|
270
|
+
rows_estimate: number | null;
|
|
271
|
+
setof_options: {
|
|
272
|
+
from: string;
|
|
273
|
+
to: string;
|
|
274
|
+
is_one_to_one: boolean;
|
|
275
|
+
is_setof_return: boolean;
|
|
276
|
+
} | null;
|
|
277
|
+
computed_field_of: number | null;
|
|
278
|
+
error: string | null;
|
|
279
|
+
}
|
|
280
|
+
/** A function PostgREST exposes under `/rpc`, with its overloads resolved. */
|
|
281
|
+
interface RpcFunction {
|
|
282
|
+
schema: string;
|
|
283
|
+
name: string;
|
|
284
|
+
overloads: RpcFunctionOverload[];
|
|
285
|
+
}
|
|
286
|
+
interface GeneratorMetadata {
|
|
287
|
+
version: 1;
|
|
288
|
+
schemas: {
|
|
289
|
+
id: number;
|
|
290
|
+
name: string;
|
|
291
|
+
owner: string;
|
|
292
|
+
}[];
|
|
293
|
+
tables: {
|
|
294
|
+
bytes: number;
|
|
295
|
+
comment: string | null;
|
|
296
|
+
dead_rows_estimate: number;
|
|
297
|
+
id: number;
|
|
298
|
+
live_rows_estimate: number;
|
|
299
|
+
name: string;
|
|
300
|
+
replica_identity: "DEFAULT" | "FULL" | "INDEX" | "NOTHING";
|
|
301
|
+
rls_enabled: boolean;
|
|
302
|
+
rls_forced: boolean;
|
|
303
|
+
schema: string;
|
|
304
|
+
size: string;
|
|
305
|
+
}[];
|
|
306
|
+
foreignTables: {
|
|
307
|
+
comment: string | null;
|
|
308
|
+
id: number;
|
|
309
|
+
name: string;
|
|
310
|
+
schema: string;
|
|
311
|
+
}[];
|
|
312
|
+
views: {
|
|
313
|
+
comment: string | null;
|
|
314
|
+
id: number;
|
|
315
|
+
is_insert_enabled?: boolean | undefined;
|
|
316
|
+
is_updatable: boolean;
|
|
317
|
+
is_update_enabled?: boolean | undefined;
|
|
318
|
+
name: string;
|
|
319
|
+
schema: string;
|
|
320
|
+
}[];
|
|
321
|
+
materializedViews: {
|
|
322
|
+
comment: string | null;
|
|
323
|
+
id: number;
|
|
324
|
+
is_populated: boolean;
|
|
325
|
+
name: string;
|
|
326
|
+
schema: string;
|
|
327
|
+
}[];
|
|
328
|
+
columns: PostgresColumn[];
|
|
329
|
+
primaryKeys: {
|
|
330
|
+
schema: string;
|
|
331
|
+
table_name: string;
|
|
332
|
+
name: string;
|
|
333
|
+
table_id: number;
|
|
334
|
+
}[];
|
|
335
|
+
relationships: {
|
|
336
|
+
foreign_key_name: string;
|
|
337
|
+
schema: string;
|
|
338
|
+
relation: string;
|
|
339
|
+
columns: string[];
|
|
340
|
+
is_one_to_one: boolean;
|
|
341
|
+
referenced_schema: string;
|
|
342
|
+
referenced_relation: string;
|
|
343
|
+
referenced_columns: string[];
|
|
344
|
+
}[];
|
|
345
|
+
functions: PostgresFunction[];
|
|
346
|
+
types: {
|
|
347
|
+
id: number;
|
|
348
|
+
name: string;
|
|
349
|
+
schema: string;
|
|
350
|
+
format: string;
|
|
351
|
+
enums: string[];
|
|
352
|
+
attributes: {
|
|
353
|
+
name: string;
|
|
354
|
+
type_id: number;
|
|
355
|
+
}[];
|
|
356
|
+
comment: string | null;
|
|
357
|
+
type_relation_id: number | null;
|
|
358
|
+
}[];
|
|
359
|
+
/**
|
|
360
|
+
* Derived from `functions`; generators resolve it themselves when it is
|
|
361
|
+
* absent, which is how better-supabase stores metadata.
|
|
362
|
+
*/
|
|
363
|
+
rpcFunctions?: RpcFunction[] | undefined;
|
|
364
|
+
}
|
|
365
|
+
//#endregion
|
|
366
|
+
//#region src/config/snapshot.d.ts
|
|
367
|
+
/**
|
|
368
|
+
* What `better-supabase introspect` reads from Postgres. `generator` is the
|
|
369
|
+
* `@supabase/postgrest-typegen` contract (the same metadata behind
|
|
370
|
+
* `supabase gen types`); `extras` holds what that contract leaves out.
|
|
371
|
+
* Codegen and doctor both work from this snapshot, so either can run offline
|
|
372
|
+
* from a saved file.
|
|
373
|
+
*/
|
|
374
|
+
interface Snapshot {
|
|
375
|
+
readonly $schema?: string;
|
|
376
|
+
readonly version: 2;
|
|
377
|
+
/** Every schema that was read, including helper schemas for doctor. */
|
|
378
|
+
readonly schemas: readonly string[];
|
|
379
|
+
readonly generator: GeneratorMetadata;
|
|
380
|
+
readonly extras: SnapshotExtras;
|
|
381
|
+
}
|
|
382
|
+
/** Catalog details `GeneratorMetadata` does not carry. */
|
|
383
|
+
interface SnapshotExtras {
|
|
384
|
+
readonly tables: readonly ExtrasTable[];
|
|
385
|
+
readonly buckets: readonly SnapshotBucket[];
|
|
386
|
+
/** Tables in the `supabase_realtime` publication, as `schema.table`. */
|
|
387
|
+
readonly realtime: readonly string[];
|
|
388
|
+
/**
|
|
389
|
+
* `alter role ... set` values for the Data API roles (`authenticator`),
|
|
390
|
+
* such as `pgrst.db_aggregates_enabled`. Absent in older snapshots.
|
|
391
|
+
*/
|
|
392
|
+
readonly roleSettings?: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
393
|
+
/**
|
|
394
|
+
* Functions that policies in the read schemas call, plus functions in
|
|
395
|
+
* those schemas with `set` options. Absent in older snapshots.
|
|
396
|
+
*/
|
|
397
|
+
readonly functions?: readonly ExtrasFunction[];
|
|
398
|
+
/**
|
|
399
|
+
* The Postgres functions `supabase/config.toml` configures as Auth hooks,
|
|
400
|
+
* in any schema. Absent in older snapshots and without a `config.toml`.
|
|
401
|
+
*/
|
|
402
|
+
readonly hooks?: readonly ExtrasHook[];
|
|
403
|
+
/**
|
|
404
|
+
* Comments of the functions in the read schemas that carry a gen tag
|
|
405
|
+
* (`@notNull`), keyed by `schema.name(signature)`. Absent when none do.
|
|
406
|
+
*/
|
|
407
|
+
readonly functionComments?: Readonly<Record<string, string>>;
|
|
408
|
+
/**
|
|
409
|
+
* Set when the snapshot comes from a `GeneratorMetadata` document alone
|
|
410
|
+
* (`gen --metadata`): unique keys, checks and foreign keys are inferred from
|
|
411
|
+
* the columns and relationships, and the rest is empty, so doctor skips
|
|
412
|
+
* the rules that read it.
|
|
413
|
+
*/
|
|
414
|
+
readonly fromMetadata?: true;
|
|
415
|
+
}
|
|
416
|
+
/** An `[auth.hook.<name>]` with a `pg-functions://` URI. */
|
|
417
|
+
interface ExtrasHook {
|
|
418
|
+
/** `custom_access_token`, `send_email`, ... */
|
|
419
|
+
readonly hook: string;
|
|
420
|
+
readonly schema: string;
|
|
421
|
+
readonly name: string;
|
|
422
|
+
/** Every overload with that name; empty when the function does not exist. */
|
|
423
|
+
readonly functions: readonly ExtrasHookFunction[];
|
|
424
|
+
}
|
|
425
|
+
interface ExtrasHookFunction extends ExtrasFunction {
|
|
426
|
+
/**
|
|
427
|
+
* Of `supabase_auth_admin`, `authenticated` and `anon`, the roles that may
|
|
428
|
+
* execute it (directly or through `public`).
|
|
429
|
+
*/
|
|
430
|
+
readonly execute: readonly string[];
|
|
431
|
+
/** Whether `public` may execute it (the default until revoked). */
|
|
432
|
+
readonly publicExecute: boolean;
|
|
433
|
+
/** Of the same roles, those with `usage` on its schema. */
|
|
434
|
+
readonly schemaUsage: readonly string[];
|
|
435
|
+
/** The function body (`pg_proc.prosrc`). Absent in snapshots that predate it. */
|
|
436
|
+
readonly source?: string;
|
|
437
|
+
}
|
|
438
|
+
/** A function as doctor needs it for RLS checks, in any schema. */
|
|
439
|
+
interface ExtrasFunction {
|
|
440
|
+
readonly schema: string;
|
|
441
|
+
readonly name: string;
|
|
442
|
+
/** Identity arguments, e.g. `organization uuid`. */
|
|
443
|
+
readonly signature: string;
|
|
444
|
+
/** `sql`, `plpgsql`, `c`, ... */
|
|
445
|
+
readonly language: string;
|
|
446
|
+
readonly volatility: "immutable" | "stable" | "volatile";
|
|
447
|
+
readonly securityDefiner: boolean;
|
|
448
|
+
/** `set` options, e.g. `{ statement_timeout: '5s' }`. */
|
|
449
|
+
readonly settings: Readonly<Record<string, string>>;
|
|
450
|
+
/** Which of `anon` and `authenticated` may execute it. Absent in older snapshots. */
|
|
451
|
+
readonly execute?: readonly string[];
|
|
452
|
+
}
|
|
453
|
+
interface ExtrasTable {
|
|
454
|
+
/** Table oid, matching `GeneratorMetadata.tables[].id`. */
|
|
455
|
+
readonly id: number;
|
|
456
|
+
readonly schema: string;
|
|
457
|
+
readonly name: string;
|
|
458
|
+
/** Primary key columns in key order. */
|
|
459
|
+
readonly primaryKey: readonly string[];
|
|
460
|
+
readonly uniques: readonly CatalogUnique[];
|
|
461
|
+
readonly foreignKeys: readonly {
|
|
462
|
+
readonly name: string;
|
|
463
|
+
readonly onDelete: ForeignKeyAction;
|
|
464
|
+
readonly onUpdate: ForeignKeyAction;
|
|
465
|
+
}[];
|
|
466
|
+
readonly checks: readonly CatalogCheck[];
|
|
467
|
+
readonly indexes: readonly CatalogIndex[];
|
|
468
|
+
readonly policies: readonly CatalogPolicy[];
|
|
469
|
+
readonly triggers: readonly CatalogTrigger[];
|
|
470
|
+
readonly grants: readonly CatalogGrant[];
|
|
471
|
+
/** Absent in snapshots taken before column grants were introspected. */
|
|
472
|
+
readonly columnGrants?: readonly CatalogColumnGrant[];
|
|
473
|
+
/** Postgres estimates at least `LARGE_TABLE_ROWS` rows; the `unbounded-read` lint reads it. */
|
|
474
|
+
readonly large?: true;
|
|
475
|
+
}
|
|
476
|
+
type ForeignKeyAction = "no action" | "restrict" | "cascade" | "set null" | "set default";
|
|
477
|
+
interface CatalogUnique {
|
|
478
|
+
readonly name: string;
|
|
479
|
+
readonly columns: readonly string[];
|
|
480
|
+
}
|
|
481
|
+
interface CatalogCheck {
|
|
482
|
+
readonly name: string;
|
|
483
|
+
readonly definition: string;
|
|
484
|
+
}
|
|
485
|
+
interface CatalogIndex {
|
|
486
|
+
readonly name: string;
|
|
487
|
+
readonly columns: readonly string[];
|
|
488
|
+
readonly unique: boolean;
|
|
489
|
+
readonly primary: boolean;
|
|
490
|
+
readonly partial: boolean;
|
|
491
|
+
/** Access method (`btree`, `gin`, `gist`, ...). Absent in older snapshots. */
|
|
492
|
+
readonly method?: string;
|
|
493
|
+
/** The `where` of a partial index, as Postgres prints it. Absent in older snapshots. */
|
|
494
|
+
readonly predicate?: string | null;
|
|
495
|
+
}
|
|
496
|
+
interface CatalogPolicy {
|
|
497
|
+
readonly name: string;
|
|
498
|
+
readonly command: "all" | "select" | "insert" | "update" | "delete";
|
|
499
|
+
readonly roles: readonly string[];
|
|
500
|
+
readonly permissive: boolean;
|
|
501
|
+
readonly using: string | null;
|
|
502
|
+
readonly check: string | null;
|
|
503
|
+
/**
|
|
504
|
+
* Functions the policy expressions call, as `schema.name`, from
|
|
505
|
+
* `pg_depend`. Absent in older snapshots.
|
|
506
|
+
*/
|
|
507
|
+
readonly functions?: readonly string[];
|
|
508
|
+
}
|
|
509
|
+
interface CatalogTrigger {
|
|
510
|
+
readonly name: string;
|
|
511
|
+
readonly timing: "before" | "after" | "instead of";
|
|
512
|
+
readonly events: readonly ("insert" | "update" | "delete" | "truncate")[];
|
|
513
|
+
readonly level: "row" | "statement";
|
|
514
|
+
readonly function: string;
|
|
515
|
+
/** The `create trigger` arguments, when there are any. */
|
|
516
|
+
readonly args?: readonly string[];
|
|
517
|
+
/**
|
|
518
|
+
* The function's body, only for functions that call `realtime.send()` or
|
|
519
|
+
* `realtime.broadcast_changes()`, other than `broadcast_topic()`.
|
|
520
|
+
*/
|
|
521
|
+
readonly source?: string;
|
|
522
|
+
/** The function's comment, for the same functions as `source`. */
|
|
523
|
+
readonly comment?: string;
|
|
524
|
+
}
|
|
525
|
+
interface CatalogGrant {
|
|
526
|
+
readonly role: string;
|
|
527
|
+
readonly privileges: readonly string[];
|
|
528
|
+
}
|
|
529
|
+
/** A column-level `insert` or `update` grant to `anon` or `authenticated`. */
|
|
530
|
+
interface CatalogColumnGrant {
|
|
531
|
+
readonly column: string;
|
|
532
|
+
readonly role: string;
|
|
533
|
+
readonly privileges: readonly string[];
|
|
534
|
+
}
|
|
535
|
+
interface SnapshotBucket {
|
|
536
|
+
readonly id: string;
|
|
537
|
+
readonly public: boolean;
|
|
538
|
+
readonly fileSizeLimit: number | null;
|
|
539
|
+
readonly allowedMimeTypes: readonly string[] | null;
|
|
540
|
+
/** `versioning_status`; absent when Storage has no versioning. */
|
|
541
|
+
readonly versioning?: "DISABLED" | "ENABLED" | "SUSPENDED" | null;
|
|
542
|
+
/** `lifecycle_configuration`; absent when Storage has no lifecycles. */
|
|
543
|
+
readonly lifecycle?: unknown;
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* The snapshot joined into one record per table, function and enum. Codegen
|
|
547
|
+
* and doctor read this view rather than the raw snapshot.
|
|
548
|
+
*/
|
|
549
|
+
interface Catalog {
|
|
550
|
+
readonly schemas: readonly string[];
|
|
551
|
+
readonly tables: readonly CatalogTable[];
|
|
552
|
+
readonly enums: readonly CatalogEnum[];
|
|
553
|
+
readonly functions: readonly CatalogFunction[];
|
|
554
|
+
readonly buckets: readonly SnapshotBucket[];
|
|
555
|
+
readonly realtime: readonly string[];
|
|
556
|
+
}
|
|
557
|
+
interface CatalogTable {
|
|
558
|
+
readonly id: number;
|
|
559
|
+
readonly schema: string;
|
|
560
|
+
readonly name: string;
|
|
561
|
+
/** Materialized views count as views; foreign tables as tables. */
|
|
562
|
+
readonly kind: "table" | "view";
|
|
563
|
+
readonly rls: boolean;
|
|
564
|
+
readonly forceRls: boolean;
|
|
565
|
+
readonly replicaIdentity: "DEFAULT" | "INDEX" | "FULL" | "NOTHING" | null;
|
|
566
|
+
/** Inserts work (always true for tables). */
|
|
567
|
+
readonly insertable: boolean;
|
|
568
|
+
/** Updates work (always true for tables). */
|
|
569
|
+
readonly updatable: boolean;
|
|
570
|
+
readonly comment: string | null;
|
|
571
|
+
readonly columns: readonly CatalogColumn[];
|
|
572
|
+
readonly primaryKey: readonly string[];
|
|
573
|
+
readonly uniques: readonly CatalogUnique[];
|
|
574
|
+
readonly foreignKeys: readonly CatalogForeignKey[];
|
|
575
|
+
readonly checks: readonly CatalogCheck[];
|
|
576
|
+
readonly indexes: readonly CatalogIndex[];
|
|
577
|
+
readonly policies: readonly CatalogPolicy[];
|
|
578
|
+
readonly triggers: readonly CatalogTrigger[];
|
|
579
|
+
readonly grants: readonly CatalogGrant[];
|
|
580
|
+
/** Absent in snapshots taken before column grants were introspected. */
|
|
581
|
+
readonly columnGrants?: readonly CatalogColumnGrant[];
|
|
582
|
+
}
|
|
583
|
+
interface CatalogColumn {
|
|
584
|
+
readonly name: string;
|
|
585
|
+
/** Type name; the element type for arrays (`uuid`, `int8`, `note_kind`). */
|
|
586
|
+
readonly udt: string;
|
|
587
|
+
/** Raw type name as Postgres reports it (`_text` for `text[]`). */
|
|
588
|
+
readonly format: string;
|
|
589
|
+
readonly typeSchema: string;
|
|
590
|
+
readonly isArray: boolean;
|
|
591
|
+
readonly isEnum: boolean;
|
|
592
|
+
readonly nullable: boolean;
|
|
593
|
+
readonly hasDefault: boolean;
|
|
594
|
+
readonly default: string | null;
|
|
595
|
+
readonly identity: "always" | "by default" | null;
|
|
596
|
+
readonly generated: boolean;
|
|
597
|
+
readonly updatable: boolean;
|
|
598
|
+
readonly comment: string | null;
|
|
599
|
+
}
|
|
600
|
+
interface CatalogForeignKey {
|
|
601
|
+
readonly name: string;
|
|
602
|
+
readonly columns: readonly string[];
|
|
603
|
+
readonly refSchema: string;
|
|
604
|
+
readonly refTable: string;
|
|
605
|
+
readonly refColumns: readonly string[];
|
|
606
|
+
readonly oneToOne: boolean;
|
|
607
|
+
readonly onDelete: ForeignKeyAction;
|
|
608
|
+
readonly onUpdate: ForeignKeyAction;
|
|
609
|
+
}
|
|
610
|
+
interface CatalogEnum {
|
|
611
|
+
readonly schema: string;
|
|
612
|
+
readonly name: string;
|
|
613
|
+
readonly values: readonly string[];
|
|
614
|
+
}
|
|
615
|
+
interface CatalogFunction {
|
|
616
|
+
readonly schema: string;
|
|
617
|
+
readonly name: string;
|
|
618
|
+
/** Signature that tells overloads apart, e.g. `a integer, b text`. */
|
|
619
|
+
readonly signature: string;
|
|
620
|
+
readonly args: readonly CatalogFunctionArg[];
|
|
621
|
+
/** Columns for `returns table (...)` functions. */
|
|
622
|
+
readonly returnsTable: readonly {
|
|
623
|
+
readonly name: string;
|
|
624
|
+
readonly udt: string;
|
|
625
|
+
/** Schema of the column's type, when typegen knows it. */
|
|
626
|
+
readonly typeSchema?: string;
|
|
627
|
+
}[] | null;
|
|
628
|
+
/** Return type name (`int4`, `_text`, a table's row type). */
|
|
629
|
+
readonly returns: string;
|
|
630
|
+
/** Schema of the return type, when typegen knows it. */
|
|
631
|
+
readonly returnsSchema?: string;
|
|
632
|
+
/** `schema.table` when the function returns rows of a table or view. */
|
|
633
|
+
readonly returnsRelation: string | null;
|
|
634
|
+
readonly returnsSet: boolean;
|
|
635
|
+
readonly volatility: "immutable" | "stable" | "volatile";
|
|
636
|
+
readonly securityDefiner: boolean;
|
|
637
|
+
readonly language: string;
|
|
638
|
+
/** `search_path` from `SET search_path`, or `null` when unset. */
|
|
639
|
+
readonly searchPath: string | null;
|
|
640
|
+
/** The function's comment, when it carries a gen tag such as `@notNull`. */
|
|
641
|
+
readonly comment?: string;
|
|
642
|
+
}
|
|
643
|
+
interface CatalogFunctionArg {
|
|
644
|
+
readonly name: string;
|
|
645
|
+
readonly udt: string;
|
|
646
|
+
/** Schema of the argument's type, when typegen knows it. */
|
|
647
|
+
readonly typeSchema?: string;
|
|
648
|
+
readonly isArray: boolean;
|
|
649
|
+
readonly hasDefault: boolean;
|
|
650
|
+
}
|
|
651
|
+
//#endregion
|
|
652
|
+
//#region src/config/types/tooling.d.ts
|
|
653
|
+
interface OpenApiConfig {
|
|
654
|
+
/** Module exporting the document (or a function returning it) as `openapi` or default. */
|
|
655
|
+
readonly entry?: string;
|
|
656
|
+
/** JSON file `better-supabase spec emit openapi` writes. */
|
|
657
|
+
readonly output?: string;
|
|
658
|
+
}
|
|
659
|
+
/** A docs UI `spec emit --ui` writes next to an OpenAPI document. */
|
|
660
|
+
type SpecUiName = "scalar" | "swagger" | "redoc" | "elements" | "rapidoc";
|
|
661
|
+
/** One document `better-supabase spec emit` writes. */
|
|
662
|
+
interface SpecOutputConfig {
|
|
663
|
+
/** A format id: `openapi`, `asyncapi` or `arazzo`. */
|
|
664
|
+
readonly format: string;
|
|
665
|
+
/** Defaults to the format's default version, e.g. `3.1` for OpenAPI. */
|
|
666
|
+
readonly version?: string;
|
|
667
|
+
/** File to write, relative to the root. Defaults to the format's file name. */
|
|
668
|
+
readonly output?: string;
|
|
669
|
+
/** Overlay files (JSON or YAML), applied in order. */
|
|
670
|
+
readonly overlays?: readonly string[];
|
|
671
|
+
/** Defaults to `yaml` when `output` ends in `.yaml` or `.yml`, otherwise `json`. */
|
|
672
|
+
readonly serialize?: "json" | "yaml";
|
|
673
|
+
/** Also writes a reference page (`openapi.html` for `openapi.json`) next to OpenAPI outputs. */
|
|
674
|
+
readonly ui?: SpecUiName;
|
|
675
|
+
}
|
|
676
|
+
interface SpecsConfig {
|
|
677
|
+
/** Module exporting a `defineApi()` result (or a function returning one) as `api` or default. */
|
|
678
|
+
readonly entry?: string;
|
|
679
|
+
/** The documents to write. Defaults to one OpenAPI document. */
|
|
680
|
+
readonly outputs?: readonly SpecOutputConfig[];
|
|
681
|
+
/** The lowest severity that fails `spec emit`, `check` and `validate`. Defaults to `error`. */
|
|
682
|
+
readonly failOn?: "error" | "warning" | "never";
|
|
683
|
+
/** Also write the diagnostics manifest (JSON) to this file, like `spec --manifest`. */
|
|
684
|
+
readonly manifest?: string;
|
|
685
|
+
}
|
|
686
|
+
/** A step `better-supabase gen` runs. */
|
|
687
|
+
type GenTask = (typeof GEN_TASKS)[number];
|
|
688
|
+
interface GenConfig {
|
|
689
|
+
/**
|
|
690
|
+
* The steps `better-supabase gen` runs, in this order: `types` (the
|
|
691
|
+
* generated modules and `generators`), `sql` (`sql sync`), `spec` (`spec
|
|
692
|
+
* emit`), `seed`, `scaffold` (`scaffold api`, its generated file only) and
|
|
693
|
+
* `env`. Without a list, `types` runs, plus `sql` when `blocks` or
|
|
694
|
+
* `realtime.policies` is set, `spec` and `seed` when their entry file
|
|
695
|
+
* exists, and `scaffold` when `scaffold.api` is set. `env` runs only when
|
|
696
|
+
* listed, because it needs the local stack. A listed step always runs.
|
|
697
|
+
*/
|
|
698
|
+
readonly tasks?: readonly GenTask[];
|
|
699
|
+
/** Milliseconds between checks in `gen --watch` and `spec emit --watch`. */
|
|
700
|
+
readonly watchInterval?: number;
|
|
701
|
+
}
|
|
702
|
+
/** Glue `better-supabase init` and `add` write for a framework or runtime. */
|
|
703
|
+
type IntegrationName = (typeof INTEGRATION_NAMES)[number];
|
|
704
|
+
interface EnvFileConfig {
|
|
705
|
+
/** Env file `better-supabase env` writes. Defaults to `.env.local`. */
|
|
706
|
+
readonly output?: string;
|
|
707
|
+
/**
|
|
708
|
+
* Prefix for the browser variables, such as `NEXT_PUBLIC_`; `'none'` for
|
|
709
|
+
* no prefix. Detected from the framework by default.
|
|
710
|
+
*/
|
|
711
|
+
readonly prefix?: string;
|
|
712
|
+
}
|
|
713
|
+
interface ScaffoldApiConfig {
|
|
714
|
+
/** Detected from `package.json` when the project has exactly one of them. */
|
|
715
|
+
readonly framework?: "hono" | "next";
|
|
716
|
+
/** Tables to serve. Defaults to every table and view in the public schema. */
|
|
717
|
+
readonly tables?: readonly string[];
|
|
718
|
+
/** The API module's name: `lib/<name>.ts` and `lib/<name>.generated.ts`. Defaults to `api`. */
|
|
719
|
+
readonly name?: string;
|
|
720
|
+
/** Where the resources are served. Defaults to `/api`. */
|
|
721
|
+
readonly basePath?: string;
|
|
722
|
+
}
|
|
723
|
+
interface ScaffoldConfig {
|
|
724
|
+
/** What `better-supabase scaffold api` writes; the `scaffold` gen step keeps its generated file current. */
|
|
725
|
+
readonly api?: ScaffoldApiConfig;
|
|
726
|
+
}
|
|
727
|
+
/** An agent folder `better-supabase skills install` writes to. */
|
|
728
|
+
type SkillsAgent = (typeof SKILLS_AGENTS)[number];
|
|
729
|
+
interface SkillsConfig {
|
|
730
|
+
/** Defaults to the agent folders the project has, else `agents`. */
|
|
731
|
+
readonly agents?: readonly SkillsAgent[];
|
|
732
|
+
}
|
|
733
|
+
interface KeysConfig {
|
|
734
|
+
/** Signing key file `better-supabase keys` writes. Defaults to `supabase/signing_keys.json`. */
|
|
735
|
+
readonly output?: string;
|
|
736
|
+
}
|
|
737
|
+
interface DoctorConfig {
|
|
738
|
+
/** Finding codes to skip, e.g. `['BS204']`. */
|
|
739
|
+
readonly ignore?: readonly string[];
|
|
740
|
+
/** Run only these checks, e.g. `['BS100', 'BS304']`. */
|
|
741
|
+
readonly only?: readonly string[];
|
|
742
|
+
/** Treat warnings as errors. */
|
|
743
|
+
readonly strict?: boolean;
|
|
744
|
+
/** Report format: `text` (default), `sarif` (code scanning) or `github` (workflow annotations). `--json` still wins. */
|
|
745
|
+
readonly format?: "text" | "sarif" | "github";
|
|
746
|
+
/** Write the report to this file. */
|
|
747
|
+
readonly output?: string;
|
|
748
|
+
/**
|
|
749
|
+
* App source files doctor scans for API use (BS210). Globs relative to the
|
|
750
|
+
* root. Defaults to `['src/**\/*.{ts,tsx}']`.
|
|
751
|
+
*/
|
|
752
|
+
readonly sources?: readonly string[];
|
|
753
|
+
/**
|
|
754
|
+
* How many policies a security definer helper may appear in before BS206
|
|
755
|
+
* asks for an inlinable `language sql stable` function. Defaults to 5.
|
|
756
|
+
*/
|
|
757
|
+
readonly policyHelperLimit?: number;
|
|
758
|
+
/**
|
|
759
|
+
* The BS405 limit in bytes. When the authorization provider's token hook
|
|
760
|
+
* has a budget, it replaces that budget and the whole token keeps 2048.
|
|
761
|
+
* Otherwise it limits the whole token's claims (default 2048).
|
|
762
|
+
*/
|
|
763
|
+
readonly claimsLimit?: number;
|
|
764
|
+
}
|
|
765
|
+
//#endregion
|
|
766
|
+
//#region src/preset/fields.d.ts
|
|
767
|
+
/** How `/create` and `init` show one value: its label and, where the label is not enough, a hint. */
|
|
768
|
+
interface PresetValueInfo {
|
|
769
|
+
readonly label: string;
|
|
770
|
+
readonly hint?: string;
|
|
771
|
+
}
|
|
772
|
+
/**
|
|
773
|
+
* One convention a preset sets. `values` and the field list are append-only:
|
|
774
|
+
* a code stores each value's index in `bits` bits, so a value keeps its
|
|
775
|
+
* index forever and a new value fits only while `values` stays within
|
|
776
|
+
* `bits`. A `multi` field stores one bit per value.
|
|
777
|
+
*/
|
|
778
|
+
interface PresetCodeField<K extends string = string, V extends string = string> {
|
|
779
|
+
readonly key: K;
|
|
780
|
+
readonly values: readonly V[];
|
|
781
|
+
readonly default: V | readonly V[];
|
|
782
|
+
readonly bits: number;
|
|
783
|
+
readonly multi?: true;
|
|
784
|
+
/** The code version that added the field; older codes decode it as its default. */
|
|
785
|
+
readonly since: number;
|
|
786
|
+
}
|
|
787
|
+
/** A convention field with the names `/create` and the `init` prompts show. */
|
|
788
|
+
interface PresetField<K extends string = string, V extends string = string> extends PresetCodeField<K, V> {
|
|
789
|
+
readonly label: string;
|
|
790
|
+
readonly labels: { readonly [P in V]: PresetValueInfo; };
|
|
791
|
+
}
|
|
792
|
+
/** The value each convention field takes. */
|
|
793
|
+
interface PresetConventions {
|
|
794
|
+
readonly framework: PresetFramework;
|
|
795
|
+
readonly platforms: "web" | "native" | "both";
|
|
796
|
+
readonly casing: "snake" | "camel";
|
|
797
|
+
readonly idType: "uuid" | "text" | "bigint" | "integer";
|
|
798
|
+
readonly scope: "tenant" | "user" | "none";
|
|
799
|
+
readonly tenantName: PresetTenantName;
|
|
800
|
+
readonly access: "roles" | "catalog" | "provider" | "custom";
|
|
801
|
+
readonly api: "none" | "api";
|
|
802
|
+
readonly integrations: readonly IntegrationName[];
|
|
803
|
+
}
|
|
804
|
+
/** A convention field's key. */
|
|
805
|
+
type PresetFieldKey = keyof PresetConventions;
|
|
806
|
+
/** The values a convention field takes. */
|
|
807
|
+
type PresetFieldValue<K extends PresetFieldKey> = ValueOf<K>;
|
|
808
|
+
type ValueOf<K extends PresetFieldKey> = PresetConventions[K] extends readonly (infer V extends string)[] ? V : Extract<PresetConventions[K], string>;
|
|
809
|
+
/** The tenant names a preset can set (`sql.naming.tenant`), in code order. */
|
|
810
|
+
declare const PRESET_TENANT_NAMES: readonly ["organization", "workspace", "team"];
|
|
811
|
+
type PresetTenantName = (typeof PRESET_TENANT_NAMES)[number];
|
|
812
|
+
/** The frameworks `/create` and `init --preset` set up glue for. */
|
|
813
|
+
declare const PRESET_FRAMEWORKS: readonly ["next", "vite", "tanstack-start", "expo", "sveltekit", "nuxt", "hono", "astro", "react-router"];
|
|
814
|
+
type PresetFramework = (typeof PRESET_FRAMEWORKS)[number];
|
|
815
|
+
/**
|
|
816
|
+
* The convention fields, in code order. Append new fields at the end with
|
|
817
|
+
* the next `since`, and never remove or reorder one.
|
|
818
|
+
*/
|
|
819
|
+
declare const PRESET_FIELDS: readonly PresetField<PresetFieldKey>[];
|
|
820
|
+
/** A convention field by key, with its values and labels typed. */
|
|
821
|
+
declare function presetField<K extends PresetFieldKey>(key: K): PresetField<K, ValueOf<K>>;
|
|
822
|
+
/** A field value's label, or the value itself when it has none. */
|
|
823
|
+
declare function presetValueLabel(key: PresetFieldKey, value: string): PresetValueInfo;
|
|
824
|
+
/**
|
|
825
|
+
* The integrations `init --preset` adds for a framework whatever the
|
|
826
|
+
* selection says: the framework's own one, when it has one, then what that
|
|
827
|
+
* one requires.
|
|
828
|
+
*/
|
|
829
|
+
declare function integrationsForFramework(framework: PresetFramework): readonly IntegrationName[];
|
|
830
|
+
type PresetPlatforms = PresetConventions["platforms"];
|
|
831
|
+
type PresetScope = PresetConventions["scope"];
|
|
832
|
+
type PresetAccess = PresetConventions["access"];
|
|
833
|
+
/** A block selection and its conventions: what a preset code encodes. */
|
|
834
|
+
interface Preset extends PresetConventions {
|
|
835
|
+
/** Block names (`blocks` keys in the config), as selected; `resolvePreset` adds what they require. */
|
|
836
|
+
readonly blocks: readonly string[];
|
|
837
|
+
}
|
|
838
|
+
/** The newest code version; `encodePreset` writes it. */
|
|
839
|
+
declare const PRESET_VERSION = 1;
|
|
840
|
+
/** Every convention at its default. */
|
|
841
|
+
declare const DEFAULT_CONVENTIONS: PresetConventions;
|
|
842
|
+
//#endregion
|
|
843
|
+
//#region src/preset/presets.d.ts
|
|
844
|
+
/** Where a named preset sits in the `/create` and `init` pickers. */
|
|
845
|
+
type PresetGroup = "starters" | "products" | "ai" | "platforms" | "everything";
|
|
846
|
+
/** The preset groups in display order, with their headings. */
|
|
847
|
+
declare const PRESET_GROUPS: Readonly<Record<PresetGroup, string>>;
|
|
848
|
+
/** A named starting point: a block selection with the default conventions. */
|
|
849
|
+
interface NamedPreset {
|
|
850
|
+
readonly name: string;
|
|
851
|
+
readonly title: string;
|
|
852
|
+
readonly description: string;
|
|
853
|
+
readonly group: PresetGroup;
|
|
854
|
+
/** The blocks it selects; `resolvePreset` adds what they require. */
|
|
855
|
+
readonly blocks: readonly string[];
|
|
856
|
+
/** The conventions it sets over the defaults, such as a user scope. */
|
|
857
|
+
readonly conventions?: Partial<PresetConventions>;
|
|
858
|
+
}
|
|
859
|
+
/** A named preset's name. */
|
|
860
|
+
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";
|
|
861
|
+
/** The named presets, for `defineConfig({ preset })` and `/create`. */
|
|
862
|
+
declare const PRESETS: Readonly<Record<PresetName, NamedPreset>>;
|
|
863
|
+
/** The named presets in display order, grouped by `group`. */
|
|
864
|
+
declare const PRESET_NAMES: readonly PresetName[];
|
|
865
|
+
declare function isPresetName(value: string): value is PresetName;
|
|
866
|
+
/** The named preset as a `Preset`: the default conventions, then its own. */
|
|
867
|
+
declare function namedPreset(name: PresetName): Preset;
|
|
868
|
+
//#endregion
|
|
869
|
+
//#region src/config/expose.d.ts
|
|
870
|
+
/** A privilege the Data API roles can be granted on a table or view. */
|
|
871
|
+
type Privilege = "select" | "insert" | "update" | "delete";
|
|
872
|
+
type ColumnPrivilege = `${"select" | "insert" | "update"}(${string})`;
|
|
873
|
+
type ExposePrivilege = Privilege | ColumnPrivilege;
|
|
874
|
+
/** A role the `grants` module writes privileges for. */
|
|
875
|
+
type ExposeRole = "anon" | "authenticated" | "service_role";
|
|
876
|
+
/**
|
|
877
|
+
* Data API grants for one table: privileges for `authenticated`, or per
|
|
878
|
+
* role. `serviceRole` defaults to every privilege. For a function, keyed by
|
|
879
|
+
* its signature (`search_notes(text, integer)`), `execute` lists the roles
|
|
880
|
+
* that may call it; `service_role` is added unless `serviceRole` is false.
|
|
881
|
+
*/
|
|
882
|
+
type ExposeConfig = readonly ExposePrivilege[] | {
|
|
883
|
+
readonly anon?: readonly ExposePrivilege[];
|
|
884
|
+
readonly authenticated?: readonly ExposePrivilege[];
|
|
885
|
+
readonly serviceRole?: readonly ExposePrivilege[];
|
|
886
|
+
} | {
|
|
887
|
+
readonly execute: readonly ("anon" | "authenticated")[];
|
|
888
|
+
readonly serviceRole?: boolean;
|
|
889
|
+
};
|
|
890
|
+
/** Resolved grants for one table. */
|
|
891
|
+
interface ResolvedExpose {
|
|
892
|
+
readonly anon: readonly ExposePrivilege[];
|
|
893
|
+
readonly authenticated: readonly ExposePrivilege[];
|
|
894
|
+
readonly serviceRole: readonly ExposePrivilege[];
|
|
895
|
+
}
|
|
896
|
+
//#endregion
|
|
897
|
+
//#region src/config/types/database.d.ts
|
|
898
|
+
interface BucketConfig {
|
|
899
|
+
readonly id?: string;
|
|
900
|
+
readonly public?: boolean;
|
|
901
|
+
/**
|
|
902
|
+
* Path template with `{placeholders}`, e.g. `{organizationId}/{customerId}/logo.webp`,
|
|
903
|
+
* or several when the bucket stores objects in more than one layout. A last
|
|
904
|
+
* segment `{...rest}` matches one or more segments.
|
|
905
|
+
*/
|
|
906
|
+
readonly path: string | readonly [string, ...string[]];
|
|
907
|
+
/** Generated storage policy, or an access contract policy (`{ access }`). */
|
|
908
|
+
readonly policy?: BucketPolicyName | AccessBucketPolicy;
|
|
909
|
+
readonly fileSizeLimit?: string;
|
|
910
|
+
readonly allowedMimeTypes?: readonly string[];
|
|
911
|
+
/** Keep earlier object versions. `bucket.apply()` sets it; doctor (BS302) compares it. */
|
|
912
|
+
readonly versioning?: boolean;
|
|
913
|
+
/** When noncurrent versions expire. Needs `versioning: true`. */
|
|
914
|
+
readonly lifecycle?: BucketLifecycle;
|
|
915
|
+
}
|
|
916
|
+
/**
|
|
917
|
+
* How the SQL modules reach the database: `pg-delta` (Supabase Declarative
|
|
918
|
+
* Schemas 2.0, `supabase db schema declarative sync`), `migra` (declarative
|
|
919
|
+
* schemas 1.0, `supabase db diff`) or `migrations` (no declarative schemas:
|
|
920
|
+
* the `sql` commands write the modules into a migration).
|
|
921
|
+
*/
|
|
922
|
+
type SqlWorkflow = "pg-delta" | "migra" | "migrations";
|
|
923
|
+
interface SqlConfig {
|
|
924
|
+
/**
|
|
925
|
+
* The workflow. Unset, better-supabase reads `supabase/config.toml`:
|
|
926
|
+
* pg-delta when it enables it or nothing says otherwise, migra when it
|
|
927
|
+
* turns pg-delta off or the project keeps migra's declarative schemas.
|
|
928
|
+
*/
|
|
929
|
+
readonly workflow?: SqlWorkflow;
|
|
930
|
+
/** Directory declarative schema files are written to. */
|
|
931
|
+
readonly dir?: string;
|
|
932
|
+
/** File name prefix, so generated files sort after yours. */
|
|
933
|
+
readonly prefix?: string;
|
|
934
|
+
/** Directory pgTAP files (the `pgtap` module) are written to. */
|
|
935
|
+
readonly testsDir?: string;
|
|
936
|
+
/**
|
|
937
|
+
* The schema every module writes its functions and managed tables to,
|
|
938
|
+
* unless `blocks.<name>.schema` sets its own. Defaults to `better_supabase`.
|
|
939
|
+
*/
|
|
940
|
+
readonly schema?: string;
|
|
941
|
+
/**
|
|
942
|
+
* The Data API schema, such as `api`, every module writes its `security
|
|
943
|
+
* invoker` wrappers to, unless `blocks.<name>.api` sets its own or
|
|
944
|
+
* `false`.
|
|
945
|
+
*/
|
|
946
|
+
readonly api?: string;
|
|
947
|
+
/**
|
|
948
|
+
* Who a block's rows belong to, unless `blocks.<name>.scope` sets its
|
|
949
|
+
* own: `tenant` (a tenant, checked through the access contract; the
|
|
950
|
+
* default), `user` (the signed-in user, with no tenants) or `none` (one
|
|
951
|
+
* shared space every signed-in user reads and writes).
|
|
952
|
+
*/
|
|
953
|
+
readonly scope?: BlockScope;
|
|
954
|
+
/** Names for the tenant concept in tables, functions and columns. */
|
|
955
|
+
readonly naming?: SqlNaming;
|
|
956
|
+
}
|
|
957
|
+
/** `sql` with defaults applied. */
|
|
958
|
+
interface ResolvedSqlConfig {
|
|
959
|
+
/** Unset when the config leaves it to `supabase/config.toml`. */
|
|
960
|
+
readonly workflow?: SqlWorkflow;
|
|
961
|
+
readonly dir: string;
|
|
962
|
+
readonly prefix: string;
|
|
963
|
+
readonly testsDir: string;
|
|
964
|
+
/** Unset means `tenant`. */
|
|
965
|
+
readonly scope?: BlockScope;
|
|
966
|
+
readonly naming?: SqlNaming;
|
|
967
|
+
}
|
|
968
|
+
interface SeedConfig {
|
|
969
|
+
/** Module exporting `defineSeed(...)` as `seed` or default. */
|
|
970
|
+
readonly entry?: string;
|
|
971
|
+
/** SQL file `better-supabase seed` writes. Add it to `[db.seed] sql_paths`. */
|
|
972
|
+
readonly output?: string;
|
|
973
|
+
}
|
|
974
|
+
interface RealtimeConfig {
|
|
975
|
+
/**
|
|
976
|
+
* Tables that broadcast a change signal for live queries (`table` or
|
|
977
|
+
* `schema.table`). Tenant tables broadcast per tenant. Install the
|
|
978
|
+
* triggers with `better-supabase add realtime-tables`.
|
|
979
|
+
*/
|
|
980
|
+
readonly tables?: readonly string[];
|
|
981
|
+
/**
|
|
982
|
+
* Tables in `tables` without a tenant column. They broadcast on one topic
|
|
983
|
+
* every signed-in user receives. With the `tenant` plugin, a table that
|
|
984
|
+
* lacks the tenant column and is not listed here fails to install.
|
|
985
|
+
*/
|
|
986
|
+
readonly global?: readonly string[];
|
|
987
|
+
/**
|
|
988
|
+
* Tables in `tables` whose rows belong to one user: table to its user
|
|
989
|
+
* column (`{ notifications: "user_id" }`). They broadcast on a topic per
|
|
990
|
+
* user, `bs:t:<schema>.<table>:u:<user id>`, which only that user
|
|
991
|
+
* receives, instead of the tenant's topic.
|
|
992
|
+
*/
|
|
993
|
+
readonly users?: Readonly<Record<string, string>>;
|
|
994
|
+
/**
|
|
995
|
+
* Writes the `realtime.messages` policies of the topics that `from`
|
|
996
|
+
* exports (`defineTopic`) to `output`, a file in `supabase/schemas`, on
|
|
997
|
+
* `better-supabase sql sync`; `sql sync --check` fails when it is stale.
|
|
998
|
+
*/
|
|
999
|
+
readonly policies?: TopicPoliciesConfig;
|
|
1000
|
+
/**
|
|
1001
|
+
* Broadcast triggers that `sql sync` writes to `policies.output` next to
|
|
1002
|
+
* the policies: each one calls `better_supabase.broadcast_topic()` (the
|
|
1003
|
+
* `realtime-tables` module) for a topic that `policies.from` exports.
|
|
1004
|
+
*/
|
|
1005
|
+
readonly triggers?: readonly TopicTriggerConfig[];
|
|
1006
|
+
}
|
|
1007
|
+
/** One `realtime.triggers` entry: a table whose row changes go to a topic. */
|
|
1008
|
+
interface TopicTriggerConfig {
|
|
1009
|
+
/** The template of a topic that `realtime.policies.from` exports. */
|
|
1010
|
+
readonly topic: string;
|
|
1011
|
+
/** `table` or `schema.table`. */
|
|
1012
|
+
readonly table: string;
|
|
1013
|
+
/** The column per placeholder. Defaults to the placeholder in snake_case. */
|
|
1014
|
+
readonly values?: Readonly<Record<string, string>>;
|
|
1015
|
+
/** Defaults to all three. */
|
|
1016
|
+
readonly events?: readonly ("insert" | "update" | "delete")[];
|
|
1017
|
+
/** The broadcast event name. Defaults to the operation. */
|
|
1018
|
+
readonly event?: string;
|
|
1019
|
+
/**
|
|
1020
|
+
* `"keys"` (default) sends the primary key and the placeholder values.
|
|
1021
|
+
* `"row"` sends the whole row, which bypasses column grants.
|
|
1022
|
+
*/
|
|
1023
|
+
readonly payload?: "keys" | "row";
|
|
1024
|
+
}
|
|
1025
|
+
/** `realtime.policies`: where topic policies come from and go. */
|
|
1026
|
+
interface TopicPoliciesConfig {
|
|
1027
|
+
/** Modules that export `defineTopic` results. Node imports them. */
|
|
1028
|
+
readonly from: readonly string[];
|
|
1029
|
+
/** The SQL file to write, such as `supabase/schemas/905_topics.sql`. */
|
|
1030
|
+
readonly output: string;
|
|
1031
|
+
}
|
|
1032
|
+
/** pgvector distance: `<=>` (cosine), `<->` (l2) or `<#>` (negative inner product). */
|
|
1033
|
+
type VectorDistance = "cosine" | "l2" | "inner_product";
|
|
1034
|
+
/** The embedding column, or the column and its distance (default `cosine`). */
|
|
1035
|
+
type VectorSearchConfig = string | {
|
|
1036
|
+
readonly column: string;
|
|
1037
|
+
readonly distance?: VectorDistance;
|
|
1038
|
+
/** The column's pgvector type. Defaults to `vector`. */
|
|
1039
|
+
readonly type?: "vector" | "halfvec";
|
|
1040
|
+
/** The primary key column `db.$search({ score: true })` merges by. Defaults to `id`. */
|
|
1041
|
+
readonly key?: string;
|
|
1042
|
+
/**
|
|
1043
|
+
* Fuses a full-text ranking over a `tsvector` column with the vector
|
|
1044
|
+
* ranking (reciprocal rank fusion), for `db.$search({ text })`.
|
|
1045
|
+
*/
|
|
1046
|
+
readonly hybrid?: {
|
|
1047
|
+
readonly tsvector: string;
|
|
1048
|
+
/** The query's text search configuration. Defaults to `simple`. */
|
|
1049
|
+
readonly config?: string;
|
|
1050
|
+
/** The RRF constant. Defaults to 60. */
|
|
1051
|
+
readonly k?: number;
|
|
1052
|
+
};
|
|
1053
|
+
/** A SQL expression over the row `t` the score is multiplied by, such as `t.priority`. */
|
|
1054
|
+
readonly boost?: string;
|
|
1055
|
+
/** Columns `db.$search({ filter })` narrows before ranking. */
|
|
1056
|
+
readonly prefilter?: readonly string[];
|
|
1057
|
+
/**
|
|
1058
|
+
* A SQL condition over the row `t` every candidate must meet, applied
|
|
1059
|
+
* before ranking: ranges, a parent row, such as
|
|
1060
|
+
* `t.expires_at > now() and exists (select 1 from public.folders f where f.id = t.folder_id and not f.disabled)`.
|
|
1061
|
+
*/
|
|
1062
|
+
readonly predicate?: string;
|
|
1063
|
+
/** How `boost` combines with the score: `multiply` (default) or `add`. */
|
|
1064
|
+
readonly boostMode?: "multiply" | "add";
|
|
1065
|
+
/** A SQL `order by` list over the row `t` that breaks score ties, such as `t.created_at desc`. */
|
|
1066
|
+
readonly order?: string;
|
|
1067
|
+
};
|
|
1068
|
+
//#endregion
|
|
1069
|
+
//#region src/config/types/entitlements.d.ts
|
|
1070
|
+
interface EntitlementsConfig {
|
|
1071
|
+
/**
|
|
1072
|
+
* `table.column` (or `schema.table.column`) holding each tenant's Stripe
|
|
1073
|
+
* customer id, read by the `entitlements` SQL module. Required
|
|
1074
|
+
* without the `organizations` module; with it, defaults to the
|
|
1075
|
+
* `stripe_customer_id` column that module adds.
|
|
1076
|
+
*/
|
|
1077
|
+
readonly customer?: string;
|
|
1078
|
+
/** The tenant id column of that table. Defaults to `id`. */
|
|
1079
|
+
readonly key?: string;
|
|
1080
|
+
/**
|
|
1081
|
+
* Where `has_entitlement` and `feature_claims` read memberships from.
|
|
1082
|
+
* `"provider"` calls the authorization provider's `memberIds` and
|
|
1083
|
+
* `memberIdsFor` functions; `"tenant"` reads `better_supabase.memberships`.
|
|
1084
|
+
* Defaults to `"provider"` when `authorization` is set, else `"tenant"`.
|
|
1085
|
+
*/
|
|
1086
|
+
readonly memberships?: "tenant" | "provider";
|
|
1087
|
+
/**
|
|
1088
|
+
* Where each tenant's entitlements come from. `"stripe-sync"` (the
|
|
1089
|
+
* default) reads the Stripe Sync Engine's `stripe.active_entitlements`
|
|
1090
|
+
* through `customer`. `{ plans }` reads a plan catalog: the tenant's
|
|
1091
|
+
* active subscription and the features its plan includes. `"custom"`
|
|
1092
|
+
* leaves `better_supabase.tenant_entitlements(tenant)` to you; the module
|
|
1093
|
+
* writes the checks and the claim over it.
|
|
1094
|
+
*/
|
|
1095
|
+
readonly source?: "stripe-sync" | "custom" | EntitlementPlansSource;
|
|
1096
|
+
/**
|
|
1097
|
+
* The shape of the features claim `feature_claims` writes, which every
|
|
1098
|
+
* token carries. `false` writes `{}` (check entitlements in SQL with
|
|
1099
|
+
* `has_entitlement` only); `maxTenants` keeps at most that many tenants;
|
|
1100
|
+
* `keys` writes short codes instead of the feature keys. Pass the same
|
|
1101
|
+
* `keys` to `hasEntitlement`.
|
|
1102
|
+
*/
|
|
1103
|
+
readonly claim?: false | {
|
|
1104
|
+
readonly maxTenants?: number;
|
|
1105
|
+
readonly keys?: Readonly<Record<string, string>>;
|
|
1106
|
+
};
|
|
1107
|
+
}
|
|
1108
|
+
/** `entitlements.source.plans`: a plan catalog in your own tables. */
|
|
1109
|
+
interface EntitlementPlansSource {
|
|
1110
|
+
readonly plans: {
|
|
1111
|
+
readonly subscriptions: {
|
|
1112
|
+
/** `table` or `schema.table`. */
|
|
1113
|
+
readonly table: string;
|
|
1114
|
+
/** The tenant id column. */
|
|
1115
|
+
readonly tenant: string;
|
|
1116
|
+
/** The plan key column. */
|
|
1117
|
+
readonly plan: string;
|
|
1118
|
+
/** A status column; with it, only rows in `activeStatuses` count. */
|
|
1119
|
+
readonly status?: string;
|
|
1120
|
+
/** Defaults to `["active", "trialing"]`. */
|
|
1121
|
+
readonly activeStatuses?: readonly string[];
|
|
1122
|
+
};
|
|
1123
|
+
readonly features: {
|
|
1124
|
+
/** `table` or `schema.table`. */
|
|
1125
|
+
readonly table: string;
|
|
1126
|
+
/** The plan key column. */
|
|
1127
|
+
readonly plan: string;
|
|
1128
|
+
/** The feature key column: what `has_entitlement` and the claim name. */
|
|
1129
|
+
readonly feature: string;
|
|
1130
|
+
/** A boolean column; with it, only included features count. */
|
|
1131
|
+
readonly included?: string;
|
|
1132
|
+
/**
|
|
1133
|
+
* A column with the feature's value (a number, text or jsonb), such as
|
|
1134
|
+
* a limit, that `tenant_entitlement_value` returns.
|
|
1135
|
+
*/
|
|
1136
|
+
readonly value?: string;
|
|
1137
|
+
};
|
|
1138
|
+
};
|
|
1139
|
+
}
|
|
1140
|
+
//#endregion
|
|
1141
|
+
//#region src/config/types/config.d.ts
|
|
1142
|
+
interface BetterSupabaseConfig {
|
|
1143
|
+
readonly $schema?: string;
|
|
1144
|
+
readonly source?: SourceConfig;
|
|
1145
|
+
/** Postgres schemas to generate. Defaults to `['public']`. */
|
|
1146
|
+
readonly schemas?: readonly string[];
|
|
1147
|
+
/** Casing of generated models and returned rows. Defaults to `'snake'`. */
|
|
1148
|
+
readonly casing?: Casing;
|
|
1149
|
+
readonly tables?: Readonly<Record<string, TableConfig>>;
|
|
1150
|
+
/**
|
|
1151
|
+
* Main generated module. Defaults to `src/lib/supabase/generated.ts`;
|
|
1152
|
+
* `database.types.ts` is written next to it.
|
|
1153
|
+
*/
|
|
1154
|
+
readonly output?: string;
|
|
1155
|
+
/**
|
|
1156
|
+
* PostgREST major version, written to `__InternalSupabase` in
|
|
1157
|
+
* `database.types.ts` so `createClient` picks matching behavior.
|
|
1158
|
+
* Defaults to `'13'`.
|
|
1159
|
+
*/
|
|
1160
|
+
readonly postgrestVersion?: string;
|
|
1161
|
+
/** Types for jsonb columns, keyed by `table.column`. */
|
|
1162
|
+
readonly json?: Readonly<Record<string, JsonTypeConfig>>;
|
|
1163
|
+
readonly codecs?: CodecsConfig;
|
|
1164
|
+
readonly relations?: RelationsConfig;
|
|
1165
|
+
/**
|
|
1166
|
+
* Columns that must not be read by accident (`table.column` or
|
|
1167
|
+
* `schema.table.column`, database names), for the `noSensitiveSelect` rule.
|
|
1168
|
+
*/
|
|
1169
|
+
readonly sensitive?: readonly string[];
|
|
1170
|
+
/**
|
|
1171
|
+
* Text columns that hold an object path, keyed by `table.column` or
|
|
1172
|
+
* `schema.table.column` (database names), with the bucket as the value (a
|
|
1173
|
+
* `buckets` key or a bucket id). Generated rows type them as
|
|
1174
|
+
* `StoragePath<'bucket-id'>`.
|
|
1175
|
+
*/
|
|
1176
|
+
readonly storagePaths?: Readonly<Record<string, string>>;
|
|
1177
|
+
/**
|
|
1178
|
+
* Function results `gen` may type as not null, keyed by function name.
|
|
1179
|
+
* Results are `| null` by default, since Postgres can't promise a function
|
|
1180
|
+
* returns a value. `notNull: true` covers the whole result (each element
|
|
1181
|
+
* of a set, each column of `returns table`); a list names the
|
|
1182
|
+
* `returns table` columns that are never null.
|
|
1183
|
+
*/
|
|
1184
|
+
readonly functions?: Readonly<Record<string, FunctionConfig>>;
|
|
1185
|
+
/**
|
|
1186
|
+
* Data API grants, keyed by `table` or `schema.table`, and function
|
|
1187
|
+
* `execute` grants, keyed by `name(argument types)` or
|
|
1188
|
+
* `schema.name(argument types)`. A project with default privileges turned
|
|
1189
|
+
* off grants new tables to no Data API role; the `grants` SQL module writes
|
|
1190
|
+
* these as the complete privilege set (it revokes what is not listed), and
|
|
1191
|
+
* doctor (BS106) checks them. Tables not listed need `select, insert,
|
|
1192
|
+
* update, delete` for `authenticated` (`select` for views).
|
|
1193
|
+
*/
|
|
1194
|
+
readonly expose?: Readonly<Record<string, ExposeConfig>>;
|
|
1195
|
+
/**
|
|
1196
|
+
* Modules that export `defineReadSet` results. `gen` compiles each set to
|
|
1197
|
+
* a function in the `read-sets` SQL module. Node imports them, so
|
|
1198
|
+
* relative imports need their `.ts` extension.
|
|
1199
|
+
*/
|
|
1200
|
+
readonly readSets?: readonly string[];
|
|
1201
|
+
readonly generators?: readonly Generator[];
|
|
1202
|
+
/** Enables plugin flags in the generated metadata. */
|
|
1203
|
+
readonly plugins?: PluginFlagsConfig;
|
|
1204
|
+
readonly claims?: ClaimsConfig;
|
|
1205
|
+
readonly buckets?: Readonly<Record<string, BucketConfig>>;
|
|
1206
|
+
/** Realtime topic templates: `{ notifications: 'organization:{organizationId}:notifications' }`. */
|
|
1207
|
+
readonly topics?: Readonly<Record<string, string>>;
|
|
1208
|
+
readonly realtime?: RealtimeConfig;
|
|
1209
|
+
readonly entitlements?: EntitlementsConfig;
|
|
1210
|
+
/**
|
|
1211
|
+
* An authorization system the SQL modules, policies and doctor delegate
|
|
1212
|
+
* to: the `provider` access model, `entitlements.memberships` and the
|
|
1213
|
+
* hook and policy checks.
|
|
1214
|
+
*/
|
|
1215
|
+
readonly authorization?: AuthorizationProvider;
|
|
1216
|
+
/**
|
|
1217
|
+
* Embedding columns, keyed by `table` or `schema.table`. The
|
|
1218
|
+
* `vector-search` SQL module writes `search_<table>(query, k)` for each,
|
|
1219
|
+
* which `db.$search(table, { vector, k })` calls.
|
|
1220
|
+
*/
|
|
1221
|
+
readonly vectorSearch?: Readonly<Record<string, VectorSearchConfig>>;
|
|
1222
|
+
/**
|
|
1223
|
+
* The app's subject types: the entities blocks attach tags, comments,
|
|
1224
|
+
* fields and ranks to. Subject-bound SQL modules read this registry, the
|
|
1225
|
+
* `subjects` module writes `subject_title`, `subject_url` and
|
|
1226
|
+
* `can_subject` from it, and `gen` types `SubjectType` from its keys.
|
|
1227
|
+
*/
|
|
1228
|
+
readonly subjects?: SubjectsConfig;
|
|
1229
|
+
/**
|
|
1230
|
+
* A named preset (`saas`, `crm`, ...), a code from `/create`, or its URL.
|
|
1231
|
+
* `defineConfig` expands it into `blocks`, with the blocks they require,
|
|
1232
|
+
* and the conventions it sets (`casing`, `sql.api`, `integrations`); the
|
|
1233
|
+
* keys you set win.
|
|
1234
|
+
*/
|
|
1235
|
+
readonly preset?: PresetName | (string & {});
|
|
1236
|
+
/**
|
|
1237
|
+
* The blocks to install and keep in sync (`better-supabase add`): a
|
|
1238
|
+
* list of names, or an object keyed by block name whose values set each
|
|
1239
|
+
* block's mode, schema, table and column names, permission keys and
|
|
1240
|
+
* options. The foundation blocks (`tenant`, `access`, `updated-at`,
|
|
1241
|
+
* `ensure-rls`, ...) are configured here too.
|
|
1242
|
+
*/
|
|
1243
|
+
readonly blocks?: readonly string[] | BlocksConfig;
|
|
1244
|
+
/**
|
|
1245
|
+
* Tables the app owns, keyed by name, created in `public` by
|
|
1246
|
+
* `better-supabase sql sync` with an `id`, the scope column, timestamps,
|
|
1247
|
+
* row level security and policies for the scope. Columns reference each
|
|
1248
|
+
* other, `auth.users` or a block's logical table. ADR 0040.
|
|
1249
|
+
*/
|
|
1250
|
+
readonly appTables?: AppTablesConfig;
|
|
1251
|
+
/** SQL-wide settings: the workflow, paths, and the `schema` and `api` every block inherits. */
|
|
1252
|
+
readonly sql?: SqlConfig;
|
|
1253
|
+
readonly seed?: SeedConfig;
|
|
1254
|
+
/** @deprecated Use `specs`; `openapi.entry` and `openapi.output` map onto it. */
|
|
1255
|
+
readonly openapi?: OpenApiConfig;
|
|
1256
|
+
/** The documents `better-supabase spec emit` writes (OpenAPI, AsyncAPI, Arazzo). */
|
|
1257
|
+
readonly specs?: SpecsConfig;
|
|
1258
|
+
readonly doctor?: DoctorConfig;
|
|
1259
|
+
/** What `better-supabase gen` runs. */
|
|
1260
|
+
readonly gen?: GenConfig;
|
|
1261
|
+
readonly env?: EnvFileConfig;
|
|
1262
|
+
readonly scaffold?: ScaffoldConfig;
|
|
1263
|
+
/** The integrations `init` and `add` wrote; `add` without a name sets up the ones that have no files yet. */
|
|
1264
|
+
readonly integrations?: readonly IntegrationName[];
|
|
1265
|
+
readonly skills?: SkillsConfig;
|
|
1266
|
+
readonly keys?: KeysConfig;
|
|
1267
|
+
/**
|
|
1268
|
+
* Overrides per environment, keyed by name. The CLI applies the block
|
|
1269
|
+
* for `--env <name>`, else `$BETTER_SUPABASE_ENV`, else `ci` when `$CI`
|
|
1270
|
+
* is set. Objects merge into the config; arrays and other values replace.
|
|
1271
|
+
*/
|
|
1272
|
+
readonly $env?: Readonly<Record<string, EnvironmentConfig>>;
|
|
1273
|
+
/** Shorthand for `$env.development`. */
|
|
1274
|
+
readonly $development?: EnvironmentConfig;
|
|
1275
|
+
/** Shorthand for `$env.production`. */
|
|
1276
|
+
readonly $production?: EnvironmentConfig;
|
|
1277
|
+
/** Shorthand for `$env.test`. */
|
|
1278
|
+
readonly $test?: EnvironmentConfig;
|
|
1279
|
+
/** Shorthand for `$env.ci`, which the CLI picks when `$CI` is set. */
|
|
1280
|
+
readonly $ci?: EnvironmentConfig;
|
|
1281
|
+
}
|
|
1282
|
+
/** The keys an environment block may override. */
|
|
1283
|
+
type EnvironmentConfig = Omit<BetterSupabaseConfig, "$schema" | "$env" | "$development" | "$production" | "$test" | "$ci" | "preset">;
|
|
1284
|
+
/** The config with defaults applied. */
|
|
1285
|
+
interface ResolvedConfig {
|
|
1286
|
+
readonly root: string;
|
|
1287
|
+
readonly source: SourceConfig;
|
|
1288
|
+
readonly schemas: readonly string[];
|
|
1289
|
+
readonly casing: Casing;
|
|
1290
|
+
readonly tables: Readonly<Record<string, TableConfig>>;
|
|
1291
|
+
readonly output: string;
|
|
1292
|
+
/** `database.types.ts` next to `output`. */
|
|
1293
|
+
readonly databaseTypesOutput: string;
|
|
1294
|
+
readonly postgrestVersion: string;
|
|
1295
|
+
readonly json: Readonly<Record<string, JsonTypeConfig>>;
|
|
1296
|
+
readonly codecs: Required<CodecsConfig>;
|
|
1297
|
+
readonly relations: Required<RelationsConfig>;
|
|
1298
|
+
readonly sensitive: readonly string[];
|
|
1299
|
+
readonly storagePaths: Readonly<Record<string, string>>;
|
|
1300
|
+
readonly functions: Readonly<Record<string, FunctionConfig>>;
|
|
1301
|
+
/** The table entries of `expose`. */
|
|
1302
|
+
readonly expose: Readonly<Record<string, ResolvedExpose>>;
|
|
1303
|
+
/** The function entries of `expose`: the roles that may execute each one. */
|
|
1304
|
+
readonly exposeFunctions: Readonly<Record<string, readonly ExposeRole[]>>;
|
|
1305
|
+
readonly readSets: readonly string[];
|
|
1306
|
+
readonly generators: readonly Generator[];
|
|
1307
|
+
readonly plugins: {
|
|
1308
|
+
readonly timestamps: Required<TimestampsConfig> | undefined;
|
|
1309
|
+
readonly softDelete: Required<SoftDeleteConfig> | undefined;
|
|
1310
|
+
readonly tenant: Required<TenantConfig> | undefined;
|
|
1311
|
+
readonly actor: Required<ActorConfig> | undefined;
|
|
1312
|
+
};
|
|
1313
|
+
readonly claims: Required<ClaimsConfig>;
|
|
1314
|
+
readonly buckets: Readonly<Record<string, BucketConfig>>;
|
|
1315
|
+
readonly entitlements: {
|
|
1316
|
+
/** Unset without `entitlements.customer`. */
|
|
1317
|
+
readonly table?: string;
|
|
1318
|
+
readonly column?: string;
|
|
1319
|
+
readonly key: string;
|
|
1320
|
+
readonly memberships: "tenant" | "provider";
|
|
1321
|
+
readonly source: NonNullable<EntitlementsConfig["source"]>;
|
|
1322
|
+
readonly claim?: NonNullable<EntitlementsConfig["claim"]>;
|
|
1323
|
+
};
|
|
1324
|
+
readonly authorization?: AuthorizationProvider;
|
|
1325
|
+
readonly vectorSearch: readonly ({
|
|
1326
|
+
readonly table: string;
|
|
1327
|
+
readonly column: string;
|
|
1328
|
+
readonly distance: VectorDistance;
|
|
1329
|
+
} & Omit<Exclude<VectorSearchConfig, string>, "column" | "distance">)[];
|
|
1330
|
+
readonly subjects: SubjectsConfig;
|
|
1331
|
+
readonly topics: Readonly<Record<string, string>>;
|
|
1332
|
+
readonly realtime: Required<Omit<RealtimeConfig, "policies">> & {
|
|
1333
|
+
readonly policies?: TopicPoliciesConfig;
|
|
1334
|
+
};
|
|
1335
|
+
/** The `preset` the config started from, as written; `blocks` already holds it expanded. */
|
|
1336
|
+
readonly preset?: string;
|
|
1337
|
+
/** `blocks` with `sql.schema` and `sql.api` applied, keyed by block name. */
|
|
1338
|
+
readonly blocks: AnyBlocksConfig;
|
|
1339
|
+
/** The installed blocks, in config order. */
|
|
1340
|
+
readonly blockNames: readonly string[];
|
|
1341
|
+
/** `appTables`, checked; empty without any. */
|
|
1342
|
+
readonly appTables: AppTablesConfig;
|
|
1343
|
+
readonly sql: ResolvedSqlConfig;
|
|
1344
|
+
readonly seed: Required<SeedConfig>;
|
|
1345
|
+
readonly openapi: Required<OpenApiConfig>;
|
|
1346
|
+
readonly specs: {
|
|
1347
|
+
readonly entry: string;
|
|
1348
|
+
readonly outputs: readonly SpecOutputConfig[];
|
|
1349
|
+
readonly failOn: NonNullable<SpecsConfig["failOn"]>;
|
|
1350
|
+
readonly manifest?: string;
|
|
1351
|
+
};
|
|
1352
|
+
readonly doctor: Required<Omit<DoctorConfig, "claimsLimit" | "output">> & Pick<DoctorConfig, "claimsLimit" | "output">;
|
|
1353
|
+
/** `tasks` stays unset without a list, so `gen` picks the steps the project uses. */
|
|
1354
|
+
readonly gen: GenConfig;
|
|
1355
|
+
readonly env: {
|
|
1356
|
+
readonly output: string;
|
|
1357
|
+
readonly prefix?: string;
|
|
1358
|
+
};
|
|
1359
|
+
readonly scaffold: ScaffoldConfig;
|
|
1360
|
+
readonly integrations: readonly IntegrationName[];
|
|
1361
|
+
readonly skills: SkillsConfig;
|
|
1362
|
+
readonly keys: KeysConfig;
|
|
1363
|
+
/** The environment block the CLI applied, when one was active. */
|
|
1364
|
+
readonly environment?: string;
|
|
1365
|
+
}
|
|
1366
|
+
//#endregion
|
|
1367
|
+
//#region src/config/types/codegen.d.ts
|
|
1368
|
+
/**
|
|
1369
|
+
* Where codegen reads the database from. Without any of these, `$DATABASE_URL`,
|
|
1370
|
+
* `$SUPABASE_DB_URL` and then the local stack (`supabase start`) are used.
|
|
1371
|
+
*/
|
|
1372
|
+
interface SourceConfig {
|
|
1373
|
+
/** Postgres connection string. */
|
|
1374
|
+
readonly dbUrl?: string;
|
|
1375
|
+
/**
|
|
1376
|
+
* Hosted project ref. Read through the Management API's read-only SQL
|
|
1377
|
+
* endpoint, so no database password is needed.
|
|
1378
|
+
*/
|
|
1379
|
+
readonly projectRef?: string;
|
|
1380
|
+
/**
|
|
1381
|
+
* Management API token for `projectRef`. Defaults to
|
|
1382
|
+
* `$SUPABASE_ACCESS_TOKEN`; prefer the env var over committing a token.
|
|
1383
|
+
*/
|
|
1384
|
+
readonly accessToken?: string;
|
|
1385
|
+
/** Read a saved `better-supabase introspect` snapshot instead of connecting. */
|
|
1386
|
+
readonly snapshot?: string;
|
|
1387
|
+
/**
|
|
1388
|
+
* Read a Supabase Lite project's schema the way Lite runs it, from
|
|
1389
|
+
* `[db] driver` in `supabase/config.toml`. On by default when that key is
|
|
1390
|
+
* present; `false` reads the database like any other project.
|
|
1391
|
+
*/
|
|
1392
|
+
readonly lite?: boolean;
|
|
1393
|
+
}
|
|
1394
|
+
/**
|
|
1395
|
+
* A JSON Schema object, or a Standard JSON Schema value (zod 4, valibot,
|
|
1396
|
+
* arktype, ...) that can produce one.
|
|
1397
|
+
*/
|
|
1398
|
+
type JsonSchemaSource = Readonly<Record<string, unknown>> | {
|
|
1399
|
+
readonly "~standard": {
|
|
1400
|
+
readonly jsonSchema: {
|
|
1401
|
+
readonly input: (options: {
|
|
1402
|
+
readonly target: string;
|
|
1403
|
+
}) => Record<string, unknown>;
|
|
1404
|
+
};
|
|
1405
|
+
};
|
|
1406
|
+
};
|
|
1407
|
+
type JsonTypeConfig = ({
|
|
1408
|
+
readonly import: string;
|
|
1409
|
+
} | {
|
|
1410
|
+
readonly type: string;
|
|
1411
|
+
}) & {
|
|
1412
|
+
/** Enforced in the database by `better-supabase add jsonb-schemas` (pg_jsonschema). */
|
|
1413
|
+
readonly schema?: JsonSchemaSource;
|
|
1414
|
+
};
|
|
1415
|
+
interface TableConfig {
|
|
1416
|
+
readonly casing?: Casing;
|
|
1417
|
+
/** Leave the table out of the generated models. */
|
|
1418
|
+
readonly exclude?: boolean;
|
|
1419
|
+
/**
|
|
1420
|
+
* Keep the table off the Data API on purpose: only `service_role` reaches
|
|
1421
|
+
* it. The models are still generated for admin clients, and doctor (BS106)
|
|
1422
|
+
* checks that `anon` and `authenticated` have no grants instead of
|
|
1423
|
+
* requiring them.
|
|
1424
|
+
*/
|
|
1425
|
+
readonly serviceRole?: boolean;
|
|
1426
|
+
/** Rename generated relations: `{ primaryContact: 'contact' }`. */
|
|
1427
|
+
readonly relations?: Readonly<Record<string, string>>;
|
|
1428
|
+
/**
|
|
1429
|
+
* Database names of not-null columns an insert may leave out because the
|
|
1430
|
+
* database fills them, for example from a `before insert` trigger. `gen`
|
|
1431
|
+
* makes them optional in `InsertOf` and the insert validators.
|
|
1432
|
+
*/
|
|
1433
|
+
readonly insertOptional?: readonly string[];
|
|
1434
|
+
}
|
|
1435
|
+
interface FunctionConfig {
|
|
1436
|
+
/** `true`, or the `returns table` columns (database names) that are never null. */
|
|
1437
|
+
readonly notNull?: true | readonly string[];
|
|
1438
|
+
}
|
|
1439
|
+
interface TimestampsConfig {
|
|
1440
|
+
readonly createdAt?: string;
|
|
1441
|
+
readonly updatedAt?: string;
|
|
1442
|
+
}
|
|
1443
|
+
interface SoftDeleteConfig {
|
|
1444
|
+
readonly column?: string;
|
|
1445
|
+
}
|
|
1446
|
+
interface TenantConfig {
|
|
1447
|
+
/** Defaults to `organization_id`, or `<sql.naming.tenant>_id` when the tenant is renamed. */
|
|
1448
|
+
readonly column?: string;
|
|
1449
|
+
}
|
|
1450
|
+
/** Claim names shared by the SQL modules, codegen and the runtime defaults. */
|
|
1451
|
+
interface ClaimsConfig {
|
|
1452
|
+
/** Top-level claim holding the active tenant id. Defaults to `tenant_id`. */
|
|
1453
|
+
readonly tenant?: string;
|
|
1454
|
+
/** `scope` of the tenant entries `membership_claims()` writes. Defaults to `tenant`. */
|
|
1455
|
+
readonly scope?: string;
|
|
1456
|
+
/** Claim holding plan features per tenant (`{ [tenantId]: string[] }`). Defaults to `features`. */
|
|
1457
|
+
readonly features?: string;
|
|
1458
|
+
/** Claim the memberships hook (`membership_claims()` or the provider's) writes. Defaults to `memberships`. */
|
|
1459
|
+
readonly memberships?: string;
|
|
1460
|
+
}
|
|
1461
|
+
interface ActorConfig {
|
|
1462
|
+
readonly createdBy?: string;
|
|
1463
|
+
readonly updatedBy?: string;
|
|
1464
|
+
/** Defaults to `impersonated_by`, the column the SQL modules' `track_actor` fills. */
|
|
1465
|
+
readonly impersonatedBy?: string;
|
|
1466
|
+
}
|
|
1467
|
+
interface PluginFlagsConfig {
|
|
1468
|
+
readonly timestamps?: boolean | TimestampsConfig;
|
|
1469
|
+
readonly softDelete?: boolean | SoftDeleteConfig;
|
|
1470
|
+
readonly tenant?: boolean | TenantConfig;
|
|
1471
|
+
readonly actor?: boolean | ActorConfig;
|
|
1472
|
+
}
|
|
1473
|
+
/**
|
|
1474
|
+
* Runtime types for columns whose JSON form loses information. Defaults
|
|
1475
|
+
* match `supabase gen types`: timestamps as ISO strings, `int8` and
|
|
1476
|
+
* `numeric` as numbers.
|
|
1477
|
+
*/
|
|
1478
|
+
interface CodecsConfig {
|
|
1479
|
+
/**
|
|
1480
|
+
* `'instant'` decodes `timestamptz` columns to `Temporal.Instant` and
|
|
1481
|
+
* `timestamp` columns to `Temporal.PlainDateTime`.
|
|
1482
|
+
*/
|
|
1483
|
+
readonly timestamptz?: "string" | "instant";
|
|
1484
|
+
/** `'bigint'` or `'string'` read `int8` exactly (above 2^53). */
|
|
1485
|
+
readonly int8?: "number" | "string" | "bigint";
|
|
1486
|
+
/** `'string'` reads `numeric` exactly. */
|
|
1487
|
+
readonly numeric?: "number" | "string";
|
|
1488
|
+
}
|
|
1489
|
+
interface GeneratedFile {
|
|
1490
|
+
/** Path relative to the project root. */
|
|
1491
|
+
readonly path: string;
|
|
1492
|
+
readonly contents: string;
|
|
1493
|
+
}
|
|
1494
|
+
interface GeneratorInput {
|
|
1495
|
+
readonly meta: SchemaMeta;
|
|
1496
|
+
/**
|
|
1497
|
+
* The `@supabase/postgrest-typegen` metadata for the configured schemas,
|
|
1498
|
+
* the same contract `supabase gen types` is built on.
|
|
1499
|
+
*/
|
|
1500
|
+
readonly introspection: GeneratorMetadata;
|
|
1501
|
+
/** Constraints, indexes, policies, triggers and grants typegen leaves out. */
|
|
1502
|
+
readonly extras: SnapshotExtras;
|
|
1503
|
+
readonly config: ResolvedConfig;
|
|
1504
|
+
/** Absolute path of the main generated module. */
|
|
1505
|
+
readonly output: string;
|
|
1506
|
+
/** Import path from `from` (a generated file) to `to`, with extension. */
|
|
1507
|
+
readonly importPath: (from: string, to: string) => string;
|
|
1508
|
+
/**
|
|
1509
|
+
* Where generated files import `better-supabase` runtime helpers from.
|
|
1510
|
+
* Defaults to `better-supabase`.
|
|
1511
|
+
*/
|
|
1512
|
+
readonly runtimeImport?: string;
|
|
1513
|
+
/**
|
|
1514
|
+
* The tables and enums `gen` emits, with the TypeScript type it wrote for
|
|
1515
|
+
* each column (after `json` overrides, codecs and enum unions). Frozen.
|
|
1516
|
+
*/
|
|
1517
|
+
readonly model: GeneratorModel;
|
|
1518
|
+
}
|
|
1519
|
+
interface GeneratorColumn {
|
|
1520
|
+
/** Name in rows, after casing. */
|
|
1521
|
+
readonly app: string;
|
|
1522
|
+
/** Database name. */
|
|
1523
|
+
readonly db: string;
|
|
1524
|
+
/** TypeScript type without `| null`. */
|
|
1525
|
+
readonly tsType: string;
|
|
1526
|
+
readonly nullable: boolean;
|
|
1527
|
+
/** Optional on insert. */
|
|
1528
|
+
readonly optional: boolean;
|
|
1529
|
+
/** Generated or identity always: never written. */
|
|
1530
|
+
readonly readonly: boolean;
|
|
1531
|
+
/** Enum or check-constraint values, when the column has a closed set. */
|
|
1532
|
+
readonly values: readonly string[] | undefined;
|
|
1533
|
+
readonly json: boolean;
|
|
1534
|
+
}
|
|
1535
|
+
interface GeneratorTable {
|
|
1536
|
+
/** Key in `schema.tables` and on the client. */
|
|
1537
|
+
readonly key: string;
|
|
1538
|
+
readonly schema: string;
|
|
1539
|
+
readonly name: string;
|
|
1540
|
+
readonly casing: Casing;
|
|
1541
|
+
readonly columns: readonly GeneratorColumn[];
|
|
1542
|
+
}
|
|
1543
|
+
interface GeneratorModel {
|
|
1544
|
+
readonly tables: readonly GeneratorTable[];
|
|
1545
|
+
readonly enums: readonly {
|
|
1546
|
+
readonly schema: string;
|
|
1547
|
+
readonly name: string;
|
|
1548
|
+
readonly values: readonly string[];
|
|
1549
|
+
}[];
|
|
1550
|
+
}
|
|
1551
|
+
/**
|
|
1552
|
+
* Codegen extension point. First-party generators: `zod()`, `valibot()`,
|
|
1553
|
+
* `jsonSchema()`, `standardSchema()`. Prove custom ones with `testGenerator`.
|
|
1554
|
+
*/
|
|
1555
|
+
interface Generator {
|
|
1556
|
+
/** The generator contract it targets. `gen` refuses versions it doesn't know. */
|
|
1557
|
+
readonly apiVersion?: 1;
|
|
1558
|
+
readonly name: string;
|
|
1559
|
+
generate(input: GeneratorInput): readonly GeneratedFile[] | Promise<readonly GeneratedFile[]>;
|
|
1560
|
+
}
|
|
1561
|
+
interface RelationsConfig {
|
|
1562
|
+
/**
|
|
1563
|
+
* Type a to-one include as `| null` when the related table has row level
|
|
1564
|
+
* security, even over a `not null` foreign key, since a policy can hide
|
|
1565
|
+
* the related row. `required: true` on the include keeps it non-null.
|
|
1566
|
+
* Defaults to `false`.
|
|
1567
|
+
*/
|
|
1568
|
+
readonly nullableUnderRls?: boolean;
|
|
1569
|
+
}
|
|
1570
|
+
//#endregion
|
|
1571
|
+
export { PresetAccess as $, RpcFunctionReturns as $t, TopicTriggerConfig as A, CatalogFunction as At, PRESETS as B, ExtrasHookFunction as Bt, EntitlementsConfig as C, SkillsConfig as Ct, SeedConfig as D, CatalogColumnGrant as Dt, ResolvedSqlConfig as E, CatalogColumn as Et, ExposePrivilege as F, CatalogTable as Ft, isPresetName as G, SnapshotExtras as Gt, PRESET_NAMES as H, ForeignKeyAction as Ht, ExposeRole as I, CatalogTrigger as It, PRESET_FIELDS as J, PostgresFunction as Jt, namedPreset as K, GeneratorMetadata as Kt, Privilege as L, CatalogUnique as Lt, VectorSearchConfig as M, CatalogGrant as Mt, ColumnPrivilege as N, CatalogIndex as Nt, SqlConfig as O, CatalogEnum as Ot, ExposeConfig as P, CatalogPolicy as Pt, Preset as Q, RpcFunctionOverload as Qt, ResolvedExpose as R, ExtrasFunction as Rt, EntitlementPlansSource as S, AppTablesConfig as Sn, SkillsAgent as St, RealtimeConfig as T, CatalogCheck as Tt, PresetGroup as U, Snapshot as Ut, PRESET_GROUPS as V, ExtrasTable as Vt, PresetName as W, SnapshotBucket as Wt, PRESET_TENANT_NAMES as X, RpcFunction as Xt, PRESET_FRAMEWORKS as Y, PostgresFunctionArg as Yt, PRESET_VERSION as Z, RpcFunctionArg as Zt, TenantConfig as _, AppReferenceTarget as _n, IntegrationName as _t, Generator as a, IntegrationInfo as an, PresetFramework as at, EnvironmentConfig as b, AppTableConfig as bn, ScaffoldApiConfig as bt, GeneratorModel as c, APP_COLUMN_TYPES as cn, PresetTenantName as ct, JsonTypeConfig as d, AppColumnConfig as dn, presetField as dt, RpcReturnColumn as en, PresetCodeField as et, PluginFlagsConfig as f, AppColumnFormat as fn, presetValueLabel as ft, TableConfig as g, AppReference as gn, GenTask as gt, SourceConfig as h, AppOnDeleteAction as hn, GenConfig as ht, GeneratedFile as i, INTEGRATION_NAMES as in, PresetFieldValue as it, VectorDistance as j, CatalogFunctionArg as jt, SqlWorkflow as k, CatalogForeignKey as kt, GeneratorTable as l, APP_ON_DELETE_ACTIONS as ln, PresetValueInfo as lt, SoftDeleteConfig as m, AppLookupConfig as mn, EnvFileConfig as mt, ClaimsConfig as n, GEN_TASKS as nn, PresetField as nt, GeneratorColumn as o, SKILLS_AGENTS as on, PresetPlatforms as ot, RelationsConfig as p, AppColumnType as pn, DoctorConfig as pt, DEFAULT_CONVENTIONS as q, PostgresColumn as qt, CodecsConfig as r, INTEGRATION_INFO as rn, PresetFieldKey as rt, GeneratorInput as s, APP_COLUMN_FORMATS as sn, PresetScope as st, ActorConfig as t, RpcTypeReference as tn, PresetConventions as tt, JsonSchemaSource as u, APP_ROLLUP_AGGREGATES as un, integrationsForFramework as ut, TimestampsConfig as v, AppRollupAggregate as vn, KeysConfig as vt, BucketConfig as w, Catalog as wt, ResolvedConfig as x, AppTableSubject as xn, ScaffoldConfig as xt, BetterSupabaseConfig as y, AppRollupConfig as yn, OpenApiConfig as yt, NamedPreset as z, ExtrasHook as zt };
|