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,225 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { i as refreshRealtimeAuth } from "../../../live-CTAZQkwl.js";
|
|
3
|
+
import { i as useAuth, l as useSupabase } from "../../../hooks-1BTCJsiw.js";
|
|
4
|
+
import { t as watchTopic } from "../../../react-topic-seAWjL3_.js";
|
|
5
|
+
import { REALTIME_SUBSCRIBE_STATES } from "@supabase/supabase-js";
|
|
6
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
7
|
+
//#region src/blocks/inbox/react/index.ts
|
|
8
|
+
function useLoader(load) {
|
|
9
|
+
const [items, setItems] = useState(void 0);
|
|
10
|
+
const [error, setError] = useState(void 0);
|
|
11
|
+
const latest = useRef(load);
|
|
12
|
+
latest.current = load;
|
|
13
|
+
return {
|
|
14
|
+
items,
|
|
15
|
+
setItems,
|
|
16
|
+
error,
|
|
17
|
+
refresh: useCallback(async () => {
|
|
18
|
+
try {
|
|
19
|
+
setItems(await latest.current());
|
|
20
|
+
setError(void 0);
|
|
21
|
+
} catch (cause) {
|
|
22
|
+
setError(cause);
|
|
23
|
+
}
|
|
24
|
+
}, [])
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The staff view of an organization's conversations, kept current: loads,
|
|
29
|
+
* then loads again after each ping on `inbox:org:<id>` and on rejoin.
|
|
30
|
+
*/
|
|
31
|
+
function useInbox(options) {
|
|
32
|
+
const supabase = useSupabase();
|
|
33
|
+
const auth = useAuth();
|
|
34
|
+
const { items, error, refresh } = useLoader(options.load);
|
|
35
|
+
const [status, setStatus] = useState("closed");
|
|
36
|
+
const onMessage = useRef(options.onMessage);
|
|
37
|
+
onMessage.current = options.onMessage;
|
|
38
|
+
const topic = options.organizationId === null ? null : `${options.topic ?? "inbox"}:org:${options.organizationId}`;
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (auth.status !== "signed-in" || topic === null) return;
|
|
41
|
+
refresh();
|
|
42
|
+
return watchTopic(supabase, topic, {
|
|
43
|
+
onMessage: (event, payload) => {
|
|
44
|
+
onMessage.current?.(event, payload);
|
|
45
|
+
refresh();
|
|
46
|
+
},
|
|
47
|
+
onRejoin: () => void refresh(),
|
|
48
|
+
onStatus: setStatus
|
|
49
|
+
});
|
|
50
|
+
}, [
|
|
51
|
+
supabase,
|
|
52
|
+
topic,
|
|
53
|
+
auth.status,
|
|
54
|
+
refresh
|
|
55
|
+
]);
|
|
56
|
+
return {
|
|
57
|
+
items,
|
|
58
|
+
status,
|
|
59
|
+
error,
|
|
60
|
+
refresh
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** Joins `topic` for messages and typing pings; returns the function that leaves it. */
|
|
64
|
+
function joinConversation(supabase, topic, handlers) {
|
|
65
|
+
const { userId, typingMs, refresh, setStatus, setTypers } = handlers;
|
|
66
|
+
let closed = false;
|
|
67
|
+
let joined = false;
|
|
68
|
+
const seen = /* @__PURE__ */ new Map();
|
|
69
|
+
const typer = (who, on) => {
|
|
70
|
+
const timer = seen.get(who);
|
|
71
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
72
|
+
if (on) seen.set(who, setTimeout(() => {
|
|
73
|
+
typer(who, false);
|
|
74
|
+
}, typingMs));
|
|
75
|
+
else seen.delete(who);
|
|
76
|
+
setTypers([...seen.keys()]);
|
|
77
|
+
};
|
|
78
|
+
const joinedChannel = supabase.channel(topic, { config: {
|
|
79
|
+
private: true,
|
|
80
|
+
broadcast: { self: false }
|
|
81
|
+
} });
|
|
82
|
+
handlers.channel.current = joinedChannel;
|
|
83
|
+
joinedChannel.on("broadcast", { event: "*" }, (message) => {
|
|
84
|
+
const payload = message["payload"];
|
|
85
|
+
if (message.event === "typing") {
|
|
86
|
+
if (typeof payload !== "object" || payload === null) return;
|
|
87
|
+
const who = "user_id" in payload ? String(payload.user_id) : "";
|
|
88
|
+
if (who !== "" && who !== userId) typer(who, !("typing" in payload) || payload.typing !== false);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
refresh();
|
|
92
|
+
});
|
|
93
|
+
(async () => {
|
|
94
|
+
setStatus("joining");
|
|
95
|
+
await refreshRealtimeAuth(supabase);
|
|
96
|
+
if (closed) return;
|
|
97
|
+
joinedChannel.subscribe((state) => {
|
|
98
|
+
switch (state) {
|
|
99
|
+
case REALTIME_SUBSCRIBE_STATES.SUBSCRIBED:
|
|
100
|
+
if (joined) refresh();
|
|
101
|
+
joined = true;
|
|
102
|
+
setStatus("subscribed");
|
|
103
|
+
return;
|
|
104
|
+
case REALTIME_SUBSCRIBE_STATES.CLOSED:
|
|
105
|
+
setStatus("closed");
|
|
106
|
+
return;
|
|
107
|
+
case REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR:
|
|
108
|
+
case REALTIME_SUBSCRIBE_STATES.TIMED_OUT:
|
|
109
|
+
setStatus("error");
|
|
110
|
+
return;
|
|
111
|
+
default: throw new Error(`Unknown realtime status ${String(state)}`);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
})();
|
|
115
|
+
return () => {
|
|
116
|
+
closed = true;
|
|
117
|
+
for (const timer of seen.values()) clearTimeout(timer);
|
|
118
|
+
handlers.channel.current = null;
|
|
119
|
+
setTypers([]);
|
|
120
|
+
supabase.removeChannel(joinedChannel);
|
|
121
|
+
setStatus("closed");
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* One conversation's messages, kept current over `inbox:<id>`, with typing
|
|
126
|
+
* pings between staff and the contact. Notes never reach this topic.
|
|
127
|
+
*/
|
|
128
|
+
function useConversation(options) {
|
|
129
|
+
const supabase = useSupabase();
|
|
130
|
+
const auth = useAuth();
|
|
131
|
+
const { items, error, refresh } = useLoader(options.load);
|
|
132
|
+
const [status, setStatus] = useState("closed");
|
|
133
|
+
const [typing, setTypers] = useState([]);
|
|
134
|
+
const channel = useRef(null);
|
|
135
|
+
const userId = auth.user?.id ?? null;
|
|
136
|
+
const typingMs = options.typingMs ?? 5e3;
|
|
137
|
+
const topic = options.conversationId === null ? null : `${options.topic ?? "inbox"}:${options.conversationId}`;
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
if (auth.status !== "signed-in" || topic === null) return;
|
|
140
|
+
refresh();
|
|
141
|
+
return joinConversation(supabase, topic, {
|
|
142
|
+
userId,
|
|
143
|
+
typingMs,
|
|
144
|
+
refresh,
|
|
145
|
+
setStatus,
|
|
146
|
+
setTypers,
|
|
147
|
+
channel
|
|
148
|
+
});
|
|
149
|
+
}, [
|
|
150
|
+
supabase,
|
|
151
|
+
topic,
|
|
152
|
+
auth.status,
|
|
153
|
+
userId,
|
|
154
|
+
typingMs,
|
|
155
|
+
refresh
|
|
156
|
+
]);
|
|
157
|
+
return {
|
|
158
|
+
items,
|
|
159
|
+
status,
|
|
160
|
+
error,
|
|
161
|
+
refresh,
|
|
162
|
+
typing,
|
|
163
|
+
setTyping: useCallback((on) => {
|
|
164
|
+
if (userId === null) return;
|
|
165
|
+
channel.current?.send({
|
|
166
|
+
type: "broadcast",
|
|
167
|
+
event: "typing",
|
|
168
|
+
payload: {
|
|
169
|
+
user_id: userId,
|
|
170
|
+
typing: on
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}, [userId])
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function storage() {
|
|
177
|
+
try {
|
|
178
|
+
return typeof localStorage === "undefined" ? void 0 : localStorage;
|
|
179
|
+
} catch {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The visitor side of an in-app inbox: the first message opens the
|
|
185
|
+
* conversation, later ones go into it, and the messages and typing pings
|
|
186
|
+
* stay current. Visitors without an account sign in anonymously first.
|
|
187
|
+
*/
|
|
188
|
+
function useInboxWidget(options) {
|
|
189
|
+
const key = options.storageKey === void 0 ? "better-supabase:inbox-widget" : options.storageKey;
|
|
190
|
+
const [conversationId, setConversationId] = useState(() => key === null ? null : storage()?.getItem(key) ?? null);
|
|
191
|
+
const latest = useRef(options);
|
|
192
|
+
latest.current = options;
|
|
193
|
+
const conversation = useConversation({
|
|
194
|
+
conversationId,
|
|
195
|
+
load: () => conversationId === null ? Promise.resolve([]) : latest.current.load(conversationId),
|
|
196
|
+
...options.topic === void 0 ? {} : { topic: options.topic }
|
|
197
|
+
});
|
|
198
|
+
const { refresh } = conversation;
|
|
199
|
+
const submit = useCallback(async (message) => {
|
|
200
|
+
if (conversationId === null) {
|
|
201
|
+
const id = await latest.current.open(message);
|
|
202
|
+
if (key !== null) storage()?.setItem(key, id);
|
|
203
|
+
setConversationId(id);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
await latest.current.send(conversationId, message);
|
|
207
|
+
await refresh();
|
|
208
|
+
}, [
|
|
209
|
+
conversationId,
|
|
210
|
+
key,
|
|
211
|
+
refresh
|
|
212
|
+
]);
|
|
213
|
+
const reset = useCallback(() => {
|
|
214
|
+
if (key !== null) storage()?.removeItem(key);
|
|
215
|
+
setConversationId(null);
|
|
216
|
+
}, [key]);
|
|
217
|
+
return {
|
|
218
|
+
...conversation,
|
|
219
|
+
conversationId,
|
|
220
|
+
submit,
|
|
221
|
+
reset
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
//#endregion
|
|
225
|
+
export { useConversation, useInbox, useInboxWidget };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { a as UseConversationOptions, i as InboxWidgetState, n as InboxListState, o as UseInboxOptions, r as InboxSource, s as UseInboxWidgetOptions, t as ConversationState } from "../../../index-ACiNPN4Z.js";
|
|
2
|
+
//#region src/blocks/inbox/react/server.d.ts
|
|
3
|
+
/** The `react-server` build of `useInbox`: call `inbox.conversations.list()` instead. */
|
|
4
|
+
export declare const useInbox: <T>(options: UseInboxOptions<T>) => InboxListState<T>;
|
|
5
|
+
/** The `react-server` build of `useConversation`: call `inbox.messages.list()` instead. */
|
|
6
|
+
export declare const useConversation: <T>(options: UseConversationOptions<T>) => ConversationState<T>;
|
|
7
|
+
/** The `react-server` build of `useInboxWidget`. */
|
|
8
|
+
export declare const useInboxWidget: <T>(options: UseInboxWidgetOptions<T>) => InboxWidgetState<T>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export type { ConversationState, InboxListState, InboxSource, InboxWidgetState, UseConversationOptions, UseInboxOptions, UseInboxWidgetOptions };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/blocks/inbox/react/server.ts
|
|
2
|
+
const clientOnly = (hook, instead) => {
|
|
3
|
+
throw new Error(`better-supabase: ${hook}() runs in Client Components only. In Server Components call ${instead} instead.`);
|
|
4
|
+
};
|
|
5
|
+
/** The `react-server` build of `useInbox`: call `inbox.conversations.list()` instead. */
|
|
6
|
+
const useInbox = () => clientOnly("useInbox", "`inbox.conversations.list()`");
|
|
7
|
+
/** The `react-server` build of `useConversation`: call `inbox.messages.list()` instead. */
|
|
8
|
+
const useConversation = () => clientOnly("useConversation", "`inbox.messages.list()`");
|
|
9
|
+
/** The `react-server` build of `useInboxWidget`. */
|
|
10
|
+
const useInboxWidget = () => clientOnly("useInboxWidget", "`inbox.messages.list()`");
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useConversation, useInbox, useInboxWidget };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { i as sqlTransport, n as RpcClient, r as rpcTransport, t as BlockTransport } from "../block-transport-DvaoPuZ9.js";
|
|
2
|
+
import { a as EventHub } from "../events-DWDhx77e.js";
|
|
3
|
+
import { r as CredentialProvider } from "../provider-BH5UWZJ6.js";
|
|
4
|
+
import { i as CursorPageOptions, n as BlockOptions } from "../block-helpers-CKtbFcRv.js";
|
|
5
|
+
import { f as AiFiles } from "../types-C05bxW-W.js";
|
|
6
|
+
import { n as FinalRunState, r as RunState, t as FINAL_RUN_STATES } from "../run-state-CPo-1X2B.js";
|
|
7
|
+
import { r as EventSink } from "../cloud-event-C1JCc1bH.js";
|
|
8
|
+
import { r as AiTaskOutcome } from "../ai-tasks-Cd1HMFvB.js";
|
|
9
|
+
import { a as BlockTransportMiddleware, c as ExtendBlockTools, d as extendBlock, f as withBlockHooks, i as BlockMethodName, l as WithBlockHooksOptions, n as BlockHooks, o as BlockTransportRequest, p as wrapTransport, r as BlockMethodHooks, s as ExtendBlockOptions, t as BlockHookInfo, u as defineTransportMiddleware } from "../block-hooks-plbZ0AbJ.js";
|
|
10
|
+
import { n as FieldsOf, r as blockFields, t as BlockFields } from "../block-fields-SJ6fEf3o.js";
|
|
11
|
+
//#region src/blocks/create-blocks.d.ts
|
|
12
|
+
/** The CloudEvents `source` of block events that `createBlocks` forwards. */
|
|
13
|
+
export declare const BLOCK_EVENT_SOURCE = "/better-supabase/blocks";
|
|
14
|
+
interface CreateBlocksOptions extends BlockOptions {
|
|
15
|
+
/** Connectors, ai-providers and the builder store their secrets here. */
|
|
16
|
+
readonly credentials?: CredentialProvider;
|
|
17
|
+
/** `betterSupabase.events`, for the block events of the blocks that emit them. */
|
|
18
|
+
readonly events?: EventHub;
|
|
19
|
+
/**
|
|
20
|
+
* Where block events go, such as `auditLog.sink()`. Needs `events`; the
|
|
21
|
+
* forwarding lasts until `close()`, so build these blocks once rather than
|
|
22
|
+
* per request.
|
|
23
|
+
*/
|
|
24
|
+
readonly audit?: EventSink;
|
|
25
|
+
/**
|
|
26
|
+
* The notification type ai-tasks sends for each finished run, through the
|
|
27
|
+
* `notifications` block. Its data is `{ taskId, runId, ok, error?, chatId? }`.
|
|
28
|
+
*/
|
|
29
|
+
readonly aiTaskNotification?: string;
|
|
30
|
+
}
|
|
31
|
+
/** What each block factory receives: the shared options and its siblings. */
|
|
32
|
+
interface BlockContext extends BlockOptions {
|
|
33
|
+
readonly credentials?: CredentialProvider;
|
|
34
|
+
readonly events?: EventHub;
|
|
35
|
+
/** The `aiFiles` block, for knowledge. */
|
|
36
|
+
readonly files?: AiFiles;
|
|
37
|
+
/** Sends `aiTaskNotification` through the `notifications` block, for ai-tasks. */
|
|
38
|
+
readonly notify?: (outcome: AiTaskOutcome) => unknown;
|
|
39
|
+
}
|
|
40
|
+
/** Builds one block, usually a block creator such as `createOrganizations`. */
|
|
41
|
+
type BlockFactory<T = unknown> = (context: BlockContext) => T;
|
|
42
|
+
type BlockFactories = Readonly<Record<string, BlockFactory>> & {
|
|
43
|
+
readonly aiFiles?: BlockFactory<AiFiles>;
|
|
44
|
+
};
|
|
45
|
+
type BuiltBlocks<F extends BlockFactories> = { readonly [K in keyof F]: F[K] extends BlockFactory<infer T> ? T : never; };
|
|
46
|
+
/** `withBlockHooks` hooks for each block, keyed by the names in `factories`. */
|
|
47
|
+
type BlocksHooks<F extends BlockFactories> = { readonly [K in keyof F]?: BlockHooks<BuiltBlocks<F>[K]>; };
|
|
48
|
+
type Blocks<F extends BlockFactories> = BuiltBlocks<F> & {
|
|
49
|
+
/** Stops forwarding block events to `audit`. */
|
|
50
|
+
close(): void;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Builds the blocks in `factories` with one set of options, and wires the
|
|
54
|
+
* siblings they share: the `aiFiles` block into knowledge, `credentials`
|
|
55
|
+
* into connectors, ai-providers and the builder, the `notifications` block
|
|
56
|
+
* into ai-tasks (with `aiTaskNotification`), and block events into `audit`.
|
|
57
|
+
* Only the blocks you pass are imported, so the rest stay out of the bundle.
|
|
58
|
+
* `hooks` wraps each block's methods with `withBlockHooks`, so siblings that
|
|
59
|
+
* call a block (ai-tasks sending notifications) go through its hooks too.
|
|
60
|
+
*/
|
|
61
|
+
export declare function createBlocks<const F extends BlockFactories>(options: CreateBlocksOptions & {
|
|
62
|
+
readonly hooks?: NoInfer<BlocksHooks<F>>;
|
|
63
|
+
}, factories: F): Blocks<F>;
|
|
64
|
+
//#endregion
|
|
65
|
+
export { type BlockContext, type BlockFactories, type BlockFactory, type BlockFields, type BlockHookInfo, type BlockHooks, type BlockMethodHooks, type BlockMethodName, type BlockOptions, type BlockTransport, type BlockTransportMiddleware, type BlockTransportRequest, type Blocks, type BlocksHooks, type CreateBlocksOptions, type CursorPageOptions, type ExtendBlockOptions, type ExtendBlockTools, FINAL_RUN_STATES, type FieldsOf, type FinalRunState, type RpcClient, type RunState, type WithBlockHooksOptions, blockFields, defineTransportMiddleware, extendBlock, rpcTransport, sqlTransport, withBlockHooks, wrapTransport };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { n as forwardBlockEvents } from "../cloud-event-BnmD5fb9.js";
|
|
2
|
+
import { n as rpcTransport, r as sqlTransport } from "../block-transport-BLr-ZgLc.js";
|
|
3
|
+
import { d as isRecord } from "../block-helpers-DWHxHsEQ.js";
|
|
4
|
+
import { i as wrapTransport, n as extendBlock, r as withBlockHooks, t as defineTransportMiddleware } from "../block-hooks-BmjMyXTa.js";
|
|
5
|
+
import { t as FINAL_RUN_STATES } from "../run-state-CgBKzYMW.js";
|
|
6
|
+
import { t as blockFields } from "../block-fields-GFkxl4dP.js";
|
|
7
|
+
//#region src/blocks/create-blocks.ts
|
|
8
|
+
/** The CloudEvents `source` of block events that `createBlocks` forwards. */
|
|
9
|
+
const BLOCK_EVENT_SOURCE = "/better-supabase/blocks";
|
|
10
|
+
const isNotificationSender = (value) => isRecord(value) && typeof value["send"] === "function";
|
|
11
|
+
/**
|
|
12
|
+
* Builds the blocks in `factories` with one set of options, and wires the
|
|
13
|
+
* siblings they share: the `aiFiles` block into knowledge, `credentials`
|
|
14
|
+
* into connectors, ai-providers and the builder, the `notifications` block
|
|
15
|
+
* into ai-tasks (with `aiTaskNotification`), and block events into `audit`.
|
|
16
|
+
* Only the blocks you pass are imported, so the rest stay out of the bundle.
|
|
17
|
+
* `hooks` wraps each block's methods with `withBlockHooks`, so siblings that
|
|
18
|
+
* call a block (ai-tasks sending notifications) go through its hooks too.
|
|
19
|
+
*/
|
|
20
|
+
function createBlocks(options, factories) {
|
|
21
|
+
const { credentials, events, audit, aiTaskNotification, hooks, ...shared } = options;
|
|
22
|
+
if (audit !== void 0 && events === void 0) throw new TypeError("createBlocks: `audit` needs `events` to forward");
|
|
23
|
+
const built = /* @__PURE__ */ new Map();
|
|
24
|
+
const building = /* @__PURE__ */ new Set();
|
|
25
|
+
const notify = aiTaskNotification === void 0 || factories["notifications"] === void 0 ? void 0 : (outcome) => {
|
|
26
|
+
const notifications = build("notifications");
|
|
27
|
+
if (!isNotificationSender(notifications)) throw new TypeError("The notifications block has no send method");
|
|
28
|
+
return notifications.send(aiTaskNotification, {
|
|
29
|
+
recipients: [outcome.task.userId],
|
|
30
|
+
tenant: outcome.task.organizationId,
|
|
31
|
+
key: `ai-task-run:${outcome.run.id}`,
|
|
32
|
+
data: {
|
|
33
|
+
taskId: outcome.task.id,
|
|
34
|
+
runId: outcome.run.id,
|
|
35
|
+
ok: outcome.ok,
|
|
36
|
+
...outcome.error === void 0 ? {} : { error: outcome.error },
|
|
37
|
+
...outcome.chatId === void 0 ? {} : { chatId: outcome.chatId }
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
function contextFor(name) {
|
|
42
|
+
const files = name === "aiFiles" || factories.aiFiles === void 0 ? void 0 : build("aiFiles");
|
|
43
|
+
return {
|
|
44
|
+
...shared,
|
|
45
|
+
...credentials === void 0 ? {} : { credentials },
|
|
46
|
+
...events === void 0 ? {} : { events },
|
|
47
|
+
...files === void 0 ? {} : { files },
|
|
48
|
+
...notify === void 0 ? {} : { notify }
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function build(name) {
|
|
52
|
+
if (built.has(name)) return built.get(name);
|
|
53
|
+
const factory = factories[name];
|
|
54
|
+
if (factory === void 0) throw new TypeError(`No block named "${name}"`);
|
|
55
|
+
if (building.has(name)) throw new TypeError(`The "${name}" block depends on itself`);
|
|
56
|
+
building.add(name);
|
|
57
|
+
try {
|
|
58
|
+
const created = factory(contextFor(name));
|
|
59
|
+
const blockHooks = hooks?.[name];
|
|
60
|
+
const block = blockHooks !== void 0 && isRecord(created) ? withBlockHooks(created, blockHooks, {
|
|
61
|
+
block: name,
|
|
62
|
+
...events === void 0 ? {} : { logger: events.logger }
|
|
63
|
+
}) : created;
|
|
64
|
+
built.set(name, block);
|
|
65
|
+
return block;
|
|
66
|
+
} finally {
|
|
67
|
+
building.delete(name);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const blocks = {};
|
|
71
|
+
for (const name of Object.keys(factories)) blocks[name] = build(name);
|
|
72
|
+
const stop = audit === void 0 || events === void 0 ? void 0 : forwardBlockEvents({ events }, audit, { source: BLOCK_EVENT_SOURCE });
|
|
73
|
+
blocks["close"] = () => stop?.();
|
|
74
|
+
return blocks;
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { BLOCK_EVENT_SOURCE, FINAL_RUN_STATES, blockFields, createBlocks, defineTransportMiddleware, extendBlock, rpcTransport, sqlTransport, withBlockHooks, wrapTransport };
|