better-supabase 0.7.0 → 0.8.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 +6 -2
- package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
- package/dist/{adapter-B-tL8hqg.js → adapter-CN45ibbV.js} +663 -157
- package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
- package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
- package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
- package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
- package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
- package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
- package/dist/ai-message-DfaP8sis.js +14 -0
- package/dist/ai-sdk/agents/index.d.ts +4 -4
- package/dist/ai-sdk/batches/index.d.ts +4 -4
- package/dist/ai-sdk/batches/index.js +4 -4
- package/dist/ai-sdk/cache/index.d.ts +2 -2
- package/dist/ai-sdk/cache/index.js +2 -2
- package/dist/ai-sdk/chat/index.d.ts +1 -1
- package/dist/ai-sdk/chat/index.js +8 -20
- package/dist/ai-sdk/embeddings/index.d.ts +2 -2
- package/dist/ai-sdk/files/index.d.ts +3 -3
- package/dist/ai-sdk/files/index.js +4 -4
- package/dist/ai-sdk/index.d.ts +37 -9
- package/dist/ai-sdk/index.js +3 -2
- package/dist/ai-sdk/mcp/index.d.ts +43 -6
- package/dist/ai-sdk/mcp/index.js +36 -7
- package/dist/ai-sdk/memory/index.d.ts +2 -2
- package/dist/ai-sdk/memory/index.js +1 -1
- package/dist/ai-sdk/workflow/index.d.ts +6 -6
- package/dist/ai-sdk/workflow/index.js +13 -24
- package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
- package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
- package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
- package/dist/api-Dnf2q-Ht.d.ts +370 -0
- package/dist/api-DtHFC037.js +676 -0
- package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
- package/dist/arazzo/index.d.ts +255 -0
- package/dist/arazzo/index.js +622 -0
- package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
- package/dist/astro/index.d.ts +7 -7
- package/dist/astro/index.js +7 -7
- package/dist/asyncapi/index.d.ts +103 -0
- package/dist/asyncapi/index.js +569 -0
- package/dist/authorizer-ayxUDXXP.js +126 -0
- package/dist/authorizer-eiOjo-3l.d.ts +73 -0
- package/dist/better-result/index.d.ts +118 -0
- package/dist/better-result/index.js +64 -0
- package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
- package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
- package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
- package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
- package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
- package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
- package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
- package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
- package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
- package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
- package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
- package/dist/blocks/agents/index.d.ts +3 -3
- package/dist/blocks/agents/index.js +5 -4
- package/dist/blocks/ai-cache/index.d.ts +3 -3
- package/dist/blocks/ai-cache/index.js +3 -3
- package/dist/blocks/ai-chat/index.d.ts +9 -4
- package/dist/blocks/ai-chat/index.js +5 -5
- package/dist/blocks/ai-chat/react/index.d.ts +3 -3
- package/dist/blocks/ai-chat/react/index.js +5 -5
- package/dist/blocks/ai-files/index.d.ts +3 -3
- package/dist/blocks/ai-files/index.js +3 -3
- package/dist/blocks/ai-providers/index.d.ts +3 -3
- package/dist/blocks/ai-providers/index.js +8 -7
- package/dist/blocks/ai-tasks/index.d.ts +3 -3
- package/dist/blocks/ai-tasks/index.js +7 -6
- package/dist/blocks/announcements/index.d.ts +3 -3
- package/dist/blocks/announcements/index.js +3 -3
- package/dist/blocks/announcements/react/index.d.ts +3 -3
- package/dist/blocks/announcements/react/index.js +3 -3
- package/dist/blocks/api-keys/index.d.ts +5 -5
- package/dist/blocks/api-keys/index.js +8 -8
- package/dist/blocks/attachments/index.d.ts +12 -8
- package/dist/blocks/attachments/index.js +22 -13
- package/dist/blocks/audit/index.d.ts +21 -10
- package/dist/blocks/audit/index.js +30 -11
- package/dist/blocks/billing/index.d.ts +11 -9
- package/dist/blocks/billing/index.js +15 -15
- package/dist/blocks/comments/index.d.ts +8 -8
- package/dist/blocks/comments/index.js +8 -7
- package/dist/blocks/connectors/index.d.ts +3 -3
- package/dist/blocks/connectors/index.js +7 -6
- package/dist/blocks/data-lifecycle/index.d.ts +12 -8
- package/dist/blocks/data-lifecycle/index.js +13 -8
- package/dist/blocks/entitlements/index.d.ts +3 -3
- package/dist/blocks/entitlements/index.js +1 -1
- package/dist/blocks/flags/index.d.ts +4 -4
- package/dist/blocks/flags/index.js +4 -3
- package/dist/blocks/inbox/index.d.ts +3 -3
- package/dist/blocks/inbox/index.js +4 -5
- package/dist/blocks/inbox/react/index.d.ts +1 -1
- package/dist/blocks/inbox/react/index.js +1 -1
- package/dist/blocks/inbox/react/server.d.ts +1 -1
- package/dist/blocks/index.d.ts +10 -10
- package/dist/blocks/index.js +6 -6
- package/dist/blocks/jobs/index.d.ts +48 -32
- package/dist/blocks/jobs/index.js +44 -287
- package/dist/blocks/knowledge/index.d.ts +3 -3
- package/dist/blocks/knowledge/index.js +3 -3
- package/dist/blocks/memory/index.d.ts +4 -4
- package/dist/blocks/memory/index.js +7 -6
- package/dist/blocks/notifications/index.d.ts +11 -9
- package/dist/blocks/notifications/index.js +20 -25
- package/dist/blocks/notifications/react/index.d.ts +1 -1
- package/dist/blocks/notifications/react/index.js +1 -1
- package/dist/blocks/onboarding/index.d.ts +3 -3
- package/dist/blocks/onboarding/index.js +3 -3
- package/dist/blocks/onboarding/react/index.d.ts +2 -2
- package/dist/blocks/onboarding/react/index.js +2 -2
- package/dist/blocks/onboarding/react/server.d.ts +1 -1
- package/dist/blocks/organizations/index.d.ts +9 -9
- package/dist/blocks/organizations/index.js +11 -18
- package/dist/blocks/outbox/index.d.ts +2 -2
- package/dist/blocks/outbox/index.js +16 -25
- package/dist/blocks/profiles/index.d.ts +7 -7
- package/dist/blocks/profiles/index.js +7 -6
- package/dist/blocks/push/index.d.ts +4 -4
- package/dist/blocks/push/index.js +3 -3
- package/dist/blocks/settings/index.d.ts +4 -4
- package/dist/blocks/settings/index.js +7 -6
- package/dist/blocks/sso/index.d.ts +5 -5
- package/dist/blocks/sso/index.js +6 -5
- package/dist/blocks/usage/index.d.ts +3 -3
- package/dist/blocks/usage/index.js +5 -4
- package/dist/blocks/waitlist/index.d.ts +5 -5
- package/dist/blocks/waitlist/index.js +5 -4
- package/dist/blocks/webhooks/index.d.ts +22 -13
- package/dist/blocks/webhooks/index.js +41 -70
- package/dist/blocks/workflow-builder/index.d.ts +4 -4
- package/dist/blocks/workflow-builder/index.js +3 -3
- package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
- package/dist/blocks/workflow-builder/react/index.js +4 -4
- package/dist/blocks/workflows/index.d.ts +3 -3
- package/dist/blocks/workflows/index.js +3 -3
- package/dist/blocks/workflows/react/index.d.ts +3 -3
- package/dist/blocks/workflows/react/index.js +3 -3
- package/dist/build-hPwk3_X5.js +1296 -0
- package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
- package/dist/casing-DdFWEtqr.js +16 -0
- package/dist/chat-sdk/index.d.ts +6 -6
- package/dist/chat-sdk/index.js +5 -4
- package/dist/chat-sdk/react/index.d.ts +1 -1
- package/dist/chat-sdk/react/server.d.ts +1 -1
- package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
- package/dist/cli/add-1dc5wM5k.js +69 -0
- package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
- package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
- package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
- package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
- package/dist/cli/bin.js +4 -4
- package/dist/cli/cache-CIfA-jBV.js +483 -0
- package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
- package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
- package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
- package/dist/cli/config-DpbF8ML3.js +2 -0
- package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
- package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
- package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
- package/dist/cli/{doctor-CVdnLahA.js → doctor-VcDtuusV.js} +317 -222
- package/dist/cli/emit-BHHfwUoT.js +1136 -0
- package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
- package/dist/cli/env-vzBG90Um.js +2 -0
- package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
- package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
- package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
- package/dist/cli/files-BVupXPIC.js +34 -0
- package/dist/cli/gen-DmVj3u4L.js +322 -0
- package/dist/cli/{init-Cr6arjXU.js → glue-C1UE8gQN.js} +16 -313
- package/dist/cli/index.d.ts +59 -31
- package/dist/cli/index.js +8 -6
- package/dist/cli/init-CVZ3s5kl.js +258 -0
- package/dist/cli/{introspect-Bzuv1HHj.js → introspect-BToGNfm-.js} +14 -14
- package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
- package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
- package/dist/cli/metadata-DSRKCaf-.js +133 -0
- package/dist/cli/names-D6LrQnOv.js +6 -0
- package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
- package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
- package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
- package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
- package/dist/cli/prompts-BdeVmVpg.js +2 -0
- package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
- package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
- package/dist/cli/run-DA6_lg3w.js +389 -0
- package/dist/cli/run-DuN1MX-7.js +705 -0
- package/dist/cli/scaffold-5DenHSxF.js +292 -0
- package/dist/cli/scaffold-CwQUMFRb.js +2 -0
- package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
- package/dist/cli/seed-DOmit9Hq.js +2 -0
- package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
- package/dist/cli/snapshot-Bstk6ulj.js +287 -0
- package/dist/cli/source-args-BYfq6imV.js +31 -0
- package/dist/cli/spec-CzosTYm3.js +7438 -0
- package/dist/cli/spec-T_0Bcyw7.js +2 -0
- package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
- package/dist/cli/sql-DJrNDxQm.js +3 -0
- package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
- package/dist/cli/typegen-Demi5-VQ.js +486 -0
- package/dist/cli/validate-Ca13ktgz.js +7522 -0
- package/dist/cli/{version-Bp4fyubI.js → version-B4k0aUxS.js} +1 -1
- package/dist/client/index.d.ts +4 -3
- package/dist/client/index.js +60 -3
- package/dist/client/native/index.d.ts +3 -3
- package/dist/client/native/index.js +3 -3
- package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
- package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
- package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
- package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
- package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
- package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
- package/dist/{composite-CpHLEo-G.d.ts → composite-CWAJTRBF.d.ts} +6 -6
- package/dist/{composite-C6I8ZyaF.js → composite-zTe0TCqj.js} +4 -4
- package/dist/config/index.d.ts +3 -4
- package/dist/config/index.js +4 -4
- package/dist/config-DlKvtt95.js +540 -0
- package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
- package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
- package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
- package/dist/context-nPDvQ-Zl.js +41 -0
- package/dist/credentials/index.d.ts +5 -5
- package/dist/credentials/index.js +9 -17
- package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
- package/dist/cron-route-D2AN9SA1.js +24 -0
- package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
- package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
- package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
- package/dist/edge/index.d.ts +66 -13
- package/dist/edge/index.js +65 -39
- package/dist/elysia/index.d.ts +1 -1
- package/dist/elysia/index.js +1 -1
- package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
- package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
- package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
- package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.js +9 -2
- package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
- package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
- package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +5 -11
- package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
- package/dist/events/index.d.ts +4 -4
- package/dist/events/index.js +7 -2
- package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
- package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
- package/dist/executor-B_Hfobee.js +162 -0
- package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
- package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
- package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
- package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
- package/dist/expo/index.d.ts +4 -4
- package/dist/expo/index.js +6 -6
- package/dist/expo-sqlite/index.d.ts +3 -3
- package/dist/expo-sqlite/index.js +2 -2
- package/dist/extra-CGQ2_q3S.js +10 -0
- package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
- package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
- package/dist/format-DTXdu8ya.d.ts +70 -0
- package/dist/{framework-KIPvRQJU.d.ts → framework-148t1m3C.d.ts} +5 -5
- package/dist/{framework-BDCpJI7o.js → framework-3ey3QmrO.js} +2 -2
- package/dist/function-contract-BcZenXMO.d.ts +8 -0
- package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
- package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
- package/dist/h3/index.d.ts +1 -1
- package/dist/h3/index.js +1 -1
- package/dist/h3/v1/index.d.ts +1 -1
- package/dist/h3/v1/index.js +1 -1
- package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
- package/dist/hmac-DCud0myt.js +22 -0
- package/dist/hono/index.d.ts +19 -14
- package/dist/hono/index.js +21 -16
- package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
- package/dist/http-sbmBe5d2.js +25 -0
- package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
- package/dist/index-B72Rvv_j.d.ts +89 -0
- package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
- package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
- package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
- package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
- package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
- package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
- package/dist/index-DG2SUXDQ.d.ts +58 -0
- package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
- package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
- package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
- package/dist/index.d.ts +89 -14
- package/dist/index.js +12 -11
- package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
- package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
- package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
- package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
- package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
- package/dist/list/index.d.ts +1 -2
- package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
- package/dist/mcp/index.d.ts +49 -19
- package/dist/mcp/index.js +158 -94
- package/dist/mcp/sdk/index.d.ts +38 -6
- package/dist/mcp/sdk/index.js +88 -6
- package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
- package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
- package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
- package/dist/model-OgBxvk3N.d.ts +300 -0
- package/dist/model-messages-Cxw_Up4f.js +206 -0
- package/dist/model-messages-D4GZllOD.d.ts +34 -0
- package/dist/modules-DksjZyMW.js +77 -0
- package/dist/nestjs/index.d.ts +2 -2
- package/dist/nestjs/index.js +1 -1
- package/dist/next/index.d.ts +105 -55
- package/dist/next/index.js +204 -170
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
- package/dist/openapi/index.d.ts +4 -2
- package/dist/openapi/index.js +21 -343
- package/dist/optional-peer-D1pi-skw.js +24 -0
- package/dist/orpc/index.d.ts +8 -8
- package/dist/orpc/index.js +21 -20
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +7 -7
- package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
- package/dist/overlay/index.d.ts +233 -0
- package/dist/overlay/index.js +554 -0
- package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
- package/dist/plugins/actor/index.d.ts +1 -1
- package/dist/plugins/actor/index.js +1 -1
- package/dist/plugins/rules/index.d.ts +2 -2
- package/dist/plugins/rules/index.js +1 -1
- package/dist/plugins/soft-delete/index.d.ts +3 -3
- package/dist/plugins/soft-delete/index.js +9 -2
- package/dist/plugins/tenant/index.d.ts +7 -2
- package/dist/plugins/tenant/index.js +16 -2
- package/dist/plugins/timestamps/index.d.ts +1 -1
- package/dist/plugins/timestamps/index.js +8 -1
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +4 -4
- package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
- package/dist/postgres/index.d.ts +4 -4
- package/dist/postgres/index.js +2 -1
- package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
- package/dist/powersync/index.d.ts +5 -5
- package/dist/powersync/index.js +4 -4
- package/dist/powersync/react/index.d.ts +3 -3
- package/dist/powersync/react/index.js +1 -1
- package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
- package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
- package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
- package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
- package/dist/query/index.d.ts +2 -2
- package/dist/query/index.js +1 -1
- package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
- package/dist/rate-limit-Bw7HgmFj.js +260 -0
- package/dist/react/index.d.ts +9 -9
- package/dist/react/index.js +4 -4
- package/dist/react/native/index.d.ts +1 -1
- package/dist/react/native/index.js +2 -2
- package/dist/react/server.d.ts +10 -10
- package/dist/react/server.js +3 -3
- package/dist/react/session.d.ts +2 -2
- package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
- package/dist/react-router/index.d.ts +6 -6
- package/dist/react-router/index.js +9 -11
- package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
- package/dist/realtime/index.d.ts +3 -3
- package/dist/realtime/index.js +30 -36
- package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
- package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
- package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
- package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
- package/dist/resource--vTrBe6I.d.ts +103 -0
- package/dist/resource-BqNqlYg9.js +91 -0
- package/dist/resource-DA811u_4.js +463 -0
- package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
- package/dist/resource-schemas-BJ518zFH.js +79 -0
- package/dist/resource-types-CqB6GWGT.d.ts +141 -0
- package/dist/resources-BVYPnuLo.js +56 -0
- package/dist/resources-DZSk8tXJ.d.ts +7 -0
- package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
- package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
- package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
- package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
- package/dist/server/index.d.ts +81 -19
- package/dist/server/index.js +16 -14
- package/dist/{server-ZSJ9rCcV.d.ts → server-types-CrAmZ8jv.d.ts} +110 -36
- package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
- package/dist/shared-DTneRoxi.js +14 -0
- package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
- package/dist/signatures-BRS_p3WD.d.ts +34 -0
- package/dist/signatures-DsWv_bYR.js +103 -0
- package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
- package/dist/solid/index.d.ts +9 -18
- package/dist/solid/index.js +2 -2
- package/dist/solid-start/index.d.ts +6 -6
- package/dist/solid-start/index.js +7 -7
- package/dist/spec/index.d.ts +134 -0
- package/dist/spec/index.js +353 -0
- package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
- package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
- package/dist/sql/index.d.ts +145 -119
- package/dist/sql/index.js +19921 -19798
- package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
- package/dist/ssr/index.d.ts +4 -4
- package/dist/ssr/index.js +3 -2
- package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
- package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
- package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
- package/dist/storage/index.d.ts +4 -6
- package/dist/storage/index.js +16 -17
- package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
- package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
- package/dist/streams/index.d.ts +4 -4
- package/dist/streams/index.js +5 -4
- package/dist/streams/redis/index.d.ts +1 -1
- package/dist/streams/redis/index.js +5 -11
- package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
- package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
- package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
- package/dist/{support-DWwzVf-O.js → support-D1pFFouF.js} +71 -35
- package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
- package/dist/svelte/index.d.ts +8 -17
- package/dist/svelte/index.js +2 -2
- package/dist/sveltekit/index.d.ts +7 -7
- package/dist/sveltekit/index.js +10 -12
- package/dist/table-schema-htM_SbCW.js +286 -0
- package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
- package/dist/tanstack-db/index.d.ts +2 -2
- package/dist/tanstack-db/supabase/index.d.ts +52 -0
- package/dist/tanstack-db/supabase/index.js +97 -0
- package/dist/tanstack-start/index.d.ts +6 -6
- package/dist/tanstack-start/index.js +8 -12
- package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
- package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
- package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
- package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
- package/dist/testing/index.d.ts +249 -118
- package/dist/testing/index.js +1418 -870
- package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
- package/dist/types-BRTSpOIh.js +5 -0
- package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
- package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
- package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
- package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
- package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
- package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
- package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
- package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
- package/dist/vercel-connect/index.d.ts +1 -1
- package/dist/vercel-connect/index.js +5 -11
- package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
- package/dist/verify-CJbYfADA.js +124 -0
- package/dist/{version--AolB5ej.js → version-Cq8gfDbd.js} +1 -1
- package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
- package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
- package/dist/vue/index.d.ts +9 -18
- package/dist/vue/index.js +2 -2
- package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
- package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
- package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
- package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
- package/dist/workflow-sdk/builder/index.d.ts +3 -3
- package/dist/workflow-sdk/index.d.ts +1 -1
- package/dist/workflow-sdk/world/index.d.ts +23 -17
- package/dist/workflow-sdk/world/index.js +59 -76
- package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
- package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
- package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
- package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
- package/package.json +54 -3
- package/schemas/config-v1.json +243 -0
- package/schemas/doctor-report-v1.json +4 -1
- package/schemas/spec-manifest-v1.json +95 -0
- package/skills/better-supabase/SKILL.md +8 -4
- package/skills/better-supabase/references/troubleshooting.md +20 -20
- package/skills/better-supabase-api/references/expo.md +6 -3
- package/skills/better-supabase-api/references/powersync.md +2 -1
- package/skills/better-supabase-auth/SKILL.md +8 -4
- package/dist/cli/config-B9HkL8nF.js +0 -2
- package/dist/cli/gen-AIf4MREI.js +0 -3100
- package/dist/cli/gen-DSrahEdX.js +0 -2
- package/dist/cli/prompts-BTYQGunc.js +0 -2
- package/dist/cli/run-BO052mki.js +0 -361
- package/dist/config-Dn7F5k9A.js +0 -202
- package/dist/history-BZih6SFP.js +0 -64
- package/dist/index-BkWT_uBO.d.ts +0 -51
- package/dist/index-Bxih3l0u.d.ts +0 -81
- package/dist/index-CaxrMD1A.d.ts +0 -1
- package/dist/index-DQh4VCc9.d.ts +0 -98
- package/dist/keys-4MnkWTTh.js +0 -35
- package/dist/messages-DYP0sUTe.d.ts +0 -59
- package/dist/modules-dxrVK3ID.js +0 -228
- package/dist/path-Cv__-OTj.d.ts +0 -17
- package/dist/resource-BsvzCMlX.js +0 -212
- package/dist/resource-IPS5xi9q.d.ts +0 -74
- package/dist/template-CwO38Do8.d.ts +0 -6
- package/dist/verify-DL41hbvY.js +0 -232
- package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as DbException } from "./db-exception-CnWcYPxL.js";
|
|
2
|
-
import { n as dbError } from "./errors-
|
|
2
|
+
import { n as dbError } from "./errors-2M6CKMP4.js";
|
|
3
3
|
//#region src/core/template.ts
|
|
4
4
|
const PLACEHOLDER = /\{(\.\.\.)?([A-Za-z_][A-Za-z0-9_]*)\}/g;
|
|
5
5
|
function parseSegment(segment) {
|
|
@@ -110,5 +110,14 @@ function sqlIdent(value) {
|
|
|
110
110
|
function slug(value) {
|
|
111
111
|
return value.replaceAll(/[^A-Za-z0-9]+/g, "_").replaceAll(/^_|_$/g, "").toLowerCase();
|
|
112
112
|
}
|
|
113
|
+
/** SQL for the JWT claim at a dotted path, or the first set one of several (`coalesce`). */
|
|
114
|
+
function claimSql(claim) {
|
|
115
|
+
const expressions = (typeof claim === "string" ? [claim] : claim).map((path) => {
|
|
116
|
+
const keys = path.split(".");
|
|
117
|
+
const last = keys.pop();
|
|
118
|
+
return `(select auth.jwt())${keys.map((key) => ` -> ${sqlString(key)}`).join("")} ->> ${sqlString(last)}`;
|
|
119
|
+
});
|
|
120
|
+
return expressions.length === 1 ? expressions[0] : `coalesce(${expressions.join(", ")})`;
|
|
121
|
+
}
|
|
113
122
|
//#endregion
|
|
114
|
-
export { sqlString as i,
|
|
123
|
+
export { sqlString as a, sqlIdent as i, parseTemplate as n, slug as r, claimSql as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as DbException } from "./db-exception-CnWcYPxL.js";
|
|
2
|
-
import { n as dbError } from "./errors-
|
|
2
|
+
import { n as dbError } from "./errors-2M6CKMP4.js";
|
|
3
3
|
import { c as optionalTemporal, t as TEMPORAL_MISSING } from "./temporal-BJGitm-h.js";
|
|
4
4
|
//#region src/core/temporal-required.ts
|
|
5
5
|
/** The error for a runtime without Temporal, naming the polyfill to load. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as AuthSnapshot } from "./bind-
|
|
2
|
-
import { t as AuthSession } from "./view-
|
|
1
|
+
import { t as AuthSnapshot } from "./bind-CQ5mPyX1.js";
|
|
2
|
+
import { t as AuthSession } from "./view-TpXEUcVN.js";
|
|
3
3
|
//#region src/auth/tenant.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* The active tenant of a user session: the `claim` claim (`tenant_id` by
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
import { H as Update, L as TableKey, P as SchemaMeta, a as AnyModels, i as AnyFunctions, x as Insert } from "../types-
|
|
2
|
-
import { r as Executor } from "../executor-
|
|
3
|
-
import { t as SqlClient } from "../executor-
|
|
4
|
-
import { m as RequestContext, n as AnyPlugin } from "../plugin-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { t as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
1
|
+
import { H as Update, L as TableKey, P as SchemaMeta, a as AnyModels, i as AnyFunctions, x as Insert } from "../types-CoE5Zwy4.js";
|
|
2
|
+
import { r as Executor } from "../executor-Drzu3dBK.js";
|
|
3
|
+
import { t as SqlClient } from "../executor-ngjKL_Pe.js";
|
|
4
|
+
import { m as RequestContext, n as AnyPlugin } from "../plugin-CPK2HsbY.js";
|
|
5
|
+
import { t as BetterSupabaseEnv } from "../index-BUK7jUzR.js";
|
|
6
|
+
import { n as AuthResolver } from "../resolve-MxXVWyhd.js";
|
|
7
|
+
import { a as CredentialSubject, i as CredentialRef, r as CredentialProvider } from "../provider-ib9wzUDz.js";
|
|
8
|
+
import { k as QueueBackend } from "../types-D__3EN0q.js";
|
|
9
|
+
import { n as Embedder } from "../knowledge-CAReFpRA.js";
|
|
10
|
+
import { o as StreamStore } from "../store-DsIYEBnv.js";
|
|
11
|
+
import { t as ApiModel } from "../model-OgBxvk3N.js";
|
|
12
|
+
import { l as VersionOf, t as AnyDocumentFormat } from "../format-DTXdu8ya.js";
|
|
13
|
+
import { o as Authorizer } from "../authorizer-eiOjo-3l.js";
|
|
14
|
+
import { i as EventSink, t as CloudEvent } from "../cloud-event-Dune0KI7.js";
|
|
15
|
+
import { Wt as DbStats, _ as Db, s as CacheAdapter, t as BetterSupabase } from "../define-DmcfoNXB.js";
|
|
16
|
+
import { s as Impersonator } from "../mfa-SZc9YYyb.js";
|
|
17
|
+
import { t as BetterPostgres } from "../pool-gkhbGp2E.js";
|
|
18
|
+
import { B as SupportSessionStore, i as ServerContext, s as ServerOptions } from "../server-types-CrAmZ8jv.js";
|
|
15
19
|
import { n as SessionActor, r as SessionDelegation } from "../actor-CQTlc1Hh.js";
|
|
16
|
-
import { r as GuardOptions } from "../respond-
|
|
20
|
+
import { r as GuardOptions } from "../respond-Cw-zanCm.js";
|
|
17
21
|
import { i as AuthorizationProvider } from "../authorization-BFCqamMs.js";
|
|
18
|
-
import { i as AiTaskRun, o as AiTaskRunner, t as AiTask } from "../ai-tasks-
|
|
19
|
-
import {
|
|
20
|
-
import { a as BlockTransportMiddleware } from "../block-hooks-
|
|
22
|
+
import { i as AiTaskRun, o as AiTaskRunner, t as AiTask } from "../ai-tasks-BRQ6iQLc.js";
|
|
23
|
+
import { B as ResolvedConfig, D as GeneratorModel, E as GeneratorInput, w as Generator } from "../index-Ba1SI-uO.js";
|
|
24
|
+
import { a as BlockTransportMiddleware } from "../block-hooks-DaOVC7SC.js";
|
|
21
25
|
import { t as NotificationChannel } from "../channel-_2Mx1Oyu.js";
|
|
22
|
-
import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-
|
|
23
|
-
import { T as WorkflowGraph, i as BuilderStarter, r as BuilderStartCall, s as GraphCompiler } from "../types-
|
|
24
|
-
import { t as EveDocumentBackend } from "../eve-
|
|
26
|
+
import { c as WebhookSecretStore, i as WebhookSigner, m as WebhookTransport } from "../signers-cpdmZYrv.js";
|
|
27
|
+
import { T as WorkflowGraph, i as BuilderStarter, r as BuilderStartCall, s as GraphCompiler } from "../types-CD6yCDx3.js";
|
|
28
|
+
import { t as EveDocumentBackend } from "../eve-CoAIcCkq.js";
|
|
25
29
|
import { SupabaseClient } from "@supabase/supabase-js";
|
|
26
30
|
import { Message, StateAdapter } from "chat";
|
|
27
31
|
import { webcrypto } from "node:crypto";
|
|
@@ -98,6 +102,8 @@ interface LocalStack {
|
|
|
98
102
|
readonly secretKey?: string;
|
|
99
103
|
/** Enables `sql`: the same user over direct Postgres. */
|
|
100
104
|
readonly postgres?: BetterPostgres;
|
|
105
|
+
/** `fetch` for the user's supabase-js client, e.g. `liteStack().fetch`. */
|
|
106
|
+
readonly fetch?: typeof fetch;
|
|
101
107
|
}
|
|
102
108
|
interface TestUser<M extends AnyModels, F extends AnyFunctions, E> {
|
|
103
109
|
readonly token: string;
|
|
@@ -122,6 +128,55 @@ interface TestUser<M extends AnyModels, F extends AnyFunctions, E> {
|
|
|
122
128
|
*/
|
|
123
129
|
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>>;
|
|
124
130
|
//#endregion
|
|
131
|
+
//#region src/testing/lite.d.ts
|
|
132
|
+
interface LiteStackOptions {
|
|
133
|
+
/**
|
|
134
|
+
* `sqlite-postgres` (default) stores data in in-memory SQLite and
|
|
135
|
+
* translates your Postgres SQL, as `lite init` does. `pglite` runs real
|
|
136
|
+
* Postgres in-process, with `rpc()` and `DEFAULT auth.uid()`.
|
|
137
|
+
*/
|
|
138
|
+
readonly driver?: "sqlite-postgres" | "pglite";
|
|
139
|
+
/** Migration SQL, applied in order before `schemas`. DDL only; put rows in `seed`. */
|
|
140
|
+
readonly migrations?: readonly string[];
|
|
141
|
+
/** Declarative schema SQL (`supabase/schemas/*.sql`), applied after `migrations`. */
|
|
142
|
+
readonly schemas?: readonly string[];
|
|
143
|
+
/** Seed SQL, run after the schema as the database owner (RLS does not apply). */
|
|
144
|
+
readonly seed?: string | readonly string[];
|
|
145
|
+
/** The shared HS256 secret. Defaults to a random one. */
|
|
146
|
+
readonly jwtSecret?: string;
|
|
147
|
+
}
|
|
148
|
+
interface LiteStack extends AsyncDisposable {
|
|
149
|
+
/** A placeholder URL: requests never leave the process. */
|
|
150
|
+
readonly url: string;
|
|
151
|
+
readonly publishableKey: string;
|
|
152
|
+
readonly secretKey: string;
|
|
153
|
+
readonly jwtSecret: string;
|
|
154
|
+
/** Routes requests to the in-process Lite app. Pass it as `fetch` to `createServer`. */
|
|
155
|
+
readonly fetch: typeof globalThis.fetch;
|
|
156
|
+
/** The settings `createServer(betterSupabase, { env, backend: "lite", fetch })` takes. */
|
|
157
|
+
readonly env: BetterSupabaseEnv;
|
|
158
|
+
/** supabase-js with the publishable key, as an anonymous caller. */
|
|
159
|
+
readonly supabase: SupabaseClient;
|
|
160
|
+
/** supabase-js with the secret key: bypasses RLS, for setup. */
|
|
161
|
+
readonly admin: SupabaseClient;
|
|
162
|
+
/** A user with an HS256 token, as `asUser` signs it, whose clients route through `fetch`. */
|
|
163
|
+
asUser<M extends AnyModels, D, F extends AnyFunctions, E>(betterSupabase: BetterSupabase<M, D, F, E>, claims: TestJwtClaims): Promise<TestUser<M, F, E>>;
|
|
164
|
+
/** Closes the database. */
|
|
165
|
+
close(): Promise<void>;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Supabase Lite in this process, for tests without Docker: an in-memory
|
|
169
|
+
* database with your schema, Auth with fresh API keys, and supabase-js
|
|
170
|
+
* clients whose requests go straight to Lite's `fetch` handler (no port).
|
|
171
|
+
*
|
|
172
|
+
* ```ts
|
|
173
|
+
* await using stack = await liteStack({ schemas: [await readFile("supabase/schemas/notes.sql", "utf8")] });
|
|
174
|
+
* const alice = await stack.asUser(betterSupabase, { sub: aliceId });
|
|
175
|
+
* expect(await alice.db.notes.count().orThrow()).toBe(1);
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
export declare function liteStack(options?: LiteStackOptions): Promise<LiteStack>;
|
|
179
|
+
//#endregion
|
|
125
180
|
//#region src/testing/budget.d.ts
|
|
126
181
|
/** The part of a Playwright `Request` the budget check reads. */
|
|
127
182
|
interface BudgetRequest {
|
|
@@ -276,102 +331,6 @@ export declare class ConformanceError extends Error {
|
|
|
276
331
|
readonly report: ConformanceReport;
|
|
277
332
|
constructor(report: ConformanceReport);
|
|
278
333
|
}
|
|
279
|
-
type AnySupabase$1 = BetterSupabase<any, any, any, any>;
|
|
280
|
-
interface TestExecutorOptions {
|
|
281
|
-
/** A definition whose schema matches the executor's database. Install no plugins. */
|
|
282
|
-
readonly betterSupabase: AnySupabase$1;
|
|
283
|
-
/** App key of a table with rows the executor can read. Defaults to the first table. */
|
|
284
|
-
readonly table?: string;
|
|
285
|
-
/** A row to insert and delete again, to check writes. Skips write checks when omitted. */
|
|
286
|
-
readonly create?: Readonly<Record<string, unknown>>;
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Proves an `Executor` meets the contract: rows keyed by the selection's
|
|
290
|
-
* aliases, counts, `aborted` errors, failures returned as `Result`s rather
|
|
291
|
-
* than thrown, and (with `create`) a write round trip and a `deleteMany`
|
|
292
|
-
* that `maxAffected` refuses without deleting anything.
|
|
293
|
-
*
|
|
294
|
-
* ```ts
|
|
295
|
-
* it('conforms', () => testExecutor(myExecutor, { betterSupabase, table: 'tags', create: { name: 'x' } }));
|
|
296
|
-
* ```
|
|
297
|
-
*/
|
|
298
|
-
export declare function testExecutor(executor: Executor, options: TestExecutorOptions): Promise<ConformanceReport>;
|
|
299
|
-
/**
|
|
300
|
-
* Proves a `CacheAdapter` accepts table and row targets, repeated and
|
|
301
|
-
* concurrent calls, and never mutates its input.
|
|
302
|
-
*/
|
|
303
|
-
export declare function testCacheAdapter(adapter: CacheAdapter, options?: {
|
|
304
|
-
readonly table?: string;
|
|
305
|
-
}): Promise<ConformanceReport>;
|
|
306
|
-
interface TestEventSinkOptions {
|
|
307
|
-
/** Events the sink delivered, for sinks that can be read back (an outbox, a test queue). */
|
|
308
|
-
readonly received?: () => readonly CloudEvent[] | Promise<readonly CloudEvent[]>;
|
|
309
|
-
}
|
|
310
|
-
/** Proves an `EventSink` accepts empty and full batches without mutating them, and delivers them when readable. */
|
|
311
|
-
export declare function testEventSink(sink: EventSink, options?: TestEventSinkOptions): Promise<ConformanceReport>;
|
|
312
|
-
interface TestQueueBackendOptions {
|
|
313
|
-
/** A queue the kit may fill and drain; use a fresh name per run. */
|
|
314
|
-
readonly queue: string;
|
|
315
|
-
/** Check that a repeated dedupe key returns the first id. Defaults to `backend.leases`. */
|
|
316
|
-
readonly dedupe?: boolean;
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Proves a `QueueBackend` round-trips payloads, hides claimed messages for
|
|
320
|
-
* their lease, counts attempts, retries and dead-letters on `fail`, and
|
|
321
|
-
* (when it has `leases`) rejects a stale attempt and extends a lease. It
|
|
322
|
-
* writes to `options.queue` on the backend's real store.
|
|
323
|
-
*/
|
|
324
|
-
export declare function testQueueBackend(backend: QueueBackend, options: TestQueueBackendOptions): Promise<ConformanceReport>;
|
|
325
|
-
interface TestSupportSessionStoreOptions {
|
|
326
|
-
/** A user who may start support sessions in the store. */
|
|
327
|
-
readonly admin: {
|
|
328
|
-
readonly id: string;
|
|
329
|
-
readonly claims: Readonly<Record<string, unknown>>;
|
|
330
|
-
};
|
|
331
|
-
/** Two other users the admin may view the app as. */
|
|
332
|
-
readonly targets: readonly [string, string];
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Proves a `SupportSessionStore` starts sessions with the input it was
|
|
336
|
-
* given, shows a running session only to its admin, ends the admin's
|
|
337
|
-
* previous session on start, ends a session once, and lists sessions.
|
|
338
|
-
* It writes sessions to the store; they are all ended when it returns.
|
|
339
|
-
*/
|
|
340
|
-
export declare function testSupportSessionStore(store: SupportSessionStore, options: TestSupportSessionStoreOptions): Promise<ConformanceReport>;
|
|
341
|
-
interface TestAuthResolverOptions {
|
|
342
|
-
/** Requests with credentials this resolver owns but that must not verify. */
|
|
343
|
-
readonly invalid: readonly Request[];
|
|
344
|
-
/** Requests that must resolve to a user or service, optionally with the expected user id. */
|
|
345
|
-
readonly valid?: readonly {
|
|
346
|
-
readonly request: Request;
|
|
347
|
-
readonly userId?: string;
|
|
348
|
-
}[];
|
|
349
|
-
/** A request without this resolver's credentials. Defaults to a bare GET. */
|
|
350
|
-
readonly unrelated?: Request;
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Proves an `AuthResolver` passes on requests it doesn't understand, fails
|
|
354
|
-
* closed (`invalid`, never anon) on bad credentials, and never throws.
|
|
355
|
-
*/
|
|
356
|
-
export declare function testAuthResolver(resolver: AuthResolver, options: TestAuthResolverOptions): Promise<ConformanceReport>;
|
|
357
|
-
interface TestPluginOptions {
|
|
358
|
-
/** The definition without this plugin. */
|
|
359
|
-
readonly betterSupabase: AnySupabase$1;
|
|
360
|
-
/** Table to exercise. Defaults to the first table. */
|
|
361
|
-
readonly table?: string;
|
|
362
|
-
/** Context the plugin needs, such as `{ tenant }` for `tenant()`. */
|
|
363
|
-
readonly context?: RequestContext;
|
|
364
|
-
/** Row for `create`, to exercise `beforeMutation`. */
|
|
365
|
-
readonly create?: Readonly<Record<string, unknown>>;
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
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'
|
|
372
|
-
* results intact when it wraps them.
|
|
373
|
-
*/
|
|
374
|
-
export declare function testPlugin(plugin: AnyPlugin, options: TestPluginOptions): Promise<ConformanceReport>;
|
|
375
334
|
//#endregion
|
|
376
335
|
//#region src/testing/isolation.d.ts
|
|
377
336
|
interface IsolationTenant {
|
|
@@ -484,6 +443,117 @@ export declare function isSeed(value: unknown): value is Seed<unknown>;
|
|
|
484
443
|
*/
|
|
485
444
|
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>;
|
|
486
445
|
//#endregion
|
|
446
|
+
//#region src/testing/kits/auth-resolver.d.ts
|
|
447
|
+
interface TestAuthResolverOptions {
|
|
448
|
+
/** Requests with credentials this resolver owns but that must not verify. */
|
|
449
|
+
readonly invalid: readonly Request[];
|
|
450
|
+
/** Requests that must resolve to a user or service, optionally with the expected user id. */
|
|
451
|
+
readonly valid?: readonly {
|
|
452
|
+
readonly request: Request;
|
|
453
|
+
readonly userId?: string;
|
|
454
|
+
}[];
|
|
455
|
+
/** A request without this resolver's credentials. Defaults to a bare GET. */
|
|
456
|
+
readonly unrelated?: Request;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Proves an `AuthResolver` passes on requests it doesn't understand, fails
|
|
460
|
+
* closed (`invalid`, never anon) on bad credentials, and never throws.
|
|
461
|
+
*/
|
|
462
|
+
export declare function testAuthResolver(resolver: AuthResolver, options: TestAuthResolverOptions): Promise<ConformanceReport>;
|
|
463
|
+
//#endregion
|
|
464
|
+
//#region src/testing/kits/cache-adapter.d.ts
|
|
465
|
+
/**
|
|
466
|
+
* Proves a `CacheAdapter` accepts table and row targets, repeated and
|
|
467
|
+
* concurrent calls, and never mutates its input.
|
|
468
|
+
*/
|
|
469
|
+
export declare function testCacheAdapter(adapter: CacheAdapter, options?: {
|
|
470
|
+
readonly table?: string;
|
|
471
|
+
}): Promise<ConformanceReport>;
|
|
472
|
+
//#endregion
|
|
473
|
+
//#region src/testing/kits/event-sink.d.ts
|
|
474
|
+
interface TestEventSinkOptions {
|
|
475
|
+
/** Events the sink delivered, for sinks that can be read back (an outbox, a test queue). */
|
|
476
|
+
readonly received?: () => readonly CloudEvent[] | Promise<readonly CloudEvent[]>;
|
|
477
|
+
}
|
|
478
|
+
/** Proves an `EventSink` accepts empty and full batches without mutating them, and delivers them when readable. */
|
|
479
|
+
export declare function testEventSink(sink: EventSink, options?: TestEventSinkOptions): Promise<ConformanceReport>;
|
|
480
|
+
//#endregion
|
|
481
|
+
//#region src/testing/kits/executor.d.ts
|
|
482
|
+
type AnySupabase$1 = BetterSupabase<any, any, any, any>;
|
|
483
|
+
interface TestExecutorOptions {
|
|
484
|
+
/** A definition whose schema matches the executor's database. Install no plugins. */
|
|
485
|
+
readonly betterSupabase: AnySupabase$1;
|
|
486
|
+
/** App key of a table with rows the executor can read. Defaults to the first table. */
|
|
487
|
+
readonly table?: string;
|
|
488
|
+
/** A row to insert and delete again, to check writes. Skips write checks when omitted. */
|
|
489
|
+
readonly create?: Readonly<Record<string, unknown>>;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Proves an `Executor` meets the contract: rows keyed by the selection's
|
|
493
|
+
* aliases, counts, `aborted` errors, failures returned as `Result`s rather
|
|
494
|
+
* than thrown, and (with `create`) a write round trip and a `deleteMany`
|
|
495
|
+
* that `maxAffected` refuses without deleting anything.
|
|
496
|
+
*
|
|
497
|
+
* ```ts
|
|
498
|
+
* it('conforms', () => testExecutor(myExecutor, { betterSupabase, table: 'tags', create: { name: 'x' } }));
|
|
499
|
+
* ```
|
|
500
|
+
*/
|
|
501
|
+
export declare function testExecutor(executor: Executor, options: TestExecutorOptions): Promise<ConformanceReport>;
|
|
502
|
+
//#endregion
|
|
503
|
+
//#region src/testing/kits/plugin.d.ts
|
|
504
|
+
interface TestPluginOptions {
|
|
505
|
+
/** The definition without this plugin. */
|
|
506
|
+
readonly betterSupabase: AnySupabase$1;
|
|
507
|
+
/** Table to exercise. Defaults to the first table. */
|
|
508
|
+
readonly table?: string;
|
|
509
|
+
/** Context the plugin needs, such as `{ tenant }` for `tenant()`. */
|
|
510
|
+
readonly context?: RequestContext;
|
|
511
|
+
/** Row for `create`, to exercise `beforeMutation`. */
|
|
512
|
+
readonly create?: Readonly<Record<string, unknown>>;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Proves a `Plugin` targets API v1, installs cleanly on its own and next to
|
|
516
|
+
* the first-party plugins in either order, adds repository methods without
|
|
517
|
+
* replacing base ones, keeps `context`, `transformQuery` and
|
|
518
|
+
* `beforeMutation` pure and deterministic, and keeps executors'
|
|
519
|
+
* results intact when it wraps them.
|
|
520
|
+
*/
|
|
521
|
+
export declare function testPlugin(plugin: AnyPlugin, options: TestPluginOptions): Promise<ConformanceReport>;
|
|
522
|
+
//#endregion
|
|
523
|
+
//#region src/testing/kits/queue-backend.d.ts
|
|
524
|
+
interface TestQueueBackendOptions {
|
|
525
|
+
/** A queue the kit may fill and drain; use a fresh name per run. */
|
|
526
|
+
readonly queue: string;
|
|
527
|
+
/** Check that a repeated dedupe key returns the first id. Defaults to `backend.leases`. */
|
|
528
|
+
readonly dedupe?: boolean;
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Proves a `QueueBackend` round-trips payloads, hides claimed messages for
|
|
532
|
+
* their lease, counts attempts, retries and dead-letters on `fail`, and
|
|
533
|
+
* (when it has `leases`) rejects a stale attempt and extends a lease. It
|
|
534
|
+
* writes to `options.queue` on the backend's real store.
|
|
535
|
+
*/
|
|
536
|
+
export declare function testQueueBackend(backend: QueueBackend, options: TestQueueBackendOptions): Promise<ConformanceReport>;
|
|
537
|
+
//#endregion
|
|
538
|
+
//#region src/testing/kits/support-session-store.d.ts
|
|
539
|
+
interface TestSupportSessionStoreOptions {
|
|
540
|
+
/** A user who may start support sessions in the store. */
|
|
541
|
+
readonly admin: {
|
|
542
|
+
readonly id: string;
|
|
543
|
+
readonly claims: Readonly<Record<string, unknown>>;
|
|
544
|
+
};
|
|
545
|
+
/** Two other users the admin may view the app as. */
|
|
546
|
+
readonly targets: readonly [string, string];
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Proves a `SupportSessionStore` starts sessions with the input it was
|
|
550
|
+
* given, shows a running session only to its admin, ends the admin's
|
|
551
|
+
* previous session on start, ends a session once, lists sessions and, with
|
|
552
|
+
* `expire`, leaves running sessions alone.
|
|
553
|
+
* It writes sessions to the store; they are all ended when it returns.
|
|
554
|
+
*/
|
|
555
|
+
export declare function testSupportSessionStore(store: SupportSessionStore, options: TestSupportSessionStoreOptions): Promise<ConformanceReport>;
|
|
556
|
+
//#endregion
|
|
487
557
|
//#region src/testing/adapter.d.ts
|
|
488
558
|
type AnySupabase = BetterSupabase<any, any, any, any>;
|
|
489
559
|
/** What the adapter module asks a handler to do with the caller's context. */
|
|
@@ -540,6 +610,67 @@ export declare function testBlockTransportMiddleware(middleware: BlockTransportM
|
|
|
540
610
|
*/
|
|
541
611
|
export declare function testAuthorizationProvider(provider: AuthorizationProvider): Promise<ConformanceReport>;
|
|
542
612
|
//#endregion
|
|
613
|
+
//#region src/testing/authorizer.d.ts
|
|
614
|
+
interface TestAuthorizerOptions<Ref> {
|
|
615
|
+
/** Permission references to check; give at least one. */
|
|
616
|
+
readonly permissions: readonly Ref[];
|
|
617
|
+
/** A permission the authorizer grants for `context`, checked end to end. */
|
|
618
|
+
readonly granted?: {
|
|
619
|
+
readonly permission: Ref;
|
|
620
|
+
readonly context: RequestContext;
|
|
621
|
+
};
|
|
622
|
+
/** A permission reference the authorizer doesn't know; it must never be granted. */
|
|
623
|
+
readonly unknown?: Ref;
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Proves an `Authorizer` targets API v1, keys every permission to the same
|
|
627
|
+
* string each time (and after a JSON round trip, so references are plain
|
|
628
|
+
* JSON), answers every request with a known outcome without mutating it,
|
|
629
|
+
* keeps the request order in `evaluations`, decides from the subject rather
|
|
630
|
+
* than the input (forged roles, claims and memberships in the resource
|
|
631
|
+
* properties or the context never turn a denial into a grant), never grants an unknown permission, and grants
|
|
632
|
+
* `options.granted` through `checkPermission`.
|
|
633
|
+
*/
|
|
634
|
+
export declare function testAuthorizer<Ref>(authorizer: Authorizer<Ref>, options: TestAuthorizerOptions<Ref>): Promise<ConformanceReport>;
|
|
635
|
+
interface StaticAuthorizerOptions<Ref extends string> {
|
|
636
|
+
/**
|
|
637
|
+
* Permissions per role. The role is the subject's `role` property (the
|
|
638
|
+
* Postgres role: `authenticated`, `service_role`), or its type (`anon`).
|
|
639
|
+
*/
|
|
640
|
+
readonly roles?: Readonly<Record<string, readonly Ref[]>>;
|
|
641
|
+
/** Permissions per subject id, on top of the role's. */
|
|
642
|
+
readonly grants?: Readonly<Record<string, readonly Ref[]>>;
|
|
643
|
+
/** Permissions that answer `approval-required` with the approval id `approval:<permission>`. */
|
|
644
|
+
readonly approvals?: readonly Ref[];
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* An in-memory `Authorizer` for tests and examples: permissions come from
|
|
648
|
+
* the subject's `role` and id only, never from the request's resource or
|
|
649
|
+
* context, and it ignores `subject.properties.claims`.
|
|
650
|
+
*/
|
|
651
|
+
export declare function staticAuthorizer<Ref extends string>(options: StaticAuthorizerOptions<Ref>): Authorizer<Ref>;
|
|
652
|
+
//#endregion
|
|
653
|
+
//#region src/testing/document-format.d.ts
|
|
654
|
+
interface TestDocumentFormatOptions<V extends string = string> {
|
|
655
|
+
/**
|
|
656
|
+
* The model to lower. Defaults to a small model with a route, a stream,
|
|
657
|
+
* a webhook, a Realtime channel and a workflow.
|
|
658
|
+
*/
|
|
659
|
+
readonly model?: ApiModel;
|
|
660
|
+
/** The versions to lower. Defaults to every version the format lists. */
|
|
661
|
+
readonly versions?: readonly V[];
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Proves a `DocumentFormat` targets API v1, lists versions with pins and a
|
|
665
|
+
* known status, defaults to a version it lists that is not a preview, and,
|
|
666
|
+
* for every version: lowers the model without mutating it (also when the
|
|
667
|
+
* model is frozen), renders the same document twice, renders plain JSON or
|
|
668
|
+
* text, reports diagnostics with a kebab-case code, a severity and a
|
|
669
|
+
* message, finds no error in its own output with `lint`, and names a bare,
|
|
670
|
+
* stable file.
|
|
671
|
+
*/
|
|
672
|
+
export declare function testDocumentFormat<F extends AnyDocumentFormat>(format: F, options?: TestDocumentFormatOptions<VersionOf<F>>): Promise<ConformanceReport>;
|
|
673
|
+
//#endregion
|
|
543
674
|
//#region src/testing/generator.d.ts
|
|
544
675
|
interface TestGeneratorOptions {
|
|
545
676
|
/** Schema metadata to generate from: `schema.meta` from your generated module. */
|
|
@@ -719,4 +850,4 @@ interface TestCredentialProviderOptions {
|
|
|
719
850
|
*/
|
|
720
851
|
export declare function testCredentialProvider(provider: CredentialProvider, options: TestCredentialProviderOptions): Promise<ConformanceReport>;
|
|
721
852
|
//#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 };
|
|
853
|
+
export type { AdapterRun, BudgetPage, BudgetRequest, BudgetResponse, ConformanceCheck, ConformanceReport, DbBudgetExpectation, ExactSeed, InstantBrowserContext, InstantExpectation, InstantLocator, InstantPage, IsolationTable, IsolationTables, IsolationTenant, LiteStack, LiteStackOptions, LocalStack, MeasuredRender, ResponseBudgetExpectation, ResponseDbStats, Seed, SeedFixtures, SigningJwk, StaticAuthorizerOptions, SupabaseClaimFixture, SupabaseClaimFixtureName, TenantIsolationOptions, TestAdapterOptions, TestAiTaskRunnerOptions, TestAuthResolverOptions, TestAuthorizerOptions, TestBuilderStarterOptions, TestChatStateOptions, TestCredentialProviderOptions, TestDocumentFormatOptions, TestEmbedderOptions, TestEveDocumentBackendOptions, TestEventSinkOptions, TestExecutorOptions, TestGeneratorOptions, TestGraphCompilerOptions, TestJwtClaims, TestNotificationChannelOptions, TestPluginOptions, TestQueueBackendOptions, TestSigner, TestStreamStoreOptions, TestSupportSessionStoreOptions, TestUser, TestWebhookSecretStoreOptions, TestWebhookSignerOptions, TestWebhookTransportOptions };
|