gemi 0.113.0 → 0.115.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 (238) hide show
  1. package/dist/ai/index.js +32 -32
  2. package/dist/ai/index.js.map +3 -5
  3. package/dist/app/App.d.ts.map +1 -1
  4. package/dist/app/index.js +1 -1
  5. package/dist/bin/gemi.js +8 -1
  6. package/dist/bin/gemi.js.map +3 -3
  7. package/dist/bun/plugin.js +1 -1
  8. package/dist/bun/preload.js +1 -1
  9. package/dist/{chunk-1p85fdrk.js → chunk-0av6xvm6.js} +2 -2
  10. package/dist/{chunk-1p85fdrk.js.map → chunk-0av6xvm6.js.map} +1 -1
  11. package/dist/chunk-0z8ejxre.js +5 -0
  12. package/dist/chunk-0z8ejxre.js.map +12 -0
  13. package/dist/{chunk-r7b12dmm.js → chunk-15c2vgaf.js} +2 -2
  14. package/dist/{chunk-r7b12dmm.js.map → chunk-15c2vgaf.js.map} +1 -1
  15. package/dist/{chunk-fr0arqdj.js → chunk-1hr4xht1.js} +2 -2
  16. package/dist/{chunk-fr0arqdj.js.map → chunk-1hr4xht1.js.map} +1 -1
  17. package/dist/{chunk-4t1pbt9p.js → chunk-1myhm0g3.js} +3 -3
  18. package/dist/{chunk-4t1pbt9p.js.map → chunk-1myhm0g3.js.map} +1 -1
  19. package/dist/{chunk-v4gwmhtf.js → chunk-1vzks22y.js} +2 -2
  20. package/dist/{chunk-v4gwmhtf.js.map → chunk-1vzks22y.js.map} +1 -1
  21. package/dist/{chunk-vzf5pbx3.js → chunk-2tzm58j3.js} +2 -2
  22. package/dist/{chunk-vzf5pbx3.js.map → chunk-2tzm58j3.js.map} +1 -1
  23. package/dist/{chunk-qx87cdfg.js → chunk-2z1981d0.js} +2 -2
  24. package/dist/{chunk-qx87cdfg.js.map → chunk-2z1981d0.js.map} +1 -1
  25. package/dist/{chunk-mepaedy5.js → chunk-3hrj5rwm.js} +2 -2
  26. package/dist/{chunk-mepaedy5.js.map → chunk-3hrj5rwm.js.map} +1 -1
  27. package/dist/{chunk-rh2fad7n.js → chunk-41da9628.js} +1 -1
  28. package/dist/{chunk-5q4a7yqf.js → chunk-56jky6vf.js} +2 -2
  29. package/dist/{chunk-5q4a7yqf.js.map → chunk-56jky6vf.js.map} +1 -1
  30. package/dist/{chunk-5x0aacrn.js → chunk-785b41h1.js} +2 -2
  31. package/dist/{chunk-5x0aacrn.js.map → chunk-785b41h1.js.map} +1 -1
  32. package/dist/{chunk-nysqgzp1.js → chunk-7g9yh5ae.js} +2 -2
  33. package/dist/{chunk-nysqgzp1.js.map → chunk-7g9yh5ae.js.map} +1 -1
  34. package/dist/{chunk-g8kx549d.js → chunk-7vb4eey2.js} +3 -3
  35. package/dist/{chunk-g8kx549d.js.map → chunk-7vb4eey2.js.map} +1 -1
  36. package/dist/{chunk-szr1k584.js → chunk-8rv62v14.js} +2 -2
  37. package/dist/{chunk-szr1k584.js.map → chunk-8rv62v14.js.map} +1 -1
  38. package/dist/{chunk-68s1f5d5.js → chunk-98m15b9x.js} +2 -2
  39. package/dist/{chunk-68s1f5d5.js.map → chunk-98m15b9x.js.map} +1 -1
  40. package/dist/{chunk-y596ghpz.js → chunk-9b4erdy2.js} +2 -2
  41. package/dist/{chunk-y596ghpz.js.map → chunk-9b4erdy2.js.map} +1 -1
  42. package/dist/{chunk-rg4hhxj3.js → chunk-9n1hx3mq.js} +2 -2
  43. package/dist/{chunk-rg4hhxj3.js.map → chunk-9n1hx3mq.js.map} +1 -1
  44. package/dist/{chunk-9tpx9ag3.js → chunk-aazmrxj9.js} +2 -2
  45. package/dist/{chunk-9tpx9ag3.js.map → chunk-aazmrxj9.js.map} +1 -1
  46. package/dist/{chunk-01qd6xx3.js → chunk-aeh67ynz.js} +3 -3
  47. package/dist/{chunk-01qd6xx3.js.map → chunk-aeh67ynz.js.map} +1 -1
  48. package/dist/{chunk-5nqkwa2w.js → chunk-agyfv3f8.js} +1 -1
  49. package/dist/{chunk-sr18y2ck.js → chunk-bra1a1fq.js} +2 -2
  50. package/dist/{chunk-sr18y2ck.js.map → chunk-bra1a1fq.js.map} +1 -1
  51. package/dist/{chunk-y6v0x869.js → chunk-cbqazg9k.js} +2 -2
  52. package/dist/{chunk-y6v0x869.js.map → chunk-cbqazg9k.js.map} +1 -1
  53. package/dist/{chunk-k2fh4r0p.js → chunk-d2gfcf85.js} +2 -2
  54. package/dist/{chunk-k2fh4r0p.js.map → chunk-d2gfcf85.js.map} +1 -1
  55. package/dist/chunk-d6591xck.js +46 -0
  56. package/dist/{chunk-6g20zec2.js.map → chunk-d6591xck.js.map} +6 -6
  57. package/dist/{chunk-fnkjmq94.js → chunk-d9mar37g.js} +2 -2
  58. package/dist/{chunk-fnkjmq94.js.map → chunk-d9mar37g.js.map} +1 -1
  59. package/dist/chunk-dexdkh3z.js +14 -0
  60. package/dist/{chunk-cqnfp0n9.js.map → chunk-dexdkh3z.js.map} +7 -7
  61. package/dist/{chunk-bq5nqqeq.js → chunk-e573yxpq.js} +1 -1
  62. package/dist/{chunk-p3zmc8k8.js → chunk-eqse2m6n.js} +2 -2
  63. package/dist/{chunk-p3zmc8k8.js.map → chunk-eqse2m6n.js.map} +1 -1
  64. package/dist/{chunk-yyzexrnb.js → chunk-er3wf6ng.js} +2 -2
  65. package/dist/{chunk-yyzexrnb.js.map → chunk-er3wf6ng.js.map} +1 -1
  66. package/dist/{chunk-3f1kq32g.js → chunk-fre6f4nk.js} +2 -2
  67. package/dist/{chunk-3f1kq32g.js.map → chunk-fre6f4nk.js.map} +1 -1
  68. package/dist/{chunk-qt8nvpqp.js → chunk-fxgxf16k.js} +2 -2
  69. package/dist/{chunk-qt8nvpqp.js.map → chunk-fxgxf16k.js.map} +1 -1
  70. package/dist/{chunk-6wymbbes.js → chunk-gts5p6mw.js} +3 -3
  71. package/dist/{chunk-6wymbbes.js.map → chunk-gts5p6mw.js.map} +1 -1
  72. package/dist/{chunk-571rvxe6.js → chunk-hdps9n52.js} +2 -2
  73. package/dist/{chunk-571rvxe6.js.map → chunk-hdps9n52.js.map} +1 -1
  74. package/dist/{chunk-w45agtch.js → chunk-hytt9qyj.js} +2 -2
  75. package/dist/{chunk-w45agtch.js.map → chunk-hytt9qyj.js.map} +1 -1
  76. package/dist/{chunk-de03dewf.js → chunk-jafm3613.js} +2 -2
  77. package/dist/{chunk-de03dewf.js.map → chunk-jafm3613.js.map} +1 -1
  78. package/dist/{chunk-dbwhgyg3.js → chunk-jdhdrr2k.js} +2 -2
  79. package/dist/{chunk-dbwhgyg3.js.map → chunk-jdhdrr2k.js.map} +1 -1
  80. package/dist/{chunk-d04r0hdf.js → chunk-jmpw6bqz.js} +2 -2
  81. package/dist/{chunk-d04r0hdf.js.map → chunk-jmpw6bqz.js.map} +1 -1
  82. package/dist/{chunk-vwprq300.js → chunk-kejwjerj.js} +2 -2
  83. package/dist/{chunk-vwprq300.js.map → chunk-kejwjerj.js.map} +1 -1
  84. package/dist/{chunk-wr3e4sez.js → chunk-kqxdsv22.js} +2 -2
  85. package/dist/{chunk-wr3e4sez.js.map → chunk-kqxdsv22.js.map} +1 -1
  86. package/dist/{chunk-9vsj0ksk.js → chunk-ktr3k768.js} +3 -3
  87. package/dist/{chunk-9vsj0ksk.js.map → chunk-ktr3k768.js.map} +1 -1
  88. package/dist/{chunk-kz4yp5n7.js → chunk-m54s6jpr.js} +2 -2
  89. package/dist/{chunk-8mbyyh8j.js.map → chunk-m54s6jpr.js.map} +1 -1
  90. package/dist/{chunk-xqwdn9kb.js → chunk-mazznq15.js} +3 -3
  91. package/dist/{chunk-xqwdn9kb.js.map → chunk-mazznq15.js.map} +1 -1
  92. package/dist/{chunk-zng3qexn.js → chunk-mps6ynbh.js} +2 -2
  93. package/dist/{chunk-zng3qexn.js.map → chunk-mps6ynbh.js.map} +1 -1
  94. package/dist/{chunk-vdwagp7y.js → chunk-mqfzdfnz.js} +2 -2
  95. package/dist/{chunk-vdwagp7y.js.map → chunk-mqfzdfnz.js.map} +1 -1
  96. package/dist/{chunk-mk0rtgd1.js → chunk-mschc94q.js} +2 -2
  97. package/dist/{chunk-mk0rtgd1.js.map → chunk-mschc94q.js.map} +1 -1
  98. package/dist/{chunk-x5yq097b.js → chunk-mtbygktb.js} +3 -3
  99. package/dist/{chunk-x5yq097b.js.map → chunk-mtbygktb.js.map} +1 -1
  100. package/dist/{chunk-f1y8eggf.js → chunk-n672d4g8.js} +2 -2
  101. package/dist/{chunk-f1y8eggf.js.map → chunk-n672d4g8.js.map} +1 -1
  102. package/dist/{chunk-4tp2cr02.js → chunk-pyk3gzvc.js} +2 -2
  103. package/dist/{chunk-4tp2cr02.js.map → chunk-pyk3gzvc.js.map} +1 -1
  104. package/dist/{chunk-agw3anaf.js → chunk-qjhw8nje.js} +1 -1
  105. package/dist/{chunk-vqa3agzw.js → chunk-qsrcdzan.js} +3 -3
  106. package/dist/{chunk-vqa3agzw.js.map → chunk-qsrcdzan.js.map} +1 -1
  107. package/dist/{chunk-nksn6xcd.js → chunk-sr942vb1.js} +2 -2
  108. package/dist/{chunk-nksn6xcd.js.map → chunk-sr942vb1.js.map} +1 -1
  109. package/dist/{chunk-kexsfyjj.js → chunk-t04f3akb.js} +2 -2
  110. package/dist/{chunk-kexsfyjj.js.map → chunk-t04f3akb.js.map} +1 -1
  111. package/dist/chunk-t24p7gc6.js +5 -0
  112. package/dist/{chunk-fsfbyg5e.js.map → chunk-t24p7gc6.js.map} +1 -1
  113. package/dist/chunk-t4t3hqe0.js +10 -0
  114. package/dist/chunk-t4t3hqe0.js.map +38 -0
  115. package/dist/{chunk-z5hrymvn.js → chunk-t4yh4nf9.js} +3 -3
  116. package/dist/{chunk-z5hrymvn.js.map → chunk-t4yh4nf9.js.map} +1 -1
  117. package/dist/{chunk-c7mp2kyp.js → chunk-tn2bryy2.js} +2 -2
  118. package/dist/{chunk-c7mp2kyp.js.map → chunk-tn2bryy2.js.map} +1 -1
  119. package/dist/chunk-tw5kwbx4.js +4 -0
  120. package/dist/{chunk-kp7k4s5c.js.map → chunk-tw5kwbx4.js.map} +3 -3
  121. package/dist/{chunk-zyer1g7k.js → chunk-tzm3c7n6.js} +4 -4
  122. package/dist/{chunk-zyer1g7k.js.map → chunk-tzm3c7n6.js.map} +1 -1
  123. package/dist/{chunk-1se4t9rg.js → chunk-vbdty91k.js} +3 -3
  124. package/dist/{chunk-1se4t9rg.js.map → chunk-vbdty91k.js.map} +1 -1
  125. package/dist/{chunk-8mbyyh8j.js → chunk-vw8849ys.js} +2 -2
  126. package/dist/{chunk-kz4yp5n7.js.map → chunk-vw8849ys.js.map} +1 -1
  127. package/dist/{chunk-g8sc6scv.js → chunk-vxm6yevm.js} +2 -2
  128. package/dist/{chunk-g8sc6scv.js.map → chunk-vxm6yevm.js.map} +1 -1
  129. package/dist/{chunk-qpttgn4k.js → chunk-whtzggn6.js} +3 -3
  130. package/dist/{chunk-qpttgn4k.js.map → chunk-whtzggn6.js.map} +1 -1
  131. package/dist/{chunk-7jnpnjth.js → chunk-wyw6p3fg.js} +2 -2
  132. package/dist/{chunk-7jnpnjth.js.map → chunk-wyw6p3fg.js.map} +1 -1
  133. package/dist/{chunk-atmzm0z3.js → chunk-wzrt5mac.js} +2 -2
  134. package/dist/{chunk-atmzm0z3.js.map → chunk-wzrt5mac.js.map} +1 -1
  135. package/dist/{chunk-y6frz1vm.js → chunk-x7cpth2f.js} +1 -1
  136. package/dist/{chunk-essqp1ek.js → chunk-xt9tv99x.js} +2 -2
  137. package/dist/{chunk-essqp1ek.js.map → chunk-xt9tv99x.js.map} +1 -1
  138. package/dist/{chunk-x5sert1k.js → chunk-yhrye9cm.js} +2 -2
  139. package/dist/{chunk-x5sert1k.js.map → chunk-yhrye9cm.js.map} +1 -1
  140. package/dist/{chunk-vc9phr57.js → chunk-zyt2w03d.js} +2 -2
  141. package/dist/{chunk-vc9phr57.js.map → chunk-zyt2w03d.js.map} +1 -1
  142. package/dist/config/index.js +1 -1
  143. package/dist/console/run.js +2 -2
  144. package/dist/console/run.js.map +1 -1
  145. package/dist/container/index.js +2 -2
  146. package/dist/container/index.js.map +1 -1
  147. package/dist/database/index.js +2 -2
  148. package/dist/database/index.js.map +1 -1
  149. package/dist/email/index.js +2 -2
  150. package/dist/email/index.js.map +1 -1
  151. package/dist/facades/Storage.d.ts +25 -1
  152. package/dist/facades/Storage.d.ts.map +1 -1
  153. package/dist/facades/index.js +2 -2
  154. package/dist/facades/index.js.map +1 -1
  155. package/dist/foundation/index.js +2 -2
  156. package/dist/foundation/index.js.map +1 -1
  157. package/dist/http/HttpRequest.d.ts +31 -0
  158. package/dist/http/HttpRequest.d.ts.map +1 -1
  159. package/dist/http/McpRouter.d.ts +54 -1
  160. package/dist/http/McpRouter.d.ts.map +1 -1
  161. package/dist/http/RateLimitMiddleware.d.ts +4 -1
  162. package/dist/http/RateLimitMiddleware.d.ts.map +1 -1
  163. package/dist/http/index.d.ts +1 -0
  164. package/dist/http/index.d.ts.map +1 -1
  165. package/dist/http/index.js +2 -2
  166. package/dist/http/index.js.map +1 -1
  167. package/dist/http/modelOriginated.d.ts +36 -2
  168. package/dist/http/modelOriginated.d.ts.map +1 -1
  169. package/dist/i18n/dictionaryRuntime.js +2 -2
  170. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  171. package/dist/i18n/index.js +2 -2
  172. package/dist/i18n/index.js.map +1 -1
  173. package/dist/kernel/Kernel.d.ts +3 -0
  174. package/dist/kernel/Kernel.d.ts.map +1 -1
  175. package/dist/kernel/index.js +3 -3
  176. package/dist/kernel/index.js.map +3 -3
  177. package/dist/orm/index.js +2 -2
  178. package/dist/orm/index.js.map +1 -1
  179. package/dist/server/index.js +2 -2
  180. package/dist/server/index.js.map +1 -1
  181. package/dist/services/file-storage/drivers/AzureBlobDriver.d.ts +12 -1
  182. package/dist/services/file-storage/drivers/AzureBlobDriver.d.ts.map +1 -1
  183. package/dist/services/file-storage/drivers/FileStorageDriver.d.ts +32 -1
  184. package/dist/services/file-storage/drivers/FileStorageDriver.d.ts.map +1 -1
  185. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts +22 -1
  186. package/dist/services/file-storage/drivers/FileSystemDriver.d.ts.map +1 -1
  187. package/dist/services/file-storage/drivers/S3Driver.d.ts +14 -1
  188. package/dist/services/file-storage/drivers/S3Driver.d.ts.map +1 -1
  189. package/dist/services/file-storage/drivers/types.d.ts +26 -0
  190. package/dist/services/file-storage/drivers/types.d.ts.map +1 -1
  191. package/dist/services/index.d.ts +8 -3
  192. package/dist/services/index.d.ts.map +1 -1
  193. package/dist/services/index.js +44 -9
  194. package/dist/services/index.js.map +8 -5
  195. package/dist/services/mcp/McpRegistry.d.ts +190 -29
  196. package/dist/services/mcp/McpRegistry.d.ts.map +1 -1
  197. package/dist/services/mcp/http/McpHttpServer.d.ts +153 -0
  198. package/dist/services/mcp/http/McpHttpServer.d.ts.map +1 -0
  199. package/dist/services/mcp/http/callers.d.ts +131 -0
  200. package/dist/services/mcp/http/callers.d.ts.map +1 -0
  201. package/dist/services/mcp/http/limits.d.ts +11 -0
  202. package/dist/services/mcp/http/limits.d.ts.map +1 -0
  203. package/dist/services/mcp/http/oauth/McpOAuthServer.d.ts +150 -0
  204. package/dist/services/mcp/http/oauth/McpOAuthServer.d.ts.map +1 -0
  205. package/dist/services/mcp/http/oauth/consentPage.d.ts +14 -0
  206. package/dist/services/mcp/http/oauth/consentPage.d.ts.map +1 -0
  207. package/dist/services/mcp/http/oauth/store.d.ts +98 -0
  208. package/dist/services/mcp/http/oauth/store.d.ts.map +1 -0
  209. package/dist/services/mcp/http/protocol.d.ts +95 -0
  210. package/dist/services/mcp/http/protocol.d.ts.map +1 -0
  211. package/dist/services/mcp/http/signedState.d.ts +25 -0
  212. package/dist/services/mcp/http/signedState.d.ts.map +1 -0
  213. package/dist/services/queue/work.js +2 -2
  214. package/dist/services/queue/work.js.map +1 -1
  215. package/dist/services/router/ApiRouteDispatcher.d.ts +29 -0
  216. package/dist/services/router/ApiRouteDispatcher.d.ts.map +1 -1
  217. package/dist/services/router/RouteServiceProvider.d.ts +6 -0
  218. package/dist/services/router/RouteServiceProvider.d.ts.map +1 -1
  219. package/dist/services/router/config.d.ts +16 -0
  220. package/dist/services/router/config.d.ts.map +1 -1
  221. package/dist/stats/route-table.js +1 -1
  222. package/dist/support/index.js +2 -2
  223. package/dist/support/index.js.map +1 -1
  224. package/dist/vitest/index.js +1 -1
  225. package/package.json +1 -1
  226. package/dist/chunk-3z9vhjd7.js +0 -5
  227. package/dist/chunk-3z9vhjd7.js.map +0 -10
  228. package/dist/chunk-5zzhypmt.js +0 -5
  229. package/dist/chunk-5zzhypmt.js.map +0 -33
  230. package/dist/chunk-6g20zec2.js +0 -46
  231. package/dist/chunk-cqnfp0n9.js +0 -14
  232. package/dist/chunk-fsfbyg5e.js +0 -5
  233. package/dist/chunk-kp7k4s5c.js +0 -4
  234. /package/dist/{chunk-rh2fad7n.js.map → chunk-41da9628.js.map} +0 -0
  235. /package/dist/{chunk-5nqkwa2w.js.map → chunk-agyfv3f8.js.map} +0 -0
  236. /package/dist/{chunk-bq5nqqeq.js.map → chunk-e573yxpq.js.map} +0 -0
  237. /package/dist/{chunk-agw3anaf.js.map → chunk-qjhw8nje.js.map} +0 -0
  238. /package/dist/{chunk-y6frz1vm.js.map → chunk-x7cpth2f.js.map} +0 -0
