better-supabase 0.12.0 → 0.14.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 +129 -96
- package/dist/access-sql-CPoq9F86.js +207 -0
- package/dist/access-z7NwWtqx.js +34 -0
- package/dist/actor-CoveJgya.d.ts +106 -0
- package/dist/actor-hNajGNEK.js +150 -0
- package/dist/adapter-BCFAg58A.js +2190 -0
- package/dist/agents-CmZlLPXC.d.ts +117 -0
- package/dist/ai-cache-BxlOkc_M.d.ts +82 -0
- package/dist/ai-cache-DQikwXhJ.js +87 -0
- package/dist/ai-chat-DBxEz3o1.d.ts +619 -0
- package/dist/ai-files-t-kHmS5H.js +339 -0
- package/dist/ai-sdk/agents/index.d.ts +64 -52
- package/dist/ai-sdk/agents/index.js +35 -27
- package/dist/ai-sdk/batches/index.d.ts +16 -7
- package/dist/ai-sdk/batches/index.js +5 -5
- package/dist/ai-sdk/cache/index.d.ts +6 -3
- package/dist/ai-sdk/cache/index.js +1 -1
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +10 -10
- package/dist/ai-sdk/embeddings/index.d.ts +2 -2
- package/dist/ai-sdk/embeddings/index.js +1 -1
- package/dist/ai-sdk/files/index.d.ts +9 -9
- package/dist/ai-sdk/files/index.js +10 -10
- package/dist/ai-sdk/index.d.ts +48 -24
- package/dist/ai-sdk/index.js +50 -9
- package/dist/ai-sdk/mcp/index.d.ts +32 -26
- package/dist/ai-sdk/mcp/index.js +20 -20
- package/dist/ai-sdk/memory/index.d.ts +9 -9
- package/dist/ai-sdk/memory/index.js +6 -6
- package/dist/ai-sdk/react/index.d.ts +1 -1
- package/dist/ai-sdk/react/index.js +1 -1
- package/dist/ai-sdk/react/server.d.ts +5 -2
- package/dist/ai-sdk/react/server.js +4 -1
- package/dist/ai-sdk/workflow/index.d.ts +57 -36
- package/dist/ai-sdk/workflow/index.js +29 -23
- package/dist/ai-sdk/workflow/react/index.d.ts +7 -8
- package/dist/ai-sdk/workflow/react/index.js +7 -8
- package/dist/ai-sdk/workflow/react/server.d.ts +1 -1
- package/dist/ai-tasks-BDywBUgN.d.ts +166 -0
- package/dist/anchors-7F34QyHa.d.ts +40 -0
- package/dist/announcements-BeOD0zbc.js +128 -0
- package/dist/api-CWhpq24a.d.ts +174 -0
- package/dist/api-DKp2Ggz_.js +685 -0
- package/dist/api-keys-CboAenU8.d.ts +213 -0
- package/dist/api-keys-DT6Fi50R.js +318 -0
- package/dist/app-tables-BHrzAUFJ.d.ts +27 -0
- package/dist/app-tables-C5aoI5rZ.js +959 -0
- package/dist/approvals-bMb7dsBY.d.ts +129 -0
- package/dist/arazzo/index.d.ts +59 -36
- package/dist/arazzo/index.js +49 -41
- package/dist/assistant-D1yev_fR.d.ts +157 -0
- package/dist/astro/index.d.ts +44 -22
- package/dist/astro/index.js +14 -11
- package/dist/asyncapi/index.d.ts +23 -16
- package/dist/asyncapi/index.js +23 -20
- package/dist/attachments-Cjdgarpa.js +351 -0
- package/dist/attributes-BOFl922R.js +44 -0
- package/dist/audit-log-C3rQxeHd.js +788 -0
- package/dist/auth-DyF_LRxd.js +20 -0
- package/dist/auth-link-B4NL84XU.d.ts +104 -0
- package/dist/auth-link-D3-bU6yz.js +118 -0
- package/dist/auth-module-BEFESDC4.js +44 -0
- package/dist/auth-reply-jVKoAV6R.js +31 -0
- package/dist/authorization-BuT26_sR.d.ts +3455 -0
- package/dist/authorization-hooks-dLmUO_PZ.d.ts +217 -0
- package/dist/authorizer-DFP3gHv8.d.ts +82 -0
- package/dist/authorizer-DPTeL-7h.js +125 -0
- package/dist/availability-q3dZoZYM.d.ts +226 -0
- package/dist/base64-B9Wlsdj7.js +42 -0
- package/dist/before-route-B23K2zYU.js +30 -0
- package/dist/better-result/index.d.ts +26 -18
- package/dist/better-result/index.js +13 -9
- package/dist/bind-Dz8y3T5T.d.ts +95 -0
- package/dist/block-authors-BRTlT0qv.js +14 -0
- package/dist/block-authors-DzXLUiIq.d.ts +12 -0
- package/dist/block-controller-DTGuBemi.js +112 -0
- package/dist/block-env-DJiUu1fq.js +35 -0
- package/dist/block-env-kFcaaJLM.d.ts +10 -0
- package/dist/block-env-options-2e6IQrSw.js +26 -0
- package/dist/block-event-listener-Bu6G0TFH.js +16 -0
- package/dist/block-events-pBXPzwnW.js +83 -0
- package/dist/block-events-records-BGVyoz57.d.ts +343 -0
- package/dist/block-fields-3w4MZr8U.d.ts +58 -0
- package/dist/block-fields-DBSJSeaO.js +139 -0
- package/dist/block-helpers-BaugZlJV.d.ts +62 -0
- package/dist/block-helpers-CiKtrb6g.js +353 -0
- package/dist/block-hooks-BymdcD0V.js +130 -0
- package/dist/block-hooks-CmjPKqQ_.d.ts +117 -0
- package/dist/block-method-Bvsao626.js +21 -0
- package/dist/block-method-hsPAGFi5.d.ts +19 -0
- package/dist/block-names-Dbv_2wmE.js +66 -0
- package/dist/block-subjects-Dzq5Xn_0.js +55 -0
- package/dist/block-subjects-FHwLlIHU.d.ts +6 -0
- package/dist/block-tenant-C1sNV8_4.js +14 -0
- package/dist/block-transport-d53POsem.d.ts +69 -0
- package/dist/blocks/access/index.d.ts +9 -0
- package/dist/blocks/access/index.js +18 -0
- package/dist/blocks/access/react/index.d.ts +52 -0
- package/dist/blocks/access/react/index.js +73 -0
- package/dist/blocks/access/react/server.d.ts +11 -0
- package/dist/blocks/access/react/server.js +16 -0
- package/dist/blocks/access/solid/index.d.ts +13 -0
- package/dist/blocks/access/solid/index.js +14 -0
- package/dist/blocks/access/svelte/index.d.ts +13 -0
- package/dist/blocks/access/svelte/index.js +14 -0
- package/dist/blocks/access/vue/index.d.ts +13 -0
- package/dist/blocks/access/vue/index.js +14 -0
- package/dist/blocks/access-requests/index.d.ts +21 -15
- package/dist/blocks/access-requests/index.js +11 -9
- package/dist/blocks/activity/index.d.ts +116 -0
- package/dist/blocks/activity/index.js +164 -0
- package/dist/blocks/agents/index.d.ts +4 -4
- package/dist/blocks/agents/index.js +6 -7
- package/dist/blocks/ai-cache/index.d.ts +3 -3
- package/dist/blocks/ai-cache/index.js +3 -3
- package/dist/blocks/ai-chat/index.d.ts +10 -7
- package/dist/blocks/ai-chat/index.js +4 -4
- package/dist/blocks/ai-chat/react/index.d.ts +18 -9
- package/dist/blocks/ai-chat/react/index.js +8 -8
- package/dist/blocks/ai-chat/react/server.d.ts +12 -3
- package/dist/blocks/ai-chat/react/server.js +12 -3
- package/dist/blocks/ai-chat/solid/index.d.ts +3 -3
- package/dist/blocks/ai-chat/solid/index.js +2 -2
- package/dist/blocks/ai-chat/svelte/index.d.ts +3 -3
- package/dist/blocks/ai-chat/svelte/index.js +2 -2
- package/dist/blocks/ai-chat/vue/index.d.ts +3 -3
- package/dist/blocks/ai-chat/vue/index.js +2 -2
- package/dist/blocks/ai-files/index.d.ts +5 -5
- package/dist/blocks/ai-files/index.js +3 -3
- package/dist/blocks/ai-providers/index.d.ts +4 -4
- package/dist/blocks/ai-providers/index.js +8 -9
- package/dist/blocks/ai-tasks/index.d.ts +3 -3
- package/dist/blocks/ai-tasks/index.js +9 -10
- package/dist/blocks/announcements/index.d.ts +4 -4
- package/dist/blocks/announcements/index.js +5 -5
- package/dist/blocks/announcements/react/index.d.ts +12 -5
- package/dist/blocks/announcements/react/index.js +7 -7
- package/dist/blocks/announcements/react/server.d.ts +4 -1
- package/dist/blocks/announcements/react/server.js +4 -1
- package/dist/blocks/announcements/solid/index.d.ts +3 -3
- package/dist/blocks/announcements/solid/index.js +2 -2
- package/dist/blocks/announcements/svelte/index.d.ts +3 -3
- package/dist/blocks/announcements/svelte/index.js +2 -2
- package/dist/blocks/announcements/vue/index.d.ts +3 -3
- package/dist/blocks/announcements/vue/index.js +2 -2
- package/dist/blocks/api-keys/index.d.ts +11 -8
- package/dist/blocks/api-keys/index.js +8 -8
- package/dist/blocks/api-keys/react/index.d.ts +11 -8
- package/dist/blocks/api-keys/react/index.js +9 -9
- package/dist/blocks/api-keys/react/server.d.ts +1 -1
- package/dist/blocks/api-keys/solid/index.d.ts +3 -3
- package/dist/blocks/api-keys/solid/index.js +2 -2
- package/dist/blocks/api-keys/svelte/index.d.ts +3 -3
- package/dist/blocks/api-keys/svelte/index.js +2 -2
- package/dist/blocks/api-keys/vue/index.d.ts +3 -3
- package/dist/blocks/api-keys/vue/index.js +2 -2
- package/dist/blocks/approvals/index.d.ts +4 -4
- package/dist/blocks/approvals/index.js +29 -25
- package/dist/blocks/assets/index.d.ts +283 -0
- package/dist/blocks/assets/index.js +288 -0
- package/dist/blocks/assignment/index.d.ts +124 -0
- package/dist/blocks/assignment/index.js +141 -0
- package/dist/blocks/attachments/index.d.ts +45 -6
- package/dist/blocks/attachments/index.js +96 -7
- package/dist/blocks/attachments/react/index.d.ts +53 -0
- package/dist/blocks/attachments/react/index.js +78 -0
- package/dist/blocks/attachments/react/server.d.ts +9 -0
- package/dist/blocks/attachments/react/server.js +10 -0
- package/dist/blocks/attachments/solid/index.d.ts +13 -0
- package/dist/blocks/attachments/solid/index.js +14 -0
- package/dist/blocks/attachments/svelte/index.d.ts +13 -0
- package/dist/blocks/attachments/svelte/index.js +14 -0
- package/dist/blocks/attachments/vue/index.d.ts +13 -0
- package/dist/blocks/attachments/vue/index.js +14 -0
- package/dist/blocks/audit/index.d.ts +14 -8
- package/dist/blocks/audit/index.js +9 -10
- package/dist/blocks/audit/react/index.d.ts +12 -7
- package/dist/blocks/audit/react/index.js +12 -10
- package/dist/blocks/audit/react/server.d.ts +1 -1
- package/dist/blocks/audit/solid/index.d.ts +3 -3
- package/dist/blocks/audit/solid/index.js +2 -2
- package/dist/blocks/audit/svelte/index.d.ts +3 -3
- package/dist/blocks/audit/svelte/index.js +2 -2
- package/dist/blocks/audit/vue/index.d.ts +3 -3
- package/dist/blocks/audit/vue/index.js +2 -2
- package/dist/blocks/billable-time/index.d.ts +203 -0
- package/dist/blocks/billable-time/index.js +260 -0
- package/dist/blocks/billing/index.d.ts +144 -53
- package/dist/blocks/billing/index.js +165 -47
- package/dist/blocks/billing/react/index.d.ts +19 -9
- package/dist/blocks/billing/react/index.js +12 -8
- package/dist/blocks/billing/react/server.d.ts +5 -2
- package/dist/blocks/billing/react/server.js +4 -1
- package/dist/blocks/billing/solid/index.d.ts +3 -3
- package/dist/blocks/billing/solid/index.js +2 -2
- package/dist/blocks/billing/svelte/index.d.ts +3 -3
- package/dist/blocks/billing/svelte/index.js +2 -2
- package/dist/blocks/billing/vue/index.d.ts +3 -3
- package/dist/blocks/billing/vue/index.js +2 -2
- package/dist/blocks/bookings/index.d.ts +19 -9
- package/dist/blocks/bookings/index.js +9 -7
- package/dist/blocks/bookings/react/index.d.ts +9 -4
- package/dist/blocks/bookings/react/index.js +12 -8
- package/dist/blocks/bookings/react/server.d.ts +4 -1
- package/dist/blocks/bookings/react/server.js +4 -1
- package/dist/blocks/bookings/solid/index.d.ts +3 -3
- package/dist/blocks/bookings/solid/index.js +2 -2
- package/dist/blocks/bookings/svelte/index.d.ts +3 -3
- package/dist/blocks/bookings/svelte/index.js +2 -2
- package/dist/blocks/bookings/vue/index.d.ts +3 -3
- package/dist/blocks/bookings/vue/index.js +2 -2
- package/dist/blocks/bulk/index.d.ts +27 -12
- package/dist/blocks/bulk/index.js +5 -5
- package/dist/blocks/calendar/index.d.ts +13 -5
- package/dist/blocks/calendar/index.js +113 -5
- package/dist/blocks/calendar/react/index.d.ts +5 -5
- package/dist/blocks/calendar/react/index.js +8 -8
- package/dist/blocks/calendar/react/server.d.ts +4 -1
- package/dist/blocks/calendar/react/server.js +4 -1
- package/dist/blocks/calendar/solid/index.d.ts +3 -3
- package/dist/blocks/calendar/solid/index.js +2 -2
- package/dist/blocks/calendar/svelte/index.d.ts +3 -3
- package/dist/blocks/calendar/svelte/index.js +2 -2
- package/dist/blocks/calendar/vue/index.d.ts +3 -3
- package/dist/blocks/calendar/vue/index.js +2 -2
- package/dist/blocks/catalog/index.d.ts +48 -36
- package/dist/blocks/catalog/index.js +49 -53
- package/dist/blocks/channels/index.d.ts +111 -0
- package/dist/blocks/channels/index.js +190 -0
- package/dist/blocks/collections/index.d.ts +101 -23
- package/dist/blocks/collections/index.js +88 -13
- package/dist/blocks/comments/index.d.ts +48 -47
- package/dist/blocks/comments/index.js +113 -16
- package/dist/blocks/comments/react/index.d.ts +17 -12
- package/dist/blocks/comments/react/index.js +38 -27
- package/dist/blocks/comments/react/server.d.ts +1 -1
- package/dist/blocks/comments/solid/index.d.ts +3 -3
- package/dist/blocks/comments/solid/index.js +2 -2
- package/dist/blocks/comments/svelte/index.d.ts +3 -3
- package/dist/blocks/comments/svelte/index.js +2 -2
- package/dist/blocks/comments/vue/index.d.ts +3 -3
- package/dist/blocks/comments/vue/index.js +2 -2
- package/dist/blocks/connectors/index.d.ts +4 -4
- package/dist/blocks/connectors/index.js +8 -9
- package/dist/blocks/contracts/index.d.ts +241 -0
- package/dist/blocks/contracts/index.js +361 -0
- package/dist/blocks/controls/index.d.ts +325 -0
- package/dist/blocks/controls/index.js +410 -0
- package/dist/blocks/courses/index.d.ts +341 -0
- package/dist/blocks/courses/index.js +445 -0
- package/dist/blocks/custom-fields/index.d.ts +50 -16
- package/dist/blocks/custom-fields/index.js +27 -22
- package/dist/blocks/data-lifecycle/index.d.ts +75 -51
- package/dist/blocks/data-lifecycle/index.js +17 -12
- package/dist/blocks/deals/index.d.ts +25 -45
- package/dist/blocks/deals/index.js +161 -71
- package/dist/blocks/dispatch/index.d.ts +327 -0
- package/dist/blocks/dispatch/index.js +406 -0
- package/dist/blocks/documents/index.d.ts +8 -5
- package/dist/blocks/documents/index.js +67 -8
- package/dist/blocks/domains/index.d.ts +35 -20
- package/dist/blocks/domains/index.js +9 -10
- package/dist/blocks/donations/index.d.ts +352 -0
- package/dist/blocks/donations/index.js +602 -0
- package/dist/blocks/drive/index.d.ts +91 -28
- package/dist/blocks/drive/index.js +71 -17
- package/dist/blocks/employees/index.d.ts +16 -190
- package/dist/blocks/employees/index.js +107 -38
- package/dist/blocks/engagements/index.d.ts +27 -111
- package/dist/blocks/engagements/index.js +285 -14
- package/dist/blocks/enrichment/index.d.ts +176 -0
- package/dist/blocks/enrichment/index.js +243 -0
- package/dist/blocks/enrollments/index.d.ts +184 -0
- package/dist/blocks/enrollments/index.js +173 -0
- package/dist/blocks/entitlements/index.d.ts +20 -14
- package/dist/blocks/entitlements/index.js +4 -4
- package/dist/blocks/entitlements/react/index.d.ts +10 -7
- package/dist/blocks/entitlements/react/index.js +7 -7
- package/dist/blocks/entitlements/react/server.d.ts +4 -1
- package/dist/blocks/entitlements/react/server.js +4 -1
- package/dist/blocks/entitlements/solid/index.d.ts +3 -3
- package/dist/blocks/entitlements/solid/index.js +2 -2
- package/dist/blocks/entitlements/svelte/index.d.ts +3 -3
- package/dist/blocks/entitlements/svelte/index.js +2 -2
- package/dist/blocks/entitlements/vue/index.d.ts +3 -3
- package/dist/blocks/entitlements/vue/index.js +2 -2
- package/dist/blocks/expenses/index.d.ts +214 -0
- package/dist/blocks/expenses/index.js +279 -0
- package/dist/blocks/field-history/index.d.ts +63 -0
- package/dist/blocks/field-history/index.js +48 -0
- package/dist/blocks/flags/index.d.ts +20 -14
- package/dist/blocks/flags/index.js +9 -10
- package/dist/blocks/forecasts/index.d.ts +119 -0
- package/dist/blocks/forecasts/index.js +129 -0
- package/dist/blocks/forms/index.d.ts +96 -148
- package/dist/blocks/forms/index.js +121 -157
- package/dist/blocks/forms/react/index.d.ts +9 -6
- package/dist/blocks/forms/react/index.js +10 -7
- package/dist/blocks/forms/react/server.d.ts +4 -1
- package/dist/blocks/forms/react/server.js +4 -1
- package/dist/blocks/forms/solid/index.d.ts +3 -3
- package/dist/blocks/forms/solid/index.js +2 -2
- package/dist/blocks/forms/svelte/index.d.ts +3 -3
- package/dist/blocks/forms/svelte/index.js +2 -2
- package/dist/blocks/forms/vue/index.d.ts +3 -3
- package/dist/blocks/forms/vue/index.js +2 -2
- package/dist/blocks/guests/index.d.ts +200 -0
- package/dist/blocks/guests/index.js +224 -0
- package/dist/blocks/hiring/index.d.ts +13 -13
- package/dist/blocks/hiring/index.js +9 -10
- package/dist/blocks/identities/index.d.ts +38 -20
- package/dist/blocks/identities/index.js +16 -11
- package/dist/blocks/imports/index.d.ts +30 -25
- package/dist/blocks/imports/index.js +19 -19
- package/dist/blocks/inbox/index.d.ts +9 -6
- package/dist/blocks/inbox/index.js +118 -54
- package/dist/blocks/inbox/react/index.d.ts +2 -2
- package/dist/blocks/inbox/react/index.js +15 -9
- package/dist/blocks/inbox/react/server.d.ts +12 -6
- package/dist/blocks/inbox/react/server.js +8 -2
- package/dist/blocks/inbox/solid/index.d.ts +6 -6
- package/dist/blocks/inbox/solid/index.js +2 -2
- package/dist/blocks/inbox/svelte/index.d.ts +6 -6
- package/dist/blocks/inbox/svelte/index.js +2 -2
- package/dist/blocks/inbox/vue/index.d.ts +6 -6
- package/dist/blocks/inbox/vue/index.js +2 -2
- package/dist/blocks/incidents/index.d.ts +337 -0
- package/dist/blocks/incidents/index.js +477 -0
- package/dist/blocks/index.d.ts +126 -11
- package/dist/blocks/index.js +171 -193
- package/dist/blocks/inventory/index.d.ts +36 -19
- package/dist/blocks/inventory/index.js +15 -10
- package/dist/blocks/invoices/index.d.ts +13 -13
- package/dist/blocks/invoices/index.js +11 -12
- package/dist/blocks/jobs/index.d.ts +123 -86
- package/dist/blocks/jobs/index.js +59 -49
- package/dist/blocks/knowledge/index.d.ts +3 -3
- package/dist/blocks/knowledge/index.js +3 -3
- package/dist/blocks/lead-scoring/index.d.ts +50 -0
- package/dist/blocks/lead-scoring/index.js +87 -0
- package/dist/blocks/leases/index.d.ts +278 -0
- package/dist/blocks/leases/index.js +319 -0
- package/dist/blocks/leave/index.d.ts +30 -15
- package/dist/blocks/leave/index.js +6 -7
- package/dist/blocks/ledger/index.d.ts +281 -0
- package/dist/blocks/ledger/index.js +229 -0
- package/dist/blocks/mail-sync/index.d.ts +37 -0
- package/dist/blocks/mail-sync/index.js +898 -0
- package/dist/blocks/memory/index.d.ts +4 -4
- package/dist/blocks/memory/index.js +7 -8
- package/dist/blocks/messaging/index.d.ts +86 -0
- package/dist/blocks/messaging/index.js +48 -0
- package/dist/blocks/messaging/react/index.d.ts +39 -0
- package/dist/blocks/messaging/react/index.js +80 -0
- package/dist/blocks/messaging/react/server.d.ts +12 -0
- package/dist/blocks/messaging/react/server.js +14 -0
- package/dist/blocks/messaging/solid/index.d.ts +20 -0
- package/dist/blocks/messaging/solid/index.js +23 -0
- package/dist/blocks/messaging/svelte/index.d.ts +20 -0
- package/dist/blocks/messaging/svelte/index.js +23 -0
- package/dist/blocks/messaging/vue/index.d.ts +20 -0
- package/dist/blocks/messaging/vue/index.js +23 -0
- package/dist/blocks/metrics/index.d.ts +36 -30
- package/dist/blocks/metrics/index.js +19 -20
- package/dist/blocks/mfa/index.d.ts +2 -2
- package/dist/blocks/mfa/index.js +2 -2
- package/dist/blocks/mfa/react/index.d.ts +7 -7
- package/dist/blocks/mfa/react/index.js +9 -9
- package/dist/blocks/mfa/react/server.d.ts +1 -1
- package/dist/blocks/mfa/react/server.js +1 -1
- package/dist/blocks/mfa/solid/index.d.ts +3 -3
- package/dist/blocks/mfa/solid/index.js +2 -2
- package/dist/blocks/mfa/svelte/index.d.ts +3 -3
- package/dist/blocks/mfa/svelte/index.js +2 -2
- package/dist/blocks/mfa/vue/index.d.ts +3 -3
- package/dist/blocks/mfa/vue/index.js +2 -2
- package/dist/blocks/moderation/index.d.ts +205 -0
- package/dist/blocks/moderation/index.js +199 -0
- package/dist/blocks/notifications/index.d.ts +132 -103
- package/dist/blocks/notifications/index.js +62 -48
- package/dist/blocks/notifications/react/index.d.ts +3 -3
- package/dist/blocks/notifications/react/index.js +5 -5
- package/dist/blocks/notifications/react/server.d.ts +5 -2
- package/dist/blocks/notifications/react/server.js +4 -1
- package/dist/blocks/notifications/solid/index.d.ts +3 -3
- package/dist/blocks/notifications/solid/index.js +2 -2
- package/dist/blocks/notifications/svelte/index.d.ts +3 -3
- package/dist/blocks/notifications/svelte/index.js +2 -2
- package/dist/blocks/notifications/vue/index.d.ts +3 -3
- package/dist/blocks/notifications/vue/index.js +2 -2
- package/dist/blocks/number-sequences/index.d.ts +15 -12
- package/dist/blocks/number-sequences/index.js +8 -5
- package/dist/blocks/oauth-server/index.d.ts +42 -21
- package/dist/blocks/oauth-server/index.js +16 -14
- package/dist/blocks/onboarding/index.d.ts +3 -3
- package/dist/blocks/onboarding/index.js +4 -4
- package/dist/blocks/onboarding/react/index.d.ts +10 -5
- package/dist/blocks/onboarding/react/index.js +10 -8
- package/dist/blocks/onboarding/react/server.d.ts +5 -2
- package/dist/blocks/onboarding/react/server.js +4 -1
- package/dist/blocks/onboarding/solid/index.d.ts +3 -3
- package/dist/blocks/onboarding/solid/index.js +2 -2
- package/dist/blocks/onboarding/svelte/index.d.ts +3 -3
- package/dist/blocks/onboarding/svelte/index.js +2 -2
- package/dist/blocks/onboarding/vue/index.d.ts +3 -3
- package/dist/blocks/onboarding/vue/index.js +2 -2
- package/dist/blocks/orders/index.d.ts +176 -31
- package/dist/blocks/orders/index.js +167 -25
- package/dist/blocks/organizations/index.d.ts +5 -5
- package/dist/blocks/organizations/index.js +6 -28
- package/dist/blocks/organizations/react/index.d.ts +40 -21
- package/dist/blocks/organizations/react/index.js +5 -5
- package/dist/blocks/organizations/react/server.d.ts +13 -4
- package/dist/blocks/organizations/react/server.js +12 -3
- package/dist/blocks/organizations/solid/index.d.ts +3 -3
- package/dist/blocks/organizations/solid/index.js +2 -2
- package/dist/blocks/organizations/svelte/index.d.ts +3 -3
- package/dist/blocks/organizations/svelte/index.js +2 -2
- package/dist/blocks/organizations/vue/index.d.ts +3 -3
- package/dist/blocks/organizations/vue/index.js +2 -2
- package/dist/blocks/outbox/index.d.ts +4 -4
- package/dist/blocks/outbox/index.js +21 -18
- package/dist/blocks/parties/index.d.ts +36 -35
- package/dist/blocks/parties/index.js +152 -52
- package/dist/blocks/passes/index.d.ts +308 -0
- package/dist/blocks/passes/index.js +411 -0
- package/dist/blocks/pipelines/index.d.ts +26 -17
- package/dist/blocks/pipelines/index.js +11 -12
- package/dist/blocks/posts/index.d.ts +190 -0
- package/dist/blocks/posts/index.js +230 -0
- package/dist/blocks/profiles/index.d.ts +23 -14
- package/dist/blocks/profiles/index.js +5 -6
- package/dist/blocks/promotions/index.d.ts +34 -16
- package/dist/blocks/promotions/index.js +12 -10
- package/dist/blocks/push/index.d.ts +43 -25
- package/dist/blocks/push/index.js +16 -17
- package/dist/blocks/quotes/index.d.ts +15 -12
- package/dist/blocks/quotes/index.js +9 -10
- package/dist/blocks/rank/index.d.ts +12 -12
- package/dist/blocks/rank/index.js +4 -4
- package/dist/blocks/reactions/index.d.ts +5 -5
- package/dist/blocks/reactions/index.js +4 -4
- package/dist/blocks/reactions/react/index.d.ts +20 -11
- package/dist/blocks/reactions/react/index.js +37 -26
- package/dist/blocks/reactions/react/server.d.ts +4 -1
- package/dist/blocks/reactions/react/server.js +4 -1
- package/dist/blocks/reactions/solid/index.d.ts +3 -3
- package/dist/blocks/reactions/solid/index.js +2 -2
- package/dist/blocks/reactions/svelte/index.d.ts +3 -3
- package/dist/blocks/reactions/svelte/index.js +2 -2
- package/dist/blocks/reactions/vue/index.d.ts +3 -3
- package/dist/blocks/reactions/vue/index.js +2 -2
- package/dist/blocks/relations/index.d.ts +82 -46
- package/dist/blocks/relations/index.js +120 -63
- package/dist/blocks/reminders/index.d.ts +45 -32
- package/dist/blocks/reminders/index.js +38 -33
- package/dist/blocks/reviews/index.d.ts +32 -17
- package/dist/blocks/reviews/index.js +6 -7
- package/dist/blocks/rules/index.d.ts +32 -26
- package/dist/blocks/rules/index.js +15 -15
- package/dist/blocks/rules/react/index.d.ts +9 -5
- package/dist/blocks/rules/react/index.js +12 -8
- package/dist/blocks/rules/solid/index.d.ts +3 -3
- package/dist/blocks/rules/solid/index.js +2 -2
- package/dist/blocks/rules/svelte/index.d.ts +3 -3
- package/dist/blocks/rules/svelte/index.js +2 -2
- package/dist/blocks/rules/vue/index.d.ts +3 -3
- package/dist/blocks/rules/vue/index.js +2 -2
- package/dist/blocks/saved-views/index.d.ts +3 -3
- package/dist/blocks/saved-views/index.js +3 -3
- package/dist/blocks/saved-views/react/index.d.ts +14 -8
- package/dist/blocks/saved-views/react/index.js +11 -8
- package/dist/blocks/saved-views/react/server.d.ts +5 -2
- package/dist/blocks/saved-views/react/server.js +4 -1
- package/dist/blocks/saved-views/solid/index.d.ts +3 -3
- package/dist/blocks/saved-views/solid/index.js +2 -2
- package/dist/blocks/saved-views/svelte/index.d.ts +3 -3
- package/dist/blocks/saved-views/svelte/index.js +2 -2
- package/dist/blocks/saved-views/vue/index.d.ts +3 -3
- package/dist/blocks/saved-views/vue/index.js +2 -2
- package/dist/blocks/scores/index.d.ts +50 -0
- package/dist/blocks/scores/index.js +40 -0
- package/dist/blocks/search/index.d.ts +12 -9
- package/dist/blocks/search/index.js +9 -10
- package/dist/blocks/search/react/index.d.ts +8 -5
- package/dist/blocks/search/react/index.js +6 -6
- package/dist/blocks/search/react/server.d.ts +5 -2
- package/dist/blocks/search/react/server.js +4 -1
- package/dist/blocks/search/solid/index.d.ts +3 -3
- package/dist/blocks/search/solid/index.js +2 -2
- package/dist/blocks/search/svelte/index.d.ts +3 -3
- package/dist/blocks/search/svelte/index.js +2 -2
- package/dist/blocks/search/vue/index.d.ts +3 -3
- package/dist/blocks/search/vue/index.js +2 -2
- package/dist/blocks/segments/index.d.ts +130 -0
- package/dist/blocks/segments/index.js +135 -0
- package/dist/blocks/sequences/index.d.ts +259 -0
- package/dist/blocks/sequences/index.js +370 -0
- package/dist/blocks/service-principals/index.d.ts +24 -18
- package/dist/blocks/service-principals/index.js +11 -9
- package/dist/blocks/sessions/index.d.ts +2 -2
- package/dist/blocks/sessions/index.js +2 -2
- package/dist/blocks/sessions/react/index.d.ts +10 -5
- package/dist/blocks/sessions/react/index.js +8 -6
- package/dist/blocks/sessions/react/server.d.ts +9 -3
- package/dist/blocks/sessions/react/server.js +8 -2
- package/dist/blocks/sessions/solid/index.d.ts +3 -3
- package/dist/blocks/sessions/solid/index.js +2 -2
- package/dist/blocks/sessions/svelte/index.d.ts +3 -3
- package/dist/blocks/sessions/svelte/index.js +2 -2
- package/dist/blocks/sessions/vue/index.d.ts +3 -3
- package/dist/blocks/sessions/vue/index.js +2 -2
- package/dist/blocks/settings/index.d.ts +6 -5
- package/dist/blocks/settings/index.js +7 -6
- package/dist/blocks/settings/react/index.d.ts +13 -7
- package/dist/blocks/settings/react/index.js +5 -5
- package/dist/blocks/settings/react/server.d.ts +5 -2
- package/dist/blocks/settings/react/server.js +4 -1
- package/dist/blocks/settings/solid/index.d.ts +3 -3
- package/dist/blocks/settings/solid/index.js +2 -2
- package/dist/blocks/settings/svelte/index.d.ts +3 -3
- package/dist/blocks/settings/svelte/index.js +2 -2
- package/dist/blocks/settings/vue/index.d.ts +3 -3
- package/dist/blocks/settings/vue/index.js +2 -2
- package/dist/blocks/share-links/index.d.ts +58 -23
- package/dist/blocks/share-links/index.js +74 -23
- package/dist/blocks/shared-signals/index.d.ts +82 -37
- package/dist/blocks/shared-signals/index.js +24 -19
- package/dist/blocks/shipments/index.d.ts +238 -0
- package/dist/blocks/shipments/index.js +540 -0
- package/dist/blocks/signatures/index.d.ts +151 -0
- package/dist/blocks/signatures/index.js +149 -0
- package/dist/blocks/signing-keys/index.d.ts +5 -5
- package/dist/blocks/signing-keys/index.js +5 -166
- package/dist/blocks/sla/index.d.ts +43 -31
- package/dist/blocks/sla/index.js +44 -15
- package/dist/blocks/sso/index.d.ts +35 -30
- package/dist/blocks/sso/index.js +31 -18
- package/dist/blocks/state-machine/index.d.ts +31 -22
- package/dist/blocks/state-machine/index.js +27 -27
- package/dist/blocks/subjects/index.d.ts +11 -0
- package/dist/blocks/subjects/index.js +21 -0
- package/dist/blocks/subjects/react/index.d.ts +31 -0
- package/dist/blocks/subjects/react/index.js +60 -0
- package/dist/blocks/subjects/react/server.d.ts +9 -0
- package/dist/blocks/subjects/react/server.js +12 -0
- package/dist/blocks/subjects/solid/index.d.ts +13 -0
- package/dist/blocks/subjects/solid/index.js +14 -0
- package/dist/blocks/subjects/svelte/index.d.ts +13 -0
- package/dist/blocks/subjects/svelte/index.js +14 -0
- package/dist/blocks/subjects/vue/index.d.ts +13 -0
- package/dist/blocks/subjects/vue/index.js +14 -0
- package/dist/blocks/tags/index.d.ts +37 -5
- package/dist/blocks/tags/index.js +50 -5
- package/dist/blocks/tags/react/index.d.ts +13 -12
- package/dist/blocks/tags/react/index.js +30 -24
- package/dist/blocks/tags/react/server.d.ts +1 -1
- package/dist/blocks/tags/solid/index.d.ts +3 -3
- package/dist/blocks/tags/solid/index.js +2 -2
- package/dist/blocks/tags/svelte/index.d.ts +3 -3
- package/dist/blocks/tags/svelte/index.js +2 -2
- package/dist/blocks/tags/vue/index.d.ts +3 -3
- package/dist/blocks/tags/vue/index.js +2 -2
- package/dist/blocks/targets/index.d.ts +13 -13
- package/dist/blocks/targets/index.js +7 -8
- package/dist/blocks/teams/index.d.ts +9 -9
- package/dist/blocks/teams/index.js +5 -5
- package/dist/blocks/templates/index.d.ts +67 -51
- package/dist/blocks/templates/index.js +23 -25
- package/dist/blocks/time-tracking/index.d.ts +63 -45
- package/dist/blocks/time-tracking/index.js +50 -47
- package/dist/blocks/trash/index.d.ts +13 -11
- package/dist/blocks/trash/index.js +5 -6
- package/dist/blocks/undo/index.d.ts +4 -4
- package/dist/blocks/undo/index.js +4 -4
- package/dist/blocks/undo/react/index.d.ts +3 -3
- package/dist/blocks/undo/react/index.js +4 -4
- package/dist/blocks/undo/react/server.d.ts +5 -2
- package/dist/blocks/undo/react/server.js +4 -1
- package/dist/blocks/undo/solid/index.d.ts +3 -3
- package/dist/blocks/undo/solid/index.js +2 -2
- package/dist/blocks/undo/svelte/index.d.ts +3 -3
- package/dist/blocks/undo/svelte/index.js +2 -2
- package/dist/blocks/undo/vue/index.d.ts +3 -3
- package/dist/blocks/undo/vue/index.js +2 -2
- package/dist/blocks/usage/index.d.ts +5 -5
- package/dist/blocks/usage/index.js +4 -4
- package/dist/blocks/usage/react/index.d.ts +12 -6
- package/dist/blocks/usage/react/index.js +8 -8
- package/dist/blocks/usage/react/server.d.ts +1 -1
- package/dist/blocks/usage/solid/index.d.ts +3 -3
- package/dist/blocks/usage/solid/index.js +2 -2
- package/dist/blocks/usage/svelte/index.d.ts +3 -3
- package/dist/blocks/usage/svelte/index.js +2 -2
- package/dist/blocks/usage/vue/index.d.ts +3 -3
- package/dist/blocks/usage/vue/index.js +2 -2
- package/dist/blocks/vercel-marketplace/index.d.ts +252 -17
- package/dist/blocks/vercel-marketplace/index.js +489 -57
- package/dist/blocks/versions/index.d.ts +55 -31
- package/dist/blocks/versions/index.js +75 -30
- package/dist/blocks/waitlist/index.d.ts +31 -18
- package/dist/blocks/waitlist/index.js +10 -8
- package/dist/blocks/webhooks/index.d.ts +126 -89
- package/dist/blocks/webhooks/index.js +72 -62
- package/dist/blocks/work-items/index.d.ts +63 -184
- package/dist/blocks/work-items/index.js +162 -36
- package/dist/blocks/workflow-builder/index.d.ts +15 -13
- package/dist/blocks/workflow-builder/index.js +11 -8
- package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
- package/dist/blocks/workflow-builder/react/index.js +8 -8
- package/dist/blocks/workflow-builder/react/server.d.ts +8 -2
- package/dist/blocks/workflow-builder/react/server.js +8 -2
- package/dist/blocks/workflow-builder/solid/index.d.ts +3 -3
- package/dist/blocks/workflow-builder/solid/index.js +2 -2
- package/dist/blocks/workflow-builder/svelte/index.d.ts +3 -3
- package/dist/blocks/workflow-builder/svelte/index.js +2 -2
- package/dist/blocks/workflow-builder/vue/index.d.ts +3 -3
- package/dist/blocks/workflow-builder/vue/index.js +2 -2
- package/dist/blocks/workflows/index.d.ts +5 -5
- package/dist/blocks/workflows/index.js +5 -5
- package/dist/blocks/workflows/react/index.d.ts +13 -6
- package/dist/blocks/workflows/react/index.js +7 -7
- package/dist/blocks/workflows/react/server.d.ts +8 -2
- package/dist/blocks/workflows/react/server.js +8 -2
- package/dist/blocks/workflows/solid/index.d.ts +3 -3
- package/dist/blocks/workflows/solid/index.js +2 -2
- package/dist/blocks/workflows/svelte/index.d.ts +3 -3
- package/dist/blocks/workflows/svelte/index.js +2 -2
- package/dist/blocks/workflows/vue/index.d.ts +3 -3
- package/dist/blocks/workflows/vue/index.js +2 -2
- package/dist/bookings-BB5lFlNO.js +310 -0
- package/dist/bookings-CC7IeiRa.d.ts +290 -0
- package/dist/bucket-TkB7_xv8.d.ts +667 -0
- package/dist/build-DCfpwg78.js +1839 -0
- package/dist/build-g9wTbQdp.js +703 -0
- package/dist/calendar-T3Vdpq7E.js +952 -0
- package/dist/carrier-C7Q_21Kd.d.ts +169 -0
- package/dist/channel-BjvGO39m.d.ts +77 -0
- package/dist/channels-CfcFPuo_.js +114 -0
- package/dist/chat-sdk/index.d.ts +188 -80
- package/dist/chat-sdk/index.js +102 -57
- package/dist/chat-sdk/react/index.d.ts +2 -2
- package/dist/chat-sdk/react/server.d.ts +2 -2
- package/dist/claims-Bp9My7XP.js +88 -0
- package/dist/claims-T8TWZ53E.js +63 -0
- package/dist/cli/add-Bf3kE6PY.js +75 -0
- package/dist/cli/add-CYh6Sxk1.js +674 -0
- package/dist/cli/add-Dg40eFKE.js +1 -0
- package/dist/cli/adopt-B0vrj-4B.js +421 -0
- package/dist/cli/adopt-DJR1k3lS.js +1 -0
- package/dist/cli/agent-CbuPvI2x.js +185 -0
- package/dist/cli/apply-DUQ-5LC6.js +329 -0
- package/dist/cli/bin.js +3 -3
- package/dist/cli/blocks-DzgYfjVv.js +124 -0
- package/dist/cli/blocks-gGupqvBH.js +1 -0
- package/dist/cli/cache-C3K_wOE2.js +536 -0
- package/dist/cli/catalog-CNM0ViIh.js +199 -0
- package/dist/cli/codemod-Dz4R-tVY.js +1127 -0
- package/dist/cli/command-33pu13LT.js +963 -0
- package/dist/cli/completion-6M6Hr8TL.js +211 -0
- package/dist/cli/completion-Bqu8yq0q.js +1 -0
- package/dist/cli/completion-Ddr3yqd3.js +30 -0
- package/dist/cli/config-B31tIvAl.js +42 -0
- package/dist/cli/config-CjgXMZW2.js +1522 -0
- package/dist/cli/config-D9k5ckqV.js +1 -0
- package/dist/cli/config-edit-D46H0UHp.js +613 -0
- package/dist/cli/db-CQCLx7cx.js +78 -0
- package/dist/cli/db-CeagtENM.js +473 -0
- package/dist/cli/design-edit-B40ljpGZ.js +205 -0
- package/dist/cli/detect-RApSAA8v.js +84 -0
- package/dist/cli/dist-DSwzLVAG.js +129 -0
- package/dist/cli/doctor-COGJJ1gy.js +3898 -0
- package/dist/cli/emit-DbQeLlHt.js +1123 -0
- package/dist/cli/env-Ba-pOD3a.js +1 -0
- package/dist/cli/env-C-Bl6Awn.js +1 -0
- package/dist/cli/env-DMgjB_4y.js +1114 -0
- package/dist/cli/env-DlgfvI8U.js +143 -0
- package/dist/cli/errors-BTe6A15O.js +98 -0
- package/dist/cli/exec--Q1ZEWUW.js +463 -0
- package/dist/cli/files-C5JfVnj5.js +972 -0
- package/dist/cli/fresh-import-DzgsGHkX.js +40 -0
- package/dist/cli/gen-DHW1qENn.js +307 -0
- package/dist/cli/index.d.ts +252 -177
- package/dist/cli/index.js +16 -16
- package/dist/cli/init-CZifzAUD.js +397 -0
- package/dist/cli/introspect-Dfwu5vAg.js +51 -0
- package/dist/cli/io-DH1kcmmP.js +37 -0
- package/dist/cli/keys-iJs_1WT8.js +106 -0
- package/dist/cli/live-1eL2MIkS.js +344 -0
- package/dist/cli/mcp-CaFW6uKU.js +240 -0
- package/dist/cli/metadata-DkOQHZoH.js +146 -0
- package/dist/cli/migration-safety-BsCKKxPf.js +305 -0
- package/dist/cli/module-migration-CbX-jRhV.js +606 -0
- package/dist/cli/moved-CdNtCf4t.js +161 -0
- package/dist/cli/parse-CRZLku1b.js +182 -0
- package/dist/cli/preset-C4fagbhZ.js +130 -0
- package/dist/cli/prompts-jqnr94b9.js +1140 -0
- package/dist/cli/redact-KGAk2Ul9.js +38 -0
- package/dist/cli/run-CE2s5TDh.js +711 -0
- package/dist/cli/run-Du5XPOCv.js +63 -0
- package/dist/cli/run-KXjrgNCH.js +2378 -0
- package/dist/cli/scaffold-CPH8sEhw.js +901 -0
- package/dist/cli/scaffold-DS6g3INp.js +1 -0
- package/dist/cli/seed-D6V-T5Af.js +188 -0
- package/dist/cli/seed-DPQaA8aP.js +1 -0
- package/dist/cli/shared-CCpxS5if.js +151 -0
- package/dist/cli/skills-Bz4INB8f.js +121 -0
- package/dist/cli/snapshot-Dkwxc1uV.js +351 -0
- package/dist/cli/source-args-DZV4RnZL.js +59 -0
- package/dist/cli/spec-B3Tbc7Dm.js +7534 -0
- package/dist/cli/spec-Cv1GYrcW.js +1 -0
- package/dist/cli/sql-C58MS9DI.js +348 -0
- package/dist/cli/sql-DVPw5tvO.js +2 -0
- package/dist/cli/stack-_F_JhllX.js +135 -0
- package/dist/cli/stack-env-6hS-WEmh.js +93 -0
- package/dist/cli/stack-status-B_Ipd_-z.js +46 -0
- package/dist/cli/stacks-BYlQ96WS.js +232 -0
- package/dist/cli/style-Bm2X5JrN.js +35 -0
- package/dist/cli/supabase-toml-CncmQbO0.js +1164 -0
- package/dist/cli/sync-CjkKpI6d.js +91 -0
- package/dist/cli/topics-BpdnYmWb.js +30 -0
- package/dist/cli/typegen-F9GEjpvD.js +502 -0
- package/dist/cli/validate-B3lF3-jB.js +7522 -0
- package/dist/cli/version-CTqnp3HO.js +4 -0
- package/dist/cli/write-3qdrpS1v.js +201 -0
- package/dist/client/index.d.ts +6 -6
- package/dist/client/index.js +19 -12
- package/dist/client/native/index.d.ts +87 -53
- package/dist/client/native/index.js +65 -43
- package/dist/client--tyFmxDT.js +52 -0
- package/dist/client-7_4Y21ue.d.ts +122 -0
- package/dist/client-B1cjaIfv.js +116 -0
- package/dist/client-B2GCMvfd.d.ts +451 -0
- package/dist/client-B8cHiZfF.js +67 -0
- package/dist/client-BIMg9IiF.d.ts +349 -0
- package/dist/client-BKGVUgo7.js +380 -0
- package/dist/client-BNaOcfeH.js +58 -0
- package/dist/client-BQseXods.d.ts +309 -0
- package/dist/client-BSnf6fn6.d.ts +59 -0
- package/dist/client-BW3-RUbq.js +235 -0
- package/dist/client-BYAY7lLs.d.ts +137 -0
- package/dist/client-BcXmbm4f.js +173 -0
- package/dist/client-BgmVu505.js +167 -0
- package/dist/client-Bj0xrUzr.js +437 -0
- package/dist/client-Bn0qqRBg.d.ts +37 -0
- package/dist/client-Bni68sve.d.ts +136 -0
- package/dist/client-BrtwaIBh.d.ts +74 -0
- package/dist/client-BtRx0-kn.js +82 -0
- package/dist/client-BteuBPIy.js +337 -0
- package/dist/client-C1TxDBgX.js +111 -0
- package/dist/client-C1zOmnS8.js +89 -0
- package/dist/client-C56l0MnY.d.ts +177 -0
- package/dist/client-CA6KuLDu.d.ts +223 -0
- package/dist/client-CBcq7LBg.d.ts +178 -0
- package/dist/client-CGJrSTMZ.js +234 -0
- package/dist/client-CLIBcMzL.d.ts +116 -0
- package/dist/client-COuIfjbB.d.ts +46 -0
- package/dist/client-CVToJ4uI.js +84 -0
- package/dist/client-C_0XZieg.js +287 -0
- package/dist/client-CebKlRU7.js +157 -0
- package/dist/client-ChOJ4v0D.js +137 -0
- package/dist/client-CnENAa0E.d.ts +69 -0
- package/dist/client-Cp79i2ZE.d.ts +152 -0
- package/dist/client-CwKsEl6q.js +99 -0
- package/dist/client-D-LPdEDQ.d.ts +43 -0
- package/dist/client-D6gD9qt9.d.ts +45 -0
- package/dist/client-DBwWXQKF.d.ts +132 -0
- package/dist/client-DD3EcytK.js +65 -0
- package/dist/client-DScMvaty.js +38 -0
- package/dist/client-DT6Tvudr.d.ts +54 -0
- package/dist/client-DU1_Jq4e.d.ts +116 -0
- package/dist/client-Dd-a0tup.d.ts +475 -0
- package/dist/client-Dh8zXgpq.js +1060 -0
- package/dist/client-DkI0oyR7.js +76 -0
- package/dist/client-DmjG9PHH.js +211 -0
- package/dist/client-DnUFHmje.js +129 -0
- package/dist/client-Do5hykMK.d.ts +38 -0
- package/dist/client-DzOL3lsV.d.ts +110 -0
- package/dist/client-DzukpHS1.d.ts +165 -0
- package/dist/client-LngH55pZ.d.ts +83 -0
- package/dist/client-PPSwiJaK.js +291 -0
- package/dist/client-RoAuPQNB.d.ts +103 -0
- package/dist/client-WzuQExHk.js +253 -0
- package/dist/client-Y_HnZGF4.js +51 -0
- package/dist/client-bDXsvSXp.d.ts +90 -0
- package/dist/client-bx3Bk7c5.d.ts +64 -0
- package/dist/client-jgDU7Roj.d.ts +144 -0
- package/dist/client-kRvHKAKS.js +60 -0
- package/dist/client-pxXoQOdC.js +40 -0
- package/dist/client-yIxEJwTK.js +121 -0
- package/dist/clone-CkG0-hlI.js +33 -0
- package/dist/cloud-event-SPyXMdcd.d.ts +64 -0
- package/dist/cloud-event-XsM53POL.js +63 -0
- package/dist/codecs-CQrX3ZW4.js +358 -0
- package/dist/codecs-DAu2sYWn.d.ts +222 -0
- package/dist/comments-CB8pFSV1.js +142 -0
- package/dist/commerce/index.d.ts +39 -33
- package/dist/commerce/index.js +38 -28
- package/dist/compiler-BCyHFI6n.d.ts +14 -0
- package/dist/compose--4D1FoPN.js +53 -0
- package/dist/composite-Dv6o2BSw.js +130 -0
- package/dist/composite-KllwFim2.d.ts +82 -0
- package/dist/config/index.d.ts +7 -7
- package/dist/config/index.js +8 -8
- package/dist/config-BuOz_O-y.d.ts +2152 -0
- package/dist/config-Dh4D8lBa.js +13931 -0
- package/dist/config-Dn0cC3bM.js +1093 -0
- package/dist/connector-BdCE4Efp.d.ts +164 -0
- package/dist/connectors-DDiSNvkF.d.ts +147 -0
- package/dist/context-9Q23weHu.d.ts +524 -0
- package/dist/context-CMxVnPMY.js +9 -0
- package/dist/context-CYquqpA6.js +41 -0
- package/dist/controller-BEliOBOv.js +79 -0
- package/dist/controller-CSsC9s3s.js +73 -0
- package/dist/controller-DAD4hbl4.d.ts +52 -0
- package/dist/create/index.d.ts +309 -175
- package/dist/create/index.js +441 -299
- package/dist/create/lite/index.d.ts +19 -12
- package/dist/create/lite/index.js +10 -9
- package/dist/create/oauth/index.d.ts +2 -0
- package/dist/create/oauth/index.js +101 -0
- package/dist/create/supabase/index.d.ts +13 -34
- package/dist/create/supabase/index.js +16 -84
- package/dist/create-blocks-kPUhCvje.js +217 -0
- package/dist/credentials/index.d.ts +12 -12
- package/dist/credentials/index.js +12 -13
- package/dist/cron-_i5pBGkY.js +148 -0
- package/dist/cron-route-Y0eJ-FNi.js +24 -0
- package/dist/csv-2rXGPNtP.js +89 -0
- package/dist/csv-DhHQS2x_.d.ts +28 -0
- package/dist/db-exception-Lngc1W49.js +31 -0
- package/dist/deal-forecast-CBlp20PY.js +39 -0
- package/dist/deal-forecast-LwO-Z4_C.d.ts +23 -0
- package/dist/define-DQznpZYl.js +2023 -0
- package/dist/define-Dw7pRO4h.d.ts +1123 -0
- package/dist/define-block-COpcS6aT.d.ts +1338 -0
- package/dist/define-block-Dze77QTw.js +56 -0
- package/dist/delegation-CeXm9AJ3.js +146 -0
- package/dist/delivery-Bm0jxmzI.js +29 -0
- package/dist/delivery-n6lZGuGx.d.ts +71 -0
- package/dist/documents-kgDOHUfn.d.ts +152 -0
- package/dist/edge/index.d.ts +67 -40
- package/dist/edge/index.js +20 -17
- package/dist/elysia/index.d.ts +16 -14
- package/dist/elysia/index.js +11 -9
- package/dist/email-tt2QqiSc.d.ts +42 -0
- package/dist/embeddings-CcRP-cMN.d.ts +78 -0
- package/dist/embeddings-vVzseUw0.js +128 -0
- package/dist/employees-Dwyvxs4r.d.ts +180 -0
- package/dist/ended--Bd_Q6uL.d.ts +76 -0
- package/dist/engagements-CsJhf2OM.d.ts +179 -0
- package/dist/entitlements-B_ttRvI6.js +45 -0
- package/dist/entitlements-DDevu4ZE.d.ts +54 -0
- package/dist/entity-form-B67vq97h.d.ts +82 -0
- package/dist/entity-naming-DLDhHTbK.js +131 -0
- package/dist/entity-schema-BXXC1NnT.js +39 -0
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.js +16 -4
- package/dist/envelope-DCfHtVtZ.js +90 -0
- package/dist/errors-03ysrOt4.js +325 -0
- package/dist/errors-DZx8w-MH.js +44 -0
- package/dist/escape-like-BfXS-iVe.d.ts +30 -0
- package/dist/eve/index.d.ts +40 -22
- package/dist/eve/index.js +35 -26
- package/dist/eve-BlJI8ZXL.d.ts +157 -0
- package/dist/event-calendar-D3SVa3AE.d.ts +65 -0
- package/dist/event-map-CtPFhcOp.js +19 -0
- package/dist/events/index.d.ts +5 -4
- package/dist/events/index.js +11 -10
- package/dist/events-D6IZ5CE8.js +82 -0
- package/dist/events-DbLjvxDX.d.ts +852 -0
- package/dist/events-SqJLbb8q.js +24 -0
- package/dist/executor-BDAGTc_O.js +207 -0
- package/dist/executor-BElVQpaB.d.ts +188 -0
- package/dist/executor-CPyrQdjh.d.ts +700 -0
- package/dist/executor-CsTaO3AT.d.ts +37 -0
- package/dist/executor-DQoczQZJ.d.ts +104 -0
- package/dist/executor-QtVn0axs.js +147 -0
- package/dist/executor-o9HkOJ0m.js +869 -0
- package/dist/expo/index.d.ts +37 -26
- package/dist/expo/index.js +18 -15
- package/dist/expo-sqlite/index.d.ts +20 -17
- package/dist/expo-sqlite/index.js +19 -13
- package/dist/feature-BBLdbGu7.js +224 -0
- package/dist/field-errors-vshYTVKr.d.ts +166 -0
- package/dist/field-formats-C6QKA3UR.js +102 -0
- package/dist/field-formats-DbjaDXoZ.d.ts +39 -0
- package/dist/fields-CanaxA0U.d.ts +75 -0
- package/dist/fields-DK30XCgc.js +107 -0
- package/dist/filter-evaluate-C3i2bGfk.d.ts +37 -0
- package/dist/filter-evaluate-CRDXv0Dl.js +217 -0
- package/dist/filter-query-D4ZSwbcJ.js +524 -0
- package/dist/filter-query-o3b_GuyC.d.ts +133 -0
- package/dist/flags-BTDPaN11.d.ts +246 -0
- package/dist/flags-BhYByvP1.js +279 -0
- package/dist/flags-sdk/index.d.ts +13 -13
- package/dist/flags-sdk/index.js +18 -15
- package/dist/flows/index.d.ts +247 -0
- package/dist/flows/index.js +229 -0
- package/dist/form-definition-BTpM_tz1.js +363 -0
- package/dist/form-definition-BjEtH8BT.d.ts +119 -0
- package/dist/format-AYHceC2m.d.ts +79 -0
- package/dist/framework-CXoyWGgd.js +57 -0
- package/dist/framework-FxfJpyoF.d.ts +41 -0
- package/dist/function-contract-pEmsaUIf.js +8 -0
- package/dist/function-contract-vPqwt1j4.d.ts +27 -0
- package/dist/gateway-DI8dbOml.d.ts +115 -0
- package/dist/gateway-options-BlVCqgb8.d.ts +29 -0
- package/dist/gateway-options-Cl74B7k6.js +27 -0
- package/dist/graph-B4eubUQG.js +365 -0
- package/dist/guest-actions-1T1DeS5Y.d.ts +5 -0
- package/dist/guest-actions-B7zdhfnh.js +9 -0
- package/dist/h3/index.d.ts +19 -12
- package/dist/h3/index.js +15 -11
- package/dist/h3/v1/index.d.ts +34 -24
- package/dist/h3/v1/index.js +23 -19
- package/dist/hmac-B3CTTlfv.js +23 -0
- package/dist/hono/index.d.ts +54 -36
- package/dist/hono/index.js +18 -18
- package/dist/http-51t9xppD.js +28 -0
- package/dist/http-BjjojWg3.js +40 -0
- package/dist/http-DzbloBR-.js +141 -0
- package/dist/image-url-_d7xYsXK.js +84 -0
- package/dist/impersonation-CZD9AOAk.js +62 -0
- package/dist/impersonation-YTa9dZUv.d.ts +28 -0
- package/dist/inbox-BPBb6etH.d.ts +321 -0
- package/dist/index-BSUX4dlB.d.ts +305 -0
- package/dist/index-BgSuw4CC.d.ts +151 -0
- package/dist/index-C7CrdGgz.d.ts +562 -0
- package/dist/index-CvxK2BZS.d.ts +847 -0
- package/dist/index-CxZQgNVE.d.ts +62 -0
- package/dist/index-D4420jLW.d.ts +66 -0
- package/dist/index-DK-YTWLd.d.ts +443 -0
- package/dist/index-DbXWcrOI.d.ts +577 -0
- package/dist/index-DbyDZZlc.d.ts +53 -0
- package/dist/index-NRMMhhEi.d.ts +104 -0
- package/dist/index-U0o7kU0s.d.ts +69 -0
- package/dist/index-WEafENqH.d.ts +149 -0
- package/dist/index-X2fkPUwb.d.ts +51 -0
- package/dist/index-Yep7auV-.d.ts +287 -0
- package/dist/index-eTY4kJzo.d.ts +163 -0
- package/dist/index.d.ts +35 -99
- package/dist/index.js +24 -19
- package/dist/invalidate-BLiBFbLy.d.ts +19 -0
- package/dist/iso4217-B-durg_y.js +176 -0
- package/dist/json-DaByVJpw.js +22 -0
- package/dist/json-schema-DWDTfD8J.js +888 -0
- package/dist/jwks-cache-CRymV-Dr.js +49 -0
- package/dist/jws-D0toeQlA.d.ts +66 -0
- package/dist/jws-DOgHJKHb.js +205 -0
- package/dist/kit-Ct4Z6GIO.js +127 -0
- package/dist/kit-DKfbNTAA.d.ts +94 -0
- package/dist/knowledge-BKGrXdS_.js +272 -0
- package/dist/knowledge-CFkCRxO9.d.ts +202 -0
- package/dist/lint/index.d.ts +6 -6
- package/dist/lint/index.js +9 -6
- package/dist/list/index.d.ts +3 -3
- package/dist/list/index.js +3 -3
- package/dist/list-query-BtluNnYk.d.ts +222 -0
- package/dist/list-query-CuS1w2Af.js +559 -0
- package/dist/live-CZtRMh62.js +246 -0
- package/dist/management-wtecfrNf.d.ts +57 -0
- package/dist/mcp/index.d.ts +70 -42
- package/dist/mcp/index.js +53 -45
- package/dist/mcp/sdk/index.d.ts +37 -25
- package/dist/mcp/sdk/index.js +16 -13
- package/dist/mentions-ByYnRNIG.js +114 -0
- package/dist/message-Bg4TKA12.d.ts +99 -0
- package/dist/messages-DNzIVvgN.js +492 -0
- package/dist/messaging-BC-P-yAv.js +329 -0
- package/dist/messaging-CZ6aWb10.d.ts +297 -0
- package/dist/metric-definition-EAYI1r2n.d.ts +69 -0
- package/dist/mfa-wrx1rqJT.d.ts +36 -0
- package/dist/model-Btl8X9cs.d.ts +326 -0
- package/dist/model-messages-D-jVOIOK.js +206 -0
- package/dist/model-messages-DrR4lZ_c.d.ts +34 -0
- package/dist/money-BNRdJQzA.d.ts +91 -0
- package/dist/money-BZl985O-.js +197 -0
- package/dist/money-codec-jMP0PQLZ.js +41 -0
- package/dist/my-work-kinds-BU3SlA-6.js +11 -0
- package/dist/nestjs/index.d.ts +32 -17
- package/dist/nestjs/index.js +27 -18
- package/dist/next/client/index.d.ts +8 -7
- package/dist/next/client/index.js +8 -7
- package/dist/next/image/index.d.ts +8 -6
- package/dist/next/image/index.js +7 -5
- package/dist/next/index.d.ts +342 -110
- package/dist/next/index.js +225 -45
- package/dist/node/index.d.ts +3 -3
- package/dist/node/index.js +33 -23
- package/dist/node-headers-BPtMP4_V.d.ts +27 -0
- package/dist/nuxt/index.d.ts +7 -6
- package/dist/nuxt/index.js +7 -6
- package/dist/onboarding-CGMuX7sP.js +68 -0
- package/dist/openapi/index.d.ts +4 -3
- package/dist/openapi/index.js +10 -7
- package/dist/operations-DVHRHvv6.js +29 -0
- package/dist/operations-nWYRexee.d.ts +6 -0
- package/dist/optional-peer-C1NbBRJm.js +32 -0
- package/dist/options-289GJc2l.d.ts +52 -0
- package/dist/options-2EMA_x6_.js +16 -0
- package/dist/options-63AKQNv0.js +5 -0
- package/dist/options-70OsM-wK.js +10 -0
- package/dist/options-9gvPo1BC.js +8 -0
- package/dist/options-B5VUf4IT.js +8 -0
- package/dist/options-BPDiwSa-.js +5 -0
- package/dist/options-BYOtaF7w.js +5 -0
- package/dist/options-BZOliZvb.js +9 -0
- package/dist/options-BjtrC7o6.js +8 -0
- package/dist/options-BkpqTGrJ.js +8 -0
- package/dist/options-Bpl-WFPk.js +15 -0
- package/dist/options-Br1Xi2Hw.js +9 -0
- package/dist/options-CF7nRWXS.js +5 -0
- package/dist/options-CSCXNYJO.d.ts +8 -0
- package/dist/options-CYV4iZiQ.js +5 -0
- package/dist/options-CalPr6kN.d.ts +12 -0
- package/dist/options-CfxBliP6.d.ts +17 -0
- package/dist/options-CmoJsd4V.d.ts +8 -0
- package/dist/options-Cyu0hgmN.js +9 -0
- package/dist/options-D0bzZx9a.d.ts +10 -0
- package/dist/options-D1hSuf50.d.ts +12 -0
- package/dist/options-D4aD9qwB.js +5 -0
- package/dist/options-D65jzn7S.js +5 -0
- package/dist/options-D7sgG1bQ.js +16 -0
- package/dist/options-DJ-aYPVN.js +5 -0
- package/dist/options-DJm31rsi.d.ts +16 -0
- package/dist/options-DWML05Cp.js +5 -0
- package/dist/options-DXuA4JVa.d.ts +15 -0
- package/dist/options-DZupPoI0.d.ts +10 -0
- package/dist/options-DlohRAYd.d.ts +13 -0
- package/dist/options-Dm-2crCx.d.ts +273 -0
- package/dist/options-DrSkIBCD.js +9 -0
- package/dist/options-DujalSfR.js +10 -0
- package/dist/options-Dz3hJxUw.d.ts +10 -0
- package/dist/options-E7KcmHQv.js +8 -0
- package/dist/options-IHPg8ZoA.js +5 -0
- package/dist/options-MQfTGMgP.d.ts +14 -0
- package/dist/options-OMAUVcKK.d.ts +10 -0
- package/dist/options-a-28mlYT.js +9 -0
- package/dist/options-o2kfYU2x.js +8 -0
- package/dist/options-t_O5ldT6.js +5 -0
- package/dist/options-te6d5-yz.d.ts +19 -0
- package/dist/options-xD4_FRUq.js +10 -0
- package/dist/options-zkyhM3qi.js +8 -0
- package/dist/organizations-DtehZg3J.js +401 -0
- package/dist/orpc/index.d.ts +109 -38
- package/dist/orpc/index.js +53 -18
- package/dist/otel/index.d.ts +19 -16
- package/dist/otel/index.js +22 -19
- package/dist/outbox-CsF_iKjx.d.ts +199 -0
- package/dist/overlay/index.d.ts +71 -55
- package/dist/overlay/index.js +48 -41
- package/dist/payments-BtScsgPS.js +16 -0
- package/dist/payments-CBzQIjoX.d.ts +114 -0
- package/dist/permissions-BetA_Fo_.js +34 -0
- package/dist/pg-error-B5QLDcbG.js +26 -0
- package/dist/plugin-Ar5546xh.d.ts +202 -0
- package/dist/plugin-D9bYbYli.js +45 -0
- package/dist/plugins/actor/index.d.ts +9 -6
- package/dist/plugins/actor/index.js +6 -6
- package/dist/plugins/rules/index.d.ts +15 -15
- package/dist/plugins/rules/index.js +13 -7
- package/dist/plugins/soft-delete/index.d.ts +7 -7
- package/dist/plugins/soft-delete/index.js +7 -7
- package/dist/plugins/tenant/index.d.ts +16 -11
- package/dist/plugins/tenant/index.js +9 -10
- package/dist/plugins/timestamps/index.d.ts +3 -3
- package/dist/plugins/timestamps/index.js +4 -4
- package/dist/plugins/validation/index.d.ts +4 -4
- package/dist/plugins/validation/index.js +5 -5
- package/dist/pool-CRkU15dA.d.ts +123 -0
- package/dist/pool-errors-B17BQRW-.js +27 -0
- package/dist/ports-DsJicwI2.d.ts +89 -0
- package/dist/ports-yajgT0t0.js +139 -0
- package/dist/postgres/index.d.ts +15 -15
- package/dist/postgres/index.js +14 -8
- package/dist/postgrest-DHLlN2nS.d.ts +53 -0
- package/dist/powersync/index.d.ts +13 -14
- package/dist/powersync/index.js +65 -36
- package/dist/powersync/react/index.d.ts +13 -12
- package/dist/powersync/react/index.js +15 -11
- package/dist/preset/index.d.ts +4 -4
- package/dist/preset/index.js +4 -4
- package/dist/preset-DzcQ5CQM.js +841 -0
- package/dist/problem-BWElIgIb.js +162 -0
- package/dist/problem-DpHB7tWl.d.ts +79 -0
- package/dist/provider-DmiaI1qt.d.ts +112 -0
- package/dist/provider-EJ0-5GwJ.js +57 -0
- package/dist/push-token-BxKmYhwk.d.ts +24 -0
- package/dist/queries-Dw8y9bvz.js +245 -0
- package/dist/query/index.d.ts +4 -4
- package/dist/query/index.js +291 -3
- package/dist/rank-result-C_sHjkiz.js +18 -0
- package/dist/rank-result-DwR0FawB.d.ts +14 -0
- package/dist/rate-limit-B_U12PdL.js +49 -0
- package/dist/rate-limit-CrOuXfjj.d.ts +50 -0
- package/dist/rate-limit-DExDw3Cy.js +327 -0
- package/dist/ratelimit-headers-kEcXyO3H.js +62 -0
- package/dist/react/index.d.ts +11 -11
- package/dist/react/index.js +5 -5
- package/dist/react/native/index.d.ts +36 -21
- package/dist/react/native/index.js +32 -20
- package/dist/react/server.d.ts +77 -21
- package/dist/react/server.js +70 -14
- package/dist/react/session.d.ts +9 -7
- package/dist/react/session.js +7 -5
- package/dist/react-28VgUbm9.js +852 -0
- package/dist/react-BKCnIuZs.js +79 -0
- package/dist/react-controller-CKSdtJ10.js +43 -0
- package/dist/react-env-CfA3EdBH.js +20 -0
- package/dist/react-router/index.d.ts +35 -25
- package/dist/react-router/index.js +14 -13
- package/dist/read-set-BAR84kPC.js +199 -0
- package/dist/realtime/index.d.ts +8 -8
- package/dist/realtime/index.js +37 -5
- package/dist/realtime-status-BhNkb-Ow.d.ts +8 -0
- package/dist/realtime-status-asHvhiOh.js +11 -0
- package/dist/recordings-DgDu7AOt.d.ts +119 -0
- package/dist/records/index.d.ts +83 -0
- package/dist/records/index.js +315 -0
- package/dist/refusal-DXydjgsS.js +64 -0
- package/dist/refusal-efy5bZMd.d.ts +32 -0
- package/dist/resolve-CzUKTIMq.d.ts +289 -0
- package/dist/resolve-DAYdcs22.js +892 -0
- package/dist/resolved-names-Dr7brlLL.js +133 -0
- package/dist/resource-BRRU-A7j.js +91 -0
- package/dist/resource-DYDEnww-.d.ts +115 -0
- package/dist/resource-Dk_JYsOt.js +469 -0
- package/dist/resource-execute-bT9ltHVT.d.ts +15 -0
- package/dist/resource-schemas-up6bKOUi.js +82 -0
- package/dist/resource-types-Bzt_bpR5.d.ts +153 -0
- package/dist/resources-BV6j5TTD.js +64 -0
- package/dist/resources-Du5wcL3f.d.ts +7 -0
- package/dist/respond-CZYibxUx.d.ts +101 -0
- package/dist/respond-z_yfyitp.js +100 -0
- package/dist/result-B3m7xtRY.js +146 -0
- package/dist/result-C6jDfedy.d.ts +350 -0
- package/dist/rows-Bb0EPupt.js +80 -0
- package/dist/rows-CtLWqdGQ.js +39 -0
- package/dist/rrule-xDm2znty.js +290 -0
- package/dist/rules-DcW5mj1r.js +287 -0
- package/dist/run-watch-B-LoK5m1.js +53 -0
- package/dist/runtime-CoKxZibd.js +45 -0
- package/dist/sales-lines-9HsX89aO.d.ts +28 -0
- package/dist/sales-lines-BhrIx2oK.js +41 -0
- package/dist/sales-shared-C_u68eq2.js +22 -0
- package/dist/schemas-9Ci3K0Hk.js +103 -0
- package/dist/schemas-ypoQZ_6N.js +157 -0
- package/dist/scores-CsURQDUB.d.ts +172 -0
- package/dist/scores-DdPZVVt8.js +177 -0
- package/dist/search-Cn_DGluL.js +9 -0
- package/dist/search-ToCOlCZ8.js +106 -0
- package/dist/sections-DjxYmpu-.js +26 -0
- package/dist/server/index.d.ts +153 -116
- package/dist/server/index.js +49 -40
- package/dist/server-types-BOs-eFpo.d.ts +809 -0
- package/dist/session-BgsOPGZs.d.ts +97 -0
- package/dist/settings-mL-i7QUM.js +93 -0
- package/dist/shared-Bf-I13Ht.js +91 -0
- package/dist/shared-CRRfQAKG.d.ts +11 -0
- package/dist/shared-LmlfYPv4.js +60 -0
- package/dist/shared-eVrl39dX.js +17 -0
- package/dist/sign-in-D54FLMQy.d.ts +55 -0
- package/dist/sign-in-lAyf6Ohy.js +386 -0
- package/dist/signatures-GUBuhLOB.js +145 -0
- package/dist/signatures-zbu6KTNQ.d.ts +43 -0
- package/dist/signers-D6ecZl22.d.ts +390 -0
- package/dist/signing-keys-B3RHGMMu.d.ts +119 -0
- package/dist/signing-keys-fWapUzi0.js +164 -0
- package/dist/solid/index.d.ts +69 -24
- package/dist/solid/index.js +62 -17
- package/dist/solid-bind-C1jeq4Qm.d.ts +11 -0
- package/dist/solid-bind-iHGfGtBK.js +38 -0
- package/dist/solid-controller-DGuv7V8a.js +13 -0
- package/dist/solid-start/index.d.ts +27 -20
- package/dist/solid-start/index.js +9 -9
- package/dist/spec/index.d.ts +40 -25
- package/dist/spec/index.js +26 -21
- package/dist/spec-CoWHDoud.js +119 -0
- package/dist/spec-pins-CZ2CL8YZ.d.ts +120 -0
- package/dist/spec-pins-D3Tm6HJi.js +60 -0
- package/dist/sql/index.d.ts +5 -5
- package/dist/sql/index.js +5 -5
- package/dist/sql-CVYjOUyG.js +421 -0
- package/dist/sql-rQDL6PIL.js +122247 -0
- package/dist/sso-B744gHeS.d.ts +161 -0
- package/dist/sso-Bt9HocgW.js +217 -0
- package/dist/ssr/index.d.ts +4 -4
- package/dist/ssr/index.js +3 -3
- package/dist/standard-DbQsD2xZ.d.ts +7 -0
- package/dist/standard-DtkpFGkS.js +25 -0
- package/dist/stats-qCEV5M3B.js +1147 -0
- package/dist/statuses-DMMDwXpZ.js +29 -0
- package/dist/statuses-zRcc2TeZ.js +28 -0
- package/dist/storage/index.d.ts +4 -4
- package/dist/storage/index.js +138 -74
- package/dist/store-McN-2esd.js +69 -0
- package/dist/store-o0HwYXl8.d.ts +83 -0
- package/dist/streams/index.d.ts +24 -18
- package/dist/streams/index.js +3 -4
- package/dist/streams/redis/index.d.ts +10 -7
- package/dist/streams/redis/index.js +9 -9
- package/dist/stripe/index.d.ts +5 -2
- package/dist/stripe/index.js +2 -2
- package/dist/stripe-BJUfp5jM.js +32 -0
- package/dist/stripe-X22LjuH-.d.ts +156 -0
- package/dist/subject-readers-CsTpx44c.js +49 -0
- package/dist/subject-readers-DEZ45DQF.d.ts +21 -0
- package/dist/subjects-B6p4oAZJ.d.ts +78 -0
- package/dist/subjects-DXFmanh5.d.ts +90 -0
- package/dist/subjects-DevU_atb.js +107 -0
- package/dist/subscribers-BvZxcd63.js +33 -0
- package/dist/summaries-8jQTELIX.d.ts +69 -0
- package/dist/supabase-mcp-Dz9DgrKP.js +28 -0
- package/dist/supabase-mcp-Z4vtsuoO.d.ts +46 -0
- package/dist/support-Ds1-UCN4.js +534 -0
- package/dist/support-view-vwJbRMpV.d.ts +17 -0
- package/dist/svelte/index.d.ts +51 -15
- package/dist/svelte/index.js +46 -13
- package/dist/svelte-bind-BHN5a8VV.js +46 -0
- package/dist/svelte-bind-Ja6CtQGp.d.ts +13 -0
- package/dist/svelte-controller-oFKC9AYu.js +19 -0
- package/dist/sveltekit/index.d.ts +50 -35
- package/dist/sveltekit/index.js +19 -18
- package/dist/table-schema-BcB-VCQb.js +293 -0
- package/dist/table-schema-Cb-IV_pZ.d.ts +78 -0
- package/dist/tags-CLXi2c6O.d.ts +30 -0
- package/dist/tags-C_ym1yDM.js +39 -0
- package/dist/tags-EnvIccSJ.js +86 -0
- package/dist/tanstack-db/index.d.ts +17 -11
- package/dist/tanstack-db/index.js +7 -7
- package/dist/tanstack-db/supabase/index.d.ts +24 -9
- package/dist/tanstack-db/supabase/index.js +7 -4
- package/dist/tanstack-start/index.d.ts +45 -31
- package/dist/tanstack-start/index.js +33 -19
- package/dist/tax-CIIxd8Zf.d.ts +170 -0
- package/dist/tax-DmOMjrYc.js +140 -0
- package/dist/tee-DwkUvJD_.js +101 -0
- package/dist/template-BWP7IXZg.js +126 -0
- package/dist/temporal-DLZlWbOi.js +85 -0
- package/dist/temporal-required-B8qQHYbI.js +20 -0
- package/dist/tenant-Bg4PDLkG.d.ts +17 -0
- package/dist/tenant-DnMqeNIM.js +27 -0
- package/dist/tenant-source-bqWpSr86.js +8 -0
- package/dist/testing/index.d.ts +606 -267
- package/dist/testing/index.js +665 -210
- package/dist/timeline-0_hTBH0-.js +52 -0
- package/dist/timeline-DUUsPLv5.d.ts +152 -0
- package/dist/timing-C5NzaEgy.js +95 -0
- package/dist/topic-CPOmMgkf.js +643 -0
- package/dist/topic-D9j8G2dw.d.ts +415 -0
- package/dist/ttl-cache-Bhr9swjT.js +32 -0
- package/dist/types-BEDfwXL4.d.ts +251 -0
- package/dist/types-BRJHGhSq.d.ts +177 -0
- package/dist/types-BTK75521.js +8 -0
- package/dist/types-CGUDoF5I.d.ts +624 -0
- package/dist/types-DkPE7yd2.d.ts +194 -0
- package/dist/types-QHeku_6b.d.ts +217 -0
- package/dist/types-uHD9yANu.d.ts +700 -0
- package/dist/undo-B696duxr.d.ts +46 -0
- package/dist/undo-vutx78k8.js +44 -0
- package/dist/upload-claim-D_wgDbi7.js +33 -0
- package/dist/usage-BI1E2940.js +264 -0
- package/dist/usage-DBcVGqnr.d.ts +232 -0
- package/dist/user-change-CSR_prhd.js +133 -0
- package/dist/variants-DL7NpFJ7.js +53 -0
- package/dist/vault-BQTdu4eH.d.ts +62 -0
- package/dist/vercel-connect/index.d.ts +3 -3
- package/dist/vercel-connect/index.js +8 -8
- package/dist/verify-27w0I5C9.js +130 -0
- package/dist/verify-BmuCB4PW.d.ts +146 -0
- package/dist/view-2_I-2ukO.d.ts +90 -0
- package/dist/view-BtgqxQLM.js +108 -0
- package/dist/vue/index.d.ts +70 -28
- package/dist/vue/index.js +68 -22
- package/dist/vue-bind-CFxon-Vs.js +45 -0
- package/dist/vue-bind-TPkbLl4z.d.ts +11 -0
- package/dist/vue-controller-WtbuT-Ux.js +13 -0
- package/dist/watch-CfMT6vX7.js +139 -0
- package/dist/watch-DziJudwj.d.ts +93 -0
- package/dist/watch-topic-CIT3UlAh.d.ts +31 -0
- package/dist/watch-topic-CuaWfCuv.js +57 -0
- package/dist/wire-Bizdxvp-.js +66 -0
- package/dist/work-items-Cnntm8ij.d.ts +238 -0
- package/dist/workflow-builder-2q1iqHYG.js +699 -0
- package/dist/workflow-sdk/builder/index.d.ts +51 -37
- package/dist/workflow-sdk/builder/index.js +30 -24
- package/dist/workflow-sdk/index.d.ts +24 -15
- package/dist/workflow-sdk/index.js +9 -6
- package/dist/workflow-sdk/world/index.d.ts +56 -24
- package/dist/workflow-sdk/world/index.js +47 -24
- package/dist/workflow-sdk-BTYWQQg9.d.ts +163 -0
- package/dist/workflow-sdk-_pqDUwNK.js +242 -0
- package/dist/workflow-sdk-world-BIwGVy6S.js +2401 -0
- package/dist/workflows-D8U7KyXJ.d.ts +258 -0
- package/dist/workflows-VJBSV-QR.js +285 -0
- package/dist/yjs/index.d.ts +39 -12
- package/dist/yjs/index.js +63 -21
- package/package.json +216 -3
- package/schemas/cli-commands-v1.json +18 -0
- package/schemas/config-v1.json +742 -35
- package/schemas/design-v1.json +351 -0
- package/schemas/doctor-report-v1.json +5 -1
- package/schemas/snapshot-v2.json +25 -0
- package/skills/better-supabase/SKILL.md +6 -5
- package/skills/better-supabase/references/frontend.md +3 -2
- package/skills/better-supabase/references/troubleshooting.md +18 -18
- package/skills/better-supabase/references/ui-recipes.md +12686 -8024
- package/skills/better-supabase-api/SKILL.md +1 -1
- package/skills/better-supabase-api/references/adapters.md +3 -6
- package/skills/better-supabase-api/references/expo.md +1 -0
- package/skills/better-supabase-api/references/powersync.md +8 -1
- package/skills/better-supabase-testing/SKILL.md +2 -3
- package/dist/access-sql-CTJPHjCL.js +0 -201
- package/dist/actor-BAhb-d1S.d.ts +0 -104
- package/dist/actor-CAL8mMih.js +0 -151
- package/dist/adapter-CRNH2aX_.js +0 -2107
- package/dist/agents-CGP2AQge.d.ts +0 -111
- package/dist/ai-cache-BdeJKlrV.d.ts +0 -70
- package/dist/ai-cache-CLninP-F.js +0 -84
- package/dist/ai-chat-D-2MH1sU.d.ts +0 -608
- package/dist/ai-files-ChFDkMLN.js +0 -339
- package/dist/ai-tasks-ZvPnNudQ.d.ts +0 -157
- package/dist/announcements-BNxTW5HJ.js +0 -128
- package/dist/api-C43_FYDp.js +0 -680
- package/dist/api-DoWK3dTw.d.ts +0 -411
- package/dist/api-keys-AgDXbcql.d.ts +0 -205
- package/dist/api-keys-BSXwI2jF.js +0 -318
- package/dist/app-tables-BRjMcWhW.js +0 -819
- package/dist/app-tables-BrMBjyuq.d.ts +0 -35
- package/dist/approvals-CyX709B-.d.ts +0 -124
- package/dist/assistant-DZsHsYIx.d.ts +0 -148
- package/dist/attachments-CK8D8bIV.js +0 -270
- package/dist/attributes-D4mA7WhI.js +0 -38
- package/dist/audit-log-ovUlF4Mk.js +0 -786
- package/dist/auth-CdBKt0CS.js +0 -20
- package/dist/auth-link-BjFPqwLz.d.ts +0 -97
- package/dist/auth-link-DrDX9KOT.js +0 -114
- package/dist/auth-module-DbZv2WrR.js +0 -10
- package/dist/auth-reply-Daq72lY4.js +0 -31
- package/dist/authorization-ClWBcXJi.d.ts +0 -1456
- package/dist/authorization-hooks-WDQMKIsc.d.ts +0 -214
- package/dist/authorizer-B3yyCVUF.js +0 -126
- package/dist/authorizer-eiOjo-3l.d.ts +0 -73
- package/dist/base64-D4aqdnDR.js +0 -42
- package/dist/before-route-B98js9m_.js +0 -30
- package/dist/bind-Bfo40o63.d.ts +0 -70
- package/dist/block-env-CBd_SoL5.js +0 -29
- package/dist/block-env-Dxl7rsI0.d.ts +0 -10
- package/dist/block-events-DD9Q_NUz.js +0 -96
- package/dist/block-fields-Bv1hV855.js +0 -139
- package/dist/block-fields-DnaDbgZS.d.ts +0 -55
- package/dist/block-helpers-CjcQM1yA.d.ts +0 -37
- package/dist/block-helpers-DkVZNDrj.js +0 -264
- package/dist/block-hooks-C22vuIUd.js +0 -114
- package/dist/block-hooks-DcPJHztl.d.ts +0 -107
- package/dist/block-transport-DezJPPA0.d.ts +0 -70
- package/dist/block-transport-J7ZepTq2.js +0 -85
- package/dist/blocks-D2WQ63PI.js +0 -84
- package/dist/bookings-DQ7P888X.js +0 -181
- package/dist/bucket-BbePDVwc.d.ts +0 -598
- package/dist/build-C-D_vn0U.js +0 -694
- package/dist/build-CT6SPZkI.js +0 -1815
- package/dist/calendar-eqyuQAoy.js +0 -801
- package/dist/channel-D-LHCY11.d.ts +0 -78
- package/dist/channels-C-GCoNLd.js +0 -114
- package/dist/claims-0KZVT804.js +0 -61
- package/dist/claims-PqzCxaTD.js +0 -85
- package/dist/cli/add-BcOHumvq.js +0 -75
- package/dist/cli/add-DnAyR9w_.js +0 -1
- package/dist/cli/add-TT72pQk6.js +0 -651
- package/dist/cli/adopt-BuS-DC7_.js +0 -1
- package/dist/cli/adopt-mbB1bcIG.js +0 -412
- package/dist/cli/agent-CCrTYK3W.js +0 -176
- package/dist/cli/apply-CiBFOFGw.js +0 -326
- package/dist/cli/blocks-5-JGzwXX.js +0 -124
- package/dist/cli/blocks-DeLQOlUK.js +0 -1
- package/dist/cli/cache-DQwgb3rg.js +0 -507
- package/dist/cli/catalog-Cm6BtquM.js +0 -188
- package/dist/cli/codemod-BzAMX4el.js +0 -985
- package/dist/cli/command-dfdVhU_2.js +0 -891
- package/dist/cli/completion-4lLjtI49.js +0 -1
- package/dist/cli/completion-D4InNrxw.js +0 -30
- package/dist/cli/completion-zsp5s0zI.js +0 -205
- package/dist/cli/config-CCyweX7Y.js +0 -1
- package/dist/cli/config-DI6ielsx.js +0 -39
- package/dist/cli/config-edit-Ct1lXe8a.js +0 -603
- package/dist/cli/config-yZ55rsKZ.js +0 -1463
- package/dist/cli/db-DT1bGB02.js +0 -78
- package/dist/cli/db-TRymMyAW.js +0 -90
- package/dist/cli/design-edit-0U9iCTiS.js +0 -202
- package/dist/cli/detect-DQsVeBHg.js +0 -84
- package/dist/cli/dist-D_VbPAMR.js +0 -129
- package/dist/cli/doctor-DOfy6kjt.js +0 -3732
- package/dist/cli/emit-56LAG_Px.js +0 -1067
- package/dist/cli/env-B7TWPEt0.js +0 -1
- package/dist/cli/env-C8R7Nf0a.js +0 -1088
- package/dist/cli/env-Cmu99uKR.js +0 -1
- package/dist/cli/env-Dh5K5t2U.js +0 -143
- package/dist/cli/errors-Caiz_0so.js +0 -98
- package/dist/cli/files-DDvAwTko.js +0 -963
- package/dist/cli/fresh-import-BeYf9I3x.js +0 -40
- package/dist/cli/gen-D3sC5jDn.js +0 -304
- package/dist/cli/init-DNomoycJ.js +0 -394
- package/dist/cli/introspect-kYX06Q2g.js +0 -51
- package/dist/cli/io-BiPX-_J1.js +0 -37
- package/dist/cli/keys-B8dIJwwi.js +0 -106
- package/dist/cli/live-CkV3d3yp.js +0 -329
- package/dist/cli/mcp-DrxB2Wuw.js +0 -237
- package/dist/cli/metadata-BGkle6WM.js +0 -138
- package/dist/cli/migration-safety-DjVpz2D6.js +0 -206
- package/dist/cli/module-migration-CPhuiY8C.js +0 -592
- package/dist/cli/moved-BMQu1YNY.js +0 -152
- package/dist/cli/parse-QzDvMpXH.js +0 -170
- package/dist/cli/preset-CfIs24cc.js +0 -129
- package/dist/cli/prompts-Bvg_DBpe.js +0 -1137
- package/dist/cli/redact-PjNswZOs.js +0 -35
- package/dist/cli/run-Bck-p0MI.js +0 -63
- package/dist/cli/run-BhJKAanr.js +0 -1528
- package/dist/cli/run-DRZ10srj.js +0 -694
- package/dist/cli/scaffold-DoURlDEI.js +0 -898
- package/dist/cli/scaffold-mzy3OsN5.js +0 -1
- package/dist/cli/seed-C5q4UUIL.js +0 -1
- package/dist/cli/seed-CIdg6s7m.js +0 -114
- package/dist/cli/shared-DKLuA1Tp.js +0 -145
- package/dist/cli/skills-D3zwIlGA.js +0 -121
- package/dist/cli/snapshot-BBKFojqM.js +0 -347
- package/dist/cli/source-args-Cwo7zwvq.js +0 -53
- package/dist/cli/spec-DOgQUZwM.js +0 -1
- package/dist/cli/spec-DZeIP9ta.js +0 -7501
- package/dist/cli/sql-CL_Lbhwl.js +0 -2
- package/dist/cli/sql-DLOvvnBV.js +0 -326
- package/dist/cli/stack-env-_uWWNHWq.js +0 -87
- package/dist/cli/stack-status-_NUgd-g5.js +0 -496
- package/dist/cli/style-2JfIPVMQ.js +0 -29
- package/dist/cli/supabase-toml-BC5sNVKU.js +0 -1153
- package/dist/cli/sync-DBvknfOK.js +0 -88
- package/dist/cli/topics-BBE1-Vrg.js +0 -30
- package/dist/cli/typegen--TfvOPLh.js +0 -494
- package/dist/cli/validate-BfWNKvxy.js +0 -7522
- package/dist/cli/version-B7akdvDv.js +0 -4
- package/dist/cli/write-VZljwoTB.js +0 -198
- package/dist/client-B9CqzgPO.js +0 -75
- package/dist/client-BAOZuBhz.d.ts +0 -101
- package/dist/client-BDO6i2Oe.js +0 -128
- package/dist/client-BGnJ5WJi.js +0 -438
- package/dist/client-BJN0IMEp.d.ts +0 -34
- package/dist/client-BMcjLG0V.d.ts +0 -263
- package/dist/client-BN_fXOs7.d.ts +0 -39
- package/dist/client-BONsuFYf.d.ts +0 -100
- package/dist/client-BPn9XhAM.d.ts +0 -218
- package/dist/client-BfgwocyT.js +0 -155
- package/dist/client-BpS8a6Fm.js +0 -51
- package/dist/client-BtC-r4hE.d.ts +0 -52
- package/dist/client-BuneNd-C.d.ts +0 -419
- package/dist/client-BzCv4kKE.js +0 -65
- package/dist/client-C-2ajnhM.js +0 -89
- package/dist/client-C5mUEb2n.js +0 -55
- package/dist/client-CFKONrrU.js +0 -1051
- package/dist/client-CHR8IBNG.js +0 -318
- package/dist/client-CHwNV8Kz.d.ts +0 -455
- package/dist/client-CLQHsa-2.d.ts +0 -131
- package/dist/client-CMxxwT3N.d.ts +0 -122
- package/dist/client-CU7aNN_B.d.ts +0 -277
- package/dist/client-CYEdJKjk.d.ts +0 -157
- package/dist/client-CYhSGlCN.d.ts +0 -107
- package/dist/client-C_-NZRrg.js +0 -120
- package/dist/client-CcPxbHeT.js +0 -288
- package/dist/client-CosiUrUb.js +0 -98
- package/dist/client-D3gRTNSi.d.ts +0 -68
- package/dist/client-D7T7OLiw.js +0 -169
- package/dist/client-DB34f_7i.d.ts +0 -58
- package/dist/client-DCawyopp.d.ts +0 -65
- package/dist/client-DNq8xYb-.js +0 -52
- package/dist/client-Dqa4XyJ5.d.ts +0 -108
- package/dist/client-Dr5h2r9r.d.ts +0 -34
- package/dist/client-DrTqKgvy.d.ts +0 -155
- package/dist/client-DyfWYU8S.js +0 -84
- package/dist/client-Dz1jWDA2.js +0 -209
- package/dist/client-DzTtOVRR.js +0 -137
- package/dist/client-Ezlbskjq.js +0 -60
- package/dist/client-GCCRI9ge.d.ts +0 -135
- package/dist/client-P6v3h7vh.d.ts +0 -130
- package/dist/client-P8l8ncxV.d.ts +0 -103
- package/dist/client-UnM3e32l.js +0 -133
- package/dist/client-WgrPIHH-.js +0 -213
- package/dist/client-ZTtSV3l8.js +0 -40
- package/dist/client-arq4daO_.js +0 -104
- package/dist/client-ckXfdy1k.js +0 -38
- package/dist/client-eCDPjOMo.js +0 -438
- package/dist/client-iaFm0aVf.js +0 -67
- package/dist/client-kWg4OqIr.d.ts +0 -162
- package/dist/client-pxjbgOz6.js +0 -376
- package/dist/client-tvG258_1.d.ts +0 -59
- package/dist/client-wKmX-f3r.d.ts +0 -388
- package/dist/clone-dN9XOL1K.js +0 -29
- package/dist/cloud-event-CTh9Sr5w.js +0 -60
- package/dist/cloud-event-DXkNoI6v.d.ts +0 -64
- package/dist/codecs-D-rpDifG.js +0 -358
- package/dist/codecs-RwFNK8Jh.d.ts +0 -215
- package/dist/codegen-C64C0NZG.d.ts +0 -1665
- package/dist/comments-CV5O8q50.js +0 -230
- package/dist/compiler-D_Gjpw_O.d.ts +0 -14
- package/dist/compose-CP0ss-cQ.js +0 -53
- package/dist/composite-1kPAxXto.js +0 -130
- package/dist/composite-DzvBL5nb.d.ts +0 -67
- package/dist/config-DHhQmmuD.js +0 -3917
- package/dist/config-NQmw_wsk.js +0 -558
- package/dist/connector-D9NMNkv0.d.ts +0 -107
- package/dist/connectors-BwPNt-ZG.d.ts +0 -141
- package/dist/context-B8_p3MXo.js +0 -11
- package/dist/context-BiwgsycK.js +0 -41
- package/dist/context-C-bHOtoD.js +0 -5
- package/dist/context-Cv3KlxWY.d.ts +0 -377
- package/dist/context-D6ZMKc2L.js +0 -19
- package/dist/context-wDKxSl9x.js +0 -9
- package/dist/controller-BZhiIb-N.d.ts +0 -46
- package/dist/controller-D6NyNrlZ.js +0 -79
- package/dist/cron-BHdXZFsJ.js +0 -145
- package/dist/cron-route-mTvWhork.js +0 -24
- package/dist/csv-CVfXqaAu.js +0 -89
- package/dist/csv-D3eKxV1T.d.ts +0 -28
- package/dist/db-exception-CnWcYPxL.js +0 -15
- package/dist/define-Bu1v781m.js +0 -1962
- package/dist/define-DYZnvAbs.d.ts +0 -1058
- package/dist/define-block-B6Gjs57G.js +0 -52
- package/dist/define-block-BHxLHLys.d.ts +0 -256
- package/dist/delegation-B7uNnz6z.js +0 -140
- package/dist/delivery-B1mKaOen.js +0 -30
- package/dist/delivery-BeHgwS3k.d.ts +0 -69
- package/dist/documents-CqtVr2fg.d.ts +0 -96
- package/dist/email-BcmbIWOX.d.ts +0 -42
- package/dist/embeddings-CKhygw4C.d.ts +0 -78
- package/dist/embeddings-CVeOoufZ.js +0 -128
- package/dist/ended-De6H52nX.d.ts +0 -70
- package/dist/entitlements-C8UvF1Rz.js +0 -45
- package/dist/entitlements-CtBGXb3B.d.ts +0 -53
- package/dist/envelope-C4Z55LKW.js +0 -90
- package/dist/errors-BV1SKTVs.js +0 -315
- package/dist/errors-D3BR8iUk.js +0 -44
- package/dist/escape-like-B339PlP-.d.ts +0 -15
- package/dist/eve-B6ru2Bt4.d.ts +0 -151
- package/dist/event-calendar-DJXXMJ3x.d.ts +0 -217
- package/dist/event-map-Dy2vKHai.js +0 -19
- package/dist/events-P3raDX2E.d.ts +0 -800
- package/dist/events-xbpHkcK9.js +0 -82
- package/dist/executor-BWgJNbGh.d.ts +0 -95
- package/dist/executor-BiB0wMBA.js +0 -735
- package/dist/executor-BnMC0lj3.d.ts +0 -272
- package/dist/executor-CvsNcQsa.d.ts +0 -174
- package/dist/executor-CxGQiQN_.js +0 -206
- package/dist/executor-D1hECPGG.d.ts +0 -39
- package/dist/executor-D3K3tycZ.js +0 -147
- package/dist/field-errors-DZVRWRkf.js +0 -13
- package/dist/field-errors-Z-sgsdoN.d.ts +0 -113
- package/dist/field-formats-Cif5gr7c.js +0 -102
- package/dist/field-formats-DCvOQlOy.d.ts +0 -39
- package/dist/filter-evaluate-BJcaL3o1.d.ts +0 -34
- package/dist/filter-evaluate-C0ULNfS7.js +0 -214
- package/dist/filter-query-B3lhckKX.js +0 -518
- package/dist/filter-query-Bc_Qa8V_.d.ts +0 -121
- package/dist/flags-6KK6Vqkr.d.ts +0 -230
- package/dist/flags-aUR7Rod6.js +0 -279
- package/dist/form-definition-GVZTILhS.js +0 -311
- package/dist/form-definition-sagoefQr.d.ts +0 -95
- package/dist/format-CNwSjXUU.d.ts +0 -70
- package/dist/framework-BQhTsLX-.d.ts +0 -26
- package/dist/framework-C6PKBgme.js +0 -51
- package/dist/function-contract-DWqFl_QO.d.ts +0 -21
- package/dist/function-contract-DmkBg19r.js +0 -5
- package/dist/gateway-Bq_tWwxE.d.ts +0 -109
- package/dist/gateway-options-ClvvfuuU.d.ts +0 -29
- package/dist/gateway-options-DcLcWL5_.js +0 -27
- package/dist/graph-Cs28bOlK.js +0 -360
- package/dist/hmac-BgpThYQW.js +0 -23
- package/dist/http-C7trc6uN.js +0 -25
- package/dist/http-Cv4T29xh.js +0 -40
- package/dist/http-DdYadv-o.js +0 -126
- package/dist/image-url-pIVlO6R1.js +0 -41
- package/dist/impersonation-D5chOkrO.d.ts +0 -25
- package/dist/impersonation-DxU6yHJV.js +0 -62
- package/dist/inbox-Du5aPwKB.d.ts +0 -400
- package/dist/index-1Vsg-7YV.d.ts +0 -58
- package/dist/index-BJLPQr2s.d.ts +0 -377
- package/dist/index-BpFYMsi0.d.ts +0 -53
- package/dist/index-BpyBH5O2.d.ts +0 -227
- package/dist/index-C-_fs7EI.d.ts +0 -258
- package/dist/index-CXFf-c-j.d.ts +0 -131
- package/dist/index-Cm2-g_4H.d.ts +0 -722
- package/dist/index-CxmVzT-3.d.ts +0 -86
- package/dist/index-DTQSeHx2.d.ts +0 -97
- package/dist/index-Hc4tetmB.d.ts +0 -245
- package/dist/index-QWTq2o31.d.ts +0 -138
- package/dist/index-XcTBR4Gb.d.ts +0 -206
- package/dist/index-k-rrfG1g.d.ts +0 -202
- package/dist/index-wTnPJUhv.d.ts +0 -58
- package/dist/invalidate-BBqhpxyB.d.ts +0 -19
- package/dist/iso4217-A8ev-CNW.js +0 -176
- package/dist/json-CEnpTHlZ.js +0 -16
- package/dist/json-schema-CpYINXG8.js +0 -548
- package/dist/jwks-cache-C4rA69hD.js +0 -49
- package/dist/jws-35a8VhFV.d.ts +0 -60
- package/dist/jws-CwBB5QAT.js +0 -193
- package/dist/kit-De-EVRhw.d.ts +0 -66
- package/dist/kit-LTbHrWWD.js +0 -104
- package/dist/knowledge-B5zdpDD-.d.ts +0 -187
- package/dist/knowledge-BbdXOJvY.js +0 -272
- package/dist/list-query-CBXNfJt4.js +0 -549
- package/dist/list-query-aXr2WkGA.d.ts +0 -194
- package/dist/live-DwDreq1n.js +0 -239
- package/dist/management-D1gG89z2.d.ts +0 -53
- package/dist/message-B0fNJgq8.d.ts +0 -93
- package/dist/messages-D5nIfCCf.js +0 -493
- package/dist/metric-definition-95HFoW1V.d.ts +0 -70
- package/dist/mfa-YzkRjNad.d.ts +0 -30
- package/dist/model-lUafmeBQ.d.ts +0 -311
- package/dist/model-messages-CIdqdUtk.js +0 -206
- package/dist/model-messages-D4GZllOD.d.ts +0 -34
- package/dist/money-95Rff2vT.js +0 -185
- package/dist/money-DFpWzQvk.d.ts +0 -76
- package/dist/money-codec-C21MWw50.js +0 -41
- package/dist/node-headers-AO06VhqH.d.ts +0 -24
- package/dist/onboarding-Du6kCmhF.js +0 -68
- package/dist/operations-CsIfMED7.js +0 -29
- package/dist/operations-DQCWqkt3.d.ts +0 -6
- package/dist/optional-peer-Dx8TaYXw.js +0 -29
- package/dist/options-BAW2ZlZ8.js +0 -8
- package/dist/options-C1HR4UZd.js +0 -13
- package/dist/options-Dh4wu9Ks.js +0 -15
- package/dist/options-QKP9FFcK.js +0 -8
- package/dist/options-XgfTctbI.js +0 -5
- package/dist/options-ZQzNKKBS.d.ts +0 -52
- package/dist/options-vXMBEWSH.js +0 -5
- package/dist/organizations-CO2qg44D.js +0 -398
- package/dist/outbox-B1hZ7PPY.d.ts +0 -181
- package/dist/payments-CzjCdIcz.js +0 -16
- package/dist/pg-error-BV_X8Isq.js +0 -26
- package/dist/plugin-D-95Q0w0.d.ts +0 -190
- package/dist/plugin-tfXW1-qO.js +0 -45
- package/dist/pool-cM3rpOQr.d.ts +0 -117
- package/dist/pool-errors-CGqvTQOC.js +0 -27
- package/dist/ports-BCDIbC_U.d.ts +0 -86
- package/dist/ports-P0A5wo_-.d.ts +0 -285
- package/dist/ports-aALjot-D.js +0 -137
- package/dist/postgrest-CjnO1hbr.d.ts +0 -53
- package/dist/preset-Cf0T9GRt.js +0 -691
- package/dist/problem-DCDIQiTA.d.ts +0 -76
- package/dist/problem-JRCohp1j.js +0 -159
- package/dist/provider-C-Ti38J6.js +0 -57
- package/dist/provider-DXgx5oSA.d.ts +0 -113
- package/dist/push-token-y1Gnz5bQ.d.ts +0 -24
- package/dist/query-Ctz-qKRx.js +0 -303
- package/dist/rank-result-BcYfDA0x.d.ts +0 -14
- package/dist/rank-result-DtQuIvob.js +0 -18
- package/dist/rate-limit-DVZ7qIzW.js +0 -49
- package/dist/rate-limit-I3AncmM8.js +0 -325
- package/dist/rate-limit-c6c1mB6R.d.ts +0 -41
- package/dist/ratelimit-headers-Bsxx0Tj2.js +0 -62
- package/dist/react-4ZqkP8da.js +0 -79
- package/dist/react-DzukE6Wp.js +0 -410
- package/dist/react-controller-Xn-IU44p.js +0 -40
- package/dist/react-env-Cc7Vf6eb.js +0 -13
- package/dist/read-set-DeesfeL_.js +0 -314
- package/dist/realtime-status-D2dw1hOE.js +0 -12
- package/dist/realtime-status-DcsO00Gw.d.ts +0 -8
- package/dist/refusal-C7geIBRl.d.ts +0 -18
- package/dist/refusal-CFpfmjcS.js +0 -61
- package/dist/resolve-AtncaPTU.js +0 -877
- package/dist/resolve-Ceft-18-.d.ts +0 -270
- package/dist/resource-Bdkqi8jo.js +0 -463
- package/dist/resource-DO4gbVi5.js +0 -91
- package/dist/resource-DYEtc-KN.d.ts +0 -106
- package/dist/resource-execute-Bxvgmx-n.d.ts +0 -12
- package/dist/resource-schemas-BJ518zFH.js +0 -79
- package/dist/resource-types-LW1i5-h3.d.ts +0 -141
- package/dist/resources-Ck7itNeX.js +0 -64
- package/dist/resources-D3_FAz_H.d.ts +0 -7
- package/dist/respond-BSL36dQp.d.ts +0 -93
- package/dist/respond-Bhp3G__q.js +0 -95
- package/dist/result-BREt7qOh.d.ts +0 -312
- package/dist/result-DIeYscA3.js +0 -134
- package/dist/rrule-Cw4x4Pf_.js +0 -290
- package/dist/rules-BiQgmZ_U.js +0 -287
- package/dist/run-watch-CQRdpy-f.js +0 -53
- package/dist/runtime-BOXURhEW.js +0 -45
- package/dist/sales-lines-C6gafAwg.d.ts +0 -28
- package/dist/sales-lines-CQ1iC6QM.js +0 -41
- package/dist/sales-shared-CDSytDEn.js +0 -22
- package/dist/search-BtoWY6n_.js +0 -9
- package/dist/search-ZP13UTT4.js +0 -106
- package/dist/server-types-fLdep4gb.d.ts +0 -757
- package/dist/session-DObioXpX.d.ts +0 -95
- package/dist/settings-BiHDFglz.js +0 -90
- package/dist/shared-BmMcMoW9.js +0 -89
- package/dist/shared-C9zvURqC.js +0 -14
- package/dist/shared-D5Djh43x.js +0 -60
- package/dist/shared-DDSjEGDR.d.ts +0 -11
- package/dist/sign-in-BCV5S2WZ.d.ts +0 -49
- package/dist/sign-in-z2BaBdps.js +0 -367
- package/dist/signatures-BXlDXV3D.d.ts +0 -43
- package/dist/signatures-CeIoAelK.js +0 -145
- package/dist/signers-BwKV-9S6.d.ts +0 -385
- package/dist/signing-keys-v2MRYkDF.d.ts +0 -105
- package/dist/solid-controller-CWotGxcG.d.ts +0 -11
- package/dist/solid-controller-DLsmrczT.js +0 -33
- package/dist/spec-pins-Dqpml2dZ.d.ts +0 -84
- package/dist/spec-pins-S4PymRxp.js +0 -60
- package/dist/sql-BPKRNutj.js +0 -422
- package/dist/sql-CT1Jnwp8.js +0 -88660
- package/dist/sso-BaU_6ePE.js +0 -217
- package/dist/sso-Bu0mVh0V.d.ts +0 -131
- package/dist/standard-B1BigegP.js +0 -25
- package/dist/standard-BcUQuUgu.d.ts +0 -7
- package/dist/stats-Di5VAsYU.js +0 -1128
- package/dist/store-B18bIvKc.d.ts +0 -68
- package/dist/store-BdH5ruDx.js +0 -66
- package/dist/stripe-NVcNOhHy.d.ts +0 -140
- package/dist/stripe-XZrSmDTf.js +0 -32
- package/dist/subject-readers-BUChuOxL.d.ts +0 -21
- package/dist/subject-readers-BpwUFJtp.js +0 -46
- package/dist/subjects-DP-fvFkk.d.ts +0 -77
- package/dist/subscribers-Cq--DL1E.js +0 -34
- package/dist/supabase-mcp-C6tMoEjn.d.ts +0 -43
- package/dist/supabase-mcp-DomZ-amK.js +0 -28
- package/dist/support-C2wPYwD7.js +0 -522
- package/dist/support-view-Bj_lZ8Wr.d.ts +0 -17
- package/dist/svelte-controller-CDAujo-_.js +0 -50
- package/dist/svelte-controller-sS4X66yL.d.ts +0 -10
- package/dist/table-schema-pQlER3jj.js +0 -283
- package/dist/tags-B99_U9Pp.js +0 -39
- package/dist/tags-BqgaxCnv.js +0 -84
- package/dist/tags-BrGopDVG.d.ts +0 -30
- package/dist/tax-DMWDUzKt.d.ts +0 -273
- package/dist/tax-wm9g2mD2.js +0 -140
- package/dist/tee-Cw-iJAWL.js +0 -101
- package/dist/template-Dw3dTmKe.js +0 -123
- package/dist/temporal-CB5Fpo5d.js +0 -79
- package/dist/temporal-required-nfZ87U-0.js +0 -20
- package/dist/tenant-B-fiItlJ.js +0 -27
- package/dist/tenant-DZMLVuyQ.d.ts +0 -17
- package/dist/tenant-naming-Bsj3Uvap.js +0 -27
- package/dist/timing-BMCWgpdZ.js +0 -92
- package/dist/topic-DAY_HOX2.d.ts +0 -387
- package/dist/topic-mee21pux.js +0 -629
- package/dist/ttl-Hr34gRu8.js +0 -12
- package/dist/ttl-cache-XzZ-Q2eX.js +0 -29
- package/dist/types-BA1eTvy4.d.ts +0 -162
- package/dist/types-BEEFkNFY.d.ts +0 -564
- package/dist/types-BRTSpOIh.js +0 -5
- package/dist/types-Bels39_u.d.ts +0 -649
- package/dist/types-BrpW5ixT.d.ts +0 -370
- package/dist/types-DOC7wnh6.d.ts +0 -249
- package/dist/types-D_2rClz-.d.ts +0 -205
- package/dist/undo-B5LgpGLy.js +0 -44
- package/dist/undo-BsdYRox7.d.ts +0 -43
- package/dist/upload-claim-BBFCZbBF.js +0 -33
- package/dist/usage-C504GF55.d.ts +0 -220
- package/dist/usage-DdqT13_X.js +0 -261
- package/dist/user-change-XzvgafU4.js +0 -130
- package/dist/vault-ClkzMGTP.d.ts +0 -50
- package/dist/verify-DU4p9-Ve.d.ts +0 -142
- package/dist/verify-DnU-uWU2.js +0 -126
- package/dist/version-DSWxci83.js +0 -4
- package/dist/view-CYX1wsgp.js +0 -105
- package/dist/view-KQhe6eNc.d.ts +0 -90
- package/dist/vue-controller-BUo1oove.d.ts +0 -11
- package/dist/vue-controller-C9tFzqAc.js +0 -32
- package/dist/watch-5btote1y.d.ts +0 -84
- package/dist/watch-BAuIzC2r.js +0 -139
- package/dist/watch-topic-C79ZW5-R.d.ts +0 -28
- package/dist/watch-topic-miuymrli.js +0 -57
- package/dist/wire-BCJxCtHS.js +0 -45
- package/dist/workflow-builder-CynLqc6H.js +0 -697
- package/dist/workflow-sdk-CWdCWj7M.d.ts +0 -161
- package/dist/workflow-sdk-QnnzIQRc.js +0 -243
- package/dist/workflow-sdk-world-QzcxaaCD.js +0 -2103
- package/dist/workflows-DQBCzrHC.d.ts +0 -243
- package/dist/workflows-H9qJge3f.js +0 -282
|
@@ -0,0 +1,959 @@
|
|
|
1
|
+
import { i as FIELD_FORMAT_NAMES, r as FIELD_FORMATS } from "./field-formats-C6QKA3UR.js";
|
|
2
|
+
//#region src/config/blocks.ts
|
|
3
|
+
const BLOCK_SCOPES = [
|
|
4
|
+
"tenant",
|
|
5
|
+
"user",
|
|
6
|
+
"none"
|
|
7
|
+
];
|
|
8
|
+
/**
|
|
9
|
+
* URL tenancy: the tenant comes from the request (a slug), not a stored
|
|
10
|
+
* setting.
|
|
11
|
+
*/
|
|
12
|
+
const DEFAULT_ACTIVE_TENANT = "resolver";
|
|
13
|
+
/**
|
|
14
|
+
* Block configs built at runtime (a preset, a `/create` design) as the typed
|
|
15
|
+
* `BlocksConfig`. `resolveConfig` checks every module, table, column, function
|
|
16
|
+
* and entity name, so nothing this skips at compile time goes unchecked.
|
|
17
|
+
*/
|
|
18
|
+
function asBlocksConfig(blocks) {
|
|
19
|
+
return blocks;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The tenant's new singular name (`blocks.tenant.entities.organization`), or
|
|
23
|
+
* `undefined` while it is `organization`. `blocks` may be the config's list of
|
|
24
|
+
* block names, which renames nothing.
|
|
25
|
+
*/
|
|
26
|
+
function tenantNameOf(blocks) {
|
|
27
|
+
if (blocks === void 0 || isNameList(blocks)) return;
|
|
28
|
+
const entities = blocks["tenant"]?.entities;
|
|
29
|
+
if (entities === void 0 || typeof entities === "string") return;
|
|
30
|
+
const value = entities["organization"];
|
|
31
|
+
return typeof value === "string" ? value : value?.name;
|
|
32
|
+
}
|
|
33
|
+
function isNameList(blocks) {
|
|
34
|
+
return Array.isArray(blocks);
|
|
35
|
+
}
|
|
36
|
+
const MODULE_SCHEMA = "better_supabase";
|
|
37
|
+
/** `record` without the keys a typed config leaves `undefined`. */
|
|
38
|
+
function defined(record) {
|
|
39
|
+
return Object.fromEntries(Object.entries(record ?? {}).filter((entry) => entry[1] !== void 0));
|
|
40
|
+
}
|
|
41
|
+
function resolveModule(config = {}) {
|
|
42
|
+
return {
|
|
43
|
+
mode: config.mode ?? "managed",
|
|
44
|
+
schema: config.schema ?? MODULE_SCHEMA,
|
|
45
|
+
tables: defined(config.tables),
|
|
46
|
+
columns: Object.fromEntries(Object.entries(defined(config.columns)).map(([table, columns]) => [table, defined(columns)])),
|
|
47
|
+
...config.idType === void 0 ? {} : { idType: config.idType },
|
|
48
|
+
...config.scope === void 0 ? {} : { scope: config.scope },
|
|
49
|
+
functions: defined(config.functions),
|
|
50
|
+
permissions: defined(config.permissions),
|
|
51
|
+
options: config.options ?? {},
|
|
52
|
+
hooks: {
|
|
53
|
+
schema: config.hooks?.schema ?? "public",
|
|
54
|
+
functions: defined(config.hooks?.functions)
|
|
55
|
+
},
|
|
56
|
+
events: config.events ?? true,
|
|
57
|
+
audit: config.audit ?? true,
|
|
58
|
+
...config.api === void 0 || config.api === false ? {} : { api: typeof config.api === "string" ? { schema: config.api } : config.api }
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/config/types/app-tables.ts
|
|
63
|
+
/**
|
|
64
|
+
* The column types an app table may use. Money is a `bigint` of minor units
|
|
65
|
+
* next to a `text` currency column (ADR 0024 and 0037), never `numeric`.
|
|
66
|
+
*/
|
|
67
|
+
const APP_COLUMN_TYPES = [
|
|
68
|
+
"text",
|
|
69
|
+
"uuid",
|
|
70
|
+
"integer",
|
|
71
|
+
"bigint",
|
|
72
|
+
"numeric",
|
|
73
|
+
"boolean",
|
|
74
|
+
"timestamptz",
|
|
75
|
+
"date",
|
|
76
|
+
"jsonb",
|
|
77
|
+
"text[]"
|
|
78
|
+
];
|
|
79
|
+
/**
|
|
80
|
+
* What a reference does when the row it points at is deleted
|
|
81
|
+
* (`references.onDelete`).
|
|
82
|
+
*/
|
|
83
|
+
const APP_ON_DELETE_ACTIONS = [
|
|
84
|
+
"cascade",
|
|
85
|
+
"restrict",
|
|
86
|
+
"set null",
|
|
87
|
+
"no action"
|
|
88
|
+
];
|
|
89
|
+
/**
|
|
90
|
+
* What a column holds, beyond its Postgres type. `email`, `url`, `rating` and
|
|
91
|
+
* `percent` add a check; the others tell the UI and `gen` how to show the
|
|
92
|
+
* value. `FIELD_FORMATS` lists the types each fits and its input.
|
|
93
|
+
*/
|
|
94
|
+
const APP_COLUMN_FORMATS = FIELD_FORMAT_NAMES;
|
|
95
|
+
const APP_COLUMN_ACCESS = ["read", "server"];
|
|
96
|
+
const APP_TABLE_EVENT_KINDS = [
|
|
97
|
+
"created",
|
|
98
|
+
"updated",
|
|
99
|
+
"deleted"
|
|
100
|
+
];
|
|
101
|
+
const APP_ROLLUP_AGGREGATES = [
|
|
102
|
+
"count",
|
|
103
|
+
"sum",
|
|
104
|
+
"min",
|
|
105
|
+
"max",
|
|
106
|
+
"avg"
|
|
107
|
+
];
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/config/app-access.ts
|
|
110
|
+
const PLACEHOLDER$1 = /\{([^}]*)\}/gu;
|
|
111
|
+
/** `appTables.<t>.columns.<c>.access` checked. */
|
|
112
|
+
function accessOf(where, value) {
|
|
113
|
+
if (value === void 0) return;
|
|
114
|
+
const access = APP_COLUMN_ACCESS.find((option) => option === value);
|
|
115
|
+
if (access === void 0) throw new TypeError(`${where} must be one of ${APP_COLUMN_ACCESS.join(", ")}`);
|
|
116
|
+
return access;
|
|
117
|
+
}
|
|
118
|
+
/** The own columns of `table` with `access` set to `access`, in config order. */
|
|
119
|
+
function columnsWithAccess(table, access) {
|
|
120
|
+
return Object.entries(table.columns ?? {}).flatMap(([name, column]) => column.access === access ? [name] : []);
|
|
121
|
+
}
|
|
122
|
+
/** The own columns of `table` that are `encrypted`, in config order. */
|
|
123
|
+
function encryptedColumns(table) {
|
|
124
|
+
return Object.entries(table.columns ?? {}).flatMap(([name, column]) => column.encrypted === true ? [name] : []);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* The own columns signed-in users can't select: `access: "server"` ones, and
|
|
128
|
+
* encrypted ones, which they read through `<table>_reveal`.
|
|
129
|
+
*/
|
|
130
|
+
function hiddenColumns(table) {
|
|
131
|
+
return Object.entries(table.columns ?? {}).flatMap(([name, column]) => column.access === "server" || column.encrypted === true ? [name] : []);
|
|
132
|
+
}
|
|
133
|
+
/** Whether `table` grants by column: a column sets `access` or is encrypted. */
|
|
134
|
+
function hasColumnAccess(table) {
|
|
135
|
+
return Object.values(table.columns ?? {}).some((column) => column.access !== void 0 || column.encrypted === true);
|
|
136
|
+
}
|
|
137
|
+
function urlColumns(url) {
|
|
138
|
+
return url === void 0 ? [] : [...url.matchAll(PLACEHOLDER$1)].flatMap((match) => match[1] === void 0 ? [] : [match[1]]);
|
|
139
|
+
}
|
|
140
|
+
/** Every place a table's config reads a column for signed-in users. */
|
|
141
|
+
function readsOf(name, table, tables) {
|
|
142
|
+
const at = `appTables.${name}`;
|
|
143
|
+
const { subject } = table;
|
|
144
|
+
const versions = subject?.versions;
|
|
145
|
+
const rank = subject?.rank;
|
|
146
|
+
const own = (where, column) => ({
|
|
147
|
+
where: `${at}.${where}`,
|
|
148
|
+
table: name,
|
|
149
|
+
column
|
|
150
|
+
});
|
|
151
|
+
const lookupTarget = (via) => {
|
|
152
|
+
const reference = table.columns?.[via]?.references;
|
|
153
|
+
return reference === void 0 || "block" in reference ? void 0 : reference.table;
|
|
154
|
+
};
|
|
155
|
+
return [
|
|
156
|
+
own("subject.title", subject?.title),
|
|
157
|
+
own("subject.search.title", subject?.search?.title),
|
|
158
|
+
...(subject?.search?.body ?? []).map((column) => own("subject.search.body", column)),
|
|
159
|
+
...urlColumns(subject?.url).map((column) => own("subject.url", column)),
|
|
160
|
+
own("subject.rank.group", rank === true ? void 0 : rank?.group),
|
|
161
|
+
...versions === true || versions?.columns === void 0 ? [] : versions.columns.map((column) => own("subject.versions.columns", column)),
|
|
162
|
+
...(table.events === true ? [] : table.events?.include ?? []).map((column) => own("events.include", column)),
|
|
163
|
+
...Object.entries(table.rollups ?? {}).flatMap(([key, rollup]) => [
|
|
164
|
+
rollup.via,
|
|
165
|
+
rollup.column,
|
|
166
|
+
rollup.where?.column
|
|
167
|
+
].map((column) => ({
|
|
168
|
+
where: `${at}.rollups.${key}`,
|
|
169
|
+
table: rollup.table,
|
|
170
|
+
column
|
|
171
|
+
}))),
|
|
172
|
+
...Object.entries(table.lookups ?? {}).flatMap(([key, lookup]) => {
|
|
173
|
+
const target = lookupTarget(lookup.via);
|
|
174
|
+
return [own(`lookups.${key}.via`, lookup.via), {
|
|
175
|
+
where: `${at}.lookups.${key}.column`,
|
|
176
|
+
table: target ?? name,
|
|
177
|
+
column: target === void 0 ? void 0 : lookup.column
|
|
178
|
+
}];
|
|
179
|
+
})
|
|
180
|
+
].filter((use) => tables[use.table] !== void 0);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Throws when a column with `access: "server"` or `encrypted` is read where
|
|
184
|
+
* signed-in users see the value: a subject's title, search, url, rank group or
|
|
185
|
+
* versioned columns, an event payload, or a rollup or lookup (ADR 0051). The
|
|
186
|
+
* database sees an encrypted column as ciphertext, so these can't use it
|
|
187
|
+
* either. Versions of every column (`versions: true`) would copy it into the
|
|
188
|
+
* history, so such a table lists `subject.versions.columns`.
|
|
189
|
+
*/
|
|
190
|
+
function checkColumnAccess(tables) {
|
|
191
|
+
for (const [name, table] of Object.entries(tables)) {
|
|
192
|
+
const hidden = hiddenColumns(table);
|
|
193
|
+
const versions = table.subject?.versions;
|
|
194
|
+
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 ${hidden.length === 1 ? "is" : "are"} hidden from signed-in users (access server or encrypted); list subject.versions.columns without it`);
|
|
195
|
+
for (const use of readsOf(name, table, tables)) {
|
|
196
|
+
const column = use.column === void 0 ? void 0 : tables[use.table]?.columns?.[use.column];
|
|
197
|
+
if (column?.encrypted === true) throw new TypeError(`${use.where}: ${use.table}.${String(use.column)} is encrypted, so the database only sees ciphertext here; drop it or drop encrypted`);
|
|
198
|
+
if (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`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//#endregion
|
|
203
|
+
//#region src/config/app-computed.ts
|
|
204
|
+
const IDENT$1 = /^[a-z][a-z0-9_]{0,62}$/;
|
|
205
|
+
/** Rollups and lookups together, per table. */
|
|
206
|
+
const MAX_COMPUTED = 50;
|
|
207
|
+
const ROLLUP_KEYS = /* @__PURE__ */ new Set([
|
|
208
|
+
"table",
|
|
209
|
+
"via",
|
|
210
|
+
"aggregate",
|
|
211
|
+
"column",
|
|
212
|
+
"where"
|
|
213
|
+
]);
|
|
214
|
+
const WHERE_KEYS = /* @__PURE__ */ new Set(["column", "equals"]);
|
|
215
|
+
const LOOKUP_KEYS = /* @__PURE__ */ new Set(["via", "column"]);
|
|
216
|
+
const AGGREGATES = new Set(APP_ROLLUP_AGGREGATES);
|
|
217
|
+
const NUMBERS = /* @__PURE__ */ new Set([
|
|
218
|
+
"integer",
|
|
219
|
+
"bigint",
|
|
220
|
+
"numeric"
|
|
221
|
+
]);
|
|
222
|
+
const ORDERED = /* @__PURE__ */ new Set([
|
|
223
|
+
...NUMBERS,
|
|
224
|
+
"date",
|
|
225
|
+
"timestamptz",
|
|
226
|
+
"text"
|
|
227
|
+
]);
|
|
228
|
+
function isObject$1(value) {
|
|
229
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
230
|
+
}
|
|
231
|
+
function isAggregate(value) {
|
|
232
|
+
return typeof value === "string" && AGGREGATES.has(value);
|
|
233
|
+
}
|
|
234
|
+
function checkKeys$1(where, value, allowed) {
|
|
235
|
+
for (const key of Object.keys(value)) if (!allowed.has(key)) throw new TypeError(`${where}: unknown key "${key}" (use ${[...allowed].join(", ")})`);
|
|
236
|
+
}
|
|
237
|
+
/** The columns of `table` a rollup or lookup may read, with their types. */
|
|
238
|
+
function readable(table) {
|
|
239
|
+
return new Map([...Object.entries(table.columns ?? {}).map(([name, column]) => [name, column.type]), ...table.timestamps === false ? [] : [["created_at", "timestamptz"], ["updated_at", "timestamptz"]]]);
|
|
240
|
+
}
|
|
241
|
+
function listOf(names) {
|
|
242
|
+
const list = [...names].join(", ");
|
|
243
|
+
return list === "" ? "none" : list;
|
|
244
|
+
}
|
|
245
|
+
/** The columns of `child` that reference the app table `parent`. */
|
|
246
|
+
function referencesTo(child, parent) {
|
|
247
|
+
return Object.entries(child.columns ?? {}).filter(([, column]) => column.references !== void 0 && !("block" in column.references) && column.references.table === parent).map(([name]) => name);
|
|
248
|
+
}
|
|
249
|
+
function whereOf(where, value, child, table) {
|
|
250
|
+
if (value === void 0) return;
|
|
251
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be { column, equals }`);
|
|
252
|
+
checkKeys$1(where, value, WHERE_KEYS);
|
|
253
|
+
const { column, equals } = value;
|
|
254
|
+
const selects = Object.entries(table.columns ?? {}).filter(([, each]) => each.type === "text" && each.options !== void 0);
|
|
255
|
+
const found = selects.find(([name]) => name === column)?.[1];
|
|
256
|
+
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))})`);
|
|
257
|
+
if (typeof equals !== "string" || !found.options.includes(equals)) throw new TypeError(`${where}.equals must be an option of ${child}.${column} (${listOf(found.options)})`);
|
|
258
|
+
return {
|
|
259
|
+
column,
|
|
260
|
+
equals
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
function rollupOf(where, value, parent, tables) {
|
|
264
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be an object`);
|
|
265
|
+
checkKeys$1(where, value, ROLLUP_KEYS);
|
|
266
|
+
const { table, via, aggregate, column } = value;
|
|
267
|
+
const child = typeof table === "string" ? tables[table] : void 0;
|
|
268
|
+
if (typeof table !== "string" || child === void 0) throw new TypeError(`${where}.table must name an app table (${listOf(Object.keys(tables))})`);
|
|
269
|
+
const vias = referencesTo(child, parent);
|
|
270
|
+
if (typeof via !== "string" || !vias.includes(via)) throw new TypeError(`${where}.via must name a column of ${table} that references ${parent} (${listOf(vias)})`);
|
|
271
|
+
if (!isAggregate(aggregate)) throw new TypeError(`${where}.aggregate must be one of ${APP_ROLLUP_AGGREGATES.join(", ")}`);
|
|
272
|
+
const filter = whereOf(`${where}.where`, value["where"], table, child);
|
|
273
|
+
const base = {
|
|
274
|
+
table,
|
|
275
|
+
via,
|
|
276
|
+
aggregate,
|
|
277
|
+
...filter ? { where: filter } : {}
|
|
278
|
+
};
|
|
279
|
+
if (aggregate === "count") {
|
|
280
|
+
if (column !== void 0) throw new TypeError(`${where}.column: count counts rows; drop column`);
|
|
281
|
+
return base;
|
|
282
|
+
}
|
|
283
|
+
const fits = aggregate === "sum" || aggregate === "avg" ? NUMBERS : ORDERED;
|
|
284
|
+
const candidates = [...readable(child)].filter(([, type]) => fits.has(type)).map(([name]) => name);
|
|
285
|
+
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)})`);
|
|
286
|
+
return {
|
|
287
|
+
...base,
|
|
288
|
+
column
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
function lookupOf(where, value, name, tables) {
|
|
292
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be an object`);
|
|
293
|
+
checkKeys$1(where, value, LOOKUP_KEYS);
|
|
294
|
+
const { via, column } = value;
|
|
295
|
+
const own = tables[name]?.columns ?? {};
|
|
296
|
+
const vias = Object.entries(own).filter(([, each]) => each.references !== void 0 && !("block" in each.references) && Object.hasOwn(tables, each.references.table));
|
|
297
|
+
const reference = vias.find(([each]) => each === via)?.[1].references;
|
|
298
|
+
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))})`);
|
|
299
|
+
const target = tables[reference.table];
|
|
300
|
+
const columns = target === void 0 ? /* @__PURE__ */ new Map() : readable(target);
|
|
301
|
+
if (typeof column !== "string" || !columns.has(column)) throw new TypeError(`${where}.column must name a column of ${reference.table} (${listOf(columns.keys())})`);
|
|
302
|
+
return {
|
|
303
|
+
via,
|
|
304
|
+
column
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
function entriesOf(where, value) {
|
|
308
|
+
if (value === void 0) return [];
|
|
309
|
+
if (!isObject$1(value)) throw new TypeError(`${where} must be an object keyed by column name`);
|
|
310
|
+
return Object.entries(value);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* The `rollups` and `lookups` of the app table `name`, checked against every
|
|
314
|
+
* resolved app table. `taken` holds the columns the table already has, which a
|
|
315
|
+
* computed column may not reuse.
|
|
316
|
+
*/
|
|
317
|
+
function computedOf(where, value, name, tables, taken) {
|
|
318
|
+
if (!isObject$1(value)) return {};
|
|
319
|
+
const rollups = entriesOf(`${where}.rollups`, value["rollups"]);
|
|
320
|
+
const lookups = entriesOf(`${where}.lookups`, value["lookups"]);
|
|
321
|
+
if (rollups.length + lookups.length > MAX_COMPUTED) throw new TypeError(`${where}: at most ${String(MAX_COMPUTED)} rollups and lookups together`);
|
|
322
|
+
const used = new Set(taken);
|
|
323
|
+
const named = (key, column) => {
|
|
324
|
+
const at = `${where}.${key}.${column}`;
|
|
325
|
+
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)`);
|
|
326
|
+
if (used.has(column)) throw new TypeError(`${at}: "${column}" is already a column of ${name}; choose another name`);
|
|
327
|
+
used.add(column);
|
|
328
|
+
return at;
|
|
329
|
+
};
|
|
330
|
+
const resolvedRollups = rollups.map(([column, rollup]) => [column, rollupOf(named("rollups", column), rollup, name, tables)]);
|
|
331
|
+
const resolvedLookups = lookups.map(([column, lookup]) => [column, lookupOf(named("lookups", column), lookup, name, tables)]);
|
|
332
|
+
return {
|
|
333
|
+
...value["rollups"] === void 0 ? {} : { rollups: Object.fromEntries(resolvedRollups) },
|
|
334
|
+
...value["lookups"] === void 0 ? {} : { lookups: Object.fromEntries(resolvedLookups) }
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
/** Whether a table has a rollup or a lookup, and so a `<table>_view`. */
|
|
338
|
+
function hasComputed(table) {
|
|
339
|
+
return Object.keys(table.rollups ?? {}).length > 0 || Object.keys(table.lookups ?? {}).length > 0;
|
|
340
|
+
}
|
|
341
|
+
//#endregion
|
|
342
|
+
//#region src/config/app-defaults.ts
|
|
343
|
+
const TEXT_LITERAL = /^'(?:[^'\\]|'')*'$/;
|
|
344
|
+
const INTEGER = /^-?\d{1,18}$/;
|
|
345
|
+
const NUMBER = /^-?\d{1,30}(?:\.\d{1,30})?$/;
|
|
346
|
+
const MAX_LITERAL = 200;
|
|
347
|
+
/** The defaults `isAppDefault` accepts, per type, as a message names them. */
|
|
348
|
+
const DEFAULT_EXAMPLES = {
|
|
349
|
+
text: "a 'quoted' text",
|
|
350
|
+
integer: "a whole number",
|
|
351
|
+
bigint: "a whole number",
|
|
352
|
+
numeric: "a number",
|
|
353
|
+
boolean: "true or false",
|
|
354
|
+
uuid: "gen_random_uuid(), auth.uid() or a 'quoted' value",
|
|
355
|
+
timestamptz: "now() or a 'quoted' value",
|
|
356
|
+
date: "now() or a 'quoted' value",
|
|
357
|
+
jsonb: "'{}' or '[]'",
|
|
358
|
+
"text[]": "'{}'"
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* Why `value` can't be the default of `column`, or `undefined` when it can: it
|
|
362
|
+
* must be on the `isAppDefault` allowlist, one of the column's `options`, and
|
|
363
|
+
* inside its bounds (`min`, `max`, or those of its format).
|
|
364
|
+
*/
|
|
365
|
+
function appDefaultError(column, value) {
|
|
366
|
+
const { type } = column;
|
|
367
|
+
if (!isAppDefault(type, value)) return `A ${type} column takes ${DEFAULT_EXAMPLES[type]} as its default.`;
|
|
368
|
+
const literal = TEXT_LITERAL.test(value) ? value.slice(1, -1).replaceAll("''", "'") : void 0;
|
|
369
|
+
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(", ")}.`;
|
|
370
|
+
const bounds = column.format === void 0 ? void 0 : FIELD_FORMATS[column.format].bounds;
|
|
371
|
+
const min = column.min ?? bounds?.[0];
|
|
372
|
+
const max = column.max ?? bounds?.[1];
|
|
373
|
+
const size = type === "text" ? literal?.length : NUMBER.test(value) ? Number(value) : void 0;
|
|
374
|
+
if (size === void 0) return;
|
|
375
|
+
const what = type === "text" ? "length" : "value";
|
|
376
|
+
if (min !== void 0 && size < min) return `The default's ${what} is below the minimum of ${String(min)}.`;
|
|
377
|
+
if (max !== void 0 && size > max) return `The default's ${what} is above the maximum of ${String(max)}.`;
|
|
378
|
+
}
|
|
379
|
+
/** Whether `value` is a default `type` accepts; see `AppColumnConfig.default`. */
|
|
380
|
+
function isAppDefault(type, value) {
|
|
381
|
+
switch (value) {
|
|
382
|
+
case "now()": return type === "timestamptz" || type === "date";
|
|
383
|
+
case "gen_random_uuid()":
|
|
384
|
+
case "auth.uid()": return type === "uuid";
|
|
385
|
+
case "true":
|
|
386
|
+
case "false": return type === "boolean";
|
|
387
|
+
case "'{}'": return type === "jsonb" || type === "text[]" || type === "text";
|
|
388
|
+
case "'[]'": return type === "jsonb" || type === "text";
|
|
389
|
+
}
|
|
390
|
+
if (INTEGER.test(value)) return type === "integer" || type === "bigint" || type === "numeric";
|
|
391
|
+
if (NUMBER.test(value)) return type === "numeric";
|
|
392
|
+
return value.length <= MAX_LITERAL && TEXT_LITERAL.test(value) && (type === "text" || type === "uuid" || type === "date" || type === "timestamptz");
|
|
393
|
+
}
|
|
394
|
+
//#endregion
|
|
395
|
+
//#region src/config/app-encryption.ts
|
|
396
|
+
function booleanOf(where, value) {
|
|
397
|
+
if (value !== void 0 && typeof value !== "boolean") throw new TypeError(`${where} must be true or false`);
|
|
398
|
+
return value;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* `appTables.<t>.columns.<c>.encrypted` checked: the database stores
|
|
402
|
+
* ciphertext, so it can't compare, index or reference the value.
|
|
403
|
+
*/
|
|
404
|
+
function encryptedOf(where, value, column) {
|
|
405
|
+
const encrypted = booleanOf(`${where}.encrypted`, value);
|
|
406
|
+
if (encrypted !== true) return encrypted;
|
|
407
|
+
const refused = column.type === "text[]" ? "a text[] column" : column.unique === true ? "a unique column" : column.references === void 0 ? column.identity === true ? "an identity" : void 0 : "a reference";
|
|
408
|
+
if (refused !== void 0) throw new TypeError(`${where}.encrypted: ${refused} can't be encrypted, since the database only sees ciphertext; drop encrypted or the other key`);
|
|
409
|
+
return encrypted;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* `appTables.<t>.auditReads` checked: reads are audited where they are
|
|
413
|
+
* decrypted, so the table needs an encrypted column.
|
|
414
|
+
*/
|
|
415
|
+
function auditReadsOf(where, value, columns) {
|
|
416
|
+
const audited = booleanOf(`${where}.auditReads`, value);
|
|
417
|
+
if (audited === true && !Object.values(columns).some((column) => column.encrypted === true)) throw new TypeError(`${where}.auditReads: reads are audited through ${where.replace("appTables.", "")}_reveal, which needs an encrypted column; set encrypted on one`);
|
|
418
|
+
return audited;
|
|
419
|
+
}
|
|
420
|
+
/** Throws when a `unique` or `indexes` key names an encrypted column. */
|
|
421
|
+
function checkEncryptedKeys(where, columns, keys) {
|
|
422
|
+
for (const [key, sets] of Object.entries(keys)) {
|
|
423
|
+
const column = (sets ?? []).flat().find((name) => columns[name]?.encrypted === true);
|
|
424
|
+
if (column !== void 0) throw new TypeError(`${where}.${key}: ${column} is encrypted, so the database can't compare it; drop it from the key`);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
//#endregion
|
|
428
|
+
//#region src/config/app-tables.ts
|
|
429
|
+
const IDENT = /^[a-z][a-z0-9_]{0,62}$/;
|
|
430
|
+
const BLOCK_NAME = /^[a-z][a-z0-9-]{0,62}$/;
|
|
431
|
+
const MAX_OPTIONS = 100;
|
|
432
|
+
const MAX_OPTION = 100;
|
|
433
|
+
const MAX_COMMENT = 1e3;
|
|
434
|
+
const MAX_KEY_SETS = 20;
|
|
435
|
+
/** Postgres keeps at most 32 columns in an index. */
|
|
436
|
+
const MAX_KEY_COLUMNS = 32;
|
|
437
|
+
const CONTROL = /\p{Cc}/u;
|
|
438
|
+
const TABLE_KEYS = /* @__PURE__ */ new Set([
|
|
439
|
+
"columns",
|
|
440
|
+
"scope",
|
|
441
|
+
"timestamps",
|
|
442
|
+
"id",
|
|
443
|
+
"unique",
|
|
444
|
+
"indexes",
|
|
445
|
+
"comment",
|
|
446
|
+
"subject",
|
|
447
|
+
"rollups",
|
|
448
|
+
"lookups",
|
|
449
|
+
"events",
|
|
450
|
+
"auditReads"
|
|
451
|
+
]);
|
|
452
|
+
const SUBJECT_KEYS = /* @__PURE__ */ new Set([
|
|
453
|
+
"type",
|
|
454
|
+
"title",
|
|
455
|
+
"url",
|
|
456
|
+
"search",
|
|
457
|
+
"permissions",
|
|
458
|
+
"rank",
|
|
459
|
+
"softDelete",
|
|
460
|
+
"versions"
|
|
461
|
+
]);
|
|
462
|
+
/** The columns `subject.rank` and `subject.softDelete` add. */
|
|
463
|
+
const APP_RANK_COLUMN = "rank";
|
|
464
|
+
const APP_DELETED_AT_COLUMN = "deleted_at";
|
|
465
|
+
const PLACEHOLDER = /\{([^}]*)\}/gu;
|
|
466
|
+
const COLUMN_KEYS = /* @__PURE__ */ new Set([
|
|
467
|
+
"type",
|
|
468
|
+
"nullable",
|
|
469
|
+
"default",
|
|
470
|
+
"unique",
|
|
471
|
+
"references",
|
|
472
|
+
"format",
|
|
473
|
+
"options",
|
|
474
|
+
"min",
|
|
475
|
+
"max",
|
|
476
|
+
"comment",
|
|
477
|
+
"identity",
|
|
478
|
+
"access",
|
|
479
|
+
"encrypted"
|
|
480
|
+
]);
|
|
481
|
+
const NUMBER_TYPES = /* @__PURE__ */ new Set([
|
|
482
|
+
"integer",
|
|
483
|
+
"bigint",
|
|
484
|
+
"numeric"
|
|
485
|
+
]);
|
|
486
|
+
const FORMATS = new Set(APP_COLUMN_FORMATS);
|
|
487
|
+
const REFERENCE_KEYS = /* @__PURE__ */ new Set([
|
|
488
|
+
"table",
|
|
489
|
+
"block",
|
|
490
|
+
"onDelete"
|
|
491
|
+
]);
|
|
492
|
+
const SCOPES = /* @__PURE__ */ new Set([
|
|
493
|
+
"inherit",
|
|
494
|
+
"user",
|
|
495
|
+
"none"
|
|
496
|
+
]);
|
|
497
|
+
const ON_DELETE = new Set(APP_ON_DELETE_ACTIONS);
|
|
498
|
+
const COLUMN_TYPES = new Set(APP_COLUMN_TYPES);
|
|
499
|
+
/** The table every `auth.users` reference points at. */
|
|
500
|
+
const AUTH_USERS = "auth.users";
|
|
501
|
+
function isObject(value) {
|
|
502
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
503
|
+
}
|
|
504
|
+
function isOnDelete(value) {
|
|
505
|
+
return typeof value === "string" && ON_DELETE.has(value);
|
|
506
|
+
}
|
|
507
|
+
function isScope(value) {
|
|
508
|
+
return typeof value === "string" && SCOPES.has(value);
|
|
509
|
+
}
|
|
510
|
+
function isColumnType(value) {
|
|
511
|
+
return typeof value === "string" && COLUMN_TYPES.has(value);
|
|
512
|
+
}
|
|
513
|
+
function isFormat(value) {
|
|
514
|
+
return typeof value === "string" && FORMATS.has(value);
|
|
515
|
+
}
|
|
516
|
+
function commentOf(where, value) {
|
|
517
|
+
if (value === void 0) return;
|
|
518
|
+
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`);
|
|
519
|
+
return value;
|
|
520
|
+
}
|
|
521
|
+
function formatOf(where, value, type) {
|
|
522
|
+
if (value === void 0) return;
|
|
523
|
+
if (!isFormat(value)) throw new TypeError(`${where} must be one of ${APP_COLUMN_FORMATS.join(", ")}`);
|
|
524
|
+
const types = FIELD_FORMATS[value].types;
|
|
525
|
+
if (!types.includes(type)) throw new TypeError(`${where}: ${value} fits a ${types.join(" or ")} column, not ${type}`);
|
|
526
|
+
return value;
|
|
527
|
+
}
|
|
528
|
+
function optionsOf(where, value, type) {
|
|
529
|
+
if (value === void 0) return;
|
|
530
|
+
if (type !== "text" && type !== "text[]") throw new TypeError(`${where}: options fit a text (single select) or text[] (multi-select) column, not ${type}`);
|
|
531
|
+
if (!Array.isArray(value) || value.length === 0 || value.length > MAX_OPTIONS) throw new TypeError(`${where} must list 1 to ${String(MAX_OPTIONS)} values`);
|
|
532
|
+
const seen = /* @__PURE__ */ new Set();
|
|
533
|
+
for (const option of value) {
|
|
534
|
+
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`);
|
|
535
|
+
if (seen.has(option)) throw new TypeError(`${where}: "${option}" is listed twice`);
|
|
536
|
+
seen.add(option);
|
|
537
|
+
}
|
|
538
|
+
return [...seen];
|
|
539
|
+
}
|
|
540
|
+
function boundOf(where, value, type) {
|
|
541
|
+
if (value === void 0) return;
|
|
542
|
+
if (typeof value !== "number" || !Number.isFinite(value)) throw new TypeError(`${where} must be a number`);
|
|
543
|
+
if (type === "text") {
|
|
544
|
+
if (!Number.isSafeInteger(value) || value < 0) throw new TypeError(`${where}: a text length is a whole number of 0 or more`);
|
|
545
|
+
return value;
|
|
546
|
+
}
|
|
547
|
+
if (!NUMBER_TYPES.has(type)) throw new TypeError(`${where}: min and max fit a number or text column, not ${type}`);
|
|
548
|
+
if (type !== "numeric" && !Number.isSafeInteger(value)) throw new TypeError(`${where}: an ${type} bound is a whole number`);
|
|
549
|
+
return value;
|
|
550
|
+
}
|
|
551
|
+
function identityOf(where, value, column, type) {
|
|
552
|
+
const identity = optionalBoolean(where, value);
|
|
553
|
+
if (identity !== true) return identity;
|
|
554
|
+
if (type !== "integer" && type !== "bigint") throw new TypeError(`${where}: an identity is an integer or bigint, not ${type}`);
|
|
555
|
+
for (const key of [
|
|
556
|
+
"default",
|
|
557
|
+
"references",
|
|
558
|
+
"options"
|
|
559
|
+
]) if (column[key] !== void 0) throw new TypeError(`${where}: an identity takes no ${key}`);
|
|
560
|
+
if (column["nullable"] === true) throw new TypeError(`${where}: an identity is never null`);
|
|
561
|
+
return identity;
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* The sets of columns of a composite `unique` or `indexes` key. Whether each
|
|
565
|
+
* name is a column of the table is checked when the SQL renders, where the
|
|
566
|
+
* scope column is known.
|
|
567
|
+
*/
|
|
568
|
+
function keySetsOf(where, value) {
|
|
569
|
+
if (value === void 0) return;
|
|
570
|
+
if (!Array.isArray(value) || value.length > MAX_KEY_SETS) throw new TypeError(`${where} must list at most ${String(MAX_KEY_SETS)} sets of columns`);
|
|
571
|
+
return value.map((set, index) => {
|
|
572
|
+
const at = `${where}[${String(index)}]`;
|
|
573
|
+
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`);
|
|
574
|
+
const columns = set.map((column) => {
|
|
575
|
+
if (typeof column !== "string" || !IDENT.test(column)) throw new TypeError(`${at}: ${JSON.stringify(column)} is not a column name`);
|
|
576
|
+
return column;
|
|
577
|
+
});
|
|
578
|
+
if (new Set(columns).size !== columns.length) throw new TypeError(`${at} names a column twice`);
|
|
579
|
+
return columns;
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
function checkKeys(where, value, allowed) {
|
|
583
|
+
for (const key of Object.keys(value)) if (!allowed.has(key)) throw new TypeError(`${where}: unknown key "${key}" (use ${[...allowed].join(", ")})`);
|
|
584
|
+
}
|
|
585
|
+
function optionalBoolean(where, value) {
|
|
586
|
+
if (value !== void 0 && typeof value !== "boolean") throw new TypeError(`${where} must be true or false`);
|
|
587
|
+
return value;
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* The columns every app table gets, which `columns` may not name: `id`,
|
|
591
|
+
* `created_at`, `updated_at`, `user_id` and the tenant column
|
|
592
|
+
* (`organization_id`, or `<blocks.tenant.entities.organization>_id`), whatever
|
|
593
|
+
* the table's scope, so changing the scope never collides with a column.
|
|
594
|
+
*/
|
|
595
|
+
function appReservedColumns(tenant = "organization") {
|
|
596
|
+
return [
|
|
597
|
+
"id",
|
|
598
|
+
"created_at",
|
|
599
|
+
"updated_at",
|
|
600
|
+
"user_id",
|
|
601
|
+
`${tenant}_id`
|
|
602
|
+
];
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* Postgres truncates identifiers past 63 bytes, so longer generated names
|
|
606
|
+
* collide.
|
|
607
|
+
*/
|
|
608
|
+
const MAX_IDENTIFIER = 63;
|
|
609
|
+
/** The longest app table or column name: `<table>_view` still fits in 63 bytes. */
|
|
610
|
+
const APP_NAME_MAX = 58;
|
|
611
|
+
/**
|
|
612
|
+
* Why `name` can't name an app table or column, or `undefined` when it can:
|
|
613
|
+
* lower snake case starting with a letter, not `pg_`, and at most
|
|
614
|
+
* `APP_NAME_MAX` characters.
|
|
615
|
+
*/
|
|
616
|
+
function appIdentifierError(name) {
|
|
617
|
+
if (name === "") return "Enter a name.";
|
|
618
|
+
if (name.length > 58) return `Use at most ${String(58)} characters.`;
|
|
619
|
+
if (!IDENT.test(name)) return "Use lower-case letters, digits and underscores, starting with a letter.";
|
|
620
|
+
if (name.startsWith("pg_")) return "Names starting with pg_ are reserved by Postgres.";
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* The first constraint or index name the SQL derives for `table` that is longer
|
|
624
|
+
* than 63 bytes, which Postgres would truncate into a collision, as a message;
|
|
625
|
+
* `undefined` when every name fits.
|
|
626
|
+
*/
|
|
627
|
+
function appNameLengthError(table, config) {
|
|
628
|
+
const long = [
|
|
629
|
+
...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`] : []),
|
|
630
|
+
...Object.values(config.columns ?? {}).some((column) => column.encrypted === true) ? [`${table}_reveal`] : [],
|
|
631
|
+
...(config.unique ?? []).map((set) => `${table}_${set.join("_")}_key`),
|
|
632
|
+
...(config.indexes ?? []).map((set) => `${table}_${set.join("_")}_idx`)
|
|
633
|
+
].find((name) => name.length > MAX_IDENTIFIER);
|
|
634
|
+
return long === void 0 ? void 0 : `${long} is longer than ${String(MAX_IDENTIFIER)} characters; use shorter table or column names`;
|
|
635
|
+
}
|
|
636
|
+
function referenceOf(where, value, type, nullable, tables) {
|
|
637
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
638
|
+
checkKeys(where, value, REFERENCE_KEYS);
|
|
639
|
+
const { table, block, onDelete } = value;
|
|
640
|
+
if (typeof table !== "string") throw new TypeError(`${where}.table must be a string`);
|
|
641
|
+
if (onDelete !== void 0 && !isOnDelete(onDelete)) throw new TypeError(`${where}.onDelete must be one of ${[...ON_DELETE].join(", ")}`);
|
|
642
|
+
if (onDelete === "set null" && !nullable) throw new TypeError(`${where}.onDelete: "set null" needs a nullable column`);
|
|
643
|
+
const deletes = onDelete === void 0 ? {} : { onDelete };
|
|
644
|
+
if (block !== void 0) {
|
|
645
|
+
if (typeof block !== "string" || !BLOCK_NAME.test(block)) throw new TypeError(`${where}.block must be a block name`);
|
|
646
|
+
if (!IDENT.test(table)) throw new TypeError(`${where}.table: "${table}" is not a logical table name of the ${block} block`);
|
|
647
|
+
return {
|
|
648
|
+
block,
|
|
649
|
+
table,
|
|
650
|
+
...deletes
|
|
651
|
+
};
|
|
652
|
+
}
|
|
653
|
+
const id = table === "auth.users" ? "uuid" : tables.get(table);
|
|
654
|
+
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 }`);
|
|
655
|
+
if (type !== id) throw new TypeError(`${where}: a reference to ${table} needs a ${id} column, not ${type}`);
|
|
656
|
+
return {
|
|
657
|
+
table,
|
|
658
|
+
...deletes
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
function columnOf(where, value, tables) {
|
|
662
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
663
|
+
checkKeys(where, value, COLUMN_KEYS);
|
|
664
|
+
const { type } = value;
|
|
665
|
+
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)" : ""}`);
|
|
666
|
+
const nullable = optionalBoolean(`${where}.nullable`, value["nullable"]);
|
|
667
|
+
const unique = optionalBoolean(`${where}.unique`, value["unique"]);
|
|
668
|
+
const fallback = value["default"];
|
|
669
|
+
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 '[]')`);
|
|
670
|
+
const references = value["references"] === void 0 ? void 0 : referenceOf(`${where}.references`, value["references"], type, nullable !== false, tables);
|
|
671
|
+
const format = formatOf(`${where}.format`, value["format"], type);
|
|
672
|
+
const options = optionsOf(`${where}.options`, value["options"], type);
|
|
673
|
+
const min = boundOf(`${where}.min`, value["min"], type);
|
|
674
|
+
const max = boundOf(`${where}.max`, value["max"], type);
|
|
675
|
+
const comment = commentOf(`${where}.comment`, value["comment"]);
|
|
676
|
+
const identity = identityOf(`${where}.identity`, value["identity"], value, type);
|
|
677
|
+
const access = accessOf(`${where}.access`, value["access"]);
|
|
678
|
+
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`);
|
|
679
|
+
if (options !== void 0 && format !== void 0) throw new TypeError(`${where}: options make a select; drop the format ${format}`);
|
|
680
|
+
const encrypted = encryptedOf(where, value["encrypted"], {
|
|
681
|
+
type,
|
|
682
|
+
unique,
|
|
683
|
+
references,
|
|
684
|
+
identity
|
|
685
|
+
});
|
|
686
|
+
if (min !== void 0 && max !== void 0 && min > max) throw new TypeError(`${where}: min ${String(min)} is above max ${String(max)}`);
|
|
687
|
+
const outside = typeof fallback === "string" ? appDefaultError({
|
|
688
|
+
type,
|
|
689
|
+
...options === void 0 ? {} : { options },
|
|
690
|
+
...min === void 0 ? {} : { min },
|
|
691
|
+
...max === void 0 ? {} : { max },
|
|
692
|
+
...format === void 0 ? {} : { format }
|
|
693
|
+
}, fallback) : void 0;
|
|
694
|
+
if (outside !== void 0) throw new TypeError(`${where}.default: ${outside}`);
|
|
695
|
+
return {
|
|
696
|
+
type,
|
|
697
|
+
...nullable === void 0 ? {} : { nullable },
|
|
698
|
+
...fallback === void 0 ? {} : { default: fallback },
|
|
699
|
+
...unique === void 0 ? {} : { unique },
|
|
700
|
+
...references === void 0 ? {} : { references },
|
|
701
|
+
...format === void 0 ? {} : { format },
|
|
702
|
+
...options === void 0 ? {} : { options },
|
|
703
|
+
...min === void 0 ? {} : { min },
|
|
704
|
+
...max === void 0 ? {} : { max },
|
|
705
|
+
...comment === void 0 ? {} : { comment },
|
|
706
|
+
...identity === void 0 ? {} : { identity },
|
|
707
|
+
...access === void 0 ? {} : { access },
|
|
708
|
+
...encrypted === void 0 ? {} : { encrypted }
|
|
709
|
+
};
|
|
710
|
+
}
|
|
711
|
+
function namedColumn(where, value, columns) {
|
|
712
|
+
if (typeof value !== "string" || !columns.has(value)) throw new TypeError(`${where} must name a column of the table (${[...columns].join(", ")})`);
|
|
713
|
+
return value;
|
|
714
|
+
}
|
|
715
|
+
function searchOf(where, value, columns) {
|
|
716
|
+
if (value === void 0) return;
|
|
717
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
718
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["title", "body"]));
|
|
719
|
+
const { title, body } = value;
|
|
720
|
+
if (body !== void 0 && !Array.isArray(body)) throw new TypeError(`${where}.body must be a list of columns`);
|
|
721
|
+
return {
|
|
722
|
+
...title === void 0 ? {} : { title: namedColumn(`${where}.title`, title, columns) },
|
|
723
|
+
...body === void 0 ? {} : { body: body.map((each) => namedColumn(`${where}.body`, each, columns)) }
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
function permissionsOf(where, value) {
|
|
727
|
+
if (value === void 0) return;
|
|
728
|
+
if (!isObject(value) || Object.values(value).some((key) => typeof key !== "string" || key === "")) throw new TypeError(`${where} must map each action to a permission key`);
|
|
729
|
+
return Object.fromEntries(Object.entries(value).map(([action, key]) => [action, String(key)]));
|
|
730
|
+
}
|
|
731
|
+
function rankOf(where, value, columns) {
|
|
732
|
+
if (value === void 0 || value === true) return value;
|
|
733
|
+
if (!isObject(value)) throw new TypeError(`${where} must be true or { group }`);
|
|
734
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["group"]));
|
|
735
|
+
return value["group"] === void 0 ? {} : { group: namedColumn(`${where}.group`, value["group"], columns) };
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* `subject.versions` checked: `true`, or `columns` from the table's own columns
|
|
739
|
+
* (not its id, scope or timestamps, which a restore must not write) and
|
|
740
|
+
* `auto`.
|
|
741
|
+
*/
|
|
742
|
+
function versionsOf(where, value, editable) {
|
|
743
|
+
if (value === void 0 || value === true) return value;
|
|
744
|
+
if (!isObject(value)) throw new TypeError(`${where} must be true or { columns, auto }`);
|
|
745
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["columns", "auto"]));
|
|
746
|
+
const { columns } = value;
|
|
747
|
+
if (columns !== void 0 && (!Array.isArray(columns) || columns.length === 0)) throw new TypeError(`${where}.columns must list one or more columns`);
|
|
748
|
+
const listed = columns?.map((name, index) => namedColumn(`${where}.columns[${index}]`, name, editable));
|
|
749
|
+
const auto = optionalBoolean(`${where}.auto`, value["auto"]);
|
|
750
|
+
return {
|
|
751
|
+
...listed === void 0 ? {} : { columns: [...new Set(listed)] },
|
|
752
|
+
...auto === void 0 ? {} : { auto }
|
|
753
|
+
};
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* The columns and snapshot mode `subject.versions` registers with the versions
|
|
757
|
+
* block.
|
|
758
|
+
*/
|
|
759
|
+
function appTableVersions(table) {
|
|
760
|
+
const versions = table.subject?.versions;
|
|
761
|
+
if (versions === void 0) return;
|
|
762
|
+
const options = versions === true ? {} : versions;
|
|
763
|
+
return {
|
|
764
|
+
columns: options.columns ?? Object.keys(table.columns ?? {}),
|
|
765
|
+
auto: options.auto ?? true
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
/**
|
|
769
|
+
* `subject` checked against the table's columns. `columns` holds every column
|
|
770
|
+
* the table has, the ones `rank` and `softDelete` add included; `editable`
|
|
771
|
+
* holds the table's own columns.
|
|
772
|
+
*/
|
|
773
|
+
function subjectOf(where, value, columns, editable) {
|
|
774
|
+
if (value === void 0) return;
|
|
775
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
776
|
+
checkKeys(where, value, SUBJECT_KEYS);
|
|
777
|
+
const { type, title, url } = value;
|
|
778
|
+
if (typeof type !== "string" || !IDENT.test(type)) throw new TypeError(`${where}.type must be lowercase letters, digits and underscores, starting with a letter`);
|
|
779
|
+
if (url !== void 0) {
|
|
780
|
+
if (typeof url !== "string" || !url.startsWith("/")) throw new TypeError(`${where}.url must be a path starting with /`);
|
|
781
|
+
for (const [, name] of url.matchAll(PLACEHOLDER)) namedColumn(`${where}.url {${name ?? ""}}`, name, columns);
|
|
782
|
+
}
|
|
783
|
+
const search = searchOf(`${where}.search`, value["search"], columns);
|
|
784
|
+
const permissions = permissionsOf(`${where}.permissions`, value["permissions"]);
|
|
785
|
+
const rank = rankOf(`${where}.rank`, value["rank"], columns);
|
|
786
|
+
const softDelete = optionalBoolean(`${where}.softDelete`, value["softDelete"]);
|
|
787
|
+
const versions = versionsOf(`${where}.versions`, value["versions"], editable);
|
|
788
|
+
return {
|
|
789
|
+
type,
|
|
790
|
+
...title === void 0 ? {} : { title: namedColumn(`${where}.title`, title, columns) },
|
|
791
|
+
...url === void 0 ? {} : { url },
|
|
792
|
+
...search === void 0 ? {} : { search },
|
|
793
|
+
...permissions === void 0 ? {} : { permissions },
|
|
794
|
+
...rank === void 0 ? {} : { rank },
|
|
795
|
+
...softDelete === void 0 ? {} : { softDelete },
|
|
796
|
+
...versions === void 0 ? {} : { versions }
|
|
797
|
+
};
|
|
798
|
+
}
|
|
799
|
+
/** The columns the subject adds, which `columns` may not name. */
|
|
800
|
+
function subjectColumnsOf(value) {
|
|
801
|
+
if (!isObject(value)) return [];
|
|
802
|
+
return [...value["rank"] === void 0 ? [] : [APP_RANK_COLUMN], ...value["softDelete"] === true ? [APP_DELETED_AT_COLUMN] : []];
|
|
803
|
+
}
|
|
804
|
+
/** The event kinds `events` turns on; empty without it. */
|
|
805
|
+
function appTableEventKinds(table) {
|
|
806
|
+
const events = table.events;
|
|
807
|
+
if (events === void 0) return [];
|
|
808
|
+
return events === true ? APP_TABLE_EVENT_KINDS : events.on ?? APP_TABLE_EVENT_KINDS;
|
|
809
|
+
}
|
|
810
|
+
/** The event types an app table emits: `<subject type or table>.<kind>`. */
|
|
811
|
+
function appTableEventTypes(name, table) {
|
|
812
|
+
const base = table.subject?.type ?? name;
|
|
813
|
+
return appTableEventKinds(table).map((kind) => `${base}.${kind}`);
|
|
814
|
+
}
|
|
815
|
+
function isEventKind(value) {
|
|
816
|
+
return APP_TABLE_EVENT_KINDS.some((kind) => kind === value);
|
|
817
|
+
}
|
|
818
|
+
/**
|
|
819
|
+
* `events` checked: `true`, or `on` from the event kinds and `include` from the
|
|
820
|
+
* table's columns.
|
|
821
|
+
*/
|
|
822
|
+
function eventsOf(where, value, columns) {
|
|
823
|
+
if (value === void 0 || value === true) return value;
|
|
824
|
+
if (!isObject(value)) throw new TypeError(`${where} must be true or { on, include }`);
|
|
825
|
+
checkKeys(where, value, /* @__PURE__ */ new Set(["on", "include"]));
|
|
826
|
+
const { on, include } = value;
|
|
827
|
+
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(", ")}`);
|
|
828
|
+
if (include !== void 0 && !Array.isArray(include)) throw new TypeError(`${where}.include must be a list of columns`);
|
|
829
|
+
const included = include?.map((name, index) => namedColumn(`${where}.include[${index}]`, name, columns));
|
|
830
|
+
return {
|
|
831
|
+
...on === void 0 ? {} : { on: [...new Set(on)] },
|
|
832
|
+
...included === void 0 ? {} : { include: [...new Set(included)] }
|
|
833
|
+
};
|
|
834
|
+
}
|
|
835
|
+
function tableOf(where, value, tables, reserved) {
|
|
836
|
+
if (!isObject(value)) throw new TypeError(`${where} must be an object`);
|
|
837
|
+
checkKeys(where, value, TABLE_KEYS);
|
|
838
|
+
const { scope, columns, id } = value;
|
|
839
|
+
if (scope !== void 0 && !isScope(scope)) throw new TypeError(`${where}.scope must be inherit, user or none`);
|
|
840
|
+
if (id !== void 0 && id !== "uuid" && id !== "bigint") throw new TypeError(`${where}.id must be uuid or bigint`);
|
|
841
|
+
const unique = keySetsOf(`${where}.unique`, value["unique"]);
|
|
842
|
+
const indexes = keySetsOf(`${where}.indexes`, value["indexes"]);
|
|
843
|
+
const comment = commentOf(`${where}.comment`, value["comment"]);
|
|
844
|
+
const timestamps = optionalBoolean(`${where}.timestamps`, value["timestamps"]);
|
|
845
|
+
if (columns !== void 0 && !isObject(columns)) throw new TypeError(`${where}.columns must be an object keyed by column`);
|
|
846
|
+
const added = subjectColumnsOf(value["subject"]);
|
|
847
|
+
const resolved = Object.entries(columns ?? {}).map(([name, column]) => {
|
|
848
|
+
const at = `${where}.columns.${name}`;
|
|
849
|
+
const invalid = appIdentifierError(name);
|
|
850
|
+
if (invalid !== void 0) throw new TypeError(`${at}: "${name}" is not a column name. ${invalid}`);
|
|
851
|
+
if (reserved.has(name)) throw new TypeError(`${at}: "${name}" is a column every app table gets (${[...reserved].join(", ")})`);
|
|
852
|
+
if (added.includes(name)) throw new TypeError(`${at}: "${name}" is the column ${where}.subject adds; remove it from columns`);
|
|
853
|
+
return [name, columnOf(at, column, tables)];
|
|
854
|
+
});
|
|
855
|
+
const subject = subjectOf(`${where}.subject`, value["subject"], /* @__PURE__ */ new Set([
|
|
856
|
+
...reserved,
|
|
857
|
+
...added,
|
|
858
|
+
...resolved.map(([name]) => name)
|
|
859
|
+
]), new Set(resolved.map(([name]) => name)));
|
|
860
|
+
const events = eventsOf(`${where}.events`, value["events"], /* @__PURE__ */ new Set([
|
|
861
|
+
...reserved,
|
|
862
|
+
...added,
|
|
863
|
+
...resolved.map(([name]) => name)
|
|
864
|
+
]));
|
|
865
|
+
const own = Object.fromEntries(resolved);
|
|
866
|
+
checkEncryptedKeys(where, own, {
|
|
867
|
+
unique,
|
|
868
|
+
indexes
|
|
869
|
+
});
|
|
870
|
+
const auditReads = auditReadsOf(where, value["auditReads"], own);
|
|
871
|
+
return {
|
|
872
|
+
...columns === void 0 ? {} : { columns: Object.fromEntries(resolved) },
|
|
873
|
+
...scope === void 0 ? {} : { scope },
|
|
874
|
+
...timestamps === void 0 ? {} : { timestamps },
|
|
875
|
+
...id === void 0 ? {} : { id },
|
|
876
|
+
...unique === void 0 ? {} : { unique },
|
|
877
|
+
...indexes === void 0 ? {} : { indexes },
|
|
878
|
+
...comment === void 0 ? {} : { comment },
|
|
879
|
+
...subject === void 0 ? {} : { subject },
|
|
880
|
+
...events === void 0 ? {} : { events },
|
|
881
|
+
...auditReads === void 0 ? {} : { auditReads }
|
|
882
|
+
};
|
|
883
|
+
}
|
|
884
|
+
/**
|
|
885
|
+
* `appTables` checked: lower snake table and column names, column types from
|
|
886
|
+
* `APP_COLUMN_TYPES`, defaults from the allowlist, no reserved columns, and
|
|
887
|
+
* references to another app table, `auth.users` or a block's logical table.
|
|
888
|
+
* Whether a referenced block is installed, and whether a name clashes with a
|
|
889
|
+
* block table, is checked when the SQL renders, where the block registry is
|
|
890
|
+
* known. Throws a `TypeError` naming the key.
|
|
891
|
+
*/
|
|
892
|
+
function appTablesOf(value, tenant) {
|
|
893
|
+
if (value === void 0) return {};
|
|
894
|
+
if (!isObject(value)) throw new TypeError("appTables must be an object keyed by table name");
|
|
895
|
+
const tables = new Map(Object.entries(value).map(([name, table]) => [name, isObject(table) && table["id"] === "bigint" ? "bigint" : "uuid"]));
|
|
896
|
+
const reserved = new Set(appReservedColumns(tenant));
|
|
897
|
+
const resolved = Object.fromEntries(Object.entries(value).map(([name, table]) => {
|
|
898
|
+
const invalid = appIdentifierError(name);
|
|
899
|
+
if (invalid !== void 0) throw new TypeError(`appTables.${name}: "${name}" is not a table name. ${invalid}`);
|
|
900
|
+
const checked = tableOf(`appTables.${name}`, table, tables, reserved);
|
|
901
|
+
const long = appNameLengthError(name, checked);
|
|
902
|
+
if (long !== void 0) throw new TypeError(`appTables.${name}: ${long}`);
|
|
903
|
+
return [name, checked];
|
|
904
|
+
}));
|
|
905
|
+
const checked = Object.fromEntries(Object.entries(resolved).map(([name, table]) => {
|
|
906
|
+
const where = `appTables.${name}`;
|
|
907
|
+
const computed = computedOf(where, value[name], name, resolved, /* @__PURE__ */ new Set([
|
|
908
|
+
...reserved,
|
|
909
|
+
...Object.keys(table.columns ?? {}),
|
|
910
|
+
...subjectColumnsOf(table.subject)
|
|
911
|
+
]));
|
|
912
|
+
const withComputed = {
|
|
913
|
+
...table,
|
|
914
|
+
...computed
|
|
915
|
+
};
|
|
916
|
+
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`);
|
|
917
|
+
return [name, withComputed];
|
|
918
|
+
}));
|
|
919
|
+
checkColumnAccess(checked);
|
|
920
|
+
return checked;
|
|
921
|
+
}
|
|
922
|
+
/**
|
|
923
|
+
* `subjects` with the subject of every app table that sets one (ADR 0043): the
|
|
924
|
+
* table in `public`, its id type, and its tenant column, or `false` for a table
|
|
925
|
+
* kept per user or shared. `scope` is `sql.scope` and `tenant` is
|
|
926
|
+
* `blocks.tenant.entities.organization`. Throws when a type is taken twice.
|
|
927
|
+
*/
|
|
928
|
+
function withAppTableSubjects(subjects, appTables, scope, tenant = "organization") {
|
|
929
|
+
const merged = { ...subjects };
|
|
930
|
+
for (const [name, table] of Object.entries(appTables)) {
|
|
931
|
+
const subject = table.subject;
|
|
932
|
+
if (subject === void 0) continue;
|
|
933
|
+
const where = `appTables.${name}.subject`;
|
|
934
|
+
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}`);
|
|
935
|
+
const kept = table.scope === void 0 || table.scope === "inherit" ? scope ?? "tenant" : table.scope;
|
|
936
|
+
merged[subject.type] = {
|
|
937
|
+
table: `public.${name}`,
|
|
938
|
+
idType: table.id ?? "uuid",
|
|
939
|
+
tenant: kept === "tenant" ? `${tenant}_id` : false,
|
|
940
|
+
...subject.title === void 0 ? {} : { title: subject.title },
|
|
941
|
+
...subject.url === void 0 ? {} : { url: subject.url },
|
|
942
|
+
...subject.search === void 0 ? {} : { search: subject.search },
|
|
943
|
+
...subject.permissions === void 0 ? {} : { permissions: subject.permissions },
|
|
944
|
+
...subject.softDelete === true ? { deletedAt: APP_DELETED_AT_COLUMN } : {},
|
|
945
|
+
...versionsEntry(table),
|
|
946
|
+
...subject.rank === void 0 ? {} : { rank: {
|
|
947
|
+
column: APP_RANK_COLUMN,
|
|
948
|
+
...subject.rank === true || subject.rank.group === void 0 ? {} : { group: subject.rank.group }
|
|
949
|
+
} }
|
|
950
|
+
};
|
|
951
|
+
}
|
|
952
|
+
return merged;
|
|
953
|
+
}
|
|
954
|
+
function versionsEntry(table) {
|
|
955
|
+
const versions = appTableVersions(table);
|
|
956
|
+
return versions === void 0 ? {} : { versions };
|
|
957
|
+
}
|
|
958
|
+
//#endregion
|
|
959
|
+
export { tenantNameOf as A, APP_ON_DELETE_ACTIONS as C, DEFAULT_ACTIVE_TENANT as D, BLOCK_SCOPES as E, asBlocksConfig as O, APP_COLUMN_TYPES as S, APP_TABLE_EVENT_KINDS as T, encryptedColumns as _, appIdentifierError as a, APP_COLUMN_ACCESS as b, appTableEventKinds as c, appTablesOf as d, withAppTableSubjects as f, columnsWithAccess as g, hasComputed as h, AUTH_USERS as i, resolveModule as k, appTableEventTypes as l, isAppDefault as m, APP_NAME_MAX as n, appNameLengthError as o, appDefaultError as p, APP_RANK_COLUMN as r, appReservedColumns as s, APP_DELETED_AT_COLUMN as t, appTableVersions as u, hasColumnAccess as v, APP_ROLLUP_AGGREGATES as w, APP_COLUMN_FORMATS as x, hiddenColumns as y };
|