better-supabase 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/{access-sql-DUSSMaC3.js → access-sql-CTJPHjCL.js} +1 -1
- package/dist/{actor-KHDOKGb1.js → actor-CAL8mMih.js} +1 -1
- package/dist/{adapter-rmWaLNe3.js → adapter-CRNH2aX_.js} +390 -267
- package/dist/{agents-ByYUSZxT.d.ts → agents-CGP2AQge.d.ts} +7 -7
- package/dist/{ai-cache-CkxtAt4P.d.ts → ai-cache-BdeJKlrV.d.ts} +5 -5
- package/dist/{ai-cache-DPiuJ-zJ.js → ai-cache-CLninP-F.js} +2 -2
- package/dist/{ai-chat-al8b3spK.d.ts → ai-chat-D-2MH1sU.d.ts} +7 -7
- package/dist/{ai-files-BXtV3ygd.js → ai-files-ChFDkMLN.js} +18 -10
- package/dist/ai-sdk/agents/index.d.ts +6 -6
- package/dist/ai-sdk/agents/index.js +2 -2
- package/dist/ai-sdk/batches/index.d.ts +4 -4
- package/dist/ai-sdk/batches/index.js +4 -4
- package/dist/ai-sdk/cache/index.d.ts +2 -2
- package/dist/ai-sdk/cache/index.js +1 -1
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +5 -5
- package/dist/ai-sdk/embeddings/index.d.ts +2 -2
- package/dist/ai-sdk/files/index.d.ts +2 -2
- package/dist/ai-sdk/files/index.js +4 -4
- package/dist/ai-sdk/index.d.ts +6 -6
- package/dist/ai-sdk/index.js +2 -2
- package/dist/ai-sdk/mcp/index.d.ts +4 -4
- package/dist/ai-sdk/mcp/index.js +4 -4
- package/dist/ai-sdk/memory/index.d.ts +3 -3
- package/dist/ai-sdk/workflow/index.d.ts +4 -4
- package/dist/ai-sdk/workflow/index.js +6 -6
- package/dist/{ai-tasks-Di0gmJOX.d.ts → ai-tasks-ZvPnNudQ.d.ts} +8 -8
- package/dist/{announcements-HF7LuFw5.js → announcements-BNxTW5HJ.js} +4 -4
- package/dist/{api-CFjuYKFY.js → api-C43_FYDp.js} +1 -1
- package/dist/{api-XJcQON_7.d.ts → api-DoWK3dTw.d.ts} +6 -6
- package/dist/{api-keys-EdSNjGIZ.d.ts → api-keys-AgDXbcql.d.ts} +7 -7
- package/dist/{api-keys-C1IZF7p8.js → api-keys-BSXwI2jF.js} +6 -6
- package/dist/{app-tables-DVidEHOI.d.ts → app-tables-BrMBjyuq.d.ts} +1 -1
- package/dist/{approvals-DqlPHBHI.d.ts → approvals-CyX709B-.d.ts} +7 -7
- package/dist/arazzo/index.d.ts +2 -2
- package/dist/arazzo/index.js +2 -2
- package/dist/{assistant-BZyhQ8bd.d.ts → assistant-DZsHsYIx.d.ts} +4 -4
- package/dist/astro/index.d.ts +12 -12
- package/dist/astro/index.js +5 -5
- package/dist/asyncapi/index.d.ts +1 -1
- package/dist/asyncapi/index.js +2 -2
- package/dist/{attachments-C8FEBBKE.js → attachments-CK8D8bIV.js} +14 -8
- package/dist/{audit-log-CRgiHlRh.js → audit-log-ovUlF4Mk.js} +7 -7
- package/dist/auth-module-DbZv2WrR.js +10 -0
- package/dist/{auth-reply-B_dW4jHJ.js → auth-reply-Daq72lY4.js} +2 -2
- package/dist/{authorization-CdJRoZgV.d.ts → authorization-ClWBcXJi.d.ts} +23 -2
- package/dist/{authorization-hooks-Do5djkpz.d.ts → authorization-hooks-WDQMKIsc.d.ts} +2 -2
- package/dist/{authorizer-dVVN05Un.js → authorizer-B3yyCVUF.js} +2 -2
- package/dist/{base64-BmeCBgGo.js → base64-D4aqdnDR.js} +4 -4
- package/dist/better-result/index.d.ts +5 -5
- package/dist/better-result/index.js +1 -1
- package/dist/{bind-DkaP_0iS.d.ts → bind-Bfo40o63.d.ts} +4 -4
- package/dist/{block-fields-BANwJ9Y_.js → block-fields-Bv1hV855.js} +3 -3
- package/dist/{block-fields-5UA84ZUg.d.ts → block-fields-DnaDbgZS.d.ts} +2 -2
- package/dist/{block-helpers-7pMBVsE6.d.ts → block-helpers-CjcQM1yA.d.ts} +2 -2
- package/dist/{block-helpers-BfVCR5Fc.js → block-helpers-DkVZNDrj.js} +4 -4
- package/dist/{block-hooks-ByKlh8Qy.js → block-hooks-C22vuIUd.js} +3 -3
- package/dist/{block-hooks-C_WaodoA.d.ts → block-hooks-DcPJHztl.d.ts} +3 -3
- package/dist/{block-transport-NbUJygA7.d.ts → block-transport-DezJPPA0.d.ts} +2 -2
- package/dist/{block-transport-G4t1umrR.js → block-transport-J7ZepTq2.js} +1 -1
- package/dist/blocks/access-requests/index.d.ts +8 -8
- package/dist/blocks/access-requests/index.js +6 -6
- package/dist/blocks/agents/index.d.ts +4 -4
- package/dist/blocks/agents/index.js +5 -5
- package/dist/blocks/ai-cache/index.d.ts +3 -3
- package/dist/blocks/ai-cache/index.js +2 -2
- package/dist/blocks/ai-chat/index.d.ts +5 -5
- package/dist/blocks/ai-chat/index.js +2 -2
- package/dist/blocks/ai-chat/react/index.d.ts +2 -2
- package/dist/blocks/ai-chat/react/index.js +2 -2
- package/dist/blocks/ai-chat/solid/index.d.ts +2 -2
- package/dist/blocks/ai-chat/solid/index.js +1 -1
- package/dist/blocks/ai-chat/svelte/index.d.ts +2 -2
- package/dist/blocks/ai-chat/svelte/index.js +1 -1
- package/dist/blocks/ai-chat/vue/index.d.ts +2 -2
- package/dist/blocks/ai-chat/vue/index.js +1 -1
- package/dist/blocks/ai-files/index.d.ts +5 -5
- package/dist/blocks/ai-files/index.js +2 -2
- package/dist/blocks/ai-providers/index.d.ts +4 -4
- package/dist/blocks/ai-providers/index.js +7 -7
- package/dist/blocks/ai-tasks/index.d.ts +3 -3
- package/dist/blocks/ai-tasks/index.js +7 -7
- package/dist/blocks/announcements/index.d.ts +4 -4
- package/dist/blocks/announcements/index.js +2 -2
- package/dist/blocks/announcements/react/index.d.ts +1 -1
- package/dist/blocks/announcements/react/index.js +2 -2
- package/dist/blocks/announcements/solid/index.d.ts +2 -2
- package/dist/blocks/announcements/svelte/index.d.ts +2 -2
- package/dist/blocks/announcements/vue/index.d.ts +2 -2
- package/dist/blocks/api-keys/index.d.ts +7 -7
- package/dist/blocks/api-keys/index.js +5 -5
- package/dist/blocks/api-keys/react/index.d.ts +1 -1
- package/dist/blocks/api-keys/react/index.js +3 -3
- package/dist/blocks/api-keys/react/server.d.ts +1 -1
- package/dist/blocks/api-keys/solid/index.d.ts +2 -2
- package/dist/blocks/api-keys/solid/index.js +1 -1
- package/dist/blocks/api-keys/svelte/index.d.ts +2 -2
- package/dist/blocks/api-keys/svelte/index.js +1 -1
- package/dist/blocks/api-keys/vue/index.d.ts +2 -2
- package/dist/blocks/api-keys/vue/index.js +1 -1
- package/dist/blocks/approvals/index.d.ts +4 -4
- package/dist/blocks/approvals/index.js +6 -6
- package/dist/blocks/attachments/index.d.ts +4 -4
- package/dist/blocks/attachments/index.js +2 -2
- package/dist/blocks/audit/index.d.ts +6 -6
- package/dist/blocks/audit/index.js +6 -6
- package/dist/blocks/audit/react/index.d.ts +1 -1
- package/dist/blocks/audit/react/index.js +2 -2
- package/dist/blocks/audit/react/server.d.ts +1 -1
- package/dist/blocks/audit/solid/index.d.ts +2 -2
- package/dist/blocks/audit/svelte/index.d.ts +2 -2
- package/dist/blocks/audit/vue/index.d.ts +2 -2
- package/dist/blocks/billing/index.d.ts +26 -10
- package/dist/blocks/billing/index.js +43 -10
- package/dist/blocks/billing/react/index.d.ts +2 -2
- package/dist/blocks/billing/react/index.js +1 -1
- package/dist/blocks/billing/react/server.d.ts +1 -1
- package/dist/blocks/billing/solid/index.d.ts +2 -2
- package/dist/blocks/billing/solid/index.js +1 -1
- package/dist/blocks/billing/svelte/index.d.ts +2 -2
- package/dist/blocks/billing/svelte/index.js +1 -1
- package/dist/blocks/billing/vue/index.d.ts +2 -2
- package/dist/blocks/billing/vue/index.js +1 -1
- package/dist/blocks/bookings/index.d.ts +3 -3
- package/dist/blocks/bookings/index.js +2 -2
- package/dist/blocks/bookings/react/index.d.ts +1 -1
- package/dist/blocks/bookings/react/index.js +3 -3
- package/dist/blocks/bookings/solid/index.d.ts +2 -2
- package/dist/blocks/bookings/solid/index.js +1 -1
- package/dist/blocks/bookings/svelte/index.d.ts +2 -2
- package/dist/blocks/bookings/svelte/index.js +1 -1
- package/dist/blocks/bookings/vue/index.d.ts +2 -2
- package/dist/blocks/bookings/vue/index.js +1 -1
- package/dist/blocks/bulk/index.d.ts +5 -5
- package/dist/blocks/bulk/index.js +3 -3
- package/dist/blocks/calendar/index.d.ts +3 -3
- package/dist/blocks/calendar/index.js +2 -2
- package/dist/blocks/calendar/react/index.d.ts +1 -1
- package/dist/blocks/calendar/react/index.js +3 -3
- package/dist/blocks/calendar/solid/index.d.ts +2 -2
- package/dist/blocks/calendar/solid/index.js +1 -1
- package/dist/blocks/calendar/svelte/index.d.ts +2 -2
- package/dist/blocks/calendar/svelte/index.js +1 -1
- package/dist/blocks/calendar/vue/index.d.ts +2 -2
- package/dist/blocks/calendar/vue/index.js +1 -1
- package/dist/blocks/catalog/index.d.ts +10 -10
- package/dist/blocks/catalog/index.js +8 -8
- package/dist/blocks/collections/index.d.ts +10 -10
- package/dist/blocks/collections/index.js +6 -6
- package/dist/blocks/comments/index.d.ts +4 -4
- package/dist/blocks/comments/index.js +3 -3
- package/dist/blocks/comments/react/index.d.ts +1 -1
- package/dist/blocks/comments/react/index.js +3 -3
- package/dist/blocks/comments/react/server.d.ts +1 -1
- package/dist/blocks/comments/solid/index.d.ts +2 -2
- package/dist/blocks/comments/solid/index.js +1 -1
- package/dist/blocks/comments/svelte/index.d.ts +2 -2
- package/dist/blocks/comments/svelte/index.js +1 -1
- package/dist/blocks/comments/vue/index.d.ts +2 -2
- package/dist/blocks/comments/vue/index.js +1 -1
- package/dist/blocks/connectors/index.d.ts +4 -4
- package/dist/blocks/connectors/index.js +7 -7
- package/dist/blocks/custom-fields/index.d.ts +6 -6
- package/dist/blocks/custom-fields/index.js +4 -4
- package/dist/blocks/data-lifecycle/index.d.ts +9 -9
- package/dist/blocks/data-lifecycle/index.js +7 -7
- package/dist/blocks/deals/index.d.ts +9 -9
- package/dist/blocks/deals/index.js +9 -9
- package/dist/blocks/documents/index.d.ts +4 -4
- package/dist/blocks/documents/index.js +4 -4
- package/dist/blocks/domains/index.d.ts +7 -7
- package/dist/blocks/domains/index.js +6 -6
- package/dist/blocks/drive/index.d.ts +9 -10
- package/dist/blocks/drive/index.js +20 -11
- package/dist/blocks/employees/index.d.ts +9 -9
- package/dist/blocks/employees/index.js +8 -8
- package/dist/blocks/engagements/index.d.ts +9 -9
- package/dist/blocks/engagements/index.js +5 -5
- package/dist/blocks/entitlements/index.d.ts +7 -7
- package/dist/blocks/entitlements/index.js +2 -2
- package/dist/blocks/entitlements/react/index.d.ts +2 -2
- package/dist/blocks/entitlements/solid/index.d.ts +2 -2
- package/dist/blocks/entitlements/svelte/index.d.ts +2 -2
- package/dist/blocks/entitlements/vue/index.d.ts +2 -2
- package/dist/blocks/flags/index.d.ts +8 -8
- package/dist/blocks/flags/index.js +6 -6
- package/dist/blocks/forms/index.d.ts +9 -9
- package/dist/blocks/forms/index.js +5 -5
- package/dist/blocks/forms/react/index.d.ts +1 -1
- package/dist/blocks/forms/solid/index.d.ts +2 -2
- package/dist/blocks/forms/svelte/index.d.ts +2 -2
- package/dist/blocks/forms/vue/index.d.ts +2 -2
- package/dist/blocks/hiring/index.d.ts +9 -9
- package/dist/blocks/hiring/index.js +6 -6
- package/dist/blocks/identities/index.d.ts +6 -6
- package/dist/blocks/identities/index.js +3 -3
- package/dist/blocks/imports/index.d.ts +6 -6
- package/dist/blocks/imports/index.js +3 -3
- package/dist/blocks/inbox/index.d.ts +5 -5
- package/dist/blocks/inbox/index.js +3 -3
- package/dist/blocks/inbox/react/index.d.ts +2 -2
- package/dist/blocks/inbox/react/server.d.ts +2 -2
- package/dist/blocks/inbox/solid/index.d.ts +2 -2
- package/dist/blocks/inbox/svelte/index.d.ts +2 -2
- package/dist/blocks/inbox/vue/index.d.ts +2 -2
- package/dist/blocks/index.d.ts +8 -8
- package/dist/blocks/index.js +3 -3
- package/dist/blocks/inventory/index.d.ts +9 -9
- package/dist/blocks/inventory/index.js +6 -6
- package/dist/blocks/invoices/index.d.ts +9 -9
- package/dist/blocks/invoices/index.js +8 -8
- package/dist/blocks/jobs/index.d.ts +61 -11
- package/dist/blocks/jobs/index.js +126 -13
- package/dist/blocks/knowledge/index.d.ts +3 -3
- package/dist/blocks/knowledge/index.js +2 -2
- package/dist/blocks/leave/index.d.ts +8 -8
- package/dist/blocks/leave/index.js +5 -5
- package/dist/blocks/memory/index.d.ts +4 -4
- package/dist/blocks/memory/index.js +6 -6
- package/dist/blocks/metrics/index.d.ts +7 -7
- package/dist/blocks/metrics/index.js +5 -5
- package/dist/blocks/mfa/index.d.ts +2 -2
- package/dist/blocks/mfa/index.js +1 -1
- package/dist/blocks/mfa/react/index.d.ts +1 -1
- package/dist/blocks/mfa/react/index.js +1 -1
- 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 +2 -2
- package/dist/blocks/mfa/solid/index.js +1 -1
- package/dist/blocks/mfa/svelte/index.d.ts +2 -2
- package/dist/blocks/mfa/svelte/index.js +1 -1
- package/dist/blocks/mfa/vue/index.d.ts +2 -2
- package/dist/blocks/mfa/vue/index.js +1 -1
- package/dist/blocks/notifications/index.d.ts +13 -13
- package/dist/blocks/notifications/index.js +11 -11
- package/dist/blocks/notifications/react/index.d.ts +1 -1
- package/dist/blocks/notifications/react/server.d.ts +1 -1
- package/dist/blocks/notifications/solid/index.d.ts +2 -2
- package/dist/blocks/notifications/svelte/index.d.ts +2 -2
- package/dist/blocks/notifications/vue/index.d.ts +2 -2
- package/dist/blocks/number-sequences/index.d.ts +5 -5
- package/dist/blocks/number-sequences/index.js +2 -2
- package/dist/blocks/oauth-server/index.d.ts +28 -8
- package/dist/blocks/oauth-server/index.js +24 -15
- package/dist/blocks/onboarding/index.d.ts +3 -3
- package/dist/blocks/onboarding/index.js +2 -2
- package/dist/blocks/onboarding/react/index.d.ts +1 -1
- package/dist/blocks/onboarding/react/index.js +2 -2
- package/dist/blocks/onboarding/react/server.d.ts +1 -1
- package/dist/blocks/onboarding/solid/index.d.ts +2 -2
- package/dist/blocks/onboarding/svelte/index.d.ts +2 -2
- package/dist/blocks/onboarding/vue/index.d.ts +2 -2
- package/dist/blocks/orders/index.d.ts +12 -12
- package/dist/blocks/orders/index.js +10 -10
- package/dist/blocks/organizations/index.d.ts +5 -5
- package/dist/blocks/organizations/index.js +4 -4
- package/dist/blocks/organizations/react/index.d.ts +1 -1
- package/dist/blocks/organizations/react/index.js +3 -3
- package/dist/blocks/organizations/react/server.d.ts +1 -1
- package/dist/blocks/organizations/solid/index.d.ts +2 -2
- package/dist/blocks/organizations/solid/index.js +1 -1
- package/dist/blocks/organizations/svelte/index.d.ts +2 -2
- package/dist/blocks/organizations/svelte/index.js +1 -1
- package/dist/blocks/organizations/vue/index.d.ts +2 -2
- package/dist/blocks/organizations/vue/index.js +1 -1
- package/dist/blocks/outbox/index.d.ts +4 -4
- package/dist/blocks/outbox/index.js +5 -5
- package/dist/blocks/parties/index.d.ts +9 -9
- package/dist/blocks/parties/index.js +4 -4
- package/dist/blocks/pipelines/index.d.ts +10 -10
- package/dist/blocks/pipelines/index.js +7 -7
- package/dist/blocks/profiles/index.d.ts +7 -7
- package/dist/blocks/profiles/index.js +5 -5
- package/dist/blocks/promotions/index.d.ts +9 -9
- package/dist/blocks/promotions/index.js +7 -7
- package/dist/blocks/push/index.d.ts +9 -9
- package/dist/blocks/push/index.js +4 -4
- package/dist/blocks/quotes/index.d.ts +9 -9
- package/dist/blocks/quotes/index.js +8 -8
- package/dist/blocks/rank/index.d.ts +6 -6
- package/dist/blocks/rank/index.js +3 -3
- package/dist/blocks/reactions/index.d.ts +4 -4
- package/dist/blocks/reactions/index.js +2 -2
- package/dist/blocks/reactions/react/index.d.ts +1 -1
- package/dist/blocks/reactions/react/index.js +2 -2
- package/dist/blocks/reactions/solid/index.d.ts +2 -2
- package/dist/blocks/reactions/solid/index.js +1 -1
- package/dist/blocks/reactions/svelte/index.d.ts +2 -2
- package/dist/blocks/reactions/svelte/index.js +1 -1
- package/dist/blocks/reactions/vue/index.d.ts +2 -2
- package/dist/blocks/reactions/vue/index.js +1 -1
- package/dist/blocks/relations/index.d.ts +8 -8
- package/dist/blocks/relations/index.js +4 -4
- package/dist/blocks/reminders/index.d.ts +10 -10
- package/dist/blocks/reminders/index.js +8 -8
- package/dist/blocks/reviews/index.d.ts +8 -8
- package/dist/blocks/reviews/index.js +5 -5
- package/dist/blocks/rules/index.d.ts +9 -9
- package/dist/blocks/rules/index.js +5 -5
- package/dist/blocks/rules/react/index.d.ts +2 -2
- package/dist/blocks/rules/react/index.js +2 -2
- package/dist/blocks/rules/solid/index.d.ts +2 -2
- package/dist/blocks/rules/svelte/index.d.ts +2 -2
- package/dist/blocks/rules/vue/index.d.ts +2 -2
- package/dist/blocks/saved-views/index.d.ts +3 -3
- package/dist/blocks/saved-views/index.js +1 -1
- package/dist/blocks/saved-views/react/index.d.ts +1 -1
- package/dist/blocks/saved-views/react/index.js +1 -1
- package/dist/blocks/saved-views/react/server.d.ts +1 -1
- package/dist/blocks/saved-views/solid/index.d.ts +2 -2
- package/dist/blocks/saved-views/solid/index.js +1 -1
- package/dist/blocks/saved-views/svelte/index.d.ts +2 -2
- package/dist/blocks/saved-views/svelte/index.js +1 -1
- package/dist/blocks/saved-views/vue/index.d.ts +2 -2
- package/dist/blocks/saved-views/vue/index.js +1 -1
- package/dist/blocks/search/index.d.ts +4 -4
- package/dist/blocks/search/index.js +3 -3
- package/dist/blocks/search/react/index.d.ts +1 -1
- package/dist/blocks/search/react/index.js +2 -2
- package/dist/blocks/search/react/server.d.ts +1 -1
- package/dist/blocks/search/solid/index.d.ts +2 -2
- package/dist/blocks/search/svelte/index.d.ts +2 -2
- package/dist/blocks/search/vue/index.d.ts +2 -2
- package/dist/blocks/service-principals/index.d.ts +8 -8
- package/dist/blocks/service-principals/index.js +6 -6
- package/dist/blocks/sessions/index.d.ts +2 -2
- package/dist/blocks/sessions/index.js +1 -1
- package/dist/blocks/sessions/react/index.d.ts +1 -1
- package/dist/blocks/sessions/react/index.js +1 -1
- package/dist/blocks/sessions/react/server.d.ts +1 -1
- package/dist/blocks/sessions/solid/index.d.ts +2 -2
- package/dist/blocks/sessions/solid/index.js +1 -1
- package/dist/blocks/sessions/svelte/index.d.ts +2 -2
- package/dist/blocks/sessions/svelte/index.js +1 -1
- package/dist/blocks/sessions/vue/index.d.ts +2 -2
- package/dist/blocks/sessions/vue/index.js +1 -1
- package/dist/blocks/settings/index.d.ts +4 -4
- package/dist/blocks/settings/index.js +3 -3
- package/dist/blocks/settings/react/index.d.ts +1 -1
- package/dist/blocks/settings/react/index.js +3 -3
- package/dist/blocks/settings/react/server.d.ts +1 -1
- package/dist/blocks/settings/solid/index.d.ts +2 -2
- package/dist/blocks/settings/solid/index.js +1 -1
- package/dist/blocks/settings/svelte/index.d.ts +2 -2
- package/dist/blocks/settings/svelte/index.js +1 -1
- package/dist/blocks/settings/vue/index.d.ts +2 -2
- package/dist/blocks/settings/vue/index.js +1 -1
- package/dist/blocks/share-links/index.d.ts +7 -7
- package/dist/blocks/share-links/index.js +3 -3
- package/dist/blocks/shared-signals/index.d.ts +8 -8
- package/dist/blocks/shared-signals/index.js +7 -7
- package/dist/blocks/signing-keys/index.d.ts +5 -5
- package/dist/blocks/signing-keys/index.js +47 -21
- package/dist/blocks/sla/index.d.ts +9 -9
- package/dist/blocks/sla/index.js +5 -5
- package/dist/blocks/sso/index.d.ts +7 -7
- package/dist/blocks/sso/index.js +4 -4
- package/dist/blocks/state-machine/index.d.ts +5 -5
- package/dist/blocks/state-machine/index.js +2 -2
- package/dist/blocks/tags/index.d.ts +3 -3
- package/dist/blocks/tags/index.js +2 -2
- package/dist/blocks/tags/react/index.d.ts +1 -1
- package/dist/blocks/tags/react/index.js +3 -3
- package/dist/blocks/tags/react/server.d.ts +1 -1
- package/dist/blocks/tags/solid/index.d.ts +2 -2
- package/dist/blocks/tags/solid/index.js +1 -1
- package/dist/blocks/tags/svelte/index.d.ts +2 -2
- package/dist/blocks/tags/svelte/index.js +1 -1
- package/dist/blocks/tags/vue/index.d.ts +2 -2
- package/dist/blocks/tags/vue/index.js +1 -1
- package/dist/blocks/targets/index.d.ts +7 -7
- package/dist/blocks/targets/index.js +5 -5
- package/dist/blocks/teams/index.d.ts +7 -7
- package/dist/blocks/teams/index.js +3 -3
- package/dist/blocks/templates/index.d.ts +10 -10
- package/dist/blocks/templates/index.js +7 -7
- package/dist/blocks/time-tracking/index.d.ts +9 -9
- package/dist/blocks/time-tracking/index.js +7 -7
- package/dist/blocks/trash/index.d.ts +8 -8
- package/dist/blocks/trash/index.js +4 -4
- package/dist/blocks/undo/index.d.ts +4 -4
- package/dist/blocks/undo/index.js +2 -2
- package/dist/blocks/undo/react/index.d.ts +1 -1
- package/dist/blocks/undo/react/server.d.ts +1 -1
- package/dist/blocks/undo/solid/index.d.ts +2 -2
- package/dist/blocks/undo/svelte/index.d.ts +2 -2
- package/dist/blocks/undo/vue/index.d.ts +2 -2
- package/dist/blocks/usage/index.d.ts +4 -4
- package/dist/blocks/usage/index.js +2 -2
- package/dist/blocks/usage/react/index.d.ts +1 -1
- package/dist/blocks/usage/react/index.js +2 -2
- package/dist/blocks/usage/react/server.d.ts +1 -1
- package/dist/blocks/usage/solid/index.d.ts +2 -2
- package/dist/blocks/usage/svelte/index.d.ts +2 -2
- package/dist/blocks/usage/vue/index.d.ts +2 -2
- package/dist/blocks/vercel-marketplace/index.d.ts +193 -0
- package/dist/blocks/vercel-marketplace/index.js +300 -0
- package/dist/blocks/versions/index.d.ts +8 -8
- package/dist/blocks/versions/index.js +4 -4
- package/dist/blocks/waitlist/index.d.ts +9 -9
- package/dist/blocks/waitlist/index.js +5 -5
- package/dist/blocks/webhooks/index.d.ts +16 -16
- package/dist/blocks/webhooks/index.js +15 -15
- package/dist/blocks/work-items/index.d.ts +9 -9
- package/dist/blocks/work-items/index.js +6 -6
- package/dist/blocks/workflow-builder/index.d.ts +8 -8
- package/dist/blocks/workflow-builder/index.js +2 -2
- package/dist/blocks/workflow-builder/react/index.d.ts +2 -2
- package/dist/blocks/workflow-builder/react/index.js +3 -3
- package/dist/blocks/workflow-builder/solid/index.d.ts +2 -2
- package/dist/blocks/workflow-builder/svelte/index.d.ts +2 -2
- package/dist/blocks/workflow-builder/vue/index.d.ts +2 -2
- package/dist/blocks/workflows/index.d.ts +5 -5
- package/dist/blocks/workflows/index.js +2 -2
- package/dist/blocks/workflows/react/index.d.ts +2 -2
- package/dist/blocks/workflows/react/index.js +2 -2
- package/dist/blocks/workflows/solid/index.d.ts +2 -2
- package/dist/blocks/workflows/svelte/index.d.ts +2 -2
- package/dist/blocks/workflows/vue/index.d.ts +2 -2
- package/dist/{bookings-EJAVAuVz.js → bookings-DQ7P888X.js} +5 -5
- package/dist/{storage-api-B4Ib2Zpo.d.ts → bucket-BbePDVwc.d.ts} +235 -219
- package/dist/{build-6jmaPAgx.js → build-C-D_vn0U.js} +7 -2
- package/dist/{build-Cm0T5MVG.js → build-CT6SPZkI.js} +1 -1
- package/dist/{calendar-1J1E5dLq.js → calendar-eqyuQAoy.js} +7 -7
- package/dist/chat-sdk/index.d.ts +6 -6
- package/dist/chat-sdk/index.js +3 -3
- package/dist/chat-sdk/react/index.d.ts +2 -2
- package/dist/chat-sdk/react/server.d.ts +2 -2
- package/dist/cli/{add-BhI_nXAo.js → add-BcOHumvq.js} +2 -2
- package/dist/cli/add-DnAyR9w_.js +1 -0
- package/dist/cli/{add-CUS0AiBh.js → add-TT72pQk6.js} +5 -5
- package/dist/cli/adopt-BuS-DC7_.js +1 -0
- package/dist/cli/{adopt-DwcU6CJd.js → adopt-mbB1bcIG.js} +6 -6
- package/dist/cli/{apply-DBXC0Z5I.js → apply-CiBFOFGw.js} +16 -22
- package/dist/cli/bin.js +1 -1
- package/dist/cli/{blocks-B15ltTFn.js → blocks-5-JGzwXX.js} +1 -1
- package/dist/cli/{blocks-BXeqIzWN.js → blocks-DeLQOlUK.js} +1 -1
- package/dist/cli/{cache-CPBYJAkb.js → cache-DQwgb3rg.js} +8 -3
- package/dist/cli/{catalog-Di15TkM2.js → catalog-Cm6BtquM.js} +2 -1
- package/dist/cli/{codemod-CrI33UR2.js → codemod-BzAMX4el.js} +2 -2
- package/dist/cli/{command-D_HI1mp1.js → command-dfdVhU_2.js} +39 -1
- package/dist/cli/{completion-Vry-Wjw8.js → completion-4lLjtI49.js} +1 -1
- package/dist/cli/{completion-En43UcyJ.js → completion-D4InNrxw.js} +2 -2
- package/dist/cli/{completion-DzYo025z.js → completion-zsp5s0zI.js} +2 -2
- package/dist/cli/{config-DsqQr5z3.js → config-CCyweX7Y.js} +1 -1
- package/dist/cli/{config-DyJgo2d9.js → config-DI6ielsx.js} +1 -1
- package/dist/cli/{config-Bi_UBxXl.js → config-yZ55rsKZ.js} +17 -5
- package/dist/cli/db-TRymMyAW.js +90 -0
- package/dist/cli/{design-edit-B-WsnhUF.js → design-edit-0U9iCTiS.js} +29 -2
- package/dist/cli/{detect-BeLVeNpA.js → detect-DQsVeBHg.js} +1 -1
- package/dist/cli/{doctor-wACp5w6N.js → doctor-DOfy6kjt.js} +332 -108
- package/dist/cli/{emit-j0zZ6NE_.js → emit-56LAG_Px.js} +11 -5
- package/dist/cli/{env-Ch99nTQw.js → env-B7TWPEt0.js} +1 -1
- package/dist/cli/{env-Cf5OTqbK.js → env-C8R7Nf0a.js} +2 -1
- package/dist/cli/env-Cmu99uKR.js +1 -0
- package/dist/cli/{env-2v9JrxSr.js → env-Dh5K5t2U.js} +33 -32
- package/dist/cli/{gen-BhquLu7l.js → gen-D3sC5jDn.js} +11 -11
- package/dist/cli/index.d.ts +3 -1
- package/dist/cli/index.js +10 -9
- package/dist/cli/{init-BwLTO6XG.js → init-DNomoycJ.js} +16 -22
- package/dist/cli/{introspect-B-gXAIqs.js → introspect-kYX06Q2g.js} +3 -3
- package/dist/cli/{keys-hwtdwdkT.js → keys-B8dIJwwi.js} +2 -2
- package/dist/cli/{live-BFfYoE0_.js → live-CkV3d3yp.js} +2 -2
- package/dist/cli/{mcp-Bdm2oGmL.js → mcp-DrxB2Wuw.js} +4 -4
- package/dist/cli/{metadata-DikbSOE0.js → metadata-BGkle6WM.js} +2 -2
- package/dist/cli/{migration-safety-LaGVPPuD.js → migration-safety-DjVpz2D6.js} +1 -1
- package/dist/cli/{module-migration-CLkZ8jpw.js → module-migration-CPhuiY8C.js} +1 -1
- package/dist/cli/{moved-B7UFO_OM.js → moved-BMQu1YNY.js} +1 -1
- package/dist/cli/{parse-CwV5a6dA.js → parse-QzDvMpXH.js} +1 -1
- package/dist/cli/{preset-DQ1DxMtI.js → preset-CfIs24cc.js} +1 -1
- package/dist/cli/run-Bck-p0MI.js +63 -0
- package/dist/cli/{run-DliGNdjI.js → run-BhJKAanr.js} +26 -5
- package/dist/cli/{run-BLJj7SuM.js → run-DRZ10srj.js} +52 -43
- package/dist/cli/{scaffold-6bv24GSP.js → scaffold-DoURlDEI.js} +3 -3
- package/dist/cli/{scaffold-DUz5fa-k.js → scaffold-mzy3OsN5.js} +1 -1
- package/dist/cli/seed-C5q4UUIL.js +1 -0
- package/dist/cli/{seed-CIJaL1Ao.js → seed-CIdg6s7m.js} +6 -5
- package/dist/cli/{shared-CNcvDOLt.js → shared-DKLuA1Tp.js} +2 -2
- package/dist/cli/{skills-CaxIQhzW.js → skills-D3zwIlGA.js} +1 -1
- package/dist/cli/{snapshot-Dvcx0BSl.js → snapshot-BBKFojqM.js} +4 -4
- package/dist/cli/{source-args-BNhagtpw.js → source-args-Cwo7zwvq.js} +8 -2
- package/dist/cli/{spec-DRDaIq8f.js → spec-DOgQUZwM.js} +1 -1
- package/dist/cli/{spec-BewE6r6J.js → spec-DZeIP9ta.js} +3 -3
- package/dist/cli/{sql-BCQt5TDs.js → sql-CL_Lbhwl.js} +2 -2
- package/dist/cli/{sql-BBkchli4.js → sql-DLOvvnBV.js} +5 -5
- package/dist/cli/stack-env-_uWWNHWq.js +87 -0
- package/dist/cli/{stack-status-LeEoCtV1.js → stack-status-_NUgd-g5.js} +43 -3
- package/dist/cli/{supabase-toml-DjLgBYEo.js → supabase-toml-BC5sNVKU.js} +1 -1
- package/dist/cli/{sync-CJ-ft-tl.js → sync-DBvknfOK.js} +2 -2
- package/dist/cli/{version-D1wM9DNb.js → version-B7akdvDv.js} +1 -1
- package/dist/cli/{write-Dp1XlAVM.js → write-VZljwoTB.js} +2 -2
- package/dist/client/index.d.ts +6 -6
- package/dist/client/index.js +4 -4
- package/dist/client/native/index.d.ts +6 -6
- package/dist/client/native/index.js +4 -4
- package/dist/{client-ByGlM0YF.d.ts → client-BAOZuBhz.d.ts} +4 -4
- package/dist/{client-fpvgtQKE.js → client-BDO6i2Oe.js} +2 -2
- package/dist/{client-Dk8gY9hi.d.ts → client-BJN0IMEp.d.ts} +2 -2
- package/dist/{client-Fi8CoJcs.d.ts → client-BMcjLG0V.d.ts} +13 -13
- package/dist/{client-B5nnqDmz.d.ts → client-BN_fXOs7.d.ts} +2 -2
- package/dist/{client-CpMv4-v5.d.ts → client-BONsuFYf.d.ts} +4 -4
- package/dist/{client-Diu2lPbg.d.ts → client-BPn9XhAM.d.ts} +7 -7
- package/dist/{client-B0rvMvA8.d.ts → client-BtC-r4hE.d.ts} +3 -3
- package/dist/{client-Cgxj38RS.d.ts → client-BuneNd-C.d.ts} +9 -9
- package/dist/{client-D0502FgY.js → client-CFKONrrU.js} +4 -4
- package/dist/{client-CvITjt-9.js → client-CHR8IBNG.js} +10 -2
- package/dist/{client-B9H4BZJh.d.ts → client-CHwNV8Kz.d.ts} +12 -12
- package/dist/{client-kKdkLGPB.d.ts → client-CLQHsa-2.d.ts} +2 -2
- package/dist/{client-C3dLIsJv.d.ts → client-CMxxwT3N.d.ts} +9 -9
- package/dist/{client-C597NIlL.d.ts → client-CU7aNN_B.d.ts} +8 -8
- package/dist/{client-DZXFDaQE.d.ts → client-CYEdJKjk.d.ts} +6 -6
- package/dist/{client-LVa6yC9u.d.ts → client-CYhSGlCN.d.ts} +5 -5
- package/dist/{client-CWs3X4g1.js → client-C_-NZRrg.js} +1 -1
- package/dist/{client-kI6vCKVI.js → client-CcPxbHeT.js} +2 -2
- package/dist/{client-AxwF58Eo.js → client-CosiUrUb.js} +1 -1
- package/dist/{client-CsRpAyIv.d.ts → client-D3gRTNSi.d.ts} +2 -2
- package/dist/{client-D727oIVC.js → client-D7T7OLiw.js} +4 -4
- package/dist/{client-9zIKhf5D.d.ts → client-DB34f_7i.d.ts} +3 -3
- package/dist/{client-CjyTNdt1.d.ts → client-DCawyopp.d.ts} +5 -5
- package/dist/{client-BtBkVSk2.d.ts → client-Dqa4XyJ5.d.ts} +7 -7
- package/dist/{client-BLKpcAs0.d.ts → client-Dr5h2r9r.d.ts} +3 -3
- package/dist/{client-BO9fQgBB.d.ts → client-DrTqKgvy.d.ts} +4 -4
- package/dist/{client-13Ii0c0P.js → client-DyfWYU8S.js} +2 -2
- package/dist/{client-iB5axfa0.js → client-Dz1jWDA2.js} +3 -3
- package/dist/{client-jvtwGFy4.js → client-DzTtOVRR.js} +2 -2
- package/dist/{client-B_r4denm.d.ts → client-GCCRI9ge.d.ts} +3 -3
- package/dist/{client-DR_YEGnc.d.ts → client-P6v3h7vh.d.ts} +2 -2
- package/dist/{client-D9zBl9PT.d.ts → client-P8l8ncxV.d.ts} +7 -7
- package/dist/{client-CFeWXNXy.js → client-UnM3e32l.js} +2 -2
- package/dist/{client-DG7FwgZD.js → client-arq4daO_.js} +1 -1
- package/dist/{client-CmHsfDHU.js → client-eCDPjOMo.js} +6 -6
- package/dist/{client-rp7YfOg1.js → client-iaFm0aVf.js} +1 -1
- package/dist/{client-WXJwUhr1.d.ts → client-kWg4OqIr.d.ts} +5 -5
- package/dist/{client-B7LCXnnY.d.ts → client-tvG258_1.d.ts} +6 -6
- package/dist/{client-BaynD5V-.d.ts → client-wKmX-f3r.d.ts} +7 -7
- package/dist/{cloud-event-bwsBwVNG.d.ts → cloud-event-DXkNoI6v.d.ts} +1 -1
- package/dist/{codecs-C7E_OoiC.js → codecs-D-rpDifG.js} +3 -3
- package/dist/{codecs-Bm46sVxr.d.ts → codecs-RwFNK8Jh.d.ts} +2 -2
- package/dist/{codegen-2m4SKVdi.d.ts → codegen-C64C0NZG.d.ts} +13 -2
- package/dist/{comments-N7Bi-oTW.js → comments-CV5O8q50.js} +5 -5
- package/dist/commerce/index.d.ts +2 -2
- package/dist/commerce/index.js +6 -6
- package/dist/{compiler-C6E3WwIi.d.ts → compiler-D_Gjpw_O.d.ts} +2 -2
- package/dist/{compose-CO_cljl3.js → compose-CP0ss-cQ.js} +3 -3
- package/dist/{composite-CPV0thLs.js → composite-1kPAxXto.js} +3 -3
- package/dist/{composite-DMMA_Whg.d.ts → composite-DzvBL5nb.d.ts} +13 -13
- package/dist/config/index.d.ts +4 -4
- package/dist/config/index.js +2 -2
- package/dist/{config-C4RQDF6t.js → config-DHhQmmuD.js} +22 -1
- package/dist/{config-CkyahUjo.js → config-NQmw_wsk.js} +1 -1
- package/dist/{connector-Cp8CqssJ.d.ts → connector-D9NMNkv0.d.ts} +1 -1
- package/dist/{connectors-CZdfZcIg.d.ts → connectors-BwPNt-ZG.d.ts} +7 -7
- package/dist/{context-BDDgjoxz.js → context-BiwgsycK.js} +1 -1
- package/dist/{context-CCfX2szU.d.ts → context-Cv3KlxWY.d.ts} +2 -2
- package/dist/{controller-CCb9tHw_.d.ts → controller-BZhiIb-N.d.ts} +1 -1
- package/dist/cors-h_v7TPxl.js +24 -0
- package/dist/cors-kLq6VM06.d.ts +15 -0
- package/dist/create/index.d.ts +25 -3
- package/dist/create/index.js +1002 -915
- package/dist/create/supabase/index.d.ts +1 -1
- package/dist/credentials/index.d.ts +5 -5
- package/dist/credentials/index.js +8 -8
- package/dist/{cron-CUaKTjWC.js → cron-BHdXZFsJ.js} +1 -1
- package/dist/{cron-route-BsgbJ-g4.js → cron-route-mTvWhork.js} +3 -3
- package/dist/{define-CMcokcZz.js → define-Bu1v781m.js} +82 -16
- package/dist/{define-DXTC706J.d.ts → define-DYZnvAbs.d.ts} +96 -43
- package/dist/{define-block-BlHQxDIQ.d.ts → define-block-BHxLHLys.d.ts} +7 -7
- package/dist/{delegation-Dt8hMJWu.js → delegation-B7uNnz6z.js} +2 -2
- package/dist/{documents-BYM2viS0.d.ts → documents-CqtVr2fg.d.ts} +4 -4
- package/dist/edge/index.d.ts +27 -38
- package/dist/edge/index.js +12 -32
- package/dist/elysia/index.d.ts +1 -1
- package/dist/elysia/index.js +1 -1
- package/dist/{embeddings-Da0w4A_0.d.ts → embeddings-CKhygw4C.d.ts} +1 -1
- package/dist/{ended-EcTtzzQJ.d.ts → ended-De6H52nX.d.ts} +2 -2
- package/dist/{entitlements-AmYp2KHX.js → entitlements-C8UvF1Rz.js} +3 -3
- package/dist/{entitlements-Bn7BTnbg.d.ts → entitlements-CtBGXb3B.d.ts} +2 -2
- package/dist/{envelope--7d0Q3Se.js → envelope-C4Z55LKW.js} +4 -4
- package/dist/{errors-8i6tSICm.js → errors-BV1SKTVs.js} +15 -1
- package/dist/{errors-7MqM7bbV.js → errors-D3BR8iUk.js} +2 -2
- package/dist/{escape-like-AUEPn-C5.d.ts → escape-like-B339PlP-.d.ts} +1 -1
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +2 -2
- package/dist/{eve-BcEr_hPo.d.ts → eve-B6ru2Bt4.d.ts} +2 -2
- package/dist/events/index.d.ts +3 -3
- package/dist/{events-CtAHxPal.d.ts → events-P3raDX2E.d.ts} +3 -3
- package/dist/{executor-CHRwEYqt.d.ts → executor-BWgJNbGh.d.ts} +1 -1
- package/dist/{executor-Cex-1PFp.js → executor-BiB0wMBA.js} +4 -4
- package/dist/{executor-BicyP8Nl.d.ts → executor-BnMC0lj3.d.ts} +2 -2
- package/dist/{executor-CIxyatuB.d.ts → executor-CvsNcQsa.d.ts} +3 -3
- package/dist/{executor-aKUo_Xyb.js → executor-CxGQiQN_.js} +3 -3
- package/dist/{executor-DzJQVTE2.d.ts → executor-D1hECPGG.d.ts} +1 -1
- package/dist/expo/index.d.ts +11 -9
- package/dist/expo/index.js +42 -7
- package/dist/expo-sqlite/index.d.ts +3 -3
- package/dist/expo-sqlite/index.js +2 -2
- package/dist/{field-errors-nFnYWvB0.d.ts → field-errors-Z-sgsdoN.d.ts} +7 -7
- package/dist/{filter-evaluate-CEm52E5s.d.ts → filter-evaluate-BJcaL3o1.d.ts} +1 -1
- package/dist/{filter-query-D3wOD1P_.d.ts → filter-query-Bc_Qa8V_.d.ts} +1 -1
- package/dist/{flags-Dz5PIzFU.d.ts → flags-6KK6Vqkr.d.ts} +3 -3
- package/dist/{flags-CtSrkVuW.js → flags-aUR7Rod6.js} +1 -1
- package/dist/flags-sdk/index.d.ts +1 -1
- package/dist/flags-sdk/index.js +2 -2
- package/dist/{framework-C2oL4OaO.d.ts → framework-BQhTsLX-.d.ts} +7 -7
- package/dist/{framework-Cfm0IspZ.js → framework-C6PKBgme.js} +2 -2
- package/dist/{function-contract-B4c0XuTU.d.ts → function-contract-DWqFl_QO.d.ts} +1 -1
- package/dist/{gateway-CJL6ZG17.d.ts → gateway-Bq_tWwxE.d.ts} +4 -4
- package/dist/h3/index.d.ts +1 -1
- package/dist/h3/index.js +1 -1
- package/dist/h3/v1/index.d.ts +1 -1
- package/dist/h3/v1/index.js +1 -1
- package/dist/{hmac-DCud0myt.js → hmac-BgpThYQW.js} +2 -1
- package/dist/hono/index.d.ts +34 -25
- package/dist/hono/index.js +18 -12
- package/dist/{http-BF-V0CUF.js → http-C7trc6uN.js} +2 -2
- package/dist/{impersonation-CDeCzZP6.js → impersonation-DxU6yHJV.js} +1 -1
- package/dist/{inbox-BaUJgHOF.d.ts → inbox-Du5aPwKB.d.ts} +4 -4
- package/dist/{index-DTQbC3CW.d.ts → index-1Vsg-7YV.d.ts} +1 -1
- package/dist/{index-8xwnaWHY.d.ts → index-BJLPQr2s.d.ts} +38 -5
- package/dist/{index-DL8z_oDo.d.ts → index-BpyBH5O2.d.ts} +4 -4
- package/dist/{index-Ck4oK5vV.d.ts → index-C-_fs7EI.d.ts} +8 -8
- package/dist/{index-BurdFUXr.d.ts → index-CXFf-c-j.d.ts} +7 -7
- package/dist/{index-MCXVzkXs.d.ts → index-Cm2-g_4H.d.ts} +5 -5
- package/dist/{index-DcijDfh1.d.ts → index-DTQSeHx2.d.ts} +4 -4
- package/dist/{index-D1kMyNc7.d.ts → index-Hc4tetmB.d.ts} +2 -2
- package/dist/{index-gXy3R1Uq.d.ts → index-QWTq2o31.d.ts} +1 -1
- package/dist/{index-Cckxs8IE.d.ts → index-XcTBR4Gb.d.ts} +3 -3
- package/dist/{index-DMONTkSf.d.ts → index-k-rrfG1g.d.ts} +2 -2
- package/dist/{index-Co0YsJTk.d.ts → index-wTnPJUhv.d.ts} +2 -2
- package/dist/index.d.ts +13 -13
- package/dist/index.js +10 -10
- package/dist/jwks-cache-C4rA69hD.js +49 -0
- package/dist/{jws-milwSg7E.js → jws-CwBB5QAT.js} +5 -3
- package/dist/{kit-BlcEFQql.d.ts → kit-De-EVRhw.d.ts} +4 -4
- package/dist/{kit-gqwkVhGU.js → kit-LTbHrWWD.js} +6 -6
- package/dist/{knowledge-BYtgA52P.d.ts → knowledge-B5zdpDD-.d.ts} +6 -6
- package/dist/{knowledge-CSNKLX-s.js → knowledge-BbdXOJvY.js} +4 -4
- package/dist/lint/index.d.ts +1 -1
- package/dist/lint/index.js +47 -2
- package/dist/list/index.d.ts +3 -3
- package/dist/{list-query-DWJIiVz_.d.ts → list-query-aXr2WkGA.d.ts} +5 -5
- package/dist/mcp/index.d.ts +21 -21
- package/dist/mcp/index.js +10 -10
- package/dist/mcp/sdk/index.d.ts +17 -17
- package/dist/mcp/sdk/index.js +5 -5
- package/dist/{messages-Cx4ttLJJ.js → messages-D5nIfCCf.js} +2 -2
- package/dist/{mfa-DtflCXEt.d.ts → mfa-YzkRjNad.d.ts} +1 -1
- package/dist/{model-messages-CTu-6kBu.js → model-messages-CIdqdUtk.js} +1 -1
- package/dist/{money-codec-DCGgzO26.js → money-codec-C21MWw50.js} +2 -2
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +1 -1
- package/dist/next/index.d.ts +34 -29
- package/dist/next/index.js +14 -14
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/{onboarding-viTTNWUp.js → onboarding-Du6kCmhF.js} +2 -2
- package/dist/openapi/index.d.ts +2 -2
- package/dist/openapi/index.js +2 -2
- package/dist/{operations-BtuQRwTJ.d.ts → operations-DQCWqkt3.d.ts} +1 -1
- package/dist/{options-CZk_fbbg.js → options-BCrqe3HH.js} +2 -1
- package/dist/options-CEMawFrr.js +5 -0
- package/dist/options-RKYdmIdV.js +5 -0
- package/dist/{options-CbSOj53r.d.ts → options-ZQzNKKBS.d.ts} +1 -1
- package/dist/{organizations-Bxrm32IG.js → organizations-CO2qg44D.js} +6 -6
- package/dist/orpc/index.d.ts +18 -18
- package/dist/orpc/index.js +7 -7
- package/dist/otel/index.d.ts +2 -2
- package/dist/otel/index.js +5 -5
- package/dist/{outbox-BCGHl9X6.d.ts → outbox-B1hZ7PPY.d.ts} +6 -6
- package/dist/{payments-h45bswA-.js → payments-CzjCdIcz.js} +1 -1
- package/dist/{plugin-D5OIaP93.d.ts → plugin-D-95Q0w0.d.ts} +3 -3
- package/dist/plugins/actor/index.d.ts +1 -1
- package/dist/plugins/actor/index.js +1 -1
- package/dist/plugins/rules/index.d.ts +2 -2
- package/dist/plugins/rules/index.js +1 -1
- package/dist/plugins/soft-delete/index.d.ts +3 -3
- package/dist/plugins/soft-delete/index.js +2 -2
- package/dist/plugins/tenant/index.d.ts +2 -2
- package/dist/plugins/tenant/index.js +2 -2
- package/dist/plugins/timestamps/index.d.ts +1 -1
- package/dist/plugins/timestamps/index.js +1 -1
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +3 -3
- package/dist/{pool-BBi4mot3.d.ts → pool-cM3rpOQr.d.ts} +3 -3
- package/dist/{pool-errors-C94tPR_G.js → pool-errors-CGqvTQOC.js} +2 -2
- package/dist/{ports-Dcnuo3HT.d.ts → ports-BCDIbC_U.d.ts} +2 -2
- package/dist/{ports-B53rB7zg.d.ts → ports-P0A5wo_-.d.ts} +11 -11
- package/dist/{ports-Bcdppx0G.js → ports-aALjot-D.js} +11 -7
- package/dist/postgres/index.d.ts +5 -5
- package/dist/postgres/index.js +3 -3
- package/dist/{postgrest-D6fEMsp4.d.ts → postgrest-CjnO1hbr.d.ts} +1 -1
- package/dist/powersync/index.d.ts +4 -4
- package/dist/powersync/index.js +4 -4
- package/dist/powersync/react/index.d.ts +3 -3
- package/dist/powersync/react/index.js +1 -1
- package/dist/preset/index.d.ts +4 -4
- package/dist/preset/index.js +3 -3
- package/dist/{preset-BBrL6_Ln.js → preset-Cf0T9GRt.js} +49 -6
- package/dist/{problem-CEjyhV5T.d.ts → problem-DCDIQiTA.d.ts} +1 -1
- package/dist/{problem-pIiL3WbE.js → problem-JRCohp1j.js} +1 -1
- package/dist/{provider-DKh2xFZb.js → provider-C-Ti38J6.js} +1 -1
- package/dist/{provider-CQ1SrhLa.d.ts → provider-DXgx5oSA.d.ts} +2 -2
- package/dist/{push-token-CDMgWT13.d.ts → push-token-y1Gnz5bQ.d.ts} +1 -1
- package/dist/query/index.d.ts +2 -2
- package/dist/{rank-result-Dngpt2n5.d.ts → rank-result-BcYfDA0x.d.ts} +1 -1
- package/dist/{rank-result-oUF1DYBm.js → rank-result-DtQuIvob.js} +2 -2
- package/dist/{rate-limit-BtbddDnE.js → rate-limit-DVZ7qIzW.js} +1 -1
- package/dist/{rate-limit-ByfWNX9N.js → rate-limit-I3AncmM8.js} +8 -8
- package/dist/{rate-limit-C88MEAOm.d.ts → rate-limit-c6c1mB6R.d.ts} +2 -2
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +2 -2
- package/dist/react/native/index.d.ts +1 -1
- package/dist/react/native/index.js +1 -1
- package/dist/react/server.d.ts +9 -9
- package/dist/react/server.js +2 -2
- package/dist/react/session.d.ts +2 -2
- package/dist/{react-BcKACxsj.js → react-DzukE6Wp.js} +3 -3
- package/dist/react-router/index.d.ts +11 -11
- package/dist/react-router/index.js +6 -6
- package/dist/{read-set-PWiJfv6S.js → read-set-DeesfeL_.js} +2 -2
- package/dist/realtime/index.d.ts +6 -6
- package/dist/realtime/index.js +2 -2
- package/dist/{refusal-Bdr1k47u.d.ts → refusal-C7geIBRl.d.ts} +1 -1
- package/dist/{refusal-Ch-u9dVd.js → refusal-CFpfmjcS.js} +4 -4
- package/dist/{resolve-CAR9oaKW.js → resolve-AtncaPTU.js} +17 -9
- package/dist/{resolve-7atr-wWr.d.ts → resolve-Ceft-18-.d.ts} +9 -5
- package/dist/{resource-CHGOmg1O.js → resource-Bdkqi8jo.js} +6 -6
- package/dist/{resource-DxcgtHq6.d.ts → resource-DYEtc-KN.d.ts} +1 -1
- package/dist/{resource-execute-C45ICrN9.d.ts → resource-execute-Bxvgmx-n.d.ts} +2 -2
- package/dist/{resource-types-CC59gMHE.d.ts → resource-types-LW1i5-h3.d.ts} +6 -6
- package/dist/{resources-B7htXQeg.js → resources-Ck7itNeX.js} +3 -3
- package/dist/{resources-B71O7EVQ.d.ts → resources-D3_FAz_H.d.ts} +2 -2
- package/dist/{respond-Cdg5ibH5.d.ts → respond-BSL36dQp.d.ts} +3 -3
- package/dist/{respond-Dpx48ATq.js → respond-Bhp3G__q.js} +5 -5
- package/dist/{result-Cj3yWhjH.d.ts → result-BREt7qOh.d.ts} +15 -1
- package/dist/{result-COkvI9t5.js → result-DIeYscA3.js} +1 -1
- package/dist/{rrule-zBh3CA1r.js → rrule-Cw4x4Pf_.js} +1 -1
- package/dist/{rules-4of_Fq-6.js → rules-BiQgmZ_U.js} +4 -4
- package/dist/{sales-lines-CymdiwYd.js → sales-lines-CQ1iC6QM.js} +3 -3
- package/dist/{sales-shared-DjCuN8xG.js → sales-shared-CDSytDEn.js} +2 -2
- package/dist/{search-LbjCylX5.js → search-ZP13UTT4.js} +3 -3
- package/dist/server/index.d.ts +38 -30
- package/dist/server/index.js +19 -64
- package/dist/{server-types-fXwJoFjt.d.ts → server-types-fLdep4gb.d.ts} +50 -30
- package/dist/{session-Djo5t4KQ.d.ts → session-DObioXpX.d.ts} +11 -11
- package/dist/{settings-DxXfDUmh.js → settings-BiHDFglz.js} +5 -5
- package/dist/{shared-9B02lczf.js → shared-C9zvURqC.js} +1 -1
- package/dist/{shared-as0EG51f.js → shared-D5Djh43x.js} +1 -1
- package/dist/{sign-in-D0xN6E_l.js → sign-in-z2BaBdps.js} +10 -3
- package/dist/{signatures-BMdJ7neI.d.ts → signatures-BXlDXV3D.d.ts} +1 -1
- package/dist/{signatures-C9CGYZS1.js → signatures-CeIoAelK.js} +5 -5
- package/dist/{signers-BjSgNAXP.d.ts → signers-BwKV-9S6.d.ts} +6 -6
- package/dist/{signing-keys-Ccr86Y2C.d.ts → signing-keys-v2MRYkDF.d.ts} +20 -5
- package/dist/solid/index.d.ts +8 -8
- package/dist/solid/index.js +1 -1
- package/dist/{solid-controller-CZrt1Tg6.d.ts → solid-controller-CWotGxcG.d.ts} +1 -1
- package/dist/solid-start/index.d.ts +11 -11
- package/dist/solid-start/index.js +5 -5
- package/dist/spec/index.d.ts +3 -3
- package/dist/spec/index.js +3 -3
- package/dist/sql/index.d.ts +4 -4
- package/dist/sql/index.js +2 -2
- package/dist/{sql-BQshMgmB.js → sql-BPKRNutj.js} +3 -3
- package/dist/{sql-CgTZOQZ7.js → sql-CT1Jnwp8.js} +1919 -698
- package/dist/{sso-CwAnve68.js → sso-BaU_6ePE.js} +4 -4
- package/dist/{sso-B5ZoEsXE.d.ts → sso-Bu0mVh0V.d.ts} +4 -4
- package/dist/ssr/index.d.ts +4 -4
- package/dist/ssr/index.js +3 -3
- package/dist/{standard-DZmwmIhV.js → standard-B1BigegP.js} +2 -2
- package/dist/{standard-C3_AAF3g.d.ts → standard-BcUQuUgu.d.ts} +1 -1
- package/dist/{stats-CUhqw6Ev.js → stats-Di5VAsYU.js} +4 -4
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.js +17 -6
- package/dist/{store-B5qYKsTh.d.ts → store-B18bIvKc.d.ts} +1 -1
- package/dist/streams/index.d.ts +3 -3
- package/dist/streams/index.js +3 -3
- package/dist/streams/redis/index.d.ts +1 -1
- package/dist/streams/redis/index.js +2 -2
- package/dist/{subject-readers-81xiWh4M.d.ts → subject-readers-BUChuOxL.d.ts} +2 -2
- package/dist/{subject-readers-DDyPTIOr.js → subject-readers-BpwUFJtp.js} +1 -1
- package/dist/{support-BsqhV6jP.js → support-C2wPYwD7.js} +8 -8
- package/dist/{support-view-CznLe4jq.d.ts → support-view-Bj_lZ8Wr.d.ts} +1 -1
- package/dist/svelte/index.d.ts +7 -7
- package/dist/svelte/index.js +1 -1
- package/dist/{svelte-controller-DDbju9CW.d.ts → svelte-controller-sS4X66yL.d.ts} +1 -1
- package/dist/sveltekit/index.d.ts +13 -13
- package/dist/sveltekit/index.js +7 -7
- package/dist/{tags-DGldvcA4.js → tags-BqgaxCnv.js} +5 -5
- package/dist/{tags-7NHyD1P8.d.ts → tags-BrGopDVG.d.ts} +1 -1
- package/dist/tanstack-db/index.d.ts +2 -2
- package/dist/tanstack-db/supabase/index.d.ts +2 -2
- package/dist/tanstack-start/index.d.ts +11 -11
- package/dist/tanstack-start/index.js +5 -5
- package/dist/{tax-DDZUB_oc.d.ts → tax-DMWDUzKt.d.ts} +2 -2
- package/dist/{tax-DZDpMMRw.js → tax-wm9g2mD2.js} +2 -2
- package/dist/{tee-CdRV1tcj.js → tee-Cw-iJAWL.js} +1 -1
- package/dist/{template-DdgYjIZ5.js → template-Dw3dTmKe.js} +1 -1
- package/dist/{temporal-required-DqRzr7i0.js → temporal-required-nfZ87U-0.js} +1 -1
- package/dist/{tenant-DW_GmsW4.d.ts → tenant-DZMLVuyQ.d.ts} +2 -2
- package/dist/testing/index.d.ts +134 -60
- package/dist/testing/index.js +251 -120
- package/dist/{topic-Dgs-eSYQ.d.ts → topic-DAY_HOX2.d.ts} +20 -6
- package/dist/{topic-DB-1YTMj.js → topic-mee21pux.js} +85 -17
- package/dist/{types-C_GN-4ed.d.ts → types-BA1eTvy4.d.ts} +5 -5
- package/dist/{types-P1S1cj6N.d.ts → types-BEEFkNFY.d.ts} +7 -7
- package/dist/{types-DZj8CZMH.d.ts → types-Bels39_u.d.ts} +10 -10
- package/dist/{types-BO8lVTun.d.ts → types-BrpW5ixT.d.ts} +8 -1
- package/dist/{types-DM8q3IOr.d.ts → types-DOC7wnh6.d.ts} +17 -8
- package/dist/{types-DOaUIJxW.d.ts → types-D_2rClz-.d.ts} +5 -5
- package/dist/{undo-0qM13zul.js → undo-B5LgpGLy.js} +4 -4
- package/dist/{undo-D42sPjCf.d.ts → undo-BsdYRox7.d.ts} +3 -3
- package/dist/upload-claim-BBFCZbBF.js +33 -0
- package/dist/{usage-CnQHSM_r.d.ts → usage-C504GF55.d.ts} +23 -5
- package/dist/{usage-BrJGPvCq.js → usage-DdqT13_X.js} +14 -3
- package/dist/{vault-EnOQJWjn.d.ts → vault-ClkzMGTP.d.ts} +3 -3
- package/dist/vercel-connect/index.d.ts +1 -1
- package/dist/vercel-connect/index.js +2 -2
- package/dist/{verify-3NLjUIER.d.ts → verify-DU4p9-Ve.d.ts} +4 -4
- package/dist/{verify-C9D_jjsQ.js → verify-DnU-uWU2.js} +5 -5
- package/dist/{version-Bxj_xcUY.js → version-DSWxci83.js} +1 -1
- package/dist/{view-DZ63nqwt.js → view-CYX1wsgp.js} +3 -3
- package/dist/{view-SuASaomx.d.ts → view-KQhe6eNc.d.ts} +3 -3
- package/dist/vue/index.d.ts +8 -8
- package/dist/vue/index.js +1 -1
- package/dist/{vue-controller-D_ohttBZ.d.ts → vue-controller-BUo1oove.d.ts} +1 -1
- package/dist/{watch-D1wwzZ04.d.ts → watch-5btote1y.d.ts} +6 -6
- package/dist/{watch-Blj1mQ9n.js → watch-BAuIzC2r.js} +1 -1
- package/dist/{watch-topic-D-rpUg5n.d.ts → watch-topic-C79ZW5-R.d.ts} +1 -1
- package/dist/{wire-DEY0ajW9.js → wire-BCJxCtHS.js} +2 -2
- package/dist/{workflow-builder-C5DBN7yq.js → workflow-builder-CynLqc6H.js} +7 -7
- package/dist/workflow-sdk/builder/index.d.ts +3 -3
- package/dist/workflow-sdk/builder/index.js +1 -1
- package/dist/workflow-sdk/index.d.ts +1 -1
- package/dist/workflow-sdk/index.js +1 -1
- package/dist/workflow-sdk/world/index.d.ts +1 -1
- package/dist/workflow-sdk/world/index.js +6 -6
- package/dist/{workflow-sdk-Di5pmCAu.d.ts → workflow-sdk-CWdCWj7M.d.ts} +3 -3
- package/dist/{workflow-sdk-vjDWlnfX.js → workflow-sdk-QnnzIQRc.js} +2 -2
- package/dist/{workflow-sdk-world-DPMdBfzn.js → workflow-sdk-world-QzcxaaCD.js} +1 -1
- package/dist/{workflows-DJXoxDZH.d.ts → workflows-DQBCzrHC.d.ts} +4 -4
- package/dist/{workflows-DzdX28KN.js → workflows-H9qJge3f.js} +5 -5
- package/dist/yjs/index.d.ts +3 -3
- package/dist/yjs/index.js +3 -3
- package/package.json +10 -1
- package/schemas/cli-commands-v1.json +15 -0
- package/schemas/config-v1.json +47 -3
- package/schemas/doctor-report-v1.json +4 -0
- package/schemas/snapshot-v2.json +4 -0
- package/dist/cli/add-ojbcMxyp.js +0 -1
- package/dist/cli/adopt-D0ASVx2G.js +0 -1
- package/dist/cli/env-DkBe35Rv.js +0 -1
- package/dist/cli/seed-ClGWseBT.js +0 -1
package/dist/testing/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { t as DbException } from "../db-exception-CnWcYPxL.js";
|
|
2
|
-
import { n as dbError } from "../errors-
|
|
2
|
+
import { n as dbError } from "../errors-BV1SKTVs.js";
|
|
3
3
|
import { d as temporalText } from "../temporal-CB5Fpo5d.js";
|
|
4
|
-
import { t as temporal } from "../temporal-required-
|
|
5
|
-
import { a as ok } from "../result-
|
|
6
|
-
import { t as BetterSupabase } from "../define-
|
|
4
|
+
import { t as temporal } from "../temporal-required-nfZ87U-0.js";
|
|
5
|
+
import { a as ok } from "../result-DIeYscA3.js";
|
|
6
|
+
import { t as BetterSupabase } from "../define-Bu1v781m.js";
|
|
7
7
|
import { t as isList } from "../guards-6F2bCtQR.js";
|
|
8
|
-
import { a as toBase64Url, r as fromBase64, t as base64ToText } from "../base64-
|
|
9
|
-
import { o as resolveConfig } from "../config-
|
|
10
|
-
import { a as isScopeName, c as templateFunctions, l as templatePlaceholders, n as TEMPLATE_PLACEHOLDERS, s as scopeProblems, u as templateProblems } from "../access-sql-
|
|
8
|
+
import { a as toBase64Url, r as fromBase64, t as base64ToText } from "../base64-D4aqdnDR.js";
|
|
9
|
+
import { o as resolveConfig } from "../config-NQmw_wsk.js";
|
|
10
|
+
import { a as isScopeName, c as templateFunctions, l as templatePlaceholders, n as TEMPLATE_PLACEHOLDERS, s as scopeProblems, u as templateProblems } from "../access-sql-CTJPHjCL.js";
|
|
11
11
|
import { i as seedLite, n as loadLite, r as migrateLite, t as LITE_INSTALL } from "../runtime-BOXURhEW.js";
|
|
12
12
|
import { ENV_VARIABLES } from "../env/index.js";
|
|
13
13
|
import { t as defineController } from "../controller-D6NyNrlZ.js";
|
|
14
14
|
import "../replicas-BvIL4_jL.js";
|
|
15
|
-
import { a as tenantCredentialRef } from "../provider-
|
|
16
|
-
import { n as rawError } from "../block-transport-
|
|
17
|
-
import { t as postgresExecutor } from "../executor-
|
|
18
|
-
import { i as requestOf, n as checkPermission, r as defineAuthorizer } from "../authorizer-
|
|
15
|
+
import { a as tenantCredentialRef } from "../provider-C-Ti38J6.js";
|
|
16
|
+
import { n as rawError } from "../block-transport-J7ZepTq2.js";
|
|
17
|
+
import { t as postgresExecutor } from "../executor-CxGQiQN_.js";
|
|
18
|
+
import { i as requestOf, n as checkPermission, r as defineAuthorizer } from "../authorizer-B3yyCVUF.js";
|
|
19
19
|
import { n as parseDbStats } from "../timing-BMCWgpdZ.js";
|
|
20
20
|
import { t as mailHeaders } from "../delivery-B1mKaOen.js";
|
|
21
21
|
import { toCloudEvents } from "../events/index.js";
|
|
22
22
|
import { d as money, l as isRate } from "../money-95Rff2vT.js";
|
|
23
|
-
import { t as SHIPPING_LINE } from "../tax-
|
|
24
|
-
import { t as buildApiModel } from "../build-
|
|
23
|
+
import { t as SHIPPING_LINE } from "../tax-wm9g2mD2.js";
|
|
24
|
+
import { t as buildApiModel } from "../build-CT6SPZkI.js";
|
|
25
25
|
import { timestamps } from "../plugins/timestamps/index.js";
|
|
26
26
|
import { softDelete } from "../plugins/soft-delete/index.js";
|
|
27
27
|
import { tenant } from "../plugins/tenant/index.js";
|
|
@@ -185,7 +185,12 @@ async function signLocalJwt(claims, path) {
|
|
|
185
185
|
//#region src/testing/as-user.ts
|
|
186
186
|
/** The local CLI stack's default JWT secret. */
|
|
187
187
|
const LOCAL_JWT_SECRET = "super-secret-jwt-token-with-at-least-32-characters-long";
|
|
188
|
-
|
|
188
|
+
const internals = /* @__PURE__ */ new WeakMap();
|
|
189
|
+
/** The pool and identity behind a user from `asUser`, or `undefined` for any other object. */
|
|
190
|
+
function internalsOf(user) {
|
|
191
|
+
return internals.get(user);
|
|
192
|
+
}
|
|
193
|
+
function env$2(...names) {
|
|
189
194
|
if (typeof process === "undefined") return;
|
|
190
195
|
for (const name of names) {
|
|
191
196
|
const value = process.env[name];
|
|
@@ -204,7 +209,7 @@ async function signFor(stack, url, claims) {
|
|
|
204
209
|
case "ES256": return signTestJwtWithKey(stack.signingKey ?? await localSigningKey(stack.signingKeysPath), claims);
|
|
205
210
|
case "HS256":
|
|
206
211
|
if (!LOCAL_HOSTS.has(new URL(url).hostname)) throw new TypeError(`asUser signs HS256 tokens only for a local stack, not ${url}. Use the ES256 key from \`better-supabase keys\`.`);
|
|
207
|
-
return signTestJwt(stack.jwtSecret ?? env$
|
|
212
|
+
return signTestJwt(stack.jwtSecret ?? env$2("SUPABASE_JWT_SECRET") ?? "super-secret-jwt-token-with-at-least-32-characters-long", claims);
|
|
208
213
|
default: throw new TypeError(`asUser: unknown alg "${String(alg)}"`);
|
|
209
214
|
}
|
|
210
215
|
}
|
|
@@ -220,8 +225,8 @@ async function signFor(stack, url, claims) {
|
|
|
220
225
|
* ```
|
|
221
226
|
*/
|
|
222
227
|
async function asUser(betterSupabase, claims, stack = {}) {
|
|
223
|
-
const url = stack.url ?? env$
|
|
224
|
-
const publishableKey = stack.publishableKey ?? env$
|
|
228
|
+
const url = stack.url ?? env$2(...ENV_VARIABLES.url) ?? "http://127.0.0.1:54321";
|
|
229
|
+
const publishableKey = stack.publishableKey ?? env$2(...ENV_VARIABLES.publishableKey, "SUPABASE_ANON_KEY");
|
|
225
230
|
if (!publishableKey) throw new TypeError("asUser needs publishableKey or $SUPABASE_PUBLISHABLE_KEY. Run `better-supabase env` to write it to .env.local.");
|
|
226
231
|
const token = await signFor(stack, url, claims);
|
|
227
232
|
const full = {
|
|
@@ -239,15 +244,24 @@ async function asUser(betterSupabase, claims, stack = {}) {
|
|
|
239
244
|
};
|
|
240
245
|
const supabase = createClient(url, publishableKey, {
|
|
241
246
|
accessToken: () => Promise.resolve(token),
|
|
247
|
+
tracePropagation: stack.tracePropagation ?? false,
|
|
242
248
|
...stack.fetch ? { global: { fetch: stack.fetch } } : {}
|
|
243
249
|
});
|
|
244
|
-
|
|
250
|
+
const user = {
|
|
245
251
|
token,
|
|
246
252
|
claims: full,
|
|
253
|
+
context,
|
|
247
254
|
supabase,
|
|
248
255
|
db: betterSupabase.connect(supabase, context),
|
|
249
256
|
sql: stack.postgres ? betterSupabase.connect(postgresExecutor(stack.postgres.asUser(full)), context) : void 0
|
|
250
257
|
};
|
|
258
|
+
internals.set(user, {
|
|
259
|
+
connect: (client) => betterSupabase.connect(postgresExecutor(client), context),
|
|
260
|
+
postgres: stack.postgres,
|
|
261
|
+
claims: full,
|
|
262
|
+
context
|
|
263
|
+
});
|
|
264
|
+
return user;
|
|
251
265
|
}
|
|
252
266
|
//#endregion
|
|
253
267
|
//#region src/testing/lite.ts
|
|
@@ -499,6 +513,224 @@ async function expectInstant(page, expectation) {
|
|
|
499
513
|
});
|
|
500
514
|
}
|
|
501
515
|
//#endregion
|
|
516
|
+
//#region src/testing/seed.ts
|
|
517
|
+
const SEED = Symbol.for("better-supabase.seed");
|
|
518
|
+
function isSeed(value) {
|
|
519
|
+
return typeof value === "object" && value !== null && SEED in value;
|
|
520
|
+
}
|
|
521
|
+
const quote = (text) => `'${text.replaceAll("'", "''")}'`;
|
|
522
|
+
function arrayLiteral(values) {
|
|
523
|
+
return `{${values.map((value) => {
|
|
524
|
+
if (value === null) return "NULL";
|
|
525
|
+
if (Array.isArray(value)) return arrayLiteral(value);
|
|
526
|
+
return `"${(temporalText(value) ?? String(value)).replaceAll(/[\\"]/g, "\\$&")}"`;
|
|
527
|
+
}).join(",")}}`;
|
|
528
|
+
}
|
|
529
|
+
function literal(value, column, where) {
|
|
530
|
+
if (value === null) return "null";
|
|
531
|
+
if (column.json) return quote(JSON.stringify(value));
|
|
532
|
+
if (Array.isArray(value)) return quote(arrayLiteral(value));
|
|
533
|
+
const temporalValue = temporalText(value);
|
|
534
|
+
if (temporalValue !== void 0) return quote(temporalValue);
|
|
535
|
+
const kind = typeof value;
|
|
536
|
+
switch (kind) {
|
|
537
|
+
case "string": return quote(value);
|
|
538
|
+
case "boolean":
|
|
539
|
+
case "bigint": return String(value);
|
|
540
|
+
case "number":
|
|
541
|
+
if (!Number.isFinite(value)) throw new TypeError(`${where}: ${String(value)} is not a finite number`);
|
|
542
|
+
return String(value);
|
|
543
|
+
case "object":
|
|
544
|
+
case "function":
|
|
545
|
+
case "symbol":
|
|
546
|
+
case "undefined": throw new TypeError(`${where}: unsupported value of type ${kind}`);
|
|
547
|
+
default: throw new TypeError(`${where}: unsupported value of type ${String(kind)}`);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
const ident = (name) => `"${name.replaceAll("\"", "\"\"")}"`;
|
|
551
|
+
/** Parents first (by forward relations), otherwise in the order given. */
|
|
552
|
+
function order(meta, keys) {
|
|
553
|
+
const sorted = [];
|
|
554
|
+
const visiting = /* @__PURE__ */ new Set();
|
|
555
|
+
const visit = (key) => {
|
|
556
|
+
if (sorted.includes(key) || visiting.has(key)) return;
|
|
557
|
+
visiting.add(key);
|
|
558
|
+
for (const relation of Object.values(meta.tables[key]?.relations ?? {})) if (relation.direction === "forward" && relation.table !== key && keys.includes(relation.table)) visit(relation.table);
|
|
559
|
+
visiting.delete(key);
|
|
560
|
+
sorted.push(key);
|
|
561
|
+
};
|
|
562
|
+
for (const key of keys) visit(key);
|
|
563
|
+
return sorted;
|
|
564
|
+
}
|
|
565
|
+
function statement(table, rows) {
|
|
566
|
+
const entries = Object.entries(rows);
|
|
567
|
+
if (entries.length === 0) return;
|
|
568
|
+
const columns = [];
|
|
569
|
+
for (const [, row] of entries) for (const [key, value] of Object.entries(row)) {
|
|
570
|
+
if (value === void 0 || columns.includes(key)) continue;
|
|
571
|
+
const column = table.columns[key];
|
|
572
|
+
if (!column) throw new TypeError(`seed ${table.key}: unknown column "${key}"`);
|
|
573
|
+
if (column.generated) throw new TypeError(`seed ${table.key}: "${key}" is a generated column`);
|
|
574
|
+
columns.push(key);
|
|
575
|
+
}
|
|
576
|
+
const values = entries.map(([name, row]) => {
|
|
577
|
+
return ` (${columns.map((key) => row[key] === void 0 ? "default" : literal(row[key], table.columns[key], `seed ${table.key}.${name}.${key}`)).join(", ")})`;
|
|
578
|
+
});
|
|
579
|
+
return `insert into ${`${ident(table.schema)}.${ident(table.name)}`} (${columns.map((key) => ident(table.columns[key].db)).join(", ")}) values\n${values.join(",\n")}\non conflict do nothing;`;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* Typed fixtures shared by `supabase/seeds` and your tests. Rows use app
|
|
583
|
+
* casing and Insert types; `better-supabase seed` renders them to SQL.
|
|
584
|
+
*
|
|
585
|
+
* ```ts
|
|
586
|
+
* export const seed = defineSeed(betterSupabase, {
|
|
587
|
+
* organizations: { acme: { id: ACME, name: 'Acme' } },
|
|
588
|
+
* customers: { first: { organizationId: ACME, name: 'First customer' } },
|
|
589
|
+
* });
|
|
590
|
+
* ```
|
|
591
|
+
*/
|
|
592
|
+
function defineSeed(betterSupabase, fixtures) {
|
|
593
|
+
const meta = betterSupabase.meta;
|
|
594
|
+
const statements = () => {
|
|
595
|
+
const keys = Object.keys(fixtures).filter((key) => fixtures[key] !== void 0);
|
|
596
|
+
for (const key of keys) {
|
|
597
|
+
const table = meta.tables[key];
|
|
598
|
+
if (!table) throw new TypeError(`seed: unknown table "${key}"`);
|
|
599
|
+
if (table.kind === "view") throw new TypeError(`seed: "${key}" is a view`);
|
|
600
|
+
}
|
|
601
|
+
return order(meta, keys).flatMap((key) => {
|
|
602
|
+
const sql = statement(meta.tables[key], fixtures[key]);
|
|
603
|
+
return sql ? [sql] : [];
|
|
604
|
+
});
|
|
605
|
+
};
|
|
606
|
+
return {
|
|
607
|
+
[SEED]: true,
|
|
608
|
+
rows: fixtures,
|
|
609
|
+
statements,
|
|
610
|
+
sql: () => statements().join("\n\n"),
|
|
611
|
+
async insert(sql) {
|
|
612
|
+
for (const text of statements()) await sql.queryRaw(text);
|
|
613
|
+
}
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
//#endregion
|
|
617
|
+
//#region src/testing/scope.ts
|
|
618
|
+
function env$1(names) {
|
|
619
|
+
if (typeof process === "undefined") return;
|
|
620
|
+
for (const name of names) {
|
|
621
|
+
const value = process.env[name];
|
|
622
|
+
if (value) return value;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Fresh rows for one test, so tests that run at the same time never share
|
|
627
|
+
* data. It creates a new tenant id, inserts the fixtures that `build` returns
|
|
628
|
+
* through the service role (RLS and plugins don't apply), and hands back the
|
|
629
|
+
* inserted rows. Call `cleanup()` in `afterEach` (or `await using`) to delete
|
|
630
|
+
* them. A user from `asUser` then reads them over PostgREST like any other.
|
|
631
|
+
*
|
|
632
|
+
* ```ts
|
|
633
|
+
* const scope = await scopedSeed(
|
|
634
|
+
* betterSupabase,
|
|
635
|
+
* ({ tenant, id }) => ({
|
|
636
|
+
* customers: { first: { organizationId: tenant, name: `first-${id()}` } },
|
|
637
|
+
* }),
|
|
638
|
+
* { tenant: { table: 'organizations', row: (id) => ({ id, name: id, slug: id }) } },
|
|
639
|
+
* );
|
|
640
|
+
* const alice = await asUser(betterSupabase, { sub: aliceId, tenant_id: scope.tenant });
|
|
641
|
+
* expect(await alice.db.customers.count().orThrow()).toBe(1);
|
|
642
|
+
* await scope.cleanup();
|
|
643
|
+
* ```
|
|
644
|
+
*/
|
|
645
|
+
async function scopedSeed(betterSupabase, build, options = {}) {
|
|
646
|
+
const stack = options.stack ?? {};
|
|
647
|
+
const url = stack.url ?? env$1(ENV_VARIABLES.url) ?? "http://127.0.0.1:54321";
|
|
648
|
+
const secretKey = stack.secretKey ?? env$1(ENV_VARIABLES.secretKey);
|
|
649
|
+
if (!secretKey) throw new TypeError("scopedSeed needs stack.secretKey or $SUPABASE_SECRET_KEY to insert rows.");
|
|
650
|
+
const bare = new BetterSupabase(betterSupabase.schema);
|
|
651
|
+
const admin = bare.connect(createClient(url, secretKey, { auth: {
|
|
652
|
+
persistSession: false,
|
|
653
|
+
autoRefreshToken: false
|
|
654
|
+
} }));
|
|
655
|
+
const tenant = crypto.randomUUID();
|
|
656
|
+
const fixtures = build({
|
|
657
|
+
tenant,
|
|
658
|
+
id: () => crypto.randomUUID()
|
|
659
|
+
});
|
|
660
|
+
const cleanup = [];
|
|
661
|
+
const insert = async (table, row) => {
|
|
662
|
+
const repository = admin[table];
|
|
663
|
+
if (!repository) throw new TypeError(`scopedSeed: unknown table "${table}"`);
|
|
664
|
+
const result = await repository.create(row);
|
|
665
|
+
if (!result.ok) throw new Error(`scopedSeed ${table}: ${result.error.message}`);
|
|
666
|
+
const meta = bare.meta.tables[table];
|
|
667
|
+
const created = result.data;
|
|
668
|
+
if (meta && meta.primaryKey.length > 0) {
|
|
669
|
+
const where = Object.fromEntries(meta.primaryKey.map((column) => [column, created[column]]));
|
|
670
|
+
cleanup.push(() => repository.deleteMany({ where }));
|
|
671
|
+
}
|
|
672
|
+
return created;
|
|
673
|
+
};
|
|
674
|
+
const remove = async () => {
|
|
675
|
+
const pending = cleanup.splice(0).reverse();
|
|
676
|
+
let failure;
|
|
677
|
+
for (const run of pending) try {
|
|
678
|
+
await run();
|
|
679
|
+
} catch (error) {
|
|
680
|
+
failure ??= error;
|
|
681
|
+
}
|
|
682
|
+
if (failure !== void 0) throw failure instanceof Error ? failure : new Error(String(failure));
|
|
683
|
+
};
|
|
684
|
+
const rows = {};
|
|
685
|
+
try {
|
|
686
|
+
if (options.tenant) await insert(options.tenant.table, options.tenant.row(tenant));
|
|
687
|
+
const byTable = fixtures;
|
|
688
|
+
for (const key of order(bare.meta, Object.keys(byTable).filter((name) => byTable[name] !== void 0))) {
|
|
689
|
+
rows[key] = {};
|
|
690
|
+
for (const [name, row] of Object.entries(byTable[key] ?? {})) rows[key][name] = await insert(key, row);
|
|
691
|
+
}
|
|
692
|
+
} catch (error) {
|
|
693
|
+
await remove().catch(() => void 0);
|
|
694
|
+
throw error;
|
|
695
|
+
}
|
|
696
|
+
return {
|
|
697
|
+
tenant,
|
|
698
|
+
rows,
|
|
699
|
+
cleanup: remove,
|
|
700
|
+
[Symbol.asyncDispose]: remove
|
|
701
|
+
};
|
|
702
|
+
}
|
|
703
|
+
/** The error `withRollback` throws to end its transaction; never reaches callers. */
|
|
704
|
+
var Rollback = class extends Error {};
|
|
705
|
+
/**
|
|
706
|
+
* Runs `fn` as the user over direct Postgres inside one transaction and
|
|
707
|
+
* always rolls it back, so the test leaves no rows behind. `fn` gets the same
|
|
708
|
+
* repositories as `user.sql`. Only the `sql` path rolls back: `user.db` talks
|
|
709
|
+
* to PostgREST over HTTP and commits on its own.
|
|
710
|
+
*
|
|
711
|
+
* ```ts
|
|
712
|
+
* const alice = await asUser(betterSupabase, claims, { postgres });
|
|
713
|
+
* await withRollback(alice, async (db) => {
|
|
714
|
+
* await db.customers.create({ organizationId, name: 'Temp' }).orThrow();
|
|
715
|
+
* expect(await db.customers.count().orThrow()).toBe(1);
|
|
716
|
+
* });
|
|
717
|
+
* ```
|
|
718
|
+
*/
|
|
719
|
+
async function withRollback(user, fn) {
|
|
720
|
+
const internal = internalsOf(user);
|
|
721
|
+
if (!internal?.postgres) throw new TypeError("withRollback needs a user from asUser(betterSupabase, claims, { postgres }): it rolls back over direct Postgres, not PostgREST.");
|
|
722
|
+
let outcome;
|
|
723
|
+
try {
|
|
724
|
+
await internal.postgres.transaction(async (client) => {
|
|
725
|
+
outcome = { value: await fn(internal.connect(client)) };
|
|
726
|
+
throw new Rollback("rollback");
|
|
727
|
+
}, { claims: internal.claims });
|
|
728
|
+
} catch (error) {
|
|
729
|
+
if (!(error instanceof Rollback) || !outcome) throw error;
|
|
730
|
+
}
|
|
731
|
+
return outcome.value;
|
|
732
|
+
}
|
|
733
|
+
//#endregion
|
|
502
734
|
//#region src/testing/conformance.ts
|
|
503
735
|
/** Thrown by a conformance kit when any check fails. Lists every failure, not just the first. */
|
|
504
736
|
var ConformanceError = class extends Error {
|
|
@@ -957,107 +1189,6 @@ const supabaseInvalidClaimFixtures = {
|
|
|
957
1189
|
}
|
|
958
1190
|
};
|
|
959
1191
|
//#endregion
|
|
960
|
-
//#region src/testing/seed.ts
|
|
961
|
-
const SEED = Symbol.for("better-supabase.seed");
|
|
962
|
-
function isSeed(value) {
|
|
963
|
-
return typeof value === "object" && value !== null && SEED in value;
|
|
964
|
-
}
|
|
965
|
-
const quote = (text) => `'${text.replaceAll("'", "''")}'`;
|
|
966
|
-
function arrayLiteral(values) {
|
|
967
|
-
return `{${values.map((value) => {
|
|
968
|
-
if (value === null) return "NULL";
|
|
969
|
-
if (Array.isArray(value)) return arrayLiteral(value);
|
|
970
|
-
return `"${(temporalText(value) ?? String(value)).replaceAll(/[\\"]/g, "\\$&")}"`;
|
|
971
|
-
}).join(",")}}`;
|
|
972
|
-
}
|
|
973
|
-
function literal(value, column, where) {
|
|
974
|
-
if (value === null) return "null";
|
|
975
|
-
if (column.json) return quote(JSON.stringify(value));
|
|
976
|
-
if (Array.isArray(value)) return quote(arrayLiteral(value));
|
|
977
|
-
const temporalValue = temporalText(value);
|
|
978
|
-
if (temporalValue !== void 0) return quote(temporalValue);
|
|
979
|
-
const kind = typeof value;
|
|
980
|
-
switch (kind) {
|
|
981
|
-
case "string": return quote(value);
|
|
982
|
-
case "boolean":
|
|
983
|
-
case "bigint": return String(value);
|
|
984
|
-
case "number":
|
|
985
|
-
if (!Number.isFinite(value)) throw new TypeError(`${where}: ${String(value)} is not a finite number`);
|
|
986
|
-
return String(value);
|
|
987
|
-
case "object":
|
|
988
|
-
case "function":
|
|
989
|
-
case "symbol":
|
|
990
|
-
case "undefined": throw new TypeError(`${where}: unsupported value of type ${kind}`);
|
|
991
|
-
default: throw new TypeError(`${where}: unsupported value of type ${String(kind)}`);
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
const ident = (name) => `"${name.replaceAll("\"", "\"\"")}"`;
|
|
995
|
-
/** Parents first (by forward relations), otherwise in the order given. */
|
|
996
|
-
function order(meta, keys) {
|
|
997
|
-
const sorted = [];
|
|
998
|
-
const visiting = /* @__PURE__ */ new Set();
|
|
999
|
-
const visit = (key) => {
|
|
1000
|
-
if (sorted.includes(key) || visiting.has(key)) return;
|
|
1001
|
-
visiting.add(key);
|
|
1002
|
-
for (const relation of Object.values(meta.tables[key]?.relations ?? {})) if (relation.direction === "forward" && relation.table !== key && keys.includes(relation.table)) visit(relation.table);
|
|
1003
|
-
visiting.delete(key);
|
|
1004
|
-
sorted.push(key);
|
|
1005
|
-
};
|
|
1006
|
-
for (const key of keys) visit(key);
|
|
1007
|
-
return sorted;
|
|
1008
|
-
}
|
|
1009
|
-
function statement(table, rows) {
|
|
1010
|
-
const entries = Object.entries(rows);
|
|
1011
|
-
if (entries.length === 0) return;
|
|
1012
|
-
const columns = [];
|
|
1013
|
-
for (const [, row] of entries) for (const [key, value] of Object.entries(row)) {
|
|
1014
|
-
if (value === void 0 || columns.includes(key)) continue;
|
|
1015
|
-
const column = table.columns[key];
|
|
1016
|
-
if (!column) throw new TypeError(`seed ${table.key}: unknown column "${key}"`);
|
|
1017
|
-
if (column.generated) throw new TypeError(`seed ${table.key}: "${key}" is a generated column`);
|
|
1018
|
-
columns.push(key);
|
|
1019
|
-
}
|
|
1020
|
-
const values = entries.map(([name, row]) => {
|
|
1021
|
-
return ` (${columns.map((key) => row[key] === void 0 ? "default" : literal(row[key], table.columns[key], `seed ${table.key}.${name}.${key}`)).join(", ")})`;
|
|
1022
|
-
});
|
|
1023
|
-
return `insert into ${`${ident(table.schema)}.${ident(table.name)}`} (${columns.map((key) => ident(table.columns[key].db)).join(", ")}) values\n${values.join(",\n")}\non conflict do nothing;`;
|
|
1024
|
-
}
|
|
1025
|
-
/**
|
|
1026
|
-
* Typed fixtures shared by `supabase/seeds` and your tests. Rows use app
|
|
1027
|
-
* casing and Insert types; `better-supabase seed` renders them to SQL.
|
|
1028
|
-
*
|
|
1029
|
-
* ```ts
|
|
1030
|
-
* export const seed = defineSeed(betterSupabase, {
|
|
1031
|
-
* organizations: { acme: { id: ACME, name: 'Acme' } },
|
|
1032
|
-
* customers: { first: { organizationId: ACME, name: 'First customer' } },
|
|
1033
|
-
* });
|
|
1034
|
-
* ```
|
|
1035
|
-
*/
|
|
1036
|
-
function defineSeed(betterSupabase, fixtures) {
|
|
1037
|
-
const meta = betterSupabase.meta;
|
|
1038
|
-
const statements = () => {
|
|
1039
|
-
const keys = Object.keys(fixtures).filter((key) => fixtures[key] !== void 0);
|
|
1040
|
-
for (const key of keys) {
|
|
1041
|
-
const table = meta.tables[key];
|
|
1042
|
-
if (!table) throw new TypeError(`seed: unknown table "${key}"`);
|
|
1043
|
-
if (table.kind === "view") throw new TypeError(`seed: "${key}" is a view`);
|
|
1044
|
-
}
|
|
1045
|
-
return order(meta, keys).flatMap((key) => {
|
|
1046
|
-
const sql = statement(meta.tables[key], fixtures[key]);
|
|
1047
|
-
return sql ? [sql] : [];
|
|
1048
|
-
});
|
|
1049
|
-
};
|
|
1050
|
-
return {
|
|
1051
|
-
[SEED]: true,
|
|
1052
|
-
rows: fixtures,
|
|
1053
|
-
statements,
|
|
1054
|
-
sql: () => statements().join("\n\n"),
|
|
1055
|
-
async insert(sql) {
|
|
1056
|
-
for (const text of statements()) await sql.queryRaw(text);
|
|
1057
|
-
}
|
|
1058
|
-
};
|
|
1059
|
-
}
|
|
1060
|
-
//#endregion
|
|
1061
1192
|
//#region src/testing/kits/executor.ts
|
|
1062
1193
|
const recorder = (ops) => ({
|
|
1063
1194
|
name: "recorder",
|
|
@@ -3955,4 +4086,4 @@ const actCases = {
|
|
|
3955
4086
|
]
|
|
3956
4087
|
};
|
|
3957
4088
|
//#endregion
|
|
3958
|
-
export { ConformanceError, LOCAL_JWT_SECRET, PROBE_INITIAL, actCases, asUser, createTestSigner, defineSeed, expectDbBudget, expectInstant, expectTenantIsolation, isSeed, liteStack, localAuth, localSigningKey, signLocalJwt, signTestJwt, signTestJwtWithKey, staticAuthorizer, supabaseClaimFixtures, supabaseInvalidClaimFixtures, testAdapter, testAiTaskRunner, testAuthResolver, testAuthorizationHooks, testAuthorizationProvider, testAuthorizer, testBlockTransportMiddleware, testBuilderStarter, testCacheAdapter, testChatState, testControllerBinding, testCredentialProvider, testDeliveryTransport, testDocumentFormat, testEmbedder, testEveDocumentBackend, testEventSink, testExecutor, testGenerator, testGraphCompiler, testIncomingDestination, testNotificationChannel, testPaymentProvider, testPlugin, testQueueBackend, testStreamStore, testSupportSessionStore, testTaxProvider, testWebhookSecretStore, testWebhookSigner, testWebhookTransport };
|
|
4089
|
+
export { ConformanceError, LOCAL_JWT_SECRET, PROBE_INITIAL, actCases, asUser, createTestSigner, defineSeed, expectDbBudget, expectInstant, expectTenantIsolation, isSeed, liteStack, localAuth, localSigningKey, scopedSeed, signLocalJwt, signTestJwt, signTestJwtWithKey, staticAuthorizer, supabaseClaimFixtures, supabaseInvalidClaimFixtures, testAdapter, testAiTaskRunner, testAuthResolver, testAuthorizationHooks, testAuthorizationProvider, testAuthorizer, testBlockTransportMiddleware, testBuilderStarter, testCacheAdapter, testChatState, testControllerBinding, testCredentialProvider, testDeliveryTransport, testDocumentFormat, testEmbedder, testEveDocumentBackend, testEventSink, testExecutor, testGenerator, testGraphCompiler, testIncomingDestination, testNotificationChannel, testPaymentProvider, testPlugin, testQueueBackend, testStreamStore, testSupportSessionStore, testTaxProvider, testWebhookSecretStore, testWebhookSigner, testWebhookTransport, withRollback };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as AuthorizationFunctions } from "./authorization-
|
|
1
|
+
import { D as ValidationIssue, b as DbError, t as AsyncResult } from "./result-BREt7qOh.js";
|
|
2
|
+
import { B as TableKey, N as Row, a as AnyModels, i as AnyFunctions, r as AccessTopicPolicy } from "./types-BrpW5ixT.js";
|
|
3
|
+
import { t as AuthorizationFunctions } from "./authorization-ClWBcXJi.js";
|
|
4
4
|
import { t as RealtimeStatus } from "./realtime-status-DcsO00Gw.js";
|
|
5
|
-
import {
|
|
6
|
-
import { t as BetterSupabase } from "./define-
|
|
7
|
-
import { g as SubscriberPolicy, h as SubscriberEvent, i as AuthorizationHooks, m as Subscriber } from "./authorization-hooks-
|
|
5
|
+
import { D as TemplateParams, O as TemplateValues } from "./bucket-BbePDVwc.js";
|
|
6
|
+
import { t as BetterSupabase } from "./define-DYZnvAbs.js";
|
|
7
|
+
import { g as SubscriberPolicy, h as SubscriberEvent, i as AuthorizationHooks, m as Subscriber } from "./authorization-hooks-WDQMKIsc.js";
|
|
8
8
|
import { RealtimeChannel, SupabaseClient } from "@supabase/supabase-js";
|
|
9
9
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
10
10
|
//#region src/realtime/fan-out.d.ts
|
|
@@ -234,6 +234,13 @@ interface TriggerOptions<M extends AnyModels, T extends keyof M, P extends strin
|
|
|
234
234
|
}>>;
|
|
235
235
|
/** More topics the row change goes to, each with its own values. */
|
|
236
236
|
readonly topics?: readonly TriggerTopic<TriggerValue<M, T>>[];
|
|
237
|
+
/**
|
|
238
|
+
* Send an UPDATE only when one of these columns changed. Inserts and
|
|
239
|
+
* deletes always send.
|
|
240
|
+
*/
|
|
241
|
+
readonly when?: {
|
|
242
|
+
readonly changed: readonly Extract<keyof Row<M, T>, string>[];
|
|
243
|
+
};
|
|
237
244
|
}
|
|
238
245
|
interface TopicTriggerLookup {
|
|
239
246
|
readonly from: string;
|
|
@@ -259,6 +266,13 @@ interface TopicTriggerOptions<P extends string> extends TriggerCommonOptions {
|
|
|
259
266
|
}>>;
|
|
260
267
|
/** More topics the row change goes to, each with its own values. */
|
|
261
268
|
readonly topics?: readonly TriggerTopic<TopicTriggerValue>[];
|
|
269
|
+
/**
|
|
270
|
+
* Send an UPDATE only when one of these columns (database names)
|
|
271
|
+
* changed. Inserts and deletes always send.
|
|
272
|
+
*/
|
|
273
|
+
readonly when?: {
|
|
274
|
+
readonly changed: readonly string[];
|
|
275
|
+
};
|
|
262
276
|
}
|
|
263
277
|
/** A row change sent with `payload: "row"`. */
|
|
264
278
|
interface RowChange<R> {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as dbError } from "./errors-
|
|
2
|
-
import { a as ok, r as err, t as AsyncResult } from "./result-
|
|
1
|
+
import { n as dbError } from "./errors-BV1SKTVs.js";
|
|
2
|
+
import { a as ok, r as err, t as AsyncResult } from "./result-DIeYscA3.js";
|
|
3
3
|
import { a as tenantClaimPaths } from "./claims-PqzCxaTD.js";
|
|
4
|
-
import { a as sqlString, i as sqlIdent, n as parseTemplate, r as slug, t as claimSql } from "./template-
|
|
5
|
-
import { a as isScopeName, i as fillTemplate, o as resolveProviderSql, r as accessCheck } from "./access-sql-
|
|
4
|
+
import { a as sqlString, i as sqlIdent, n as parseTemplate, r as slug, t as claimSql } from "./template-Dw3dTmKe.js";
|
|
5
|
+
import { a as isScopeName, i as fillTemplate, o as resolveProviderSql, r as accessCheck } from "./access-sql-CTJPHjCL.js";
|
|
6
6
|
import { t as refreshRealtimeAuth } from "./auth-CdBKt0CS.js";
|
|
7
7
|
import { t as allowedSubscribers } from "./subscribers-Cq--DL1E.js";
|
|
8
8
|
import { t as joinTopic } from "./channels-C-GCoNLd.js";
|
|
@@ -86,13 +86,55 @@ function rawLookupTarget(value) {
|
|
|
86
86
|
select: sqlIdent(value.select)
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
|
-
/**
|
|
90
|
-
function
|
|
89
|
+
/**
|
|
90
|
+
* The lookups of one generated function. Each parent row is read once per
|
|
91
|
+
* changed row, with every column the topics, values and payload need from
|
|
92
|
+
* it, and a row comes before the rows that join through it.
|
|
93
|
+
*/
|
|
94
|
+
var TriggerLookups = class {
|
|
95
|
+
#byRow = /* @__PURE__ */ new Map();
|
|
96
|
+
add(target) {
|
|
97
|
+
const row = [
|
|
98
|
+
target.relation,
|
|
99
|
+
target.key,
|
|
100
|
+
target.via
|
|
101
|
+
].join("\0");
|
|
102
|
+
const known = this.#byRow.get(row);
|
|
103
|
+
if (known) {
|
|
104
|
+
if (!known.columns.includes(target.select)) known.columns.push(target.select);
|
|
105
|
+
return `${known.name}.${target.select}`;
|
|
106
|
+
}
|
|
107
|
+
const name = `lk_${String(this.#byRow.size)}`;
|
|
108
|
+
this.#byRow.set(row, {
|
|
109
|
+
name,
|
|
110
|
+
relation: target.relation,
|
|
111
|
+
key: target.key,
|
|
112
|
+
columns: [target.select],
|
|
113
|
+
via: target.via
|
|
114
|
+
});
|
|
115
|
+
return `${name}.${target.select}`;
|
|
116
|
+
}
|
|
117
|
+
get list() {
|
|
118
|
+
return [...this.#byRow.values()];
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
/** A trigger value as SQL on `rec`; each lookup becomes a variable in `lookups`. */
|
|
122
|
+
function triggerValueSql(tables, meta, value, where, lookups) {
|
|
91
123
|
if (typeof value === "string") return `rec.${meta ? columnSql(meta, value, where) : sqlIdent(value)}`;
|
|
92
124
|
const target = tables && meta ? lookupTarget(tables, value, where) : rawLookupTarget(value);
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
125
|
+
const via = triggerValueSql(tables, meta, value.via, where, lookups);
|
|
126
|
+
return lookups.add({
|
|
127
|
+
...target,
|
|
128
|
+
via
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/** The columns of `when.changed` as an `old`/`new` comparison. */
|
|
132
|
+
function changedSql(meta, changed, where) {
|
|
133
|
+
if (changed.length === 0) throw new TypeError(`${where}: when.changed lists no columns`);
|
|
134
|
+
return changed.map((column) => {
|
|
135
|
+
const db = meta ? columnSql(meta, column, "when.changed") : sqlIdent(column);
|
|
136
|
+
return `old.${db} is distinct from new.${db}`;
|
|
137
|
+
}).join(" or ");
|
|
96
138
|
}
|
|
97
139
|
/** The event name: one for every operation, one per operation, or the operation. */
|
|
98
140
|
function eventSql(event) {
|
|
@@ -103,6 +145,9 @@ function eventSql(event) {
|
|
|
103
145
|
}
|
|
104
146
|
//#endregion
|
|
105
147
|
//#region src/realtime/topic-trigger.ts
|
|
148
|
+
/** The start of the warning a delete raises when a lookup finds no row. */
|
|
149
|
+
const LOOKUP_WARNING = "better-supabase: realtime lookup found no row";
|
|
150
|
+
const LOOKUP_HINT = "The parent row was deleted in the same statement, such as a cascade, so the topic that reads it is skipped. Keep the topic value on the row itself, or add a topic trigger on the parent.";
|
|
106
151
|
/** Marks a generated function that sends whole rows on purpose (doctor reads it). */
|
|
107
152
|
const ROW_PAYLOAD_MARKER = "better-supabase: payload row";
|
|
108
153
|
/** The primary key as `jsonb`, read from the catalog when the table's key isn't known. */
|
|
@@ -134,7 +179,16 @@ function payloadSql(payload) {
|
|
|
134
179
|
*/
|
|
135
180
|
function triggerFunctionSql(input) {
|
|
136
181
|
const fn = `${sqlIdent(input.functionSchema)}.${sqlIdent(input.functionName)}`;
|
|
137
|
-
const payload = payloadSql(input.payload);
|
|
182
|
+
const payload = input.payload.kind === "custom" ? "body" : payloadSql(input.payload);
|
|
183
|
+
const declarations = input.lookups.map((lookup) => ` ${lookup.name} record;`);
|
|
184
|
+
const reads = input.lookups.flatMap((lookup) => [
|
|
185
|
+
` select ${lookup.columns.map((column) => `j.${column}`).join(", ")} into ${lookup.name} from ${lookup.relation} j where j.${lookup.key} = ${lookup.via} limit 1;`,
|
|
186
|
+
` if not found and tg_op = 'DELETE' and ${lookup.via} is not null then`,
|
|
187
|
+
` raise warning '${LOOKUP_WARNING} for a delete on %.%: no % row where % = %', tg_table_schema, tg_table_name, ${sqlString(lookup.relation)}, ${sqlString(lookup.key)}, ${lookup.via}`,
|
|
188
|
+
` using hint = ${sqlString(LOOKUP_HINT)};`,
|
|
189
|
+
" end if;"
|
|
190
|
+
]);
|
|
191
|
+
const early = input.changed && !input.changed.when ? [` if tg_op = 'UPDATE' and not (${input.changed.sql}) then return null; end if;`] : [];
|
|
138
192
|
const sends = input.topics.flatMap((topic) => {
|
|
139
193
|
const entries = Object.entries(topic.values);
|
|
140
194
|
const vals = entries.length === 0 ? "'{}'::jsonb" : `jsonb_build_object(${entries.map(([param, value]) => `${sqlString(param)}, (${value})::text`).join(", ")})`;
|
|
@@ -164,12 +218,17 @@ function triggerFunctionSql(input) {
|
|
|
164
218
|
" rec record;",
|
|
165
219
|
" vals jsonb;",
|
|
166
220
|
" bad record;",
|
|
221
|
+
...input.payload.kind === "custom" ? [" body jsonb;"] : [],
|
|
222
|
+
...declarations,
|
|
167
223
|
"begin",
|
|
168
224
|
" if tg_when <> 'AFTER' then",
|
|
169
225
|
" raise exception '% runs after the write; as a % trigger it would cancel the write', tg_name, lower(tg_when)",
|
|
170
226
|
" using errcode = '39P01';",
|
|
171
227
|
" end if;",
|
|
228
|
+
...early,
|
|
172
229
|
" if tg_op = 'DELETE' then rec := old; else rec := new; end if;",
|
|
230
|
+
...reads,
|
|
231
|
+
...input.payload.kind === "custom" ? [` body := ${input.payload.sql};`] : [],
|
|
173
232
|
...sends,
|
|
174
233
|
" return null;",
|
|
175
234
|
"end;",
|
|
@@ -179,7 +238,7 @@ function triggerFunctionSql(input) {
|
|
|
179
238
|
"",
|
|
180
239
|
`drop trigger if exists ${sqlIdent(input.triggerName)} on ${input.target};`,
|
|
181
240
|
`create trigger ${sqlIdent(input.triggerName)} after ${input.events} on ${input.target}`,
|
|
182
|
-
` for each row execute function ${fn}();`,
|
|
241
|
+
` for each row${input.changed?.when ? ` when (${input.changed.sql})` : ""} execute function ${fn}();`,
|
|
183
242
|
""
|
|
184
243
|
].join("\n");
|
|
185
244
|
}
|
|
@@ -294,17 +353,23 @@ function defineTopic(template, options = {}) {
|
|
|
294
353
|
const triggerName = `bs_broadcast_${name}`;
|
|
295
354
|
const extra = trigger.topics ?? [];
|
|
296
355
|
const { payload } = trigger;
|
|
297
|
-
const
|
|
356
|
+
const operations = trigger.events ?? [
|
|
298
357
|
"insert",
|
|
299
358
|
"update",
|
|
300
359
|
"delete"
|
|
301
|
-
]
|
|
360
|
+
];
|
|
361
|
+
const events = operations.join(" or ");
|
|
362
|
+
if (trigger.when && !operations.includes("update")) throw new TypeError(`${where}: when.changed filters updates, but events has no "update"`);
|
|
363
|
+
const changed = trigger.when ? {
|
|
364
|
+
sql: changedSql(meta, trigger.when.changed, where),
|
|
365
|
+
when: operations.length === 1
|
|
366
|
+
} : void 0;
|
|
302
367
|
const checkKeys = (params, given, topic) => {
|
|
303
368
|
for (const key of Object.keys(given ?? {})) if (!params.includes(key)) throw new TypeError(`${where}: "${key}" is not a placeholder of ${topic}`);
|
|
304
369
|
};
|
|
305
370
|
checkKeys(parsed.params, trigger.values, template);
|
|
306
371
|
const columns = columnsOnly(trigger.values);
|
|
307
|
-
if (!meta && columns !== void 0 && extra.length === 0 && typeof trigger.event !== "object" && (payload === void 0 || typeof payload === "string")) {
|
|
372
|
+
if (!meta && columns !== void 0 && extra.length === 0 && typeof trigger.event !== "object" && (payload === void 0 || typeof payload === "string") && (changed === void 0 || changed.when)) {
|
|
308
373
|
const sqlTemplate = template.replaceAll(/\{([^}]+)\}/g, (_, param) => {
|
|
309
374
|
const column = columns[param] ?? snakeCase(param);
|
|
310
375
|
if (/[{}=]/.test(column)) throw new TypeError(`${where}: the column for {${param}} can't contain braces or =`);
|
|
@@ -317,11 +382,12 @@ function defineTopic(template, options = {}) {
|
|
|
317
382
|
`-- better-supabase: broadcast ${schema}.${relation} changes to ${template}`,
|
|
318
383
|
`drop trigger if exists ${sqlIdent(triggerName)} on ${target};`,
|
|
319
384
|
`create trigger ${sqlIdent(triggerName)} after ${events} on ${target}`,
|
|
320
|
-
` for each row execute function better_supabase.broadcast_topic(${args.join(", ")});`,
|
|
385
|
+
` for each row${changed ? ` when (${changed.sql})` : ""} execute function better_supabase.broadcast_topic(${args.join(", ")});`,
|
|
321
386
|
""
|
|
322
387
|
].join("\n");
|
|
323
388
|
}
|
|
324
|
-
const
|
|
389
|
+
const lookups = new TriggerLookups();
|
|
390
|
+
const valueSql = (value, label) => triggerValueSql(tables, meta, value, label, lookups);
|
|
325
391
|
const topicValues = (params, given, topic) => Object.fromEntries(params.map((param) => {
|
|
326
392
|
const value = given?.[param] ?? (meta ? void 0 : snakeCase(param));
|
|
327
393
|
if (value === void 0) throw new TypeError(`defineTopic: no column for {${param}} of ${topic} on "${table}"`);
|
|
@@ -355,7 +421,9 @@ function defineTopic(template, options = {}) {
|
|
|
355
421
|
events,
|
|
356
422
|
event: eventSql(trigger.event),
|
|
357
423
|
topics,
|
|
358
|
-
payload: payloadSql
|
|
424
|
+
payload: payloadSql,
|
|
425
|
+
lookups: lookups.list,
|
|
426
|
+
...changed ? { changed } : {}
|
|
359
427
|
});
|
|
360
428
|
};
|
|
361
429
|
const api = {
|