package/dist/orm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$a as E4,Ja as n5,Ka as l5,La as i,Ma as L9,Na as U3,Oa as p8,Pa as d8,Qa as F0,Ra as m5,Sa as N3,Ta as c8,Ua as o0,Va as Q0,Wa as S4,Xa as A4,Ya as b4,Za as E5,_a as q4,ab as w4,bb as s8,cb as i8,db as n8}from"../chunk-1p85fdrk.js";import{Ae as R8,Be as D0,Ce as G0,De as G9,Ee as h3,Fe as g8,Ge as y8,He as h8,Ie as u8,Je as m8}from"../chunk-qpttgn4k.js";import{$e as P3,Af as u5,Ke as _,Le as I,Me as E0,Ne as k,Oe as j8,Pe as r,Qe as P8,Re as w5,Se as _8,Te as D5,Ue as K8,We as Q8,Xe as x5,Ye as C8,Ze as L8,_e as v5,af as w0,bf as g3,cf as y3,df as p,ef as T8,ff as x0,gf as k5,hf as I0,if as n,jf as P,kf as s,nf as T,of as E,pf as m,qf as b8,rf as q8,sf as E8,tf as w8,uf as v3,vf as f,wf as x8,xf as v8,yf as k8,zf as f8}from"../chunk-w45agtch.js";import"../chunk-y596ghpz.js";import{Dg as N8,Eg as l0,Fg as _0,Gg as T3,Jg as O8,Lg as F8,Mg as S8,Ng as f5,Og as g5,Pg as b5,Qg as R3,Rg as A8,Sg as y5,Tg as h5}from"../chunk-4t1pbt9p.js";import{ch as I8,eh as U8,gh as q5}from"../chunk-vwprq300.js";import{Fh as A5}from"../chunk-z5hrymvn.js";import"../chunk-v4gwmhtf.js";import"../chunk-8mbyyh8j.js";function L0($,Z,X,z,J,V){let Y=e($,Z),G=V0($,Y,Z,V),H=X.quoteIdent(z),W=`${H}.`,M=G.parentFields.map((C,Q)=>{let R=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[Q]))}`,S=`${J}${X.quoteIdent(r0($,Z,C))}`;return`${R} = ${S}`}).join(" and ");if(!G.join)return{child:Y,source:`${X.quoteIdent(Y.table)} as ${H}`,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 ${H} 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 p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function y($,Z,X){let z=a0($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw s5($,X,z);let J=Object.keys(Z).filter((Y)=>Z[Y]!==void 0),V=Z;for(let Y of z){if(Y.length===1&&J.includes(Y[0]))return c5($,X,Y[0],V[Y[0]]),Y;let G=Y.join("_");if(Y.length>1&&J.includes(G)){let H=V[G];if(H&&typeof H==="object"&&!Array.isArray(H))for(let W of Y)c5($,X,`${G}.${W}`,H[W]);return Y}}throw s5($,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 c5($,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){y($,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 s5($,Z,X){let z=X.map((Y)=>Y.length===1?Y[0]:Y.join("_")).join(", "),V=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 _(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${V}`)}function g($,Z,X){let z=Z.castParameter($);if(!z)return s(X);return s((J,V)=>{let Y=X(J,V);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 V of Object.keys(Z).sort()){let Y=Z[V];if(Y===void 0)continue;let G=(W)=>z(W)?.[V];if(V==="AND"||V==="OR"){let W=i5($,Y,X,G,V);if(W)J.push(W);continue}if(V===$0){J.push(d4($,Y,X,G));continue}if(V==="NOT"){let W=i5($,Y,X,G,"AND");if(W)J.push(T(P("not "),A0(W)));continue}if(V in $.relations){let W=u4($,$.relations[V],Y,X,G);if(W)J.push(W);continue}let H=$.fields[V];if(!H){let W=p4($,V,Y,X,G);if(W){J.push(W);continue}throw new k(V,$.name,Object.keys($.fields))}J.push(k3($,H,Y,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return l(J," and ")}function u4($,Z,X,z,J){let V=n5(Z.kind),Y=m4($,Z,X,V,z),G=z.relationDepth??0,H=z.dialect,W=z.qualifier??`${H.quoteIdent($.table)}.`,M=L0($,Z,H,`_r${G}`,W,z.operation),B=M.child,D=P(M.correlation),j={...z,qualifier:M.qualifier,relationDepth:G+1},C=[];for(let Q of V){if(!(Q in Y))continue;let R=Y[Q],S=(U)=>Y.direct?J(U):J(U)?.[Q];if(R===null){C.push(q3(M,D,null,Q==="is"));continue}let K=v(B,R,j,S);if(Q==="every"){if(!K)continue;C.push(q3(M,D,T(P("not "),A0(K)),!0));continue}let L=Q==="none"||Q==="isNot";C.push(q3(M,D,K,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(")")),T(...J)}function m4($,Z,X,z,J){let V=`where.${Z.name}`,Y=Z.kind==="many";if(X===null){if(Y)throw new _(V,$.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(V,$.name,J.operation,Y?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(l5(X,z))return X;if(Y)throw new _(V,$.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 p4($,Z,X,z,J){let V=a0($).find((H)=>H.length>1&&H.join("_")===Z);if(!V)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`where.${Z}`,$.name,z.operation,`Expected an object holding ${V.join(" and ")}.`);let Y=X,G=[];for(let H of V){if(Y[H]===void 0)throw new _(`where.${Z}`,$.name,z.operation,`Missing '${H}'. A composite key needs all of ${V.join(", ")}.`);if(!A3(Y[H]))throw new I(`where.${Z}.${H}`,$.name,z.operation,`A composite key takes a plain value for each of ${V.join(", ")}, not a filter, an array or null.`);G.push(k3($,$.fields[H],Y[H],z,(W)=>J(W)?.[H]))}return G.length===1?G[0]:l(G," and ")}function i5($,Z,X,z,J){let V=[];if(Array.isArray(Z))for(let Y=0;Y<Z.length;Y++){let G=v($,Z[Y],X,(H)=>z(H)?.[Y]);if(G)V.push(G)}else{let Y=v($,Z,X,z);if(Y)V.push(Y)}if(V.length===0)return J==="AND"?null:o5;if(V.length===1)return V[0];return l(V,J==="AND"?" and ":" or ")}var o5=P("false");function l($,Z){return T(P("("),E($,Z),P(")"))}function A0($){return $.text.startsWith("(")?$:l([$],"")}var x3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),t5={lt:"<",lte:"<=",gt:">",gte:">="},$0="$compositeIn",r5=Symbol("gemi.orm.compositeInFromPlanner");function a5($,Z){return{[r5]:!0,fields:$,values:Z}}function d4($,Z,X,z){let{dialect:J}=X,Y=c4($,Z,X).map((H)=>{let W=$.fields[H];if(!W)throw new k(H,$.name,Object.keys($.fields));return W}),G=Y.map((H)=>`${X.qualifier??""}${J.quoteIdent(H.column)}`);return J.compositeIn(G,Y.map((H)=>H.type),(H)=>z(H).values)}function c4($,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[r5]!==!0)return z();let J=(G)=>{throw new _($0,$.name,X.operation,G)},{fields:V,values:Y}=Z;if(!Array.isArray(V)||V.length===0)return J(`the planner built a '${$0}' with no fields.`);if(!V.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===V.length))return J(`the planner built a '${$0}' whose tuples do not all have ${V.length} value(s).`);return V}var s4=["equals","has","hasEvery","hasSome","isEmpty"],E3=new Set(s4);function i4($,Z,X,z,J,V){let{dialect:Y}=J;if(R0($,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,H=[];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)=>V(D)?.[W];H.push(n4($,Z,X,W,M,J,B))}if(H.length===0)return P("true");if(H.length===1)return H[0];return l(H," and ")}function n4($,Z,X,z,J,V,Y){let{dialect:G}=V;if(z==="equals")return l4($,Z,X,J,V,Y);if(z==="isEmpty"){if(typeof J!=="boolean")throw new I(`where.${Z.name}.isEmpty`,$.name,V.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=o4(Z);return G.listHas(X,g(W,G,T0(W,G,Y)))}if(!Array.isArray(J))throw new I(`where.${Z.name}.${z}`,$.name,V.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let H=g(Z,G,T0(Z,G,Y));return z==="hasEvery"?G.listHasEvery(X,H):G.listHasSome(X,H)}function l4($,Z,X,z,J,V){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 T(P(`${X} = `),g(Z,Y,T0(Z,Y,V)))}function o4($){return{...$,isList:!1}}function R0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new _(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 t4=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],w3=new Set(t4),r4=["has_key","has_some_keys","has_every_key"],e0=new Set(r4);function e5($,Z,X,z,J,V,Y,G){let H=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(H?Array.isArray(D)&&D.every((C)=>typeof C==="string"):typeof D==="string"))throw new I(W,$.name,V.operation,H?"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 V.dialect.jsonHasKeys(X,Y,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function a4($,Z,X,z,J,V){let{dialect:Y}=J;if(Z.type!=="Json")throw new _(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);X7($,Z,z.path,J);let G=(M)=>V(M)?.path,H=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(H.length===0)throw new _(`${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 H){if(e0.has(M)){W.push(e5($,Z,X,M,z[M],J,G,(j)=>V(j)?.[M]));continue}if(!w3.has(M))throw new _(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...w3,...e0].sort().join(", ")}.`);if(!Y.jsonFilters.has(M))throw new _(`${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(e4(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,`${b0(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: ${b0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${b0(D)} } }.`)}if($9(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 } }.`);$7(M,B,$,Z,J),W.push(Z7(M,X,G,Z,Y,(j)=>V(j)?.[M]))}return W.length===1?W[0]:l(W," and ")}function e4($,Z,X,z,J,V){let Y=()=>T(J.jsonValueAt(Z,X),P(V?" is not null":" is null")),G=()=>T(J.jsonValueAt(Z,X),P(V?" <> ":" = "),g(z,J,()=>J.encode(v3,z)));if($==="db")return Y();if($==="json")return G();return l([G(),Y()],V?" and ":" or ")}function $7($,Z,X,z,J){let V=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(V&&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"||V)return;if(typeof Z==="object")throw new _(`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 Z7($,Z,X,z,J,V){if($==="array_contains")return J.jsonArrayContains(Z,X,V);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 T(P("("),G,P(") like "),s((D,j)=>{let C=V(D,j);return C===null||C===void 0?null:B(String(C))}))}let H=$==="equals"?"=":$==="not"?"<>":t5[$],W=$!=="equals"&&$!=="not",M=W?T(P("cast(("),G,P(") as real)")):T(P("("),G,P(")"));return T(M,P(` ${H} `),s((B,D)=>{let j=V(B,D);if(j===null||j===void 0)return null;if(W)return Number(j);return J.jsonComparesAsText?String(j):j}))}function X7($,Z,X,z){let{dialect:J}=z,V=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 _(`${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===V){if(V!=="array")return;let H=X.findIndex((B)=>typeof B!=="string");if(H===-1)return;let W=X[H],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new _(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${H}] 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 _(`${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:V}=z,Y=`${z.qualifier??""}${V.quoteIdent(Z.column)}`,G=f(X);if(G)throw new I(`where.${Z.name}`,$.name,z.operation,`${b0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${b0(G)} } }.`);if(Z.isList)return i4($,Z,Y,X,z,J);if(!f3(X))return $3(Y,Z,X,V,J);let H=X,W=Object.keys(H).sort();if(H.path!==void 0)return a4($,Z,Y,H,z,J);let M=H.mode==="insensitive";if(H.mode!==void 0&&H.mode!=="default"){if(!M)throw new I(`mode: ${JSON.stringify(H.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!V.supportsInsensitiveMode)throw new _('mode: "insensitive"',$.name,z.operation,`The ${V.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=H[D];if(j===void 0||D==="mode")continue;if(Z.type==="Json"&&e0.has(D)){B.push(e5($,Z,Y,D,j,z,void 0,(Q)=>J(Q)?.[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"&&$9(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=(Q)=>J(Q)?.[D];switch(D){case"equals":B.push($3(Y,Z,j,V,C));break;case"not":B.push(z7($,Z,j,z,C,Y));break;case"in":case"notIn":B.push(Y7($,Y,Z,j,z,C,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(T(P(`${Y} ${t5[D]} `),g(Z,V,T0(Z,V,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 _(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(V.like(Y,M,V7(D,C)));break}}if(B.length===0)return P("true");if(B.length===1)return B[0];return l(B," and ")}function b0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function $9($){if(f($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>f(Z)==="any")}function z7($,Z,X,z,J,V){if(X===null||f(X)==="db")return P(`${V} is not null`);if(f(X)==="json")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(f(X)==="any")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(!f3(X))return T(P(`${V} <> `),g(Z,z.dialect,T0(Z,z.dialect,J)));let Y=k3($,Z,X,z,J);return T(P("not "),A0(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`),J7($,Z,z)]," or ");return T(P(`${$} = `),g(Z,z,T0(Z,z,J)))}function J7($,Z,X){return T(P(`${$} = `),g(Z,X,()=>X.encode(v3,Z)))}function Y7($,Z,X,z,J,V,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"):o5;return G.inList(Z,Y,z.length,(H)=>{return V(H).map((M)=>G.encode(M,X))})}function V7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function T0($,Z,X){return(z)=>Z.encode(X(z),$)}function f3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function Z9($,Z,X,z,J,V,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 H=X,W=Object.keys(H).filter((Q)=>Q!=="where");if(W.length!==1)throw new _(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=L0($,Z,J,`_o${Y}`,`${J.quoteIdent($.table)}.`,z),D=H7($,Z,B.child,M,H[M],z,B.qualifier,J),j=v(B.child,H.where,{dialect:J,operation:z,qualifier:B.qualifier},(Q)=>V(Q)?.where),C=[P(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(j)C.push(P(" and "),j);return C.push(P(")")),{expression:T(...C),direction:D.direction,nulls:D.nulls}}function H7($,Z,X,z,J,V,Y,G){let H=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=G7($,H,J,V);if(z===i){if(Z.kind!=="many")throw new _(H,$.name,V,`${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 _(H,$.name,V,`${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 _(H,$.name,V,`'${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 G7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:V}=X;if(J!=="asc"&&J!=="desc")throw new I(Z,$.name,z,'Expected "asc" or "desc".');if(V===void 0)return{direction:J};if(V!=="first"&&V!=="last")throw new _(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:V}}throw new _(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var W7=new Set(["asc","desc"]),M7=new Set(["first","last"]);function H0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),V=J?Z:[Z],Y=[];for(let G=0;G<V.length;G++){let H=V[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof H!=="object"||H===null)throw new I("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(H)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new _(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let j=Z9($,$.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,...X9($,M,B,X)})}}return Y}function X9($,Z,X,z){if(typeof X==="string"){if(!W7.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:V}=X,Y=X9($,Z,J,z).direction;if(V===void 0)return{direction:Y};if(typeof V!=="string"||!M7.has(V))throw new _(`orderBy.${Z}.nulls: ${JSON.stringify(V)}`,$.name,z,'Expected "first" or "last".');return{direction:Y,nulls:V}}throw new _(`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 E($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return E([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 B0($,Z,X,z,J,V=!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=V?1:X?.take,G=X?.skip,H=J;if((Y!==void 0||G!==void 0)&&H.length===0&&!V)H=$.primaryKey.map((j)=>({column:$.fields[j]?.column??j,direction:"asc"}));let M=typeof Y==="number"&&Y<0;if(M)H=Z3(H);let B=Y===void 0?null:V?()=>1:(j)=>Math.abs(Number(j?.take)),D=G===void 0?null:(j)=>Number(j?.skip);return{clause:z.paginate(B,D),terms:H,reversed:M}}function Z0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new _("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new _("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 B7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new I("select",$.name,X,"Expected an object.");let V=[];for(let[G,H]of Object.entries($.fields))if(z[G]===!0)V.push(H);let Y=0;for(let G of Object.keys(z)){let H=z[G];if(H===void 0)continue;if(G in $.relations){if(H!==!1)Y++;continue}if(G===i){if(H!==!1)Y++;continue}if(!(G in $.fields))throw new k(G,$.name,Object.keys($.fields));if(typeof H!=="boolean")throw new I(`select.${G}`,$.name,X,"Expected true or false.")}if(V.length===0&&Y===0)throw new _("select",$.name,X,"At least one field must be selected.");return V}function B7($,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 V of Object.keys(Z)){let Y=Z[V];if(Y===void 0)continue;if(V in $.relations)throw new _(`omit.${V}`,$.name,X,`'${V}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(V in $.fields))throw new k(V,$.name,Object.keys($.fields));if(typeof Y!=="boolean")throw new I(`omit.${V}`,$.name,X,"Expected true or false.");if(Y)z.add(V)}let J=Object.values($.fields).filter((V)=>!z.has(V.name));if(J.length===0)throw new _("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 V=new Set([...z,...J]);return{fields:Object.values($.fields).filter((Y)=>V.has(Y.name)),hidden:J}}var z9=new Set(["where","orderBy","select","omit","include","take","skip"]),J9=new Set(["where","select","omit","include"]),V3=10;function v0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function U0($,Z,X,z,J=W0){let V=k0($,Z,z);if(V.length===0)return{plans:[],keyFields:[]};let Y=[],G=new Set;for(let H of V){M9($,H,z);let W=j9($,H);B9(W,H.node,z,2);let M=J.plan({parent:$,child:W,relation:H.relation,as:H.as,node:H.node,locate:H.locate,dialect:X,operation:z});Y.push(M);for(let B of M.parentFields)G.add(B)}return{plans:Y,keyFields:[...G]}}async function H3($,Z,X,z,J){let V=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(V.length===0)return;for(let Y of $){if(Y.root)continue;await Y.load(V,z,J)}if(Z&&Z.length>0)for(let Y of V)for(let G of Z)delete Y[G]}function k0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;W9($,z,J,X);let V=[];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 H=$.relations[Y];if(!H)throw new w0(Y,$.name,Object.keys($.relations));V.push({as:Y,relation:H,node:G,locate:(W)=>W?.include?.[Y]})}return V}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 H=$.relations[Y];if(!H)continue;V.push({as:Y,relation:H,node:G,locate:(W)=>W?.select?.[Y]})}return V}function W9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new _(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function M9($,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;W9($,J.include,J.select,X,Z.as);let V=Z.relation.kind==="many";for(let Y of Object.keys(J).sort()){if(J[Y]===void 0)continue;if(V&&(Y==="take"||Y==="skip")){D7($,Z,X,Y,J[Y]);continue}if(V?z9.has(Y):J9.has(Y))continue;if(Y==="lock")throw new E0(`${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"&&!V)throw new _(`${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 _(`${Z.as}.${Y}`,$.name,X,`Prisma does not accept '${Y}' on a to-one relation.`);throw new _(`${Z.as}.${Y}`,$.name,X,`A relation node takes ${[...V?z9:J9].sort().join(", ")}.`)}}function D7($,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 _(`${$.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 B9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)Z0($,Z,X);let J=k0($,Z,X);if(J.length===0)return;if(z>V3)throw new g3($.name,V3);for(let V of J)M9($,V,X),B9(j9($,V),V.node,X,z+1)}function D9($,Z,X,z){if($.parentFields.length!==1)throw new _(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 V0($,Z,X,z){if(X.joinTable)return P7($,Z,X);if(X.from.length>0)return Y9($,X,X.from,X.to,z);let J=j7($,Z,X);if(J.from.length===0)throw new p($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return Y9($,X,J.to,J.from,z)}function Y9($,Z,X,z,J){if(X.length===0)throw new _(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new p($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function j7($,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 p($.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 P7($,Z,X){let{table:z,a:J,b:V}=X.joinTable;if(J===V){let G=X.joinTable.ownerColumn;if(!G)throw new _(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!==V)throw new p($.name,X.name,`the join table '${z}' connects ${J} and ${V}, 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 p($.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 p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function j9($,Z){return e($,Z.relation,Z.as)}function e($,Z,X=Z.name){let z=Z.model;if(!D0(z))throw new y3($.name,X,z,G9());let J=G0(z)?.$schema;if(!J)throw new x0(z);return J}var V9="batched",W0={name:V9,plan($){u3($,"this query planned with the batched strategy");let Z=V0($.parent,$.child,$.relation,$.operation);for(let V of Z.parentFields)H9($.parent,$.relation,Y3($.parent,$.relation,V));for(let V of Z.childFields)H9($.child,$.relation,Y3($.child,$.relation,V));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(V,Y,G){let H={parentKeyField:X,childKeyField:z,many:J,parents:V,args:Y,executor:G};return Z.join?K7($,Z,H):_7($,Z,H)}}}};async function _7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let V=$.locate(X.args),Y=P9(V,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",Y.args,!0);for(let H of G){let W=J.get(q0(Z.childFields.map((M)=>H[M])));if(!W)continue;for(let M of W)_9(M,$.as,H,X.many)}if(Y.hidden)for(let H of G)for(let W of Z.childFields)delete H[W]}async function K7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:V}=$,Y=Z.join,G=await Q7(V,Y,z.map((j)=>V.encode(j[0],X.parentKeyField)),X.executor),H=new Map,W=[];for(let j of G){let C=q0([V.decode(j[Y.parentColumn],X.parentKeyField)]),Q=J.get(C);if(!Q)continue;let R=V.decode(j[Y.childColumn],X.childKeyField),S=q0([R]),K=H.get(S);if(K===void 0)K=[],H.set(S,K),W.push([R]);for(let L of Q)K.push(L)}if(W.length===0)return;let M=$.locate(X.args),B=P9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let j of D){let C=H.get(q0([j[Z.childFields[0]]]));if(!C)continue;for(let Q of C)_9(Q,$.as,j,X.many)}if(B.hidden)for(let j of D)delete j[Z.childFields[0]]}async function Q7($,Z,X,z){let J=T(P(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:V,binders:Y}=m(J,$,{model:Z.table,operation:"include"}),G=I0();return z.query(V,Y.map((H)=>H(void 0,G)))}function P9($,Z,X,z,J){let V=$===!0||$===null||typeof $!=="object"?{}:$,Y=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:C7(z,Z,X,J),G={where:V.where===void 0?Y:{AND:[V.where,Y]}};if(V.orderBy!==void 0)G.orderBy=V.orderBy;if(V.include!==void 0)G.include=V.include;let H=V.omit;if(H!==void 0){let B=Z.filter((D)=>H[D]===!0);if(B.length===0)G.omit=H;else{let D={...H};for(let j of B)delete D[j];return G.omit=D,{args:G,hidden:!0}}}let W=V.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 C7($,Z,X,z){let J=Z.map((V)=>$.fields[V]?.type);if(J.every((V)=>V!==void 0)&&z.canBindCompositeIn(J))return{[$0]:a5(Z,X)};return{OR:X.map((V)=>Object.fromEntries(Z.map((Y,G)=>[Y,V[G]])))}}function q0($){return JSON.stringify($.map(L7))}function _9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function K9($,Z){let X=new Map,z=[];for(let J of $){let V=Z.map((H)=>J[H]);if(V.some((H)=>H===null||H===void 0))continue;let Y=q0(V),G=X.get(Y);if(G===void 0)G=[],X.set(Y,G),z.push(V);G.push(J)}return{keys:z,byKey:X}}function L7($){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 H9($,Z,X){if(X.isList)throw new p($.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 p($.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 Q9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),C9=!0;function T7($){C9=$}function R7(){return Q9}function f0($,Z,X=[]){if(Q9&&C9)return I7($,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,V=X.map((G)=>({key:G.key,many:G.kind==="many"})),Y=V.length;return(G)=>{let H=[];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[V[D].key]=V[D].many?[]:null;H.push(B)}return H}}function I7($,Z,X){let z=[];for(let V=0;V<$.length;V++){let Y=$[V],G=JSON.stringify(Y.name),H=JSON.stringify(Y.column);z.push(Z.needsDecode(Y)?`${G}: d.decode(row[${H}], f[${V}])`:`${G}: row[${H}] ?? null`)}for(let V of X)z.push(`${JSON.stringify(V.key)}: ${V.kind==="many"?"[]":"null"}`);let J=`
2
+ import{$a as E4,Ja as n5,Ka as l5,La as i,Ma as L9,Na as U3,Oa as p8,Pa as d8,Qa as F0,Ra as m5,Sa as N3,Ta as c8,Ua as o0,Va as Q0,Wa as S4,Xa as A4,Ya as b4,Za as E5,_a as q4,ab as w4,bb as s8,cb as i8,db as n8}from"../chunk-0av6xvm6.js";import{$e as g8,We as R8,Xe as D0,Ye as G0,Ze as G9,_e as h3,af as y8,bf as h8,cf as u8,df as m8}from"../chunk-whtzggn6.js";import{Af as T8,Bf as x0,Cf as k5,Df as I0,Ef as n,Ff as P,Gf as s,Jf as T,Kf as E,Lf as m,Mf as b8,Nf as q8,Of as E8,Pf as w8,Qf as v3,Rf as f,Sf as x8,Tf as v8,Uf as k8,Vf as f8,Wf as u5,ef as _,ff as I,gf as E0,hf as k,if as j8,jf as r,kf as P8,lf as w5,mf as _8,nf as D5,of as K8,qf as Q8,rf as x5,sf as C8,tf as L8,uf as v5,vf as P3,wf as w0,xf as g3,yf as y3,zf as p}from"../chunk-hytt9qyj.js";import"../chunk-9b4erdy2.js";import{$g as N8,ah as l0,bh as _0,ch as T3,fh as O8,hh as F8,ih as S8,jh as f5,kh as g5,lh as b5,mh as R3,nh as A8,oh as y5,ph as h5}from"../chunk-1myhm0g3.js";import{Ah as I8,Ch as U8,Eh as q5}from"../chunk-kejwjerj.js";import{bi as A5}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-vw8849ys.js";function L0($,Z,X,z,J,V){let Y=e($,Z),G=V0($,Y,Z,V),H=X.quoteIdent(z),W=`${H}.`,M=G.parentFields.map((C,Q)=>{let R=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[Q]))}`,S=`${J}${X.quoteIdent(r0($,Z,C))}`;return`${R} = ${S}`}).join(" and ");if(!G.join)return{child:Y,source:`${X.quoteIdent(Y.table)} as ${H}`,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 ${H} 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 p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function y($,Z,X){let z=a0($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw s5($,X,z);let J=Object.keys(Z).filter((Y)=>Z[Y]!==void 0),V=Z;for(let Y of z){if(Y.length===1&&J.includes(Y[0]))return c5($,X,Y[0],V[Y[0]]),Y;let G=Y.join("_");if(Y.length>1&&J.includes(G)){let H=V[G];if(H&&typeof H==="object"&&!Array.isArray(H))for(let W of Y)c5($,X,`${G}.${W}`,H[W]);return Y}}throw s5($,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 c5($,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){y($,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 s5($,Z,X){let z=X.map((Y)=>Y.length===1?Y[0]:Y.join("_")).join(", "),V=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 _(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${V}`)}function g($,Z,X){let z=Z.castParameter($);if(!z)return s(X);return s((J,V)=>{let Y=X(J,V);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 V of Object.keys(Z).sort()){let Y=Z[V];if(Y===void 0)continue;let G=(W)=>z(W)?.[V];if(V==="AND"||V==="OR"){let W=i5($,Y,X,G,V);if(W)J.push(W);continue}if(V===$0){J.push(d4($,Y,X,G));continue}if(V==="NOT"){let W=i5($,Y,X,G,"AND");if(W)J.push(T(P("not "),A0(W)));continue}if(V in $.relations){let W=u4($,$.relations[V],Y,X,G);if(W)J.push(W);continue}let H=$.fields[V];if(!H){let W=p4($,V,Y,X,G);if(W){J.push(W);continue}throw new k(V,$.name,Object.keys($.fields))}J.push(k3($,H,Y,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return l(J," and ")}function u4($,Z,X,z,J){let V=n5(Z.kind),Y=m4($,Z,X,V,z),G=z.relationDepth??0,H=z.dialect,W=z.qualifier??`${H.quoteIdent($.table)}.`,M=L0($,Z,H,`_r${G}`,W,z.operation),B=M.child,D=P(M.correlation),j={...z,qualifier:M.qualifier,relationDepth:G+1},C=[];for(let Q of V){if(!(Q in Y))continue;let R=Y[Q],S=(U)=>Y.direct?J(U):J(U)?.[Q];if(R===null){C.push(q3(M,D,null,Q==="is"));continue}let K=v(B,R,j,S);if(Q==="every"){if(!K)continue;C.push(q3(M,D,T(P("not "),A0(K)),!0));continue}let L=Q==="none"||Q==="isNot";C.push(q3(M,D,K,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(")")),T(...J)}function m4($,Z,X,z,J){let V=`where.${Z.name}`,Y=Z.kind==="many";if(X===null){if(Y)throw new _(V,$.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(V,$.name,J.operation,Y?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(l5(X,z))return X;if(Y)throw new _(V,$.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 p4($,Z,X,z,J){let V=a0($).find((H)=>H.length>1&&H.join("_")===Z);if(!V)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`where.${Z}`,$.name,z.operation,`Expected an object holding ${V.join(" and ")}.`);let Y=X,G=[];for(let H of V){if(Y[H]===void 0)throw new _(`where.${Z}`,$.name,z.operation,`Missing '${H}'. A composite key needs all of ${V.join(", ")}.`);if(!A3(Y[H]))throw new I(`where.${Z}.${H}`,$.name,z.operation,`A composite key takes a plain value for each of ${V.join(", ")}, not a filter, an array or null.`);G.push(k3($,$.fields[H],Y[H],z,(W)=>J(W)?.[H]))}return G.length===1?G[0]:l(G," and ")}function i5($,Z,X,z,J){let V=[];if(Array.isArray(Z))for(let Y=0;Y<Z.length;Y++){let G=v($,Z[Y],X,(H)=>z(H)?.[Y]);if(G)V.push(G)}else{let Y=v($,Z,X,z);if(Y)V.push(Y)}if(V.length===0)return J==="AND"?null:o5;if(V.length===1)return V[0];return l(V,J==="AND"?" and ":" or ")}var o5=P("false");function l($,Z){return T(P("("),E($,Z),P(")"))}function A0($){return $.text.startsWith("(")?$:l([$],"")}var x3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),t5={lt:"<",lte:"<=",gt:">",gte:">="},$0="$compositeIn",r5=Symbol("gemi.orm.compositeInFromPlanner");function a5($,Z){return{[r5]:!0,fields:$,values:Z}}function d4($,Z,X,z){let{dialect:J}=X,Y=c4($,Z,X).map((H)=>{let W=$.fields[H];if(!W)throw new k(H,$.name,Object.keys($.fields));return W}),G=Y.map((H)=>`${X.qualifier??""}${J.quoteIdent(H.column)}`);return J.compositeIn(G,Y.map((H)=>H.type),(H)=>z(H).values)}function c4($,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[r5]!==!0)return z();let J=(G)=>{throw new _($0,$.name,X.operation,G)},{fields:V,values:Y}=Z;if(!Array.isArray(V)||V.length===0)return J(`the planner built a '${$0}' with no fields.`);if(!V.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===V.length))return J(`the planner built a '${$0}' whose tuples do not all have ${V.length} value(s).`);return V}var s4=["equals","has","hasEvery","hasSome","isEmpty"],E3=new Set(s4);function i4($,Z,X,z,J,V){let{dialect:Y}=J;if(R0($,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,H=[];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)=>V(D)?.[W];H.push(n4($,Z,X,W,M,J,B))}if(H.length===0)return P("true");if(H.length===1)return H[0];return l(H," and ")}function n4($,Z,X,z,J,V,Y){let{dialect:G}=V;if(z==="equals")return l4($,Z,X,J,V,Y);if(z==="isEmpty"){if(typeof J!=="boolean")throw new I(`where.${Z.name}.isEmpty`,$.name,V.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=o4(Z);return G.listHas(X,g(W,G,T0(W,G,Y)))}if(!Array.isArray(J))throw new I(`where.${Z.name}.${z}`,$.name,V.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let H=g(Z,G,T0(Z,G,Y));return z==="hasEvery"?G.listHasEvery(X,H):G.listHasSome(X,H)}function l4($,Z,X,z,J,V){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 T(P(`${X} = `),g(Z,Y,T0(Z,Y,V)))}function o4($){return{...$,isList:!1}}function R0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new _(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 t4=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],w3=new Set(t4),r4=["has_key","has_some_keys","has_every_key"],e0=new Set(r4);function e5($,Z,X,z,J,V,Y,G){let H=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(H?Array.isArray(D)&&D.every((C)=>typeof C==="string"):typeof D==="string"))throw new I(W,$.name,V.operation,H?"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 V.dialect.jsonHasKeys(X,Y,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function a4($,Z,X,z,J,V){let{dialect:Y}=J;if(Z.type!=="Json")throw new _(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);X7($,Z,z.path,J);let G=(M)=>V(M)?.path,H=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(H.length===0)throw new _(`${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 H){if(e0.has(M)){W.push(e5($,Z,X,M,z[M],J,G,(j)=>V(j)?.[M]));continue}if(!w3.has(M))throw new _(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...w3,...e0].sort().join(", ")}.`);if(!Y.jsonFilters.has(M))throw new _(`${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(e4(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,`${b0(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: ${b0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${b0(D)} } }.`)}if($9(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 } }.`);$7(M,B,$,Z,J),W.push(Z7(M,X,G,Z,Y,(j)=>V(j)?.[M]))}return W.length===1?W[0]:l(W," and ")}function e4($,Z,X,z,J,V){let Y=()=>T(J.jsonValueAt(Z,X),P(V?" is not null":" is null")),G=()=>T(J.jsonValueAt(Z,X),P(V?" <> ":" = "),g(z,J,()=>J.encode(v3,z)));if($==="db")return Y();if($==="json")return G();return l([G(),Y()],V?" and ":" or ")}function $7($,Z,X,z,J){let V=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(V&&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"||V)return;if(typeof Z==="object")throw new _(`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 Z7($,Z,X,z,J,V){if($==="array_contains")return J.jsonArrayContains(Z,X,V);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 T(P("("),G,P(") like "),s((D,j)=>{let C=V(D,j);return C===null||C===void 0?null:B(String(C))}))}let H=$==="equals"?"=":$==="not"?"<>":t5[$],W=$!=="equals"&&$!=="not",M=W?T(P("cast(("),G,P(") as real)")):T(P("("),G,P(")"));return T(M,P(` ${H} `),s((B,D)=>{let j=V(B,D);if(j===null||j===void 0)return null;if(W)return Number(j);return J.jsonComparesAsText?String(j):j}))}function X7($,Z,X,z){let{dialect:J}=z,V=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 _(`${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===V){if(V!=="array")return;let H=X.findIndex((B)=>typeof B!=="string");if(H===-1)return;let W=X[H],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new _(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${H}] 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 _(`${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:V}=z,Y=`${z.qualifier??""}${V.quoteIdent(Z.column)}`,G=f(X);if(G)throw new I(`where.${Z.name}`,$.name,z.operation,`${b0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${b0(G)} } }.`);if(Z.isList)return i4($,Z,Y,X,z,J);if(!f3(X))return $3(Y,Z,X,V,J);let H=X,W=Object.keys(H).sort();if(H.path!==void 0)return a4($,Z,Y,H,z,J);let M=H.mode==="insensitive";if(H.mode!==void 0&&H.mode!=="default"){if(!M)throw new I(`mode: ${JSON.stringify(H.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!V.supportsInsensitiveMode)throw new _('mode: "insensitive"',$.name,z.operation,`The ${V.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=H[D];if(j===void 0||D==="mode")continue;if(Z.type==="Json"&&e0.has(D)){B.push(e5($,Z,Y,D,j,z,void 0,(Q)=>J(Q)?.[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"&&$9(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=(Q)=>J(Q)?.[D];switch(D){case"equals":B.push($3(Y,Z,j,V,C));break;case"not":B.push(z7($,Z,j,z,C,Y));break;case"in":case"notIn":B.push(Y7($,Y,Z,j,z,C,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(T(P(`${Y} ${t5[D]} `),g(Z,V,T0(Z,V,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 _(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(V.like(Y,M,V7(D,C)));break}}if(B.length===0)return P("true");if(B.length===1)return B[0];return l(B," and ")}function b0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function $9($){if(f($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>f(Z)==="any")}function z7($,Z,X,z,J,V){if(X===null||f(X)==="db")return P(`${V} is not null`);if(f(X)==="json")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(f(X)==="any")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(!f3(X))return T(P(`${V} <> `),g(Z,z.dialect,T0(Z,z.dialect,J)));let Y=k3($,Z,X,z,J);return T(P("not "),A0(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`),J7($,Z,z)]," or ");return T(P(`${$} = `),g(Z,z,T0(Z,z,J)))}function J7($,Z,X){return T(P(`${$} = `),g(Z,X,()=>X.encode(v3,Z)))}function Y7($,Z,X,z,J,V,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"):o5;return G.inList(Z,Y,z.length,(H)=>{return V(H).map((M)=>G.encode(M,X))})}function V7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function T0($,Z,X){return(z)=>Z.encode(X(z),$)}function f3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function Z9($,Z,X,z,J,V,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 H=X,W=Object.keys(H).filter((Q)=>Q!=="where");if(W.length!==1)throw new _(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=L0($,Z,J,`_o${Y}`,`${J.quoteIdent($.table)}.`,z),D=H7($,Z,B.child,M,H[M],z,B.qualifier,J),j=v(B.child,H.where,{dialect:J,operation:z,qualifier:B.qualifier},(Q)=>V(Q)?.where),C=[P(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(j)C.push(P(" and "),j);return C.push(P(")")),{expression:T(...C),direction:D.direction,nulls:D.nulls}}function H7($,Z,X,z,J,V,Y,G){let H=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=G7($,H,J,V);if(z===i){if(Z.kind!=="many")throw new _(H,$.name,V,`${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 _(H,$.name,V,`${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 _(H,$.name,V,`'${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 G7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:V}=X;if(J!=="asc"&&J!=="desc")throw new I(Z,$.name,z,'Expected "asc" or "desc".');if(V===void 0)return{direction:J};if(V!=="first"&&V!=="last")throw new _(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:V}}throw new _(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var W7=new Set(["asc","desc"]),M7=new Set(["first","last"]);function H0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),V=J?Z:[Z],Y=[];for(let G=0;G<V.length;G++){let H=V[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof H!=="object"||H===null)throw new I("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(H)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new _(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let j=Z9($,$.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,...X9($,M,B,X)})}}return Y}function X9($,Z,X,z){if(typeof X==="string"){if(!W7.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:V}=X,Y=X9($,Z,J,z).direction;if(V===void 0)return{direction:Y};if(typeof V!=="string"||!M7.has(V))throw new _(`orderBy.${Z}.nulls: ${JSON.stringify(V)}`,$.name,z,'Expected "first" or "last".');return{direction:Y,nulls:V}}throw new _(`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 E($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return E([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 B0($,Z,X,z,J,V=!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=V?1:X?.take,G=X?.skip,H=J;if((Y!==void 0||G!==void 0)&&H.length===0&&!V)H=$.primaryKey.map((j)=>({column:$.fields[j]?.column??j,direction:"asc"}));let M=typeof Y==="number"&&Y<0;if(M)H=Z3(H);let B=Y===void 0?null:V?()=>1:(j)=>Math.abs(Number(j?.take)),D=G===void 0?null:(j)=>Number(j?.skip);return{clause:z.paginate(B,D),terms:H,reversed:M}}function Z0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new _("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new _("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 B7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new I("select",$.name,X,"Expected an object.");let V=[];for(let[G,H]of Object.entries($.fields))if(z[G]===!0)V.push(H);let Y=0;for(let G of Object.keys(z)){let H=z[G];if(H===void 0)continue;if(G in $.relations){if(H!==!1)Y++;continue}if(G===i){if(H!==!1)Y++;continue}if(!(G in $.fields))throw new k(G,$.name,Object.keys($.fields));if(typeof H!=="boolean")throw new I(`select.${G}`,$.name,X,"Expected true or false.")}if(V.length===0&&Y===0)throw new _("select",$.name,X,"At least one field must be selected.");return V}function B7($,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 V of Object.keys(Z)){let Y=Z[V];if(Y===void 0)continue;if(V in $.relations)throw new _(`omit.${V}`,$.name,X,`'${V}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(V in $.fields))throw new k(V,$.name,Object.keys($.fields));if(typeof Y!=="boolean")throw new I(`omit.${V}`,$.name,X,"Expected true or false.");if(Y)z.add(V)}let J=Object.values($.fields).filter((V)=>!z.has(V.name));if(J.length===0)throw new _("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 V=new Set([...z,...J]);return{fields:Object.values($.fields).filter((Y)=>V.has(Y.name)),hidden:J}}var z9=new Set(["where","orderBy","select","omit","include","take","skip"]),J9=new Set(["where","select","omit","include"]),V3=10;function v0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function U0($,Z,X,z,J=W0){let V=k0($,Z,z);if(V.length===0)return{plans:[],keyFields:[]};let Y=[],G=new Set;for(let H of V){M9($,H,z);let W=j9($,H);B9(W,H.node,z,2);let M=J.plan({parent:$,child:W,relation:H.relation,as:H.as,node:H.node,locate:H.locate,dialect:X,operation:z});Y.push(M);for(let B of M.parentFields)G.add(B)}return{plans:Y,keyFields:[...G]}}async function H3($,Z,X,z,J){let V=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(V.length===0)return;for(let Y of $){if(Y.root)continue;await Y.load(V,z,J)}if(Z&&Z.length>0)for(let Y of V)for(let G of Z)delete Y[G]}function k0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;W9($,z,J,X);let V=[];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 H=$.relations[Y];if(!H)throw new w0(Y,$.name,Object.keys($.relations));V.push({as:Y,relation:H,node:G,locate:(W)=>W?.include?.[Y]})}return V}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 H=$.relations[Y];if(!H)continue;V.push({as:Y,relation:H,node:G,locate:(W)=>W?.select?.[Y]})}return V}function W9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new _(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function M9($,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;W9($,J.include,J.select,X,Z.as);let V=Z.relation.kind==="many";for(let Y of Object.keys(J).sort()){if(J[Y]===void 0)continue;if(V&&(Y==="take"||Y==="skip")){D7($,Z,X,Y,J[Y]);continue}if(V?z9.has(Y):J9.has(Y))continue;if(Y==="lock")throw new E0(`${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"&&!V)throw new _(`${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 _(`${Z.as}.${Y}`,$.name,X,`Prisma does not accept '${Y}' on a to-one relation.`);throw new _(`${Z.as}.${Y}`,$.name,X,`A relation node takes ${[...V?z9:J9].sort().join(", ")}.`)}}function D7($,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 _(`${$.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 B9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)Z0($,Z,X);let J=k0($,Z,X);if(J.length===0)return;if(z>V3)throw new g3($.name,V3);for(let V of J)M9($,V,X),B9(j9($,V),V.node,X,z+1)}function D9($,Z,X,z){if($.parentFields.length!==1)throw new _(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 V0($,Z,X,z){if(X.joinTable)return P7($,Z,X);if(X.from.length>0)return Y9($,X,X.from,X.to,z);let J=j7($,Z,X);if(J.from.length===0)throw new p($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return Y9($,X,J.to,J.from,z)}function Y9($,Z,X,z,J){if(X.length===0)throw new _(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new p($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function j7($,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 p($.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 P7($,Z,X){let{table:z,a:J,b:V}=X.joinTable;if(J===V){let G=X.joinTable.ownerColumn;if(!G)throw new _(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!==V)throw new p($.name,X.name,`the join table '${z}' connects ${J} and ${V}, 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 p($.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 p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function j9($,Z){return e($,Z.relation,Z.as)}function e($,Z,X=Z.name){let z=Z.model;if(!D0(z))throw new y3($.name,X,z,G9());let J=G0(z)?.$schema;if(!J)throw new x0(z);return J}var V9="batched",W0={name:V9,plan($){u3($,"this query planned with the batched strategy");let Z=V0($.parent,$.child,$.relation,$.operation);for(let V of Z.parentFields)H9($.parent,$.relation,Y3($.parent,$.relation,V));for(let V of Z.childFields)H9($.child,$.relation,Y3($.child,$.relation,V));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(V,Y,G){let H={parentKeyField:X,childKeyField:z,many:J,parents:V,args:Y,executor:G};return Z.join?K7($,Z,H):_7($,Z,H)}}}};async function _7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let V=$.locate(X.args),Y=P9(V,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",Y.args,!0);for(let H of G){let W=J.get(q0(Z.childFields.map((M)=>H[M])));if(!W)continue;for(let M of W)_9(M,$.as,H,X.many)}if(Y.hidden)for(let H of G)for(let W of Z.childFields)delete H[W]}async function K7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:V}=$,Y=Z.join,G=await Q7(V,Y,z.map((j)=>V.encode(j[0],X.parentKeyField)),X.executor),H=new Map,W=[];for(let j of G){let C=q0([V.decode(j[Y.parentColumn],X.parentKeyField)]),Q=J.get(C);if(!Q)continue;let R=V.decode(j[Y.childColumn],X.childKeyField),S=q0([R]),K=H.get(S);if(K===void 0)K=[],H.set(S,K),W.push([R]);for(let L of Q)K.push(L)}if(W.length===0)return;let M=$.locate(X.args),B=P9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let j of D){let C=H.get(q0([j[Z.childFields[0]]]));if(!C)continue;for(let Q of C)_9(Q,$.as,j,X.many)}if(B.hidden)for(let j of D)delete j[Z.childFields[0]]}async function Q7($,Z,X,z){let J=T(P(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:V,binders:Y}=m(J,$,{model:Z.table,operation:"include"}),G=I0();return z.query(V,Y.map((H)=>H(void 0,G)))}function P9($,Z,X,z,J){let V=$===!0||$===null||typeof $!=="object"?{}:$,Y=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:C7(z,Z,X,J),G={where:V.where===void 0?Y:{AND:[V.where,Y]}};if(V.orderBy!==void 0)G.orderBy=V.orderBy;if(V.include!==void 0)G.include=V.include;let H=V.omit;if(H!==void 0){let B=Z.filter((D)=>H[D]===!0);if(B.length===0)G.omit=H;else{let D={...H};for(let j of B)delete D[j];return G.omit=D,{args:G,hidden:!0}}}let W=V.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 C7($,Z,X,z){let J=Z.map((V)=>$.fields[V]?.type);if(J.every((V)=>V!==void 0)&&z.canBindCompositeIn(J))return{[$0]:a5(Z,X)};return{OR:X.map((V)=>Object.fromEntries(Z.map((Y,G)=>[Y,V[G]])))}}function q0($){return JSON.stringify($.map(L7))}function _9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function K9($,Z){let X=new Map,z=[];for(let J of $){let V=Z.map((H)=>J[H]);if(V.some((H)=>H===null||H===void 0))continue;let Y=q0(V),G=X.get(Y);if(G===void 0)G=[],X.set(Y,G),z.push(V);G.push(J)}return{keys:z,byKey:X}}function L7($){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 H9($,Z,X){if(X.isList)throw new p($.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 p($.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 Q9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),C9=!0;function T7($){C9=$}function R7(){return Q9}function f0($,Z,X=[]){if(Q9&&C9)return I7($,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,V=X.map((G)=>({key:G.key,many:G.kind==="many"})),Y=V.length;return(G)=>{let H=[];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[V[D].key]=V[D].many?[]:null;H.push(B)}return H}}function I7($,Z,X){let z=[];for(let V=0;V<$.length;V++){let Y=$[V],G=JSON.stringify(Y.name),H=JSON.stringify(Y.column);z.push(Z.needsDecode(Y)?`${G}: d.decode(row[${H}], f[${V}])`:`${G}: row[${H}] ?? null`)}for(let V of X)z.push(`${JSON.stringify(V.key)}: ${V.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{$a as E4,Ja as n5,Ka as l5,La as i,Ma as L9,Na as U3,Oa as p8,Pa as d8,Qa
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 V=J[i];if(V===void 0||V===!1)return[];let Y=N7($,V,z),G=[];for(let H of Object.keys(Y).sort()){let W=Y[H];if(W===void 0||W===!1)continue;let M=$.relations[H];if(!M)throw new w0(H,$.name,Object.keys($.relations));if(W!==!0&&(typeof W!=="object"||Array.isArray(W)))throw new I(`_count.select.${H}`,$.name,z,"Expected true or an object holding 'where'.");G.push(U7($,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 U7($,Z,X,z,J,V,Y){let G=`_count.select.${Z.name}`;if(Z.kind!=="many")throw new _(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 H=L0($,Z,z,`_c${V}`,`${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(H.child,W,{dialect:z,operation:J,qualifier:H.qualifier},B),j=[P(`(select count(*) from ${H.source} where ${H.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:T(...j)}}function N7($,Z,X){if(Z===!0){let J=L9($);if(J.length===0)throw new _("_count",$.name,X,`${$.name} has no to-many relations, so there is nothing for '_count: true' to count.`);return Object.fromEntries(J.map((V)=>[V,!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"],T9=new Set(["where","orderBy","take","skip",...t]),O7=new Set(["Int","Float","BigInt","Decimal"]),F7=new Set(["Json","Bytes"]),y0={_count:"count",_avg:"avg",_sum:"sum",_min:"min",_max:"max"};function p3($){return $==="aggregate"}function h0($,Z,X,z){let J=Z==="count";A7($,Z,X,J);let V=J?S7($,Z,X?.select):d3($,Z,X);if(V.length===0)throw new _(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},(Q)=>Q?.where),G=Y?T(P(" where "),Y):P(""),H=P(` from ${z.quoteIdent($.table)}`),W=E(V.map((Q)=>P(`${y0[Q.kind]}(${Q.field?z.quoteIdent(Q.field.column):"*"}) as ${z.quoteIdent(Q.alias)}`)),", "),M=H0($,X?.orderBy,Z,{dialect:z,locate:(Q)=>Q?.orderBy}),B=X?.take!==void 0||X?.skip!==void 0,D;if(!B)D=T(P("select "),W,H,G);else{let{clause:Q,terms:R}=B0($,Z,X,z,M),S=o(R,z),K=new Map;for(let L of V)if(L.field)K.set(L.field.column,L.field.column);if(K.size===0){let L=$.primaryKey[0]??Object.keys($.fields)[0],U=$.fields[L]?.column??L;K.set(U,U)}D=T(P("select "),W,P(` from (select ${[...K.values()].map((L)=>z.quoteIdent(L)).join(", ")}`),H,G,S?T(P(" order by "),S):P(""),Q,P(`) as ${z.quoteIdent("sub")}`))}let{text:j,binders:C}=m(D,z,{model:$.name,operation:Z});return{text:j,bind:n(C),shape(Q){let R=Q[0]??{};if(J){let K={};for(let L of V)K[L.as]=N0(L,R[L.alias],z);return K}let S={};for(let K of V){if(K.kind==="_count"&&K.as===W3){S._count=N0(K,R[K.alias],z);continue}let L=S[K.kind]??={};L[K.as]=N0(K,R[K.alias],z)}return S}}}var W3="";function d3($,Z,X){let z=[];for(let J of t){let V=X?.[J];if(V===void 0||V===!1)continue;if(J==="_count"&&V===!0){z.push({kind:J,as:W3,alias:g0(J,z.length)});continue}if(typeof V!=="object"||V===null||Array.isArray(V))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(V).sort()){let G=V[Y];if(G===void 0||G===!1)continue;if(J==="_count"&&Y==="_all"){z.push({kind:J,as:"_all",alias:g0(J,z.length)});continue}let H=u0($,Z,J,Y);M3($,Z,J,H),z.push({kind:J,field:H,as:Y,alias:g0(J,z.length)})}}return z}function S7($,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 V=X[J];if(V===void 0||V===!1)continue;if(J==="_all"){z.push({kind:"_count",as:"_all",alias:g0("_count",z.length)});continue}let Y=u0($,Z,"_count",J);z.push({kind:"_count",field:Y,as:J,alias:g0("_count",z.length)})}return z}var g0=($,Z)=>`${$}_${Z}`;function u0($,Z,X,z){let J=$.fields[z];if(!J){if(z in $.relations)throw new _(`${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")&&!O7.has(z.type))throw new _(`${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")&&F7.has(z.type))throw new _(`${X}.${z.name}`,$.name,Z,`'${z.name}' is a ${z.type}, which has no ordering the two dialects agree on.`)}function N0($,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 A7($,Z,X,z){if(X===void 0||X===null){if(z)return;throw new _(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(T9.has(J))continue;if(J==="select"||J==="include")throw new _(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 _(J,$.name,Z,`${Z} takes ${[...T9].sort().join(", ")}.`)}}var R9=new Set(["update","share"]),b7=new Set(["mode","skipLocked","noWait"]),c3='Expected "update", "share", or { mode: "update" | "share", skipLocked?: boolean, noWait?: boolean }.';function I9($,Z,X){if($===void 0)return;if(typeof $==="string"){if(R9.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(!b7.has(J))throw new I(`lock.${J}`,Z,X,"A lock takes mode, skipLocked and noWait.");if(typeof z.mode!=="string"||!R9.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"])},q7={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 U9($){return $ in B3}var s3=new Set(["findFirst","findFirstOrThrow","findUnique","findUniqueOrThrow"]);function i3($,Z,X,z,J){if(E7($,Z,X),Z==="count"&&X?.select!==void 0&&X.select!==null)return h0($,Z,X,z);let V=Z==="count"?{plans:[],keyFields:[]}:U0($,X,z,Z,J),G=V.plans.some((q)=>q.root!==void 0)?`${z.quoteIdent($.table)}.`:void 0,H={dialect:z,operation:Z,qualifier:G},W=v($,X?.where,H,(q)=>q?.where);if(Z==="findUnique"||Z==="findUniqueOrThrow")b3($,X?.where,Z);let M=P(` from ${z.quoteIdent($.table)}`),B=W?T(P(" where "),W):P("");if(Z==="count"){let q=P(`select count(*) as ${z.quoteIdent("_count")}`),a=X?.take!==void 0||X?.skip!==void 0,c=H0($,X?.orderBy,Z,{dialect:z,locate:(S0)=>S0?.orderBy}),M0;if(!a)M0=T(q,M,B);else{let{clause:S0,terms:S3}=B0($,Z,X,z,c,s3.has(Z)),d5=o(S3,z),h4=$.primaryKey[0]??Object.keys($.fields)[0];M0=T(q,P(` from (select ${z.quoteIdent($.fields[h4].column)}`),M,B,d5?T(P(" order by "),d5):P(""),S0,P(`) as ${z.quoteIdent("sub")}`))}let{text:C0,binders:Y0}=m(M0,z,{model:$.name,operation:Z});return{text:C0,bind:n(Y0),shape(S0){let S3=S0[0];return Number(S3?._count??0)}}}let D=Z0($,X,Z),{plans:j,keyFields:C}=V,{fields:Q,hidden:R}=z3($,D,C),S=j.filter((q)=>q.root!==void 0),K=G3($,X,z,Z),L=E([...Q.map((q)=>P(`${G??""}${z.quoteIdent(q.column)}`)),...S.map((q)=>q.root.column),...K.map((q)=>q.column)],", "),U=T(...S.map((q)=>q.root.join)),{clause:N,terms:O,reversed:F}=B0($,Z,X,z,H0($,X?.orderBy,Z,{dialect:z,locate:(q)=>q?.orderBy}),s3.has(Z)),b=o(O,z,G),A=I9(X?.lock,$.name,Z),w=T(P("select "),L,M,U,B,b?T(P(" order by "),b):P(""),N,A?z.rowLock(A,$.table):P("")),{text:d,binders:t0}=m(w,z,{model:$.name,operation:Z}),p5=f0(Q,z,j.map((q)=>({key:q.as,kind:q.kind}))),y4=s3.has(Z);return{text:d,bind:n(t0),relations:j.length>0?j:void 0,strategies:j.length>0?v0(j):void 0,hidden:R,shape(q){let a=p5(q);if(K.length>0)for(let c=0;c<a.length;c++){let M0=q[c]??{},C0={};for(let Y0 of K)C0[Y0.as]=Number(M0[Y0.alias]??0);a[c]._count=C0}if(S.length>0)for(let c=0;c<a.length;c++){let M0=a[c],C0=q[c]??{};for(let Y0 of S)M0[Y0.as]=Y0.root.decode(C0[Y0.as])}if(F)a.reverse();return y4?a[0]??null:a}}}function E7($,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 _("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 V=q7[J];if(V)throw new E0(J,$.name,Z,V);throw new _(J,$.name,Z,`${Z} takes ${[...z].sort().join(", ")}.`)}}var m0={name:"lateral",plan($){let Z=A9($.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=V0($.parent,z,$.relation,$.operation),V=b9({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:T(P(`${V.alias}.${X.quoteIdent("data")} as `),P(X.quoteIdent($.as))),join:T(P(" left join lateral ("),V.subquery,P(`) as ${V.alias} on true`)),decode:V.decode,folded:V.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 A9($,Z,X,z,J,V){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=E9(z);if(G===void 0)return;if(x7(G))return"_count on a folded node";if(w7(Y,G.orderBy))return"relation ordering on a folded node";for(let H of k0(Y,G,V)){let W=A9(Y,H.relation,H.as,H.node,J,V);if(W)return`${H.as}: ${W}`}return}function w7($,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 x7($){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 b9($){let{dialect:Z,child:X,operation:z}=$,J=E9($.node),V=$.relation.kind==="many",Y=$.counter.next++,G=Z.quoteIdent(O9("__lat_",$.as,$.depth,Y)),H=Z.quoteIdent(X.table),W=`${H}.`,M=Z0(X,J,z),B=k0(X,J,z).map((A)=>{let w=e(X,A.relation,A.as);return{as:A.as,relation:A.relation,fold:b9({parent:X,child:w,relation:A.relation,as:A.as,node:A.node,locate:(d)=>A.locate($.locate(d)),link:V0(X,w,A.relation,z),dialect:Z,operation:z,depth:$.depth+1,counter:$.counter})}}),D=k7(M,W,Z,B.map((A)=>({key:A.as,alias:A.fold.alias}))),j=T(...B.map((A)=>T(P(" left join lateral ("),A.fold.subquery,P(`) as ${A.fold.alias} on true`)))),C=P($.link.parentFields.map((A,w)=>`${W}${Z.quoteIdent(S9(X,$.link.childFields[w]).column)} = ${Z.quoteIdent($.parent.table)}.${Z.quoteIdent(S9($.parent,A).column)}`).join(" and ")),Q=v(X,J?.where,{dialect:Z,operation:z,qualifier:W},(A)=>$.locate(A)?.where),R=T(P(` from ${H}`),j,P(" where "),C,Q?T(P(" and "),Q):P("")),S=f7(M,Z,V,B.map((A)=>({key:A.as,decode:A.fold.decode}))),K=B.map((A)=>({as:A.as,model:A.relation.model,kind:A.relation.kind,folded:A.fold.folded})),L=H0(X,J?.orderBy,z);if(!V)return{alias:G,folded:K,decode:S,subquery:T(P("select "),D,P(` as ${Z.quoteIdent("data")}`),R,P(" limit 1"))};let U=v7($,J,L,X);if(!U){let A=o(L,Z,W);return{alias:G,folded:K,decode:S,subquery:T(P("select coalesce(json_agg("),D,A?T(P(" order by "),A):P(""),P(`), '[]'::json) as ${Z.quoteIdent("data")}`),R)}}let N=Z.quoteIdent(O9("__page_",$.as,$.depth,Y)),O=U.terms.map((A,w)=>P(`, ${W}${Z.quoteIdent(A.column)} as ${Z.quoteIdent(q9(w))}`)),F=o(N9(U.inner),Z),b=o(N9(U.terms),Z,`${N}.`);return{alias:G,folded:K,decode:S,subquery:T(P(`select coalesce(json_agg(${N}.${Z.quoteIdent("data")}`),b?T(P(" order by "),b):P(""),P(`), '[]'::json) as ${Z.quoteIdent("data")} from (select `),D,P(` as ${Z.quoteIdent("data")}`),...O,R,F?T(P(" order by "),F):P(""),U.clause,P(`) as ${N}`))}}function v7($,Z,X,z){let J=Z?.take,V=Z?.skip;if(J===void 0&&V===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)),H=V===void 0?null:(W)=>Number($.locate(W)?.skip);return{clause:$.dialect.paginate(G,H),terms:Y,inner:typeof J==="number"&&J<0?Z3(Y):Y}}var q9=($)=>`__ord_${$}`;function N9($){return $.map((Z,X)=>({...Z,column:q9(X),expression:void 0}))}function O9($,Z,X,z){return X===1?`${$}${Z}`:`${$}${Z}_${z}`}function E9($){if($===!0||$===void 0||$===null)return;if(typeof $!=="object"||Array.isArray($))return;return $}function k7($,Z,X,z){let J=$.map((V)=>{let Y=`${Z}${X.quoteIdent(V.column)}`,G=V.type==="BigInt"?`${Y}::text${V.isList?"[]":""}`:Y;return`'${V.name}', ${G}`});for(let V of z)J.push(`'${V.key}', ${V.alias}.${X.quoteIdent("data")}`);return P(`json_build_object(${J.join(", ")})`)}function f7($,Z,X,z){let J=$.map((Y)=>({field:Y,convert:g7(Y)})).filter((Y)=>Y.convert!==void 0),V=(Y)=>{if(Y===null||Y===void 0||typeof Y!=="object")return null;let G=Y;for(let{field:H,convert:W}of J)G[H.name]=W(G[H.name]);for(let H of z)G[H.key]=H.decode(G[H.key]);return G};return(Y)=>{let G=typeof Y==="string"?y7(Y):Y??null;if(X){if(!Array.isArray(G))return[];return G.map(V).filter((H)=>H!==null)}return V(G)}}function g7($){if($.isList){let Z=F9($);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 F9($)}function F9($){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 y7($){try{return JSON.parse($)}catch{return null}}function S9($,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 w9($){return $.name==="postgres"?m0:W0}function n3($,Z,X){if($===void 0)return w9(Z);if($==="batched")return W0;if($==="lateral")return m0;throw new _(`strategy: ${JSON.stringify($)}`,X.model,X.operation,'Unknown relation strategy. Expected "batched" or "lateral".')}var h7=2,l3=21;class o3 extends Error{constructor($){super(`The generated model artifact is version ${$}, but this version of gemi reads version 2. Re-run \`prisma generate\` to refresh app/models/generated.`);this.name="StaleSchemaArtifactError"}}function u7($){if($!==2)throw new o3($)}var m7=new Set(["cuid","uuid","nanoid","ulid","now","value"]);function v9($){return m7.has($.kind)}function p0($){if($.isUpdatedAt)return!0;return $.default!==void 0&&v9($.default)}function a3($,Z){if($.isUpdatedAt)return Z;let X=$.default;if(!X)return;switch(X.kind){case"cuid":return k9();case"uuid":return y9(X.version??4);case"nanoid":return f9(X.length??l3);case"ulid":return g9();case"now":return Z;case"value":return X.value;default:return}}function e3($,Z){let X=$.length,z=256-256%X,J=new Uint8Array(Z);crypto.getRandomValues(J);let V="";for(let Y=0;Y<Z;Y++){let G=J[Y];while(G>=z){let H=new Uint8Array(1);crypto.getRandomValues(H),G=H[0]}V+=$[G%X]}return V}var p7="0123456789abcdefghijklmnopqrstuvwxyz",t3=36,$5=4,d7=t3**$5,c7=0;function s7($,Z){return $.length>=Z?$:"0".repeat(Z-$.length)+$}var i7=r3();function r3(){return e3(p7,$5)}function k9(){let $=Date.now().toString(t3),Z=s7((c7++%d7).toString(t3),$5);return`c${$}${Z}${i7}${r3()}${r3()}`}var n7="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";function f9($=l3){return e3(n7,$)}var x9="0123456789ABCDEFGHJKMNPQRSTVWXYZ",l7=10,o7=16;function g9($=Date.now()){let Z="",X=$;for(let z=0;z<l7;z++)Z=x9[X%32]+Z,X=Math.floor(X/32);return Z+e3(x9,o7)}function y9($=4){return $===7?r7():crypto.randomUUID()}var t7=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function r7(){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=t7;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 a7=["connect","connectOrCreate","create","createMany","disconnect","delete","update","set","updateMany","deleteMany","upsert"],h9=new Set(a7),e7=["disconnect","delete","update","set","updateMany","deleteMany","upsert"],$2=new Set(e7),Z2=["createMany","set","updateMany","deleteMany"],d9=new Set(Z2.filter(($)=>$!=="createMany")),c9=new Set(["create","createMany"]),X2={},u9={contributions:[],before:[],after:[],keyFields:[]};function j3($,Z,X,z,J){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return u9;let V=Object.keys(Z).sort().filter((H)=>(H in $.relations)).filter((H)=>Z[H]!==void 0);if(V.length===0)return u9;let Y={contributions:[],before:[],after:[],keyFields:[]},G=new Map;for(let H of V){let W=$.relations[H],M=Z[H],B=(j)=>z(j)?.[H],D=Y.contributions.length;z2($,W,M,X,B,Y,J);for(let j=D;j<Y.contributions.length;j++){let C=Y.contributions[j].field,Q=G.get(C);if(Q!==void 0&&Q!==H)throw new _(`data.${H}`,$.name,X,`'${C}' is written by both the '${Q}' and '${H}' 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,H)}}return Y}function z2($,Z,X,z,J,V,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 H=e($,Z),W=V0($,H,Z,z);if(W.join){let B=D9(W,$,Z,z);for(let D of G)H2($,Z,H,B,D,X[D],z,(j)=>J(j)?.[D],V,Y);return}for(let B of G){if(!h9.has(B)){let D=X2[B];throw new _(`data.${Z.name}.${B}`,$.name,z,`Only ${[...h9].sort().join(", ")} are implemented.`+(D?` '${B}' is not: ${D}`:""))}if($2.has(B)&&c9.has(z))throw new _(`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,H,W,B,D,z,j,V);else Y2($,Z,H,W,B,D,z,j,V)}}function J2($,Z,X,z,J,V,Y,G,H){let{parentFields:W,childFields:M}=z,B=()=>{for(let K of W)H.contributions.push({field:K,value:(L,U)=>U.resolved[K]})},D=(K,L)=>{for(let U=0;U<W.length;U++)K.resolved[W[U]]=L[U]??null},j=Object.values(X.relations).filter((K)=>K.relationName===Z.relationName&&!(X.name===$.name&&K.name===Z.name)),C=new Set(W),Q=W.every((K)=>$.fields[K]?.nullable===!0)&&$.uniques.some((K)=>K.length===C.size&&K.every((L)=>C.has(L)))&&j.length===1&&j[0].kind!=="many",R=!c9.has(Y);if(J==="createMany")throw new _(`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"){H.before.push({relation:Z.name,operation:"create",async run(K,L,U){let N=await U.exec(Z.model,"create",{data:G(K),select:x(M)},!1);D(L,u(N,M))}}),B();return}if(J==="disconnect"){J5($,Z,W,{model:$.name,operation:Y,argument:`data.${Z.name}.disconnect`}),n9($,Z,X,V,J,Y);let K=Y5(J,V);if(K===null||K===void 0)return;if(V===!0){for(let L of W)H.contributions.push({field:L,value:()=>null});return}H.before.push({relation:Z.name,operation:"disconnect",async run(L,U,N){D(U,p9(W));let O=await N.exec($.name,"findFirst",{where:L?.where,select:x(W)},!0),F=u(O,W);if(!c0(F))return;if(D(U,F),await N.exec(Z.model,"findFirst",{where:j0(G(L),h(z,O)),select:x(M)},!1))D(U,p9(W))}}),B();return}if(J==="delete")throw new _(`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"){H.keyFields.push(...W),z5($,Z,X,J,V,Y),H.after.push({relation:Z.name,operation:"update",async run(K,L,U,N){let O=N[0];if(!O)return;if(!c0(u(O,W)))throw new r(Z.model,"update");let F=G(K),b=F!==null&&typeof F==="object"&&F.data!==void 0,A=F,w=b?A.data:F,d=b?A.where:void 0,t0=j0(d,h(z,O));if(d!==void 0){if(!await U.exec(Z.model,"findFirst",{where:t0,select:x(M)},!1))throw new r(Z.model,"update")}await U.exec(Z.model,"updateMany",{where:t0,data:w},!1)}});return}if(d9.has(J))throw new _(`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"){z5($,Z,X,J,V,Y),s9($,Z,X,V,Y,!1),H.before.push({relation:Z.name,operation:"upsert",async run(K,L,U){let N=G(K),O=await U.exec($.name,"findFirst",{where:K?.where,select:x(W)},!0);if(c0(u(O,W))){let b=j0(N?.where,h(z,O)),A=await U.exec(Z.model,"findFirst",{where:b,select:x(M)},!1);if(A){D(L,u(A,M)),await U.exec(Z.model,"updateMany",{where:b,data:N?.update},!1);return}}let F=await U.exec(Z.model,"create",{data:N?.create,select:x(M)},!1);D(L,u(F,M))}}),B();return}if(J==="connectOrCreate"){H5($,Z,X,V,Y,!1),H.before.push({relation:Z.name,operation:"connectOrCreate",async run(K,L,U){let N=G(K)?.where,O=await U.exec(Z.model,"findUnique",{where:N,select:x(M)},!1);if(O){let b=u(O,M);if(Q)await X5($,W,b,K?.where,R,U);D(L,b);return}let F=await U.exec(Z.model,"create",{data:G(K)?.create,select:x(M)},!1);D(L,u(F,M))}}),B();return}if(typeof V!=="object"||V===null||Array.isArray(V))throw new I(`data.${Z.name}.connect`,$.name,Y,"Expected an object naming a unique field.");if(M.length===1&&V[M[0]]!==void 0&&Object.keys(V).filter((K)=>V[K]!==void 0).length===1){let K=M[0],L=W[0];if(Q)H.before.push({relation:Z.name,operation:"connect",async run(U,N,O){await X5($,[L],[G(U)?.[K]],U?.where,R,O)}});H.contributions.push({field:L,value:(U)=>G(U)?.[K]});return}y(X,V,{model:$.name,operation:Y,argument:`data.${Z.name}.connect`}),H.before.push({relation:Z.name,operation:"connect",async run(K,L,U){let N=await U.exec(Z.model,"findUniqueOrThrow",{where:G(K),select:x(M)},!1),O=u(N,M);if(Q)await X5($,W,O,K?.where,R,U);D(L,O)}}),B()}function Y2($,Z,X,z,J,V,Y,G,H){let{parentFields:W,childFields:M}=z;H.keyFields.push(...W);let B=Z.kind!=="many"&&M.every((j)=>X.fields[j]?.nullable===!0),D=V;if(Z.kind!=="many"){if(d9.has(J))throw new _(`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(V))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.`);z5($,Z,X,J,V,Y);let j=G;G=(C)=>Y5(J,j(C)),V=Y5(J,V)}if(J==="upsert"){s9($,Z,X,V,Y,Z.kind==="many"),H.after.push({relation:Z.name,operation:"upsert",async run(j,C,Q,R){let S=R[0];if(!S)return;for(let K of X0(G(j))){let L=j0(K.where,h(z,S));if(await Q.exec(Z.model,"findFirst",{where:L,select:x(M)},!1)){await Q.exec(Z.model,"updateMany",{where:L,data:K.update},!1);continue}await Q.exec(Z.model,"create",{data:{...K.create,...h(z,S)},select:x(M)},!1)}}});return}if(J==="updateMany"||J==="deleteMany"){let j=J==="updateMany";W2($,Z,V,J,Y),H.after.push({relation:Z.name,operation:J,async run(C,Q,R,S){let K=S[0];if(!K)return;let L=G(C),U=j?L?.where:L,N=j0(U,h(z,K));await R.exec(Z.model,J,j?{where:N,data:L?.data}:{where:N},!1)}});return}if(J==="set"){D3($,Z,X,V,"set",Y),J5(X,Z,M,{model:$.name,operation:Y,argument:`data.${Z.name}.set`}),H.after.push({relation:Z.name,operation:"set",async run(j,C,Q,R){let S=R[0];if(!S)return;let K=h(z,S);await d0(Z.model,M,u(S,W),Q);for(let L of X0(G(j)))await Q.exec(Z.model,"updateMany",{where:L,data:K},!1)}});return}if(J==="update"){M2($,Z,X,V,Y,Z.kind==="many"),H.after.push({relation:Z.name,operation:"update",async run(j,C,Q,R){let S=R[0];if(!S)return;let K=X0(G(j));for(let L=0;L<K.length;L++){let U=K[L],N=j0(U.where,h(z,S));if(!await Q.exec(Z.model,"findFirst",{where:N,select:x(M)},!1))throw new r(Z.model,"update");await Q.exec(Z.model,"updateMany",{where:N,data:U.data},!1)}}});return}if(J==="disconnect"||J==="delete"){let j=J==="delete";if(!j)J5(X,Z,M,{model:$.name,operation:Y,argument:`data.${Z.name}.disconnect`});if(Z.kind==="many")D3($,Z,X,V,J,Y);else n9($,Z,X,D,J,Y);H.after.push({relation:Z.name,operation:J,async run(C,Q,R,S){let K=S[0];if(!K)return;let L=X0(G(C));for(let U=0;U<L.length;U++){let N=j0(L[U],h(z,K));if(!j){await R.exec(Z.model,"updateMany",{where:N,data:i9(M)},!1,M);continue}if(!await R.exec(Z.model,"findFirst",{where:N,select:x(M)},!1)){if(Z.kind!=="many")throw new r(Z.model,"delete");throw new _(`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 R.exec(Z.model,"deleteMany",{where:N},!1)}}});return}if(J==="create"){H.after.push({relation:Z.name,operation:"create",async run(j,C,Q,R){let S=R[0];if(!S)return;if(B)await d0(Z.model,M,u(S,W),Q);for(let K of X0(G(j)))await Q.exec(Z.model,"create",{data:{...K,...h(z,S)},select:x(M)},!1)}});return}if(J==="createMany"){if(Z.kind!=="many")throw new _(`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.`);B2($,Z,V,Y),H.after.push({relation:Z.name,operation:"createMany",async run(j,C,Q,R){let S=R[0];if(!S)return;let K=X0(G(j)?.data).map((L)=>({...L,...h(z,S)}));await Q.exec(Z.model,"createMany",{data:K},!1)}});return}if(J==="connectOrCreate"){H5($,Z,X,V,Y,Z.kind==="many"),H.after.push({relation:Z.name,operation:"connectOrCreate",async run(j,C,Q,R){let S=R[0];if(!S)return;let K=X0(G(j));for(let L=0;L<K.length;L++){let U=K[L],N=await Q.exec(Z.model,"findUnique",{where:U.where,select:x(M)},!1);if(N){if(B&&M.every((O,F)=>V5(N[O],S[W[F]])))continue;if(B)await d0(Z.model,M,u(S,W),Q);await Q.exec(Z.model,"update",{where:U.where,data:h(z,S),select:x(M)},!1,M);continue}await Q.exec(Z.model,"create",{data:{...U.create,...h(z,S)},select:x(M)},!1)}}});return}D3($,Z,X,V,J,Y),H.after.push({relation:Z.name,operation:"connect",async run(j,C,Q,R){let S=R[0];if(!S)return;let K=[];for(let L of X0(G(j))){if(B&&await G2(Z.model,M,L,u(S,W),Q))continue;K.push(L)}if(K.length===0)return;if(B)await d0(Z.model,M,u(S,W),Q);for(let L of K)await Q.exec(Z.model,"update",{where:L,data:h(z,S),select:x(M)},!1,M)}})}var m9=new Set(["connect","connectOrCreate","disconnect","set","create"]),V2={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 H2($,Z,X,z,J,V,Y,G,H,W){if(J==="connectOrCreate")H5($,Z,X,V,Y,Z.kind==="many");if(!m9.has(J)){let C=V2[J];if(C)throw new _(`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 _(`data.${Z.name}.${J}`,$.name,Y,`'${Z.name}' is an implicit many-to-many. Only ${[...m9].sort().join(", ")} are implemented through its join table.`)}if(J==="connect"||J==="disconnect"||J==="set")D3($,Z,X,V,J,Y);let{join:M,parentField:B,childField:D}=z,j=(C)=>W.quoteIdent(C);H.keyFields.push(B),H.after.push({relation:Z.name,operation:J,async run(C,Q,R,S){let K=S[0];if(!K)return;let L=K[B];if(L===null||L===void 0)return;if(J==="set"){let O=await R.query(`select ${j(M.childColumn)} from ${j(M.table)} where ${j(M.parentColumn)} = ${W.placeholder(0)}`,[L]),F=Array.from(O,(b)=>b[M.childColumn]);if(F.length>0){let b=await R.exec(Z.model,"findMany",{where:{[D]:{in:F}},select:{[D]:!0}},!1),A=Array.from(b,(w)=>w[D]);if(A.length>0)await Z5(R,`delete from ${j(M.table)} where ${j(M.parentColumn)} = ${W.placeholder(0)} and ${j(M.childColumn)} in (`+A.map((w,d)=>W.placeholder(d+1)).join(", ")+")",[L,...A])}}let U=X0(G(C));if(U.length===0)return;let N=[];for(let O of U){if(J==="create"){let b=await R.exec(Z.model,"create",{data:O,select:{[D]:!0}},!1);if(b)N.push(b[D]);continue}if(J==="connectOrCreate"){let b=O,A=await R.exec(Z.model,"findUnique",{where:b.where,select:{[D]:!0}},!1);if(A){N.push(A[D]);continue}let w=await R.exec(Z.model,"create",{data:b.create,select:{[D]:!0}},!1);if(w)N.push(w[D]);continue}let F=await R.exec(Z.model,"findUniqueOrThrow",{where:O,select:{[D]:!0}},!1);if(F)N.push(F[D])}for(let O of N){if(J==="disconnect"){await Z5(R,`delete from ${j(M.table)} where ${j(M.parentColumn)} = ${W.placeholder(0)} and ${j(M.childColumn)} = ${W.placeholder(1)}`,[L,O]);continue}await Z5(R,`insert into ${j(M.table)} (${j(M.parentColumn)}, ${j(M.childColumn)}) values (${W.placeholder(0)}, ${W.placeholder(1)}) on conflict do nothing`,[L,O])}}})}async function Z5($,Z,X){await $.query(Z,X)}function s9($,Z,X,z,J,V){let Y=`data.${Z.name}.upsert`,G=Array.isArray(z)?z:[z];for(let H of G){if(typeof H!=="object"||H===null||Array.isArray(H))throw new _(Y,$.name,J,V?"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=H,M=V?["where","create","update"]:["create","update"];for(let B of M)if(W[B]===void 0)throw new _(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(!V)continue;y(X,W.where,{model:$.name,operation:J,argument:`data.${Z.name}.upsert.where`})}}function j0($,Z){if($===void 0||$===null||typeof $!=="object"||Array.isArray($)||Object.keys($).length===0)return Z;return{AND:[$,Z]}}function h($,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 i9($){let Z={};for(let X of $)Z[X]=null;return Z}function p9($){return $.map(()=>null)}function u($,Z){return Z.map((X)=>$?.[X])}function c0($){return $.every((Z)=>Z!==null&&Z!==void 0)}async function d0($,Z,X,z){if(!c0(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:i9(Z)},!1,Z)}async function G2($,Z,X,z,J){let V=await J.exec($,"findUnique",{where:X,select:x(Z)},!1);if(V===null||V===void 0)return!1;return Z.every((Y,G)=>V5(V[Y],z[G]))}async function X5($,Z,X,z,J,V){if(!c0(X))return;if(J){let Y=await V.exec($.name,"findFirst",{where:z,select:x(Z)},!0);if(Y===null||Y===void 0)return;if(Z.every((G,H)=>V5(Y[G],X[H])))return}await d0($.name,Z,X,V)}function V5($,Z){if($===null||$===void 0||Z===null||Z===void 0)return!1;return $===Z||String($)===String(Z)}function W2($,Z,X,z,J){let V=`data.${Z.name}.${z}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new _(V,$.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 _(V,$.name,J,`Expected a '${G}' key \u2014 'updateMany' names which rows to `+"write and what to write to them.")}function M2($,Z,X,z,J,V){let Y=`data.${Z.name}.update`,G=Array.isArray(z)?z:[z],H=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new _(Y,$.name,J,"Expected an object with 'where' and 'data'.");let M=W,B=V?["where","data"]:["data"];for(let D of B)if(M[D]===void 0)throw new _(Y,$.name,J,`Expected a '${D}' key \u2014 'update' names the row to write and `+"the columns to write to it.");if(V)y(X,M.where,{model:$.name,operation:J,argument:`data.${Z.name}.update.where`});H.push(M)}return H}function D3($,Z,X,z,J,V){let Y=`data.${Z.name}.${J}`,G=Array.isArray(z)?z:[z],H=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new _(Y,$.name,V,"Expected an object naming a unique field, or an array of them.");y(X,W,{model:$.name,operation:V,argument:`data.${Z.name}.${J}`}),H.push(W)}return H}function n9($,Z,X,z,J,V){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,V,`'${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 z5($,Z,X,z,J,V){if(z!=="update"&&z!=="upsert")return;let Y=`data.${Z.name}.${z}`,G=(B)=>{throw new I(Y,$.name,V,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 H=J;if(!(z==="upsert"||H.data!==void 0))return;let M=z==="upsert"?["where","create","update"]:["where","data"];for(let B of Object.keys(H)){if(H[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(H.where!==void 0&&(H.where===null||typeof H.where!=="object"||Array.isArray(H.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 J5($,Z,X,z){let J=X.find((V)=>!$.fields[V]?.nullable);if(J===void 0)return;throw new _(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 H5($,Z,X,z,J,V){let Y=`data.${Z.name}.connectOrCreate`;if(Array.isArray(z)&&!V){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 H=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new _(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 _(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 _(Y,$.name,J,`Unexpected ${B.sort().join(", ")} \u2014 'connectOrCreate' takes `+"'where' and 'create'.");y(X,M.where,{model:$.name,operation:J,argument:`data.${Z.name}.connectOrCreate.where`}),H.push(M)}return H}function B2($,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 V=Object.keys(X).filter((Y)=>X[Y]!==void 0);if(!V.includes("data"))throw new I(J,$.name,z,"Expected a 'data' key.");for(let Y of V){if(Y==="data")continue;throw new _(`${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 Y5($,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 j5={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"])},D2=new Set(["create","update","delete","upsert"]),l9=new Set(["createMany","updateMany","deleteMany"]);function o9($){return $ in j5}function P5($,Z,X,z){if(O2($,Z,X),!z.supportsReturning)throw new D5($.name,Z,z.name);switch(Z){case"create":return j2($,Z,X,z);case"createMany":return P2($,Z,X,z);case"update":case"updateMany":return Q2($,Z,X,z);case"delete":case"deleteMany":return L2($,Z,X,z);case"upsert":return T2($,Z,X,z);default:throw new _(Z,$.name,Z,`'${Z}' is not a write operation. The writes are ${Object.keys(j5).sort().join(", ")}.`)}}function j2($,Z,X,z){let J=j3($,X?.data,Z,(H)=>H?.data,z),V=t9($,X?.data,J.contributions,Z,z,(H)=>H?.data),Y=s0($,X,z,Z,J),G=T(P(`insert into ${z.quoteIdent($.table)}`),K5([V],z),Y.clause);return K3($,G,z,Z,Y,J)}function P2($,Z,X,z){let J=X?.data===void 0?[]:V4(X.data),V=_2($,Z,X,z);if(J.length===0)return Y4($,Z,z);let Y=K2($,J,Z,z);if(Y[0].length===0&&J.length>1)throw new _("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=s0($,void 0,z,Z,void 0),H=T(P(`insert into ${z.quoteIdent($.table)}`),K5(Y,z),V??P(""),G.clause),{text:W,binders:M}=m(H,z,{model:$.name,operation:Z});return{text:W,bind:n(M),shape:(B)=>({count:B.length})}}function _2($,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 V=z.ignoreConflicts();if(V===null)throw new _("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?V:null}function K2($,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 H=new Set;for(let[W,M]of Object.entries(Y)){if(M===void 0)continue;if(W in $.relations)throw new _(`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));H.add(W)}return H}),V=[];for(let Y of Object.values($.fields))if(J.some((H)=>H.has(Y.name))||p0(Y)||G5(Y))V.push(Y);for(let Y of V){if(!J.some((W)=>!W.has(Y.name)))continue;if(p0(Y))continue;if(Y.nullable)continue;if(G5(Y))continue;if(Y.default)throw new _(`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 H=J.findIndex((W)=>!W.has(Y.name));throw new P3($.name,`${X}.data[${H}]`,Y.name)}for(let Y of V)if(Y.isList)R0($,Y,`data.${Y.name}`,X,z);return Z.map((Y,G)=>V.map((H)=>{if(!J[G].has(H.name))return{field:H,value:G5(H)?J4(H,z):C5(H,z)};if(H.isList)Q5($,H,Y?.[H.name],X,["set"]);let W=r9(H,Y?.[H.name]);return{field:H,value:P0($,X,H,z,(M)=>{let B=V4(M?.data)[G]?.[H.name];return W?B?.set:B})}}))}function Q2($,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)y($,X?.where,{model:$.name,operation:Z,argument:"where"});if(J)a9($,X?.data,Z,"data","updateMany cannot contain nested writes \u2014 it has no single row to "+"attach them to. Use update per row.");let V=J?void 0:j3($,X?.data,Z,(j)=>j?.data,z),Y=e9($,X?.data,V?.contributions??[],Z,z),G=v($,X?.where,{dialect:z,operation:Z},(j)=>j?.where),H=C2($,X,Z,z,V),W=H===void 0?G:G?T(P("("),G,P(") and "),H):H;if(J&&Y.length===0)return Y4($,Z,z);let M=Y.length===0,B=s0($,X,z,Z,V),D=M?T(P("select "),B.selected,P(` from ${z.quoteIdent($.table)}`),G?T(P(" where "),G):P("")):T(P(`update ${z.quoteIdent($.table)} set `),E(Y,", "),W?T(P(" where "),W):P(""),B.clause);return K3($,D,z,Z,B,V)}function C2($,Z,X,z,J){let V=Z?.skipIfUnchanged;if(V===void 0||V===!1)return;if(V!==!0)throw new I("skipIfUnchanged",$.name,X,`Expected true or false, received ${M5(V)}.`);if(J!==void 0&&(J.contributions.length>0||J.before.length>0||J.after.length>0))throw new _("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 H of _3($,Y)){let W=$.fields[H],M=Y[H],B=(D)=>D?.data?.[H];if(z4(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?.[H]?.set}G.push(z.distinctFrom(z.quoteIdent(W.column),g(W,z,P0($,X,W,z,B)),W))}if(G.length===0)return;return T(P("("),E(G," or "),P(")"))}function L2($,Z,X,z){if(Z==="delete")y($,X?.where,{model:$.name,operation:Z,argument:"where"});let J=v($,X?.where,{dialect:z,operation:Z},(G)=>G?.where),V=s0($,X,z,Z,void 0),Y=T(P(`delete from ${z.quoteIdent($.table)}`),J?T(P(" where "),J):P(""),V.clause);return K3($,Y,z,Z,V,void 0)}function T2($,Z,X,z){let J=y($,X?.where,{model:$.name,operation:Z,argument:"where"}),V=J.length>1?J.join("_"):J[0],Y=Object.keys(X.where).filter((Q)=>Q!==V&&X.where[Q]!==void 0);if(Y.length>0)throw new _("where",$.name,Z,`The where clause carries ${Y.join(", ")} beside the unique key '${V}'. 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 Q of["create","update"])a9($,X?.[Q],Z,Q,"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=_5($,X,J);if(G.length>0)throw new _("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 H=R2(t9($,X?.create,[],Z,z,(Q)=>Q?.create),$,J,Z,z),W=`${z.quoteIdent($.table)}.`,M=e9($,X?.update,[],Z,z,(Q)=>Q?.update,W),B=E(J.map((Q)=>P(z.quoteIdent(W5($,Q).column))),", "),D=M.length>0?M:[P(`${z.quoteIdent(W5($,J[0]).column)} = ${W}${z.quoteIdent(W5($,J[0]).column)}`)],j=s0($,X,z,Z,void 0),C=T(P(`insert into ${z.quoteIdent($.table)}`),K5([H],z),P(" on conflict ("),B,P(") do update set "),E(D,", "),j.clause);return K3($,C,z,Z,j,void 0)}function _5($,Z,X){let z=_3($,Z?.create);return X.filter((J)=>!z.has(J))}function R2($,Z,X,z,J){let V=new Set(X);return $.map((Y)=>{if(!V.has(Y.field.name))return Y;let G=U2(X,Y.field.name);return{field:Y.field,value:(H,W)=>{let M=Y.value(H,W),B=J.encode(G(H),Y.field);if(!I2(M,B))throw new _("upsert",Z.name,z,`'${Y.field.name}' is ${M5(B)} in the where clause but ${M5(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 I2($,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 M5($){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 U2($,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 K5($,Z){let X=$[0];if(X.length===0)return P(" default values");let z=E(X.map((V)=>P(Z.quoteIdent(V.field.column))),", "),J=$.map((V)=>T(P("("),E(V.map((Y)=>g(Y.field,Z,Y.value)),", "),P(")")));return T(P(" ("),z,P(") values "),E(J,", "))}function t9($,Z,X,z,J,V){if(Z!==void 0&&Z!==null){if(typeof Z!=="object"||Array.isArray(Z))throw new I("data",$.name,z,"Expected an object.")}let Y=_3($,Z),G=new Map(X.map((W)=>[W.field,W]));for(let W of G.keys())if(Y.has(W))throw new _(`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 H=[];for(let W of Object.values($.fields)){let M=G.get(W.name);if(M){H.push({field:W,value:(B,D)=>J.encode(M.value(B,D),W)});continue}if(Y.has(W.name)){if(W.isList)R0($,W,`data.${W.name}`,z,J),Q5($,W,Z?.[W.name],z,["set"]);let B=r9(W,Z?.[W.name]);H.push({field:W,value:P0($,z,W,J,(D)=>{let j=V(D)?.[W.name];return B?j?.set:j})});continue}if(p0(W)){H.push({field:W,value:C5(W,J)});continue}if(W.default||W.nullable)continue;if(W.isList){R0($,W,`data.${W.name}`,z,J),H.push({field:W,value:J4(W,J)});continue}throw new P3($.name,z,W.name)}return H}function Q5($,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 V=Object.keys(X).filter((Y)=>X[Y]!==void 0);if(V.length===1&&J.includes(V[0]))return;throw new _(`data.${Z.name}`,$.name,z,`'${Z.name}' is a scalar list, so it takes ${J.join(" or ")} \u2014 `+`or a bare array. Received ${V.length===0?"an empty object":`{ ${V.join(", ")} }`}. The arithmetic operators apply to a number, not to a list of them.`)}function r9($,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 _3($,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 a9($,Z,X,z,J){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;for(let[V,Y]of Object.entries(Z)){if(Y===void 0)continue;if(V in $.relations)throw new _(`${z}.${V}`,$.name,X,J)}}function e9($,Z,X,z,J,V=(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=_3($,Z),H=new Map(X.map((B)=>[B.field,B])),W=H.size>0||G.size>0,M=[];for(let B of Object.values($.fields)){let D=J.quoteIdent(B.column),j=H.get(B.name);if(j){M.push(T(P(`${D} = `),s((C,Q)=>J.encode(j.value(C,Q),B))));continue}if(G.has(B.name)){M.push(N2($,B,D,`${Y}${D}`,Z,z,J,(C)=>V(C)?.[B.name]));continue}if(B.isUpdatedAt&&W)M.push(T(P(`${D} = `),g(B,J,C5(B,J))))}return M}var $4={increment:"+",decrement:"-",multiply:"*",divide:"/"},Z4=["set","push"];function X4($){return $.isList?Z4:["set",...Object.keys($4)]}function N2($,Z,X,z,J,V,Y,G){let H=J[Z.name];if(Z.isList)R0($,Z,`data.${Z.name}`,V,Y),Q5($,Z,H,V,Z4);if(z4(H,Z)){let W=Object.keys(H).filter((D)=>H[D]!==void 0);if(W.length!==1)throw new _(`data.${Z.name}`,$.name,V,`Expected exactly one of ${X4(Z).join(", ")}.`);let[M]=W,B=(D)=>G(D)?.[M];if(M==="set")return T(P(`${X} = `),g(Z,Y,P0($,V,Z,Y,B)));if(M==="push")return T(P(`${X} = `),Y.listPush(z,g(Z,Y,P0($,V,Z,Y,(D)=>{let j=B(D);return Array.isArray(j)?j:[j]}))));return T(P(`${X} = ${z} ${$4[M]} `),g(Z,Y,P0($,V,Z,Y,B)))}return T(P(`${X} = `),g(Z,Y,P0($,V,Z,Y,G)))}function z4($,Z){if(typeof $!=="object"||$===null||Array.isArray($)||$ instanceof Date||ArrayBuffer.isView($)||Z.type==="Json"&&!Z.isList)return!1;let X=X4(Z),z=Object.keys($);if(z.length===0)return!1;return z.every((J)=>X.includes(J))}function P0($,Z,X,z,J){return(V)=>{let Y=J(V);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 J4($,Z){return()=>Z.encode([],$)}function G5($){return $.isList===!0&&!$.default&&!$.nullable}function C5($,Z){return(X,z)=>Z.encode(a3($,z.now),$)}function s0($,Z,X,z,J){if(l9.has(z))return{clause:P(` returning ${B5($,X)}`),selected:P(B5($,X)),fields:[],relations:[],counts:[]};let V=Z0($,Z,z),{plans:Y,keyFields:G}=U0($,Z,X,z),{fields:H,hidden:W}=z3($,V,[...G,...J?.keyFields??[]]),M=G3($,Z,X,z),B=E([...H.map((D)=>P(X.quoteIdent(D.column))),...M.map((D)=>D.column)],", ");return{clause:T(P(" returning "),B),selected:B,fields:H,hidden:W,relations:Y,counts:M}}function Y4($,Z,X){let z=B5($,X),{text:J,binders:V}=m(P(`select ${z} from ${X.quoteIdent($.table)} where false`),X,{model:$.name,operation:Z});return{text:J,bind:n(V),shape:(Y)=>({count:Y.length})}}function B5($,Z){let X=$.primaryKey[0]??Object.keys($.fields)[0];return Z.quoteIdent($.fields[X].column)}function W5($,Z){let X=$.fields[Z];if(!X)throw new k(Z,$.name,Object.keys($.fields));return X}function K3($,Z,X,z,J,V){let{text:Y,binders:G}=m(Z,X,{model:$.name,operation:z}),H=f0(J.fields,X,J.relations.map((B)=>({key:B.as,kind:B.kind}))),W=D2.has(z),M=l9.has(z);return{text:Y,bind:n(G),relations:J.relations.length>0?J.relations:void 0,strategies:J.relations.length>0?v0(J.relations):void 0,hidden:J.hidden,before:V&&V.before.length>0?V.before:void 0,after:V&&V.after.length>0?V.after:void 0,counts:J.counts.length>0?!0:void 0,shape(B){if(M)return{count:B.length};let D=H(B);if(J.counts.length>0)for(let j=0;j<D.length;j++){let C=B[j]??{},Q={};for(let R of J.counts)Q[R.as]=Number(C[R.alias]??0);D[j]._count=Q}return W?D[0]??null:D}}}function V4($){if($===void 0||$===null)return[];return Array.isArray($)?$:[$]}function O2($,Z,X){if(X===void 0||X===null)throw new _("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 _("select + include",$.name,Z,"Prisma allows only one of them on the same query.");let z=j5[Z];for(let J of Object.keys(X).sort()){if(X[J]===void 0)continue;if(!z.has(J))throw new _(J,$.name,Z,`${Z} takes ${[...z].sort().join(", ")}.`)}for(let J of F2(Z))if(X[J]===void 0)throw new _(J,$.name,Z,`${Z} requires '${J}'.`)}function F2($){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 S2($,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 V=Object.values(Z.fields).filter((Y)=>Y.type==="DateTime").map((Y)=>Y.name);if(V.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 ${V.length===1?"the column":"columns"} ${V.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 A2($,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=(V)=>Number(X.find((Y)=>Y.type===V)?.value),J=Date.UTC(z("year"),z("month")-1,z("day"),z("hour"),z("minute"),z("second"));return($-J)/60000}function H4($){let Z=new Date().getUTCFullYear();for(let X=0;X<12;X++)if(A2(Date.UTC(Z,X,1),$)!==0)return!0;return!1}function G4($,Z){let X=!1;return(z,J,V,Y)=>{if(!$||X)return null;let G=S2(z,J,V,Y,Z());if(G!==null)X=!0;return G}}var W4=new Set(["by","where","orderBy","having","take","skip",...t]);function L5($){return $==="groupBy"}function T5($,Z,X,z){y2($,Z,X);let J=q2($,Z,X?.by),V=d3($,Z,X),Y=P(` from ${z.quoteIdent($.table)}`),G=v($,X?.where,{dialect:z,operation:Z},(U)=>U?.where),H=G?T(P(" where "),G):P(""),W=E([...J.map((U)=>P(`${z.quoteIdent(U.field.column)} as ${z.quoteIdent(U.alias)}`)),...V.map((U)=>P(b2(U,z)))],", "),M=T(P(" group by "),E(J.map((U)=>P(z.quoteIdent(U.field.column))),", ")),B=B4($,Z,X?.having,J,z),D=B?T(P(" having "),B):P(""),j=f2($,Z,X?.orderBy,J,z),C=j?T(P(" order by "),j):P(""),R=X?.take!==void 0||X?.skip!==void 0?B0($,Z,X,z,[]).clause:P(""),S=T(P("select "),W,Y,H,M,D,C,R),{text:K,binders:L}=m(S,z,{model:$.name,operation:Z});return{text:K,bind:n(L),shape(U){return U.map((N)=>{let O={};for(let F of V){if(F.kind==="_count"&&F.as===W3){O._count=N0(F,N[F.alias],z);continue}let b=O[F.kind]??={};b[F.as]=N0(F,N[F.alias],z)}for(let F of J)O[F.field.name]=z.needsDecode(F.field)?z.decode(N[F.alias],F.field):N[F.alias];return O})}}}function b2($,Z){let X=$.field?Z.quoteIdent($.field.column):"*";return`${y0[$.kind]}(${X}) as ${Z.quoteIdent($.alias)}`}function q2($,Z,X){let z=typeof X==="string"?[X]:X;if(!Array.isArray(z))throw new _("by",$.name,Z,`Expected a field name or an array of them, got ${JSON.stringify(X)}.`);if(z.length===0)throw new _("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=[],V=new Set;for(let Y of z){if(typeof Y!=="string")throw new _("by",$.name,Z,`Expected field names, got ${JSON.stringify(Y)}.`);if(V.has(Y))continue;if(V.add(Y),Y in $.relations)throw new _(`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 B4($,Z,X,z,J,V=(Y)=>Y?.having){if(X===void 0||X===null)return null;if(typeof X!=="object"||Array.isArray(X))throw new _("having",$.name,Z,"Expected an object of field filters.");let Y=X,G=[];for(let H of Object.keys(Y).sort()){let W=Y[H];if(W===void 0)continue;if(H==="AND"||H==="OR"||H==="NOT"){let D=E2($,Z,H,W,z,J,V);if(D)G.push(D);continue}let M=w2(W),B=x2($,Z,H,z,M);if(M){v2($,Z,H,W);for(let D of t){let j=W[D];if(j===void 0)continue;M3($,Z,D,B),G.push(M4(`${y0[D]}(${J.quoteIdent(B.column)})`,j,$,Z,`having.${H}.${D}`,(C)=>V(C)?.[H]?.[D],J))}continue}G.push(M4(J.quoteIdent(B.column),W,$,Z,`having.${H}`,(D)=>V(D)?.[H],J))}if(G.length===0)return null;return G.length===1?G[0]:T(P("("),E(G," and "),P(")"))}function E2($,Z,X,z,J,V,Y){let G=Array.isArray(z)?z:[z],H=[];for(let M=0;M<G.length;M++){let B=Array.isArray(z)?(j)=>Y(j)?.[X]?.[M]:(j)=>Y(j)?.[X],D=B4($,Z,G[M],J,V,B);if(D)H.push(D)}if(H.length===0)return X==="OR"?P("false"):null;let W=H.length===1?H[0]:T(P("("),E(H,X==="OR"?" or ":" and "),P(")"));return X==="NOT"?T(P("not ("),W,P(")")):W}function w2($){if(typeof $!=="object"||$===null||Array.isArray($))return!1;return t.some((Z)=>(Z in $))}function x2($,Z,X,z,J){let V=u0($,Z,"_count",X);if(J)return V;if(z.some((Y)=>Y.field.name===V.name))return V;throw new _(`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 v2($,Z,X,z){let J=Object.keys(z).filter((V)=>!t.includes(V));if(J.length===0)return;throw new _(`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 D4={equals:"=",not:"<>",lt:"<",lte:"<=",gt:">",gte:">="},k2=D4;function M4($,Z,X,z,J,V,Y){if(typeof Z!=="object"||Z===null||Z instanceof Date)return T(P(`${$} = `),s((W)=>Y.encodeUntyped(V(W))));let G=Z,H=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;let B=k2[W];if(!B)throw new _(`${J}.${W}`,X.name,z,`A 'having' filter takes ${Object.keys(D4).sort().join(", ")}.`);if(M===null){H.push(P(`${$} is ${W==="not"?"not ":""}null`));continue}H.push(T(P(`${$} ${B} `),s((D)=>Y.encodeUntyped(V(D)?.[W]))))}if(H.length===0)return P("true");return H.length===1?H[0]:T(P("("),E(H," and "),P(")"))}function f2($,Z,X,z,J){if(X===void 0||X===null)return null;let V=Array.isArray(X)?X:[X],Y=[];for(let G of V){if(typeof G!=="object"||G===null)throw new _("orderBy",$.name,Z,"Expected an object of fields, or an array of them.");for(let H of Object.keys(G)){let W=G[H];if(W===void 0)continue;if(t.includes(H)){Y.push(...g2($,Z,H,W,J));continue}let M=$.fields[H];if(!M)throw new k(H,$.name,Object.keys($.fields));if(!z.some((B)=>B.field.name===M.name))throw new _(`orderBy.${H}`,$.name,Z,`'${H}' 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)} ${Q3($,Z,H,W)}`)}}if(Y.length===0)return null;return P(Y.join(", "))}function g2($,Z,X,z,J){if(typeof z!=="object"||z===null||Array.isArray(z))throw new _(`orderBy.${X}`,$.name,Z,"Expected an object of fields.");let V=[],Y=z;for(let G of Object.keys(Y)){let H=Y[G];if(H===void 0)continue;if(X==="_count"&&G==="_all"){V.push(`count(*) ${Q3($,Z,`${X}._all`,H)}`);continue}let W=u0($,Z,X,G);M3($,Z,X,W),V.push(`${y0[X]}(${J.quoteIdent(W.column)}) ${Q3($,Z,`${X}.${G}`,H)}`)}return V}function Q3($,Z,X,z){if(z==="asc"||z==="desc")return z;if(typeof z==="object"&&z!==null&&!Array.isArray(z)){let{sort:J,nulls:V}=z,Y=Q3($,Z,X,J);if(V===void 0)return Y;if(V!=="first"&&V!=="last")throw new _(`orderBy.${X}.nulls`,$.name,Z,`Expected 'first' or 'last', got ${JSON.stringify(V)}.`);return`${Y} nulls ${V}`}throw new _(`orderBy.${X}`,$.name,Z,`Expected 'asc', 'desc', or { sort, nulls }, got ${JSON.stringify(z)}.`)}function y2($,Z,X){if(X===void 0||X===null||typeof X!=="object")throw new _("by",$.name,Z,"groupBy requires 'by'.");for(let z of Object.keys(X).sort()){if(X[z]===void 0)continue;if(W4.has(z))continue;throw new _(z,$.name,Z,`${Z} takes ${[...W4].sort().join(", ")}.`)}if(X.by===void 0)throw new _("by",$.name,Z,"groupBy requires 'by'.")}function R5($,Z,X,z,J){if(p3(Z))return h0($,Z,X,z);if(L5(Z))return T5($,Z,X,z);if(U9(Z))return i3($,Z,X,z,J);if(o9(Z))return P5($,Z,X,z);throw new _(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 P4=1000,z0=new Map,I5=0,U5=0,N5=0,h2=new Set(["orderBy","select","omit","include","distinct","mode","_count","_avg","_sum","_min","_max","skipDuplicates","by"]),u2=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 V=f($);if(V)return`jsonNull:${V}`;if(Array.isArray($))return`[${$.map((G)=>J0(G,Z,X,z)).join(",")}]`;return`{${Object.entries($).filter(([,G])=>G!==void 0).sort(([G],[H])=>G<H?-1:G>H?1:0).map(([G,H])=>`${G}:${c2(G,H,Z,X,z)}`).join(",")}}`}var m2=new Set(["in","notIn","hasEvery","hasSome","push","path","has_some_keys","has_every_key"]),p2="$compositeIn";function j4($){return $.length===0?"[]":"[*]"}var d2=new Set(["where","cursor","data"]);function c2($,Z,X,z,J){if($==="take"&&typeof Z==="number")return`number:${Math.sign(Z)}`;if($==="skip"&&typeof Z==="number")return"number";if(z&&m2.has($)&&Array.isArray(Z)){if($!=="path"||Z.every((V)=>typeof V==="string"))return j4(Z)}if($===p2){let V=Z;return J0(z?{fields:V.fields,values:j4(V.values)}:Z,!0,z)}if(($==="disconnect"||$==="delete")&&typeof Z==="boolean")return JSON.stringify(Z);if(d2.has($))return J0(Z,!1,z,J);if($==="having")return J0(Z,!1,z,!0);if(J&&u2.has($))return J0(Z,!1,z,!0);return J0(Z,X||h2.has($),z,J)}function _4($,Z,X,z,J="batched"){return`${$.name}:${J}:${Z}:${X}:${J0(z,!1,$.bindsListAsOneParameter)}${i2(z)}${s2(z)}`}function s2($){if($===null||typeof $!=="object")return"";let Z=$.skipIfUnchanged;return Z===void 0?"":`:skipIfUnchanged=${String(Z)}`}function i2($){if($===null||typeof $!=="object")return"";let Z=$.lock;return Z===void 0?"":`:lock=${J0(Z,!0)}`}function i0($,Z,X,z,J){let V=_4(z,$.name,Z,X,J?.name),Y=z0.get(V);if(Y)return U5++,z0.delete(V),z0.set(V,Y),Y;let G=R5($,Z,X,z,J);if(I5++,z0.size>=P4){let H=z0.keys().next();if(!H.done)z0.delete(H.value),N5++}return z0.set(V,G),G}function n2(){return{size:z0.size,compiles:I5,hits:U5,evictions:N5,capacity:P4}}function l2(){z0.clear(),I5=0,U5=0,N5=0}var K4=new WeakMap;function C3($,Z,X=_0()){let z={},J={},V=$;for(let Y of Object.keys(V)){if(!(Y in Z.fields))continue;z[Y]=V[Y]}for(let Y of Z.primaryKey)J[Y]=V[Y];K4.set($,{model:Z.name,connection:X,key:J,snapshot:z})}function K0($){if($===null||typeof $!=="object")return;return K4.get($)}function O5($,Z){let X=K0($);if(!X)return{};let z=$,J={};for(let V of Object.keys(X.snapshot))if(!r2(z[V],X.snapshot[V]))J[V]=z[V];return o2($,X,Z),J}function o2($,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 _(`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=K0($);if(!X)return;for(let z of Object.keys(Z))X.snapshot[z]=Z[z]}function Q4($,Z){let X=$===null||$===void 0?String($):Array.isArray($)?"an array":typeof $;return new _("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 t2($){return K0($)!==void 0}function r2($,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 a2($={}){let Z=$.field??"deletedAt";return Object.assign({scope:()=>({[Z]:null}),onCreate:(z,J)=>J,onUpdate:(z,J)=>J},{[R4]:Z})}function e2($,Z={}){let X=Z.field??"deletedAt";return(z)=>{return T4($,z,"delete"),$.update({...z,data:{[X]:new Date}})}}function $8($,Z={}){let X=Z.field??"deletedAt";return(z={})=>{return T4($,z,"deleteMany"),$.updateMany({...z,data:{[X]:new Date}})}}function T4($,Z,X){if(Z?.data===void 0)return;throw new _("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 R4=Symbol("gemi.orm.softDeletesField");function C4($){return $[R4]}function F5($,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 _("$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 L4=new Map;function Z8($,Z){let X=`${Z}:${$}`,z=L4.get(X);if(z!==void 0)return z;let J=Z==="hidden"?{[$]:null}:{[$]:{not:null}};return z=Object.freeze({scope:(V)=>V.operation==="upsert"?void 0:J,onCreate:(V,Y)=>Y,onUpdate:(V,Y)=>Y}),L4.set(X,z),z}function S5($,Z,X){if(Z===void 0)return $;let z=$.some((J)=>C4(J)===Z)?$.filter((J)=>C4(J)!==Z):$;if(X==="with")return z;return[Z8(Z,X==="only"?"only":"hidden"),...z]}var X8=new Set(["findFirstOrThrow","findUniqueOrThrow","update","delete"]);function n0($,Z){return h5($.sql,Z,{slowTransactionThreshold:$.config.slowTransactionThreshold,connection:$.name})}var I4=new WeakMap;class O3{constructor(){}static $schema;static $policies;static $skipNoopUpdates;static $connection;static on($){let Z=I4.get(this);if(Z===void 0)I4.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 g5($)}static asUser($,Z){return y5($,Z)}static $softDeletes;static withTrashed($){return N4(this,"with",$)}static onlyTrashed($){return N4(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=K0($);if(!X)throw Q4($,Z.name);if(X.model!==Z.name)throw new _("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 _("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 _("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=O5($,Z);if(Object.keys(J).length===0)return null;let V=await T3(X.connection,()=>this.$exec("update",{where:X.key,data:J}));if(V&&typeof V==="object"&&!Array.isArray(V)){let Y=V,G=$,H={};for(let W of Object.keys(Y)){if(!(W in Z.fields))continue;G[W]=Y[W],H[W]=Y[W]}L3($,H)}else L3($,J);return V}static wrap($){let Z=this.$modelSchema(),X=new this;return Object.assign(X,$),C3(X,Z,this.$connection??K0($)?.connection??_0()),X}save(){return this.constructor.save(this)}static $modelSchema(){let $=this.$schema;if(!$)throw new x0(this.name);return $}static async transaction($){let Z=this.$connection??_0();return n0(A5(q5).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=A5(q5).connection(_0()),V=u5(J.dialect),Y=l0()??J.sql;if(Z?.lock!==void 0&&B3[$]?.has("lock")&&l0()===void 0)throw new k5(z.name,$);let G=f5(),H=D0(z.name)?G0(z.name):void 0,W=x4(this,z,H),M=G?[]:F0(this),B=S5(M,W,this.$trashed??b5(z.name)),D,j=Z;if(!G){if(H!==void 0&&H!==this&&!z8(this,H)){let N=F0(H);if(M.length!==N.length||M.some((F,b)=>F!==N[b]))throw new x5(z.name,H.name??String(H),this.name,M.length>0?"queried":"registered")}}let C=S4(X);if(!C)j=w4(z,j,o0(),!1,(N)=>{if(!D0(N))return;let O=G0(N),F=O.$schema;if(!F)return;return{policies:S5(G?[]:F0(O),F5(O,F),b5(F.name)),schema:F}});if($==="upsert"&&!C&&W8(z,Z,$)){let{where:N,create:O,update:F,...b}=Z,A=F4({...X});return n0(J,async()=>{return await this.$exec("findFirst",{where:N},A)===null?await this.$exec("create",{data:O,...b},A):await this.$exec("update",{where:N,data:F,...b},A)})}if(B.length>0){if(D=U3(z.name,(C?q4(X):void 0)??$,o0(),G),!C)j=m5(B,D,j,b4(X))}let Q=n3(X?.strategy,V,{model:z.name,operation:$});if($==="createMany"&&Array.isArray(j?.data)){let N=G8(z,j,V,Q,$);if(N!==null)return n0(J,async()=>{let O=0;for(let F of N){let b=await this.$exec("createMany",{...j,data:F},Q0({strategy:X?.strategy}));O+=b.count}return{count:O}})}if(($==="update"||$==="updateMany")&&this.$skipNoopUpdates===!0&&j?.skipIfUnchanged===void 0&&!M8(X))j={...j,skipIfUnchanged:!0};let R=i0(z,$,j,V,Q),S={exec:(N,O,F,b,A)=>{let w=F4(b?Q0({strategy:X?.strategy}):{strategy:X?.strategy});return G0(N).$exec(O,F,A&&A.length>0?A4(w,A):w)},query:(N,O)=>Y.unsafe(N,O)},K=I0();if($==="delete"&&(R.relations!==void 0||R.counts)){let{where:N,...O}=j;return n0(J,async()=>{let F=await this.$exec("findFirst",{where:N,...O},E5(Q0({strategy:X?.strategy}),$));if(F===null)throw new r(z.name,$);return await this.$exec("delete",{where:N},Q0({strategy:X?.strategy})),F})}let L=async()=>{Y=l0()??Y,await O4(R.before,j,K,S,[]);let N=await Y8(Y,V,z,$,R.text,R.bind(j,K)),O=this.$shape(R,N);if(O===null&&$==="update"&&j?.skipIfUnchanged===!0){let{data:F,skipIfUnchanged:b,where:A,...w}=j,d=await this.$exec("findFirst",{where:A,...w},E5(Q0({strategy:X?.strategy,track:X?.track}),$));if(d===null)throw new r(z.name,$);return d}if(O===null&&X8.has($))throw new r(z.name,$);if(await O4(R.after,j,K,S,O0(O)),R.counts&&R.after!==void 0)await H8(z,this,j,O0(O),X);if(R.relations!==void 0)await H3(R.relations,R.hidden,O,j,S);else if(R.hidden!==void 0&&R.hidden.length>0)for(let F of O0(O))for(let b of R.hidden)delete F[b];if(R.relations!==void 0&&!G)for(let F of R.relations){if(F.root===void 0)continue;v4({as:F.as,model:F.model,folded:F.root.folded},O,E4,G)}if(D)N3(B,D,O);if(X?.track===!0)for(let F of O0(O))C3(F,z);return O};return R.before!==void 0&&R.before.length>0||R.after!==void 0&&R.after.length>0?n0(J,L):L()}static $shape($,Z){return $.shape(Z)}}function z8($,Z){return Object.getPrototypeOf($)===Z&&!Object.hasOwn($,"$policies")}var U4=new WeakMap;function N4($,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=U4.get($);if(J===void 0)U4.set($,J=new Map);let V=J.get(Z);if(V!==void 0)return V;let Y=class extends ${static $trashed=Z};return Object.defineProperty(Y,"name",{value:$.name,configurable:!0}),J.set(Z,Y),Y}function x4($,Z,X){let z=$.$softDeletes;return F5(z!==void 0||X===void 0?$:X,Z)}function I3($,Z){let X=$.$modelSchema(),z=x4($,X,D0(X.name)?G0(X.name):void 0);if(z===void 0)throw new _(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 O4($,Z,X,z,J){if($===void 0)return;for(let V of $)await V.run(Z,X,z,J)}var J8=G4(H4(),()=>new Date().getTimezoneOffset());async function Y8($,Z,X,z,J,V){let Y=J8(Z.name,X,J,V);if(Y)console.warn(Y);try{return await $.unsafe(J,V)}catch(G){let H=Z.constraintViolation(G);if(!H)throw G;throw new w5(X.name,z,V8(X,H.columns),H.constraint,{cause:G})}}function V8($,Z){return Z.map((X)=>{for(let z of Object.values($.fields))if(z.column===X)return z.name;return X})}async function H8($,Z,X,z,J){let V=X?.include?._count??X?.select?._count;if(V===void 0||z.length===0)return;for(let Y of z){let G={},H=$.primaryKey.length>0;for(let M of $.primaryKey){let B=Y[M];if(B===void 0){H=!1;break}G[M]=B}if(!H)continue;let W=await Z.$exec("findFirst",{where:G,select:{_count:V}},Q0({strategy:J?.strategy}));if(W&&W._count!==void 0)Y._count=W._count}}function O0($){if(Array.isArray($))return $;if($===null||$===void 0)return[];if(typeof $!=="object")return[];return[$]}function G8($,Z,X,z,J){let V=Z.data;if(V.length<2)return null;try{return i0($,J,Z,X,z),null}catch(Y){if(!(Y instanceof v5))throw Y;let G={...Z,data:[V[0]]},H=i0($,J,G,X,z).bind(G,I0()).length;if(H===0||H>Y.limit)throw Y;let W=Math.floor(Y.limit/H),M=[];for(let B=0;B<V.length;B+=W)M.push(V.slice(B,B+W));return M}}function W8($,Z,X){try{let z=y($,Z?.where,{model:$.name,operation:X,argument:"where"});return _5($,Z,z).length>0}catch{return!1}}function v4($,Z,X,z){let J=D0($.model)?G0($.model):void 0,V=J?F0(J):[],Y=$.folded??[];if(V.length===0&&Y.length===0)return;let G=V.length>0?U3(J.$schema?.name??$.model,X,o0(),z):void 0,H=[];for(let W of O0(Z)){let M=W?.[$.as];if(M===void 0||M===null)continue;if(G)N3(V,G,M);if(Y.length>0)H.push(...O0(M))}for(let W of Y)v4(W,H,X,z)}var k4=Symbol("gemi.orm.issuedByTheOrm");function F4($){return{...$,[k4]:!0}}function M8($){return typeof $==="object"&&$!==null&&$[k4]===!0}class f4 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 B8=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 g4=($,Z,X)=>Math.min(Math.max($,Z),X);function D8($,Z={}){let X=Z.maxPerPage===1/0?1/0:Math.max(1,F3(Z.maxPerPage)??100),z=g4(F3(Z.perPage)??25,1,X),J=g4(F3($?.perPage)??z,1,X),V=Math.max(F3($?.page)??1,1),Y=Math.min((V-1)*J,B8);return{take:J,skip:Y}}export{h5 as withTransaction,u8 as unsafeSql,S8 as transactionDepth,C3 as track,v0 as strategiesOf,g8 as sql,a2 as softDeletes,$8 as softDeleteMany,e2 as softDelete,R7 as shaperCompilationAvailable,T7 as setShaperCompilation,y5 as runAsUser,g5 as runAsSystem,n3 as resolveStrategy,L3 as resnapshot,m8 as renderFragment,h3 as registry,n8 as registerModels,R8 as register,c8 as redactNullable,K0 as provenanceOf,U3 as policyContext,F0 as policiesFor,U0 as planRelations,_4 as planKey,n2 as planCacheStats,D8 as paginate,k8 as ormSupports,N8 as ormContext,m0 as lateralStrategy,f as jsonNullKind,y8 as join,_8 as isUniqueConstraintError,t2 as isTracked,f5 as isSystemScope,P8 as isRecordNotFoundError,v9 as isClientSideDefault,p0 as hasClientSideValue,i0 as getOrCompile,f8 as everyDialect,h8 as empty,u5 as dialectFor,w9 as defaultStrategy,o0 as currentUser,l0 as currentTransaction,A8 as currentActor,y9 as createUuid,g9 as createUlid,f9 as createNanoid,k9 as createCuid,I0 as createBindContext,P5 as compileWrite,i3 as compileRead,R5 as compile,a3 as clientSideValue,l2 as clearPlanCache,O5 as changedFields,J0 as canonicalShape,f0 as buildRowShaper,m3 as buildInterpretedShaper,W0 as batchedStrategy,i8 as auditModelRegistrations,H3 as attachRelations,u7 as assertSchemaArtifactVersion,s8 as assertPoliciesRegistered,N3 as applyRedaction,m5 as applyPolicies,O8 as afterCommit,_ as UnsupportedQueryError,v8 as UnsupportedDialectError,E0 as UnsupportedByDesignError,y3 as UnregisteredRelationTargetError,x5 as UnregisteredPolicyClassError,w0 as UnknownRelationError,k as UnknownFieldError,I8 as UnknownConnectionError,w5 as UniqueConstraintError,F8 as TransactionDependencyError,o3 as StaleSchemaArtifactError,x8 as SqliteDialect,d8 as ScopedPolicy,Q8 as ScopeEscapeError,h7 as SCHEMA_ARTIFACT_VERSION,D5 as ReturningUnsupportedError,g3 as RelationDepthExceededError,r as RecordNotFoundError,b8 as PostgresDialect,K8 as PolicyDeniedError,p8 as Policy,v5 as ParameterLimitError,T8 as ModelNotRegisteredError,O3 as Model,P3 as MissingRequiredValueError,x0 as MissingModelSchemaError,p as MalformedRelationError,V3 as MAX_RELATION_DEPTH,k5 as LockOutsideTransactionError,E8 as JsonNull,C8 as InvalidPolicyEntryError,I as InvalidArgumentError,j8 as DecodeError,q8 as DbNull,U8 as CrossConnectionTransactionError,w8 as AnyNull,L8 as AmbiguousModelRegistrationError,f4 as ActiveRecordModel};
12
12
 
13
- //# debugId=5C65A6EC671E688364756E2164756E21
13
+ //# debugId=8A3F79480C6E934D64756E2164756E21