gemi 0.136.0 → 0.137.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 (220) hide show
  1. package/dist/ai/Agent.d.ts +48 -5
  2. package/dist/ai/Agent.d.ts.map +1 -1
  3. package/dist/ai/AgentController.d.ts +42 -2
  4. package/dist/ai/AgentController.d.ts.map +1 -1
  5. package/dist/ai/index.d.ts +3 -1
  6. package/dist/ai/index.d.ts.map +1 -1
  7. package/dist/ai/index.js +85 -18
  8. package/dist/ai/index.js.map +5 -4
  9. package/dist/ai/memory/AgentMemories.d.ts +226 -0
  10. package/dist/ai/memory/AgentMemories.d.ts.map +1 -0
  11. package/dist/ai/memory/AgentMemoryStore.d.ts +182 -0
  12. package/dist/ai/memory/AgentMemoryStore.d.ts.map +1 -0
  13. package/dist/ai/memory/DatabaseAgentMemoryStore.d.ts +76 -0
  14. package/dist/ai/memory/DatabaseAgentMemoryStore.d.ts.map +1 -0
  15. package/dist/ai/memory/contextBlock.d.ts +32 -0
  16. package/dist/ai/memory/contextBlock.d.ts.map +1 -0
  17. package/dist/ai/memory/index.d.ts +6 -0
  18. package/dist/ai/memory/index.d.ts.map +1 -0
  19. package/dist/ai/memory/runMemory.d.ts +355 -0
  20. package/dist/ai/memory/runMemory.d.ts.map +1 -0
  21. package/dist/ai/memory/safety.d.ts +34 -0
  22. package/dist/ai/memory/safety.d.ts.map +1 -0
  23. package/dist/ai/memory/search.d.ts +23 -0
  24. package/dist/ai/memory/search.d.ts.map +1 -0
  25. package/dist/app/index.js +1 -1
  26. package/dist/bun/plugin.js +1 -1
  27. package/dist/bun/preload.js +1 -1
  28. package/dist/{chunk-rnp5k8m3.js → chunk-038xtqpm.js} +2 -2
  29. package/dist/{chunk-rnp5k8m3.js.map → chunk-038xtqpm.js.map} +1 -1
  30. package/dist/{chunk-5pdgh9a1.js → chunk-26yghzet.js} +2 -2
  31. package/dist/{chunk-5pdgh9a1.js.map → chunk-26yghzet.js.map} +1 -1
  32. package/dist/{chunk-ha15x5ns.js → chunk-27xv8kty.js} +2 -2
  33. package/dist/{chunk-ha15x5ns.js.map → chunk-27xv8kty.js.map} +1 -1
  34. package/dist/{chunk-k2xeskp6.js → chunk-3jkem5gq.js} +2 -2
  35. package/dist/{chunk-k2xeskp6.js.map → chunk-3jkem5gq.js.map} +1 -1
  36. package/dist/{chunk-q15f5g86.js → chunk-46bwknb5.js} +3 -3
  37. package/dist/{chunk-q15f5g86.js.map → chunk-46bwknb5.js.map} +1 -1
  38. package/dist/{chunk-8sde8337.js → chunk-4jc7wbet.js} +2 -2
  39. package/dist/{chunk-8sde8337.js.map → chunk-4jc7wbet.js.map} +1 -1
  40. package/dist/{chunk-3dpmkxp7.js → chunk-4zjtbgnr.js} +2 -2
  41. package/dist/{chunk-3dpmkxp7.js.map → chunk-4zjtbgnr.js.map} +1 -1
  42. package/dist/{chunk-feajsgns.js → chunk-5benn2ys.js} +3 -3
  43. package/dist/{chunk-feajsgns.js.map → chunk-5benn2ys.js.map} +1 -1
  44. package/dist/{chunk-rzqft8q8.js → chunk-6qzyq0g5.js} +2 -2
  45. package/dist/{chunk-rzqft8q8.js.map → chunk-6qzyq0g5.js.map} +1 -1
  46. package/dist/{chunk-6qty7at2.js → chunk-78zfqt54.js} +2 -2
  47. package/dist/{chunk-6qty7at2.js.map → chunk-78zfqt54.js.map} +1 -1
  48. package/dist/{chunk-ysc7ykss.js → chunk-7d26eqv1.js} +2 -2
  49. package/dist/{chunk-ysc7ykss.js.map → chunk-7d26eqv1.js.map} +1 -1
  50. package/dist/{chunk-6fr6j338.js → chunk-7t7jh8t2.js} +2 -2
  51. package/dist/{chunk-6fr6j338.js.map → chunk-7t7jh8t2.js.map} +1 -1
  52. package/dist/{chunk-xvvsc58s.js → chunk-7vxeqxxr.js} +2 -2
  53. package/dist/{chunk-xvvsc58s.js.map → chunk-7vxeqxxr.js.map} +1 -1
  54. package/dist/{chunk-zyhmn3hy.js → chunk-80fjsb26.js} +3 -3
  55. package/dist/{chunk-zyhmn3hy.js.map → chunk-80fjsb26.js.map} +1 -1
  56. package/dist/{chunk-xymr3asa.js → chunk-85k70cme.js} +3 -3
  57. package/dist/{chunk-xymr3asa.js.map → chunk-85k70cme.js.map} +1 -1
  58. package/dist/{chunk-ka991yx4.js → chunk-8dmhbj4m.js} +2 -2
  59. package/dist/{chunk-ka991yx4.js.map → chunk-8dmhbj4m.js.map} +1 -1
  60. package/dist/{chunk-8ryrjtn0.js → chunk-8ef5c93d.js} +2 -2
  61. package/dist/{chunk-8ryrjtn0.js.map → chunk-8ef5c93d.js.map} +1 -1
  62. package/dist/{chunk-t33yh84d.js → chunk-8p4t8x9c.js} +2 -2
  63. package/dist/{chunk-t33yh84d.js.map → chunk-8p4t8x9c.js.map} +1 -1
  64. package/dist/{chunk-7nxnyw7x.js → chunk-965gfa41.js} +2 -2
  65. package/dist/{chunk-7nxnyw7x.js.map → chunk-965gfa41.js.map} +1 -1
  66. package/dist/{chunk-swwkdm75.js → chunk-974p7em0.js} +2 -2
  67. package/dist/{chunk-swwkdm75.js.map → chunk-974p7em0.js.map} +1 -1
  68. package/dist/{chunk-krk880my.js → chunk-9s203ks3.js} +2 -2
  69. package/dist/{chunk-krk880my.js.map → chunk-9s203ks3.js.map} +1 -1
  70. package/dist/{chunk-0eamc2tr.js → chunk-9wc53ywv.js} +2 -2
  71. package/dist/{chunk-0eamc2tr.js.map → chunk-9wc53ywv.js.map} +1 -1
  72. package/dist/{chunk-hb9hm8za.js → chunk-a2fhbstt.js} +3 -3
  73. package/dist/{chunk-hb9hm8za.js.map → chunk-a2fhbstt.js.map} +1 -1
  74. package/dist/{chunk-cxsvzqd4.js → chunk-aj2sr77y.js} +2 -2
  75. package/dist/{chunk-cxsvzqd4.js.map → chunk-aj2sr77y.js.map} +1 -1
  76. package/dist/{chunk-0gg4e94v.js → chunk-an1nja68.js} +2 -2
  77. package/dist/{chunk-0gg4e94v.js.map → chunk-an1nja68.js.map} +1 -1
  78. package/dist/{chunk-jy9dkgt0.js → chunk-ant9ck0r.js} +2 -2
  79. package/dist/{chunk-jy9dkgt0.js.map → chunk-ant9ck0r.js.map} +1 -1
  80. package/dist/chunk-atmw5c0q.js +28 -0
  81. package/dist/chunk-atmw5c0q.js.map +27 -0
  82. package/dist/{chunk-sa6cxt3g.js → chunk-bg0e39dk.js} +2 -2
  83. package/dist/{chunk-sa6cxt3g.js.map → chunk-bg0e39dk.js.map} +1 -1
  84. package/dist/{chunk-1awxdnb6.js → chunk-c0m8pcbd.js} +1 -1
  85. package/dist/{chunk-65j32dtn.js → chunk-c6c7p43e.js} +2 -2
  86. package/dist/{chunk-65j32dtn.js.map → chunk-c6c7p43e.js.map} +1 -1
  87. package/dist/{chunk-x9bk5s21.js → chunk-c83e4ghx.js} +2 -2
  88. package/dist/{chunk-x9bk5s21.js.map → chunk-c83e4ghx.js.map} +1 -1
  89. package/dist/{chunk-jgx8ggbz.js → chunk-cedmppcy.js} +2 -2
  90. package/dist/{chunk-jgx8ggbz.js.map → chunk-cedmppcy.js.map} +1 -1
  91. package/dist/{chunk-wrsf2abe.js → chunk-chyt9th4.js} +2 -2
  92. package/dist/{chunk-wrsf2abe.js.map → chunk-chyt9th4.js.map} +1 -1
  93. package/dist/{chunk-qfra7gah.js → chunk-d368es1y.js} +2 -2
  94. package/dist/{chunk-qfra7gah.js.map → chunk-d368es1y.js.map} +1 -1
  95. package/dist/{chunk-dt95z6et.js → chunk-d492ae5e.js} +2 -2
  96. package/dist/{chunk-dt95z6et.js.map → chunk-d492ae5e.js.map} +1 -1
  97. package/dist/{chunk-beb265c9.js → chunk-e440f645.js} +2 -2
  98. package/dist/{chunk-beb265c9.js.map → chunk-e440f645.js.map} +1 -1
  99. package/dist/{chunk-njpnstck.js → chunk-eqzxvfvt.js} +2 -2
  100. package/dist/{chunk-njpnstck.js.map → chunk-eqzxvfvt.js.map} +1 -1
  101. package/dist/{chunk-99a4e6zf.js → chunk-f9w78tbd.js} +2 -2
  102. package/dist/{chunk-99a4e6zf.js.map → chunk-f9w78tbd.js.map} +1 -1
  103. package/dist/chunk-fjw51b91.js +10 -0
  104. package/dist/{chunk-3gx7wcrt.js.map → chunk-fjw51b91.js.map} +3 -3
  105. package/dist/chunk-fs4ntgdr.js +5 -0
  106. package/dist/{chunk-47e7fbsp.js.map → chunk-fs4ntgdr.js.map} +1 -1
  107. package/dist/{chunk-gng5e7pd.js → chunk-fwmmy0jn.js} +1 -1
  108. package/dist/{chunk-mw7ft5bs.js → chunk-g22q8j2s.js} +2 -2
  109. package/dist/{chunk-mw7ft5bs.js.map → chunk-g22q8j2s.js.map} +1 -1
  110. package/dist/{chunk-z9xxthp1.js → chunk-ghbzre7k.js} +3 -3
  111. package/dist/{chunk-z9xxthp1.js.map → chunk-ghbzre7k.js.map} +1 -1
  112. package/dist/{chunk-x5hj0mqp.js → chunk-gq4fr0zn.js} +3 -3
  113. package/dist/{chunk-x5hj0mqp.js.map → chunk-gq4fr0zn.js.map} +1 -1
  114. package/dist/{chunk-x51tegk3.js → chunk-gqcmnyc8.js} +2 -2
  115. package/dist/{chunk-x51tegk3.js.map → chunk-gqcmnyc8.js.map} +1 -1
  116. package/dist/{chunk-x16ckgq1.js → chunk-h0ydk8cc.js} +2 -2
  117. package/dist/{chunk-x16ckgq1.js.map → chunk-h0ydk8cc.js.map} +1 -1
  118. package/dist/{chunk-m9vwg9j1.js → chunk-jys3n8xv.js} +3 -3
  119. package/dist/{chunk-m9vwg9j1.js.map → chunk-jys3n8xv.js.map} +1 -1
  120. package/dist/{chunk-3h37f124.js → chunk-kpb8xvrv.js} +2 -2
  121. package/dist/{chunk-3h37f124.js.map → chunk-kpb8xvrv.js.map} +1 -1
  122. package/dist/{chunk-mpqvmge4.js → chunk-kzdkpz04.js} +1 -1
  123. package/dist/{chunk-0rhf4g12.js → chunk-md6wfc1h.js} +3 -3
  124. package/dist/{chunk-0rhf4g12.js.map → chunk-md6wfc1h.js.map} +1 -1
  125. package/dist/{chunk-s025aycr.js → chunk-n2czjpz9.js} +2 -2
  126. package/dist/{chunk-s025aycr.js.map → chunk-n2czjpz9.js.map} +1 -1
  127. package/dist/{chunk-ff60bzvf.js → chunk-n7576zsr.js} +3 -3
  128. package/dist/{chunk-ff60bzvf.js.map → chunk-n7576zsr.js.map} +1 -1
  129. package/dist/{chunk-s782bzeq.js → chunk-nbfksexg.js} +2 -2
  130. package/dist/{chunk-s782bzeq.js.map → chunk-nbfksexg.js.map} +1 -1
  131. package/dist/{chunk-p82868xx.js → chunk-p1y58p84.js} +2 -2
  132. package/dist/{chunk-p82868xx.js.map → chunk-p1y58p84.js.map} +1 -1
  133. package/dist/{chunk-zv5qyrqg.js → chunk-p2c7z2nr.js} +2 -2
  134. package/dist/{chunk-zv5qyrqg.js.map → chunk-p2c7z2nr.js.map} +1 -1
  135. package/dist/{chunk-vnw91fe1.js → chunk-pv2mtg8n.js} +2 -2
  136. package/dist/{chunk-vnw91fe1.js.map → chunk-pv2mtg8n.js.map} +1 -1
  137. package/dist/{chunk-jx5zx48j.js → chunk-qfhcec6q.js} +2 -2
  138. package/dist/{chunk-jx5zx48j.js.map → chunk-qfhcec6q.js.map} +1 -1
  139. package/dist/{chunk-6hz63ts4.js → chunk-qk6vmvr2.js} +4 -4
  140. package/dist/{chunk-6hz63ts4.js.map → chunk-qk6vmvr2.js.map} +1 -1
  141. package/dist/{chunk-w1cksc5z.js → chunk-qvx8473q.js} +3 -3
  142. package/dist/{chunk-w1cksc5z.js.map → chunk-qvx8473q.js.map} +1 -1
  143. package/dist/{chunk-4278e429.js → chunk-rqb52m93.js} +2 -2
  144. package/dist/{chunk-4278e429.js.map → chunk-rqb52m93.js.map} +1 -1
  145. package/dist/{chunk-py1twqh8.js → chunk-skmdmqv7.js} +2 -2
  146. package/dist/{chunk-py1twqh8.js.map → chunk-skmdmqv7.js.map} +1 -1
  147. package/dist/{chunk-04tkpna8.js → chunk-t0p6zb29.js} +2 -2
  148. package/dist/{chunk-04tkpna8.js.map → chunk-t0p6zb29.js.map} +1 -1
  149. package/dist/{chunk-53rr32zm.js → chunk-ted0qjps.js} +1 -1
  150. package/dist/{chunk-hj88dcss.js → chunk-v4dp93qv.js} +3 -3
  151. package/dist/{chunk-hj88dcss.js.map → chunk-v4dp93qv.js.map} +1 -1
  152. package/dist/{chunk-33hdxe7v.js → chunk-vmr4d6hc.js} +1 -1
  153. package/dist/{chunk-3g5q0cj5.js → chunk-vz5rrcnh.js} +2 -2
  154. package/dist/{chunk-3g5q0cj5.js.map → chunk-vz5rrcnh.js.map} +1 -1
  155. package/dist/{chunk-pm8wjatv.js → chunk-w17p2k8g.js} +3 -3
  156. package/dist/{chunk-pm8wjatv.js.map → chunk-w17p2k8g.js.map} +1 -1
  157. package/dist/{chunk-j5g7qc5f.js → chunk-wbvb1hcx.js} +2 -2
  158. package/dist/{chunk-j5g7qc5f.js.map → chunk-wbvb1hcx.js.map} +1 -1
  159. package/dist/{chunk-t8xs9ptb.js → chunk-x1j7e46e.js} +2 -2
  160. package/dist/{chunk-t8xs9ptb.js.map → chunk-x1j7e46e.js.map} +1 -1
  161. package/dist/{chunk-jx2mgvvt.js → chunk-xwmy6fby.js} +3 -3
  162. package/dist/{chunk-jx2mgvvt.js.map → chunk-xwmy6fby.js.map} +1 -1
  163. package/dist/{chunk-z61dj480.js → chunk-y6gr3stt.js} +3 -3
  164. package/dist/{chunk-z61dj480.js.map → chunk-y6gr3stt.js.map} +1 -1
  165. package/dist/{chunk-4t41m5f1.js → chunk-yhp70t40.js} +2 -2
  166. package/dist/{chunk-4t41m5f1.js.map → chunk-yhp70t40.js.map} +1 -1
  167. package/dist/{chunk-zypmy8yq.js → chunk-z0jazehw.js} +2 -2
  168. package/dist/{chunk-zypmy8yq.js.map → chunk-z0jazehw.js.map} +1 -1
  169. package/dist/{chunk-541s0vkt.js → chunk-z19rwc6x.js} +5 -5
  170. package/dist/{chunk-541s0vkt.js.map → chunk-z19rwc6x.js.map} +1 -1
  171. package/dist/{chunk-gqgpwb88.js → chunk-z969a4nt.js} +2 -2
  172. package/dist/{chunk-gqgpwb88.js.map → chunk-z969a4nt.js.map} +1 -1
  173. package/dist/{chunk-hf492gg2.js → chunk-zj8y4ak5.js} +1 -1
  174. package/dist/{chunk-qpwb3gnh.js → chunk-zvzvgrrn.js} +2 -2
  175. package/dist/{chunk-qpwb3gnh.js.map → chunk-zvzvgrrn.js.map} +1 -1
  176. package/dist/config/index.js +1 -1
  177. package/dist/console/run.js +2 -2
  178. package/dist/console/run.js.map +1 -1
  179. package/dist/container/index.js +2 -2
  180. package/dist/container/index.js.map +1 -1
  181. package/dist/database/index.js +2 -2
  182. package/dist/database/index.js.map +1 -1
  183. package/dist/email/index.js +2 -2
  184. package/dist/email/index.js.map +1 -1
  185. package/dist/facades/index.js +2 -2
  186. package/dist/facades/index.js.map +1 -1
  187. package/dist/foundation/index.js +2 -2
  188. package/dist/foundation/index.js.map +1 -1
  189. package/dist/http/index.js +2 -2
  190. package/dist/http/index.js.map +1 -1
  191. package/dist/i18n/dictionaryRuntime.js +2 -2
  192. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  193. package/dist/i18n/index.js +2 -2
  194. package/dist/i18n/index.js.map +1 -1
  195. package/dist/kernel/index.js +2 -2
  196. package/dist/kernel/index.js.map +1 -1
  197. package/dist/orm/index.js +2 -2
  198. package/dist/orm/index.js.map +1 -1
  199. package/dist/server/index.js +2 -2
  200. package/dist/server/index.js.map +1 -1
  201. package/dist/services/index.js +2 -2
  202. package/dist/services/index.js.map +1 -1
  203. package/dist/services/mcp/McpRegistry.d.ts.map +1 -1
  204. package/dist/services/queue/work.js +2 -2
  205. package/dist/services/queue/work.js.map +1 -1
  206. package/dist/stats/route-table.js +1 -1
  207. package/dist/support/index.js +2 -2
  208. package/dist/support/index.js.map +1 -1
  209. package/dist/vitest/index.js +1 -1
  210. package/package.json +1 -1
  211. package/dist/chunk-2cnawkke.js +0 -22
  212. package/dist/chunk-2cnawkke.js.map +0 -21
  213. package/dist/chunk-3gx7wcrt.js +0 -10
  214. package/dist/chunk-47e7fbsp.js +0 -5
  215. /package/dist/{chunk-1awxdnb6.js.map → chunk-c0m8pcbd.js.map} +0 -0
  216. /package/dist/{chunk-gng5e7pd.js.map → chunk-fwmmy0jn.js.map} +0 -0
  217. /package/dist/{chunk-mpqvmge4.js.map → chunk-kzdkpz04.js.map} +0 -0
  218. /package/dist/{chunk-53rr32zm.js.map → chunk-ted0qjps.js.map} +0 -0
  219. /package/dist/{chunk-33hdxe7v.js.map → chunk-vmr4d6hc.js.map} +0 -0
  220. /package/dist/{chunk-hf492gg2.js.map → chunk-zj8y4ak5.js.map} +0 -0
