better-supabase 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +6 -2
  2. package/dist/{access-sql-B0dF-SoF.js → access-sql-CrSbK1q-.js} +1 -1
  3. package/dist/{adapter-iKgjHVPx.js → adapter-CN45ibbV.js} +658 -157
  4. package/dist/{agents-CVHGd7It.d.ts → agents-BY_LQXtQ.d.ts} +4 -4
  5. package/dist/{ai-cache-CBWs1W0k.js → ai-cache-Dfgk8nBT.js} +2 -1
  6. package/dist/{ai-cache-DaDu_G5L.d.ts → ai-cache-DrUMMgp6.d.ts} +4 -4
  7. package/dist/{ai-chat-B24UI962.js → ai-chat-CVLRWbtS.js} +4 -3
  8. package/dist/{ai-chat-7amvXjmQ.d.ts → ai-chat-DXkMy74O.d.ts} +5 -5
  9. package/dist/{ai-files-CSPNswUY.js → ai-files-CioLu5du.js} +5 -4
  10. package/dist/ai-message-DfaP8sis.js +14 -0
  11. package/dist/ai-sdk/agents/index.d.ts +4 -4
  12. package/dist/ai-sdk/batches/index.d.ts +4 -4
  13. package/dist/ai-sdk/batches/index.js +4 -4
  14. package/dist/ai-sdk/cache/index.d.ts +2 -2
  15. package/dist/ai-sdk/cache/index.js +2 -2
  16. package/dist/ai-sdk/chat/index.d.ts +1 -1
  17. package/dist/ai-sdk/chat/index.js +8 -20
  18. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  19. package/dist/ai-sdk/files/index.d.ts +3 -3
  20. package/dist/ai-sdk/files/index.js +4 -4
  21. package/dist/ai-sdk/index.d.ts +37 -9
  22. package/dist/ai-sdk/index.js +3 -2
  23. package/dist/ai-sdk/mcp/index.d.ts +43 -6
  24. package/dist/ai-sdk/mcp/index.js +36 -7
  25. package/dist/ai-sdk/memory/index.d.ts +2 -2
  26. package/dist/ai-sdk/memory/index.js +1 -1
  27. package/dist/ai-sdk/workflow/index.d.ts +6 -6
  28. package/dist/ai-sdk/workflow/index.js +13 -24
  29. package/dist/{ai-tasks-Cd1HMFvB.d.ts → ai-tasks-BRQ6iQLc.d.ts} +4 -4
  30. package/dist/{announcements-ZRGnScWI.d.ts → announcements-Bouy0Ski.d.ts} +3 -3
  31. package/dist/{announcements-CiyOs-xP.js → announcements-p_BFofiR.js} +1 -1
  32. package/dist/api-Dnf2q-Ht.d.ts +370 -0
  33. package/dist/api-DtHFC037.js +676 -0
  34. package/dist/{api-keys-CIjghYjV.d.ts → api-keys-C8BlF3L2.d.ts} +4 -4
  35. package/dist/arazzo/index.d.ts +255 -0
  36. package/dist/arazzo/index.js +622 -0
  37. package/dist/{assistant-DwdpDH1q.d.ts → assistant-DBlFDZsi.d.ts} +5 -5
  38. package/dist/astro/index.d.ts +7 -7
  39. package/dist/astro/index.js +7 -7
  40. package/dist/asyncapi/index.d.ts +103 -0
  41. package/dist/asyncapi/index.js +569 -0
  42. package/dist/authorizer-ayxUDXXP.js +126 -0
  43. package/dist/authorizer-eiOjo-3l.d.ts +73 -0
  44. package/dist/better-result/index.d.ts +118 -0
  45. package/dist/better-result/index.js +64 -0
  46. package/dist/{bind-l4kAvYSv.js → bind-ButSzrHe.js} +1 -1
  47. package/dist/{bind-Bu_ZNa3W.d.ts → bind-CQ5mPyX1.d.ts} +3 -3
  48. package/dist/{block-events-CrT8r7Fe.js → block-events-DTxU5tfr.js} +18 -3
  49. package/dist/{block-fields-GFkxl4dP.js → block-fields-CroxUuF2.js} +3 -3
  50. package/dist/{block-fields-SJ6fEf3o.d.ts → block-fields-D1pfrcIY.d.ts} +2 -2
  51. package/dist/{block-helpers-CKtbFcRv.d.ts → block-helpers-C0Xj8War.d.ts} +2 -2
  52. package/dist/{block-helpers-DWHxHsEQ.js → block-helpers-Cy3pB96I.js} +41 -9
  53. package/dist/{block-hooks-BmjMyXTa.js → block-hooks-BPNMIlLl.js} +3 -3
  54. package/dist/{block-hooks-plbZ0AbJ.d.ts → block-hooks-DaOVC7SC.d.ts} +3 -3
  55. package/dist/{block-transport-BLr-ZgLc.js → block-transport-bAKh-dGc.js} +28 -2
  56. package/dist/{block-transport-DvaoPuZ9.d.ts → block-transport-inD4fFq-.d.ts} +24 -2
  57. package/dist/blocks/agents/index.d.ts +3 -3
  58. package/dist/blocks/agents/index.js +5 -4
  59. package/dist/blocks/ai-cache/index.d.ts +3 -3
  60. package/dist/blocks/ai-cache/index.js +3 -3
  61. package/dist/blocks/ai-chat/index.d.ts +9 -4
  62. package/dist/blocks/ai-chat/index.js +5 -5
  63. package/dist/blocks/ai-chat/react/index.d.ts +3 -3
  64. package/dist/blocks/ai-chat/react/index.js +5 -5
  65. package/dist/blocks/ai-files/index.d.ts +3 -3
  66. package/dist/blocks/ai-files/index.js +3 -3
  67. package/dist/blocks/ai-providers/index.d.ts +3 -3
  68. package/dist/blocks/ai-providers/index.js +8 -7
  69. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  70. package/dist/blocks/ai-tasks/index.js +7 -6
  71. package/dist/blocks/announcements/index.d.ts +3 -3
  72. package/dist/blocks/announcements/index.js +3 -3
  73. package/dist/blocks/announcements/react/index.d.ts +3 -3
  74. package/dist/blocks/announcements/react/index.js +3 -3
  75. package/dist/blocks/api-keys/index.d.ts +5 -5
  76. package/dist/blocks/api-keys/index.js +8 -8
  77. package/dist/blocks/attachments/index.d.ts +12 -8
  78. package/dist/blocks/attachments/index.js +22 -13
  79. package/dist/blocks/audit/index.d.ts +21 -10
  80. package/dist/blocks/audit/index.js +30 -11
  81. package/dist/blocks/billing/index.d.ts +11 -9
  82. package/dist/blocks/billing/index.js +15 -15
  83. package/dist/blocks/comments/index.d.ts +8 -8
  84. package/dist/blocks/comments/index.js +8 -7
  85. package/dist/blocks/connectors/index.d.ts +3 -3
  86. package/dist/blocks/connectors/index.js +7 -6
  87. package/dist/blocks/data-lifecycle/index.d.ts +12 -8
  88. package/dist/blocks/data-lifecycle/index.js +13 -8
  89. package/dist/blocks/entitlements/index.d.ts +3 -3
  90. package/dist/blocks/entitlements/index.js +1 -1
  91. package/dist/blocks/flags/index.d.ts +4 -4
  92. package/dist/blocks/flags/index.js +4 -3
  93. package/dist/blocks/inbox/index.d.ts +3 -3
  94. package/dist/blocks/inbox/index.js +4 -5
  95. package/dist/blocks/inbox/react/index.d.ts +1 -1
  96. package/dist/blocks/inbox/react/index.js +1 -1
  97. package/dist/blocks/inbox/react/server.d.ts +1 -1
  98. package/dist/blocks/index.d.ts +10 -10
  99. package/dist/blocks/index.js +6 -6
  100. package/dist/blocks/jobs/index.d.ts +48 -32
  101. package/dist/blocks/jobs/index.js +44 -287
  102. package/dist/blocks/knowledge/index.d.ts +3 -3
  103. package/dist/blocks/knowledge/index.js +3 -3
  104. package/dist/blocks/memory/index.d.ts +4 -4
  105. package/dist/blocks/memory/index.js +7 -6
  106. package/dist/blocks/notifications/index.d.ts +11 -9
  107. package/dist/blocks/notifications/index.js +20 -25
  108. package/dist/blocks/notifications/react/index.d.ts +1 -1
  109. package/dist/blocks/notifications/react/index.js +1 -1
  110. package/dist/blocks/onboarding/index.d.ts +3 -3
  111. package/dist/blocks/onboarding/index.js +3 -3
  112. package/dist/blocks/onboarding/react/index.d.ts +2 -2
  113. package/dist/blocks/onboarding/react/index.js +2 -2
  114. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  115. package/dist/blocks/organizations/index.d.ts +9 -9
  116. package/dist/blocks/organizations/index.js +11 -18
  117. package/dist/blocks/outbox/index.d.ts +2 -2
  118. package/dist/blocks/outbox/index.js +16 -25
  119. package/dist/blocks/profiles/index.d.ts +7 -7
  120. package/dist/blocks/profiles/index.js +7 -6
  121. package/dist/blocks/push/index.d.ts +4 -4
  122. package/dist/blocks/push/index.js +3 -3
  123. package/dist/blocks/settings/index.d.ts +4 -4
  124. package/dist/blocks/settings/index.js +7 -6
  125. package/dist/blocks/sso/index.d.ts +5 -5
  126. package/dist/blocks/sso/index.js +6 -5
  127. package/dist/blocks/usage/index.d.ts +3 -3
  128. package/dist/blocks/usage/index.js +5 -4
  129. package/dist/blocks/waitlist/index.d.ts +5 -5
  130. package/dist/blocks/waitlist/index.js +5 -4
  131. package/dist/blocks/webhooks/index.d.ts +22 -13
  132. package/dist/blocks/webhooks/index.js +41 -70
  133. package/dist/blocks/workflow-builder/index.d.ts +4 -4
  134. package/dist/blocks/workflow-builder/index.js +3 -3
  135. package/dist/blocks/workflow-builder/react/index.d.ts +4 -4
  136. package/dist/blocks/workflow-builder/react/index.js +4 -4
  137. package/dist/blocks/workflows/index.d.ts +3 -3
  138. package/dist/blocks/workflows/index.js +3 -3
  139. package/dist/blocks/workflows/react/index.d.ts +3 -3
  140. package/dist/blocks/workflows/react/index.js +3 -3
  141. package/dist/build-hPwk3_X5.js +1296 -0
  142. package/dist/{build-BXIzE6Xv.js → build-meLuYGri.js} +3 -3
  143. package/dist/casing-DdFWEtqr.js +16 -0
  144. package/dist/chat-sdk/index.d.ts +6 -6
  145. package/dist/chat-sdk/index.js +5 -4
  146. package/dist/chat-sdk/react/index.d.ts +1 -1
  147. package/dist/chat-sdk/react/server.d.ts +1 -1
  148. package/dist/{claims-DDBQT6BK.js → claims-0KZVT804.js} +1 -1
  149. package/dist/cli/add-1dc5wM5k.js +69 -0
  150. package/dist/cli/arazzo-1.0-BalU61-_.js +532 -0
  151. package/dist/cli/arazzo-1.1-Bnfasbun.js +705 -0
  152. package/dist/cli/asyncapi-3.0.0-C78dBjR6.js +5593 -0
  153. package/dist/cli/asyncapi-3.1.0-g-7aIfV1.js +5833 -0
  154. package/dist/cli/bin.js +4 -4
  155. package/dist/cli/cache-CIfA-jBV.js +483 -0
  156. package/dist/cli/{codemod-Bl_tQpHn.js → codemod-JVlTQQG2.js} +4 -4
  157. package/dist/cli/{command-CK14fP91.js → command-DV-StG1x.js} +5 -0
  158. package/dist/cli/{config-DU7EJImt.js → config-C2Pz2_4A.js} +7 -4
  159. package/dist/cli/config-DpbF8ML3.js +2 -0
  160. package/dist/cli/{config-NiPxAmUF.js → config-M-WzL9O2.js} +116 -18
  161. package/dist/cli/{db-DOBPt660.js → db-BkcfOlyB.js} +2 -1
  162. package/dist/cli/{diff-SjkO5rNr.js → diff-D1jGdb3Y.js} +1 -1
  163. package/dist/cli/{doctor-DJk0aeBi.js → doctor-VcDtuusV.js} +316 -221
  164. package/dist/cli/emit-BHHfwUoT.js +1136 -0
  165. package/dist/cli/{env-qXgyMV6r.js → env-B--LMhEe.js} +13 -10
  166. package/dist/cli/env-vzBG90Um.js +2 -0
  167. package/dist/cli/{env-CJLbUVPB.js → env-zHJtMIBo.js} +11 -3
  168. package/dist/cli/{errors-4v4DTtda.js → errors-CqTLXe2M.js} +18 -2
  169. package/dist/cli/{fastest-levenshtein-CFN-lNDv.js → fastest-levenshtein-CF7BCi9l.js} +1 -1
  170. package/dist/cli/files-BVupXPIC.js +34 -0
  171. package/dist/cli/gen-DmVj3u4L.js +322 -0
  172. package/dist/cli/{init-BHuEQrQK.js → glue-C1UE8gQN.js} +16 -313
  173. package/dist/cli/index.d.ts +59 -31
  174. package/dist/cli/index.js +8 -6
  175. package/dist/cli/init-CVZ3s5kl.js +258 -0
  176. package/dist/cli/{introspect-DzR2nyQb.js → introspect-BToGNfm-.js} +14 -14
  177. package/dist/cli/{io-DI1mTdSA.js → io-CFzJVJ68.js} +5 -1
  178. package/dist/cli/{keys-BGCnnb-s.js → keys-CJhtIxJ3.js} +4 -4
  179. package/dist/cli/metadata-DSRKCaf-.js +133 -0
  180. package/dist/cli/names-D6LrQnOv.js +6 -0
  181. package/dist/cli/openapi-3.0-t7xwkuRH.js +928 -0
  182. package/dist/cli/openapi-3.1-CVze7tBS.js +870 -0
  183. package/dist/cli/openapi-3.2-CFoMYM01.js +1031 -0
  184. package/dist/cli/{openapi-BlRJ18s3.js → openapi-DWa4Ir1q.js} +8 -14
  185. package/dist/cli/prompts-BdeVmVpg.js +2 -0
  186. package/dist/cli/{prompts-BNcNfAve.js → prompts-DZJB1nTw.js} +6 -6
  187. package/dist/cli/{rolldown-runtime-BPOCksWG.js → rolldown-runtime-CMFfr-1z.js} +3 -1
  188. package/dist/cli/run-DA6_lg3w.js +389 -0
  189. package/dist/cli/run-DuN1MX-7.js +705 -0
  190. package/dist/cli/scaffold-5DenHSxF.js +292 -0
  191. package/dist/cli/scaffold-CwQUMFRb.js +2 -0
  192. package/dist/cli/{seed-DQzqT7LP.js → seed-CzBmrGON.js} +14 -18
  193. package/dist/cli/seed-DOmit9Hq.js +2 -0
  194. package/dist/cli/{skills-QQs4q68J.js → skills-CnO8QFS7.js} +7 -6
  195. package/dist/cli/snapshot-Bstk6ulj.js +287 -0
  196. package/dist/cli/source-args-BYfq6imV.js +31 -0
  197. package/dist/cli/spec-CzosTYm3.js +7438 -0
  198. package/dist/cli/spec-T_0Bcyw7.js +2 -0
  199. package/dist/cli/{sql-B8csQPyn.js → sql-BKOOQAX3.js} +240 -218
  200. package/dist/cli/sql-DJrNDxQm.js +3 -0
  201. package/dist/cli/{style-C0NFdJRL.js → style-CB3vxgh0.js} +3 -3
  202. package/dist/cli/typegen-Demi5-VQ.js +486 -0
  203. package/dist/cli/validate-Ca13ktgz.js +7522 -0
  204. package/dist/cli/{version-59gcepIG.js → version-B4k0aUxS.js} +1 -1
  205. package/dist/client/index.d.ts +4 -3
  206. package/dist/client/index.js +60 -3
  207. package/dist/client/native/index.d.ts +3 -3
  208. package/dist/client/native/index.js +3 -3
  209. package/dist/{client-CI0Z2zWX.js → client-wxeTQFtB.js} +36 -3
  210. package/dist/{clone-BfgmLU90.js → clone-dN9XOL1K.js} +9 -1
  211. package/dist/{cloud-event-BnmD5fb9.js → cloud-event-CTh9Sr5w.js} +16 -2
  212. package/dist/{cloud-event-C1JCc1bH.d.ts → cloud-event-Dune0KI7.d.ts} +16 -2
  213. package/dist/{compiler-DY_wkj4R.d.ts → compiler-V1qvcST1.d.ts} +2 -2
  214. package/dist/{compose-BIBNgAnq.js → compose-BHej1acw.js} +3 -3
  215. package/dist/{composite--yqry7uW.d.ts → composite-CWAJTRBF.d.ts} +6 -6
  216. package/dist/{composite-DXVUibdi.js → composite-zTe0TCqj.js} +4 -4
  217. package/dist/config/index.d.ts +3 -4
  218. package/dist/config/index.js +4 -4
  219. package/dist/config-DlKvtt95.js +540 -0
  220. package/dist/{connector-Dv8kK0MO.d.ts → connector-CySQEFcW.d.ts} +1 -1
  221. package/dist/{connectors-CrpknU0P.d.ts → connectors--PGhmiu0.d.ts} +4 -4
  222. package/dist/{context-BCrWe7ow.d.ts → context-DsV2SueA.d.ts} +11 -2
  223. package/dist/context-nPDvQ-Zl.js +41 -0
  224. package/dist/credentials/index.d.ts +5 -5
  225. package/dist/credentials/index.js +9 -17
  226. package/dist/{cron-DVPUg5k3.js → cron-D25Ukpxy.js} +1 -1
  227. package/dist/cron-route-D2AN9SA1.js +24 -0
  228. package/dist/{csv-DCK-PT1n.js → csv-BZnHA1Py.js} +1 -1
  229. package/dist/{define-B-TVjC25.js → define-CFQcvM20.js} +263 -229
  230. package/dist/{define-CJJkkr1-.d.ts → define-DmcfoNXB.d.ts} +136 -111
  231. package/dist/edge/index.d.ts +66 -13
  232. package/dist/edge/index.js +65 -39
  233. package/dist/elysia/index.d.ts +1 -1
  234. package/dist/elysia/index.js +1 -1
  235. package/dist/{embeddings-C9KGQnXt.d.ts → embeddings-B4vhS-dY.d.ts} +1 -1
  236. package/dist/{ended-XjeGQ5XW.d.ts → ended-CcvcRqEd.d.ts} +7 -1
  237. package/dist/{entitlements-DRl6ZJUm.js → entitlements-BYFf0Cdh.js} +2 -2
  238. package/dist/{entitlements-BKSVGtrG.d.ts → entitlements-Ds8qoYZ-.d.ts} +1 -1
  239. package/dist/env/index.d.ts +1 -1
  240. package/dist/env/index.js +9 -2
  241. package/dist/{errors-B11Duf73.js → errors-2M6CKMP4.js} +5 -0
  242. package/dist/{errors-DLjJHPLK.js → errors-rZ7VIqp6.js} +2 -2
  243. package/dist/{escape-like-ImTK0ps_.d.ts → escape-like-DDWoHzh_.d.ts} +1 -1
  244. package/dist/eve/index.d.ts +5 -5
  245. package/dist/eve/index.js +5 -11
  246. package/dist/{eve-gT2Fpjut.d.ts → eve-CoAIcCkq.d.ts} +2 -2
  247. package/dist/events/index.d.ts +4 -4
  248. package/dist/events/index.js +7 -2
  249. package/dist/{events-DWDhx77e.d.ts → events-D1BOCll8.d.ts} +6 -4
  250. package/dist/{executor-Bq28caBo.js → executor-B-fD7DLt.js} +52 -35
  251. package/dist/executor-B_Hfobee.js +162 -0
  252. package/dist/{executor-BVBFM86G.d.ts → executor-CpxLPCiz.d.ts} +1 -1
  253. package/dist/{executor-CaWigTyR.d.ts → executor-DfEtf0cq.d.ts} +43 -27
  254. package/dist/{executor-DvsBbNBS.d.ts → executor-Drzu3dBK.d.ts} +2 -2
  255. package/dist/{executor-DbvExCFC.d.ts → executor-ngjKL_Pe.d.ts} +2 -2
  256. package/dist/expo/index.d.ts +4 -4
  257. package/dist/expo/index.js +6 -6
  258. package/dist/expo-sqlite/index.d.ts +3 -3
  259. package/dist/expo-sqlite/index.js +2 -2
  260. package/dist/extra-CGQ2_q3S.js +10 -0
  261. package/dist/{field-errors-BFOa7WhB.d.ts → field-errors-DIe9XYWL.d.ts} +17 -7
  262. package/dist/{field-errors-VF1yb8yI.js → field-errors-DZVRWRkf.js} +1 -1
  263. package/dist/format-DTXdu8ya.d.ts +70 -0
  264. package/dist/{framework-BmzgK32X.d.ts → framework-148t1m3C.d.ts} +5 -5
  265. package/dist/{framework-a7aRCIqv.js → framework-3ey3QmrO.js} +2 -2
  266. package/dist/function-contract-BcZenXMO.d.ts +8 -0
  267. package/dist/{gateway-C1ssRHnf.d.ts → gateway-S9vicgeo.d.ts} +4 -4
  268. package/dist/{guards-BnzDvFrz.js → guards-6F2bCtQR.js} +3 -1
  269. package/dist/h3/index.d.ts +1 -1
  270. package/dist/h3/index.js +1 -1
  271. package/dist/h3/v1/index.d.ts +1 -1
  272. package/dist/h3/v1/index.js +1 -1
  273. package/dist/{message-CaKlqdsX.js → history-GH1HJWQV.js} +65 -13
  274. package/dist/hmac-DCud0myt.js +22 -0
  275. package/dist/hono/index.d.ts +19 -14
  276. package/dist/hono/index.js +21 -16
  277. package/dist/{hooks-1BTCJsiw.js → hooks-Bhza9Hnr.js} +68 -100
  278. package/dist/http-sbmBe5d2.js +25 -0
  279. package/dist/{inbox-i7E1ppo6.d.ts → inbox-Cd1KCEBL.d.ts} +3 -3
  280. package/dist/index-B72Rvv_j.d.ts +89 -0
  281. package/dist/{index-DunNRdnT.d.ts → index-BCHR4Ucl.d.ts} +4 -4
  282. package/dist/{index-CLg87OBW.d.ts → index-BUK7jUzR.d.ts} +6 -0
  283. package/dist/{config-D44Y7PAv.d.ts → index-Ba1SI-uO.d.ts} +625 -278
  284. package/dist/{index-D48jVS-N.d.ts → index-BfxOaOYs.d.ts} +4 -5
  285. package/dist/{index-ClmjK_o-.d.ts → index-CicIyqOe.d.ts} +4 -4
  286. package/dist/{index-ACiNPN4Z.d.ts → index-D69h4QqD.d.ts} +1 -1
  287. package/dist/index-DG2SUXDQ.d.ts +58 -0
  288. package/dist/{index-Bepi-Hgg.d.ts → index-DoNVLHOU.d.ts} +3 -3
  289. package/dist/{index-CdZKQF98.d.ts → index-R274XFlg.d.ts} +1 -1
  290. package/dist/{index-CewnYSpv.d.ts → index-_4R4b01v.d.ts} +8 -18
  291. package/dist/index.d.ts +89 -14
  292. package/dist/index.js +12 -11
  293. package/dist/{json-schema-CvER4kgT.js → json-schema-CT4tvrkA.js} +148 -102
  294. package/dist/{kit-Fm-Fv7q5.js → kit-BhHr9T9v.js} +36 -10
  295. package/dist/{kit-CkNzZUqv.d.ts → kit-W99LCPBS.d.ts} +13 -7
  296. package/dist/{knowledge-BXBbT0Tr.d.ts → knowledge-CAReFpRA.d.ts} +5 -5
  297. package/dist/{knowledge-CDmiMLew.js → knowledge-DnHtb64A.js} +4 -3
  298. package/dist/list/index.d.ts +1 -2
  299. package/dist/{list-query-BRt-zDF7.d.ts → list-query-D3JQeEL7.d.ts} +4 -4
  300. package/dist/mcp/index.d.ts +49 -19
  301. package/dist/mcp/index.js +158 -94
  302. package/dist/mcp/sdk/index.d.ts +38 -6
  303. package/dist/mcp/sdk/index.js +88 -6
  304. package/dist/{message-CfDoR0Y6.d.ts → message-B0fNJgq8.d.ts} +1 -2
  305. package/dist/{messages-B9-5887d.js → messages-CJoHHCWT.js} +4 -205
  306. package/dist/{mfa-Daak8ukG.d.ts → mfa-SZc9YYyb.d.ts} +1 -1
  307. package/dist/model-OgBxvk3N.d.ts +300 -0
  308. package/dist/model-messages-Cxw_Up4f.js +206 -0
  309. package/dist/model-messages-D4GZllOD.d.ts +34 -0
  310. package/dist/modules-DksjZyMW.js +77 -0
  311. package/dist/nestjs/index.d.ts +2 -2
  312. package/dist/nestjs/index.js +1 -1
  313. package/dist/next/index.d.ts +105 -55
  314. package/dist/next/index.js +204 -170
  315. package/dist/node/index.d.ts +2 -2
  316. package/dist/node/index.js +1 -1
  317. package/dist/{onboarding-BZGHYJks.d.ts → onboarding-LZvlK1P4.d.ts} +3 -3
  318. package/dist/openapi/index.d.ts +4 -2
  319. package/dist/openapi/index.js +21 -343
  320. package/dist/optional-peer-D1pi-skw.js +24 -0
  321. package/dist/orpc/index.d.ts +8 -8
  322. package/dist/orpc/index.js +21 -20
  323. package/dist/otel/index.d.ts +3 -3
  324. package/dist/otel/index.js +7 -7
  325. package/dist/{outbox-Cq7pPYvl.d.ts → outbox-DZfAvfzC.d.ts} +6 -6
  326. package/dist/overlay/index.d.ts +233 -0
  327. package/dist/overlay/index.js +554 -0
  328. package/dist/{plugin-FGY8UhYm.d.ts → plugin-CPK2HsbY.d.ts} +42 -3
  329. package/dist/plugins/actor/index.d.ts +1 -1
  330. package/dist/plugins/actor/index.js +1 -1
  331. package/dist/plugins/rules/index.d.ts +2 -2
  332. package/dist/plugins/rules/index.js +1 -1
  333. package/dist/plugins/soft-delete/index.d.ts +3 -3
  334. package/dist/plugins/soft-delete/index.js +9 -2
  335. package/dist/plugins/tenant/index.d.ts +7 -2
  336. package/dist/plugins/tenant/index.js +16 -2
  337. package/dist/plugins/timestamps/index.d.ts +1 -1
  338. package/dist/plugins/timestamps/index.js +8 -1
  339. package/dist/plugins/validation/index.d.ts +2 -2
  340. package/dist/plugins/validation/index.js +4 -4
  341. package/dist/{pool-CAu2nLrL.d.ts → pool-gkhbGp2E.d.ts} +2 -2
  342. package/dist/postgres/index.d.ts +4 -4
  343. package/dist/postgres/index.js +2 -1
  344. package/dist/{postgrest-BLVdEnfe.d.ts → postgrest-BUqLag2Q.d.ts} +1 -1
  345. package/dist/powersync/index.d.ts +5 -5
  346. package/dist/powersync/index.js +4 -4
  347. package/dist/powersync/react/index.d.ts +3 -3
  348. package/dist/powersync/react/index.js +1 -1
  349. package/dist/{problem-BreOl8b8.js → problem-CJvFeGu7.js} +13 -2
  350. package/dist/{problem-DD8LZFjc.d.ts → problem-TvGdxO1t.d.ts} +7 -1
  351. package/dist/{provider-Di3sRutW.js → provider-DxRTex4x.js} +1 -1
  352. package/dist/{provider-D-UEMvSD.d.ts → provider-ib9wzUDz.d.ts} +2 -2
  353. package/dist/query/index.d.ts +2 -2
  354. package/dist/query/index.js +1 -1
  355. package/dist/{query-BQ-NaZon.js → query-Ctz-qKRx.js} +1 -1
  356. package/dist/rate-limit-Bw7HgmFj.js +260 -0
  357. package/dist/react/index.d.ts +9 -9
  358. package/dist/react/index.js +4 -4
  359. package/dist/react/native/index.d.ts +1 -1
  360. package/dist/react/native/index.js +2 -2
  361. package/dist/react/server.d.ts +10 -10
  362. package/dist/react/server.js +3 -3
  363. package/dist/react/session.d.ts +2 -2
  364. package/dist/{react-F80mF4-t.js → react-Bmpo59D7.js} +4 -4
  365. package/dist/react-router/index.d.ts +6 -6
  366. package/dist/react-router/index.js +9 -11
  367. package/dist/{read-set-DuKWC9Mj.js → read-set-DAeWhqPf.js} +2 -2
  368. package/dist/realtime/index.d.ts +3 -3
  369. package/dist/realtime/index.js +30 -36
  370. package/dist/{refusal-DhSU2Vvr.d.ts → refusal-CFI8-5nf.d.ts} +4 -1
  371. package/dist/{refusal-CeJWxmkH.js → refusal-K78A1Vmq.js} +5 -5
  372. package/dist/{resolve-tJZY3FEa.js → resolve-Bvgf3ut_.js} +131 -42
  373. package/dist/{resolve-ChTYeTEl.d.ts → resolve-MxXVWyhd.d.ts} +12 -8
  374. package/dist/resource--vTrBe6I.d.ts +103 -0
  375. package/dist/resource-BqNqlYg9.js +91 -0
  376. package/dist/resource-DA811u_4.js +463 -0
  377. package/dist/resource-execute-rbKvuCsY.d.ts +12 -0
  378. package/dist/resource-schemas-BJ518zFH.js +79 -0
  379. package/dist/resource-types-CqB6GWGT.d.ts +141 -0
  380. package/dist/resources-BVYPnuLo.js +56 -0
  381. package/dist/resources-DZSk8tXJ.d.ts +7 -0
  382. package/dist/{respond-DprrgyXX.d.ts → respond-Cw-zanCm.d.ts} +3 -3
  383. package/dist/{respond-BUgsXNgk.js → respond-volM3ByS.js} +4 -4
  384. package/dist/{result-D7y2fT87.d.ts → result-BchM1XZn.d.ts} +7 -1
  385. package/dist/{result-DzUbqgdW.js → result-DEqHCMKP.js} +1 -1
  386. package/dist/server/index.d.ts +81 -19
  387. package/dist/server/index.js +16 -14
  388. package/dist/{server-Bh0EVSwU.d.ts → server-types-CrAmZ8jv.d.ts} +92 -36
  389. package/dist/{shared-CxWmcyqB.js → shared-DHjhfRdV.js} +2 -15
  390. package/dist/shared-DTneRoxi.js +14 -0
  391. package/dist/{sign-in-Cb1mwv6X.js → sign-in-D_yoP0PF.js} +1 -1
  392. package/dist/signatures-BRS_p3WD.d.ts +34 -0
  393. package/dist/signatures-DsWv_bYR.js +103 -0
  394. package/dist/{signers-4y62_VIi.d.ts → signers-cpdmZYrv.d.ts} +1 -1
  395. package/dist/solid/index.d.ts +9 -18
  396. package/dist/solid/index.js +2 -2
  397. package/dist/solid-start/index.d.ts +6 -6
  398. package/dist/solid-start/index.js +7 -7
  399. package/dist/spec/index.d.ts +134 -0
  400. package/dist/spec/index.js +353 -0
  401. package/dist/{spec-pins-C89s6DyW.d.ts → spec-pins-CwzDY25w.d.ts} +18 -1
  402. package/dist/{spec-pins--j6mTok4.js → spec-pins-DsLfUH7l.js} +14 -1
  403. package/dist/sql/index.d.ts +145 -119
  404. package/dist/sql/index.js +19921 -19798
  405. package/dist/{executor-De1Of3m3.js → sql-CwuqaQ4Y.js} +34 -169
  406. package/dist/ssr/index.d.ts +4 -4
  407. package/dist/ssr/index.js +3 -2
  408. package/dist/{standard-BK0cqJ7y.js → standard-DkzZUneg.js} +2 -2
  409. package/dist/{standard-CYsm7xpT.d.ts → standard-lmkbOtPB.d.ts} +1 -1
  410. package/dist/{stats-D_AD9GGu.js → stats-DhU78Ctf.js} +8 -4
  411. package/dist/storage/index.d.ts +4 -6
  412. package/dist/storage/index.js +16 -17
  413. package/dist/{bucket-Cl46E3jS.d.ts → storage-api-CB7Zl1Ci.d.ts} +243 -8
  414. package/dist/{store-CGjgWu5n.d.ts → store-DsIYEBnv.d.ts} +1 -1
  415. package/dist/streams/index.d.ts +4 -4
  416. package/dist/streams/index.js +5 -4
  417. package/dist/streams/redis/index.d.ts +1 -1
  418. package/dist/streams/redis/index.js +5 -11
  419. package/dist/{stripe-BMj5LtsT.js → stripe-v-Y2lmop.js} +2 -8
  420. package/dist/supabase-mcp-C6tMoEjn.d.ts +43 -0
  421. package/dist/supabase-mcp-Cpn5A4i-.js +28 -0
  422. package/dist/{support-ig_K4PvS.js → support-D1pFFouF.js} +71 -35
  423. package/dist/{support-view-CVOJJLpc.d.ts → support-view-scqMgtOo.d.ts} +1 -1
  424. package/dist/svelte/index.d.ts +8 -17
  425. package/dist/svelte/index.js +2 -2
  426. package/dist/sveltekit/index.d.ts +7 -7
  427. package/dist/sveltekit/index.js +10 -12
  428. package/dist/table-schema-htM_SbCW.js +286 -0
  429. package/dist/{tags-Cx-LnIQP.d.ts → tags-BO9LjtWG.d.ts} +1 -1
  430. package/dist/tanstack-db/index.d.ts +2 -2
  431. package/dist/tanstack-db/supabase/index.d.ts +52 -0
  432. package/dist/tanstack-db/supabase/index.js +97 -0
  433. package/dist/tanstack-start/index.d.ts +6 -6
  434. package/dist/tanstack-start/index.js +8 -12
  435. package/dist/{tee-CoEppCER.js → tee-Cb98Vn3b.js} +1 -1
  436. package/dist/{template--jDkl3UP.js → template-lPVh-EwW.js} +11 -2
  437. package/dist/{temporal-required-BVvW7SYJ.js → temporal-required-BtynQtM-.js} +1 -1
  438. package/dist/{tenant-BxNFk9bx.d.ts → tenant-CM368LXb.d.ts} +2 -2
  439. package/dist/testing/index.d.ts +249 -118
  440. package/dist/testing/index.js +1418 -870
  441. package/dist/ttl-cache-XzZ-Q2eX.js +29 -0
  442. package/dist/types-BRTSpOIh.js +5 -0
  443. package/dist/{types-C05bxW-W.d.ts → types-Bb_4-vdW.d.ts} +4 -4
  444. package/dist/{types-AYOvcyep.d.ts → types-CD6yCDx3.d.ts} +5 -5
  445. package/dist/{types-6rocye-y.d.ts → types-CbOUc5IH.d.ts} +4 -4
  446. package/dist/{types-6BdhkmZe.d.ts → types-CoE5Zwy4.d.ts} +8 -0
  447. package/dist/{types-DGs5L0VN.d.ts → types-DSJ3-m9X.d.ts} +4 -4
  448. package/dist/{queue-CLJurhdy.d.ts → types-D__3EN0q.d.ts} +17 -19
  449. package/dist/{usage-CrvrL2vw.d.ts → usage-D0NNUFfr.d.ts} +3 -3
  450. package/dist/{vault-wlbBhqm7.d.ts → vault-BpmApxxW.d.ts} +3 -3
  451. package/dist/vercel-connect/index.d.ts +1 -1
  452. package/dist/vercel-connect/index.js +5 -11
  453. package/dist/{verify-DPuWngD4.d.ts → verify-C91Wyp40.d.ts} +5 -35
  454. package/dist/verify-CJbYfADA.js +124 -0
  455. package/dist/{version-C6OfRAIn.js → version-Cq8gfDbd.js} +1 -1
  456. package/dist/{view-BeFcRV6G.js → view-D5ryq3gz.js} +1 -1
  457. package/dist/{view-CF7ihnkg.d.ts → view-TpXEUcVN.d.ts} +3 -3
  458. package/dist/vue/index.d.ts +9 -18
  459. package/dist/vue/index.js +2 -2
  460. package/dist/{watch-Xuxrvxq-.js → watch-BcvtAHOd.js} +2 -2
  461. package/dist/{watch-DI34G86j.d.ts → watch-COzRWvVN.d.ts} +23 -9
  462. package/dist/{wire-DtZQ4sdE.js → wire-Df3EWkG8.js} +2 -2
  463. package/dist/{workflow-builder-DJ1oHn8g.js → workflow-builder-CHqHpAVt.js} +6 -5
  464. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  465. package/dist/workflow-sdk/index.d.ts +1 -1
  466. package/dist/workflow-sdk/world/index.d.ts +23 -17
  467. package/dist/workflow-sdk/world/index.js +59 -76
  468. package/dist/{workflow-sdk-B3yLD6Br.d.ts → workflow-sdk-DTZyrvNo.d.ts} +3 -3
  469. package/dist/{workflow-sdk-world-D-prir6O.js → workflow-sdk-world-CMV1ahFW.js} +528 -526
  470. package/dist/{workflows-B0j9WKPu.d.ts → workflows-CcpCBfIe.d.ts} +3 -3
  471. package/dist/{workflows-wu1WWBn7.js → workflows-IvxzG2cl.js} +5 -4
  472. package/package.json +54 -3
  473. package/schemas/config-v1.json +243 -0
  474. package/schemas/doctor-report-v1.json +4 -1
  475. package/schemas/spec-manifest-v1.json +95 -0
  476. package/skills/better-supabase/SKILL.md +8 -4
  477. package/skills/better-supabase/references/troubleshooting.md +20 -20
  478. package/skills/better-supabase-api/references/expo.md +6 -3
  479. package/skills/better-supabase-api/references/powersync.md +2 -1
  480. package/dist/cli/config-B9HkL8nF.js +0 -2
  481. package/dist/cli/gen-CCMc39Dx.js +0 -3100
  482. package/dist/cli/gen-DRmzPI75.js +0 -2
  483. package/dist/cli/prompts-BTYQGunc.js +0 -2
  484. package/dist/cli/run-BqDPh9UH.js +0 -361
  485. package/dist/config-Dn7F5k9A.js +0 -202
  486. package/dist/history-BZih6SFP.js +0 -64
  487. package/dist/index-BkWT_uBO.d.ts +0 -51
  488. package/dist/index-Bxih3l0u.d.ts +0 -81
  489. package/dist/index-CaxrMD1A.d.ts +0 -1
  490. package/dist/index-DQh4VCc9.d.ts +0 -98
  491. package/dist/keys-4MnkWTTh.js +0 -35
  492. package/dist/messages-DYP0sUTe.d.ts +0 -59
  493. package/dist/modules-dxrVK3ID.js +0 -228
  494. package/dist/path-Cv__-OTj.d.ts +0 -17
  495. package/dist/resource-BsvzCMlX.js +0 -212
  496. package/dist/resource-IPS5xi9q.d.ts +0 -74
  497. package/dist/template-CwO38Do8.d.ts +0 -6
  498. package/dist/verify-DL41hbvY.js +0 -232
  499. package/dist/cli/{read-sets-CETOSFx4.js → read-sets-DjJrm8Wj.js} +1 -1
