better-supabase 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +299 -41
- package/dist/access-sql-B0dF-SoF.js +181 -0
- package/dist/actor-CQTlc1Hh.d.ts +43 -0
- package/dist/adapter-Bc1o3zyy.js +1106 -0
- package/dist/agents-CVHGd7It.d.ts +94 -0
- package/dist/ai-cache-CBWs1W0k.js +80 -0
- package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
- package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
- package/dist/ai-chat-B24UI962.js +743 -0
- package/dist/ai-files-CSPNswUY.js +319 -0
- package/dist/ai-sdk/agents/index.d.ts +74 -0
- package/dist/ai-sdk/agents/index.js +159 -0
- package/dist/ai-sdk/batches/index.d.ts +74 -0
- package/dist/ai-sdk/batches/index.js +180 -0
- package/dist/ai-sdk/cache/index.d.ts +38 -0
- package/dist/ai-sdk/cache/index.js +127 -0
- package/dist/ai-sdk/chat/index.d.ts +2 -0
- package/dist/ai-sdk/chat/index.js +246 -0
- package/dist/ai-sdk/embeddings/index.d.ts +3 -0
- package/dist/ai-sdk/embeddings/index.js +2 -0
- package/dist/ai-sdk/files/index.d.ts +61 -0
- package/dist/ai-sdk/files/index.js +111 -0
- package/dist/ai-sdk/index.d.ts +145 -0
- package/dist/ai-sdk/index.js +174 -0
- package/dist/ai-sdk/mcp/index.d.ts +102 -0
- package/dist/ai-sdk/mcp/index.js +362 -0
- package/dist/ai-sdk/memory/index.d.ts +67 -0
- package/dist/ai-sdk/memory/index.js +175 -0
- package/dist/ai-sdk/react/index.d.ts +2 -0
- package/dist/ai-sdk/react/index.js +3 -0
- package/dist/ai-sdk/react/server.d.ts +6 -0
- package/dist/ai-sdk/react/server.js +7 -0
- package/dist/ai-sdk/workflow/index.d.ts +249 -0
- package/dist/ai-sdk/workflow/index.js +575 -0
- package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
- package/dist/ai-sdk/workflow/react/index.js +66 -0
- package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
- package/dist/ai-sdk/workflow/react/server.js +12 -0
- package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
- package/dist/announcements-CiyOs-xP.js +107 -0
- package/dist/announcements-ZRGnScWI.d.ts +72 -0
- package/dist/api-keys-rCGtKaZA.d.ts +156 -0
- package/dist/assistant-DwdpDH1q.d.ts +147 -0
- package/dist/astro/index.d.ts +86 -0
- package/dist/astro/index.js +93 -0
- package/dist/attributes-5dYul0u0.js +13 -0
- package/dist/auth-link-BjFPqwLz.d.ts +97 -0
- package/dist/auth-link-DrDX9KOT.js +114 -0
- package/dist/authorization-BFCqamMs.d.ts +172 -0
- package/dist/before-route-CnR0C0Jr.js +30 -0
- package/dist/bind-Bu_ZNa3W.d.ts +62 -0
- package/dist/bind-l4kAvYSv.js +97 -0
- package/dist/block-events-CrT8r7Fe.js +76 -0
- package/dist/block-fields-GFkxl4dP.js +49 -0
- package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
- package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
- package/dist/block-helpers-DWHxHsEQ.js +190 -0
- package/dist/block-hooks-BmjMyXTa.js +114 -0
- package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
- package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
- package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
- package/dist/blocks/agents/index.d.ts +3 -0
- package/dist/blocks/agents/index.js +123 -0
- package/dist/blocks/ai-cache/index.d.ts +3 -0
- package/dist/blocks/ai-cache/index.js +3 -0
- package/dist/blocks/ai-chat/index.d.ts +31 -0
- package/dist/blocks/ai-chat/index.js +5 -0
- package/dist/blocks/ai-chat/react/index.d.ts +77 -0
- package/dist/blocks/ai-chat/react/index.js +387 -0
- package/dist/blocks/ai-chat/react/server.d.ts +16 -0
- package/dist/blocks/ai-chat/react/server.js +14 -0
- package/dist/blocks/ai-files/index.d.ts +14 -0
- package/dist/blocks/ai-files/index.js +3 -0
- package/dist/blocks/ai-providers/index.d.ts +7 -0
- package/dist/blocks/ai-providers/index.js +211 -0
- package/dist/blocks/ai-tasks/index.d.ts +3 -0
- package/dist/blocks/ai-tasks/index.js +203 -0
- package/dist/blocks/announcements/index.d.ts +3 -0
- package/dist/blocks/announcements/index.js +3 -0
- package/dist/blocks/announcements/react/index.d.ts +31 -0
- package/dist/blocks/announcements/react/index.js +86 -0
- package/dist/blocks/announcements/react/server.d.ts +6 -0
- package/dist/blocks/announcements/react/server.js +7 -0
- package/dist/blocks/api-keys/index.d.ts +35 -0
- package/dist/blocks/api-keys/index.js +334 -0
- package/dist/blocks/attachments/index.d.ts +210 -0
- package/dist/blocks/attachments/index.js +222 -0
- package/dist/blocks/audit/index.d.ts +366 -0
- package/dist/blocks/audit/index.js +714 -0
- package/dist/blocks/billing/index.d.ts +265 -0
- package/dist/blocks/billing/index.js +400 -0
- package/dist/blocks/comments/index.d.ts +200 -0
- package/dist/blocks/comments/index.js +207 -0
- package/dist/blocks/connectors/index.d.ts +3 -0
- package/dist/blocks/connectors/index.js +164 -0
- package/dist/blocks/data-lifecycle/index.d.ts +251 -0
- package/dist/blocks/data-lifecycle/index.js +353 -0
- package/dist/blocks/entitlements/index.d.ts +14 -0
- package/dist/blocks/entitlements/index.js +25 -0
- package/dist/blocks/flags/index.d.ts +226 -0
- package/dist/blocks/flags/index.js +282 -0
- package/dist/blocks/inbox/index.d.ts +6 -0
- package/dist/blocks/inbox/index.js +499 -0
- package/dist/blocks/inbox/react/index.d.ts +2 -0
- package/dist/blocks/inbox/react/index.js +225 -0
- package/dist/blocks/inbox/react/server.d.ts +10 -0
- package/dist/blocks/inbox/react/server.js +12 -0
- package/dist/blocks/index.d.ts +65 -0
- package/dist/blocks/index.js +77 -0
- package/dist/blocks/jobs/index.d.ts +297 -0
- package/dist/blocks/jobs/index.js +1051 -0
- package/dist/blocks/knowledge/index.d.ts +3 -0
- package/dist/blocks/knowledge/index.js +3 -0
- package/dist/blocks/memory/index.d.ts +8 -0
- package/dist/blocks/memory/index.js +289 -0
- package/dist/blocks/notifications/index.d.ts +297 -0
- package/dist/blocks/notifications/index.js +425 -0
- package/dist/blocks/notifications/react/index.d.ts +44 -0
- package/dist/blocks/notifications/react/index.js +67 -0
- package/dist/blocks/notifications/react/server.d.ts +6 -0
- package/dist/blocks/notifications/react/server.js +7 -0
- package/dist/blocks/onboarding/index.d.ts +3 -0
- package/dist/blocks/onboarding/index.js +64 -0
- package/dist/blocks/onboarding/react/index.d.ts +28 -0
- package/dist/blocks/onboarding/react/index.js +78 -0
- package/dist/blocks/onboarding/react/server.d.ts +7 -0
- package/dist/blocks/onboarding/react/server.js +7 -0
- package/dist/blocks/organizations/index.d.ts +241 -0
- package/dist/blocks/organizations/index.js +400 -0
- package/dist/blocks/outbox/index.d.ts +3 -0
- package/dist/blocks/outbox/index.js +266 -0
- package/dist/blocks/profiles/index.d.ts +40 -0
- package/dist/blocks/profiles/index.js +28 -0
- package/dist/blocks/push/index.d.ts +185 -0
- package/dist/blocks/push/index.js +258 -0
- package/dist/blocks/settings/index.d.ts +89 -0
- package/dist/blocks/settings/index.js +104 -0
- package/dist/blocks/sso/index.d.ts +198 -0
- package/dist/blocks/sso/index.js +1297 -0
- package/dist/blocks/usage/index.d.ts +4 -0
- package/dist/blocks/usage/index.js +233 -0
- package/dist/blocks/waitlist/index.d.ts +117 -0
- package/dist/blocks/waitlist/index.js +132 -0
- package/dist/blocks/webhooks/index.d.ts +304 -0
- package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
- package/dist/blocks/workflow-builder/index.d.ts +21 -0
- package/dist/blocks/workflow-builder/index.js +5 -0
- package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
- package/dist/blocks/workflow-builder/react/index.js +119 -0
- package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
- package/dist/blocks/workflow-builder/react/server.js +11 -0
- package/dist/blocks/workflows/index.d.ts +3 -0
- package/dist/blocks/workflows/index.js +3 -0
- package/dist/blocks/workflows/react/index.d.ts +47 -0
- package/dist/blocks/workflows/react/index.js +137 -0
- package/dist/blocks/workflows/react/server.d.ts +8 -0
- package/dist/blocks/workflows/react/server.js +11 -0
- package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
- package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
- package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
- package/dist/channels-CkgQ_X60.js +114 -0
- package/dist/chat-sdk/index.d.ts +303 -0
- package/dist/chat-sdk/index.js +733 -0
- package/dist/chat-sdk/react/index.d.ts +2 -0
- package/dist/chat-sdk/react/index.js +3 -0
- package/dist/chat-sdk/react/server.d.ts +3 -0
- package/dist/chat-sdk/react/server.js +2 -0
- package/dist/claims-DDBQT6BK.js +61 -0
- package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
- package/dist/cli/bin.js +1 -1
- package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
- package/dist/cli/config-B9HkL8nF.js +2 -0
- package/dist/cli/config-DU7EJImt.js +49 -0
- package/dist/cli/config-NiPxAmUF.js +1077 -0
- package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
- package/dist/cli/{doctor-L7Z8mYTx.js → doctor-B4JOm_ox.js} +992 -316
- package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
- package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
- package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
- package/dist/cli/gen-BGLb_zou.js +3100 -0
- package/dist/cli/gen-DAH8FM2W.js +2 -0
- package/dist/cli/index.d.ts +44 -5
- package/dist/cli/index.js +7 -7
- package/dist/cli/{init-Saf5-R9T.js → init-BIIwclPg.js} +242 -27
- package/dist/cli/{introspect--H7oGmcd.js → introspect-DNUTuNvb.js} +5 -5
- package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
- package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
- package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
- package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
- package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
- package/dist/cli/read-sets-CETOSFx4.js +223 -0
- package/dist/cli/{run-BKR2W_79.js → run-DNWxHynX.js} +33 -23
- package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
- package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
- package/dist/cli/sql-D0GUtUPp.js +536 -0
- package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
- package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
- package/dist/cli/{version-BDJuO0UR.js → version-hr88OZG0.js} +1 -1
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.js +11 -71
- package/dist/client/native/index.d.ts +228 -0
- package/dist/client/native/index.js +361 -0
- package/dist/client-CI0Z2zWX.js +277 -0
- package/dist/cloud-event-BnmD5fb9.js +46 -0
- package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
- package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
- package/dist/compose-BIBNgAnq.js +53 -0
- package/dist/composite-Bt1YK3Ke.d.ts +146 -0
- package/dist/composite-DhE66P5u.js +130 -0
- package/dist/config/index.d.ts +6 -4
- package/dist/config/index.js +5 -5
- package/dist/{config-T_ejwyd3.d.ts → config-D44Y7PAv.d.ts} +406 -205
- package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
- package/dist/connector-Dv8kK0MO.d.ts +107 -0
- package/dist/connectors-hkLCwyEz.d.ts +120 -0
- package/dist/context-BCrWe7ow.d.ts +237 -0
- package/dist/credentials/index.d.ts +31 -0
- package/dist/credentials/index.js +168 -0
- package/dist/cron-DVPUg5k3.js +145 -0
- package/dist/csv-CPAzEmB6.js +25 -0
- package/dist/db-exception-CnWcYPxL.js +15 -0
- package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
- package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
- package/dist/edge/index.d.ts +69 -11
- package/dist/edge/index.js +191 -75
- package/dist/elysia/index.d.ts +59 -0
- package/dist/elysia/index.js +62 -0
- package/dist/embeddings-4ZvFzjsU.js +127 -0
- package/dist/embeddings-C9KGQnXt.d.ts +68 -0
- package/dist/{refresh-BTrQ_ZTp.d.ts → ended-jLfvw8h-.d.ts} +20 -2
- package/dist/{entitlements-DUxU4oHe.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
- package/dist/entitlements-DRl6ZJUm.js +24 -0
- package/dist/envelope-DqnYGRw7.js +47 -0
- package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
- package/dist/errors-DLjJHPLK.js +44 -0
- package/dist/escape-like-DHfx6jRr.js +7 -0
- package/dist/escape-like-ImTK0ps_.d.ts +15 -0
- package/dist/eve/index.d.ts +220 -0
- package/dist/eve/index.js +504 -0
- package/dist/eve-gT2Fpjut.d.ts +151 -0
- package/dist/events/index.d.ts +4 -3
- package/dist/events/index.js +9 -50
- package/dist/events-DWDhx77e.d.ts +549 -0
- package/dist/executor-Bq28caBo.js +718 -0
- package/dist/executor-C-R4pucm.js +83 -0
- package/dist/executor-CaWigTyR.d.ts +148 -0
- package/dist/executor-D14tGopJ.d.ts +36 -0
- package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
- package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
- package/dist/executor-DvsBbNBS.d.ts +261 -0
- package/dist/expo/index.d.ts +79 -0
- package/dist/expo/index.js +129 -0
- package/dist/expo-sqlite/index.d.ts +58 -0
- package/dist/expo-sqlite/index.js +104 -0
- package/dist/field-errors-BFOa7WhB.d.ts +99 -0
- package/dist/field-errors-VF1yb8yI.js +13 -0
- package/dist/framework-CONDyPYx.js +51 -0
- package/dist/framework-DuVb4Xa8.d.ts +25 -0
- package/dist/gateway-C1ssRHnf.d.ts +130 -0
- package/dist/graph-BGyLLFLX.js +265 -0
- package/dist/h3/index.d.ts +59 -0
- package/dist/h3/index.js +55 -0
- package/dist/h3/v1/index.d.ts +63 -0
- package/dist/h3/v1/index.js +49 -0
- package/dist/history-BZih6SFP.js +64 -0
- package/dist/hono/index.d.ts +56 -7
- package/dist/hono/index.js +97 -45
- package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
- package/dist/http-Cv4T29xh.js +40 -0
- package/dist/http-DdYadv-o.js +126 -0
- package/dist/image-url-pIVlO6R1.js +41 -0
- package/dist/impersonation-DcqaTBHx.js +148 -0
- package/dist/inbox-i7E1ppo6.d.ts +384 -0
- package/dist/index-ACiNPN4Z.d.ts +74 -0
- package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
- package/dist/index-BkWT_uBO.d.ts +51 -0
- package/dist/index-BpFYMsi0.d.ts +53 -0
- package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
- package/dist/index-CaxrMD1A.d.ts +1 -0
- package/dist/index-ClmjK_o-.d.ts +55 -0
- package/dist/index-CtuakVRc.d.ts +267 -0
- package/dist/index-D48jVS-N.d.ts +246 -0
- package/dist/index-DDrYaUcq.d.ts +138 -0
- package/dist/index-DQh4VCc9.d.ts +98 -0
- package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
- package/dist/index.d.ts +65 -18
- package/dist/index.js +42 -14
- package/dist/invalidate-BBqhpxyB.d.ts +19 -0
- package/dist/json-CEnpTHlZ.js +16 -0
- package/dist/json-schema-CvER4kgT.js +502 -0
- package/dist/keys-4MnkWTTh.js +35 -0
- package/dist/kit-B5tid-q5.d.ts +60 -0
- package/dist/kit-Fm-Fv7q5.js +78 -0
- package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
- package/dist/knowledge-CDmiMLew.js +255 -0
- package/dist/lint/index.d.ts +1 -1
- package/dist/lint/index.js +37 -0
- package/dist/list/index.d.ts +3 -2
- package/dist/list/index.js +1 -444
- package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
- package/dist/list-query-gl808ac1.js +459 -0
- package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
- package/dist/logger-DWVYUmwi.d.ts +18 -0
- package/dist/mcp/index.d.ts +38 -11
- package/dist/mcp/index.js +82 -46
- package/dist/mcp/sdk/index.d.ts +105 -0
- package/dist/mcp/sdk/index.js +126 -0
- package/dist/message-CaKlqdsX.js +219 -0
- package/dist/message-CfDoR0Y6.d.ts +94 -0
- package/dist/messages-B9-5887d.js +715 -0
- package/dist/messages-DYP0sUTe.d.ts +59 -0
- package/dist/{mfa-CusDgPaD.d.ts → mfa-Daak8ukG.d.ts} +8 -2
- package/dist/modules-DpPwzC7E.d.ts +192 -0
- package/dist/modules-dxrVK3ID.js +228 -0
- package/dist/nestjs/index.d.ts +68 -0
- package/dist/nestjs/index.js +164 -0
- package/dist/next/client/index.d.ts +35 -0
- package/dist/next/client/index.js +36 -0
- package/dist/next/image/index.js +3 -24
- package/dist/next/index.d.ts +150 -51
- package/dist/next/index.js +261 -107
- package/dist/node/index.d.ts +4 -0
- package/dist/node/index.js +210 -0
- package/dist/node-headers-AO06VhqH.d.ts +24 -0
- package/dist/node-headers-C71zNQHe.js +55 -0
- package/dist/nuxt/index.d.ts +60 -0
- package/dist/nuxt/index.js +64 -0
- package/dist/onboarding-BZGHYJks.d.ts +62 -0
- package/dist/openapi/index.d.ts +1 -1
- package/dist/openapi/index.js +3 -3
- package/dist/orpc/index.d.ts +70 -11
- package/dist/orpc/index.js +73 -24
- package/dist/otel/index.d.ts +7 -7
- package/dist/otel/index.js +87 -57
- package/dist/outbox-Cq7pPYvl.d.ts +161 -0
- package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
- package/dist/plugin-tfXW1-qO.js +45 -0
- package/dist/plugins/actor/index.d.ts +2 -2
- package/dist/plugins/actor/index.js +3 -3
- package/dist/plugins/rules/index.d.ts +11 -4
- package/dist/plugins/rules/index.js +40 -13
- package/dist/plugins/soft-delete/index.d.ts +5 -4
- package/dist/plugins/soft-delete/index.js +10 -5
- package/dist/plugins/tenant/index.d.ts +2 -2
- package/dist/plugins/tenant/index.js +18 -11
- package/dist/plugins/timestamps/index.d.ts +5 -3
- package/dist/plugins/timestamps/index.js +6 -4
- package/dist/plugins/validation/index.d.ts +2 -2
- package/dist/plugins/validation/index.js +10 -6
- package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
- package/dist/postgres/index.d.ts +4 -4
- package/dist/postgres/index.js +1 -2
- package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
- package/dist/powersync/index.d.ts +43 -0
- package/dist/powersync/index.js +199 -0
- package/dist/powersync/react/index.d.ts +87 -0
- package/dist/powersync/react/index.js +108 -0
- package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
- package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
- package/dist/provider-BH5UWZJ6.d.ts +113 -0
- package/dist/provider-Di3sRutW.js +57 -0
- package/dist/query/index.d.ts +4 -2
- package/dist/query/index.js +4 -3
- package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
- package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
- package/dist/react/index.d.ts +11 -7
- package/dist/react/index.js +7 -3
- package/dist/react/native/index.d.ts +116 -0
- package/dist/react/native/index.js +130 -0
- package/dist/react/server.d.ts +28 -10
- package/dist/react/server.js +22 -5
- package/dist/react/session.d.ts +2 -2
- package/dist/react-4ZqkP8da.js +79 -0
- package/dist/react-F80mF4-t.js +409 -0
- package/dist/react-router/index.d.ts +83 -0
- package/dist/react-router/index.js +89 -0
- package/dist/react-topic-seAWjL3_.js +38 -0
- package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
- package/dist/realtime/index.d.ts +4 -5
- package/dist/realtime/index.js +144 -82
- package/dist/refusal-CeJWxmkH.js +61 -0
- package/dist/refusal-D1rgbzNq.d.ts +15 -0
- package/dist/replicas-CwrYp5Zj.js +94 -0
- package/dist/{view-Bq64ki8-.js → resolve-D_IcnvFd.js} +239 -289
- package/dist/{resolve-C15TJq77.d.ts → resolve-KW8nCeL6.d.ts} +29 -45
- package/dist/{resource-CRxxwkQq.js → resource-BsvzCMlX.js} +4 -4
- package/dist/{resource-D8iqWMr-.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
- package/dist/respond-BUgsXNgk.js +91 -0
- package/dist/respond-DoBijysA.d.ts +93 -0
- package/dist/result-D7y2fT87.d.ts +282 -0
- package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
- package/dist/run-state-CPo-1X2B.d.ts +12 -0
- package/dist/run-state-CgBKzYMW.js +13 -0
- package/dist/search-CUWCRYKL.js +9 -0
- package/dist/server/index.d.ts +143 -21
- package/dist/server/index.js +46 -14
- package/dist/{respond-D2OQl62-.d.ts → server-CeVeeXwz.d.ts} +225 -80
- package/dist/session-ChiXDZdZ.d.ts +72 -0
- package/dist/shared-CBxosKK3.js +75 -0
- package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
- package/dist/shared-DDSjEGDR.d.ts +11 -0
- package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
- package/dist/sign-in-Cb1mwv6X.js +86 -0
- package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
- package/dist/simplify-DDO0j0LI.js +83 -0
- package/dist/solid/index.d.ts +131 -0
- package/dist/solid/index.js +344 -0
- package/dist/solid-start/index.d.ts +75 -0
- package/dist/solid-start/index.js +58 -0
- package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
- package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
- package/dist/sql/index.d.ts +330 -194
- package/dist/sql/index.js +34901 -6489
- package/dist/ssr/index.d.ts +6 -5
- package/dist/ssr/index.js +3 -3
- package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
- package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
- package/dist/stats-D_AD9GGu.js +1123 -0
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +1027 -368
- package/dist/store-BdH5ruDx.js +66 -0
- package/dist/store-CGjgWu5n.d.ts +68 -0
- package/dist/streams/index.d.ts +76 -0
- package/dist/streams/index.js +77 -0
- package/dist/streams/redis/index.d.ts +52 -0
- package/dist/streams/redis/index.js +185 -0
- package/dist/stripe-BMj5LtsT.js +38 -0
- package/dist/stripe-D04h-QBT.d.ts +136 -0
- package/dist/{support-Dk6vdmEw.js → support-BivNqSpK.js} +35 -12
- package/dist/{support-view-Da5peKFg.d.ts → support-view-33Oi07TT.d.ts} +1 -1
- package/dist/svelte/index.d.ts +114 -0
- package/dist/svelte/index.js +344 -0
- package/dist/sveltekit/index.d.ts +116 -0
- package/dist/sveltekit/index.js +106 -0
- package/dist/tags-B99_U9Pp.js +39 -0
- package/dist/tags-Cx-LnIQP.d.ts +30 -0
- package/dist/tanstack-db/index.d.ts +71 -0
- package/dist/tanstack-db/index.js +72 -0
- package/dist/tanstack-start/index.d.ts +75 -0
- package/dist/tanstack-start/index.js +95 -0
- package/dist/tee-CoEppCER.js +101 -0
- package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
- package/dist/template-CwO38Do8.d.ts +6 -0
- package/dist/temporal-BJGitm-h.js +79 -0
- package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
- package/dist/tenant-I1TEZ_BX.js +27 -0
- package/dist/tenant-icPeuUBN.d.ts +17 -0
- package/dist/testing/index.d.ts +343 -37
- package/dist/testing/index.js +1186 -79
- package/dist/timing-CyTQPubY.js +92 -0
- package/dist/ttl-Hr34gRu8.js +12 -0
- package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
- package/dist/types-BI-0Sl2v.d.ts +359 -0
- package/dist/types-C05bxW-W.d.ts +220 -0
- package/dist/types-DGs5L0VN.d.ts +192 -0
- package/dist/types-TaiEeBGA.d.ts +156 -0
- package/dist/usage-CrvrL2vw.d.ts +177 -0
- package/dist/user-change-XzvgafU4.js +130 -0
- package/dist/vault-CSO7ss5C.d.ts +50 -0
- package/dist/vercel-connect/index.d.ts +47 -0
- package/dist/vercel-connect/index.js +119 -0
- package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
- package/dist/verify-DPuWngD4.d.ts +172 -0
- package/dist/{version-DM_Roffb.js → version-Bvv6aLjZ.js} +1 -1
- package/dist/view-BeFcRV6G.js +99 -0
- package/dist/{view-BEf0diC5.d.ts → view-DbxLNu8L.d.ts} +35 -32
- package/dist/vue/index.d.ts +141 -0
- package/dist/vue/index.js +362 -0
- package/dist/watch-DI34G86j.d.ts +60 -0
- package/dist/watch-Xuxrvxq-.js +122 -0
- package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
- package/dist/workflow-builder-DJ1oHn8g.js +398 -0
- package/dist/workflow-sdk/builder/index.d.ts +85 -0
- package/dist/workflow-sdk/builder/index.js +250 -0
- package/dist/workflow-sdk/index.d.ts +14 -0
- package/dist/workflow-sdk/index.js +3 -0
- package/dist/workflow-sdk/world/index.d.ts +107 -0
- package/dist/workflow-sdk/world/index.js +702 -0
- package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
- package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
- package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
- package/dist/workflows-B0j9WKPu.d.ts +185 -0
- package/dist/workflows-wu1WWBn7.js +216 -0
- package/package.json +470 -29
- package/schemas/ai-message-v1.json +258 -0
- package/schemas/config-v1.json +1074 -140
- package/schemas/doctor-report-v1.json +21 -1
- package/schemas/snapshot-v2.json +8 -0
- package/skills/better-supabase/SKILL.md +41 -12
- package/skills/better-supabase/references/frontend.md +96 -0
- package/skills/better-supabase/references/plugins.md +10 -6
- package/skills/better-supabase/references/troubleshooting.md +2 -1
- package/skills/better-supabase-api/SKILL.md +76 -22
- package/skills/better-supabase-api/references/adapters.md +207 -0
- package/skills/better-supabase-api/references/ai.md +125 -0
- package/skills/better-supabase-api/references/expo.md +65 -0
- package/skills/better-supabase-api/references/powersync.md +35 -0
- package/skills/better-supabase-api/references/streams-credentials.md +105 -0
- package/skills/better-supabase-auth/SKILL.md +62 -18
- package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
- package/skills/better-supabase-testing/SKILL.md +3 -1
- package/dist/cli/config-dtoekM0v.js +0 -2
- package/dist/cli/gen-BJc9vdyu.js +0 -2
- package/dist/cli/gen-C2osRcr5.js +0 -2204
- package/dist/cli/read-sets-BfMQcKy8.js +0 -289
- package/dist/cli/sql-DzPbfngx.js +0 -348
- package/dist/entitlements-CTEBm7IB.js +0 -20
- package/dist/events-aIO7vsIk.d.ts +0 -230
- package/dist/executor-BunPOO-k.d.ts +0 -402
- package/dist/executor-XycESQPH.js +0 -94
- package/dist/impersonation-VfaGc4Q_.js +0 -41
- package/dist/index-BGdgBPdf.d.ts +0 -161
- package/dist/index-DOESKG27.d.ts +0 -100
- package/dist/index-DmXSxbLi.d.ts +0 -62
- package/dist/index-Dxn2a5cw.d.ts +0 -50
- package/dist/jobs/index.d.ts +0 -226
- package/dist/jobs/index.js +0 -1007
- package/dist/json-schema-m1fiwKgN.js +0 -208
- package/dist/kit-events-CTFDfSwb.js +0 -60
- package/dist/kit-transport-B82k1djG.d.ts +0 -33
- package/dist/kits-CGLLrNPd.js +0 -157
- package/dist/notifications/index.d.ts +0 -162
- package/dist/notifications/index.js +0 -264
- package/dist/orgs/index.d.ts +0 -132
- package/dist/orgs/index.js +0 -245
- package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
- package/dist/permdock-sql-DgOfeixi.js +0 -51
- package/dist/plugin-DwARMuQp.js +0 -59
- package/dist/server-Csx2sRjg.js +0 -655
- package/dist/stats-Bqob3WqT.js +0 -592
- package/dist/support-DT-OhSxD.d.ts +0 -88
- package/dist/template-mbvlysOo.d.ts +0 -6
- package/dist/temporal-CVlIV2DZ.js +0 -40
- package/dist/user-change-CHFEUro1.js +0 -49
- package/dist/webhooks/index.d.ts +0 -285
- package/skills/better-supabase-auth/references/permdock.md +0 -100
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { v as Operation } from "../../executor-DvsBbNBS.js";
|
|
2
|
+
import { d as Plugin, p as RepositoryExtension } from "../../plugin-FGY8UhYm.js";
|
|
3
3
|
//#region src/plugins/rules/index.d.ts
|
|
4
4
|
export type RuleLevel = "off" | "warn" | "error";
|
|
5
5
|
/** A level, or a level with the rule's option: `['error', 500]`. */
|
|
@@ -37,6 +37,13 @@ export interface RuleSet {
|
|
|
37
37
|
* the lint rule of the same name flags the call in the editor.
|
|
38
38
|
*/
|
|
39
39
|
readonly noDeleteManyWithoutWhere?: RuleSetting;
|
|
40
|
+
/**
|
|
41
|
+
* `updateMany` and `deleteMany` without `maxAffected`, or with one above
|
|
42
|
+
* the given maximum (default 1000). With a bound, a `where` that matches
|
|
43
|
+
* more rows than intended fails with `max_affected` and writes nothing.
|
|
44
|
+
* Updates and deletes by key are exempt.
|
|
45
|
+
*/
|
|
46
|
+
readonly requireMaxAffected?: RuleSetting<number>;
|
|
40
47
|
/**
|
|
41
48
|
* Storage objects written to `*_url` text columns: a column listed in
|
|
42
49
|
* `storagePaths`, or a value that is a Storage URL or matches a bucket's
|
|
@@ -78,10 +85,10 @@ export declare function strict(): RuleSet;
|
|
|
78
85
|
* Runtime query rules, checked before each request is built:
|
|
79
86
|
*
|
|
80
87
|
* ```ts
|
|
81
|
-
* defineSupabase(schema
|
|
88
|
+
* defineSupabase(schema).use(rules({ rules: recommended() }));
|
|
82
89
|
* ```
|
|
83
90
|
*
|
|
84
|
-
* Runs first (`enforce: '
|
|
91
|
+
* Runs first (`enforce: 'first'`) so it sees the query as written, before
|
|
85
92
|
* tenant or soft-delete filters are added. Pair with the static
|
|
86
93
|
* `better-supabase/lint` plugin to catch the same mistakes in the editor.
|
|
87
94
|
*/
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as DbException } from "../../db-exception-CnWcYPxL.js";
|
|
2
|
+
import { n as dbError } from "../../errors-B11Duf73.js";
|
|
2
3
|
import { t as lookupOf } from "../../lookup-BaP5bI27.js";
|
|
3
|
-
import { r as definePlugin } from "../../plugin-
|
|
4
|
-
import {
|
|
4
|
+
import { r as definePlugin } from "../../plugin-tfXW1-qO.js";
|
|
5
|
+
import { t as simplify } from "../../simplify-DDO0j0LI.js";
|
|
6
|
+
import { o as tenantFrom, s as tenantPathsFor } from "../../claims-PqzCxaTD.js";
|
|
5
7
|
//#region src/plugins/rules/index.ts
|
|
6
8
|
/** Catches data-exposure and correctness mistakes; everything else off. */
|
|
7
9
|
function safe() {
|
|
@@ -31,7 +33,8 @@ function strict() {
|
|
|
31
33
|
maxLimit: ["error", 1e3],
|
|
32
34
|
requireOrderByForCursor: "error",
|
|
33
35
|
maxIncludeDepth: ["error", 3],
|
|
34
|
-
storagePathColumns: "error"
|
|
36
|
+
storagePathColumns: "error",
|
|
37
|
+
requireMaxAffected: ["error", 1e3]
|
|
35
38
|
};
|
|
36
39
|
}
|
|
37
40
|
function levelOf(setting) {
|
|
@@ -89,7 +92,7 @@ const templatesBySchema = /* @__PURE__ */ new WeakMap();
|
|
|
89
92
|
function bucketTemplates(schema) {
|
|
90
93
|
let templates = templatesBySchema.get(schema);
|
|
91
94
|
if (!templates) {
|
|
92
|
-
templates = Object.values(schema.buckets ?? {}).
|
|
95
|
+
templates = Object.values(schema.buckets ?? {}).flatMap((bucket) => typeof bucket.path === "string" ? [bucket.path] : bucket.path).filter((path) => path.replaceAll(/\{[^}]*\}|\//g, "").length > 0).map((path) => new RegExp(`^${path.split(/(\{[^}]*\})/).map((part, index) => index % 2 === 0 ? part.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&") : part.startsWith("{...") ? "[^/]+(?:/[^/]+)*" : "[^/]+").join("")}$`));
|
|
93
96
|
templatesBySchema.set(schema, templates);
|
|
94
97
|
}
|
|
95
98
|
return templates;
|
|
@@ -117,9 +120,27 @@ function storedObjectColumn(op, schema) {
|
|
|
117
120
|
})) return `"${column.db}" is given a storage object; store its path in "${path}" and build URLs with signedUrl() or renderUrl()`;
|
|
118
121
|
}
|
|
119
122
|
}
|
|
123
|
+
const primaryColumnsByTable = /* @__PURE__ */ new WeakMap();
|
|
124
|
+
/** `true` when `where` holds `pk = value` for every primary key column: one row at most. */
|
|
125
|
+
function pinsPrimaryKey(table, where) {
|
|
126
|
+
if (!where || table.primaryKey.length === 0) return false;
|
|
127
|
+
let columns = primaryColumnsByTable.get(table);
|
|
128
|
+
if (!columns) {
|
|
129
|
+
columns = table.primaryKey.map((name) => table.columns[name]?.db ?? name);
|
|
130
|
+
primaryColumnsByTable.set(table, columns);
|
|
131
|
+
}
|
|
132
|
+
const pinned = /* @__PURE__ */ new Set();
|
|
133
|
+
const visit = (condition) => {
|
|
134
|
+
if (condition.kind === "and") condition.items.forEach(visit);
|
|
135
|
+
else if (condition.kind === "column" && condition.op === "eq" && condition.path === void 0) pinned.add(condition.column);
|
|
136
|
+
};
|
|
137
|
+
visit(where);
|
|
138
|
+
return columns.every((column) => pinned.has(column));
|
|
139
|
+
}
|
|
120
140
|
function checks(rules) {
|
|
121
141
|
const maxLimit = optionOf(rules.maxLimit, 1e3);
|
|
122
142
|
const maxDepth = optionOf(rules.maxIncludeDepth, 3);
|
|
143
|
+
const maxAffected = optionOf(rules.requireMaxAffected, 1e3);
|
|
123
144
|
return {
|
|
124
145
|
noUnboundedFindMany: (op) => op.kind === "select" && op.single === void 0 && !op.head && op.limit === void 0 && op.selection.aggregate === void 0 ? "findMany without limit reads every visible row" : void 0,
|
|
125
146
|
maxLimit: (op) => {
|
|
@@ -127,7 +148,7 @@ function checks(rules) {
|
|
|
127
148
|
const limit = op.lookAhead === true ? op.limit - 1 : op.limit;
|
|
128
149
|
return limit > maxLimit ? `limit ${limit} is above the maximum of ${maxLimit}` : void 0;
|
|
129
150
|
},
|
|
130
|
-
requireOrderByForCursor: (op) => op.kind === "select" && !op.head && op.orderBy.length === 0 && (op.offset !== void 0 || op.limit !== void 0 && op.limit > 1) ? "paging without orderBy returns rows in no stable order" : void 0,
|
|
151
|
+
requireOrderByForCursor: (op) => op.kind === "select" && !op.head && op.unpaged !== true && op.source === void 0 && op.orderBy.length === 0 && (op.offset !== void 0 || op.limit !== void 0 && op.limit > 1) ? "paging without orderBy returns rows in no stable order" : void 0,
|
|
131
152
|
maxIncludeDepth: (op) => {
|
|
132
153
|
const max = maxDepth;
|
|
133
154
|
const selection = op.kind === "select" ? op.selection : op.returning;
|
|
@@ -136,10 +157,10 @@ function checks(rules) {
|
|
|
136
157
|
},
|
|
137
158
|
requireTenantContext: (op, { context, schema }) => {
|
|
138
159
|
if (!op.table.flags.tenant || context.actor?.kind === "service") return;
|
|
139
|
-
if (typeof context.tenant === "string") return;
|
|
140
160
|
const claim = optionOf(rules.requireTenantContext, void 0);
|
|
141
|
-
const paths = claim
|
|
142
|
-
|
|
161
|
+
const paths = tenantPathsFor(claim, schema);
|
|
162
|
+
if (tenantFrom(context, paths) !== void 0) return;
|
|
163
|
+
return `"${op.table.key}" is tenant-scoped but the request has no tenant (context.tenant or claim ${paths.map((path) => `"${path}"`).join(" or ")})`;
|
|
143
164
|
},
|
|
144
165
|
noAdminInBrowser: (_op, { context }) => context.actor?.kind === "service" && isBrowser() ? "a service-role connection is running in a browser" : void 0,
|
|
145
166
|
noSensitiveSelect: (op, { options }) => {
|
|
@@ -147,7 +168,12 @@ function checks(rules) {
|
|
|
147
168
|
const columns = sensitiveColumns(op.selection, op.table);
|
|
148
169
|
return columns.length > 0 ? `reads sensitive column(s) ${columns.join(", ")}; pass { sensitive: true } to allow` : void 0;
|
|
149
170
|
},
|
|
150
|
-
noDeleteManyWithoutWhere: (op) => op.kind === "delete" && op.where ===
|
|
171
|
+
noDeleteManyWithoutWhere: (op) => op.kind === "delete" && simplify(op.where) === true ? "delete without where removes every visible row" : void 0,
|
|
172
|
+
requireMaxAffected: (op) => {
|
|
173
|
+
if (op.kind !== "update" && op.kind !== "delete") return;
|
|
174
|
+
if (op.maxAffected === void 0) return pinsPrimaryKey(op.table, op.where) ? void 0 : `${op.kind === "update" ? "updateMany" : "deleteMany"} without maxAffected can change every row its where matches`;
|
|
175
|
+
return op.maxAffected > maxAffected ? `maxAffected ${op.maxAffected} is above the maximum of ${maxAffected}` : void 0;
|
|
176
|
+
},
|
|
151
177
|
storagePathColumns: (op, { schema }) => storedObjectColumn(op, schema)
|
|
152
178
|
};
|
|
153
179
|
}
|
|
@@ -158,10 +184,10 @@ function defaultReport(violation) {
|
|
|
158
184
|
* Runtime query rules, checked before each request is built:
|
|
159
185
|
*
|
|
160
186
|
* ```ts
|
|
161
|
-
* defineSupabase(schema
|
|
187
|
+
* defineSupabase(schema).use(rules({ rules: recommended() }));
|
|
162
188
|
* ```
|
|
163
189
|
*
|
|
164
|
-
* Runs first (`enforce: '
|
|
190
|
+
* Runs first (`enforce: 'first'`) so it sees the query as written, before
|
|
165
191
|
* tenant or soft-delete filters are added. Pair with the static
|
|
166
192
|
* `better-supabase/lint` plugin to catch the same mistakes in the editor.
|
|
167
193
|
*/
|
|
@@ -179,7 +205,8 @@ function rules(options = {}) {
|
|
|
179
205
|
});
|
|
180
206
|
return definePlugin({
|
|
181
207
|
name: "rules",
|
|
182
|
-
enforce: "
|
|
208
|
+
enforce: "first",
|
|
209
|
+
scopes: [],
|
|
183
210
|
transformQuery(op, hook) {
|
|
184
211
|
for (const { rule, level, check } of active) {
|
|
185
212
|
const message = check(op, hook);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { t as AsyncResult } from "../../result-D7y2fT87.js";
|
|
2
|
+
import { E as PrimaryKeyValue } from "../../types-6BdhkmZe.js";
|
|
3
|
+
import { d as Plugin, o as HasFlag, p as RepositoryExtension } from "../../plugin-FGY8UhYm.js";
|
|
4
4
|
//#region src/plugins/soft-delete/index.d.ts
|
|
5
5
|
export interface SoftDeleteFindArgs {
|
|
6
6
|
/** Include soft-deleted rows of the queried table. */
|
|
@@ -32,7 +32,8 @@ export interface SoftDeleteExtension extends RepositoryExtension {
|
|
|
32
32
|
* - `restore(key)` clears it.
|
|
33
33
|
*
|
|
34
34
|
* Deletes become updates without `RETURNING`, so a SELECT policy that hides
|
|
35
|
-
* deleted rows does not make them fail.
|
|
35
|
+
* deleted rows does not make them fail. `deleteMany({ returning: true })`
|
|
36
|
+
* keeps `RETURNING`, which needs a SELECT policy that still shows the row.
|
|
36
37
|
*/
|
|
37
38
|
export declare function softDelete(): Plugin<"softDelete", SoftDeleteExtension>;
|
|
38
39
|
//#endregion
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as and } from "../../types-6cYK9pbJ.js";
|
|
2
|
-
import {
|
|
3
|
-
import { r as definePlugin } from "../../plugin-
|
|
2
|
+
import { a as ok, t as AsyncResult } from "../../result-DzUbqgdW.js";
|
|
3
|
+
import { r as definePlugin } from "../../plugin-tfXW1-qO.js";
|
|
4
4
|
import { n as scopeOperation } from "../../scope-CDHcS7dE.js";
|
|
5
|
-
import { a as insertsOnly, i as guardManaged, o as isNotNull, s as isNull, t as dbName, u as withDefault } from "../../shared-
|
|
5
|
+
import { a as insertsOnly, i as guardManaged, o as isNotNull, s as isNull, t as dbName, u as withDefault } from "../../shared-CxWmcyqB.js";
|
|
6
6
|
//#region src/plugins/soft-delete/index.ts
|
|
7
7
|
function deletedColumn(table) {
|
|
8
8
|
return dbName(table, table.flags.softDelete);
|
|
@@ -20,12 +20,14 @@ function scopeFor(table) {
|
|
|
20
20
|
* - `restore(key)` clears it.
|
|
21
21
|
*
|
|
22
22
|
* Deletes become updates without `RETURNING`, so a SELECT policy that hides
|
|
23
|
-
* deleted rows does not make them fail.
|
|
23
|
+
* deleted rows does not make them fail. `deleteMany({ returning: true })`
|
|
24
|
+
* keeps `RETURNING`, which needs a SELECT policy that still shows the row.
|
|
24
25
|
*/
|
|
25
26
|
function softDelete() {
|
|
26
27
|
return definePlugin({
|
|
27
28
|
name: "softDelete",
|
|
28
29
|
enforce: "pre",
|
|
30
|
+
scopes: ["softDelete"],
|
|
29
31
|
transformQuery(op, { options }) {
|
|
30
32
|
const hardDelete = op.kind === "delete" && options["hard"] === true;
|
|
31
33
|
const withDeleted = options["withDeleted"] === true || hardDelete;
|
|
@@ -52,10 +54,13 @@ function softDelete() {
|
|
|
52
54
|
if (op.kind !== "delete" || options["hard"] === true) return op;
|
|
53
55
|
return {
|
|
54
56
|
kind: "update",
|
|
57
|
+
intent: "softDelete",
|
|
55
58
|
table,
|
|
56
59
|
set: { [column]: now().toString() },
|
|
57
60
|
where: op.where,
|
|
58
|
-
returning: void 0
|
|
61
|
+
returning: options["returning"] === true ? op.returning : void 0,
|
|
62
|
+
...op.maxAffected === void 0 ? {} : { maxAffected: op.maxAffected },
|
|
63
|
+
...op.count === void 0 ? {} : { count: op.count }
|
|
59
64
|
};
|
|
60
65
|
},
|
|
61
66
|
repository({ table, base }) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { P as SchemaMeta } from "../../types-6BdhkmZe.js";
|
|
2
|
+
import { d as Plugin, m as RequestContext, o as HasFlag, p as RepositoryExtension } from "../../plugin-FGY8UhYm.js";
|
|
3
3
|
//#region src/plugins/tenant/index.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Dotted paths to the string claims of `C` (up to three levels), e.g.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as DbException } from "../../db-exception-CnWcYPxL.js";
|
|
2
|
+
import { n as dbError } from "../../errors-B11Duf73.js";
|
|
3
|
+
import { a as spansAllTenants, r as definePlugin } from "../../plugin-tfXW1-qO.js";
|
|
3
4
|
import { n as scopeOperation } from "../../scope-CDHcS7dE.js";
|
|
4
|
-
import {
|
|
5
|
-
import { a as insertsOnly, n as equals, r as forbidden, t as dbName } from "../../shared-
|
|
5
|
+
import { o as tenantFrom, s as tenantPathsFor } from "../../claims-PqzCxaTD.js";
|
|
6
|
+
import { a as insertsOnly, n as equals, r as forbidden, t as dbName } from "../../shared-CxWmcyqB.js";
|
|
6
7
|
//#region src/plugins/tenant/index.ts
|
|
7
8
|
/**
|
|
8
9
|
* The tenant for a request: `context.tenant`, then the configured claim.
|
|
@@ -10,13 +11,8 @@ import { a as insertsOnly, n as equals, r as forbidden, t as dbName } from "../.
|
|
|
10
11
|
*/
|
|
11
12
|
function resolveTenant(context, options = {}, schema) {
|
|
12
13
|
if (options.resolve) return options.resolve(context);
|
|
13
|
-
if (typeof context.tenant === "string") return context.tenant;
|
|
14
14
|
const claim = options.claim;
|
|
15
|
-
|
|
16
|
-
for (const path of paths) {
|
|
17
|
-
const value = claimAt(context.claims, path);
|
|
18
|
-
if (value !== void 0) return value;
|
|
19
|
-
}
|
|
15
|
+
return tenantFrom(context, tenantPathsFor(claim, schema));
|
|
20
16
|
}
|
|
21
17
|
/** Tenant columns may be numeric; the resolved tenant is always a string. */
|
|
22
18
|
function sameTenant(value, id) {
|
|
@@ -42,7 +38,6 @@ function tenant(options = {}) {
|
|
|
42
38
|
if (id === void 0 && !resolved.has(context)) {
|
|
43
39
|
id = resolveTenant(context, options, schema);
|
|
44
40
|
resolved.set(context, id);
|
|
45
|
-
if (id !== void 0) recordTenant(context, id);
|
|
46
41
|
}
|
|
47
42
|
return id;
|
|
48
43
|
};
|
|
@@ -56,6 +51,18 @@ function tenant(options = {}) {
|
|
|
56
51
|
};
|
|
57
52
|
return definePlugin({
|
|
58
53
|
name: "tenant",
|
|
54
|
+
scopes: ["tenant"],
|
|
55
|
+
context(context, { schema }) {
|
|
56
|
+
if (spansAllTenants(context)) return context;
|
|
57
|
+
const id = resolvedFor(context, schema);
|
|
58
|
+
if (id === void 0 || id === context.tenant) return context;
|
|
59
|
+
const derived = {
|
|
60
|
+
...context,
|
|
61
|
+
tenant: id
|
|
62
|
+
};
|
|
63
|
+
resolved.set(derived, id);
|
|
64
|
+
return derived;
|
|
65
|
+
},
|
|
59
66
|
transformQuery(op, { context, schema, options: call }) {
|
|
60
67
|
if (call["allTenants"] === true || spansAllTenants(context)) return op;
|
|
61
68
|
const id = resolvedFor(context, schema);
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { d as Plugin } from "../../plugin-FGY8UhYm.js";
|
|
2
2
|
//#region src/plugins/timestamps/index.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Stamps the columns generated as `Flags.timestamps`: `createdAt` on insert,
|
|
5
|
-
* `updatedAt` on insert and update.
|
|
6
|
-
*
|
|
5
|
+
* `updatedAt` on insert and update. A call that sets either column fails with
|
|
6
|
+
* `invalid_request` unless it passes `{ override: true }`, which keeps the
|
|
7
|
+
* caller's values. Pair it with
|
|
8
|
+
* the `updated-at` SQL module trigger to cover writes that bypass the app.
|
|
7
9
|
*/
|
|
8
10
|
export declare function timestamps(): Plugin<"timestamps">;
|
|
9
11
|
//#endregion
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { r as definePlugin } from "../../plugin-
|
|
2
|
-
import { a as insertsOnly, i as guardManaged, t as dbName, u as withDefault } from "../../shared-
|
|
1
|
+
import { r as definePlugin } from "../../plugin-tfXW1-qO.js";
|
|
2
|
+
import { a as insertsOnly, i as guardManaged, t as dbName, u as withDefault } from "../../shared-CxWmcyqB.js";
|
|
3
3
|
//#region src/plugins/timestamps/index.ts
|
|
4
4
|
/**
|
|
5
5
|
* Stamps the columns generated as `Flags.timestamps`: `createdAt` on insert,
|
|
6
|
-
* `updatedAt` on insert and update.
|
|
7
|
-
*
|
|
6
|
+
* `updatedAt` on insert and update. A call that sets either column fails with
|
|
7
|
+
* `invalid_request` unless it passes `{ override: true }`, which keeps the
|
|
8
|
+
* caller's values. Pair it with
|
|
9
|
+
* the `updated-at` SQL module trigger to cover writes that bypass the app.
|
|
8
10
|
*/
|
|
9
11
|
function timestamps() {
|
|
10
12
|
return definePlugin({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as StandardSchemaV1 } from "../../standard-
|
|
1
|
+
import { d as Plugin } from "../../plugin-FGY8UhYm.js";
|
|
2
|
+
import { t as StandardSchemaV1 } from "../../standard-CYsm7xpT.js";
|
|
3
3
|
//#region src/plugins/validation/index.d.ts
|
|
4
4
|
export interface TableValidators {
|
|
5
5
|
/** Validates inserts and upserts, with app-cased keys. */
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as
|
|
3
|
-
import { r as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { t as DbException } from "../../db-exception-CnWcYPxL.js";
|
|
2
|
+
import { n as dbError } from "../../errors-B11Duf73.js";
|
|
3
|
+
import { i as encodeValue, r as decodeValue } from "../../wire-DtZQ4sdE.js";
|
|
4
|
+
import { r as definePlugin } from "../../plugin-tfXW1-qO.js";
|
|
5
|
+
import { n as validate } from "../../standard-BK0cqJ7y.js";
|
|
6
|
+
import { c as toApp, l as toDb } from "../../shared-CxWmcyqB.js";
|
|
6
7
|
//#region src/plugins/validation/index.ts
|
|
7
8
|
/**
|
|
8
9
|
* Rows reach plugins in wire form (ISO text, decimal text), while generated
|
|
@@ -27,7 +28,10 @@ async function check(schema, table, row, label, index) {
|
|
|
27
28
|
const result = await validate(schema, decoded(table, row), label);
|
|
28
29
|
if (result.ok) {
|
|
29
30
|
const output = result.data;
|
|
30
|
-
return typeof output === "object" && output !== null ?
|
|
31
|
+
return typeof output === "object" && output !== null ? {
|
|
32
|
+
...row,
|
|
33
|
+
...encoded(toDb(table, output))
|
|
34
|
+
} : { ...row };
|
|
31
35
|
}
|
|
32
36
|
const error = result.error;
|
|
33
37
|
if (index === void 0 || error.kind !== "validation") throw new DbException(error);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as Executor } from "./executor-
|
|
2
|
-
import { t as SqlClient } from "./executor-
|
|
1
|
+
import { r as Executor } from "./executor-DvsBbNBS.js";
|
|
2
|
+
import { t as SqlClient } from "./executor-DbvExCFC.js";
|
|
3
3
|
//#region src/postgres/pool.d.ts
|
|
4
4
|
/** The part of a `pg` pool client `createPostgres` uses. */
|
|
5
5
|
interface PgPoolClient {
|
package/dist/postgres/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as fromPgError, r as postgresExecutor, t as SqlClient } from "../executor-
|
|
3
|
-
import { a as PostgresTimeouts, c as createPostgres, i as PostgresOptions, n as PgPool, o as SessionOptions, r as PgPoolClient, s as SqlClaims, t as BetterPostgres } from "../pool-
|
|
4
|
-
import { t as Compiler } from "../compiler-
|
|
1
|
+
import { v as Operation } from "../executor-DvsBbNBS.js";
|
|
2
|
+
import { n as fromPgError, r as postgresExecutor, t as SqlClient } from "../executor-DbvExCFC.js";
|
|
3
|
+
import { a as PostgresTimeouts, c as createPostgres, i as PostgresOptions, n as PgPool, o as SessionOptions, r as PgPoolClient, s as SqlClaims, t as BetterPostgres } from "../pool-CAu2nLrL.js";
|
|
4
|
+
import { t as Compiler } from "../compiler-DY_wkj4R.js";
|
|
5
5
|
//#region src/compile/sql.d.ts
|
|
6
6
|
interface SqlQuery {
|
|
7
7
|
readonly text: string;
|
package/dist/postgres/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as postgresExecutor, t as fromPgError } from "../executor-XycESQPH.js";
|
|
1
|
+
import { i as quoteIdent, n as postgresExecutor, r as compileSql, t as fromPgError } from "../executor-De1Of3m3.js";
|
|
3
2
|
import { Pool } from "pg";
|
|
4
3
|
//#region src/postgres/pool.ts
|
|
5
4
|
const DEFAULT_TIMEOUTS = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v as Operation } from "./executor-DvsBbNBS.js";
|
|
2
2
|
//#region src/compile/postgrest.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* A compiled PostgREST request, expressed as calls on the public
|
|
@@ -16,6 +16,16 @@ interface PostgrestPlan {
|
|
|
16
16
|
} | undefined;
|
|
17
17
|
/** The condition can never match; skip the request. */
|
|
18
18
|
readonly never: boolean;
|
|
19
|
+
/** `Prefer: max-affected` on an update or delete (PostgREST 13 and later). */
|
|
20
|
+
readonly maxAffected?: number;
|
|
21
|
+
}
|
|
22
|
+
interface PostgrestCompileOptions {
|
|
23
|
+
/**
|
|
24
|
+
* The PostgREST version the request goes to, from `postgrestVersion` in
|
|
25
|
+
* the config. `maxAffected` needs 13 or later; older versions fail with
|
|
26
|
+
* `invalid_request` before any request. Defaults to `"13"`.
|
|
27
|
+
*/
|
|
28
|
+
readonly postgrestVersion?: string;
|
|
19
29
|
}
|
|
20
30
|
type PlanFilter = {
|
|
21
31
|
readonly kind: "filter";
|
|
@@ -38,6 +48,6 @@ interface PlanLimit {
|
|
|
38
48
|
readonly referencedTable: string | undefined;
|
|
39
49
|
}
|
|
40
50
|
/** Compiles an operation into a PostgREST plan. */
|
|
41
|
-
declare function compilePostgrest(op: Operation): PostgrestPlan;
|
|
51
|
+
declare function compilePostgrest(op: Operation, options?: PostgrestCompileOptions): PostgrestPlan;
|
|
42
52
|
//#endregion
|
|
43
|
-
export {
|
|
53
|
+
export { PostgrestPlan as a, PostgrestCompileOptions as i, PlanLimit as n, compilePostgrest as o, PlanOrder as r, PlanFilter as t };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { t as AuthSnapshot } from "../bind-Bu_ZNa3W.js";
|
|
2
|
+
import { _ as SqliteValue, a as postgrestTimestamp, b as quoteSqliteIdent, c as SqliteCompilerOptions, d as SqliteKeyedPlan, f as SqliteKeys, g as SqliteSelectPlan, h as SqliteReturning, i as fromSqliteError, l as SqliteDecode, m as SqliteQuery, n as PowerSyncExecutorOptions, o as powersyncExecutor, p as SqlitePlan, r as SqliteContextLike, s as SqliteColumn, t as PowerSyncDatabaseLike, u as SqliteInsertPlan, v as compileSqlite, x as sqliteValue, y as likeToGlob } from "../executor-CaWigTyR.js";
|
|
3
|
+
import { a as sqliteCompiler, i as checkSqlite, n as sqliteTables, r as watch, t as WatchOptions } from "../watch-DI34G86j.js";
|
|
4
|
+
import { a as UploadConnector, c as UploadRepository, d as uploadOutcome, i as RejectedStore, l as UploadRoute, n as CrudQueueLike, o as UploadConnectorOptions, r as RejectedChange, s as UploadOutcome, t as CrudEntryLike, u as createUploadConnector } from "../connector-Dv8kK0MO.js";
|
|
5
|
+
//#region src/powersync/auth.d.ts
|
|
6
|
+
/** The part of a PowerSync database `syncWithAuth` drives. */
|
|
7
|
+
interface SyncedDatabaseLike<C> {
|
|
8
|
+
connect(connector: C): Promise<void>;
|
|
9
|
+
disconnect(): Promise<void>;
|
|
10
|
+
disconnectAndClear(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** `bs.auth` from a browser or native client. */
|
|
13
|
+
interface AuthSourceLike {
|
|
14
|
+
readonly current: () => AuthSnapshot;
|
|
15
|
+
readonly subscribe: (listener: () => void) => () => void;
|
|
16
|
+
}
|
|
17
|
+
interface SyncWithAuthOptions<C> {
|
|
18
|
+
/** The connector, e.g. `createUploadConnector(...)`. */
|
|
19
|
+
readonly connector: C;
|
|
20
|
+
/**
|
|
21
|
+
* Clears the local database on sign-out and when another user signs in,
|
|
22
|
+
* so one user never reads another's rows. Unsynced changes are lost.
|
|
23
|
+
* Defaults to true.
|
|
24
|
+
*/
|
|
25
|
+
readonly clearOnSignOut?: boolean;
|
|
26
|
+
/** Called after each connect, disconnect or clear fails. */
|
|
27
|
+
readonly onError?: (cause: unknown) => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Syncs while a user is signed in: connects on sign-in, and on sign-out
|
|
31
|
+
* (or a different user) disconnects and clears the local database. An app
|
|
32
|
+
* that starts signed out clears it too, since the rows may belong to a user
|
|
33
|
+
* whose session ended while the app was closed. Steps
|
|
34
|
+
* run one at a time in order. Returns a function that stops following the
|
|
35
|
+
* session and disconnects.
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* useEffect(() => syncWithAuth(powersync, bs.auth, { connector }), []);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function syncWithAuth<C>(db: SyncedDatabaseLike<C>, auth: AuthSourceLike, options: SyncWithAuthOptions<C>): () => void;
|
|
42
|
+
//#endregion
|
|
43
|
+
export { type AuthSourceLike, type CrudEntryLike, type CrudQueueLike, type PowerSyncDatabaseLike, type PowerSyncExecutorOptions, type RejectedChange, type RejectedStore, type SqliteColumn, type SqliteCompilerOptions, type SqliteContextLike, type SqliteDecode, type SqliteInsertPlan, type SqliteKeyedPlan, type SqliteKeys, type SqlitePlan, type SqliteQuery, type SqliteReturning, type SqliteSelectPlan, type SqliteValue, type SyncWithAuthOptions, type SyncedDatabaseLike, type UploadConnector, type UploadConnectorOptions, type UploadOutcome, type UploadRepository, type UploadRoute, type WatchOptions, checkSqlite, compileSqlite, createUploadConnector, fromSqliteError, likeToGlob, postgrestTimestamp, powersyncExecutor, quoteSqliteIdent, sqliteCompiler, sqliteTables, sqliteValue, uploadOutcome, watch };
|