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,14 +1,10 @@
|
|
|
1
1
|
import { Pool } from "pg";
|
|
2
2
|
import { World } from "@workflow/world";
|
|
3
|
-
//#region src/sql/modules/workflow-sdk-world-ddl.generated.d.ts
|
|
4
|
-
/** The `@workflow/world-postgres` version the DDL below was generated from. */
|
|
5
|
-
export declare const WORLD_POSTGRES_VERSION = "5.0.2";
|
|
6
|
-
//#endregion
|
|
7
3
|
//#region src/sql/modules/workflow-sdk-world.d.ts
|
|
8
4
|
declare const WORKFLOW_DELIVERY_MODES: readonly ["poll", "pg_net"];
|
|
9
5
|
type WorkflowDeliveryMode = (typeof WORKFLOW_DELIVERY_MODES)[number];
|
|
10
6
|
//#endregion
|
|
11
|
-
//#region src/workflow-sdk/world/
|
|
7
|
+
//#region src/workflow-sdk/world/types.d.ts
|
|
12
8
|
/**
|
|
13
9
|
* The `@workflow/world` protocol this World speaks: the package version its
|
|
14
10
|
* types and queue format come from. Its tables come from
|
|
@@ -62,16 +58,8 @@ interface SupabaseWorldOptions {
|
|
|
62
58
|
/** The queue namespace, as `WORKFLOW_QUEUE_NAMESPACE`. */
|
|
63
59
|
readonly namespace?: string;
|
|
64
60
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
/** A 32-byte key from base64 or hex. */
|
|
68
|
-
export declare function parseMasterKey(value: string): Uint8Array;
|
|
69
|
-
/** The run's AES-256 key: HKDF-SHA256 of the master key with info `run:<runId>`. */
|
|
70
|
-
export declare function deriveRunKey(master: Uint8Array, runId: string): Promise<Uint8Array>;
|
|
71
|
-
/** `t=<unix>,v1=<hex>` over `<t>.<job>.<body>`. */
|
|
72
|
-
export declare function signDelivery(secret: string, job: string, body: string, now?: number): Promise<string>;
|
|
73
|
-
/** Whether `header` signs `job` and `body` with `secret` within five minutes of `now`. */
|
|
74
|
-
export declare function verifyDelivery(secret: string, header: string | null, job: string, body: string, now?: number): Promise<boolean>;
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/workflow-sdk/world/world.d.ts
|
|
75
63
|
/** The World plus the delivery helpers the tests and routes use. */
|
|
76
64
|
type SupabaseWorld = World & {
|
|
77
65
|
start(): Promise<void>;
|
|
@@ -91,8 +79,6 @@ type SupabaseWorld = World & {
|
|
|
91
79
|
* ```
|
|
92
80
|
*/
|
|
93
81
|
export declare function createSupabaseWorld(options?: SupabaseWorldOptions): SupabaseWorld;
|
|
94
|
-
/** The options `createWorld()` reads from the environment. */
|
|
95
|
-
export declare function worldOptionsFromEnv(source?: Readonly<Record<string, string | undefined>>): SupabaseWorldOptions;
|
|
96
82
|
/**
|
|
97
83
|
* The World from the environment, the factory the Workflow SDK calls for
|
|
98
84
|
* `WORKFLOW_TARGET_WORLD=better-supabase/workflow-sdk/world`: the connection
|
|
@@ -104,4 +90,24 @@ export declare function worldOptionsFromEnv(source?: Readonly<Record<string, str
|
|
|
104
90
|
*/
|
|
105
91
|
export declare function createWorld(): SupabaseWorld;
|
|
106
92
|
//#endregion
|
|
93
|
+
//#region src/sql/modules/workflow-sdk-world-ddl.generated.d.ts
|
|
94
|
+
/** The `@workflow/world-postgres` version the DDL below was generated from. */
|
|
95
|
+
export declare const WORLD_POSTGRES_VERSION = "5.0.2";
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/workflow-sdk/world/crypto.d.ts
|
|
98
|
+
/** A 32-byte key from base64 or hex. */
|
|
99
|
+
export declare function parseMasterKey(value: string): Uint8Array;
|
|
100
|
+
/** The run's AES-256 key: HKDF-SHA256 of the master key with info `run:<runId>`. */
|
|
101
|
+
export declare function deriveRunKey(master: Uint8Array, runId: string): Promise<Uint8Array>;
|
|
102
|
+
/** `t=<unix>,v1=<hex>` over `<t>.<job>.<body>`. */
|
|
103
|
+
export declare function signDelivery(secret: string, job: string, body: string, now?: number): Promise<string>;
|
|
104
|
+
/** Whether `header` signs `job` and `body` with `secret` within five minutes of `now`. */
|
|
105
|
+
export declare function verifyDelivery(secret: string, header: string | null, job: string, body: string, now?: number): Promise<boolean>;
|
|
106
|
+
//#endregion
|
|
107
|
+
//#region src/workflow-sdk/world/env.d.ts
|
|
108
|
+
/** The flow route: `flowUrl`, `WORKFLOW_FLOW_URL`, or the local server. */
|
|
109
|
+
export declare function resolveFlowUrl(flowUrl?: string): string;
|
|
110
|
+
/** The options `createWorld()` reads from the environment. */
|
|
111
|
+
export declare function worldOptionsFromEnv(source?: Readonly<Record<string, string | undefined>>): SupabaseWorldOptions;
|
|
112
|
+
//#endregion
|
|
107
113
|
export { type SupabaseWorld, type SupabaseWorldOptions, type WorkflowDeliveryMode, createWorld as default };
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { n as dbError } from "../../errors-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { n as dbError } from "../../errors-2M6CKMP4.js";
|
|
2
|
+
import { o as problemResponse } from "../../problem-CJvFeGu7.js";
|
|
3
|
+
import { i as sqlIdent } from "../../template-lPVh-EwW.js";
|
|
4
|
+
import { n as hmacHex, r as timingSafeEqual } from "../../hmac-DCud0myt.js";
|
|
5
|
+
import { n as memoized } from "../../optional-peer-D1pi-skw.js";
|
|
6
|
+
import { i as WORLD_POSTGRES_VERSION, r as WORKFLOW_VAULT_SECRETS } from "../../workflow-sdk-world-CMV1ahFW.js";
|
|
5
7
|
import { Pool } from "pg";
|
|
6
8
|
import { reenqueueActiveRuns } from "@workflow/world";
|
|
7
9
|
import { createWorld as createWorld$1 } from "@workflow/world-postgres";
|
|
@@ -236,33 +238,19 @@ function createAnalytics(pool) {
|
|
|
236
238
|
};
|
|
237
239
|
}
|
|
238
240
|
//#endregion
|
|
239
|
-
//#region src/workflow-sdk/world/
|
|
241
|
+
//#region src/workflow-sdk/world/types.ts
|
|
240
242
|
/**
|
|
241
243
|
* The `@workflow/world` protocol this World speaks: the package version its
|
|
242
244
|
* types and queue format come from. Its tables come from
|
|
243
245
|
* `@workflow/world-postgres` at `WORLD_POSTGRES_VERSION`.
|
|
244
246
|
*/
|
|
245
247
|
const WORKFLOW_WORLD_PROTOCOL = "5.0.2";
|
|
246
|
-
/** The deliveries one message may take; matches world-postgres (49 plus 24 retries of the terminal write). */
|
|
247
|
-
const MAX_DELIVERIES = 73;
|
|
248
|
-
const SIGNATURE_TOLERANCE_SECONDS = 300;
|
|
249
248
|
const JOB_HEADER = "x-bs-job";
|
|
250
249
|
const SIGNATURE_HEADER = "x-bs-signature";
|
|
251
250
|
const FLOW_PATH = "/.well-known/workflow/v1/flow";
|
|
252
251
|
const HKDF_SALT = "better-supabase/workflow";
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
function serialize(value) {
|
|
256
|
-
return Buffer.from(JSON.stringify(value, (_key, inner) => inner instanceof Uint8Array ? {
|
|
257
|
-
__type: "Uint8Array",
|
|
258
|
-
data: Buffer.from(inner).toString("base64")
|
|
259
|
-
} : inner));
|
|
260
|
-
}
|
|
261
|
-
function isStoredMessage(value) {
|
|
262
|
-
if (typeof value !== "object" || value === null) return false;
|
|
263
|
-
const record = { ...value };
|
|
264
|
-
return typeof record["queueName"] === "string" && typeof record["messageId"] === "string" && typeof record["attempt"] === "number" && typeof record["body"] === "string";
|
|
265
|
-
}
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/workflow-sdk/world/env.ts
|
|
266
254
|
function env(name) {
|
|
267
255
|
const value = process.env[name];
|
|
268
256
|
return value === void 0 || value === "" ? void 0 : value;
|
|
@@ -282,6 +270,37 @@ function resolveFlowUrl(flowUrl) {
|
|
|
282
270
|
url.hash = "";
|
|
283
271
|
return url.toString();
|
|
284
272
|
}
|
|
273
|
+
/** The options `createWorld()` reads from the environment. */
|
|
274
|
+
function worldOptionsFromEnv(source = process.env) {
|
|
275
|
+
const read = (name) => {
|
|
276
|
+
const value = source[name];
|
|
277
|
+
return value === void 0 || value === "" ? void 0 : value;
|
|
278
|
+
};
|
|
279
|
+
const delivery = read("WORKFLOW_DELIVERY");
|
|
280
|
+
if (delivery !== void 0 && delivery !== "poll" && delivery !== "pg_net") throw new TypeError(`better-supabase: WORKFLOW_DELIVERY must be "poll" or "pg_net", got "${delivery}"`);
|
|
281
|
+
const connectionString = read("WORKFLOW_POSTGRES_URL") ?? read("SUPABASE_DB_URL") ?? read("DATABASE_URL");
|
|
282
|
+
const flowUrl = read("WORKFLOW_FLOW_URL");
|
|
283
|
+
const deliverySecret = read("WORKFLOW_DELIVERY_SECRET");
|
|
284
|
+
const encryptionKey = read("WORKFLOW_ENCRYPTION_KEY");
|
|
285
|
+
const queue = read("WORKFLOW_DELIVERY_QUEUE");
|
|
286
|
+
const namespace = read("WORKFLOW_QUEUE_NAMESPACE");
|
|
287
|
+
const concurrency = positiveInt(read("WORKFLOW_POSTGRES_WORKER_CONCURRENCY"));
|
|
288
|
+
const pollInterval = positiveInt(read("WORKFLOW_POSTGRES_POLL_INTERVAL_MS"));
|
|
289
|
+
return {
|
|
290
|
+
...connectionString === void 0 ? {} : { connectionString },
|
|
291
|
+
...delivery === void 0 ? {} : { delivery },
|
|
292
|
+
...flowUrl === void 0 ? {} : { flowUrl },
|
|
293
|
+
...deliverySecret === void 0 ? {} : { deliverySecret },
|
|
294
|
+
...encryptionKey === void 0 ? {} : { encryptionKey },
|
|
295
|
+
...queue === void 0 ? {} : { queue },
|
|
296
|
+
...namespace === void 0 ? {} : { namespace },
|
|
297
|
+
...concurrency === void 0 ? {} : { concurrency },
|
|
298
|
+
...pollInterval === void 0 ? {} : { pollInterval }
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
//#endregion
|
|
302
|
+
//#region src/workflow-sdk/world/crypto.ts
|
|
303
|
+
const encoder = new TextEncoder();
|
|
285
304
|
/** A 32-byte key from base64 or hex. */
|
|
286
305
|
function parseMasterKey(value) {
|
|
287
306
|
const text = value.trim();
|
|
@@ -300,20 +319,6 @@ async function deriveRunKey(master, runId) {
|
|
|
300
319
|
}, key, 256);
|
|
301
320
|
return new Uint8Array(bits);
|
|
302
321
|
}
|
|
303
|
-
async function hmacHex(secret, message) {
|
|
304
|
-
const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
|
|
305
|
-
name: "HMAC",
|
|
306
|
-
hash: "SHA-256"
|
|
307
|
-
}, false, ["sign"]);
|
|
308
|
-
const signature = await crypto.subtle.sign("HMAC", key, encoder.encode(message));
|
|
309
|
-
return Buffer.from(signature).toString("hex");
|
|
310
|
-
}
|
|
311
|
-
function constantTimeEqual(a, b) {
|
|
312
|
-
if (a.length !== b.length) return false;
|
|
313
|
-
let diff = 0;
|
|
314
|
-
for (let index = 0; index < a.length; index += 1) diff |= (a.codePointAt(index) ?? 0) ^ (b.codePointAt(index) ?? 0);
|
|
315
|
-
return diff === 0;
|
|
316
|
-
}
|
|
317
322
|
/** `t=<unix>,v1=<hex>` over `<t>.<job>.<body>`. */
|
|
318
323
|
async function signDelivery(secret, job, body, now = Date.now()) {
|
|
319
324
|
const t = String(Math.floor(now / 1e3));
|
|
@@ -329,22 +334,28 @@ async function verifyDelivery(secret, header, job, body, now = Date.now()) {
|
|
|
329
334
|
const t = parts.get("t");
|
|
330
335
|
const v1 = parts.get("v1");
|
|
331
336
|
if (t === void 0 || v1 === void 0 || !/^\d+$/.test(t)) return false;
|
|
332
|
-
if (Math.abs(now / 1e3 - Number(t)) >
|
|
333
|
-
return
|
|
334
|
-
}
|
|
335
|
-
/** `load` once; a rejection is not kept, so the next call reads again. */
|
|
336
|
-
function memoized(load) {
|
|
337
|
-
let promise;
|
|
338
|
-
return () => promise ??= load().catch((cause) => {
|
|
339
|
-
promise = void 0;
|
|
340
|
-
throw cause;
|
|
341
|
-
});
|
|
337
|
+
if (Math.abs(now / 1e3 - Number(t)) > 300) return false;
|
|
338
|
+
return timingSafeEqual(await hmacHex(secret, `${t}.${job}.${body}`), v1);
|
|
342
339
|
}
|
|
343
340
|
/** Unsigned poll deliveries are accepted only when `NODE_ENV` is `development` or `test`. */
|
|
344
341
|
function unsignedAllowed() {
|
|
345
342
|
const mode = env("NODE_ENV");
|
|
346
343
|
return mode === "development" || mode === "test";
|
|
347
344
|
}
|
|
345
|
+
//#endregion
|
|
346
|
+
//#region src/workflow-sdk/world/world.ts
|
|
347
|
+
/** JSON with Uint8Array values as `{ __type: "Uint8Array", data: <base64> }`, as world-postgres sends them. */
|
|
348
|
+
function serialize(value) {
|
|
349
|
+
return Buffer.from(JSON.stringify(value, (_key, inner) => inner instanceof Uint8Array ? {
|
|
350
|
+
__type: "Uint8Array",
|
|
351
|
+
data: Buffer.from(inner).toString("base64")
|
|
352
|
+
} : inner));
|
|
353
|
+
}
|
|
354
|
+
function isStoredMessage(value) {
|
|
355
|
+
if (typeof value !== "object" || value === null) return false;
|
|
356
|
+
const record = { ...value };
|
|
357
|
+
return typeof record["queueName"] === "string" && typeof record["messageId"] === "string" && typeof record["attempt"] === "number" && typeof record["body"] === "string";
|
|
358
|
+
}
|
|
348
359
|
function deliveryProblem(kind, detail) {
|
|
349
360
|
return problemResponse(dbError(kind, detail, { code: "WORKFLOW_DELIVERY_REJECTED" }), { expose: true });
|
|
350
361
|
}
|
|
@@ -393,7 +404,7 @@ function createSupabaseWorld(options = {}) {
|
|
|
393
404
|
queueName,
|
|
394
405
|
JSON.stringify(message),
|
|
395
406
|
Math.max(0, Math.ceil(delaySeconds ?? 0)),
|
|
396
|
-
|
|
407
|
+
73,
|
|
397
408
|
message.idempotencyKey ?? message.messageId,
|
|
398
409
|
false
|
|
399
410
|
]);
|
|
@@ -583,7 +594,7 @@ function createSupabaseWorld(options = {}) {
|
|
|
583
594
|
return deliveryProblem("unauthorized", "Unsigned workflow delivery: set WORKFLOW_DELIVERY_SECRET or the Vault secret workflow_delivery_secret");
|
|
584
595
|
}
|
|
585
596
|
const text = await req.text();
|
|
586
|
-
if (secret === void 0 || !await verifyDelivery(secret, req.headers.get(
|
|
597
|
+
if (secret === void 0 || !await verifyDelivery(secret, req.headers.get("x-bs-signature"), "", text)) return deliveryProblem("unauthorized", "Unsigned workflow delivery");
|
|
587
598
|
return inner(new Request(req.url, {
|
|
588
599
|
method: "POST",
|
|
589
600
|
headers: req.headers,
|
|
@@ -591,7 +602,7 @@ function createSupabaseWorld(options = {}) {
|
|
|
591
602
|
}));
|
|
592
603
|
}
|
|
593
604
|
const text = await req.text();
|
|
594
|
-
if (secret === void 0 || !await verifyDelivery(secret, req.headers.get(
|
|
605
|
+
if (secret === void 0 || !await verifyDelivery(secret, req.headers.get("x-bs-signature"), job, text)) return deliveryProblem("unauthorized", "Bad workflow delivery signature");
|
|
595
606
|
const [jobQueue, id, readCount] = job.split(":");
|
|
596
607
|
const attempts = Number(readCount);
|
|
597
608
|
let payload;
|
|
@@ -655,34 +666,6 @@ function createSupabaseWorld(options = {}) {
|
|
|
655
666
|
}
|
|
656
667
|
};
|
|
657
668
|
}
|
|
658
|
-
/** The options `createWorld()` reads from the environment. */
|
|
659
|
-
function worldOptionsFromEnv(source = process.env) {
|
|
660
|
-
const read = (name) => {
|
|
661
|
-
const value = source[name];
|
|
662
|
-
return value === void 0 || value === "" ? void 0 : value;
|
|
663
|
-
};
|
|
664
|
-
const delivery = read("WORKFLOW_DELIVERY");
|
|
665
|
-
if (delivery !== void 0 && delivery !== "poll" && delivery !== "pg_net") throw new TypeError(`better-supabase: WORKFLOW_DELIVERY must be "poll" or "pg_net", got "${delivery}"`);
|
|
666
|
-
const connectionString = read("WORKFLOW_POSTGRES_URL") ?? read("SUPABASE_DB_URL") ?? read("DATABASE_URL");
|
|
667
|
-
const flowUrl = read("WORKFLOW_FLOW_URL");
|
|
668
|
-
const deliverySecret = read("WORKFLOW_DELIVERY_SECRET");
|
|
669
|
-
const encryptionKey = read("WORKFLOW_ENCRYPTION_KEY");
|
|
670
|
-
const queue = read("WORKFLOW_DELIVERY_QUEUE");
|
|
671
|
-
const namespace = read("WORKFLOW_QUEUE_NAMESPACE");
|
|
672
|
-
const concurrency = positiveInt(read("WORKFLOW_POSTGRES_WORKER_CONCURRENCY"));
|
|
673
|
-
const pollInterval = positiveInt(read("WORKFLOW_POSTGRES_POLL_INTERVAL_MS"));
|
|
674
|
-
return {
|
|
675
|
-
...connectionString === void 0 ? {} : { connectionString },
|
|
676
|
-
...delivery === void 0 ? {} : { delivery },
|
|
677
|
-
...flowUrl === void 0 ? {} : { flowUrl },
|
|
678
|
-
...deliverySecret === void 0 ? {} : { deliverySecret },
|
|
679
|
-
...encryptionKey === void 0 ? {} : { encryptionKey },
|
|
680
|
-
...queue === void 0 ? {} : { queue },
|
|
681
|
-
...namespace === void 0 ? {} : { namespace },
|
|
682
|
-
...concurrency === void 0 ? {} : { concurrency },
|
|
683
|
-
...pollInterval === void 0 ? {} : { pollInterval }
|
|
684
|
-
};
|
|
685
|
-
}
|
|
686
669
|
/**
|
|
687
670
|
* The World from the environment, the factory the Workflow SDK calls for
|
|
688
671
|
* `WORKFLOW_TARGET_WORLD=better-supabase/workflow-sdk/world`: the connection
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { m as RequestContext } from "./plugin-
|
|
2
|
-
import { a as OutboxEvent, o as OutboxHandler } from "./outbox-
|
|
3
|
-
import { u as WorkflowStarter } from "./workflows-
|
|
1
|
+
import { m as RequestContext } from "./plugin-CPK2HsbY.js";
|
|
2
|
+
import { a as OutboxEvent, o as OutboxHandler } from "./outbox-DZfAvfzC.js";
|
|
3
|
+
import { u as WorkflowStarter } from "./workflows-CcpCBfIe.js";
|
|
4
4
|
import { Hook, Run } from "workflow/api";
|
|
5
5
|
import { World } from "@workflow/world";
|
|
6
6
|
//#region src/workflow-sdk/workflow-sdk.d.ts
|