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
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,17 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as Executor } from "../executor-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { n as
|
|
9
|
-
import { o as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { t as
|
|
13
|
-
import {
|
|
1
|
+
import { H as Update, L as TableKey, P as SchemaMeta, a as AnyModels, i as AnyFunctions, x as Insert } from "../types-6BdhkmZe.js";
|
|
2
|
+
import { r as Executor } from "../executor-DvsBbNBS.js";
|
|
3
|
+
import { t as SqlClient } from "../executor-DbvExCFC.js";
|
|
4
|
+
import { m as RequestContext, n as AnyPlugin } from "../plugin-FGY8UhYm.js";
|
|
5
|
+
import { n as AuthResolver } from "../resolve-KW8nCeL6.js";
|
|
6
|
+
import { a as CredentialSubject, i as CredentialRef, r as CredentialProvider } from "../provider-BH5UWZJ6.js";
|
|
7
|
+
import { k as QueueBackend } from "../queue-CLJurhdy.js";
|
|
8
|
+
import { n as Embedder } from "../knowledge-BXBbT0Tr.js";
|
|
9
|
+
import { o as StreamStore } from "../store-CGjgWu5n.js";
|
|
10
|
+
import { B as DbStats, b as Db, t as BetterSupabase, u as CacheAdapter } from "../define-CJJkkr1-.js";
|
|
11
|
+
import { r as EventSink, t as CloudEvent } from "../cloud-event-C1JCc1bH.js";
|
|
12
|
+
import { t as BetterPostgres } from "../pool-CAu2nLrL.js";
|
|
13
|
+
import { R as SupportSessionStore, i as ServerContext, o as ServerOptions } from "../server-CeVeeXwz.js";
|
|
14
|
+
import { s as Impersonator } from "../mfa-Daak8ukG.js";
|
|
15
|
+
import { n as SessionActor, r as SessionDelegation } from "../actor-CQTlc1Hh.js";
|
|
16
|
+
import { r as GuardOptions } from "../respond-DoBijysA.js";
|
|
17
|
+
import { i as AuthorizationProvider } from "../authorization-BFCqamMs.js";
|
|
18
|
+
import { i as AiTaskRun, o as AiTaskRunner, t as AiTask } from "../ai-tasks-Cd1HMFvB.js";
|
|
19
|
+
import { D as ResolvedConfig, _ as GeneratorInput, h as Generator, v as GeneratorModel } from "../config-D44Y7PAv.js";
|
|
20
|
+
import { a as BlockTransportMiddleware } from "../block-hooks-plbZ0AbJ.js";
|
|
21
|
+
import { t as NotificationChannel } from "../channel-_2Mx1Oyu.js";
|
|
22
|
+
import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-4y62_VIi.js";
|
|
23
|
+
import { T as WorkflowGraph, i as BuilderStarter, r as BuilderStartCall, s as GraphCompiler } from "../types-BI-0Sl2v.js";
|
|
24
|
+
import { t as EveDocumentBackend } from "../eve-gT2Fpjut.js";
|
|
14
25
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
26
|
+
import { Message, StateAdapter } from "chat";
|
|
15
27
|
import { webcrypto } from "node:crypto";
|
|
16
28
|
//#region src/testing/jwt.d.ts
|
|
17
29
|
interface TestJwtClaims {
|
|
@@ -111,19 +123,24 @@ interface TestUser<M extends AnyModels, F extends AnyFunctions, E> {
|
|
|
111
123
|
export declare function asUser<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, claims: TestJwtClaims, stack?: LocalStack): Promise<TestUser<M, F, E>>;
|
|
112
124
|
//#endregion
|
|
113
125
|
//#region src/testing/budget.d.ts
|
|
126
|
+
/** The part of a Playwright `Request` the budget check reads. */
|
|
127
|
+
interface BudgetRequest {
|
|
128
|
+
headers(): Record<string, string>;
|
|
129
|
+
}
|
|
114
130
|
/** The part of a Playwright `Response` the budget check reads. */
|
|
115
131
|
interface BudgetResponse {
|
|
116
132
|
url(): string;
|
|
117
133
|
headers(): Record<string, string>;
|
|
134
|
+
/** Never settles when the browser aborts the stream, so `requestfailed` ends the wait too. */
|
|
118
135
|
finished(): Promise<unknown>;
|
|
119
|
-
request():
|
|
120
|
-
headers(): Record<string, string>;
|
|
121
|
-
};
|
|
136
|
+
request(): BudgetRequest;
|
|
122
137
|
}
|
|
123
138
|
/** The part of a Playwright `Page` the budget check uses. */
|
|
124
139
|
interface BudgetPage {
|
|
125
140
|
on(event: "response", listener: (response: BudgetResponse) => void): unknown;
|
|
141
|
+
on(event: "requestfailed", listener: (request: BudgetRequest) => void): unknown;
|
|
126
142
|
off(event: "response", listener: (response: BudgetResponse) => void): unknown;
|
|
143
|
+
off(event: "requestfailed", listener: (request: BudgetRequest) => void): unknown;
|
|
127
144
|
reload(): Promise<unknown>;
|
|
128
145
|
readonly request: {
|
|
129
146
|
get(url: string): Promise<{
|
|
@@ -142,12 +159,39 @@ interface DbBudgetExpectation {
|
|
|
142
159
|
readonly prefetches?: boolean;
|
|
143
160
|
/** How long to wait for a streamed response to finish. Defaults to 10 seconds. */
|
|
144
161
|
readonly timeoutMs?: number;
|
|
162
|
+
/**
|
|
163
|
+
* How long to keep listening once `during` resolves and no new response
|
|
164
|
+
* arrives, for renders it started that answer later (the dynamic render
|
|
165
|
+
* after an `instant()` lock releases). Defaults to 500 ms.
|
|
166
|
+
*/
|
|
167
|
+
readonly settleMs?: number;
|
|
168
|
+
/**
|
|
169
|
+
* When no document or RSC response carries `x-bs-request-id`, throw
|
|
170
|
+
* (the default) or return `[]`. Cache-only navigations never hit the
|
|
171
|
+
* proxy, so they have no request id.
|
|
172
|
+
*/
|
|
173
|
+
readonly requireRequest?: boolean;
|
|
145
174
|
}
|
|
146
175
|
interface MeasuredRender {
|
|
147
176
|
readonly url: string;
|
|
148
177
|
readonly requestId: string;
|
|
149
178
|
readonly stats: DbStats;
|
|
150
179
|
}
|
|
180
|
+
/** What `expectDbBudget` measures on a plain fetch `Response`. */
|
|
181
|
+
interface ResponseBudgetExpectation {
|
|
182
|
+
readonly maxCalls?: number;
|
|
183
|
+
readonly maxWaves?: number;
|
|
184
|
+
/** The header `withDbStats` wrote. Defaults to `x-bs-db-calls`. */
|
|
185
|
+
readonly header?: string;
|
|
186
|
+
}
|
|
187
|
+
/** The calls, waves and time one response's request made. */
|
|
188
|
+
type ResponseDbStats = Pick<DbStats, "calls" | "waves" | "ms">;
|
|
189
|
+
/**
|
|
190
|
+
* Reads the `withDbStats()` header of a fetch `Response` from any adapter
|
|
191
|
+
* (Hono, SvelteKit, oRPC, an edge function) and fails when its request made
|
|
192
|
+
* more database calls or waves than allowed.
|
|
193
|
+
*/
|
|
194
|
+
export declare function expectDbBudget(response: Response, expectation: ResponseBudgetExpectation): ResponseDbStats;
|
|
151
195
|
/**
|
|
152
196
|
* Measures every document and RSC navigation response during `during` and
|
|
153
197
|
* fails when one render makes more database calls or waves than allowed.
|
|
@@ -155,6 +199,67 @@ interface MeasuredRender {
|
|
|
155
199
|
*/
|
|
156
200
|
export declare function expectDbBudget(page: BudgetPage, expectation: DbBudgetExpectation): Promise<readonly MeasuredRender[]>;
|
|
157
201
|
//#endregion
|
|
202
|
+
//#region src/testing/instant.d.ts
|
|
203
|
+
/** The part of a Playwright `BrowserContext` that `instant()` uses. */
|
|
204
|
+
interface InstantBrowserContext {
|
|
205
|
+
addCookies(cookies: {
|
|
206
|
+
name: string;
|
|
207
|
+
value: string;
|
|
208
|
+
url?: string;
|
|
209
|
+
domain?: string;
|
|
210
|
+
path?: string;
|
|
211
|
+
expires?: number;
|
|
212
|
+
}[]): Promise<void>;
|
|
213
|
+
cookies(): Promise<{
|
|
214
|
+
name: string;
|
|
215
|
+
value: string;
|
|
216
|
+
domain: string;
|
|
217
|
+
path: string;
|
|
218
|
+
}[]>;
|
|
219
|
+
}
|
|
220
|
+
/** The part of a Playwright `Page` that `expectInstant` uses. */
|
|
221
|
+
interface InstantPage extends BudgetPage {
|
|
222
|
+
url(): string;
|
|
223
|
+
context(): InstantBrowserContext;
|
|
224
|
+
}
|
|
225
|
+
/** The part of a Playwright `Locator` that `expectInstant` checks. */
|
|
226
|
+
interface InstantLocator {
|
|
227
|
+
waitFor(options: {
|
|
228
|
+
state: "visible";
|
|
229
|
+
timeout?: number;
|
|
230
|
+
}): Promise<void>;
|
|
231
|
+
count(): Promise<number>;
|
|
232
|
+
}
|
|
233
|
+
interface InstantExpectation {
|
|
234
|
+
/** The navigation to hold, such as a click on a `<Link>`. */
|
|
235
|
+
readonly during: () => Promise<unknown>;
|
|
236
|
+
/** Locators that must be visible while the lock holds. */
|
|
237
|
+
readonly visible: readonly InstantLocator[];
|
|
238
|
+
/** Locators that must not exist while the lock holds. */
|
|
239
|
+
readonly absent?: readonly InstantLocator[];
|
|
240
|
+
/**
|
|
241
|
+
* Fails when one render of the navigation makes more database calls, or
|
|
242
|
+
* when no render reached the proxy (a navigation the client cache served
|
|
243
|
+
* has nothing to measure: drop the budget for it).
|
|
244
|
+
*/
|
|
245
|
+
readonly maxCalls?: number;
|
|
246
|
+
/** Fails when one render of the navigation makes more sequential waves. */
|
|
247
|
+
readonly maxWaves?: number;
|
|
248
|
+
/** How long to wait for the render that streams in after the lock releases. Defaults to 500 ms. */
|
|
249
|
+
readonly settleMs?: number;
|
|
250
|
+
/** Scopes the lock on a page that has not loaded yet. */
|
|
251
|
+
readonly baseURL?: string;
|
|
252
|
+
/** How long each `visible` locator may take. Defaults to 5 seconds. */
|
|
253
|
+
readonly timeoutMs?: number;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Runs `during` inside `@next/playwright`'s `instant()`, checks what the
|
|
257
|
+
* prefetched UI shows while the lock holds, and with `maxCalls` or
|
|
258
|
+
* `maxWaves` checks the navigation's database budget like `expectDbBudget`.
|
|
259
|
+
* Needs a `next build` with the testing API exposed.
|
|
260
|
+
*/
|
|
261
|
+
export declare function expectInstant(page: InstantPage, expectation: InstantExpectation): Promise<readonly MeasuredRender[]>;
|
|
262
|
+
//#endregion
|
|
158
263
|
//#region src/testing/conformance.d.ts
|
|
159
264
|
interface ConformanceCheck {
|
|
160
265
|
readonly name: string;
|
|
@@ -171,10 +276,10 @@ export declare class ConformanceError extends Error {
|
|
|
171
276
|
readonly report: ConformanceReport;
|
|
172
277
|
constructor(report: ConformanceReport);
|
|
173
278
|
}
|
|
174
|
-
type AnySupabase = BetterSupabase<any, any, any, any>;
|
|
279
|
+
type AnySupabase$1 = BetterSupabase<any, any, any, any>;
|
|
175
280
|
interface TestExecutorOptions {
|
|
176
281
|
/** A definition whose schema matches the executor's database. Install no plugins. */
|
|
177
|
-
readonly betterSupabase: AnySupabase;
|
|
282
|
+
readonly betterSupabase: AnySupabase$1;
|
|
178
283
|
/** App key of a table with rows the executor can read. Defaults to the first table. */
|
|
179
284
|
readonly table?: string;
|
|
180
285
|
/** A row to insert and delete again, to check writes. Skips write checks when omitted. */
|
|
@@ -183,7 +288,8 @@ interface TestExecutorOptions {
|
|
|
183
288
|
/**
|
|
184
289
|
* Proves an `Executor` meets the contract: rows keyed by the selection's
|
|
185
290
|
* aliases, counts, `aborted` errors, failures returned as `Result`s rather
|
|
186
|
-
* than thrown, and (with `create`) a write round trip
|
|
291
|
+
* than thrown, and (with `create`) a write round trip and a `deleteMany`
|
|
292
|
+
* that `maxAffected` refuses without deleting anything.
|
|
187
293
|
*
|
|
188
294
|
* ```ts
|
|
189
295
|
* it('conforms', () => testExecutor(myExecutor, { betterSupabase, table: 'tags', create: { name: 'x' } }));
|
|
@@ -248,19 +354,9 @@ interface TestAuthResolverOptions {
|
|
|
248
354
|
* closed (`invalid`, never anon) on bad credentials, and never throws.
|
|
249
355
|
*/
|
|
250
356
|
export declare function testAuthResolver(resolver: AuthResolver, options: TestAuthResolverOptions): Promise<ConformanceReport>;
|
|
251
|
-
interface TestGeneratorOptions {
|
|
252
|
-
/** Schema metadata to generate from: `schema.meta` from your generated module. */
|
|
253
|
-
readonly meta: SchemaMeta;
|
|
254
|
-
/** Typegen metadata; defaults to an empty database. */
|
|
255
|
-
readonly introspection?: GeneratorInput["introspection"];
|
|
256
|
-
readonly extras?: GeneratorInput["extras"];
|
|
257
|
-
readonly config?: ResolvedConfig;
|
|
258
|
-
}
|
|
259
|
-
/** Proves a `Generator` writes relative, unique paths, is deterministic and doesn't mutate its input. */
|
|
260
|
-
export declare function testGenerator(generator: Generator, options: TestGeneratorOptions): Promise<ConformanceReport>;
|
|
261
357
|
interface TestPluginOptions {
|
|
262
358
|
/** The definition without this plugin. */
|
|
263
|
-
readonly betterSupabase: AnySupabase;
|
|
359
|
+
readonly betterSupabase: AnySupabase$1;
|
|
264
360
|
/** Table to exercise. Defaults to the first table. */
|
|
265
361
|
readonly table?: string;
|
|
266
362
|
/** Context the plugin needs, such as `{ tenant }` for `tenant()`. */
|
|
@@ -269,8 +365,10 @@ interface TestPluginOptions {
|
|
|
269
365
|
readonly create?: Readonly<Record<string, unknown>>;
|
|
270
366
|
}
|
|
271
367
|
/**
|
|
272
|
-
* Proves a `Plugin` targets API v1, installs cleanly
|
|
273
|
-
*
|
|
368
|
+
* Proves a `Plugin` targets API v1, installs cleanly on its own and next to
|
|
369
|
+
* the first-party plugins in either order, adds repository methods without
|
|
370
|
+
* replacing base ones, keeps `context`, `transformQuery` and
|
|
371
|
+
* `beforeMutation` pure and deterministic, and keeps executors'
|
|
274
372
|
* results intact when it wraps them.
|
|
275
373
|
*/
|
|
276
374
|
export declare function testPlugin(plugin: AnyPlugin, options: TestPluginOptions): Promise<ConformanceReport>;
|
|
@@ -326,6 +424,36 @@ interface TenantIsolationOptions<M extends AnyModels> {
|
|
|
326
424
|
*/
|
|
327
425
|
export declare function expectTenantIsolation<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, options: TenantIsolationOptions<M>): Promise<ConformanceReport>;
|
|
328
426
|
//#endregion
|
|
427
|
+
//#region src/testing/claims-fixtures.d.ts
|
|
428
|
+
/**
|
|
429
|
+
* Claims of a Supabase access token where someone acts for the user, with
|
|
430
|
+
* what `toSession` reads from them: `actor`, `impersonator` and
|
|
431
|
+
* `delegation`. Plain data, so another library that reads the same `act`
|
|
432
|
+
* claim (RFC 8693) can test against the same fixtures.
|
|
433
|
+
*/
|
|
434
|
+
interface SupabaseClaimFixture {
|
|
435
|
+
/** Without `iat` and `exp`, so a test signer sets them. */
|
|
436
|
+
readonly claims: {
|
|
437
|
+
readonly sub: string;
|
|
438
|
+
readonly [claim: string]: unknown;
|
|
439
|
+
};
|
|
440
|
+
readonly expect: {
|
|
441
|
+
readonly actor: SessionActor;
|
|
442
|
+
/** Set for support and impersonated sessions only. */
|
|
443
|
+
readonly impersonator?: Impersonator;
|
|
444
|
+
/** Set for an `oauth-client` actor only. */
|
|
445
|
+
readonly delegation?: SessionDelegation;
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
type SupabaseClaimFixtureName = "supportSession" | "supportSessionReadOnly" | "impersonation" | "oauthClient" | "agentChain";
|
|
449
|
+
/**
|
|
450
|
+
* `supportSession` and `supportSessionReadOnly` are what `supportClaims`
|
|
451
|
+
* mints (`act.kind: "support"`), `impersonation` what `actingAs` mints
|
|
452
|
+
* (`act.kind: "impersonation"`), `oauthClient` a Supabase OAuth server token
|
|
453
|
+
* and `agentChain` an RFC 8693 chain without `kind`.
|
|
454
|
+
*/
|
|
455
|
+
export declare const supabaseClaimFixtures: Readonly<Record<SupabaseClaimFixtureName, SupabaseClaimFixture>>;
|
|
456
|
+
//#endregion
|
|
329
457
|
//#region src/testing/seed.d.ts
|
|
330
458
|
/** Named rows per table, in app casing: `{ customers: { acme: { ... } } }`. */
|
|
331
459
|
type SeedFixtures<M extends AnyModels> = { readonly [K in keyof M]?: Readonly<Record<string, M[K]["Insert"]>>; };
|
|
@@ -356,13 +484,135 @@ export declare function isSeed(value: unknown): value is Seed<unknown>;
|
|
|
356
484
|
*/
|
|
357
485
|
export declare function defineSeed<M extends AnyModels, D, F extends AnyFunctions, E, const S extends SeedFixtures<M>>(betterSupabase: BetterSupabase<M, D, F, E>, fixtures: S & ExactSeed<M, S>): Seed<S>;
|
|
358
486
|
//#endregion
|
|
487
|
+
//#region src/testing/adapter.d.ts
|
|
488
|
+
type AnySupabase = BetterSupabase<any, any, any, any>;
|
|
489
|
+
/** What the adapter module asks a handler to do with the caller's context. */
|
|
490
|
+
type AdapterRun = (ctx: Pick<ServerContext<AnyModels, AnyFunctions, unknown>, "auth" | "replica">) => unknown;
|
|
491
|
+
interface TestAdapterOptions {
|
|
492
|
+
/** The definition the adapter is built from: the module tracks event sends on its `events`. */
|
|
493
|
+
readonly betterSupabase: AnySupabase;
|
|
494
|
+
/**
|
|
495
|
+
* Builds the adapter with `server` (pass it to `createX(betterSupabase,
|
|
496
|
+
* server)`) and returns a fetch function that answers a request with
|
|
497
|
+
* `run` as the caller, behind a guard that allows `allow`. Translate the
|
|
498
|
+
* module's bare GET into what the adapter expects (a JSON-RPC `tools/call`,
|
|
499
|
+
* an oRPC call) inside the function.
|
|
500
|
+
*/
|
|
501
|
+
readonly serve: (server: ServerOptions & {
|
|
502
|
+
readonly exposeErrors: false;
|
|
503
|
+
}, run: AdapterRun, options: {
|
|
504
|
+
readonly allow: NonNullable<GuardOptions["allow"]>;
|
|
505
|
+
readonly waitUntil: (promise: Promise<unknown>) => void;
|
|
506
|
+
}) => (request: Request) => Promise<Response>;
|
|
507
|
+
/** The adapter answers handler errors in a 200 body (MCP tool results), not with HTTP statuses. */
|
|
508
|
+
readonly errorsInBody?: boolean;
|
|
509
|
+
/** The adapter sends no cookies (bearer-only transports such as MCP). */
|
|
510
|
+
readonly cookies?: false;
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Proves a framework adapter refuses callers its guard rejects, answers
|
|
514
|
+
* `DbError`s with their status, hides unexpected errors, applies the
|
|
515
|
+
* context's cookies and hands pending event sends to `waitUntil`, the way
|
|
516
|
+
* `handle()` from `better-supabase/server` does.
|
|
517
|
+
*/
|
|
518
|
+
export declare function testAdapter(name: string, options: TestAdapterOptions): Promise<ConformanceReport>;
|
|
519
|
+
//#endregion
|
|
520
|
+
//#region src/testing/transport-middleware.d.ts
|
|
521
|
+
/**
|
|
522
|
+
* Proves a `BlockTransportMiddleware` meets the contract: it declares API 1
|
|
523
|
+
* and a name, calls `next` at most once per call, leaves the request it got
|
|
524
|
+
* unchanged, resolves when `next` does, and rejects with the database error
|
|
525
|
+
* `next` rejected with, so blocks still map it to a `DbError`.
|
|
526
|
+
*
|
|
527
|
+
* ```ts
|
|
528
|
+
* it('conforms', () => testBlockTransportMiddleware(statementTimeout('5s')));
|
|
529
|
+
* ```
|
|
530
|
+
*/
|
|
531
|
+
export declare function testBlockTransportMiddleware(middleware: BlockTransportMiddleware): Promise<ConformanceReport>;
|
|
532
|
+
//#endregion
|
|
533
|
+
//#region src/testing/authorization-provider.d.ts
|
|
534
|
+
/**
|
|
535
|
+
* Proves an `AuthorizationProvider` targets API v1, is plain JSON, names
|
|
536
|
+
* valid scopes with a tenant scope that has an id type, writes templates
|
|
537
|
+
* that are safe to inline and use the placeholders they need, lists every
|
|
538
|
+
* function its templates call in `requires`, and keeps its token hook,
|
|
539
|
+
* suspension rows, role sources and deciding columns well formed.
|
|
540
|
+
*/
|
|
541
|
+
export declare function testAuthorizationProvider(provider: AuthorizationProvider): Promise<ConformanceReport>;
|
|
542
|
+
//#endregion
|
|
543
|
+
//#region src/testing/generator.d.ts
|
|
544
|
+
interface TestGeneratorOptions {
|
|
545
|
+
/** Schema metadata to generate from: `schema.meta` from your generated module. */
|
|
546
|
+
readonly meta: SchemaMeta;
|
|
547
|
+
/** Typegen metadata; defaults to an empty database. */
|
|
548
|
+
readonly introspection?: GeneratorInput["introspection"];
|
|
549
|
+
readonly extras?: GeneratorInput["extras"];
|
|
550
|
+
readonly config?: ResolvedConfig;
|
|
551
|
+
/** Defaults to one built from `meta`, with `unknown` for column types it can't name. */
|
|
552
|
+
readonly model?: GeneratorModel;
|
|
553
|
+
}
|
|
554
|
+
/** Proves a `Generator` writes relative, unique paths, is deterministic and doesn't mutate its input. */
|
|
555
|
+
export declare function testGenerator(generator: Generator, options: TestGeneratorOptions): Promise<ConformanceReport>;
|
|
556
|
+
//#endregion
|
|
557
|
+
//#region src/testing/injectables.d.ts
|
|
558
|
+
interface TestEmbedderOptions {
|
|
559
|
+
/** The texts to embed. Defaults to two short sentences. */
|
|
560
|
+
readonly values?: readonly string[];
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Proves an `Embedder` for the knowledge and memory blocks names its model,
|
|
564
|
+
* embeds an empty list to nothing, and returns one finite vector per value,
|
|
565
|
+
* all of the same length on every call. It calls the real model.
|
|
566
|
+
*/
|
|
567
|
+
export declare function testEmbedder(embedder: Embedder, options?: TestEmbedderOptions): Promise<ConformanceReport>;
|
|
568
|
+
interface TestAiTaskRunnerOptions {
|
|
569
|
+
/** A task the runner can run, as the ai-tasks block passes it. */
|
|
570
|
+
readonly task: AiTask;
|
|
571
|
+
/** The claimed run for `task`. */
|
|
572
|
+
readonly run: AiTaskRun;
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* Proves an `AiTaskRunner` resolves with nothing or a chat id and stops when
|
|
576
|
+
* its signal is already aborted. It runs `options.task` for real.
|
|
577
|
+
*/
|
|
578
|
+
export declare function testAiTaskRunner(runner: AiTaskRunner, options: TestAiTaskRunnerOptions): Promise<ConformanceReport>;
|
|
579
|
+
interface TestGraphCompilerOptions {
|
|
580
|
+
/** A valid graph for the compiler's engine. */
|
|
581
|
+
readonly graph: WorkflowGraph;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Proves a `GraphCompiler` returns a JSON value (stored with the published
|
|
585
|
+
* version), compiles the same graph to the same value and leaves the graph
|
|
586
|
+
* unchanged.
|
|
587
|
+
*/
|
|
588
|
+
export declare function testGraphCompiler(compile: GraphCompiler, options: TestGraphCompilerOptions): Promise<ConformanceReport>;
|
|
589
|
+
interface TestBuilderStarterOptions {
|
|
590
|
+
/** A start call the engine can run. */
|
|
591
|
+
readonly call: BuilderStartCall;
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Proves a `BuilderStarter` returns a run id and returns the same id when
|
|
595
|
+
* the same idempotency key starts again. It starts real runs.
|
|
596
|
+
*/
|
|
597
|
+
export declare function testBuilderStarter(start: BuilderStarter, options: TestBuilderStarterOptions): Promise<ConformanceReport>;
|
|
598
|
+
interface TestEveDocumentBackendOptions {
|
|
599
|
+
/** The document key to write. Defaults to a random `conformance/` key. */
|
|
600
|
+
readonly key?: string;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* Proves an `EveDocumentBackend` reads a missing document as `null`, creates
|
|
604
|
+
* one with `expectedVersion: null`, refuses a stale version and moves the
|
|
605
|
+
* version on every write. It writes `options.key` on the real store.
|
|
606
|
+
*/
|
|
607
|
+
export declare function testEveDocumentBackend(backend: EveDocumentBackend, options?: TestEveDocumentBackendOptions): Promise<ConformanceReport>;
|
|
608
|
+
//#endregion
|
|
359
609
|
//#region src/testing/notification-channel.d.ts
|
|
360
610
|
interface TestNotificationChannelOptions {
|
|
361
611
|
/** The recipient's email in the sample message. Defaults to `null`. */
|
|
362
612
|
readonly email?: string | null;
|
|
363
613
|
/**
|
|
364
|
-
* The delivery ids the provider received, read after the
|
|
365
|
-
* given, the
|
|
614
|
+
* The delivery ids the provider received, read after the module sends. When
|
|
615
|
+
* given, the module checks that the sample message arrived.
|
|
366
616
|
*/
|
|
367
617
|
readonly received?: () => Promise<readonly string[]>;
|
|
368
618
|
}
|
|
@@ -376,7 +626,7 @@ export declare function testNotificationChannel(channel: NotificationChannel, op
|
|
|
376
626
|
//#region src/testing/webhooks.d.ts
|
|
377
627
|
interface TestWebhookSignerOptions {
|
|
378
628
|
/**
|
|
379
|
-
* The receiver's check, e.g. `verifyWebhook`. When given, the
|
|
629
|
+
* The receiver's check, e.g. `verifyWebhook`. When given, the module checks
|
|
380
630
|
* that the signed sample verifies with its secret.
|
|
381
631
|
*/
|
|
382
632
|
readonly verify?: (request: {
|
|
@@ -393,7 +643,7 @@ export declare function testWebhookSigner(signer: WebhookSigner, options?: TestW
|
|
|
393
643
|
interface TestWebhookTransportOptions {
|
|
394
644
|
/** A receiver the transport may POST the sample to, e.g. a local server. */
|
|
395
645
|
readonly url: string;
|
|
396
|
-
/** The bodies the receiver got, read after the
|
|
646
|
+
/** The bodies the receiver got, read after the module sends. */
|
|
397
647
|
readonly received?: () => Promise<readonly string[]>;
|
|
398
648
|
}
|
|
399
649
|
/**
|
|
@@ -413,4 +663,60 @@ interface TestWebhookSecretStoreOptions {
|
|
|
413
663
|
*/
|
|
414
664
|
export declare function testWebhookSecretStore(store: WebhookSecretStore, options: TestWebhookSecretStoreOptions): Promise<ConformanceReport>;
|
|
415
665
|
//#endregion
|
|
416
|
-
|
|
666
|
+
//#region src/testing/chat-state.d.ts
|
|
667
|
+
interface TestChatStateOptions {
|
|
668
|
+
/** Builds a queued message, e.g. `createTestMessage(id, text)` from `@chat-adapter/tests`. */
|
|
669
|
+
readonly message: (id: string, text: string) => Message;
|
|
670
|
+
/** A fresh key or thread id per call. Defaults to `conformance-<uuid>`. */
|
|
671
|
+
readonly id?: () => string;
|
|
672
|
+
/** The TTL the expiry checks use, in milliseconds. Defaults to 300. */
|
|
673
|
+
readonly ttlMs?: number;
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Runs the Chat SDK `StateAdapter` contract against `state`: subscriptions,
|
|
677
|
+
* one lock holder at a time with token-checked release and extension, lock
|
|
678
|
+
* and cache TTLs, `setIfNotExists`, list trimming, and a per-thread queue
|
|
679
|
+
* that keeps the newest entries, reports its depth and drops expired ones.
|
|
680
|
+
*/
|
|
681
|
+
export declare function testChatState(state: StateAdapter, options: TestChatStateOptions): Promise<ConformanceReport>;
|
|
682
|
+
//#endregion
|
|
683
|
+
//#region src/testing/streams.d.ts
|
|
684
|
+
interface TestStreamStoreOptions {
|
|
685
|
+
/** A fresh stream id per call. Defaults to `conformance-<uuid>`. */
|
|
686
|
+
readonly id?: () => string;
|
|
687
|
+
/** Milliseconds a read may take before the check fails. Defaults to 5000. */
|
|
688
|
+
readonly timeoutMs?: number;
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* Runs the `StreamStore` contract against `store`: the API version, open
|
|
692
|
+
* once, idempotent appends that refuse gaps, reads from any index that end
|
|
693
|
+
* when the stream closes, a live read that sees later appends, cancel seen by
|
|
694
|
+
* the writer, a closed stream that refuses appends, and a missing stream.
|
|
695
|
+
*/
|
|
696
|
+
export declare function testStreamStore(store: StreamStore, options?: TestStreamStoreOptions): Promise<ConformanceReport>;
|
|
697
|
+
//#endregion
|
|
698
|
+
//#region src/testing/credentials.d.ts
|
|
699
|
+
interface TestCredentialProviderOptions {
|
|
700
|
+
/** An app-scoped ref the kit may store into and revoke. */
|
|
701
|
+
readonly ref: CredentialRef;
|
|
702
|
+
/** Stores `value` as the credential `ref` names for `subject`. */
|
|
703
|
+
readonly seed: (ref: CredentialRef, subject: CredentialSubject, value: string) => Promise<void>;
|
|
704
|
+
/** A per-user ref, for providers that keep one credential per user. */
|
|
705
|
+
readonly userRef?: CredentialRef;
|
|
706
|
+
/** A ref with an inbound scheme and a function that signs a request with `secret`. */
|
|
707
|
+
readonly inbound?: {
|
|
708
|
+
readonly ref: CredentialRef;
|
|
709
|
+
readonly sign: (body: string, secret: string) => Promise<Request>;
|
|
710
|
+
};
|
|
711
|
+
}
|
|
712
|
+
/**
|
|
713
|
+
* Runs the `CredentialProvider` contract against `provider`: the API version,
|
|
714
|
+
* an unknown ref, a stored token with its headers, a new value seen after it
|
|
715
|
+
* is stored, separate credentials per user and per tenant (`ref` with a
|
|
716
|
+
* `tenant`, which `seed` must store too), revoke (per user, as the
|
|
717
|
+
* organization purger revokes connector grants), and inbound checks that
|
|
718
|
+
* accept a signed request and refuse a tampered one.
|
|
719
|
+
*/
|
|
720
|
+
export declare function testCredentialProvider(provider: CredentialProvider, options: TestCredentialProviderOptions): Promise<ConformanceReport>;
|
|
721
|
+
//#endregion
|
|
722
|
+
export type { AdapterRun, BudgetPage, BudgetRequest, BudgetResponse, ConformanceCheck, ConformanceReport, DbBudgetExpectation, ExactSeed, InstantBrowserContext, InstantExpectation, InstantLocator, InstantPage, IsolationTable, IsolationTables, IsolationTenant, LocalStack, MeasuredRender, ResponseBudgetExpectation, ResponseDbStats, Seed, SeedFixtures, SigningJwk, SupabaseClaimFixture, SupabaseClaimFixtureName, TenantIsolationOptions, TestAdapterOptions, TestAiTaskRunnerOptions, TestAuthResolverOptions, TestBuilderStarterOptions, TestChatStateOptions, TestCredentialProviderOptions, TestEmbedderOptions, TestEveDocumentBackendOptions, TestEventSinkOptions, TestExecutorOptions, TestGeneratorOptions, TestGraphCompilerOptions, TestJwtClaims, TestNotificationChannelOptions, TestPluginOptions, TestQueueBackendOptions, TestSigner, TestStreamStoreOptions, TestSupportSessionStoreOptions, TestUser, TestWebhookSecretStoreOptions, TestWebhookSignerOptions, TestWebhookTransportOptions };
|