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.
Files changed (536) hide show
  1. package/README.md +187 -46
  2. package/dist/access-sql-B0dF-SoF.js +181 -0
  3. package/dist/{actor-DaJjqD5R.d.ts → actor-CQTlc1Hh.d.ts} +1 -1
  4. package/dist/adapter-CHnPkCPd.js +1160 -0
  5. package/dist/agents-CVHGd7It.d.ts +94 -0
  6. package/dist/ai-cache-CBWs1W0k.js +80 -0
  7. package/dist/ai-cache-DaDu_G5L.d.ts +64 -0
  8. package/dist/ai-chat-7amvXjmQ.d.ts +590 -0
  9. package/dist/ai-chat-B24UI962.js +743 -0
  10. package/dist/ai-files-CSPNswUY.js +319 -0
  11. package/dist/ai-sdk/agents/index.d.ts +74 -0
  12. package/dist/ai-sdk/agents/index.js +159 -0
  13. package/dist/ai-sdk/batches/index.d.ts +74 -0
  14. package/dist/ai-sdk/batches/index.js +180 -0
  15. package/dist/ai-sdk/cache/index.d.ts +38 -0
  16. package/dist/ai-sdk/cache/index.js +127 -0
  17. package/dist/ai-sdk/chat/index.d.ts +2 -0
  18. package/dist/ai-sdk/chat/index.js +246 -0
  19. package/dist/ai-sdk/embeddings/index.d.ts +3 -0
  20. package/dist/ai-sdk/embeddings/index.js +2 -0
  21. package/dist/ai-sdk/files/index.d.ts +61 -0
  22. package/dist/ai-sdk/files/index.js +111 -0
  23. package/dist/ai-sdk/index.d.ts +145 -0
  24. package/dist/ai-sdk/index.js +174 -0
  25. package/dist/ai-sdk/mcp/index.d.ts +102 -0
  26. package/dist/ai-sdk/mcp/index.js +362 -0
  27. package/dist/ai-sdk/memory/index.d.ts +67 -0
  28. package/dist/ai-sdk/memory/index.js +175 -0
  29. package/dist/ai-sdk/react/index.d.ts +2 -0
  30. package/dist/ai-sdk/react/index.js +3 -0
  31. package/dist/ai-sdk/react/server.d.ts +6 -0
  32. package/dist/ai-sdk/react/server.js +7 -0
  33. package/dist/ai-sdk/workflow/index.d.ts +249 -0
  34. package/dist/ai-sdk/workflow/index.js +575 -0
  35. package/dist/ai-sdk/workflow/react/index.d.ts +20 -0
  36. package/dist/ai-sdk/workflow/react/index.js +66 -0
  37. package/dist/ai-sdk/workflow/react/server.d.ts +10 -0
  38. package/dist/ai-sdk/workflow/react/server.js +12 -0
  39. package/dist/ai-tasks-Cd1HMFvB.d.ts +131 -0
  40. package/dist/announcements-CiyOs-xP.js +107 -0
  41. package/dist/announcements-ZRGnScWI.d.ts +72 -0
  42. package/dist/api-keys-rCGtKaZA.d.ts +156 -0
  43. package/dist/assistant-DwdpDH1q.d.ts +147 -0
  44. package/dist/astro/index.d.ts +86 -0
  45. package/dist/astro/index.js +93 -0
  46. package/dist/attributes-5dYul0u0.js +13 -0
  47. package/dist/auth-link-BjFPqwLz.d.ts +97 -0
  48. package/dist/auth-link-DrDX9KOT.js +114 -0
  49. package/dist/authorization-BFCqamMs.d.ts +172 -0
  50. package/dist/before-route-CnR0C0Jr.js +30 -0
  51. package/dist/bind-Bu_ZNa3W.d.ts +62 -0
  52. package/dist/bind-l4kAvYSv.js +97 -0
  53. package/dist/block-events-CrT8r7Fe.js +76 -0
  54. package/dist/block-fields-GFkxl4dP.js +49 -0
  55. package/dist/block-fields-SJ6fEf3o.d.ts +31 -0
  56. package/dist/block-helpers-CKtbFcRv.d.ts +37 -0
  57. package/dist/block-helpers-DWHxHsEQ.js +190 -0
  58. package/dist/block-hooks-BmjMyXTa.js +114 -0
  59. package/dist/block-hooks-plbZ0AbJ.d.ts +107 -0
  60. package/dist/{kit-transport-DJlHQUBU.js → block-transport-BLr-ZgLc.js} +11 -7
  61. package/dist/block-transport-DvaoPuZ9.d.ts +48 -0
  62. package/dist/blocks/agents/index.d.ts +3 -0
  63. package/dist/blocks/agents/index.js +123 -0
  64. package/dist/blocks/ai-cache/index.d.ts +3 -0
  65. package/dist/blocks/ai-cache/index.js +3 -0
  66. package/dist/blocks/ai-chat/index.d.ts +31 -0
  67. package/dist/blocks/ai-chat/index.js +5 -0
  68. package/dist/blocks/ai-chat/react/index.d.ts +77 -0
  69. package/dist/blocks/ai-chat/react/index.js +387 -0
  70. package/dist/blocks/ai-chat/react/server.d.ts +16 -0
  71. package/dist/blocks/ai-chat/react/server.js +14 -0
  72. package/dist/blocks/ai-files/index.d.ts +14 -0
  73. package/dist/blocks/ai-files/index.js +3 -0
  74. package/dist/blocks/ai-providers/index.d.ts +7 -0
  75. package/dist/blocks/ai-providers/index.js +211 -0
  76. package/dist/blocks/ai-tasks/index.d.ts +3 -0
  77. package/dist/blocks/ai-tasks/index.js +203 -0
  78. package/dist/blocks/announcements/index.d.ts +3 -0
  79. package/dist/blocks/announcements/index.js +3 -0
  80. package/dist/blocks/announcements/react/index.d.ts +31 -0
  81. package/dist/blocks/announcements/react/index.js +86 -0
  82. package/dist/blocks/announcements/react/server.d.ts +6 -0
  83. package/dist/blocks/announcements/react/server.js +7 -0
  84. package/dist/blocks/api-keys/index.d.ts +35 -0
  85. package/dist/blocks/api-keys/index.js +334 -0
  86. package/dist/blocks/attachments/index.d.ts +224 -0
  87. package/dist/blocks/attachments/index.js +234 -0
  88. package/dist/blocks/audit/index.d.ts +366 -0
  89. package/dist/blocks/audit/index.js +714 -0
  90. package/dist/blocks/billing/index.d.ts +265 -0
  91. package/dist/blocks/billing/index.js +400 -0
  92. package/dist/blocks/comments/index.d.ts +200 -0
  93. package/dist/blocks/comments/index.js +207 -0
  94. package/dist/blocks/connectors/index.d.ts +3 -0
  95. package/dist/blocks/connectors/index.js +164 -0
  96. package/dist/blocks/data-lifecycle/index.d.ts +259 -0
  97. package/dist/blocks/data-lifecycle/index.js +358 -0
  98. package/dist/blocks/entitlements/index.d.ts +14 -0
  99. package/dist/blocks/entitlements/index.js +25 -0
  100. package/dist/blocks/flags/index.d.ts +226 -0
  101. package/dist/blocks/flags/index.js +282 -0
  102. package/dist/blocks/inbox/index.d.ts +6 -0
  103. package/dist/blocks/inbox/index.js +499 -0
  104. package/dist/blocks/inbox/react/index.d.ts +2 -0
  105. package/dist/blocks/inbox/react/index.js +225 -0
  106. package/dist/blocks/inbox/react/server.d.ts +10 -0
  107. package/dist/blocks/inbox/react/server.js +12 -0
  108. package/dist/blocks/index.d.ts +65 -0
  109. package/dist/blocks/index.js +77 -0
  110. package/dist/blocks/jobs/index.d.ts +297 -0
  111. package/dist/blocks/jobs/index.js +1051 -0
  112. package/dist/blocks/knowledge/index.d.ts +3 -0
  113. package/dist/blocks/knowledge/index.js +3 -0
  114. package/dist/blocks/memory/index.d.ts +8 -0
  115. package/dist/blocks/memory/index.js +289 -0
  116. package/dist/blocks/notifications/index.d.ts +297 -0
  117. package/dist/blocks/notifications/index.js +425 -0
  118. package/dist/blocks/notifications/react/index.d.ts +44 -0
  119. package/dist/blocks/notifications/react/index.js +67 -0
  120. package/dist/blocks/notifications/react/server.d.ts +6 -0
  121. package/dist/blocks/notifications/react/server.js +7 -0
  122. package/dist/blocks/onboarding/index.d.ts +3 -0
  123. package/dist/blocks/onboarding/index.js +64 -0
  124. package/dist/blocks/onboarding/react/index.d.ts +28 -0
  125. package/dist/blocks/onboarding/react/index.js +78 -0
  126. package/dist/blocks/onboarding/react/server.d.ts +7 -0
  127. package/dist/blocks/onboarding/react/server.js +7 -0
  128. package/dist/blocks/organizations/index.d.ts +241 -0
  129. package/dist/blocks/organizations/index.js +400 -0
  130. package/dist/blocks/outbox/index.d.ts +3 -0
  131. package/dist/blocks/outbox/index.js +266 -0
  132. package/dist/blocks/profiles/index.d.ts +40 -0
  133. package/dist/blocks/profiles/index.js +28 -0
  134. package/dist/blocks/push/index.d.ts +185 -0
  135. package/dist/blocks/push/index.js +258 -0
  136. package/dist/blocks/settings/index.d.ts +89 -0
  137. package/dist/blocks/settings/index.js +104 -0
  138. package/dist/blocks/sso/index.d.ts +198 -0
  139. package/dist/blocks/sso/index.js +1297 -0
  140. package/dist/blocks/usage/index.d.ts +4 -0
  141. package/dist/blocks/usage/index.js +233 -0
  142. package/dist/blocks/waitlist/index.d.ts +117 -0
  143. package/dist/blocks/waitlist/index.js +132 -0
  144. package/dist/blocks/webhooks/index.d.ts +304 -0
  145. package/dist/{webhooks → blocks/webhooks}/index.js +468 -148
  146. package/dist/blocks/workflow-builder/index.d.ts +21 -0
  147. package/dist/blocks/workflow-builder/index.js +5 -0
  148. package/dist/blocks/workflow-builder/react/index.d.ts +47 -0
  149. package/dist/blocks/workflow-builder/react/index.js +119 -0
  150. package/dist/blocks/workflow-builder/react/server.d.ts +8 -0
  151. package/dist/blocks/workflow-builder/react/server.js +11 -0
  152. package/dist/blocks/workflows/index.d.ts +3 -0
  153. package/dist/blocks/workflows/index.js +3 -0
  154. package/dist/blocks/workflows/react/index.d.ts +47 -0
  155. package/dist/blocks/workflows/react/index.js +137 -0
  156. package/dist/blocks/workflows/react/server.d.ts +8 -0
  157. package/dist/blocks/workflows/react/server.js +11 -0
  158. package/dist/{index-SaTsEfGP.d.ts → bucket-Cl46E3jS.d.ts} +134 -91
  159. package/dist/{simplify-_0oUKqCd.js → build-BXIzE6Xv.js} +222 -124
  160. package/dist/{channel-FQW-CnGR.d.ts → channel-_2Mx1Oyu.d.ts} +2 -2
  161. package/dist/channels-CkgQ_X60.js +114 -0
  162. package/dist/chat-sdk/index.d.ts +303 -0
  163. package/dist/chat-sdk/index.js +733 -0
  164. package/dist/chat-sdk/react/index.d.ts +2 -0
  165. package/dist/chat-sdk/react/index.js +3 -0
  166. package/dist/chat-sdk/react/server.d.ts +3 -0
  167. package/dist/chat-sdk/react/server.js +2 -0
  168. package/dist/claims-DDBQT6BK.js +61 -0
  169. package/dist/{claims-BAf6c7is.js → claims-PqzCxaTD.js} +39 -2
  170. package/dist/cli/bin.js +1 -1
  171. package/dist/cli/{codemod-DqV7612m.js → codemod-Bl_tQpHn.js} +105 -2
  172. package/dist/cli/config-B9HkL8nF.js +2 -0
  173. package/dist/cli/config-DU7EJImt.js +49 -0
  174. package/dist/cli/config-NiPxAmUF.js +1077 -0
  175. package/dist/cli/{dist-xn4wlboc.js → dist-DRAVaE6w.js} +111 -1
  176. package/dist/cli/{doctor-C_A-KEAz.js → doctor-BMqBgM3X.js} +991 -317
  177. package/dist/cli/{env-DmKv_G4A.js → env-CJLbUVPB.js} +1 -1
  178. package/dist/cli/{env-jIFUADLY.js → env-qXgyMV6r.js} +2 -2
  179. package/dist/cli/fresh-import-BeYf9I3x.js +40 -0
  180. package/dist/cli/gen-4JlOwgWG.js +2 -0
  181. package/dist/cli/gen-DeuDgPxN.js +3100 -0
  182. package/dist/cli/index.d.ts +44 -5
  183. package/dist/cli/index.js +7 -7
  184. package/dist/cli/{init-DMa6M7hV.js → init-C7Xd0Kda.js} +242 -27
  185. package/dist/cli/{introspect-BKlaIu_M.js → introspect-CSnMJ94U.js} +5 -5
  186. package/dist/cli/{io-k41_z-jT.js → io-DI1mTdSA.js} +12 -3
  187. package/dist/cli/{keys-ByKHnvP9.js → keys-BGCnnb-s.js} +8 -6
  188. package/dist/cli/{ohash-D7bG_EOb.js → ohash-BjQY1cBb.js} +1 -1
  189. package/dist/cli/{openapi-Cp5Fyta-.js → openapi-BlRJ18s3.js} +2 -2
  190. package/dist/cli/{project-B_GeXyHh.js → project-DZRaBaY7.js} +11 -6
  191. package/dist/cli/read-sets-CETOSFx4.js +223 -0
  192. package/dist/cli/{run-Bo_NLT5n.js → run-C8tnlHSb.js} +33 -23
  193. package/dist/cli/{seed-CUlqWh-8.js → seed-DQzqT7LP.js} +8 -6
  194. package/dist/cli/{skills-LJJIhLFR.js → skills-QQs4q68J.js} +3 -2
  195. package/dist/cli/sql-D0GUtUPp.js +536 -0
  196. package/dist/cli/{config-CPVpXP5I.js → supabase-toml-B-bIukQF.js} +72 -942
  197. package/dist/cli/typegen-version-DeFbtzYI.js +8 -0
  198. package/dist/cli/{version-BCtlgDQx.js → version-C_4JwyiM.js} +1 -1
  199. package/dist/client/index.d.ts +3 -2
  200. package/dist/client/index.js +11 -71
  201. package/dist/client/native/index.d.ts +228 -0
  202. package/dist/client/native/index.js +361 -0
  203. package/dist/client-CI0Z2zWX.js +277 -0
  204. package/dist/cloud-event-BnmD5fb9.js +46 -0
  205. package/dist/cloud-event-C1JCc1bH.d.ts +50 -0
  206. package/dist/{compiler-BXH_aZ7N.d.ts → compiler-DY_wkj4R.d.ts} +2 -2
  207. package/dist/compose-BIBNgAnq.js +53 -0
  208. package/dist/composite-CLqs9-OA.js +130 -0
  209. package/dist/composite-pSfeJNce.d.ts +146 -0
  210. package/dist/config/index.d.ts +6 -4
  211. package/dist/config/index.js +5 -5
  212. package/dist/{config-Bv7gvfzC.d.ts → config-D44Y7PAv.d.ts} +406 -214
  213. package/dist/{config-DreERlKo.js → config-Dn7F5k9A.js} +62 -14
  214. package/dist/connector-Dv8kK0MO.d.ts +107 -0
  215. package/dist/connectors-hkLCwyEz.d.ts +120 -0
  216. package/dist/context-BCrWe7ow.d.ts +237 -0
  217. package/dist/credentials/index.d.ts +31 -0
  218. package/dist/credentials/index.js +168 -0
  219. package/dist/cron-DVPUg5k3.js +145 -0
  220. package/dist/csv-CPAzEmB6.js +25 -0
  221. package/dist/db-exception-CnWcYPxL.js +15 -0
  222. package/dist/{define-cNKzqwL_.js → define-B-TVjC25.js} +784 -227
  223. package/dist/{define-Bp_BZa5h.d.ts → define-CJJkkr1-.d.ts} +353 -61
  224. package/dist/edge/index.d.ts +69 -11
  225. package/dist/edge/index.js +191 -75
  226. package/dist/elysia/index.d.ts +59 -0
  227. package/dist/elysia/index.js +62 -0
  228. package/dist/embeddings-4ZvFzjsU.js +127 -0
  229. package/dist/embeddings-C9KGQnXt.d.ts +68 -0
  230. package/dist/{refresh-CFPX0Qft.d.ts → ended-jLfvw8h-.d.ts} +20 -2
  231. package/dist/{entitlements-BiJZ4t49.d.ts → entitlements-DHrY2UDZ.d.ts} +16 -7
  232. package/dist/entitlements-DRl6ZJUm.js +24 -0
  233. package/dist/envelope-DqnYGRw7.js +47 -0
  234. package/dist/{errors-DtwXa6b8.js → errors-B11Duf73.js} +82 -13
  235. package/dist/errors-DLjJHPLK.js +44 -0
  236. package/dist/escape-like-DHfx6jRr.js +7 -0
  237. package/dist/escape-like-ImTK0ps_.d.ts +15 -0
  238. package/dist/eve/index.d.ts +220 -0
  239. package/dist/eve/index.js +504 -0
  240. package/dist/eve-gT2Fpjut.d.ts +151 -0
  241. package/dist/events/index.d.ts +4 -3
  242. package/dist/events/index.js +9 -50
  243. package/dist/events-DWDhx77e.d.ts +549 -0
  244. package/dist/executor-Bq28caBo.js +718 -0
  245. package/dist/executor-C-R4pucm.js +83 -0
  246. package/dist/executor-CaWigTyR.d.ts +148 -0
  247. package/dist/executor-D14tGopJ.d.ts +36 -0
  248. package/dist/{executor-Cghdstwu.d.ts → executor-DbvExCFC.d.ts} +7 -1
  249. package/dist/{sql-Coh6n4cC.js → executor-De1Of3m3.js} +210 -11
  250. package/dist/executor-DvsBbNBS.d.ts +261 -0
  251. package/dist/expo/index.d.ts +79 -0
  252. package/dist/expo/index.js +129 -0
  253. package/dist/expo-sqlite/index.d.ts +58 -0
  254. package/dist/expo-sqlite/index.js +104 -0
  255. package/dist/field-errors-BFOa7WhB.d.ts +99 -0
  256. package/dist/field-errors-VF1yb8yI.js +13 -0
  257. package/dist/framework-CdPDPpFs.d.ts +25 -0
  258. package/dist/framework-xjTBoyBB.js +51 -0
  259. package/dist/gateway-C1ssRHnf.d.ts +130 -0
  260. package/dist/graph-BGyLLFLX.js +265 -0
  261. package/dist/h3/index.d.ts +59 -0
  262. package/dist/h3/index.js +55 -0
  263. package/dist/h3/v1/index.d.ts +63 -0
  264. package/dist/h3/v1/index.js +49 -0
  265. package/dist/history-BZih6SFP.js +64 -0
  266. package/dist/hono/index.d.ts +56 -7
  267. package/dist/hono/index.js +97 -45
  268. package/dist/{react-C_s7kiNz.js → hooks-1BTCJsiw.js} +104 -133
  269. package/dist/http-Cv4T29xh.js +40 -0
  270. package/dist/http-DdYadv-o.js +126 -0
  271. package/dist/image-url-pIVlO6R1.js +41 -0
  272. package/dist/{impersonation-BgSHAYLf.js → impersonation-DcqaTBHx.js} +21 -6
  273. package/dist/inbox-i7E1ppo6.d.ts +384 -0
  274. package/dist/index-ACiNPN4Z.d.ts +74 -0
  275. package/dist/{index-DgILJRXj.d.ts → index-Bepi-Hgg.d.ts} +91 -28
  276. package/dist/index-BkWT_uBO.d.ts +51 -0
  277. package/dist/index-BpFYMsi0.d.ts +53 -0
  278. package/dist/{index-C7f8cOBM.d.ts → index-Bxih3l0u.d.ts} +2 -2
  279. package/dist/index-CaxrMD1A.d.ts +1 -0
  280. package/dist/index-ClmjK_o-.d.ts +55 -0
  281. package/dist/index-CtuakVRc.d.ts +267 -0
  282. package/dist/index-D48jVS-N.d.ts +246 -0
  283. package/dist/index-DDrYaUcq.d.ts +138 -0
  284. package/dist/index-DQh4VCc9.d.ts +98 -0
  285. package/dist/{live-D9W2M5aO.d.ts → index-DunNRdnT.d.ts} +136 -38
  286. package/dist/index.d.ts +65 -18
  287. package/dist/index.js +42 -14
  288. package/dist/invalidate-BBqhpxyB.d.ts +19 -0
  289. package/dist/json-CEnpTHlZ.js +16 -0
  290. package/dist/json-schema-CvER4kgT.js +502 -0
  291. package/dist/keys-4MnkWTTh.js +35 -0
  292. package/dist/kit-B5tid-q5.d.ts +60 -0
  293. package/dist/kit-Fm-Fv7q5.js +78 -0
  294. package/dist/knowledge-BXBbT0Tr.d.ts +176 -0
  295. package/dist/knowledge-CDmiMLew.js +255 -0
  296. package/dist/lint/index.d.ts +1 -1
  297. package/dist/lint/index.js +37 -0
  298. package/dist/list/index.d.ts +3 -2
  299. package/dist/list/index.js +1 -444
  300. package/dist/{index-fag8VJZ2.d.ts → list-query-BRt-zDF7.d.ts} +20 -12
  301. package/dist/list-query-gl808ac1.js +459 -0
  302. package/dist/{live-CdJBOc4f.js → live-CTAZQkwl.js} +99 -14
  303. package/dist/logger-DWVYUmwi.d.ts +18 -0
  304. package/dist/mcp/index.d.ts +38 -11
  305. package/dist/mcp/index.js +82 -46
  306. package/dist/mcp/sdk/index.d.ts +105 -0
  307. package/dist/mcp/sdk/index.js +126 -0
  308. package/dist/message-CaKlqdsX.js +219 -0
  309. package/dist/message-CfDoR0Y6.d.ts +94 -0
  310. package/dist/messages-B9-5887d.js +715 -0
  311. package/dist/messages-DYP0sUTe.d.ts +59 -0
  312. package/dist/mfa-Daak8ukG.d.ts +54 -0
  313. package/dist/modules-DpPwzC7E.d.ts +192 -0
  314. package/dist/modules-dxrVK3ID.js +228 -0
  315. package/dist/nestjs/index.d.ts +68 -0
  316. package/dist/nestjs/index.js +164 -0
  317. package/dist/next/client/index.d.ts +35 -0
  318. package/dist/next/client/index.js +36 -0
  319. package/dist/next/image/index.js +3 -24
  320. package/dist/next/index.d.ts +150 -51
  321. package/dist/next/index.js +261 -107
  322. package/dist/node/index.d.ts +4 -0
  323. package/dist/node/index.js +210 -0
  324. package/dist/node-headers-AO06VhqH.d.ts +24 -0
  325. package/dist/node-headers-C71zNQHe.js +55 -0
  326. package/dist/nuxt/index.d.ts +60 -0
  327. package/dist/nuxt/index.js +64 -0
  328. package/dist/onboarding-BZGHYJks.d.ts +62 -0
  329. package/dist/openapi/index.d.ts +1 -1
  330. package/dist/openapi/index.js +3 -3
  331. package/dist/orpc/index.d.ts +70 -11
  332. package/dist/orpc/index.js +73 -24
  333. package/dist/otel/index.d.ts +7 -7
  334. package/dist/otel/index.js +87 -57
  335. package/dist/outbox-Cq7pPYvl.d.ts +161 -0
  336. package/dist/{plugin-o144f322.d.ts → plugin-FGY8UhYm.d.ts} +30 -10
  337. package/dist/plugin-tfXW1-qO.js +45 -0
  338. package/dist/plugins/actor/index.d.ts +2 -2
  339. package/dist/plugins/actor/index.js +3 -3
  340. package/dist/plugins/rules/index.d.ts +11 -4
  341. package/dist/plugins/rules/index.js +40 -13
  342. package/dist/plugins/soft-delete/index.d.ts +5 -4
  343. package/dist/plugins/soft-delete/index.js +10 -5
  344. package/dist/plugins/tenant/index.d.ts +2 -2
  345. package/dist/plugins/tenant/index.js +18 -11
  346. package/dist/plugins/timestamps/index.d.ts +5 -3
  347. package/dist/plugins/timestamps/index.js +6 -4
  348. package/dist/plugins/validation/index.d.ts +2 -2
  349. package/dist/plugins/validation/index.js +10 -6
  350. package/dist/{pool-C9voM4Kw.d.ts → pool-CAu2nLrL.d.ts} +2 -2
  351. package/dist/postgres/index.d.ts +4 -4
  352. package/dist/postgres/index.js +1 -2
  353. package/dist/{postgrest-CruYKAvV.d.ts → postgrest-BLVdEnfe.d.ts} +13 -3
  354. package/dist/powersync/index.d.ts +43 -0
  355. package/dist/powersync/index.js +199 -0
  356. package/dist/powersync/react/index.d.ts +87 -0
  357. package/dist/powersync/react/index.js +108 -0
  358. package/dist/{problem-BW1KhzSG.js → problem-BreOl8b8.js} +14 -3
  359. package/dist/{problem-Blxe8S31.d.ts → problem-DD8LZFjc.d.ts} +21 -3
  360. package/dist/provider-BH5UWZJ6.d.ts +113 -0
  361. package/dist/provider-Di3sRutW.js +57 -0
  362. package/dist/query/index.d.ts +4 -2
  363. package/dist/query/index.js +4 -3
  364. package/dist/{query-CCbo44lG.js → query-BQ-NaZon.js} +141 -24
  365. package/dist/{queue-BYUCjr59.d.ts → queue-CLJurhdy.d.ts} +258 -83
  366. package/dist/react/index.d.ts +11 -7
  367. package/dist/react/index.js +7 -3
  368. package/dist/react/native/index.d.ts +116 -0
  369. package/dist/react/native/index.js +130 -0
  370. package/dist/react/server.d.ts +28 -10
  371. package/dist/react/server.js +22 -5
  372. package/dist/react/session.d.ts +2 -2
  373. package/dist/react-4ZqkP8da.js +79 -0
  374. package/dist/react-F80mF4-t.js +409 -0
  375. package/dist/react-router/index.d.ts +83 -0
  376. package/dist/react-router/index.js +89 -0
  377. package/dist/react-topic-seAWjL3_.js +38 -0
  378. package/dist/{read-set-DQFt1N_Y.js → read-set-DuKWC9Mj.js} +67 -25
  379. package/dist/realtime/index.d.ts +4 -5
  380. package/dist/realtime/index.js +144 -82
  381. package/dist/refusal-CeJWxmkH.js +61 -0
  382. package/dist/refusal-D1rgbzNq.d.ts +15 -0
  383. package/dist/replicas-CwrYp5Zj.js +94 -0
  384. package/dist/{view-Bn6HNKUe.js → resolve-D_IcnvFd.js} +248 -240
  385. package/dist/{impersonation-BmePsuxz.d.ts → resolve-KW8nCeL6.d.ts} +29 -69
  386. package/dist/{resource-mqfJW4YF.js → resource-BsvzCMlX.js} +4 -4
  387. package/dist/{resource-DNRFP7KR.d.ts → resource-D6Uc7Sk7.d.ts} +5 -5
  388. package/dist/respond-BUgsXNgk.js +91 -0
  389. package/dist/respond-DoBijysA.d.ts +93 -0
  390. package/dist/result-D7y2fT87.d.ts +282 -0
  391. package/dist/{result-BKiliPY7.js → result-DzUbqgdW.js} +27 -2
  392. package/dist/run-state-CPo-1X2B.d.ts +12 -0
  393. package/dist/run-state-CgBKzYMW.js +13 -0
  394. package/dist/search-CUWCRYKL.js +9 -0
  395. package/dist/server/index.d.ts +143 -22
  396. package/dist/server/index.js +46 -14
  397. package/dist/{respond-BR1fJWOB.d.ts → server-C6DWVEVG.d.ts} +237 -85
  398. package/dist/session-ChiXDZdZ.d.ts +72 -0
  399. package/dist/shared-CBxosKK3.js +75 -0
  400. package/dist/{shared-D1dRUrAg.js → shared-CxWmcyqB.js} +2 -1
  401. package/dist/shared-DDSjEGDR.d.ts +11 -0
  402. package/dist/sign-in-BCV5S2WZ.d.ts +49 -0
  403. package/dist/sign-in-Cb1mwv6X.js +86 -0
  404. package/dist/{signers-Cc6r98SW.d.ts → signers-4y62_VIi.d.ts} +13 -9
  405. package/dist/simplify-DDO0j0LI.js +83 -0
  406. package/dist/solid/index.d.ts +131 -0
  407. package/dist/solid/index.js +344 -0
  408. package/dist/solid-start/index.d.ts +75 -0
  409. package/dist/solid-start/index.js +58 -0
  410. package/dist/{spec-pins-C3oc-Tdp.js → spec-pins--j6mTok4.js} +8 -1
  411. package/dist/{spec-pins-CqorWDnO.d.ts → spec-pins-C89s6DyW.d.ts} +7 -0
  412. package/dist/sql/index.d.ts +313 -212
  413. package/dist/sql/index.js +34924 -6609
  414. package/dist/ssr/index.d.ts +6 -5
  415. package/dist/ssr/index.js +3 -3
  416. package/dist/{standard-D7r6dMUu.js → standard-BK0cqJ7y.js} +4 -3
  417. package/dist/{standard-J4YgMOLm.d.ts → standard-CYsm7xpT.d.ts} +1 -1
  418. package/dist/stats-D_AD9GGu.js +1123 -0
  419. package/dist/storage/index.d.ts +5 -5
  420. package/dist/storage/index.js +1027 -368
  421. package/dist/store-BdH5ruDx.js +66 -0
  422. package/dist/store-CGjgWu5n.d.ts +68 -0
  423. package/dist/streams/index.d.ts +76 -0
  424. package/dist/streams/index.js +77 -0
  425. package/dist/streams/redis/index.d.ts +52 -0
  426. package/dist/streams/redis/index.js +185 -0
  427. package/dist/stripe-BMj5LtsT.js +38 -0
  428. package/dist/stripe-D04h-QBT.d.ts +136 -0
  429. package/dist/{support-view-B8SlToQX.d.ts → support-view-33Oi07TT.d.ts} +1 -1
  430. package/dist/{support-wHnK6zp-.js → support-zIa1URaN.js} +32 -11
  431. package/dist/svelte/index.d.ts +114 -0
  432. package/dist/svelte/index.js +344 -0
  433. package/dist/sveltekit/index.d.ts +116 -0
  434. package/dist/sveltekit/index.js +106 -0
  435. package/dist/tags-B99_U9Pp.js +39 -0
  436. package/dist/tags-Cx-LnIQP.d.ts +30 -0
  437. package/dist/tanstack-db/index.d.ts +71 -0
  438. package/dist/tanstack-db/index.js +72 -0
  439. package/dist/tanstack-start/index.d.ts +75 -0
  440. package/dist/tanstack-start/index.js +95 -0
  441. package/dist/tee-CoEppCER.js +101 -0
  442. package/dist/{template-TxrGI5jR.js → template--jDkl3UP.js} +34 -13
  443. package/dist/template-CwO38Do8.d.ts +6 -0
  444. package/dist/temporal-BJGitm-h.js +79 -0
  445. package/dist/{temporal-required-CAt4Dc9Z.js → temporal-required-BVvW7SYJ.js} +3 -2
  446. package/dist/tenant-I1TEZ_BX.js +27 -0
  447. package/dist/tenant-icPeuUBN.d.ts +17 -0
  448. package/dist/testing/index.d.ts +315 -41
  449. package/dist/testing/index.js +1046 -79
  450. package/dist/timing-CyTQPubY.js +92 -0
  451. package/dist/ttl-Hr34gRu8.js +12 -0
  452. package/dist/{types-Dnf_wRDz.d.ts → types-6BdhkmZe.d.ts} +111 -45
  453. package/dist/types-BI-0Sl2v.d.ts +359 -0
  454. package/dist/types-C05bxW-W.d.ts +220 -0
  455. package/dist/types-DGs5L0VN.d.ts +192 -0
  456. package/dist/types-TaiEeBGA.d.ts +156 -0
  457. package/dist/usage-CrvrL2vw.d.ts +177 -0
  458. package/dist/user-change-XzvgafU4.js +130 -0
  459. package/dist/vault-CSO7ss5C.d.ts +50 -0
  460. package/dist/vercel-connect/index.d.ts +47 -0
  461. package/dist/vercel-connect/index.js +119 -0
  462. package/dist/{verify-Ce49ETPz.js → verify-DL41hbvY.js} +85 -13
  463. package/dist/verify-DPuWngD4.d.ts +172 -0
  464. package/dist/{version-DOYTYwHP.js → version-CQt77F3T.js} +1 -1
  465. package/dist/view-BeFcRV6G.js +99 -0
  466. package/dist/{view-CbgObAeb.d.ts → view-DbxLNu8L.d.ts} +22 -5
  467. package/dist/vue/index.d.ts +141 -0
  468. package/dist/vue/index.js +362 -0
  469. package/dist/watch-DI34G86j.d.ts +60 -0
  470. package/dist/watch-Xuxrvxq-.js +122 -0
  471. package/dist/{wire-D2dT86vi.js → wire-DtZQ4sdE.js} +15 -5
  472. package/dist/workflow-builder-DJ1oHn8g.js +398 -0
  473. package/dist/workflow-sdk/builder/index.d.ts +85 -0
  474. package/dist/workflow-sdk/builder/index.js +250 -0
  475. package/dist/workflow-sdk/index.d.ts +14 -0
  476. package/dist/workflow-sdk/index.js +3 -0
  477. package/dist/workflow-sdk/world/index.d.ts +107 -0
  478. package/dist/workflow-sdk/world/index.js +702 -0
  479. package/dist/workflow-sdk-B3yLD6Br.d.ts +98 -0
  480. package/dist/workflow-sdk-C2WJ_G2O.js +173 -0
  481. package/dist/workflow-sdk-world-D-prir6O.js +1397 -0
  482. package/dist/workflows-B0j9WKPu.d.ts +185 -0
  483. package/dist/workflows-wu1WWBn7.js +216 -0
  484. package/package.json +461 -20
  485. package/schemas/ai-message-v1.json +258 -0
  486. package/schemas/config-v1.json +1074 -140
  487. package/schemas/doctor-report-v1.json +20 -1
  488. package/schemas/snapshot-v2.json +8 -0
  489. package/skills/better-supabase/SKILL.md +41 -12
  490. package/skills/better-supabase/references/frontend.md +96 -0
  491. package/skills/better-supabase/references/plugins.md +10 -6
  492. package/skills/better-supabase/references/troubleshooting.md +2 -1
  493. package/skills/better-supabase-api/SKILL.md +76 -22
  494. package/skills/better-supabase-api/references/adapters.md +207 -0
  495. package/skills/better-supabase-api/references/ai.md +125 -0
  496. package/skills/better-supabase-api/references/expo.md +65 -0
  497. package/skills/better-supabase-api/references/powersync.md +35 -0
  498. package/skills/better-supabase-api/references/streams-credentials.md +105 -0
  499. package/skills/better-supabase-auth/SKILL.md +47 -11
  500. package/skills/better-supabase-auth/references/authorization-providers.md +51 -0
  501. package/skills/better-supabase-testing/SKILL.md +3 -1
  502. package/dist/cli/config-dtoekM0v.js +0 -2
  503. package/dist/cli/gen-CIdSQZad.js +0 -2
  504. package/dist/cli/gen-CjElD1Vw.js +0 -2241
  505. package/dist/cli/read-sets-VQcPgxU9.js +0 -436
  506. package/dist/cli/sql-CVx-1O8G.js +0 -373
  507. package/dist/entitlements-CTEBm7IB.js +0 -20
  508. package/dist/events-aIO7vsIk.d.ts +0 -230
  509. package/dist/executor-BunPOO-k.d.ts +0 -402
  510. package/dist/executor-XycESQPH.js +0 -94
  511. package/dist/index-CWMDdEr4.d.ts +0 -50
  512. package/dist/index-DOESKG27.d.ts +0 -100
  513. package/dist/index-DmXSxbLi.d.ts +0 -62
  514. package/dist/index-Dp2VDwog.d.ts +0 -161
  515. package/dist/jobs/index.d.ts +0 -226
  516. package/dist/jobs/index.js +0 -1007
  517. package/dist/json-schema-m1fiwKgN.js +0 -208
  518. package/dist/kit-events-CTFDfSwb.js +0 -60
  519. package/dist/kit-transport-B82k1djG.d.ts +0 -33
  520. package/dist/kits-CGLLrNPd.js +0 -157
  521. package/dist/mfa-Cu96oJdw.d.ts +0 -30
  522. package/dist/notifications/index.d.ts +0 -162
  523. package/dist/notifications/index.js +0 -264
  524. package/dist/orgs/index.d.ts +0 -132
  525. package/dist/orgs/index.js +0 -245
  526. package/dist/permdock-sql-C2Inc6Xc.d.ts +0 -29
  527. package/dist/permdock-sql-DgOfeixi.js +0 -51
  528. package/dist/plugin-DwARMuQp.js +0 -59
  529. package/dist/server-B1mZ7CgQ.js +0 -660
  530. package/dist/stats-Bqob3WqT.js +0 -592
  531. package/dist/support-CEPwlw2G.d.ts +0 -89
  532. package/dist/template-mbvlysOo.d.ts +0 -6
  533. package/dist/temporal-CVlIV2DZ.js +0 -40
  534. package/dist/user-change-CHFEUro1.js +0 -49
  535. package/dist/webhooks/index.d.ts +0 -285
  536. 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 };
@@ -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: {
@@ -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 = {
@@ -1,2 +1,3 @@
1
- import { a as ListPage, c as ListParsers, d as ListQueryInput, f as ListSearchParams, g as defineListQuery, h as UNSET, i as ListExtra, l as ListQuery, m as ParserSpec, n as FacetInfo, o as ListPagination, p as OpenApiParameter, r as ListDefinition, s as ListParseResult, t as FacetCounts, u as ListQueryConfig } from "../index-fag8VJZ2.js";
2
- export { 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 };
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 };