better-supabase 0.5.1 → 0.6.1
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-CHnPkCPd.js +1160 -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 +224 -0
- package/dist/blocks/attachments/index.js +234 -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 +259 -0
- package/dist/blocks/data-lifecycle/index.js +358 -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-BMqBgM3X.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-4JlOwgWG.js +2 -0
- package/dist/cli/gen-DeuDgPxN.js +3100 -0
- package/dist/cli/index.d.ts +44 -5
- package/dist/cli/index.js +7 -7
- package/dist/cli/{init-DMa6M7hV.js → init-C7Xd0Kda.js} +242 -27
- package/dist/cli/{introspect-BKlaIu_M.js → introspect-CSnMJ94U.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-C8tnlHSb.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-C_4JwyiM.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-CLqs9-OA.js +130 -0
- package/dist/composite-pSfeJNce.d.ts +146 -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-CdPDPpFs.d.ts +25 -0
- package/dist/framework-xjTBoyBB.js +51 -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-C6DWVEVG.d.ts} +237 -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 +34924 -6609
- 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-view-B8SlToQX.d.ts → support-view-33Oi07TT.d.ts} +1 -1
- package/dist/{support-wHnK6zp-.js → support-zIa1URaN.js} +32 -11
- 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-CQt77F3T.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,176 @@
|
|
|
1
|
+
/// <reference lib="esnext.temporal" />
|
|
2
|
+
import { t as AsyncResult, w as ErrorMapper } from "./result-D7y2fT87.js";
|
|
3
|
+
import { t as BlockTransport } from "./block-transport-DvaoPuZ9.js";
|
|
4
|
+
import { r as BlockTemporalOptions } from "./block-helpers-CKtbFcRv.js";
|
|
5
|
+
import { f as AiFiles, o as AiFile } from "./types-C05bxW-W.js";
|
|
6
|
+
import { m as JobHandler } from "./queue-CLJurhdy.js";
|
|
7
|
+
//#region src/blocks/knowledge/knowledge.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* Turns texts into vectors. `model` is stored with each document, so a
|
|
10
|
+
* document embedded by another model can be found and embedded again.
|
|
11
|
+
*/
|
|
12
|
+
interface Embedder {
|
|
13
|
+
/** The embedder contract version. Omitted means 1. */
|
|
14
|
+
readonly apiVersion?: 1;
|
|
15
|
+
readonly model: string;
|
|
16
|
+
embed(values: readonly string[], options?: {
|
|
17
|
+
readonly signal?: AbortSignal;
|
|
18
|
+
}): Promise<readonly (readonly number[])[]>;
|
|
19
|
+
}
|
|
20
|
+
type KnowledgeScope = "organization" | "agent" | "project" | "chat" | "user";
|
|
21
|
+
type KnowledgeStatus = "pending" | "ready" | "failed";
|
|
22
|
+
interface KnowledgeDocument {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly organizationId: string;
|
|
25
|
+
readonly ownerId: string;
|
|
26
|
+
readonly scope: KnowledgeScope;
|
|
27
|
+
/** The agent, project, chat or user the document belongs to; none for organization scope. */
|
|
28
|
+
readonly scopeId: string | undefined;
|
|
29
|
+
readonly fileId: string | undefined;
|
|
30
|
+
readonly title: string;
|
|
31
|
+
readonly source: string | undefined;
|
|
32
|
+
readonly metadata: Readonly<Record<string, unknown>>;
|
|
33
|
+
readonly status: KnowledgeStatus;
|
|
34
|
+
readonly error: string | undefined;
|
|
35
|
+
readonly chunkCount: number;
|
|
36
|
+
readonly embeddingModel: string | undefined;
|
|
37
|
+
readonly createdAt: Temporal.Instant;
|
|
38
|
+
readonly updatedAt: Temporal.Instant;
|
|
39
|
+
}
|
|
40
|
+
interface NewKnowledgeDocument {
|
|
41
|
+
readonly title: string;
|
|
42
|
+
/** Default `user`, scoped to the caller. */
|
|
43
|
+
readonly scope?: KnowledgeScope;
|
|
44
|
+
readonly scopeId?: string;
|
|
45
|
+
readonly fileId?: string;
|
|
46
|
+
/** Where the text came from: a URL, a file name or a table. */
|
|
47
|
+
readonly source?: string;
|
|
48
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
49
|
+
/** The service role only: the user the document belongs to. */
|
|
50
|
+
readonly ownerId?: string;
|
|
51
|
+
}
|
|
52
|
+
interface KnowledgeChunk {
|
|
53
|
+
readonly content: string;
|
|
54
|
+
/** An estimate of the tokens in `content`. */
|
|
55
|
+
readonly tokens?: number;
|
|
56
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
57
|
+
}
|
|
58
|
+
interface KnowledgeHit {
|
|
59
|
+
readonly documentId: string;
|
|
60
|
+
readonly index: number;
|
|
61
|
+
readonly content: string;
|
|
62
|
+
readonly metadata: Readonly<Record<string, unknown>>;
|
|
63
|
+
readonly title: string;
|
|
64
|
+
/** The fused reciprocal rank score; higher is better. */
|
|
65
|
+
readonly score: number;
|
|
66
|
+
}
|
|
67
|
+
interface KnowledgeQuery {
|
|
68
|
+
/** Searched as full text, and embedded when the block has an embedder. */
|
|
69
|
+
readonly text?: string;
|
|
70
|
+
/** An embedding of the query, used instead of embedding `text`. */
|
|
71
|
+
readonly embedding?: readonly number[];
|
|
72
|
+
}
|
|
73
|
+
interface KnowledgeSearchOptions {
|
|
74
|
+
/** The scopes to search, each with an optional id; every scope when unset. */
|
|
75
|
+
readonly scopes?: readonly {
|
|
76
|
+
readonly scope: KnowledgeScope;
|
|
77
|
+
readonly id?: string;
|
|
78
|
+
}[];
|
|
79
|
+
/** How many chunks to return. Default 8, at most 100. */
|
|
80
|
+
readonly k?: number;
|
|
81
|
+
/** Matches documents whose metadata contains this object. */
|
|
82
|
+
readonly filter?: Readonly<Record<string, unknown>>;
|
|
83
|
+
readonly signal?: AbortSignal;
|
|
84
|
+
}
|
|
85
|
+
interface ChunkOptions {
|
|
86
|
+
/** The most characters in a chunk. Default 2000. */
|
|
87
|
+
readonly size?: number;
|
|
88
|
+
/** Characters repeated from the end of the previous chunk. Default 200, or a tenth of a smaller `size`. */
|
|
89
|
+
readonly overlap?: number;
|
|
90
|
+
}
|
|
91
|
+
interface KnowledgeOptions extends BlockTemporalOptions {
|
|
92
|
+
/** Calls as the user: `rpcTransport(supabase)`. */
|
|
93
|
+
readonly transport: BlockTransport;
|
|
94
|
+
/** Calls as the service role, for `process`, `drain` and `reembed`. */
|
|
95
|
+
readonly service?: BlockTransport;
|
|
96
|
+
/** The module schema (`sql.modules.knowledge.schema`), default `better_supabase`. */
|
|
97
|
+
readonly schema?: string;
|
|
98
|
+
readonly mappers?: readonly ErrorMapper[];
|
|
99
|
+
/** Embeds chunks and queries; without one, search is full text only. */
|
|
100
|
+
readonly embedder?: Embedder;
|
|
101
|
+
/** The ai-files block, for `ingest.file`. */
|
|
102
|
+
readonly files?: AiFiles;
|
|
103
|
+
/**
|
|
104
|
+
* The text of a file. The default decodes `text/*`, JSON, XML and YAML
|
|
105
|
+
* as UTF-8 and fails with `KNOWLEDGE_UNSUPPORTED` for anything else.
|
|
106
|
+
*/
|
|
107
|
+
readonly extract?: (file: AiFile, data: Uint8Array) => Promise<string>;
|
|
108
|
+
readonly chunking?: ChunkOptions;
|
|
109
|
+
/** Chunks per embedding call. Default 64. */
|
|
110
|
+
readonly batchSize?: number;
|
|
111
|
+
}
|
|
112
|
+
interface Knowledge {
|
|
113
|
+
readonly documents: {
|
|
114
|
+
create(organizationId: string, document: NewKnowledgeDocument): AsyncResult<KnowledgeDocument>;
|
|
115
|
+
get(documentId: string): AsyncResult<KnowledgeDocument>;
|
|
116
|
+
list(organizationId: string, options?: {
|
|
117
|
+
readonly scope?: KnowledgeScope;
|
|
118
|
+
readonly scopeId?: string;
|
|
119
|
+
readonly limit?: number;
|
|
120
|
+
}): AsyncResult<readonly KnowledgeDocument[]>;
|
|
121
|
+
/** Replaces the chunks; unchanged chunks keep their embedding. */
|
|
122
|
+
write(documentId: string, chunks: readonly KnowledgeChunk[]): AsyncResult<KnowledgeDocument>;
|
|
123
|
+
remove(documentId: string): AsyncResult<boolean>;
|
|
124
|
+
};
|
|
125
|
+
readonly ingest: {
|
|
126
|
+
/** Creates a document from text and writes its chunks. */
|
|
127
|
+
text(organizationId: string, document: NewKnowledgeDocument & {
|
|
128
|
+
readonly text: string;
|
|
129
|
+
}): AsyncResult<KnowledgeDocument>;
|
|
130
|
+
/** Creates a document from a ready ai-files file and writes its chunks. */
|
|
131
|
+
file(organizationId: string, fileId: string, document?: Partial<NewKnowledgeDocument>): AsyncResult<KnowledgeDocument>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Embeds a document's pending chunks (service role). Returns how many
|
|
135
|
+
* still wait, 0 once the document is ready.
|
|
136
|
+
*/
|
|
137
|
+
process(documentId: string, options?: {
|
|
138
|
+
readonly signal?: AbortSignal | undefined;
|
|
139
|
+
}): AsyncResult<number>;
|
|
140
|
+
/**
|
|
141
|
+
* The handler for the `knowledge_embed` queue. The last attempt marks
|
|
142
|
+
* the document failed with the error.
|
|
143
|
+
*/
|
|
144
|
+
embedJob(): JobHandler<{
|
|
145
|
+
readonly document_id: string;
|
|
146
|
+
}>;
|
|
147
|
+
/**
|
|
148
|
+
* Processes pending documents without a queue (service role). Returns how
|
|
149
|
+
* many. A document is marked failed only after `attempts` (default 3)
|
|
150
|
+
* tries fail, and never when the signal aborted it.
|
|
151
|
+
*/
|
|
152
|
+
drain(options?: {
|
|
153
|
+
readonly batch?: number;
|
|
154
|
+
readonly attempts?: number;
|
|
155
|
+
readonly signal?: AbortSignal;
|
|
156
|
+
}): AsyncResult<number>;
|
|
157
|
+
search(organizationId: string, query: string | KnowledgeQuery, options?: KnowledgeSearchOptions): AsyncResult<readonly KnowledgeHit[]>;
|
|
158
|
+
/**
|
|
159
|
+
* Marks documents embedded by another model (or every document when
|
|
160
|
+
* `model` is unset) pending again (service role). Returns how many.
|
|
161
|
+
*/
|
|
162
|
+
reembed(options?: {
|
|
163
|
+
readonly organizationId?: string;
|
|
164
|
+
readonly model?: string;
|
|
165
|
+
}): AsyncResult<number>;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Splits text into chunks of at most `size` characters, preferring a
|
|
169
|
+
* paragraph, line, sentence or word break in the second half of each
|
|
170
|
+
* chunk, and repeating `overlap` characters of the previous one.
|
|
171
|
+
*/
|
|
172
|
+
declare function chunk(text: string, options?: ChunkOptions): readonly KnowledgeChunk[];
|
|
173
|
+
/** Documents, chunks and hybrid search for retrieval. */
|
|
174
|
+
declare function createKnowledge(options: KnowledgeOptions): Knowledge;
|
|
175
|
+
//#endregion
|
|
176
|
+
export { KnowledgeDocument as a, KnowledgeQuery as c, KnowledgeStatus as d, NewKnowledgeDocument as f, KnowledgeChunk as i, KnowledgeScope as l, createKnowledge as m, Embedder as n, KnowledgeHit as o, chunk as p, Knowledge as r, KnowledgeOptions as s, ChunkOptions as t, KnowledgeSearchOptions as u };
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { t as DbException } from "./db-exception-CnWcYPxL.js";
|
|
2
|
+
import { n as dbError } from "./errors-B11Duf73.js";
|
|
3
|
+
import { a as ok, r as err, t as AsyncResult } from "./result-DzUbqgdW.js";
|
|
4
|
+
import { t as vectorLiteral } from "./search-CUWCRYKL.js";
|
|
5
|
+
import { C as run, O as textOf, b as recordOrEmpty, c as errorText, d as isRecord, h as optionalText, i as blockCall, k as toInstant, l as injectableOf, n as applyTemporal, x as recordsOf, y as recordOf } from "./block-helpers-DWHxHsEQ.js";
|
|
6
|
+
//#region src/blocks/knowledge/knowledge.ts
|
|
7
|
+
const SCOPES = /* @__PURE__ */ new Set([
|
|
8
|
+
"organization",
|
|
9
|
+
"agent",
|
|
10
|
+
"project",
|
|
11
|
+
"chat",
|
|
12
|
+
"user"
|
|
13
|
+
]);
|
|
14
|
+
const STATUSES = /* @__PURE__ */ new Set([
|
|
15
|
+
"pending",
|
|
16
|
+
"ready",
|
|
17
|
+
"failed"
|
|
18
|
+
]);
|
|
19
|
+
const BREAKS = [
|
|
20
|
+
"\n\n",
|
|
21
|
+
"\n",
|
|
22
|
+
". ",
|
|
23
|
+
" "
|
|
24
|
+
];
|
|
25
|
+
const TEXT_TYPES = /^(text\/|application\/(json|xml|yaml|x-yaml|ld\+json|x-ndjson)\b)/;
|
|
26
|
+
/**
|
|
27
|
+
* Splits text into chunks of at most `size` characters, preferring a
|
|
28
|
+
* paragraph, line, sentence or word break in the second half of each
|
|
29
|
+
* chunk, and repeating `overlap` characters of the previous one.
|
|
30
|
+
*/
|
|
31
|
+
function chunk(text, options = {}) {
|
|
32
|
+
const size = options.size ?? 2e3;
|
|
33
|
+
const overlap = options.overlap ?? Math.min(200, Math.floor(size / 10));
|
|
34
|
+
if (!Number.isInteger(size) || size < 1) throw new RangeError("chunk size must be a positive whole number");
|
|
35
|
+
if (!Number.isInteger(overlap) || overlap < 0 || overlap >= size) throw new RangeError("chunk overlap must be at least 0 and below size");
|
|
36
|
+
const clean = text.replaceAll(/\r\n?/g, "\n").trim();
|
|
37
|
+
const chunks = [];
|
|
38
|
+
let start = 0;
|
|
39
|
+
while (start < clean.length) {
|
|
40
|
+
let end = Math.min(start + size, clean.length);
|
|
41
|
+
if (end < clean.length) {
|
|
42
|
+
const window = clean.slice(start, end);
|
|
43
|
+
for (const mark of BREAKS) {
|
|
44
|
+
const at = window.lastIndexOf(mark);
|
|
45
|
+
if (at >= window.length / 2) {
|
|
46
|
+
end = start + at + mark.length;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const content = clean.slice(start, end).trim();
|
|
52
|
+
if (content !== "") chunks.push({
|
|
53
|
+
content,
|
|
54
|
+
tokens: Math.ceil(content.length / 4)
|
|
55
|
+
});
|
|
56
|
+
if (end >= clean.length) break;
|
|
57
|
+
const back = Math.max(end - overlap, start + 1);
|
|
58
|
+
const word = /\s/.test(clean.charAt(back - 1)) ? back - 1 : clean.indexOf(" ", back);
|
|
59
|
+
start = overlap > 0 && word >= back - 1 && word < end ? word + 1 : back;
|
|
60
|
+
}
|
|
61
|
+
return chunks;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* An `invalid_input` error unless the embedder returned `count` vectors of
|
|
65
|
+
* one non-zero length with finite numbers.
|
|
66
|
+
*/
|
|
67
|
+
function checkVectors(vectors, count) {
|
|
68
|
+
const invalid = (message) => dbError("invalid_input", message, { hint: "EMBEDDING_INVALID" });
|
|
69
|
+
if (vectors.length !== count) return invalid(`The embedder returned ${vectors.length} vectors for ${count} values`);
|
|
70
|
+
const size = vectors[0]?.length ?? 0;
|
|
71
|
+
for (const vector of vectors) {
|
|
72
|
+
if (vector.length === 0 || vector.length !== size) return invalid("The embedder returned vectors of different or zero length");
|
|
73
|
+
if (!vector.every(Number.isFinite)) return invalid("The embedder returned a vector with a non-finite number");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const scopeOf = (value) => {
|
|
77
|
+
const text = textOf(value);
|
|
78
|
+
return SCOPES.has(text) ? text : "user";
|
|
79
|
+
};
|
|
80
|
+
const statusOf = (value) => {
|
|
81
|
+
const text = textOf(value);
|
|
82
|
+
return STATUSES.has(text) ? text : "failed";
|
|
83
|
+
};
|
|
84
|
+
const instant = (value) => value instanceof Date ? toInstant(value) : toInstant(textOf(value));
|
|
85
|
+
function documentOf(value) {
|
|
86
|
+
const row = recordOf(value, "knowledge_documents");
|
|
87
|
+
return {
|
|
88
|
+
id: textOf(row["id"]),
|
|
89
|
+
organizationId: textOf(row["organization_id"]),
|
|
90
|
+
ownerId: textOf(row["owner_id"]),
|
|
91
|
+
scope: scopeOf(row["scope"]),
|
|
92
|
+
scopeId: optionalText(row["scope_id"]),
|
|
93
|
+
fileId: optionalText(row["file_id"]),
|
|
94
|
+
title: textOf(row["title"]),
|
|
95
|
+
source: optionalText(row["source"]),
|
|
96
|
+
metadata: recordOrEmpty(row["metadata"]),
|
|
97
|
+
status: statusOf(row["status"]),
|
|
98
|
+
error: optionalText(row["error"]),
|
|
99
|
+
chunkCount: Number(row["chunk_count"] ?? 0),
|
|
100
|
+
embeddingModel: optionalText(row["embedding_model"]),
|
|
101
|
+
createdAt: instant(row["created_at"]),
|
|
102
|
+
updatedAt: instant(row["updated_at"])
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function hitOf(value) {
|
|
106
|
+
const row = recordOf(value, "knowledge_search");
|
|
107
|
+
return {
|
|
108
|
+
documentId: textOf(row["document_id"]),
|
|
109
|
+
index: Number(row["idx"]),
|
|
110
|
+
content: textOf(row["content"]),
|
|
111
|
+
metadata: recordOrEmpty(row["metadata"]),
|
|
112
|
+
title: textOf(row["title"]),
|
|
113
|
+
score: Number(row["score"])
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const notFound = () => dbError("not_found", "No knowledge document you can see has this id", { hint: "KNOWLEDGE_NOT_FOUND" });
|
|
117
|
+
const decoder = new TextDecoder("utf-8", { fatal: true });
|
|
118
|
+
function defaultExtract(file, data) {
|
|
119
|
+
if (!TEXT_TYPES.test(file.mediaType)) return Promise.reject(/* @__PURE__ */ new TypeError(`No text extractor for ${file.mediaType}; pass extract to createKnowledge`));
|
|
120
|
+
return Promise.resolve(decoder.decode(data));
|
|
121
|
+
}
|
|
122
|
+
const unsupported = (cause) => dbError("invalid_request", errorText(cause), { hint: "KNOWLEDGE_UNSUPPORTED" });
|
|
123
|
+
/** Documents, chunks and hybrid search for retrieval. */
|
|
124
|
+
function createKnowledge(options) {
|
|
125
|
+
applyTemporal(options);
|
|
126
|
+
const call = blockCall(options.transport, options.schema, options.mappers);
|
|
127
|
+
const service = blockCall(options.service ?? options.transport, options.schema, options.mappers);
|
|
128
|
+
const batchSize = options.batchSize ?? 64;
|
|
129
|
+
const extract = options.extract ?? defaultExtract;
|
|
130
|
+
const embedder = injectableOf("embedder", options.embedder);
|
|
131
|
+
const found = (value) => isRecord(value) ? AsyncResult.ok(documentOf(value)) : AsyncResult.err(notFound());
|
|
132
|
+
const create = (organizationId, document) => call("create_knowledge_document", {
|
|
133
|
+
tenant: organizationId,
|
|
134
|
+
title: document.title,
|
|
135
|
+
scope: document.scope,
|
|
136
|
+
scope_id: document.scopeId,
|
|
137
|
+
file_id: document.fileId,
|
|
138
|
+
source: document.source,
|
|
139
|
+
metadata: document.metadata,
|
|
140
|
+
owner: document.ownerId
|
|
141
|
+
}, documentOf);
|
|
142
|
+
const write = (documentId, chunks) => call("write_knowledge_chunks", {
|
|
143
|
+
document_id: documentId,
|
|
144
|
+
chunks: { items: chunks },
|
|
145
|
+
model: embedder?.model
|
|
146
|
+
}, (value) => value).andThen(found);
|
|
147
|
+
const fromText = (organizationId, document, text) => run(() => Promise.resolve(chunk(text, options.chunking))).andThen((chunks) => create(organizationId, document).andThen((created) => write(created.id, chunks)));
|
|
148
|
+
const embed = (values, signal) => embedder ? run(() => embedder.embed(values, signal === void 0 ? void 0 : { signal })) : AsyncResult.err(dbError("invalid_request", "createKnowledge has no embedder", { hint: "KNOWLEDGE_NO_EMBEDDER" }));
|
|
149
|
+
const process = (documentId, processOptions = {}) => AsyncResult.from(async () => {
|
|
150
|
+
let before = Number.POSITIVE_INFINITY;
|
|
151
|
+
for (;;) {
|
|
152
|
+
const pending = await service("pending_knowledge_chunks", {
|
|
153
|
+
document_id: documentId,
|
|
154
|
+
batch: batchSize
|
|
155
|
+
}, (value) => recordsOf(value, "pending_knowledge_chunks"));
|
|
156
|
+
if (!pending.ok) return pending;
|
|
157
|
+
if (pending.data.length === 0) return ok(0);
|
|
158
|
+
const vectors = await embed(pending.data.map((row) => textOf(row["content"])), processOptions.signal);
|
|
159
|
+
if (!vectors.ok) return vectors;
|
|
160
|
+
const invalid = checkVectors(vectors.data, pending.data.length);
|
|
161
|
+
if (invalid) return err(invalid);
|
|
162
|
+
const remaining = await service("set_knowledge_embeddings", {
|
|
163
|
+
document_id: documentId,
|
|
164
|
+
embeddings: { items: pending.data.map((row, index) => ({
|
|
165
|
+
idx: Number(row["idx"]),
|
|
166
|
+
hash: row["hash"],
|
|
167
|
+
embedding: vectorLiteral(vectors.data[index] ?? [])
|
|
168
|
+
})) },
|
|
169
|
+
model: embedder?.model
|
|
170
|
+
}, Number);
|
|
171
|
+
if (!remaining.ok || remaining.data === 0) return remaining;
|
|
172
|
+
if (processOptions.signal?.aborted) return ok(remaining.data);
|
|
173
|
+
if (remaining.data >= before) return ok(remaining.data);
|
|
174
|
+
before = remaining.data;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
return {
|
|
178
|
+
documents: {
|
|
179
|
+
create,
|
|
180
|
+
get: (documentId) => call("get_knowledge_document", { document_id: documentId }, (value) => value).andThen(found),
|
|
181
|
+
list: (organizationId, listOptions = {}) => call("list_knowledge_documents", {
|
|
182
|
+
tenant: organizationId,
|
|
183
|
+
scope: listOptions.scope,
|
|
184
|
+
scope_id: listOptions.scopeId,
|
|
185
|
+
max_rows: listOptions.limit
|
|
186
|
+
}, (value) => recordsOf(value, "list_knowledge_documents").map(documentOf)),
|
|
187
|
+
write,
|
|
188
|
+
remove: (documentId) => call("delete_knowledge_document", { document_id: documentId }, (value) => value === true)
|
|
189
|
+
},
|
|
190
|
+
ingest: {
|
|
191
|
+
text: (organizationId, { text, ...document }) => fromText(organizationId, document, text),
|
|
192
|
+
file: (organizationId, fileId, document = {}) => {
|
|
193
|
+
const files = options.files;
|
|
194
|
+
if (!files) return AsyncResult.err(dbError("invalid_request", "createKnowledge has no files block", { hint: "KNOWLEDGE_NO_FILES" }));
|
|
195
|
+
return files.files.read(fileId).andThen(({ file, data }) => AsyncResult.from(async () => {
|
|
196
|
+
try {
|
|
197
|
+
return ok(await extract(file, data));
|
|
198
|
+
} catch (cause) {
|
|
199
|
+
return err(unsupported(cause));
|
|
200
|
+
}
|
|
201
|
+
}).andThen((text) => fromText(organizationId, {
|
|
202
|
+
...document,
|
|
203
|
+
title: document.title ?? file.filename,
|
|
204
|
+
fileId: file.id,
|
|
205
|
+
source: document.source ?? file.filename
|
|
206
|
+
}, text)));
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
process,
|
|
210
|
+
embedJob: () => async (payload, job, signal) => {
|
|
211
|
+
const result = await process(payload.document_id, { signal });
|
|
212
|
+
if (result.ok) return;
|
|
213
|
+
if (job.attempts >= job.maxAttempts) await service("fail_knowledge_document", {
|
|
214
|
+
document_id: payload.document_id,
|
|
215
|
+
error: result.error.message
|
|
216
|
+
}, (value) => value);
|
|
217
|
+
throw new DbException(result.error);
|
|
218
|
+
},
|
|
219
|
+
drain: (drainOptions = {}) => service("pending_knowledge_documents", { batch: drainOptions.batch }, (value) => Array.isArray(value) ? value.map(textOf) : []).andThen((ids) => AsyncResult.from(async () => {
|
|
220
|
+
const attempts = Math.max(1, drainOptions.attempts ?? 3);
|
|
221
|
+
let done = 0;
|
|
222
|
+
for (const id of ids) {
|
|
223
|
+
if (drainOptions.signal?.aborted) break;
|
|
224
|
+
let result = await process(id, drainOptions);
|
|
225
|
+
for (let attempt = 1; !result.ok && attempt < attempts && !drainOptions.signal?.aborted; attempt += 1) result = await process(id, drainOptions);
|
|
226
|
+
if (result.ok) done += 1;
|
|
227
|
+
else if (!drainOptions.signal?.aborted) await service("fail_knowledge_document", {
|
|
228
|
+
document_id: id,
|
|
229
|
+
error: result.error.message
|
|
230
|
+
}, (value) => value);
|
|
231
|
+
}
|
|
232
|
+
return ok(done);
|
|
233
|
+
})),
|
|
234
|
+
search: (organizationId, query, searchOptions = {}) => {
|
|
235
|
+
const { text, embedding } = typeof query === "string" ? {
|
|
236
|
+
text: query,
|
|
237
|
+
embedding: void 0
|
|
238
|
+
} : query;
|
|
239
|
+
return (embedding === void 0 && embedder !== void 0 && text !== void 0 && text !== "" ? embed([text], searchOptions.signal).map((vectors) => vectors[0]) : AsyncResult.ok(embedding)).andThen((value) => call("knowledge_search", {
|
|
240
|
+
tenant: organizationId,
|
|
241
|
+
query_embedding: value === void 0 ? void 0 : vectorLiteral(value),
|
|
242
|
+
query_text: text === "" ? void 0 : text,
|
|
243
|
+
scopes: searchOptions.scopes === void 0 ? void 0 : { items: searchOptions.scopes },
|
|
244
|
+
k: searchOptions.k,
|
|
245
|
+
filter: searchOptions.filter
|
|
246
|
+
}, (rows) => recordsOf(rows, "knowledge_search").map(hitOf)));
|
|
247
|
+
},
|
|
248
|
+
reembed: (reembedOptions = {}) => service("reembed_knowledge", {
|
|
249
|
+
tenant: reembedOptions.organizationId,
|
|
250
|
+
model: reembedOptions.model
|
|
251
|
+
}, Number)
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
//#endregion
|
|
255
|
+
export { chunk as n, createKnowledge as r, checkVectors as t };
|
package/dist/lint/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export interface RuleModule {
|
|
|
42
42
|
CallExpression(node: CallExpression): void;
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
export type RuleId = "no-unbounded-find-many" | "no-delete-many-without-where" | "max-limit" | "require-order-by" | "unbounded-read";
|
|
45
|
+
export type RuleId = "no-unbounded-find-many" | "no-delete-many-without-where" | "max-limit" | "require-order-by" | "unbounded-read" | "require-max-affected";
|
|
46
46
|
/** The part of `supabase/snapshot.json` that `largeTables` reads. */
|
|
47
47
|
export interface LintSnapshot {
|
|
48
48
|
readonly extras: {
|
package/dist/lint/index.js
CHANGED
|
@@ -146,6 +146,43 @@ const rules = {
|
|
|
146
146
|
strict: { type: "boolean" }
|
|
147
147
|
},
|
|
148
148
|
additionalProperties: false
|
|
149
|
+
}]),
|
|
150
|
+
"require-max-affected": rule("Require maxAffected on updateMany and deleteMany", "require-max-affected", {
|
|
151
|
+
missing: "{{method}} without maxAffected can change every row its where matches.",
|
|
152
|
+
tooLarge: "maxAffected {{value}} is above the maximum of {{max}}."
|
|
153
|
+
}, (context) => {
|
|
154
|
+
const max = context.options[0]?.max ?? 1e3;
|
|
155
|
+
return { CallExpression(node) {
|
|
156
|
+
const method = methodName(node);
|
|
157
|
+
if (method !== "updateMany" && method !== "deleteMany") return;
|
|
158
|
+
const args = argsOf(node);
|
|
159
|
+
if (!args) return;
|
|
160
|
+
const bound = args.get("maxAffected");
|
|
161
|
+
if (bound === void 0) {
|
|
162
|
+
context.report({
|
|
163
|
+
node,
|
|
164
|
+
messageId: "missing",
|
|
165
|
+
data: { method }
|
|
166
|
+
});
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const value = numberOf(bound);
|
|
170
|
+
if (value !== void 0 && value > max) context.report({
|
|
171
|
+
node,
|
|
172
|
+
messageId: "tooLarge",
|
|
173
|
+
data: {
|
|
174
|
+
value: String(value),
|
|
175
|
+
max: String(max)
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
} };
|
|
179
|
+
}, [{
|
|
180
|
+
type: "object",
|
|
181
|
+
properties: { max: {
|
|
182
|
+
type: "integer",
|
|
183
|
+
minimum: 0
|
|
184
|
+
} },
|
|
185
|
+
additionalProperties: false
|
|
149
186
|
}])
|
|
150
187
|
};
|
|
151
188
|
const plugin = {
|
package/dist/list/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
|
|
1
|
+
import { _ as defineListQuery, a as ListExtra, c as ListParseResult, d as ListQueryConfig, f as ListQueryInput, g as UNSET, h as ParserSpec, i as ListDefinition, l as ListParsers, m as OpenApiParameter, n as FacetCounts, o as ListPage, p as ListSearchParams, r as FacetInfo, s as ListPagination, t as FacetCountFields, u as ListQuery } from "../list-query-BRt-zDF7.js";
|
|
2
|
+
import "../index-CaxrMD1A.js";
|
|
3
|
+
export { type FacetCountFields, type FacetCounts, type FacetInfo, type ListDefinition, type ListExtra, type ListPage, type ListPagination, type ListParseResult, type ListParsers, type ListQuery, type ListQueryConfig, type ListQueryInput, type ListSearchParams, type OpenApiParameter, type ParserSpec, UNSET, defineListQuery };
|