gemi 0.156.0 → 0.157.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/Agent.d.ts.map +1 -1
- package/dist/ai/ImageModel.d.ts +2 -0
- package/dist/ai/ImageModel.d.ts.map +1 -1
- package/dist/ai/eval/Eval.d.ts +333 -0
- package/dist/ai/eval/Eval.d.ts.map +1 -0
- package/dist/ai/eval/stats.d.ts +70 -0
- package/dist/ai/eval/stats.d.ts.map +1 -0
- package/dist/ai/generate.d.ts.map +1 -1
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +27 -26
- package/dist/ai/index.js.map +6 -4
- package/dist/ai/usageMeter.d.ts +23 -0
- package/dist/ai/usageMeter.d.ts.map +1 -0
- package/dist/app/index.js +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-rb7518zz.js → chunk-00z7s34q.js} +2 -2
- package/dist/{chunk-rb7518zz.js.map → chunk-00z7s34q.js.map} +1 -1
- package/dist/{chunk-2r2j2nvq.js → chunk-0v3bca8k.js} +3 -3
- package/dist/{chunk-2r2j2nvq.js.map → chunk-0v3bca8k.js.map} +1 -1
- package/dist/{chunk-4y74s15p.js → chunk-0vc2akg0.js} +1 -1
- package/dist/{chunk-877yc341.js → chunk-0yjm936b.js} +3 -3
- package/dist/{chunk-877yc341.js.map → chunk-0yjm936b.js.map} +1 -1
- package/dist/{chunk-a8n9ec43.js → chunk-159j20yr.js} +2 -2
- package/dist/{chunk-a8n9ec43.js.map → chunk-159j20yr.js.map} +1 -1
- package/dist/{chunk-3csz8pfk.js → chunk-1de3awrh.js} +3 -3
- package/dist/{chunk-3csz8pfk.js.map → chunk-1de3awrh.js.map} +1 -1
- package/dist/{chunk-3nf0nmpp.js → chunk-38kjpa6q.js} +1 -1
- package/dist/{chunk-afaff2se.js → chunk-3ndc8adc.js} +2 -2
- package/dist/{chunk-afaff2se.js.map → chunk-3ndc8adc.js.map} +1 -1
- package/dist/{chunk-z38m1nh5.js → chunk-3t4nw1n2.js} +2 -2
- package/dist/{chunk-z38m1nh5.js.map → chunk-3t4nw1n2.js.map} +1 -1
- package/dist/{chunk-rnd8s0n5.js → chunk-42646nt7.js} +2 -2
- package/dist/{chunk-rnd8s0n5.js.map → chunk-42646nt7.js.map} +1 -1
- package/dist/{chunk-9xyd5r54.js → chunk-4t2j3zcg.js} +2 -2
- package/dist/{chunk-9xyd5r54.js.map → chunk-4t2j3zcg.js.map} +1 -1
- package/dist/{chunk-hh5bs656.js → chunk-4vnrnbn3.js} +3 -3
- package/dist/{chunk-hh5bs656.js.map → chunk-4vnrnbn3.js.map} +1 -1
- package/dist/{chunk-m5f6ksqe.js → chunk-517fjfme.js} +3 -3
- package/dist/{chunk-m5f6ksqe.js.map → chunk-517fjfme.js.map} +1 -1
- package/dist/{chunk-wckbrbzx.js → chunk-56a3vnrj.js} +2 -2
- package/dist/{chunk-wckbrbzx.js.map → chunk-56a3vnrj.js.map} +1 -1
- package/dist/{chunk-ja1289jh.js → chunk-5zxxd7qp.js} +1 -1
- package/dist/{chunk-4ptz62pz.js → chunk-69c2s43a.js} +2 -2
- package/dist/{chunk-4ptz62pz.js.map → chunk-69c2s43a.js.map} +1 -1
- package/dist/chunk-6np1r9gk.js +5 -0
- package/dist/{chunk-49s8wwp2.js.map → chunk-6np1r9gk.js.map} +1 -1
- package/dist/{chunk-bstn00nx.js → chunk-72f6pbap.js} +2 -2
- package/dist/{chunk-bstn00nx.js.map → chunk-72f6pbap.js.map} +1 -1
- package/dist/{chunk-0mgswwbj.js → chunk-7426gfgw.js} +2 -2
- package/dist/{chunk-0mgswwbj.js.map → chunk-7426gfgw.js.map} +1 -1
- package/dist/{chunk-baj76zja.js → chunk-78wht1ph.js} +2 -2
- package/dist/{chunk-baj76zja.js.map → chunk-78wht1ph.js.map} +1 -1
- package/dist/{chunk-mzkzgp2j.js → chunk-7yww9aq7.js} +2 -2
- package/dist/{chunk-mzkzgp2j.js.map → chunk-7yww9aq7.js.map} +1 -1
- package/dist/{chunk-djyx6eyh.js → chunk-7zy6nq9e.js} +2 -2
- package/dist/{chunk-djyx6eyh.js.map → chunk-7zy6nq9e.js.map} +1 -1
- package/dist/{chunk-w6jff43c.js → chunk-8eyxj78g.js} +3 -3
- package/dist/{chunk-w6jff43c.js.map → chunk-8eyxj78g.js.map} +1 -1
- package/dist/{chunk-twrf6d08.js → chunk-986eh0n3.js} +2 -2
- package/dist/{chunk-twrf6d08.js.map → chunk-986eh0n3.js.map} +1 -1
- package/dist/{chunk-mv1rs9he.js → chunk-9gt9qdge.js} +1 -1
- package/dist/{chunk-v9z4x5j2.js → chunk-9kyfaeey.js} +2 -2
- package/dist/{chunk-v9z4x5j2.js.map → chunk-9kyfaeey.js.map} +1 -1
- package/dist/{chunk-198ywkt2.js → chunk-9md6acv2.js} +1 -1
- package/dist/{chunk-6tkkvaqg.js → chunk-ah2jy1vx.js} +2 -2
- package/dist/{chunk-6tkkvaqg.js.map → chunk-ah2jy1vx.js.map} +1 -1
- package/dist/{chunk-xv58jnpb.js → chunk-aq5zx3vg.js} +2 -2
- package/dist/{chunk-xv58jnpb.js.map → chunk-aq5zx3vg.js.map} +1 -1
- package/dist/{chunk-tdvjrftz.js → chunk-cmt3jw6j.js} +2 -2
- package/dist/{chunk-tdvjrftz.js.map → chunk-cmt3jw6j.js.map} +1 -1
- package/dist/{chunk-v1460k0a.js → chunk-ctrae98c.js} +2 -2
- package/dist/{chunk-v1460k0a.js.map → chunk-ctrae98c.js.map} +1 -1
- package/dist/{chunk-0hqg6ema.js → chunk-dce3w52r.js} +2 -2
- package/dist/{chunk-0hqg6ema.js.map → chunk-dce3w52r.js.map} +1 -1
- package/dist/{chunk-403b2rfp.js → chunk-dhq7zv0t.js} +2 -2
- package/dist/{chunk-403b2rfp.js.map → chunk-dhq7zv0t.js.map} +1 -1
- package/dist/{chunk-rq8b8pr5.js → chunk-exb35whf.js} +2 -2
- package/dist/{chunk-rq8b8pr5.js.map → chunk-exb35whf.js.map} +1 -1
- package/dist/{chunk-73rzf7ys.js → chunk-fe12f946.js} +2 -2
- package/dist/{chunk-73rzf7ys.js.map → chunk-fe12f946.js.map} +1 -1
- package/dist/{chunk-nh01ncyy.js → chunk-g5d62d1n.js} +2 -2
- package/dist/{chunk-nh01ncyy.js.map → chunk-g5d62d1n.js.map} +1 -1
- package/dist/{chunk-ydkv9e8w.js → chunk-h3gcxf2k.js} +3 -3
- package/dist/{chunk-ydkv9e8w.js.map → chunk-h3gcxf2k.js.map} +1 -1
- package/dist/{chunk-2t61pc8v.js → chunk-jrv31jp9.js} +2 -2
- package/dist/{chunk-2t61pc8v.js.map → chunk-jrv31jp9.js.map} +1 -1
- package/dist/{chunk-dewn1kmd.js → chunk-k1aw97dm.js} +2 -2
- package/dist/{chunk-dewn1kmd.js.map → chunk-k1aw97dm.js.map} +1 -1
- package/dist/{chunk-313593t3.js → chunk-kbdt84xg.js} +2 -2
- package/dist/{chunk-313593t3.js.map → chunk-kbdt84xg.js.map} +1 -1
- package/dist/{chunk-vfwpbveq.js → chunk-kwc68y45.js} +2 -2
- package/dist/{chunk-vfwpbveq.js.map → chunk-kwc68y45.js.map} +1 -1
- package/dist/{chunk-86zhngpg.js → chunk-n95dppzm.js} +2 -2
- package/dist/{chunk-86zhngpg.js.map → chunk-n95dppzm.js.map} +1 -1
- package/dist/{chunk-apga49vp.js → chunk-nvhbkqmd.js} +2 -2
- package/dist/{chunk-apga49vp.js.map → chunk-nvhbkqmd.js.map} +1 -1
- package/dist/{chunk-qned028z.js → chunk-p2c72zx3.js} +2 -2
- package/dist/{chunk-qned028z.js.map → chunk-p2c72zx3.js.map} +1 -1
- package/dist/{chunk-0t531zdt.js → chunk-p83cjehh.js} +2 -2
- package/dist/{chunk-0t531zdt.js.map → chunk-p83cjehh.js.map} +1 -1
- package/dist/{chunk-wf4kywta.js → chunk-pgdxqrjv.js} +3 -3
- package/dist/{chunk-wf4kywta.js.map → chunk-pgdxqrjv.js.map} +1 -1
- package/dist/{chunk-f4hx69cr.js → chunk-pw5h5935.js} +2 -2
- package/dist/{chunk-f4hx69cr.js.map → chunk-pw5h5935.js.map} +1 -1
- package/dist/{chunk-4d4td4k9.js → chunk-px3ctjxh.js} +2 -2
- package/dist/{chunk-4d4td4k9.js.map → chunk-px3ctjxh.js.map} +1 -1
- package/dist/{chunk-5gq41j99.js → chunk-q3e1bqrs.js} +3 -3
- package/dist/{chunk-5gq41j99.js.map → chunk-q3e1bqrs.js.map} +1 -1
- package/dist/{chunk-c94a3qsx.js → chunk-q7k2hc45.js} +2 -2
- package/dist/{chunk-c94a3qsx.js.map → chunk-q7k2hc45.js.map} +1 -1
- package/dist/{chunk-41bvpent.js → chunk-qbvm5q1g.js} +1 -1
- package/dist/{chunk-7j8x62yb.js → chunk-qvngsa1c.js} +2 -2
- package/dist/{chunk-7j8x62yb.js.map → chunk-qvngsa1c.js.map} +1 -1
- package/dist/{chunk-g8sh9btf.js → chunk-r5y2khw4.js} +2 -2
- package/dist/{chunk-g8sh9btf.js.map → chunk-r5y2khw4.js.map} +1 -1
- package/dist/{chunk-1a11x8ww.js → chunk-rrz2ry81.js} +2 -2
- package/dist/{chunk-1a11x8ww.js.map → chunk-rrz2ry81.js.map} +1 -1
- package/dist/{chunk-e9z8p2fy.js → chunk-rtv4ax8z.js} +2 -2
- package/dist/{chunk-e9z8p2fy.js.map → chunk-rtv4ax8z.js.map} +1 -1
- package/dist/{chunk-gmsst3fx.js → chunk-set6qmjw.js} +2 -2
- package/dist/{chunk-gmsst3fx.js.map → chunk-set6qmjw.js.map} +1 -1
- package/dist/{chunk-sbzqxtqg.js → chunk-ss3yn4g2.js} +3 -3
- package/dist/{chunk-sbzqxtqg.js.map → chunk-ss3yn4g2.js.map} +1 -1
- package/dist/{chunk-fe9fvtvt.js → chunk-t66ex43f.js} +4 -4
- package/dist/{chunk-fe9fvtvt.js.map → chunk-t66ex43f.js.map} +1 -1
- package/dist/{chunk-rv751mxq.js → chunk-t7yt8egz.js} +2 -2
- package/dist/{chunk-rv751mxq.js.map → chunk-t7yt8egz.js.map} +1 -1
- package/dist/{chunk-rnegd7ya.js → chunk-tr8se94g.js} +3 -3
- package/dist/{chunk-rnegd7ya.js.map → chunk-tr8se94g.js.map} +1 -1
- package/dist/{chunk-1fyn63ka.js → chunk-tzheb6ak.js} +3 -3
- package/dist/{chunk-1fyn63ka.js.map → chunk-tzheb6ak.js.map} +1 -1
- package/dist/{chunk-h0kyymhv.js → chunk-v10xzpqs.js} +2 -2
- package/dist/{chunk-h0kyymhv.js.map → chunk-v10xzpqs.js.map} +1 -1
- package/dist/{chunk-30gw44g9.js → chunk-vp6t1gmt.js} +2 -2
- package/dist/{chunk-30gw44g9.js.map → chunk-vp6t1gmt.js.map} +1 -1
- package/dist/{chunk-2b3hh9xw.js → chunk-wbv6218d.js} +3 -3
- package/dist/{chunk-2b3hh9xw.js.map → chunk-wbv6218d.js.map} +1 -1
- package/dist/{chunk-mp3ecfnh.js → chunk-wg0ttent.js} +2 -2
- package/dist/{chunk-mp3ecfnh.js.map → chunk-wg0ttent.js.map} +1 -1
- package/dist/{chunk-7jnawtcm.js → chunk-wnjvfmqc.js} +2 -2
- package/dist/{chunk-7jnawtcm.js.map → chunk-wnjvfmqc.js.map} +1 -1
- package/dist/{chunk-nhhnkv0e.js → chunk-x82f3q6a.js} +4 -4
- package/dist/{chunk-nhhnkv0e.js.map → chunk-x82f3q6a.js.map} +1 -1
- package/dist/{chunk-mr3szvr3.js → chunk-xff7tkde.js} +2 -2
- package/dist/{chunk-mr3szvr3.js.map → chunk-xff7tkde.js.map} +1 -1
- package/dist/{chunk-y959p390.js → chunk-xp5axyb5.js} +15 -15
- package/dist/chunk-xp5axyb5.js.map +28 -0
- package/dist/{chunk-2x6cv37t.js → chunk-xtqd9vpp.js} +2 -2
- package/dist/{chunk-2x6cv37t.js.map → chunk-xtqd9vpp.js.map} +1 -1
- package/dist/{chunk-cee5gq7t.js → chunk-xyyq577r.js} +2 -2
- package/dist/{chunk-cee5gq7t.js.map → chunk-xyyq577r.js.map} +1 -1
- package/dist/{chunk-eqv7yxk7.js → chunk-ycn7w2e9.js} +2 -2
- package/dist/{chunk-eqv7yxk7.js.map → chunk-ycn7w2e9.js.map} +1 -1
- package/dist/{chunk-0fjn202c.js → chunk-yewj83ez.js} +3 -3
- package/dist/{chunk-0fjn202c.js.map → chunk-yewj83ez.js.map} +1 -1
- package/dist/{chunk-2ery6a75.js → chunk-yzsyg1f7.js} +3 -3
- package/dist/{chunk-2ery6a75.js.map → chunk-yzsyg1f7.js.map} +1 -1
- package/dist/{chunk-jgpbr2k1.js → chunk-z7224rhm.js} +2 -2
- package/dist/{chunk-jgpbr2k1.js.map → chunk-z7224rhm.js.map} +1 -1
- package/dist/{chunk-attr793y.js → chunk-zcg6m7gf.js} +2 -2
- package/dist/{chunk-attr793y.js.map → chunk-zcg6m7gf.js.map} +1 -1
- package/dist/{chunk-yhgt9dxj.js → chunk-zfbqgzwa.js} +2 -2
- package/dist/{chunk-yhgt9dxj.js.map → chunk-zfbqgzwa.js.map} +1 -1
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +1 -1
- package/dist/container/index.js +2 -2
- package/dist/container/index.js.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +2 -2
- package/dist/i18n/dictionaryRuntime.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +1 -1
- package/dist/orm/index.js +2 -2
- package/dist/orm/index.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +1 -1
- package/dist/stats/route-table.js +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/vitest/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-49s8wwp2.js +0 -5
- package/dist/chunk-y959p390.js.map +0 -27
- /package/dist/{chunk-4y74s15p.js.map → chunk-0vc2akg0.js.map} +0 -0
- /package/dist/{chunk-3nf0nmpp.js.map → chunk-38kjpa6q.js.map} +0 -0
- /package/dist/{chunk-ja1289jh.js.map → chunk-5zxxd7qp.js.map} +0 -0
- /package/dist/{chunk-mv1rs9he.js.map → chunk-9gt9qdge.js.map} +0 -0
- /package/dist/{chunk-198ywkt2.js.map → chunk-9md6acv2.js.map} +0 -0
- /package/dist/{chunk-41bvpent.js.map → chunk-qbvm5q1g.js.map} +0 -0
package/dist/orm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ba as A6}from"../chunk-rb7518zz.js";import{$a as O6,Fa as z9,Ga as J9,Ha as n,Ia as b9,Ja as S3,Ka as R6,La as I6,Ma as q0,Na as a5,Oa as b3,Pa as U6,Qa as $3,Ra as I0,Sa as e4,Ta as $7,Ua as Z7,Va as p5,Wa as X7,Xa as z7,Ya as J7,Za as N6,_a as F6}from"../chunk-1a11x8ww.js";import{$g as Q6,ah as _6,bh as C6,ch as L6,dh as T6}from"../chunk-hh5bs656.js";import{eh as A0,fh as o,gh as j,hh as i,kh as R,lh as x,mh as d,nh as W6,oh as M6,ph as X5,qh as B6,rh as h3,sh as k,th as D6,uh as P6,vh as j6,wh as K6,xh as r5}from"../chunk-3csz8pfk.js";import"../chunk-a8n9ec43.js";import{$i as e8,aj as a,bj as l,cj as C9,dj as B3,fj as V6,gj as G6,lj as l4,mj as o4,nj as t4,oj as r4,pj as a4}from"../chunk-sbzqxtqg.js";import{Aj as l8,Cj as o8,Dj as c5,Ej as t8,Fj as r8,Gj as s5,Hj as L3,Ij as f0,Jj as p3,Kj as d3,Lj as c,Mj as a8,Nj as g0,Oj as i5,qj as K,rj as T,sj as k0,tj as g,uj as s8,vj as $0,wj as i8,xj as d5,yj as n8,zj as _5}from"../chunk-xv58jnpb.js";import{$j as z6,Vj as X6,Wj as e0,Xj as T0,Yj as F3,bk as J6,ck as Y6,dk as n5,ek as l5,fk as u5,gk as O3,hk as H6,ik as o5,jk as t5}from"../chunk-2ery6a75.js";import{uk as $6,wk as Z6,yk as m5}from"../chunk-73rzf7ys.js";import{Yk as h5}from"../chunk-1fyn63ka.js";import"../chunk-e9z8p2fy.js";import"../chunk-baj76zja.js";function N0($,Z,X,z,J,Y){let H=X0($,Z),G=B0($,H,Z,Y),V=X.quoteIdent(z),W=`${V}.`,M=G.parentFields.map((L,C)=>{let F=`${W}${X.quoteIdent(Z3(H,Z,G.childFields[C]))}`,N=`${J}${X.quoteIdent(Z3($,Z,L))}`;return`${F} = ${N}`}).join(" and ");if(!G.join)return{child:H,source:`${X.quoteIdent(H.table)} as ${V}`,correlation:M,qualifier:W};let B=`${W}${X.quoteIdent(Z3(H,Z,G.childFields[0]))}`,D=`${J}${X.quoteIdent(Z3($,Z,G.parentFields[0]))}`,P=X.quoteIdent(`${z}j`);return{child:H,source:`${X.quoteIdent(H.table)} as ${V} join ${X.quoteIdent(G.join.table)} as ${P} on ${P}.${X.quoteIdent(G.join.childColumn)} = ${B}`,correlation:`${P}.${X.quoteIdent(G.join.parentColumn)} = ${D}`,qualifier:W}}function Z3($,Z,X){let z=$.fields[X];if(!z)throw new c($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function u($,Z,X){let z=X3($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw Z9($,X,z);let J=Object.keys(Z).filter((H)=>Z[H]!==void 0),Y=Z;for(let H of z){if(H.length===1&&J.includes(H[0]))return $9($,X,H[0],Y[H[0]]),H;let G=H.join("_");if(H.length>1&&J.includes(G)){let V=Y[G];if(V&&typeof V==="object"&&!Array.isArray(V))for(let W of H)$9($,X,`${G}.${W}`,V[W]);return H}}throw Z9($,X,z)}function x3($){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 $9($,Z,X,z){if(z===void 0||x3(z))return;throw new T(`${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 v3($,Z,X){u($,Z,{model:$.name,operation:X,argument:"where"})}function X3($){let Z=[];if($.primaryKey.length>0)Z.push($.primaryKey);for(let X of $.uniques)Z.push(X);return Z}function Z9($,Z,X){let z=X.map((H)=>H.length===1?H[0]:H.join("_")).join(", "),Y=Z.argument.startsWith("data.")?`Name it by one of those, or reach it through the ${$.name} model directly.`:`Use ${Z.operation==="delete"||Z.operation==="update"?`${Z.operation}Many`:"findFirst"} to query on anything else.`;return new K(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${Y}`)}function y($,Z,X){let z=Z.castParameter($);if(!z)return i(X);return i((J,Y)=>{let H=X(J,Y);if(H===null||H===void 0)return null;let G=k(H);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(H)},z)}function f($,Z,X,z){if(Z===void 0||Z===null)return null;if(typeof Z!=="object"||Array.isArray(Z))throw new T("where",$.name,X.operation,"Expected an object.");let J=[];for(let Y of Object.keys(Z).sort()){let H=Z[Y];if(H===void 0)continue;let G=(W)=>z(W)?.[Y];if(Y==="AND"||Y==="OR"){let W=X9($,H,X,G,Y);if(W)J.push(W);continue}if(Y===z0){J.push(j7($,H,X,G));continue}if(Y==="NOT"){let W=X9($,H,X,G,"AND");if(W)J.push(R(j("not "),w0(W)));continue}if(Y in $.relations){let W=B7($,$.relations[Y],H,X,G);if(W)J.push(W);continue}let V=$.fields[Y];if(!V){let W=P7($,Y,H,X,G);if(W){J.push(W);continue}throw new g(Y,$.name,Object.keys($.fields))}J.push(u3($,V,H,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return t(J," and ")}function B7($,Z,X,z,J){let Y=z9(Z.kind),H=D7($,Z,X,Y,z),G=z.relationDepth??0,V=z.dialect,W=z.qualifier??`${V.quoteIdent($.table)}.`,M=N0($,Z,V,`_r${G}`,W,z.operation),B=M.child,D=j(M.correlation),P={...z,qualifier:M.qualifier,relationDepth:G+1},L=[];for(let C of Y){if(!(C in H))continue;let F=H[C],N=(I)=>H.direct?J(I):J(I)?.[C];if(F===null){L.push(k3(M,D,null,C==="is"));continue}let _=f(B,F,P,N);if(C==="every"){if(!_)continue;L.push(k3(M,D,R(j("not "),w0(_)),!0));continue}let Q=C==="none"||C==="isNot";L.push(k3(M,D,_,Q))}if(L.length===0)return null;if(L.length===1)return L[0];return t(L," and ")}function k3($,Z,X,z){let J=[j(`${z?"not ":""}exists (select 1 from ${$.source} where `),Z];if(X)J.push(j(" and "),X);return J.push(j(")")),R(...J)}function D7($,Z,X,z,J){let Y=`where.${Z.name}`,H=Z.kind==="many";if(X===null){if(H)throw new K(Y,$.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 T(Y,$.name,J.operation,H?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(J9(X,z))return X;if(H)throw new K(Y,$.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 P7($,Z,X,z,J){let Y=X3($).find((V)=>V.length>1&&V.join("_")===Z);if(!Y)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new T(`where.${Z}`,$.name,z.operation,`Expected an object holding ${Y.join(" and ")}.`);let H=X,G=[];for(let V of Y){if(H[V]===void 0)throw new K(`where.${Z}`,$.name,z.operation,`Missing '${V}'. A composite key needs all of ${Y.join(", ")}.`);if(!x3(H[V]))throw new T(`where.${Z}.${V}`,$.name,z.operation,`A composite key takes a plain value for each of ${Y.join(", ")}, not a filter, an array or null.`);G.push(u3($,$.fields[V],H[V],z,(W)=>J(W)?.[V]))}return G.length===1?G[0]:t(G," and ")}function X9($,Z,X,z,J){let Y=[];if(Array.isArray(Z))for(let H=0;H<Z.length;H++){let G=f($,Z[H],X,(V)=>z(V)?.[H]);if(G)Y.push(G)}else{let H=f($,Z,X,z);if(H)Y.push(H)}if(Y.length===0)return J==="AND"?null:Y9;if(Y.length===1)return Y[0];return t(Y,J==="AND"?" and ":" or ")}var Y9=j("false");function t($,Z){return R(j("("),x($,Z),j(")"))}function w0($){return $.text.startsWith("(")?$:t([$],"")}var y3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),H9={lt:"<",lte:"<=",gt:">",gte:">="},z0="$compositeIn",V9=Symbol("gemi.orm.compositeInFromPlanner");function G9($,Z){return{[V9]:!0,fields:$,values:Z}}function j7($,Z,X,z){let{dialect:J}=X,H=K7($,Z,X).map((V)=>{let W=$.fields[V];if(!W)throw new g(V,$.name,Object.keys($.fields));return W}),G=H.map((V)=>`${X.qualifier??""}${J.quoteIdent(V.column)}`);return J.compositeIn(G,H.map((V)=>V.type),(V)=>z(V).values)}function K7($,Z,X){let z=()=>{throw new g(z0,$.name,Object.keys($.fields))};if(typeof Z!=="object"||Z===null||Array.isArray(Z))return z();if(Z[V9]!==!0)return z();let J=(G)=>{throw new K(z0,$.name,X.operation,G)},{fields:Y,values:H}=Z;if(!Array.isArray(Y)||Y.length===0)return J(`the planner built a '${z0}' with no fields.`);if(!Y.every((G)=>typeof G==="string"))return J(`the planner built a '${z0}' with a non-string field.`);if(!Array.isArray(H))return J(`the planner built a '${z0}' with no values.`);if(!H.every((G)=>Array.isArray(G)&&G.length===Y.length))return J(`the planner built a '${z0}' whose tuples do not all have ${Y.length} value(s).`);return Y}var Q7=["equals","has","hasEvery","hasSome","isEmpty"],f3=new Set(Q7);function _7($,Z,X,z,J,Y){let{dialect:H}=J;if(O0($,Z,`where.${Z.name}`,J.operation,H),Array.isArray(z))throw new T(`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(!m3(z))throw new T(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list. Expected an object holding ${[...f3].sort().join(", ")}; received ${z===null?"null":typeof z}.`);let G=z,V=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;if(!f3.has(W))throw new T(`where.${Z.name}.${W}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a list filter takes ${[...f3].sort().join(", ")}. The scalar operators \u2014 `+`${[...y3].sort().join(", ")} \u2014 apply to a single value and `+"Prisma does not offer them here.");let B=(D)=>Y(D)?.[W];V.push(C7($,Z,X,W,M,J,B))}if(V.length===0)return j("true");if(V.length===1)return V[0];return t(V," and ")}function C7($,Z,X,z,J,Y,H){let{dialect:G}=Y;if(z==="equals")return L7($,Z,X,J,Y,H);if(z==="isEmpty"){if(typeof J!=="boolean")throw new T(`where.${Z.name}.isEmpty`,$.name,Y.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=T7(Z);return G.listHas(X,y(W,G,F0(W,G,H)))}if(!Array.isArray(J))throw new T(`where.${Z.name}.${z}`,$.name,Y.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let V=y(Z,G,F0(Z,G,H));return z==="hasEvery"?G.listHasEvery(X,V):G.listHasSome(X,V)}function L7($,Z,X,z,J,Y){let{dialect:H}=J;if(z===null)return j(`${X} is null`);if(!Array.isArray(z))throw new T(`where.${Z.name}.equals`,$.name,J.operation,`'${Z.name}' is a scalar list, so it compares against an array. Received ${typeof z}. For "is this element present", use { ${Z.name}: { has: \u2026 } }.`);return R(j(`${X} = `),y(Z,H,F0(Z,H,Y)))}function T7($){return{...$,isList:!1}}function O0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new K(X,$.name,z,`'${Z.name}' is a scalar list, and ${J.name} has no array type to hold one. Prisma refuses the column itself on ${J.name} \u2014 `+'"the current connector does not support lists of primitive types" \u2014 so '+`this is a difference between the databases rather than a gap in the ORM. The generated artifact is dialect-agnostic, which is why this surfaces here rather than at \`prisma generate\`: the schema was generated against Postgres and DATABASE_URL names a ${J.name} database, which has no '${Z.column}' column either. It works on postgres.`)}var R7=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],g3=new Set(R7),I7=["has_key","has_some_keys","has_every_key"],z3=new Set(I7);function W9($,Z,X,z,J,Y,H,G){let V=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(V?Array.isArray(D)&&D.every((L)=>typeof L==="string"):typeof D==="string"))throw new T(W,$.name,Y.operation,V?"Expected an array of key names, like ['a', 'b'].":"Expected a key name, like 'a'.");return D};M(J);let B=(D,P)=>M(G(D,P));return Y.dialect.jsonHasKeys(X,H,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function U7($,Z,X,z,J,Y){let{dialect:H}=J;if(Z.type!=="Json")throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);A7($,Z,z.path,J);let G=(M)=>Y(M)?.path,V=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(V.length===0)throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' needs a filter beside it \u2014 ${[...g3,...z3].sort().join(", ")}. Prisma refuses a bare path too.`);let W=[];for(let M of V){if(z3.has(M)){W.push(W9($,Z,X,M,z[M],J,G,(P)=>Y(P)?.[M]));continue}if(!g3.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...g3,...z3].sort().join(", ")}.`);if(!H.jsonFilters.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`'${M}' on a JSON path is not available on ${H.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":k(B);if(D&&(M==="equals"||M==="not")){W.push(N7(D,X,G,Z,H,M==="not"));continue}if(D&&B!==null){let P=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 T(`where.${Z.name}.${M}`,$.name,J.operation,`${x0(D)} asks which kind of null a value is, which `+`only 'equals' and 'not' can express \u2014 ${P}. Prisma refuses it under this operator too. Write { ${Z.name}: { path: [\u2026], equals: ${x0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${x0(D)} } }.`)}if(M9(B))throw new T(`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 } }.`);F7(M,B,$,Z,J),W.push(O7(M,X,G,Z,H,(P)=>Y(P)?.[M]))}return W.length===1?W[0]:t(W," and ")}function N7($,Z,X,z,J,Y){let H=()=>R(J.jsonValueAt(Z,X),j(Y?" is not null":" is null")),G=()=>R(J.jsonValueAt(Z,X),j(Y?" <> ":" = "),y(z,J,()=>J.encode(h3,z)));if($==="db")return H();if($==="json")return G();return t([G(),H()],Y?" and ":" or ")}function F7($,Z,X,z,J){let Y=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(Y&&typeof Z!=="string")throw new T(`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 T(`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"||Y)return;if(typeof Z==="object")throw new K(`where.${z.name}.${$}`,X.name,J.operation,`'${$}' on a JSON path compares the extracted value as a scalar, so `+"an object or array operand cannot be expressed \u2014 it would bind as "+`'${String(Z)}' and match nothing. Prisma accepts one here; gemi does not yet. Use array_contains for containment, or narrow the path until it names a scalar.`)}function O7($,Z,X,z,J,Y){if($==="array_contains")return J.jsonArrayContains(Z,X,Y);let H=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with",G=J.jsonExtract(Z,X,!0);if(H){let B=$==="string_contains"?(D)=>`%${D}%`:$==="string_starts_with"?(D)=>`${D}%`:(D)=>`%${D}`;return R(j("("),G,j(") like "),i((D,P)=>{let L=Y(D,P);return L===null||L===void 0?null:B(String(L))}))}let V=$==="equals"?"=":$==="not"?"<>":H9[$],W=$!=="equals"&&$!=="not",M=W?R(j("cast(("),G,j(") as real)")):R(j("("),G,j(")"));return R(M,j(` ${V} `),i((B,D)=>{let P=Y(B,D);if(P===null||P===void 0)return null;if(W)return Number(P);return J.jsonComparesAsText?String(P):P}))}function A7($,Z,X,z){let{dialect:J}=z,Y=J.jsonPathSyntax==="array"?"array":"jsonpath",H=Array.isArray(X)?"array":typeof X==="string"?"jsonpath":"other";if(Array.isArray(X)&&X.length===0||X==="")throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path cannot be empty. ${J.jsonPathSyntax==="array"?`On ${J.name} an empty array selects the whole document, `+"which is a filter on the column rather than on a path \u2014 write "+`{ ${Z.name}: { equals: \u2026 } } if that is what you meant.`:`On ${J.name} an empty string raises inside json_extract.`}`);if(H===Y){if(Y!=="array")return;let V=X.findIndex((B)=>typeof B!=="string");if(V===-1)return;let W=X[V],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${V}] is ${M}. `+(typeof W==="number"?'An array index is a key too \u2014 write ["items", "0"] rather than '+`["items", 0]; it reaches the same element, because ${J.name} takes the path as text. Prisma's path is string[] and its client refuses a number here too.`:"Prisma's path is string[] too."))}throw new K(`${Z.name}.path`,$.name,z.operation,J.jsonPathSyntax==="array"?`On ${J.name} a JSON path is an array of keys \u2014 ["a", "b"] \u2014 `+"not a JSONPath string. Prisma splits them the same way, and refuses the other form on each database.":`On ${J.name} a JSON path is a JSONPath string \u2014 "$.a.b" \u2014 not `+"an array of keys. Prisma splits them the same way, and refuses the other form on each database.")}function u3($,Z,X,z,J){let{dialect:Y}=z,H=`${z.qualifier??""}${Y.quoteIdent(Z.column)}`,G=k(X);if(G)throw new T(`where.${Z.name}`,$.name,z.operation,`${x0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${x0(G)} } }.`);if(Z.isList)return _7($,Z,H,X,z,J);if(!m3(X))return J3(H,Z,X,Y,J);let V=X,W=Object.keys(V).sort();if(V.path!==void 0)return U7($,Z,H,V,z,J);let M=V.mode==="insensitive";if(V.mode!==void 0&&V.mode!=="default"){if(!M)throw new T(`mode: ${JSON.stringify(V.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!Y.supportsInsensitiveMode)throw new K('mode: "insensitive"',$.name,z.operation,`The ${Y.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 P=V[D];if(P===void 0||D==="mode")continue;if(Z.type==="Json"&&z3.has(D)){B.push(W9($,Z,H,D,P,z,void 0,(C)=>J(C)?.[D]));continue}if(!y3.has(D))throw new T(`where.${Z.name}.${D}`,$.name,z.operation,`A scalar filter takes ${[...y3].sort().join(", ")}.`);if(D!=="equals"&&D!=="not"&&M9(P))throw new T(`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 L=(C)=>J(C)?.[D];switch(D){case"equals":B.push(J3(H,Z,P,Y,L));break;case"not":B.push(S7($,Z,P,z,L,H));break;case"in":case"notIn":B.push(q7($,H,Z,P,z,L,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(R(j(`${H} ${H9[D]} `),y(Z,Y,F0(Z,Y,L))));break;case"contains":case"startsWith":case"endsWith":if(typeof P!=="string")throw new T(`where.${Z.name}.${D}`,$.name,z.operation,`Expected a string, received ${P===null?"null":typeof P}.`);if(Z.type!=="String")throw new K(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(Y.like(H,M,E7(D,L)));break}}if(B.length===0)return j("true");if(B.length===1)return B[0];return t(B," and ")}function x0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function M9($){if(k($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>k(Z)==="any")}function S7($,Z,X,z,J,Y){if(X===null||k(X)==="db")return j(`${Y} is not null`);if(k(X)==="json")return R(j("not "),w0(J3(Y,Z,X,z.dialect,J)));if(k(X)==="any")return R(j("not "),w0(J3(Y,Z,X,z.dialect,J)));if(!m3(X))return R(j(`${Y} <> `),y(Z,z.dialect,F0(Z,z.dialect,J)));let H=u3($,Z,X,z,J);return R(j("not "),w0(H))}function J3($,Z,X,z,J){if(X===null||k(X)==="db")return j(`${$} is null`);if(k(X)==="any")return t([j(`${$} is null`),b7($,Z,z)]," or ");return R(j(`${$} = `),y(Z,z,F0(Z,z,J)))}function b7($,Z,X){return R(j(`${$} = `),y(Z,X,()=>X.encode(h3,Z)))}function q7($,Z,X,z,J,Y,H){let{dialect:G}=J;if(!Array.isArray(z))throw new T(`where.${X.name}.${H?"notIn":"in"}`,$.name,J.operation,"Expected an array.");if(z.length===0)return H?j("true"):Y9;return G.inList(Z,H,z.length,(V)=>{return Y(V).map((M)=>G.encode(M,X))})}function E7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function F0($,Z,X){return(z)=>Z.encode(X(z),$)}function m3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function B9($,Z,X,z,J,Y,H){let G=`orderBy.${Z.name}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new T(G,$.name,z,Z.kind==="many"?'Expected { _count: "asc" | "desc" }.':`Expected an object naming one field of ${Z.model}.`);let V=X,W=Object.keys(V).filter((C)=>C!=="where");if(W.length!==1)throw new K(G,$.name,z,W.length===0?"Name the field to order by.":`Name exactly one field to order by; got ${W.join(", ")}. `+"Order by several with an array: [{ a: \u2026 }, { b: \u2026 }].");let[M]=W,B=N0($,Z,J,`_o${H}`,`${J.quoteIdent($.table)}.`,z),D=w7($,Z,B.child,M,V[M],z,B.qualifier,J),P=f(B.child,V.where,{dialect:J,operation:z,qualifier:B.qualifier},(C)=>Y(C)?.where),L=[j(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(P)L.push(j(" and "),P);return L.push(j(")")),{expression:R(...L),direction:D.direction,nulls:D.nulls}}function w7($,Z,X,z,J,Y,H,G){let V=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=x7($,V,J,Y);if(z===n){if(Z.kind!=="many")throw new K(V,$.name,Y,`${Z.name} is a to-one relation, so its count is 0 or 1. Order by one of ${X.name}'s fields instead.`);return{expression:"count(*)",direction:W,nulls:M}}if(Z.kind==="many")throw new K(V,$.name,Y,`${Z.name} is a to-many relation, so ordering by '${z}' has no single answer for a parent with several children. Only `+"{ _count: \u2026 } is supported.");let B=X.fields[z];if(!B)throw new K(V,$.name,Y,`'${z}' is not a field on ${X.name}. Known fields: ${Object.keys(X.fields).join(", ")}.`);return{expression:`${H}${G.quoteIdent(B.column)}`,direction:W,nulls:M}}function x7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:Y}=X;if(J!=="asc"&&J!=="desc")throw new T(Z,$.name,z,'Expected "asc" or "desc".');if(Y===void 0)return{direction:J};if(Y!=="first"&&Y!=="last")throw new K(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:Y}}throw new K(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var v7=new Set(["asc","desc"]),k7=new Set(["first","last"]);function D0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),Y=J?Z:[Z],H=[];for(let G=0;G<Y.length;G++){let V=Y[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof V!=="object"||V===null)throw new T("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(V)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new K(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let P=B9($,$.relations[M],B,X,z.dialect,(L)=>W(L)?.[M],H.length);H.push({column:M,direction:P.direction,...P.nulls?{nulls:P.nulls}:{},expression:P.expression});continue}let D=$.fields[M];if(!D)throw new g(M,$.name,Object.keys($.fields));H.push({column:D.column,...D9($,M,B,X)})}}return H}function D9($,Z,X,z){if(typeof X==="string"){if(!v7.has(X))throw new T(`orderBy.${Z}: ${JSON.stringify(X)}`,$.name,z,'Expected "asc" or "desc".');return{direction:X}}if(typeof X==="object"&&X!==null){let{sort:J,nulls:Y}=X,H=D9($,Z,J,z).direction;if(Y===void 0)return{direction:H};if(typeof Y!=="string"||!k7.has(Y))throw new K(`orderBy.${Z}.nulls: ${JSON.stringify(Y)}`,$.name,z,'Expected "first" or "last".');return{direction:H,nulls:Y}}throw new K(`orderBy.${Z}`,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}function Y3($){return $.map((Z)=>({...Z,direction:Z.direction==="asc"?"desc":"asc",...Z.nulls?{nulls:Z.nulls==="first"?"last":"first"}:{}}))}function r($,Z,X){if($.length===0)return null;return x($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return x([z.expression,j(J)],"");return j(`${X??""}${Z.quoteIdent(z.column)}${J}`)}),", ")}function H3($,Z,X,z,J){if(typeof J!=="number"||!Number.isInteger(J))throw new T(X,$,Z,`Expected an integer, got ${JSON.stringify(J)}.`);if(z==="skip"&&J<0)throw new T(X,$,Z,"A 'skip' counts rows to pass over, so it cannot be negative. Prisma rejects one too.")}function Q0($,Z,X,z,J,Y=!1){if(X?.take!==void 0)H3($.name,Z,"take","take",X.take);if(X?.skip!==void 0)H3($.name,Z,"skip","skip",X.skip);let H=Y?1:X?.take,G=X?.skip,V=J;if((H!==void 0||G!==void 0)&&V.length===0&&!Y)V=$.primaryKey.map((P)=>({column:$.fields[P]?.column??P,direction:"asc"}));let M=typeof H==="number"&&H<0;if(M)V=Y3(V);let B=H===void 0?null:Y?()=>1:(P)=>Math.abs(Number(P?.take)),D=G===void 0?null:(P)=>Number(P?.skip);return{clause:z.paginate(B,D),terms:V,reversed:M}}function J0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new K("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new K("select + omit",$.name,X,"'select' names what to keep and 'omit' what to drop, so the two describe different column lists. Prisma allows only one of them on "+"the same query. Drop the 'omit' \u2014 a 'select' already excludes "+"everything it does not name.");if(z===void 0||z===null)return f7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new T("select",$.name,X,"Expected an object.");let Y=[];for(let[G,V]of Object.entries($.fields))if(z[G]===!0)Y.push(V);let H=0;for(let G of Object.keys(z)){let V=z[G];if(V===void 0)continue;if(G in $.relations){if(V!==!1)H++;continue}if(G===n){if(V!==!1)H++;continue}if(!(G in $.fields))throw new g(G,$.name,Object.keys($.fields));if(typeof V!=="boolean")throw new T(`select.${G}`,$.name,X,"Expected true or false.")}if(Y.length===0&&H===0)throw new K("select",$.name,X,"At least one field must be selected.");return Y}function f7($,Z,X){if(Z===void 0||Z===null)return Object.values($.fields);if(typeof Z!=="object"||Array.isArray(Z))throw new T("omit",$.name,X,"Expected an object of fields.");let z=new Set;for(let Y of Object.keys(Z)){let H=Z[Y];if(H===void 0)continue;if(Y in $.relations)throw new K(`omit.${Y}`,$.name,X,`'${Y}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(Y in $.fields))throw new g(Y,$.name,Object.keys($.fields));if(typeof H!=="boolean")throw new T(`omit.${Y}`,$.name,X,"Expected true or false.");if(H)z.add(Y)}let J=Object.values($.fields).filter((Y)=>!z.has(Y.name));if(J.length===0)throw new K("omit",$.name,X,`It omits every field on ${$.name}, which leaves no column to select. Prisma rejects that too.`);return J}function V3($,Z,X){if(X.length===0)return{fields:Z};let z=new Set(Z.map((H)=>H.name)),J=X.filter((H)=>!z.has(H));if(J.length===0)return{fields:Z};let Y=new Set([...z,...J]);return{fields:Object.values($.fields).filter((H)=>Y.has(H.name)),hidden:J}}var P9=new Set(["where","orderBy","select","omit","include","take","skip"]),j9=new Set(["where","select","omit","include"]),M3=10;function y0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function S0($,Z,X,z,J=P0){let Y=h0($,Z,z);if(Y.length===0)return{plans:[],keyFields:[]};let H=[],G=new Set;for(let V of Y){T9($,V,z);let W=U9($,V);R9(W,V.node,z,2);let M=J.plan({parent:$,child:W,relation:V.relation,as:V.as,node:V.node,locate:V.locate,dialect:X,operation:z});H.push(M);for(let B of M.parentFields)G.add(B)}return{plans:H,keyFields:[...G]}}async function D3($,Z,X,z,J){let Y=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(Y.length===0)return;for(let H of $){if(H.root)continue;await H.load(Y,z,J)}if(Z&&Z.length>0)for(let H of Y)for(let G of Z)delete H[G]}function h0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;L9($,z,J,X);let Y=[];if(z!==void 0&&z!==null){if(typeof z!=="object"||Array.isArray(z))throw new T("include",$.name,X,"Expected an object.");for(let H of Object.keys(z).sort()){let G=z[H];if(G===void 0||G===!1)continue;if(H===n)continue;let V=$.relations[H];if(!V)throw new f0(H,$.name,Object.keys($.relations));Y.push({as:H,relation:V,node:G,locate:(W)=>W?.include?.[H]})}return Y}if(J!==void 0&&J!==null&&typeof J==="object")for(let H of Object.keys(J).sort()){let G=J[H];if(G===void 0||G===!1)continue;let V=$.relations[H];if(!V)continue;Y.push({as:H,relation:V,node:G,locate:(W)=>W?.select?.[H]})}return Y}function L9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new K(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function T9($,Z,X){let z=Z.node;if(z===!0)return;if(typeof z!=="object"||z===null||Array.isArray(z))throw new T(Z.as,$.name,X,"Expected true or an object of relation arguments.");let J=z;L9($,J.include,J.select,X,Z.as);let Y=Z.relation.kind==="many";for(let H of Object.keys(J).sort()){if(J[H]===void 0)continue;if(Y&&(H==="take"||H==="skip")){g7($,Z,X,H,J[H]);continue}if(Y?P9.has(H):j9.has(H))continue;if(H==="lock")throw new k0(`${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(H==="orderBy"&&!Y)throw new K(`${Z.as}.orderBy`,$.name,X,"Prisma does not accept 'orderBy' on a to-one relation \u2014 there is at "+"most one row to order.");if(H==="take"||H==="skip")throw new K(`${Z.as}.${H}`,$.name,X,`Prisma does not accept '${H}' on a to-one relation.`);throw new K(`${Z.as}.${H}`,$.name,X,`A relation node takes ${[...Y?P9:j9].sort().join(", ")}.`)}}function g7($,Z,X,z,J){H3($.name,X,`${Z.as}.${z}`,z,J)}function c3($,Z){let X=$.node;if(typeof X!=="object"||X===null||Array.isArray(X))return;for(let z of["take","skip"]){if(X[z]===void 0)continue;throw new K(`${$.as}.${z}`,$.parent.name,$.operation,`A '${z}' inside a to-many relation is per parent, and the batched `+"relation planner serves every parent from one query \u2014 so the only "+`limit it could emit would page every parent's children as one set. Only the lateral join strategy can express it, by paginating inside a subquery that already runs once per parent row, and it needs Postgres: ${Z}. Load '${$.as}' as its own query, or narrow it with 'where'.`)}}function R9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)J0($,Z,X);let J=h0($,Z,X);if(J.length===0)return;if(z>M3)throw new p3($.name,M3);for(let Y of J)T9($,Y,X),R9(U9($,Y),Y.node,X,z+1)}function I9($,Z,X,z){if($.parentFields.length!==1)throw new K(X.name,Z.name,z,`${X.name} joins on ${$.parentFields.length} fields (${$.parentFields.join(", ")}), and it is planned through a join table, which links two models by a single primary key each side. Prisma does not build an implicit many-to-many over a composite key.`);return{parentField:$.parentFields[0],childField:$.childFields[0],join:$.join}}function B0($,Z,X,z){if(X.joinTable)return h7($,Z,X);if(X.from.length>0)return K9($,X,X.from,X.to,z);let J=y7($,Z,X);if(J.from.length===0)throw new c($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return K9($,X,J.to,J.from,z)}function K9($,Z,X,z,J){if(X.length===0)throw new K(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new c($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function y7($,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 c($.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 h7($,Z,X){let{table:z,a:J,b:Y}=X.joinTable;if(J===Y){let G=X.joinTable.ownerColumn;if(!G)throw new K(X.name,$.name,"include",`${X.name} is a self-referential implicit many-to-many, and the generated artifact predates support for one. Re-run \`prisma generate\`.`);return{parentFields:[G3($,X)],childFields:[G3(Z,X)],join:{table:z,parentColumn:G,childColumn:G==="A"?"B":"A"}}}if($.name!==J&&$.name!==Y)throw new c($.name,X.name,`the join table '${z}' connects ${J} and ${Y}, neither of which is ${$.name}.`);let H=$.name===J?"A":"B";return{parentFields:[G3($,X)],childFields:[G3(Z,X)],join:{table:z,parentColumn:H,childColumn:H==="A"?"B":"A"}}}function G3($,Z){if($.primaryKey.length!==1)throw new c($.name,Z.name,`an implicit many-to-many joins on ${$.name}'s primary key, which has ${$.primaryKey.length} fields.`);return $.primaryKey[0]}function W3($,Z,X){let z=$.fields[X];if(!z)throw new c($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function U9($,Z){return X0($,Z.relation,Z.as)}function X0($,Z,X=Z.name){let z=Z.model;if(!a(z))throw new d3($.name,X,z,C9());let J=l(z)?.$schema;if(!J)throw new g0(z);return J}var Q9="batched",P0={name:Q9,plan($){c3($,"this query planned with the batched strategy");let Z=B0($.parent,$.child,$.relation,$.operation);for(let Y of Z.parentFields)_9($.parent,$.relation,W3($.parent,$.relation,Y));for(let Y of Z.childFields)_9($.child,$.relation,W3($.child,$.relation,Y));let X=W3($.parent,$.relation,Z.parentFields[0]),z=W3($.child,$.relation,Z.childFields[0]),J=$.relation.kind==="many";return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:Z.parentFields,strategy:Q9,load(Y,H,G){let V={parentKeyField:X,childKeyField:z,many:J,parents:Y,args:H,executor:G};return Z.join?m7($,Z,V):u7($,Z,V)}}}};async function u7($,Z,X){let{keys:z,byKey:J}=O9(X.parents,Z.parentFields);if(z.length===0)return;let Y=$.locate(X.args),H=N9(Y,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",H.args,!0);for(let V of G){let W=J.get(v0(Z.childFields.map((M)=>V[M])));if(!W)continue;for(let M of W)F9(M,$.as,V,X.many)}if(H.hidden)for(let V of G)for(let W of Z.childFields)delete V[W]}async function m7($,Z,X){let{keys:z,byKey:J}=O9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:Y}=$,H=Z.join,G=await p7(Y,H,z.map((P)=>Y.encode(P[0],X.parentKeyField)),X.executor),V=new Map,W=[];for(let P of G){let L=v0([Y.decode(P[H.parentColumn],X.parentKeyField)]),C=J.get(L);if(!C)continue;let F=Y.decode(P[H.childColumn],X.childKeyField),N=v0([F]),_=V.get(N);if(_===void 0)_=[],V.set(N,_),W.push([F]);for(let Q of C)_.push(Q)}if(W.length===0)return;let M=$.locate(X.args),B=N9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let P of D){let L=V.get(v0([P[Z.childFields[0]]]));if(!L)continue;for(let C of L)F9(C,$.as,P,X.many)}if(B.hidden)for(let P of D)delete P[Z.childFields[0]]}async function p7($,Z,X,z){let J=R(j(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:Y,binders:H}=d(J,$,{model:Z.table,operation:"include"}),G=A0();return z.query(Y,H.map((V)=>V(void 0,G)))}function N9($,Z,X,z,J){let Y=$===!0||$===null||typeof $!=="object"?{}:$,H=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:d7(z,Z,X,J),G={where:Y.where===void 0?H:{AND:[Y.where,H]}};if(Y.orderBy!==void 0)G.orderBy=Y.orderBy;if(Y.include!==void 0)G.include=Y.include;let V=Y.omit;if(V!==void 0){let B=Z.filter((D)=>V[D]===!0);if(B.length===0)G.omit=V;else{let D={...V};for(let P of B)delete D[P];return G.omit=D,{args:G,hidden:!0}}}let W=Y.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 d7($,Z,X,z){let J=Z.map((Y)=>$.fields[Y]?.type);if(J.every((Y)=>Y!==void 0)&&z.canBindCompositeIn(J))return{[z0]:G9(Z,X)};return{OR:X.map((Y)=>Object.fromEntries(Z.map((H,G)=>[H,Y[G]])))}}function v0($){return JSON.stringify($.map(c7))}function F9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function O9($,Z){let X=new Map,z=[];for(let J of $){let Y=Z.map((V)=>J[V]);if(Y.some((V)=>V===null||V===void 0))continue;let H=v0(Y),G=X.get(H);if(G===void 0)G=[],X.set(H,G),z.push(Y);G.push(J)}return{keys:z,byKey:X}}function c7($){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 _9($,Z,X){if(X.isList)throw new c($.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 c($.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 A9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),S9=!0;function s7($){S9=$}function i7(){return A9}function u0($,Z,X=[]){if(A9&&S9)return n7($,Z,X);return s3($,Z,X)}function s3($,Z,X=[]){let z=$.map((G)=>({key:G.name,column:G.column,field:G,decode:Z.needsDecode(G)})),J=z.length,Y=X.map((G)=>({key:G.key,many:G.kind==="many"})),H=Y.length;return(G)=>{let V=[];for(let W=0;W<G.length;W++){let M=G[W],B={};for(let D=0;D<J;D++){let P=z[D],L=M[P.column];B[P.key]=P.decode?Z.decode(L,P.field):L??null}for(let D=0;D<H;D++)B[Y[D].key]=Y[D].many?[]:null;V.push(B)}return V}}function n7($,Z,X){let z=[];for(let Y=0;Y<$.length;Y++){let H=$[Y],G=JSON.stringify(H.name),V=JSON.stringify(H.column);z.push(Z.needsDecode(H)?`${G}: d.decode(row[${V}], f[${Y}])`:`${G}: row[${V}] ?? null`)}for(let Y of X)z.push(`${JSON.stringify(Y.key)}: ${Y.kind==="many"?"[]":"null"}`);let J=`
|
|
2
|
+
import{ba as A6}from"../chunk-00z7s34q.js";import{$a as O6,Fa as z9,Ga as J9,Ha as n,Ia as b9,Ja as S3,Ka as R6,La as I6,Ma as q0,Na as a5,Oa as b3,Pa as U6,Qa as $3,Ra as I0,Sa as e4,Ta as $7,Ua as Z7,Va as p5,Wa as X7,Xa as z7,Ya as J7,Za as N6,_a as F6}from"../chunk-rrz2ry81.js";import{bh as Q6,ch as _6,dh as C6,eh as L6,fh as T6}from"../chunk-4vnrnbn3.js";import{gh as A0,hh as o,ih as j,jh as i,mh as R,nh as x,oh as d,ph as W6,qh as M6,rh as X5,sh as B6,th as h3,uh as k,vh as D6,wh as P6,xh as j6,yh as K6,zh as r5}from"../chunk-1de3awrh.js";import"../chunk-159j20yr.js";import{bj as e8,cj as a,dj as l,ej as C9,fj as B3,hj as V6,ij as G6,nj as l4,oj as o4,pj as t4,qj as r4,rj as a4}from"../chunk-ss3yn4g2.js";import{Aj as n8,Bj as _5,Cj as l8,Ej as o8,Fj as c5,Gj as t8,Hj as r8,Ij as s5,Jj as L3,Kj as f0,Lj as p3,Mj as d3,Nj as c,Oj as a8,Pj as g0,Qj as i5,sj as K,tj as T,uj as k0,vj as g,wj as s8,xj as $0,yj as i8,zj as d5}from"../chunk-aq5zx3vg.js";import{Xj as X6,Yj as e0,Zj as T0,_j as F3,bk as z6,dk as J6,ek as Y6,fk as n5,gk as l5,hk as u5,ik as O3,jk as H6,kk as o5,lk as t5}from"../chunk-yzsyg1f7.js";import{Ak as m5,wk as $6,yk as Z6}from"../chunk-fe12f946.js";import{_k as h5}from"../chunk-tzheb6ak.js";import"../chunk-rtv4ax8z.js";import"../chunk-78wht1ph.js";function N0($,Z,X,z,J,Y){let H=X0($,Z),G=B0($,H,Z,Y),V=X.quoteIdent(z),W=`${V}.`,M=G.parentFields.map((L,C)=>{let F=`${W}${X.quoteIdent(Z3(H,Z,G.childFields[C]))}`,N=`${J}${X.quoteIdent(Z3($,Z,L))}`;return`${F} = ${N}`}).join(" and ");if(!G.join)return{child:H,source:`${X.quoteIdent(H.table)} as ${V}`,correlation:M,qualifier:W};let B=`${W}${X.quoteIdent(Z3(H,Z,G.childFields[0]))}`,D=`${J}${X.quoteIdent(Z3($,Z,G.parentFields[0]))}`,P=X.quoteIdent(`${z}j`);return{child:H,source:`${X.quoteIdent(H.table)} as ${V} join ${X.quoteIdent(G.join.table)} as ${P} on ${P}.${X.quoteIdent(G.join.childColumn)} = ${B}`,correlation:`${P}.${X.quoteIdent(G.join.parentColumn)} = ${D}`,qualifier:W}}function Z3($,Z,X){let z=$.fields[X];if(!z)throw new c($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function u($,Z,X){let z=X3($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw Z9($,X,z);let J=Object.keys(Z).filter((H)=>Z[H]!==void 0),Y=Z;for(let H of z){if(H.length===1&&J.includes(H[0]))return $9($,X,H[0],Y[H[0]]),H;let G=H.join("_");if(H.length>1&&J.includes(G)){let V=Y[G];if(V&&typeof V==="object"&&!Array.isArray(V))for(let W of H)$9($,X,`${G}.${W}`,V[W]);return H}}throw Z9($,X,z)}function x3($){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 $9($,Z,X,z){if(z===void 0||x3(z))return;throw new T(`${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 v3($,Z,X){u($,Z,{model:$.name,operation:X,argument:"where"})}function X3($){let Z=[];if($.primaryKey.length>0)Z.push($.primaryKey);for(let X of $.uniques)Z.push(X);return Z}function Z9($,Z,X){let z=X.map((H)=>H.length===1?H[0]:H.join("_")).join(", "),Y=Z.argument.startsWith("data.")?`Name it by one of those, or reach it through the ${$.name} model directly.`:`Use ${Z.operation==="delete"||Z.operation==="update"?`${Z.operation}Many`:"findFirst"} to query on anything else.`;return new K(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${Y}`)}function y($,Z,X){let z=Z.castParameter($);if(!z)return i(X);return i((J,Y)=>{let H=X(J,Y);if(H===null||H===void 0)return null;let G=k(H);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(H)},z)}function f($,Z,X,z){if(Z===void 0||Z===null)return null;if(typeof Z!=="object"||Array.isArray(Z))throw new T("where",$.name,X.operation,"Expected an object.");let J=[];for(let Y of Object.keys(Z).sort()){let H=Z[Y];if(H===void 0)continue;let G=(W)=>z(W)?.[Y];if(Y==="AND"||Y==="OR"){let W=X9($,H,X,G,Y);if(W)J.push(W);continue}if(Y===z0){J.push(j7($,H,X,G));continue}if(Y==="NOT"){let W=X9($,H,X,G,"AND");if(W)J.push(R(j("not "),w0(W)));continue}if(Y in $.relations){let W=B7($,$.relations[Y],H,X,G);if(W)J.push(W);continue}let V=$.fields[Y];if(!V){let W=P7($,Y,H,X,G);if(W){J.push(W);continue}throw new g(Y,$.name,Object.keys($.fields))}J.push(u3($,V,H,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return t(J," and ")}function B7($,Z,X,z,J){let Y=z9(Z.kind),H=D7($,Z,X,Y,z),G=z.relationDepth??0,V=z.dialect,W=z.qualifier??`${V.quoteIdent($.table)}.`,M=N0($,Z,V,`_r${G}`,W,z.operation),B=M.child,D=j(M.correlation),P={...z,qualifier:M.qualifier,relationDepth:G+1},L=[];for(let C of Y){if(!(C in H))continue;let F=H[C],N=(I)=>H.direct?J(I):J(I)?.[C];if(F===null){L.push(k3(M,D,null,C==="is"));continue}let _=f(B,F,P,N);if(C==="every"){if(!_)continue;L.push(k3(M,D,R(j("not "),w0(_)),!0));continue}let Q=C==="none"||C==="isNot";L.push(k3(M,D,_,Q))}if(L.length===0)return null;if(L.length===1)return L[0];return t(L," and ")}function k3($,Z,X,z){let J=[j(`${z?"not ":""}exists (select 1 from ${$.source} where `),Z];if(X)J.push(j(" and "),X);return J.push(j(")")),R(...J)}function D7($,Z,X,z,J){let Y=`where.${Z.name}`,H=Z.kind==="many";if(X===null){if(H)throw new K(Y,$.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 T(Y,$.name,J.operation,H?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(J9(X,z))return X;if(H)throw new K(Y,$.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 P7($,Z,X,z,J){let Y=X3($).find((V)=>V.length>1&&V.join("_")===Z);if(!Y)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new T(`where.${Z}`,$.name,z.operation,`Expected an object holding ${Y.join(" and ")}.`);let H=X,G=[];for(let V of Y){if(H[V]===void 0)throw new K(`where.${Z}`,$.name,z.operation,`Missing '${V}'. A composite key needs all of ${Y.join(", ")}.`);if(!x3(H[V]))throw new T(`where.${Z}.${V}`,$.name,z.operation,`A composite key takes a plain value for each of ${Y.join(", ")}, not a filter, an array or null.`);G.push(u3($,$.fields[V],H[V],z,(W)=>J(W)?.[V]))}return G.length===1?G[0]:t(G," and ")}function X9($,Z,X,z,J){let Y=[];if(Array.isArray(Z))for(let H=0;H<Z.length;H++){let G=f($,Z[H],X,(V)=>z(V)?.[H]);if(G)Y.push(G)}else{let H=f($,Z,X,z);if(H)Y.push(H)}if(Y.length===0)return J==="AND"?null:Y9;if(Y.length===1)return Y[0];return t(Y,J==="AND"?" and ":" or ")}var Y9=j("false");function t($,Z){return R(j("("),x($,Z),j(")"))}function w0($){return $.text.startsWith("(")?$:t([$],"")}var y3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),H9={lt:"<",lte:"<=",gt:">",gte:">="},z0="$compositeIn",V9=Symbol("gemi.orm.compositeInFromPlanner");function G9($,Z){return{[V9]:!0,fields:$,values:Z}}function j7($,Z,X,z){let{dialect:J}=X,H=K7($,Z,X).map((V)=>{let W=$.fields[V];if(!W)throw new g(V,$.name,Object.keys($.fields));return W}),G=H.map((V)=>`${X.qualifier??""}${J.quoteIdent(V.column)}`);return J.compositeIn(G,H.map((V)=>V.type),(V)=>z(V).values)}function K7($,Z,X){let z=()=>{throw new g(z0,$.name,Object.keys($.fields))};if(typeof Z!=="object"||Z===null||Array.isArray(Z))return z();if(Z[V9]!==!0)return z();let J=(G)=>{throw new K(z0,$.name,X.operation,G)},{fields:Y,values:H}=Z;if(!Array.isArray(Y)||Y.length===0)return J(`the planner built a '${z0}' with no fields.`);if(!Y.every((G)=>typeof G==="string"))return J(`the planner built a '${z0}' with a non-string field.`);if(!Array.isArray(H))return J(`the planner built a '${z0}' with no values.`);if(!H.every((G)=>Array.isArray(G)&&G.length===Y.length))return J(`the planner built a '${z0}' whose tuples do not all have ${Y.length} value(s).`);return Y}var Q7=["equals","has","hasEvery","hasSome","isEmpty"],f3=new Set(Q7);function _7($,Z,X,z,J,Y){let{dialect:H}=J;if(O0($,Z,`where.${Z.name}`,J.operation,H),Array.isArray(z))throw new T(`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(!m3(z))throw new T(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list. Expected an object holding ${[...f3].sort().join(", ")}; received ${z===null?"null":typeof z}.`);let G=z,V=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;if(!f3.has(W))throw new T(`where.${Z.name}.${W}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a list filter takes ${[...f3].sort().join(", ")}. The scalar operators \u2014 `+`${[...y3].sort().join(", ")} \u2014 apply to a single value and `+"Prisma does not offer them here.");let B=(D)=>Y(D)?.[W];V.push(C7($,Z,X,W,M,J,B))}if(V.length===0)return j("true");if(V.length===1)return V[0];return t(V," and ")}function C7($,Z,X,z,J,Y,H){let{dialect:G}=Y;if(z==="equals")return L7($,Z,X,J,Y,H);if(z==="isEmpty"){if(typeof J!=="boolean")throw new T(`where.${Z.name}.isEmpty`,$.name,Y.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=T7(Z);return G.listHas(X,y(W,G,F0(W,G,H)))}if(!Array.isArray(J))throw new T(`where.${Z.name}.${z}`,$.name,Y.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let V=y(Z,G,F0(Z,G,H));return z==="hasEvery"?G.listHasEvery(X,V):G.listHasSome(X,V)}function L7($,Z,X,z,J,Y){let{dialect:H}=J;if(z===null)return j(`${X} is null`);if(!Array.isArray(z))throw new T(`where.${Z.name}.equals`,$.name,J.operation,`'${Z.name}' is a scalar list, so it compares against an array. Received ${typeof z}. For "is this element present", use { ${Z.name}: { has: \u2026 } }.`);return R(j(`${X} = `),y(Z,H,F0(Z,H,Y)))}function T7($){return{...$,isList:!1}}function O0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new K(X,$.name,z,`'${Z.name}' is a scalar list, and ${J.name} has no array type to hold one. Prisma refuses the column itself on ${J.name} \u2014 `+'"the current connector does not support lists of primitive types" \u2014 so '+`this is a difference between the databases rather than a gap in the ORM. The generated artifact is dialect-agnostic, which is why this surfaces here rather than at \`prisma generate\`: the schema was generated against Postgres and DATABASE_URL names a ${J.name} database, which has no '${Z.column}' column either. It works on postgres.`)}var R7=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],g3=new Set(R7),I7=["has_key","has_some_keys","has_every_key"],z3=new Set(I7);function W9($,Z,X,z,J,Y,H,G){let V=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(V?Array.isArray(D)&&D.every((L)=>typeof L==="string"):typeof D==="string"))throw new T(W,$.name,Y.operation,V?"Expected an array of key names, like ['a', 'b'].":"Expected a key name, like 'a'.");return D};M(J);let B=(D,P)=>M(G(D,P));return Y.dialect.jsonHasKeys(X,H,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function U7($,Z,X,z,J,Y){let{dialect:H}=J;if(Z.type!=="Json")throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);A7($,Z,z.path,J);let G=(M)=>Y(M)?.path,V=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(V.length===0)throw new K(`${Z.name}.path`,$.name,J.operation,`A 'path' needs a filter beside it \u2014 ${[...g3,...z3].sort().join(", ")}. Prisma refuses a bare path too.`);let W=[];for(let M of V){if(z3.has(M)){W.push(W9($,Z,X,M,z[M],J,G,(P)=>Y(P)?.[M]));continue}if(!g3.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...g3,...z3].sort().join(", ")}.`);if(!H.jsonFilters.has(M))throw new K(`${Z.name}.${M}`,$.name,J.operation,`'${M}' on a JSON path is not available on ${H.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":k(B);if(D&&(M==="equals"||M==="not")){W.push(N7(D,X,G,Z,H,M==="not"));continue}if(D&&B!==null){let P=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 T(`where.${Z.name}.${M}`,$.name,J.operation,`${x0(D)} asks which kind of null a value is, which `+`only 'equals' and 'not' can express \u2014 ${P}. Prisma refuses it under this operator too. Write { ${Z.name}: { path: [\u2026], equals: ${x0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${x0(D)} } }.`)}if(M9(B))throw new T(`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 } }.`);F7(M,B,$,Z,J),W.push(O7(M,X,G,Z,H,(P)=>Y(P)?.[M]))}return W.length===1?W[0]:t(W," and ")}function N7($,Z,X,z,J,Y){let H=()=>R(J.jsonValueAt(Z,X),j(Y?" is not null":" is null")),G=()=>R(J.jsonValueAt(Z,X),j(Y?" <> ":" = "),y(z,J,()=>J.encode(h3,z)));if($==="db")return H();if($==="json")return G();return t([G(),H()],Y?" and ":" or ")}function F7($,Z,X,z,J){let Y=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(Y&&typeof Z!=="string")throw new T(`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 T(`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"||Y)return;if(typeof Z==="object")throw new K(`where.${z.name}.${$}`,X.name,J.operation,`'${$}' on a JSON path compares the extracted value as a scalar, so `+"an object or array operand cannot be expressed \u2014 it would bind as "+`'${String(Z)}' and match nothing. Prisma accepts one here; gemi does not yet. Use array_contains for containment, or narrow the path until it names a scalar.`)}function O7($,Z,X,z,J,Y){if($==="array_contains")return J.jsonArrayContains(Z,X,Y);let H=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with",G=J.jsonExtract(Z,X,!0);if(H){let B=$==="string_contains"?(D)=>`%${D}%`:$==="string_starts_with"?(D)=>`${D}%`:(D)=>`%${D}`;return R(j("("),G,j(") like "),i((D,P)=>{let L=Y(D,P);return L===null||L===void 0?null:B(String(L))}))}let V=$==="equals"?"=":$==="not"?"<>":H9[$],W=$!=="equals"&&$!=="not",M=W?R(j("cast(("),G,j(") as real)")):R(j("("),G,j(")"));return R(M,j(` ${V} `),i((B,D)=>{let P=Y(B,D);if(P===null||P===void 0)return null;if(W)return Number(P);return J.jsonComparesAsText?String(P):P}))}function A7($,Z,X,z){let{dialect:J}=z,Y=J.jsonPathSyntax==="array"?"array":"jsonpath",H=Array.isArray(X)?"array":typeof X==="string"?"jsonpath":"other";if(Array.isArray(X)&&X.length===0||X==="")throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path cannot be empty. ${J.jsonPathSyntax==="array"?`On ${J.name} an empty array selects the whole document, `+"which is a filter on the column rather than on a path \u2014 write "+`{ ${Z.name}: { equals: \u2026 } } if that is what you meant.`:`On ${J.name} an empty string raises inside json_extract.`}`);if(H===Y){if(Y!=="array")return;let V=X.findIndex((B)=>typeof B!=="string");if(V===-1)return;let W=X[V],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new K(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${V}] is ${M}. `+(typeof W==="number"?'An array index is a key too \u2014 write ["items", "0"] rather than '+`["items", 0]; it reaches the same element, because ${J.name} takes the path as text. Prisma's path is string[] and its client refuses a number here too.`:"Prisma's path is string[] too."))}throw new K(`${Z.name}.path`,$.name,z.operation,J.jsonPathSyntax==="array"?`On ${J.name} a JSON path is an array of keys \u2014 ["a", "b"] \u2014 `+"not a JSONPath string. Prisma splits them the same way, and refuses the other form on each database.":`On ${J.name} a JSON path is a JSONPath string \u2014 "$.a.b" \u2014 not `+"an array of keys. Prisma splits them the same way, and refuses the other form on each database.")}function u3($,Z,X,z,J){let{dialect:Y}=z,H=`${z.qualifier??""}${Y.quoteIdent(Z.column)}`,G=k(X);if(G)throw new T(`where.${Z.name}`,$.name,z.operation,`${x0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${x0(G)} } }.`);if(Z.isList)return _7($,Z,H,X,z,J);if(!m3(X))return J3(H,Z,X,Y,J);let V=X,W=Object.keys(V).sort();if(V.path!==void 0)return U7($,Z,H,V,z,J);let M=V.mode==="insensitive";if(V.mode!==void 0&&V.mode!=="default"){if(!M)throw new T(`mode: ${JSON.stringify(V.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!Y.supportsInsensitiveMode)throw new K('mode: "insensitive"',$.name,z.operation,`The ${Y.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 P=V[D];if(P===void 0||D==="mode")continue;if(Z.type==="Json"&&z3.has(D)){B.push(W9($,Z,H,D,P,z,void 0,(C)=>J(C)?.[D]));continue}if(!y3.has(D))throw new T(`where.${Z.name}.${D}`,$.name,z.operation,`A scalar filter takes ${[...y3].sort().join(", ")}.`);if(D!=="equals"&&D!=="not"&&M9(P))throw new T(`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 L=(C)=>J(C)?.[D];switch(D){case"equals":B.push(J3(H,Z,P,Y,L));break;case"not":B.push(S7($,Z,P,z,L,H));break;case"in":case"notIn":B.push(q7($,H,Z,P,z,L,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(R(j(`${H} ${H9[D]} `),y(Z,Y,F0(Z,Y,L))));break;case"contains":case"startsWith":case"endsWith":if(typeof P!=="string")throw new T(`where.${Z.name}.${D}`,$.name,z.operation,`Expected a string, received ${P===null?"null":typeof P}.`);if(Z.type!=="String")throw new K(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(Y.like(H,M,E7(D,L)));break}}if(B.length===0)return j("true");if(B.length===1)return B[0];return t(B," and ")}function x0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function M9($){if(k($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>k(Z)==="any")}function S7($,Z,X,z,J,Y){if(X===null||k(X)==="db")return j(`${Y} is not null`);if(k(X)==="json")return R(j("not "),w0(J3(Y,Z,X,z.dialect,J)));if(k(X)==="any")return R(j("not "),w0(J3(Y,Z,X,z.dialect,J)));if(!m3(X))return R(j(`${Y} <> `),y(Z,z.dialect,F0(Z,z.dialect,J)));let H=u3($,Z,X,z,J);return R(j("not "),w0(H))}function J3($,Z,X,z,J){if(X===null||k(X)==="db")return j(`${$} is null`);if(k(X)==="any")return t([j(`${$} is null`),b7($,Z,z)]," or ");return R(j(`${$} = `),y(Z,z,F0(Z,z,J)))}function b7($,Z,X){return R(j(`${$} = `),y(Z,X,()=>X.encode(h3,Z)))}function q7($,Z,X,z,J,Y,H){let{dialect:G}=J;if(!Array.isArray(z))throw new T(`where.${X.name}.${H?"notIn":"in"}`,$.name,J.operation,"Expected an array.");if(z.length===0)return H?j("true"):Y9;return G.inList(Z,H,z.length,(V)=>{return Y(V).map((M)=>G.encode(M,X))})}function E7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function F0($,Z,X){return(z)=>Z.encode(X(z),$)}function m3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function B9($,Z,X,z,J,Y,H){let G=`orderBy.${Z.name}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new T(G,$.name,z,Z.kind==="many"?'Expected { _count: "asc" | "desc" }.':`Expected an object naming one field of ${Z.model}.`);let V=X,W=Object.keys(V).filter((C)=>C!=="where");if(W.length!==1)throw new K(G,$.name,z,W.length===0?"Name the field to order by.":`Name exactly one field to order by; got ${W.join(", ")}. `+"Order by several with an array: [{ a: \u2026 }, { b: \u2026 }].");let[M]=W,B=N0($,Z,J,`_o${H}`,`${J.quoteIdent($.table)}.`,z),D=w7($,Z,B.child,M,V[M],z,B.qualifier,J),P=f(B.child,V.where,{dialect:J,operation:z,qualifier:B.qualifier},(C)=>Y(C)?.where),L=[j(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(P)L.push(j(" and "),P);return L.push(j(")")),{expression:R(...L),direction:D.direction,nulls:D.nulls}}function w7($,Z,X,z,J,Y,H,G){let V=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=x7($,V,J,Y);if(z===n){if(Z.kind!=="many")throw new K(V,$.name,Y,`${Z.name} is a to-one relation, so its count is 0 or 1. Order by one of ${X.name}'s fields instead.`);return{expression:"count(*)",direction:W,nulls:M}}if(Z.kind==="many")throw new K(V,$.name,Y,`${Z.name} is a to-many relation, so ordering by '${z}' has no single answer for a parent with several children. Only `+"{ _count: \u2026 } is supported.");let B=X.fields[z];if(!B)throw new K(V,$.name,Y,`'${z}' is not a field on ${X.name}. Known fields: ${Object.keys(X.fields).join(", ")}.`);return{expression:`${H}${G.quoteIdent(B.column)}`,direction:W,nulls:M}}function x7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:Y}=X;if(J!=="asc"&&J!=="desc")throw new T(Z,$.name,z,'Expected "asc" or "desc".');if(Y===void 0)return{direction:J};if(Y!=="first"&&Y!=="last")throw new K(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:Y}}throw new K(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var v7=new Set(["asc","desc"]),k7=new Set(["first","last"]);function D0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),Y=J?Z:[Z],H=[];for(let G=0;G<Y.length;G++){let V=Y[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof V!=="object"||V===null)throw new T("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(V)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new K(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let P=B9($,$.relations[M],B,X,z.dialect,(L)=>W(L)?.[M],H.length);H.push({column:M,direction:P.direction,...P.nulls?{nulls:P.nulls}:{},expression:P.expression});continue}let D=$.fields[M];if(!D)throw new g(M,$.name,Object.keys($.fields));H.push({column:D.column,...D9($,M,B,X)})}}return H}function D9($,Z,X,z){if(typeof X==="string"){if(!v7.has(X))throw new T(`orderBy.${Z}: ${JSON.stringify(X)}`,$.name,z,'Expected "asc" or "desc".');return{direction:X}}if(typeof X==="object"&&X!==null){let{sort:J,nulls:Y}=X,H=D9($,Z,J,z).direction;if(Y===void 0)return{direction:H};if(typeof Y!=="string"||!k7.has(Y))throw new K(`orderBy.${Z}.nulls: ${JSON.stringify(Y)}`,$.name,z,'Expected "first" or "last".');return{direction:H,nulls:Y}}throw new K(`orderBy.${Z}`,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}function Y3($){return $.map((Z)=>({...Z,direction:Z.direction==="asc"?"desc":"asc",...Z.nulls?{nulls:Z.nulls==="first"?"last":"first"}:{}}))}function r($,Z,X){if($.length===0)return null;return x($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return x([z.expression,j(J)],"");return j(`${X??""}${Z.quoteIdent(z.column)}${J}`)}),", ")}function H3($,Z,X,z,J){if(typeof J!=="number"||!Number.isInteger(J))throw new T(X,$,Z,`Expected an integer, got ${JSON.stringify(J)}.`);if(z==="skip"&&J<0)throw new T(X,$,Z,"A 'skip' counts rows to pass over, so it cannot be negative. Prisma rejects one too.")}function Q0($,Z,X,z,J,Y=!1){if(X?.take!==void 0)H3($.name,Z,"take","take",X.take);if(X?.skip!==void 0)H3($.name,Z,"skip","skip",X.skip);let H=Y?1:X?.take,G=X?.skip,V=J;if((H!==void 0||G!==void 0)&&V.length===0&&!Y)V=$.primaryKey.map((P)=>({column:$.fields[P]?.column??P,direction:"asc"}));let M=typeof H==="number"&&H<0;if(M)V=Y3(V);let B=H===void 0?null:Y?()=>1:(P)=>Math.abs(Number(P?.take)),D=G===void 0?null:(P)=>Number(P?.skip);return{clause:z.paginate(B,D),terms:V,reversed:M}}function J0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new K("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new K("select + omit",$.name,X,"'select' names what to keep and 'omit' what to drop, so the two describe different column lists. Prisma allows only one of them on "+"the same query. Drop the 'omit' \u2014 a 'select' already excludes "+"everything it does not name.");if(z===void 0||z===null)return f7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new T("select",$.name,X,"Expected an object.");let Y=[];for(let[G,V]of Object.entries($.fields))if(z[G]===!0)Y.push(V);let H=0;for(let G of Object.keys(z)){let V=z[G];if(V===void 0)continue;if(G in $.relations){if(V!==!1)H++;continue}if(G===n){if(V!==!1)H++;continue}if(!(G in $.fields))throw new g(G,$.name,Object.keys($.fields));if(typeof V!=="boolean")throw new T(`select.${G}`,$.name,X,"Expected true or false.")}if(Y.length===0&&H===0)throw new K("select",$.name,X,"At least one field must be selected.");return Y}function f7($,Z,X){if(Z===void 0||Z===null)return Object.values($.fields);if(typeof Z!=="object"||Array.isArray(Z))throw new T("omit",$.name,X,"Expected an object of fields.");let z=new Set;for(let Y of Object.keys(Z)){let H=Z[Y];if(H===void 0)continue;if(Y in $.relations)throw new K(`omit.${Y}`,$.name,X,`'${Y}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(Y in $.fields))throw new g(Y,$.name,Object.keys($.fields));if(typeof H!=="boolean")throw new T(`omit.${Y}`,$.name,X,"Expected true or false.");if(H)z.add(Y)}let J=Object.values($.fields).filter((Y)=>!z.has(Y.name));if(J.length===0)throw new K("omit",$.name,X,`It omits every field on ${$.name}, which leaves no column to select. Prisma rejects that too.`);return J}function V3($,Z,X){if(X.length===0)return{fields:Z};let z=new Set(Z.map((H)=>H.name)),J=X.filter((H)=>!z.has(H));if(J.length===0)return{fields:Z};let Y=new Set([...z,...J]);return{fields:Object.values($.fields).filter((H)=>Y.has(H.name)),hidden:J}}var P9=new Set(["where","orderBy","select","omit","include","take","skip"]),j9=new Set(["where","select","omit","include"]),M3=10;function y0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function S0($,Z,X,z,J=P0){let Y=h0($,Z,z);if(Y.length===0)return{plans:[],keyFields:[]};let H=[],G=new Set;for(let V of Y){T9($,V,z);let W=U9($,V);R9(W,V.node,z,2);let M=J.plan({parent:$,child:W,relation:V.relation,as:V.as,node:V.node,locate:V.locate,dialect:X,operation:z});H.push(M);for(let B of M.parentFields)G.add(B)}return{plans:H,keyFields:[...G]}}async function D3($,Z,X,z,J){let Y=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(Y.length===0)return;for(let H of $){if(H.root)continue;await H.load(Y,z,J)}if(Z&&Z.length>0)for(let H of Y)for(let G of Z)delete H[G]}function h0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;L9($,z,J,X);let Y=[];if(z!==void 0&&z!==null){if(typeof z!=="object"||Array.isArray(z))throw new T("include",$.name,X,"Expected an object.");for(let H of Object.keys(z).sort()){let G=z[H];if(G===void 0||G===!1)continue;if(H===n)continue;let V=$.relations[H];if(!V)throw new f0(H,$.name,Object.keys($.relations));Y.push({as:H,relation:V,node:G,locate:(W)=>W?.include?.[H]})}return Y}if(J!==void 0&&J!==null&&typeof J==="object")for(let H of Object.keys(J).sort()){let G=J[H];if(G===void 0||G===!1)continue;let V=$.relations[H];if(!V)continue;Y.push({as:H,relation:V,node:G,locate:(W)=>W?.select?.[H]})}return Y}function L9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new K(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function T9($,Z,X){let z=Z.node;if(z===!0)return;if(typeof z!=="object"||z===null||Array.isArray(z))throw new T(Z.as,$.name,X,"Expected true or an object of relation arguments.");let J=z;L9($,J.include,J.select,X,Z.as);let Y=Z.relation.kind==="many";for(let H of Object.keys(J).sort()){if(J[H]===void 0)continue;if(Y&&(H==="take"||H==="skip")){g7($,Z,X,H,J[H]);continue}if(Y?P9.has(H):j9.has(H))continue;if(H==="lock")throw new k0(`${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(H==="orderBy"&&!Y)throw new K(`${Z.as}.orderBy`,$.name,X,"Prisma does not accept 'orderBy' on a to-one relation \u2014 there is at "+"most one row to order.");if(H==="take"||H==="skip")throw new K(`${Z.as}.${H}`,$.name,X,`Prisma does not accept '${H}' on a to-one relation.`);throw new K(`${Z.as}.${H}`,$.name,X,`A relation node takes ${[...Y?P9:j9].sort().join(", ")}.`)}}function g7($,Z,X,z,J){H3($.name,X,`${Z.as}.${z}`,z,J)}function c3($,Z){let X=$.node;if(typeof X!=="object"||X===null||Array.isArray(X))return;for(let z of["take","skip"]){if(X[z]===void 0)continue;throw new K(`${$.as}.${z}`,$.parent.name,$.operation,`A '${z}' inside a to-many relation is per parent, and the batched `+"relation planner serves every parent from one query \u2014 so the only "+`limit it could emit would page every parent's children as one set. Only the lateral join strategy can express it, by paginating inside a subquery that already runs once per parent row, and it needs Postgres: ${Z}. Load '${$.as}' as its own query, or narrow it with 'where'.`)}}function R9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)J0($,Z,X);let J=h0($,Z,X);if(J.length===0)return;if(z>M3)throw new p3($.name,M3);for(let Y of J)T9($,Y,X),R9(U9($,Y),Y.node,X,z+1)}function I9($,Z,X,z){if($.parentFields.length!==1)throw new K(X.name,Z.name,z,`${X.name} joins on ${$.parentFields.length} fields (${$.parentFields.join(", ")}), and it is planned through a join table, which links two models by a single primary key each side. Prisma does not build an implicit many-to-many over a composite key.`);return{parentField:$.parentFields[0],childField:$.childFields[0],join:$.join}}function B0($,Z,X,z){if(X.joinTable)return h7($,Z,X);if(X.from.length>0)return K9($,X,X.from,X.to,z);let J=y7($,Z,X);if(J.from.length===0)throw new c($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return K9($,X,J.to,J.from,z)}function K9($,Z,X,z,J){if(X.length===0)throw new K(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new c($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function y7($,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 c($.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 h7($,Z,X){let{table:z,a:J,b:Y}=X.joinTable;if(J===Y){let G=X.joinTable.ownerColumn;if(!G)throw new K(X.name,$.name,"include",`${X.name} is a self-referential implicit many-to-many, and the generated artifact predates support for one. Re-run \`prisma generate\`.`);return{parentFields:[G3($,X)],childFields:[G3(Z,X)],join:{table:z,parentColumn:G,childColumn:G==="A"?"B":"A"}}}if($.name!==J&&$.name!==Y)throw new c($.name,X.name,`the join table '${z}' connects ${J} and ${Y}, neither of which is ${$.name}.`);let H=$.name===J?"A":"B";return{parentFields:[G3($,X)],childFields:[G3(Z,X)],join:{table:z,parentColumn:H,childColumn:H==="A"?"B":"A"}}}function G3($,Z){if($.primaryKey.length!==1)throw new c($.name,Z.name,`an implicit many-to-many joins on ${$.name}'s primary key, which has ${$.primaryKey.length} fields.`);return $.primaryKey[0]}function W3($,Z,X){let z=$.fields[X];if(!z)throw new c($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function U9($,Z){return X0($,Z.relation,Z.as)}function X0($,Z,X=Z.name){let z=Z.model;if(!a(z))throw new d3($.name,X,z,C9());let J=l(z)?.$schema;if(!J)throw new g0(z);return J}var Q9="batched",P0={name:Q9,plan($){c3($,"this query planned with the batched strategy");let Z=B0($.parent,$.child,$.relation,$.operation);for(let Y of Z.parentFields)_9($.parent,$.relation,W3($.parent,$.relation,Y));for(let Y of Z.childFields)_9($.child,$.relation,W3($.child,$.relation,Y));let X=W3($.parent,$.relation,Z.parentFields[0]),z=W3($.child,$.relation,Z.childFields[0]),J=$.relation.kind==="many";return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:Z.parentFields,strategy:Q9,load(Y,H,G){let V={parentKeyField:X,childKeyField:z,many:J,parents:Y,args:H,executor:G};return Z.join?m7($,Z,V):u7($,Z,V)}}}};async function u7($,Z,X){let{keys:z,byKey:J}=O9(X.parents,Z.parentFields);if(z.length===0)return;let Y=$.locate(X.args),H=N9(Y,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",H.args,!0);for(let V of G){let W=J.get(v0(Z.childFields.map((M)=>V[M])));if(!W)continue;for(let M of W)F9(M,$.as,V,X.many)}if(H.hidden)for(let V of G)for(let W of Z.childFields)delete V[W]}async function m7($,Z,X){let{keys:z,byKey:J}=O9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:Y}=$,H=Z.join,G=await p7(Y,H,z.map((P)=>Y.encode(P[0],X.parentKeyField)),X.executor),V=new Map,W=[];for(let P of G){let L=v0([Y.decode(P[H.parentColumn],X.parentKeyField)]),C=J.get(L);if(!C)continue;let F=Y.decode(P[H.childColumn],X.childKeyField),N=v0([F]),_=V.get(N);if(_===void 0)_=[],V.set(N,_),W.push([F]);for(let Q of C)_.push(Q)}if(W.length===0)return;let M=$.locate(X.args),B=N9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let P of D){let L=V.get(v0([P[Z.childFields[0]]]));if(!L)continue;for(let C of L)F9(C,$.as,P,X.many)}if(B.hidden)for(let P of D)delete P[Z.childFields[0]]}async function p7($,Z,X,z){let J=R(j(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:Y,binders:H}=d(J,$,{model:Z.table,operation:"include"}),G=A0();return z.query(Y,H.map((V)=>V(void 0,G)))}function N9($,Z,X,z,J){let Y=$===!0||$===null||typeof $!=="object"?{}:$,H=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:d7(z,Z,X,J),G={where:Y.where===void 0?H:{AND:[Y.where,H]}};if(Y.orderBy!==void 0)G.orderBy=Y.orderBy;if(Y.include!==void 0)G.include=Y.include;let V=Y.omit;if(V!==void 0){let B=Z.filter((D)=>V[D]===!0);if(B.length===0)G.omit=V;else{let D={...V};for(let P of B)delete D[P];return G.omit=D,{args:G,hidden:!0}}}let W=Y.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 d7($,Z,X,z){let J=Z.map((Y)=>$.fields[Y]?.type);if(J.every((Y)=>Y!==void 0)&&z.canBindCompositeIn(J))return{[z0]:G9(Z,X)};return{OR:X.map((Y)=>Object.fromEntries(Z.map((H,G)=>[H,Y[G]])))}}function v0($){return JSON.stringify($.map(c7))}function F9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function O9($,Z){let X=new Map,z=[];for(let J of $){let Y=Z.map((V)=>J[V]);if(Y.some((V)=>V===null||V===void 0))continue;let H=v0(Y),G=X.get(H);if(G===void 0)G=[],X.set(H,G),z.push(Y);G.push(J)}return{keys:z,byKey:X}}function c7($){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 _9($,Z,X){if(X.isList)throw new c($.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 c($.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 A9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),S9=!0;function s7($){S9=$}function i7(){return A9}function u0($,Z,X=[]){if(A9&&S9)return n7($,Z,X);return s3($,Z,X)}function s3($,Z,X=[]){let z=$.map((G)=>({key:G.name,column:G.column,field:G,decode:Z.needsDecode(G)})),J=z.length,Y=X.map((G)=>({key:G.key,many:G.kind==="many"})),H=Y.length;return(G)=>{let V=[];for(let W=0;W<G.length;W++){let M=G[W],B={};for(let D=0;D<J;D++){let P=z[D],L=M[P.column];B[P.key]=P.decode?Z.decode(L,P.field):L??null}for(let D=0;D<H;D++)B[Y[D].key]=Y[D].many?[]:null;V.push(B)}return V}}function n7($,Z,X){let z=[];for(let Y=0;Y<$.length;Y++){let H=$[Y],G=JSON.stringify(H.name),V=JSON.stringify(H.column);z.push(Z.needsDecode(H)?`${G}: d.decode(row[${V}], f[${Y}])`:`${G}: row[${V}] ?? null`)}for(let Y of X)z.push(`${JSON.stringify(Y.key)}: ${Y.kind==="many"?"[]":"null"}`);let J=`
|
|
3
3
|
return function shape(rows) {
|
|
4
4
|
const out = [];
|
|
5
5
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -10,4 +10,4 @@ import{ba as A6}from"../chunk-rb7518zz.js";import{$a as O6,Fa as z9,Ga as J9,Ha
|
|
|
10
10
|
};
|
|
11
11
|
`;try{return Function("d","f",J)(Z,$)}catch{return s3($,Z,X)}}function P3($,Z,X,z){let J=Z?.include??Z?.select;if(typeof J!=="object"||J===null)return[];let Y=J[n];if(Y===void 0||Y===!1)return[];let H=o7($,Y,z),G=[];for(let V of Object.keys(H).sort()){let W=H[V];if(W===void 0||W===!1)continue;let M=$.relations[V];if(!M)throw new f0(V,$.name,Object.keys($.relations));if(W!==!0&&(typeof W!=="object"||Array.isArray(W)))throw new T(`_count.select.${V}`,$.name,z,"Expected true or an object holding 'where'.");G.push(l7($,M,W,X,z,G.length,Z))}if(G.length===0&&Z?.select)throw new T("_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 l7($,Z,X,z,J,Y,H){let G=`_count.select.${Z.name}`;if(Z.kind!=="many")throw new K(G,$.name,J,`${Z.name} is a to-one relation. Counting it can only ever return 0 or 1, which is what its nullability already tells you.`);let V=N0($,Z,z,`_c${Y}`,`${z.quoteIdent($.table)}.`,J),W=X===!0?void 0:X?.where,M=H?.include!==void 0?"include":"select",B=(L)=>L?.[M]?.[n]?.select?.[Z.name]?.where,D=f(V.child,W,{dialect:z,operation:J,qualifier:V.qualifier},B),P=[j(`(select count(*) from ${V.source} where ${V.correlation}`)];if(D)P.push(j(" and "),D);return P.push(j(`) as ${z.quoteIdent(`_count.${Z.name}`)}`)),{as:Z.name,alias:`_count.${Z.name}`,column:R(...P)}}function o7($,Z,X){if(Z===!0){let J=b9($);if(J.length===0)throw new K("_count",$.name,X,`${$.name} has no to-many relations, so there is nothing for '_count: true' to count.`);return Object.fromEntries(J.map((Y)=>[Y,!0]))}if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw new T("_count",$.name,X,"Expected an object holding 'select'.");let z=Z.select;if(typeof z!=="object"||z===null||Array.isArray(z))throw new T("_count.select",$.name,X,"Expected an object naming the relations to count.");return z}var e=["_count","_avg","_sum","_min","_max"],q9=new Set(["where","orderBy","take","skip",...e]),t7=new Set(["Int","Float","BigInt","Decimal"]),r7=new Set(["Json","Bytes"]),p0={_count:"count",_avg:"avg",_sum:"sum",_min:"min",_max:"max"};function i3($){return $==="aggregate"}function d0($,Z,X,z){let J=Z==="count";e7($,Z,X,J);let Y=J?a7($,Z,X?.select):n3($,Z,X);if(Y.length===0)throw new K(Z,$.name,Z,J?"A 'select' on a count must name at least one field, or '_all'.":`An aggregate needs at least one of ${e.join(", ")}. Prisma rejects an empty one too.`);let H=f($,X?.where,{dialect:z,operation:Z},(C)=>C?.where),G=H?R(j(" where "),H):j(""),V=j(` from ${z.quoteIdent($.table)}`),W=x(Y.map((C)=>j(`${p0[C.kind]}(${C.field?z.quoteIdent(C.field.column):"*"}) as ${z.quoteIdent(C.alias)}`)),", "),M=D0($,X?.orderBy,Z,{dialect:z,locate:(C)=>C?.orderBy}),B=X?.take!==void 0||X?.skip!==void 0,D;if(!B)D=R(j("select "),W,V,G);else{let{clause:C,terms:F}=Q0($,Z,X,z,M),N=r(F,z),_=new Map;for(let Q of Y)if(Q.field)_.set(Q.field.column,Q.field.column);if(_.size===0){let Q=$.primaryKey[0]??Object.keys($.fields)[0],I=$.fields[Q]?.column??Q;_.set(I,I)}D=R(j("select "),W,j(` from (select ${[..._.values()].map((Q)=>z.quoteIdent(Q)).join(", ")}`),V,G,N?R(j(" order by "),N):j(""),C,j(`) as ${z.quoteIdent("sub")}`))}let{text:P,binders:L}=d(D,z,{model:$.name,operation:Z});return{text:P,bind:o(L),shape(C){let F=C[0]??{};if(J){let _={};for(let Q of Y)_[Q.as]=b0(Q,F[Q.alias],z);return _}let N={};for(let _ of Y){if(_.kind==="_count"&&_.as===j3){N._count=b0(_,F[_.alias],z);continue}let Q=N[_.kind]??={};Q[_.as]=b0(_,F[_.alias],z)}return N}}}var j3="";function n3($,Z,X){let z=[];for(let J of e){let Y=X?.[J];if(Y===void 0||Y===!1)continue;if(J==="_count"&&Y===!0){z.push({kind:J,as:j3,alias:m0(J,z.length)});continue}if(typeof Y!=="object"||Y===null||Array.isArray(Y))throw new T(J,$.name,Z,J==="_count"?"Expected true or an object of fields.":"Expected an object of fields.");for(let H of Object.keys(Y).sort()){let G=Y[H];if(G===void 0||G===!1)continue;if(J==="_count"&&H==="_all"){z.push({kind:J,as:"_all",alias:m0(J,z.length)});continue}let V=c0($,Z,J,H);K3($,Z,J,V),z.push({kind:J,field:V,as:H,alias:m0(J,z.length)})}}return z}function a7($,Z,X){if(typeof X!=="object"||X===null||Array.isArray(X))throw new T("select",$.name,Z,"Expected an object of fields.");let z=[];for(let J of Object.keys(X).sort()){let Y=X[J];if(Y===void 0||Y===!1)continue;if(J==="_all"){z.push({kind:"_count",as:"_all",alias:m0("_count",z.length)});continue}let H=c0($,Z,"_count",J);z.push({kind:"_count",field:H,as:J,alias:m0("_count",z.length)})}return z}var m0=($,Z)=>`${$}_${Z}`;function c0($,Z,X,z){let J=$.fields[z];if(!J){if(z in $.relations)throw new K(`${X}.${z}`,$.name,Z,`'${z}' is a relation. Aggregate its own model instead, or use '_count' inside an 'include' to count it per row.`);throw new g(z,$.name,Object.keys($.fields))}return J}function K3($,Z,X,z){if((X==="_sum"||X==="_avg")&&!t7.has(z.type))throw new K(`${X}.${z.name}`,$.name,Z,`'${z.name}' is a ${z.type}, and ${X} needs a number. Prisma does not offer it on this field either.`);if((X==="_min"||X==="_max")&&r7.has(z.type))throw new K(`${X}.${z.name}`,$.name,Z,`'${z.name}' is a ${z.type}, which has no ordering the two dialects agree on.`)}function b0($,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 e7($,Z,X,z){if(X===void 0||X===null){if(z)return;throw new K(Z,$.name,Z,`An aggregate needs at least one of ${e.join(", ")}.`)}if(typeof X!=="object"||Array.isArray(X))throw new T(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(q9.has(J))continue;if(J==="select"||J==="include")throw new K(J,$.name,Z,`An aggregate returns the functions it was given, so there is nothing to ${J==="select"?"select":"include"}. Prisma does not accept it either.`);throw new K(J,$.name,Z,`${Z} takes ${[...q9].sort().join(", ")}.`)}}var E9=new Set(["update","share"]),$2=new Set(["mode","skipLocked","noWait"]),l3='Expected "update", "share", or { mode: "update" | "share", skipLocked?: boolean, noWait?: boolean }.';function w9($,Z,X){if($===void 0)return;if(typeof $==="string"){if(E9.has($))return{mode:$,onLocked:"wait"};throw new T("lock",Z,X,l3)}if($===null||typeof $!=="object"||Array.isArray($))throw new T("lock",Z,X,l3);let z=$;for(let J of Object.keys(z))if(!$2.has(J))throw new T(`lock.${J}`,Z,X,"A lock takes mode, skipLocked and noWait.");if(typeof z.mode!=="string"||!E9.has(z.mode))throw new T("lock.mode",Z,X,l3);for(let J of["skipLocked","noWait"])if(z[J]!==void 0&&typeof z[J]!=="boolean")throw new T(`lock.${J}`,Z,X,"Expected a boolean.");if(z.skipLocked===!0&&z.noWait===!0)throw new T("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 Q3={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"])},Z2={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 x9($){return $ in Q3}var o3=new Set(["findFirst","findFirstOrThrow","findUnique","findUniqueOrThrow"]);function t3($,Z,X,z,J){if(X2($,Z,X),Z==="count"&&X?.select!==void 0&&X.select!==null)return d0($,Z,X,z);let Y=Z==="count"?{plans:[],keyFields:[]}:S0($,X,z,Z,J),G=Y.plans.some((w)=>w.root!==void 0)?`${z.quoteIdent($.table)}.`:void 0,V={dialect:z,operation:Z,qualifier:G},W=f($,X?.where,V,(w)=>w?.where);if(Z==="findUnique"||Z==="findUniqueOrThrow")v3($,X?.where,Z);let M=j(` from ${z.quoteIdent($.table)}`),B=W?R(j(" where "),W):j("");if(Z==="count"){let w=j(`select count(*) as ${z.quoteIdent("_count")}`),Z0=X?.take!==void 0||X?.skip!==void 0,s=D0($,X?.orderBy,Z,{dialect:z,locate:(E0)=>E0?.orderBy}),K0;if(!Z0)K0=R(w,M,B);else{let{clause:E0,terms:w3}=Q0($,Z,X,z,s,o3.has(Z)),e5=r(w3,z),M7=$.primaryKey[0]??Object.keys($.fields)[0];K0=R(w,j(` from (select ${z.quoteIdent($.fields[M7].column)}`),M,B,e5?R(j(" order by "),e5):j(""),E0,j(`) as ${z.quoteIdent("sub")}`))}let{text:U0,binders:M0}=d(K0,z,{model:$.name,operation:Z});return{text:U0,bind:o(M0),shape(E0){let w3=E0[0];return Number(w3?._count??0)}}}let D=J0($,X,Z),{plans:P,keyFields:L}=Y,{fields:C,hidden:F}=V3($,D,L),N=P.filter((w)=>w.root!==void 0),_=P3($,X,z,Z),Q=x([...C.map((w)=>j(`${G??""}${z.quoteIdent(w.column)}`)),...N.map((w)=>w.root.column),..._.map((w)=>w.column)],", "),I=R(...N.map((w)=>w.root.join)),{clause:O,terms:b,reversed:q}=Q0($,Z,X,z,D0($,X?.orderBy,Z,{dialect:z,locate:(w)=>w?.orderBy}),o3.has(Z)),A=r(b,z,G),U=w9(X?.lock,$.name,Z),S=R(j("select "),Q,M,I,B,A?R(j(" order by "),A):j(""),O,U?z.rowLock(U,$.table):j("")),{text:E,binders:h}=d(S,z,{model:$.name,operation:Z}),W0=u0(C,z,P.map((w)=>({key:w.as,kind:w.kind}))),j0=o3.has(Z);return{text:E,bind:o(h),relations:P.length>0?P:void 0,strategies:P.length>0?y0(P):void 0,hidden:F,shape(w){let Z0=W0(w);if(_.length>0)for(let s=0;s<Z0.length;s++){let K0=w[s]??{},U0={};for(let M0 of _)U0[M0.as]=Number(K0[M0.alias]??0);Z0[s]._count=U0}if(N.length>0)for(let s=0;s<Z0.length;s++){let K0=Z0[s],U0=w[s]??{};for(let M0 of N)K0[M0.as]=M0.root.decode(U0[M0.as])}if(q)Z0.reverse();return j0?Z0[0]??null:Z0}}}function X2($,Z,X){if(X===void 0||X===null)return;if(typeof X!=="object"||Array.isArray(X))throw new T(String(X),$.name,Z,"Expected an object.");if(X.select!==void 0&&X.include!==void 0)throw new K("select + include",$.name,Z,"Prisma allows only one of them on the same query.");let z=Q3[Z];for(let J of Object.keys(X).sort()){if(X[J]===void 0)continue;if(z.has(J))continue;let Y=Z2[J];if(Y)throw new k0(J,$.name,Z,Y);throw new K(J,$.name,Z,`${Z} takes ${[...z].sort().join(", ")}.`)}}var s0={name:"lateral",plan($){let Z=y9($.parent,$.relation,$.as,$.node,$.dialect,$.operation);if(Z)return c3($,`this node declined to fold (${Z})`),P0.plan($);let{dialect:X}=$,z=X0($.parent,$.relation,$.as),J=B0($.parent,z,$.relation,$.operation),Y=h9({parent:$.parent,child:z,relation:$.relation,as:$.as,node:$.node,locate:$.locate,link:J,dialect:X,operation:$.operation,depth:1,counter:{next:0}});return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:J.parentFields,strategy:"lateral",root:{column:R(j(`${Y.alias}.${X.quoteIdent("data")} as `),j(X.quoteIdent($.as))),join:R(j(" left join lateral ("),Y.subquery,j(`) as ${Y.alias} on true`)),decode:Y.decode,folded:Y.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 y9($,Z,X,z,J,Y){if(J.name!=="postgres")return"not postgres";if(Z.joinTable)return"implicit many-to-many";let H=X0($,Z,X);if(H.table===$.table)return"self-relation";let G=m9(z);if(G===void 0)return;if(J2(G))return"_count on a folded node";if(z2(H,G.orderBy))return"relation ordering on a folded node";for(let V of h0(H,G,Y)){let W=y9(H,V.relation,V.as,V.node,J,Y);if(W)return`${V.as}: ${W}`}return}function z2($,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 J2($){for(let Z of["include","select"]){let X=$[Z];if(typeof X!=="object"||X===null||Array.isArray(X))continue;let z=X[n];if(z!==void 0&&z!==!1)return!0}return!1}function h9($){let{dialect:Z,child:X,operation:z}=$,J=m9($.node),Y=$.relation.kind==="many",H=$.counter.next++,G=Z.quoteIdent(k9("__lat_",$.as,$.depth,H)),V=Z.quoteIdent(X.table),W=`${V}.`,M=J0(X,J,z),B=h0(X,J,z).map((U)=>{let S=X0(X,U.relation,U.as);return{as:U.as,relation:U.relation,fold:h9({parent:X,child:S,relation:U.relation,as:U.as,node:U.node,locate:(E)=>U.locate($.locate(E)),link:B0(X,S,U.relation,z),dialect:Z,operation:z,depth:$.depth+1,counter:$.counter})}}),D=H2(M,W,Z,B.map((U)=>({key:U.as,alias:U.fold.alias}))),P=R(...B.map((U)=>R(j(" left join lateral ("),U.fold.subquery,j(`) as ${U.fold.alias} on true`)))),L=j($.link.parentFields.map((U,S)=>`${W}${Z.quoteIdent(g9(X,$.link.childFields[S]).column)} = ${Z.quoteIdent($.parent.table)}.${Z.quoteIdent(g9($.parent,U).column)}`).join(" and ")),C=f(X,J?.where,{dialect:Z,operation:z,qualifier:W},(U)=>$.locate(U)?.where),F=R(j(` from ${V}`),P,j(" where "),L,C?R(j(" and "),C):j("")),N=V2(M,Z,Y,B.map((U)=>({key:U.as,decode:U.fold.decode}))),_=B.map((U)=>({as:U.as,model:U.relation.model,kind:U.relation.kind,folded:U.fold.folded})),Q=D0(X,J?.orderBy,z);if(!Y)return{alias:G,folded:_,decode:N,subquery:R(j("select "),D,j(` as ${Z.quoteIdent("data")}`),F,j(" limit 1"))};let I=Y2($,J,Q,X);if(!I){let U=r(Q,Z,W);return{alias:G,folded:_,decode:N,subquery:R(j("select coalesce(json_agg("),D,U?R(j(" order by "),U):j(""),j(`), '[]'::json) as ${Z.quoteIdent("data")}`),F)}}let O=Z.quoteIdent(k9("__page_",$.as,$.depth,H)),b=I.terms.map((U,S)=>j(`, ${W}${Z.quoteIdent(U.column)} as ${Z.quoteIdent(u9(S))}`)),q=r(v9(I.inner),Z),A=r(v9(I.terms),Z,`${O}.`);return{alias:G,folded:_,decode:N,subquery:R(j(`select coalesce(json_agg(${O}.${Z.quoteIdent("data")}`),A?R(j(" order by "),A):j(""),j(`), '[]'::json) as ${Z.quoteIdent("data")} from (select `),D,j(` as ${Z.quoteIdent("data")}`),...b,F,q?R(j(" order by "),q):j(""),I.clause,j(`) as ${O}`))}}function Y2($,Z,X,z){let J=Z?.take,Y=Z?.skip;if(J===void 0&&Y===void 0)return;let H=X.length>0?X:z.primaryKey.map((W)=>({column:z.fields[W]?.column??W,direction:"asc"})),G=J===void 0?null:(W)=>Math.abs(Number($.locate(W)?.take)),V=Y===void 0?null:(W)=>Number($.locate(W)?.skip);return{clause:$.dialect.paginate(G,V),terms:H,inner:typeof J==="number"&&J<0?Y3(H):H}}var u9=($)=>`__ord_${$}`;function v9($){return $.map((Z,X)=>({...Z,column:u9(X),expression:void 0}))}function k9($,Z,X,z){return X===1?`${$}${Z}`:`${$}${Z}_${z}`}function m9($){if($===!0||$===void 0||$===null)return;if(typeof $!=="object"||Array.isArray($))return;return $}function H2($,Z,X,z){let J=$.map((Y)=>{let H=`${Z}${X.quoteIdent(Y.column)}`,G=Y.type==="BigInt"?`${H}::text${Y.isList?"[]":""}`:H;return`'${Y.name}', ${G}`});for(let Y of z)J.push(`'${Y.key}', ${Y.alias}.${X.quoteIdent("data")}`);return j(`json_build_object(${J.join(", ")})`)}function V2($,Z,X,z){let J=$.map((H)=>({field:H,convert:G2(H)})).filter((H)=>H.convert!==void 0),Y=(H)=>{if(H===null||H===void 0||typeof H!=="object")return null;let G=H;for(let{field:V,convert:W}of J)G[V.name]=W(G[V.name]);for(let V of z)G[V.key]=V.decode(G[V.key]);return G};return(H)=>{let G=typeof H==="string"?W2(H):H??null;if(X){if(!Array.isArray(G))return[];return G.map(Y).filter((V)=>V!==null)}return Y(G)}}function G2($){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 W2($){try{return JSON.parse($)}catch{return null}}function g9($,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 p9($){return $.name==="postgres"?s0:P0}function r3($,Z,X){if($===void 0)return p9(Z);if($==="batched")return P0;if($==="lateral")return s0;throw new K(`strategy: ${JSON.stringify($)}`,X.model,X.operation,'Unknown relation strategy. Expected "batched" or "lateral".')}var M2=3,d9=[2,3];var a3=21;class e3 extends Error{constructor($){super(`The generated model artifact is version ${$}, but this version of gemi reads version ${d9.join(" or ")}. Re-run \`prisma generate\` to refresh app/models/generated.`);this.name="StaleSchemaArtifactError"}}function B2($){if(!d9.includes($))throw new e3($)}var D2=new Set(["cuid","uuid","nanoid","ulid","now","value"]);function i9($){return D2.has($.kind)}function i0($){if($.isUpdatedAt)return!0;return $.default!==void 0&&i9($.default)}function z5($,Z){if($.isUpdatedAt)return Z;let X=$.default;if(!X)return;switch(X.kind){case"cuid":return n9();case"uuid":return t9(X.version??4);case"nanoid":return l9(X.length??a3);case"ulid":return o9();case"now":return Z;case"value":return $.type==="Json"?P2($,X.value):X.value;default:return}}function P2($,Z){if($.isList&&Array.isArray(Z))return Z.map((z)=>c9($,z));let X=c9($,Z);return X===null&&typeof Z==="string"?X5:X}function c9($,Z){if(typeof Z!=="string")return Z;try{return JSON.parse(Z)}catch{throw Error(`gemi ORM: the @default of the Json field '${$.name}' (column '${$.column}') is not valid JSON: ${JSON.stringify(Z)}.`)}}function J5($,Z){let X=$.length,z=256-256%X,J=new Uint8Array(Z);crypto.getRandomValues(J);let Y="";for(let H=0;H<Z;H++){let G=J[H];while(G>=z){let V=new Uint8Array(1);crypto.getRandomValues(V),G=V[0]}Y+=$[G%X]}return Y}var j2="0123456789abcdefghijklmnopqrstuvwxyz",$5=36,Y5=4,K2=$5**Y5,Q2=0;function _2($,Z){return $.length>=Z?$:"0".repeat(Z-$.length)+$}var C2=Z5();function Z5(){return J5(j2,Y5)}function n9(){let $=Date.now().toString($5),Z=_2((Q2++%K2).toString($5),Y5);return`c${$}${Z}${C2}${Z5()}${Z5()}`}var L2="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";function l9($=a3){return J5(L2,$)}var s9="0123456789ABCDEFGHJKMNPQRSTVWXYZ",T2=10,R2=16;function o9($=Date.now()){let Z="",X=$;for(let z=0;z<T2;z++)Z=s9[X%32]+Z,X=Math.floor(X/32);return Z+J5(s9,R2)}function t9($=4){return $===7?U2():crypto.randomUUID()}var I2=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function U2(){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=I2;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 N2=["connect","connectOrCreate","create","createMany","disconnect","delete","update","set","updateMany","deleteMany","upsert"],r9=new Set(N2),F2=["disconnect","delete","update","set","updateMany","deleteMany","upsert"],O2=new Set(F2),A2=["createMany","set","updateMany","deleteMany"],Z4=new Set(A2.filter(($)=>$!=="createMany")),X4=new Set(["create","createMany"]),S2={},a9={contributions:[],before:[],after:[],keyFields:[]};function C3($,Z,X,z,J){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return a9;let Y=Object.keys(Z).sort().filter((V)=>(V in $.relations)).filter((V)=>Z[V]!==void 0);if(Y.length===0)return a9;let H={contributions:[],before:[],after:[],keyFields:[]},G=new Map;for(let V of Y){let W=$.relations[V],M=Z[V],B=(P)=>z(P)?.[V],D=H.contributions.length;b2($,W,M,X,B,H,J);for(let P=D;P<H.contributions.length;P++){let L=H.contributions[P].field,C=G.get(L);if(C!==void 0&&C!==V)throw new K(`data.${V}`,$.name,X,`'${L}' is written by both the '${C}' and '${V}' relations, which join on it in common. Prisma lets the last key in 'data' win; gemi plans relations in a fixed order and will not guess which row you meant. Write one of them through the relation and set the other's own columns directly.`);G.set(L,V)}}return H}function b2($,Z,X,z,J,Y,H){if(typeof X!=="object"||X===null||Array.isArray(X))throw new T(`data.${Z.name}`,$.name,z,"Expected an object holding 'connect' or 'create'.");let G=Object.keys(X).sort().filter((B)=>X[B]!==void 0);if(G.length===0)return;let V=X0($,Z),W=B0($,V,Z,z);if(W.join){let B=I9(W,$,Z,z);for(let D of G)x2($,Z,V,B,D,X[D],z,(P)=>J(P)?.[D],Y,H);return}for(let B of G){if(!r9.has(B)){let D=S2[B];throw new K(`data.${Z.name}.${B}`,$.name,z,`Only ${[...r9].sort().join(", ")} are implemented.`+(D?` '${B}' is not: ${D}`:""))}if(O2.has(B)&&X4.has(z))throw new K(`data.${Z.name}.${B}`,$.name,z,`'${B}' acts on rows already linked to this one, and a '${z}' `+"has none yet \u2014 Prisma refuses it here too. Use it on an 'update'.")}let M=Z.from.length>0;for(let B of G){let D=X[B],P=(L)=>J(L)?.[B];if(M)q2($,Z,V,W,B,D,z,P,Y);else E2($,Z,V,W,B,D,z,P,Y)}}function q2($,Z,X,z,J,Y,H,G,V){let{parentFields:W,childFields:M}=z,B=()=>{for(let _ of W)V.contributions.push({field:_,value:(Q,I)=>I.resolved[_]})},D=(_,Q)=>{for(let I=0;I<W.length;I++)_.resolved[W[I]]=Q[I]??null},P=Object.values(X.relations).filter((_)=>_.relationName===Z.relationName&&!(X.name===$.name&&_.name===Z.name)),L=new Set(W),C=W.every((_)=>$.fields[_]?.nullable===!0)&&$.uniques.some((_)=>_.length===L.size&&_.every((Q)=>L.has(Q)))&&P.length===1&&P[0].kind!=="many",F=!X4.has(H);if(J==="createMany")throw new K(`data.${Z.name}.createMany`,$.name,H,`'${Z.name}' is a to-one: this row holds the foreign key, so there is one related row at most and nothing to create many of. Prisma does not accept it here either.`);if(J==="create"){V.before.push({relation:Z.name,operation:"create",async run(_,Q,I){let O=await I.exec(Z.model,"create",{data:G(_),select:v(M)},!1);D(Q,p(O,M))}}),B();return}if(J==="disconnect"){W5($,Z,W,{model:$.name,operation:H,argument:`data.${Z.name}.disconnect`}),Y4($,Z,X,Y,J,H);let _=M5(J,Y);if(_===null||_===void 0)return;if(Y===!0){for(let Q of W)V.contributions.push({field:Q,value:()=>null});return}V.before.push({relation:Z.name,operation:"disconnect",async run(Q,I,O){D(I,$4(W));let b=await O.exec($.name,"findFirst",{where:Q?.where,select:v(W)},!0),q=p(b,W);if(!l0(q))return;if(D(I,q),await O.exec(Z.model,"findFirst",{where:_0(G(Q),m(z,b)),select:v(M)},!1))D(I,$4(W))}}),B();return}if(J==="delete")throw new K(`data.${Z.name}.delete`,$.name,H,`'${Z.name}' is a to-one whose foreign key lives on this row, so deleting through it would remove a row this statement is not about. Delete it directly, or 'disconnect' it first.`);if(J==="update"){V.keyFields.push(...W),G5($,Z,X,J,Y,H),V.after.push({relation:Z.name,operation:"update",async run(_,Q,I,O){let b=O[0];if(!b)return;if(!l0(p(b,W)))throw new $0(Z.model,"update");let q=G(_),A=q!==null&&typeof q==="object"&&q.data!==void 0,U=q,S=A?U.data:q,E=A?U.where:void 0,h=_0(E,m(z,b));if(E!==void 0){if(!await I.exec(Z.model,"findFirst",{where:h,select:v(M)},!1))throw new $0(Z.model,"update")}await I.exec(Z.model,"updateMany",{where:h,data:S},!1)}});return}if(Z4.has(J))throw new K(`data.${Z.name}.${J}`,$.name,H,`'${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"){G5($,Z,X,J,Y,H),z4($,Z,X,Y,H,!1),V.before.push({relation:Z.name,operation:"upsert",async run(_,Q,I){let O=G(_),b=await I.exec($.name,"findFirst",{where:_?.where,select:v(W)},!0);if(l0(p(b,W))){let A=_0(O?.where,m(z,b)),U=await I.exec(Z.model,"findFirst",{where:A,select:v(M)},!1);if(U){D(Q,p(U,M)),await I.exec(Z.model,"updateMany",{where:A,data:O?.update},!1);return}}let q=await I.exec(Z.model,"create",{data:O?.create,select:v(M)},!1);D(Q,p(q,M))}}),B();return}if(J==="connectOrCreate"){D5($,Z,X,Y,H,!1),V.before.push({relation:Z.name,operation:"connectOrCreate",async run(_,Q,I){let O=G(_)?.where,b=await I.exec(Z.model,"findUnique",{where:O,select:v(M)},!1);if(b){let A=p(b,M);if(C)await V5($,W,A,_?.where,F,I);D(Q,A);return}let q=await I.exec(Z.model,"create",{data:G(_)?.create,select:v(M)},!1);D(Q,p(q,M))}}),B();return}if(typeof Y!=="object"||Y===null||Array.isArray(Y))throw new T(`data.${Z.name}.connect`,$.name,H,"Expected an object naming a unique field.");if(M.length===1&&Y[M[0]]!==void 0&&Object.keys(Y).filter((_)=>Y[_]!==void 0).length===1){let _=M[0],Q=W[0];if(C)V.before.push({relation:Z.name,operation:"connect",async run(I,O,b){await V5($,[Q],[G(I)?.[_]],I?.where,F,b)}});V.contributions.push({field:Q,value:(I)=>G(I)?.[_]});return}u(X,Y,{model:$.name,operation:H,argument:`data.${Z.name}.connect`}),V.before.push({relation:Z.name,operation:"connect",async run(_,Q,I){let O=await I.exec(Z.model,"findUniqueOrThrow",{where:G(_),select:v(M)},!1),b=p(O,M);if(C)await V5($,W,b,_?.where,F,I);D(Q,b)}}),B()}function E2($,Z,X,z,J,Y,H,G,V){let{parentFields:W,childFields:M}=z;V.keyFields.push(...W);let B=Z.kind!=="many"&&M.every((P)=>X.fields[P]?.nullable===!0),D=Y;if(Z.kind!=="many"){if(Z4.has(J))throw new K(`data.${Z.name}.${J}`,$.name,H,`'${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(Y))throw new T(`data.${Z.name}.${J}`,$.name,H,`'${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.`);G5($,Z,X,J,Y,H);let P=G;G=(L)=>M5(J,P(L)),Y=M5(J,Y)}if(J==="upsert"){z4($,Z,X,Y,H,Z.kind==="many"),V.after.push({relation:Z.name,operation:"upsert",async run(P,L,C,F){let N=F[0];if(!N)return;for(let _ of Y0(G(P))){let Q=_0(_.where,m(z,N));if(await C.exec(Z.model,"findFirst",{where:Q,select:v(M)},!1)){await C.exec(Z.model,"updateMany",{where:Q,data:_.update},!1);continue}await C.exec(Z.model,"create",{data:{..._.create,...m(z,N)},select:v(M)},!1)}}});return}if(J==="updateMany"||J==="deleteMany"){let P=J==="updateMany";k2($,Z,Y,J,H),V.after.push({relation:Z.name,operation:J,async run(L,C,F,N){let _=N[0];if(!_)return;let Q=G(L),I=P?Q?.where:Q,O=_0(I,m(z,_));await F.exec(Z.model,J,P?{where:O,data:Q?.data}:{where:O},!1)}});return}if(J==="set"){_3($,Z,X,Y,"set",H),W5(X,Z,M,{model:$.name,operation:H,argument:`data.${Z.name}.set`}),V.after.push({relation:Z.name,operation:"set",async run(P,L,C,F){let N=F[0];if(!N)return;let _=m(z,N);await n0(Z.model,M,p(N,W),C);for(let Q of Y0(G(P)))await C.exec(Z.model,"updateMany",{where:Q,data:_},!1)}});return}if(J==="update"){f2($,Z,X,Y,H,Z.kind==="many"),V.after.push({relation:Z.name,operation:"update",async run(P,L,C,F){let N=F[0];if(!N)return;let _=Y0(G(P));for(let Q=0;Q<_.length;Q++){let I=_[Q],O=_0(I.where,m(z,N));if(!await C.exec(Z.model,"findFirst",{where:O,select:v(M)},!1))throw new $0(Z.model,"update");await C.exec(Z.model,"updateMany",{where:O,data:I.data},!1)}}});return}if(J==="disconnect"||J==="delete"){let P=J==="delete";if(!P)W5(X,Z,M,{model:$.name,operation:H,argument:`data.${Z.name}.disconnect`});if(Z.kind==="many")_3($,Z,X,Y,J,H);else Y4($,Z,X,D,J,H);V.after.push({relation:Z.name,operation:J,async run(L,C,F,N){let _=N[0];if(!_)return;let Q=Y0(G(L));for(let I=0;I<Q.length;I++){let O=_0(Q[I],m(z,_));if(!P){await F.exec(Z.model,"updateMany",{where:O,data:J4(M)},!1,M);continue}if(!await F.exec(Z.model,"findFirst",{where:O,select:v(M)},!1)){if(Z.kind!=="many")throw new $0(Z.model,"delete");throw new K(`data.${Z.name}.delete`,$.name,H,`the row named by ${JSON.stringify(Q[I])} is not connected to this ${$.name}. Prisma raises here too, rather than deleting a row belonging to somebody else.`)}await F.exec(Z.model,"deleteMany",{where:O},!1)}}});return}if(J==="create"){V.after.push({relation:Z.name,operation:"create",async run(P,L,C,F){let N=F[0];if(!N)return;if(B)await n0(Z.model,M,p(N,W),C);for(let _ of Y0(G(P)))await C.exec(Z.model,"create",{data:{..._,...m(z,N)},select:v(M)},!1)}});return}if(J==="createMany"){if(Z.kind!=="many")throw new K(`data.${Z.name}.createMany`,$.name,H,`'${Z.name}' is a to-one, so there is nothing to create many of. Prisma does not accept it here either.`);g2($,Z,Y,H),V.after.push({relation:Z.name,operation:"createMany",async run(P,L,C,F){let N=F[0];if(!N)return;let _=Y0(G(P)?.data).map((Q)=>({...Q,...m(z,N)}));await C.exec(Z.model,"createMany",{data:_},!1)}});return}if(J==="connectOrCreate"){D5($,Z,X,Y,H,Z.kind==="many"),V.after.push({relation:Z.name,operation:"connectOrCreate",async run(P,L,C,F){let N=F[0];if(!N)return;let _=Y0(G(P));for(let Q=0;Q<_.length;Q++){let I=_[Q],O=await C.exec(Z.model,"findUnique",{where:I.where,select:v(M)},!1);if(O){if(B&&M.every((b,q)=>B5(O[b],N[W[q]])))continue;if(B)await n0(Z.model,M,p(N,W),C);await C.exec(Z.model,"update",{where:I.where,data:m(z,N),select:v(M)},!1,M);continue}await C.exec(Z.model,"create",{data:{...I.create,...m(z,N)},select:v(M)},!1)}}});return}_3($,Z,X,Y,J,H),V.after.push({relation:Z.name,operation:"connect",async run(P,L,C,F){let N=F[0];if(!N)return;let _=[];for(let Q of Y0(G(P))){if(B&&await v2(Z.model,M,Q,p(N,W),C))continue;_.push(Q)}if(_.length===0)return;if(B)await n0(Z.model,M,p(N,W),C);for(let Q of _)await C.exec(Z.model,"update",{where:Q,data:m(z,N),select:v(M)},!1,M)}})}var e9=new Set(["connect","connectOrCreate","disconnect","set","create"]),w2={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 x2($,Z,X,z,J,Y,H,G,V,W){if(J==="connectOrCreate")D5($,Z,X,Y,H,Z.kind==="many");if(!e9.has(J)){let L=w2[J];if(L)throw new K(`data.${Z.name}.${J}`,$.name,H,`'${Z.name}' is an implicit many-to-many, and '${J}' means something different through a join table. ${L}`);throw new K(`data.${Z.name}.${J}`,$.name,H,`'${Z.name}' is an implicit many-to-many. Only ${[...e9].sort().join(", ")} are implemented through its join table.`)}if(J==="connect"||J==="disconnect"||J==="set")_3($,Z,X,Y,J,H);let{join:M,parentField:B,childField:D}=z,P=(L)=>W.quoteIdent(L);V.keyFields.push(B),V.after.push({relation:Z.name,operation:J,async run(L,C,F,N){let _=N[0];if(!_)return;let Q=_[B];if(Q===null||Q===void 0)return;if(J==="set"){let b=await F.query(`select ${P(M.childColumn)} from ${P(M.table)} where ${P(M.parentColumn)} = ${W.placeholder(0)}`,[Q]),q=Array.from(b,(A)=>A[M.childColumn]);if(q.length>0){let A=await F.exec(Z.model,"findMany",{where:{[D]:{in:q}},select:{[D]:!0}},!1),U=Array.from(A,(S)=>S[D]);if(U.length>0)await H5(F,`delete from ${P(M.table)} where ${P(M.parentColumn)} = ${W.placeholder(0)} and ${P(M.childColumn)} in (`+U.map((S,E)=>W.placeholder(E+1)).join(", ")+")",[Q,...U])}}let I=Y0(G(L));if(I.length===0)return;let O=[];for(let b of I){if(J==="create"){let A=await F.exec(Z.model,"create",{data:b,select:{[D]:!0}},!1);if(A)O.push(A[D]);continue}if(J==="connectOrCreate"){let A=b,U=await F.exec(Z.model,"findUnique",{where:A.where,select:{[D]:!0}},!1);if(U){O.push(U[D]);continue}let S=await F.exec(Z.model,"create",{data:A.create,select:{[D]:!0}},!1);if(S)O.push(S[D]);continue}let q=await F.exec(Z.model,"findUniqueOrThrow",{where:b,select:{[D]:!0}},!1);if(q)O.push(q[D])}for(let b of O){if(J==="disconnect"){await H5(F,`delete from ${P(M.table)} where ${P(M.parentColumn)} = ${W.placeholder(0)} and ${P(M.childColumn)} = ${W.placeholder(1)}`,[Q,b]);continue}await H5(F,`insert into ${P(M.table)} (${P(M.parentColumn)}, ${P(M.childColumn)}) values (${W.placeholder(0)}, ${W.placeholder(1)}) on conflict do nothing`,[Q,b])}}})}async function H5($,Z,X){await $.query(Z,X)}function z4($,Z,X,z,J,Y){let H=`data.${Z.name}.upsert`,G=Array.isArray(z)?z:[z];for(let V of G){if(typeof V!=="object"||V===null||Array.isArray(V))throw new K(H,$.name,J,Y?"Expected an object with 'where', 'create' and 'update'.":"Expected an object with 'create' and 'update' \u2014 on a to-one the "+"'where' is optional, since the parent's key already names the row.");let W=V,M=Y?["where","create","update"]:["create","update"];for(let B of M)if(W[B]===void 0)throw new K(H,$.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(!Y)continue;u(X,W.where,{model:$.name,operation:J,argument:`data.${Z.name}.upsert.where`})}}function _0($,Z){if($===void 0||$===null||typeof $!=="object"||Array.isArray($)||Object.keys($).length===0)return Z;return{AND:[$,Z]}}function m($,Z){let X={};for(let z=0;z<$.childFields.length;z++)X[$.childFields[z]]=Z[$.parentFields[z]];return X}function v($){let Z={};for(let X of $)Z[X]=!0;return Z}function J4($){let Z={};for(let X of $)Z[X]=null;return Z}function $4($){return $.map(()=>null)}function p($,Z){return Z.map((X)=>$?.[X])}function l0($){return $.every((Z)=>Z!==null&&Z!==void 0)}async function n0($,Z,X,z){if(!l0(X))return;let J={};for(let H=0;H<Z.length;H++)J[Z[H]]=X[H];if((await z.exec($,"findMany",{where:J,select:v(Z)},!1)).length===0)return;await z.exec($,"updateMany",{where:J,data:J4(Z)},!1,Z)}async function v2($,Z,X,z,J){let Y=await J.exec($,"findUnique",{where:X,select:v(Z)},!1);if(Y===null||Y===void 0)return!1;return Z.every((H,G)=>B5(Y[H],z[G]))}async function V5($,Z,X,z,J,Y){if(!l0(X))return;if(J){let H=await Y.exec($.name,"findFirst",{where:z,select:v(Z)},!0);if(H===null||H===void 0)return;if(Z.every((G,V)=>B5(H[G],X[V])))return}await n0($.name,Z,X,Y)}function B5($,Z){if($===null||$===void 0||Z===null||Z===void 0)return!1;return $===Z||String($)===String(Z)}function k2($,Z,X,z,J){let Y=`data.${Z.name}.${z}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new K(Y,$.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 H=X;for(let G of["where","data"])if(H[G]===void 0)throw new K(Y,$.name,J,`Expected a '${G}' key \u2014 'updateMany' names which rows to `+"write and what to write to them.")}function f2($,Z,X,z,J,Y){let H=`data.${Z.name}.update`,G=Array.isArray(z)?z:[z],V=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new K(H,$.name,J,"Expected an object with 'where' and 'data'.");let M=W,B=Y?["where","data"]:["data"];for(let D of B)if(M[D]===void 0)throw new K(H,$.name,J,`Expected a '${D}' key \u2014 'update' names the row to write and `+"the columns to write to it.");if(Y)u(X,M.where,{model:$.name,operation:J,argument:`data.${Z.name}.update.where`});V.push(M)}return V}function _3($,Z,X,z,J,Y){let H=`data.${Z.name}.${J}`,G=Array.isArray(z)?z:[z],V=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new K(H,$.name,Y,"Expected an object naming a unique field, or an array of them.");u(X,W,{model:$.name,operation:Y,argument:`data.${Z.name}.${J}`}),V.push(W)}return V}function Y4($,Z,X,z,J,Y){if(z===void 0)return;if(typeof z==="boolean")return;if(z!==null&&typeof z==="object"&&!Array.isArray(z))return;throw new T(`data.${Z.name}.${J}`,$.name,Y,`'${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 G5($,Z,X,z,J,Y){if(z!=="update"&&z!=="upsert")return;let H=`data.${Z.name}.${z}`,G=(B)=>{throw new T(H,$.name,Y,B)};if(J===null||typeof J!=="object"||Array.isArray(J))G(`Expected an object, got ${JSON.stringify(J)??typeof J}. `+(z==="upsert"?"'upsert' on a to-one takes { create, update } \u2014 and an optional "+`'where' the connected ${X.name} has to match.`:`'update' on a to-one takes the ${X.name} columns directly, `+"or { data } \u2014 and an optional 'where' the connected row has to "+"match."));let V=J;if(!(z==="upsert"||V.data!==void 0))return;let M=z==="upsert"?["where","create","update"]:["where","data"];for(let B of Object.keys(V)){if(V[B]===void 0||M.includes(B))continue;G(`Unknown key '${B}'. '${z}' on a to-one takes ${M.map((D)=>`'${D}'`).join(", ")} and nothing else, so '${B}' would be dropped rather than applied \u2014 a misspelled `+"'where' would turn a filtered write into an unconditional one. Prisma refuses the same key by name.")}if(V.where!==void 0&&(V.where===null||typeof V.where!=="object"||Array.isArray(V.where)))G("'where' has to be an object of filters \u2014 Prisma's is a "+`'${X.name}WhereInput', which narrows *which* single row is written rather than choosing among several. Anything else is dropped by the conjunction that keeps this operand on the connected row, so the write would land unfiltered.`)}function W5($,Z,X,z){let J=X.find((Y)=>!$.fields[Y]?.nullable);if(J===void 0)return;throw new K(z.argument,z.model,z.operation,`'${$.name}.${J}' is required, so there is no value to leave `+"behind \u2014 a disconnected row would have to be deleted or repointed "+"instead. Prisma does not offer 'disconnect' on a required relation either.")}function D5($,Z,X,z,J,Y){let H=`data.${Z.name}.connectOrCreate`;if(Array.isArray(z)&&!Y){let W=Z.from.length>0;throw new T(H,$.name,J,`'${Z.name}' is a to-one: `+(W?"this row holds the foreign key":`${X.name} holds the foreign key`)+", so there is one row to point at and a list has no meaning. Prisma "+"refuses an array here too \u2014 as a validation error on the argument, "+"which is why this is a bad value rather than a gap.")}let G=Array.isArray(z)?z:[z];if(G.length===0)return[];let V=[];for(let W of G){if(typeof W!=="object"||W===null||Array.isArray(W))throw new K(H,$.name,J,"Expected an object with 'where' and 'create'.");let M=W;for(let D of["where","create"])if(M[D]===void 0)throw new K(H,$.name,J,`Expected a '${D}' key \u2014 'connectOrCreate' names the row to `+"look for and the row to write if it is not there.");let B=Object.keys(M).filter((D)=>D!=="where"&&D!=="create"&&M[D]!==void 0);if(B.length>0)throw new K(H,$.name,J,`Unexpected ${B.sort().join(", ")} \u2014 'connectOrCreate' takes `+"'where' and 'create'.");u(X,M.where,{model:$.name,operation:J,argument:`data.${Z.name}.connectOrCreate.where`}),V.push(M)}return V}function g2($,Z,X,z){let J=`data.${Z.name}.createMany`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new T(J,$.name,z,"Expected an object with a 'data' key \u2014 the rows go inside it, not "+"directly under 'createMany'.");let Y=Object.keys(X).filter((H)=>X[H]!==void 0);if(!Y.includes("data"))throw new T(J,$.name,z,"Expected a 'data' key.");for(let H of Y){if(H==="data")continue;throw new K(`${J}.${H}`,$.name,z,H==="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 Y0($){if($===void 0||$===null)return[];return Array.isArray($)?$:[$]}function M5($,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 C5={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"])},y2=new Set(["create","update","delete","upsert"]),H4=new Set(["createMany","updateMany","deleteMany"]);function V4($){return $ in C5}function L5($,Z,X,z){if(r2($,Z,X),!z.supportsReturning)throw new _5($.name,Z,z.name);switch(Z){case"create":return h2($,Z,X,z);case"createMany":return u2($,Z,X,z);case"update":case"updateMany":return d2($,Z,X,z);case"delete":case"deleteMany":return s2($,Z,X,z);case"upsert":return i2($,Z,X,z);default:throw new K(Z,$.name,Z,`'${Z}' is not a write operation. The writes are ${Object.keys(C5).sort().join(", ")}.`)}}function h2($,Z,X,z){let J=C3($,X?.data,Z,(V)=>V?.data,z),Y=G4($,X?.data,J.contributions,Z,z,(V)=>V?.data),H=o0($,X,z,Z,J),G=R(j(`insert into ${z.quoteIdent($.table)}`),R5([Y],z),H.clause);return R3($,G,z,Z,H,J)}function u2($,Z,X,z){let J=X?.data===void 0?[]:C4(X.data),Y=m2($,Z,X,z);if(J.length===0)return _4($,Z,z);let H=p2($,J,Z,z);if(H[0].length===0&&J.length>1)throw new K("data",$.name,Z,`All ${J.length} rows are empty and ${$.name} has no client-side default to fill, so there is no column to insert. A multi-row insert of nothing but database defaults cannot be expressed on both dialects. Call create ${J.length} times, or set at least one field per row.`);let G=o0($,void 0,z,Z,void 0),V=R(j(`insert into ${z.quoteIdent($.table)}`),R5(H,z),Y??j(""),G.clause),{text:W,binders:M}=d(V,z,{model:$.name,operation:Z});return{text:W,bind:o(M),shape:(B)=>({count:B.length})}}function m2($,Z,X,z){let J=X?.skipDuplicates;if(J===void 0)return null;if(typeof J!=="boolean")throw new T("skipDuplicates",$.name,Z,`Expected true or false, got ${JSON.stringify(J)}.`);let Y=z.ignoreConflicts();if(Y===null)throw new K("skipDuplicates",$.name,Z,`'skipDuplicates' is not available on ${z.name}. Prisma does not `+"offer it there either \u2014 it is a Postgres and MySQL argument. To "+"import a batch that may overlap, write the rows one at a time and catch UniqueConstraintError, or move this model to Postgres.");return J?Y:null}function p2($,Z,X,z){let J=Z.map((H,G)=>{if(typeof H!=="object"||H===null||Array.isArray(H))throw new T(`data[${G}]`,$.name,X,"Expected an object.");let V=new Set;for(let[W,M]of Object.entries(H)){if(M===void 0)continue;if(W in $.relations)throw new K(`data.${W}`,$.name,X,"createMany cannot contain nested writes. Use create per row.");if(!(W in $.fields))throw new g(W,$.name,Object.keys($.fields));V.add(W)}return V}),Y=[];for(let H of Object.values($.fields))if(J.some((V)=>V.has(H.name))||i0(H)||P5(H))Y.push(H);for(let H of Y){if(!J.some((W)=>!W.has(H.name)))continue;if(i0(H))continue;if(H.nullable)continue;if(P5(H))continue;if(H.default)throw new K(`data.${H.name}`,$.name,X,`Some rows set '${H.name}' and others leave it to the database default. A single multi-row insert cannot express both. Split the call, or set '${H.name}' on every row.`);let V=J.findIndex((W)=>!W.has(H.name));throw new L3($.name,`${X}.data[${V}]`,H.name)}for(let H of Y)if(H.isList)O0($,H,`data.${H.name}`,X,z);return Z.map((H,G)=>Y.map((V)=>{if(!J[G].has(V.name))return{field:V,value:P5(V)?Q4(V,z):U5(V,z)};if(V.isList)I5($,V,H?.[V.name],X,["set"]);let W=W4(V,H?.[V.name]);return{field:V,value:C0($,X,V,z,(M)=>{let B=C4(M?.data)[G]?.[V.name];return W?B?.set:B})}}))}function d2($,Z,X,z){let J=Z==="updateMany";if(X?.data===null)throw new T("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)u($,X?.where,{model:$.name,operation:Z,argument:"where"});if(J)M4($,X?.data,Z,"data","updateMany cannot contain nested writes \u2014 it has no single row to "+"attach them to. Use update per row.");let Y=J?void 0:C3($,X?.data,Z,(P)=>P?.data,z),H=B4($,X?.data,Y?.contributions??[],Z,z),G=f($,X?.where,{dialect:z,operation:Z},(P)=>P?.where),V=c2($,X,Z,z,Y),W=V===void 0?G:G?R(j("("),G,j(") and "),V):V;if(J&&H.length===0)return _4($,Z,z);let M=H.length===0,B=o0($,X,z,Z,Y),D=M?R(j("select "),B.selected,j(` from ${z.quoteIdent($.table)}`),G?R(j(" where "),G):j("")):R(j(`update ${z.quoteIdent($.table)} set `),x(H,", "),W?R(j(" where "),W):j(""),B.clause);return R3($,D,z,Z,B,Y)}function c2($,Z,X,z,J){let Y=Z?.skipIfUnchanged;if(Y===void 0||Y===!1)return;if(Y!==!0)throw new T("skipIfUnchanged",$.name,X,`Expected true or false, received ${K5(Y)}.`);if(J!==void 0&&(J.contributions.length>0||J.before.length>0||J.after.length>0))throw new K("skipIfUnchanged",$.name,X,"skipIfUnchanged compares the row's own columns, so it cannot be combined with a nested relation write. Write the relation in a separate call.");let H=Z.data,G=[];for(let V of T3($,H)){let W=$.fields[V],M=H[V],B=(D)=>D?.data?.[V];if(K4(M,W)){let D=Object.keys(M).filter((P)=>M[P]!==void 0);if(D.length!==1||D[0]!=="set")return;B=(P)=>P?.data?.[V]?.set}G.push(z.distinctFrom(z.quoteIdent(W.column),y(W,z,C0($,X,W,z,B)),W))}if(G.length===0)return;return R(j("("),x(G," or "),j(")"))}function s2($,Z,X,z){if(Z==="delete")u($,X?.where,{model:$.name,operation:Z,argument:"where"});let J=f($,X?.where,{dialect:z,operation:Z},(G)=>G?.where),Y=o0($,X,z,Z,void 0),H=R(j(`delete from ${z.quoteIdent($.table)}`),J?R(j(" where "),J):j(""),Y.clause);return R3($,H,z,Z,Y,void 0)}function i2($,Z,X,z){let J=u($,X?.where,{model:$.name,operation:Z,argument:"where"}),Y=J.length>1?J.join("_"):J[0],H=Object.keys(X.where).filter((C)=>C!==Y&&X.where[C]!==void 0);if(H.length>0)throw new K("where",$.name,Z,`The where clause carries ${H.join(", ")} beside the unique key '${Y}'. An upsert compiles its where into an 'on conflict' target, which can only be a key, so the extra ${H.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 C of["create","update"])M4($,X?.[C],Z,C,"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=T5($,X,J);if(G.length>0)throw new K("upsert",$.name,Z,`The where clause selects on ${J.join(", ")}, but 'create' does not set ${G.join(", ")}, so 'on conflict' cannot express it. Model.upsert runs this as a read and a write inside one transaction instead; reaching this means the statement was compiled directly.`);let V=n2(G4($,X?.create,[],Z,z,(C)=>C?.create),$,J,Z,z),W=`${z.quoteIdent($.table)}.`,M=B4($,X?.update,[],Z,z,(C)=>C?.update,W),B=x(J.map((C)=>j(z.quoteIdent(j5($,C).column))),", "),D=M.length>0?M:[j(`${z.quoteIdent(j5($,J[0]).column)} = ${W}${z.quoteIdent(j5($,J[0]).column)}`)],P=o0($,X,z,Z,void 0),L=R(j(`insert into ${z.quoteIdent($.table)}`),R5([V],z),j(" on conflict ("),B,j(") do update set "),x(D,", "),P.clause);return R3($,L,z,Z,P,void 0)}function T5($,Z,X){let z=T3($,Z?.create);return X.filter((J)=>!z.has(J))}function n2($,Z,X,z,J){let Y=new Set(X);return $.map((H)=>{if(!Y.has(H.field.name))return H;let G=o2(X,H.field.name);return{field:H.field,value:(V,W)=>{let M=H.value(V,W),B=J.encode(G(V),H.field);if(!l2(M,B))throw new K("upsert",Z.name,z,`'${H.field.name}' is ${K5(B)} in the where clause but ${K5(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 l2($,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 K5($){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 o2($,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 R5($,Z){let X=$[0];if(X.length===0)return j(" default values");let z=x(X.map((Y)=>j(Z.quoteIdent(Y.field.column))),", "),J=$.map((Y)=>R(j("("),x(Y.map((H)=>y(H.field,Z,H.value)),", "),j(")")));return R(j(" ("),z,j(") values "),x(J,", "))}function G4($,Z,X,z,J,Y){if(Z!==void 0&&Z!==null){if(typeof Z!=="object"||Array.isArray(Z))throw new T("data",$.name,z,"Expected an object.")}let H=T3($,Z),G=new Map(X.map((W)=>[W.field,W]));for(let W of G.keys())if(H.has(W))throw new K(`data.${W}`,$.name,z,`'${W}' is set both directly and through a nested relation write. Prisma keeps those two forms exclusive; use one of them.`);let V=[];for(let W of Object.values($.fields)){let M=G.get(W.name);if(M){V.push({field:W,value:(B,D)=>J.encode(M.value(B,D),W)});continue}if(H.has(W.name)){if(W.isList)O0($,W,`data.${W.name}`,z,J),I5($,W,Z?.[W.name],z,["set"]);let B=W4(W,Z?.[W.name]);V.push({field:W,value:C0($,z,W,J,(D)=>{let P=Y(D)?.[W.name];return B?P?.set:P})});continue}if(i0(W)){V.push({field:W,value:U5(W,J)});continue}if(W.default||W.nullable)continue;if(W.isList){O0($,W,`data.${W.name}`,z,J),V.push({field:W,value:Q4(W,J)});continue}throw new L3($.name,z,W.name)}return V}function I5($,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 Y=Object.keys(X).filter((H)=>X[H]!==void 0);if(Y.length===1&&J.includes(Y[0]))return;throw new K(`data.${Z.name}`,$.name,z,`'${Z.name}' is a scalar list, so it takes ${J.join(" or ")} \u2014 `+`or a bare array. Received ${Y.length===0?"an empty object":`{ ${Y.join(", ")} }`}. The arithmetic operators apply to a number, not to a list of them.`)}function W4($,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 T3($,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 g(z,$.name,Object.keys($.fields));X.add(z)}return X}function M4($,Z,X,z,J){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;for(let[Y,H]of Object.entries(Z)){if(H===void 0)continue;if(Y in $.relations)throw new K(`${z}.${Y}`,$.name,X,J)}}function B4($,Z,X,z,J,Y=(G)=>G?.data,H=""){if(Z!==void 0&&Z!==null){if(typeof Z!=="object"||Array.isArray(Z))throw new T("data",$.name,z,"Expected an object.")}let G=T3($,Z),V=new Map(X.map((B)=>[B.field,B])),W=V.size>0||G.size>0,M=[];for(let B of Object.values($.fields)){let D=J.quoteIdent(B.column),P=V.get(B.name);if(P){M.push(R(j(`${D} = `),i((L,C)=>J.encode(P.value(L,C),B))));continue}if(G.has(B.name)){M.push(t2($,B,D,`${H}${D}`,Z,z,J,(L)=>Y(L)?.[B.name]));continue}if(B.isUpdatedAt&&W)M.push(R(j(`${D} = `),y(B,J,U5(B,J))))}return M}var D4={increment:"+",decrement:"-",multiply:"*",divide:"/"},P4=["set","push"];function j4($){return $.isList?P4:["set",...Object.keys(D4)]}function t2($,Z,X,z,J,Y,H,G){let V=J[Z.name];if(Z.isList)O0($,Z,`data.${Z.name}`,Y,H),I5($,Z,V,Y,P4);if(K4(V,Z)){let W=Object.keys(V).filter((D)=>V[D]!==void 0);if(W.length!==1)throw new K(`data.${Z.name}`,$.name,Y,`Expected exactly one of ${j4(Z).join(", ")}.`);let[M]=W,B=(D)=>G(D)?.[M];if(M==="set")return R(j(`${X} = `),y(Z,H,C0($,Y,Z,H,B)));if(M==="push")return R(j(`${X} = `),H.listPush(z,y(Z,H,C0($,Y,Z,H,(D)=>{let P=B(D);return Array.isArray(P)?P:[P]}))));return R(j(`${X} = ${z} ${D4[M]} `),y(Z,H,C0($,Y,Z,H,B)))}return R(j(`${X} = `),y(Z,H,C0($,Y,Z,H,G)))}function K4($,Z){if(typeof $!=="object"||$===null||Array.isArray($)||$ instanceof Date||ArrayBuffer.isView($)||Z.type==="Json"&&!Z.isList)return!1;let X=j4(Z),z=Object.keys($);if(z.length===0)return!1;return z.every((J)=>X.includes(J))}function C0($,Z,X,z,J){return(Y)=>{let H=J(Y);if(k(H)==="any")throw new T(`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&&H!==null&&H!==void 0){if(!Array.isArray(H))throw new T(`data.${X.name}`,$.name,Z,`'${X.name}' is a scalar list, so it takes an array \u2014 or `+`{ set: [...] } / { push: \u2026 }. Received ${typeof H}.`);if(H.some((G)=>k(G)==="any"))throw new T(`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(H,X)}}function Q4($,Z){return()=>Z.encode([],$)}function P5($){return $.isList===!0&&!$.default&&!$.nullable}function U5($,Z){return(X,z)=>Z.encode(z5($,z.now),$)}function o0($,Z,X,z,J){if(H4.has(z))return{clause:j(` returning ${Q5($,X)}`),selected:j(Q5($,X)),fields:[],relations:[],counts:[]};let Y=J0($,Z,z),{plans:H,keyFields:G}=S0($,Z,X,z),{fields:V,hidden:W}=V3($,Y,[...G,...J?.keyFields??[]]),M=P3($,Z,X,z),B=x([...V.map((D)=>j(X.quoteIdent(D.column))),...M.map((D)=>D.column)],", ");return{clause:R(j(" returning "),B),selected:B,fields:V,hidden:W,relations:H,counts:M}}function _4($,Z,X){let z=Q5($,X),{text:J,binders:Y}=d(j(`select ${z} from ${X.quoteIdent($.table)} where false`),X,{model:$.name,operation:Z});return{text:J,bind:o(Y),shape:(H)=>({count:H.length})}}function Q5($,Z){let X=$.primaryKey[0]??Object.keys($.fields)[0];return Z.quoteIdent($.fields[X].column)}function j5($,Z){let X=$.fields[Z];if(!X)throw new g(Z,$.name,Object.keys($.fields));return X}function R3($,Z,X,z,J,Y){let{text:H,binders:G}=d(Z,X,{model:$.name,operation:z}),V=u0(J.fields,X,J.relations.map((B)=>({key:B.as,kind:B.kind}))),W=y2.has(z),M=H4.has(z);return{text:H,bind:o(G),relations:J.relations.length>0?J.relations:void 0,strategies:J.relations.length>0?y0(J.relations):void 0,hidden:J.hidden,before:Y&&Y.before.length>0?Y.before:void 0,after:Y&&Y.after.length>0?Y.after:void 0,counts:J.counts.length>0?!0:void 0,shape(B){if(M)return{count:B.length};let D=V(B);if(J.counts.length>0)for(let P=0;P<D.length;P++){let L=B[P]??{},C={};for(let F of J.counts)C[F.as]=Number(L[F.alias]??0);D[P]._count=C}return W?D[0]??null:D}}}function C4($){if($===void 0||$===null)return[];return Array.isArray($)?$:[$]}function r2($,Z,X){if(X===void 0||X===null)throw new K("args",$.name,Z,`${Z} requires arguments.`);if(typeof X!=="object"||Array.isArray(X))throw new T(String(X),$.name,Z,"Expected an object.");if(X.select!==void 0&&X.include!==void 0)throw new K("select + include",$.name,Z,"Prisma allows only one of them on the same query.");let z=C5[Z];for(let J of Object.keys(X).sort()){if(X[J]===void 0)continue;if(!z.has(J))throw new K(J,$.name,Z,`${Z} takes ${[...z].sort().join(", ")}.`)}for(let J of a2(Z))if(X[J]===void 0)throw new K(J,$.name,Z,`${Z} requires '${J}'.`)}function a2($){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[]}}class F5 extends Error{column;value;errors;constructor($,Z,X){super(`The stored value of ${$.model}.${$.field} does not match its schema: ${X.join("; ")}. Give the column a fallback (\`{ schema, invalid: (value) => ... }\` or \`invalid: "null"\`) for rows written before the shape changed, or fix the rows.`);this.column=$;this.value=Z;this.errors=X;this.name="JsonColumnError"}}class O5 extends Error{column;value;errors;constructor($,Z,X){super(`The stored value of ${$.model}.${$.field} does not match its schema: ${X.join("; ")}. Give the column a fallback (\`{ schema, invalid: (value) => ... }\` or \`invalid: "null"\`) for rows holding a value the schema no longer accepts, or fix the rows.`);this.column=$;this.value=Z;this.errors=X;this.name="ScalarColumnError"}}var L4=new WeakMap,e2=[],T4=new Set(["String"]);function A5($,Z){let X=a($.name)?l($.name):Z,z=L4.get(X);if(z)return z;let J=[...R4($,"json",X.$json),...R4($,"scalar",X.$columns)],Y=J.length===0?e2:J;return L4.set(X,Y),Y}function R4($,Z,X){if(X===void 0||X===null)return[];if(typeof X!=="object")throw TypeError(`${$.name}.${I4(Z)} must be an object of column schemas.`);return Object.entries(X).map(([z,J])=>$8($,Z,z,J))}function I4($){return $==="json"?"$json":"$columns"}function $8($,Z,X,z){let J=`${$.name}.${I4(Z)}.${X}`,Y=$.fields[X];if(Z==="json"&&(!Y||Y.type!=="Json"||Y.isList))throw TypeError(`${J}: ${$.name} has no \`Json\` column named "${X}". \`static $json\` declares schemas for the model's own (non-list) Json columns`+(Y&&T4.has(Y.type)&&!Y.isList?`; declare a \`${Y.type}\` column in \`static $columns\`.`:"."));if(Z==="scalar"&&(!Y||!T4.has(Y.type)||Y.isList))throw TypeError(`${J}: ${$.name} has no \`String\` column named "${X}". \`static $columns\` declares schemas for the model's own (non-list) String columns`+(Y?.type==="Json"&&!Y.isList?"; declare a `Json` column in `static $json`.":"."));let H=N5(z)?z:L0(z)?z.schema:void 0;if(!N5(H))throw TypeError(`${J} must be a schema (\`s.object(...)\` from gemi/ai) or \`{ schema, invalid }\`.`);let G=N5(z)?"throw":z.invalid??"throw";if(G!=="throw"&&G!=="null"&&typeof G!=="function")throw TypeError(`${J}.invalid must be "throw", "null" or a function.`);return{kind:Z,field:X,nullable:Y.nullable,schema:H,invalid:G}}var U4=Symbol("gemi.orm.typedColumnsLenient");function t0($){return{...$,[U4]:!0}}function N4($){return typeof $==="object"&&$!==null&&$[U4]===!0}function S5($,Z,X,z=!1){if($.length===0||X.length===0)return;for(let J of X){if(!L0(J))continue;for(let Y of $){if(!(Y.field in J))continue;let H=J[Y.field];if(H===null&&Y.nullable)continue;J[Y.field]=Z8(Y,Z,H,z)}}}function Z8($,Z,X,z){let J=$.schema.safeParse(X);if(J.ok)return J.value;let{errors:Y}=J;if($.invalid==="null")return null;if(typeof $.invalid==="function")return $.invalid(X,Y);if(z)return X;throw new($.kind==="json"?F5:O5)({model:Z,field:$.field},X,Y)}function b5($,Z,X=!1){let z=a($.model)?l($.model):void 0,J=z?.$schema?A5(z.$schema,z):[];if(J.length===0&&!$.folded?.length)return;let Y=[];for(let H of Z){if(!L0(H))continue;let G=H[$.as];if(Array.isArray(G))Y.push(...G);else if(L0(G))Y.push(G)}if(Y.length===0)return;S5(J,$.model,Y,X);for(let H of $.folded??[])b5(H,Y,X)}function F4($,Z,X,z){if($.length===0||!L0(z))return z;let J=z,Y=(G,V)=>{if(V===J[G])return;if(J===z)J={...z};J[G]=V},H=(G,V,W=!1)=>X8($,G,{model:Z,operation:X,argument:V},W);switch(X){case"create":Y("data",H(z.data,"data"));break;case"update":case"updateMany":Y("data",H(z.data,"data",!0));break;case"createMany":Y("data",Array.isArray(z.data)?z8(z.data,(G)=>H(G,"data")):H(z.data,"data"));break;case"upsert":Y("create",H(z.create,"create")),Y("update",H(z.update,"update",!0));break}return J}function X8($,Z,X,z){if(!L0(Z))return Z;let J;for(let Y of $){if(!(Y.field in Z))continue;let H=Z[Y.field];if(H===void 0)continue;if(Y.kind==="scalar"){let W=O4(Y,H,X,z);if(W!==H)(J??={...Z})[Y.field]=W;continue}let G=k(H);if(G!==null){if(Y.nullable)continue;if(G==="json"&&Y.schema.safeParse(null).ok)continue;throw new T(X.argument,X.model,X.operation,`${X.model}.${Y.field} is not nullable and its schema does not accept null, so it cannot be written as ${G==="db"?"DbNull":"JsonNull"}.`)}let V=Y.schema.safeParse(H);if(!V.ok)throw new T(X.argument,X.model,X.operation,`${X.model}.${Y.field} does not match its schema: ${V.errors.join("; ")}.`);if(V.value!==H)(J??={...Z})[Y.field]=V.value}return J??Z}function O4($,Z,X,z){if(z&&L0(Z)&&"set"in Z&&Object.keys(Z).length===1){if(Z.set===void 0)return Z;let H=O4($,Z.set,X,!1);return H===Z.set?Z:{set:H}}let J=(H)=>new T(X.argument,X.model,X.operation,`${X.model}.${$.field} ${H}.`);if(Z===null){if($.nullable)return Z;throw J("is not nullable")}let Y=$.schema.safeParse(Z);if(!Y.ok)throw J(`does not match its schema: ${Y.errors.join("; ")}`);return Y.value}function z8($,Z){let X;return $.forEach((z,J)=>{let Y=Z(z);if(Y!==z)(X??=[...$])[J]=Y}),X??$}function N5($){return typeof $==="object"&&$!==null&&typeof $.safeParse==="function"&&typeof $.parse==="function"}function L0($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)}function J8($,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 Y=Object.values(Z.fields).filter((H)=>H.type==="DateTime").map((H)=>H.name);if(Y.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 ${Y.length===1?"the column":"columns"} ${Y.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 Y8($,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=(Y)=>Number(X.find((H)=>H.type===Y)?.value),J=Date.UTC(z("year"),z("month")-1,z("day"),z("hour"),z("minute"),z("second"));return($-J)/60000}function A4($){let Z=new Date().getUTCFullYear();for(let X=0;X<12;X++)if(Y8(Date.UTC(Z,X,1),$)!==0)return!0;return!1}function S4($,Z){let X=!1;return(z,J,Y,H)=>{if(!$||X)return null;let G=J8(z,J,Y,H,Z());if(G!==null)X=!0;return G}}var b4=new Set(["by","where","orderBy","having","take","skip",...e]);function q5($){return $==="groupBy"}function E5($,Z,X,z){K8($,Z,X);let J=V8($,Z,X?.by),Y=n3($,Z,X),H=j(` from ${z.quoteIdent($.table)}`),G=f($,X?.where,{dialect:z,operation:Z},(I)=>I?.where),V=G?R(j(" where "),G):j(""),W=x([...J.map((I)=>j(`${z.quoteIdent(I.field.column)} as ${z.quoteIdent(I.alias)}`)),...Y.map((I)=>j(H8(I,z)))],", "),M=R(j(" group by "),x(J.map((I)=>j(z.quoteIdent(I.field.column))),", ")),B=E4($,Z,X?.having,J,z),D=B?R(j(" having "),B):j(""),P=P8($,Z,X?.orderBy,J,z),L=P?R(j(" order by "),P):j(""),F=X?.take!==void 0||X?.skip!==void 0?Q0($,Z,X,z,[]).clause:j(""),N=R(j("select "),W,H,V,M,D,L,F),{text:_,binders:Q}=d(N,z,{model:$.name,operation:Z});return{text:_,bind:o(Q),shape(I){return I.map((O)=>{let b={};for(let q of Y){if(q.kind==="_count"&&q.as===j3){b._count=b0(q,O[q.alias],z);continue}let A=b[q.kind]??={};A[q.as]=b0(q,O[q.alias],z)}for(let q of J)b[q.field.name]=z.needsDecode(q.field)?z.decode(O[q.alias],q.field):O[q.alias];return b})}}}function H8($,Z){let X=$.field?Z.quoteIdent($.field.column):"*";return`${p0[$.kind]}(${X}) as ${Z.quoteIdent($.alias)}`}function V8($,Z,X){let z=typeof X==="string"?[X]:X;if(!Array.isArray(z))throw new K("by",$.name,Z,`Expected a field name or an array of them, got ${JSON.stringify(X)}.`);if(z.length===0)throw new K("by",$.name,Z,"At least one field is required to group by. Prisma rejects an empty "+"'by' too \u2014 without one there is nothing to group, and the answer "+"would be 'aggregate'.");let J=[],Y=new Set;for(let H of z){if(typeof H!=="string")throw new K("by",$.name,Z,`Expected field names, got ${JSON.stringify(H)}.`);if(Y.has(H))continue;if(Y.add(H),H in $.relations)throw new K(`by.${H}`,$.name,Z,`'${H}' is a relation. A group is a set of rows of this model, so only its own columns can name one.`);let G=$.fields[H];if(!G)throw new g(H,$.name,Object.keys($.fields));J.push({field:G,alias:`_by_${J.length}`})}return J}function E4($,Z,X,z,J,Y=(H)=>H?.having){if(X===void 0||X===null)return null;if(typeof X!=="object"||Array.isArray(X))throw new K("having",$.name,Z,"Expected an object of field filters.");let H=X,G=[];for(let V of Object.keys(H).sort()){let W=H[V];if(W===void 0)continue;if(V==="AND"||V==="OR"||V==="NOT"){let D=G8($,Z,V,W,z,J,Y);if(D)G.push(D);continue}let M=W8(W),B=M8($,Z,V,z,M);if(M){B8($,Z,V,W);for(let D of e){let P=W[D];if(P===void 0)continue;K3($,Z,D,B),G.push(q4(`${p0[D]}(${J.quoteIdent(B.column)})`,P,$,Z,`having.${V}.${D}`,(L)=>Y(L)?.[V]?.[D],J))}continue}G.push(q4(J.quoteIdent(B.column),W,$,Z,`having.${V}`,(D)=>Y(D)?.[V],J))}if(G.length===0)return null;return G.length===1?G[0]:R(j("("),x(G," and "),j(")"))}function G8($,Z,X,z,J,Y,H){let G=Array.isArray(z)?z:[z],V=[];for(let M=0;M<G.length;M++){let B=Array.isArray(z)?(P)=>H(P)?.[X]?.[M]:(P)=>H(P)?.[X],D=E4($,Z,G[M],J,Y,B);if(D)V.push(D)}if(V.length===0)return X==="OR"?j("false"):null;let W=V.length===1?V[0]:R(j("("),x(V,X==="OR"?" or ":" and "),j(")"));return X==="NOT"?R(j("not ("),W,j(")")):W}function W8($){if(typeof $!=="object"||$===null||Array.isArray($))return!1;return e.some((Z)=>(Z in $))}function M8($,Z,X,z,J){let Y=c0($,Z,"_count",X);if(J)return Y;if(z.some((H)=>H.field.name===Y.name))return Y;throw new K(`having.${X}`,$.name,Z,`'${X}' is not in 'by'. A 'having' filter on a plain column needs the `+"column to be grouped \u2014 a group has one value for those and many for "+`everything else. Prisma refuses this too. Add '${X}' to 'by', aggregate it instead ('having: { ${X}: { _count: { \u2026 } } }'), or `+"filter the rows with 'where' rather than the groups with 'having'.")}function B8($,Z,X,z){let J=Object.keys(z).filter((Y)=>!e.includes(Y));if(J.length===0)return;throw new K(`having.${X}`,$.name,Z,"A 'having' filter is either a comparison on a grouped column or a filter "+"on an aggregate of it, not both \u2014 this one mixes "+`${J.sort().join(", ")} with an aggregate. Prisma's query engine panics on this shape rather than answering it, so there is no behaviour to match. Use an 'AND' of the two filters instead.`)}var w4={equals:"=",not:"<>",lt:"<",lte:"<=",gt:">",gte:">="},D8=w4;function q4($,Z,X,z,J,Y,H){if(typeof Z!=="object"||Z===null||Z instanceof Date)return R(j(`${$} = `),i((W)=>H.encodeUntyped(Y(W))));let G=Z,V=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;let B=D8[W];if(!B)throw new K(`${J}.${W}`,X.name,z,`A 'having' filter takes ${Object.keys(w4).sort().join(", ")}.`);if(M===null){V.push(j(`${$} is ${W==="not"?"not ":""}null`));continue}V.push(R(j(`${$} ${B} `),i((D)=>H.encodeUntyped(Y(D)?.[W]))))}if(V.length===0)return j("true");return V.length===1?V[0]:R(j("("),x(V," and "),j(")"))}function P8($,Z,X,z,J){if(X===void 0||X===null)return null;let Y=Array.isArray(X)?X:[X],H=[];for(let G of Y){if(typeof G!=="object"||G===null)throw new K("orderBy",$.name,Z,"Expected an object of fields, or an array of them.");for(let V of Object.keys(G)){let W=G[V];if(W===void 0)continue;if(e.includes(V)){H.push(...j8($,Z,V,W,J));continue}let M=$.fields[V];if(!M)throw new g(V,$.name,Object.keys($.fields));if(!z.some((B)=>B.field.name===M.name))throw new K(`orderBy.${V}`,$.name,Z,`'${V}' is not in 'by'. Every field an 'orderBy' names has to be one of the grouped columns, because a group has one value for those and many for everything else. Prisma refuses this too.`);H.push(`${J.quoteIdent(M.column)} ${I3($,Z,V,W)}`)}}if(H.length===0)return null;return j(H.join(", "))}function j8($,Z,X,z,J){if(typeof z!=="object"||z===null||Array.isArray(z))throw new K(`orderBy.${X}`,$.name,Z,"Expected an object of fields.");let Y=[],H=z;for(let G of Object.keys(H)){let V=H[G];if(V===void 0)continue;if(X==="_count"&&G==="_all"){Y.push(`count(*) ${I3($,Z,`${X}._all`,V)}`);continue}let W=c0($,Z,X,G);K3($,Z,X,W),Y.push(`${p0[X]}(${J.quoteIdent(W.column)}) ${I3($,Z,`${X}.${G}`,V)}`)}return Y}function I3($,Z,X,z){if(z==="asc"||z==="desc")return z;if(typeof z==="object"&&z!==null&&!Array.isArray(z)){let{sort:J,nulls:Y}=z,H=I3($,Z,X,J);if(Y===void 0)return H;if(Y!=="first"&&Y!=="last")throw new K(`orderBy.${X}.nulls`,$.name,Z,`Expected 'first' or 'last', got ${JSON.stringify(Y)}.`);return`${H} nulls ${Y}`}throw new K(`orderBy.${X}`,$.name,Z,`Expected 'asc', 'desc', or { sort, nulls }, got ${JSON.stringify(z)}.`)}function K8($,Z,X){if(X===void 0||X===null||typeof X!=="object")throw new K("by",$.name,Z,"groupBy requires 'by'.");for(let z of Object.keys(X).sort()){if(X[z]===void 0)continue;if(b4.has(z))continue;throw new K(z,$.name,Z,`${Z} takes ${[...b4].sort().join(", ")}.`)}if(X.by===void 0)throw new K("by",$.name,Z,"groupBy requires 'by'.")}function w5($,Z,X,z,J){if(i3(Z))return d0($,Z,X,z);if(q5(Z))return E5($,Z,X,z);if(x9(Z))return t3($,Z,X,z,J);if(V4(Z))return L5($,Z,X,z);throw new K(Z,$.name,Z,`'${Z}' is not an operation this ORM compiles \u2014 the reads, the writes, `+"'aggregate' and 'groupBy' are, and a raw statement goes through 'DB.query' or 'DB.execute'.")}var v4=1000,H0=new Map,x5=0,v5=0,k5=0,Q8=new Set(["orderBy","select","omit","include","distinct","mode","_count","_avg","_sum","_min","_max","skipDuplicates","by"]),_8=new Set(["_count","_avg","_sum","_min","_max"]);function V0($,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 Y=k($);if(Y)return`jsonNull:${Y}`;if(Array.isArray($))return`[${$.map((G)=>V0(G,Z,X,z)).join(",")}]`;return`{${Object.entries($).filter(([,G])=>G!==void 0).sort(([G],[V])=>G<V?-1:G>V?1:0).map(([G,V])=>`${G}:${R8(G,V,Z,X,z)}`).join(",")}}`}var C8=new Set(["in","notIn","hasEvery","hasSome","push","path","has_some_keys","has_every_key"]),L8="$compositeIn";function x4($){return $.length===0?"[]":"[*]"}var T8=new Set(["where","cursor","data"]);function R8($,Z,X,z,J){if($==="take"&&typeof Z==="number")return`number:${Math.sign(Z)}`;if($==="skip"&&typeof Z==="number")return"number";if(z&&C8.has($)&&Array.isArray(Z)){if($!=="path"||Z.every((Y)=>typeof Y==="string"))return x4(Z)}if($===L8){let Y=Z;return V0(z?{fields:Y.fields,values:x4(Y.values)}:Z,!0,z)}if(($==="disconnect"||$==="delete")&&typeof Z==="boolean")return JSON.stringify(Z);if(T8.has($))return V0(Z,!1,z,J);if($==="having")return V0(Z,!1,z,!0);if(J&&_8.has($))return V0(Z,!1,z,!0);return V0(Z,X||Q8.has($),z,J)}function k4($,Z,X,z,J="batched"){return`${$.name}:${J}:${Z}:${X}:${V0(z,!1,$.bindsListAsOneParameter)}${U8(z)}${I8(z)}`}function I8($){if($===null||typeof $!=="object")return"";let Z=$.skipIfUnchanged;return Z===void 0?"":`:skipIfUnchanged=${String(Z)}`}function U8($){if($===null||typeof $!=="object")return"";let Z=$.lock;return Z===void 0?"":`:lock=${V0(Z,!0)}`}function r0($,Z,X,z,J){let Y=k4(z,$.name,Z,X,J?.name),H=H0.get(Y);if(H)return v5++,H0.delete(Y),H0.set(Y,H),H;let G=w5($,Z,X,z,J);if(x5++,H0.size>=v4){let V=H0.keys().next();if(!V.done)H0.delete(V.value),k5++}return H0.set(Y,G),G}function N8(){return{size:H0.size,compiles:x5,hits:v5,evictions:k5,capacity:v4}}function F8(){H0.clear(),x5=0,v5=0,k5=0}var f4=new WeakMap;function U3($,Z,X=T0()){let z={},J={},Y=$;for(let H of Object.keys(Y)){if(!(H in Z.fields))continue;z[H]=Y[H]}for(let H of Z.primaryKey)J[H]=Y[H];f4.set($,{model:Z.name,connection:X,key:J,snapshot:z})}function R0($){if($===null||typeof $!=="object")return;return f4.get($)}function f5($,Z){let X=R0($);if(!X)return{};let z=$,J={};for(let Y of Object.keys(X.snapshot))if(!S8(z[Y],X.snapshot[Y]))J[Y]=z[Y];return O8($,X,Z),J}function O8($,Z,X){for(let z of Object.keys($)){if(z in Z.snapshot)continue;if(!(z in X.fields))continue;if(z in X.relations)continue;throw new K(`save.${z}`,X.name,"save",`'${z}' was not fetched by the query this row came from, so save `+"cannot write it \u2014 the diff has nothing to compare it against, and "+`writing it blind would overwrite whatever the column actually holds. Select '${z}' in the query, or update it explicitly with ${X.name}.update({ where, data: { ${z} } }).`)}}function N3($,Z){let X=R0($);if(!X)return;for(let z of Object.keys(Z))X.snapshot[z]=Z[z]}function g4($,Z){let X=$===null||$===void 0?String($):Array.isArray($)?"an array":typeof $;return new K("save",Z,"save","This object carries no provenance, so there is no row to update. Either "+"the query did not ask for it \u2014 pass { track: true } as the second "+`argument, e.g. ${Z}.findUnique({ where }, { track: true }) \u2014 or this `+`is a copy of a row that did. Provenance is keyed on object identity, so spreading, cloning or JSON round-tripping a row loses it. (Received ${X}.)`)}function A8($){return R0($)!==void 0}function S8($,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 b8($={}){let Z=$.field??"deletedAt";return Object.assign({scope:()=>({[Z]:null}),onCreate:(z,J)=>J,onUpdate:(z,J)=>J},{[m4]:Z})}function q8($,Z={}){let X=Z.field??"deletedAt";return(z)=>{return u4($,z,"delete"),$.update({...z,data:{[X]:new Date}})}}function E8($,Z={}){let X=Z.field??"deletedAt";return(z={})=>{return u4($,z,"deleteMany"),$.updateMany({...z,data:{[X]:new Date}})}}function u4($,Z,X){if(Z?.data===void 0)return;throw new K("data",$.$schema?.name??"unknown",X,`${X} takes no 'data' \u2014 the soft-delete rewrite supplies it. `+"Call update directly if you meant to change other fields at the same time.")}var m4=Symbol("gemi.orm.softDeletesField");function y4($){return $[m4]}function g5($,Z){let X=$.$softDeletes;if(X===void 0||X===!1||X===null)return;let z=X===!0?"deletedAt":X.field??"deletedAt",J=Z.fields[z];if(J===void 0||!J.nullable||J.isList)throw new K("$softDeletes",Z.name,"softDeletes",J===void 0?`${Z.name} has no '${z}' field to soft-delete on. Set \`static $softDeletes = { field: "<column>" }\` to name a nullable DateTime column, or add \`${z} DateTime?\` to the model.`:`'${z}' must be a nullable scalar column to mark a row deleted, and on ${Z.name} it is not.`);return z}var h4=new Map;function w8($,Z){let X=`${Z}:${$}`,z=h4.get(X);if(z!==void 0)return z;let J=Z==="hidden"?{[$]:null}:{[$]:{not:null}};return z=Object.freeze({scope:(Y)=>Y.operation==="upsert"?void 0:J,onCreate:(Y,H)=>H,onUpdate:(Y,H)=>H}),h4.set(X,z),z}function y5($,Z,X){if(Z===void 0)return $;let z=$.some((J)=>y4(J)===Z)?$.filter((J)=>y4(J)!==Z):$;if(X==="with")return z;return[w8(Z,X==="only"?"only":"hidden"),...z]}var p4=new Set(["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","findMany","create","update","upsert","delete"]),x8=new Set(["create","update","upsert","delete"]),v8=new Set(["findFirstOrThrow","findUniqueOrThrow","update","delete"]);function a0($,Z){return t5($.sql,Z,{slowTransactionThreshold:$.config.slowTransactionThreshold,connection:$.name})}var d4=new WeakMap;class q3{constructor(){}static $schema;static $policies;static $skipNoopUpdates;static $json;static $columns;static $connection;static on($){let Z=d4.get(this);if(Z===void 0)d4.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 l5($)}static asUser($,Z){return o5($,Z)}static $softDeletes;static withTrashed($){return s4(this,"with",$)}static onlyTrashed($){return s4(this,"only",$)}static restore($){return Promise.resolve().then(()=>{let Z=A3(this,"restore");return O3(this.$modelSchema().name,"only",()=>this.$exec("update",{...$,data:{[Z]:null}}))})}static restoreMany($){return Promise.resolve().then(()=>{let Z=A3(this,"restoreMany");return O3(this.$modelSchema().name,"only",()=>this.$exec("updateMany",{...$,data:{[Z]:null}}))})}static async save($){let Z=this.$modelSchema(),X=R0($);if(!X)throw g4($,Z.name);if(X.model!==Z.name)throw new K("save",Z.name,"save",`This row came from ${X.model}, not ${Z.name}. Save it through the model it was read from.`);if(this.$connection!==void 0&&this.$connection!==X.connection)throw new K("save",Z.name,"save",`This row was read on the "${X.connection}" connection and this save names "${this.$connection}". A save writes the row back where it came from, so the two cannot both be honoured. Drop the \`on("${this.$connection}")\`, or write it as an explicit ${Z.name}.on("${this.$connection}").update({ where, data }) if copying it across connections is what you meant.`);let z=Z.primaryKey.filter((H)=>X.key[H]===void 0);if(z.length>0)throw new K("save",Z.name,"save",`This row was fetched without ${z.join(", ")}, so there is no way to identify which row to update. A tracked row needs its primary key: add ${z.map((H)=>`${H}: true`).join(", ")} to the select, or drop the select to fetch every column.`);let J=f5($,Z);if(Object.keys(J).length===0)return null;let Y=await F3(X.connection,()=>this.$exec("update",{where:X.key,data:J}));if(Y&&typeof Y==="object"&&!Array.isArray(Y)){let H=Y,G=$,V={};for(let W of Object.keys(H)){if(!(W in Z.fields))continue;G[W]=H[W],V[W]=H[W]}N3($,V)}else N3($,J);return Y}static wrap($){let Z=this.$modelSchema(),X=new this;return Object.assign(X,$),U3(X,Z,this.$connection??R0($)?.connection??T0()),X}save(){return this.constructor.save(this)}static $modelSchema(){let $=this.$schema;if(!$)throw new g0(this.name);return $}static async transaction($){let Z=this.$connection??T0();return a0(h5(m5).connection(Z),()=>F3(Z,()=>$()))}static async $exec($,Z={},X){return F3(this.$connection??T0(),()=>this.$execute($,Z,X))}static async $execute($,Z={},X){let z=this.$modelSchema(),J=h5(m5).connection(T0()),Y=r5(J.dialect),H=e0()??J.sql;if(Z?.lock!==void 0&&Q3[$]?.has("lock")&&e0()===void 0)throw new i5(z.name,$);let G=n5(),V=a(z.name)?l(z.name):void 0,W=Y7(this,z,V),M=G?[]:q0(this),B=y5(M,W,this.$trashed??u5(z.name)),D,P=Z;if(!G){if(V!==void 0&&V!==this&&!k8(this,V)){let A=q0(V);if(M.length!==A.length||M.some((S,E)=>S!==A[E]))throw new c5(z.name,V.name??String(V),this.name,M.length>0?"queried":"registered")}}let L=e4(X);if(!L)P=J7(z,P,$3(),!1,(A)=>{if(!a(A))return;let U=l(A),S=U.$schema;if(!S)return;return{policies:y5(G?[]:q0(U),g5(U,S),u5(S.name)),schema:S}});if($==="upsert"&&!L&&m8(z,Z,$)){let{where:A,create:U,update:S,...E}=Z,h=t0(n4({...X}));return a0(J,async()=>{return await this.$exec("findFirst",{where:A},h)===null?await this.$exec("create",{data:U,...E},h):await this.$exec("update",{where:A,data:S,...E},h)})}if(B.length>0){if(D=S3(z.name,(L?X7(X):void 0)??$,$3(),G),!L)P=a5(B,D,P,Z7(X))}let C=l4(X);if(!C)o4(z,$,P);let F=r3(X?.strategy,Y,{model:z.name,operation:$});if($==="createMany"&&Array.isArray(P?.data)){let A=u8(z,P,Y,F,$);if(A!==null)return a0(J,async()=>{let U=0;for(let S of A){let E=await this.$exec("createMany",{...P,data:S},I0({strategy:X?.strategy}));U+=E.count}return{count:U}})}if(($==="update"||$==="updateMany")&&this.$skipNoopUpdates===!0&&P?.skipIfUnchanged===void 0&&!p8(X))P={...P,skipIfUnchanged:!0};let N=A5(z,this);if(!C)P=F4(N,z.name,$,P);let _=x8.has($)||N4(X);if(!C)P=t4(z,$,P);let Q=r0(z,$,P,Y,F),I={exec:(A,U,S,E,h)=>{let W0=n4(E?I0({strategy:X?.strategy}):{strategy:X?.strategy}),j0=_?t0(W0):W0;return l(A).$exec(U,S,h&&h.length>0?$7(j0,h):j0)},query:(A,U)=>H.unsafe(A,U)},O=A0();if($==="delete"&&(Q.relations!==void 0||Q.counts)){let{where:A,...U}=P;return a0(J,async()=>{let S=await this.$exec("findFirst",{where:A,...U},t0(p5(I0({strategy:X?.strategy}),$)));if(S===null)throw new $0(z.name,$);return await this.$exec("delete",{where:A},I0({strategy:X?.strategy})),S})}let b=async()=>{H=e0()??H,await i4(Q.before,P,O,I,[]);let A=await g8(H,Y,z,$,Q.text,Q.bind(P,O)),U=this.$shape(Q,A);if(!C&&p4.has($))r4(z,G0(U));if(!C&&p4.has($))S5(N,z.name,G0(U),_);if(U===null&&$==="update"&&P?.skipIfUnchanged===!0){let{data:S,skipIfUnchanged:E,where:h,...W0}=P,j0=await this.$exec("findFirst",{where:h,...W0},t0(p5(I0({strategy:X?.strategy,track:X?.track}),$)));if(j0===null)throw new $0(z.name,$);return j0}if(U===null&&v8.has($))throw new $0(z.name,$);if(await i4(Q.after,P,O,I,G0(U)),Q.counts&&Q.after!==void 0)await h8(z,this,P,G0(U),X);if(Q.relations!==void 0)await D3(Q.relations,Q.hidden,U,P,I);else if(Q.hidden!==void 0&&Q.hidden.length>0)for(let S of G0(U))for(let E of Q.hidden)delete S[E];if(Q.relations!==void 0&&!C){let S=G0(U);for(let E of Q.relations){if(E.root===void 0)continue;a4({as:E.as,model:E.model,folded:E.root.folded},S),b5({as:E.as,model:E.model,folded:E.root.folded},S,_)}}if(Q.relations!==void 0&&!G)for(let S of Q.relations){if(S.root===void 0)continue;H7({as:S.as,model:S.model,folded:S.root.folded},U,z7,G)}if(D)b3(B,D,U);if(X?.track===!0)for(let S of G0(U))U3(S,z);return U};return Q.before!==void 0&&Q.before.length>0||Q.after!==void 0&&Q.after.length>0?a0(J,b):b()}static $shape($,Z){return $.shape(Z)}}function k8($,Z){return Object.getPrototypeOf($)===Z&&!Object.hasOwn($,"$policies")}var c4=new WeakMap;function s4($,Z,X){let z=Z==="with"?"withTrashed":"onlyTrashed";if(X!==void 0)return Promise.resolve().then(()=>{return A3($,z),O3($.$modelSchema().name,Z,X)});A3($,z);let J=c4.get($);if(J===void 0)c4.set($,J=new Map);let Y=J.get(Z);if(Y!==void 0)return Y;let H=class extends ${static $trashed=Z};return Object.defineProperty(H,"name",{value:$.name,configurable:!0}),J.set(Z,H),H}function Y7($,Z,X){let z=$.$softDeletes;return g5(z!==void 0||X===void 0?$:X,Z)}function A3($,Z){let X=$.$modelSchema(),z=Y7($,X,a(X.name)?l(X.name):void 0);if(z===void 0)throw new K(Z,X.name,Z,`${X.name} does not soft-delete. Set \`static $softDeletes = true\` on the model class (or \`{ field: "<column>" }\`) to use ${Z}.`);return z}async function i4($,Z,X,z,J){if($===void 0)return;for(let Y of $)await Y.run(Z,X,z,J)}var f8=S4(A4(),()=>new Date().getTimezoneOffset());async function g8($,Z,X,z,J,Y){let H=f8(Z.name,X,J,Y);if(H)console.warn(H);try{return await $.unsafe(J,Y)}catch(G){let V=Z.constraintViolation(G);if(!V)throw G;throw new d5(X.name,z,y8(X,V.columns),V.constraint,{cause:G})}}function y8($,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 Y=X?.include?._count??X?.select?._count;if(Y===void 0||z.length===0)return;for(let H of z){let G={},V=$.primaryKey.length>0;for(let M of $.primaryKey){let B=H[M];if(B===void 0){V=!1;break}G[M]=B}if(!V)continue;let W=await Z.$exec("findFirst",{where:G,select:{_count:Y}},I0({strategy:J?.strategy}));if(W&&W._count!==void 0)H._count=W._count}}function G0($){if(Array.isArray($))return $;if($===null||$===void 0)return[];if(typeof $!=="object")return[];return[$]}function u8($,Z,X,z,J){let Y=Z.data;if(Y.length<2)return null;try{return r0($,J,Z,X,z),null}catch(H){if(!(H instanceof s5))throw H;let G={...Z,data:[Y[0]]},V=r0($,J,G,X,z).bind(G,A0()).length;if(V===0||V>H.limit)throw H;let W=Math.floor(H.limit/V),M=[];for(let B=0;B<Y.length;B+=W)M.push(Y.slice(B,B+W));return M}}function m8($,Z,X){try{let z=u($,Z?.where,{model:$.name,operation:X,argument:"where"});return T5($,Z,z).length>0}catch{return!1}}function H7($,Z,X,z){let J=a($.model)?l($.model):void 0,Y=J?q0(J):[],H=$.folded??[];if(Y.length===0&&H.length===0)return;let G=Y.length>0?S3(J.$schema?.name??$.model,X,$3(),z):void 0,V=[];for(let W of G0(Z)){let M=W?.[$.as];if(M===void 0||M===null)continue;if(G)b3(Y,G,M);if(H.length>0)V.push(...G0(M))}for(let W of H)H7(W,V,X,z)}var V7=Symbol("gemi.orm.issuedByTheOrm");function n4($){return{...$,[V7]:!0}}function p8($){return typeof $==="object"&&$!==null&&$[V7]===!0}class G7 extends q3{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 d8=Number.MAX_SAFE_INTEGER;function E3($){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 W7=($,Z,X)=>Math.min(Math.max($,Z),X);function c8($,Z={}){let X=Z.maxPerPage===1/0?1/0:Math.max(1,E3(Z.maxPerPage)??100),z=W7(E3(Z.perPage)??25,1,X),J=W7(E3($?.perPage)??z,1,X),Y=Math.max(E3($?.page)??1,1),H=Math.min((Y-1)*J,d8);return{take:J,skip:H}}export{t5 as withTransaction,L6 as unsafeSql,Y6 as transactionDepth,U3 as track,y0 as strategiesOf,Q6 as sql,b8 as softDeletes,E8 as softDeleteMany,q8 as softDelete,i7 as shaperCompilationAvailable,s7 as setShaperCompilation,o5 as runAsUser,l5 as runAsSystem,A6 as rotateEncryptedColumns,r3 as resolveStrategy,N3 as resnapshot,T6 as renderFragment,B3 as registry,O6 as registerModels,e8 as register,U6 as redactNullable,R0 as provenanceOf,S3 as policyContext,q0 as policiesFor,S0 as planRelations,k4 as planKey,N8 as planCacheStats,c8 as paginate,j6 as ormSupports,X6 as ormContext,s0 as lateralStrategy,k as jsonNullKind,_6 as join,n8 as isUniqueConstraintError,A8 as isTracked,n5 as isSystemScope,i8 as isRecordNotFoundError,i9 as isClientSideDefault,i0 as hasClientSideValue,r0 as getOrCompile,K6 as everyDialect,C6 as empty,r5 as dialectFor,p9 as defaultStrategy,$3 as currentUser,e0 as currentTransaction,H6 as currentActor,t9 as createUuid,o9 as createUlid,l9 as createNanoid,n9 as createCuid,A0 as createBindContext,L5 as compileWrite,t3 as compileRead,w5 as compile,z5 as clientSideValue,F8 as clearPlanCache,f5 as changedFields,V0 as canonicalShape,u0 as buildRowShaper,s3 as buildInterpretedShaper,P0 as batchedStrategy,F6 as auditModelRegistrations,D3 as attachRelations,B2 as assertSchemaArtifactVersion,N6 as assertPoliciesRegistered,b3 as applyRedaction,a5 as applyPolicies,z6 as afterCommit,K as UnsupportedQueryError,P6 as UnsupportedDialectError,k0 as UnsupportedByDesignError,d3 as UnregisteredRelationTargetError,c5 as UnregisteredPolicyClassError,f0 as UnknownRelationError,g as UnknownFieldError,$6 as UnknownConnectionError,d5 as UniqueConstraintError,J6 as TransactionDependencyError,e3 as StaleSchemaArtifactError,D6 as SqliteDialect,I6 as ScopedPolicy,o8 as ScopeEscapeError,O5 as ScalarColumnError,M2 as SCHEMA_ARTIFACT_VERSION,_5 as ReturningUnsupportedError,p3 as RelationDepthExceededError,$0 as RecordNotFoundError,W6 as PostgresDialect,l8 as PolicyDeniedError,R6 as Policy,s5 as ParameterLimitError,a8 as ModelNotRegisteredError,q3 as Model,L3 as MissingRequiredValueError,g0 as MissingModelSchemaError,c as MalformedRelationError,M3 as MAX_RELATION_DEPTH,i5 as LockOutsideTransactionError,X5 as JsonNull,F5 as JsonColumnError,t8 as InvalidPolicyEntryError,T as InvalidArgumentError,V6 as EncryptionKeyError,G6 as DecryptionError,s8 as DecodeError,M6 as DbNull,Z6 as CrossConnectionTransactionError,B6 as AnyNull,r8 as AmbiguousModelRegistrationError,G7 as ActiveRecordModel};
|
|
12
12
|
|
|
13
|
-
//# debugId=
|
|
13
|
+
//# debugId=9FCF4076F4FDBDED64756E2164756E21
|