package/dist/orm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{ba as Y6}from"../chunk-8sde8337.js";import{$a as J6,Fa as l5,Ga as o5,Ha as i,Ia as T9,Ja as U3,Ka as e8,La as $6,Ma as S0,Na as p5,Oa as N3,Pa as Z6,Qa as t0,Ra as L0,Sa as k4,Ta as f4,Ua as g4,Va as w5,Wa as y4,Xa as h4,Ya as u4,Za as X6,_a as z6}from"../chunk-x51tegk3.js";import{Jg as l8,Kg as o8,Lg as t8,Mg as r8,Ng as a8}from"../chunk-ff60bzvf.js";import{$g as v3,Og as N0,Pg as n,Qg as P,Rg as s,Ug as R,Vg as w,Wg as p,Xg as m8,Yg as p8,Zg as a3,_g as d8,ah as f,bh as c8,ch as s8,dh as i8,eh as n8,fh as m5}from"../chunk-feajsgns.js";import"../chunk-4t41m5f1.js";import{Ji as E8,Ki as P0,Li as G0,Mi as W9,Ni as h3,Pi as h8,Qi as u8,Vi as q4,Wi as E4,Xi as w4,Yi as x4,Zi as v4}from"../chunk-z61dj480.js";import{$i as I,_i as K,aj as w0,bj as k,cj as U8,dj as r,ej as N8,fj as x5,gj as O8,hj as j5,ij as F8,kj as S8,lj as v5,mj as A8,nj as b8,oj as k5,pj as P3,qj as x0,rj as g3,sj as y3,tj as d,uj as q8,vj as v0,wj as f5}from"../chunk-vnw91fe1.js";import{Dj as v8,Ej as o0,Fj as _0,Gj as T3,Jj as k8,Lj as f8,Mj as g8,Nj as g5,Oj as y5,Pj as q5,Qj as R3,Rj as y8,Sj as h5,Tj as u5}from"../chunk-z9xxthp1.js";import{ck as w8,ek as x8,gk as E5}from"../chunk-65j32dtn.js";import{Gk as b5}from"../chunk-jx2mgvvt.js";import"../chunk-ha15x5ns.js";import"../chunk-rnp5k8m3.js";function R0($,Z,X,z,J,H){let Y=e($,Z),G=H0($,Y,Z,H),V=X.quoteIdent(z),W=`${V}.`,M=G.parentFields.map((C,_)=>{let F=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[_]))}`,T=`${J}${X.quoteIdent(r0($,Z,C))}`;return`${F} = ${T}`}).join(" and ");if(!G.join)return{child:Y,source:`${X.quoteIdent(Y.table)} as ${V}`,correlation:M,qualifier:W};let B=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[0]))}`,D=`${J}${X.quoteIdent(r0($,Z,G.parentFields[0]))}`,j=X.quoteIdent(`${z}j`);return{child:Y,source:`${X.quoteIdent(Y.table)} as ${V} join ${X.quoteIdent(G.join.table)} as ${j} on ${j}.${X.quoteIdent(G.join.childColumn)} = ${B}`,correlation:`${j}.${X.quoteIdent(G.join.parentColumn)} = ${D}`,qualifier:W}}function r0($,Z,X){let z=$.fields[X];if(!z)throw new d($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function h($,Z,X){let z=a0($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw i5($,X,z);let J=Object.keys(Z).filter((Y)=>Z[Y]!==void 0),H=Z;for(let Y of z){if(Y.length===1&&J.includes(Y[0]))return s5($,X,Y[0],H[Y[0]]),Y;let G=Y.join("_");if(Y.length>1&&J.includes(G)){let V=H[G];if(V&&typeof V==="object"&&!Array.isArray(V))for(let W of Y)s5($,X,`${G}.${W}`,V[W]);return Y}}throw i5($,X,z)}function A3($){if($===null||$===void 0)return!1;let Z=typeof $;if(Z!=="object")return Z!=="function"&&Z!=="symbol";if(Array.isArray($))return!1;if($ instanceof Date||ArrayBuffer.isView($))return!0;let X=Object.getPrototypeOf($);return X!==Object.prototype&&X!==null}function s5($,Z,X,z){if(z===void 0||A3(z))return;throw new I(`${Z.argument}.${X}`,Z.model,Z.operation,`A unique key takes a plain value to match, not ${z===null?"null":Array.isArray(z)?"an array":"a filter object"}. Use findFirst/findMany (or updateMany/deleteMany) to filter on ${$.name}.${X.split(".").pop()}.`)}function b3($,Z,X){h($,Z,{model:$.name,operation:X,argument:"where"})}function a0($){let Z=[];if($.primaryKey.length>0)Z.push($.primaryKey);for(let X of $.uniques)Z.push(X);return Z}function i5($,Z,X){let z=X.map((Y)=>Y.length===1?Y[0]:Y.join("_")).join(", "),H=Z.argument.startsWith("data.")?`Name it by one of those, or reach it through the ${$.name} model directly.`:`Use ${Z.operation==="delete"||Z.operation==="update"?`${Z.operation}Many`:"findFirst"} to query on anything else.`;return new K(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${H}`)}function g($,Z,X){let z=Z.castParameter($);if(!z)return s(X);return s((J,H)=>{let Y=X(J,H);if(Y===null||Y===void 0)return null;let G=f(Y);if(G==="db")return null;if(G==="json")return"null";if(G==="any")throw Error("gemi ORM bug: Prisma.AnyNull reached the parameter binder. It is a filter operand only, and both the filter and write paths are supposed to have handled it before this point.");return JSON.stringify(Y)},z)}function v($,Z,X,z){if(Z===void 0||Z===null)return null;if(typeof Z!=="object"||Array.isArray(Z))throw new I("where",$.name,X.operation,"Expected an object.");let J=[];for(let H of Object.keys(Z).sort()){let Y=Z[H];if(Y===void 0)continue;let G=(W)=>z(W)?.[H];if(H==="AND"||H==="OR"){let W=n5($,Y,X,G,H);if(W)J.push(W);continue}if(H===$0){J.push(r4($,Y,X,G));continue}if(H==="NOT"){let W=n5($,Y,X,G,"AND");if(W)J.push(R(P("not "),b0(W)));continue}if(H in $.relations){let W=l4($,$.relations[H],Y,X,G);if(W)J.push(W);continue}let V=$.fields[H];if(!V){let W=t4($,H,Y,X,G);if(W){J.push(W);continue}throw new k(H,$.name,Object.keys($.fields))}J.push(k3($,V,Y,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return l(J," and ")}function l4($,Z,X,z,J){let H=l5(Z.kind),Y=o4($,Z,X,H,z),G=z.relationDepth??0,V=z.dialect,W=z.qualifier??`${V.quoteIdent($.table)}.`,M=R0($,Z,V,`_r${G}`,W,z.operation),B=M.child,D=P(M.correlation),j={...z,qualifier:M.qualifier,relationDepth:G+1},C=[];for(let _ of H){if(!(_ in Y))continue;let F=Y[_],T=(U)=>Y.direct?J(U):J(U)?.[_];if(F===null){C.push(q3(M,D,null,_==="is"));continue}let Q=v(B,F,j,T);if(_==="every"){if(!Q)continue;C.push(q3(M,D,R(P("not "),b0(Q)),!0));continue}let L=_==="none"||_==="isNot";C.push(q3(M,D,Q,L))}if(C.length===0)return null;if(C.length===1)return C[0];return l(C," and ")}function q3($,Z,X,z){let J=[P(`${z?"not ":""}exists (select 1 from ${$.source} where `),Z];if(X)J.push(P(" and "),X);return J.push(P(")")),R(...J)}function o4($,Z,X,z,J){let H=`where.${Z.name}`,Y=Z.kind==="many";if(X===null){if(Y)throw new K(H,$.name,J.operation,`${Z.name} is a to-many relation, so null is not a filter for it. Use { none: {} } for "has no related rows".`);return{is:null,direct:!0}}if(typeof X!=="object"||Array.isArray(X))throw new I(H,$.name,J.operation,Y?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(o5(X,z))return X;if(Y)throw new K(H,$.name,J.operation,`Expected one of ${z.join(", ")}. A to-many relation has no `+"single reading of a bare filter \u2014 { some: \u2026 } and { every: \u2026 } mean "+"different things.");return{is:X,direct:!0}}function t4($,Z,X,z,J){let H=a0($).find((V)=>V.length>1&&V.join("_")===Z);if(!H)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`where.${Z}`,$.name,z.operation,`Expected an object holding ${H.join(" and ")}.`);let Y=X,G=[];for(let V of H){if(Y[V]===void 0)throw new K(`where.${Z}`,$.name,z.operation,`Missing '${V}'. A composite key needs all of ${H.join(", ")}.`);if(!A3(Y[V]))throw new I(`where.${Z}.${V}`,$.name,z.operation,`A composite key takes a plain value for each of ${H.join(", ")}, not a filter, an array or null.`);G.push(k3($,$.fields[V],Y[V],z,(W)=>J(W)?.[V]))}return G.length===1?G[0]:l(G," and ")}function n5($,Z,X,z,J){let H=[];if(Array.isArray(Z))for(let Y=0;Y<Z.length;Y++){let G=v($,Z[Y],X,(V)=>z(V)?.[Y]);if(G)H.push(G)}else{let Y=v($,Z,X,z);if(Y)H.push(Y)}if(H.length===0)return J==="AND"?null:t5;if(H.length===1)return H[0];return l(H,J==="AND"?" and ":" or ")}var t5=P("false");function l($,Z){return R(P("("),w($,Z),P(")"))}function b0($){return $.text.startsWith("(")?$:l([$],"")}var x3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),r5={lt:"<",lte:"<=",gt:">",gte:">="},$0="$compositeIn",a5=Symbol("gemi.orm.compositeInFromPlanner");function e5($,Z){return{[a5]:!0,fields:$,values:Z}}function r4($,Z,X,z){let{dialect:J}=X,Y=a4($,Z,X).map((V)=>{let W=$.fields[V];if(!W)throw new k(V,$.name,Object.keys($.fields));return W}),G=Y.map((V)=>`${X.qualifier??""}${J.quoteIdent(V.column)}`);return J.compositeIn(G,Y.map((V)=>V.type),(V)=>z(V).values)}function a4($,Z,X){let z=()=>{throw new k($0,$.name,Object.keys($.fields))};if(typeof Z!=="object"||Z===null||Array.isArray(Z))return z();if(Z[a5]!==!0)return z();let J=(G)=>{throw new K($0,$.name,X.operation,G)},{fields:H,values:Y}=Z;if(!Array.isArray(H)||H.length===0)return J(`the planner built a '${$0}' with no fields.`);if(!H.every((G)=>typeof G==="string"))return J(`the planner built a '${$0}' with a non-string field.`);if(!Array.isArray(Y))return J(`the planner built a '${$0}' with no values.`);if(!Y.every((G)=>Array.isArray(G)&&G.length===H.length))return J(`the planner built a '${$0}' whose tuples do not all have ${H.length} value(s).`);return H}var e4=["equals","has","hasEvery","hasSome","isEmpty"],E3=new Set(e4);function $7($,Z,X,z,J,H){let{dialect:Y}=J;if(U0($,Z,`where.${Z.name}`,J.operation,Y),Array.isArray(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a bare array is not a filter on `+"one \u2014 Prisma rejects it here too. Say which comparison you mean: "+`{ ${Z.name}: { equals: [...] } } for the whole list, or { ${Z.name}: { hasEvery: [...] } } for "contains all of these". A bare array *is* accepted as a value in \`data\`.`);if(!f3(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list. Expected an object holding ${[...E3].sort().join(", ")}; received ${z===null?"null":typeof z}.`);let G=z,V=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;if(!E3.has(W))throw new I(`where.${Z.name}.${W}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a list filter takes ${[...E3].sort().join(", ")}. The scalar operators \u2014 `+`${[...x3].sort().join(", ")} \u2014 apply to a single value and `+"Prisma does not offer them here.");let B=(D)=>H(D)?.[W];V.push(Z7($,Z,X,W,M,J,B))}if(V.length===0)return P("true");if(V.length===1)return V[0];return l(V," and ")}function Z7($,Z,X,z,J,H,Y){let{dialect:G}=H;if(z==="equals")return X7($,Z,X,J,H,Y);if(z==="isEmpty"){if(typeof J!=="boolean")throw new I(`where.${Z.name}.isEmpty`,$.name,H.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=z7(Z);return G.listHas(X,g(W,G,I0(W,G,Y)))}if(!Array.isArray(J))throw new I(`where.${Z.name}.${z}`,$.name,H.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let V=g(Z,G,I0(Z,G,Y));return z==="hasEvery"?G.listHasEvery(X,V):G.listHasSome(X,V)}function X7($,Z,X,z,J,H){let{dialect:Y}=J;if(z===null)return P(`${X} is null`);if(!Array.isArray(z))throw new I(`where.${Z.name}.equals`,$.name,J.operation,`'${Z.name}' is a scalar list, so it compares against an array. Received ${typeof z}. For "is this element present", use { ${Z.name}: { has: \u2026 } }.`);return R(P(`${X} = `),g(Z,Y,I0(Z,Y,H)))}function z7($){return{...$,isList:!1}}function U0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new K(X,$.name,z,`'${Z.name}' is a scalar list, and ${J.name} has no array type to hold one. Prisma refuses the column itself on ${J.name} \u2014 `+'"the current connector does not support lists of primitive types" \u2014 so '+`this is a difference between the databases rather than a gap in the ORM. The generated artifact is dialect-agnostic, which is why this surfaces here rather than at \`prisma generate\`: the schema was generated against Postgres and DATABASE_URL names a ${J.name} database, which has no '${Z.column}' column either. It works on postgres.`)}var J7=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],w3=new Set(J7),Y7=["has_key","has_some_keys","has_every_key"],e0=new Set(Y7);function $9($,Z,X,z,J,H,Y,G){let V=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(V?Array.isArray(D)&&D.every((C)=>typeof C==="string"):typeof D==="string"))throw new I(W,$.name,H.operation,V?"Expected an array of key names, like ['a', 'b'].":"Expected a key name, like 'a'.");return D};M(J);let B=(D,j)=>M(G(D,j));return H.dialect.jsonHasKeys(X,Y,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function H7($,Z,X,z,J,H){let{dialect:Y}=J;if(Z.type!=="Json")throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);M7($,Z,z.path,J);let G=(M)=>H(M)?.path,V=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(V.length===0)throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' needs a filter beside it \u2014 ${[...w3,...e0].sort().join(", ")}. Prisma refuses a bare path too.`);let W=[];for(let M of V){if(e0.has(M)){W.push($9($,Z,X,M,z[M],J,G,(j)=>H(j)?.[M]));continue}if(!w3.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...w3,...e0].sort().join(", ")}.`);if(!Y.jsonFilters.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`'${M}' on a JSON path is not available on ${Y.name}. Prisma refuses it here too, so this is a difference between the databases rather than a gap in the ORM. It works on postgres.`);let B=z[M],D=B===null?"json":f(B);if(D&&(M==="equals"||M==="not")){W.push(V7(D,X,G,Z,Y,M==="not"));continue}if(D&&B!==null){let j=M==="array_contains"?"'array_contains' tests containment against a document, and a sentinel is not one":`'${M}' compares an extracted value against a scalar, and a sentinel is not one`;throw new I(`where.${Z.name}.${M}`,$.name,J.operation,`${q0(D)} asks which kind of null a value is, which `+`only 'equals' and 'not' can express \u2014 ${j}. Prisma refuses it under this operator too. Write { ${Z.name}: { path: [\u2026], equals: ${q0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${q0(D)} } }.`)}if(Z9(B))throw new I(`where.${Z.name}.${M}`,$.name,J.operation,"Prisma.AnyNull is a question rather than a value \u2014 'either kind of "+"null' \u2014 so it cannot appear inside a document. Ask it directly: "+`{ ${Z.name}: { path: [\u2026], equals: Prisma.AnyNull } }.`);G7(M,B,$,Z,J),W.push(W7(M,X,G,Z,Y,(j)=>H(j)?.[M]))}return W.length===1?W[0]:l(W," and ")}function V7($,Z,X,z,J,H){let Y=()=>R(J.jsonValueAt(Z,X),P(H?" is not null":" is null")),G=()=>R(J.jsonValueAt(Z,X),P(H?" <> ":" = "),g(z,J,()=>J.encode(v3,z)));if($==="db")return Y();if($==="json")return G();return l([G(),Y()],H?" and ":" or ")}function G7($,Z,X,z,J){let H=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(H&&typeof Z!=="string")throw new I(`where.${z.name}.${$}`,X.name,J.operation,`Expected a string, received ${Z===null?"null":typeof Z}. Prisma raises here too \u2014 without this the pattern becomes `+`'%${String(Z)}%', which runs and returns the wrong rows.`);if(Z===null)throw new I(`where.${z.name}.${$}`,X.name,J.operation,$==="array_contains"?"null cannot be tested for containment through a JSON path: the operand binds as SQL NULL rather than as the JSON value, and "+"'x @> NULL' is NULL rather than true \u2014 the query would run and "+`match nothing. A null *inside* the document is an ordinary value and still compiles: { ${z.name}: { path: [\u2026], array_contains: [null] } }.`:`null cannot be compared through a JSON path with '${$}', which `+"compares the extracted value as a number \u2014 the comparison against "+`NULL is NULL rather than true, so the query would run and match nothing. Prisma refuses it here too. For "the value at this path is a JSON null", use equals or not: { ${z.name}: { path: [\u2026], equals: null } }.`);if($==="array_contains"||H)return;if(typeof Z==="object")throw new K(`where.${z.name}.${$}`,X.name,J.operation,`'${$}' on a JSON path compares the extracted value as a scalar, so `+"an object or array operand cannot be expressed \u2014 it would bind as "+`'${String(Z)}' and match nothing. Prisma accepts one here; gemi does not yet. Use array_contains for containment, or narrow the path until it names a scalar.`)}function W7($,Z,X,z,J,H){if($==="array_contains")return J.jsonArrayContains(Z,X,H);let Y=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with",G=J.jsonExtract(Z,X,!0);if(Y){let B=$==="string_contains"?(D)=>`%${D}%`:$==="string_starts_with"?(D)=>`${D}%`:(D)=>`%${D}`;return R(P("("),G,P(") like "),s((D,j)=>{let C=H(D,j);return C===null||C===void 0?null:B(String(C))}))}let V=$==="equals"?"=":$==="not"?"<>":r5[$],W=$!=="equals"&&$!=="not",M=W?R(P("cast(("),G,P(") as real)")):R(P("("),G,P(")"));return R(M,P(` ${V} `),s((B,D)=>{let j=H(B,D);if(j===null||j===void 0)return null;if(W)return Number(j);return J.jsonComparesAsText?String(j):j}))}function M7($,Z,X,z){let{dialect:J}=z,H=J.jsonPathSyntax==="array"?"array":"jsonpath",Y=Array.isArray(X)?"array":typeof X==="string"?"jsonpath":"other";if(Array.isArray(X)&&X.length===0||X==="")throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path cannot be empty. ${J.jsonPathSyntax==="array"?`On ${J.name} an empty array selects the whole document, `+"which is a filter on the column rather than on a path \u2014 write "+`{ ${Z.name}: { equals: \u2026 } } if that is what you meant.`:`On ${J.name} an empty string raises inside json_extract.`}`);if(Y===H){if(H!=="array")return;let V=X.findIndex((B)=>typeof B!=="string");if(V===-1)return;let W=X[V],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${V}] is ${M}. `+(typeof W==="number"?'An array index is a key too \u2014 write ["items", "0"] rather than '+`["items", 0]; it reaches the same element, because ${J.name} takes the path as text. Prisma's path is string[] and its client refuses a number here too.`:"Prisma's path is string[] too."))}throw new K(`${Z.name}.path`,$.name,z.operation,J.jsonPathSyntax==="array"?`On ${J.name} a JSON path is an array of keys \u2014 ["a", "b"] \u2014 `+"not a JSONPath string. Prisma splits them the same way, and refuses the other form on each database.":`On ${J.name} a JSON path is a JSONPath string \u2014 "$.a.b" \u2014 not `+"an array of keys. Prisma splits them the same way, and refuses the other form on each database.")}function k3($,Z,X,z,J){let{dialect:H}=z,Y=`${z.qualifier??""}${H.quoteIdent(Z.column)}`,G=f(X);if(G)throw new I(`where.${Z.name}`,$.name,z.operation,`${q0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${q0(G)} } }.`);if(Z.isList)return $7($,Z,Y,X,z,J);if(!f3(X))return $3(Y,Z,X,H,J);let V=X,W=Object.keys(V).sort();if(V.path!==void 0)return H7($,Z,Y,V,z,J);let M=V.mode==="insensitive";if(V.mode!==void 0&&V.mode!=="default"){if(!M)throw new I(`mode: ${JSON.stringify(V.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!H.supportsInsensitiveMode)throw new K('mode: "insensitive"',$.name,z.operation,`The ${H.name} dialect cannot express it \u2014 Prisma rejects it `+"here too. Note SQLite's LIKE is already case-insensitive for ASCII.")}let B=[];for(let D of W){let j=V[D];if(j===void 0||D==="mode")continue;if(Z.type==="Json"&&e0.has(D)){B.push($9($,Z,Y,D,j,z,void 0,(_)=>J(_)?.[D]));continue}if(!x3.has(D))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`A scalar filter takes ${[...x3].sort().join(", ")}.`);if(D!=="equals"&&D!=="not"&&Z9(j))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Prisma.AnyNull means 'either kind of null', which only 'equals' and 'not' can express. Write { ${Z.name}: { equals: Prisma.AnyNull } }, or name the one you mean with Prisma.DbNull or Prisma.JsonNull.`);let C=(_)=>J(_)?.[D];switch(D){case"equals":B.push($3(Y,Z,j,H,C));break;case"not":B.push(B7($,Z,j,z,C,Y));break;case"in":case"notIn":B.push(j7($,Y,Z,j,z,C,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(R(P(`${Y} ${r5[D]} `),g(Z,H,I0(Z,H,C))));break;case"contains":case"startsWith":case"endsWith":if(typeof j!=="string")throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Expected a string, received ${j===null?"null":typeof j}.`);if(Z.type!=="String")throw new K(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(H.like(Y,M,P7(D,C)));break}}if(B.length===0)return P("true");if(B.length===1)return B[0];return l(B," and ")}function q0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function Z9($){if(f($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>f(Z)==="any")}function B7($,Z,X,z,J,H){if(X===null||f(X)==="db")return P(`${H} is not null`);if(f(X)==="json")return R(P("not "),b0($3(H,Z,X,z.dialect,J)));if(f(X)==="any")return R(P("not "),b0($3(H,Z,X,z.dialect,J)));if(!f3(X))return R(P(`${H} <> `),g(Z,z.dialect,I0(Z,z.dialect,J)));let Y=k3($,Z,X,z,J);return R(P("not "),b0(Y))}function $3($,Z,X,z,J){if(X===null||f(X)==="db")return P(`${$} is null`);if(f(X)==="any")return l([P(`${$} is null`),D7($,Z,z)]," or ");return R(P(`${$} = `),g(Z,z,I0(Z,z,J)))}function D7($,Z,X){return R(P(`${$} = `),g(Z,X,()=>X.encode(v3,Z)))}function j7($,Z,X,z,J,H,Y){let{dialect:G}=J;if(!Array.isArray(z))throw new I(`where.${X.name}.${Y?"notIn":"in"}`,$.name,J.operation,"Expected an array.");if(z.length===0)return Y?P("true"):t5;return G.inList(Z,Y,z.length,(V)=>{return H(V).map((M)=>G.encode(M,X))})}function P7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function I0($,Z,X){return(z)=>Z.encode(X(z),$)}function f3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function X9($,Z,X,z,J,H,Y){let G=`orderBy.${Z.name}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(G,$.name,z,Z.kind==="many"?'Expected { _count: "asc" | "desc" }.':`Expected an object naming one field of ${Z.model}.`);let V=X,W=Object.keys(V).filter((_)=>_!=="where");if(W.length!==1)throw new K(G,$.name,z,W.length===0?"Name the field to order by.":`Name exactly one field to order by; got ${W.join(", ")}. `+"Order by several with an array: [{ a: \u2026 }, { b: \u2026 }].");let[M]=W,B=R0($,Z,J,`_o${Y}`,`${J.quoteIdent($.table)}.`,z),D=K7($,Z,B.child,M,V[M],z,B.qualifier,J),j=v(B.child,V.where,{dialect:J,operation:z,qualifier:B.qualifier},(_)=>H(_)?.where),C=[P(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(j)C.push(P(" and "),j);return C.push(P(")")),{expression:R(...C),direction:D.direction,nulls:D.nulls}}function K7($,Z,X,z,J,H,Y,G){let V=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=Q7($,V,J,H);if(z===i){if(Z.kind!=="many")throw new K(V,$.name,H,`${Z.name} is a to-one relation, so its count is 0 or 1. Order by one of ${X.name}'s fields instead.`);return{expression:"count(*)",direction:W,nulls:M}}if(Z.kind==="many")throw new K(V,$.name,H,`${Z.name} is a to-many relation, so ordering by '${z}' has no single answer for a parent with several children. Only `+"{ _count: \u2026 } is supported.");let B=X.fields[z];if(!B)throw new K(V,$.name,H,`'${z}' is not a field on ${X.name}. Known fields: ${Object.keys(X.fields).join(", ")}.`);return{expression:`${Y}${G.quoteIdent(B.column)}`,direction:W,nulls:M}}function Q7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:H}=X;if(J!=="asc"&&J!=="desc")throw new I(Z,$.name,z,'Expected "asc" or "desc".');if(H===void 0)return{direction:J};if(H!=="first"&&H!=="last")throw new K(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:H}}throw new K(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var _7=new Set(["asc","desc"]),C7=new Set(["first","last"]);function V0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),H=J?Z:[Z],Y=[];for(let G=0;G<H.length;G++){let V=H[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof V!=="object"||V===null)throw new I("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(V)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new K(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let j=X9($,$.relations[M],B,X,z.dialect,(C)=>W(C)?.[M],Y.length);Y.push({column:M,direction:j.direction,...j.nulls?{nulls:j.nulls}:{},expression:j.expression});continue}let D=$.fields[M];if(!D)throw new k(M,$.name,Object.keys($.fields));Y.push({column:D.column,...z9($,M,B,X)})}}return Y}function z9($,Z,X,z){if(typeof X==="string"){if(!_7.has(X))throw new I(`orderBy.${Z}: ${JSON.stringify(X)}`,$.name,z,'Expected "asc" or "desc".');return{direction:X}}if(typeof X==="object"&&X!==null){let{sort:J,nulls:H}=X,Y=z9($,Z,J,z).direction;if(H===void 0)return{direction:Y};if(typeof H!=="string"||!C7.has(H))throw new K(`orderBy.${Z}.nulls: ${JSON.stringify(H)}`,$.name,z,'Expected "first" or "last".');return{direction:Y,nulls:H}}throw new K(`orderBy.${Z}`,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}function Z3($){return $.map((Z)=>({...Z,direction:Z.direction==="asc"?"desc":"asc",...Z.nulls?{nulls:Z.nulls==="first"?"last":"first"}:{}}))}function o($,Z,X){if($.length===0)return null;return w($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return w([z.expression,P(J)],"");return P(`${X??""}${Z.quoteIdent(z.column)}${J}`)}),", ")}function X3($,Z,X,z,J){if(typeof J!=="number"||!Number.isInteger(J))throw new I(X,$,Z,`Expected an integer, got ${JSON.stringify(J)}.`);if(z==="skip"&&J<0)throw new I(X,$,Z,"A 'skip' counts rows to pass over, so it cannot be negative. Prisma rejects one too.")}function j0($,Z,X,z,J,H=!1){if(X?.take!==void 0)X3($.name,Z,"take","take",X.take);if(X?.skip!==void 0)X3($.name,Z,"skip","skip",X.skip);let Y=H?1:X?.take,G=X?.skip,V=J;if((Y!==void 0||G!==void 0)&&V.length===0&&!H)V=$.primaryKey.map((j)=>({column:$.fields[j]?.column??j,direction:"asc"}));let M=typeof Y==="number"&&Y<0;if(M)V=Z3(V);let B=Y===void 0?null:H?()=>1:(j)=>Math.abs(Number(j?.take)),D=G===void 0?null:(j)=>Number(j?.skip);return{clause:z.paginate(B,D),terms:V,reversed:M}}function Z0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new K("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new K("select + omit",$.name,X,"'select' names what to keep and 'omit' what to drop, so the two describe different column lists. Prisma allows only one of them on "+"the same query. Drop the 'omit' \u2014 a 'select' already excludes "+"everything it does not name.");if(z===void 0||z===null)return L7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new I("select",$.name,X,"Expected an object.");let H=[];for(let[G,V]of Object.entries($.fields))if(z[G]===!0)H.push(V);let Y=0;for(let G of Object.keys(z)){let V=z[G];if(V===void 0)continue;if(G in $.relations){if(V!==!1)Y++;continue}if(G===i){if(V!==!1)Y++;continue}if(!(G in $.fields))throw new k(G,$.name,Object.keys($.fields));if(typeof V!=="boolean")throw new I(`select.${G}`,$.name,X,"Expected true or false.")}if(H.length===0&&Y===0)throw new K("select",$.name,X,"At least one field must be selected.");return H}function L7($,Z,X){if(Z===void 0||Z===null)return Object.values($.fields);if(typeof Z!=="object"||Array.isArray(Z))throw new I("omit",$.name,X,"Expected an object of fields.");let z=new Set;for(let H of Object.keys(Z)){let Y=Z[H];if(Y===void 0)continue;if(H in $.relations)throw new K(`omit.${H}`,$.name,X,`'${H}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(H in $.fields))throw new k(H,$.name,Object.keys($.fields));if(typeof Y!=="boolean")throw new I(`omit.${H}`,$.name,X,"Expected true or false.");if(Y)z.add(H)}let J=Object.values($.fields).filter((H)=>!z.has(H.name));if(J.length===0)throw new K("omit",$.name,X,`It omits every field on ${$.name}, which leaves no column to select. Prisma rejects that too.`);return J}function z3($,Z,X){if(X.length===0)return{fields:Z};let z=new Set(Z.map((Y)=>Y.name)),J=X.filter((Y)=>!z.has(Y));if(J.length===0)return{fields:Z};let H=new Set([...z,...J]);return{fields:Object.values($.fields).filter((Y)=>H.has(Y.name)),hidden:J}}var J9=new Set(["where","orderBy","select","omit","include","take","skip"]),Y9=new Set(["where","select","omit","include"]),H3=10;function k0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function O0($,Z,X,z,J=W0){let H=f0($,Z,z);if(H.length===0)return{plans:[],keyFields:[]};let Y=[],G=new Set;for(let V of H){B9($,V,z);let W=P9($,V);D9(W,V.node,z,2);let M=J.plan({parent:$,child:W,relation:V.relation,as:V.as,node:V.node,locate:V.locate,dialect:X,operation:z});Y.push(M);for(let B of M.parentFields)G.add(B)}return{plans:Y,keyFields:[...G]}}async function V3($,Z,X,z,J){let H=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(H.length===0)return;for(let Y of $){if(Y.root)continue;await Y.load(H,z,J)}if(Z&&Z.length>0)for(let Y of H)for(let G of Z)delete Y[G]}function f0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;M9($,z,J,X);let H=[];if(z!==void 0&&z!==null){if(typeof z!=="object"||Array.isArray(z))throw new I("include",$.name,X,"Expected an object.");for(let Y of Object.keys(z).sort()){let G=z[Y];if(G===void 0||G===!1)continue;if(Y===i)continue;let V=$.relations[Y];if(!V)throw new x0(Y,$.name,Object.keys($.relations));H.push({as:Y,relation:V,node:G,locate:(W)=>W?.include?.[Y]})}return H}if(J!==void 0&&J!==null&&typeof J==="object")for(let Y of Object.keys(J).sort()){let G=J[Y];if(G===void 0||G===!1)continue;let V=$.relations[Y];if(!V)continue;H.push({as:Y,relation:V,node:G,locate:(W)=>W?.select?.[Y]})}return H}function M9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new K(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function B9($,Z,X){let z=Z.node;if(z===!0)return;if(typeof z!=="object"||z===null||Array.isArray(z))throw new I(Z.as,$.name,X,"Expected true or an object of relation arguments.");let J=z;M9($,J.include,J.select,X,Z.as);let H=Z.relation.kind==="many";for(let Y of Object.keys(J).sort()){if(J[Y]===void 0)continue;if(H&&(Y==="take"||Y==="skip")){T7($,Z,X,Y,J[Y]);continue}if(H?J9.has(Y):Y9.has(Y))continue;if(Y==="lock")throw new w0(`${Z.as}.lock`,$.name,X,"'lock' locks the rows of the model being queried, not an included relation's. Lock the related rows with their own locking read in the same transaction.");if(Y==="orderBy"&&!H)throw new K(`${Z.as}.orderBy`,$.name,X,"Prisma does not accept 'orderBy' on a to-one relation \u2014 there is at "+"most one row to order.");if(Y==="take"||Y==="skip")throw new K(`${Z.as}.${Y}`,$.name,X,`Prisma does not accept '${Y}' on a to-one relation.`);throw new K(`${Z.as}.${Y}`,$.name,X,`A relation node takes ${[...H?J9:Y9].sort().join(", ")}.`)}}function T7($,Z,X,z,J){X3($.name,X,`${Z.as}.${z}`,z,J)}function u3($,Z){let X=$.node;if(typeof X!=="object"||X===null||Array.isArray(X))return;for(let z of["take","skip"]){if(X[z]===void 0)continue;throw new K(`${$.as}.${z}`,$.parent.name,$.operation,`A '${z}' inside a to-many relation is per parent, and the batched `+"relation planner serves every parent from one query \u2014 so the only "+`limit it could emit would page every parent's children as one set. Only the lateral join strategy can express it, by paginating inside a subquery that already runs once per parent row, and it needs Postgres: ${Z}. Load '${$.as}' as its own query, or narrow it with 'where'.`)}}function D9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)Z0($,Z,X);let J=f0($,Z,X);if(J.length===0)return;if(z>H3)throw new g3($.name,H3);for(let H of J)B9($,H,X),D9(P9($,H),H.node,X,z+1)}function j9($,Z,X,z){if($.parentFields.length!==1)throw new K(X.name,Z.name,z,`${X.name} joins on ${$.parentFields.length} fields (${$.parentFields.join(", ")}), and it is planned through a join table, which links two models by a single primary key each side. Prisma does not build an implicit many-to-many over a composite key.`);return{parentField:$.parentFields[0],childField:$.childFields[0],join:$.join}}function H0($,Z,X,z){if(X.joinTable)return I7($,Z,X);if(X.from.length>0)return H9($,X,X.from,X.to,z);let J=R7($,Z,X);if(J.from.length===0)throw new d($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return H9($,X,J.to,J.from,z)}function H9($,Z,X,z,J){if(X.length===0)throw new K(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new d($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function R7($,Z,X){let z=Object.values(Z.relations).filter((J)=>J.relationName===X.relationName&&!(Z.name===$.name&&J.name===X.name));if(z.length!==1)throw new d($.name,X.name,z.length===0?`${Z.name} declares no relation named '${X.relationName}'.`:`${Z.name} declares ${z.length} relations named '${X.relationName}'.`);return z[0]}function I7($,Z,X){let{table:z,a:J,b:H}=X.joinTable;if(J===H){let G=X.joinTable.ownerColumn;if(!G)throw new K(X.name,$.name,"include",`${X.name} is a self-referential implicit many-to-many, and the generated artifact predates support for one. Re-run \`prisma generate\`.`);return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:G,childColumn:G==="A"?"B":"A"}}}if($.name!==J&&$.name!==H)throw new d($.name,X.name,`the join table '${z}' connects ${J} and ${H}, neither of which is ${$.name}.`);let Y=$.name===J?"A":"B";return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:Y,childColumn:Y==="A"?"B":"A"}}}function J3($,Z){if($.primaryKey.length!==1)throw new d($.name,Z.name,`an implicit many-to-many joins on ${$.name}'s primary key, which has ${$.primaryKey.length} fields.`);return $.primaryKey[0]}function Y3($,Z,X){let z=$.fields[X];if(!z)throw new d($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function P9($,Z){return e($,Z.relation,Z.as)}function e($,Z,X=Z.name){let z=Z.model;if(!P0(z))throw new y3($.name,X,z,W9());let J=G0(z)?.$schema;if(!J)throw new v0(z);return J}var V9="batched",W0={name:V9,plan($){u3($,"this query planned with the batched strategy");let Z=H0($.parent,$.child,$.relation,$.operation);for(let H of Z.parentFields)G9($.parent,$.relation,Y3($.parent,$.relation,H));for(let H of Z.childFields)G9($.child,$.relation,Y3($.child,$.relation,H));let X=Y3($.parent,$.relation,Z.parentFields[0]),z=Y3($.child,$.relation,Z.childFields[0]),J=$.relation.kind==="many";return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:Z.parentFields,strategy:V9,load(H,Y,G){let V={parentKeyField:X,childKeyField:z,many:J,parents:H,args:Y,executor:G};return Z.join?N7($,Z,V):U7($,Z,V)}}}};async function U7($,Z,X){let{keys:z,byKey:J}=_9(X.parents,Z.parentFields);if(z.length===0)return;let H=$.locate(X.args),Y=K9(H,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",Y.args,!0);for(let V of G){let W=J.get(E0(Z.childFields.map((M)=>V[M])));if(!W)continue;for(let M of W)Q9(M,$.as,V,X.many)}if(Y.hidden)for(let V of G)for(let W of Z.childFields)delete V[W]}async function N7($,Z,X){let{keys:z,byKey:J}=_9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:H}=$,Y=Z.join,G=await O7(H,Y,z.map((j)=>H.encode(j[0],X.parentKeyField)),X.executor),V=new Map,W=[];for(let j of G){let C=E0([H.decode(j[Y.parentColumn],X.parentKeyField)]),_=J.get(C);if(!_)continue;let F=H.decode(j[Y.childColumn],X.childKeyField),T=E0([F]),Q=V.get(T);if(Q===void 0)Q=[],V.set(T,Q),W.push([F]);for(let L of _)Q.push(L)}if(W.length===0)return;let M=$.locate(X.args),B=K9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let j of D){let C=V.get(E0([j[Z.childFields[0]]]));if(!C)continue;for(let _ of C)Q9(_,$.as,j,X.many)}if(B.hidden)for(let j of D)delete j[Z.childFields[0]]}async function O7($,Z,X,z){let J=R(P(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:H,binders:Y}=p(J,$,{model:Z.table,operation:"include"}),G=N0();return z.query(H,Y.map((V)=>V(void 0,G)))}function K9($,Z,X,z,J){let H=$===!0||$===null||typeof $!=="object"?{}:$,Y=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:F7(z,Z,X,J),G={where:H.where===void 0?Y:{AND:[H.where,Y]}};if(H.orderBy!==void 0)G.orderBy=H.orderBy;if(H.include!==void 0)G.include=H.include;let V=H.omit;if(V!==void 0){let B=Z.filter((D)=>V[D]===!0);if(B.length===0)G.omit=V;else{let D={...V};for(let j of B)delete D[j];return G.omit=D,{args:G,hidden:!0}}}let W=H.select;if(W===void 0)return{args:G,hidden:!1};let M=Z.filter((B)=>W[B]!==!0);if(M.length===0)return G.select=W,{args:G,hidden:!1};G.select={...W};for(let B of M)G.select[B]=!0;return{args:G,hidden:!0}}function F7($,Z,X,z){let J=Z.map((H)=>$.fields[H]?.type);if(J.every((H)=>H!==void 0)&&z.canBindCompositeIn(J))return{[$0]:e5(Z,X)};return{OR:X.map((H)=>Object.fromEntries(Z.map((Y,G)=>[Y,H[G]])))}}function E0($){return JSON.stringify($.map(S7))}function Q9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function _9($,Z){let X=new Map,z=[];for(let J of $){let H=Z.map((V)=>J[V]);if(H.some((V)=>V===null||V===void 0))continue;let Y=E0(H),G=X.get(Y);if(G===void 0)G=[],X.set(Y,G),z.push(H);G.push(J)}return{keys:z,byKey:X}}function S7($){if(typeof $!=="object"||$===null)return $;if($ instanceof Date)return $.getTime();if(ArrayBuffer.isView($)){let Z=new Uint8Array($.buffer,$.byteOffset,$.byteLength),X="";for(let z of Z)X+=z.toString(16).padStart(2,"0");return`bytes:${X}`}throw Error(`Cannot key a relation stitch on ${Object.prototype.toString.call($)}.`)}function G9($,Z,X){if(X.isList)throw new d($.name,Z.name,`it joins on '${X.name}', a ${X.type} list \u2014 which decodes to a new `+"array per row and so cannot be compared between the two sides.");if(X.type!=="Json")return;throw new d($.name,Z.name,`it joins on '${X.name}', a ${X.type} \u2014 which decodes to a new object `+"per row and so cannot be compared between the two sides.")}var C9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),L9=!0;function A7($){L9=$}function b7(){return C9}function g0($,Z,X=[]){if(C9&&L9)return q7($,Z,X);return m3($,Z,X)}function m3($,Z,X=[]){let z=$.map((G)=>({key:G.name,column:G.column,field:G,decode:Z.needsDecode(G)})),J=z.length,H=X.map((G)=>({key:G.key,many:G.kind==="many"})),Y=H.length;return(G)=>{let V=[];for(let W=0;W<G.length;W++){let M=G[W],B={};for(let D=0;D<J;D++){let j=z[D],C=M[j.column];B[j.key]=j.decode?Z.decode(C,j.field):C??null}for(let D=0;D<Y;D++)B[H[D].key]=H[D].many?[]:null;V.push(B)}return V}}function q7($,Z,X){let z=[];for(let H=0;H<$.length;H++){let Y=$[H],G=JSON.stringify(Y.name),V=JSON.stringify(Y.column);z.push(Z.needsDecode(Y)?`${G}: d.decode(row[${V}], f[${H}])`:`${G}: row[${V}] ?? null`)}for(let H of X)z.push(`${JSON.stringify(H.key)}: ${H.kind==="many"?"[]":"null"}`);let J=`
2
+ import{ba as Y6}from"../chunk-4jc7wbet.js";import{$a as J6,Fa as l5,Ga as o5,Ha as i,Ia as T9,Ja as U3,Ka as e8,La as $6,Ma as S0,Na as p5,Oa as N3,Pa as Z6,Qa as t0,Ra as L0,Sa as k4,Ta as f4,Ua as g4,Va as w5,Wa as y4,Xa as h4,Ya as u4,Za as X6,_a as z6}from"../chunk-gqcmnyc8.js";import{Vg as l8,Wg as o8,Xg as t8,Yg as r8,Zg as a8}from"../chunk-n7576zsr.js";import{$g as n,_g as N0,ah as P,bh as s,eh as R,fh as w,gh as p,hh as m8,ih as p8,jh as a3,kh as d8,lh as v3,mh as f,nh as c8,oh as s8,ph as i8,qh as n8,rh as m5}from"../chunk-5benn2ys.js";import"../chunk-yhp70t40.js";import{$i as h8,Vi as E8,Wi as P0,Xi as G0,Yi as W9,Zi as h3,aj as u8,fj as q4,gj as E4,hj as w4,ij as x4,jj as v4}from"../chunk-y6gr3stt.js";import{Aj as k5,Bj as P3,Cj as x0,Dj as g3,Ej as y3,Fj as d,Gj as q8,Hj as v0,Ij as f5,kj as K,lj as I,mj as w0,nj as k,oj as U8,pj as r,qj as N8,rj as x5,sj as O8,tj as j5,uj as F8,wj as S8,xj as v5,yj as A8,zj as b8}from"../chunk-pv2mtg8n.js";import{$j as q5,Pj as v8,Qj as o0,Rj as _0,Sj as T3,Vj as k8,Xj as f8,Yj as g8,Zj as g5,_j as y5,ak as R3,bk as y8,ck as h5,dk as u5}from"../chunk-ghbzre7k.js";import{ok as w8,qk as x8,sk as E5}from"../chunk-c6c7p43e.js";import{Sk as b5}from"../chunk-xwmy6fby.js";import"../chunk-27xv8kty.js";import"../chunk-038xtqpm.js";function R0($,Z,X,z,J,H){let Y=e($,Z),G=H0($,Y,Z,H),V=X.quoteIdent(z),W=`${V}.`,M=G.parentFields.map((C,_)=>{let F=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[_]))}`,T=`${J}${X.quoteIdent(r0($,Z,C))}`;return`${F} = ${T}`}).join(" and ");if(!G.join)return{child:Y,source:`${X.quoteIdent(Y.table)} as ${V}`,correlation:M,qualifier:W};let B=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[0]))}`,D=`${J}${X.quoteIdent(r0($,Z,G.parentFields[0]))}`,j=X.quoteIdent(`${z}j`);return{child:Y,source:`${X.quoteIdent(Y.table)} as ${V} join ${X.quoteIdent(G.join.table)} as ${j} on ${j}.${X.quoteIdent(G.join.childColumn)} = ${B}`,correlation:`${j}.${X.quoteIdent(G.join.parentColumn)} = ${D}`,qualifier:W}}function r0($,Z,X){let z=$.fields[X];if(!z)throw new d($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function h($,Z,X){let z=a0($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw i5($,X,z);let J=Object.keys(Z).filter((Y)=>Z[Y]!==void 0),H=Z;for(let Y of z){if(Y.length===1&&J.includes(Y[0]))return s5($,X,Y[0],H[Y[0]]),Y;let G=Y.join("_");if(Y.length>1&&J.includes(G)){let V=H[G];if(V&&typeof V==="object"&&!Array.isArray(V))for(let W of Y)s5($,X,`${G}.${W}`,V[W]);return Y}}throw i5($,X,z)}function A3($){if($===null||$===void 0)return!1;let Z=typeof $;if(Z!=="object")return Z!=="function"&&Z!=="symbol";if(Array.isArray($))return!1;if($ instanceof Date||ArrayBuffer.isView($))return!0;let X=Object.getPrototypeOf($);return X!==Object.prototype&&X!==null}function s5($,Z,X,z){if(z===void 0||A3(z))return;throw new I(`${Z.argument}.${X}`,Z.model,Z.operation,`A unique key takes a plain value to match, not ${z===null?"null":Array.isArray(z)?"an array":"a filter object"}. Use findFirst/findMany (or updateMany/deleteMany) to filter on ${$.name}.${X.split(".").pop()}.`)}function b3($,Z,X){h($,Z,{model:$.name,operation:X,argument:"where"})}function a0($){let Z=[];if($.primaryKey.length>0)Z.push($.primaryKey);for(let X of $.uniques)Z.push(X);return Z}function i5($,Z,X){let z=X.map((Y)=>Y.length===1?Y[0]:Y.join("_")).join(", "),H=Z.argument.startsWith("data.")?`Name it by one of those, or reach it through the ${$.name} model directly.`:`Use ${Z.operation==="delete"||Z.operation==="update"?`${Z.operation}Many`:"findFirst"} to query on anything else.`;return new K(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${H}`)}function g($,Z,X){let z=Z.castParameter($);if(!z)return s(X);return s((J,H)=>{let Y=X(J,H);if(Y===null||Y===void 0)return null;let G=f(Y);if(G==="db")return null;if(G==="json")return"null";if(G==="any")throw Error("gemi ORM bug: Prisma.AnyNull reached the parameter binder. It is a filter operand only, and both the filter and write paths are supposed to have handled it before this point.");return JSON.stringify(Y)},z)}function v($,Z,X,z){if(Z===void 0||Z===null)return null;if(typeof Z!=="object"||Array.isArray(Z))throw new I("where",$.name,X.operation,"Expected an object.");let J=[];for(let H of Object.keys(Z).sort()){let Y=Z[H];if(Y===void 0)continue;let G=(W)=>z(W)?.[H];if(H==="AND"||H==="OR"){let W=n5($,Y,X,G,H);if(W)J.push(W);continue}if(H===$0){J.push(r4($,Y,X,G));continue}if(H==="NOT"){let W=n5($,Y,X,G,"AND");if(W)J.push(R(P("not "),b0(W)));continue}if(H in $.relations){let W=l4($,$.relations[H],Y,X,G);if(W)J.push(W);continue}let V=$.fields[H];if(!V){let W=t4($,H,Y,X,G);if(W){J.push(W);continue}throw new k(H,$.name,Object.keys($.fields))}J.push(k3($,V,Y,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return l(J," and ")}function l4($,Z,X,z,J){let H=l5(Z.kind),Y=o4($,Z,X,H,z),G=z.relationDepth??0,V=z.dialect,W=z.qualifier??`${V.quoteIdent($.table)}.`,M=R0($,Z,V,`_r${G}`,W,z.operation),B=M.child,D=P(M.correlation),j={...z,qualifier:M.qualifier,relationDepth:G+1},C=[];for(let _ of H){if(!(_ in Y))continue;let F=Y[_],T=(U)=>Y.direct?J(U):J(U)?.[_];if(F===null){C.push(q3(M,D,null,_==="is"));continue}let Q=v(B,F,j,T);if(_==="every"){if(!Q)continue;C.push(q3(M,D,R(P("not "),b0(Q)),!0));continue}let L=_==="none"||_==="isNot";C.push(q3(M,D,Q,L))}if(C.length===0)return null;if(C.length===1)return C[0];return l(C," and ")}function q3($,Z,X,z){let J=[P(`${z?"not ":""}exists (select 1 from ${$.source} where `),Z];if(X)J.push(P(" and "),X);return J.push(P(")")),R(...J)}function o4($,Z,X,z,J){let H=`where.${Z.name}`,Y=Z.kind==="many";if(X===null){if(Y)throw new K(H,$.name,J.operation,`${Z.name} is a to-many relation, so null is not a filter for it. Use { none: {} } for "has no related rows".`);return{is:null,direct:!0}}if(typeof X!=="object"||Array.isArray(X))throw new I(H,$.name,J.operation,Y?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(o5(X,z))return X;if(Y)throw new K(H,$.name,J.operation,`Expected one of ${z.join(", ")}. A to-many relation has no `+"single reading of a bare filter \u2014 { some: \u2026 } and { every: \u2026 } mean "+"different things.");return{is:X,direct:!0}}function t4($,Z,X,z,J){let H=a0($).find((V)=>V.length>1&&V.join("_")===Z);if(!H)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`where.${Z}`,$.name,z.operation,`Expected an object holding ${H.join(" and ")}.`);let Y=X,G=[];for(let V of H){if(Y[V]===void 0)throw new K(`where.${Z}`,$.name,z.operation,`Missing '${V}'. A composite key needs all of ${H.join(", ")}.`);if(!A3(Y[V]))throw new I(`where.${Z}.${V}`,$.name,z.operation,`A composite key takes a plain value for each of ${H.join(", ")}, not a filter, an array or null.`);G.push(k3($,$.fields[V],Y[V],z,(W)=>J(W)?.[V]))}return G.length===1?G[0]:l(G," and ")}function n5($,Z,X,z,J){let H=[];if(Array.isArray(Z))for(let Y=0;Y<Z.length;Y++){let G=v($,Z[Y],X,(V)=>z(V)?.[Y]);if(G)H.push(G)}else{let Y=v($,Z,X,z);if(Y)H.push(Y)}if(H.length===0)return J==="AND"?null:t5;if(H.length===1)return H[0];return l(H,J==="AND"?" and ":" or ")}var t5=P("false");function l($,Z){return R(P("("),w($,Z),P(")"))}function b0($){return $.text.startsWith("(")?$:l([$],"")}var x3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),r5={lt:"<",lte:"<=",gt:">",gte:">="},$0="$compositeIn",a5=Symbol("gemi.orm.compositeInFromPlanner");function e5($,Z){return{[a5]:!0,fields:$,values:Z}}function r4($,Z,X,z){let{dialect:J}=X,Y=a4($,Z,X).map((V)=>{let W=$.fields[V];if(!W)throw new k(V,$.name,Object.keys($.fields));return W}),G=Y.map((V)=>`${X.qualifier??""}${J.quoteIdent(V.column)}`);return J.compositeIn(G,Y.map((V)=>V.type),(V)=>z(V).values)}function a4($,Z,X){let z=()=>{throw new k($0,$.name,Object.keys($.fields))};if(typeof Z!=="object"||Z===null||Array.isArray(Z))return z();if(Z[a5]!==!0)return z();let J=(G)=>{throw new K($0,$.name,X.operation,G)},{fields:H,values:Y}=Z;if(!Array.isArray(H)||H.length===0)return J(`the planner built a '${$0}' with no fields.`);if(!H.every((G)=>typeof G==="string"))return J(`the planner built a '${$0}' with a non-string field.`);if(!Array.isArray(Y))return J(`the planner built a '${$0}' with no values.`);if(!Y.every((G)=>Array.isArray(G)&&G.length===H.length))return J(`the planner built a '${$0}' whose tuples do not all have ${H.length} value(s).`);return H}var e4=["equals","has","hasEvery","hasSome","isEmpty"],E3=new Set(e4);function $7($,Z,X,z,J,H){let{dialect:Y}=J;if(U0($,Z,`where.${Z.name}`,J.operation,Y),Array.isArray(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a bare array is not a filter on `+"one \u2014 Prisma rejects it here too. Say which comparison you mean: "+`{ ${Z.name}: { equals: [...] } } for the whole list, or { ${Z.name}: { hasEvery: [...] } } for "contains all of these". A bare array *is* accepted as a value in \`data\`.`);if(!f3(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list. Expected an object holding ${[...E3].sort().join(", ")}; received ${z===null?"null":typeof z}.`);let G=z,V=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;if(!E3.has(W))throw new I(`where.${Z.name}.${W}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a list filter takes ${[...E3].sort().join(", ")}. The scalar operators \u2014 `+`${[...x3].sort().join(", ")} \u2014 apply to a single value and `+"Prisma does not offer them here.");let B=(D)=>H(D)?.[W];V.push(Z7($,Z,X,W,M,J,B))}if(V.length===0)return P("true");if(V.length===1)return V[0];return l(V," and ")}function Z7($,Z,X,z,J,H,Y){let{dialect:G}=H;if(z==="equals")return X7($,Z,X,J,H,Y);if(z==="isEmpty"){if(typeof J!=="boolean")throw new I(`where.${Z.name}.isEmpty`,$.name,H.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=z7(Z);return G.listHas(X,g(W,G,I0(W,G,Y)))}if(!Array.isArray(J))throw new I(`where.${Z.name}.${z}`,$.name,H.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let V=g(Z,G,I0(Z,G,Y));return z==="hasEvery"?G.listHasEvery(X,V):G.listHasSome(X,V)}function X7($,Z,X,z,J,H){let{dialect:Y}=J;if(z===null)return P(`${X} is null`);if(!Array.isArray(z))throw new I(`where.${Z.name}.equals`,$.name,J.operation,`'${Z.name}' is a scalar list, so it compares against an array. Received ${typeof z}. For "is this element present", use { ${Z.name}: { has: \u2026 } }.`);return R(P(`${X} = `),g(Z,Y,I0(Z,Y,H)))}function z7($){return{...$,isList:!1}}function U0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new K(X,$.name,z,`'${Z.name}' is a scalar list, and ${J.name} has no array type to hold one. Prisma refuses the column itself on ${J.name} \u2014 `+'"the current connector does not support lists of primitive types" \u2014 so '+`this is a difference between the databases rather than a gap in the ORM. The generated artifact is dialect-agnostic, which is why this surfaces here rather than at \`prisma generate\`: the schema was generated against Postgres and DATABASE_URL names a ${J.name} database, which has no '${Z.column}' column either. It works on postgres.`)}var J7=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],w3=new Set(J7),Y7=["has_key","has_some_keys","has_every_key"],e0=new Set(Y7);function $9($,Z,X,z,J,H,Y,G){let V=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(V?Array.isArray(D)&&D.every((C)=>typeof C==="string"):typeof D==="string"))throw new I(W,$.name,H.operation,V?"Expected an array of key names, like ['a', 'b'].":"Expected a key name, like 'a'.");return D};M(J);let B=(D,j)=>M(G(D,j));return H.dialect.jsonHasKeys(X,Y,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function H7($,Z,X,z,J,H){let{dialect:Y}=J;if(Z.type!=="Json")throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);M7($,Z,z.path,J);let G=(M)=>H(M)?.path,V=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(V.length===0)throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' needs a filter beside it \u2014 ${[...w3,...e0].sort().join(", ")}. Prisma refuses a bare path too.`);let W=[];for(let M of V){if(e0.has(M)){W.push($9($,Z,X,M,z[M],J,G,(j)=>H(j)?.[M]));continue}if(!w3.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...w3,...e0].sort().join(", ")}.`);if(!Y.jsonFilters.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`'${M}' on a JSON path is not available on ${Y.name}. Prisma refuses it here too, so this is a difference between the databases rather than a gap in the ORM. It works on postgres.`);let B=z[M],D=B===null?"json":f(B);if(D&&(M==="equals"||M==="not")){W.push(V7(D,X,G,Z,Y,M==="not"));continue}if(D&&B!==null){let j=M==="array_contains"?"'array_contains' tests containment against a document, and a sentinel is not one":`'${M}' compares an extracted value against a scalar, and a sentinel is not one`;throw new I(`where.${Z.name}.${M}`,$.name,J.operation,`${q0(D)} asks which kind of null a value is, which `+`only 'equals' and 'not' can express \u2014 ${j}. Prisma refuses it under this operator too. Write { ${Z.name}: { path: [\u2026], equals: ${q0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${q0(D)} } }.`)}if(Z9(B))throw new I(`where.${Z.name}.${M}`,$.name,J.operation,"Prisma.AnyNull is a question rather than a value \u2014 'either kind of "+"null' \u2014 so it cannot appear inside a document. Ask it directly: "+`{ ${Z.name}: { path: [\u2026], equals: Prisma.AnyNull } }.`);G7(M,B,$,Z,J),W.push(W7(M,X,G,Z,Y,(j)=>H(j)?.[M]))}return W.length===1?W[0]:l(W," and ")}function V7($,Z,X,z,J,H){let Y=()=>R(J.jsonValueAt(Z,X),P(H?" is not null":" is null")),G=()=>R(J.jsonValueAt(Z,X),P(H?" <> ":" = "),g(z,J,()=>J.encode(v3,z)));if($==="db")return Y();if($==="json")return G();return l([G(),Y()],H?" and ":" or ")}function G7($,Z,X,z,J){let H=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(H&&typeof Z!=="string")throw new I(`where.${z.name}.${$}`,X.name,J.operation,`Expected a string, received ${Z===null?"null":typeof Z}. Prisma raises here too \u2014 without this the pattern becomes `+`'%${String(Z)}%', which runs and returns the wrong rows.`);if(Z===null)throw new I(`where.${z.name}.${$}`,X.name,J.operation,$==="array_contains"?"null cannot be tested for containment through a JSON path: the operand binds as SQL NULL rather than as the JSON value, and "+"'x @> NULL' is NULL rather than true \u2014 the query would run and "+`match nothing. A null *inside* the document is an ordinary value and still compiles: { ${z.name}: { path: [\u2026], array_contains: [null] } }.`:`null cannot be compared through a JSON path with '${$}', which `+"compares the extracted value as a number \u2014 the comparison against "+`NULL is NULL rather than true, so the query would run and match nothing. Prisma refuses it here too. For "the value at this path is a JSON null", use equals or not: { ${z.name}: { path: [\u2026], equals: null } }.`);if($==="array_contains"||H)return;if(typeof Z==="object")throw new K(`where.${z.name}.${$}`,X.name,J.operation,`'${$}' on a JSON path compares the extracted value as a scalar, so `+"an object or array operand cannot be expressed \u2014 it would bind as "+`'${String(Z)}' and match nothing. Prisma accepts one here; gemi does not yet. Use array_contains for containment, or narrow the path until it names a scalar.`)}function W7($,Z,X,z,J,H){if($==="array_contains")return J.jsonArrayContains(Z,X,H);let Y=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with",G=J.jsonExtract(Z,X,!0);if(Y){let B=$==="string_contains"?(D)=>`%${D}%`:$==="string_starts_with"?(D)=>`${D}%`:(D)=>`%${D}`;return R(P("("),G,P(") like "),s((D,j)=>{let C=H(D,j);return C===null||C===void 0?null:B(String(C))}))}let V=$==="equals"?"=":$==="not"?"<>":r5[$],W=$!=="equals"&&$!=="not",M=W?R(P("cast(("),G,P(") as real)")):R(P("("),G,P(")"));return R(M,P(` ${V} `),s((B,D)=>{let j=H(B,D);if(j===null||j===void 0)return null;if(W)return Number(j);return J.jsonComparesAsText?String(j):j}))}function M7($,Z,X,z){let{dialect:J}=z,H=J.jsonPathSyntax==="array"?"array":"jsonpath",Y=Array.isArray(X)?"array":typeof X==="string"?"jsonpath":"other";if(Array.isArray(X)&&X.length===0||X==="")throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path cannot be empty. ${J.jsonPathSyntax==="array"?`On ${J.name} an empty array selects the whole document, `+"which is a filter on the column rather than on a path \u2014 write "+`{ ${Z.name}: { equals: \u2026 } } if that is what you meant.`:`On ${J.name} an empty string raises inside json_extract.`}`);if(Y===H){if(H!=="array")return;let V=X.findIndex((B)=>typeof B!=="string");if(V===-1)return;let W=X[V],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${V}] is ${M}. `+(typeof W==="number"?'An array index is a key too \u2014 write ["items", "0"] rather than '+`["items", 0]; it reaches the same element, because ${J.name} takes the path as text. Prisma's path is string[] and its client refuses a number here too.`:"Prisma's path is string[] too."))}throw new K(`${Z.name}.path`,$.name,z.operation,J.jsonPathSyntax==="array"?`On ${J.name} a JSON path is an array of keys \u2014 ["a", "b"] \u2014 `+"not a JSONPath string. Prisma splits them the same way, and refuses the other form on each database.":`On ${J.name} a JSON path is a JSONPath string \u2014 "$.a.b" \u2014 not `+"an array of keys. Prisma splits them the same way, and refuses the other form on each database.")}function k3($,Z,X,z,J){let{dialect:H}=z,Y=`${z.qualifier??""}${H.quoteIdent(Z.column)}`,G=f(X);if(G)throw new I(`where.${Z.name}`,$.name,z.operation,`${q0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${q0(G)} } }.`);if(Z.isList)return $7($,Z,Y,X,z,J);if(!f3(X))return $3(Y,Z,X,H,J);let V=X,W=Object.keys(V).sort();if(V.path!==void 0)return H7($,Z,Y,V,z,J);let M=V.mode==="insensitive";if(V.mode!==void 0&&V.mode!=="default"){if(!M)throw new I(`mode: ${JSON.stringify(V.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!H.supportsInsensitiveMode)throw new K('mode: "insensitive"',$.name,z.operation,`The ${H.name} dialect cannot express it \u2014 Prisma rejects it `+"here too. Note SQLite's LIKE is already case-insensitive for ASCII.")}let B=[];for(let D of W){let j=V[D];if(j===void 0||D==="mode")continue;if(Z.type==="Json"&&e0.has(D)){B.push($9($,Z,Y,D,j,z,void 0,(_)=>J(_)?.[D]));continue}if(!x3.has(D))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`A scalar filter takes ${[...x3].sort().join(", ")}.`);if(D!=="equals"&&D!=="not"&&Z9(j))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Prisma.AnyNull means 'either kind of null', which only 'equals' and 'not' can express. Write { ${Z.name}: { equals: Prisma.AnyNull } }, or name the one you mean with Prisma.DbNull or Prisma.JsonNull.`);let C=(_)=>J(_)?.[D];switch(D){case"equals":B.push($3(Y,Z,j,H,C));break;case"not":B.push(B7($,Z,j,z,C,Y));break;case"in":case"notIn":B.push(j7($,Y,Z,j,z,C,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(R(P(`${Y} ${r5[D]} `),g(Z,H,I0(Z,H,C))));break;case"contains":case"startsWith":case"endsWith":if(typeof j!=="string")throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Expected a string, received ${j===null?"null":typeof j}.`);if(Z.type!=="String")throw new K(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(H.like(Y,M,P7(D,C)));break}}if(B.length===0)return P("true");if(B.length===1)return B[0];return l(B," and ")}function q0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function Z9($){if(f($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>f(Z)==="any")}function B7($,Z,X,z,J,H){if(X===null||f(X)==="db")return P(`${H} is not null`);if(f(X)==="json")return R(P("not "),b0($3(H,Z,X,z.dialect,J)));if(f(X)==="any")return R(P("not "),b0($3(H,Z,X,z.dialect,J)));if(!f3(X))return R(P(`${H} <> `),g(Z,z.dialect,I0(Z,z.dialect,J)));let Y=k3($,Z,X,z,J);return R(P("not "),b0(Y))}function $3($,Z,X,z,J){if(X===null||f(X)==="db")return P(`${$} is null`);if(f(X)==="any")return l([P(`${$} is null`),D7($,Z,z)]," or ");return R(P(`${$} = `),g(Z,z,I0(Z,z,J)))}function D7($,Z,X){return R(P(`${$} = `),g(Z,X,()=>X.encode(v3,Z)))}function j7($,Z,X,z,J,H,Y){let{dialect:G}=J;if(!Array.isArray(z))throw new I(`where.${X.name}.${Y?"notIn":"in"}`,$.name,J.operation,"Expected an array.");if(z.length===0)return Y?P("true"):t5;return G.inList(Z,Y,z.length,(V)=>{return H(V).map((M)=>G.encode(M,X))})}function P7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function I0($,Z,X){return(z)=>Z.encode(X(z),$)}function f3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function X9($,Z,X,z,J,H,Y){let G=`orderBy.${Z.name}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(G,$.name,z,Z.kind==="many"?'Expected { _count: "asc" | "desc" }.':`Expected an object naming one field of ${Z.model}.`);let V=X,W=Object.keys(V).filter((_)=>_!=="where");if(W.length!==1)throw new K(G,$.name,z,W.length===0?"Name the field to order by.":`Name exactly one field to order by; got ${W.join(", ")}. `+"Order by several with an array: [{ a: \u2026 }, { b: \u2026 }].");let[M]=W,B=R0($,Z,J,`_o${Y}`,`${J.quoteIdent($.table)}.`,z),D=K7($,Z,B.child,M,V[M],z,B.qualifier,J),j=v(B.child,V.where,{dialect:J,operation:z,qualifier:B.qualifier},(_)=>H(_)?.where),C=[P(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(j)C.push(P(" and "),j);return C.push(P(")")),{expression:R(...C),direction:D.direction,nulls:D.nulls}}function K7($,Z,X,z,J,H,Y,G){let V=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=Q7($,V,J,H);if(z===i){if(Z.kind!=="many")throw new K(V,$.name,H,`${Z.name} is a to-one relation, so its count is 0 or 1. Order by one of ${X.name}'s fields instead.`);return{expression:"count(*)",direction:W,nulls:M}}if(Z.kind==="many")throw new K(V,$.name,H,`${Z.name} is a to-many relation, so ordering by '${z}' has no single answer for a parent with several children. Only `+"{ _count: \u2026 } is supported.");let B=X.fields[z];if(!B)throw new K(V,$.name,H,`'${z}' is not a field on ${X.name}. Known fields: ${Object.keys(X.fields).join(", ")}.`);return{expression:`${Y}${G.quoteIdent(B.column)}`,direction:W,nulls:M}}function Q7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:H}=X;if(J!=="asc"&&J!=="desc")throw new I(Z,$.name,z,'Expected "asc" or "desc".');if(H===void 0)return{direction:J};if(H!=="first"&&H!=="last")throw new K(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:H}}throw new K(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var _7=new Set(["asc","desc"]),C7=new Set(["first","last"]);function V0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),H=J?Z:[Z],Y=[];for(let G=0;G<H.length;G++){let V=H[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof V!=="object"||V===null)throw new I("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(V)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new K(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let j=X9($,$.relations[M],B,X,z.dialect,(C)=>W(C)?.[M],Y.length);Y.push({column:M,direction:j.direction,...j.nulls?{nulls:j.nulls}:{},expression:j.expression});continue}let D=$.fields[M];if(!D)throw new k(M,$.name,Object.keys($.fields));Y.push({column:D.column,...z9($,M,B,X)})}}return Y}function z9($,Z,X,z){if(typeof X==="string"){if(!_7.has(X))throw new I(`orderBy.${Z}: ${JSON.stringify(X)}`,$.name,z,'Expected "asc" or "desc".');return{direction:X}}if(typeof X==="object"&&X!==null){let{sort:J,nulls:H}=X,Y=z9($,Z,J,z).direction;if(H===void 0)return{direction:Y};if(typeof H!=="string"||!C7.has(H))throw new K(`orderBy.${Z}.nulls: ${JSON.stringify(H)}`,$.name,z,'Expected "first" or "last".');return{direction:Y,nulls:H}}throw new K(`orderBy.${Z}`,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}function Z3($){return $.map((Z)=>({...Z,direction:Z.direction==="asc"?"desc":"asc",...Z.nulls?{nulls:Z.nulls==="first"?"last":"first"}:{}}))}function o($,Z,X){if($.length===0)return null;return w($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return w([z.expression,P(J)],"");return P(`${X??""}${Z.quoteIdent(z.column)}${J}`)}),", ")}function X3($,Z,X,z,J){if(typeof J!=="number"||!Number.isInteger(J))throw new I(X,$,Z,`Expected an integer, got ${JSON.stringify(J)}.`);if(z==="skip"&&J<0)throw new I(X,$,Z,"A 'skip' counts rows to pass over, so it cannot be negative. Prisma rejects one too.")}function j0($,Z,X,z,J,H=!1){if(X?.take!==void 0)X3($.name,Z,"take","take",X.take);if(X?.skip!==void 0)X3($.name,Z,"skip","skip",X.skip);let Y=H?1:X?.take,G=X?.skip,V=J;if((Y!==void 0||G!==void 0)&&V.length===0&&!H)V=$.primaryKey.map((j)=>({column:$.fields[j]?.column??j,direction:"asc"}));let M=typeof Y==="number"&&Y<0;if(M)V=Z3(V);let B=Y===void 0?null:H?()=>1:(j)=>Math.abs(Number(j?.take)),D=G===void 0?null:(j)=>Number(j?.skip);return{clause:z.paginate(B,D),terms:V,reversed:M}}function Z0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new K("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new K("select + omit",$.name,X,"'select' names what to keep and 'omit' what to drop, so the two describe different column lists. Prisma allows only one of them on "+"the same query. Drop the 'omit' \u2014 a 'select' already excludes "+"everything it does not name.");if(z===void 0||z===null)return L7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new I("select",$.name,X,"Expected an object.");let H=[];for(let[G,V]of Object.entries($.fields))if(z[G]===!0)H.push(V);let Y=0;for(let G of Object.keys(z)){let V=z[G];if(V===void 0)continue;if(G in $.relations){if(V!==!1)Y++;continue}if(G===i){if(V!==!1)Y++;continue}if(!(G in $.fields))throw new k(G,$.name,Object.keys($.fields));if(typeof V!=="boolean")throw new I(`select.${G}`,$.name,X,"Expected true or false.")}if(H.length===0&&Y===0)throw new K("select",$.name,X,"At least one field must be selected.");return H}function L7($,Z,X){if(Z===void 0||Z===null)return Object.values($.fields);if(typeof Z!=="object"||Array.isArray(Z))throw new I("omit",$.name,X,"Expected an object of fields.");let z=new Set;for(let H of Object.keys(Z)){let Y=Z[H];if(Y===void 0)continue;if(H in $.relations)throw new K(`omit.${H}`,$.name,X,`'${H}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(H in $.fields))throw new k(H,$.name,Object.keys($.fields));if(typeof Y!=="boolean")throw new I(`omit.${H}`,$.name,X,"Expected true or false.");if(Y)z.add(H)}let J=Object.values($.fields).filter((H)=>!z.has(H.name));if(J.length===0)throw new K("omit",$.name,X,`It omits every field on ${$.name}, which leaves no column to select. Prisma rejects that too.`);return J}function z3($,Z,X){if(X.length===0)return{fields:Z};let z=new Set(Z.map((Y)=>Y.name)),J=X.filter((Y)=>!z.has(Y));if(J.length===0)return{fields:Z};let H=new Set([...z,...J]);return{fields:Object.values($.fields).filter((Y)=>H.has(Y.name)),hidden:J}}var J9=new Set(["where","orderBy","select","omit","include","take","skip"]),Y9=new Set(["where","select","omit","include"]),H3=10;function k0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function O0($,Z,X,z,J=W0){let H=f0($,Z,z);if(H.length===0)return{plans:[],keyFields:[]};let Y=[],G=new Set;for(let V of H){B9($,V,z);let W=P9($,V);D9(W,V.node,z,2);let M=J.plan({parent:$,child:W,relation:V.relation,as:V.as,node:V.node,locate:V.locate,dialect:X,operation:z});Y.push(M);for(let B of M.parentFields)G.add(B)}return{plans:Y,keyFields:[...G]}}async function V3($,Z,X,z,J){let H=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(H.length===0)return;for(let Y of $){if(Y.root)continue;await Y.load(H,z,J)}if(Z&&Z.length>0)for(let Y of H)for(let G of Z)delete Y[G]}function f0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;M9($,z,J,X);let H=[];if(z!==void 0&&z!==null){if(typeof z!=="object"||Array.isArray(z))throw new I("include",$.name,X,"Expected an object.");for(let Y of Object.keys(z).sort()){let G=z[Y];if(G===void 0||G===!1)continue;if(Y===i)continue;let V=$.relations[Y];if(!V)throw new x0(Y,$.name,Object.keys($.relations));H.push({as:Y,relation:V,node:G,locate:(W)=>W?.include?.[Y]})}return H}if(J!==void 0&&J!==null&&typeof J==="object")for(let Y of Object.keys(J).sort()){let G=J[Y];if(G===void 0||G===!1)continue;let V=$.relations[Y];if(!V)continue;H.push({as:Y,relation:V,node:G,locate:(W)=>W?.select?.[Y]})}return H}function M9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new K(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function B9($,Z,X){let z=Z.node;if(z===!0)return;if(typeof z!=="object"||z===null||Array.isArray(z))throw new I(Z.as,$.name,X,"Expected true or an object of relation arguments.");let J=z;M9($,J.include,J.select,X,Z.as);let H=Z.relation.kind==="many";for(let Y of Object.keys(J).sort()){if(J[Y]===void 0)continue;if(H&&(Y==="take"||Y==="skip")){T7($,Z,X,Y,J[Y]);continue}if(H?J9.has(Y):Y9.has(Y))continue;if(Y==="lock")throw new w0(`${Z.as}.lock`,$.name,X,"'lock' locks the rows of the model being queried, not an included relation's. Lock the related rows with their own locking read in the same transaction.");if(Y==="orderBy"&&!H)throw new K(`${Z.as}.orderBy`,$.name,X,"Prisma does not accept 'orderBy' on a to-one relation \u2014 there is at "+"most one row to order.");if(Y==="take"||Y==="skip")throw new K(`${Z.as}.${Y}`,$.name,X,`Prisma does not accept '${Y}' on a to-one relation.`);throw new K(`${Z.as}.${Y}`,$.name,X,`A relation node takes ${[...H?J9:Y9].sort().join(", ")}.`)}}function T7($,Z,X,z,J){X3($.name,X,`${Z.as}.${z}`,z,J)}function u3($,Z){let X=$.node;if(typeof X!=="object"||X===null||Array.isArray(X))return;for(let z of["take","skip"]){if(X[z]===void 0)continue;throw new K(`${$.as}.${z}`,$.parent.name,$.operation,`A '${z}' inside a to-many relation is per parent, and the batched `+"relation planner serves every parent from one query \u2014 so the only "+`limit it could emit would page every parent's children as one set. Only the lateral join strategy can express it, by paginating inside a subquery that already runs once per parent row, and it needs Postgres: ${Z}. Load '${$.as}' as its own query, or narrow it with 'where'.`)}}function D9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)Z0($,Z,X);let J=f0($,Z,X);if(J.length===0)return;if(z>H3)throw new g3($.name,H3);for(let H of J)B9($,H,X),D9(P9($,H),H.node,X,z+1)}function j9($,Z,X,z){if($.parentFields.length!==1)throw new K(X.name,Z.name,z,`${X.name} joins on ${$.parentFields.length} fields (${$.parentFields.join(", ")}), and it is planned through a join table, which links two models by a single primary key each side. Prisma does not build an implicit many-to-many over a composite key.`);return{parentField:$.parentFields[0],childField:$.childFields[0],join:$.join}}function H0($,Z,X,z){if(X.joinTable)return I7($,Z,X);if(X.from.length>0)return H9($,X,X.from,X.to,z);let J=R7($,Z,X);if(J.from.length===0)throw new d($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return H9($,X,J.to,J.from,z)}function H9($,Z,X,z,J){if(X.length===0)throw new K(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new d($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function R7($,Z,X){let z=Object.values(Z.relations).filter((J)=>J.relationName===X.relationName&&!(Z.name===$.name&&J.name===X.name));if(z.length!==1)throw new d($.name,X.name,z.length===0?`${Z.name} declares no relation named '${X.relationName}'.`:`${Z.name} declares ${z.length} relations named '${X.relationName}'.`);return z[0]}function I7($,Z,X){let{table:z,a:J,b:H}=X.joinTable;if(J===H){let G=X.joinTable.ownerColumn;if(!G)throw new K(X.name,$.name,"include",`${X.name} is a self-referential implicit many-to-many, and the generated artifact predates support for one. Re-run \`prisma generate\`.`);return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:G,childColumn:G==="A"?"B":"A"}}}if($.name!==J&&$.name!==H)throw new d($.name,X.name,`the join table '${z}' connects ${J} and ${H}, neither of which is ${$.name}.`);let Y=$.name===J?"A":"B";return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:Y,childColumn:Y==="A"?"B":"A"}}}function J3($,Z){if($.primaryKey.length!==1)throw new d($.name,Z.name,`an implicit many-to-many joins on ${$.name}'s primary key, which has ${$.primaryKey.length} fields.`);return $.primaryKey[0]}function Y3($,Z,X){let z=$.fields[X];if(!z)throw new d($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function P9($,Z){return e($,Z.relation,Z.as)}function e($,Z,X=Z.name){let z=Z.model;if(!P0(z))throw new y3($.name,X,z,W9());let J=G0(z)?.$schema;if(!J)throw new v0(z);return J}var V9="batched",W0={name:V9,plan($){u3($,"this query planned with the batched strategy");let Z=H0($.parent,$.child,$.relation,$.operation);for(let H of Z.parentFields)G9($.parent,$.relation,Y3($.parent,$.relation,H));for(let H of Z.childFields)G9($.child,$.relation,Y3($.child,$.relation,H));let X=Y3($.parent,$.relation,Z.parentFields[0]),z=Y3($.child,$.relation,Z.childFields[0]),J=$.relation.kind==="many";return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:Z.parentFields,strategy:V9,load(H,Y,G){let V={parentKeyField:X,childKeyField:z,many:J,parents:H,args:Y,executor:G};return Z.join?N7($,Z,V):U7($,Z,V)}}}};async function U7($,Z,X){let{keys:z,byKey:J}=_9(X.parents,Z.parentFields);if(z.length===0)return;let H=$.locate(X.args),Y=K9(H,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",Y.args,!0);for(let V of G){let W=J.get(E0(Z.childFields.map((M)=>V[M])));if(!W)continue;for(let M of W)Q9(M,$.as,V,X.many)}if(Y.hidden)for(let V of G)for(let W of Z.childFields)delete V[W]}async function N7($,Z,X){let{keys:z,byKey:J}=_9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:H}=$,Y=Z.join,G=await O7(H,Y,z.map((j)=>H.encode(j[0],X.parentKeyField)),X.executor),V=new Map,W=[];for(let j of G){let C=E0([H.decode(j[Y.parentColumn],X.parentKeyField)]),_=J.get(C);if(!_)continue;let F=H.decode(j[Y.childColumn],X.childKeyField),T=E0([F]),Q=V.get(T);if(Q===void 0)Q=[],V.set(T,Q),W.push([F]);for(let L of _)Q.push(L)}if(W.length===0)return;let M=$.locate(X.args),B=K9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let j of D){let C=V.get(E0([j[Z.childFields[0]]]));if(!C)continue;for(let _ of C)Q9(_,$.as,j,X.many)}if(B.hidden)for(let j of D)delete j[Z.childFields[0]]}async function O7($,Z,X,z){let J=R(P(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:H,binders:Y}=p(J,$,{model:Z.table,operation:"include"}),G=N0();return z.query(H,Y.map((V)=>V(void 0,G)))}function K9($,Z,X,z,J){let H=$===!0||$===null||typeof $!=="object"?{}:$,Y=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:F7(z,Z,X,J),G={where:H.where===void 0?Y:{AND:[H.where,Y]}};if(H.orderBy!==void 0)G.orderBy=H.orderBy;if(H.include!==void 0)G.include=H.include;let V=H.omit;if(V!==void 0){let B=Z.filter((D)=>V[D]===!0);if(B.length===0)G.omit=V;else{let D={...V};for(let j of B)delete D[j];return G.omit=D,{args:G,hidden:!0}}}let W=H.select;if(W===void 0)return{args:G,hidden:!1};let M=Z.filter((B)=>W[B]!==!0);if(M.length===0)return G.select=W,{args:G,hidden:!1};G.select={...W};for(let B of M)G.select[B]=!0;return{args:G,hidden:!0}}function F7($,Z,X,z){let J=Z.map((H)=>$.fields[H]?.type);if(J.every((H)=>H!==void 0)&&z.canBindCompositeIn(J))return{[$0]:e5(Z,X)};return{OR:X.map((H)=>Object.fromEntries(Z.map((Y,G)=>[Y,H[G]])))}}function E0($){return JSON.stringify($.map(S7))}function Q9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function _9($,Z){let X=new Map,z=[];for(let J of $){let H=Z.map((V)=>J[V]);if(H.some((V)=>V===null||V===void 0))continue;let Y=E0(H),G=X.get(Y);if(G===void 0)G=[],X.set(Y,G),z.push(H);G.push(J)}return{keys:z,byKey:X}}function S7($){if(typeof $!=="object"||$===null)return $;if($ instanceof Date)return $.getTime();if(ArrayBuffer.isView($)){let Z=new Uint8Array($.buffer,$.byteOffset,$.byteLength),X="";for(let z of Z)X+=z.toString(16).padStart(2,"0");return`bytes:${X}`}throw Error(`Cannot key a relation stitch on ${Object.prototype.toString.call($)}.`)}function G9($,Z,X){if(X.isList)throw new d($.name,Z.name,`it joins on '${X.name}', a ${X.type} list \u2014 which decodes to a new `+"array per row and so cannot be compared between the two sides.");if(X.type!=="Json")return;throw new d($.name,Z.name,`it joins on '${X.name}', a ${X.type} \u2014 which decodes to a new object `+"per row and so cannot be compared between the two sides.")}var C9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),L9=!0;function A7($){L9=$}function b7(){return C9}function g0($,Z,X=[]){if(C9&&L9)return q7($,Z,X);return m3($,Z,X)}function m3($,Z,X=[]){let z=$.map((G)=>({key:G.name,column:G.column,field:G,decode:Z.needsDecode(G)})),J=z.length,H=X.map((G)=>({key:G.key,many:G.kind==="many"})),Y=H.length;return(G)=>{let V=[];for(let W=0;W<G.length;W++){let M=G[W],B={};for(let D=0;D<J;D++){let j=z[D],C=M[j.column];B[j.key]=j.decode?Z.decode(C,j.field):C??null}for(let D=0;D<Y;D++)B[H[D].key]=H[D].many?[]:null;V.push(B)}return V}}function q7($,Z,X){let z=[];for(let H=0;H<$.length;H++){let Y=$[H],G=JSON.stringify(Y.name),V=JSON.stringify(Y.column);z.push(Z.needsDecode(Y)?`${G}: d.decode(row[${V}], f[${H}])`:`${G}: row[${V}] ?? null`)}for(let H of X)z.push(`${JSON.stringify(H.key)}: ${H.kind==="many"?"[]":"null"}`);let J=`
3
3
  return function shape(rows) {
4
4
  const out = [];
5
5
  for (let i = 0; i < rows.length; i++) {
@@ -10,4 +10,4 @@ import{ba as Y6}from"../chunk-8sde8337.js";import{$a as J6,Fa as l5,Ga as o5,Ha
10
10
  };
11
11
  `;try{return Function("d","f",J)(Z,$)}catch{return m3($,Z,X)}}function G3($,Z,X,z){let J=Z?.include??Z?.select;if(typeof J!=="object"||J===null)return[];let H=J[i];if(H===void 0||H===!1)return[];let Y=w7($,H,z),G=[];for(let V of Object.keys(Y).sort()){let W=Y[V];if(W===void 0||W===!1)continue;let M=$.relations[V];if(!M)throw new x0(V,$.name,Object.keys($.relations));if(W!==!0&&(typeof W!=="object"||Array.isArray(W)))throw new I(`_count.select.${V}`,$.name,z,"Expected true or an object holding 'where'.");G.push(E7($,M,W,X,z,G.length,Z))}if(G.length===0&&Z?.select)throw new I("_count.select",$.name,z,"No relations to count, and '_count' is the only thing selected. Name at least one relation, or select a column beside it.");return G}function E7($,Z,X,z,J,H,Y){let G=`_count.select.${Z.name}`;if(Z.kind!=="many")throw new K(G,$.name,J,`${Z.name} is a to-one relation. Counting it can only ever return 0 or 1, which is what its nullability already tells you.`);let V=R0($,Z,z,`_c${H}`,`${z.quoteIdent($.table)}.`,J),W=X===!0?void 0:X?.where,M=Y?.include!==void 0?"include":"select",B=(C)=>C?.[M]?.[i]?.select?.[Z.name]?.where,D=v(V.child,W,{dialect:z,operation:J,qualifier:V.qualifier},B),j=[P(`(select count(*) from ${V.source} where ${V.correlation}`)];if(D)j.push(P(" and "),D);return j.push(P(`) as ${z.quoteIdent(`_count.${Z.name}`)}`)),{as:Z.name,alias:`_count.${Z.name}`,column:R(...j)}}function w7($,Z,X){if(Z===!0){let J=T9($);if(J.length===0)throw new K("_count",$.name,X,`${$.name} has no to-many relations, so there is nothing for '_count: true' to count.`);return Object.fromEntries(J.map((H)=>[H,!0]))}if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw new I("_count",$.name,X,"Expected an object holding 'select'.");let z=Z.select;if(typeof z!=="object"||z===null||Array.isArray(z))throw new I("_count.select",$.name,X,"Expected an object naming the relations to count.");return z}var t=["_count","_avg","_sum","_min","_max"],R9=new Set(["where","orderBy","take","skip",...t]),x7=new Set(["Int","Float","BigInt","Decimal"]),v7=new Set(["Json","Bytes"]),h0={_count:"count",_avg:"avg",_sum:"sum",_min:"min",_max:"max"};function p3($){return $==="aggregate"}function u0($,Z,X,z){let J=Z==="count";f7($,Z,X,J);let H=J?k7($,Z,X?.select):d3($,Z,X);if(H.length===0)throw new K(Z,$.name,Z,J?"A 'select' on a count must name at least one field, or '_all'.":`An aggregate needs at least one of ${t.join(", ")}. Prisma rejects an empty one too.`);let Y=v($,X?.where,{dialect:z,operation:Z},(_)=>_?.where),G=Y?R(P(" where "),Y):P(""),V=P(` from ${z.quoteIdent($.table)}`),W=w(H.map((_)=>P(`${h0[_.kind]}(${_.field?z.quoteIdent(_.field.column):"*"}) as ${z.quoteIdent(_.alias)}`)),", "),M=V0($,X?.orderBy,Z,{dialect:z,locate:(_)=>_?.orderBy}),B=X?.take!==void 0||X?.skip!==void 0,D;if(!B)D=R(P("select "),W,V,G);else{let{clause:_,terms:F}=j0($,Z,X,z,M),T=o(F,z),Q=new Map;for(let L of H)if(L.field)Q.set(L.field.column,L.field.column);if(Q.size===0){let L=$.primaryKey[0]??Object.keys($.fields)[0],U=$.fields[L]?.column??L;Q.set(U,U)}D=R(P("select "),W,P(` from (select ${[...Q.values()].map((L)=>z.quoteIdent(L)).join(", ")}`),V,G,T?R(P(" order by "),T):P(""),_,P(`) as ${z.quoteIdent("sub")}`))}let{text:j,binders:C}=p(D,z,{model:$.name,operation:Z});return{text:j,bind:n(C),shape(_){let F=_[0]??{};if(J){let Q={};for(let L of H)Q[L.as]=F0(L,F[L.alias],z);return Q}let T={};for(let Q of H){if(Q.kind==="_count"&&Q.as===W3){T._count=F0(Q,F[Q.alias],z);continue}let L=T[Q.kind]??={};L[Q.as]=F0(Q,F[Q.alias],z)}return T}}}var W3="";function d3($,Z,X){let z=[];for(let J of t){let H=X?.[J];if(H===void 0||H===!1)continue;if(J==="_count"&&H===!0){z.push({kind:J,as:W3,alias:y0(J,z.length)});continue}if(typeof H!=="object"||H===null||Array.isArray(H))throw new I(J,$.name,Z,J==="_count"?"Expected true or an object of fields.":"Expected an object of fields.");for(let Y of Object.keys(H).sort()){let G=H[Y];if(G===void 0||G===!1)continue;if(J==="_count"&&Y==="_all"){z.push({kind:J,as:"_all",alias:y0(J,z.length)});continue}let V=m0($,Z,J,Y);M3($,Z,J,V),z.push({kind:J,field:V,as:Y,alias:y0(J,z.length)})}}return z}function k7($,Z,X){if(typeof X!=="object"||X===null||Array.isArray(X))throw new I("select",$.name,Z,"Expected an object of fields.");let z=[];for(let J of Object.keys(X).sort()){let H=X[J];if(H===void 0||H===!1)continue;if(J==="_all"){z.push({kind:"_count",as:"_all",alias:y0("_count",z.length)});continue}let Y=m0($,Z,"_count",J);z.push({kind:"_count",field:Y,as:J,alias:y0("_count",z.length)})}return z}var y0=($,Z)=>`${$}_${Z}`;function m0($,Z,X,z){let J=$.fields[z];if(!J){if(z in $.relations)throw new K(`${X}.${z}`,$.name,Z,`'${z}' is a relation. Aggregate its own model instead, or use '_count' inside an 'include' to count it per row.`);throw new k(z,$.name,Object.keys($.fields))}return J}function M3($,Z,X,z){if((X==="_sum"||X==="_avg")&&!x7.has(z.type))throw new K(`${X}.${z.name}`,$.name,Z,`'${z.name}' is a ${z.type}, and ${X} needs a number. Prisma does not offer it on this field either.`);if((X==="_min"||X==="_max")&&v7.has(z.type))throw new K(`${X}.${z.name}`,$.name,Z,`'${z.name}' is a ${z.type}, which has no ordering the two dialects agree on.`)}function F0($,Z,X){if($.kind==="_count")return Number(Z??0);if(Z===null||Z===void 0)return null;if($.kind==="_avg")return Number(Z);if($.kind==="_sum"){let z=$.field?.type;if(z==="BigInt")return BigInt(String(Z));if(z==="Decimal")return Z;return Number(Z)}return $.field?X.decode(Z,$.field):Z}function f7($,Z,X,z){if(X===void 0||X===null){if(z)return;throw new K(Z,$.name,Z,`An aggregate needs at least one of ${t.join(", ")}.`)}if(typeof X!=="object"||Array.isArray(X))throw new I(String(X),$.name,Z,"Expected an object.");if(z)return;for(let J of Object.keys(X).sort()){if(X[J]===void 0)continue;if(R9.has(J))continue;if(J==="select"||J==="include")throw new K(J,$.name,Z,`An aggregate returns the functions it was given, so there is nothing to ${J==="select"?"select":"include"}. Prisma does not accept it either.`);throw new K(J,$.name,Z,`${Z} takes ${[...R9].sort().join(", ")}.`)}}var I9=new Set(["update","share"]),g7=new Set(["mode","skipLocked","noWait"]),c3='Expected "update", "share", or { mode: "update" | "share", skipLocked?: boolean, noWait?: boolean }.';function U9($,Z,X){if($===void 0)return;if(typeof $==="string"){if(I9.has($))return{mode:$,onLocked:"wait"};throw new I("lock",Z,X,c3)}if($===null||typeof $!=="object"||Array.isArray($))throw new I("lock",Z,X,c3);let z=$;for(let J of Object.keys(z))if(!g7.has(J))throw new I(`lock.${J}`,Z,X,"A lock takes mode, skipLocked and noWait.");if(typeof z.mode!=="string"||!I9.has(z.mode))throw new I("lock.mode",Z,X,c3);for(let J of["skipLocked","noWait"])if(z[J]!==void 0&&typeof z[J]!=="boolean")throw new I(`lock.${J}`,Z,X,"Expected a boolean.");if(z.skipLocked===!0&&z.noWait===!0)throw new I("lock",Z,X,"'skipLocked' and 'noWait' cannot both be set: a row another transaction holds is either left out of the result or fails the statement, not both.");return{mode:z.mode,onLocked:z.skipLocked===!0?"skipLocked":z.noWait===!0?"noWait":"wait"}}var B3={findMany:new Set(["where","orderBy","skip","take","select","include","omit","lock"]),findFirst:new Set(["where","orderBy","skip","take","select","include","omit","lock"]),findFirstOrThrow:new Set(["where","orderBy","skip","take","select","include","omit","lock"]),findUnique:new Set(["where","select","include","omit","lock"]),findUniqueOrThrow:new Set(["where","select","include","omit","lock"]),count:new Set(["where","orderBy","skip","take","select"])},y7={distinct:"Prisma's 'distinct' is applied **in memory**, not in SQL \u2014 its query log "+"shows no DISTINCT at all, and 'take' therefore does not reduce the rows pulled or paginate by group. Reproducing that faithfully would mean reading the whole result set and deduplicating in JavaScript behind an argument that reads like a database operation. Implementing it as a real 'DISTINCT ON' instead would be a silent divergence from Prisma. Write it "+"as SQL instead, with 'sql' and 'DB.query' \u2014 where what runs is what you "+"wrote, and 'distinct on' means what the database means by it.",cursor:"'cursor' is only correct under a *total* ordering, which Prisma does not "+"enforce \u2014 under a non-unique 'orderBy' it silently skips or repeats rows "+"at the page boundary. For a stable page use 'take' with a 'where' on the last row's sort key, or compose the keyset comparison with 'sql' and 'DB.query'."};function N9($){return $ in B3}var s3=new Set(["findFirst","findFirstOrThrow","findUnique","findUniqueOrThrow"]);function i3($,Z,X,z,J){if(h7($,Z,X),Z==="count"&&X?.select!==void 0&&X.select!==null)return u0($,Z,X,z);let H=Z==="count"?{plans:[],keyFields:[]}:O0($,X,z,Z,J),G=H.plans.some((E)=>E.root!==void 0)?`${z.quoteIdent($.table)}.`:void 0,V={dialect:z,operation:Z,qualifier:G},W=v($,X?.where,V,(E)=>E?.where);if(Z==="findUnique"||Z==="findUniqueOrThrow")b3($,X?.where,Z);let M=P(` from ${z.quoteIdent($.table)}`),B=W?R(P(" where "),W):P("");if(Z==="count"){let E=P(`select count(*) as ${z.quoteIdent("_count")}`),a=X?.take!==void 0||X?.skip!==void 0,c=V0($,X?.orderBy,Z,{dialect:z,locate:(A0)=>A0?.orderBy}),D0;if(!a)D0=R(E,M,B);else{let{clause:A0,terms:S3}=j0($,Z,X,z,c,s3.has(Z)),c5=o(S3,z),n4=$.primaryKey[0]??Object.keys($.fields)[0];D0=R(E,P(` from (select ${z.quoteIdent($.fields[n4].column)}`),M,B,c5?R(P(" order by "),c5):P(""),A0,P(`) as ${z.quoteIdent("sub")}`))}let{text:T0,binders:Y0}=p(D0,z,{model:$.name,operation:Z});return{text:T0,bind:n(Y0),shape(A0){let S3=A0[0];return Number(S3?._count??0)}}}let D=Z0($,X,Z),{plans:j,keyFields:C}=H,{fields:_,hidden:F}=z3($,D,C),T=j.filter((E)=>E.root!==void 0),Q=G3($,X,z,Z),L=w([..._.map((E)=>P(`${G??""}${z.quoteIdent(E.column)}`)),...T.map((E)=>E.root.column),...Q.map((E)=>E.column)],", "),U=R(...T.map((E)=>E.root.join)),{clause:b,terms:S,reversed:N}=j0($,Z,X,z,V0($,X?.orderBy,Z,{dialect:z,locate:(E)=>E?.orderBy}),s3.has(Z)),A=o(S,z,G),O=U9(X?.lock,$.name,Z),q=R(P("select "),L,M,U,B,A?R(P(" order by "),A):P(""),b,O?z.rowLock(O,$.table):P("")),{text:y,binders:B0}=p(q,z,{model:$.name,operation:Z}),d5=g0(_,z,j.map((E)=>({key:E.as,kind:E.kind}))),i4=s3.has(Z);return{text:y,bind:n(B0),relations:j.length>0?j:void 0,strategies:j.length>0?k0(j):void 0,hidden:F,shape(E){let a=d5(E);if(Q.length>0)for(let c=0;c<a.length;c++){let D0=E[c]??{},T0={};for(let Y0 of Q)T0[Y0.as]=Number(D0[Y0.alias]??0);a[c]._count=T0}if(T.length>0)for(let c=0;c<a.length;c++){let D0=a[c],T0=E[c]??{};for(let Y0 of T)D0[Y0.as]=Y0.root.decode(T0[Y0.as])}if(N)a.reverse();return i4?a[0]??null:a}}}function h7($,Z,X){if(X===void 0||X===null)return;if(typeof X!=="object"||Array.isArray(X))throw new I(String(X),$.name,Z,"Expected an object.");if(X.select!==void 0&&X.include!==void 0)throw new K("select + include",$.name,Z,"Prisma allows only one of them on the same query.");let z=B3[Z];for(let J of Object.keys(X).sort()){if(X[J]===void 0)continue;if(z.has(J))continue;let H=y7[J];if(H)throw new w0(J,$.name,Z,H);throw new K(J,$.name,Z,`${Z} takes ${[...z].sort().join(", ")}.`)}}var p0={name:"lateral",plan($){let Z=b9($.parent,$.relation,$.as,$.node,$.dialect,$.operation);if(Z)return u3($,`this node declined to fold (${Z})`),W0.plan($);let{dialect:X}=$,z=e($.parent,$.relation,$.as),J=H0($.parent,z,$.relation,$.operation),H=q9({parent:$.parent,child:z,relation:$.relation,as:$.as,node:$.node,locate:$.locate,link:J,dialect:X,operation:$.operation,depth:1,counter:{next:0}});return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:J.parentFields,strategy:"lateral",root:{column:R(P(`${H.alias}.${X.quoteIdent("data")} as `),P(X.quoteIdent($.as))),join:R(P(" left join lateral ("),H.subquery,P(`) as ${H.alias} on true`)),decode:H.decode,folded:H.folded},load:async()=>{throw Error(`${$.parent.name}.${$.as} was folded into the root statement, so it must not also be loaded. This means attachRelations stopped honouring RelationPlan.root.`)}}}};function b9($,Z,X,z,J,H){if(J.name!=="postgres")return"not postgres";if(Z.joinTable)return"implicit many-to-many";let Y=e($,Z,X);if(Y.table===$.table)return"self-relation";let G=w9(z);if(G===void 0)return;if(m7(G))return"_count on a folded node";if(u7(Y,G.orderBy))return"relation ordering on a folded node";for(let V of f0(Y,G,H)){let W=b9(Y,V.relation,V.as,V.node,J,H);if(W)return`${V.as}: ${W}`}return}function u7($,Z){if(Z===void 0||Z===null)return!1;for(let X of Array.isArray(Z)?Z:[Z]){if(typeof X!=="object"||X===null)continue;for(let[z,J]of Object.entries(X)){if(J===void 0)continue;if(z in $.relations)return!0}}return!1}function m7($){for(let Z of["include","select"]){let X=$[Z];if(typeof X!=="object"||X===null||Array.isArray(X))continue;let z=X[i];if(z!==void 0&&z!==!1)return!0}return!1}function q9($){let{dialect:Z,child:X,operation:z}=$,J=w9($.node),H=$.relation.kind==="many",Y=$.counter.next++,G=Z.quoteIdent(F9("__lat_",$.as,$.depth,Y)),V=Z.quoteIdent(X.table),W=`${V}.`,M=Z0(X,J,z),B=f0(X,J,z).map((O)=>{let q=e(X,O.relation,O.as);return{as:O.as,relation:O.relation,fold:q9({parent:X,child:q,relation:O.relation,as:O.as,node:O.node,locate:(y)=>O.locate($.locate(y)),link:H0(X,q,O.relation,z),dialect:Z,operation:z,depth:$.depth+1,counter:$.counter})}}),D=d7(M,W,Z,B.map((O)=>({key:O.as,alias:O.fold.alias}))),j=R(...B.map((O)=>R(P(" left join lateral ("),O.fold.subquery,P(`) as ${O.fold.alias} on true`)))),C=P($.link.parentFields.map((O,q)=>`${W}${Z.quoteIdent(A9(X,$.link.childFields[q]).column)} = ${Z.quoteIdent($.parent.table)}.${Z.quoteIdent(A9($.parent,O).column)}`).join(" and ")),_=v(X,J?.where,{dialect:Z,operation:z,qualifier:W},(O)=>$.locate(O)?.where),F=R(P(` from ${V}`),j,P(" where "),C,_?R(P(" and "),_):P("")),T=c7(M,Z,H,B.map((O)=>({key:O.as,decode:O.fold.decode}))),Q=B.map((O)=>({as:O.as,model:O.relation.model,kind:O.relation.kind,folded:O.fold.folded})),L=V0(X,J?.orderBy,z);if(!H)return{alias:G,folded:Q,decode:T,subquery:R(P("select "),D,P(` as ${Z.quoteIdent("data")}`),F,P(" limit 1"))};let U=p7($,J,L,X);if(!U){let O=o(L,Z,W);return{alias:G,folded:Q,decode:T,subquery:R(P("select coalesce(json_agg("),D,O?R(P(" order by "),O):P(""),P(`), '[]'::json) as ${Z.quoteIdent("data")}`),F)}}let b=Z.quoteIdent(F9("__page_",$.as,$.depth,Y)),S=U.terms.map((O,q)=>P(`, ${W}${Z.quoteIdent(O.column)} as ${Z.quoteIdent(E9(q))}`)),N=o(O9(U.inner),Z),A=o(O9(U.terms),Z,`${b}.`);return{alias:G,folded:Q,decode:T,subquery:R(P(`select coalesce(json_agg(${b}.${Z.quoteIdent("data")}`),A?R(P(" order by "),A):P(""),P(`), '[]'::json) as ${Z.quoteIdent("data")} from (select `),D,P(` as ${Z.quoteIdent("data")}`),...S,F,N?R(P(" order by "),N):P(""),U.clause,P(`) as ${b}`))}}function p7($,Z,X,z){let J=Z?.take,H=Z?.skip;if(J===void 0&&H===void 0)return;let Y=X.length>0?X:z.primaryKey.map((W)=>({column:z.fields[W]?.column??W,direction:"asc"})),G=J===void 0?null:(W)=>Math.abs(Number($.locate(W)?.take)),V=H===void 0?null:(W)=>Number($.locate(W)?.skip);return{clause:$.dialect.paginate(G,V),terms:Y,inner:typeof J==="number"&&J<0?Z3(Y):Y}}var E9=($)=>`__ord_${$}`;function O9($){return $.map((Z,X)=>({...Z,column:E9(X),expression:void 0}))}function F9($,Z,X,z){return X===1?`${$}${Z}`:`${$}${Z}_${z}`}function w9($){if($===!0||$===void 0||$===null)return;if(typeof $!=="object"||Array.isArray($))return;return $}function d7($,Z,X,z){let J=$.map((H)=>{let Y=`${Z}${X.quoteIdent(H.column)}`,G=H.type==="BigInt"?`${Y}::text${H.isList?"[]":""}`:Y;return`'${H.name}', ${G}`});for(let H of z)J.push(`'${H.key}', ${H.alias}.${X.quoteIdent("data")}`);return P(`json_build_object(${J.join(", ")})`)}function c7($,Z,X,z){let J=$.map((Y)=>({field:Y,convert:s7(Y)})).filter((Y)=>Y.convert!==void 0),H=(Y)=>{if(Y===null||Y===void 0||typeof Y!=="object")return null;let G=Y;for(let{field:V,convert:W}of J)G[V.name]=W(G[V.name]);for(let V of z)G[V.key]=V.decode(G[V.key]);return G};return(Y)=>{let G=typeof Y==="string"?i7(Y):Y??null;if(X){if(!Array.isArray(G))return[];return G.map(H).filter((V)=>V!==null)}return H(G)}}function s7($){if($.isList){let Z=S9($);if(!Z)return;return(X)=>{if(X===null||X===void 0)return null;if(!Array.isArray(X))return X;return X.map((z)=>z===null||z===void 0?null:Z(z))}}return S9($)}function S9($){switch($.type){case"DateTime":return(Z)=>Z===null||Z===void 0?null:Z instanceof Date?Z:new Date(String(Z));case"BigInt":return(Z)=>Z===null||Z===void 0?null:BigInt(String(Z));case"Json":return;case"Bytes":return(Z)=>{if(Z===null||Z===void 0)return null;if(ArrayBuffer.isView(Z))return Buffer.isBuffer(Z)?new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength):Z;let X=Buffer.from(String(Z).replace(/^\\?x/,""),"hex");return new Uint8Array(X.buffer,X.byteOffset,X.byteLength)};default:return}}function i7($){try{return JSON.parse($)}catch{return null}}function A9($,Z){let X=$.fields[Z];if(!X)throw Error(`${$.name} has no field '${Z}', which the lateral strategy needs to correlate on. This means the generated artifact is stale.`);return X}function x9($){return $.name==="postgres"?p0:W0}function n3($,Z,X){if($===void 0)return x9(Z);if($==="batched")return W0;if($==="lateral")return p0;throw new K(`strategy: ${JSON.stringify($)}`,X.model,X.operation,'Unknown relation strategy. Expected "batched" or "lateral".')}var n7=3,v9=[2,3];var l3=21;class o3 extends Error{constructor($){super(`The generated model artifact is version ${$}, but this version of gemi reads version ${v9.join(" or ")}. Re-run \`prisma generate\` to refresh app/models/generated.`);this.name="StaleSchemaArtifactError"}}function l7($){if(!v9.includes($))throw new o3($)}var o7=new Set(["cuid","uuid","nanoid","ulid","now","value"]);function g9($){return o7.has($.kind)}function d0($){if($.isUpdatedAt)return!0;return $.default!==void 0&&g9($.default)}function e3($,Z){if($.isUpdatedAt)return Z;let X=$.default;if(!X)return;switch(X.kind){case"cuid":return y9();case"uuid":return m9(X.version??4);case"nanoid":return h9(X.length??l3);case"ulid":return u9();case"now":return Z;case"value":return $.type==="Json"?t7($,X.value):X.value;default:return}}function t7($,Z){if($.isList&&Array.isArray(Z))return Z.map((z)=>k9($,z));let X=k9($,Z);return X===null&&typeof Z==="string"?a3:X}function k9($,Z){if(typeof Z!=="string")return Z;try{return JSON.parse(Z)}catch{throw Error(`gemi ORM: the @default of the Json field '${$.name}' (column '${$.column}') is not valid JSON: ${JSON.stringify(Z)}.`)}}function $5($,Z){let X=$.length,z=256-256%X,J=new Uint8Array(Z);crypto.getRandomValues(J);let H="";for(let Y=0;Y<Z;Y++){let G=J[Y];while(G>=z){let V=new Uint8Array(1);crypto.getRandomValues(V),G=V[0]}H+=$[G%X]}return H}var r7="0123456789abcdefghijklmnopqrstuvwxyz",t3=36,Z5=4,a7=t3**Z5,e7=0;function $2($,Z){return $.length>=Z?$:"0".repeat(Z-$.length)+$}var Z2=r3();function r3(){return $5(r7,Z5)}function y9(){let $=Date.now().toString(t3),Z=$2((e7++%a7).toString(t3),Z5);return`c${$}${Z}${Z2}${r3()}${r3()}`}var X2="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";function h9($=l3){return $5(X2,$)}var f9="0123456789ABCDEFGHJKMNPQRSTVWXYZ",z2=10,J2=16;function u9($=Date.now()){let Z="",X=$;for(let z=0;z<z2;z++)Z=f9[X%32]+Z,X=Math.floor(X/32);return Z+$5(f9,J2)}function m9($=4){return $===7?H2():crypto.randomUUID()}var Y2=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function H2(){let $=new Uint8Array(16);crypto.getRandomValues($);let Z=Date.now();$[0]=Math.floor(Z/1099511627776)&255,$[1]=Math.floor(Z/4294967296)&255,$[2]=Z>>>24&255,$[3]=Z>>>16&255,$[4]=Z>>>8&255,$[5]=Z&255,$[6]=$[6]&15|112,$[8]=$[8]&63|128;let X=Y2;return X[$[0]]+X[$[1]]+X[$[2]]+X[$[3]]+"-"+X[$[4]]+X[$[5]]+"-"+X[$[6]]+X[$[7]]+"-"+X[$[8]]+X[$[9]]+"-"+X[$[10]]+X[$[11]]+X[$[12]]+X[$[13]]+X[$[14]]+X[$[15]]}var V2=["connect","connectOrCreate","create","createMany","disconnect","delete","update","set","updateMany","deleteMany","upsert"],p9=new Set(V2),G2=["disconnect","delete","update","set","updateMany","deleteMany","upsert"],W2=new Set(G2),M2=["createMany","set","updateMany","deleteMany"],i9=new Set(M2.filter(($)=>$!=="createMany")),n9=new Set(["create","createMany"]),B2={},d9={contributions:[],before:[],after:[],keyFields:[]};function j3($,Z,X,z,J){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return d9;let H=Object.keys(Z).sort().filter((V)=>(V in $.relations)).filter((V)=>Z[V]!==void 0);if(H.length===0)return d9;let Y={contributions:[],before:[],after:[],keyFields:[]},G=new Map;for(let V of H){let W=$.relations[V],M=Z[V],B=(j)=>z(j)?.[V],D=Y.contributions.length;D2($,W,M,X,B,Y,J);for(let j=D;j<Y.contributions.length;j++){let C=Y.contributions[j].field,_=G.get(C);if(_!==void 0&&_!==V)throw new K(`data.${V}`,$.name,X,`'${C}' is written by both the '${_}' and '${V}' relations, which join on it in common. Prisma lets the last key in 'data' win; gemi plans relations in a fixed order and will not guess which row you meant. Write one of them through the relation and set the other's own columns directly.`);G.set(C,V)}}return Y}function D2($,Z,X,z,J,H,Y){if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`data.${Z.name}`,$.name,z,"Expected an object holding 'connect' or 'create'.");let G=Object.keys(X).sort().filter((B)=>X[B]!==void 0);if(G.length===0)return;let V=e($,Z),W=H0($,V,Z,z);if(W.join){let B=j9(W,$,Z,z);for(let D of G)Q2($,Z,V,B,D,X[D],z,(j)=>J(j)?.[D],H,Y);return}for(let B of G){if(!p9.has(B)){let D=B2[B];throw new K(`data.${Z.name}.${B}`,$.name,z,`Only ${[...p9].sort().join(", ")} are implemented.`+(D?` '${B}' is not: ${D}`:""))}if(W2.has(B)&&n9.has(z))throw new K(`data.${Z.name}.${B}`,$.name,z,`'${B}' acts on rows already linked to this one, and a '${z}' `+"has none yet \u2014 Prisma refuses it here too. Use it on an 'update'.")}let M=Z.from.length>0;for(let B of G){let D=X[B],j=(C)=>J(C)?.[B];if(M)j2($,Z,V,W,B,D,z,j,H);else P2($,Z,V,W,B,D,z,j,H)}}function j2($,Z,X,z,J,H,Y,G,V){let{parentFields:W,childFields:M}=z,B=()=>{for(let Q of W)V.contributions.push({field:Q,value:(L,U)=>U.resolved[Q]})},D=(Q,L)=>{for(let U=0;U<W.length;U++)Q.resolved[W[U]]=L[U]??null},j=Object.values(X.relations).filter((Q)=>Q.relationName===Z.relationName&&!(X.name===$.name&&Q.name===Z.name)),C=new Set(W),_=W.every((Q)=>$.fields[Q]?.nullable===!0)&&$.uniques.some((Q)=>Q.length===C.size&&Q.every((L)=>C.has(L)))&&j.length===1&&j[0].kind!=="many",F=!n9.has(Y);if(J==="createMany")throw new K(`data.${Z.name}.createMany`,$.name,Y,`'${Z.name}' is a to-one: this row holds the foreign key, so there is one related row at most and nothing to create many of. Prisma does not accept it here either.`);if(J==="create"){V.before.push({relation:Z.name,operation:"create",async run(Q,L,U){let b=await U.exec(Z.model,"create",{data:G(Q),select:x(M)},!1);D(L,m(b,M))}}),B();return}if(J==="disconnect"){Y5($,Z,W,{model:$.name,operation:Y,argument:`data.${Z.name}.disconnect`}),t9($,Z,X,H,J,Y);let Q=H5(J,H);if(Q===null||Q===void 0)return;if(H===!0){for(let L of W)V.contributions.push({field:L,value:()=>null});return}V.before.push({relation:Z.name,operation:"disconnect",async run(L,U,b){D(U,s9(W));let S=await b.exec($.name,"findFirst",{where:L?.where,select:x(W)},!0),N=m(S,W);if(!s0(N))return;if(D(U,N),await b.exec(Z.model,"findFirst",{where:K0(G(L),u(z,S)),select:x(M)},!1))D(U,s9(W))}}),B();return}if(J==="delete")throw new K(`data.${Z.name}.delete`,$.name,Y,`'${Z.name}' is a to-one whose foreign key lives on this row, so deleting through it would remove a row this statement is not about. Delete it directly, or 'disconnect' it first.`);if(J==="update"){V.keyFields.push(...W),J5($,Z,X,J,H,Y),V.after.push({relation:Z.name,operation:"update",async run(Q,L,U,b){let S=b[0];if(!S)return;if(!s0(m(S,W)))throw new r(Z.model,"update");let N=G(Q),A=N!==null&&typeof N==="object"&&N.data!==void 0,O=N,q=A?O.data:N,y=A?O.where:void 0,B0=K0(y,u(z,S));if(y!==void 0){if(!await U.exec(Z.model,"findFirst",{where:B0,select:x(M)},!1))throw new r(Z.model,"update")}await U.exec(Z.model,"updateMany",{where:B0,data:q},!1)}});return}if(i9.has(J))throw new K(`data.${Z.name}.${J}`,$.name,Y,`'${Z.name}' is a to-one: this row holds a single foreign key, so there is no set of rows for '${J}' to act on. Prisma does not accept it here either. Use 'connect', 'disconnect' or 'update'.`);if(J==="upsert"){J5($,Z,X,J,H,Y),l9($,Z,X,H,Y,!1),V.before.push({relation:Z.name,operation:"upsert",async run(Q,L,U){let b=G(Q),S=await U.exec($.name,"findFirst",{where:Q?.where,select:x(W)},!0);if(s0(m(S,W))){let A=K0(b?.where,u(z,S)),O=await U.exec(Z.model,"findFirst",{where:A,select:x(M)},!1);if(O){D(L,m(O,M)),await U.exec(Z.model,"updateMany",{where:A,data:b?.update},!1);return}}let N=await U.exec(Z.model,"create",{data:b?.create,select:x(M)},!1);D(L,m(N,M))}}),B();return}if(J==="connectOrCreate"){G5($,Z,X,H,Y,!1),V.before.push({relation:Z.name,operation:"connectOrCreate",async run(Q,L,U){let b=G(Q)?.where,S=await U.exec(Z.model,"findUnique",{where:b,select:x(M)},!1);if(S){let A=m(S,M);if(_)await z5($,W,A,Q?.where,F,U);D(L,A);return}let N=await U.exec(Z.model,"create",{data:G(Q)?.create,select:x(M)},!1);D(L,m(N,M))}}),B();return}if(typeof H!=="object"||H===null||Array.isArray(H))throw new I(`data.${Z.name}.connect`,$.name,Y,"Expected an object naming a unique field.");if(M.length===1&&H[M[0]]!==void 0&&Object.keys(H).filter((Q)=>H[Q]!==void 0).length===1){let Q=M[0],L=W[0];if(_)V.before.push({relation:Z.name,operation:"connect",async run(U,b,S){await z5($,[L],[G(U)?.[Q]],U?.where,F,S)}});V.contributions.push({field:L,value:(U)=>G(U)?.[Q]});return}h(X,H,{model:$.name,operation:Y,argument:`data.${Z.name}.connect`}),V.before.push({relation:Z.name,operation:"connect",async run(Q,L,U){let b=await U.exec(Z.model,"findUniqueOrThrow",{where:G(Q),select:x(M)},!1),S=m(b,M);if(_)await z5($,W,S,Q?.where,F,U);D(L,S)}}),B()}function P2($,Z,X,z,J,H,Y,G,V){let{parentFields:W,childFields:M}=z;V.keyFields.push(...W);let B=Z.kind!=="many"&&M.every((j)=>X.fields[j]?.nullable===!0),D=H;if(Z.kind!=="many"){if(i9.has(J))throw new K(`data.${Z.name}.${J}`,$.name,Y,`'${Z.name}' is a to-one: there is a single ${X.name} row, so there is no set of rows for '${J}' to act on. Prisma does not offer it on a to-one either. Use 'connect', 'disconnect' or 'update'.`);if(Array.isArray(H))throw new I(`data.${Z.name}.${J}`,$.name,Y,`'${Z.name}' is a to-one \u2014 ${X.name} holds the foreign key, so there is one row here at most. Expected a single object for '${J}', not an array of them. Prisma refuses the array too.`);J5($,Z,X,J,H,Y);let j=G;G=(C)=>H5(J,j(C)),H=H5(J,H)}if(J==="upsert"){l9($,Z,X,H,Y,Z.kind==="many"),V.after.push({relation:Z.name,operation:"upsert",async run(j,C,_,F){let T=F[0];if(!T)return;for(let Q of X0(G(j))){let L=K0(Q.where,u(z,T));if(await _.exec(Z.model,"findFirst",{where:L,select:x(M)},!1)){await _.exec(Z.model,"updateMany",{where:L,data:Q.update},!1);continue}await _.exec(Z.model,"create",{data:{...Q.create,...u(z,T)},select:x(M)},!1)}}});return}if(J==="updateMany"||J==="deleteMany"){let j=J==="updateMany";C2($,Z,H,J,Y),V.after.push({relation:Z.name,operation:J,async run(C,_,F,T){let Q=T[0];if(!Q)return;let L=G(C),U=j?L?.where:L,b=K0(U,u(z,Q));await F.exec(Z.model,J,j?{where:b,data:L?.data}:{where:b},!1)}});return}if(J==="set"){D3($,Z,X,H,"set",Y),Y5(X,Z,M,{model:$.name,operation:Y,argument:`data.${Z.name}.set`}),V.after.push({relation:Z.name,operation:"set",async run(j,C,_,F){let T=F[0];if(!T)return;let Q=u(z,T);await c0(Z.model,M,m(T,W),_);for(let L of X0(G(j)))await _.exec(Z.model,"updateMany",{where:L,data:Q},!1)}});return}if(J==="update"){L2($,Z,X,H,Y,Z.kind==="many"),V.after.push({relation:Z.name,operation:"update",async run(j,C,_,F){let T=F[0];if(!T)return;let Q=X0(G(j));for(let L=0;L<Q.length;L++){let U=Q[L],b=K0(U.where,u(z,T));if(!await _.exec(Z.model,"findFirst",{where:b,select:x(M)},!1))throw new r(Z.model,"update");await _.exec(Z.model,"updateMany",{where:b,data:U.data},!1)}}});return}if(J==="disconnect"||J==="delete"){let j=J==="delete";if(!j)Y5(X,Z,M,{model:$.name,operation:Y,argument:`data.${Z.name}.disconnect`});if(Z.kind==="many")D3($,Z,X,H,J,Y);else t9($,Z,X,D,J,Y);V.after.push({relation:Z.name,operation:J,async run(C,_,F,T){let Q=T[0];if(!Q)return;let L=X0(G(C));for(let U=0;U<L.length;U++){let b=K0(L[U],u(z,Q));if(!j){await F.exec(Z.model,"updateMany",{where:b,data:o9(M)},!1,M);continue}if(!await F.exec(Z.model,"findFirst",{where:b,select:x(M)},!1)){if(Z.kind!=="many")throw new r(Z.model,"delete");throw new K(`data.${Z.name}.delete`,$.name,Y,`the row named by ${JSON.stringify(L[U])} is not connected to this ${$.name}. Prisma raises here too, rather than deleting a row belonging to somebody else.`)}await F.exec(Z.model,"deleteMany",{where:b},!1)}}});return}if(J==="create"){V.after.push({relation:Z.name,operation:"create",async run(j,C,_,F){let T=F[0];if(!T)return;if(B)await c0(Z.model,M,m(T,W),_);for(let Q of X0(G(j)))await _.exec(Z.model,"create",{data:{...Q,...u(z,T)},select:x(M)},!1)}});return}if(J==="createMany"){if(Z.kind!=="many")throw new K(`data.${Z.name}.createMany`,$.name,Y,`'${Z.name}' is a to-one, so there is nothing to create many of. Prisma does not accept it here either.`);T2($,Z,H,Y),V.after.push({relation:Z.name,operation:"createMany",async run(j,C,_,F){let T=F[0];if(!T)return;let Q=X0(G(j)?.data).map((L)=>({...L,...u(z,T)}));await _.exec(Z.model,"createMany",{data:Q},!1)}});return}if(J==="connectOrCreate"){G5($,Z,X,H,Y,Z.kind==="many"),V.after.push({relation:Z.name,operation:"connectOrCreate",async run(j,C,_,F){let T=F[0];if(!T)return;let Q=X0(G(j));for(let L=0;L<Q.length;L++){let U=Q[L],b=await _.exec(Z.model,"findUnique",{where:U.where,select:x(M)},!1);if(b){if(B&&M.every((S,N)=>V5(b[S],T[W[N]])))continue;if(B)await c0(Z.model,M,m(T,W),_);await _.exec(Z.model,"update",{where:U.where,data:u(z,T),select:x(M)},!1,M);continue}await _.exec(Z.model,"create",{data:{...U.create,...u(z,T)},select:x(M)},!1)}}});return}D3($,Z,X,H,J,Y),V.after.push({relation:Z.name,operation:"connect",async run(j,C,_,F){let T=F[0];if(!T)return;let Q=[];for(let L of X0(G(j))){if(B&&await _2(Z.model,M,L,m(T,W),_))continue;Q.push(L)}if(Q.length===0)return;if(B)await c0(Z.model,M,m(T,W),_);for(let L of Q)await _.exec(Z.model,"update",{where:L,data:u(z,T),select:x(M)},!1,M)}})}var c9=new Set(["connect","connectOrCreate","disconnect","set","create"]),K2={createMany:"Prisma does not offer 'createMany' through an implicit many-to-many "+"either \u2014 it reports it as an unknown argument. Use 'create', which writes "+"the row and its pair.",update:"Reaching the far row means reading the pairs first, which this path does not do yet. Update the related model directly, filtered by its own key.",updateMany:"As 'update': it needs the pairs read before the far rows can be matched.",delete:"It deletes the far row rather than the pair \u2014 Prisma does this through a "+"join table too \u2014 and reaching it means reading the pairs first, which "+"this path does not do yet. Use 'disconnect' to remove the link, or delete the row through its own model.",deleteMany:"As 'delete': the far rows have to be found through the pairs first."};function Q2($,Z,X,z,J,H,Y,G,V,W){if(J==="connectOrCreate")G5($,Z,X,H,Y,Z.kind==="many");if(!c9.has(J)){let C=K2[J];if(C)throw new K(`data.${Z.name}.${J}`,$.name,Y,`'${Z.name}' is an implicit many-to-many, and '${J}' means something different through a join table. ${C}`);throw new K(`data.${Z.name}.${J}`,$.name,Y,`'${Z.name}' is an implicit many-to-many. Only ${[...c9].sort().join(", ")} are implemented through its join table.`)}if(J==="connect"||J==="disconnect"||J==="set")D3($,Z,X,H,J,Y);let{join:M,parentField:B,childField:D}=z,j=(C)=>W.quoteIdent(C);V.keyFields.push(B),V.after.push({relation:Z.name,operation:J,async run(C,_,F,T){let Q=T[0];if(!Q)return;let L=Q[B];if(L===null||L===void 0)return;if(J==="set"){let S=await F.query(`select ${j(M.childColumn)} from ${j(M.table)} where ${j(M.parentColumn)} = ${W.placeholder(0)}`,[L]),N=Array.from(S,(A)=>A[M.childColumn]);if(N.length>0){let A=await F.exec(Z.model,"findMany",{where:{[D]:{in:N}},select:{[D]:!0}},!1),O=Array.from(A,(q)=>q[D]);if(O.length>0)await X5(F,`delete from ${j(M.table)} where ${j(M.parentColumn)} = ${W.placeholder(0)} and ${j(M.childColumn)} in (`+O.map((q,y)=>W.placeholder(y+1)).join(", ")+")",[L,...O])}}let U=X0(G(C));if(U.length===0)return;let b=[];for(let S of U){if(J==="create"){let A=await F.exec(Z.model,"create",{data:S,select:{[D]:!0}},!1);if(A)b.push(A[D]);continue}if(J==="connectOrCreate"){let A=S,O=await F.exec(Z.model,"findUnique",{where:A.where,select:{[D]:!0}},!1);if(O){b.push(O[D]);continue}let q=await F.exec(Z.model,"create",{data:A.create,select:{[D]:!0}},!1);if(q)b.push(q[D]);continue}let N=await F.exec(Z.model,"findUniqueOrThrow",{where:S,select:{[D]:!0}},!1);if(N)b.push(N[D])}for(let S of b){if(J==="disconnect"){await X5(F,`delete from ${j(M.table)} where ${j(M.parentColumn)} = ${W.placeholder(0)} and ${j(M.childColumn)} = ${W.placeholder(1)}`,[L,S]);continue}await X5(F,`insert into ${j(M.table)} (${j(M.parentColumn)}, ${j(M.childColumn)}) values (${W.placeholder(0)}, ${W.placeholder(1)}) on conflict do nothing`,[L,S])}}})}async function X5($,Z,X){await $.query(Z,X)}function l9($,Z,X,z,J,H){let Y=`data.${Z.name}.upsert`,G=Array.isArray(z)?z:[z];for(let V of G){if(typeof V!=="object"||V===null||Array.isArray(V))throw new K(Y,$.name,J,H?"Expected an object with 'where', 'create' and 'update'.":"Expected an object with 'create' and 'update' \u2014 on a to-one the "+"'where' is optional, since the parent's key already names the row.");let W=V,M=H?["where","create","update"]:["create","update"];for(let B of M)if(W[B]===void 0)throw new K(Y,$.name,J,`Expected a '${B}' key \u2014 'upsert' names the row to look for, `+"what to write if it is there, and what to write if it is not.");if(!H)continue;h(X,W.where,{model:$.name,operation:J,argument:`data.${Z.name}.upsert.where`})}}function K0($,Z){if($===void 0||$===null||typeof $!=="object"||Array.isArray($)||Object.keys($).length===0)return Z;return{AND:[$,Z]}}function u($,Z){let X={};for(let z=0;z<$.childFields.length;z++)X[$.childFields[z]]=Z[$.parentFields[z]];return X}function x($){let Z={};for(let X of $)Z[X]=!0;return Z}function o9($){let Z={};for(let X of $)Z[X]=null;return Z}function s9($){return $.map(()=>null)}function m($,Z){return Z.map((X)=>$?.[X])}function s0($){return $.every((Z)=>Z!==null&&Z!==void 0)}async function c0($,Z,X,z){if(!s0(X))return;let J={};for(let Y=0;Y<Z.length;Y++)J[Z[Y]]=X[Y];if((await z.exec($,"findMany",{where:J,select:x(Z)},!1)).length===0)return;await z.exec($,"updateMany",{where:J,data:o9(Z)},!1,Z)}async function _2($,Z,X,z,J){let H=await J.exec($,"findUnique",{where:X,select:x(Z)},!1);if(H===null||H===void 0)return!1;return Z.every((Y,G)=>V5(H[Y],z[G]))}async function z5($,Z,X,z,J,H){if(!s0(X))return;if(J){let Y=await H.exec($.name,"findFirst",{where:z,select:x(Z)},!0);if(Y===null||Y===void 0)return;if(Z.every((G,V)=>V5(Y[G],X[V])))return}await c0($.name,Z,X,H)}function V5($,Z){if($===null||$===void 0||Z===null||Z===void 0)return!1;return $===Z||String($)===String(Z)}function C2($,Z,X,z,J){let H=`data.${Z.name}.${z}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new K(H,$.name,J,z==="updateMany"?"Expected an object with 'where' and 'data'.":"Expected an object of filters \u2014 'deleteMany' takes the filter "+"directly, not wrapped in a 'where'.");if(z!=="updateMany")return;let Y=X;for(let G of["where","data"])if(Y[G]===void 0)throw new K(H,$.name,J,`Expected a '${G}' key \u2014 'updateMany' names which rows to `+"write and what to write to them.")}function L2($,Z,X,z,J,H){let Y=`data.${Z.name}.update`,G=Array.isArray(z)?z:[z],V=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new K(Y,$.name,J,"Expected an object with 'where' and 'data'.");let M=W,B=H?["where","data"]:["data"];for(let D of B)if(M[D]===void 0)throw new K(Y,$.name,J,`Expected a '${D}' key \u2014 'update' names the row to write and `+"the columns to write to it.");if(H)h(X,M.where,{model:$.name,operation:J,argument:`data.${Z.name}.update.where`});V.push(M)}return V}function D3($,Z,X,z,J,H){let Y=`data.${Z.name}.${J}`,G=Array.isArray(z)?z:[z],V=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new K(Y,$.name,H,"Expected an object naming a unique field, or an array of them.");h(X,W,{model:$.name,operation:H,argument:`data.${Z.name}.${J}`}),V.push(W)}return V}function t9($,Z,X,z,J,H){if(z===void 0)return;if(typeof z==="boolean")return;if(z!==null&&typeof z==="object"&&!Array.isArray(z))return;throw new I(`data.${Z.name}.${J}`,$.name,H,`'${Z.name}' is a to-one, so '${J}' takes either a boolean \u2014 `+`'true' for the connected ${X.name}, 'false' for nothing \u2014 or an `+`object of filters it has to match. Prisma's operand here is '${X.name}WhereInput | boolean'.`+(z===null?" 'null' is not one of them \u2014 write 'false' for the no-op. Prisma "+"answers 'null' with a validation error rather than accepting it.":""))}function J5($,Z,X,z,J,H){if(z!=="update"&&z!=="upsert")return;let Y=`data.${Z.name}.${z}`,G=(B)=>{throw new I(Y,$.name,H,B)};if(J===null||typeof J!=="object"||Array.isArray(J))G(`Expected an object, got ${JSON.stringify(J)??typeof J}. `+(z==="upsert"?"'upsert' on a to-one takes { create, update } \u2014 and an optional "+`'where' the connected ${X.name} has to match.`:`'update' on a to-one takes the ${X.name} columns directly, `+"or { data } \u2014 and an optional 'where' the connected row has to "+"match."));let V=J;if(!(z==="upsert"||V.data!==void 0))return;let M=z==="upsert"?["where","create","update"]:["where","data"];for(let B of Object.keys(V)){if(V[B]===void 0||M.includes(B))continue;G(`Unknown key '${B}'. '${z}' on a to-one takes ${M.map((D)=>`'${D}'`).join(", ")} and nothing else, so '${B}' would be dropped rather than applied \u2014 a misspelled `+"'where' would turn a filtered write into an unconditional one. Prisma refuses the same key by name.")}if(V.where!==void 0&&(V.where===null||typeof V.where!=="object"||Array.isArray(V.where)))G("'where' has to be an object of filters \u2014 Prisma's is a "+`'${X.name}WhereInput', which narrows *which* single row is written rather than choosing among several. Anything else is dropped by the conjunction that keeps this operand on the connected row, so the write would land unfiltered.`)}function Y5($,Z,X,z){let J=X.find((H)=>!$.fields[H]?.nullable);if(J===void 0)return;throw new K(z.argument,z.model,z.operation,`'${$.name}.${J}' is required, so there is no value to leave `+"behind \u2014 a disconnected row would have to be deleted or repointed "+"instead. Prisma does not offer 'disconnect' on a required relation either.")}function G5($,Z,X,z,J,H){let Y=`data.${Z.name}.connectOrCreate`;if(Array.isArray(z)&&!H){let W=Z.from.length>0;throw new I(Y,$.name,J,`'${Z.name}' is a to-one: `+(W?"this row holds the foreign key":`${X.name} holds the foreign key`)+", so there is one row to point at and a list has no meaning. Prisma "+"refuses an array here too \u2014 as a validation error on the argument, "+"which is why this is a bad value rather than a gap.")}let G=Array.isArray(z)?z:[z];if(G.length===0)return[];let V=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new K(Y,$.name,J,"Expected an object with 'where' and 'create'.");let M=W;for(let D of["where","create"])if(M[D]===void 0)throw new K(Y,$.name,J,`Expected a '${D}' key \u2014 'connectOrCreate' names the row to `+"look for and the row to write if it is not there.");let B=Object.keys(M).filter((D)=>D!=="where"&&D!=="create"&&M[D]!==void 0);if(B.length>0)throw new K(Y,$.name,J,`Unexpected ${B.sort().join(", ")} \u2014 'connectOrCreate' takes `+"'where' and 'create'.");h(X,M.where,{model:$.name,operation:J,argument:`data.${Z.name}.connectOrCreate.where`}),V.push(M)}return V}function T2($,Z,X,z){let J=`data.${Z.name}.createMany`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(J,$.name,z,"Expected an object with a 'data' key \u2014 the rows go inside it, not "+"directly under 'createMany'.");let H=Object.keys(X).filter((Y)=>X[Y]!==void 0);if(!H.includes("data"))throw new I(J,$.name,z,"Expected a 'data' key.");for(let Y of H){if(Y==="data")continue;throw new K(`${J}.${Y}`,$.name,z,Y==="skipDuplicates"?`'skipDuplicates' is not implemented on a *nested* 'createMany'. Write the children with their own '${Z.model}.createMany' call, which takes it.`:"Expected only 'data'.")}}function X0($){if($===void 0||$===null)return[];return Array.isArray($)?$:[$]}function H5($,Z){if($==="update"){if(Z!==null&&typeof Z==="object"&&Z.data!==void 0){let X=Z;return{where:X.where,data:X.data}}return{where:void 0,data:Z}}if($==="delete"||$==="disconnect"){if(Z===!0)return{};if(Z===!1)return null;return Z}return Z}var P5={create:new Set(["data","select","include","omit"]),createMany:new Set(["data","skipDuplicates"]),update:new Set(["data","where","select","include","omit","skipIfUnchanged"]),updateMany:new Set(["data","where","skipIfUnchanged"]),delete:new Set(["where","select","include","omit"]),deleteMany:new Set(["where"]),upsert:new Set(["where","create","update","select","include","omit"])},R2=new Set(["create","update","delete","upsert"]),r9=new Set(["createMany","updateMany","deleteMany"]);function a9($){return $ in P5}function K5($,Z,X,z){if(v2($,Z,X),!z.supportsReturning)throw new j5($.name,Z,z.name);switch(Z){case"create":return I2($,Z,X,z);case"createMany":return U2($,Z,X,z);case"update":case"updateMany":return F2($,Z,X,z);case"delete":case"deleteMany":return A2($,Z,X,z);case"upsert":return b2($,Z,X,z);default:throw new K(Z,$.name,Z,`'${Z}' is not a write operation. The writes are ${Object.keys(P5).sort().join(", ")}.`)}}function I2($,Z,X,z){let J=j3($,X?.data,Z,(V)=>V?.data,z),H=e9($,X?.data,J.contributions,Z,z,(V)=>V?.data),Y=i0($,X,z,Z,J),G=R(P(`insert into ${z.quoteIdent($.table)}`),_5([H],z),Y.clause);return Q3($,G,z,Z,Y,J)}function U2($,Z,X,z){let J=X?.data===void 0?[]:W4(X.data),H=N2($,Z,X,z);if(J.length===0)return G4($,Z,z);let Y=O2($,J,Z,z);if(Y[0].length===0&&J.length>1)throw new K("data",$.name,Z,`All ${J.length} rows are empty and ${$.name} has no client-side default to fill, so there is no column to insert. A multi-row insert of nothing but database defaults cannot be expressed on both dialects. Call create ${J.length} times, or set at least one field per row.`);let G=i0($,void 0,z,Z,void 0),V=R(P(`insert into ${z.quoteIdent($.table)}`),_5(Y,z),H??P(""),G.clause),{text:W,binders:M}=p(V,z,{model:$.name,operation:Z});return{text:W,bind:n(M),shape:(B)=>({count:B.length})}}function N2($,Z,X,z){let J=X?.skipDuplicates;if(J===void 0)return null;if(typeof J!=="boolean")throw new I("skipDuplicates",$.name,Z,`Expected true or false, got ${JSON.stringify(J)}.`);let H=z.ignoreConflicts();if(H===null)throw new K("skipDuplicates",$.name,Z,`'skipDuplicates' is not available on ${z.name}. Prisma does not `+"offer it there either \u2014 it is a Postgres and MySQL argument. To "+"import a batch that may overlap, write the rows one at a time and catch UniqueConstraintError, or move this model to Postgres.");return J?H:null}function O2($,Z,X,z){let J=Z.map((Y,G)=>{if(typeof Y!=="object"||Y===null||Array.isArray(Y))throw new I(`data[${G}]`,$.name,X,"Expected an object.");let V=new Set;for(let[W,M]of Object.entries(Y)){if(M===void 0)continue;if(W in $.relations)throw new K(`data.${W}`,$.name,X,"createMany cannot contain nested writes. Use create per row.");if(!(W in $.fields))throw new k(W,$.name,Object.keys($.fields));V.add(W)}return V}),H=[];for(let Y of Object.values($.fields))if(J.some((V)=>V.has(Y.name))||d0(Y)||W5(Y))H.push(Y);for(let Y of H){if(!J.some((W)=>!W.has(Y.name)))continue;if(d0(Y))continue;if(Y.nullable)continue;if(W5(Y))continue;if(Y.default)throw new K(`data.${Y.name}`,$.name,X,`Some rows set '${Y.name}' and others leave it to the database default. A single multi-row insert cannot express both. Split the call, or set '${Y.name}' on every row.`);let V=J.findIndex((W)=>!W.has(Y.name));throw new P3($.name,`${X}.data[${V}]`,Y.name)}for(let Y of H)if(Y.isList)U0($,Y,`data.${Y.name}`,X,z);return Z.map((Y,G)=>H.map((V)=>{if(!J[G].has(V.name))return{field:V,value:W5(V)?V4(V,z):L5(V,z)};if(V.isList)C5($,V,Y?.[V.name],X,["set"]);let W=$4(V,Y?.[V.name]);return{field:V,value:Q0($,X,V,z,(M)=>{let B=W4(M?.data)[G]?.[V.name];return W?B?.set:B})}}))}function F2($,Z,X,z){let J=Z==="updateMany";if(X?.data===null)throw new I("data",$.name,Z,"Expected an object of the fields to set, like { name: 'new name' }. An empty object is accepted and reads the row back unchanged; null is not.");if(!J)h($,X?.where,{model:$.name,operation:Z,argument:"where"});if(J)Z4($,X?.data,Z,"data","updateMany cannot contain nested writes \u2014 it has no single row to "+"attach them to. Use update per row.");let H=J?void 0:j3($,X?.data,Z,(j)=>j?.data,z),Y=X4($,X?.data,H?.contributions??[],Z,z),G=v($,X?.where,{dialect:z,operation:Z},(j)=>j?.where),V=S2($,X,Z,z,H),W=V===void 0?G:G?R(P("("),G,P(") and "),V):V;if(J&&Y.length===0)return G4($,Z,z);let M=Y.length===0,B=i0($,X,z,Z,H),D=M?R(P("select "),B.selected,P(` from ${z.quoteIdent($.table)}`),G?R(P(" where "),G):P("")):R(P(`update ${z.quoteIdent($.table)} set `),w(Y,", "),W?R(P(" where "),W):P(""),B.clause);return Q3($,D,z,Z,B,H)}function S2($,Z,X,z,J){let H=Z?.skipIfUnchanged;if(H===void 0||H===!1)return;if(H!==!0)throw new I("skipIfUnchanged",$.name,X,`Expected true or false, received ${B5(H)}.`);if(J!==void 0&&(J.contributions.length>0||J.before.length>0||J.after.length>0))throw new K("skipIfUnchanged",$.name,X,"skipIfUnchanged compares the row's own columns, so it cannot be combined with a nested relation write. Write the relation in a separate call.");let Y=Z.data,G=[];for(let V of K3($,Y)){let W=$.fields[V],M=Y[V],B=(D)=>D?.data?.[V];if(H4(M,W)){let D=Object.keys(M).filter((j)=>M[j]!==void 0);if(D.length!==1||D[0]!=="set")return;B=(j)=>j?.data?.[V]?.set}G.push(z.distinctFrom(z.quoteIdent(W.column),g(W,z,Q0($,X,W,z,B)),W))}if(G.length===0)return;return R(P("("),w(G," or "),P(")"))}function A2($,Z,X,z){if(Z==="delete")h($,X?.where,{model:$.name,operation:Z,argument:"where"});let J=v($,X?.where,{dialect:z,operation:Z},(G)=>G?.where),H=i0($,X,z,Z,void 0),Y=R(P(`delete from ${z.quoteIdent($.table)}`),J?R(P(" where "),J):P(""),H.clause);return Q3($,Y,z,Z,H,void 0)}function b2($,Z,X,z){let J=h($,X?.where,{model:$.name,operation:Z,argument:"where"}),H=J.length>1?J.join("_"):J[0],Y=Object.keys(X.where).filter((_)=>_!==H&&X.where[_]!==void 0);if(Y.length>0)throw new K("where",$.name,Z,`The where clause carries ${Y.join(", ")} beside the unique key '${H}'. An upsert compiles its where into an 'on conflict' target, which can only be a key, so the extra ${Y.length===1?"filter would be":"filters would be"} silently dropped. Name exactly one unique key here \u2014 or, if you meant `+"to filter further, use findFirst plus update / create.");for(let _ of["create","update"])Z4($,X?.[_],Z,_,"Nested writes inside an upsert are not implemented: they would have to run before it is known whether the row is being inserted or updated.");let G=Q5($,X,J);if(G.length>0)throw new K("upsert",$.name,Z,`The where clause selects on ${J.join(", ")}, but 'create' does not set ${G.join(", ")}, so 'on conflict' cannot express it. Model.upsert runs this as a read and a write inside one transaction instead; reaching this means the statement was compiled directly.`);let V=q2(e9($,X?.create,[],Z,z,(_)=>_?.create),$,J,Z,z),W=`${z.quoteIdent($.table)}.`,M=X4($,X?.update,[],Z,z,(_)=>_?.update,W),B=w(J.map((_)=>P(z.quoteIdent(M5($,_).column))),", "),D=M.length>0?M:[P(`${z.quoteIdent(M5($,J[0]).column)} = ${W}${z.quoteIdent(M5($,J[0]).column)}`)],j=i0($,X,z,Z,void 0),C=R(P(`insert into ${z.quoteIdent($.table)}`),_5([V],z),P(" on conflict ("),B,P(") do update set "),w(D,", "),j.clause);return Q3($,C,z,Z,j,void 0)}function Q5($,Z,X){let z=K3($,Z?.create);return X.filter((J)=>!z.has(J))}function q2($,Z,X,z,J){let H=new Set(X);return $.map((Y)=>{if(!H.has(Y.field.name))return Y;let G=w2(X,Y.field.name);return{field:Y.field,value:(V,W)=>{let M=Y.value(V,W),B=J.encode(G(V),Y.field);if(!E2(M,B))throw new K("upsert",Z.name,z,`'${Y.field.name}' is ${B5(B)} in the where clause but ${B5(M)} in 'create'. An upsert looks the row up by the where clause and inserts what 'create' says, so the two must agree on the key.`);return M}}})}function E2($,Z){if($===Z)return!0;if($ instanceof Date&&Z instanceof Date)return $.getTime()===Z.getTime();if(ArrayBuffer.isView($)&&ArrayBuffer.isView(Z)){let X=new Uint8Array($.buffer,$.byteOffset,$.byteLength),z=new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength);if(X.length!==z.length)return!1;for(let J=0;J<X.length;J++)if(X[J]!==z[J])return!1;return!0}return!1}function B5($){if($ instanceof Date)return JSON.stringify($.toISOString());if(ArrayBuffer.isView($)){let Z=new Uint8Array($.buffer,$.byteOffset,$.byteLength),X=Array.from(Z.slice(0,8),(J)=>J.toString(16).padStart(2,"0")).join(""),z=Z.length>8?"\u2026":"";return`${Z.length} bytes (0x${X}${z})`}if(typeof $==="string")return JSON.stringify($);if($===null||$===void 0)return String($);return`${JSON.stringify(String($))} (${typeof $})`}function w2($,Z){let X=$.length>1?$.join("_"):void 0;return(z)=>{let J=z?.where;if(J===void 0||J===null)return;if(X!==void 0&&J[X]!==void 0)return J[X][Z];return J[Z]}}function _5($,Z){let X=$[0];if(X.length===0)return P(" default values");let z=w(X.map((H)=>P(Z.quoteIdent(H.field.column))),", "),J=$.map((H)=>R(P("("),w(H.map((Y)=>g(Y.field,Z,Y.value)),", "),P(")")));return R(P(" ("),z,P(") values "),w(J,", "))}function e9($,Z,X,z,J,H){if(Z!==void 0&&Z!==null){if(typeof Z!=="object"||Array.isArray(Z))throw new I("data",$.name,z,"Expected an object.")}let Y=K3($,Z),G=new Map(X.map((W)=>[W.field,W]));for(let W of G.keys())if(Y.has(W))throw new K(`data.${W}`,$.name,z,`'${W}' is set both directly and through a nested relation write. Prisma keeps those two forms exclusive; use one of them.`);let V=[];for(let W of Object.values($.fields)){let M=G.get(W.name);if(M){V.push({field:W,value:(B,D)=>J.encode(M.value(B,D),W)});continue}if(Y.has(W.name)){if(W.isList)U0($,W,`data.${W.name}`,z,J),C5($,W,Z?.[W.name],z,["set"]);let B=$4(W,Z?.[W.name]);V.push({field:W,value:Q0($,z,W,J,(D)=>{let j=H(D)?.[W.name];return B?j?.set:j})});continue}if(d0(W)){V.push({field:W,value:L5(W,J)});continue}if(W.default||W.nullable)continue;if(W.isList){U0($,W,`data.${W.name}`,z,J),V.push({field:W,value:V4(W,J)});continue}throw new P3($.name,z,W.name)}return V}function C5($,Z,X,z,J){if(!Z.isList)return;if(typeof X!=="object"||X===null||Array.isArray(X)||X instanceof Date||ArrayBuffer.isView(X))return;let H=Object.keys(X).filter((Y)=>X[Y]!==void 0);if(H.length===1&&J.includes(H[0]))return;throw new K(`data.${Z.name}`,$.name,z,`'${Z.name}' is a scalar list, so it takes ${J.join(" or ")} \u2014 `+`or a bare array. Received ${H.length===0?"an empty object":`{ ${H.join(", ")} }`}. The arithmetic operators apply to a number, not to a list of them.`)}function $4($,Z){return $.isList===!0&&typeof Z==="object"&&Z!==null&&!Array.isArray(Z)&&!(Z instanceof Date)&&!ArrayBuffer.isView(Z)&&Object.keys(Z).length===1&&"set"in Z}function K3($,Z){let X=new Set;if(typeof Z!=="object"||Z===null)return X;for(let[z,J]of Object.entries(Z)){if(J===void 0)continue;if(z in $.relations)continue;if(!(z in $.fields))throw new k(z,$.name,Object.keys($.fields));X.add(z)}return X}function Z4($,Z,X,z,J){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;for(let[H,Y]of Object.entries(Z)){if(Y===void 0)continue;if(H in $.relations)throw new K(`${z}.${H}`,$.name,X,J)}}function X4($,Z,X,z,J,H=(G)=>G?.data,Y=""){if(Z!==void 0&&Z!==null){if(typeof Z!=="object"||Array.isArray(Z))throw new I("data",$.name,z,"Expected an object.")}let G=K3($,Z),V=new Map(X.map((B)=>[B.field,B])),W=V.size>0||G.size>0,M=[];for(let B of Object.values($.fields)){let D=J.quoteIdent(B.column),j=V.get(B.name);if(j){M.push(R(P(`${D} = `),s((C,_)=>J.encode(j.value(C,_),B))));continue}if(G.has(B.name)){M.push(x2($,B,D,`${Y}${D}`,Z,z,J,(C)=>H(C)?.[B.name]));continue}if(B.isUpdatedAt&&W)M.push(R(P(`${D} = `),g(B,J,L5(B,J))))}return M}var z4={increment:"+",decrement:"-",multiply:"*",divide:"/"},J4=["set","push"];function Y4($){return $.isList?J4:["set",...Object.keys(z4)]}function x2($,Z,X,z,J,H,Y,G){let V=J[Z.name];if(Z.isList)U0($,Z,`data.${Z.name}`,H,Y),C5($,Z,V,H,J4);if(H4(V,Z)){let W=Object.keys(V).filter((D)=>V[D]!==void 0);if(W.length!==1)throw new K(`data.${Z.name}`,$.name,H,`Expected exactly one of ${Y4(Z).join(", ")}.`);let[M]=W,B=(D)=>G(D)?.[M];if(M==="set")return R(P(`${X} = `),g(Z,Y,Q0($,H,Z,Y,B)));if(M==="push")return R(P(`${X} = `),Y.listPush(z,g(Z,Y,Q0($,H,Z,Y,(D)=>{let j=B(D);return Array.isArray(j)?j:[j]}))));return R(P(`${X} = ${z} ${z4[M]} `),g(Z,Y,Q0($,H,Z,Y,B)))}return R(P(`${X} = `),g(Z,Y,Q0($,H,Z,Y,G)))}function H4($,Z){if(typeof $!=="object"||$===null||Array.isArray($)||$ instanceof Date||ArrayBuffer.isView($)||Z.type==="Json"&&!Z.isList)return!1;let X=Y4(Z),z=Object.keys($);if(z.length===0)return!1;return z.every((J)=>X.includes(J))}function Q0($,Z,X,z,J){return(H)=>{let Y=J(H);if(f(Y)==="any")throw new I(`data.${X.name}`,$.name,Z,"Prisma.AnyNull is a filter operand, not a value \u2014 Prisma rejects it "+"in a write here too. Write Prisma.DbNull for a SQL NULL column, or Prisma.JsonNull for the JSON value null.");if(X.isList&&Y!==null&&Y!==void 0){if(!Array.isArray(Y))throw new I(`data.${X.name}`,$.name,Z,`'${X.name}' is a scalar list, so it takes an array \u2014 or `+`{ set: [...] } / { push: \u2026 }. Received ${typeof Y}.`);if(Y.some((G)=>f(G)==="any"))throw new I(`data.${X.name}`,$.name,Z,"Prisma.AnyNull is a filter operand, not a value, and that does not change for being inside a list.")}return z.encode(Y,X)}}function V4($,Z){return()=>Z.encode([],$)}function W5($){return $.isList===!0&&!$.default&&!$.nullable}function L5($,Z){return(X,z)=>Z.encode(e3($,z.now),$)}function i0($,Z,X,z,J){if(r9.has(z))return{clause:P(` returning ${D5($,X)}`),selected:P(D5($,X)),fields:[],relations:[],counts:[]};let H=Z0($,Z,z),{plans:Y,keyFields:G}=O0($,Z,X,z),{fields:V,hidden:W}=z3($,H,[...G,...J?.keyFields??[]]),M=G3($,Z,X,z),B=w([...V.map((D)=>P(X.quoteIdent(D.column))),...M.map((D)=>D.column)],", ");return{clause:R(P(" returning "),B),selected:B,fields:V,hidden:W,relations:Y,counts:M}}function G4($,Z,X){let z=D5($,X),{text:J,binders:H}=p(P(`select ${z} from ${X.quoteIdent($.table)} where false`),X,{model:$.name,operation:Z});return{text:J,bind:n(H),shape:(Y)=>({count:Y.length})}}function D5($,Z){let X=$.primaryKey[0]??Object.keys($.fields)[0];return Z.quoteIdent($.fields[X].column)}function M5($,Z){let X=$.fields[Z];if(!X)throw new k(Z,$.name,Object.keys($.fields));return X}function Q3($,Z,X,z,J,H){let{text:Y,binders:G}=p(Z,X,{model:$.name,operation:z}),V=g0(J.fields,X,J.relations.map((B)=>({key:B.as,kind:B.kind}))),W=R2.has(z),M=r9.has(z);return{text:Y,bind:n(G),relations:J.relations.length>0?J.relations:void 0,strategies:J.relations.length>0?k0(J.relations):void 0,hidden:J.hidden,before:H&&H.before.length>0?H.before:void 0,after:H&&H.after.length>0?H.after:void 0,counts:J.counts.length>0?!0:void 0,shape(B){if(M)return{count:B.length};let D=V(B);if(J.counts.length>0)for(let j=0;j<D.length;j++){let C=B[j]??{},_={};for(let F of J.counts)_[F.as]=Number(C[F.alias]??0);D[j]._count=_}return W?D[0]??null:D}}}function W4($){if($===void 0||$===null)return[];return Array.isArray($)?$:[$]}function v2($,Z,X){if(X===void 0||X===null)throw new K("args",$.name,Z,`${Z} requires arguments.`);if(typeof X!=="object"||Array.isArray(X))throw new I(String(X),$.name,Z,"Expected an object.");if(X.select!==void 0&&X.include!==void 0)throw new K("select + include",$.name,Z,"Prisma allows only one of them on the same query.");let z=P5[Z];for(let J of Object.keys(X).sort()){if(X[J]===void 0)continue;if(!z.has(J))throw new K(J,$.name,Z,`${Z} takes ${[...z].sort().join(", ")}.`)}for(let J of k2(Z))if(X[J]===void 0)throw new K(J,$.name,Z,`${Z} requires '${J}'.`)}function k2($){switch($){case"create":case"createMany":return["data"];case"update":return["data","where"];case"updateMany":return["data"];case"delete":return["where"];case"upsert":return["where","create","update"];default:return[]}}function f2($,Z,X,z,J){if($!=="postgres")return null;if(z.length>0)return null;if(J===0)return null;if(!/^\s*select/i.test(X))return null;let H=Object.values(Z.fields).filter((Y)=>Y.type==="DateTime").map((Y)=>Y.name);if(H.length===0)return null;return`[gemi] ${Z.name} was read with a query that binds no parameters, on Postgres, in a process whose clock is not UTC. Bun decodes timestamp(3) over the simple query protocol as local time, so ${H.length===1?"the column":"columns"} ${H.join(", ")} will be off by this machine's UTC offset \u2014 the same `+'row read through a query that binds a parameter returns a different instant. Set TZ=UTC on this process. See "Run Postgres deployments with TZ=UTC" in docs/orm.md. (Warned once.)'}function g2($,Z){if(Z===void 0)return new Date($).getTimezoneOffset();let X=new Intl.DateTimeFormat("en-US",{timeZone:Z,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).formatToParts(new Date($)),z=(H)=>Number(X.find((Y)=>Y.type===H)?.value),J=Date.UTC(z("year"),z("month")-1,z("day"),z("hour"),z("minute"),z("second"));return($-J)/60000}function M4($){let Z=new Date().getUTCFullYear();for(let X=0;X<12;X++)if(g2(Date.UTC(Z,X,1),$)!==0)return!0;return!1}function B4($,Z){let X=!1;return(z,J,H,Y)=>{if(!$||X)return null;let G=f2(z,J,H,Y,Z());if(G!==null)X=!0;return G}}var D4=new Set(["by","where","orderBy","having","take","skip",...t]);function T5($){return $==="groupBy"}function R5($,Z,X,z){n2($,Z,X);let J=h2($,Z,X?.by),H=d3($,Z,X),Y=P(` from ${z.quoteIdent($.table)}`),G=v($,X?.where,{dialect:z,operation:Z},(U)=>U?.where),V=G?R(P(" where "),G):P(""),W=w([...J.map((U)=>P(`${z.quoteIdent(U.field.column)} as ${z.quoteIdent(U.alias)}`)),...H.map((U)=>P(y2(U,z)))],", "),M=R(P(" group by "),w(J.map((U)=>P(z.quoteIdent(U.field.column))),", ")),B=P4($,Z,X?.having,J,z),D=B?R(P(" having "),B):P(""),j=s2($,Z,X?.orderBy,J,z),C=j?R(P(" order by "),j):P(""),F=X?.take!==void 0||X?.skip!==void 0?j0($,Z,X,z,[]).clause:P(""),T=R(P("select "),W,Y,V,M,D,C,F),{text:Q,binders:L}=p(T,z,{model:$.name,operation:Z});return{text:Q,bind:n(L),shape(U){return U.map((b)=>{let S={};for(let N of H){if(N.kind==="_count"&&N.as===W3){S._count=F0(N,b[N.alias],z);continue}let A=S[N.kind]??={};A[N.as]=F0(N,b[N.alias],z)}for(let N of J)S[N.field.name]=z.needsDecode(N.field)?z.decode(b[N.alias],N.field):b[N.alias];return S})}}}function y2($,Z){let X=$.field?Z.quoteIdent($.field.column):"*";return`${h0[$.kind]}(${X}) as ${Z.quoteIdent($.alias)}`}function h2($,Z,X){let z=typeof X==="string"?[X]:X;if(!Array.isArray(z))throw new K("by",$.name,Z,`Expected a field name or an array of them, got ${JSON.stringify(X)}.`);if(z.length===0)throw new K("by",$.name,Z,"At least one field is required to group by. Prisma rejects an empty "+"'by' too \u2014 without one there is nothing to group, and the answer "+"would be 'aggregate'.");let J=[],H=new Set;for(let Y of z){if(typeof Y!=="string")throw new K("by",$.name,Z,`Expected field names, got ${JSON.stringify(Y)}.`);if(H.has(Y))continue;if(H.add(Y),Y in $.relations)throw new K(`by.${Y}`,$.name,Z,`'${Y}' is a relation. A group is a set of rows of this model, so only its own columns can name one.`);let G=$.fields[Y];if(!G)throw new k(Y,$.name,Object.keys($.fields));J.push({field:G,alias:`_by_${J.length}`})}return J}function P4($,Z,X,z,J,H=(Y)=>Y?.having){if(X===void 0||X===null)return null;if(typeof X!=="object"||Array.isArray(X))throw new K("having",$.name,Z,"Expected an object of field filters.");let Y=X,G=[];for(let V of Object.keys(Y).sort()){let W=Y[V];if(W===void 0)continue;if(V==="AND"||V==="OR"||V==="NOT"){let D=u2($,Z,V,W,z,J,H);if(D)G.push(D);continue}let M=m2(W),B=p2($,Z,V,z,M);if(M){d2($,Z,V,W);for(let D of t){let j=W[D];if(j===void 0)continue;M3($,Z,D,B),G.push(j4(`${h0[D]}(${J.quoteIdent(B.column)})`,j,$,Z,`having.${V}.${D}`,(C)=>H(C)?.[V]?.[D],J))}continue}G.push(j4(J.quoteIdent(B.column),W,$,Z,`having.${V}`,(D)=>H(D)?.[V],J))}if(G.length===0)return null;return G.length===1?G[0]:R(P("("),w(G," and "),P(")"))}function u2($,Z,X,z,J,H,Y){let G=Array.isArray(z)?z:[z],V=[];for(let M=0;M<G.length;M++){let B=Array.isArray(z)?(j)=>Y(j)?.[X]?.[M]:(j)=>Y(j)?.[X],D=P4($,Z,G[M],J,H,B);if(D)V.push(D)}if(V.length===0)return X==="OR"?P("false"):null;let W=V.length===1?V[0]:R(P("("),w(V,X==="OR"?" or ":" and "),P(")"));return X==="NOT"?R(P("not ("),W,P(")")):W}function m2($){if(typeof $!=="object"||$===null||Array.isArray($))return!1;return t.some((Z)=>(Z in $))}function p2($,Z,X,z,J){let H=m0($,Z,"_count",X);if(J)return H;if(z.some((Y)=>Y.field.name===H.name))return H;throw new K(`having.${X}`,$.name,Z,`'${X}' is not in 'by'. A 'having' filter on a plain column needs the `+"column to be grouped \u2014 a group has one value for those and many for "+`everything else. Prisma refuses this too. Add '${X}' to 'by', aggregate it instead ('having: { ${X}: { _count: { \u2026 } } }'), or `+"filter the rows with 'where' rather than the groups with 'having'.")}function d2($,Z,X,z){let J=Object.keys(z).filter((H)=>!t.includes(H));if(J.length===0)return;throw new K(`having.${X}`,$.name,Z,"A 'having' filter is either a comparison on a grouped column or a filter "+"on an aggregate of it, not both \u2014 this one mixes "+`${J.sort().join(", ")} with an aggregate. Prisma's query engine panics on this shape rather than answering it, so there is no behaviour to match. Use an 'AND' of the two filters instead.`)}var K4={equals:"=",not:"<>",lt:"<",lte:"<=",gt:">",gte:">="},c2=K4;function j4($,Z,X,z,J,H,Y){if(typeof Z!=="object"||Z===null||Z instanceof Date)return R(P(`${$} = `),s((W)=>Y.encodeUntyped(H(W))));let G=Z,V=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;let B=c2[W];if(!B)throw new K(`${J}.${W}`,X.name,z,`A 'having' filter takes ${Object.keys(K4).sort().join(", ")}.`);if(M===null){V.push(P(`${$} is ${W==="not"?"not ":""}null`));continue}V.push(R(P(`${$} ${B} `),s((D)=>Y.encodeUntyped(H(D)?.[W]))))}if(V.length===0)return P("true");return V.length===1?V[0]:R(P("("),w(V," and "),P(")"))}function s2($,Z,X,z,J){if(X===void 0||X===null)return null;let H=Array.isArray(X)?X:[X],Y=[];for(let G of H){if(typeof G!=="object"||G===null)throw new K("orderBy",$.name,Z,"Expected an object of fields, or an array of them.");for(let V of Object.keys(G)){let W=G[V];if(W===void 0)continue;if(t.includes(V)){Y.push(...i2($,Z,V,W,J));continue}let M=$.fields[V];if(!M)throw new k(V,$.name,Object.keys($.fields));if(!z.some((B)=>B.field.name===M.name))throw new K(`orderBy.${V}`,$.name,Z,`'${V}' is not in 'by'. Every field an 'orderBy' names has to be one of the grouped columns, because a group has one value for those and many for everything else. Prisma refuses this too.`);Y.push(`${J.quoteIdent(M.column)} ${_3($,Z,V,W)}`)}}if(Y.length===0)return null;return P(Y.join(", "))}function i2($,Z,X,z,J){if(typeof z!=="object"||z===null||Array.isArray(z))throw new K(`orderBy.${X}`,$.name,Z,"Expected an object of fields.");let H=[],Y=z;for(let G of Object.keys(Y)){let V=Y[G];if(V===void 0)continue;if(X==="_count"&&G==="_all"){H.push(`count(*) ${_3($,Z,`${X}._all`,V)}`);continue}let W=m0($,Z,X,G);M3($,Z,X,W),H.push(`${h0[X]}(${J.quoteIdent(W.column)}) ${_3($,Z,`${X}.${G}`,V)}`)}return H}function _3($,Z,X,z){if(z==="asc"||z==="desc")return z;if(typeof z==="object"&&z!==null&&!Array.isArray(z)){let{sort:J,nulls:H}=z,Y=_3($,Z,X,J);if(H===void 0)return Y;if(H!=="first"&&H!=="last")throw new K(`orderBy.${X}.nulls`,$.name,Z,`Expected 'first' or 'last', got ${JSON.stringify(H)}.`);return`${Y} nulls ${H}`}throw new K(`orderBy.${X}`,$.name,Z,`Expected 'asc', 'desc', or { sort, nulls }, got ${JSON.stringify(z)}.`)}function n2($,Z,X){if(X===void 0||X===null||typeof X!=="object")throw new K("by",$.name,Z,"groupBy requires 'by'.");for(let z of Object.keys(X).sort()){if(X[z]===void 0)continue;if(D4.has(z))continue;throw new K(z,$.name,Z,`${Z} takes ${[...D4].sort().join(", ")}.`)}if(X.by===void 0)throw new K("by",$.name,Z,"groupBy requires 'by'.")}function I5($,Z,X,z,J){if(p3(Z))return u0($,Z,X,z);if(T5(Z))return R5($,Z,X,z);if(N9(Z))return i3($,Z,X,z,J);if(a9(Z))return K5($,Z,X,z);throw new K(Z,$.name,Z,`'${Z}' is not an operation this ORM compiles \u2014 the reads, the writes, `+"'aggregate' and 'groupBy' are, and a raw statement goes through 'DB.query' or 'DB.execute'.")}var _4=1000,z0=new Map,U5=0,N5=0,O5=0,l2=new Set(["orderBy","select","omit","include","distinct","mode","_count","_avg","_sum","_min","_max","skipDuplicates","by"]),o2=new Set(["_count","_avg","_sum","_min","_max"]);function J0($,Z=!1,X=!1,z=!1){if($===null)return"null";if($===void 0)return"undefined";let J=typeof $;if(J!=="object")return Z?JSON.stringify($):J;if($ instanceof Date)return"date";let H=f($);if(H)return`jsonNull:${H}`;if(Array.isArray($))return`[${$.map((G)=>J0(G,Z,X,z)).join(",")}]`;return`{${Object.entries($).filter(([,G])=>G!==void 0).sort(([G],[V])=>G<V?-1:G>V?1:0).map(([G,V])=>`${G}:${e2(G,V,Z,X,z)}`).join(",")}}`}var t2=new Set(["in","notIn","hasEvery","hasSome","push","path","has_some_keys","has_every_key"]),r2="$compositeIn";function Q4($){return $.length===0?"[]":"[*]"}var a2=new Set(["where","cursor","data"]);function e2($,Z,X,z,J){if($==="take"&&typeof Z==="number")return`number:${Math.sign(Z)}`;if($==="skip"&&typeof Z==="number")return"number";if(z&&t2.has($)&&Array.isArray(Z)){if($!=="path"||Z.every((H)=>typeof H==="string"))return Q4(Z)}if($===r2){let H=Z;return J0(z?{fields:H.fields,values:Q4(H.values)}:Z,!0,z)}if(($==="disconnect"||$==="delete")&&typeof Z==="boolean")return JSON.stringify(Z);if(a2.has($))return J0(Z,!1,z,J);if($==="having")return J0(Z,!1,z,!0);if(J&&o2.has($))return J0(Z,!1,z,!0);return J0(Z,X||l2.has($),z,J)}function C4($,Z,X,z,J="batched"){return`${$.name}:${J}:${Z}:${X}:${J0(z,!1,$.bindsListAsOneParameter)}${Z8(z)}${$8(z)}`}function $8($){if($===null||typeof $!=="object")return"";let Z=$.skipIfUnchanged;return Z===void 0?"":`:skipIfUnchanged=${String(Z)}`}function Z8($){if($===null||typeof $!=="object")return"";let Z=$.lock;return Z===void 0?"":`:lock=${J0(Z,!0)}`}function n0($,Z,X,z,J){let H=C4(z,$.name,Z,X,J?.name),Y=z0.get(H);if(Y)return N5++,z0.delete(H),z0.set(H,Y),Y;let G=I5($,Z,X,z,J);if(U5++,z0.size>=_4){let V=z0.keys().next();if(!V.done)z0.delete(V.value),O5++}return z0.set(H,G),G}function X8(){return{size:z0.size,compiles:U5,hits:N5,evictions:O5,capacity:_4}}function z8(){z0.clear(),U5=0,N5=0,O5=0}var L4=new WeakMap;function C3($,Z,X=_0()){let z={},J={},H=$;for(let Y of Object.keys(H)){if(!(Y in Z.fields))continue;z[Y]=H[Y]}for(let Y of Z.primaryKey)J[Y]=H[Y];L4.set($,{model:Z.name,connection:X,key:J,snapshot:z})}function C0($){if($===null||typeof $!=="object")return;return L4.get($)}function F5($,Z){let X=C0($);if(!X)return{};let z=$,J={};for(let H of Object.keys(X.snapshot))if(!H8(z[H],X.snapshot[H]))J[H]=z[H];return J8($,X,Z),J}function J8($,Z,X){for(let z of Object.keys($)){if(z in Z.snapshot)continue;if(!(z in X.fields))continue;if(z in X.relations)continue;throw new K(`save.${z}`,X.name,"save",`'${z}' was not fetched by the query this row came from, so save `+"cannot write it \u2014 the diff has nothing to compare it against, and "+`writing it blind would overwrite whatever the column actually holds. Select '${z}' in the query, or update it explicitly with ${X.name}.update({ where, data: { ${z} } }).`)}}function L3($,Z){let X=C0($);if(!X)return;for(let z of Object.keys(Z))X.snapshot[z]=Z[z]}function T4($,Z){let X=$===null||$===void 0?String($):Array.isArray($)?"an array":typeof $;return new K("save",Z,"save","This object carries no provenance, so there is no row to update. Either "+"the query did not ask for it \u2014 pass { track: true } as the second "+`argument, e.g. ${Z}.findUnique({ where }, { track: true }) \u2014 or this `+`is a copy of a row that did. Provenance is keyed on object identity, so spreading, cloning or JSON round-tripping a row loses it. (Received ${X}.)`)}function Y8($){return C0($)!==void 0}function H8($,Z){if($===Z)return!0;if($ instanceof Date&&Z instanceof Date)return $.getTime()===Z.getTime();if(ArrayBuffer.isView($)&&ArrayBuffer.isView(Z)){let X=new Uint8Array($.buffer,$.byteOffset,$.byteLength),z=new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength);if(X.length!==z.length)return!1;for(let J=0;J<X.length;J++)if(X[J]!==z[J])return!1;return!0}return!1}function V8($={}){let Z=$.field??"deletedAt";return Object.assign({scope:()=>({[Z]:null}),onCreate:(z,J)=>J,onUpdate:(z,J)=>J},{[N4]:Z})}function G8($,Z={}){let X=Z.field??"deletedAt";return(z)=>{return U4($,z,"delete"),$.update({...z,data:{[X]:new Date}})}}function W8($,Z={}){let X=Z.field??"deletedAt";return(z={})=>{return U4($,z,"deleteMany"),$.updateMany({...z,data:{[X]:new Date}})}}function U4($,Z,X){if(Z?.data===void 0)return;throw new K("data",$.$schema?.name??"unknown",X,`${X} takes no 'data' \u2014 the soft-delete rewrite supplies it. `+"Call update directly if you meant to change other fields at the same time.")}var N4=Symbol("gemi.orm.softDeletesField");function R4($){return $[N4]}function S5($,Z){let X=$.$softDeletes;if(X===void 0||X===!1||X===null)return;let z=X===!0?"deletedAt":X.field??"deletedAt",J=Z.fields[z];if(J===void 0||!J.nullable||J.isList)throw new K("$softDeletes",Z.name,"softDeletes",J===void 0?`${Z.name} has no '${z}' field to soft-delete on. Set \`static $softDeletes = { field: "<column>" }\` to name a nullable DateTime column, or add \`${z} DateTime?\` to the model.`:`'${z}' must be a nullable scalar column to mark a row deleted, and on ${Z.name} it is not.`);return z}var I4=new Map;function M8($,Z){let X=`${Z}:${$}`,z=I4.get(X);if(z!==void 0)return z;let J=Z==="hidden"?{[$]:null}:{[$]:{not:null}};return z=Object.freeze({scope:(H)=>H.operation==="upsert"?void 0:J,onCreate:(H,Y)=>Y,onUpdate:(H,Y)=>Y}),I4.set(X,z),z}function A5($,Z,X){if(Z===void 0)return $;let z=$.some((J)=>R4(J)===Z)?$.filter((J)=>R4(J)!==Z):$;if(X==="with")return z;return[M8(Z,X==="only"?"only":"hidden"),...z]}var B8=new Set(["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","findMany","create","update","upsert","delete"]),D8=new Set(["findFirstOrThrow","findUniqueOrThrow","update","delete"]);function l0($,Z){return u5($.sql,Z,{slowTransactionThreshold:$.config.slowTransactionThreshold,connection:$.name})}var O4=new WeakMap;class O3{constructor(){}static $schema;static $policies;static $skipNoopUpdates;static $connection;static on($){let Z=O4.get(this);if(Z===void 0)O4.set(this,Z=new Map);let X=Z.get($);if(X!==void 0)return X;let z=class extends this{static $connection=$};return Object.defineProperty(z,"name",{value:this.name,configurable:!0}),Z.set($,z),z}static asSystem($){return y5($)}static asUser($,Z){return h5($,Z)}static $softDeletes;static withTrashed($){return S4(this,"with",$)}static onlyTrashed($){return S4(this,"only",$)}static restore($){return Promise.resolve().then(()=>{let Z=I3(this,"restore");return R3(this.$modelSchema().name,"only",()=>this.$exec("update",{...$,data:{[Z]:null}}))})}static restoreMany($){return Promise.resolve().then(()=>{let Z=I3(this,"restoreMany");return R3(this.$modelSchema().name,"only",()=>this.$exec("updateMany",{...$,data:{[Z]:null}}))})}static async save($){let Z=this.$modelSchema(),X=C0($);if(!X)throw T4($,Z.name);if(X.model!==Z.name)throw new K("save",Z.name,"save",`This row came from ${X.model}, not ${Z.name}. Save it through the model it was read from.`);if(this.$connection!==void 0&&this.$connection!==X.connection)throw new K("save",Z.name,"save",`This row was read on the "${X.connection}" connection and this save names "${this.$connection}". A save writes the row back where it came from, so the two cannot both be honoured. Drop the \`on("${this.$connection}")\`, or write it as an explicit ${Z.name}.on("${this.$connection}").update({ where, data }) if copying it across connections is what you meant.`);let z=Z.primaryKey.filter((Y)=>X.key[Y]===void 0);if(z.length>0)throw new K("save",Z.name,"save",`This row was fetched without ${z.join(", ")}, so there is no way to identify which row to update. A tracked row needs its primary key: add ${z.map((Y)=>`${Y}: true`).join(", ")} to the select, or drop the select to fetch every column.`);let J=F5($,Z);if(Object.keys(J).length===0)return null;let H=await T3(X.connection,()=>this.$exec("update",{where:X.key,data:J}));if(H&&typeof H==="object"&&!Array.isArray(H)){let Y=H,G=$,V={};for(let W of Object.keys(Y)){if(!(W in Z.fields))continue;G[W]=Y[W],V[W]=Y[W]}L3($,V)}else L3($,J);return H}static wrap($){let Z=this.$modelSchema(),X=new this;return Object.assign(X,$),C3(X,Z,this.$connection??C0($)?.connection??_0()),X}save(){return this.constructor.save(this)}static $modelSchema(){let $=this.$schema;if(!$)throw new v0(this.name);return $}static async transaction($){let Z=this.$connection??_0();return l0(b5(E5).connection(Z),()=>T3(Z,()=>$()))}static async $exec($,Z={},X){return T3(this.$connection??_0(),()=>this.$execute($,Z,X))}static async $execute($,Z={},X){let z=this.$modelSchema(),J=b5(E5).connection(_0()),H=m5(J.dialect),Y=o0()??J.sql;if(Z?.lock!==void 0&&B3[$]?.has("lock")&&o0()===void 0)throw new f5(z.name,$);let G=g5(),V=P0(z.name)?G0(z.name):void 0,W=m4(this,z,V),M=G?[]:S0(this),B=A5(M,W,this.$trashed??q5(z.name)),D,j=Z;if(!G){if(V!==void 0&&V!==this&&!j8(this,V)){let S=S0(V);if(M.length!==S.length||M.some((A,O)=>A!==S[O]))throw new v5(z.name,V.name??String(V),this.name,M.length>0?"queried":"registered")}}let C=k4(X);if(!C)j=u4(z,j,t0(),!1,(S)=>{if(!P0(S))return;let N=G0(S),A=N.$schema;if(!A)return;return{policies:A5(G?[]:S0(N),S5(N,A),q5(A.name)),schema:A}});if($==="upsert"&&!C&&L8(z,Z,$)){let{where:S,create:N,update:A,...O}=Z,q=b4({...X});return l0(J,async()=>{return await this.$exec("findFirst",{where:S},q)===null?await this.$exec("create",{data:N,...O},q):await this.$exec("update",{where:S,data:A,...O},q)})}if(B.length>0){if(D=U3(z.name,(C?y4(X):void 0)??$,t0(),G),!C)j=p5(B,D,j,g4(X))}let _=q4(X);if(!_)E4(z,$,j);let F=n3(X?.strategy,H,{model:z.name,operation:$});if($==="createMany"&&Array.isArray(j?.data)){let S=C8(z,j,H,F,$);if(S!==null)return l0(J,async()=>{let N=0;for(let A of S){let O=await this.$exec("createMany",{...j,data:A},L0({strategy:X?.strategy}));N+=O.count}return{count:N}})}if(($==="update"||$==="updateMany")&&this.$skipNoopUpdates===!0&&j?.skipIfUnchanged===void 0&&!T8(X))j={...j,skipIfUnchanged:!0};if(!_)j=w4(z,$,j);let T=n0(z,$,j,H,F),Q={exec:(S,N,A,O,q)=>{let y=b4(O?L0({strategy:X?.strategy}):{strategy:X?.strategy});return G0(S).$exec(N,A,q&&q.length>0?f4(y,q):y)},query:(S,N)=>Y.unsafe(S,N)},L=N0();if($==="delete"&&(T.relations!==void 0||T.counts)){let{where:S,...N}=j;return l0(J,async()=>{let A=await this.$exec("findFirst",{where:S,...N},w5(L0({strategy:X?.strategy}),$));if(A===null)throw new r(z.name,$);return await this.$exec("delete",{where:S},L0({strategy:X?.strategy})),A})}let U=async()=>{Y=o0()??Y,await A4(T.before,j,L,Q,[]);let S=await K8(Y,H,z,$,T.text,T.bind(j,L)),N=this.$shape(T,S);if(!_&&B8.has($))x4(z,M0(N));if(N===null&&$==="update"&&j?.skipIfUnchanged===!0){let{data:A,skipIfUnchanged:O,where:q,...y}=j,B0=await this.$exec("findFirst",{where:q,...y},w5(L0({strategy:X?.strategy,track:X?.track}),$));if(B0===null)throw new r(z.name,$);return B0}if(N===null&&D8.has($))throw new r(z.name,$);if(await A4(T.after,j,L,Q,M0(N)),T.counts&&T.after!==void 0)await _8(z,this,j,M0(N),X);if(T.relations!==void 0)await V3(T.relations,T.hidden,N,j,Q);else if(T.hidden!==void 0&&T.hidden.length>0)for(let A of M0(N))for(let O of T.hidden)delete A[O];if(T.relations!==void 0&&!_){let A=M0(N);for(let O of T.relations){if(O.root===void 0)continue;v4({as:O.as,model:O.model,folded:O.root.folded},A)}}if(T.relations!==void 0&&!G)for(let A of T.relations){if(A.root===void 0)continue;p4({as:A.as,model:A.model,folded:A.root.folded},N,h4,G)}if(D)N3(B,D,N);if(X?.track===!0)for(let A of M0(N))C3(A,z);return N};return T.before!==void 0&&T.before.length>0||T.after!==void 0&&T.after.length>0?l0(J,U):U()}static $shape($,Z){return $.shape(Z)}}function j8($,Z){return Object.getPrototypeOf($)===Z&&!Object.hasOwn($,"$policies")}var F4=new WeakMap;function S4($,Z,X){let z=Z==="with"?"withTrashed":"onlyTrashed";if(X!==void 0)return Promise.resolve().then(()=>{return I3($,z),R3($.$modelSchema().name,Z,X)});I3($,z);let J=F4.get($);if(J===void 0)F4.set($,J=new Map);let H=J.get(Z);if(H!==void 0)return H;let Y=class extends ${static $trashed=Z};return Object.defineProperty(Y,"name",{value:$.name,configurable:!0}),J.set(Z,Y),Y}function m4($,Z,X){let z=$.$softDeletes;return S5(z!==void 0||X===void 0?$:X,Z)}function I3($,Z){let X=$.$modelSchema(),z=m4($,X,P0(X.name)?G0(X.name):void 0);if(z===void 0)throw new K(Z,X.name,Z,`${X.name} does not soft-delete. Set \`static $softDeletes = true\` on the model class (or \`{ field: "<column>" }\`) to use ${Z}.`);return z}async function A4($,Z,X,z,J){if($===void 0)return;for(let H of $)await H.run(Z,X,z,J)}var P8=B4(M4(),()=>new Date().getTimezoneOffset());async function K8($,Z,X,z,J,H){let Y=P8(Z.name,X,J,H);if(Y)console.warn(Y);try{return await $.unsafe(J,H)}catch(G){let V=Z.constraintViolation(G);if(!V)throw G;throw new x5(X.name,z,Q8(X,V.columns),V.constraint,{cause:G})}}function Q8($,Z){return Z.map((X)=>{for(let z of Object.values($.fields))if(z.column===X)return z.name;return X})}async function _8($,Z,X,z,J){let H=X?.include?._count??X?.select?._count;if(H===void 0||z.length===0)return;for(let Y of z){let G={},V=$.primaryKey.length>0;for(let M of $.primaryKey){let B=Y[M];if(B===void 0){V=!1;break}G[M]=B}if(!V)continue;let W=await Z.$exec("findFirst",{where:G,select:{_count:H}},L0({strategy:J?.strategy}));if(W&&W._count!==void 0)Y._count=W._count}}function M0($){if(Array.isArray($))return $;if($===null||$===void 0)return[];if(typeof $!=="object")return[];return[$]}function C8($,Z,X,z,J){let H=Z.data;if(H.length<2)return null;try{return n0($,J,Z,X,z),null}catch(Y){if(!(Y instanceof k5))throw Y;let G={...Z,data:[H[0]]},V=n0($,J,G,X,z).bind(G,N0()).length;if(V===0||V>Y.limit)throw Y;let W=Math.floor(Y.limit/V),M=[];for(let B=0;B<H.length;B+=W)M.push(H.slice(B,B+W));return M}}function L8($,Z,X){try{let z=h($,Z?.where,{model:$.name,operation:X,argument:"where"});return Q5($,Z,z).length>0}catch{return!1}}function p4($,Z,X,z){let J=P0($.model)?G0($.model):void 0,H=J?S0(J):[],Y=$.folded??[];if(H.length===0&&Y.length===0)return;let G=H.length>0?U3(J.$schema?.name??$.model,X,t0(),z):void 0,V=[];for(let W of M0(Z)){let M=W?.[$.as];if(M===void 0||M===null)continue;if(G)N3(H,G,M);if(Y.length>0)V.push(...M0(M))}for(let W of Y)p4(W,V,X,z)}var d4=Symbol("gemi.orm.issuedByTheOrm");function b4($){return{...$,[d4]:!0}}function T8($){return typeof $==="object"&&$!==null&&$[d4]===!0}class c4 extends O3{static $shape($,Z){let X=$.shape(Z);if(Array.isArray(X))return X.map((z)=>this.hydrate(z));if(X===null||typeof X!=="object")return X;if("count"in X)return X;return this.hydrate(X)}static hydrate($){if($===null||typeof $!=="object")return $;return this.wrap($)}}var R8=Number.MAX_SAFE_INTEGER;function F3($){if(typeof $==="string"){if($.trim()==="")return null}else if(typeof $!=="number")return null;let Z=Number($);if(!Number.isFinite(Z))return null;return Math.trunc(Z)}var s4=($,Z,X)=>Math.min(Math.max($,Z),X);function I8($,Z={}){let X=Z.maxPerPage===1/0?1/0:Math.max(1,F3(Z.maxPerPage)??100),z=s4(F3(Z.perPage)??25,1,X),J=s4(F3($?.perPage)??z,1,X),H=Math.max(F3($?.page)??1,1),Y=Math.min((H-1)*J,R8);return{take:J,skip:Y}}export{u5 as withTransaction,r8 as unsafeSql,g8 as transactionDepth,C3 as track,k0 as strategiesOf,l8 as sql,V8 as softDeletes,W8 as softDeleteMany,G8 as softDelete,b7 as shaperCompilationAvailable,A7 as setShaperCompilation,h5 as runAsUser,y5 as runAsSystem,Y6 as rotateEncryptedColumns,n3 as resolveStrategy,L3 as resnapshot,a8 as renderFragment,h3 as registry,J6 as registerModels,E8 as register,Z6 as redactNullable,C0 as provenanceOf,U3 as policyContext,S0 as policiesFor,O0 as planRelations,C4 as planKey,X8 as planCacheStats,I8 as paginate,i8 as ormSupports,v8 as ormContext,p0 as lateralStrategy,f as jsonNullKind,o8 as join,O8 as isUniqueConstraintError,Y8 as isTracked,g5 as isSystemScope,N8 as isRecordNotFoundError,g9 as isClientSideDefault,d0 as hasClientSideValue,n0 as getOrCompile,n8 as everyDialect,t8 as empty,m5 as dialectFor,x9 as defaultStrategy,t0 as currentUser,o0 as currentTransaction,y8 as currentActor,m9 as createUuid,u9 as createUlid,h9 as createNanoid,y9 as createCuid,N0 as createBindContext,K5 as compileWrite,i3 as compileRead,I5 as compile,e3 as clientSideValue,z8 as clearPlanCache,F5 as changedFields,J0 as canonicalShape,g0 as buildRowShaper,m3 as buildInterpretedShaper,W0 as batchedStrategy,z6 as auditModelRegistrations,V3 as attachRelations,l7 as assertSchemaArtifactVersion,X6 as assertPoliciesRegistered,N3 as applyRedaction,p5 as applyPolicies,k8 as afterCommit,K as UnsupportedQueryError,s8 as UnsupportedDialectError,w0 as UnsupportedByDesignError,y3 as UnregisteredRelationTargetError,v5 as UnregisteredPolicyClassError,x0 as UnknownRelationError,k as UnknownFieldError,w8 as UnknownConnectionError,x5 as UniqueConstraintError,f8 as TransactionDependencyError,o3 as StaleSchemaArtifactError,c8 as SqliteDialect,$6 as ScopedPolicy,S8 as ScopeEscapeError,n7 as SCHEMA_ARTIFACT_VERSION,j5 as ReturningUnsupportedError,g3 as RelationDepthExceededError,r as RecordNotFoundError,m8 as PostgresDialect,F8 as PolicyDeniedError,e8 as Policy,k5 as ParameterLimitError,q8 as ModelNotRegisteredError,O3 as Model,P3 as MissingRequiredValueError,v0 as MissingModelSchemaError,d as MalformedRelationError,H3 as MAX_RELATION_DEPTH,f5 as LockOutsideTransactionError,a3 as JsonNull,A8 as InvalidPolicyEntryError,I as InvalidArgumentError,h8 as EncryptionKeyError,u8 as DecryptionError,U8 as DecodeError,p8 as DbNull,x8 as CrossConnectionTransactionError,d8 as AnyNull,b8 as AmbiguousModelRegistrationError,c4 as ActiveRecordModel};
12
12
 
13
- //# debugId=4C931791D138AFC064756E2164756E21
13
+ //# debugId=315ECF7BC12D81B664756E2164756E21