@@ -1,9 +1,8 @@
1
- import { n as isPlainObject } from "./clone-BfgmLU90.js";
2
- import { c as mapDbError, n as dbError, t as MAX_AFFECTED_MARKER, u as withMaxAffected } from "./errors-B11Duf73.js";
3
- import { n as invalidRequest } from "./build-BXIzE6Xv.js";
1
+ import { t as MAX_AFFECTED_MARKER } from "./errors-2M6CKMP4.js";
2
+ import { n as invalidRequest } from "./build-meLuYGri.js";
4
3
  import { t as lookupOf } from "./lookup-BaP5bI27.js";
5
- import { a as ok, r as err, s as toDbError } from "./result-DzUbqgdW.js";
6
4
  import { n as simplifyOrFalse } from "./simplify-DDO0j0LI.js";
5
+ import { n as whereClause, t as integer } from "./shared-DTneRoxi.js";
7
6
  //#region src/compile/sql.ts
8
7
  const MAX_PARAMS = 65535;
9
8
  const MAX_PAIRS = 50;
@@ -21,6 +20,21 @@ function dbColumn(table, app) {
21
20
  function columnType(table, db) {
22
21
  return lookupOf(table).byDb.get(db)?.[1].type;
23
22
  }
23
+ function jsonText(value) {
24
+ return value === null || value === void 0 ? value : JSON.stringify(value);
25
+ }
26
+ function columnValue(table, db, value) {
27
+ const meta = lookupOf(table).byDb.get(db)?.[1];
28
+ if (!meta?.json) return value;
29
+ if (meta.array && Array.isArray(value)) return value.map(jsonText);
30
+ return jsonText(value);
31
+ }
32
+ function comparedValue(table, condition) {
33
+ const { value } = condition;
34
+ if (condition.path || typeof value !== "object" || value === null) return value;
35
+ const meta = lookupOf(table).byDb.get(condition.column)?.[1];
36
+ return meta?.json && !meta.array ? JSON.stringify(value) : value;
37
+ }
24
38
  /**
25
39
  * `a > x or (a = x and b > y) or ...` as `(a, b) > (x, y)`, which an index
26
40
  * on `(a, b)` serves. Both forms give the same result under SQL's
@@ -93,12 +107,12 @@ var SqlCompiler = class {
93
107
  const column = condition.path ? `(${this.column(alias, condition.column)} #>> ${this.param(condition.path, "text[]")})` : this.column(alias, condition.column);
94
108
  const { value } = condition;
95
109
  switch (condition.op) {
96
- case "eq": return `${column} = ${this.param(value)}`;
97
- case "neq": return `${column} <> ${this.param(value)}`;
98
- case "gt": return `${column} > ${this.param(value)}`;
99
- case "gte": return `${column} >= ${this.param(value)}`;
100
- case "lt": return `${column} < ${this.param(value)}`;
101
- case "lte": return `${column} <= ${this.param(value)}`;
110
+ case "eq": return `${column} = ${this.param(comparedValue(table, condition))}`;
111
+ case "neq": return `${column} <> ${this.param(comparedValue(table, condition))}`;
112
+ case "gt": return `${column} > ${this.param(comparedValue(table, condition))}`;
113
+ case "gte": return `${column} >= ${this.param(comparedValue(table, condition))}`;
114
+ case "lt": return `${column} < ${this.param(comparedValue(table, condition))}`;
115
+ case "lte": return `${column} <= ${this.param(comparedValue(table, condition))}`;
102
116
  case "like": return `${column} like ${this.param(value)}`;
103
117
  case "ilike": return `${column} ilike ${this.param(value)}`;
104
118
  case "match": return `${column} ~ ${this.param(value)}`;
@@ -195,14 +209,6 @@ var SqlCompiler = class {
195
209
  return `(select coalesce(json_agg(s.r order by s.o), '[]'::json) from (${`select ${row} as r, ${`row_number() over (${order ? `order by ${order}` : ""})`} as o ${from}${order ? ` order by ${order}` : ""}${limit}`}) as s)`;
196
210
  }
197
211
  };
198
- function integer(value) {
199
- if (!Number.isInteger(value) || value < 0) invalidRequest(`Expected a non-negative integer, got ${value}`);
200
- return value;
201
- }
202
- function whereClause(parts) {
203
- const present = parts.filter((part) => part !== void 0);
204
- return present.length > 0 ? ` where ${present.join(" and ")}` : "";
205
- }
206
212
  function insertColumns(op) {
207
213
  const columns = /* @__PURE__ */ new Set();
208
214
  for (const row of op.rows) for (const key of Object.keys(row)) columns.add(key);
@@ -225,7 +231,9 @@ function compileSql(op) {
225
231
  count: void 0,
226
232
  never: true
227
233
  };
228
- const filter = whereClause([simple.condition ? compiler.condition(simple.condition, op.table, alias) : void 0, ...compiler.requiredIncludes(op.selection, op.table, alias)]);
234
+ const where = simple.condition ? compiler.condition(simple.condition, op.table, alias) : void 0;
235
+ const required = compiler.requiredIncludes(op.selection, op.table, alias);
236
+ const filter = whereClause([where, ...required]);
229
237
  const countText = op.count ? `select count(*)::int as count from ${from}${filter}` : void 0;
230
238
  if (op.head) return {
231
239
  rows: void 0,
@@ -279,7 +287,9 @@ function compileSql(op) {
279
287
  };
280
288
  const entries = Object.entries(op.set);
281
289
  if (entries.length === 0) invalidRequest(`Update on "${op.table.key}" sets no columns`);
282
- return mutation(`update ${from} set ${entries.map(([column, value]) => `${quoteIdent(column)} = ${compiler.param(value)}`).join(", ")}${whereClause([simple.condition ? compiler.condition(simple.condition, op.table, alias) : void 0])}${returningRows(compiler, op, alias)}`, op.returning !== void 0, compiler.params, maxAffectedOf(op));
290
+ const set = entries.map(([column, value]) => `${quoteIdent(column)} = ${compiler.param(columnValue(op.table, column, value))}`).join(", ");
291
+ const where = simple.condition ? compiler.condition(simple.condition, op.table, alias) : void 0;
292
+ return mutation(`update ${from} set ${set}${whereClause([where])}${returningRows(compiler, op, alias)}`, op.returning !== void 0, compiler.params, maxAffectedOf(op));
283
293
  }
284
294
  case "delete": {
285
295
  const simple = simplifyOrFalse(op.where);
@@ -288,7 +298,8 @@ function compileSql(op) {
288
298
  count: void 0,
289
299
  never: true
290
300
  };
291
- return mutation(`delete from ${from}${whereClause([simple.condition ? compiler.condition(simple.condition, op.table, alias) : void 0])}${returningRows(compiler, op, alias)}`, op.returning !== void 0, compiler.params, maxAffectedOf(op));
301
+ const where = simple.condition ? compiler.condition(simple.condition, op.table, alias) : void 0;
302
+ return mutation(`delete from ${from}${whereClause([where])}${returningRows(compiler, op, alias)}`, op.returning !== void 0, compiler.params, maxAffectedOf(op));
292
303
  }
293
304
  default: return op;
294
305
  }
