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
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { t as clearOnUserChange } from "../user-change-XzvgafU4.js";
|
|
2
|
+
import { t as supportOf } from "../support-view-g4YLBeqX.js";
|
|
3
|
+
import { t as fieldErrorsOf } from "../field-errors-VF1yb8yI.js";
|
|
4
|
+
import { a as createActionRunner, c as liveKey, d as shownCount, f as startBroadcast, i as countSource, l as notJoined, m as startLiveQuery, n as assertInvalidateClient, o as joinPresence, p as startLiveCount, r as callerOf, s as keyed, t as NO_COUNT, u as plainCaller } from "../client-CI0Z2zWX.js";
|
|
5
|
+
import { createComponent, createContext, createEffect, createMemo, createSignal, onCleanup, onMount, untrack, useContext } from "solid-js";
|
|
6
|
+
//#region src/solid/index.ts
|
|
7
|
+
function read(value) {
|
|
8
|
+
return typeof value === "function" ? value() : value;
|
|
9
|
+
}
|
|
10
|
+
const ClientContext = createContext();
|
|
11
|
+
/** Provides the better-supabase client to the primitives. */
|
|
12
|
+
function BetterSupabaseProvider(props) {
|
|
13
|
+
const { client, queryClient } = props;
|
|
14
|
+
const [auth, setAuth] = createSignal(client.auth.current());
|
|
15
|
+
onMount(() => {
|
|
16
|
+
setAuth(client.auth.current());
|
|
17
|
+
onCleanup(client.auth.subscribe(() => {
|
|
18
|
+
setAuth(client.auth.current());
|
|
19
|
+
}));
|
|
20
|
+
if (queryClient) onCleanup(clearOnUserChange(queryClient, client.auth));
|
|
21
|
+
});
|
|
22
|
+
const value = {
|
|
23
|
+
client,
|
|
24
|
+
queryClient,
|
|
25
|
+
auth,
|
|
26
|
+
session: props.session
|
|
27
|
+
};
|
|
28
|
+
return createComponent(ClientContext.Provider, {
|
|
29
|
+
value,
|
|
30
|
+
get children() {
|
|
31
|
+
return props.children;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function useContext$1() {
|
|
36
|
+
const context = useContext(ClientContext);
|
|
37
|
+
if (!context) throw new Error("better-supabase: wrap your app in <BetterSupabaseProvider client={bs}>");
|
|
38
|
+
return context;
|
|
39
|
+
}
|
|
40
|
+
/** The session state for UI: `loading`, `signed-out` or `signed-in` with the user and claims. */
|
|
41
|
+
function useAuth() {
|
|
42
|
+
return useContext$1().auth;
|
|
43
|
+
}
|
|
44
|
+
function useSupabase() {
|
|
45
|
+
return useContext$1().client.supabase;
|
|
46
|
+
}
|
|
47
|
+
/** The session passed to `<BetterSupabaseProvider session={...}>`, `undefined` while it loads. */
|
|
48
|
+
function useSession() {
|
|
49
|
+
const { session } = useContext$1();
|
|
50
|
+
if (!session) throw new Error("better-supabase: useSession() needs <BetterSupabaseProvider session={...}>");
|
|
51
|
+
return session;
|
|
52
|
+
}
|
|
53
|
+
/** The support session the page renders in, or `undefined` for a normal session. */
|
|
54
|
+
function useSupportSession() {
|
|
55
|
+
const session = useSession();
|
|
56
|
+
return () => {
|
|
57
|
+
const current = session();
|
|
58
|
+
return current ? supportOf(current) : void 0;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Primitives typed for your schema.
|
|
63
|
+
*
|
|
64
|
+
* ```ts
|
|
65
|
+
* export const { useDb, useQueries, useAuth } = createBindings<typeof bs>();
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
function createBindings() {
|
|
69
|
+
return {
|
|
70
|
+
useDb: () => useContext$1().client.db,
|
|
71
|
+
useQueries: () => useContext$1().client.queries,
|
|
72
|
+
useSupabase,
|
|
73
|
+
useAuth,
|
|
74
|
+
useSession
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** Restarts `start` when `key` changes; stops it with the owner. */
|
|
78
|
+
function follow(key, start) {
|
|
79
|
+
const run = keyed();
|
|
80
|
+
createEffect(() => {
|
|
81
|
+
const next = key();
|
|
82
|
+
untrack(() => {
|
|
83
|
+
run.update(next, () => next === null ? void 0 : start(next));
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
onCleanup(run.stop);
|
|
87
|
+
}
|
|
88
|
+
function useCaller(context, client) {
|
|
89
|
+
if (context && client === void 0) return () => callerOf(context.auth());
|
|
90
|
+
const supabase = client ?? context?.client.supabase;
|
|
91
|
+
if (!supabase) throw new Error("better-supabase: no supabase client");
|
|
92
|
+
const store = plainCaller(supabase);
|
|
93
|
+
const [caller, setCaller] = createSignal(store.current());
|
|
94
|
+
onMount(() => {
|
|
95
|
+
onCleanup(store.subscribe(() => {
|
|
96
|
+
setCaller(store.current());
|
|
97
|
+
}));
|
|
98
|
+
});
|
|
99
|
+
return caller;
|
|
100
|
+
}
|
|
101
|
+
function supabaseFor(hook, context, client) {
|
|
102
|
+
const supabase = client ?? context?.client.supabase;
|
|
103
|
+
if (!supabase) throw new Error(`better-supabase: ${hook} needs <BetterSupabaseProvider client={bs}> or { client: supabase }`);
|
|
104
|
+
return supabase;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Subscribes to a topic while the owner lives. A `null` value pauses. It
|
|
108
|
+
* resubscribes when the topic values or the signed-in user change.
|
|
109
|
+
*
|
|
110
|
+
* ```ts
|
|
111
|
+
* useBroadcast(customersTopic, () => ({ organizationId: org() }), {}, { invalidate: ['customers'] });
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
function useBroadcast(topic, values, handlers, options) {
|
|
115
|
+
const context = useContext(ClientContext);
|
|
116
|
+
const supabase = supabaseFor("useBroadcast", context, options?.client);
|
|
117
|
+
const queryClient = options?.queryClient ?? context?.queryClient;
|
|
118
|
+
assertInvalidateClient("useBroadcast", options, queryClient);
|
|
119
|
+
const caller = useCaller(context, options?.client);
|
|
120
|
+
const [status, setStatus] = createSignal("closed");
|
|
121
|
+
const name = createMemo(() => {
|
|
122
|
+
const current = read(values);
|
|
123
|
+
return current ? topic.topic(current) : null;
|
|
124
|
+
});
|
|
125
|
+
follow(createMemo(() => {
|
|
126
|
+
const current = name();
|
|
127
|
+
if (current === null || caller().status === "loading") return null;
|
|
128
|
+
return JSON.stringify([current, caller().userId]);
|
|
129
|
+
}), () => {
|
|
130
|
+
const current = name();
|
|
131
|
+
if (current === null) return;
|
|
132
|
+
return startBroadcast({
|
|
133
|
+
supabase,
|
|
134
|
+
topic,
|
|
135
|
+
name: current,
|
|
136
|
+
latest: () => ({
|
|
137
|
+
handlers,
|
|
138
|
+
options
|
|
139
|
+
}),
|
|
140
|
+
queryClient,
|
|
141
|
+
onStatus: (next) => {
|
|
142
|
+
setStatus(next);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
return status;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Keeps a query fresh: invalidates every cached query that read a table the
|
|
150
|
+
* spec touches whenever one of them changes. A `null` spec pauses.
|
|
151
|
+
*
|
|
152
|
+
* ```ts
|
|
153
|
+
* useLiveQuery(() => betterSupabase.spec.customers.findMany({ where: { orgId: org() } }));
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
function useLiveQuery(spec, options = {}) {
|
|
157
|
+
const { client, queryClient, auth } = useContext$1();
|
|
158
|
+
const [status, setStatus] = createSignal("closed");
|
|
159
|
+
let joined = null;
|
|
160
|
+
const current = createMemo(() => read(spec));
|
|
161
|
+
follow(createMemo(() => {
|
|
162
|
+
const value = current();
|
|
163
|
+
if (value && !queryClient) throw new Error("better-supabase: useLiveQuery needs <BetterSupabaseProvider queryClient={...}>");
|
|
164
|
+
return liveKey(client, value, auth(), options);
|
|
165
|
+
}), (key) => {
|
|
166
|
+
const value = current();
|
|
167
|
+
if (!value || !queryClient) return;
|
|
168
|
+
const resumed = joined === key;
|
|
169
|
+
joined = key;
|
|
170
|
+
return startLiveQuery({
|
|
171
|
+
client,
|
|
172
|
+
queryClient,
|
|
173
|
+
spec: value,
|
|
174
|
+
auth: auth(),
|
|
175
|
+
options,
|
|
176
|
+
resumed,
|
|
177
|
+
onStatus: (next) => {
|
|
178
|
+
setStatus(next);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
return status;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* A count that stays current: refetches only the `count` spec after each
|
|
186
|
+
* debounced change to a table it reads. Takes a spec or a `bs.liveCount()`
|
|
187
|
+
* seed; `null` pauses. The returned object's fields are reactive.
|
|
188
|
+
*
|
|
189
|
+
* ```tsx
|
|
190
|
+
* const unread = useLiveCount(() => betterSupabase.spec.messages.count({ where: { read: false } }));
|
|
191
|
+
* <span>{unread.count}</span>
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
function useLiveCount(source, options = {}) {
|
|
195
|
+
const { client, auth } = useContext$1();
|
|
196
|
+
const [status, setStatus] = createSignal("closed");
|
|
197
|
+
const [state, setState] = createSignal(NO_COUNT);
|
|
198
|
+
let joined = null;
|
|
199
|
+
const parsed = createMemo(() => countSource(read(source), options));
|
|
200
|
+
const key = createMemo(() => liveKey(client, parsed().spec, auth(), options));
|
|
201
|
+
follow(key, (next) => {
|
|
202
|
+
const { spec, initial, seedAt } = parsed();
|
|
203
|
+
if (!spec) return;
|
|
204
|
+
const previous = joined?.key === next ? joined : null;
|
|
205
|
+
joined = {
|
|
206
|
+
key: next,
|
|
207
|
+
at: previous?.at ?? seedAt ?? 0
|
|
208
|
+
};
|
|
209
|
+
return startLiveCount({
|
|
210
|
+
client,
|
|
211
|
+
spec,
|
|
212
|
+
key: next,
|
|
213
|
+
auth: auth(),
|
|
214
|
+
options,
|
|
215
|
+
immediate: initial === void 0 && !previous,
|
|
216
|
+
since: previous ? previous.at : seedAt,
|
|
217
|
+
onState: (update) => {
|
|
218
|
+
const value = setState(update);
|
|
219
|
+
if (joined?.key === next) joined = {
|
|
220
|
+
key: next,
|
|
221
|
+
at: value.at
|
|
222
|
+
};
|
|
223
|
+
},
|
|
224
|
+
onStatus: (next) => {
|
|
225
|
+
setStatus(next);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
const shown = createMemo(() => shownCount(state(), key(), parsed()));
|
|
230
|
+
return {
|
|
231
|
+
get count() {
|
|
232
|
+
return shown().count;
|
|
233
|
+
},
|
|
234
|
+
get status() {
|
|
235
|
+
return status();
|
|
236
|
+
},
|
|
237
|
+
get error() {
|
|
238
|
+
return shown().error;
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
const NO_MEMBERS = [];
|
|
243
|
+
/**
|
|
244
|
+
* Joins a presence topic while the owner lives and returns who is on it. A
|
|
245
|
+
* `null` value pauses. The returned object's fields are reactive.
|
|
246
|
+
*
|
|
247
|
+
* ```ts
|
|
248
|
+
* const room = usePresence(roomTopic, () => ({ roomId: id() }), { state: () => ({ name: name() }) });
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
function usePresence(topic, values, options = {}) {
|
|
252
|
+
const context = useContext(ClientContext);
|
|
253
|
+
const supabase = supabaseFor("usePresence", context, options.client);
|
|
254
|
+
const caller = useCaller(context, options.client);
|
|
255
|
+
const [members, setMembers] = createSignal(NO_MEMBERS);
|
|
256
|
+
const [status, setStatus] = createSignal("closed");
|
|
257
|
+
const [join, setJoin] = createSignal();
|
|
258
|
+
const name = createMemo(() => {
|
|
259
|
+
const current = read(values);
|
|
260
|
+
return current ? topic.topic(current) : null;
|
|
261
|
+
});
|
|
262
|
+
const state = createMemo(() => read(options.state), void 0, { equals: (a, b) => JSON.stringify(a) === JSON.stringify(b) });
|
|
263
|
+
follow(createMemo(() => {
|
|
264
|
+
const current = name();
|
|
265
|
+
if (current === null || caller().status === "loading") return null;
|
|
266
|
+
return JSON.stringify([current, caller().userId]);
|
|
267
|
+
}), () => {
|
|
268
|
+
const current = name();
|
|
269
|
+
if (current === null) return;
|
|
270
|
+
const joined = joinPresence(supabase, topic, current, {
|
|
271
|
+
onStatus: (next) => {
|
|
272
|
+
setStatus(next);
|
|
273
|
+
},
|
|
274
|
+
onPresence: (next) => {
|
|
275
|
+
setMembers(next);
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
if (!joined) return;
|
|
279
|
+
setJoin(() => joined);
|
|
280
|
+
return () => {
|
|
281
|
+
setJoin(void 0);
|
|
282
|
+
setMembers(NO_MEMBERS);
|
|
283
|
+
setStatus("closed");
|
|
284
|
+
joined.leave();
|
|
285
|
+
};
|
|
286
|
+
});
|
|
287
|
+
createEffect(() => {
|
|
288
|
+
const joined = join();
|
|
289
|
+
const value = state();
|
|
290
|
+
joined?.sync(value);
|
|
291
|
+
});
|
|
292
|
+
return {
|
|
293
|
+
get members() {
|
|
294
|
+
return members();
|
|
295
|
+
},
|
|
296
|
+
get status() {
|
|
297
|
+
return status();
|
|
298
|
+
},
|
|
299
|
+
track: (value) => join()?.track(value) ?? notJoined(),
|
|
300
|
+
untrack: () => join()?.untrack() ?? notJoined()
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Calls a server action (`action()` from SolidStart, or a `bs.action()`)
|
|
305
|
+
* from an event handler: tracks pending inputs and the last result, and
|
|
306
|
+
* calls `onSuccess` or `onError`. The returned object's fields are reactive.
|
|
307
|
+
*
|
|
308
|
+
* ```tsx
|
|
309
|
+
* const remove = useAction(removeMember);
|
|
310
|
+
* <button disabled={remove.pending} onClick={() => remove.run({ userId })} />
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
function useAction(action, options = {}) {
|
|
314
|
+
const call = action;
|
|
315
|
+
const runner = createActionRunner(() => ({
|
|
316
|
+
action: call,
|
|
317
|
+
options
|
|
318
|
+
}));
|
|
319
|
+
const [state, setState] = createSignal(runner.current());
|
|
320
|
+
onCleanup(runner.subscribe(() => {
|
|
321
|
+
setState(runner.current());
|
|
322
|
+
}));
|
|
323
|
+
return {
|
|
324
|
+
run: runner.run,
|
|
325
|
+
reset: runner.reset,
|
|
326
|
+
get pending() {
|
|
327
|
+
return state().pending;
|
|
328
|
+
},
|
|
329
|
+
get pendingInputs() {
|
|
330
|
+
return state().pendingInputs;
|
|
331
|
+
},
|
|
332
|
+
get pendingInput() {
|
|
333
|
+
return state().pendingInput;
|
|
334
|
+
},
|
|
335
|
+
get data() {
|
|
336
|
+
return state().data;
|
|
337
|
+
},
|
|
338
|
+
get error() {
|
|
339
|
+
return state().error;
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
//#endregion
|
|
344
|
+
export { BetterSupabaseProvider, createBindings, fieldErrorsOf, useAction, useAuth, useBroadcast, useLiveCount, useLiveQuery, usePresence, useSession, useSupabase, useSupportSession };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
|
|
2
|
+
import { t as BetterSupabase } from "../define-CJJkkr1-.js";
|
|
3
|
+
import { t as BetterServer } from "../server-CeVeeXwz.js";
|
|
4
|
+
import { a as AuthorizedContext, c as Unwrapped, n as ActionParsed, o as BlockActionOptions, r as ActionResult, s as BlockRequireOptions } from "../kit-B5tid-q5.js";
|
|
5
|
+
import { t as RefusalRedirects } from "../refusal-D1rgbzNq.js";
|
|
6
|
+
import { n as FrameworkOptions, t as FrameworkLocals } from "../framework-DuVb4Xa8.js";
|
|
7
|
+
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
8
|
+
//#region src/solid-start/index.d.ts
|
|
9
|
+
/** The part of a SolidStart `FetchEvent` the integration reads and writes. */
|
|
10
|
+
export interface SolidFetchEvent {
|
|
11
|
+
readonly request: Request;
|
|
12
|
+
readonly response: {
|
|
13
|
+
readonly headers: Headers;
|
|
14
|
+
};
|
|
15
|
+
readonly locals: Record<string, unknown>;
|
|
16
|
+
/** The H3 event; Nitro's Cloudflare presets put the bindings on its context. */
|
|
17
|
+
readonly nativeEvent?: {
|
|
18
|
+
readonly context?: {
|
|
19
|
+
readonly cloudflare?: {
|
|
20
|
+
readonly env?: unknown;
|
|
21
|
+
} | undefined;
|
|
22
|
+
} | undefined;
|
|
23
|
+
} | undefined;
|
|
24
|
+
}
|
|
25
|
+
export interface SolidStartOptions extends FrameworkOptions {
|
|
26
|
+
/**
|
|
27
|
+
* `getRequestEvent` from `solid-js/web`, which `require` and `action`
|
|
28
|
+
* call inside `"use server"` functions.
|
|
29
|
+
*/
|
|
30
|
+
readonly getRequestEvent: () => SolidFetchEvent | undefined;
|
|
31
|
+
/** The host's env object for `getEnv`; defaults to the Cloudflare bindings. */
|
|
32
|
+
readonly platformEnv?: (event: SolidFetchEvent) => unknown;
|
|
33
|
+
}
|
|
34
|
+
/** What `createMiddleware` from `@solidjs/start/middleware` takes. */
|
|
35
|
+
export interface SolidStartMiddleware {
|
|
36
|
+
readonly onRequest: (event: SolidFetchEvent) => Promise<Response | undefined>;
|
|
37
|
+
readonly onBeforeResponse: (event: SolidFetchEvent) => void;
|
|
38
|
+
}
|
|
39
|
+
export interface BetterSolidStart<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> extends BetterServer<M, F, E, C, P> {
|
|
40
|
+
/**
|
|
41
|
+
* Verifies the caller, refreshes the session cookie on navigations and
|
|
42
|
+
* form posts, and puts `db`, `bs`, `auth`, `tenant` and `session` on
|
|
43
|
+
* `event.locals`.
|
|
44
|
+
*
|
|
45
|
+
* ```ts title="src/middleware.ts"
|
|
46
|
+
* export default createMiddleware(bs.middleware)
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
readonly middleware: SolidStartMiddleware;
|
|
50
|
+
/** The current request's `locals`, inside a `"use server"` function. */
|
|
51
|
+
readonly locals: () => FrameworkLocals<M, F, E, C, P>;
|
|
52
|
+
/**
|
|
53
|
+
* The caller inside a `"use server"` function (a `query`, an `action`,
|
|
54
|
+
* an API route), or a thrown refusal: a redirect to `signIn` or `mfa`
|
|
55
|
+
* when configured, else Problem Details.
|
|
56
|
+
*
|
|
57
|
+
* ```ts
|
|
58
|
+
* const notes = query(async () => {
|
|
59
|
+
* "use server";
|
|
60
|
+
* const { db } = await bs.require();
|
|
61
|
+
* return db.notes.findMany().orThrow();
|
|
62
|
+
* }, "notes");
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
require<R extends boolean = false>(options?: BlockRequireOptions<C, P, R>): Promise<FrameworkLocals<M, F, E, C, P> & AuthorizedContext<C, P, R>>;
|
|
66
|
+
/**
|
|
67
|
+
* A server function returning an `ActionResult`, for `action()` from
|
|
68
|
+
* `@solidjs/router`: `FormData` or a plain object, validated by `input`.
|
|
69
|
+
*/
|
|
70
|
+
action<S extends StandardSchemaV1 | undefined, T, R extends boolean = false>(options: BlockActionOptions<S, C, P, R>, fn: (input: ActionParsed<S>, ctx: FrameworkLocals<M, F, E, C, P> & AuthorizedContext<C, P, R>) => T): (input: unknown) => Promise<ActionResult<Unwrapped<Awaited<T>>>>;
|
|
71
|
+
}
|
|
72
|
+
/** SolidStart integration: middleware, guards and server function actions. */
|
|
73
|
+
export declare function createSolidStart<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options: SolidStartOptions): BetterSolidStart<M, F, E, C, P>;
|
|
74
|
+
//#endregion
|
|
75
|
+
export type { ActionResult, RefusalRedirects };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { c as extendServer, n as flushEvents, s as createServer } from "../adapter-Bc1o3zyy.js";
|
|
2
|
+
import { t as defaultExpose } from "../respond-BUgsXNgk.js";
|
|
3
|
+
import { i as requireCaller, o as runAction } from "../kit-Fm-Fv7q5.js";
|
|
4
|
+
import { i as localsOf, r as frameworkEntry } from "../framework-CONDyPYx.js";
|
|
5
|
+
import { r as refusalResponse } from "../refusal-CeJWxmkH.js";
|
|
6
|
+
import { t as beforeRoute } from "../before-route-CnR0C0Jr.js";
|
|
7
|
+
//#region src/solid-start/index.ts
|
|
8
|
+
/** SolidStart integration: middleware, guards and server function actions. */
|
|
9
|
+
function createSolidStart(betterSupabase, options) {
|
|
10
|
+
const server = createServer(betterSupabase, options);
|
|
11
|
+
const expose = options.exposeErrors ?? defaultExpose();
|
|
12
|
+
const run = beforeRoute([frameworkEntry(server, options, expose)]);
|
|
13
|
+
const eventOf = () => {
|
|
14
|
+
const event = options.getRequestEvent();
|
|
15
|
+
if (event === void 0 || !("bs" in event.locals)) throw new TypeError("better-supabase: no request context; add createMiddleware(bs.middleware) in src/middleware.ts and call this inside a \"use server\" function");
|
|
16
|
+
return event;
|
|
17
|
+
};
|
|
18
|
+
const scopeOf = (event) => {
|
|
19
|
+
return event.locals;
|
|
20
|
+
};
|
|
21
|
+
return extendServer(server, {
|
|
22
|
+
middleware: {
|
|
23
|
+
onRequest: async (event) => {
|
|
24
|
+
const env = options.platformEnv ? options.platformEnv(event) : event.nativeEvent?.context?.cloudflare?.env;
|
|
25
|
+
const outcome = await run(event.request, env);
|
|
26
|
+
if (!outcome.reached) return outcome.response;
|
|
27
|
+
for (const cookie of outcome.headers.getSetCookie()) event.response.headers.append("set-cookie", cookie);
|
|
28
|
+
for (const [name, value] of outcome.headers) if (name !== "set-cookie") event.response.headers.set(name, value);
|
|
29
|
+
Object.assign(event.locals, localsOf(outcome.contributions));
|
|
30
|
+
},
|
|
31
|
+
onBeforeResponse: () => {
|
|
32
|
+
flushEvents(server, options.waitUntil);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
locals: () => scopeOf(eventOf()),
|
|
36
|
+
require: async (requireOptions = {}) => {
|
|
37
|
+
const event = eventOf();
|
|
38
|
+
const scope = scopeOf(event);
|
|
39
|
+
const caller = await requireCaller(scope.bs.auth, requireOptions, scope.tenant);
|
|
40
|
+
if ("kind" in caller) throw refusalResponse(caller, event.request, options, expose);
|
|
41
|
+
return {
|
|
42
|
+
...scope,
|
|
43
|
+
...caller
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
action(actionOptions, fn) {
|
|
47
|
+
return async (input) => {
|
|
48
|
+
const scope = scopeOf(eventOf());
|
|
49
|
+
return await runAction(scope.bs.auth, actionOptions, input, scope.tenant, (parsed, caller) => fn(parsed, {
|
|
50
|
+
...scope,
|
|
51
|
+
...caller
|
|
52
|
+
}));
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
export { createSolidStart };
|
|
@@ -14,7 +14,14 @@ const SPEC_PINS = {
|
|
|
14
14
|
postgrestAggregates: "12",
|
|
15
15
|
serverTiming: "WD-20260407",
|
|
16
16
|
stripeSyncEngine: "0.48.5",
|
|
17
|
-
pgvector: "0.8"
|
|
17
|
+
pgvector: "0.8",
|
|
18
|
+
ocsf: "1.9.0",
|
|
19
|
+
openfeature: "0.9.0",
|
|
20
|
+
scim: "2.0",
|
|
21
|
+
supabaseSdkCapabilities: "1.14.0",
|
|
22
|
+
aiMessage: "1",
|
|
23
|
+
aiSdkUiMessageStream: "v1",
|
|
24
|
+
anthropicMemoryTool: "20250818"
|
|
18
25
|
};
|
|
19
26
|
//#endregion
|
|
20
27
|
export { SPEC_PINS as t };
|
|
@@ -15,6 +15,13 @@ declare const SPEC_PINS: {
|
|
|
15
15
|
readonly serverTiming: "WD-20260407";
|
|
16
16
|
readonly stripeSyncEngine: "0.48.5";
|
|
17
17
|
readonly pgvector: "0.8";
|
|
18
|
+
readonly ocsf: "1.9.0";
|
|
19
|
+
readonly openfeature: "0.9.0";
|
|
20
|
+
readonly scim: "2.0";
|
|
21
|
+
readonly supabaseSdkCapabilities: "1.14.0";
|
|
22
|
+
readonly aiMessage: "1";
|
|
23
|
+
readonly aiSdkUiMessageStream: "v1";
|
|
24
|
+
readonly anthropicMemoryTool: "20250818";
|
|
18
25
|
};
|
|
19
26
|
//#endregion
|
|
20
27
|
export { SPEC_PINS as t };
|