better-supabase 0.8.0 → 0.10.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 +147 -83
- 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-rmWaLNe3.js +1984 -0
- package/dist/agents-ByYUSZxT.d.ts +111 -0
- package/dist/ai-cache-CkxtAt4P.d.ts +70 -0
- package/dist/ai-cache-DPiuJ-zJ.js +84 -0
- package/dist/ai-chat-al8b3spK.d.ts +608 -0
- package/dist/ai-files-BXtV3ygd.js +331 -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 +1 -1
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +7 -6
- 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 +2 -2
- package/dist/ai-sdk/files/index.js +4 -4
- package/dist/ai-sdk/index.d.ts +7 -6
- package/dist/ai-sdk/index.js +4 -3
- package/dist/ai-sdk/mcp/index.d.ts +4 -4
- package/dist/ai-sdk/mcp/index.js +6 -6
- 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 +5 -4
- package/dist/ai-sdk/workflow/index.js +8 -8
- package/dist/ai-tasks-Di0gmJOX.d.ts +157 -0
- package/dist/announcements-HF7LuFw5.js +128 -0
- package/dist/api-CFjuYKFY.js +680 -0
- package/dist/api-XJcQON_7.d.ts +411 -0
- package/dist/api-keys-C1IZF7p8.js +318 -0
- package/dist/api-keys-EdSNjGIZ.d.ts +205 -0
- package/dist/app-tables-BRjMcWhW.js +819 -0
- package/dist/app-tables-DVidEHOI.d.ts +35 -0
- package/dist/approvals-DqlPHBHI.d.ts +124 -0
- package/dist/arazzo/index.d.ts +5 -5
- package/dist/arazzo/index.js +6 -6
- package/dist/assistant-BZyhQ8bd.d.ts +148 -0
- package/dist/astro/index.d.ts +9 -8
- package/dist/astro/index.js +10 -7
- package/dist/asyncapi/index.d.ts +4 -4
- package/dist/asyncapi/index.js +6 -6
- package/dist/attachments-C8FEBBKE.js +264 -0
- package/dist/attributes-D4mA7WhI.js +38 -0
- package/dist/audit-log-CRgiHlRh.js +786 -0
- package/dist/auth-CdBKt0CS.js +20 -0
- package/dist/auth-reply-B_dW4jHJ.js +31 -0
- package/dist/auth-reply-Dj124sbX.d.ts +11 -0
- package/dist/authorization-CdJRoZgV.d.ts +1435 -0
- package/dist/authorization-hooks-Do5djkpz.d.ts +214 -0
- package/dist/authorizer-dVVN05Un.js +126 -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 +5 -5
- package/dist/better-result/index.js +1 -1
- package/dist/bind-DkaP_0iS.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-BANwJ9Y_.js +139 -0
- package/dist/block-helpers-7pMBVsE6.d.ts +37 -0
- package/dist/block-helpers-BfVCR5Fc.js +264 -0
- package/dist/block-hooks-ByKlh8Qy.js +114 -0
- package/dist/block-hooks-C_WaodoA.d.ts +107 -0
- package/dist/block-transport-G4t1umrR.js +85 -0
- package/dist/block-transport-NbUJygA7.d.ts +70 -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 +64 -18
- package/dist/blocks/ai-cache/index.d.ts +7 -2
- package/dist/blocks/ai-cache/index.js +15 -3
- package/dist/blocks/ai-chat/index.d.ts +22 -3
- package/dist/blocks/ai-chat/index.js +29 -3
- 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 +10 -3
- 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 +40 -15
- package/dist/blocks/ai-tasks/index.d.ts +9 -2
- package/dist/blocks/ai-tasks/index.js +70 -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 +29 -294
- 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 -227
- package/dist/blocks/attachments/index.js +26 -242
- package/dist/blocks/audit/index.d.ts +72 -365
- package/dist/blocks/audit/index.js +91 -714
- 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 +37 -12
- package/dist/blocks/billing/index.js +43 -12
- 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 +146 -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 -207
- 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 +53 -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 +114 -9
- package/dist/blocks/data-lifecycle/index.js +98 -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 -253
- 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 +159 -0
- package/dist/blocks/imports/index.js +227 -0
- package/dist/blocks/inbox/index.d.ts +22 -3
- package/dist/blocks/inbox/index.js +77 -4
- 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 +25 -61
- package/dist/blocks/index.js +192 -56
- 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 +156 -33
- package/dist/blocks/jobs/index.js +675 -261
- 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 +48 -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 +342 -25
- package/dist/blocks/notifications/index.js +733 -104
- 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 +45 -0
- package/dist/blocks/number-sequences/index.js +49 -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 -392
- 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 +85 -46
- 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 +13 -8
- package/dist/blocks/profiles/index.js +19 -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 +169 -0
- package/dist/blocks/rules/index.js +163 -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 -102
- 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 +106 -0
- package/dist/blocks/share-links/index.js +102 -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 +258 -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 -233
- 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 +169 -0
- package/dist/blocks/versions/index.js +288 -0
- package/dist/blocks/waitlist/index.d.ts +57 -19
- package/dist/blocks/waitlist/index.js +46 -12
- package/dist/blocks/webhooks/index.d.ts +269 -137
- package/dist/blocks/webhooks/index.js +752 -179
- 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-EJAVAuVz.js +181 -0
- package/dist/build-6jmaPAgx.js +689 -0
- package/dist/build-Cm0T5MVG.js +1815 -0
- package/dist/calendar-1J1E5dLq.js +801 -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 +154 -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/cli/add-BhI_nXAo.js +75 -0
- package/dist/cli/add-CUS0AiBh.js +651 -0
- package/dist/cli/add-ojbcMxyp.js +1 -0
- package/dist/cli/adopt-D0ASVx2G.js +1 -0
- package/dist/cli/adopt-DwcU6CJd.js +412 -0
- package/dist/cli/agent-CCrTYK3W.js +176 -0
- package/dist/cli/apply-DBXC0Z5I.js +332 -0
- package/dist/cli/bin.js +40 -20
- package/dist/cli/blocks-B15ltTFn.js +124 -0
- package/dist/cli/blocks-BXeqIzWN.js +1 -0
- package/dist/cli/cache-CPBYJAkb.js +502 -0
- package/dist/cli/catalog-Di15TkM2.js +187 -0
- package/dist/cli/codemod-CrI33UR2.js +985 -0
- package/dist/cli/command-D_HI1mp1.js +853 -0
- package/dist/cli/completion-DzYo025z.js +205 -0
- package/dist/cli/completion-En43UcyJ.js +30 -0
- package/dist/cli/completion-Vry-Wjw8.js +1 -0
- package/dist/cli/config-Bi_UBxXl.js +1451 -0
- package/dist/cli/config-DsqQr5z3.js +1 -0
- package/dist/cli/config-DyJgo2d9.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-BeLVeNpA.js +84 -0
- package/dist/cli/dist-D_VbPAMR.js +129 -0
- package/dist/cli/dist-DuiMMRbJ.js +1112 -0
- package/dist/cli/doctor-wACp5w6N.js +3508 -0
- package/dist/cli/emit-j0zZ6NE_.js +1061 -0
- package/dist/cli/env-2v9JrxSr.js +142 -0
- package/dist/cli/env-Cf5OTqbK.js +1087 -0
- package/dist/cli/env-Ch99nTQw.js +1 -0
- package/dist/cli/env-DkBe35Rv.js +1 -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-BhquLu7l.js +304 -0
- package/dist/cli/guards-CUlDNYZs.js +8 -0
- package/dist/cli/index.d.ts +260 -129
- package/dist/cli/index.js +13 -10
- package/dist/cli/init-BwLTO6XG.js +400 -0
- package/dist/cli/introspect-B-gXAIqs.js +51 -0
- package/dist/cli/io-BiPX-_J1.js +37 -0
- package/dist/cli/jsonc-C8M0EhHB.js +1 -0
- package/dist/cli/keys-hwtdwdkT.js +106 -0
- package/dist/cli/live-BFfYoE0_.js +329 -0
- package/dist/cli/mcp-Bdm2oGmL.js +237 -0
- package/dist/cli/metadata-DikbSOE0.js +138 -0
- package/dist/cli/migration-safety-LaGVPPuD.js +206 -0
- package/dist/cli/module-migration-CLkZ8jpw.js +592 -0
- package/dist/cli/moved-B7UFO_OM.js +152 -0
- package/dist/cli/parse-CwV5a6dA.js +170 -0
- package/dist/cli/preset-DQ1DxMtI.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-BLJj7SuM.js +685 -0
- package/dist/cli/run-DliGNdjI.js +1507 -0
- package/dist/cli/scaffold-6bv24GSP.js +898 -0
- package/dist/cli/scaffold-DUz5fa-k.js +1 -0
- package/dist/cli/seed-CIJaL1Ao.js +113 -0
- package/dist/cli/seed-ClGWseBT.js +1 -0
- package/dist/cli/shared-CNcvDOLt.js +145 -0
- package/dist/cli/shell-Btv_4Yhe.js +10 -0
- package/dist/cli/skills-CaxIQhzW.js +121 -0
- package/dist/cli/snapshot-Dvcx0BSl.js +347 -0
- package/dist/cli/source-args-BNhagtpw.js +47 -0
- package/dist/cli/spec-BewE6r6J.js +7501 -0
- package/dist/cli/spec-DRDaIq8f.js +1 -0
- package/dist/cli/sql-BBkchli4.js +326 -0
- package/dist/cli/sql-BCQt5TDs.js +2 -0
- package/dist/cli/stack-status-LeEoCtV1.js +456 -0
- package/dist/cli/style-2JfIPVMQ.js +29 -0
- package/dist/cli/supabase-toml-DjLgBYEo.js +1153 -0
- package/dist/cli/sync-CJ-ft-tl.js +88 -0
- package/dist/cli/topics-BBE1-Vrg.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-D1wM9DNb.js +4 -0
- package/dist/cli/write-Dp1XlAVM.js +198 -0
- package/dist/client/index.d.ts +7 -4
- package/dist/client/index.js +152 -6
- package/dist/client/native/index.d.ts +71 -4
- package/dist/client/native/index.js +65 -6
- package/dist/client-13Ii0c0P.js +84 -0
- package/dist/client-9zIKhf5D.d.ts +58 -0
- package/dist/client-AxwF58Eo.js +98 -0
- package/dist/client-B0rvMvA8.d.ts +52 -0
- package/dist/client-B5nnqDmz.d.ts +39 -0
- package/dist/client-B7LCXnnY.d.ts +59 -0
- package/dist/client-B9CqzgPO.js +75 -0
- package/dist/client-B9H4BZJh.d.ts +455 -0
- package/dist/client-BGnJ5WJi.js +438 -0
- package/dist/client-BLKpcAs0.d.ts +34 -0
- package/dist/client-BO9fQgBB.d.ts +155 -0
- package/dist/client-B_r4denm.d.ts +135 -0
- package/dist/client-BaynD5V-.d.ts +388 -0
- package/dist/client-BfgwocyT.js +155 -0
- package/dist/client-BpS8a6Fm.js +51 -0
- package/dist/client-BtBkVSk2.d.ts +108 -0
- package/dist/client-ByGlM0YF.d.ts +101 -0
- package/dist/client-BzCv4kKE.js +65 -0
- package/dist/client-C-2ajnhM.js +89 -0
- package/dist/client-C3dLIsJv.d.ts +122 -0
- package/dist/client-C597NIlL.d.ts +277 -0
- package/dist/client-C5mUEb2n.js +55 -0
- package/dist/client-CFeWXNXy.js +133 -0
- package/dist/client-CWs3X4g1.js +120 -0
- package/dist/client-Cgxj38RS.d.ts +419 -0
- package/dist/client-CjyTNdt1.d.ts +65 -0
- package/dist/client-CmHsfDHU.js +438 -0
- package/dist/client-CpMv4-v5.d.ts +100 -0
- package/dist/client-CsRpAyIv.d.ts +68 -0
- package/dist/client-CvITjt-9.js +310 -0
- package/dist/client-D0502FgY.js +1051 -0
- package/dist/client-D727oIVC.js +169 -0
- package/dist/client-D9zBl9PT.d.ts +103 -0
- package/dist/client-DG7FwgZD.js +104 -0
- package/dist/client-DNq8xYb-.js +52 -0
- package/dist/client-DR_YEGnc.d.ts +130 -0
- package/dist/client-DZXFDaQE.d.ts +157 -0
- package/dist/client-Diu2lPbg.d.ts +218 -0
- package/dist/client-Dk8gY9hi.d.ts +34 -0
- package/dist/client-Ezlbskjq.js +60 -0
- package/dist/client-Fi8CoJcs.d.ts +263 -0
- package/dist/client-LVa6yC9u.d.ts +107 -0
- package/dist/client-WXJwUhr1.d.ts +162 -0
- package/dist/client-WgrPIHH-.js +213 -0
- package/dist/client-ZTtSV3l8.js +40 -0
- package/dist/client-ckXfdy1k.js +38 -0
- package/dist/client-fpvgtQKE.js +128 -0
- package/dist/client-iB5axfa0.js +209 -0
- package/dist/client-jvtwGFy4.js +137 -0
- package/dist/client-kI6vCKVI.js +288 -0
- package/dist/client-kKdkLGPB.d.ts +131 -0
- package/dist/client-pxjbgOz6.js +376 -0
- package/dist/client-rp7YfOg1.js +67 -0
- package/dist/cloud-event-bwsBwVNG.d.ts +64 -0
- package/dist/codecs-Bm46sVxr.d.ts +215 -0
- package/dist/codecs-C7E_OoiC.js +358 -0
- package/dist/codegen-2m4SKVdi.d.ts +1654 -0
- package/dist/comments-N7Bi-oTW.js +230 -0
- package/dist/commerce/index.d.ts +211 -0
- package/dist/commerce/index.js +517 -0
- package/dist/compiler-C6E3WwIi.d.ts +14 -0
- package/dist/compose-CO_cljl3.js +53 -0
- package/dist/composite-CPV0thLs.js +130 -0
- package/dist/composite-DMMA_Whg.d.ts +67 -0
- package/dist/config/index.d.ts +7 -5
- package/dist/config/index.js +7 -4
- package/dist/config-C4RQDF6t.js +3896 -0
- package/dist/config-CkyahUjo.js +558 -0
- package/dist/connector-Cp8CqssJ.d.ts +107 -0
- package/dist/connectors-CZdfZcIg.d.ts +141 -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-CCfX2szU.d.ts +377 -0
- package/dist/context-D6ZMKc2L.js +19 -0
- package/dist/context-wDKxSl9x.js +9 -0
- package/dist/controller-CCb9tHw_.d.ts +46 -0
- package/dist/controller-D6NyNrlZ.js +79 -0
- package/dist/create/index.d.ts +597 -0
- package/dist/create/index.js +2049 -0
- package/dist/create/lite/index.d.ts +85 -0
- package/dist/create/lite/index.js +126 -0
- package/dist/create/supabase/index.d.ts +68 -0
- package/dist/create/supabase/index.js +312 -0
- package/dist/credentials/index.d.ts +15 -5
- package/dist/credentials/index.js +16 -8
- package/dist/cron-CUaKTjWC.js +145 -0
- package/dist/cron-route-BsgbJ-g4.js +24 -0
- package/dist/csv-CVfXqaAu.js +89 -0
- package/dist/csv-D3eKxV1T.d.ts +28 -0
- package/dist/define-CMcokcZz.js +1896 -0
- package/dist/define-DXTC706J.d.ts +1005 -0
- package/dist/define-block-B6Gjs57G.js +52 -0
- package/dist/define-block-BlHQxDIQ.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-BYM2viS0.d.ts +96 -0
- package/dist/edge/index.d.ts +16 -14
- package/dist/edge/index.js +24 -18
- 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-CVeOoufZ.js +128 -0
- package/dist/embeddings-Da0w4A_0.d.ts +78 -0
- package/dist/ended-EcTtzzQJ.d.ts +70 -0
- package/dist/entitlements-AmYp2KHX.js +45 -0
- package/dist/entitlements-Bn7BTnbg.d.ts +53 -0
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.js +9 -4
- package/dist/envelope--7d0Q3Se.js +90 -0
- package/dist/errors-7MqM7bbV.js +44 -0
- package/dist/errors-8i6tSICm.js +301 -0
- package/dist/escape-like-AUEPn-C5.d.ts +15 -0
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +9 -9
- package/dist/eve-BcEr_hPo.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 +10 -7
- package/dist/events-CtAHxPal.d.ts +800 -0
- package/dist/events-xbpHkcK9.js +82 -0
- package/dist/executor-BicyP8Nl.d.ts +272 -0
- package/dist/executor-CHRwEYqt.d.ts +95 -0
- package/dist/executor-CIxyatuB.d.ts +174 -0
- package/dist/executor-Cex-1PFp.js +735 -0
- package/dist/executor-D3K3tycZ.js +147 -0
- package/dist/executor-DzJQVTE2.d.ts +39 -0
- package/dist/executor-aKUo_Xyb.js +206 -0
- package/dist/expo/index.d.ts +4 -4
- package/dist/expo/index.js +6 -6
- package/dist/expo-sqlite/index.d.ts +3 -3
- package/dist/expo-sqlite/index.js +2 -2
- package/dist/field-errors-nFnYWvB0.d.ts +113 -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-CEm52E5s.d.ts +34 -0
- package/dist/filter-query-B3lhckKX.js +518 -0
- package/dist/filter-query-D3wOD1P_.d.ts +121 -0
- package/dist/flags-CtSrkVuW.js +279 -0
- package/dist/flags-Dz5PIzFU.d.ts +230 -0
- package/dist/flags-sdk/index.d.ts +143 -0
- package/dist/flags-sdk/index.js +175 -0
- package/dist/form-definition-GVZTILhS.js +311 -0
- package/dist/form-definition-sagoefQr.d.ts +95 -0
- package/dist/format-CNwSjXUU.d.ts +70 -0
- package/dist/framework-C2oL4OaO.d.ts +26 -0
- package/dist/framework-Cfm0IspZ.js +51 -0
- package/dist/function-contract-B4c0XuTU.d.ts +21 -0
- package/dist/function-contract-DmkBg19r.js +5 -0
- package/dist/gateway-CJL6ZG17.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/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/hono/index.d.ts +24 -10
- package/dist/hono/index.js +50 -22
- 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-BaUJgHOF.d.ts +400 -0
- package/dist/index-8xwnaWHY.d.ts +344 -0
- package/dist/index-BurdFUXr.d.ts +131 -0
- package/dist/index-Cckxs8IE.d.ts +206 -0
- package/dist/index-Ck4oK5vV.d.ts +258 -0
- package/dist/index-Co0YsJTk.d.ts +58 -0
- package/dist/index-CxmVzT-3.d.ts +86 -0
- package/dist/index-D1kMyNc7.d.ts +245 -0
- package/dist/index-DL8z_oDo.d.ts +227 -0
- package/dist/index-DMONTkSf.d.ts +202 -0
- package/dist/index-DTQbC3CW.d.ts +58 -0
- package/dist/index-DcijDfh1.d.ts +97 -0
- package/dist/index-MCXVzkXs.d.ts +722 -0
- package/dist/index-gXy3R1Uq.d.ts +138 -0
- package/dist/index.d.ts +15 -15
- package/dist/index.js +15 -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-BlcEFQql.d.ts +66 -0
- package/dist/kit-gqwkVhGU.js +104 -0
- package/dist/knowledge-BYtgA52P.d.ts +187 -0
- package/dist/knowledge-CSNKLX-s.js +272 -0
- package/dist/lint/index.js +9 -9
- package/dist/list/index.d.ts +4 -2
- package/dist/list/index.js +4 -2
- package/dist/list-query-CBXNfJt4.js +549 -0
- package/dist/list-query-DWJIiVz_.d.ts +194 -0
- package/dist/live-DwDreq1n.js +239 -0
- package/dist/management-D1gG89z2.d.ts +53 -0
- package/dist/mcp/index.d.ts +59 -17
- package/dist/mcp/index.js +202 -98
- package/dist/mcp/sdk/index.d.ts +6 -6
- package/dist/mcp/sdk/index.js +7 -7
- package/dist/messages-Cx4ttLJJ.js +493 -0
- package/dist/methods-7u6vSgz_.js +11 -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/money-95Rff2vT.js +185 -0
- package/dist/money-DFpWzQvk.d.ts +76 -0
- package/dist/money-codec-DCGgzO26.js +41 -0
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +2 -2
- package/dist/next/index.d.ts +26 -16
- package/dist/next/index.js +17 -16
- 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-viTTNWUp.js +68 -0
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +2 -2
- package/dist/operations-BtuQRwTJ.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-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-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-Bxrm32IG.js +398 -0
- package/dist/orpc/index.d.ts +26 -10
- package/dist/orpc/index.js +54 -33
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +42 -7
- package/dist/outbox-BCGHl9X6.d.ts +181 -0
- package/dist/overlay/index.d.ts +1 -1
- package/dist/overlay/index.js +3 -3
- package/dist/payments-h45bswA-.js +16 -0
- package/dist/pg-error-BV_X8Isq.js +26 -0
- package/dist/plugin-D5OIaP93.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 +4 -4
- package/dist/plugins/tenant/index.d.ts +4 -3
- package/dist/plugins/tenant/index.js +3 -3
- package/dist/plugins/timestamps/index.d.ts +1 -1
- package/dist/plugins/timestamps/index.js +1 -1
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +3 -3
- package/dist/pool-BBi4mot3.d.ts +117 -0
- package/dist/pool-errors-C94tPR_G.js +27 -0
- package/dist/ports-B53rB7zg.d.ts +285 -0
- package/dist/ports-Bcdppx0G.js +133 -0
- package/dist/ports-Dcnuo3HT.d.ts +86 -0
- package/dist/postgres/index.d.ts +28 -6
- package/dist/postgres/index.js +62 -25
- package/dist/postgrest-D6fEMsp4.d.ts +53 -0
- package/dist/powersync/index.d.ts +4 -4
- 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 +4 -0
- package/dist/preset/index.js +4 -0
- package/dist/preset-BBrL6_Ln.js +648 -0
- package/dist/problem-CEjyhV5T.d.ts +76 -0
- package/dist/problem-pIiL3WbE.js +159 -0
- package/dist/provider-CQ1SrhLa.d.ts +113 -0
- package/dist/provider-DKh2xFZb.js +57 -0
- package/dist/push-token-CDMgWT13.d.ts +24 -0
- package/dist/push-token-D6REHMMw.js +16 -0
- package/dist/query/index.d.ts +2 -2
- 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-Dngpt2n5.d.ts +14 -0
- package/dist/rank-result-oUF1DYBm.js +18 -0
- package/dist/rate-limit-BtbddDnE.js +49 -0
- package/dist/rate-limit-ByfWNX9N.js +325 -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 +3 -4
- 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 +3 -3
- package/dist/react/session.d.ts +2 -2
- package/dist/react-BcKACxsj.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 +7 -7
- package/dist/read-set-PWiJfv6S.js +314 -0
- package/dist/realtime/index.d.ts +8 -4
- package/dist/realtime/index.js +5 -327
- package/dist/realtime-status-D2dw1hOE.js +12 -0
- package/dist/realtime-status-DcsO00Gw.d.ts +8 -0
- package/dist/refusal-Bdr1k47u.d.ts +18 -0
- package/dist/refusal-Ch-u9dVd.js +61 -0
- package/dist/replicas-BvIL4_jL.js +94 -0
- package/dist/resolve-7atr-wWr.d.ts +266 -0
- package/dist/resolve-CAR9oaKW.js +869 -0
- package/dist/resource-CHGOmg1O.js +463 -0
- package/dist/resource-DO4gbVi5.js +91 -0
- package/dist/resource-DxcgtHq6.d.ts +106 -0
- package/dist/resource-execute-C45ICrN9.d.ts +12 -0
- package/dist/resource-types-CC59gMHE.d.ts +141 -0
- package/dist/resources-B71O7EVQ.d.ts +7 -0
- package/dist/resources-B7htXQeg.js +64 -0
- package/dist/respond-Cdg5ibH5.d.ts +93 -0
- package/dist/respond-Dpx48ATq.js +95 -0
- package/dist/result-COkvI9t5.js +134 -0
- package/dist/result-Cj3yWhjH.d.ts +298 -0
- package/dist/rrule-zBh3CA1r.js +290 -0
- package/dist/rules-4of_Fq-6.js +287 -0
- package/dist/run-watch-CQRdpy-f.js +53 -0
- package/dist/runtime-BOXURhEW.js +45 -0
- package/dist/sales-lines-C6gafAwg.d.ts +28 -0
- package/dist/sales-lines-CymdiwYd.js +41 -0
- package/dist/sales-shared-DAAGwQwN.d.ts +8 -0
- package/dist/sales-shared-DjCuN8xG.js +22 -0
- package/dist/scope-DgWjuXUw.js +90 -0
- package/dist/search-BtoWY6n_.js +9 -0
- package/dist/search-LbjCylX5.js +106 -0
- package/dist/server/index.d.ts +157 -51
- package/dist/server/index.js +295 -20
- package/dist/server-types-fXwJoFjt.d.ts +737 -0
- package/dist/session-Djo5t4KQ.d.ts +95 -0
- package/dist/settings-DxXfDUmh.js +90 -0
- package/dist/shared-9B02lczf.js +14 -0
- package/dist/shared-BmMcMoW9.js +89 -0
- package/dist/shared-as0EG51f.js +60 -0
- package/dist/sign-in-D0xN6E_l.js +360 -0
- package/dist/signatures-BMdJ7neI.d.ts +43 -0
- package/dist/signatures-C9CGYZS1.js +145 -0
- package/dist/signers-BjSgNAXP.d.ts +385 -0
- package/dist/signing-keys-Ccr86Y2C.d.ts +90 -0
- package/dist/solid/index.d.ts +8 -8
- package/dist/solid/index.js +3 -8
- package/dist/solid-controller-CZrt1Tg6.d.ts +11 -0
- package/dist/solid-controller-DLsmrczT.js +33 -0
- package/dist/solid-start/index.d.ts +8 -12
- package/dist/solid-start/index.js +8 -7
- package/dist/spec/index.d.ts +25 -5
- package/dist/spec/index.js +37 -4
- package/dist/spec-pins-Dqpml2dZ.d.ts +84 -0
- package/dist/spec-pins-S4PymRxp.js +60 -0
- package/dist/sql/index.d.ts +5 -548
- package/dist/sql/index.js +5 -38398
- package/dist/sql-BQshMgmB.js +422 -0
- package/dist/sql-CgTZOQZ7.js +87439 -0
- package/dist/sso-B5ZoEsXE.d.ts +131 -0
- package/dist/sso-CwAnve68.js +217 -0
- package/dist/ssr/index.d.ts +5 -6
- package/dist/ssr/index.js +4 -4
- package/dist/standard-C3_AAF3g.d.ts +7 -0
- package/dist/standard-DZmwmIhV.js +25 -0
- package/dist/stats-CUhqw6Ev.js +1128 -0
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.js +14 -10
- package/dist/storage-api-B4Ib2Zpo.d.ts +582 -0
- package/dist/store-B5qYKsTh.d.ts +68 -0
- package/dist/streams/index.d.ts +4 -4
- package/dist/streams/index.js +4 -4
- package/dist/streams/redis/index.d.ts +1 -1
- package/dist/streams/redis/index.js +4 -4
- 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-81xiWh4M.d.ts +21 -0
- package/dist/subject-readers-DDyPTIOr.js +46 -0
- package/dist/subjects-DP-fvFkk.d.ts +77 -0
- package/dist/subscribers-Cq--DL1E.js +34 -0
- package/dist/supabase-mcp-DomZ-amK.js +28 -0
- package/dist/support-BsqhV6jP.js +522 -0
- package/dist/support-view-CznLe4jq.d.ts +17 -0
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +2 -2
- package/dist/svelte-controller-CDAujo-_.js +50 -0
- package/dist/svelte-controller-DDbju9CW.d.ts +10 -0
- package/dist/sveltekit/index.d.ts +11 -13
- package/dist/sveltekit/index.js +9 -9
- package/dist/table-schema-pQlER3jj.js +283 -0
- package/dist/tags-7NHyD1P8.d.ts +30 -0
- package/dist/tags-DGldvcA4.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 +5 -6
- package/dist/tanstack-db/supabase/index.js +180 -9
- package/dist/tanstack-start/index.d.ts +7 -7
- package/dist/tanstack-start/index.js +6 -6
- package/dist/tax-DDZUB_oc.d.ts +273 -0
- package/dist/tax-DZDpMMRw.js +140 -0
- package/dist/tee-CdRV1tcj.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-DW_GmsW4.d.ts +17 -0
- package/dist/tenant-naming-Bsj3Uvap.js +27 -0
- package/dist/testing/index.d.ts +235 -32
- package/dist/testing/index.js +1133 -76
- package/dist/timing-BMCWgpdZ.js +92 -0
- package/dist/topic-DB-1YTMj.js +561 -0
- package/dist/topic-Dgs-eSYQ.d.ts +373 -0
- package/dist/types-BO8lVTun.d.ts +363 -0
- package/dist/types-C_GN-4ed.d.ts +162 -0
- package/dist/types-DGHfTW8_.d.ts +9 -0
- package/dist/types-DM8q3IOr.d.ts +240 -0
- package/dist/types-DOaUIJxW.d.ts +205 -0
- package/dist/types-DZj8CZMH.d.ts +649 -0
- package/dist/types-P1S1cj6N.d.ts +564 -0
- package/dist/types-R6syp1el.js +29 -0
- package/dist/undo-0qM13zul.js +44 -0
- package/dist/undo-D42sPjCf.d.ts +43 -0
- package/dist/usage-BrJGPvCq.js +250 -0
- package/dist/usage-CnQHSM_r.d.ts +202 -0
- package/dist/vault-EnOQJWjn.d.ts +50 -0
- package/dist/vercel-connect/index.d.ts +1 -1
- package/dist/vercel-connect/index.js +4 -4
- package/dist/verify-3NLjUIER.d.ts +142 -0
- package/dist/verify-C9D_jjsQ.js +126 -0
- package/dist/version-Bxj_xcUY.js +4 -0
- package/dist/view-DZ63nqwt.js +105 -0
- package/dist/view-SuASaomx.d.ts +90 -0
- package/dist/vue/index.d.ts +8 -8
- package/dist/vue/index.js +3 -16
- package/dist/vue-controller-C9tFzqAc.js +32 -0
- package/dist/vue-controller-D_ohttBZ.d.ts +11 -0
- package/dist/watch-Blj1mQ9n.js +139 -0
- package/dist/watch-D1wwzZ04.d.ts +84 -0
- package/dist/watch-topic-D-rpUg5n.d.ts +28 -0
- package/dist/watch-topic-miuymrli.js +57 -0
- package/dist/wire-DEY0ajW9.js +45 -0
- package/dist/workflow-builder-C5DBN7yq.js +697 -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 +29 -4
- package/dist/workflow-sdk/world/index.js +137 -59
- package/dist/workflow-sdk-Di5pmCAu.d.ts +161 -0
- package/dist/workflow-sdk-vjDWlnfX.js +243 -0
- package/dist/workflow-sdk-world-DPMdBfzn.js +2103 -0
- package/dist/workflows-DJXoxDZH.d.ts +243 -0
- package/dist/workflows-DzdX28KN.js +282 -0
- package/dist/yjs/index.d.ts +67 -0
- package/dist/yjs/index.js +212 -0
- package/package.json +800 -46
- package/schemas/cli-commands-v1.json +220 -0
- package/schemas/cli-result-v1.json +138 -0
- package/schemas/config-v1.json +4503 -909
- package/schemas/doctor-report-v1.json +30 -0
- package/schemas/snapshot-v2.json +271 -0
- package/skills/better-supabase/SKILL.md +12 -4
- package/skills/better-supabase/references/plugins.md +2 -2
- package/skills/better-supabase/references/ui-recipes.md +19324 -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 +1 -1
- package/skills/better-supabase-api/references/powersync.md +1 -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-CrSbK1q-.js +0 -181
- package/dist/actor-CQTlc1Hh.d.ts +0 -43
- package/dist/adapter-CN45ibbV.js +0 -1691
- package/dist/agents-BY_LQXtQ.d.ts +0 -94
- package/dist/ai-cache-Dfgk8nBT.js +0 -81
- package/dist/ai-cache-DrUMMgp6.d.ts +0 -64
- package/dist/ai-chat-CVLRWbtS.js +0 -744
- package/dist/ai-chat-DXkMy74O.d.ts +0 -590
- package/dist/ai-files-CioLu5du.js +0 -320
- package/dist/ai-tasks-BRQ6iQLc.d.ts +0 -131
- package/dist/announcements-Bouy0Ski.d.ts +0 -72
- package/dist/announcements-p_BFofiR.js +0 -107
- package/dist/api-Dnf2q-Ht.d.ts +0 -370
- package/dist/api-DtHFC037.js +0 -676
- package/dist/api-keys-C8BlF3L2.d.ts +0 -156
- package/dist/assistant-DBlFDZsi.d.ts +0 -147
- package/dist/attributes-5dYul0u0.js +0 -13
- package/dist/authorization-BFCqamMs.d.ts +0 -172
- package/dist/authorizer-ayxUDXXP.js +0 -126
- package/dist/base64-D2gsioCY.js +0 -42
- package/dist/before-route-CnR0C0Jr.js +0 -30
- package/dist/bind-ButSzrHe.js +0 -97
- package/dist/bind-CQ5mPyX1.d.ts +0 -62
- package/dist/block-events-DTxU5tfr.js +0 -91
- package/dist/block-fields-CroxUuF2.js +0 -49
- package/dist/block-fields-D1pfrcIY.d.ts +0 -31
- package/dist/block-helpers-C0Xj8War.d.ts +0 -37
- package/dist/block-helpers-Cy3pB96I.js +0 -222
- package/dist/block-hooks-BPNMIlLl.js +0 -114
- package/dist/block-hooks-DaOVC7SC.d.ts +0 -107
- package/dist/block-transport-bAKh-dGc.js +0 -85
- package/dist/block-transport-inD4fFq-.d.ts +0 -70
- package/dist/build-hPwk3_X5.js +0 -1296
- package/dist/build-meLuYGri.js +0 -689
- package/dist/channel-_2Mx1Oyu.d.ts +0 -70
- package/dist/channels-CkgQ_X60.js +0 -114
- package/dist/cli/add-1dc5wM5k.js +0 -69
- package/dist/cli/bin.d.ts +0 -1
- package/dist/cli/cache-CIfA-jBV.js +0 -483
- package/dist/cli/codemod-JVlTQQG2.js +0 -491
- package/dist/cli/command-DV-StG1x.js +0 -507
- package/dist/cli/config-C2Pz2_4A.js +0 -52
- package/dist/cli/config-DpbF8ML3.js +0 -2
- package/dist/cli/config-M-WzL9O2.js +0 -1175
- package/dist/cli/db-BkcfOlyB.js +0 -53
- package/dist/cli/diff-D1jGdb3Y.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-VcDtuusV.js +0 -3686
- package/dist/cli/emit-BHHfwUoT.js +0 -1136
- package/dist/cli/env-B--LMhEe.js +0 -514
- package/dist/cli/env-vzBG90Um.js +0 -2
- package/dist/cli/env-zHJtMIBo.js +0 -116
- package/dist/cli/errors-CqTLXe2M.js +0 -72
- package/dist/cli/fastest-levenshtein-CF7BCi9l.js +0 -120
- package/dist/cli/files-BVupXPIC.js +0 -34
- package/dist/cli/gen-DmVj3u4L.js +0 -322
- package/dist/cli/glue-C1UE8gQN.js +0 -468
- package/dist/cli/init-CVZ3s5kl.js +0 -258
- package/dist/cli/introspect-BToGNfm-.js +0 -81
- package/dist/cli/io-CFzJVJ68.js +0 -37
- package/dist/cli/jsonc-BUniUpOk.js +0 -2
- package/dist/cli/keys-CJhtIxJ3.js +0 -85
- package/dist/cli/metadata-DSRKCaf-.js +0 -133
- package/dist/cli/openapi-DWa4Ir1q.js +0 -60
- package/dist/cli/project-DZRaBaY7.js +0 -75
- package/dist/cli/prompts-BdeVmVpg.js +0 -2
- package/dist/cli/prompts-DZJB1nTw.js +0 -1142
- package/dist/cli/read-sets-DjJrm8Wj.js +0 -223
- package/dist/cli/rolldown-runtime-CMFfr-1z.js +0 -26
- package/dist/cli/run-DA6_lg3w.js +0 -389
- package/dist/cli/run-DuN1MX-7.js +0 -705
- package/dist/cli/scaffold-5DenHSxF.js +0 -292
- package/dist/cli/scaffold-CwQUMFRb.js +0 -2
- package/dist/cli/seed-CzBmrGON.js +0 -96
- package/dist/cli/seed-DOmit9Hq.js +0 -2
- package/dist/cli/skills-CnO8QFS7.js +0 -139
- package/dist/cli/snapshot-Bstk6ulj.js +0 -287
- package/dist/cli/source-args-BYfq6imV.js +0 -31
- package/dist/cli/spec-CzosTYm3.js +0 -7438
- package/dist/cli/spec-T_0Bcyw7.js +0 -2
- package/dist/cli/sql-BKOOQAX3.js +0 -517
- package/dist/cli/sql-DJrNDxQm.js +0 -3
- package/dist/cli/sql-layout-D6cphHT3.js +0 -69
- package/dist/cli/style-CB3vxgh0.js +0 -29
- package/dist/cli/supabase-toml-B-bIukQF.js +0 -1095
- package/dist/cli/typegen-Demi5-VQ.js +0 -486
- package/dist/cli/typegen-version-DeFbtzYI.js +0 -8
- package/dist/cli/validate-Ca13ktgz.js +0 -7522
- package/dist/cli/version-B4k0aUxS.js +0 -4
- package/dist/client-wxeTQFtB.js +0 -310
- package/dist/cloud-event-Dune0KI7.d.ts +0 -64
- package/dist/compiler-V1qvcST1.d.ts +0 -14
- package/dist/compose-BHej1acw.js +0 -53
- package/dist/composite-CWAJTRBF.d.ts +0 -146
- package/dist/composite-zTe0TCqj.js +0 -130
- package/dist/config-DlKvtt95.js +0 -540
- package/dist/connector-CySQEFcW.d.ts +0 -107
- package/dist/connectors--PGhmiu0.d.ts +0 -120
- package/dist/context-DsV2SueA.d.ts +0 -246
- package/dist/context-nPDvQ-Zl.js +0 -41
- package/dist/cron-D25Ukpxy.js +0 -145
- package/dist/cron-route-D2AN9SA1.js +0 -24
- package/dist/csv-BZnHA1Py.js +0 -25
- package/dist/define-CFQcvM20.js +0 -1949
- package/dist/define-DmcfoNXB.d.ts +0 -1005
- package/dist/embeddings-4ZvFzjsU.js +0 -127
- package/dist/embeddings-B4vhS-dY.d.ts +0 -68
- package/dist/ended-CcvcRqEd.d.ts +0 -69
- package/dist/entitlements-BYFf0Cdh.js +0 -24
- package/dist/entitlements-Ds8qoYZ-.d.ts +0 -51
- package/dist/envelope-DqnYGRw7.js +0 -47
- package/dist/errors-2M6CKMP4.js +0 -271
- package/dist/errors-rZ7VIqp6.js +0 -44
- package/dist/escape-like-DDWoHzh_.d.ts +0 -15
- package/dist/eve-CoAIcCkq.d.ts +0 -151
- package/dist/events-D1BOCll8.d.ts +0 -551
- package/dist/executor-B-fD7DLt.js +0 -735
- package/dist/executor-B_Hfobee.js +0 -162
- package/dist/executor-C-R4pucm.js +0 -83
- package/dist/executor-CpxLPCiz.d.ts +0 -36
- package/dist/executor-DfEtf0cq.d.ts +0 -164
- package/dist/executor-Drzu3dBK.d.ts +0 -261
- package/dist/executor-ngjKL_Pe.d.ts +0 -30
- package/dist/field-errors-DIe9XYWL.d.ts +0 -109
- package/dist/format-DTXdu8ya.d.ts +0 -70
- package/dist/framework-148t1m3C.d.ts +0 -25
- package/dist/framework-3ey3QmrO.js +0 -51
- package/dist/function-contract-BcZenXMO.d.ts +0 -8
- package/dist/gateway-S9vicgeo.d.ts +0 -130
- package/dist/graph-BGyLLFLX.js +0 -265
- package/dist/hooks-Bhza9Hnr.js +0 -277
- package/dist/http-sbmBe5d2.js +0 -25
- package/dist/impersonation-DcqaTBHx.js +0 -148
- package/dist/inbox-Cd1KCEBL.d.ts +0 -384
- package/dist/index-B72Rvv_j.d.ts +0 -89
- package/dist/index-BCHR4Ucl.d.ts +0 -300
- package/dist/index-BUK7jUzR.d.ts +0 -82
- package/dist/index-Ba1SI-uO.d.ts +0 -1331
- package/dist/index-BfxOaOYs.d.ts +0 -245
- package/dist/index-CicIyqOe.d.ts +0 -55
- package/dist/index-D69h4QqD.d.ts +0 -74
- package/dist/index-DG2SUXDQ.d.ts +0 -58
- package/dist/index-DoNVLHOU.d.ts +0 -206
- package/dist/index-R274XFlg.d.ts +0 -138
- package/dist/index-_4R4b01v.d.ts +0 -257
- package/dist/json-schema-CT4tvrkA.js +0 -548
- package/dist/kit-BhHr9T9v.js +0 -104
- package/dist/kit-W99LCPBS.d.ts +0 -66
- package/dist/knowledge-CAReFpRA.d.ts +0 -176
- package/dist/knowledge-DnHtb64A.js +0 -256
- package/dist/list-query-D3JQeEL7.d.ts +0 -164
- package/dist/list-query-gl808ac1.js +0 -459
- package/dist/live-CTAZQkwl.js +0 -257
- package/dist/messages-CJoHHCWT.js +0 -514
- package/dist/mfa-SZc9YYyb.d.ts +0 -54
- package/dist/model-OgBxvk3N.d.ts +0 -300
- package/dist/model-messages-Cxw_Up4f.js +0 -206
- package/dist/modules-DksjZyMW.js +0 -77
- package/dist/modules-DpPwzC7E.d.ts +0 -192
- package/dist/onboarding-LZvlK1P4.d.ts +0 -62
- package/dist/optional-peer-D1pi-skw.js +0 -24
- package/dist/outbox-DZfAvfzC.d.ts +0 -161
- package/dist/plugin-CPK2HsbY.d.ts +0 -190
- package/dist/pool-gkhbGp2E.d.ts +0 -89
- package/dist/postgrest-BUqLag2Q.d.ts +0 -53
- package/dist/problem-CJvFeGu7.js +0 -126
- package/dist/problem-TvGdxO1t.d.ts +0 -73
- package/dist/provider-DxRTex4x.js +0 -57
- package/dist/provider-ib9wzUDz.d.ts +0 -113
- package/dist/rate-limit-Bw7HgmFj.js +0 -260
- package/dist/react-Bmpo59D7.js +0 -409
- package/dist/react-topic-seAWjL3_.js +0 -38
- package/dist/read-set-DAeWhqPf.js +0 -314
- package/dist/refusal-CFI8-5nf.d.ts +0 -18
- package/dist/refusal-K78A1Vmq.js +0 -61
- package/dist/replicas-CwrYp5Zj.js +0 -94
- package/dist/resolve-Bvgf3ut_.js +0 -786
- package/dist/resolve-MxXVWyhd.d.ts +0 -173
- package/dist/resource--vTrBe6I.d.ts +0 -103
- package/dist/resource-BqNqlYg9.js +0 -91
- package/dist/resource-DA811u_4.js +0 -463
- package/dist/resource-execute-rbKvuCsY.d.ts +0 -12
- package/dist/resource-types-CqB6GWGT.d.ts +0 -141
- package/dist/resources-BVYPnuLo.js +0 -56
- package/dist/resources-DZSk8tXJ.d.ts +0 -7
- package/dist/respond-Cw-zanCm.d.ts +0 -93
- package/dist/respond-volM3ByS.js +0 -91
- package/dist/result-BchM1XZn.d.ts +0 -288
- package/dist/result-DEqHCMKP.js +0 -128
- package/dist/scope-CDHcS7dE.js +0 -90
- package/dist/search-CUWCRYKL.js +0 -9
- package/dist/server-types-CrAmZ8jv.d.ts +0 -614
- package/dist/session-ChiXDZdZ.d.ts +0 -72
- package/dist/shared-CBxosKK3.js +0 -75
- package/dist/shared-DHjhfRdV.js +0 -60
- package/dist/shared-DTneRoxi.js +0 -14
- package/dist/sign-in-D_yoP0PF.js +0 -86
- package/dist/signatures-BRS_p3WD.d.ts +0 -34
- package/dist/signatures-DsWv_bYR.js +0 -103
- package/dist/signers-cpdmZYrv.d.ts +0 -166
- package/dist/spec-pins-CwzDY25w.d.ts +0 -44
- package/dist/spec-pins-DsLfUH7l.js +0 -40
- package/dist/sql-CwuqaQ4Y.js +0 -388
- package/dist/standard-DkzZUneg.js +0 -25
- package/dist/standard-lmkbOtPB.d.ts +0 -7
- package/dist/stats-DhU78Ctf.js +0 -1127
- package/dist/storage-api-CB7Zl1Ci.d.ts +0 -582
- package/dist/store-DsIYEBnv.d.ts +0 -68
- package/dist/stripe-D04h-QBT.d.ts +0 -136
- package/dist/stripe-v-Y2lmop.js +0 -32
- package/dist/supabase-mcp-Cpn5A4i-.js +0 -28
- package/dist/support-D1pFFouF.js +0 -350
- package/dist/support-view-scqMgtOo.d.ts +0 -17
- package/dist/table-schema-htM_SbCW.js +0 -286
- package/dist/tags-BO9LjtWG.d.ts +0 -30
- package/dist/tee-Cb98Vn3b.js +0 -101
- package/dist/template-lPVh-EwW.js +0 -123
- package/dist/temporal-BJGitm-h.js +0 -79
- package/dist/temporal-required-BtynQtM-.js +0 -20
- package/dist/tenant-CM368LXb.d.ts +0 -17
- package/dist/tenant-I1TEZ_BX.js +0 -27
- package/dist/timing-CyTQPubY.js +0 -92
- package/dist/types-6cYK9pbJ.js +0 -29
- package/dist/types-Bb_4-vdW.d.ts +0 -220
- package/dist/types-CD6yCDx3.d.ts +0 -359
- package/dist/types-CbOUc5IH.d.ts +0 -156
- package/dist/types-CoE5Zwy4.d.ts +0 -348
- package/dist/types-DSJ3-m9X.d.ts +0 -192
- package/dist/types-D__3EN0q.d.ts +0 -425
- package/dist/usage-D0NNUFfr.d.ts +0 -177
- package/dist/vault-BpmApxxW.d.ts +0 -50
- package/dist/verify-C91Wyp40.d.ts +0 -142
- package/dist/verify-CJbYfADA.js +0 -124
- package/dist/version-Cq8gfDbd.js +0 -4
- package/dist/view-D5ryq3gz.js +0 -99
- package/dist/view-TpXEUcVN.d.ts +0 -87
- package/dist/watch-BcvtAHOd.js +0 -122
- package/dist/watch-COzRWvVN.d.ts +0 -74
- package/dist/wire-Df3EWkG8.js +0 -45
- package/dist/workflow-builder-CHqHpAVt.js +0 -399
- package/dist/workflow-sdk-C2WJ_G2O.js +0 -173
- package/dist/workflow-sdk-DTZyrvNo.d.ts +0 -98
- package/dist/workflow-sdk-world-CMV1ahFW.js +0 -1399
- package/dist/workflows-CcpCBfIe.d.ts +0 -185
- package/dist/workflows-IvxzG2cl.js +0 -217
|
@@ -0,0 +1,819 @@
|
|
|
1
|
+
import { i as FIELD_FORMAT_NAMES, r as FIELD_FORMATS } from "./field-formats-Cif5gr7c.js";
|
|
2
|
+
//#region src/config/types/app-tables.ts
|
|
3
|
+
/**
|
|
4
|
+
* The column types an app table may use. Money is a `bigint` of minor units
|
|
5
|
+
* next to a `text` currency column (ADR 0024 and 0037), never `numeric`.
|
|
6
|
+
*/
|
|
7
|
+
const APP_COLUMN_TYPES = [
|
|
8
|
+
"text",
|
|
9
|
+
"uuid",
|
|
10
|
+
"integer",
|
|
11
|
+
"bigint",
|
|
12
|
+
"numeric",
|
|
13
|
+
"boolean",
|
|
14
|
+
"timestamptz",
|
|
15
|
+
"date",
|
|
16
|
+
"jsonb",
|
|
17
|
+
"text[]"
|
|
18
|
+
];
|
|
19
|
+
/** What a reference does when the row it points at is deleted (`references.onDelete`). */
|
|
20
|
+
const APP_ON_DELETE_ACTIONS = [
|
|
21
|
+
"cascade",
|
|
22
|
+
"restrict",
|
|
23
|
+
"set null",
|
|
24
|
+
"no action"
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* What a column holds, beyond its Postgres type. `email`, `url`, `rating`
|
|
28
|
+
* and `percent` add a check; the others tell the UI and `gen` how to show
|
|
29
|
+
* the value. `FIELD_FORMATS` lists the types each fits and its input.
|
|
30
|
+
*/
|
|
31
|
+
const APP_COLUMN_FORMATS = FIELD_FORMAT_NAMES;
|
|
32
|
+
const APP_COLUMN_ACCESS = ["read", "server"];
|
|
33
|
+
const APP_TABLE_EVENT_KINDS = [
|
|
34
|
+
"created",
|
|
35
|
+
"updated",
|
|
36
|
+
"deleted"
|
|
37
|
+
];
|
|
38
|
+
const APP_ROLLUP_AGGREGATES = [
|
|
39
|
+
"count",
|
|
40
|
+
"sum",
|
|
41
|
+
"min",
|
|
42
|
+
"max",
|
|
43
|
+
"avg"
|
|
44
|
+
];
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region src/config/app-access.ts
|
|
47
|
+
const PLACEHOLDER$1 = /\{([^}]*)\}/gu;
|
|
48
|
+
/** `appTables.<t>.columns.<c>.access` checked. */
|
|
49
|
+
function accessOf(where, value) {
|
|
50
|
+
if (value === void 0) return;
|
|
51
|
+
const access = APP_COLUMN_ACCESS.find((option) => option === value);
|
|
52
|
+
if (access === void 0) throw new TypeError(`${where} must be one of ${APP_COLUMN_ACCESS.join(", ")}`);
|
|
53
|
+
return access;
|
|
54
|
+
}
|
|
55
|
+
/** The own columns of `table` with `access` set to `access`, in config order. */
|
|
56
|
+
function columnsWithAccess(table, access) {
|
|
57
|
+
return Object.entries(table.columns ?? {}).flatMap(([name, column]) => column.access === access ? [name] : []);
|
|
58
|
+
}
|
|
59
|
+
/** Whether `table` restricts any column with `access`. */
|
|
60
|
+
function hasColumnAccess(table) {
|
|
61
|
+
return Object.values(table.columns ?? {}).some((column) => column.access !== void 0);
|
|
62
|
+
}
|
|
63
|
+
function urlColumns(url) {
|
|
64
|
+
return url === void 0 ? [] : [...url.matchAll(PLACEHOLDER$1)].flatMap((match) => match[1] === void 0 ? [] : [match[1]]);
|
|
65
|
+
}
|
|
66
|
+
/** Every place a table's config reads a column for signed-in users. */
|
|
67
|
+
function readsOf(name, table, tables) {
|
|
68
|
+
const at = `appTables.${name}`;
|
|
69
|
+
const { subject } = table;
|
|
70
|
+
const versions = subject?.versions;
|
|
71
|
+
const rank = subject?.rank;
|
|
72
|
+
const own = (where, column) => ({
|
|
73
|
+
where: `${at}.${where}`,
|
|
74
|
+
table: name,
|
|
75
|
+
column
|
|
76
|
+
});
|
|
77
|
+
const lookupTarget = (via) => {
|
|
78
|
+
const reference = table.columns?.[via]?.references;
|
|
79
|
+
return reference === void 0 || "block" in reference ? void 0 : reference.table;
|
|
80
|
+
};
|
|
81
|
+
return [
|
|
82
|
+
own("subject.title", subject?.title),
|
|
83
|
+
own("subject.search.title", subject?.search?.title),
|
|
84
|
+
...(subject?.search?.body ?? []).map((column) => own("subject.search.body", column)),
|
|
85
|
+
...urlColumns(subject?.url).map((column) => own("subject.url", column)),
|
|
86
|
+
own("subject.rank.group", rank === true ? void 0 : rank?.group),
|
|
87
|
+
...versions === true || versions?.columns === void 0 ? [] : versions.columns.map((column) => own("subject.versions.columns", column)),
|
|
88
|
+
...(table.events === true ? [] : table.events?.include ?? []).map((column) => own("events.include", column)),
|
|
89
|
+
...Object.entries(table.rollups ?? {}).flatMap(([key, rollup]) => [
|
|
90
|
+
rollup.via,
|
|
91
|
+
rollup.column,
|
|
92
|
+
rollup.where?.column
|
|
93
|
+
].map((column) => ({
|
|
94
|
+
where: `${at}.rollups.${key}`,
|
|
95
|
+
table: rollup.table,
|
|
96
|
+
column
|
|
97
|
+
}))),
|
|
98
|
+
...Object.entries(table.lookups ?? {}).flatMap(([key, lookup]) => {
|
|
99
|
+
const target = lookupTarget(lookup.via);
|
|
100
|
+
return [own(`lookups.${key}.via`, lookup.via), {
|
|
101
|
+
where: `${at}.lookups.${key}.column`,
|
|
102
|
+
table: target ?? name,
|
|
103
|
+
column: target === void 0 ? void 0 : lookup.column
|
|
104
|
+
}];
|
|
105
|
+
})
|
|
106
|
+
].filter((use) => tables[use.table] !== void 0);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Throws when a column with `access: "server"` is read where signed-in users
|
|
110
|
+
* see the value: a subject's title, search, url, rank group or versioned
|
|
111
|
+
* columns, an event payload, or a rollup or lookup (ADR 0051). Versions of
|
|
112
|
+
* every column (`versions: true`) would copy it into the history, so such a
|
|
113
|
+
* table lists `subject.versions.columns`.
|
|
114
|
+
*/
|
|
115
|
+
function checkColumnAccess(tables) {
|
|
116
|
+
for (const [name, table] of Object.entries(tables)) {
|
|
117
|
+
const hidden = columnsWithAccess(table, "server");
|
|
118
|
+
const versions = table.subject?.versions;
|
|
119
|
+
if (hidden.length > 0 && (versions === true || versions !== void 0 && !versions.columns)) throw new TypeError(`appTables.${name}.subject.versions: the history would copy ${hidden.join(", ")}, which has access server; list subject.versions.columns without it`);
|
|
120
|
+
for (const use of readsOf(name, table, tables)) if ((use.column === void 0 ? void 0 : tables[use.table]?.columns?.[use.column])?.access === "server") throw new TypeError(`${use.where}: ${use.table}.${String(use.column)} has access server, so signed-in users can't read it here; drop it or set access read`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/config/app-computed.ts
|
|
125
|
+
const IDENT$1 = /^[a-z][a-z0-9_]{0,62}$/;
|
|
126
|
+
/** Rollups and lookups together, per table. */
|
|
127
|
+
const MAX_COMPUTED = 50;
|
|
128
|
+
const ROLLUP_KEYS = /* @__PURE__ */ new Set([
|
|
129
|
+
"table",
|
|
130
|
+
"via",
|
|
131
|
+
"aggregate",
|
|
132
|
+
"column",
|
|
133
|
+
"where"
|
|
134
|
+
]);
|
|
135
|
+
const WHERE_KEYS = /* @__PURE__ */ new Set(["column", "equals"]);
|
|
136
|
+
const LOOKUP_KEYS = /* @__PURE__ */ new Set(["via", "column"]);
|
|
137
|
+
const AGGREGATES = new Set(APP_ROLLUP_AGGREGATES);
|
|
138
|
+
const NUMBERS = /* @__PURE__ */ new Set([
|
|
139
|
+
"integer",
|
|
140
|
+
"bigint",
|
|
141
|
+
"numeric"
|
|
142
|
+
]);
|
|
143
|
+
const ORDERED = /* @__PURE__ */ new Set([
|
|
144
|
+
...NUMBERS,
|
|
145
|
+
"date",
|
|
146
|
+
"timestamptz",
|
|
147
|
+
"text"
|
|
148
|
+
]);
|
|
149
|
+
function isObject$1(value) {
|
|
150
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
151
|
+
}
|
|
152
|
+
function isAggregate(value) {
|
|
153
|
+
return typeof value === "string" && AGGREGATES.has(value);
|
|
154
|
+
}
|
|
155
|
+
function checkKeys$1(where, value, allowed) {
|
|
156
|
+
for (const key of Object.keys(value)) if (!allowed.has(key)) throw new TypeError(`${where}: unknown key "${key}" (use ${[...allowed].join(", ")})`);
|
|
157
|
+
}
|
|
158
|
+
/** The columns of `table` a rollup or lookup may read, with their types. */
|
|
159
|
+
function readable(table) {
|
|
160
|
+
return new Map([...Object.entries(table.columns ?? {}).map(([name, column]) => [name, column.type]), ...table.timestamps === false ? [] : [["created_at", "timestamptz"], ["updated_at", "timestamptz"]]]);
|
|
161
|
+
}
|
|
162
|
+
function listOf(names) {
|
|
163
|
+
const list = [...names].join(", ");
|
|
164
|
+
return list === "" ? "none" : list;
|
|
165
|
+
}
|
|
166
|
+
/** The columns of `child` that reference the app table `parent`. */
|
|
167
|
+
function referencesTo(child, parent) {
|
|
168
|
+
return Object.entries(child.columns ?? {}).filter(([, column]) => column.references !== void 0 && !("block" in column.references) && column.references.table === parent).map(([name]) => name);
|
|
169
|
+
}
|
|
170
|
+
function whereOf(where, value, child, table) {
|
|
171
|
+
if (value === void 0) return;
|
|
172
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be { column, equals }`);
|
|
173
|
+
checkKeys$1(where, value, WHERE_KEYS);
|
|
174
|
+
const { column, equals } = value;
|
|
175
|
+
const selects = Object.entries(table.columns ?? {}).filter(([, each]) => each.type === "text" && each.options !== void 0);
|
|
176
|
+
const found = selects.find(([name]) => name === column)?.[1];
|
|
177
|
+
if (typeof column !== "string" || found?.options === void 0) throw new TypeError(`${where}.column must name a select column of ${child} (${listOf(selects.map(([name]) => name))})`);
|
|
178
|
+
if (typeof equals !== "string" || !found.options.includes(equals)) throw new TypeError(`${where}.equals must be an option of ${child}.${column} (${listOf(found.options)})`);
|
|
179
|
+
return {
|
|
180
|
+
column,
|
|
181
|
+
equals
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function rollupOf(where, value, parent, tables) {
|
|
185
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be an object`);
|
|
186
|
+
checkKeys$1(where, value, ROLLUP_KEYS);
|
|
187
|
+
const { table, via, aggregate, column } = value;
|
|
188
|
+
const child = typeof table === "string" ? tables[table] : void 0;
|
|
189
|
+
if (typeof table !== "string" || child === void 0) throw new TypeError(`${where}.table must name an app table (${listOf(Object.keys(tables))})`);
|
|
190
|
+
const vias = referencesTo(child, parent);
|
|
191
|
+
if (typeof via !== "string" || !vias.includes(via)) throw new TypeError(`${where}.via must name a column of ${table} that references ${parent} (${listOf(vias)})`);
|
|
192
|
+
if (!isAggregate(aggregate)) throw new TypeError(`${where}.aggregate must be one of ${APP_ROLLUP_AGGREGATES.join(", ")}`);
|
|
193
|
+
const filter = whereOf(`${where}.where`, value["where"], table, child);
|
|
194
|
+
const base = {
|
|
195
|
+
table,
|
|
196
|
+
via,
|
|
197
|
+
aggregate,
|
|
198
|
+
...filter ? { where: filter } : {}
|
|
199
|
+
};
|
|
200
|
+
if (aggregate === "count") {
|
|
201
|
+
if (column !== void 0) throw new TypeError(`${where}.column: count counts rows; drop column`);
|
|
202
|
+
return base;
|
|
203
|
+
}
|
|
204
|
+
const fits = aggregate === "sum" || aggregate === "avg" ? NUMBERS : ORDERED;
|
|
205
|
+
const candidates = [...readable(child)].filter(([, type]) => fits.has(type)).map(([name]) => name);
|
|
206
|
+
if (typeof column !== "string" || !candidates.includes(column)) throw new TypeError(`${where}.column: ${aggregate} needs a ${fits === NUMBERS ? "number" : "number, date, time or text"} column of ${table} (${listOf(candidates)})`);
|
|
207
|
+
return {
|
|
208
|
+
...base,
|
|
209
|
+
column
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
function lookupOf(where, value, name, tables) {
|
|
213
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be an object`);
|
|
214
|
+
checkKeys$1(where, value, LOOKUP_KEYS);
|
|
215
|
+
const { via, column } = value;
|
|
216
|
+
const own = tables[name]?.columns ?? {};
|
|
217
|
+
const vias = Object.entries(own).filter(([, each]) => each.references !== void 0 && !("block" in each.references) && Object.hasOwn(tables, each.references.table));
|
|
218
|
+
const reference = vias.find(([each]) => each === via)?.[1].references;
|
|
219
|
+
if (typeof via !== "string" || reference === void 0 || "block" in reference) throw new TypeError(`${where}.via must name a column of ${name} that references another app table (${listOf(vias.map(([each]) => each))})`);
|
|
220
|
+
const target = tables[reference.table];
|
|
221
|
+
const columns = target === void 0 ? /* @__PURE__ */ new Map() : readable(target);
|
|
222
|
+
if (typeof column !== "string" || !columns.has(column)) throw new TypeError(`${where}.column must name a column of ${reference.table} (${listOf(columns.keys())})`);
|
|
223
|
+
return {
|
|
224
|
+
via,
|
|
225
|
+
column
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function entriesOf(where, value) {
|
|
229
|
+
if (value === void 0) return [];
|
|
230
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be an object keyed by column name`);
|
|
231
|
+
return Object.entries(value);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* The `rollups` and `lookups` of the app table `name`, checked against
|
|
235
|
+
* every resolved app table. `taken` holds the columns the table already
|
|
236
|
+
* has, which a computed column may not reuse.
|
|
237
|
+
*/
|
|
238
|
+
function computedOf(where, value, name, tables, taken) {
|
|
239
|
+
if (!isObject$1(value)) return {};
|
|
240
|
+
const rollups = entriesOf(`${where}.rollups`, value["rollups"]);
|
|
241
|
+
const lookups = entriesOf(`${where}.lookups`, value["lookups"]);
|
|
242
|
+
if (rollups.length + lookups.length > MAX_COMPUTED) throw new TypeError(`${where}: at most ${String(MAX_COMPUTED)} rollups and lookups together`);
|
|
243
|
+
const used = new Set(taken);
|
|
244
|
+
const named = (key, column) => {
|
|
245
|
+
const at = `${where}.${key}.${column}`;
|
|
246
|
+
if (!IDENT$1.test(column)) throw new TypeError(`${at}: "${column}" is not a lower snake identifier (a-z, 0-9 and _, starting with a letter)`);
|
|
247
|
+
if (used.has(column)) throw new TypeError(`${at}: "${column}" is already a column of ${name}; choose another name`);
|
|
248
|
+
used.add(column);
|
|
249
|
+
return at;
|
|
250
|
+
};
|
|
251
|
+
const resolvedRollups = rollups.map(([column, rollup]) => [column, rollupOf(named("rollups", column), rollup, name, tables)]);
|
|
252
|
+
const resolvedLookups = lookups.map(([column, lookup]) => [column, lookupOf(named("lookups", column), lookup, name, tables)]);
|
|
253
|
+
return {
|
|
254
|
+
...value["rollups"] === void 0 ? {} : { rollups: Object.fromEntries(resolvedRollups) },
|
|
255
|
+
...value["lookups"] === void 0 ? {} : { lookups: Object.fromEntries(resolvedLookups) }
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/** Whether a table has a rollup or a lookup, and so a `<table>_view`. */
|
|
259
|
+
function hasComputed(table) {
|
|
260
|
+
return Object.keys(table.rollups ?? {}).length > 0 || Object.keys(table.lookups ?? {}).length > 0;
|
|
261
|
+
}
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/config/app-tables.ts
|
|
264
|
+
const IDENT = /^[a-z][a-z0-9_]{0,62}$/;
|
|
265
|
+
const BLOCK_NAME = /^[a-z][a-z0-9-]{0,62}$/;
|
|
266
|
+
const TEXT_LITERAL = /^'(?:[^'\\]|'')*'$/;
|
|
267
|
+
const INTEGER = /^-?\d{1,18}$/;
|
|
268
|
+
const NUMBER = /^-?\d{1,30}(?:\.\d{1,30})?$/;
|
|
269
|
+
const MAX_LITERAL = 200;
|
|
270
|
+
const MAX_OPTIONS = 100;
|
|
271
|
+
const MAX_OPTION = 100;
|
|
272
|
+
const MAX_COMMENT = 1e3;
|
|
273
|
+
const MAX_KEY_SETS = 20;
|
|
274
|
+
/** Postgres keeps at most 32 columns in an index. */
|
|
275
|
+
const MAX_KEY_COLUMNS = 32;
|
|
276
|
+
const CONTROL = /\p{Cc}/u;
|
|
277
|
+
const TABLE_KEYS = /* @__PURE__ */ new Set([
|
|
278
|
+
"columns",
|
|
279
|
+
"scope",
|
|
280
|
+
"timestamps",
|
|
281
|
+
"id",
|
|
282
|
+
"unique",
|
|
283
|
+
"indexes",
|
|
284
|
+
"comment",
|
|
285
|
+
"subject",
|
|
286
|
+
"rollups",
|
|
287
|
+
"lookups",
|
|
288
|
+
"events"
|
|
289
|
+
]);
|
|
290
|
+
const SUBJECT_KEYS = /* @__PURE__ */ new Set([
|
|
291
|
+
"type",
|
|
292
|
+
"title",
|
|
293
|
+
"url",
|
|
294
|
+
"search",
|
|
295
|
+
"permissions",
|
|
296
|
+
"rank",
|
|
297
|
+
"softDelete",
|
|
298
|
+
"versions"
|
|
299
|
+
]);
|
|
300
|
+
/** The columns `subject.rank` and `subject.softDelete` add. */
|
|
301
|
+
const APP_RANK_COLUMN = "rank";
|
|
302
|
+
const APP_DELETED_AT_COLUMN = "deleted_at";
|
|
303
|
+
const PLACEHOLDER = /\{([^}]*)\}/gu;
|
|
304
|
+
const COLUMN_KEYS = /* @__PURE__ */ new Set([
|
|
305
|
+
"type",
|
|
306
|
+
"nullable",
|
|
307
|
+
"default",
|
|
308
|
+
"unique",
|
|
309
|
+
"references",
|
|
310
|
+
"format",
|
|
311
|
+
"options",
|
|
312
|
+
"min",
|
|
313
|
+
"max",
|
|
314
|
+
"comment",
|
|
315
|
+
"identity",
|
|
316
|
+
"access"
|
|
317
|
+
]);
|
|
318
|
+
const NUMBER_TYPES = /* @__PURE__ */ new Set([
|
|
319
|
+
"integer",
|
|
320
|
+
"bigint",
|
|
321
|
+
"numeric"
|
|
322
|
+
]);
|
|
323
|
+
const FORMATS = new Set(APP_COLUMN_FORMATS);
|
|
324
|
+
const REFERENCE_KEYS = /* @__PURE__ */ new Set([
|
|
325
|
+
"table",
|
|
326
|
+
"block",
|
|
327
|
+
"onDelete"
|
|
328
|
+
]);
|
|
329
|
+
const SCOPES = /* @__PURE__ */ new Set([
|
|
330
|
+
"inherit",
|
|
331
|
+
"user",
|
|
332
|
+
"none"
|
|
333
|
+
]);
|
|
334
|
+
const ON_DELETE = new Set(APP_ON_DELETE_ACTIONS);
|
|
335
|
+
const COLUMN_TYPES = new Set(APP_COLUMN_TYPES);
|
|
336
|
+
/** The table every `auth.users` reference points at. */
|
|
337
|
+
const AUTH_USERS = "auth.users";
|
|
338
|
+
function isObject(value) {
|
|
339
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
340
|
+
}
|
|
341
|
+
function isOnDelete(value) {
|
|
342
|
+
return typeof value === "string" && ON_DELETE.has(value);
|
|
343
|
+
}
|
|
344
|
+
function isScope(value) {
|
|
345
|
+
return typeof value === "string" && SCOPES.has(value);
|
|
346
|
+
}
|
|
347
|
+
function isColumnType(value) {
|
|
348
|
+
return typeof value === "string" && COLUMN_TYPES.has(value);
|
|
349
|
+
}
|
|
350
|
+
function isFormat(value) {
|
|
351
|
+
return typeof value === "string" && FORMATS.has(value);
|
|
352
|
+
}
|
|
353
|
+
function commentOf(where, value) {
|
|
354
|
+
if (value === void 0) return;
|
|
355
|
+
if (typeof value !== "string" || value.length === 0 || value.length > MAX_COMMENT || value.includes("\0")) throw new TypeError(`${where} must be text of 1 to ${String(MAX_COMMENT)} characters`);
|
|
356
|
+
return value;
|
|
357
|
+
}
|
|
358
|
+
function formatOf(where, value, type) {
|
|
359
|
+
if (value === void 0) return;
|
|
360
|
+
if (!isFormat(value)) throw new TypeError(`${where} must be one of ${APP_COLUMN_FORMATS.join(", ")}`);
|
|
361
|
+
const types = FIELD_FORMATS[value].types;
|
|
362
|
+
if (!types.includes(type)) throw new TypeError(`${where}: ${value} fits a ${types.join(" or ")} column, not ${type}`);
|
|
363
|
+
return value;
|
|
364
|
+
}
|
|
365
|
+
function optionsOf(where, value, type) {
|
|
366
|
+
if (value === void 0) return;
|
|
367
|
+
if (type !== "text" && type !== "text[]") throw new TypeError(`${where}: options fit a text (single select) or text[] (multi-select) column, not ${type}`);
|
|
368
|
+
if (!Array.isArray(value) || value.length === 0 || value.length > MAX_OPTIONS) throw new TypeError(`${where} must list 1 to ${String(MAX_OPTIONS)} values`);
|
|
369
|
+
const seen = /* @__PURE__ */ new Set();
|
|
370
|
+
for (const option of value) {
|
|
371
|
+
if (typeof option !== "string" || option.length === 0 || option.length > MAX_OPTION || CONTROL.test(option)) throw new TypeError(`${where}: each option is text of 1 to ${String(MAX_OPTION)} characters without control characters`);
|
|
372
|
+
if (seen.has(option)) throw new TypeError(`${where}: "${option}" is listed twice`);
|
|
373
|
+
seen.add(option);
|
|
374
|
+
}
|
|
375
|
+
return [...seen];
|
|
376
|
+
}
|
|
377
|
+
function boundOf(where, value, type) {
|
|
378
|
+
if (value === void 0) return;
|
|
379
|
+
if (typeof value !== "number" || !Number.isFinite(value)) throw new TypeError(`${where} must be a number`);
|
|
380
|
+
if (type === "text") {
|
|
381
|
+
if (!Number.isSafeInteger(value) || value < 0) throw new TypeError(`${where}: a text length is a whole number of 0 or more`);
|
|
382
|
+
return value;
|
|
383
|
+
}
|
|
384
|
+
if (!NUMBER_TYPES.has(type)) throw new TypeError(`${where}: min and max fit a number or text column, not ${type}`);
|
|
385
|
+
if (type !== "numeric" && !Number.isSafeInteger(value)) throw new TypeError(`${where}: an ${type} bound is a whole number`);
|
|
386
|
+
return value;
|
|
387
|
+
}
|
|
388
|
+
function identityOf(where, value, column, type) {
|
|
389
|
+
const identity = optionalBoolean(where, value);
|
|
390
|
+
if (identity !== true) return identity;
|
|
391
|
+
if (type !== "integer" && type !== "bigint") throw new TypeError(`${where}: an identity is an integer or bigint, not ${type}`);
|
|
392
|
+
for (const key of [
|
|
393
|
+
"default",
|
|
394
|
+
"references",
|
|
395
|
+
"options"
|
|
396
|
+
]) if (column[key] !== void 0) throw new TypeError(`${where}: an identity takes no ${key}`);
|
|
397
|
+
if (column["nullable"] === true) throw new TypeError(`${where}: an identity is never null`);
|
|
398
|
+
return identity;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* The sets of columns of a composite `unique` or `indexes` key. Whether each
|
|
402
|
+
* name is a column of the table is checked when the SQL renders, where the
|
|
403
|
+
* scope column is known.
|
|
404
|
+
*/
|
|
405
|
+
function keySetsOf(where, value) {
|
|
406
|
+
if (value === void 0) return;
|
|
407
|
+
if (!Array.isArray(value) || value.length > MAX_KEY_SETS) throw new TypeError(`${where} must list at most ${String(MAX_KEY_SETS)} sets of columns`);
|
|
408
|
+
return value.map((set, index) => {
|
|
409
|
+
const at = `${where}[${String(index)}]`;
|
|
410
|
+
if (!Array.isArray(set) || set.length === 0 || set.length > MAX_KEY_COLUMNS) throw new TypeError(`${at} must list 1 to ${String(MAX_KEY_COLUMNS)} column names`);
|
|
411
|
+
const columns = set.map((column) => {
|
|
412
|
+
if (typeof column !== "string" || !IDENT.test(column)) throw new TypeError(`${at}: ${JSON.stringify(column)} is not a column name`);
|
|
413
|
+
return column;
|
|
414
|
+
});
|
|
415
|
+
if (new Set(columns).size !== columns.length) throw new TypeError(`${at} names a column twice`);
|
|
416
|
+
return columns;
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
function checkKeys(where, value, allowed) {
|
|
420
|
+
for (const key of Object.keys(value)) if (!allowed.has(key)) throw new TypeError(`${where}: unknown key "${key}" (use ${[...allowed].join(", ")})`);
|
|
421
|
+
}
|
|
422
|
+
function optionalBoolean(where, value) {
|
|
423
|
+
if (value !== void 0 && typeof value !== "boolean") throw new TypeError(`${where} must be true or false`);
|
|
424
|
+
return value;
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* The columns every app table gets, which `columns` may not name:
|
|
428
|
+
* `id`, `created_at`, `updated_at`, `user_id` and the tenant column
|
|
429
|
+
* (`organization_id`, or `<sql.naming.tenant>_id`), whatever the table's
|
|
430
|
+
* scope, so changing the scope never collides with a column.
|
|
431
|
+
*/
|
|
432
|
+
function appReservedColumns(tenant = "organization") {
|
|
433
|
+
return [
|
|
434
|
+
"id",
|
|
435
|
+
"created_at",
|
|
436
|
+
"updated_at",
|
|
437
|
+
"user_id",
|
|
438
|
+
`${tenant}_id`
|
|
439
|
+
];
|
|
440
|
+
}
|
|
441
|
+
/** Postgres truncates identifiers past 63 bytes, so longer generated names collide. */
|
|
442
|
+
const MAX_IDENTIFIER = 63;
|
|
443
|
+
/** The longest app table or column name: `<table>_view` still fits in 63 bytes. */
|
|
444
|
+
const APP_NAME_MAX = 58;
|
|
445
|
+
/**
|
|
446
|
+
* Why `name` can't name an app table or column, or `undefined` when it can:
|
|
447
|
+
* lower snake case starting with a letter, not `pg_`, and at most
|
|
448
|
+
* `APP_NAME_MAX` characters.
|
|
449
|
+
*/
|
|
450
|
+
function appIdentifierError(name) {
|
|
451
|
+
if (name === "") return "Enter a name.";
|
|
452
|
+
if (name.length > 58) return `Use at most ${String(58)} characters.`;
|
|
453
|
+
if (!IDENT.test(name)) return "Use lower-case letters, digits and underscores, starting with a letter.";
|
|
454
|
+
if (name.startsWith("pg_")) return "Names starting with pg_ are reserved by Postgres.";
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* The first constraint or index name the SQL derives for `table` that is
|
|
458
|
+
* longer than 63 bytes, which Postgres would truncate into a collision, as
|
|
459
|
+
* a message; `undefined` when every name fits.
|
|
460
|
+
*/
|
|
461
|
+
function appNameLengthError(table, config) {
|
|
462
|
+
const long = [
|
|
463
|
+
...Object.entries(config.columns ?? {}).flatMap(([column, each]) => each.references !== void 0 || each.format !== void 0 || each.options !== void 0 || each.min !== void 0 || each.max !== void 0 ? [`${table}_${column}_check`] : []),
|
|
464
|
+
...(config.unique ?? []).map((set) => `${table}_${set.join("_")}_key`),
|
|
465
|
+
...(config.indexes ?? []).map((set) => `${table}_${set.join("_")}_idx`)
|
|
466
|
+
].find((name) => name.length > MAX_IDENTIFIER);
|
|
467
|
+
return long === void 0 ? void 0 : `${long} is longer than ${String(MAX_IDENTIFIER)} characters; use shorter table or column names`;
|
|
468
|
+
}
|
|
469
|
+
/** The defaults `isAppDefault` accepts, per type, as a message names them. */
|
|
470
|
+
const DEFAULT_EXAMPLES = {
|
|
471
|
+
text: "a 'quoted' text",
|
|
472
|
+
integer: "a whole number",
|
|
473
|
+
bigint: "a whole number",
|
|
474
|
+
numeric: "a number",
|
|
475
|
+
boolean: "true or false",
|
|
476
|
+
uuid: "gen_random_uuid(), auth.uid() or a 'quoted' value",
|
|
477
|
+
timestamptz: "now() or a 'quoted' value",
|
|
478
|
+
date: "now() or a 'quoted' value",
|
|
479
|
+
jsonb: "'{}' or '[]'",
|
|
480
|
+
"text[]": "'{}'"
|
|
481
|
+
};
|
|
482
|
+
/**
|
|
483
|
+
* Why `value` can't be the default of `column`, or `undefined` when it can:
|
|
484
|
+
* it must be on the `isAppDefault` allowlist, one of the column's
|
|
485
|
+
* `options`, and inside its bounds (`min`, `max`, or those of its format).
|
|
486
|
+
*/
|
|
487
|
+
function appDefaultError(column, value) {
|
|
488
|
+
const { type } = column;
|
|
489
|
+
if (!isAppDefault(type, value)) return `A ${type} column takes ${DEFAULT_EXAMPLES[type]} as its default.`;
|
|
490
|
+
const literal = TEXT_LITERAL.test(value) ? value.slice(1, -1).replaceAll("''", "'") : void 0;
|
|
491
|
+
if (type === "text" && column.options !== void 0 && literal !== void 0 && !column.options.includes(literal)) return `The default must be one of the options: ${column.options.join(", ")}.`;
|
|
492
|
+
const bounds = column.format === void 0 ? void 0 : FIELD_FORMATS[column.format].bounds;
|
|
493
|
+
const min = column.min ?? bounds?.[0];
|
|
494
|
+
const max = column.max ?? bounds?.[1];
|
|
495
|
+
const size = type === "text" ? literal?.length : NUMBER.test(value) ? Number(value) : void 0;
|
|
496
|
+
if (size === void 0) return;
|
|
497
|
+
const what = type === "text" ? "length" : "value";
|
|
498
|
+
if (min !== void 0 && size < min) return `The default's ${what} is below the minimum of ${String(min)}.`;
|
|
499
|
+
if (max !== void 0 && size > max) return `The default's ${what} is above the maximum of ${String(max)}.`;
|
|
500
|
+
}
|
|
501
|
+
/** Whether `value` is a default `type` accepts; see `AppColumnConfig.default`. */
|
|
502
|
+
function isAppDefault(type, value) {
|
|
503
|
+
switch (value) {
|
|
504
|
+
case "now()": return type === "timestamptz" || type === "date";
|
|
505
|
+
case "gen_random_uuid()":
|
|
506
|
+
case "auth.uid()": return type === "uuid";
|
|
507
|
+
case "true":
|
|
508
|
+
case "false": return type === "boolean";
|
|
509
|
+
case "'{}'": return type === "jsonb" || type === "text[]" || type === "text";
|
|
510
|
+
case "'[]'": return type === "jsonb" || type === "text";
|
|
511
|
+
}
|
|
512
|
+
if (INTEGER.test(value)) return type === "integer" || type === "bigint" || type === "numeric";
|
|
513
|
+
if (NUMBER.test(value)) return type === "numeric";
|
|
514
|
+
return value.length <= MAX_LITERAL && TEXT_LITERAL.test(value) && (type === "text" || type === "uuid" || type === "date" || type === "timestamptz");
|
|
515
|
+
}
|
|
516
|
+
function referenceOf(where, value, type, nullable, tables) {
|
|
517
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
518
|
+
checkKeys(where, value, REFERENCE_KEYS);
|
|
519
|
+
const { table, block, onDelete } = value;
|
|
520
|
+
if (typeof table !== "string") throw new TypeError(`${where}.table must be a string`);
|
|
521
|
+
if (onDelete !== void 0 && !isOnDelete(onDelete)) throw new TypeError(`${where}.onDelete must be one of ${[...ON_DELETE].join(", ")}`);
|
|
522
|
+
if (onDelete === "set null" && !nullable) throw new TypeError(`${where}.onDelete: "set null" needs a nullable column`);
|
|
523
|
+
const deletes = onDelete === void 0 ? {} : { onDelete };
|
|
524
|
+
if (block !== void 0) {
|
|
525
|
+
if (typeof block !== "string" || !BLOCK_NAME.test(block)) throw new TypeError(`${where}.block must be a block name`);
|
|
526
|
+
if (!IDENT.test(table)) throw new TypeError(`${where}.table: "${table}" is not a logical table name of the ${block} block`);
|
|
527
|
+
return {
|
|
528
|
+
block,
|
|
529
|
+
table,
|
|
530
|
+
...deletes
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
const id = table === "auth.users" ? "uuid" : tables.get(table);
|
|
534
|
+
if (id === void 0) throw new TypeError(`${where}.table: "${table}" is neither an app table nor ${AUTH_USERS}; reference a block table with { block, table }`);
|
|
535
|
+
if (type !== id) throw new TypeError(`${where}: a reference to ${table} needs a ${id} column, not ${type}`);
|
|
536
|
+
return {
|
|
537
|
+
table,
|
|
538
|
+
...deletes
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
function columnOf(where, value, tables) {
|
|
542
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
543
|
+
checkKeys(where, value, COLUMN_KEYS);
|
|
544
|
+
const { type } = value;
|
|
545
|
+
if (!isColumnType(type)) throw new TypeError(`${where}.type must be one of ${APP_COLUMN_TYPES.join(", ")}${type === "money" ? " (store money as bigint minor units next to a text currency column)" : ""}`);
|
|
546
|
+
const nullable = optionalBoolean(`${where}.nullable`, value["nullable"]);
|
|
547
|
+
const unique = optionalBoolean(`${where}.unique`, value["unique"]);
|
|
548
|
+
const fallback = value["default"];
|
|
549
|
+
if (fallback !== void 0 && (typeof fallback !== "string" || !isAppDefault(type, fallback))) throw new TypeError(`${where}.default: ${JSON.stringify(fallback)} is not an allowed ${type} default (now(), gen_random_uuid(), auth.uid(), true, false, a number, a 'quoted' literal, '{}' or '[]')`);
|
|
550
|
+
const references = value["references"] === void 0 ? void 0 : referenceOf(`${where}.references`, value["references"], type, nullable !== false, tables);
|
|
551
|
+
const format = formatOf(`${where}.format`, value["format"], type);
|
|
552
|
+
const options = optionsOf(`${where}.options`, value["options"], type);
|
|
553
|
+
const min = boundOf(`${where}.min`, value["min"], type);
|
|
554
|
+
const max = boundOf(`${where}.max`, value["max"], type);
|
|
555
|
+
const comment = commentOf(`${where}.comment`, value["comment"]);
|
|
556
|
+
const identity = identityOf(`${where}.identity`, value["identity"], value, type);
|
|
557
|
+
const access = accessOf(`${where}.access`, value["access"]);
|
|
558
|
+
if (access !== void 0 && nullable === false && fallback === void 0 && identity !== true) throw new TypeError(`${where}: signed-in users can't write a column with access ${access}, so a required one needs a default`);
|
|
559
|
+
if (options !== void 0 && format !== void 0) throw new TypeError(`${where}: options make a select; drop the format ${format}`);
|
|
560
|
+
if (min !== void 0 && max !== void 0 && min > max) throw new TypeError(`${where}: min ${String(min)} is above max ${String(max)}`);
|
|
561
|
+
const outside = typeof fallback === "string" ? appDefaultError({
|
|
562
|
+
type,
|
|
563
|
+
...options === void 0 ? {} : { options },
|
|
564
|
+
...min === void 0 ? {} : { min },
|
|
565
|
+
...max === void 0 ? {} : { max },
|
|
566
|
+
...format === void 0 ? {} : { format }
|
|
567
|
+
}, fallback) : void 0;
|
|
568
|
+
if (outside !== void 0) throw new TypeError(`${where}.default: ${outside}`);
|
|
569
|
+
return {
|
|
570
|
+
type,
|
|
571
|
+
...nullable === void 0 ? {} : { nullable },
|
|
572
|
+
...fallback === void 0 ? {} : { default: fallback },
|
|
573
|
+
...unique === void 0 ? {} : { unique },
|
|
574
|
+
...references === void 0 ? {} : { references },
|
|
575
|
+
...format === void 0 ? {} : { format },
|
|
576
|
+
...options === void 0 ? {} : { options },
|
|
577
|
+
...min === void 0 ? {} : { min },
|
|
578
|
+
...max === void 0 ? {} : { max },
|
|
579
|
+
...comment === void 0 ? {} : { comment },
|
|
580
|
+
...identity === void 0 ? {} : { identity },
|
|
581
|
+
...access === void 0 ? {} : { access }
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
function namedColumn(where, value, columns) {
|
|
585
|
+
if (typeof value !== "string" || !columns.has(value)) throw new TypeError(`${where} must name a column of the table (${[...columns].join(", ")})`);
|
|
586
|
+
return value;
|
|
587
|
+
}
|
|
588
|
+
function searchOf(where, value, columns) {
|
|
589
|
+
if (value === void 0) return;
|
|
590
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
591
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["title", "body"]));
|
|
592
|
+
const { title, body } = value;
|
|
593
|
+
if (body !== void 0 && !Array.isArray(body)) throw new TypeError(`${where}.body must be a list of columns`);
|
|
594
|
+
return {
|
|
595
|
+
...title === void 0 ? {} : { title: namedColumn(`${where}.title`, title, columns) },
|
|
596
|
+
...body === void 0 ? {} : { body: body.map((each) => namedColumn(`${where}.body`, each, columns)) }
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
function permissionsOf(where, value) {
|
|
600
|
+
if (value === void 0) return;
|
|
601
|
+
if (!isObject(value) || Object.values(value).some((key) => typeof key !== "string" || key === "")) throw new TypeError(`${where} must map each action to a permission key`);
|
|
602
|
+
return Object.fromEntries(Object.entries(value).map(([action, key]) => [action, String(key)]));
|
|
603
|
+
}
|
|
604
|
+
function rankOf(where, value, columns) {
|
|
605
|
+
if (value === void 0 || value === true) return value;
|
|
606
|
+
if (!isObject(value)) throw new TypeError(`${where} must be true or { group }`);
|
|
607
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["group"]));
|
|
608
|
+
return value["group"] === void 0 ? {} : { group: namedColumn(`${where}.group`, value["group"], columns) };
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* `subject.versions` checked: `true`, or `columns` from the table's own
|
|
612
|
+
* columns (not its id, scope or timestamps, which a restore must not
|
|
613
|
+
* write) and `auto`.
|
|
614
|
+
*/
|
|
615
|
+
function versionsOf(where, value, editable) {
|
|
616
|
+
if (value === void 0 || value === true) return value;
|
|
617
|
+
if (!isObject(value)) throw new TypeError(`${where} must be true or { columns, auto }`);
|
|
618
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["columns", "auto"]));
|
|
619
|
+
const { columns } = value;
|
|
620
|
+
if (columns !== void 0 && (!Array.isArray(columns) || columns.length === 0)) throw new TypeError(`${where}.columns must list one or more columns`);
|
|
621
|
+
const listed = columns?.map((name, index) => namedColumn(`${where}.columns[${index}]`, name, editable));
|
|
622
|
+
const auto = optionalBoolean(`${where}.auto`, value["auto"]);
|
|
623
|
+
return {
|
|
624
|
+
...listed === void 0 ? {} : { columns: [...new Set(listed)] },
|
|
625
|
+
...auto === void 0 ? {} : { auto }
|
|
626
|
+
};
|
|
627
|
+
}
|
|
628
|
+
/** The columns and snapshot mode `subject.versions` registers with the versions block. */
|
|
629
|
+
function appTableVersions(table) {
|
|
630
|
+
const versions = table.subject?.versions;
|
|
631
|
+
if (versions === void 0) return;
|
|
632
|
+
const options = versions === true ? {} : versions;
|
|
633
|
+
return {
|
|
634
|
+
columns: options.columns ?? Object.keys(table.columns ?? {}),
|
|
635
|
+
auto: options.auto ?? true
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* `subject` checked against the table's columns. `columns` holds every
|
|
640
|
+
* column the table has, the ones `rank` and `softDelete` add included;
|
|
641
|
+
* `editable` holds the table's own columns.
|
|
642
|
+
*/
|
|
643
|
+
function subjectOf(where, value, columns, editable) {
|
|
644
|
+
if (value === void 0) return;
|
|
645
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
646
|
+
checkKeys(where, value, SUBJECT_KEYS);
|
|
647
|
+
const { type, title, url } = value;
|
|
648
|
+
if (typeof type !== "string" || !IDENT.test(type)) throw new TypeError(`${where}.type must be lowercase letters, digits and underscores, starting with a letter`);
|
|
649
|
+
if (url !== void 0) {
|
|
650
|
+
if (typeof url !== "string" || !url.startsWith("/")) throw new TypeError(`${where}.url must be a path starting with /`);
|
|
651
|
+
for (const [, name] of url.matchAll(PLACEHOLDER)) namedColumn(`${where}.url {${name ?? ""}}`, name, columns);
|
|
652
|
+
}
|
|
653
|
+
const search = searchOf(`${where}.search`, value["search"], columns);
|
|
654
|
+
const permissions = permissionsOf(`${where}.permissions`, value["permissions"]);
|
|
655
|
+
const rank = rankOf(`${where}.rank`, value["rank"], columns);
|
|
656
|
+
const softDelete = optionalBoolean(`${where}.softDelete`, value["softDelete"]);
|
|
657
|
+
const versions = versionsOf(`${where}.versions`, value["versions"], editable);
|
|
658
|
+
return {
|
|
659
|
+
type,
|
|
660
|
+
...title === void 0 ? {} : { title: namedColumn(`${where}.title`, title, columns) },
|
|
661
|
+
...url === void 0 ? {} : { url },
|
|
662
|
+
...search === void 0 ? {} : { search },
|
|
663
|
+
...permissions === void 0 ? {} : { permissions },
|
|
664
|
+
...rank === void 0 ? {} : { rank },
|
|
665
|
+
...softDelete === void 0 ? {} : { softDelete },
|
|
666
|
+
...versions === void 0 ? {} : { versions }
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
/** The columns the subject adds, which `columns` may not name. */
|
|
670
|
+
function subjectColumnsOf(value) {
|
|
671
|
+
if (!isObject(value)) return [];
|
|
672
|
+
return [...value["rank"] === void 0 ? [] : [APP_RANK_COLUMN], ...value["softDelete"] === true ? [APP_DELETED_AT_COLUMN] : []];
|
|
673
|
+
}
|
|
674
|
+
/** The event kinds `events` turns on; empty without it. */
|
|
675
|
+
function appTableEventKinds(table) {
|
|
676
|
+
const events = table.events;
|
|
677
|
+
if (events === void 0) return [];
|
|
678
|
+
return events === true ? APP_TABLE_EVENT_KINDS : events.on ?? APP_TABLE_EVENT_KINDS;
|
|
679
|
+
}
|
|
680
|
+
/** The event types an app table emits: `<subject type or table>.<kind>`. */
|
|
681
|
+
function appTableEventTypes(name, table) {
|
|
682
|
+
const base = table.subject?.type ?? name;
|
|
683
|
+
return appTableEventKinds(table).map((kind) => `${base}.${kind}`);
|
|
684
|
+
}
|
|
685
|
+
function isEventKind(value) {
|
|
686
|
+
return APP_TABLE_EVENT_KINDS.some((kind) => kind === value);
|
|
687
|
+
}
|
|
688
|
+
/** `events` checked: `true`, or `on` from the event kinds and `include` from the table's columns. */
|
|
689
|
+
function eventsOf(where, value, columns) {
|
|
690
|
+
if (value === void 0 || value === true) return value;
|
|
691
|
+
if (!isObject(value)) throw new TypeError(`${where} must be true or { on, include }`);
|
|
692
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["on", "include"]));
|
|
693
|
+
const { on, include } = value;
|
|
694
|
+
if (on !== void 0 && (!Array.isArray(on) || on.length === 0 || !on.every(isEventKind))) throw new TypeError(`${where}.on must list one or more of ${APP_TABLE_EVENT_KINDS.join(", ")}`);
|
|
695
|
+
if (include !== void 0 && !Array.isArray(include)) throw new TypeError(`${where}.include must be a list of columns`);
|
|
696
|
+
const included = include?.map((name, index) => namedColumn(`${where}.include[${index}]`, name, columns));
|
|
697
|
+
return {
|
|
698
|
+
...on === void 0 ? {} : { on: [...new Set(on)] },
|
|
699
|
+
...included === void 0 ? {} : { include: [...new Set(included)] }
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
function tableOf(where, value, tables, reserved) {
|
|
703
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
704
|
+
checkKeys(where, value, TABLE_KEYS);
|
|
705
|
+
const { scope, columns, id } = value;
|
|
706
|
+
if (scope !== void 0 && !isScope(scope)) throw new TypeError(`${where}.scope must be inherit, user or none`);
|
|
707
|
+
if (id !== void 0 && id !== "uuid" && id !== "bigint") throw new TypeError(`${where}.id must be uuid or bigint`);
|
|
708
|
+
const unique = keySetsOf(`${where}.unique`, value["unique"]);
|
|
709
|
+
const indexes = keySetsOf(`${where}.indexes`, value["indexes"]);
|
|
710
|
+
const comment = commentOf(`${where}.comment`, value["comment"]);
|
|
711
|
+
const timestamps = optionalBoolean(`${where}.timestamps`, value["timestamps"]);
|
|
712
|
+
if (columns !== void 0 && !isObject(columns)) throw new TypeError(`${where}.columns must be an object keyed by column`);
|
|
713
|
+
const added = subjectColumnsOf(value["subject"]);
|
|
714
|
+
const resolved = Object.entries(columns ?? {}).map(([name, column]) => {
|
|
715
|
+
const at = `${where}.columns.${name}`;
|
|
716
|
+
const invalid = appIdentifierError(name);
|
|
717
|
+
if (invalid !== void 0) throw new TypeError(`${at}: "${name}" is not a column name. ${invalid}`);
|
|
718
|
+
if (reserved.has(name)) throw new TypeError(`${at}: "${name}" is a column every app table gets (${[...reserved].join(", ")})`);
|
|
719
|
+
if (added.includes(name)) throw new TypeError(`${at}: "${name}" is the column ${where}.subject adds; remove it from columns`);
|
|
720
|
+
return [name, columnOf(at, column, tables)];
|
|
721
|
+
});
|
|
722
|
+
const subject = subjectOf(`${where}.subject`, value["subject"], /* @__PURE__ */ new Set([
|
|
723
|
+
...reserved,
|
|
724
|
+
...added,
|
|
725
|
+
...resolved.map(([name]) => name)
|
|
726
|
+
]), new Set(resolved.map(([name]) => name)));
|
|
727
|
+
const events = eventsOf(`${where}.events`, value["events"], /* @__PURE__ */ new Set([
|
|
728
|
+
...reserved,
|
|
729
|
+
...added,
|
|
730
|
+
...resolved.map(([name]) => name)
|
|
731
|
+
]));
|
|
732
|
+
return {
|
|
733
|
+
...columns === void 0 ? {} : { columns: Object.fromEntries(resolved) },
|
|
734
|
+
...scope === void 0 ? {} : { scope },
|
|
735
|
+
...timestamps === void 0 ? {} : { timestamps },
|
|
736
|
+
...id === void 0 ? {} : { id },
|
|
737
|
+
...unique === void 0 ? {} : { unique },
|
|
738
|
+
...indexes === void 0 ? {} : { indexes },
|
|
739
|
+
...comment === void 0 ? {} : { comment },
|
|
740
|
+
...subject === void 0 ? {} : { subject },
|
|
741
|
+
...events === void 0 ? {} : { events }
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* `appTables` checked: lower snake table and column names, column types
|
|
746
|
+
* from `APP_COLUMN_TYPES`, defaults from the allowlist, no reserved
|
|
747
|
+
* columns, and references to another app table, `auth.users` or a block's
|
|
748
|
+
* logical table. Whether a referenced block is installed, and whether a
|
|
749
|
+
* name clashes with a block table, is checked when the SQL renders, where
|
|
750
|
+
* the block registry is known. Throws a `TypeError` naming the key.
|
|
751
|
+
*/
|
|
752
|
+
function appTablesOf(value, tenant) {
|
|
753
|
+
if (value === void 0) return {};
|
|
754
|
+
if (!isObject(value)) throw new TypeError("appTables must be an object keyed by table name");
|
|
755
|
+
const tables = new Map(Object.entries(value).map(([name, table]) => [name, isObject(table) && table["id"] === "bigint" ? "bigint" : "uuid"]));
|
|
756
|
+
const reserved = new Set(appReservedColumns(tenant));
|
|
757
|
+
const resolved = Object.fromEntries(Object.entries(value).map(([name, table]) => {
|
|
758
|
+
const invalid = appIdentifierError(name);
|
|
759
|
+
if (invalid !== void 0) throw new TypeError(`appTables.${name}: "${name}" is not a table name. ${invalid}`);
|
|
760
|
+
const checked = tableOf(`appTables.${name}`, table, tables, reserved);
|
|
761
|
+
const long = appNameLengthError(name, checked);
|
|
762
|
+
if (long !== void 0) throw new TypeError(`appTables.${name}: ${long}`);
|
|
763
|
+
return [name, checked];
|
|
764
|
+
}));
|
|
765
|
+
const checked = Object.fromEntries(Object.entries(resolved).map(([name, table]) => {
|
|
766
|
+
const where = `appTables.${name}`;
|
|
767
|
+
const computed = computedOf(where, value[name], name, resolved, /* @__PURE__ */ new Set([
|
|
768
|
+
...reserved,
|
|
769
|
+
...Object.keys(table.columns ?? {}),
|
|
770
|
+
...subjectColumnsOf(table.subject)
|
|
771
|
+
]));
|
|
772
|
+
const withComputed = {
|
|
773
|
+
...table,
|
|
774
|
+
...computed
|
|
775
|
+
};
|
|
776
|
+
if (hasComputed(withComputed) && Object.hasOwn(resolved, `${name}_view`)) throw new TypeError(`${where}: its rollups and lookups go in the view ${name}_view, which is also an app table; rename one`);
|
|
777
|
+
return [name, withComputed];
|
|
778
|
+
}));
|
|
779
|
+
checkColumnAccess(checked);
|
|
780
|
+
return checked;
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
783
|
+
* `subjects` with the subject of every app table that sets one (ADR 0043):
|
|
784
|
+
* the table in `public`, its id type, and its tenant column, or `false`
|
|
785
|
+
* for a table kept per user or shared. `scope` is `sql.scope` and `tenant`
|
|
786
|
+
* is `sql.naming.tenant`. Throws when a type is taken twice.
|
|
787
|
+
*/
|
|
788
|
+
function withAppTableSubjects(subjects, appTables, scope, tenant = "organization") {
|
|
789
|
+
const merged = { ...subjects };
|
|
790
|
+
for (const [name, table] of Object.entries(appTables)) {
|
|
791
|
+
const subject = table.subject;
|
|
792
|
+
if (subject === void 0) continue;
|
|
793
|
+
const where = `appTables.${name}.subject`;
|
|
794
|
+
if (Object.hasOwn(merged, subject.type)) throw new TypeError(`${where}.type: "${subject.type}" is already a subject type; choose another type or remove subjects.${subject.type}`);
|
|
795
|
+
const kept = table.scope === void 0 || table.scope === "inherit" ? scope ?? "tenant" : table.scope;
|
|
796
|
+
merged[subject.type] = {
|
|
797
|
+
table: `public.${name}`,
|
|
798
|
+
idType: table.id ?? "uuid",
|
|
799
|
+
tenant: kept === "tenant" ? `${tenant}_id` : false,
|
|
800
|
+
...subject.title === void 0 ? {} : { title: subject.title },
|
|
801
|
+
...subject.url === void 0 ? {} : { url: subject.url },
|
|
802
|
+
...subject.search === void 0 ? {} : { search: subject.search },
|
|
803
|
+
...subject.permissions === void 0 ? {} : { permissions: subject.permissions },
|
|
804
|
+
...subject.softDelete === true ? { deletedAt: APP_DELETED_AT_COLUMN } : {},
|
|
805
|
+
...versionsEntry(table),
|
|
806
|
+
...subject.rank === void 0 ? {} : { rank: {
|
|
807
|
+
column: APP_RANK_COLUMN,
|
|
808
|
+
...subject.rank === true || subject.rank.group === void 0 ? {} : { group: subject.rank.group }
|
|
809
|
+
} }
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
return merged;
|
|
813
|
+
}
|
|
814
|
+
function versionsEntry(table) {
|
|
815
|
+
const versions = appTableVersions(table);
|
|
816
|
+
return versions === void 0 ? {} : { versions };
|
|
817
|
+
}
|
|
818
|
+
//#endregion
|
|
819
|
+
export { APP_TABLE_EVENT_KINDS as C, APP_ROLLUP_AGGREGATES as S, hasColumnAccess as _, appDefaultError as a, APP_COLUMN_TYPES as b, appReservedColumns as c, appTableVersions as d, appTablesOf as f, columnsWithAccess as g, hasComputed as h, AUTH_USERS as i, appTableEventKinds as l, withAppTableSubjects as m, APP_NAME_MAX as n, appIdentifierError as o, isAppDefault as p, APP_RANK_COLUMN as r, appNameLengthError as s, APP_DELETED_AT_COLUMN as t, appTableEventTypes as u, APP_COLUMN_ACCESS as v, APP_ON_DELETE_ACTIONS as x, APP_COLUMN_FORMATS as y };
|