@@ -304,7 +315,7 @@ function insertPlan(compiler, from, alias, op, columns) {
304
315
  if (op.rows.length > 1) invalidRequest("Cannot insert several rows without columns");
305
316
  body = "default values";
306
317
  } else {
307
- const values = op.rows.map((row) => `(${columns.map((column) => column in row ? compiler.param(row[column]) : op.defaultToNull ? "null" : "default").join(", ")})`);
318
+ const values = op.rows.map((row) => `(${columns.map((column) => column in row ? compiler.param(columnValue(op.table, column, row[column])) : op.defaultToNull ? "null" : "default").join(", ")})`);
308
319
  body = `(${columns.map(quoteIdent).join(", ")}) values ${values.join(", ")}`;
309
320
  }
310
321
  let conflict = "";
@@ -374,150 +385,4 @@ function mutation(statement, returning, params, maxAffected) {
374
385
  };
375
386
  }
376
387
  //#endregion
377
- //#region src/postgres/executor.ts
378
- function isPgError(value) {
379
- return typeof value === "object" && value !== null && typeof value.code === "string";
380
- }
381
- /** node-postgres error fields to the shape `mapDbError` reads. */
382
- function fromPgError(error) {
383
- if (!isPgError(error)) return void 0;
384
- const raw = {};
385
- if (error.code !== void 0) raw.code = error.code;
386
- if (error.message !== void 0) raw.message = error.message;
387
- if (error.detail !== void 0) raw.details = error.detail;
388
- if (error.hint !== void 0) raw.hint = error.hint;
389
- if (error.constraint !== void 0) raw.constraint = error.constraint;
390
- if (error.column !== void 0) raw.column = error.column;
391
- if (error.table !== void 0) raw.table = error.table;
392
- return raw;
393
- }
394
- async function run(client, plan, op) {
395
- const rows = plan.rows ? (await client.queryRaw(plan.rows.text, [...plan.rows.params])).map((entry) => entry.row) : [];
396
- let count = null;
397
- if (plan.count) {
398
- const [first] = await client.queryRaw(plan.count.text, [...plan.count.params]);
399
- count = first?.count ?? 0;
400
- } else if (op.kind !== "select") count = rows.length;
401
- for (const next of plan.chunks ?? []) {
402
- const more = await run(client, next, op);
403
- rows.push(...more.rows);
404
- count = (count ?? 0) + (more.count ?? 0);
405
- }
406
- return {
407
- rows,
408
- count
409
- };
410
- }
411
- /**
412
- * Executes repository operations as SQL on a direct Postgres connection.
413
- * Rows have the same shape as over PostgREST. RLS applies when the client
414
- * runs as the caller (`ctx.postgres`, `createPostgres().asUser()`).
415
- *
416
- * `maxAffected` fails the statement itself, so its writes roll back.
417
- * A call's `timeout` is checked before the statement starts; set
418
- * `statement_timeout` on the connection to bound a running statement.
419
- * `retry` does nothing here.
420
- */
421
- function postgresExecutor(client) {
422
- return {
423
- name: "postgres",
424
- functionSources: true,
425
- execute: (op, context) => executeOn(client, op, context),
426
- rpc: (name, args, context) => callFunction(client, name, args, context),
427
- async batch(ops, context) {
428
- if (!client.transaction) return Promise.all(ops.map((op) => executeOn(client, op, context)));
429
- try {
430
- return await client.transaction(async (scoped) => {
431
- const results = [];
432
- for (const op of ops) {
433
- const result = await executeOn(scoped, op, context);
434
- if (!result.ok) throw new BatchFailed();
435
- results.push(result);
436
- }
437
- return results;
438
- });
439
- } catch (cause) {
440
- if (!(cause instanceof BatchFailed)) throw cause;
441
- return Promise.all(ops.map((op) => executeOn(client, op, context)));
442
- }
443
- }
444
- };
445
- }
446
- var BatchFailed = class extends Error {};
447
- async function executeOn(client, op, context) {
448
- let plan;
449
- try {
450
- plan = compileSql(op);
451
- } catch (cause) {
452
- return err(toDbError(cause));
453
- }
454
- if (plan.never) return ok({
455
- rows: [],
456
- count: 0
457
- });
458
- if (context.signal?.aborted) return err(dbError("aborted", "The request was aborted"));
459
- let result;
460
- try {
461
- result = plan.chunks && client.transaction ? await client.transaction((scoped) => run(scoped, plan, op)) : await run(client, plan, op);
462
- } catch (cause) {
463
- const raw = fromPgError(cause);
464
- const error = raw ? mapDbError(raw, context.errorMappers) : toDbError(cause);
465
- return err(withMaxAffected(error, op.kind === "update" || op.kind === "delete" ? op.maxAffected : void 0));
466
- }
467
- if (op.kind === "select" && op.single) {
468
- if (result.rows.length > 1) return err(dbError("multiple_rows", `Expected one ${op.table.key} row`));
469
- if (result.rows.length === 0 && op.single === "one") return err(dbError("not_found", `No ${op.table.key} row matched`));
470
- }
471
- return ok(result);
472
- }
473
- const JSON_TYPES = /* @__PURE__ */ new Set(["json", "jsonb"]);
474
- async function signatureOf(client, name, context) {
475
- const fn = context.function;
476
- if (fn) return {
477
- returnsSet: fn.returnsSet,
478
- returnsVoid: fn.returns === "void",
479
- json: new Set(fn.args.filter((arg) => JSON_TYPES.has(arg.type)).map((arg) => arg.name))
480
- };
481
- const [found] = await client.queryRaw("select p.proretset as returns_set, p.prorettype = 'pg_catalog.void'::pg_catalog.regtype as returns_void from pg_catalog.pg_proc p join pg_catalog.pg_namespace n on n.oid = p.pronamespace where n.nspname = $1 and p.proname = $2 limit 1", [context.schema, name]);
482
- return found ? {
483
- returnsSet: found.returns_set,
484
- returnsVoid: found.returns_void,
485
- json: /* @__PURE__ */ new Set()
486
- } : void 0;
487
- }
488
- function argValue(value, json) {
489
- if (value === null) return null;
490
- if (json) return JSON.stringify(value);
491
- if (typeof value === "bigint") return value.toString();
492
- if (Array.isArray(value)) return value.map((item) => argValue(item, false));
493
- if (isPlainObject(value)) return JSON.stringify(value);
494
- if (typeof value === "object" && !(value instanceof Date) && !(value instanceof Uint8Array)) return String(value);
495
- return value;
496
- }
497
- async function callFunction(client, name, args, context) {
498
- if (context.signal?.aborted) return err(dbError("aborted", "The request was aborted"));
499
- try {
500
- const signature = await signatureOf(client, name, context);
501
- if (!signature) return err(mapDbError({
502
- code: "PGRST202",
503
- message: `Could not find the function ${context.schema}.${name} in the database`
504
- }, context.errorMappers));
505
- const params = [];
506
- const named = Object.entries(args).filter(([, value]) => value !== void 0).map(([key, value]) => {
507
- params.push(argValue(value, signature.json.has(key)));
508
- return `${quoteIdent(key)} => $${String(params.length)}`;
509
- });
510
- const call = `${quoteIdent(context.schema)}.${quoteIdent(name)}(${named.join(", ")})`;
511
- if (signature.returnsVoid) {
512
- await client.queryRaw(`select ${call}`, params);
513
- return ok(null);
514
- }
515
- const values = (await client.queryRaw(`select to_json(bs_call) as value from ${call} as bs_call`, params)).map((row) => row.value);
516
- return ok(signature.returnsSet ? values : values[0] ?? null);
517
- } catch (cause) {
518
- const raw = fromPgError(cause);
519
- return err(raw ? mapDbError(raw, context.errorMappers) : toDbError(cause));
520
- }
521
- }
522
- //#endregion
523
- export { quoteIdent as i, postgresExecutor as n, compileSql as r, fromPgError as t };
388
+ export { quoteIdent as n, compileSql as t };
@@ -1,6 +1,6 @@
1
1
  import { _ as writeSession, a as CookieWrite, c as StoredSession, d as clearSessionAtScopes, f as parseCookies, g as sessionEncoding, h as sessionCookieName, i as CookieScope, l as WriteSessionOptions, m as serializeCookie, n as CookieOptions, o as DEFAULT_SESSION_ENCODING, p as readSession, r as CookieRecord, s as SessionEncoding, t as AUTH_CACHE_HEADERS, u as applyCookieWrites } from "../session-ChiXDZdZ.js";
