better-supabase 0.5.1 → 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 +187 -46
- package/dist/access-sql-B0dF-SoF.js +181 -0
- package/dist/{actor-DaJjqD5R.d.ts → actor-CQTlc1Hh.d.ts} +1 -1
- 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-C_A-KEAz.js → doctor-B4JOm_ox.js} +991 -317
- 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-DMa6M7hV.js → init-BIIwclPg.js} +242 -27
- package/dist/cli/{introspect-BKlaIu_M.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-Bo_NLT5n.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-BCtlgDQx.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-Bv7gvfzC.d.ts → config-D44Y7PAv.d.ts} +406 -214
- 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-CFPX0Qft.d.ts → ended-jLfvw8h-.d.ts} +20 -2
- package/dist/{entitlements-BiJZ4t49.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-BgSHAYLf.js → impersonation-DcqaTBHx.js} +21 -6
- 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-Daak8ukG.d.ts +54 -0
- 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-Bn6HNKUe.js → resolve-D_IcnvFd.js} +248 -240
- package/dist/{impersonation-BmePsuxz.d.ts → resolve-KW8nCeL6.d.ts} +29 -69
- package/dist/{resource-mqfJW4YF.js → resource-BsvzCMlX.js} +4 -4
- package/dist/{resource-DNRFP7KR.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 -22
- package/dist/server/index.js +46 -14
- package/dist/{respond-BR1fJWOB.d.ts → server-CeVeeXwz.d.ts} +224 -85
- 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 +313 -212
- package/dist/sql/index.js +34872 -6579
- 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-wHnK6zp-.js → support-BivNqSpK.js} +32 -11
- package/dist/{support-view-B8SlToQX.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 +315 -41
- package/dist/testing/index.js +1046 -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-DOYTYwHP.js → version-Bvv6aLjZ.js} +1 -1
- package/dist/view-BeFcRV6G.js +99 -0
- package/dist/{view-CbgObAeb.d.ts → view-DbxLNu8L.d.ts} +22 -5
- 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 +461 -20
- package/schemas/ai-message-v1.json +258 -0
- package/schemas/config-v1.json +1074 -140
- package/schemas/doctor-report-v1.json +20 -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 +47 -11
- 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-CIdSQZad.js +0 -2
- package/dist/cli/gen-CjElD1Vw.js +0 -2241
- package/dist/cli/read-sets-VQcPgxU9.js +0 -436
- package/dist/cli/sql-CVx-1O8G.js +0 -373
- 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/index-CWMDdEr4.d.ts +0 -50
- package/dist/index-DOESKG27.d.ts +0 -100
- package/dist/index-DmXSxbLi.d.ts +0 -62
- package/dist/index-Dp2VDwog.d.ts +0 -161
- 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/mfa-Cu96oJdw.d.ts +0 -30
- 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-B1mZ7CgQ.js +0 -660
- package/dist/stats-Bqob3WqT.js +0 -592
- package/dist/support-CEPwlw2G.d.ts +0 -89
- 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 -122
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { a as routeRefusal, n as guardedLocals, t as errorResponse } from "../refusal-CeJWxmkH.js";
|
|
2
|
+
import { t as beforeRoute } from "../before-route-CnR0C0Jr.js";
|
|
3
|
+
import { t as applyWebHeaders } from "../node-headers-C71zNQHe.js";
|
|
4
|
+
import { n as toWebRequest, t as sendWebResponse } from "../http-Cv4T29xh.js";
|
|
5
|
+
import { createRequire } from "node:module";
|
|
6
|
+
//#region src/nestjs/index.ts
|
|
7
|
+
const contexts = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
/** The Node request under an Express request or a Fastify request (`request.raw`). */
|
|
9
|
+
function rawOf(value) {
|
|
10
|
+
return "raw" in value && typeof value.raw === "object" && value.raw !== null ? value.raw : value;
|
|
11
|
+
}
|
|
12
|
+
function isServerResponse(value) {
|
|
13
|
+
return "setHeader" in value && typeof value.setHeader === "function" && "end" in value && typeof value.end === "function";
|
|
14
|
+
}
|
|
15
|
+
function responseOf(host) {
|
|
16
|
+
const raw = rawOf(host.switchToHttp().getResponse());
|
|
17
|
+
if (!isServerResponse(raw)) throw new TypeError("better-supabase: not an HTTP response");
|
|
18
|
+
return raw;
|
|
19
|
+
}
|
|
20
|
+
function requestOf(host) {
|
|
21
|
+
return rawOf(host.switchToHttp().getRequest());
|
|
22
|
+
}
|
|
23
|
+
/** The contributions `toNestMiddleware` stored for a request (Express or Fastify), if it ran. */
|
|
24
|
+
function contextOf(request) {
|
|
25
|
+
return contexts.get(rawOf(request));
|
|
26
|
+
}
|
|
27
|
+
/** Calls `next()` when `step` resolves true and `next(error)` when it rejects. */
|
|
28
|
+
async function continueWith(step, next) {
|
|
29
|
+
let proceed;
|
|
30
|
+
try {
|
|
31
|
+
proceed = await step;
|
|
32
|
+
} catch (error) {
|
|
33
|
+
next(error);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (proceed) next();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Nest middleware that runs the entries before the route: a short circuit
|
|
40
|
+
* (a 401, a CORS preflight) is the answer; otherwise the entries' cookies
|
|
41
|
+
* go on the response and `@Ctx()` reads the contributions.
|
|
42
|
+
*
|
|
43
|
+
* ```ts title="src/app.module.ts"
|
|
44
|
+
* export class AppModule implements NestModule {
|
|
45
|
+
* configure(consumer: MiddlewareConsumer) {
|
|
46
|
+
* consumer.apply(toNestMiddleware([withBetterSupabase(server)])).forRoutes('*')
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
function toNestMiddleware(entries, options = {}) {
|
|
52
|
+
const run = beforeRoute(entries);
|
|
53
|
+
const handle = async (req, res) => {
|
|
54
|
+
const outcome = await run(toWebRequest(req, {
|
|
55
|
+
...options,
|
|
56
|
+
body: false
|
|
57
|
+
}), options.env?.(req));
|
|
58
|
+
if (!outcome.reached) {
|
|
59
|
+
await sendWebResponse(res, outcome.response);
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
applyWebHeaders(res, outcome.headers);
|
|
63
|
+
contexts.set(req, outcome.contributions);
|
|
64
|
+
return true;
|
|
65
|
+
};
|
|
66
|
+
return (req, res, next) => {
|
|
67
|
+
continueWith(handle(req, res), next);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function isNestCommon(value) {
|
|
71
|
+
return typeof value === "object" && value !== null && "createParamDecorator" in value && typeof value.createParamDecorator === "function" && "HttpException" in value && typeof value.HttpException === "function";
|
|
72
|
+
}
|
|
73
|
+
const NEST_COMMON = "@nestjs/common";
|
|
74
|
+
let nest;
|
|
75
|
+
/**
|
|
76
|
+
* `@nestjs/common` is an optional peer, loaded on first use with a
|
|
77
|
+
* variable specifier so apps on other frameworks never resolve it. It is
|
|
78
|
+
* required synchronously because decorators run while the class is defined.
|
|
79
|
+
*/
|
|
80
|
+
function nestCommon() {
|
|
81
|
+
if (nest) return nest;
|
|
82
|
+
let loaded;
|
|
83
|
+
try {
|
|
84
|
+
loaded = createRequire(import.meta.url)(NEST_COMMON);
|
|
85
|
+
} catch (cause) {
|
|
86
|
+
throw new Error("better-supabase/nestjs needs @nestjs/common. Install it with `pnpm add @nestjs/common`.", { cause });
|
|
87
|
+
}
|
|
88
|
+
if (!isNestCommon(loaded)) throw new Error("better-supabase/nestjs: @nestjs/common has no createParamDecorator");
|
|
89
|
+
nest = loaded;
|
|
90
|
+
return nest;
|
|
91
|
+
}
|
|
92
|
+
let ctxDecorator;
|
|
93
|
+
/**
|
|
94
|
+
* A parameter decorator for the request's contributions, or one of them:
|
|
95
|
+
* `@Ctx() ctx` or `@Ctx('db') db`.
|
|
96
|
+
*
|
|
97
|
+
* ```ts
|
|
98
|
+
* @Get('notes')
|
|
99
|
+
* list(@Ctx('db') db: Db) { return db.notes.findMany().orThrow() }
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
function Ctx(key) {
|
|
103
|
+
ctxDecorator ??= nestCommon().createParamDecorator((data, context) => {
|
|
104
|
+
const contributions = contextOf(context.switchToHttp().getRequest());
|
|
105
|
+
if (contributions === void 0) throw new Error("better-supabase: no request context; apply toNestMiddleware(...) for this route");
|
|
106
|
+
return typeof data === "string" ? contributions[data] : contributions;
|
|
107
|
+
});
|
|
108
|
+
return ctxDecorator(key);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* A guard instance that refuses callers outside `options`: Problem Details,
|
|
112
|
+
* or a 303 to `signIn` or `mfa`, thrown as Nest's `HttpException`.
|
|
113
|
+
*
|
|
114
|
+
* ```ts
|
|
115
|
+
* @UseGuards(guard({ roles: ['admin'] }))
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
function guard(options = {}) {
|
|
119
|
+
return { canActivate: async (context) => {
|
|
120
|
+
const req = requestOf(context);
|
|
121
|
+
const contributions = contexts.get(req);
|
|
122
|
+
if (contributions === void 0) throw new Error("better-supabase: no request context; apply toNestMiddleware(...) before the guard");
|
|
123
|
+
const refused = await routeRefusal(guardedLocals(contributions), toWebRequest(req, { body: false }), options);
|
|
124
|
+
if (!refused) return true;
|
|
125
|
+
const location = refused.headers.get("location");
|
|
126
|
+
if (location !== null) responseOf(context).setHeader("location", location);
|
|
127
|
+
const body = refused.body ? await refused.json() : {};
|
|
128
|
+
const { HttpException } = nestCommon();
|
|
129
|
+
throw new HttpException(typeof body === "object" && body !== null ? body : {}, refused.status);
|
|
130
|
+
} };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* An exception filter that answers thrown `DbException`s (from
|
|
134
|
+
* `.orThrow()`) with Problem Details. Register it with `@Catch()` scope in
|
|
135
|
+
* mind: other exceptions are answered the way Nest's base filter does.
|
|
136
|
+
*/
|
|
137
|
+
function problemFilter(options = {}) {
|
|
138
|
+
return { catch(exception, host) {
|
|
139
|
+
const req = requestOf(host);
|
|
140
|
+
const res = responseOf(host);
|
|
141
|
+
const response = errorResponse(exception, toWebRequest(req, { body: false }), options) ?? nestErrorResponse(exception);
|
|
142
|
+
if (res.headersSent) return;
|
|
143
|
+
sendWebResponse(res, response);
|
|
144
|
+
} };
|
|
145
|
+
}
|
|
146
|
+
function isHttpException(value) {
|
|
147
|
+
return typeof value === "object" && value !== null && "getStatus" in value && typeof value.getStatus === "function" && "getResponse" in value && typeof value.getResponse === "function";
|
|
148
|
+
}
|
|
149
|
+
function nestErrorResponse(exception) {
|
|
150
|
+
if (isHttpException(exception)) {
|
|
151
|
+
const status = exception.getStatus();
|
|
152
|
+
const body = exception.getResponse();
|
|
153
|
+
return Response.json(typeof body === "string" ? {
|
|
154
|
+
statusCode: status,
|
|
155
|
+
message: body
|
|
156
|
+
} : body, { status: typeof status === "number" ? status : 500 });
|
|
157
|
+
}
|
|
158
|
+
return Response.json({
|
|
159
|
+
statusCode: 500,
|
|
160
|
+
message: "Internal server error"
|
|
161
|
+
}, { status: 500 });
|
|
162
|
+
}
|
|
163
|
+
//#endregion
|
|
164
|
+
export { Ctx, contextOf, guard, problemFilter, toNestMiddleware };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/next/client/index.d.ts
|
|
2
|
+
/** The `push` and `refresh` `useSessionChange` needs; next-intl's router fits. */
|
|
3
|
+
export interface SessionChangeRouter {
|
|
4
|
+
push(href: string): void;
|
|
5
|
+
refresh(): void;
|
|
6
|
+
}
|
|
7
|
+
/** The part of a supabase-js client `refreshToken` calls, e.g. `useSupabase()`. */
|
|
8
|
+
export interface TokenRefresher {
|
|
9
|
+
readonly auth: {
|
|
10
|
+
refreshSession(): Promise<{
|
|
11
|
+
readonly error: Error | null;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface SessionChangeOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Refresh the browser's access token first, so the server reads the new
|
|
18
|
+
* claims (an organization switch, a new membership) from the cookie.
|
|
19
|
+
*/
|
|
20
|
+
readonly refreshToken?: TokenRefresher;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* After a session change, expire the server cache (`changed`), navigate,
|
|
24
|
+
* then refresh the client router. `refresh()` in a Server Action leaves
|
|
25
|
+
* prefetched private App Shells, so `router.push` alone shows the old
|
|
26
|
+
* session. Pass a next-intl (or other) router when `push` must keep the
|
|
27
|
+
* locale prefix.
|
|
28
|
+
*
|
|
29
|
+
* ```ts
|
|
30
|
+
* const switched = useSessionChange(sessionChanged, router, { refreshToken: useSupabase() });
|
|
31
|
+
* await switched('/dashboard');
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function useSessionChange(changed: () => Promise<void>, router?: SessionChangeRouter, options?: SessionChangeOptions): (to?: string) => Promise<void>;
|
|
35
|
+
//#endregion
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useRouter } from "next/navigation.js";
|
|
4
|
+
//#region src/next/client/index.ts
|
|
5
|
+
/**
|
|
6
|
+
* After a session change, expire the server cache (`changed`), navigate,
|
|
7
|
+
* then refresh the client router. `refresh()` in a Server Action leaves
|
|
8
|
+
* prefetched private App Shells, so `router.push` alone shows the old
|
|
9
|
+
* session. Pass a next-intl (or other) router when `push` must keep the
|
|
10
|
+
* locale prefix.
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* const switched = useSessionChange(sessionChanged, router, { refreshToken: useSupabase() });
|
|
14
|
+
* await switched('/dashboard');
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function useSessionChange(changed, router, options = {}) {
|
|
18
|
+
const nextRouter = useRouter();
|
|
19
|
+
const used = router ?? nextRouter;
|
|
20
|
+
const refresher = options.refreshToken;
|
|
21
|
+
return useCallback(async (to) => {
|
|
22
|
+
if (refresher) {
|
|
23
|
+
const { error } = await refresher.auth.refreshSession();
|
|
24
|
+
if (error) throw error;
|
|
25
|
+
}
|
|
26
|
+
await changed();
|
|
27
|
+
if (to !== void 0) used.push(to);
|
|
28
|
+
used.refresh();
|
|
29
|
+
}, [
|
|
30
|
+
changed,
|
|
31
|
+
used,
|
|
32
|
+
refresher
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { useSessionChange };
|
package/dist/next/image/index.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
+
import { t as storageImageUrl } from "../../image-url-pIVlO6R1.js";
|
|
1
2
|
//#region src/next/image/index.ts
|
|
2
|
-
/** Storage's image transformation limits. */
|
|
3
|
-
const MAX_WIDTH = 2500;
|
|
4
|
-
const QUALITY = {
|
|
5
|
-
min: 20,
|
|
6
|
-
max: 100
|
|
7
|
-
};
|
|
8
|
-
const clamp = (value, min, max) => Math.min(max, Math.max(min, Math.round(value)));
|
|
9
3
|
/**
|
|
10
4
|
* A `next/image` loader that serves public Storage objects through
|
|
11
5
|
* Supabase image transformations (`/render/image/public`), so Next.js does
|
|
@@ -20,24 +14,9 @@ const clamp = (value, min, max) => Math.min(max, Math.max(min, Math.round(value)
|
|
|
20
14
|
* were signed with, so sign them with `renderUrl()` at the size you render.
|
|
21
15
|
*/
|
|
22
16
|
function createImageLoader(options) {
|
|
23
|
-
const
|
|
24
|
-
const publicPrefixes = [`${storage}/object/public/`, `${storage}/render/image/public/`].map((prefix) => ({
|
|
25
|
-
prefix,
|
|
26
|
-
length: new URL(prefix).pathname.length
|
|
27
|
-
}));
|
|
17
|
+
const imageUrl = storageImageUrl(options);
|
|
28
18
|
const fallback = options.fallback ?? (({ src }) => src);
|
|
29
|
-
return (props) =>
|
|
30
|
-
const prefix = publicPrefixes.find((candidate) => props.src.startsWith(candidate.prefix));
|
|
31
|
-
if (prefix === void 0) return fallback(props);
|
|
32
|
-
const source = new URL(props.src);
|
|
33
|
-
const object = source.pathname.slice(prefix.length);
|
|
34
|
-
const target = new URL(`${storage}/render/image/public/${object}`);
|
|
35
|
-
for (const [key, value] of source.searchParams) target.searchParams.set(key, value);
|
|
36
|
-
target.searchParams.set("width", String(clamp(props.width, 1, MAX_WIDTH)));
|
|
37
|
-
if (props.quality !== void 0) target.searchParams.set("quality", String(clamp(props.quality, QUALITY.min, QUALITY.max)));
|
|
38
|
-
if (options.resize) target.searchParams.set("resize", options.resize);
|
|
39
|
-
return target.toString();
|
|
40
|
-
};
|
|
19
|
+
return (props) => imageUrl(props.src, props) ?? fallback(props);
|
|
41
20
|
}
|
|
42
21
|
//#endregion
|
|
43
22
|
export { createImageLoader };
|
package/dist/next/index.d.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { B as
|
|
4
|
-
import { n as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { n as toSession, t as AuthSession } from "../view-
|
|
8
|
-
import {
|
|
9
|
-
import { n as
|
|
10
|
-
import {
|
|
1
|
+
import { a as AnyModels, i as AnyFunctions } from "../types-6BdhkmZe.js";
|
|
2
|
+
import { r as AuthState } from "../resolve-KW8nCeL6.js";
|
|
3
|
+
import { B as DbStats, K as ReadSet, it as QuerySpec, t as BetterSupabase, u as CacheAdapter } from "../define-CJJkkr1-.js";
|
|
4
|
+
import { C as SupportOptions, D as supportSessions, E as SupportStartRequest, T as SupportSessions, b as ActiveSupport, i as ServerContext, n as ContextOptions, o as ServerOptions, t as BetterServer, w as SupportPolicy } from "../server-CeVeeXwz.js";
|
|
5
|
+
import { n as AmrEntry, s as Impersonator, t as Aal } from "../mfa-Daak8ukG.js";
|
|
6
|
+
import { t as tenantOf } from "../tenant-icPeuUBN.js";
|
|
7
|
+
import { n as toSession, t as AuthSession } from "../view-DbxLNu8L.js";
|
|
8
|
+
import { n as AuthKind, r as GuardOptions } from "../respond-DoBijysA.js";
|
|
9
|
+
import { a as AuthorizedContext, c as Unwrapped, i as AuthorizeOptions, n as ActionParsed, r as ActionResult, t as ActionInput } from "../kit-B5tid-q5.js";
|
|
10
|
+
import { r as LiveCountSeed, t as CountRunner } from "../index-DunNRdnT.js";
|
|
11
|
+
import { r as MembershipClaim } from "../entitlements-DHrY2UDZ.js";
|
|
12
|
+
import { i as tagFor, t as TagOptions } from "../tags-Cx-LnIQP.js";
|
|
13
|
+
import { n as supportOf, t as SupportView } from "../support-view-33Oi07TT.js";
|
|
11
14
|
import { NextRequest } from "next/server.js";
|
|
12
15
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
13
16
|
//#region src/next/collector.d.ts
|
|
@@ -48,6 +51,21 @@ interface ProxyOptions<C = unknown, P = unknown> {
|
|
|
48
51
|
readonly before?: (request: NextRequest) => Response | undefined | Promise<Response | undefined>;
|
|
49
52
|
/** Answer before rendering, e.g. redirect signed-out users. Refreshed cookies are kept. */
|
|
50
53
|
readonly protect?: (auth: AuthState<C, P>, request: NextRequest) => Response | undefined | Promise<Response | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* A prefetch never refreshes, so a session cookie whose token expired
|
|
56
|
+
* resolves to `{ kind: 'anon', reason: 'expired' }` there. `'protect'`
|
|
57
|
+
* (the default) passes that to `protect` like any other caller.
|
|
58
|
+
* `'render'` skips `protect` for it, so the prefetch renders signed out
|
|
59
|
+
* instead of caching a redirect to sign-in; `sessionStale` keeps that view
|
|
60
|
+
* out of the App Shell, and the navigation itself refreshes the session.
|
|
61
|
+
*/
|
|
62
|
+
readonly expiredPrefetch?: "protect" | "render";
|
|
63
|
+
/**
|
|
64
|
+
* Methods that run `protect`. Defaults to `GET` and `HEAD`, so a Server
|
|
65
|
+
* Action POST is not redirected before the action runs. Set `true` to
|
|
66
|
+
* include mutations, or pass the methods yourself.
|
|
67
|
+
*/
|
|
68
|
+
readonly protectMethods?: true | readonly string[];
|
|
51
69
|
/** Post-processes the final response; return a new one to replace it. */
|
|
52
70
|
readonly after?: (response: Response, auth: AuthState<C, P>) => Response | undefined | void | Promise<Response | undefined | void>;
|
|
53
71
|
/**
|
|
@@ -55,36 +73,57 @@ interface ProxyOptions<C = unknown, P = unknown> {
|
|
|
55
73
|
* proxy, and resolving the session (a local verify, or a refresh).
|
|
56
74
|
*/
|
|
57
75
|
readonly serverTiming?: boolean;
|
|
76
|
+
readonly endedSession?: true | EndedSessionOptions;
|
|
58
77
|
}
|
|
59
|
-
|
|
60
|
-
readonly
|
|
61
|
-
readonly
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
readonly ok: false;
|
|
65
|
-
readonly data: null;
|
|
66
|
-
readonly error: DbError;
|
|
67
|
-
};
|
|
68
|
-
interface ActionOptions<S extends StandardSchemaV1 | undefined> extends GuardOptions {
|
|
78
|
+
interface EndedSessionOptions {
|
|
79
|
+
readonly paths?: readonly string[];
|
|
80
|
+
readonly redirect?: string;
|
|
81
|
+
}
|
|
82
|
+
interface ActionOptions<S extends StandardSchemaV1 | undefined, C = unknown, P = unknown, R extends boolean = boolean> extends GuardOptions, AuthorizeOptions<ActionParsed<S>, C, P, R> {
|
|
69
83
|
/** Validates the input (plain object or `FormData`) with any Standard Schema. */
|
|
70
84
|
readonly input?: S;
|
|
85
|
+
/**
|
|
86
|
+
* The active tenant for the action's context, from the validated input,
|
|
87
|
+
* instead of `NextOptions.tenant`. It is checked the same way: the
|
|
88
|
+
* `tenant()` plugin and `current_tenant_id()` only honor a tenant the
|
|
89
|
+
* caller belongs to.
|
|
90
|
+
*/
|
|
91
|
+
readonly tenant?: (input: ActionParsed<S>) => string | undefined;
|
|
92
|
+
}
|
|
93
|
+
interface RouteOptions<C = unknown, P = unknown, R extends boolean = boolean> extends GuardOptions, AuthorizeOptions<NextRequest, C, P, R> {
|
|
94
|
+
/**
|
|
95
|
+
* Refresh an expired session cookie in the route and send the new cookies
|
|
96
|
+
* with its response. For routes the proxy's matcher skips; off by default
|
|
97
|
+
* because the proxy refreshes everything it matches.
|
|
98
|
+
*/
|
|
99
|
+
readonly refresh?: boolean;
|
|
100
|
+
}
|
|
101
|
+
interface RequireOptions<C = unknown, P = unknown, R extends boolean = boolean> extends GuardOptions, AuthorizeOptions<undefined, C, P, R> {
|
|
102
|
+
/** The active tenant, as for `bs.context({ tenant })`. */
|
|
103
|
+
readonly tenant?: string;
|
|
104
|
+
}
|
|
105
|
+
interface ScopeOptions {
|
|
106
|
+
/**
|
|
107
|
+
* The active tenant, e.g. from route params, instead of `NextOptions.tenant`
|
|
108
|
+
* (whose request has the incoming headers but no URL here). It goes where
|
|
109
|
+
* the resolver's result goes, so it gets the same checks: the `tenant()`
|
|
110
|
+
* plugin and `current_tenant_id()` only honor a tenant the caller belongs to.
|
|
111
|
+
*/
|
|
112
|
+
readonly tenant?: string;
|
|
71
113
|
}
|
|
72
|
-
type ActionInput<S> = S extends StandardSchemaV1 ? StandardSchemaV1.InferInput<S> | FormData : unknown;
|
|
73
|
-
type ActionParsed<S> = S extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<S> : unknown;
|
|
74
|
-
type Unwrapped<T> = T extends {
|
|
75
|
-
readonly ok: true;
|
|
76
|
-
readonly data: infer D;
|
|
77
|
-
} | {
|
|
78
|
-
readonly ok: false;
|
|
79
|
-
} ? D : T;
|
|
80
114
|
interface BetterNext<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> extends BetterServer<M, F, E, C, P> {
|
|
81
115
|
/** `proxy.ts`: refreshes sessions for page loads and server actions. */
|
|
82
116
|
proxy(request: NextRequest, options?: ProxyOptions<C, P>): Promise<Response>;
|
|
83
117
|
/**
|
|
84
118
|
* The caller's context. Without a request (Server Components, actions) it
|
|
85
|
-
* reads the incoming headers and is memoized per request.
|
|
119
|
+
* reads the incoming headers and is memoized per request and tenant.
|
|
120
|
+
*
|
|
121
|
+
* ```ts
|
|
122
|
+
* const { db } = await bs.context({ tenant: organizationId });
|
|
123
|
+
* ```
|
|
86
124
|
*/
|
|
87
|
-
context(
|
|
125
|
+
context(options?: ScopeOptions): Promise<ServerContext<M, F, E, C, P>>;
|
|
126
|
+
context(request: Request | undefined, options?: ContextOptions): Promise<ServerContext<M, F, E, C, P>>;
|
|
88
127
|
/**
|
|
89
128
|
* The verified caller as serializable data (no token, no clients), memoized
|
|
90
129
|
* per request. Wrap it in a `'use cache: private'` function with Cache
|
|
@@ -113,10 +152,14 @@ interface BetterNext<M extends AnyModels, F extends AnyFunctions, E, C = unknown
|
|
|
113
152
|
* }
|
|
114
153
|
* ```
|
|
115
154
|
*/
|
|
116
|
-
cached(options?: CachedOptions): Promise<CachedContext<M, F, E, C, P>>;
|
|
155
|
+
cached(options?: CachedOptions<Extract<keyof M, string>>): Promise<CachedContext<M, F, E, C, P>>;
|
|
117
156
|
/**
|
|
118
157
|
* Drops every `bs.cached()` entry of a user, e.g. after a role change,
|
|
119
|
-
* and the entries tagged with `tags` (such as
|
|
158
|
+
* and the entries tagged with `tags` (such as a permission snapshot's tag).
|
|
159
|
+
* In a Server Action it also re-renders the caller's page, so no
|
|
160
|
+
* `refresh()` is needed. It reaches server caches and the caller's router
|
|
161
|
+
* only: another user's browser keeps its `'use cache: private'` entries
|
|
162
|
+
* until they go stale or that user's token changes.
|
|
120
163
|
*/
|
|
121
164
|
invalidateSession(userId: string, options?: {
|
|
122
165
|
readonly tags?: readonly string[];
|
|
@@ -130,21 +173,44 @@ interface BetterNext<M extends AnyModels, F extends AnyFunctions, E, C = unknown
|
|
|
130
173
|
*/
|
|
131
174
|
liveCount<T extends Extract<keyof M, string>>(spec: QuerySpec<T, "count", number>, db?: CountRunner): Promise<LiveCountSeed<T>>;
|
|
132
175
|
/** Route handler with auth, Result unwrapping and Problem Details errors. */
|
|
133
|
-
route<Params = Record<string, string | string[]
|
|
176
|
+
route<Params = Record<string, string | string[]>, R extends boolean = false>(handler: (request: NextRequest, ctx: ServerContext<M, F, E, C, P> & AuthorizedContext<C, P, R> & {
|
|
134
177
|
readonly params: Params;
|
|
135
|
-
}) => unknown, options?:
|
|
178
|
+
}) => unknown, options?: RouteOptions<C, P, R>): (request: NextRequest, segment: {
|
|
136
179
|
readonly params: Promise<Params>;
|
|
137
180
|
}) => Promise<Response>;
|
|
138
|
-
/**
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
181
|
+
/**
|
|
182
|
+
* Server action returning a serializable `ActionResult`.
|
|
183
|
+
*
|
|
184
|
+
* ```ts
|
|
185
|
+
* export const invite = bs.action(
|
|
186
|
+
* { input: Invite, requireTenant: true, roles: ['admin'] },
|
|
187
|
+
* async (input, { db, tenant }) => db.invitations.create({ ...input, organizationId: tenant }),
|
|
188
|
+
* );
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
action<S extends StandardSchemaV1 | undefined, T, R extends boolean = false>(options: ActionOptions<S, C, P, R>, fn: (input: ActionParsed<S>, ctx: ServerContext<M, F, E, C, P> & AuthorizedContext<C, P, R>) => Promise<T> | T): (input: ActionInput<S>) => Promise<ActionResult<Unwrapped<Awaited<T>>>>;
|
|
192
|
+
/**
|
|
193
|
+
* For Server Components: the caller's context, or the Next.js interrupt
|
|
194
|
+
* for a refused caller. `unauthorized` calls `unauthorized()`, `forbidden`
|
|
195
|
+
* calls `forbidden()` (both need `experimental.authInterrupts`, else
|
|
196
|
+
* `notFound()`), and `not_found` calls `notFound()`.
|
|
197
|
+
*
|
|
198
|
+
* ```ts
|
|
199
|
+
* const { db, tenant } = await bs.require({ requireTenant: true, roles: ['admin'] });
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
require<R extends boolean = false>(options?: RequireOptions<C, P, R>): Promise<ServerContext<M, F, E, C, P> & AuthorizedContext<C, P, R>>;
|
|
203
|
+
/**
|
|
204
|
+
* Tags the current `"use cache"` scope with a table (and row) tag. With a
|
|
205
|
+
* `tenant`, mutations in other tenants leave the entry cached.
|
|
206
|
+
*/
|
|
207
|
+
cacheTag(table: Extract<keyof M, string>, id?: string | number, options?: TagOptions): void;
|
|
142
208
|
/**
|
|
143
209
|
* Tags the current `"use cache"` scope with every table the specs (or a
|
|
144
210
|
* read set) read, plus the row of each `findById`, so any mutation that
|
|
145
211
|
* changes one revalidates it.
|
|
146
212
|
*/
|
|
147
|
-
cacheTags(target: QuerySpec<Extract<keyof M, string>> | readonly QuerySpec<Extract<keyof M, string>>[] | ReadSet): void;
|
|
213
|
+
cacheTags(target: QuerySpec<Extract<keyof M, string>> | readonly QuerySpec<Extract<keyof M, string>>[] | ReadSet, options?: TagOptions): void;
|
|
148
214
|
/**
|
|
149
215
|
* GET handler serving a request's database totals (`?id=<request id>`) for
|
|
150
216
|
* `expectDbBudget`. Answers 404 unless `debug` is on.
|
|
@@ -172,20 +238,34 @@ interface SupportStarted {
|
|
|
172
238
|
/** The tag `bs.cached()` adds to entries rendered in a support session. */
|
|
173
239
|
export declare function supportTag(sessionId: string): string;
|
|
174
240
|
interface SessionStaleOptions {
|
|
175
|
-
/**
|
|
241
|
+
/**
|
|
242
|
+
* With fewer seconds left on the token, the view is not reused at all (0):
|
|
243
|
+
* Next.js would not prefetch it anyway. Defaults to 30, and values below
|
|
244
|
+
* 30 count as 30: the client router keeps any entry for at least 30
|
|
245
|
+
* seconds, so a shorter stale time would outlive the token.
|
|
246
|
+
*/
|
|
176
247
|
readonly min?: number;
|
|
177
248
|
/** 300 (5 minutes) joins the route's App Shell. Defaults to 300. */
|
|
178
249
|
readonly max?: number;
|
|
179
250
|
}
|
|
180
251
|
/**
|
|
181
252
|
* `cacheLife` `stale` seconds for a view of `session`: `max`, but never past
|
|
182
|
-
* the token's expiry, and
|
|
253
|
+
* the token's expiry, and 0 once fewer than `min` seconds are left. A
|
|
254
|
+
* signed-out view that a refresh would change (an `expired` or
|
|
255
|
+
* `refresh_failed` cookie, or an `invalid` token) is 0 as well, so it never
|
|
256
|
+
* joins the App Shell.
|
|
183
257
|
*/
|
|
184
258
|
export declare function sessionStale(session: AuthSession, options?: SessionStaleOptions, now?: number): number;
|
|
185
|
-
interface CachedOptions {
|
|
259
|
+
interface CachedOptions<T extends string = string> extends ScopeOptions {
|
|
260
|
+
/**
|
|
261
|
+
* The active tenant, as for `bs.context({ tenant })`. Next.js keys the
|
|
262
|
+
* private cache on your function's arguments, so take the tenant as an
|
|
263
|
+
* argument and pass it through; never read it from anywhere else.
|
|
264
|
+
*/
|
|
265
|
+
readonly tenant?: string;
|
|
186
266
|
/**
|
|
187
267
|
* `cacheLife` for the entry. `stale` is `sessionStale`, and never more than
|
|
188
|
-
* `stale` when it is set: pass
|
|
268
|
+
* `stale` when it is set: pass a permission snapshot's lifetime so the
|
|
189
269
|
* entry goes stale with the snapshot too.
|
|
190
270
|
*/
|
|
191
271
|
readonly life?: SessionStaleOptions & {
|
|
@@ -193,22 +273,40 @@ interface CachedOptions {
|
|
|
193
273
|
readonly revalidate?: number;
|
|
194
274
|
readonly expire?: number;
|
|
195
275
|
};
|
|
196
|
-
/** More `cacheTag`s for the entry, e.g. `snapshotTag(sub)` or `
|
|
276
|
+
/** More `cacheTag`s for the entry, e.g. `snapshotTag(sub)` or `organization:<id>`. */
|
|
197
277
|
readonly tags?: readonly string[];
|
|
278
|
+
/**
|
|
279
|
+
* Tables the entry reads, so the `updateTag` after a mutation drops it:
|
|
280
|
+
* `bs:<table>`, or with an active tenant `bs:<table>@<tenant>` and
|
|
281
|
+
* `bs:<table>@*`, so other tenants' writes leave it cached.
|
|
282
|
+
*/
|
|
283
|
+
readonly tables?: readonly T[];
|
|
284
|
+
/** With `tables`, also tags the row `bs:<first table>:<id>`. */
|
|
285
|
+
readonly id?: string | number;
|
|
198
286
|
}
|
|
199
287
|
type CachedContext<M extends AnyModels, F extends AnyFunctions, E, C = unknown, P = unknown> = ServerContext<M, F, E, C, P> & {
|
|
200
288
|
readonly session: AuthSession<C, P>;
|
|
201
289
|
};
|
|
202
290
|
/** The tag `bs.cached()` puts on a user's entries. */
|
|
203
291
|
export declare function sessionTag(userId: string): string;
|
|
204
|
-
|
|
205
|
-
|
|
292
|
+
interface NextCacheOptions {
|
|
293
|
+
/**
|
|
294
|
+
* How a mutation outside a Server Action (a route handler, a webhook)
|
|
295
|
+
* expires its tags with `revalidateTag`. Defaults to `{ expire: 0 }`, so
|
|
296
|
+
* the next read waits for fresh data; `'max'` serves the stale entry
|
|
297
|
+
* while it revalidates.
|
|
298
|
+
*/
|
|
299
|
+
readonly revalidate?: string | {
|
|
300
|
+
readonly expire?: number;
|
|
301
|
+
};
|
|
302
|
+
}
|
|
206
303
|
/**
|
|
207
|
-
* Invalidates `bs:<table>` for every table in the target
|
|
208
|
-
* `bs:<table
|
|
209
|
-
* `
|
|
304
|
+
* Invalidates `bs:<table>` for every table in the target, the tenant's
|
|
305
|
+
* `bs:<table>@<tenant>` (every tenant's `bs:<table>@*` when the mutation has
|
|
306
|
+
* no tenant) and `bs:<table>:<id>` for the changed rows. Reads another tenant
|
|
307
|
+
* tagged stay cached. `createNext` attaches it unless `cacheTags: false`.
|
|
210
308
|
*/
|
|
211
|
-
export declare function nextCache(): CacheAdapter;
|
|
309
|
+
export declare function nextCache(options?: NextCacheOptions): CacheAdapter;
|
|
212
310
|
interface RequireAalOptions {
|
|
213
311
|
/**
|
|
214
312
|
* Page that enrolls or challenges a second factor. Signed-in users below
|
|
@@ -232,6 +330,7 @@ interface RequireAalOptions {
|
|
|
232
330
|
* ```
|
|
233
331
|
*/
|
|
234
332
|
export declare function requireAal(level: Aal, options?: RequireAalOptions): (auth: AuthState, request: NextRequest) => Response | undefined;
|
|
333
|
+
export declare function shouldCheckSession(request: NextRequest, options?: EndedSessionOptions): boolean;
|
|
235
334
|
/** Page loads, client navigations and server actions; never prefetches or assets. */
|
|
236
335
|
export declare function shouldRefresh(request: Request): boolean;
|
|
237
336
|
/**
|
|
@@ -244,4 +343,4 @@ export declare function shouldRefresh(request: Request): boolean;
|
|
|
244
343
|
*/
|
|
245
344
|
export declare function createNext<M extends AnyModels, D, F extends AnyFunctions, E, C = unknown, P = unknown>(betterSupabase: BetterSupabase<M, D, F, E, C, P>, options?: NextOptions): BetterNext<M, F, E, C, P>;
|
|
246
345
|
//#endregion
|
|
247
|
-
export { type Aal, type ActionOptions, type ActionResult, type ActiveSupport, type AmrEntry, type AuthKind, type AuthSession, type BetterNext, type CachedContext, type CachedOptions, type DbBudget, type DbStats, type
|
|
346
|
+
export { type Aal, type ActionOptions, type ActionResult, type ActiveSupport, type AmrEntry, type AuthKind, type AuthSession, type AuthorizeOptions, type AuthorizedContext, type BetterNext, type CachedContext, type CachedOptions, type DbBudget, type DbStats, type EndedSessionOptions, type GuardOptions, type Impersonator, type LiveCountSeed, type MembershipClaim, type NextCacheOptions, type NextDebugOptions, type NextOptions, type ProxyOptions, type RequireAalOptions, type RequireOptions, type RouteOptions, type ScopeOptions, type SessionStaleOptions, type SupportOptions, type SupportPolicy, type SupportSessions, type SupportStartRequest, type SupportStarted, type SupportView, type TagOptions, supportOf, supportSessions, tagFor, tenantOf, toSession };
|