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
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { a as list, r as defineCliCommand } from "./command-DV-StG1x.js";
|
|
2
|
+
import { a as writeIfChanged, t as display } from "./io-CFzJVJ68.js";
|
|
3
|
+
import { t as TYPEGEN_VERSION } from "./typegen-version-DeFbtzYI.js";
|
|
4
|
+
import { i as findConfig, o as loadConfig } from "./config-M-WzL9O2.js";
|
|
5
|
+
import { a as findSupabaseRoot, p as tomlGet, r as diffEngine, t as PGDELTA_TABLE, u as readSupabaseToml } from "./supabase-toml-B-bIukQF.js";
|
|
6
|
+
import { n as installCommand, t as detectProject } from "./project-DZRaBaY7.js";
|
|
7
|
+
import { a as packagesFor, c as writeFiles, f as needsLib, i as overwrite, l as TEMPLATES, m as suggestedIntegrations, n as chooseIntegrations, o as parseIntegrations, p as resolveIntegrations, r as integrationFiles, s as templateContextFor, t as CANCELLED, u as baseFiles } from "./glue-C1UE8gQN.js";
|
|
8
|
+
import { join, posix, resolve } from "node:path";
|
|
9
|
+
import { existsSync } from "node:fs";
|
|
10
|
+
import { glob, readFile } from "node:fs/promises";
|
|
11
|
+
//#region src/cli/workspace.ts
|
|
12
|
+
const unquote = (value) => value.replace(/\s+#.*$/, "").trim().replace(/^(["'])(.*)\1$/, "$2");
|
|
13
|
+
/** The `packages` globs of `pnpm-workspace.yaml`, in block or flow style. */
|
|
14
|
+
function pnpmWorkspacePatterns(text) {
|
|
15
|
+
const lines = text.split(/\r?\n/);
|
|
16
|
+
const start = lines.findIndex((line) => /^packages\s*:/.test(line));
|
|
17
|
+
if (start === -1) return [];
|
|
18
|
+
const inline = /^packages\s*:\s*\[(.*)\]\s*(?:#.*)?$/.exec(lines[start]);
|
|
19
|
+
if (inline) return inline[1].split(",").map(unquote).filter((entry) => entry !== "");
|
|
20
|
+
const patterns = [];
|
|
21
|
+
for (const line of lines.slice(start + 1)) {
|
|
22
|
+
if (/^\s*(?:#.*)?$/.test(line)) continue;
|
|
23
|
+
const item = /^\s+-\s*(.+)$/.exec(line);
|
|
24
|
+
if (!item) break;
|
|
25
|
+
patterns.push(unquote(item[1]));
|
|
26
|
+
}
|
|
27
|
+
return patterns.filter((entry) => entry !== "");
|
|
28
|
+
}
|
|
29
|
+
function packageJsonPatterns(workspaces) {
|
|
30
|
+
let list = workspaces;
|
|
31
|
+
if (typeof workspaces === "object" && workspaces !== null && "packages" in workspaces) list = workspaces.packages;
|
|
32
|
+
return Array.isArray(list) ? list.filter((entry) => typeof entry === "string") : [];
|
|
33
|
+
}
|
|
34
|
+
async function matches(root, pattern) {
|
|
35
|
+
const dirs = [];
|
|
36
|
+
const base = pattern.replace(/^\.\//, "").replace(/\/$/, "");
|
|
37
|
+
for await (const path of glob(`${base}/package.json`, {
|
|
38
|
+
cwd: root,
|
|
39
|
+
exclude: (name) => name === "node_modules"
|
|
40
|
+
})) dirs.push(posix.dirname(path.replaceAll("\\", "/")));
|
|
41
|
+
return dirs;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The workspace declared at `root` by `pnpm-workspace.yaml` or the
|
|
45
|
+
* `workspaces` field of `package.json`, with its packages in path order.
|
|
46
|
+
* `undefined` when `root` declares none.
|
|
47
|
+
*/
|
|
48
|
+
async function detectWorkspace(root) {
|
|
49
|
+
let file;
|
|
50
|
+
let patterns;
|
|
51
|
+
const yaml = join(root, "pnpm-workspace.yaml");
|
|
52
|
+
if (existsSync(yaml)) {
|
|
53
|
+
file = "pnpm-workspace.yaml";
|
|
54
|
+
patterns = pnpmWorkspacePatterns(await readFile(yaml, "utf8"));
|
|
55
|
+
} else {
|
|
56
|
+
const path = join(root, "package.json");
|
|
57
|
+
if (!existsSync(path)) return void 0;
|
|
58
|
+
let pkg;
|
|
59
|
+
try {
|
|
60
|
+
pkg = JSON.parse(await readFile(path, "utf8"));
|
|
61
|
+
} catch {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (typeof pkg !== "object" || pkg === null || !("workspaces" in pkg)) return void 0;
|
|
65
|
+
file = "package.json";
|
|
66
|
+
patterns = packageJsonPatterns(pkg.workspaces);
|
|
67
|
+
if (patterns.length === 0) return void 0;
|
|
68
|
+
}
|
|
69
|
+
const included = /* @__PURE__ */ new Set();
|
|
70
|
+
const excluded = /* @__PURE__ */ new Set();
|
|
71
|
+
for (const pattern of patterns) {
|
|
72
|
+
const negated = pattern.startsWith("!");
|
|
73
|
+
for (const dir of await matches(root, negated ? pattern.slice(1) : pattern)) (negated ? excluded : included).add(dir);
|
|
74
|
+
}
|
|
75
|
+
const dirs = [...included].filter((dir) => dir !== "." && !excluded.has(dir)).sort();
|
|
76
|
+
const packages = await Promise.all(dirs.map(async (dir) => ({
|
|
77
|
+
dir,
|
|
78
|
+
project: await detectProject(join(root, dir))
|
|
79
|
+
})));
|
|
80
|
+
return {
|
|
81
|
+
file,
|
|
82
|
+
packages
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** The package `init` suggests: one that uses better-supabase, then one with a framework. */
|
|
86
|
+
function suggestedPackage(workspace) {
|
|
87
|
+
const packages = workspace.packages;
|
|
88
|
+
return (packages.find((entry) => "better-supabase" in entry.project.dependencies) ?? packages.find((entry) => entry.project.frameworks.length > 0) ?? packages[0])?.dir;
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
//#region src/cli/commands/init.ts
|
|
92
|
+
const INIT_ARGS = {
|
|
93
|
+
casing: {
|
|
94
|
+
type: "string",
|
|
95
|
+
description: "Row keys in camelCase (camel, the default) or the database's snake_case (snake)",
|
|
96
|
+
valueHint: "camel|snake"
|
|
97
|
+
},
|
|
98
|
+
with: {
|
|
99
|
+
type: "string",
|
|
100
|
+
description: "Integrations to add next to the detected ones: next, hono, orpc, edge, expo, mcp, client, react",
|
|
101
|
+
valueHint: "integration,..."
|
|
102
|
+
},
|
|
103
|
+
package: {
|
|
104
|
+
type: "string",
|
|
105
|
+
description: "Workspace package to write to, relative to --cwd",
|
|
106
|
+
valueHint: "dir"
|
|
107
|
+
},
|
|
108
|
+
lite: {
|
|
109
|
+
type: "boolean",
|
|
110
|
+
description: "Run on Supabase Lite: install @supabase/lite and use its CLI in the next steps"
|
|
111
|
+
},
|
|
112
|
+
force: {
|
|
113
|
+
type: "boolean",
|
|
114
|
+
description: "Overwrite files that exist"
|
|
115
|
+
},
|
|
116
|
+
"dry-run": {
|
|
117
|
+
type: "boolean",
|
|
118
|
+
description: "Show what would be written"
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Adds `[experimental.pgdelta] enabled = true` to `supabase/config.toml`
|
|
123
|
+
* when it has no such table, so `supabase db schema declarative sync`
|
|
124
|
+
* runs on pg-delta. A table set to `enabled = false` is left alone.
|
|
125
|
+
*/
|
|
126
|
+
async function enablePgDelta(root, args, base) {
|
|
127
|
+
const supabaseRoot = findSupabaseRoot(root);
|
|
128
|
+
const toml = await readSupabaseToml(root);
|
|
129
|
+
if (supabaseRoot === void 0 || toml === void 0) return [];
|
|
130
|
+
const path = join(supabaseRoot, "supabase/config.toml");
|
|
131
|
+
const shown = display(base, path);
|
|
132
|
+
if (diffEngine(toml) === "pg-delta") return [];
|
|
133
|
+
if (tomlGet(toml.document, ["experimental", "pgdelta"]) !== void 0 || toml.text.includes("pgdelta")) return [`Kept ${shown} (pg-delta is off; set [experimental.pgdelta] enabled = true, remove [db.migrations] schema_paths and use \`supabase db schema declarative sync\` instead of \`supabase db diff\`)`];
|
|
134
|
+
if (args["dry-run"] === true) return [`Would enable pg-delta in ${shown}`];
|
|
135
|
+
const separator = toml.text === "" || toml.text.endsWith("\n\n") ? "" : toml.text.endsWith("\n") ? "\n" : "\n\n";
|
|
136
|
+
await writeIfChanged(path, `${toml.text}${separator}${PGDELTA_TABLE}`);
|
|
137
|
+
return [`Enabled pg-delta in ${shown}`];
|
|
138
|
+
}
|
|
139
|
+
/** The minor of `@supabase/lite` the `backend: 'lite'` option targets. */
|
|
140
|
+
const LITE_VERSION = "0.11";
|
|
141
|
+
/**
|
|
142
|
+
* pg (or `@supabase/lite`, with `lite`) and the pinned postgrest-typegen as
|
|
143
|
+
* dev dependencies, the ones the project lacks.
|
|
144
|
+
*/
|
|
145
|
+
function devPackages(project, lite) {
|
|
146
|
+
const database = lite ? "@supabase/lite" : "pg";
|
|
147
|
+
const missing = [...database in project.dependencies ? [] : [lite ? `${database}@${LITE_VERSION}` : database], ..."@supabase/postgrest-typegen" in project.dependencies ? [] : [`@supabase/postgrest-typegen@${TYPEGEN_VERSION}`]];
|
|
148
|
+
return missing.length === 0 ? [] : [missing];
|
|
149
|
+
}
|
|
150
|
+
/** Where `init` writes: `--cwd`, `--package`, or the workspace package the person picks. */
|
|
151
|
+
async function initTarget(cwd, args, prompts) {
|
|
152
|
+
if (args.package !== void 0) {
|
|
153
|
+
const dir = posix.normalize(args.package.replaceAll("\\", "/"));
|
|
154
|
+
if (!existsSync(join(cwd, dir, "package.json"))) return {
|
|
155
|
+
code: 2,
|
|
156
|
+
error: `--package ${args.package} has no package.json. Pass the directory of a workspace package, relative to --cwd.`
|
|
157
|
+
};
|
|
158
|
+
return { dir: dir.replace(/\/$/, "") || "." };
|
|
159
|
+
}
|
|
160
|
+
const workspace = await detectWorkspace(cwd);
|
|
161
|
+
if (!workspace || workspace.packages.length === 0) return { dir: "." };
|
|
162
|
+
const suggested = suggestedPackage(workspace) ?? ".";
|
|
163
|
+
if (!prompts) return {
|
|
164
|
+
code: 2,
|
|
165
|
+
error: `${workspace.file} makes this a workspace root. Pass --package with the package that owns the runtime (${workspace.packages.map((entry) => entry.dir).join(", ")}), or --package . to write here.`
|
|
166
|
+
};
|
|
167
|
+
const dir = await prompts.select("Package that owns the runtime", [...workspace.packages.map((entry) => ({
|
|
168
|
+
value: entry.dir,
|
|
169
|
+
label: entry.dir,
|
|
170
|
+
...entry.project.name ? { hint: entry.project.name } : {}
|
|
171
|
+
})), {
|
|
172
|
+
value: ".",
|
|
173
|
+
label: ".",
|
|
174
|
+
hint: "the workspace root"
|
|
175
|
+
}], suggested);
|
|
176
|
+
return dir === void 0 ? CANCELLED : { dir };
|
|
177
|
+
}
|
|
178
|
+
async function runInit(config, args, prompts) {
|
|
179
|
+
const casing = args.casing ?? (prompts ? await prompts.select("Row keys", [{
|
|
180
|
+
value: "camel",
|
|
181
|
+
label: "camelCase",
|
|
182
|
+
hint: "customerId"
|
|
183
|
+
}, {
|
|
184
|
+
value: "snake",
|
|
185
|
+
label: "snake_case",
|
|
186
|
+
hint: "customer_id, as in the database"
|
|
187
|
+
}], "camel") : "camel");
|
|
188
|
+
if (casing === void 0) return CANCELLED;
|
|
189
|
+
if (casing !== "camel" && casing !== "snake") return {
|
|
190
|
+
code: 2,
|
|
191
|
+
error: "--casing must be \"camel\" or \"snake\""
|
|
192
|
+
};
|
|
193
|
+
const target = await initTarget(config.root, args, prompts);
|
|
194
|
+
if ("code" in target) return target;
|
|
195
|
+
const root = resolve(config.root, target.dir);
|
|
196
|
+
const inPackage = target.dir !== ".";
|
|
197
|
+
const workspaceProject = await detectProject(config.root);
|
|
198
|
+
const project = inPackage ? {
|
|
199
|
+
...await detectProject(root),
|
|
200
|
+
packageManager: workspaceProject.packageManager
|
|
201
|
+
} : workspaceProject;
|
|
202
|
+
const lite = args.lite === true;
|
|
203
|
+
const installTarget = inPackage ? {
|
|
204
|
+
dir: target.dir,
|
|
205
|
+
name: project.name
|
|
206
|
+
} : void 0;
|
|
207
|
+
const requested = parseIntegrations(list(args.with));
|
|
208
|
+
if (typeof requested === "string") return {
|
|
209
|
+
code: 2,
|
|
210
|
+
error: requested
|
|
211
|
+
};
|
|
212
|
+
const detected = resolveIntegrations([...suggestedIntegrations(project.frameworks), ...requested]);
|
|
213
|
+
const chosen = args.with === void 0 && prompts ? await chooseIntegrations(prompts, detected) : detected;
|
|
214
|
+
if (chosen === void 0) return CANCELLED;
|
|
215
|
+
const integrations = resolveIntegrations(chosen);
|
|
216
|
+
const hasConfig = findConfig(root) !== void 0;
|
|
217
|
+
let generated = posix.normalize(posix.join(project.srcDir, "lib/supabase/generated.ts"));
|
|
218
|
+
if (hasConfig) generated = inPackage ? (await loadConfig(root)).output : config.output;
|
|
219
|
+
const templateContext = templateContextFor(project, generated);
|
|
220
|
+
const files = [...baseFiles(templateContext, casing, needsLib(integrations), integrations), ...integrationFiles(integrations, templateContext)];
|
|
221
|
+
const force = await overwrite(root, files, args, prompts, config.root);
|
|
222
|
+
if (force === void 0) return CANCELLED;
|
|
223
|
+
const where = inPackage ? ` in ${target.dir}` : "";
|
|
224
|
+
const lines = [
|
|
225
|
+
project.frameworks.length > 0 ? `Found ${project.frameworks.join(", ")}${where}.` : `No framework found${where}.`,
|
|
226
|
+
"",
|
|
227
|
+
...await writeFiles(root, files, args, force, config.root),
|
|
228
|
+
...await enablePgDelta(root, args, config.root)
|
|
229
|
+
];
|
|
230
|
+
const packages = packagesFor(project, integrations);
|
|
231
|
+
const cwdFlag = inPackage ? ` --cwd ${target.dir}` : "";
|
|
232
|
+
const steps = [
|
|
233
|
+
...packages.length > 0 ? [installCommand(project.packageManager, packages, false, installTarget)] : [],
|
|
234
|
+
...devPackages(project, lite).map((names) => installCommand(project.packageManager, names, true, installTarget)),
|
|
235
|
+
...project.hasSupabase || workspaceProject.hasSupabase ? [] : [lite ? "npx lite init" : "supabase init"],
|
|
236
|
+
...lite ? ["Set jwt_secret = \"env(SUPABASE_JWT_SECRET)\" under [auth] in supabase/config.toml, and add SUPABASE_URL=http://127.0.0.1:54321 and a SUPABASE_JWT_SECRET of 32 or more characters to .env", "npx lite dev"] : ["supabase start", `better-supabase env${cwdFlag}`],
|
|
237
|
+
`better-supabase gen${cwdFlag}`
|
|
238
|
+
];
|
|
239
|
+
lines.push("", "Next:", ...steps.map((step, index) => ` ${index + 1}. ${step}`));
|
|
240
|
+
if (lite) lines.push(" - Pass backend: 'lite' to createServer (or createNext, createHono, createEdge, createOrpc): https://bettersupabase.com/docs/platform/lite");
|
|
241
|
+
for (const name of integrations) for (const hint of TEMPLATES[name].next ?? []) lines.push(` - ${hint}`);
|
|
242
|
+
lines.push("", "Agent skills: better-supabase skills install");
|
|
243
|
+
return {
|
|
244
|
+
code: 0,
|
|
245
|
+
output: lines.join("\n")
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
const initCommand = defineCliCommand({
|
|
249
|
+
meta: {
|
|
250
|
+
name: "init",
|
|
251
|
+
description: "Writes better-supabase.config.ts, src/lib/supabase/index.ts and glue for the frameworks in package.json"
|
|
252
|
+
},
|
|
253
|
+
args: INIT_ARGS,
|
|
254
|
+
lists: ["with"],
|
|
255
|
+
run: (args, { config, io }) => runInit(config, args, io.prompts)
|
|
256
|
+
});
|
|
257
|
+
//#endregion
|
|
258
|
+
export { initCommand };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { r as defineCliCommand } from "./command-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
6
|
-
import { n as withSpinner } from "./prompts-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
import { r as defineCliCommand } from "./command-DV-StG1x.js";
|
|
2
|
+
import { r as painter } from "./style-CB3vxgh0.js";
|
|
3
|
+
import { c as serializeGenerator, s as restrictSchemas } from "./typegen-Demi5-VQ.js";
|
|
4
|
+
import { a as serializeSnapshot, t as loadSnapshot } from "./snapshot-Bstk6ulj.js";
|
|
5
|
+
import { t as fileDiff } from "./diff-D1jGdb3Y.js";
|
|
6
|
+
import { n as withSpinner } from "./prompts-DZJB1nTw.js";
|
|
7
|
+
import { r as writeLine, t as fileState } from "./files-BVupXPIC.js";
|
|
8
|
+
import { n as sourceArgs, t as SOURCE_ARGS } from "./source-args-BYfq6imV.js";
|
|
9
9
|
//#region src/cli/commands/introspect.ts
|
|
10
10
|
const ARGS = {
|
|
11
11
|
out: {
|
|
@@ -44,10 +44,10 @@ const introspectCommand = defineCliCommand({
|
|
|
44
44
|
}));
|
|
45
45
|
const out = args.out ?? (format === "snapshot" ? config.source.snapshot ?? "supabase/snapshot.json" : "supabase/generator-metadata.json");
|
|
46
46
|
const contents = format === "snapshot" ? serializeSnapshot(snapshot) : `${await serializeGenerator(restrictSchemas(snapshot.generator, config.schemas))}\n`;
|
|
47
|
+
const state = await fileState(config.root, out, contents);
|
|
47
48
|
if (args.check === true) {
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
return sameText(current, contents) ? {
|
|
49
|
+
const { file, current, upToDate } = state;
|
|
50
|
+
return upToDate ? {
|
|
51
51
|
code: 0,
|
|
52
52
|
output: `${file} is up to date.`,
|
|
53
53
|
data: {
|
|
@@ -64,13 +64,13 @@ const introspectCommand = defineCliCommand({
|
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
|
-
const wrote = await writeIfChanged(resolve(config.root, out), contents);
|
|
68
67
|
const tables = snapshot.extras.tables.length;
|
|
68
|
+
const { wrote, line } = await writeLine(state.path, contents, state.file, ` (${tables} tables).`);
|
|
69
69
|
return {
|
|
70
70
|
code: 0,
|
|
71
|
-
output:
|
|
71
|
+
output: line,
|
|
72
72
|
data: {
|
|
73
|
-
file:
|
|
73
|
+
file: state.file,
|
|
74
74
|
written: wrote,
|
|
75
75
|
tables
|
|
76
76
|
}
|
|
@@ -11,6 +11,10 @@ const withLf = (text) => text.replaceAll("\r\n", "\n");
|
|
|
11
11
|
function sameText(current, expected) {
|
|
12
12
|
return current !== void 0 && withLf(current) === withLf(expected);
|
|
13
13
|
}
|
|
14
|
+
/** The file's text, or `undefined` when it does not exist. */
|
|
15
|
+
async function readIfExists(path) {
|
|
16
|
+
return existsSync(path) ? readFile(path, "utf8") : void 0;
|
|
17
|
+
}
|
|
14
18
|
/** Writes a file when its contents changed, ignoring line endings. Returns whether it wrote. */
|
|
15
19
|
async function writeIfChanged(path, contents) {
|
|
16
20
|
if (existsSync(path)) {
|
|
@@ -30,4 +34,4 @@ function display(root, path) {
|
|
|
30
34
|
return relative(root, resolve(root, path)).split(sep).join("/") || ".";
|
|
31
35
|
}
|
|
32
36
|
//#endregion
|
|
33
|
-
export { writeIfChanged as i, importPath as n,
|
|
37
|
+
export { writeIfChanged as a, sameText as i, importPath as n, readIfExists as r, display as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as defineCliCommand } from "./command-
|
|
2
|
-
import { t as display } from "./io-
|
|
1
|
+
import { r as defineCliCommand } from "./command-DV-StG1x.js";
|
|
2
|
+
import { t as display } from "./io-CFzJVJ68.js";
|
|
3
3
|
import { f as supabaseDir } from "./supabase-toml-B-bIukQF.js";
|
|
4
4
|
import { dirname, resolve } from "node:path";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
@@ -8,7 +8,7 @@ import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
|
|
|
8
8
|
const ARGS = {
|
|
9
9
|
out: {
|
|
10
10
|
type: "string",
|
|
11
|
-
description: "Defaults to supabase/signing_keys.json",
|
|
11
|
+
description: "Defaults to keys.output, then supabase/signing_keys.json",
|
|
12
12
|
valueHint: "file"
|
|
13
13
|
},
|
|
14
14
|
rotate: {
|
|
@@ -41,7 +41,7 @@ async function createSigningKey() {
|
|
|
41
41
|
}
|
|
42
42
|
async function runKeys(config, args) {
|
|
43
43
|
const dir = supabaseDir(config.root);
|
|
44
|
-
const out = args.out ?? `${dir}/signing_keys.json`;
|
|
44
|
+
const out = args.out ?? config.keys.output ?? `${dir}/signing_keys.json`;
|
|
45
45
|
const path = resolve(config.root, out);
|
|
46
46
|
const rotate = args.rotate === true;
|
|
47
47
|
const exists = existsSync(path);
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { r as errorText } from "./errors-CqTLXe2M.js";
|
|
2
|
+
import { a as parseMetadataDocument, t as MetadataRejectedError } from "./typegen-Demi5-VQ.js";
|
|
3
|
+
import { i as metaPaths } from "./emit-BHHfwUoT.js";
|
|
4
|
+
import { i as generationNotices, n as runGen, o as fromMetadata, r as UNFORMATTED, t as refuseRowConditionedBuckets, v as render } from "./run-DuN1MX-7.js";
|
|
5
|
+
import { basename, join, relative, resolve, sep } from "node:path";
|
|
6
|
+
import { readFile } from "node:fs/promises";
|
|
7
|
+
import { jsonSchema, standardSchema, valibot, zod } from "better-supabase/config";
|
|
8
|
+
//#region src/cli/gen/metadata.ts
|
|
9
|
+
/** The files `gen --metadata` can write to stdout. */
|
|
10
|
+
const EMITS = [
|
|
11
|
+
"schema",
|
|
12
|
+
"types",
|
|
13
|
+
"zod",
|
|
14
|
+
"valibot",
|
|
15
|
+
"json-schema",
|
|
16
|
+
"standard-schema"
|
|
17
|
+
];
|
|
18
|
+
const isEmit = (value) => EMITS.some((emit) => emit === value);
|
|
19
|
+
/** The configured generator for an `--emit` target, or one with its defaults. */
|
|
20
|
+
function emitGenerator(config, emit) {
|
|
21
|
+
const configured = config.generators.find((generator) => generator.name === emit);
|
|
22
|
+
switch (emit) {
|
|
23
|
+
case "schema":
|
|
24
|
+
case "types": return;
|
|
25
|
+
case "zod": return configured ?? zod();
|
|
26
|
+
case "valibot": return configured ?? valibot();
|
|
27
|
+
case "json-schema": return configured ?? jsonSchema();
|
|
28
|
+
case "standard-schema": return configured ?? standardSchema();
|
|
29
|
+
default: throw new Error(`unknown --emit ${String(emit)}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The one file `gen --metadata` prints: the `defineSchema` module with its
|
|
34
|
+
* metadata inlined, `database.types.ts`, or one generator's output.
|
|
35
|
+
*/
|
|
36
|
+
async function renderEmit(config, snapshot, emit) {
|
|
37
|
+
const generator = emitGenerator(config, emit);
|
|
38
|
+
const { files, warnings } = await render({
|
|
39
|
+
...config,
|
|
40
|
+
generators: generator ? [generator] : []
|
|
41
|
+
}, snapshot, { inlineMeta: emit === "schema" });
|
|
42
|
+
const path = emit === "schema" ? config.output : emit === "types" ? config.databaseTypesOutput : void 0;
|
|
43
|
+
const own = /* @__PURE__ */ new Set([
|
|
44
|
+
config.databaseTypesOutput,
|
|
45
|
+
config.output,
|
|
46
|
+
...Object.values(metaPaths(config.output))
|
|
47
|
+
]);
|
|
48
|
+
const picked = path === void 0 ? files.filter((file) => !own.has(file.path)) : files.filter((file) => file.path === path);
|
|
49
|
+
const [file] = picked;
|
|
50
|
+
if (!file || picked.length > 1) throw new Error(`--emit ${emit} expects one file, and the generator wrote ${picked.length}. Pass --out <dir> to write them all.`);
|
|
51
|
+
return {
|
|
52
|
+
files: picked,
|
|
53
|
+
warnings,
|
|
54
|
+
contents: file.contents
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Reads `--metadata <path|->` (a file relative to `cwd`, or stdin for `-`)
|
|
59
|
+
* into a snapshot. Throws `MetadataRejectedError` for a document that can't
|
|
60
|
+
* be read or that `parseMetadataDocument` refuses.
|
|
61
|
+
*/
|
|
62
|
+
async function readMetadataSnapshot(source, cwd, io) {
|
|
63
|
+
let text;
|
|
64
|
+
try {
|
|
65
|
+
if (source !== "-") text = await readFile(resolve(cwd, source), "utf8");
|
|
66
|
+
else if (io.stdin) text = await io.stdin();
|
|
67
|
+
else throw new Error("there is no stdin to read");
|
|
68
|
+
} catch (cause) {
|
|
69
|
+
throw new MetadataRejectedError(`Could not read ${source === "-" ? "stdin" : source}: ${errorText(cause)}`);
|
|
70
|
+
}
|
|
71
|
+
return fromMetadata(await parseMetadataDocument(text));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* `gen --metadata`: the out-of-process generator contract of
|
|
75
|
+
* `@supabase/typegen`. Without `--out` it prints one file on stdout and
|
|
76
|
+
* everything else on stderr; with `--out` it writes the usual files there.
|
|
77
|
+
*/
|
|
78
|
+
async function runMetadataGen(options) {
|
|
79
|
+
const { config, io } = options;
|
|
80
|
+
const emit = options.emit ?? "schema";
|
|
81
|
+
if (!isEmit(emit)) return {
|
|
82
|
+
code: 2,
|
|
83
|
+
error: `--emit must be one of ${EMITS.join(", ")}, got "${emit}"`
|
|
84
|
+
};
|
|
85
|
+
if (options.out !== void 0 && options.emit !== void 0) return {
|
|
86
|
+
code: 2,
|
|
87
|
+
error: "--emit picks the one file gen prints; --out writes them all. Pass one of them."
|
|
88
|
+
};
|
|
89
|
+
if (options.out === void 0 && options.check) return {
|
|
90
|
+
code: 2,
|
|
91
|
+
error: "--check with --metadata needs --out <dir>"
|
|
92
|
+
};
|
|
93
|
+
if (options.out === void 0 && options.json) return {
|
|
94
|
+
code: 2,
|
|
95
|
+
error: "--metadata prints the generated code on stdout, so --json has nothing to print. Pass --out <dir> for the JSON summary."
|
|
96
|
+
};
|
|
97
|
+
let snapshot;
|
|
98
|
+
try {
|
|
99
|
+
snapshot = await readMetadataSnapshot(options.metadata, options.cwd, io);
|
|
100
|
+
} catch (cause) {
|
|
101
|
+
if (cause instanceof MetadataRejectedError) return {
|
|
102
|
+
code: 65,
|
|
103
|
+
error: cause.message
|
|
104
|
+
};
|
|
105
|
+
throw cause;
|
|
106
|
+
}
|
|
107
|
+
if (options.out !== void 0) {
|
|
108
|
+
const dir = relative(config.root, resolve(options.cwd, options.out));
|
|
109
|
+
const into = (path) => join(dir, basename(path)).split(sep).join("/");
|
|
110
|
+
return runGen({
|
|
111
|
+
config: {
|
|
112
|
+
...config,
|
|
113
|
+
output: into(config.output),
|
|
114
|
+
databaseTypesOutput: into(config.databaseTypesOutput)
|
|
115
|
+
},
|
|
116
|
+
env: options.env,
|
|
117
|
+
check: options.check,
|
|
118
|
+
snapshot,
|
|
119
|
+
isolated: true,
|
|
120
|
+
...options.paint ? { paint: options.paint } : {}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
const refused = refuseRowConditionedBuckets(config);
|
|
124
|
+
if (refused) return refused;
|
|
125
|
+
const { contents, warnings } = await renderEmit(config, snapshot, emit);
|
|
126
|
+
io.stdout(contents);
|
|
127
|
+
const notices = await generationNotices(snapshot, warnings);
|
|
128
|
+
const shown = emit === "types" ? notices : notices.filter((line) => line !== UNFORMATTED);
|
|
129
|
+
for (const line of shown) io.stderr(`${line}\n`);
|
|
130
|
+
return { code: 0 };
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { readMetadataSnapshot as n, runMetadataGen as r, EMITS as t };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GEN_TASKS, INTEGRATION_NAMES } from "better-supabase/config";
|
|
2
|
+
//#region src/cli/names.ts
|
|
3
|
+
const INTEGRATIONS = INTEGRATION_NAMES;
|
|
4
|
+
const isGenTask = (value) => GEN_TASKS.some((task) => task === value);
|
|
5
|
+
//#endregion
|
|
6
|
+
export { INTEGRATIONS as n, isGenTask as r, GEN_TASKS as t };
|