2
- import { a as ResolveAuthOptions, l as resolveAuth, n as AuthResolver, r as AuthState, s as authContext, t as AuthResolution } from "../resolve-ChTYeTEl.js";
3
- import { n as toSession, t as AuthSession } from "../view-CF7ihnkg.js";
4
- import { r as MembershipClaim } from "../entitlements-BKSVGtrG.js";
5
- import { a as sessionStatus, c as refreshSession, i as clearSessionCookies, n as SessionStatus, o as RefreshOptions, r as SessionStatusOptions, s as RefreshOutcome, t as ClearSessionCookiesOptions } from "../ended-XjeGQ5XW.js";
2
+ import { a as ResolveAuthOptions, c as resolveAuth, n as AuthResolver, r as AuthState, t as AuthResolution } from "../resolve-MxXVWyhd.js";
3
+ import { n as toSession, t as AuthSession } from "../view-TpXEUcVN.js";
4
+ import { r as MembershipClaim } from "../entitlements-Ds8qoYZ-.js";
5
+ import { a as sessionStatus, c as RefreshOutcome, i as clearSessionCookies, l as refreshSession, n as SessionStatus, o as authContext, r as SessionStatusOptions, s as RefreshOptions, t as ClearSessionCookiesOptions } from "../ended-CcvcRqEd.js";
6
6
  export { AUTH_CACHE_HEADERS, type AuthResolution, type AuthResolver, type AuthSession, type AuthState, type ClearSessionCookiesOptions, type CookieOptions, type CookieRecord, type CookieScope, type CookieWrite, DEFAULT_SESSION_ENCODING, type MembershipClaim, type RefreshOptions, type RefreshOutcome, type ResolveAuthOptions, type SessionEncoding, type SessionStatus, type SessionStatusOptions, type StoredSession, type WriteSessionOptions, applyCookieWrites, authContext, clearSessionAtScopes, clearSessionCookies, parseCookies, readSession, refreshSession, resolveAuth, serializeCookie, sessionCookieName, sessionEncoding, sessionStatus, toSession, writeSession };
