better-supabase 0.5.0 → 0.6.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 +299 -41
- package/dist/access-sql-B0dF-SoF.js +181 -0
- package/dist/actor-CQTlc1Hh.d.ts +43 -0
- package/dist/adapter-Bc1o3zyy.js +1106 -0
- package/dist/agents-CVHGd7It.d.ts +94 -0
- package/dist/ai-cache-CBWs1W0k.js +80 -0
- package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
- package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
- package/dist/ai-chat-B24UI962.js +743 -0
- package/dist/ai-files-CSPNswUY.js +319 -0
- package/dist/ai-sdk/agents/index.d.ts +74 -0
- package/dist/ai-sdk/agents/index.js +159 -0
- package/dist/ai-sdk/batches/index.d.ts +74 -0
- package/dist/ai-sdk/batches/index.js +180 -0
- package/dist/ai-sdk/cache/index.d.ts +38 -0
- package/dist/ai-sdk/cache/index.js +127 -0
- package/dist/ai-sdk/chat/index.d.ts +2 -0
- package/dist/ai-sdk/chat/index.js +246 -0
- package/dist/ai-sdk/embeddings/index.d.ts +3 -0
- package/dist/ai-sdk/embeddings/index.js +2 -0
- package/dist/ai-sdk/files/index.d.ts +61 -0
- package/dist/ai-sdk/files/index.js +111 -0
- package/dist/ai-sdk/index.d.ts +145 -0
- package/dist/ai-sdk/index.js +174 -0
- package/dist/ai-sdk/mcp/index.d.ts +102 -0
- package/dist/ai-sdk/mcp/index.js +362 -0
- package/dist/ai-sdk/memory/index.d.ts +67 -0
- package/dist/ai-sdk/memory/index.js +175 -0
- package/dist/ai-sdk/react/index.d.ts +2 -0
- package/dist/ai-sdk/react/index.js +3 -0
- package/dist/ai-sdk/react/server.d.ts +6 -0
- package/dist/ai-sdk/react/server.js +7 -0
- package/dist/ai-sdk/workflow/index.d.ts +249 -0
- package/dist/ai-sdk/workflow/index.js +575 -0
- package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
- package/dist/ai-sdk/workflow/react/index.js +66 -0
- package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
- package/dist/ai-sdk/workflow/react/server.js +12 -0
- package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
- package/dist/announcements-CiyOs-xP.js +107 -0
- package/dist/announcements-ZRGnScWI.d.ts +72 -0
- package/dist/api-keys-rCGtKaZA.d.ts +156 -0
- package/dist/assistant-DwdpDH1q.d.ts +147 -0
- package/dist/astro/index.d.ts +86 -0
- package/dist/astro/index.js +93 -0
- package/dist/attributes-5dYul0u0.js +13 -0
- package/dist/auth-link-BjFPqwLz.d.ts +97 -0
- package/dist/auth-link-DrDX9KOT.js +114 -0
- package/dist/authorization-BFCqamMs.d.ts +172 -0
- package/dist/before-route-CnR0C0Jr.js +30 -0
- package/dist/bind-Bu_ZNa3W.d.ts +62 -0
- package/dist/bind-l4kAvYSv.js +97 -0
- package/dist/block-events-CrT8r7Fe.js +76 -0
- package/dist/block-fields-GFkxl4dP.js +49 -0
- package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
- package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
- package/dist/block-helpers-DWHxHsEQ.js +190 -0
- package/dist/block-hooks-BmjMyXTa.js +114 -0
- package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
- package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
- package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
- package/dist/blocks/agents/index.d.ts +3 -0
- package/dist/blocks/agents/index.js +123 -0
- package/dist/blocks/ai-cache/index.d.ts +3 -0
- package/dist/blocks/ai-cache/index.js +3 -0
- package/dist/blocks/ai-chat/index.d.ts +31 -0
- package/dist/blocks/ai-chat/index.js +5 -0
- package/dist/blocks/ai-chat/react/index.d.ts +77 -0
- package/dist/blocks/ai-chat/react/index.js +387 -0
- package/dist/blocks/ai-chat/react/server.d.ts +16 -0
- package/dist/blocks/ai-chat/react/server.js +14 -0
- package/dist/blocks/ai-files/index.d.ts +14 -0
- package/dist/blocks/ai-files/index.js +3 -0
- package/dist/blocks/ai-providers/index.d.ts +7 -0
- package/dist/blocks/ai-providers/index.js +211 -0
- package/dist/blocks/ai-tasks/index.d.ts +3 -0
- package/dist/blocks/ai-tasks/index.js +203 -0
- package/dist/blocks/announcements/index.d.ts +3 -0
- package/dist/blocks/announcements/index.js +3 -0
- package/dist/blocks/announcements/react/index.d.ts +31 -0
- package/dist/blocks/announcements/react/index.js +86 -0
- package/dist/blocks/announcements/react/server.d.ts +6 -0
- package/dist/blocks/announcements/react/server.js +7 -0
- package/dist/blocks/api-keys/index.d.ts +35 -0
- package/dist/blocks/api-keys/index.js +334 -0
- package/dist/blocks/attachments/index.d.ts +210 -0
- package/dist/blocks/attachments/index.js +222 -0
- package/dist/blocks/audit/index.d.ts +366 -0
- package/dist/blocks/audit/index.js +714 -0
- package/dist/blocks/billing/index.d.ts +265 -0
- package/dist/blocks/billing/index.js +400 -0
- package/dist/blocks/comments/index.d.ts +200 -0
- package/dist/blocks/comments/index.js +207 -0
- package/dist/blocks/connectors/index.d.ts +3 -0
- package/dist/blocks/connectors/index.js +164 -0
- package/dist/blocks/data-lifecycle/index.d.ts +251 -0
- package/dist/blocks/data-lifecycle/index.js +353 -0
- package/dist/blocks/entitlements/index.d.ts +14 -0
- package/dist/blocks/entitlements/index.js +25 -0
- package/dist/blocks/flags/index.d.ts +226 -0
- package/dist/blocks/flags/index.js +282 -0
- package/dist/blocks/inbox/index.d.ts +6 -0
- package/dist/blocks/inbox/index.js +499 -0
- package/dist/blocks/inbox/react/index.d.ts +2 -0
- package/dist/blocks/inbox/react/index.js +225 -0
- package/dist/blocks/inbox/react/server.d.ts +10 -0
- package/dist/blocks/inbox/react/server.js +12 -0
- package/dist/blocks/index.d.ts +65 -0
- package/dist/blocks/index.js +77 -0
- package/dist/blocks/jobs/index.d.ts +297 -0
- package/dist/blocks/jobs/index.js +1051 -0
- package/dist/blocks/knowledge/index.d.ts +3 -0
- package/dist/blocks/knowledge/index.js +3 -0
- package/dist/blocks/memory/index.d.ts +8 -0
- package/dist/blocks/memory/index.js +289 -0
- package/dist/blocks/notifications/index.d.ts +297 -0
- package/dist/blocks/notifications/index.js +425 -0
- package/dist/blocks/notifications/react/index.d.ts +44 -0
- package/dist/blocks/notifications/react/index.js +67 -0
- package/dist/blocks/notifications/react/server.d.ts +6 -0
- package/dist/blocks/notifications/react/server.js +7 -0
- package/dist/blocks/onboarding/index.d.ts +3 -0
- package/dist/blocks/onboarding/index.js +64 -0
- package/dist/blocks/onboarding/react/index.d.ts +28 -0
- package/dist/blocks/onboarding/react/index.js +78 -0
- package/dist/blocks/onboarding/react/server.d.ts +7 -0
- package/dist/blocks/onboarding/react/server.js +7 -0
- package/dist/blocks/organizations/index.d.ts +241 -0
- package/dist/blocks/organizations/index.js +400 -0
- package/dist/blocks/outbox/index.d.ts +3 -0
- package/dist/blocks/outbox/index.js +266 -0
- package/dist/blocks/profiles/index.d.ts +40 -0
- package/dist/blocks/profiles/index.js +28 -0
- package/dist/blocks/push/index.d.ts +185 -0
- package/dist/blocks/push/index.js +258 -0
- package/dist/blocks/settings/index.d.ts +89 -0
- package/dist/blocks/settings/index.js +104 -0
- package/dist/blocks/sso/index.d.ts +198 -0
- package/dist/blocks/sso/index.js +1297 -0
- package/dist/blocks/usage/index.d.ts +4 -0
- package/dist/blocks/usage/index.js +233 -0
- package/dist/blocks/waitlist/index.d.ts +117 -0
- package/dist/blocks/waitlist/index.js +132 -0
- package/dist/blocks/webhooks/index.d.ts +304 -0
- package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
- package/dist/blocks/workflow-builder/index.d.ts +21 -0
- package/dist/blocks/workflow-builder/index.js +5 -0
- package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
- package/dist/blocks/workflow-builder/react/index.js +119 -0
- package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
- package/dist/blocks/workflow-builder/react/server.js +11 -0
- package/dist/blocks/workflows/index.d.ts +3 -0
- package/dist/blocks/workflows/index.js +3 -0
- package/dist/blocks/workflows/react/index.d.ts +47 -0
- package/dist/blocks/workflows/react/index.js +137 -0
- package/dist/blocks/workflows/react/server.d.ts +8 -0
- package/dist/blocks/workflows/react/server.js +11 -0
- package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
- package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
- package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
- package/dist/channels-CkgQ_X60.js +114 -0
- package/dist/chat-sdk/index.d.ts +303 -0
- package/dist/chat-sdk/index.js +733 -0
- package/dist/chat-sdk/react/index.d.ts +2 -0
- package/dist/chat-sdk/react/index.js +3 -0
- package/dist/chat-sdk/react/server.d.ts +3 -0
- package/dist/chat-sdk/react/server.js +2 -0
- package/dist/claims-DDBQT6BK.js +61 -0
- package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
- package/dist/cli/bin.js +1 -1
- package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
- package/dist/cli/config-B9HkL8nF.js +2 -0
- package/dist/cli/config-DU7EJImt.js +49 -0
- package/dist/cli/config-NiPxAmUF.js +1077 -0
- package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
- package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
- package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
- package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
- package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
- package/dist/cli/gen-BGLb_zou.js +3100 -0
- package/dist/cli/gen-DAH8FM2W.js +2 -0
- package/dist/cli/index.d.ts +44 -5
- package/dist/cli/index.js +7 -7
- package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
- package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
- package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
- package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
- package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
- package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
- package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
- package/dist/cli/read-sets-CETOSFx4.js +223 -0
- package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
- package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
- package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
- package/dist/cli/sql-D0GUtUPp.js +536 -0
- package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
- package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
- package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.js +11 -71
- package/dist/client/native/index.d.ts +228 -0
- package/dist/client/native/index.js +361 -0
- package/dist/client-CI0Z2zWX.js +277 -0
- package/dist/cloud-event-BnmD5fb9.js +46 -0
- package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
- package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
- package/dist/compose-BIBNgAnq.js +53 -0
- package/dist/composite-Bt1YK3Ke.d.ts +146 -0
- package/dist/composite-DhE66P5u.js +130 -0
- package/dist/config/index.d.ts +6 -4
- package/dist/config/index.js +5 -5
- package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
- package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
- package/dist/connector-Dv8kK0MO.d.ts +107 -0
- package/dist/connectors-hkLCwyEz.d.ts +120 -0
- package/dist/context-BCrWe7ow.d.ts +237 -0
- package/dist/credentials/index.d.ts +31 -0
- package/dist/credentials/index.js +168 -0
- package/dist/cron-DVPUg5k3.js +145 -0
- package/dist/csv-CPAzEmB6.js +25 -0
- package/dist/db-exception-CnWcYPxL.js +15 -0
- package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
- package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
- package/dist/edge/index.d.ts +69 -11
- package/dist/edge/index.js +191 -75
- package/dist/elysia/index.d.ts +59 -0
- package/dist/elysia/index.js +62 -0
- package/dist/embeddings-4ZvFzjsU.js +127 -0
- package/dist/embeddings-C9KGQnXt.d.ts +68 -0
- package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
- package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
- package/dist/entitlements-DRl6ZJUm.js +24 -0
- package/dist/envelope-DqnYGRw7.js +47 -0
- package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
- package/dist/errors-DLjJHPLK.js +44 -0
- package/dist/escape-like-DHfx6jRr.js +7 -0
- package/dist/escape-like-ImTK0ps_.d.ts +15 -0
- package/dist/eve/index.d.ts +220 -0
- package/dist/eve/index.js +504 -0
- package/dist/eve-gT2Fpjut.d.ts +151 -0
- package/dist/events/index.d.ts +4 -3
- package/dist/events/index.js +9 -50
- package/dist/events-DWDhx77e.d.ts +549 -0
- package/dist/executor-Bq28caBo.js +718 -0
- package/dist/executor-C-R4pucm.js +83 -0
- package/dist/executor-CaWigTyR.d.ts +148 -0
- package/dist/executor-D14tGopJ.d.ts +36 -0
- package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
- package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
- package/dist/executor-DvsBbNBS.d.ts +261 -0
- package/dist/expo/index.d.ts +79 -0
- package/dist/expo/index.js +129 -0
- package/dist/expo-sqlite/index.d.ts +58 -0
- package/dist/expo-sqlite/index.js +104 -0
- package/dist/field-errors-BFOa7WhB.d.ts +99 -0
- package/dist/field-errors-VF1yb8yI.js +13 -0
- package/dist/framework-CONDyPYx.js +51 -0
- package/dist/framework-DuVb4Xa8.d.ts +25 -0
- package/dist/gateway-C1ssRHnf.d.ts +130 -0
- package/dist/graph-BGyLLFLX.js +265 -0
- package/dist/h3/index.d.ts +59 -0
- package/dist/h3/index.js +55 -0
- package/dist/h3/v1/index.d.ts +63 -0
- package/dist/h3/v1/index.js +49 -0
- package/dist/history-BZih6SFP.js +64 -0
- package/dist/hono/index.d.ts +56 -7
- package/dist/hono/index.js +97 -45
- package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
- package/dist/http-Cv4T29xh.js +40 -0
- package/dist/http-DdYadv-o.js +126 -0
- package/dist/image-url-pIVlO6R1.js +41 -0
- package/dist/impersonation-DcqaTBHx.js +148 -0
- package/dist/inbox-i7E1ppo6.d.ts +384 -0
- package/dist/index-ACiNPN4Z.d.ts +74 -0
- package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
- package/dist/index-BkWT_uBO.d.ts +51 -0
- package/dist/index-BpFYMsi0.d.ts +53 -0
- package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-ClmjK_o-.d.ts +55 -0
- package/dist/index-CtuakVRc.d.ts +267 -0
- package/dist/index-D48jVS-N.d.ts +246 -0
- package/dist/index-DDrYaUcq.d.ts +138 -0
- package/dist/index-DQh4VCc9.d.ts +98 -0
- package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
- package/dist/index.d.ts +65 -18
- package/dist/index.js +42 -14
- package/dist/invalidate-BBqhpxyB.d.ts +19 -0
- package/dist/json-CEnpTHlZ.js +16 -0
- package/dist/json-schema-CvER4kgT.js +502 -0
- package/dist/keys-4MnkWTTh.js +35 -0
- package/dist/kit-B5tid-q5.d.ts +60 -0
- package/dist/kit-Fm-Fv7q5.js +78 -0
- package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
- package/dist/knowledge-CDmiMLew.js +255 -0
- package/dist/lint/index.d.ts +1 -1
- package/dist/lint/index.js +37 -0
- package/dist/list/index.d.ts +3 -2
- package/dist/list/index.js +1 -444
- package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
- package/dist/list-query-gl808ac1.js +459 -0
- package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
- package/dist/logger-DWVYUmwi.d.ts +18 -0
- package/dist/mcp/index.d.ts +38 -11
- package/dist/mcp/index.js +82 -46
- package/dist/mcp/sdk/index.d.ts +105 -0
- package/dist/mcp/sdk/index.js +126 -0
- package/dist/message-CaKlqdsX.js +219 -0
- package/dist/message-CfDoR0Y6.d.ts +94 -0
- package/dist/messages-B9-5887d.js +715 -0
- package/dist/messages-DYP0sUTe.d.ts +59 -0
- package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
- package/dist/modules-DpPwzC7E.d.ts +192 -0
- package/dist/modules-dxrVK3ID.js +228 -0
- package/dist/nestjs/index.d.ts +68 -0
- package/dist/nestjs/index.js +164 -0
- package/dist/next/client/index.d.ts +35 -0
- package/dist/next/client/index.js +36 -0
- package/dist/next/image/index.js +3 -24
- package/dist/next/index.d.ts +150 -51
- package/dist/next/index.js +261 -107
- package/dist/node/index.d.ts +4 -0
- package/dist/node/index.js +210 -0
- package/dist/node-headers-AO06VhqH.d.ts +24 -0
- package/dist/node-headers-C71zNQHe.js +55 -0
- package/dist/nuxt/index.d.ts +60 -0
- package/dist/nuxt/index.js +64 -0
- package/dist/onboarding-BZGHYJks.d.ts +62 -0
- package/dist/openapi/index.d.ts +1 -1
- package/dist/openapi/index.js +3 -3
- package/dist/orpc/index.d.ts +70 -11
- package/dist/orpc/index.js +73 -24
- package/dist/otel/index.d.ts +7 -7
- package/dist/otel/index.js +87 -57
- package/dist/outbox-Cq7pPYvl.d.ts +161 -0
- package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
- package/dist/plugin-tfXW1-qO.js +45 -0
- package/dist/plugins/actor/index.d.ts +2 -2
- package/dist/plugins/actor/index.js +3 -3
- package/dist/plugins/rules/index.d.ts +11 -4
- package/dist/plugins/rules/index.js +40 -13
- package/dist/plugins/soft-delete/index.d.ts +5 -4
- package/dist/plugins/soft-delete/index.js +10 -5
- package/dist/plugins/tenant/index.d.ts +2 -2
- package/dist/plugins/tenant/index.js +18 -11
- package/dist/plugins/timestamps/index.d.ts +5 -3
- package/dist/plugins/timestamps/index.js +6 -4
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +10 -6
- package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
- package/dist/postgres/index.d.ts +4 -4
- package/dist/postgres/index.js +1 -2
- package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
- package/dist/powersync/index.d.ts +43 -0
- package/dist/powersync/index.js +199 -0
- package/dist/powersync/react/index.d.ts +87 -0
- package/dist/powersync/react/index.js +108 -0
- package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
- package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
- package/dist/provider-BH5UWZJ6.d.ts +113 -0
- package/dist/provider-Di3sRutW.js +57 -0
- package/dist/query/index.d.ts +4 -2
- package/dist/query/index.js +4 -3
- package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
- package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
- package/dist/react/index.d.ts +11 -7
- package/dist/react/index.js +7 -3
- package/dist/react/native/index.d.ts +116 -0
- package/dist/react/native/index.js +130 -0
- package/dist/react/server.d.ts +28 -10
- package/dist/react/server.js +22 -5
- package/dist/react/session.d.ts +2 -2
- package/dist/react-4ZqkP8da.js +79 -0
- package/dist/react-F80mF4-t.js +409 -0
- package/dist/react-router/index.d.ts +83 -0
- package/dist/react-router/index.js +89 -0
- package/dist/react-topic-seAWjL3_.js +38 -0
- package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
- package/dist/realtime/index.d.ts +4 -5
- package/dist/realtime/index.js +144 -82
- package/dist/refusal-CeJWxmkH.js +61 -0
- package/dist/refusal-D1rgbzNq.d.ts +15 -0
- package/dist/replicas-CwrYp5Zj.js +94 -0
- package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
- package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
- package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
- package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
- package/dist/respond-BUgsXNgk.js +91 -0
- package/dist/respond-DoBijysA.d.ts +93 -0
- package/dist/result-D7y2fT87.d.ts +282 -0
- package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
- package/dist/run-state-CPo-1X2B.d.ts +12 -0
- package/dist/run-state-CgBKzYMW.js +13 -0
- package/dist/search-CUWCRYKL.js +9 -0
- package/dist/server/index.d.ts +143 -21
- package/dist/server/index.js +46 -14
- package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
- package/dist/session-ChiXDZdZ.d.ts +72 -0
- package/dist/shared-CBxosKK3.js +75 -0
- package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
- package/dist/shared-DDSjEGDR.d.ts +11 -0
- package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
- package/dist/sign-in-Cb1mwv6X.js +86 -0
- package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
- package/dist/simplify-DDO0j0LI.js +83 -0
- package/dist/solid/index.d.ts +131 -0
- package/dist/solid/index.js +344 -0
- package/dist/solid-start/index.d.ts +75 -0
- package/dist/solid-start/index.js +58 -0
- package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
- package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
- package/dist/sql/index.d.ts +330 -194
- package/dist/sql/index.js +34901 -6489
- package/dist/ssr/index.d.ts +6 -5
- package/dist/ssr/index.js +3 -3
- package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
- package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
- package/dist/stats-D_AD9GGu.js +1123 -0
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +1027 -368
- package/dist/store-BdH5ruDx.js +66 -0
- package/dist/store-CGjgWu5n.d.ts +68 -0
- package/dist/streams/index.d.ts +76 -0
- package/dist/streams/index.js +77 -0
- package/dist/streams/redis/index.d.ts +52 -0
- package/dist/streams/redis/index.js +185 -0
- package/dist/stripe-BMj5LtsT.js +38 -0
- package/dist/stripe-D04h-QBT.d.ts +136 -0
- package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
- package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
- package/dist/svelte/index.d.ts +114 -0
- package/dist/svelte/index.js +344 -0
- package/dist/sveltekit/index.d.ts +116 -0
- package/dist/sveltekit/index.js +106 -0
- package/dist/tags-B99_U9Pp.js +39 -0
- package/dist/tags-Cx-LnIQP.d.ts +30 -0
- package/dist/tanstack-db/index.d.ts +71 -0
- package/dist/tanstack-db/index.js +72 -0
- package/dist/tanstack-start/index.d.ts +75 -0
- package/dist/tanstack-start/index.js +95 -0
- package/dist/tee-CoEppCER.js +101 -0
- package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
- package/dist/template-CwO38Do8.d.ts +6 -0
- package/dist/temporal-BJGitm-h.js +79 -0
- package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
- package/dist/tenant-I1TEZ_BX.js +27 -0
- package/dist/tenant-icPeuUBN.d.ts +17 -0
- package/dist/testing/index.d.ts +343 -37
- package/dist/testing/index.js +1186 -79
- package/dist/timing-CyTQPubY.js +92 -0
- package/dist/ttl-Hr34gRu8.js +12 -0
- package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
- package/dist/types-BI-0Sl2v.d.ts +359 -0
- package/dist/types-C05bxW-W.d.ts +220 -0
- package/dist/types-DGs5L0VN.d.ts +192 -0
- package/dist/types-TaiEeBGA.d.ts +156 -0
- package/dist/usage-CrvrL2vw.d.ts +177 -0
- package/dist/user-change-XzvgafU4.js +130 -0
- package/dist/vault-CSO7ss5C.d.ts +50 -0
- package/dist/vercel-connect/index.d.ts +47 -0
- package/dist/vercel-connect/index.js +119 -0
- package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
- package/dist/verify-DPuWngD4.d.ts +172 -0
- package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
- package/dist/view-BeFcRV6G.js +99 -0
- package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
- package/dist/vue/index.d.ts +141 -0
- package/dist/vue/index.js +362 -0
- package/dist/watch-DI34G86j.d.ts +60 -0
- package/dist/watch-Xuxrvxq-.js +122 -0
- package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
- package/dist/workflow-builder-DJ1oHn8g.js +398 -0
- package/dist/workflow-sdk/builder/index.d.ts +85 -0
- package/dist/workflow-sdk/builder/index.js +250 -0
- package/dist/workflow-sdk/index.d.ts +14 -0
- package/dist/workflow-sdk/index.js +3 -0
- package/dist/workflow-sdk/world/index.d.ts +107 -0
- package/dist/workflow-sdk/world/index.js +702 -0
- package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
- package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
- package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
- package/dist/workflows-B0j9WKPu.d.ts +185 -0
- package/dist/workflows-wu1WWBn7.js +216 -0
- package/package.json +470 -29
- package/schemas/ai-message-v1.json +258 -0
- package/schemas/config-v1.json +1074 -140
- package/schemas/doctor-report-v1.json +21 -1
- package/schemas/snapshot-v2.json +8 -0
- package/skills/better-supabase/SKILL.md +41 -12
- package/skills/better-supabase/references/frontend.md +96 -0
- package/skills/better-supabase/references/plugins.md +10 -6
- package/skills/better-supabase/references/troubleshooting.md +2 -1
- package/skills/better-supabase-api/SKILL.md +76 -22
- package/skills/better-supabase-api/references/adapters.md +207 -0
- package/skills/better-supabase-api/references/ai.md +125 -0
- package/skills/better-supabase-api/references/expo.md +65 -0
- package/skills/better-supabase-api/references/powersync.md +35 -0
- package/skills/better-supabase-api/references/streams-credentials.md +105 -0
- package/skills/better-supabase-auth/SKILL.md +62 -18
- package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
- package/skills/better-supabase-testing/SKILL.md +3 -1
- package/dist/cli/config-dtoekM0v.js +0 -2
- package/dist/cli/gen-BJc9vdyu.js +0 -2
- package/dist/cli/gen-C2osRcr5.js +0 -2204
- package/dist/cli/read-sets-BfMQcKy8.js +0 -289
- package/dist/cli/sql-DzPbfngx.js +0 -348
- package/dist/entitlements-CTEBm7IB.js +0 -20
- package/dist/events-aIO7vsIk.d.ts +0 -230
- package/dist/executor-BunPOO-k.d.ts +0 -402
- package/dist/executor-XycESQPH.js +0 -94
- package/dist/impersonation-VfaGc4Q_.js +0 -41
- package/dist/index-BGdgBPdf.d.ts +0 -161
- package/dist/index-DOESKG27.d.ts +0 -100
- package/dist/index-DmXSxbLi.d.ts +0 -62
- package/dist/index-Dxn2a5cw.d.ts +0 -50
- package/dist/jobs/index.d.ts +0 -226
- package/dist/jobs/index.js +0 -1007
- package/dist/json-schema-m1fiwKgN.js +0 -208
- package/dist/kit-events-CTFDfSwb.js +0 -60
- package/dist/kit-transport-B82k1djG.d.ts +0 -33
- package/dist/kits-CGLLrNPd.js +0 -157
- package/dist/notifications/index.d.ts +0 -162
- package/dist/notifications/index.js +0 -264
- package/dist/orgs/index.d.ts +0 -132
- package/dist/orgs/index.js +0 -245
- package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
- package/dist/permdock-sql-DgOfeixi.js +0 -51
- package/dist/plugin-DwARMuQp.js +0 -59
- package/dist/server-Csx2sRjg.js +0 -655
- package/dist/stats-Bqob3WqT.js +0 -592
- package/dist/support-DT-OhSxD.d.ts +0 -88
- package/dist/template-mbvlysOo.d.ts +0 -6
- package/dist/temporal-CVlIV2DZ.js +0 -40
- package/dist/user-change-CHFEUro1.js +0 -49
- package/dist/webhooks/index.d.ts +0 -285
- package/skills/better-supabase-auth/references/permdock.md +0 -100
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { n as
|
|
5
|
-
import {
|
|
1
|
+
import { E as ValidationIssue, b as DbError, f as Result, t as AsyncResult } from "./result-D7y2fT87.js";
|
|
2
|
+
import { L as TableKey, M as Row, P as SchemaMeta, a as AnyModels, i as AnyFunctions, r as AccessTopicPolicy } from "./types-6BdhkmZe.js";
|
|
3
|
+
import { it as QuerySpec, t as BetterSupabase } from "./define-CJJkkr1-.js";
|
|
4
|
+
import { n as TemplateValues, t as TemplateParams } from "./template-CwO38Do8.js";
|
|
5
|
+
import { t as AuthorizationFunctions } from "./authorization-BFCqamMs.js";
|
|
6
6
|
import { RealtimeChannel, SupabaseClient } from "@supabase/supabase-js";
|
|
7
7
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
8
8
|
//#region src/realtime/topic.d.ts
|
|
9
9
|
type EventSchemas = Readonly<Record<string, StandardSchemaV1>>;
|
|
10
|
-
|
|
10
|
+
/** `true`, or a schema every tracked presence state is validated against. */
|
|
11
|
+
type PresenceSchema = boolean | StandardSchemaV1;
|
|
12
|
+
interface TopicOptions<E extends EventSchemas, R extends PresenceSchema = PresenceSchema> {
|
|
11
13
|
/** Name used for generated policies and functions. Defaults to the template's literal parts. */
|
|
12
14
|
readonly name?: string;
|
|
13
15
|
/** Payload schemas per event. Incoming and outgoing payloads are validated. */
|
|
@@ -15,8 +17,8 @@ interface TopicOptions<E extends EventSchemas> {
|
|
|
15
17
|
/** Private channels are authorized by `realtime.messages` policies. Defaults to `true`. */
|
|
16
18
|
readonly private?: boolean;
|
|
17
19
|
/**
|
|
18
|
-
* Tenant check for the generated policy. Defaults to `{
|
|
19
|
-
* `tenant_id` / `app_metadata.tenant_id` when the template has `{
|
|
20
|
+
* Tenant check for the generated policy. Defaults to `{organizationId}` against
|
|
21
|
+
* `tenant_id` / `app_metadata.tenant_id` when the template has `{organizationId}`.
|
|
20
22
|
*/
|
|
21
23
|
readonly tenant?: false | {
|
|
22
24
|
readonly param?: string;
|
|
@@ -28,27 +30,25 @@ interface TopicOptions<E extends EventSchemas> {
|
|
|
28
30
|
readonly param?: string;
|
|
29
31
|
};
|
|
30
32
|
/**
|
|
31
|
-
* Authorize with
|
|
32
|
-
* `
|
|
33
|
-
* `
|
|
33
|
+
* Authorize with the SQL modules' access contract instead of the tenant
|
|
34
|
+
* claim: `tenant_ids_with(receive)` on the tenant segment (or
|
|
35
|
+
* `is_platform` for `scope: 'platform'`), or the `sql` templates it is
|
|
36
|
+
* given, and `send` for broadcasting.
|
|
34
37
|
*
|
|
35
|
-
* The
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* `better-supabase doctor` (BS214) refuses them from the catalog file.
|
|
38
|
+
* The checks decide by role and scope only: for a permission with row
|
|
39
|
+
* conditions (e.g. `authorId = principal.id`) every member of the scope
|
|
40
|
+
* could join. `better-supabase doctor` (BS214) refuses keys the
|
|
41
|
+
* authorization provider doesn't mark `sqlComplete: true`.
|
|
40
42
|
*/
|
|
41
|
-
readonly
|
|
42
|
-
/**
|
|
43
|
-
* PermDock's `permissions.catalog.json`. With it, a `permdock` policy
|
|
44
|
-
* naming a permission without `rowConditions: false` (including one the
|
|
45
|
-
* catalog doesn't list) throws.
|
|
46
|
-
*/
|
|
47
|
-
readonly catalog?: PermdockCatalog;
|
|
43
|
+
readonly access?: AccessTopicPolicy;
|
|
48
44
|
/** Let clients broadcast on the topic, not only receive. Defaults to `false`. */
|
|
49
45
|
readonly send?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Presence: authorizes it in the policies and adds `track` and
|
|
48
|
+
* `onPresence` to subscriptions. Pass a schema to validate the states
|
|
49
|
+
* this client tracks and the ones it receives. Defaults to `false`.
|
|
50
|
+
*/
|
|
51
|
+
readonly presence?: R;
|
|
52
52
|
}
|
|
53
53
|
interface TopicMessage {
|
|
54
54
|
readonly event: string;
|
|
@@ -79,12 +79,76 @@ interface Subscription extends Disposable, AsyncDisposable {
|
|
|
79
79
|
readonly ready: Promise<void>;
|
|
80
80
|
unsubscribe(): Promise<void>;
|
|
81
81
|
}
|
|
82
|
+
/** One tracked state on a presence topic. */
|
|
83
|
+
interface PresenceMember<S> {
|
|
84
|
+
/** The connection's presence key; a client tracking twice keeps one key. */
|
|
85
|
+
readonly key: string;
|
|
86
|
+
readonly state: S;
|
|
87
|
+
}
|
|
88
|
+
interface PresenceOptions<S> {
|
|
89
|
+
/**
|
|
90
|
+
* Called with everyone on the topic, this client included, after each
|
|
91
|
+
* presence sync. States that fail the presence schema are left out and
|
|
92
|
+
* passed to `onInvalid` as a `presence` message.
|
|
93
|
+
*/
|
|
94
|
+
readonly onPresence?: (members: readonly PresenceMember<S>[]) => void;
|
|
95
|
+
}
|
|
96
|
+
interface PresenceSubscription<I, O> extends Subscription {
|
|
97
|
+
/**
|
|
98
|
+
* Validates the state, waits for the join and shares it with the topic.
|
|
99
|
+
* One state per client and topic: the last `track` wins, and leaving the
|
|
100
|
+
* topic removes it.
|
|
101
|
+
*/
|
|
102
|
+
track(state: I): AsyncResult<void>;
|
|
103
|
+
/** Removes this client's state from the topic. */
|
|
104
|
+
untrack(): AsyncResult<void>;
|
|
105
|
+
/** Everyone from the last sync, as `onPresence` received them. */
|
|
106
|
+
members(): readonly PresenceMember<O>[];
|
|
107
|
+
}
|
|
108
|
+
type PresenceState = Readonly<Record<string, unknown>>;
|
|
109
|
+
type PresenceInput<R> = R extends StandardSchemaV1 ? StandardSchemaV1.InferInput<R> : PresenceState;
|
|
110
|
+
type PresenceOutput<R> = R extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<R> : PresenceState;
|
|
111
|
+
/** What `subscribe` returns: with `track` and `members` on presence topics. */
|
|
112
|
+
type TopicSubscription<R> = [R] extends [false] ? Subscription : PresenceSubscription<PresenceInput<R>, PresenceOutput<R>>;
|
|
113
|
+
/** `subscribe` options: with `onPresence` on presence topics. */
|
|
114
|
+
type TopicSubscribeOptions<R> = [R] extends [false] ? SubscribeOptions : SubscribeOptions & PresenceOptions<PresenceOutput<R>>;
|
|
82
115
|
type RealtimeClient = Pick<SupabaseClient, "channel" | "getChannels" | "removeChannel" | "realtime">;
|
|
116
|
+
/**
|
|
117
|
+
* A value read from another table: the `select` column of the `from` row
|
|
118
|
+
* whose `key` (its primary key by default) equals `via`, a column of the
|
|
119
|
+
* changed row or another lookup.
|
|
120
|
+
*/
|
|
121
|
+
interface TriggerLookup<M extends AnyModels> {
|
|
122
|
+
readonly from: TableKey<M>;
|
|
123
|
+
readonly via: string | TriggerLookup<M>;
|
|
124
|
+
readonly select: string;
|
|
125
|
+
readonly key?: string;
|
|
126
|
+
}
|
|
127
|
+
/** A trigger value: a column of the changed row, or a lookup through it. */
|
|
128
|
+
type TriggerValue<M extends AnyModels, T extends keyof M> = Extract<keyof Row<M, T>, string> | TriggerLookup<M>;
|
|
129
|
+
type TriggerOperation = "insert" | "update" | "delete";
|
|
83
130
|
interface TriggerOptions<M extends AnyModels, T extends keyof M, P extends string> {
|
|
84
|
-
/**
|
|
85
|
-
|
|
131
|
+
/**
|
|
132
|
+
* What fills each placeholder: a column of the changed row, or a lookup
|
|
133
|
+
* (`{ from, via, select }`) for a value on a parent row. A row whose
|
|
134
|
+
* topic comes out null is not sent.
|
|
135
|
+
*/
|
|
136
|
+
readonly values: { readonly [K in TemplateParams<P>]: TriggerValue<M, T>; };
|
|
86
137
|
/** Defaults to all three. */
|
|
87
|
-
readonly events?: readonly
|
|
138
|
+
readonly events?: readonly TriggerOperation[];
|
|
139
|
+
/**
|
|
140
|
+
* The broadcast event name, or one per operation. Defaults to the
|
|
141
|
+
* operation (`INSERT`, `UPDATE`, `DELETE`).
|
|
142
|
+
*/
|
|
143
|
+
readonly event?: string | { readonly [O in TriggerOperation]?: string; };
|
|
144
|
+
/**
|
|
145
|
+
* Send this payload with `realtime.send` instead of the row change from
|
|
146
|
+
* `realtime.broadcast_changes`: each key is a column, a lookup, or
|
|
147
|
+
* `{ sql }`, an expression on the row `{row}` (`tg_op` is the operation).
|
|
148
|
+
*/
|
|
149
|
+
readonly payload?: Readonly<Record<string, TriggerValue<M, T> | {
|
|
150
|
+
readonly sql: string;
|
|
151
|
+
}>>;
|
|
88
152
|
/**
|
|
89
153
|
* Schema for the generated function. Defaults to `better_supabase`, which
|
|
90
154
|
* the Data API does not expose.
|
|
@@ -97,18 +161,29 @@ interface RowChange<R> {
|
|
|
97
161
|
readonly record: R | null;
|
|
98
162
|
readonly oldRecord: Partial<R> | null;
|
|
99
163
|
}
|
|
100
|
-
|
|
164
|
+
/** Options for `topic.sql()`. */
|
|
165
|
+
interface TopicSqlOptions {
|
|
166
|
+
/** The provider's templates, for an access policy with `sql: "provider"`. */
|
|
167
|
+
readonly functions?: AuthorizationFunctions;
|
|
168
|
+
}
|
|
169
|
+
interface Topic<P extends string, E extends EventSchemas, R extends PresenceSchema = false> {
|
|
101
170
|
readonly template: P;
|
|
102
171
|
readonly name: string;
|
|
103
172
|
readonly params: readonly TemplateParams<P>[];
|
|
104
173
|
readonly private: boolean;
|
|
174
|
+
/** Whether subscriptions get `track` and `onPresence`. */
|
|
175
|
+
readonly presence: boolean;
|
|
105
176
|
topic(values: TemplateValues<P>): string;
|
|
106
177
|
match(topic: string): TemplateValues<P> | null;
|
|
107
|
-
/**
|
|
108
|
-
|
|
178
|
+
/**
|
|
179
|
+
* `realtime.messages` policies for this topic. Idempotent. An access
|
|
180
|
+
* policy with `sql: "provider"` needs the provider's templates in
|
|
181
|
+
* `options.functions`; `better-supabase sql sync` passes them.
|
|
182
|
+
*/
|
|
183
|
+
sql(options?: TopicSqlOptions): string;
|
|
109
184
|
/** A trigger that broadcasts row changes (`realtime.broadcast_changes`) to this topic. */
|
|
110
185
|
triggerSql<M extends AnyModels, D, F extends AnyFunctions, X, T extends TableKey<M>>(betterSupabase: BetterSupabase<M, D, F, X>, table: T, options: TriggerOptions<M, T, P>): string;
|
|
111
|
-
subscribe(client: RealtimeClient, values: TemplateValues<P>, handlers: TopicHandlers<E>, options?:
|
|
186
|
+
subscribe(client: RealtimeClient, values: TemplateValues<P>, handlers: TopicHandlers<E>, options?: TopicSubscribeOptions<R>): TopicSubscription<R>;
|
|
112
187
|
/** Sends over HTTP, without joining the channel. */
|
|
113
188
|
send<K extends TopicEvent<E>>(client: RealtimeClient, values: TemplateValues<P>, event: K, payload: TopicPayload<E, K>): AsyncResult<void>;
|
|
114
189
|
}
|
|
@@ -117,13 +192,13 @@ interface Topic<P extends string, E extends EventSchemas> {
|
|
|
117
192
|
* private channels, row-change triggers, and disposable subscriptions.
|
|
118
193
|
*
|
|
119
194
|
* ```ts
|
|
120
|
-
* export const notifications = defineTopic('
|
|
195
|
+
* export const notifications = defineTopic('organization:{organizationId}:notifications:{userId}', {
|
|
121
196
|
* events: { created: v.object({ id: v.string(), title: v.string() }) },
|
|
122
197
|
* });
|
|
123
|
-
* using sub = notifications.subscribe(supabase, {
|
|
198
|
+
* using sub = notifications.subscribe(supabase, { organizationId, userId }, { created: (n) => toast(n.title) });
|
|
124
199
|
* ```
|
|
125
200
|
*/
|
|
126
|
-
declare function defineTopic<const P extends string, const E extends EventSchemas = Record<never, never
|
|
201
|
+
declare function defineTopic<const P extends string, const E extends EventSchemas = Record<never, never>, const R extends PresenceSchema = false>(template: P, options?: TopicOptions<E, R>): Topic<P, E, R>;
|
|
127
202
|
/**
|
|
128
203
|
* Reads a `realtime.broadcast_changes` message as an app-cased row change.
|
|
129
204
|
* Returns `null` for messages about other tables.
|
|
@@ -141,9 +216,20 @@ interface LiveQueryOptions {
|
|
|
141
216
|
readonly onChange: (tables: readonly string[]) => void;
|
|
142
217
|
/** Tenant value for tables scoped by a tenant column (`realtime-tables` topics). */
|
|
143
218
|
readonly tenant?: string;
|
|
219
|
+
/** The signed-in user's id, for tables that broadcast per user (`realtime.users`). */
|
|
220
|
+
readonly user?: string;
|
|
144
221
|
/** Waits this long after the last change before calling `onChange`. Defaults to 100 ms. */
|
|
145
222
|
readonly debounceMs?: number;
|
|
223
|
+
/**
|
|
224
|
+
* Also reports a channel that errors after it joined (`error`) and its
|
|
225
|
+
* rejoin (`subscribed`), not only the first join.
|
|
226
|
+
*/
|
|
146
227
|
readonly onStatus?: (status: SubscriptionStatus, error?: Error) => void;
|
|
228
|
+
/**
|
|
229
|
+
* Retries a first join that failed, after 1 s and then twice as long each
|
|
230
|
+
* time, up to 30 s. Pass `false` to stay in `error`. Defaults to `true`.
|
|
231
|
+
*/
|
|
232
|
+
readonly retry?: boolean;
|
|
147
233
|
}
|
|
148
234
|
interface LiveSubscription extends Disposable, AsyncDisposable {
|
|
149
235
|
/** App keys of the watched tables. */
|
|
@@ -161,9 +247,15 @@ interface LiveSubscription extends Disposable, AsyncDisposable {
|
|
|
161
247
|
interface LiveCountSeed<T extends string = string> {
|
|
162
248
|
readonly spec: QuerySpec<T, "count", number>;
|
|
163
249
|
readonly count: number | null;
|
|
250
|
+
/** When the count was taken (epoch ms). `useLiveCount` counts again after joining when it is older than a second. */
|
|
251
|
+
readonly at?: number;
|
|
164
252
|
}
|
|
165
|
-
/**
|
|
166
|
-
|
|
253
|
+
/**
|
|
254
|
+
* Topic a `realtime-tables` trigger broadcasts on:
|
|
255
|
+
* `bs:t:<schema>.<table>[:<tenant>]`, or `bs:t:<schema>.<table>:u:<user>`
|
|
256
|
+
* for a `realtime.users` table.
|
|
257
|
+
*/
|
|
258
|
+
declare function liveTopic(meta: SchemaMeta, table: string, tenant?: string, user?: string): string;
|
|
167
259
|
/**
|
|
168
260
|
* Calls `onChange` when a table the spec reads changes, so you can refetch.
|
|
169
261
|
* Needs the `realtime-tables` SQL module and the tables in
|
|
@@ -185,6 +277,12 @@ interface LiveCountOptions extends Omit<LiveQueryOptions, "onChange"> {
|
|
|
185
277
|
readonly onError?: (error: DbError) => void;
|
|
186
278
|
/** Count right away. Defaults to `true`; pass `false` when you have a seed. */
|
|
187
279
|
readonly immediate?: boolean;
|
|
280
|
+
/**
|
|
281
|
+
* When the count you already have was taken (epoch ms). Counts again once
|
|
282
|
+
* the channel joins when that is more than a second ago, so a change made
|
|
283
|
+
* before the join is not lost.
|
|
284
|
+
*/
|
|
285
|
+
readonly since?: number;
|
|
188
286
|
}
|
|
189
287
|
/**
|
|
190
288
|
* Keeps a count current: runs the `count` spec (a HEAD request) now, after
|
|
@@ -199,4 +297,4 @@ interface LiveCountOptions extends Omit<LiveQueryOptions, "onChange"> {
|
|
|
199
297
|
*/
|
|
200
298
|
declare function liveCount(betterSupabase: LiveSource, client: RealtimeClient, db: CountRunner, spec: QuerySpec<string, "count", number>, options: LiveCountOptions): LiveSubscription;
|
|
201
299
|
//#endregion
|
|
202
|
-
export {
|
|
300
|
+
export { TopicSubscription as A, TopicEvent as C, TopicPayload as D, TopicOptions as E, rowChange as F, TriggerOptions as M, TriggerValue as N, TopicSqlOptions as O, defineTopic as P, Topic as S, TopicMessage as T, RealtimeClient as _, LiveSource as a, Subscription as b, liveQuery as c, PresenceInput as d, PresenceMember as f, PresenceSubscription as g, PresenceSchema as h, LiveQueryOptions as i, TriggerLookup as j, TopicSubscribeOptions as k, liveTopic as l, PresenceOutput as m, LiveCountOptions as n, LiveSubscription as o, PresenceOptions as p, LiveCountSeed as r, liveCount as s, CountRunner as t, EventSchemas as u, RowChange as v, TopicHandlers as w, SubscriptionStatus as x, SubscribeOptions as y };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { D as
|
|
4
|
-
import {
|
|
5
|
-
import { _ as
|
|
6
|
-
import { n as
|
|
7
|
-
import { a as
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { n as DbException, t as escapeLike } from "./escape-like-ImTK0ps_.js";
|
|
3
|
+
import { A as isDbError, C as DbErrorOf, D as dbError, E as ValidationIssue, M as mapDbError, N as statusOf, O as isCheck, S as DbErrorKinds, T as RawDbError, _ as ok, a as BetterResultOk, b as DbError, c as DbErrorClasses, d as Ok, f as Result, g as fromBetterResult, h as err, i as BetterResultErrors, j as isForeignKey, k as isConflict, l as Err, m as defineBetterResultErrors, n as BetterResultApi, o as BetterResultValue, r as BetterResultErr, s as DbErrorClass, t as AsyncResult, u as MappedDbError, v as toBetterResult, w as ErrorMapper, x as DbErrorKind, y as toDbError } from "./result-D7y2fT87.js";
|
|
4
|
+
import { A as Relations, B as UniqueKeyName, C as ModelTypes, D as RealtimeTableMeta, E as PrimaryKeyValue, F as Simplify, H as Update, I as TableFlags, L as TableKey, M as Row, N as Schema, O as RelationMeta, P as SchemaMeta, R as TableMeta, S as ModelFlags, T as PrimaryKeyColumn, V as UniqueWhere, _ as FunctionResult, a as AnyModels, b as FunctionsOf, c as Casing, d as Codec, f as ColumnMeta, g as FunctionMeta, h as ForeignKeyConstraint, i as AnyFunctions, j as ResultColumn, k as RelationTypes, l as CheckConstraint, m as Flags, n as AccessPolicySql, o as BucketMeta, p as DatabaseOf, r as AccessTopicPolicy, s as BucketPolicyName, t as AccessBucketPolicy, u as ClaimsMeta, v as FunctionSignature, w as ModelsOf, x as Insert, y as FunctionTypes, z as UniqueConstraint } from "./types-6BdhkmZe.js";
|
|
5
|
+
import { C as Selection, D as not, E as column, O as or, S as SelectOp, T as and, _ as MutationOp, a as AggregateFn, b as Quantifier, c as Condition, d as FunctionSource, f as Include, g as MutationKind, h as MutationIntent, i as RpcContext, l as CountMode, m as Measure, n as ExecuteResult, o as Aggregation, p as InsertOp, r as Executor, s as ColumnOp, t as ExecuteContext, u as DeleteOp, v as Operation, w as UpdateOp, x as SelectColumn, y as OrderTerm } from "./executor-DvsBbNBS.js";
|
|
6
|
+
import { a as ExtensionOf, c as MutationEvent, d as Plugin, f as RepositoryApi, g as definePlugin, h as WithExtension, i as CallOptions, l as NoExtension, m as RequestContext, n as AnyPlugin, o as HasFlag, p as RepositoryExtension, r as ApplyExtension, s as HookArgs, t as Actor, u as PLUGIN_API_VERSION } from "./plugin-FGY8UhYm.js";
|
|
7
|
+
import { C as BlockEventMap, E as BlockEventType, S as BlockEvent, a as EventHub, c as QueryEvent, i as EventHandler, l as RefreshEvent, n as BetterSupabaseEvents, o as EventName, r as ErrorEvent, s as MutationNotice, t as AuthEvent, u as RpcNotice } from "./events-DWDhx77e.js";
|
|
8
|
+
import { i as silentLogger, n as Logger, r as consoleLogger, t as LogFields } from "./logger-DWVYUmwi.js";
|
|
9
|
+
import { n as validate, t as StandardSchemaV1 } from "./standard-CYsm7xpT.js";
|
|
10
|
+
import { a as ProblemFormat, c as fromProblem, d as toProblem, i as ProblemDetails, l as isProblem, n as PROBLEM_CONTENT_TYPE, o as ProblemOptions, r as PROBLEM_TYPE_BASE, s as ProblemResponseOptions, t as BlockProblemOptions, u as problemResponse } from "./problem-DD8LZFjc.js";
|
|
11
|
+
import { $ as ReadSetResult, A as PageOf, At as OrderByArg, B as DbStats, C as DeleteExt, Ct as IncludeArg, D as OffsetPage, Dt as MeasureKey, E as ManyReturningArgs, Et as MeasureArg, F as UpdateArgs, Ft as RequestArgs, G as InferReadSetParams, H as StatsRecorder, I as UpsertArgs, It as SelectArg, J as ReadSetOptions, K as ReadSet, L as UpsertManyArgs, Lt as SortDirection, M as RepositoryOf, Mt as Payload, N as Returned, Nt as ReadArgs, O as OffsetPageArgs, Ot as MutableWhere, P as RpcOptions, Pt as RelationMeasureArg, Q as ReadSetParams, R as WriteArgs, Rt as SortSpec, S as DeleteArgs, St as FindOnlyArgs, T as ManyResult, Tt as JsonPathOps, U as recordStats, V as EMPTY_STATS, W as SearchArgs, X as ReadSetParamTypes, Y as ReadSetParamType, Z as ReadSetParamValue, _ as ConflictTarget, _t as CountArg, a as defineSupabase, at as ReadMethod, b as Db, bt as FindFirstArgs, c as explainPostgrest, ct as isQuerySpec, d as CacheTarget, dt as AggregateOrderBy, et as defineReadSet, f as MemoryCache, ft as AggregateOrderByArg, g as rpcCacheTargets, gt as ColumnOrderByArg, h as rowKey, ht as ColumnOrderBy, i as SupabaseOptions, it as QuerySpec, j as Repository, jt as OrderByInput, k as OffsetRangeArgs, kt as NumericMeasureArg, l as postgrestExecutor, lt as specTables, m as memoryCache, mt as AggregateRow, n as ConnectOptions, nt as readSetTables, o as PostgrestClientLike, ot as Specs, p as cacheTargetOf, pt as AggregateResult, q as ReadSetAuth, r as RpcDefinition, rt as InferResult, s as PostgrestExecutorOptions, st as TableSpecs, t as BetterSupabase, tt as isReadSet, u as CacheAdapter, ut as AggregateArgs, v as CursorPage, vt as CountArgs, w as FindExt, wt as IncludeArgs, x as DbHelpers, xt as FindManyArgs, y as CursorPageArgs, yt as FieldFilter, z as WriteManyArgs, zt as WhereInput } from "./define-CJJkkr1-.js";
|
|
12
|
+
import { a as PostgrestPlan, n as PlanLimit, o as compilePostgrest, r as PlanOrder, t as PlanFilter } from "./postgrest-BLVdEnfe.js";
|
|
8
13
|
import { n as StoragePath } from "./path-Cv__-OTj.js";
|
|
9
|
-
import { n as postgrestCompiler, t as Compiler } from "./compiler-
|
|
10
|
-
import {
|
|
11
|
-
|
|
14
|
+
import { n as postgrestCompiler, t as Compiler } from "./compiler-DY_wkj4R.js";
|
|
15
|
+
import { t as SPEC_PINS } from "./spec-pins-C89s6DyW.js";
|
|
16
|
+
//#region src/core/error-messages.d.ts
|
|
17
|
+
/**
|
|
18
|
+
* A message for every `DbError` kind: a string, or a function of the error.
|
|
19
|
+
* Leaving a kind out is a type error, so a new kind can't fall through.
|
|
20
|
+
*/
|
|
21
|
+
type ErrorMessages = { readonly [K in DbErrorKind]: string | ((error: DbErrorOf<K>) => string); };
|
|
22
|
+
/**
|
|
23
|
+
* Turns an error into the sentence to show the user. Build it where your
|
|
24
|
+
* translations are, e.g. inside a hook that has `t`.
|
|
25
|
+
*
|
|
26
|
+
* ```ts
|
|
27
|
+
* const message = createErrorMessages({
|
|
28
|
+
* unauthorized: t('Sign in again to continue.'),
|
|
29
|
+
* raised: (error) => error.message,
|
|
30
|
+
* // ...every other kind
|
|
31
|
+
* });
|
|
32
|
+
* toast.error(message(result.error));
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function createErrorMessages(messages: ErrorMessages): (error: DbError) => string;
|
|
36
|
+
//#endregion
|
|
12
37
|
//#region src/core/define-repository.d.ts
|
|
13
38
|
/** Adds `Methods` to the repository of `Table` only. */
|
|
14
39
|
interface TableRepositoryExtension<Table extends string, Methods> extends RepositoryExtension {
|
|
@@ -44,7 +69,7 @@ export declare function invalidationTargets(meta: SchemaMeta, table: string): re
|
|
|
44
69
|
//#endregion
|
|
45
70
|
//#region src/core/policy.d.ts
|
|
46
71
|
/**
|
|
47
|
-
* A callback that decides something a
|
|
72
|
+
* A callback that decides something a module would otherwise allow or refuse
|
|
48
73
|
* by default: `authorize`, `canInvite`, `shouldDeliver`, `allowUrl`. Only
|
|
49
74
|
* `true` allows; `false`, any other value, a throw or a rejection denies.
|
|
50
75
|
*/
|
|
@@ -61,6 +86,7 @@ type PolicyDecision = {
|
|
|
61
86
|
//#region src/core/cursor.d.ts
|
|
62
87
|
/** Opaque, URL-safe keyset cursor. */
|
|
63
88
|
export declare function encodeCursor(values: readonly unknown[]): string;
|
|
89
|
+
/** The values of a cursor from `encodeCursor` or from `paginate()`. */
|
|
64
90
|
export declare function decodeCursor(cursor: string): unknown[] | undefined;
|
|
65
91
|
//#endregion
|
|
66
92
|
//#region src/schema/define.d.ts
|
|
@@ -81,18 +107,36 @@ type EnrichSchema<S, O> = { [P in keyof S]: P extends "Tables" | "Views" ? Enric
|
|
|
81
107
|
*/
|
|
82
108
|
type EnrichDatabase<D, O> = { [S in keyof D]: S extends keyof O ? EnrichSchema<D[S], O[S]> : D[S]; };
|
|
83
109
|
//#endregion
|
|
84
|
-
//#region src/ir/build.d.ts
|
|
85
|
-
/** Escapes LIKE wildcards so user input matches literally. */
|
|
86
|
-
export declare function escapeLike(value: string): string;
|
|
87
|
-
//#endregion
|
|
88
110
|
//#region src/ir/codec.d.ts
|
|
89
111
|
/** Applies column codecs to returned rows, including embedded relations. */
|
|
90
112
|
export declare function decodeRows(selection: Selection | undefined, rows: readonly Record<string, unknown>[], checked?: boolean): Record<string, unknown>[];
|
|
91
113
|
//#endregion
|
|
92
114
|
//#region src/ir/wire.d.ts
|
|
93
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Wire form of an app value: Temporal values and `Date` to ISO text, `bigint`
|
|
117
|
+
* to decimal text.
|
|
118
|
+
*/
|
|
94
119
|
export declare function encodeValue(value: unknown): unknown;
|
|
95
120
|
//#endregion
|
|
121
|
+
//#region src/core/temporal.d.ts
|
|
122
|
+
/**
|
|
123
|
+
* Uses `namespace` wherever better-supabase needs Temporal, without touching
|
|
124
|
+
* `globalThis`. `defineSupabase(schema, { temporal })` calls it; call it
|
|
125
|
+
* yourself when you use a standalone helper (webhook verification, jobs)
|
|
126
|
+
* without a definition. `undefined` goes back to the global.
|
|
127
|
+
*/
|
|
128
|
+
export declare function provideTemporal(namespace: typeof Temporal | undefined): void;
|
|
129
|
+
/** A `Temporal.Instant` from any copy of Temporal, checked by `Symbol.toStringTag`. */
|
|
130
|
+
export declare function isInstant(value: unknown): value is Temporal.Instant;
|
|
131
|
+
/** A `Temporal.PlainDateTime` from any copy of Temporal. */
|
|
132
|
+
export declare function isPlainDateTime(value: unknown): value is Temporal.PlainDateTime;
|
|
133
|
+
/** A `Temporal.PlainDate` from any copy of Temporal. */
|
|
134
|
+
export declare function isPlainDate(value: unknown): value is Temporal.PlainDate;
|
|
135
|
+
/** A `Temporal.PlainTime` from any copy of Temporal. */
|
|
136
|
+
export declare function isPlainTime(value: unknown): value is Temporal.PlainTime;
|
|
137
|
+
/** A `Temporal.ZonedDateTime` from any copy of Temporal. */
|
|
138
|
+
export declare function isZonedDateTime(value: unknown): value is Temporal.ZonedDateTime;
|
|
139
|
+
//#endregion
|
|
96
140
|
//#region src/ir/scope.d.ts
|
|
97
141
|
/** Returns the filter that always applies to rows of `table`, if any. */
|
|
98
142
|
type ScopeFor = (table: TableMeta) => Condition | undefined;
|
|
@@ -119,9 +163,12 @@ export declare function scopeOperation(op: Operation, scopeFor: ScopeFor, root?:
|
|
|
119
163
|
export declare function simplify(condition: Condition | undefined): Condition | boolean;
|
|
120
164
|
//#endregion
|
|
121
165
|
//#region src/casing/index.d.ts
|
|
122
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* `first_name` to `firstName`. Leaves already camel-cased names and leading
|
|
168
|
+
* underscores (`_internal`) untouched.
|
|
169
|
+
*/
|
|
123
170
|
export declare function toCamel(name: string): string;
|
|
124
171
|
/** `firstName` to `first_name`. */
|
|
125
172
|
export declare function toSnake(name: string): string;
|
|
126
173
|
//#endregion
|
|
127
|
-
export { type AccessBucketPolicy, type Actor, type AggregateArgs, type AggregateFn, type AggregateResult, type AggregateRow, type Aggregation, type AnyFunctions, type AnyModels, type AnyPlugin, type ApplyExtension, AsyncResult, type AuthEvent, type BetterResultApi, type BetterResultValue, BetterSupabase, type BetterSupabaseEvents, type BucketMeta, type BucketPolicyName, type CacheAdapter, type CacheTarget, type CallOptions, type Casing, type CheckConstraint, type ClaimsMeta, type Codec, type ColumnMeta, type ColumnOp, type Compiler, type Condition, type ConflictTarget, type ConnectOptions, type CountArg, type CountArgs, type CountMode, type CursorPage, type CursorPageArgs, type DatabaseOf, type Db, type DbError, type DbErrorKind, type DbErrorKinds, type DbErrorOf, DbException, type DbHelpers, type DbStats, type DeleteArgs, type DeleteExt, type DeleteOp, EMPTY_STATS, type EnrichDatabase, type Err, type ErrorEvent, type ErrorMapper, type EventHandler, EventHub, type EventName, type ExecuteContext, type ExecuteResult, type Executor, type ExtensionOf, type FieldFilter, type FindExt, type FindFirstArgs, type FindManyArgs, type Flags, type ForeignKeyConstraint, type FunctionMeta, type FunctionSource, type FunctionTypes, type FunctionsOf, type HasFlag, type HookArgs, type Include, type IncludeArg, type IncludeArgs, type InferReadSetParams, type InferResult, type Insert, type InsertOp, type
|
|
174
|
+
export { type AccessBucketPolicy, type AccessPolicySql, type AccessTopicPolicy, type Actor, type AggregateArgs, type AggregateFn, type AggregateOrderBy, type AggregateOrderByArg, type AggregateResult, type AggregateRow, type Aggregation, type AnyFunctions, type AnyModels, type AnyPlugin, type ApplyExtension, AsyncResult, type AuthEvent, type BetterResultApi, type BetterResultErr, type BetterResultErrors, type BetterResultOk, type BetterResultValue, BetterSupabase, type BetterSupabaseEvents, type BlockEvent, type BlockEventMap, type BlockEventType, type BlockProblemOptions, type BucketMeta, type BucketPolicyName, type CacheAdapter, type CacheTarget, type CallOptions, type Casing, type CheckConstraint, type ClaimsMeta, type Codec, type ColumnMeta, type ColumnOp, type ColumnOrderBy, type ColumnOrderByArg, type Compiler, type Condition, type ConflictTarget, type ConnectOptions, type CountArg, type CountArgs, type CountMode, type CursorPage, type CursorPageArgs, type DatabaseOf, type Db, type DbError, type DbErrorClass, type DbErrorClasses, type DbErrorKind, type DbErrorKinds, type DbErrorOf, DbException, type DbHelpers, type DbStats, type DeleteArgs, type DeleteExt, type DeleteOp, EMPTY_STATS, type EnrichDatabase, type Err, type ErrorEvent, type ErrorMapper, type ErrorMessages, type EventHandler, EventHub, type EventName, type ExecuteContext, type ExecuteResult, type Executor, type ExtensionOf, type FieldFilter, type FindExt, type FindFirstArgs, type FindManyArgs, type FindOnlyArgs, type Flags, type ForeignKeyConstraint, type FunctionMeta, type FunctionResult, type FunctionSignature, type FunctionSource, type FunctionTypes, type FunctionsOf, type HasFlag, type HookArgs, type Include, type IncludeArg, type IncludeArgs, type InferReadSetParams, type InferResult, type Insert, type InsertOp, type JsonPathOps, type LogFields, type Logger, type ManyResult, type ManyReturningArgs, type MappedDbError, type Measure, type MeasureArg, type MeasureKey, type MemoryCache, type ModelFlags, type ModelTypes, type ModelsOf, type MutableWhere, type MutationEvent, type MutationIntent, type MutationKind, type MutationNotice, type MutationOp, type NoExtension, type NumericMeasureArg, type OffsetPage, type OffsetPageArgs, type OffsetRangeArgs, type Ok, type Operation, type OrderByArg, type OrderByInput, type OrderTerm, PLUGIN_API_VERSION, PROBLEM_CONTENT_TYPE, PROBLEM_TYPE_BASE, type PageOf, type Payload, type PlanFilter, type PlanLimit, type PlanOrder, type Plugin, type Policy, type PolicyDecision, type PostgrestClientLike, type PostgrestExecutorOptions, type PostgrestPlan, type PrimaryKeyColumn, type PrimaryKeyValue, type ProblemDetails, type ProblemFormat, type ProblemOptions, type ProblemResponseOptions, type Quantifier, type QueryEvent, type QuerySpec, type RawDbError, type ReadArgs, type ReadMethod, type ReadSet, type ReadSetAuth, type ReadSetOptions, type ReadSetParamType, type ReadSetParamTypes, type ReadSetParamValue, type ReadSetParams, type ReadSetResult, type RealtimeTableMeta, type RefreshEvent, type RelationMeasureArg, type RelationMeta, type RelationTypes, type Relations, type Repository, type RepositoryApi, type RepositoryExtension, type RepositoryOf, type RequestArgs, type RequestContext, type Result, type ResultColumn, type Returned, type Row, type RpcContext, type RpcDefinition, type RpcNotice, type RpcOptions, SPEC_PINS, type Schema, type SchemaMeta, type ScopeFor, type SearchArgs, type SelectArg, type SelectColumn, type SelectOp, type Selection, type Simplify, type SortDirection, type SortSpec, type Specs, type StandardSchemaV1, StatsRecorder, type StoragePath, type SupabaseOptions, type TableFlags, type TableKey, type TableMeta, type TableRepositoryExtension, type TableSpecs, type UniqueConstraint, type UniqueKeyName, type UniqueWhere, type Update, type UpdateArgs, type UpdateOp, type UpsertArgs, type UpsertManyArgs, type ValidationIssue, type WhereInput, type WithExtension, type WriteArgs, type WriteManyArgs, and, cacheTargetOf, column, compilePostgrest, consoleLogger, dbError, defineBetterResultErrors, definePlugin, defineReadSet, defineSupabase, err, escapeLike, explainPostgrest, fromBetterResult, fromProblem, isCheck, isConflict, isDbError, isForeignKey, isProblem, isQuerySpec, isReadSet, mapDbError, memoryCache, not, ok, or, postgrestCompiler, postgrestExecutor, problemResponse, readSetTables, recordStats, rowKey, rpcCacheTargets, silentLogger, specTables, statusOf, toBetterResult, toDbError, toProblem, validate };
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as
|
|
1
|
+
import { t as DbException } from "./db-exception-CnWcYPxL.js";
|
|
2
|
+
import { a as isConflict, c as mapDbError, i as isCheck, l as statusOf, n as dbError, o as isDbError, s as isForeignKey } from "./errors-B11Duf73.js";
|
|
3
|
+
import { i as tableMeta, r as defineSchema } from "./build-BXIzE6Xv.js";
|
|
4
|
+
import { t as escapeLike } from "./escape-like-DHfx6jRr.js";
|
|
3
5
|
import { i as or, n as column, r as not, t as and } from "./types-6cYK9pbJ.js";
|
|
4
|
-
import { r as
|
|
5
|
-
import {
|
|
6
|
-
import { a as
|
|
6
|
+
import { a as isPlainTime, i as isPlainDateTime, l as provideTemporal, n as isInstant, o as isZonedDateTime, r as isPlainDate } from "./temporal-BJGitm-h.js";
|
|
7
|
+
import { i as encodeValue } from "./wire-DtZQ4sdE.js";
|
|
8
|
+
import { a as ok, i as fromBetterResult, n as defineBetterResultErrors, o as toBetterResult, r as err, s as toDbError, t as AsyncResult } from "./result-DzUbqgdW.js";
|
|
9
|
+
import { a as decodeRows, c as memoryCache, i as encodeCursor, l as rowKey, n as defineSupabase, o as EventHub, r as decodeCursor, s as cacheTargetOf, t as BetterSupabase, u as rpcCacheTargets } from "./define-B-TVjC25.js";
|
|
7
10
|
import { n as touchedTables, t as invalidationTargets } from "./tables-Cb-3_VWc.js";
|
|
8
11
|
import { n as silentLogger, t as consoleLogger } from "./logger-glM28NVN.js";
|
|
9
|
-
import { r as definePlugin, t as PLUGIN_API_VERSION } from "./plugin-
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { t as
|
|
12
|
+
import { r as definePlugin, t as PLUGIN_API_VERSION } from "./plugin-tfXW1-qO.js";
|
|
13
|
+
import { t as simplify } from "./simplify-DDO0j0LI.js";
|
|
14
|
+
import { a as postgrestExecutor, i as explainPostgrest, n as StatsRecorder, r as recordStats, t as EMPTY_STATS, u as compilePostgrest } from "./stats-D_AD9GGu.js";
|
|
15
|
+
import { c as readSetTables, d as isQuerySpec, f as specTables, i as defineReadSet, o as isReadSet } from "./read-set-DuKWC9Mj.js";
|
|
16
|
+
import { n as validate } from "./standard-BK0cqJ7y.js";
|
|
17
|
+
import { a as problemResponse, i as isProblem, n as PROBLEM_TYPE_BASE, o as toProblem, r as fromProblem, t as PROBLEM_CONTENT_TYPE } from "./problem-BreOl8b8.js";
|
|
18
|
+
import { t as SPEC_PINS } from "./spec-pins--j6mTok4.js";
|
|
15
19
|
import { n as scopeOperation, r as scopeSelection, t as scopeCondition } from "./scope-CDHcS7dE.js";
|
|
20
|
+
//#region src/core/error-messages.ts
|
|
21
|
+
/**
|
|
22
|
+
* Turns an error into the sentence to show the user. Build it where your
|
|
23
|
+
* translations are, e.g. inside a hook that has `t`.
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const message = createErrorMessages({
|
|
27
|
+
* unauthorized: t('Sign in again to continue.'),
|
|
28
|
+
* raised: (error) => error.message,
|
|
29
|
+
* // ...every other kind
|
|
30
|
+
* });
|
|
31
|
+
* toast.error(message(result.error));
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
function createErrorMessages(messages) {
|
|
35
|
+
return (error) => {
|
|
36
|
+
const message = messages[error.kind];
|
|
37
|
+
return typeof message === "string" ? message : message(error);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
16
41
|
//#region src/core/define-repository.ts
|
|
17
42
|
/**
|
|
18
43
|
* Domain methods for one table, installed with `use()`. `base` is the
|
|
@@ -41,13 +66,16 @@ const postgrestCompiler = {
|
|
|
41
66
|
};
|
|
42
67
|
//#endregion
|
|
43
68
|
//#region src/casing/index.ts
|
|
44
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* `first_name` to `firstName`. Leaves already camel-cased names and leading
|
|
71
|
+
* underscores (`_internal`) untouched.
|
|
72
|
+
*/
|
|
45
73
|
function toCamel(name) {
|
|
46
|
-
return name.replaceAll(/_+([a-z0-9])/g, (_, char) => char.toUpperCase());
|
|
74
|
+
return name.replaceAll(/(?<=[^_])_+([a-z0-9])/g, (_, char) => char.toUpperCase());
|
|
47
75
|
}
|
|
48
76
|
/** `firstName` to `first_name`. */
|
|
49
77
|
function toSnake(name) {
|
|
50
78
|
return name.replaceAll(/([a-z0-9])([A-Z])/g, "$1_$2").replaceAll(/([A-Z])([A-Z][a-z])/g, "$1_$2").toLowerCase();
|
|
51
79
|
}
|
|
52
80
|
//#endregion
|
|
53
|
-
export { AsyncResult, BetterSupabase, DbException, EMPTY_STATS, EventHub, PLUGIN_API_VERSION, PROBLEM_CONTENT_TYPE, PROBLEM_TYPE_BASE, SPEC_PINS, StatsRecorder, and, cacheTargetOf, column, compilePostgrest, consoleLogger, dbError, decodeCursor, decodeRows, definePlugin, defineReadSet, defineRepository, defineSchema, defineSupabase, encodeCursor, encodeValue, err, escapeLike, explainPostgrest, fromBetterResult, fromProblem, invalidationTargets, isCheck, isConflict, isDbError, isForeignKey, isProblem, isQuerySpec, isReadSet, mapDbError, memoryCache, not, ok, or, postgrestCompiler, postgrestExecutor, problemResponse, readSetTables, recordStats, rowKey, rpcCacheTargets, scopeCondition, scopeOperation, scopeSelection, silentLogger, simplify, specTables, statusOf, tableMeta, toBetterResult, toCamel, toDbError, toProblem, toSnake, touchedTables, validate };
|
|
81
|
+
export { AsyncResult, BetterSupabase, DbException, EMPTY_STATS, EventHub, PLUGIN_API_VERSION, PROBLEM_CONTENT_TYPE, PROBLEM_TYPE_BASE, SPEC_PINS, StatsRecorder, and, cacheTargetOf, column, compilePostgrest, consoleLogger, createErrorMessages, dbError, decodeCursor, decodeRows, defineBetterResultErrors, definePlugin, defineReadSet, defineRepository, defineSchema, defineSupabase, encodeCursor, encodeValue, err, escapeLike, explainPostgrest, fromBetterResult, fromProblem, invalidationTargets, isCheck, isConflict, isDbError, isForeignKey, isInstant, isPlainDate, isPlainDateTime, isPlainTime, isProblem, isQuerySpec, isReadSet, isZonedDateTime, mapDbError, memoryCache, not, ok, or, postgrestCompiler, postgrestExecutor, problemResponse, provideTemporal, readSetTables, recordStats, rowKey, rpcCacheTargets, scopeCondition, scopeOperation, scopeSelection, silentLogger, simplify, specTables, statusOf, tableMeta, toBetterResult, toCamel, toDbError, toProblem, toSnake, touchedTables, validate };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { QueryClient, QueryMeta } from "@tanstack/query-core";
|
|
2
|
+
//#region src/query/invalidate.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Carried by every better-supabase query: the tables whose changes make it
|
|
5
|
+
* stale, on top of the app's `Register['queryMeta']`, so the options stay
|
|
6
|
+
* assignable to `useQuery` when the app narrows its query meta.
|
|
7
|
+
*/
|
|
8
|
+
type BetterQueryMeta = QueryMeta & {
|
|
9
|
+
readonly bsTables: readonly string[];
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Invalidates every query that read one of `tables`: better-supabase queries
|
|
13
|
+
* by their `meta.bsTables`, and other `['bs', table, ...]` keys by prefix.
|
|
14
|
+
* An index from table to queries finds them, so a write to a table nothing
|
|
15
|
+
* read skips the cache scan.
|
|
16
|
+
*/
|
|
17
|
+
declare function invalidateTables(client: QueryClient, tables: readonly string[]): Promise<void>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { invalidateTables as n, BetterQueryMeta as t };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/core/json.ts
|
|
2
|
+
/** A `JSON.stringify` replacer: `bigint` values become decimal strings, as the wire codec writes them. */
|
|
3
|
+
function jsonReplacer(_key, value) {
|
|
4
|
+
return typeof value === "bigint" ? value.toString() : value;
|
|
5
|
+
}
|
|
6
|
+
/** `Response.json` that writes `bigint` values as decimal strings instead of throwing. */
|
|
7
|
+
function jsonResponse(data, init = {}) {
|
|
8
|
+
const headers = new Headers(init.headers);
|
|
9
|
+
if (!headers.has("content-type")) headers.set("content-type", "application/json");
|
|
10
|
+
return new Response(JSON.stringify(data, jsonReplacer), {
|
|
11
|
+
...init,
|
|
12
|
+
headers
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { jsonResponse as n, jsonReplacer as t };
|