package/dist/ssr/index.js CHANGED
@@ -1,3 +1,4 @@
1
- import { _ as writeSession, a as refreshSession, c as AUTH_CACHE_HEADERS, d as clearSessionAtScopes, f as parseCookies, g as sessionEncoding, h as sessionCookieName, i as resolveAuth, l as DEFAULT_SESSION_ENCODING, m as serializeCookie, o as clearSessionCookies, p as readSession, s as sessionStatus, t as authContext, u as applyCookieWrites } from "../resolve-tJZY3FEa.js";
2
- import { n as toSession } from "../view-BeFcRV6G.js";
1
+ import { t as authContext } from "../context-nPDvQ-Zl.js";
2
+ import { a as clearSessionCookies, c as DEFAULT_SESSION_ENCODING, d as parseCookies, f as readSession, g as writeSession, h as sessionEncoding, i as refreshSession, l as applyCookieWrites, m as sessionCookieName, o as sessionStatus, p as serializeCookie, r as resolveAuth, s as AUTH_CACHE_HEADERS, u as clearSessionAtScopes } from "../resolve-Bvgf3ut_.js";
3
+ import { n as toSession } from "../view-D5ryq3gz.js";
3
4
  export { AUTH_CACHE_HEADERS, DEFAULT_SESSION_ENCODING, applyCookieWrites, authContext, clearSessionAtScopes, clearSessionCookies, parseCookies, readSession, refreshSession, resolveAuth, serializeCookie, sessionCookieName, sessionEncoding, sessionStatus, toSession, writeSession };
@@ -1,5 +1,5 @@
1
- import { n as dbError } from "./errors-B11Duf73.js";
2
- import { a as ok, r as err } from "./result-DzUbqgdW.js";
1
+ import { n as dbError } from "./errors-2M6CKMP4.js";
2
+ import { a as ok, r as err } from "./result-DEqHCMKP.js";
3
3
  //#region src/core/standard.ts
4
4
  /** Validates with any Standard Schema (zod, valibot, arktype, ...). */
5
5
  async function validate(schema, value, label = "value") {
@@ -1,4 +1,4 @@
1
- import { f as Result } from "./result-D7y2fT87.js";
1
+ import { f as Result } from "./result-BchM1XZn.js";
2
2
  import { StandardSchemaV1 as StandardSchemaV1$1 } from "@standard-schema/spec";
3
3
  //#region src/core/standard.d.ts
4
4
  /** Validates with any Standard Schema (zod, valibot, arktype, ...). */
@@ -1,9 +1,9 @@
1
- import { c as mapDbError, n as dbError, u as withMaxAffected } from "./errors-B11Duf73.js";
2
- import { n as invalidRequest } from "./build-BXIzE6Xv.js";
1
+ import { c as mapDbError, n as dbError, u as withMaxAffected } from "./errors-2M6CKMP4.js";
2
+ import { n as invalidRequest } from "./build-meLuYGri.js";
3
3
  import { t as lookupOf } from "./lookup-BaP5bI27.js";
4
4
  import { d as temporalText } from "./temporal-BJGitm-h.js";
5
- import { t as dateText } from "./wire-DtZQ4sdE.js";
6
- import { a as ok, r as err, s as toDbError } from "./result-DzUbqgdW.js";
5
+ import { t as dateText } from "./wire-Df3EWkG8.js";
6
+ import { a as ok, r as err, s as toDbError } from "./result-DEqHCMKP.js";
7
7
  import { n as simplifyOrFalse } from "./simplify-DDO0j0LI.js";
8
8
  //#region src/compile/postgrest.ts
9
9
  /** `false` only for a version string whose major is known to be below 13. */
@@ -1007,6 +1007,10 @@ function postgrestExecutor(client, options = {}) {
1007
1007
  functionSources: true,
1008
1008
  execute,
1009
1009
  async rpc(name, args, context) {
1010
+ if (options.rpcUnavailable !== void 0) return err(dbError("unsupported", options.rpcUnavailable, {
1011
+ code: "RPC_UNAVAILABLE",
1012
+ details: `rpc("${name}")`
1013
+ }));
1010
1014
  const scoped = scope(client, context.schema);
1011
1015
  if (!scoped.rpc) return err(toDbError(/* @__PURE__ */ new Error("The client does not support rpc()")));
1012
1016
  if (context.signal?.aborted) return err(aborted());
@@ -1,6 +1,4 @@
1
- import { G as ObjectVersion, K as VersioningStatus, U as BucketLifecycle, W as BucketLifecycleRule, n as AccessPolicySql, t as AccessBucketPolicy } from "../types-6BdhkmZe.js";
2
- import { n as StoragePath, t as PathIn } from "../path-Cv__-OTj.js";
3
- import { C as UrlOptions, D as TTL, E as AppliedBucket, O as TtlPreset, S as UploadOptions, T as parseSize, _ as SweepOptions, a as BucketConnectOptions, b as TransformOptions, c as DownloadOptions, d as PurgeCacheOptions, f as ReplaceOptions, g as StoredObject, h as StorageClient, i as BucketConfig, l as ObjectTarget, m as Reservation, n as Bucket, o as BucketDrift, p as ReplaceResult, r as BucketClient, s as BucketPolicy, t as ActualBucket, u as PathValues, v as SweepResult, w as defineBucket, x as UploadBody, y as TransferOptions } from "../bucket-Cl46E3jS.js";
4
- import { n as TemplateValues, t as TemplateParams } from "../template-CwO38Do8.js";
5
- import { A as defineBuckets, C as BucketIdOf, D as ConnectedRef, E as Buckets, M as StorageImageSize, N as storageImageUrl, O as ResolvedRef, P as fromStorageError, S as AnyBucket, T as BucketWithId, _ as IMAGE_TYPES, a as VectorHit, b as avatarBucket, c as VectorMetadata, d as defineVectorBucket, f as AnalyticsBucket, g as AvatarBucketOptions, h as defineAnalyticsBucket, i as VectorDistance, j as StorageImageOptions, k as StoredRef, l as VectorQueryOptions, m as AnalyticsCatalog, n as VectorBucketClient, o as VectorIndexClient, p as AnalyticsBucketClient, r as VectorBucketConfig, s as VectorIndexConfig, t as VectorBucket, u as VectorRecord, v as ImageBucketOptions, w as BucketMap, x as organizationLogoBucket, y as OrganizationLogoBucketOptions } from "../index-D48jVS-N.js";
6
- export { type AccessBucketPolicy, type AccessPolicySql, type ActualBucket, type AnalyticsBucket, type AnalyticsBucketClient, type AnalyticsCatalog, type AnyBucket, type AppliedBucket, type AvatarBucketOptions, type Bucket, type BucketClient, type BucketConfig, type BucketConnectOptions, type BucketDrift, type BucketIdOf, type BucketLifecycle, type BucketLifecycleRule, type BucketMap, type BucketPolicy, type BucketWithId, type Buckets, type ConnectedRef, type DownloadOptions, IMAGE_TYPES, type ImageBucketOptions, type ObjectTarget, type ObjectVersion, type OrganizationLogoBucketOptions, type PathIn, type PathValues, type PurgeCacheOptions, type ReplaceOptions, type ReplaceResult, type Reservation, type ResolvedRef, type StorageClient, type StorageImageOptions, type StorageImageSize, type StoragePath, type StoredObject, type StoredRef, type SweepOptions, type SweepResult, TTL, type TemplateParams, type TemplateValues, type TransferOptions, type TransformOptions, type TtlPreset, type UploadBody, type UploadOptions, type UrlOptions, type VectorBucket, type VectorBucketClient, type VectorBucketConfig, type VectorDistance, type VectorHit, type VectorIndexClient, type VectorIndexConfig, type VectorMetadata, type VectorQueryOptions, type VectorRecord, type VersioningStatus, avatarBucket, defineAnalyticsBucket, defineBucket, defineBuckets, defineVectorBucket, fromStorageError, organizationLogoBucket, parseSize, storageImageUrl };
1
+ import { G as ObjectVersion, K as VersioningStatus, U as BucketLifecycle, W as BucketLifecycleRule, n as AccessPolicySql, t as AccessBucketPolicy } from "../types-CoE5Zwy4.js";
2
+ import { A as PathValues, B as TransformOptions, C as BucketClient, D as BucketPolicy, E as BucketDrift, F as StorageAdminClient, G as parseSize, H as UploadOptions, I as StoredObject, J as TemplateValues, K as AppliedBucket, L as SweepOptions, M as ReplaceOptions, N as ReplaceResult, O as DownloadOptions, P as Reservation, Q as StoragePath, R as SweepResult, S as Bucket, T as BucketConnectOptions, U as UrlOptions, V as UploadBody, W as defineBucket, X as TtlPreset, Y as TTL, Z as PathIn, _ as StorageSearchV2Options, a as StorageDownloadOptions, b as StorageUrlOptions, c as StorageFileOptions, d as StorageListV2Object, f as StorageListV2Result, g as StorageSearchOptions, h as StorageResponse, i as StorageDestinationOptions, j as PurgeCacheOptions, k as ObjectTarget, l as StorageListEntry, m as StorageRemoveEntry, n as StorageBucketApi, o as StorageFailure, p as StorageObjectInfo, q as TemplateParams, r as StorageClient, s as StorageFetchParameters, t as StorageApi, u as StorageListV2Folder, v as StorageSignedUrlEntry, w as BucketConfig, x as ActualBucket, y as StorageTransform, z as TransferOptions } from "../storage-api-CB7Zl1Ci.js";
3
+ import { A as defineBuckets, C as BucketIdOf, D as ConnectedRef, E as Buckets, M as StorageImageSize, N as storageImageUrl, O as ResolvedRef, P as fromStorageError, S as AnyBucket, T as BucketWithId, _ as IMAGE_TYPES, a as VectorHit, b as avatarBucket, c as VectorMetadata, d as defineVectorBucket, f as AnalyticsBucket, g as AvatarBucketOptions, h as defineAnalyticsBucket, i as VectorDistance, j as StorageImageOptions, k as StoredRef, l as VectorQueryOptions, m as AnalyticsCatalog, n as VectorBucketClient, o as VectorIndexClient, p as AnalyticsBucketClient, r as VectorBucketConfig, s as VectorIndexConfig, t as VectorBucket, u as VectorRecord, v as ImageBucketOptions, w as BucketMap, x as organizationLogoBucket, y as OrganizationLogoBucketOptions } from "../index-BfxOaOYs.js";
4
+ export { type AccessBucketPolicy, type AccessPolicySql, type ActualBucket, type AnalyticsBucket, type AnalyticsBucketClient, type AnalyticsCatalog, type AnyBucket, type AppliedBucket, type AvatarBucketOptions, type Bucket, type BucketClient, type BucketConfig, type BucketConnectOptions, type BucketDrift, type BucketIdOf, type BucketLifecycle, type BucketLifecycleRule, type BucketMap, type BucketPolicy, type BucketWithId, type Buckets, type ConnectedRef, type DownloadOptions, IMAGE_TYPES, type ImageBucketOptions, type ObjectTarget, type ObjectVersion, type OrganizationLogoBucketOptions, type PathIn, type PathValues, type PurgeCacheOptions, type ReplaceOptions, type ReplaceResult, type Reservation, type ResolvedRef, type StorageAdminClient, type StorageApi, type StorageBucketApi, type StorageClient, type StorageDestinationOptions, type StorageDownloadOptions, type StorageFailure, type StorageFetchParameters, type StorageFileOptions, type StorageImageOptions, type StorageImageSize, type StorageListEntry, type StorageListV2Folder, type StorageListV2Object, type StorageListV2Result, type StorageObjectInfo, type StoragePath, type StorageRemoveEntry, type StorageResponse, type StorageSearchOptions, type StorageSearchV2Options, type StorageSignedUrlEntry, type StorageTransform, type StorageUrlOptions, type StoredObject, type StoredRef, type SweepOptions, type SweepResult, TTL, type TemplateParams, type TemplateValues, type TransferOptions, type TransformOptions, type TtlPreset, type UploadBody, type UploadOptions, type UrlOptions, type VectorBucket, type VectorBucketClient, type VectorBucketConfig, type VectorDistance, type VectorHit, type VectorIndexClient, type VectorIndexConfig, type VectorMetadata, type VectorQueryOptions, type VectorRecord, type VersioningStatus, avatarBucket, defineAnalyticsBucket, defineBucket, defineBuckets, defineVectorBucket, fromStorageError, organizationLogoBucket, parseSize, storageImageUrl };
@@ -1,15 +1,15 @@
1
1
  import { t as DbException } from "../db-exception-CnWcYPxL.js";
2
- import { n as dbError } from "../errors-B11Duf73.js";
3
- import { c as optionalTemporal } from "../temporal-BJGitm-h.js";
4
- import { n as temporalMissing } from "../temporal-required-BVvW7SYJ.js";
5
- import { a as ok, r as err, s as toDbError, t as AsyncResult } from "../result-DzUbqgdW.js";
2
+ import { n as dbError } from "../errors-2M6CKMP4.js";
3
+ import { c as optionalTemporal, n as isInstant } from "../temporal-BJGitm-h.js";
4
+ import { n as temporalMissing } from "../temporal-required-BtynQtM-.js";
5
+ import { a as ok, r as err, s as toDbError, t as AsyncResult } from "../result-DEqHCMKP.js";
6
6
  import { a as spansAllTenants } from "../plugin-tfXW1-qO.js";
7
7
  import { a as tenantClaimPaths, o as tenantFrom, s as tenantPathsFor } from "../claims-PqzCxaTD.js";
8
8
  import { n as ttlSeconds, t as TTL } from "../ttl-Hr34gRu8.js";
9
- import { i as sqlString, n as slug, r as sqlIdent, t as parseTemplate } from "../template--jDkl3UP.js";
9
+ import { a as sqlString, i as sqlIdent, n as parseTemplate, r as slug, t as claimSql } from "../template-lPVh-EwW.js";
10
10
  import { t as storageImageUrl } from "../image-url-pIVlO6R1.js";
11
- import { t as fromStorageError } from "../errors-DLjJHPLK.js";
12
- import { r as accessCheck } from "../access-sql-B0dF-SoF.js";
11
+ import { t as fromStorageError } from "../errors-rZ7VIqp6.js";
12
+ import { r as accessCheck } from "../access-sql-CrSbK1q-.js";
13
13
  //#region src/storage/versioning.ts
14
14
  const MAX_DAYS = 2147483647;
15
15
  function wholeIn(value, min, max) {
@@ -272,6 +272,12 @@ function parseFailure(status, text) {
272
272
  };
273
273
  }
274
274
  //#endregion
275
+ //#region src/storage/storage-api.ts
276
+ /** The `StorageApi` of a client, or the client itself. */
277
+ function storageApiOf(client) {
278
+ return "storage" in client ? client.storage : client;
279
+ }
280
+ //#endregion
275
281
  //#region src/storage/connect.ts
276
282
  /** Folder listings in flight at once while `list` walks a tree. */
277
283
  const LIST_CONCURRENCY = 4;
@@ -334,7 +340,8 @@ function connectBucket(bucket, client, resolveTarget, connectOptions, guard) {
334
340
  ...within,
335
341
  [guard.param]: guard.within(within)
336
342
  } : within ?? {};
337
- const api = () => client.storage.from(bucket.id);
343
+ const storage = storageApiOf(client);
344
+ const api = () => storage.from(bucket.id);
338
345
  const signed = connectOptions.cacheSignedUrls ? /* @__PURE__ */ new Map() : void 0;
339
346
  /** Drops cached signed URLs for `paths`; keys start with the JSON-quoted path. */
340
347
  const evict = (paths) => {
@@ -653,7 +660,7 @@ function connectBucket(bucket, client, resolveTarget, connectOptions, guard) {
653
660
  const namespace = optionalTemporal();
654
661
  if (namespace === void 0) return err(temporalMissing());
655
662
  const now = options.now?.() ?? namespace.Now.instant();
656
- const cutoff = options.olderThan instanceof namespace.Instant ? options.olderThan.epochMilliseconds : now.epochMilliseconds - options.olderThan.total("milliseconds");
663
+ const cutoff = isInstant(options.olderThan) ? options.olderThan.epochMilliseconds : now.epochMilliseconds - options.olderThan.total("milliseconds");
657
664
  const scope = scopedWithin(options.within);
658
665
  const size = options.batchSize ?? 100;
659
666
  const orphans = [];
@@ -778,14 +785,6 @@ function parseSize(value) {
778
785
  if (!match || unit === void 0) throw new TypeError(`Invalid size "${value}"`);
779
786
  return Math.round(Number(match[1]) * unit);
780
787
  }
781
- function claimSql(claim) {
782
- const expressions = (typeof claim === "string" ? [claim] : claim).map((path) => {
783
- const keys = path.split(".");
784
- const last = keys.pop();
785
- return `(select auth.jwt())${keys.map((key) => ` -> ${sqlString(key)}`).join("")} ->> ${sqlString(last)}`;
786
- });
787
- return expressions.length === 1 ? expressions[0] : `coalesce(${expressions.join(", ")})`;
788
- }
789
788
  /**
790
789
  * Path segment `index` equals `value`. A first segment also bounds `name` to
791
790
  * the `value/` prefix in the "C" collation, the storage name indexes', so