@inixiative/json-rules 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
- 'use strict';var st=require('dayjs'),qS=require('dayjs/plugin/isoWeek.js'),WS=require('dayjs/plugin/quarterOfYear.js'),US=require('dayjs/plugin/timezone.js'),GS=require('dayjs/plugin/utc.js'),YS=require('dayjs/plugin/isSameOrAfter.js'),XS=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var st__default=/*#__PURE__*/_interopDefault(st);var qS__default=/*#__PURE__*/_interopDefault(qS);var WS__default=/*#__PURE__*/_interopDefault(WS);var US__default=/*#__PURE__*/_interopDefault(US);var GS__default=/*#__PURE__*/_interopDefault(GS);var YS__default=/*#__PURE__*/_interopDefault(YS);var XS__default=/*#__PURE__*/_interopDefault(XS);var us=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var yc=typeof global=="object"&&global&&global.Object===Object&&global,vn=yc;var hc=typeof self=="object"&&self&&self.Object===Object&&self,wc=vn||hc||Function("return this")(),Y=wc;var Sc=Y.Symbol,ce=Sc;var ka=Object.prototype,bc=ka.hasOwnProperty,Rc=ka.toString,qo=ce?ce.toStringTag:void 0;function Oc(e){var t=bc.call(e,qo),r=e[qo];try{e[qo]=void 0;var o=!0;}catch{}var n=Rc.call(e);return o&&(t?e[qo]=r:delete e[qo]),n}var La=Oc;var xc=Object.prototype,Ec=xc.toString;function Pc(e){return Ec.call(e)}var Fa=Pc;var $c="[object Null]",vc="[object Undefined]",Da=ce?ce.toStringTag:void 0;function Ac(e){return e==null?e===void 0?vc:$c:Da&&Da in Object(e)?La(e):Fa(e)}var Re=Ac;function Nc(e){return e!=null&&typeof e=="object"}var te=Nc;var Tc="[object Symbol]";function Mc(e){return typeof e=="symbol"||te(e)&&Re(e)==Tc}var Br=Mc;function Cc(e,t){for(var r=-1,o=e==null?0:e.length,n=Array(o);++r<o;)n[r]=t(e[r],r,e);return n}var ja=Cc;var _c=Array.isArray,G=_c;var Ia=ce?ce.prototype:void 0,Va=Ia?Ia.toString:void 0;function Ba(e){if(typeof e=="string")return e;if(G(e))return ja(e,Ba)+"";if(Br(e))return Va?Va.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var qa=Ba;function Lc(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var K=Lc;function Fc(e){return e}var qr=Fc;var Dc="[object AsyncFunction]",jc="[object Function]",Ic="[object GeneratorFunction]",Vc="[object Proxy]";function Bc(e){if(!K(e))return false;var t=Re(e);return t==jc||t==Ic||t==Dc||t==Vc}var Wr=Bc;var qc=Y["__core-js_shared__"],An=qc;var Wa=(function(){var e=/[^.]+$/.exec(An&&An.keys&&An.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Wc(e){return !!Wa&&Wa in e}var Ua=Wc;var Uc=Function.prototype,Gc=Uc.toString;function Kc(e){if(e!=null){try{return Gc.call(e)}catch{}try{return e+""}catch{}}return ""}var yt=Kc;var zc=/[\\^$.*+?()[\]{}|]/g,Hc=/^\[object .+?Constructor\]$/,Jc=Function.prototype,Qc=Object.prototype,Zc=Jc.toString,Yc=Qc.hasOwnProperty,Xc=RegExp("^"+Zc.call(Yc).replace(zc,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function em(e){if(!K(e)||Ua(e))return false;var t=Wr(e)?Xc:Hc;return t.test(yt(e))}var Ga=em;function tm(e,t){return e?.[t]}var Ka=tm;function rm(e,t){var r=Ka(e,t);return Ga(r)?r:void 0}var ye=rm;var om=ye(Y,"WeakMap"),Nn=om;var za=Object.create,nm=(function(){function e(){}return function(t){if(!K(t))return {};if(za)return za(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Ha=nm;function im(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Ja=im;function sm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Tn=sm;var am=800,lm=16,pm=Date.now;function fm(e){var t=0,r=0;return function(){var o=pm(),n=lm-(o-r);if(r=o,n>0){if(++t>=am)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Qa=fm;function dm(e){return function(){return e}}var Za=dm;var um=(function(){try{var e=ye(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Ur=um;var cm=Ur?function(e,t){return Ur(e,"toString",{configurable:true,enumerable:false,value:Za(t),writable:true})}:qr,Ya=cm;var mm=Qa(Ya),Xa=mm;function gm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var el=gm;var ym=9007199254740991,hm=/^(?:0|[1-9]\d*)$/;function wm(e,t){var r=typeof e;return t=t??ym,!!t&&(r=="number"||r!="symbol"&&hm.test(e))&&e>-1&&e%1==0&&e<t}var kt=wm;function Sm(e,t,r){t=="__proto__"&&Ur?Ur(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var Gr=Sm;function bm(e,t){return e===t||e!==e&&t!==t}var ze=bm;var Rm=Object.prototype,Om=Rm.hasOwnProperty;function xm(e,t,r){var o=e[t];(!(Om.call(e,t)&&ze(o,r))||r===void 0&&!(t in e))&&Gr(e,t,r);}var Kr=xm;function Em(e,t,r,o){var n=!r;r||(r={});for(var i=-1,s=t.length;++i<s;){var a=t[i],l=o?o(r[a],e[a],a,r,e):void 0;l===void 0&&(l=e[a]),n?Gr(r,a,l):Kr(r,a,l);}return r}var He=Em;var tl=Math.max;function Pm(e,t,r){return t=tl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=tl(o.length-t,0),s=Array(i);++n<i;)s[n]=o[t+n];n=-1;for(var a=Array(t+1);++n<t;)a[n]=o[n];return a[t]=r(s),Ja(e,this,a)}}var rl=Pm;function $m(e,t){return Xa(rl(e,t,qr),e+"")}var ol=$m;var vm=9007199254740991;function Am(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=vm}var zr=Am;function Nm(e){return e!=null&&zr(e.length)&&!Wr(e)}var Je=Nm;function Tm(e,t,r){if(!K(r))return false;var o=typeof t;return (o=="number"?Je(r)&&kt(t,r.length):o=="string"&&t in r)?ze(r[t],e):false}var Mn=Tm;function Mm(e){return ol(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,s&&Mn(r[0],r[1],s)&&(i=n<3?void 0:i,n=1),t=Object(t);++o<n;){var a=r[o];a&&e(t,a,o,i);}return t})}var nl=Mm;var Cm=Object.prototype;function _m(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Cm;return e===r}var Hr=_m;function km(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var il=km;var Lm="[object Arguments]";function Fm(e){return te(e)&&Re(e)==Lm}var cs=Fm;var sl=Object.prototype,Dm=sl.hasOwnProperty,jm=sl.propertyIsEnumerable,Im=cs((function(){return arguments})())?cs:function(e){return te(e)&&Dm.call(e,"callee")&&!jm.call(e,"callee")},cr=Im;function Vm(){return false}var al=Vm;var fl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ll=fl&&typeof module=="object"&&module&&!module.nodeType&&module,Bm=ll&&ll.exports===fl,pl=Bm?Y.Buffer:void 0,qm=pl?pl.isBuffer:void 0,Wm=qm||al,ht=Wm;var Um="[object Arguments]",Gm="[object Array]",Km="[object Boolean]",zm="[object Date]",Hm="[object Error]",Jm="[object Function]",Qm="[object Map]",Zm="[object Number]",Ym="[object Object]",Xm="[object RegExp]",eg="[object Set]",tg="[object String]",rg="[object WeakMap]",og="[object ArrayBuffer]",ng="[object DataView]",ig="[object Float32Array]",sg="[object Float64Array]",ag="[object Int8Array]",lg="[object Int16Array]",pg="[object Int32Array]",fg="[object Uint8Array]",dg="[object Uint8ClampedArray]",ug="[object Uint16Array]",cg="[object Uint32Array]",q={};q[ig]=q[sg]=q[ag]=q[lg]=q[pg]=q[fg]=q[dg]=q[ug]=q[cg]=true;q[Um]=q[Gm]=q[og]=q[Km]=q[ng]=q[zm]=q[Hm]=q[Jm]=q[Qm]=q[Zm]=q[Ym]=q[Xm]=q[eg]=q[tg]=q[rg]=false;function mg(e){return te(e)&&zr(e.length)&&!!q[Re(e)]}var dl=mg;function gg(e){return function(t){return e(t)}}var Jr=gg;var ul=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wo=ul&&typeof module=="object"&&module&&!module.nodeType&&module,yg=Wo&&Wo.exports===ul,ms=yg&&vn.process,hg=(function(){try{var e=Wo&&Wo.require&&Wo.require("util").types;return e||ms&&ms.binding&&ms.binding("util")}catch{}})(),wt=hg;var cl=wt&&wt.isTypedArray,wg=cl?Jr(cl):dl,Qr=wg;var Sg=Object.prototype,bg=Sg.hasOwnProperty;function Rg(e,t){var r=G(e),o=!r&&cr(e),n=!r&&!o&&ht(e),i=!r&&!o&&!n&&Qr(e),s=r||o||n||i,a=s?il(e.length,String):[],l=a.length;for(var p in e)(t||bg.call(e,p))&&!(s&&(p=="length"||n&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||kt(p,l)))&&a.push(p);return a}var Cn=Rg;function Og(e,t){return function(r){return e(t(r))}}var _n=Og;var xg=_n(Object.keys,Object),ml=xg;var Eg=Object.prototype,Pg=Eg.hasOwnProperty;function $g(e){if(!Hr(e))return ml(e);var t=[];for(var r in Object(e))Pg.call(e,r)&&r!="constructor"&&t.push(r);return t}var gl=$g;function vg(e){return Je(e)?Cn(e):gl(e)}var Qe=vg;function Ag(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var yl=Ag;var Ng=Object.prototype,Tg=Ng.hasOwnProperty;function Mg(e){if(!K(e))return yl(e);var t=Hr(e),r=[];for(var o in e)o=="constructor"&&(t||!Tg.call(e,o))||r.push(o);return r}var hl=Mg;function Cg(e){return Je(e)?Cn(e,true):hl(e)}var Ze=Cg;var _g=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kg=/^\w*$/;function Lg(e,t){if(G(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Br(e)?true:kg.test(e)||!_g.test(e)||t!=null&&e in Object(t)}var Zr=Lg;var Fg=ye(Object,"create"),St=Fg;function Dg(){this.__data__=St?St(null):{},this.size=0;}var wl=Dg;function jg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Sl=jg;var Ig="__lodash_hash_undefined__",Vg=Object.prototype,Bg=Vg.hasOwnProperty;function qg(e){var t=this.__data__;if(St){var r=t[e];return r===Ig?void 0:r}return Bg.call(t,e)?t[e]:void 0}var bl=qg;var Wg=Object.prototype,Ug=Wg.hasOwnProperty;function Gg(e){var t=this.__data__;return St?t[e]!==void 0:Ug.call(t,e)}var Rl=Gg;var Kg="__lodash_hash_undefined__";function zg(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=St&&t===void 0?Kg:t,this}var Ol=zg;function Yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}Yr.prototype.clear=wl;Yr.prototype.delete=Sl;Yr.prototype.get=bl;Yr.prototype.has=Rl;Yr.prototype.set=Ol;var gs=Yr;function Hg(){this.__data__=[],this.size=0;}var xl=Hg;function Jg(e,t){for(var r=e.length;r--;)if(ze(e[r][0],t))return r;return -1}var Lt=Jg;var Qg=Array.prototype,Zg=Qg.splice;function Yg(e){var t=this.__data__,r=Lt(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Zg.call(t,r,1),--this.size,true}var El=Yg;function Xg(e){var t=this.__data__,r=Lt(t,e);return r<0?void 0:t[r][1]}var Pl=Xg;function ey(e){return Lt(this.__data__,e)>-1}var $l=ey;function ty(e,t){var r=this.__data__,o=Lt(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var vl=ty;function Xr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}Xr.prototype.clear=xl;Xr.prototype.delete=El;Xr.prototype.get=Pl;Xr.prototype.has=$l;Xr.prototype.set=vl;var Ft=Xr;var ry=ye(Y,"Map"),Dt=ry;function oy(){this.size=0,this.__data__={hash:new gs,map:new(Dt||Ft),string:new gs};}var Al=oy;function ny(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Nl=ny;function iy(e,t){var r=e.__data__;return Nl(t)?r[typeof t=="string"?"string":"hash"]:r.map}var jt=iy;function sy(e){var t=jt(this,e).delete(e);return this.size-=t?1:0,t}var Tl=sy;function ay(e){return jt(this,e).get(e)}var Ml=ay;function ly(e){return jt(this,e).has(e)}var Cl=ly;function py(e,t){var r=jt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var _l=py;function eo(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}eo.prototype.clear=Al;eo.prototype.delete=Tl;eo.prototype.get=Ml;eo.prototype.has=Cl;eo.prototype.set=_l;var mr=eo;var fy="Expected a function";function ys(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(fy);var r=function(){var o=arguments,n=t?t.apply(this,o):o[0],i=r.cache;if(i.has(n))return i.get(n);var s=e.apply(this,o);return r.cache=i.set(n,s)||i,s};return r.cache=new(ys.Cache||mr),r}ys.Cache=mr;var kl=ys;var dy=500;function uy(e){var t=kl(e,function(o){return r.size===dy&&r.clear(),o}),r=t.cache;return t}var Ll=uy;var cy=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,my=/\\(\\)?/g,gy=Ll(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(cy,function(r,o,n,i){t.push(n?i.replace(my,"$1"):o||r);}),t}),Fl=gy;function yy(e){return e==null?"":qa(e)}var Dl=yy;function hy(e,t){return G(e)?e:Zr(e,t)?[e]:Fl(Dl(e))}var to=hy;function Sy(e){if(typeof e=="string"||Br(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Ye=Sy;function by(e,t){t=to(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[Ye(t[r++])];return r&&r==o?e:void 0}var kn=by;function Ry(e,t,r){var o=e==null?void 0:kn(e,t);return o===void 0?r:o}var jl=Ry;function Oy(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Ln=Oy;var xy=_n(Object.getPrototypeOf,Object),ro=xy;var Ey="[object Object]",Py=Function.prototype,$y=Object.prototype,Il=Py.toString,vy=$y.hasOwnProperty,Ay=Il.call(Object);function Ny(e){if(!te(e)||Re(e)!=Ey)return false;var t=ro(e);if(t===null)return true;var r=vy.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Il.call(r)==Ay}var Oe=Ny;function Ty(){this.__data__=new Ft,this.size=0;}var Vl=Ty;function My(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Bl=My;function Cy(e){return this.__data__.get(e)}var ql=Cy;function _y(e){return this.__data__.has(e)}var Wl=_y;var ky=200;function Ly(e,t){var r=this.__data__;if(r instanceof Ft){var o=r.__data__;if(!Dt||o.length<ky-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new mr(o);}return r.set(e,t),this.size=r.size,this}var Ul=Ly;function oo(e){var t=this.__data__=new Ft(e);this.size=t.size;}oo.prototype.clear=Vl;oo.prototype.delete=Bl;oo.prototype.get=ql;oo.prototype.has=Wl;oo.prototype.set=Ul;var Xe=oo;function Fy(e,t){return e&&He(t,Qe(t),e)}var Gl=Fy;function Dy(e,t){return e&&He(t,Ze(t),e)}var Kl=Dy;var Ql=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zl=Ql&&typeof module=="object"&&module&&!module.nodeType&&module,jy=zl&&zl.exports===Ql,Hl=jy?Y.Buffer:void 0,Jl=Hl?Hl.allocUnsafe:void 0;function Iy(e,t){if(t)return e.slice();var r=e.length,o=Jl?Jl(r):new e.constructor(r);return e.copy(o),o}var Fn=Iy;function Vy(e,t){for(var r=-1,o=e==null?0:e.length,n=0,i=[];++r<o;){var s=e[r];t(s,r,e)&&(i[n++]=s);}return i}var Zl=Vy;function By(){return []}var Dn=By;var qy=Object.prototype,Wy=qy.propertyIsEnumerable,Yl=Object.getOwnPropertySymbols,Uy=Yl?function(e){return e==null?[]:(e=Object(e),Zl(Yl(e),function(t){return Wy.call(e,t)}))}:Dn,no=Uy;function Gy(e,t){return He(e,no(e),t)}var Xl=Gy;var Ky=Object.getOwnPropertySymbols,zy=Ky?function(e){for(var t=[];e;)Ln(t,no(e)),e=ro(e);return t}:Dn,jn=zy;function Hy(e,t){return He(e,jn(e),t)}var ep=Hy;function Jy(e,t,r){var o=t(e);return G(e)?o:Ln(o,r(e))}var In=Jy;function Qy(e){return In(e,Qe,no)}var Uo=Qy;function Zy(e){return In(e,Ze,jn)}var tp=Zy;var Yy=ye(Y,"DataView"),Vn=Yy;var Xy=ye(Y,"Promise"),Bn=Xy;var eh=ye(Y,"Set"),qn=eh;var rp="[object Map]",th="[object Object]",op="[object Promise]",np="[object Set]",ip="[object WeakMap]",sp="[object DataView]",rh=yt(Vn),oh=yt(Dt),nh=yt(Bn),ih=yt(qn),sh=yt(Nn),gr=Re;(Vn&&gr(new Vn(new ArrayBuffer(1)))!=sp||Dt&&gr(new Dt)!=rp||Bn&&gr(Bn.resolve())!=op||qn&&gr(new qn)!=np||Nn&&gr(new Nn)!=ip)&&(gr=function(e){var t=Re(e),r=t==th?e.constructor:void 0,o=r?yt(r):"";if(o)switch(o){case rh:return sp;case oh:return rp;case nh:return op;case ih:return np;case sh:return ip}return t});var bt=gr;var ah=Object.prototype,lh=ah.hasOwnProperty;function ph(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&lh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var ap=ph;var fh=Y.Uint8Array,io=fh;function dh(e){var t=new e.constructor(e.byteLength);return new io(t).set(new io(e)),t}var so=dh;function uh(e,t){var r=t?so(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var lp=uh;var ch=/\w*$/;function mh(e){var t=new e.constructor(e.source,ch.exec(e));return t.lastIndex=e.lastIndex,t}var pp=mh;var fp=ce?ce.prototype:void 0,dp=fp?fp.valueOf:void 0;function gh(e){return dp?Object(dp.call(e)):{}}var up=gh;function yh(e,t){var r=t?so(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Wn=yh;var hh="[object Boolean]",wh="[object Date]",Sh="[object Map]",bh="[object Number]",Rh="[object RegExp]",Oh="[object Set]",xh="[object String]",Eh="[object Symbol]",Ph="[object ArrayBuffer]",$h="[object DataView]",vh="[object Float32Array]",Ah="[object Float64Array]",Nh="[object Int8Array]",Th="[object Int16Array]",Mh="[object Int32Array]",Ch="[object Uint8Array]",_h="[object Uint8ClampedArray]",kh="[object Uint16Array]",Lh="[object Uint32Array]";function Fh(e,t,r){var o=e.constructor;switch(t){case Ph:return so(e);case hh:case wh:return new o(+e);case $h:return lp(e,r);case vh:case Ah:case Nh:case Th:case Mh:case Ch:case _h:case kh:case Lh:return Wn(e,r);case Sh:return new o;case bh:case xh:return new o(e);case Rh:return pp(e);case Oh:return new o;case Eh:return up(e)}}var cp=Fh;function Dh(e){return typeof e.constructor=="function"&&!Hr(e)?Ha(ro(e)):{}}var Un=Dh;var jh="[object Map]";function Ih(e){return te(e)&&bt(e)==jh}var mp=Ih;var gp=wt&&wt.isMap,Vh=gp?Jr(gp):mp,yp=Vh;var Bh="[object Set]";function qh(e){return te(e)&&bt(e)==Bh}var hp=qh;var wp=wt&&wt.isSet,Wh=wp?Jr(wp):hp,Sp=Wh;var Uh=1,Gh=2,Kh=4,bp="[object Arguments]",zh="[object Array]",Hh="[object Boolean]",Jh="[object Date]",Qh="[object Error]",Rp="[object Function]",Zh="[object GeneratorFunction]",Yh="[object Map]",Xh="[object Number]",Op="[object Object]",ew="[object RegExp]",tw="[object Set]",rw="[object String]",ow="[object Symbol]",nw="[object WeakMap]",iw="[object ArrayBuffer]",sw="[object DataView]",aw="[object Float32Array]",lw="[object Float64Array]",pw="[object Int8Array]",fw="[object Int16Array]",dw="[object Int32Array]",uw="[object Uint8Array]",cw="[object Uint8ClampedArray]",mw="[object Uint16Array]",gw="[object Uint32Array]",I={};I[bp]=I[zh]=I[iw]=I[sw]=I[Hh]=I[Jh]=I[aw]=I[lw]=I[pw]=I[fw]=I[dw]=I[Yh]=I[Xh]=I[Op]=I[ew]=I[tw]=I[rw]=I[ow]=I[uw]=I[cw]=I[mw]=I[gw]=true;I[Qh]=I[Rp]=I[nw]=false;function Gn(e,t,r,o,n,i){var s,a=t&Uh,l=t&Gh,p=t&Kh;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!K(e))return e;var f=G(e);if(f){if(s=ap(e),!a)return Tn(e,s)}else {var d=bt(e),u=d==Rp||d==Zh;if(ht(e))return Fn(e,a);if(d==Op||d==bp||u&&!n){if(s=l||u?{}:Un(e),!a)return l?ep(e,Kl(s,e)):Xl(e,Gl(s,e))}else {if(!I[d])return n?e:{};s=cp(e,d,a);}}i||(i=new Xe);var m=i.get(e);if(m)return m;i.set(e,s),Sp(e)?e.forEach(function(h){s.add(Gn(h,t,r,h,e,i));}):yp(e)&&e.forEach(function(h,w){s.set(w,Gn(h,t,r,w,e,i));});var g=p?l?tp:Uo:l?Ze:Qe,c=f?void 0:g(e);return el(c||e,function(h,w){c&&(w=h,h=e[w]),Kr(s,w,Gn(h,t,r,w,e,i));}),s}var Kn=Gn;var yw=1,hw=4;function ww(e){return Kn(e,yw|hw)}var zn=ww;var Sw=1,bw=4;function Rw(e,t){return t=typeof t=="function"?t:void 0,Kn(e,Sw|bw,t)}var hs=Rw;var Ow="__lodash_hash_undefined__";function xw(e){return this.__data__.set(e,Ow),this}var xp=xw;function Ew(e){return this.__data__.has(e)}var Ep=Ew;function Hn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new mr;++t<r;)this.add(e[t]);}Hn.prototype.add=Hn.prototype.push=xp;Hn.prototype.has=Ep;var Pp=Hn;function Pw(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return true;return false}var Jn=Pw;function $w(e,t){return e.has(t)}var $p=$w;var vw=1,Aw=2;function Nw(e,t,r,o,n,i){var s=r&vw,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var p=i.get(e),f=i.get(t);if(p&&f)return p==t&&f==e;var d=-1,u=true,m=r&Aw?new Pp:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var g=e[d],c=t[d];if(o)var h=s?o(c,g,d,t,e,i):o(g,c,d,e,t,i);if(h!==void 0){if(h)continue;u=false;break}if(m){if(!Jn(t,function(w,S){if(!$p(m,S)&&(g===w||n(g,w,r,o,i)))return m.push(S)})){u=false;break}}else if(!(g===c||n(g,c,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var Qn=Nw;function Tw(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var vp=Tw;function Mw(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Ap=Mw;var Cw=1,_w=2,kw="[object Boolean]",Lw="[object Date]",Fw="[object Error]",Dw="[object Map]",jw="[object Number]",Iw="[object RegExp]",Vw="[object Set]",Bw="[object String]",qw="[object Symbol]",Ww="[object ArrayBuffer]",Uw="[object DataView]",Np=ce?ce.prototype:void 0,ws=Np?Np.valueOf:void 0;function Gw(e,t,r,o,n,i,s){switch(r){case Uw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case Ww:return !(e.byteLength!=t.byteLength||!i(new io(e),new io(t)));case kw:case Lw:case jw:return ze(+e,+t);case Fw:return e.name==t.name&&e.message==t.message;case Iw:case Bw:return e==t+"";case Dw:var a=vp;case Vw:var l=o&Cw;if(a||(a=Ap),e.size!=t.size&&!l)return false;var p=s.get(e);if(p)return p==t;o|=_w,s.set(e,t);var f=Qn(a(e),a(t),o,n,i,s);return s.delete(e),f;case qw:if(ws)return ws.call(e)==ws.call(t)}return false}var Tp=Gw;var Kw=1,zw=Object.prototype,Hw=zw.hasOwnProperty;function Jw(e,t,r,o,n,i){var s=r&Kw,a=Uo(e),l=a.length,p=Uo(t),f=p.length;if(l!=f&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:Hw.call(t,u)))return false}var m=i.get(e),g=i.get(t);if(m&&g)return m==t&&g==e;var c=true;i.set(e,t),i.set(t,e);for(var h=s;++d<l;){u=a[d];var w=e[u],S=t[u];if(o)var R=s?o(S,w,u,t,e,i):o(w,S,u,e,t,i);if(!(R===void 0?w===S||n(w,S,r,o,i):R)){c=false;break}h||(h=u=="constructor");}if(c&&!h){var b=e.constructor,x=t.constructor;b!=x&&"constructor"in e&&"constructor"in t&&!(typeof b=="function"&&b instanceof b&&typeof x=="function"&&x instanceof x)&&(c=false);}return i.delete(e),i.delete(t),c}var Mp=Jw;var Qw=1,Cp="[object Arguments]",_p="[object Array]",Zn="[object Object]",Zw=Object.prototype,kp=Zw.hasOwnProperty;function Yw(e,t,r,o,n,i){var s=G(e),a=G(t),l=s?_p:bt(e),p=a?_p:bt(t);l=l==Cp?Zn:l,p=p==Cp?Zn:p;var f=l==Zn,d=p==Zn,u=l==p;if(u&&ht(e)){if(!ht(t))return false;s=true,f=false;}if(u&&!f)return i||(i=new Xe),s||Qr(e)?Qn(e,t,r,o,n,i):Tp(e,t,l,r,o,n,i);if(!(r&Qw)){var m=f&&kp.call(e,"__wrapped__"),g=d&&kp.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,h=g?t.value():t;return i||(i=new Xe),n(c,h,r,o,i)}}return u?(i||(i=new Xe),Mp(e,t,r,o,n,i)):false}var Lp=Yw;function Fp(e,t,r,o,n){return e===t?true:e==null||t==null||!te(e)&&!te(t)?e!==e&&t!==t:Lp(e,t,r,o,Fp,n)}var ao=Fp;var Xw=1,eS=2;function tS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],p=e[l],f=a[1];if(s&&a[2]){if(p===void 0&&!(l in e))return false}else {var d=new Xe;if(o)var u=o(p,f,l,e,t,d);if(!(u===void 0?ao(f,p,Xw|eS,o,d):u))return false}}return true}var Dp=tS;function rS(e){return e===e&&!K(e)}var Yn=rS;function oS(e){for(var t=Qe(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,Yn(n)];}return t}var jp=oS;function nS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var Xn=nS;function iS(e){var t=jp(e);return t.length==1&&t[0][2]?Xn(t[0][0],t[0][1]):function(r){return r===e||Dp(r,e,t)}}var Ip=iS;function sS(e,t){return e!=null&&t in Object(e)}var Vp=sS;function aS(e,t,r){t=to(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=Ye(t[o]);if(!(i=e!=null&&r(e,s)))break;e=e[s];}return i||++o!=n?i:(n=e==null?0:e.length,!!n&&zr(n)&&kt(s,n)&&(G(e)||cr(e)))}var Bp=aS;function lS(e,t){return e!=null&&Bp(e,t,Vp)}var qp=lS;var pS=1,fS=2;function dS(e,t){return Zr(e)&&Yn(t)?Xn(Ye(e),t):function(r){var o=jl(r,e);return o===void 0&&o===t?qp(r,e):ao(t,o,pS|fS)}}var Wp=dS;function uS(e){return function(t){return t?.[e]}}var Up=uS;function cS(e){return function(t){return kn(t,e)}}var Gp=cS;function mS(e){return Zr(e)?Up(Ye(e)):Gp(e)}var Kp=mS;function gS(e){return typeof e=="function"?e:e==null?qr:typeof e=="object"?G(e)?Wp(e[0],e[1]):Ip(e):Kp(e)}var zp=gS;function yS(e){return function(t,r,o){for(var n=-1,i=Object(t),s=o(t),a=s.length;a--;){var l=s[e?a:++n];if(r(i[l],l,i)===false)break}return t}}var Hp=yS;var hS=Hp(),ei=hS;function wS(e,t){return e&&ei(e,t,Qe)}var Jp=wS;function SS(e,t){return function(r,o){if(r==null)return r;if(!Je(r))return e(r,o);for(var n=r.length,i=t?n:-1,s=Object(r);(t?i--:++i<n)&&o(s[i],i,s)!==false;);return r}}var Qp=SS;var bS=Qp(Jp),Zp=bS;function RS(e,t,r){(r!==void 0&&!ze(e[t],r)||r===void 0&&!(t in e))&&Gr(e,t,r);}var Go=RS;function OS(e){return te(e)&&Je(e)}var Yp=OS;function xS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Ko=xS;function ES(e){return He(e,Ze(e))}var Xp=ES;function PS(e,t,r,o,n,i,s){var a=Ko(e,r),l=Ko(t,r),p=s.get(l);if(p){Go(e,r,p);return}var f=i?i(a,l,r+"",e,t,s):void 0,d=f===void 0;if(d){var u=G(l),m=!u&&ht(l),g=!u&&!m&&Qr(l);f=l,u||m||g?G(a)?f=a:Yp(a)?f=Tn(a):m?(d=false,f=Fn(l,true)):g?(d=false,f=Wn(l,true)):f=[]:Oe(l)||cr(l)?(f=a,cr(a)?f=Xp(a):(!K(a)||Wr(a))&&(f=Un(l))):d=false;}d&&(s.set(l,f),n(f,l,o,i,s),s.delete(l)),Go(e,r,f);}var ef=PS;function tf(e,t,r,o,n){e!==t&&ei(t,function(i,s){if(n||(n=new Xe),K(i))ef(e,t,s,r,tf,o,n);else {var a=o?o(Ko(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),Go(e,s,a);}},Ze);}var rf=tf;function $S(e,t){return ao(e,t)}var yr=$S;var vS=nl(function(e,t,r){rf(e,t,r);}),Ss=vS;function AS(e,t,r,o){if(!K(e))return e;t=to(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=Ye(t[n]),p=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var f=a[l];p=o?o(f,l,a):void 0,p===void 0&&(p=K(f)?f:kt(t[n+1])?[]:{});}Kr(a,l,p),a=a[l];}return e}var of=AS;function NS(e,t,r){return e==null?e:of(e,t,r)}var bs=NS;function TS(e,t){var r;return Zp(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var nf=TS;function MS(e,t,r){var o=G(e)?Jn:nf;return r&&Mn(e,t,r)&&(t=void 0),o(e,zp(t))}var Rs=MS;var CS=/^(\$+)\.(.*)$/,k=e=>{let t=CS.exec(e);return t?{depth:t[1].length,path:t[2]}:null},Os=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,Te=(e,t)=>{let r=k(e);return r?r.depth>t.length?{outOfBounds:Os(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},_S=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,kS=e=>e===""?[""]:[...e.matchAll(_S)].map(t=>t[1]??t[3]??t[4]),LS=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},pe=(e,t)=>kS(t).reduce(LS,e),It=(e,t)=>{let r=Te(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return pe(r.scope,r.path)},sf=(e,t)=>k(e)?It(e,t):pe(t[0],e),zo=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,ti=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&k(e.field))throw new Error(zo(e.field,t))};var af={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},lo=zn(af),xs=e=>hs(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!Oe(t)?t:void 0),FS=e=>e!=null&&typeof e.then=="function",hr={set:(e,t)=>{bs(lo,e,xs(t));},get:e=>pe(lo,e),reset:()=>{lo=zn(af);},with:(e,t)=>{let r=lo;lo=Ss(xs(r),xs(e));try{let o=t();if(FS(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{lo=r;}}},DS=new Set(["postgresql","cockroachdb","mongodb"]),lf=e=>DS.has(e),ie=e=>e??hr.get("string.caseInsensitive")??false,ri=e=>{let t=e??hr.get("string.fuzzy")??false;return t?t===true?{}:t:false};var y={equals:"equals",notEquals:"notEquals",lessThan:"lessThan",lessThanEquals:"lessThanEquals",greaterThan:"greaterThan",greaterThanEquals:"greaterThanEquals",contains:"contains",notContains:"notContains",in:"in",notIn:"notIn",matches:"matches",notMatches:"notMatches",between:"between",notBetween:"notBetween",isEmpty:"isEmpty",notEmpty:"notEmpty",exists:"exists",notExists:"notExists",startsWith:"startsWith",notStartsWith:"notStartsWith",endsWith:"endsWith",notEndsWith:"notEndsWith"},P={all:"all",any:"any",none:"none",atLeast:"atLeast",atMost:"atMost",exactly:"exactly",empty:"empty",notEmpty:"notEmpty"},v={before:"before",after:"after",onOrBefore:"onOrBefore",onOrAfter:"onOrAfter",notBefore:"notBefore",notAfter:"notAfter",within:"within",notWithin:"notWithin",between:"between",notBetween:"notBetween",dayIn:"dayIn",dayNotIn:"dayNotIn"};var z={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},De=["Int","Float","Decimal","BigInt"],po=["String",...De,"DateTime"],Vt=["String"],oi=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],ni=Object.values(z),pf=ni,jS={check:"check",toPrisma:"toPrisma",toSql:"toSql"},ai=e=>typeof e=="string"&&Object.hasOwn(z,e),T=["check","toPrisma","toSql"],fo=["check","toPrisma"],ii=["check","toSql"],Ot={none:"none",scalar:"scalar",ordered:"ordered",array:"array",string:"string",pattern:"pattern",range:"range",dateValue:"dateValue",dateRange:"dateRange",dateWindow:"dateWindow",dayList:"dayList",count:"count",predicate:"predicate"},uo={[y.equals]:{kinds:oi,targets:T,valueShape:"scalar"},[y.notEquals]:{negates:y.equals,kinds:oi,targets:T,valueShape:"scalar"},[y.lessThan]:{kinds:po,targets:T,valueShape:"ordered",comparator:"lt"},[y.lessThanEquals]:{kinds:po,targets:T,valueShape:"ordered",comparator:"lte"},[y.greaterThan]:{kinds:po,targets:T,valueShape:"ordered",comparator:"gt"},[y.greaterThanEquals]:{kinds:po,targets:T,valueShape:"ordered",comparator:"gte"},[y.in]:{kinds:oi,targets:T,valueShape:"array"},[y.notIn]:{negates:y.in,kinds:oi,targets:T,valueShape:"array"},[y.contains]:{kinds:Vt,targets:T,valueShape:"string"},[y.notContains]:{negates:y.contains,kinds:Vt,targets:T,valueShape:"string"},[y.startsWith]:{kinds:Vt,targets:T,valueShape:"string"},[y.notStartsWith]:{negates:y.startsWith,kinds:Vt,targets:T,valueShape:"string"},[y.endsWith]:{kinds:Vt,targets:T,valueShape:"string"},[y.notEndsWith]:{negates:y.endsWith,kinds:Vt,targets:T,valueShape:"string"},[y.matches]:{kinds:Vt,targets:ii,valueShape:"pattern"},[y.notMatches]:{negates:y.matches,kinds:Vt,targets:ii,valueShape:"pattern"},[y.between]:{kinds:po,targets:T,valueShape:"range"},[y.notBetween]:{negates:y.between,kinds:po,targets:T,valueShape:"range"},[y.isEmpty]:{kinds:pf,targets:T,valueShape:"none"},[y.notEmpty]:{kinds:pf,targets:T,valueShape:"none"},[y.exists]:{kinds:ni,targets:T,valueShape:"none"},[y.notExists]:{kinds:ni,targets:T,valueShape:"none"}},co={[v.before]:{kinds:["DateTime"],targets:T,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[v.after]:{kinds:["DateTime"],targets:T,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[v.onOrBefore]:{kinds:["DateTime"],targets:T,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.onOrAfter]:{kinds:["DateTime"],targets:T,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notBefore]:{negates:v.before,kinds:["DateTime"],targets:T,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notAfter]:{negates:v.after,kinds:["DateTime"],targets:T,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.within]:{kinds:["DateTime"],targets:T,valueShape:"dateWindow",acceptsExpr:true},[v.notWithin]:{negates:v.within,kinds:["DateTime"],targets:T,valueShape:"dateWindow",acceptsExpr:true},[v.between]:{kinds:["DateTime"],targets:T,valueShape:"dateRange",acceptsExpr:true},[v.notBetween]:{negates:v.between,kinds:["DateTime"],targets:T,valueShape:"dateRange",acceptsExpr:true},[v.dayIn]:{kinds:["DateTime"],targets:ii,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:ii,valueShape:"dayList",acceptsExpr:false}},si={[P.all]:{targets:fo,valueShape:"predicate"},[P.any]:{targets:fo,valueShape:"predicate"},[P.none]:{targets:fo,valueShape:"predicate"},[P.atLeast]:{targets:fo,valueShape:"count",comparator:"gte"},[P.atMost]:{targets:fo,valueShape:"count",comparator:"lte"},[P.exactly]:{targets:fo,valueShape:"count",comparator:"equals"},[P.empty]:{targets:T,valueShape:"none"},[P.notEmpty]:{targets:T,valueShape:"none"}},ff={field:uo,date:co,array:si},Rt=(e,t)=>Object.hasOwn(ff[t],e)?ff[t][e]:void 0,mo=e=>typeof e.operator=="string"?Rt(e.operator,"field"):typeof e.dateOperator=="string"?Rt(e.dateOperator,"date"):void 0,Bt=(e,t)=>Rt(e,t)?.comparator,xt=(e,t)=>{let r=Rt(e,t);if(!r)throw ne(e,t);return r.valueShape},li=(e,t,r)=>Rt(e,t)?.targets.includes(r)??false,IS=(e,t)=>{let r=Object.keys(uo).filter(n=>{let i=uo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(co).filter(n=>{let i=co[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},VS=e=>Object.keys(si).filter(t=>e?si[t].targets.includes(e):true),df=[...Object.entries(uo),...Object.entries(co)],xe=(...e)=>df.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),qt=xe("none"),go=xe("ordered"),Ho=xe("dateWindow"),Me=xe("range","dateRange","dateWindow"),uf=xe("ordered","string","pattern","array"),et=[y.contains,y.notContains],pi=xe("scalar","ordered","range"),tt=["sum","avg"],BS=()=>pi,rt=xe("scalar"),Wt=xe("array"),cf=xe("scalar","array"),mf=xe("dayList"),gf=xe("dateRange"),yf=xe("scalar","ordered","range","dateValue","dateRange"),hf=(...e)=>Object.entries(si).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Ut=hf("count"),wf=hf("predicate","count"),Sf=[P.any,P.atLeast],W=[...Object.entries(uo),...Object.entries(co)].flatMap(([e,t])=>t.negates?[e]:[]),bf=W.filter(e=>xe("string").includes(e)),yo=W.filter(e=>Me.includes(e)),Rf=(...e)=>df.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!W.includes(t)?[t]:[]),fi=Rf("lt","lte"),Of=Rf("gt","gte"),xf=["Int","BigInt"],Ef=[...De,"DateTime","Boolean","String"],Pf=["Int","BigInt","Float","Boolean","String"],$f=["scalar","ordered","string"],Gt={years:{interval:"months",factor:12,calendar:true},quarters:{interval:"months",factor:3,calendar:true},months:{interval:"months",factor:1,calendar:true},weeks:{interval:"days",factor:7,calendar:true},days:{interval:"days",factor:1,calendar:true},hours:{interval:"secs",factor:3600,calendar:false},minutes:{interval:"secs",factor:60,calendar:false},seconds:{interval:"secs",factor:1,calendar:false}},vf=["months","days","secs"],Es=e=>Object.hasOwn(Gt,e),wr=e=>Es(e)&&Gt[e].calendar,di=["year","quarter","month","week","isoWeek","day","hour","minute","second"],ho=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Af=e=>ho.includes(e.toLowerCase()),Nf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),Jo=Nf(uo,[[y.isEmpty,y.notEmpty],[y.exists,y.notExists]]),Tf=Nf(co),ui={[y.lessThan]:y.greaterThanEquals,[y.lessThanEquals]:y.greaterThan,[y.greaterThan]:y.lessThanEquals,[y.greaterThanEquals]:y.lessThan,[v.onOrBefore]:v.after,[v.onOrAfter]:v.before};var ci=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),ne=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),wo=e=>new Error(`${e} requires a count`),je=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),Ie=e=>new Error(`${e} requires a condition to check against array elements`),So=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),mi=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),gi=e=>et.includes(e.operator)&&ri(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,yi=(e,t)=>!go.includes(e)&&!Me.includes(e)?null:(Me.includes(e)&&Array.isArray(t)?t:[t]).some(o=>typeof o=="boolean"||typeof o=="object"&&o!==null&&!(o instanceof Date))?new Error(`'${e}' orders numbers, strings and dates; it can't compare ${JSON.stringify(t)}`):null,Kt=e=>new Error(`aggregate.mode must be one of ${tt.join(" / ")}, not '${String(e)}'`),ot=()=>new Error("A condition is exactly one of: a field, date, array or aggregate rule, all, any, or if/then[/else]"),C=(e,t,r)=>new Error(`${t} has no ${e==="toSql"?"SQL":"Prisma"} form${r?` (${r})`:""}; use ${e==="toSql"?"check()":"toSql() or check()"}.`),nt=e=>new Error(`Windowing (filter/orderBy/take/skip) is not supported by ${e}() for this rule; evaluate with check()${e==="toPrisma"?" \u2014 toPrisma compiles a filter alone and an extremal take: 1":""}.`),hi=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),wi=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),Z=class extends Error{name="UsageError"};st__default.default.extend(GS__default.default);st__default.default.extend(US__default.default);st__default.default.extend(WS__default.default);st__default.default.extend(qS__default.default);var X=e=>{if(!Oe(e))return false;let t=e;return "ago"in t||"ahead"in t||"this"in t||"last"in t||"next"in t||"start"in t||"end"in t},Et="UTC",Qo=e=>{if(e.now===void 0)throw new Z("date expressions require `now` to be supplied to the evaluator");let t=st__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new Z(`invalid \`now\`: ${String(e.now)}`);return t},Ps=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Gt[o].interval===t?r+n*Gt[o].factor:r,0),Mf="YYYY-MM-DDTHH:mm:ss.SSS",zt=(e,t,r,o)=>{let n=Ps(t,"months"),i=Ps(t,"days"),s=Ps(t,"secs"),a=st__default.default.utc(e.tz(o).format(Mf));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),st__default.default.tz(a.format(Mf),o)},KS=e=>"ago"in e||"ahead"in e,Si=(e,t)=>t===-1?{ago:e}:{ahead:e},he=e=>KS(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,Zo=e=>"this"in e||"last"in e||"next"in e,$s=e=>"start"in e||"end"in e,bi=e=>"this"in e?e.this:"last"in e?e.last:e.next,zS=e=>{let t=bi(e);if(typeof t!="string"||!di.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},HS=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,vs=(e,t)=>{let r=Qo(t),o=zS(e),n=o==="isoWeek"?"week":o,i=r;"last"in e?i=r.subtract(1,n):"next"in e&&(i=r.add(1,n));let s=HS(o,t);return [i.startOf(s),i.endOf(s)]},As=(e,t)=>{let r=he(e);if(r)return zt(Qo(t),...r,t.timeZone);if($s(e)){let o="start"in e?e.start:e.end,[n,i]=vs(o,t);return "start"in e?n:i}throw new Error("a point operator requires a rolling or start/end edge expression, not a bare period")},bo=(e,t,r)=>{if(Zo(e)){let[o,n]=vs(e,r),i=mo({dateOperator:t})?.negates??t;return fi.includes(i)?o:n}return As(e,r)},Ro=(e,t)=>{if(Zo(e))return vs(e,t);let r=he(e);if(r){let o=Qo(t),n=zt(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw je("within")};var Cf=["value","bind","path"],Ve=e=>typeof e.path=="string"&&e.path!=="",br=e=>Ve(e)?k(e.path)??{depth:0,path:e.path}:null,Yo=(e,t)=>{if(e.value!==void 0)return t.value(e.value);if(e.bind!==void 0)return t.bind(e.bind,e.bindOptional);if(Ve(e))return t.path(e.path);throw new Error("No value, path or bind specified")},Ri=e=>Oe(e)&&(e.value!==void 0||Ve(e)||typeof e.bind=="string"),Ns=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new Z(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Oi=(e,t,r)=>{if(t===true)return null;throw new Z(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},Pt=(e,t,r)=>Yo(e,{value:o=>o,bind:(o,n)=>Ns(o,n,r),path:o=>sf(o,t)??null});var _f=e=>typeof e=="object"&&e!==null,Ms=e=>"if"in e||"then"in e||"else"in e,Ce=e=>"arrayOperator"in e||"aggregate"in e,kf=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Ms(e)?["if","then","else"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:false}]:[]):[],...["condition","filter"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:true}]:[])],Ee=e=>"all"in e||"any"in e||Ms(e),re=(e,t,r)=>{if(!_f(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of kf(o))a?i!==false&&re(s,t,i):re(s,t,r);},Lf=(e,t,r,o)=>{let n=false;return re(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},Ht=(e,t,r)=>{if(!_f(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=kf(i),a=s.some(p=>p.nested)&&t.below?t.below(i,o):o;for(let p of ["all","any"])Array.isArray(i[p])&&(i[p]=[...i[p]]);for(let{key:p,index:f,child:d,nested:u}of s){if(u&&a===false)continue;let m=Ht(d,t,u?a:o);f===void 0?i[p]=m:i[p][f]=m;}let l=t.after?t.after(i,o):i;return l===i&&JS(i,e)?e:l},JS=(e,t)=>{let r=Object.keys(e);return r.length!==Object.keys(t).length?false:r.every(o=>{let[n,i]=[e[o],t[o]];return n===i?true:Array.isArray(n)&&Array.isArray(i)&&n.length===i.length&&n.every((s,a)=>s===i[a])})},QS=(e,t)=>Oe(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Ri(o)?t(o,wr(r)?"whole":"number"):o])):e,Ts=(e,t)=>{let r=X(e)?he(e):null;return r?Si(QS(r[0],t),r[1]):e},xi=(e,t)=>{let r="dateOperator"in e;if(!r&&!("operator"in e))return e;let o=e;if(r&&e.value!==void 0){let n=Array.isArray(e.value)?e.value.map(i=>Ts(i,t)):Ts(e.value,t);o={...o,value:n};}if(Ri(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Ts(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Ri(o)&&(o=t(o,"value")),o},Xo=e=>{let t=[];return xi(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Cs=e=>Xo(e).flatMap(({source:t,role:r})=>Ve(t)?[{ref:t.path,role:r}]:[]),Jt=e=>Cs(e).map(t=>t.ref),Oo=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],se=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Ms(e)&&t.add("if"),"arrayOperator"in e&&t.add("array"),"dateOperator"in e&&t.add("date"),"aggregate"in e?t.add("aggregate"):"operator"in e&&t.add("field"),t.size===1?[...t][0]:null},U=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},$t=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var ZS=e=>Xo(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),en=(e,{required:t=false}={})=>{let r=new Set;return re(e,o=>{for(let n of ZS(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},_s=(e,t)=>{let r=o=>{if(typeof o.bind!="string"||!Object.hasOwn(t,o.bind))return o;let{bind:n,bindOptional:i,...s}=o;return {...s,value:Ns(n,true,t)}};return Ht(e,{rewrite:o=>xi(xi(o,r),r)})};var Ff=BigInt(Number.MAX_SAFE_INTEGER),tn=e=>{if(e>Ff||e<-Ff)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},ks=e=>typeof e=="bigint"?tn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,Ei=(e,t)=>{if(e==null)return null;let r=ks(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},_e=([e,t])=>t<e?[t,e]:[e,t],Be=(e,t)=>{if(!Array.isArray(e)||e.length!==2)throw new Error(`${t} operator requires an array of two values`);return [e[0],e[1]]},xo=(e,t)=>{let r=Be(e,t);if(!r.every(ae))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},Pi=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},vt=e=>{let t=Pi(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},ae=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Ls=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!wr(t)||Number.isInteger(e))?null:`${t} must be a non-negative${wr(t)?" whole":""} number (got ${String(e)})`,Fs=(e,t,r)=>{let o=typeof e=="number"?e:Ei(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Ls(o,r);if(n===null)return o;if(typeof e!="number"&&Ve(e))return null;throw new Error(n)},Rr=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=Fs(n,t,o);if(i===null)return null;r[o]=i;}return r},it=(e,t)=>{let r=he(e);if(!r)return e;let o=Rr(r[0],t);return o?Si(o,r[1]):null};var Or=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>Or(n,t));return o.some(n=>n===null)?null:o}let r=ks(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},xr=e=>Ei(e,"an offset"),Eo=e=>{if(e==null)return null;let t=X(e)?he(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};st__default.default.extend(GS__default.default);st__default.default.extend(US__default.default);st__default.default.extend(XS__default.default);st__default.default.extend(YS__default.default);var If=(e,t,r={},o)=>{let n=It(e.field,t),i=Er(r,u=>Pt(u,t,o)),s=i.timeZone;if(n==null)return W.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=ae(n)?Qt(n,s):null;if(!a?.isValid())throw new Error(`${e.field} is not a valid date: ${String(n)}`);let l=u=>e.error||`${e.field} ${u}`;if(mf.includes(e.dateOperator)){let u=Ds(Pt(e,t,o));if(u===null)return e.error||`${e.field} has no comparison value`;let m=u.includes(a.tz(s).day()),g=u.map(c=>ho[c]).join(" or ");return e.dateOperator===v.dayIn?m||l(`must be on ${g}`):!m||l(`must not be on ${g}`)}let p=rb(e,t,i,s,o);if(p===null)return e.error||`${e.field} has no comparison value`;let[f,d=f]=p;switch(e.dateOperator){case v.before:return a.isBefore(f)||l(`must be before ${f.format()}`);case v.after:return a.isAfter(f)||l(`must be after ${f.format()}`);case v.onOrBefore:return a.isSameOrBefore(f)||l(`must be on or before ${f.format()}`);case v.onOrAfter:return a.isSameOrAfter(f)||l(`must be on or after ${f.format()}`);case v.within:return a.isSameOrAfter(f)&&a.isSameOrBefore(d)||l(`must be within ${f.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(f)||l(`must not be before ${f.format()}`);case v.notAfter:return a.isSameOrBefore(f)||l(`must not be after ${f.format()}`);case v.notWithin:return a.isBefore(f)||a.isAfter(d)||l(`must not be within ${f.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(f)&&a.isSameOrBefore(d)||l(`must be between ${f.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(f)||a.isAfter(d)||l(`must not be between ${f.format()} and ${d.format()}`);default:throw ne(e.dateOperator,"date")}},rb=(e,t,r,o,n)=>{let i=e.dateOperator,s=g=>Pt(g,t,n),a=Pt(e,t,n);if(a==null)return null;let l=e.offset===void 0?void 0:Eo(s(e.offset));if(l===null)return null;let p=g=>{if(l===void 0)return g;let c=Rr(l[0],s);return c&&zt(g,c,l[1],o)};if(Ho.includes(i)){if(!X(a))throw je(i);let g=it(a,s);return g&&Ro(g,r)}let f=(g,c)=>{if(g==null)return null;if(X(g)){let w=it(g,s);return w&&As(w,r)}let h=Qt(g,o);if(!h.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return h};if(gf.includes(i)){let[g,c]=Be(a,i),h=f(g,"start date"),w=f(c,"end date");if(!h||!w)return null;let[S,R]=_e([h,w]),b=p(S),x=p(R);return b&&x?[b,x]:null}if(Array.isArray(a))throw new Error(`${i} operator requires a single date value`);let d=g=>{let c=it(g,s);return c&&bo(c,i,r)},u=X(a)?d(a):f(a,"comparison date");if(!u)return null;let m=p(u);return m&&[m]},Er=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:jf(r??Et)};if(br(r))throw new Z(`timeZone is one per evaluation; give it as a string or a { bind }, not the row path '${r.path}'`);let o=t(r);if(o!=null&&typeof o!="string")throw new Z(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:jf(o??Et)}},Df=new Set,jf=e=>{if(Df.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new Z(`invalid time zone: ${e}`)}return Df.add(e),e},ob=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,nb=e=>ob.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),Qt=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return st__default.default(Number(e));if(typeof e=="string"&&!nb(e)){let r=st__default.default(e);return r.isValid()?st__default.default.tz(e,t):r}return typeof e=="string"?st__default.default(new Date(e.trim())):st__default.default(e)},$i=(e,t)=>{let r=ae(e)?Qt(e,t):st__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},Ds=e=>{if(e==null)return null;if(!Array.isArray(e))throw new Error("a weekday operator requires an array of day names");return e.map(t=>{let r=ho.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var sb=e=>e<=3?0:e<=6?1:2,ab=(e,t)=>{let{maxDistance:r,maxRatio:o}=e,n=[];return typeof r=="number"&&n.push(r),typeof o=="number"&&n.push(Math.floor(t*o)),n.length>0?Math.min(...n):sb(t)},Vf=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),lb=e=>/^\d+$/.test(e),pb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,Bf=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=Vf(o);if(i.length===0)return false;let s=Vf(n);return s.length===0?false:i.every(a=>{let l=ab(r,a.length);return l===0||lb(a)?s.includes(a):s.some(p=>pb(a,p,l))})};var Zt=e=>{let t=e instanceof RegExp?e.source:e,r=e instanceof RegExp?e.flags:"";if(/[^i]/.test(r))throw new Error(`Refused pattern /${t}/${r}: only the 'i' flag is supported`);let o=r==="i";try{return {source:t,caseInsensitive:o,re:re2js.RE2JS.compile(t,o?re2js.RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},Po={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Wf={alnum:"0-9A-Za-z",alpha:"A-Za-z",ascii:"\\u0000-\\u007f",blank:"\\t ",cntrl:"\\u0000-\\u001f\\u007f",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:"\\t\\n\\v\\f\\r ",upper:"A-Z",word:"0-9A-Za-z_",xdigit:"0-9A-Fa-f"},fb=/[\\^$.|?*+()[\]{}]/,js=255,Uf=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,db=e=>fb.test(e)?`\\${e}`:e,rn=e=>{let t=s=>{throw new Error(`Refused pattern /${e}/: ${s} has no Postgres form`)},r="",o=0,n=()=>{/^([*+?]|\{\d)/.test(e.slice(o))&&t("a quantified anchor");},i=s=>{let a=e[o+1];if(o+=2,Object.hasOwn(Po,a))return s?Po[a]:`[${Po[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(Po,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${Po[l]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let p=e[o]==="{",f=p?e.indexOf("}",o):o+2,d=e.slice(p?o+1:o,f);return o=p?f+1:f,Uf(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let p=a;for(;p.length<3&&e[o]>="0"&&e[o]<="7";)p+=e[o++];return Uf(Number.parseInt(p,8))}if(!s&&(a==="b"||a==="B")){let p=`[${Po.w}]`;return a==="b"?`(?:(?<=${p})(?!${p})|(?<!${p})(?=${p}))`:`(?:(?<=${p})(?=${p})|(?<!${p})(?!${p}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let p=e.indexOf("\\E",o),f=e.slice(o,p===-1?void 0:p);return o=p===-1?e.length:p+2,[...f].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:db).join("")}return `\\${a}`};for(;o<e.length;){let s=e[o];if(s==="\\")r+=i(false);else if(s===".")r+="[^\\n]",o++;else if(s==="("&&e[o+1]==="?"){let a=/^\(\?P?<[^>]+>/.exec(e.slice(o));a?(r+="(",o+=a[0].length):e[o+2]===":"?(r+="(?:",o+=3):t("a flag group");}else if(s==="{"){let a=/^\{(0|[1-9]\d*)(?:,(0|[1-9]\d*)?)?\}/.exec(e.slice(o));if(!a){r+="\\{",o++;continue}(Number(a[1])>js||Number(a[2]??0)>js)&&t(`a repeat count past ${js}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,p=0;for(;o<e.length&&e[o]!=="]";){let f=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!f||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&p>0&&e[o+1]!=="]"&&!l;f?(f[1]&&t(`a negated class [:^${f[2]}:]`),Object.hasOwn(Wf,f[2])||t(`the class [:${f[2]}:]`),r+=Wf[f[2]],o+=f[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let m=l;l=u&&!a,a=d||m,p++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},Gf=(e,t)=>{try{let{source:r}=Zt(e);return t==="toSql"&&rn(r),null}catch(r){return r.message}};var Kf=e=>e==null||e===""||Array.isArray(e)&&e.length===0,we=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||uf.includes(e.operator))?true:Me.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},$r=e=>qt.includes(e.operator)||rt.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Ai=(e,t)=>{let r=t.filter(n=>Array.isArray(n)||n===null),o=n=>r.map(i=>({...e,operator:n,value:i}));return e.operator===y.in?$t(o(y.equals)):U(o(y.notEquals))},vr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(vr):e,zf=e=>typeof e=="bigint"?tn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?tn(t):t):e,Hf=(e,t,r)=>{if(e==null)return e;if(De.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return tn(BigInt(e.trim()));let o=Number(e);return Number.isFinite(o)?o:e}switch(t){case "DateTime":{if(e instanceof Date)return e.getTime();if(typeof e=="number"||typeof e!="string")return e;let o=Qt(e,r);return o.isValid()?o.valueOf():e}case "Boolean":return e==="true"?true:e==="false"?false:e;case "String":return typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):e;default:return e}},Pr=(e,t,r=Et)=>t===void 0?e:Array.isArray(e)?e.map(o=>Hf(o,t,r)):Hf(e,t,r),on=(e,t,r,o={},n)=>{let i=n?n.value:It(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?Er(o,S=>Pt(S,t,r)).timeZone:Et,l=Pr(zf(i),s,a),p=!qt.includes(e.operator),f=p?ub(Pr(zf(Pt(e,t,r)??null),s,a),e,t,r):void 0;if(p&&we(e,f))return W.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=S=>e.error||`${e.field} ${S}${p?` ${f instanceof RegExp?String(f):JSON.stringify(f)}`:""}`,u=ie(e.caseInsensitive),m=S=>u?vr(S):S,g=m(l),c=m(f),h=ri(e.fuzzy),w=()=>h&&typeof l=="string"&&typeof f=="string"?Bf(l,f,h):Array.isArray(l)?g.some(S=>yr(S,c)):cb(g,c);switch(e.operator){case y.equals:return yr(g,c)||d("must equal");case y.notEquals:return !yr(g,c)||d("must not equal");case y.lessThan:return vi(l,f,"lt")||d("must be less than");case y.lessThanEquals:return vi(l,f,"lte")||d("must be less than or equal to");case y.greaterThan:return vi(l,f,"gt")||d("must be greater than");case y.greaterThanEquals:return vi(l,f,"gte")||d("must be greater than or equal to");case y.in:return Pi(c).some(S=>yr(S,g))||d("must be one of");case y.notIn:return !Pi(c).some(S=>yr(S,g))||d("must not be one of");case y.contains:return w()||d("must contain");case y.notContains:return !w()||d("must not contain");case y.matches:return Jf(l)&&Qf(f)&&Zt(f).re.test(l)||d("must match pattern");case y.notMatches:return !Jf(l)||!Qf(f)||!Zt(f).re.test(l)||d("must not match pattern");case y.between:{let S=Zf(f,e.operator);if(!Xf(l,S))return d("must be between");let R=$o(l),[b,x]=S;return R>=b&&R<=x||d("must be between")}case y.notBetween:{let S=Zf(f,e.operator);if(!Xf(l,S))return true;let R=$o(l),[b,x]=S;return R<b||R>x||d("must not be between")}case y.isEmpty:return Kf(l)||d("must be empty");case y.notEmpty:return !Kf(l)||d("must not be empty");case y.exists:return l!=null||d("must exist");case y.notExists:return l==null||d("must not exist");case y.startsWith:return typeof g=="string"&&typeof c=="string"&&g.startsWith(c)||d("must start with");case y.endsWith:return typeof g=="string"&&typeof c=="string"&&g.endsWith(c)||d("must end with");case y.notStartsWith:return !(typeof g=="string"&&typeof c=="string"&&g.startsWith(c))||d("must not start with");case y.notEndsWith:return !(typeof g=="string"&&typeof c=="string"&&g.endsWith(c))||d("must not end with");default:throw new Error("Unknown operator")}},ub=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=xr(Pt(t.offset,r,o));return n===null?null:Or(e,n)},$o=e=>e instanceof Date?e.getTime():e,vi=(e,t,r)=>{if(!mb(e,t)||!ae(t))return false;let o=$o(e),n=$o(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},Jf=e=>typeof e=="string",Qf=e=>typeof e=="string"||e instanceof RegExp,Zf=(e,t)=>_e(xo(e,t).map(r=>$o(r))),cb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),mb=(e,t)=>ae(e)&&ae(t)&&Yf(e)===Yf(t),Yf=e=>e instanceof Date?"date":typeof e,Xf=(e,t)=>ae(e)&&typeof $o(e)==typeof t[0];var Pe=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,gb=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=se(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},yb=e=>{if(e.filter!==void 0||e.skip!==void 0&&e.skip!==0||e.take!==1||e.orderBy?.length!==1)return null;let{field:t,dir:r}=e.orderBy[0];if(r!=="asc"&&r!=="desc")return null;let o=null;if(e.arrayOperator===P.all?o="all":(e.arrayOperator===P.any||e.arrayOperator===P.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=gb(e.condition);if(!n||n.field!==t)return null;let i=fi.includes(n.op),s=Of.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:p,take:f,skip:d,count:u,...m}=e;if(o==="any")return {...m,arrayOperator:P.any};let g={field:t,operator:y.exists};return {any:[{field:e.field,arrayOperator:P.empty},{all:[{field:e.field,arrayOperator:P.any,condition:g},{...m,arrayOperator:P.all,condition:{if:g,then:e.condition}}]}]}},Is=(e,t,r)=>{let o=e;if(t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length){let n=t.orderBy;o=[...o].sort((i,s)=>{for(let{field:a,dir:l}of n){let p=hb(pe(i,a),pe(s,a),l);if(p!==0)return p}return 0});}return t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},hb=(e,t,r)=>{let o=e==null,n=t==null;if(o||n)return o===n?0:o?1:-1;let i=e instanceof Date?e.getTime():e,s=t instanceof Date?t.getTime():t,a=i<s?-1:i>s?1:0;return r==="asc"?a:-a},vo=e=>{if(!Pe(e))return e;let t=!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0;if(e.filter!==void 0&&!t){let{filter:r,...o}=e;if("aggregate"in e)return {...o,condition:e.condition===void 0?r:U([r,e.condition])};switch(e.arrayOperator){case "all":return {...o,condition:{if:r,then:e.condition??true}};case "empty":return {...o,arrayOperator:"none",condition:r};case "notEmpty":return {...o,arrayOperator:"any",condition:r};default:return {...o,condition:e.condition===void 0?r:U([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:yb(e)};var wb=e=>re(e,t=>{let r=se(t);if(!(r==="all"||r==="any")){if(r==="array"&&!("field"in t))return false;throw new Error("check: when data is an array, every leaf must be a fieldless arrayOperator (composable with all/any)")}}),me=(e,t,r)=>(Array.isArray(t)&&wb(e),at(e,t,{...r,scopes:[t]})),at=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(se(e)){case "all":return Sb(o.all,t,r,o.error);case "any":return bb(o.any,t,r,o.error);case "if":return Rb(o,t,r);case "array":return xb(o,r);case "aggregate":return Ob(o,r);case "date":return If(o,r.scopes,r,r.bindings);case "field":return on(o,r.scopes,r.bindings,r);default:throw ot()}},Ni=(e,t)=>({...e,scopes:[...e.scopes,t]}),Sb=(e,t,r,o)=>{let n=[];for(let i of e){let s=at(i,t,r);s!==true&&(typeof s=="string"?n.push(s):n.push("false"));}return n.length?o||(n.length===1?n[0]:`All conditions must pass: ${n.join(" AND ")}`):true},bb=(e,t,r,o)=>{let n=[];for(let i of e){let s=at(i,t,r);if(s===true)return true;typeof s=="string"&&n.push(s);}return o||(n.length===1?n[0]:`At least one condition must pass: ${n.join(" OR ")}`)},Rb=(e,t,r)=>at(e.if,t,r)===true?at(e.then,t,r):e.else!==void 0?at(e.else,t,r):true,ed=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Ob=(e,t)=>{let r=ed(It(e.field,t.scopes),e.field),o=e.filter,n=Is(r,e,o?m=>at(o,m,Ni(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!tt.includes(i))throw Kt(i);let a=e.condition,p=(a?n.filter(m=>at(a,m,Ni(t,m))===true):n).flatMap((m,g)=>{let c=s?pe(m,s):m;if(c==null)return [];if(typeof c!="number"||!Number.isFinite(c)){let h=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${h} must be a finite number`)}return [c]}),f=p.reduce((m,g)=>m+g,0),d=i==="sum"||p.length===0?f:f/p.length,u={...e,field:`${e.field} ${i}`};return on(u,t.scopes,t.bindings,t,{value:d})},xb=(e,t)=>{let r=ed(e.field?It(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=Is(r,e,o?d=>at(o,d,Ni(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=wf.includes(e.arrayOperator);if(a&&s===void 0)throw Ie(e.arrayOperator);let l=e.count??0;if(Ut.includes(e.arrayOperator)&&e.count===void 0)throw wo(e.arrayOperator);let p=0,f=0;if(a&&s!==void 0){if(n.length>0&&!Rs(n,K))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>at(s,u,Ni(t,u)));p=d.filter(u=>u===true).length,f=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case P.empty:return !n.length||i("must be empty");case P.notEmpty:return !!n.length||i("must not be empty");case P.all:return p===n.length||i(`all elements must match (${f} failed)`);case P.any:return !!p||i("at least one element must match");case P.none:return !p||i(`no elements should match (${p} matched)`);case P.atLeast:return p>=l||i(`at least ${l} elements must match (${p} matched)`);case P.atMost:return p<=l||i(`at most ${l} elements must match (${p} matched)`);case P.exactly:return p===l||i(`exactly ${l} elements must match (${p} matched)`);default:throw ne(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,Ar=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),N=(e,t)=>O(e?.models,t),Se=(e,t,r)=>O(N(e,t)?.fields,r);var qe=({fieldMap:e,model:t})=>`${e}:${t}`,td=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var rd=(e,t,r,o)=>{let n={};for(let i of e){let s=O(i,t);if(s==null)continue;let a=String(s);if(Object.hasOwn(n,a)){let l=o==="one"?`endpoint[0] must be the "one" side of a oneToMany bridge \u2014 swap endpoints if '${r}' is the "many" side`:`oneToOne bridges require unique '${t}' on both endpoints`;throw new Error(`indexBridges: duplicate '${t}' value '${a}' on '${r}' \u2014 ${l}.`)}n[a]=i;}return n},Eb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&Ar(r,String(n),()=>[]).push(o);}return r},od=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=qe(n),a=qe(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",p=(u,m)=>Ar(Ar(r,u,()=>({})),m,()=>({})),f=O(t,s);f&&(p(n.fieldMap,n.model)[n.on]=rd(f,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?p(i.fieldMap,i.model)[i.on]=Eb(d,i.on):p(i.fieldMap,i.model)[i.on]=rd(d,i.on,a,"oneToOne"));}return r};var Ti=e=>{let t={maps:structuredClone(e.maps),bridges:e.bridges?structuredClone(e.bridges):void 0};for(let r of e.bridges??[]){let[o,n]=r.endpoints,i=qe(o),s=qe(n),a=N(O(t.maps,o.fieldMap),o.model),l=N(O(t.maps,n.fieldMap),n.model);if(!a)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!l)throw new Error(`stitchFieldMaps: endpoint '${s}' not found`);if(o.fieldMap===n.fieldMap&&o.model===n.model)throw new Error(`stitchFieldMaps: self-bridge '${i}' to itself is not supported`);if(!O(a.fields,o.on))throw new Error(`stitchFieldMaps: endpoint '${i}' has no field '${o.on}' for join`);if(!O(l.fields,n.on))throw new Error(`stitchFieldMaps: endpoint '${s}' has no field '${n.on}' for join`);if(O(a.fields,s))throw new Error(`stitchFieldMaps: bridge '${s}' already injected on '${i}'`);if(O(l.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${s}'`);let p=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:p},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var Ao=(e,t,r)=>{if(e?.isList||t?.isList){if(!(e?.isList&&!t?.isList&&et.includes(r)))return "a list column compares with no column but by membership";if(e?.kind!=="enum"&&t?.kind!=="enum")return null}let o=[e,t].filter(n=>n?.kind==="enum");return o.length===0?null:o.length===1||e?.type!==t?.type?"an enum compares only with an enum column of its own type":rt.includes(r)?null:`an enum column orders by declaration on the database, not as check() compares its text ('${r}')`};var $e=e=>e.kind==="scalar"&&e.type==="Json",D=e=>e.kind==="object"||e.kind==="bridge",Nr=(e,t)=>e.values??O(t,e.type);var Yt=(e,t,r)=>{if(!e||!("maps"in e))return e;if(!t)throw new Error(`${r}: 'map' is a FieldMapSet \u2014 'mapName' is required to resolve which map to use.`);let o=O(e.maps,t);if(!o)throw new Error(`${r}: fieldMap set has no entry for '${t}'`);return o};var We=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?td(e.type,t):null;function*Xt(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=Se(O(e,n.mapName),n.modelName,s),l=a?We(a,n.mapName):null;if(yield {index:i,field:s,at:n,entry:a,next:l},!l)return;n={...l,relPath:[...n.relPath,s]};}}var ke=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:p}of Xt({"":t},i,e)){let f=l.modelName;if(!p)return {kind:"fallback",hops:n};if(p.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(p.kind==="object"){if(!N(t,p.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:p,model:f,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:p,from:f});continue}return d?{kind:"direct",hops:n,entry:p,model:f,column:a}:$e(p)?{kind:"json-path",hops:n,entry:p,model:f,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},er=(e,t,r)=>t&&r?ke(e,t,r):void 0,J=(e,t,r)=>{let o=er(e,t,r);return o?.kind==="direct"?o.entry:void 0},nd=(e,t,r)=>ke(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),nn=(e,t,r)=>{let o=ke(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},sn=(e,t,r)=>ke(e,t,r).kind==="bridge",tr=(e,t,r)=>!!t&&!!r&&Lf(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&sn(o.field,t,n),(o,n)=>(typeof o.field=="string"?nn(o.field,t,n):n)??false,r);var Mi=e=>e?.kind==="json-path"?"json-path":e?.kind!=="direct"?"unknown":e.entry.kind==="object"?e.entry.isList?"relations":"relation":e.entry.isList?"list":e.entry.kind==="enum"?"enum":id(e.entry.type),id=e=>e===z.Json?"json":e===z.Enum?"enum":e===z.DateTime?"instant":e===z.String?"text":"scalar",Ci=(e,t,r)=>{let o=J(e.field,t,r);return o?o.kind==="scalar"&&(o.type==="String"||o.type==="Json"):e.coerceType===void 0||e.coerceType==="String"||e.coerceType==="Json"},_i=(e,t,r)=>{if(Mi(er(e,t,r))==="relations")throw mi(e)},Tr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",rr=(e,t)=>Tr(e)&&sd(t),sd=e=>typeof e=="string"||Array.isArray(e)&&e.some(sd),ve=(e,t,r)=>{let o=Mi(er(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?id(e.coerceType):o},At=e=>{if(!e.isList){if(e.kind==="enum")return z.Enum;if(!(e.kind!=="scalar"||e.type===z.Json))return ai(e.type)?e.type:void 0}};var ad=new WeakSet,Li=e=>(ad.add(e),e),ld=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},pd=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&ad.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(ld(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},Pb=["__step","__field"],ki=e=>Array.isArray(e)?e.some(ki):ld(e)?Object.entries(e).some(([t,r])=>Pb.includes(t)||ki(r)):false;var $b={[y.equals]:"equals",[y.notEquals]:"equals",[y.lessThan]:"lt",[y.lessThanEquals]:"lte",[y.greaterThan]:"gt",[y.greaterThanEquals]:"gte"},fd=(e,t,r)=>{let o=ke(e,t,r);if(o.kind!=="direct"||o.hops.length>0)return `'${e}' is not a column of ${r} (a relation hop or an undeclared path)`;let{entry:n}=o;return D(n)?`'${e}' is a relation`:$e(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},Fi=(e,t,r,o,n=false)=>{let i=e.path;if(n)return {problem:"inside a counting step (a count or relation aggregate) a groupBy carries no column reference"};let s=k(i);if(s&&s.depth>1)return {problem:`'${i}' reads an enclosing scope, which a Prisma filter can't reach`};if(!s&&o)return {problem:`'${i}' reads the root row, which a Prisma relation filter can't reach`};if(!t||!r)return {problem:"comparing two columns needs the map and model"};let a=$b[e.operator];if(!a)return {problem:`'${e.operator}' takes no column reference in Prisma`};if(e.offset!==void 0)return {problem:"an offset is arithmetic, which Prisma lacks"};let l=fd(e.field,t,r);if(typeof l=="string")return {problem:l};let p=s?s.path:i,f=fd(p,t,r);if(typeof f=="string")return {problem:f};if(l.kind!==f.kind||l.type!==f.type)return {problem:`'${e.field}' (${l.type}) and '${p}' (${f.type}) are not the same type`};let d=Ao(l,f,e.operator);return d?{problem:d}:l.type==="String"&&ie(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Li({__field:{model:r,field:p}}),field:l,column:f,columnPath:p}},Di=(e,t)=>new Error(`Path '${e}' compares to a column, which the Prisma rail supports only between columns of the same model and type: ${t}. Use toSql() or check().`),dd=new WeakSet,Vs=new WeakSet,Mr=(e,t,r=false)=>(dd.add(e),(r||t!==void 0&&Vs.has(t))&&Vs.add(e),e),ud=e=>e!==void 0&&dd.has(e),cd=e=>e!==void 0&&Vs.has(e);var Bs=e=>({field:e,operator:"notExists"}),vb=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return W.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(Jo,r.operator);return i?{...r,operator:i}:{...r,operator:O(ui,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Tf,r.dateOperator);return i?{...r,dateOperator:i}:$t([{...r,dateOperator:O(ui,r.dateOperator)},Bs(r.field)])}if(typeof r.arrayOperator=="string"){let i=r.count;switch(r.arrayOperator){case P.any:return {...r,arrayOperator:P.none};case P.none:return {...r,arrayOperator:P.any};case P.all:return {...r,arrayOperator:P.any,condition:Le(r.condition,t)};case P.empty:return {...r,arrayOperator:P.notEmpty};case P.notEmpty:return {...r,arrayOperator:P.empty};case P.atLeast:return i<=0?false:{...r,arrayOperator:P.atMost,count:i-1};case P.atMost:return {...r,arrayOperator:P.atLeast,count:i+1};case P.exactly:return $t([...i>0?[{...r,arrayOperator:P.atMost,count:i-1}]:[],{...r,arrayOperator:P.atLeast,count:i+1}])}}let o=O(Jo,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?k(r.path)??{depth:1,path:r.path}:null;return $t([{...r,operator:O(ui,r.operator)},Bs(r.field),...n&&n.depth===1?[Bs(n.path)]:[]])},Le=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return $t(r.all.map(o=>Le(o,t)));if(Array.isArray(r.any))return U(r.any.map(o=>Le(o,t)));if("if"in r){let o=U([r.if,Le(r.then,t)]);return r.else===void 0?o:{any:[o,U([Le(r.if,t),Le(r.else,t)])]}}return vb(r,t)},md=e=>se(e)==="field"&&e.value!==void 0&&we(e,e.value)?null:e;var gd,yd=e=>{gd=e;},oe=(e,t,r)=>gd(e,t,r);var Ab=e=>{let t=k(e);throw t&&t.depth>1?new Error(zo(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},lt=e=>Yo(e,{value:t=>{if(ki(t))throw new Error("toPrisma: a value holding a '__step' or '__field' key is reserved for the plan's own references");return t},path:t=>Ab(t),bind:(t,r)=>Oi(t,r,"toPrisma")}),an=e=>lt(e),No=e=>Er({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},an),To=e=>t=>{let r=typeof t.operator=="string"||typeof t.dateOperator=="string",o=t.value!==void 0||typeof t.path=="string"&&t.path!==""||typeof t.bind=="string";if(!r||"aggregate"in t||!o||typeof t.operator=="string"&&typeof t.path=="string"&&t.path!=="")return t;let n=ve({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&go.includes(t.operator))throw C("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=lt(t),s=t.offset===void 0?void 0:lt(t.offset);if(t.offset!==void 0&&s==null)return null;let{path:a,bind:l,bindOptional:p,...f}=t,d={...f,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||we({operator:t.dateOperator},i)?null:d:md(d)};var Nt=()=>({}),Cr=Nt,or=()=>({OR:[]}),qs=e=>Object.keys(e).length===0,hd=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},pt=e=>{if(e.some(hd))return or();let t=e.filter(r=>!qs(r));return t.length===0?Nt():t.length===1?t[0]:{AND:t}},V=e=>{if(e.some(qs))return Nt();let t=e.filter(r=>!hd(r));return t.length===0?or():t.length===1?t[0]:{OR:t}},be=e=>qs(e)?e:{NOT:e},wd=(e,t,r)=>pt(e.all.map(o=>oe(o,t,r))),Sd=(e,t,r)=>V(e.any.map(o=>oe(o,t,r))),bd=(e,t,r)=>{if(tr(e,t?.map,t?.model))return Cr();let o=oe(Le(e.if,To(t)),t,r),n=oe(e.then,t,r),i=V([o,n]);if(e.else!==void 0){let s=oe(e.if,t,r),a=oe(e.else,t,r);return pt([i,V([s,a])])}return i};var Nb=(e,t,r,o)=>{let n=N(e,t);if(!n)return null;for(let i of Object.values(n.fields))if(i.kind==="object"&&i.type===r&&(i.fromFields?.length??0)>0&&(i.toFields?.length??0)>0&&(o===void 0||i.relationName===o))return i;return null},ln=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=Nb(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},ji=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(N(e,o.type)?.fields??{}).filter(([i,s])=>s.kind==="object"&&s.type===t&&s.relationName===o.relationName&&!(o.type===t&&i===r));return n.length===1?{field:n[0][0],entry:n[0][1]}:null};var _r=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var Mo=(e,t,r,o)=>{let n=e.split("."),i=ke(e,t,r);if(i.kind!=="direct"||i.entry.kind!=="object"){let l=i.hops.at(-1)?.entry.type??r;throw new Error(`Field '${n[i.hops.length]}' is not a relation in model '${l}'. ${o} require a relation field.`)}let s=i.hops.find(l=>l.entry.isList);if(s)throw new Error(`Intermediate field '${s.field}' in path '${e}' is a list relation. Only the final segment can be a list relation for ${o.toLowerCase()}.`);if(!i.entry.isList)throw new Error(`Field '${i.column}' is not a list relation in model '${i.model}'. ${o} only apply to one-to-many or many-to-many relations.`);let a=ln(t,i.model,i.entry);if(!a){let l=Object.values(N(t,i.entry.type)?.fields??{}).some(p=>p.kind==="object"&&p.type===i.model&&p.isList&&!p.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Ii=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Li({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?be(a):a;return t.through?_r(t.through,l):l};var ir=e=>({ok:e.length===0,errors:e}),pn=(e,t)=>{if(!e.ok)throw new Error(`${t}:
1
+ 'use strict';var pt=require('dayjs'),GS=require('dayjs/plugin/isoWeek.js'),KS=require('dayjs/plugin/quarterOfYear.js'),zS=require('dayjs/plugin/timezone.js'),HS=require('dayjs/plugin/utc.js'),tb=require('dayjs/plugin/isSameOrAfter.js'),rb=require('dayjs/plugin/isSameOrBefore.js'),fastestLevenshtein=require('fastest-levenshtein'),re2js=require('re2js');var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var pt__default=/*#__PURE__*/_interopDefault(pt);var GS__default=/*#__PURE__*/_interopDefault(GS);var KS__default=/*#__PURE__*/_interopDefault(KS);var zS__default=/*#__PURE__*/_interopDefault(zS);var HS__default=/*#__PURE__*/_interopDefault(HS);var tb__default=/*#__PURE__*/_interopDefault(tb);var rb__default=/*#__PURE__*/_interopDefault(rb);var cs=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Sc=typeof global=="object"&&global&&global.Object===Object&&global,An=Sc;var bc=typeof self=="object"&&self&&self.Object===Object&&self,Rc=An||bc||Function("return this")(),ee=Rc;var Oc=ee.Symbol,ye=Oc;var Fa=Object.prototype,xc=Fa.hasOwnProperty,Ec=Fa.toString,Wo=ye?ye.toStringTag:void 0;function Pc(e){var t=xc.call(e,Wo),r=e[Wo];try{e[Wo]=void 0;var o=!0;}catch{}var n=Ec.call(e);return o&&(t?e[Wo]=r:delete e[Wo]),n}var Da=Pc;var $c=Object.prototype,vc=$c.toString;function Ac(e){return vc.call(e)}var ja=Ac;var Nc="[object Null]",Tc="[object Undefined]",Ia=ye?ye.toStringTag:void 0;function Mc(e){return e==null?e===void 0?Tc:Nc:Ia&&Ia in Object(e)?Da(e):ja(e)}var $e=Mc;function Cc(e){return e!=null&&typeof e=="object"}var oe=Cc;var kc="[object Symbol]";function _c(e){return typeof e=="symbol"||oe(e)&&$e(e)==kc}var Wr=_c;function Lc(e,t){for(var r=-1,o=e==null?0:e.length,n=Array(o);++r<o;)n[r]=t(e[r],r,e);return n}var Va=Lc;var Fc=Array.isArray,K=Fc;var Ba=ye?ye.prototype:void 0,qa=Ba?Ba.toString:void 0;function Wa(e){if(typeof e=="string")return e;if(K(e))return Va(e,Wa)+"";if(Wr(e))return qa?qa.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Ua=Wa;function jc(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var z=jc;function Ic(e){return e}var Ur=Ic;var Vc="[object AsyncFunction]",Bc="[object Function]",qc="[object GeneratorFunction]",Wc="[object Proxy]";function Uc(e){if(!z(e))return false;var t=$e(e);return t==Bc||t==qc||t==Vc||t==Wc}var Gr=Uc;var Gc=ee["__core-js_shared__"],Nn=Gc;var Ga=(function(){var e=/[^.]+$/.exec(Nn&&Nn.keys&&Nn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Kc(e){return !!Ga&&Ga in e}var Ka=Kc;var zc=Function.prototype,Hc=zc.toString;function Jc(e){if(e!=null){try{return Hc.call(e)}catch{}try{return e+""}catch{}}return ""}var bt=Jc;var Qc=/[\\^$.*+?()[\]{}|]/g,Zc=/^\[object .+?Constructor\]$/,Yc=Function.prototype,Xc=Object.prototype,em=Yc.toString,tm=Xc.hasOwnProperty,rm=RegExp("^"+em.call(tm).replace(Qc,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function om(e){if(!z(e)||Ka(e))return false;var t=Gr(e)?rm:Zc;return t.test(bt(e))}var za=om;function nm(e,t){return e?.[t]}var Ha=nm;function im(e,t){var r=Ha(e,t);return za(r)?r:void 0}var Re=im;var sm=Re(ee,"WeakMap"),Tn=sm;var Ja=Object.create,am=(function(){function e(){}return function(t){if(!z(t))return {};if(Ja)return Ja(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Qa=am;function lm(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Za=lm;function pm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Mn=pm;var fm=800,dm=16,um=Date.now;function cm(e){var t=0,r=0;return function(){var o=um(),n=dm-(o-r);if(r=o,n>0){if(++t>=fm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Ya=cm;function mm(e){return function(){return e}}var Xa=mm;var gm=(function(){try{var e=Re(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Kr=gm;var ym=Kr?function(e,t){return Kr(e,"toString",{configurable:true,enumerable:false,value:Xa(t),writable:true})}:Ur,el=ym;var hm=Ya(el),tl=hm;function wm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var rl=wm;var Sm=9007199254740991,bm=/^(?:0|[1-9]\d*)$/;function Rm(e,t){var r=typeof e;return t=t??Sm,!!t&&(r=="number"||r!="symbol"&&bm.test(e))&&e>-1&&e%1==0&&e<t}var It=Rm;function Om(e,t,r){t=="__proto__"&&Kr?Kr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var zr=Om;function xm(e,t){return e===t||e!==e&&t!==t}var Qe=xm;var Em=Object.prototype,Pm=Em.hasOwnProperty;function $m(e,t,r){var o=e[t];(!(Pm.call(e,t)&&Qe(o,r))||r===void 0&&!(t in e))&&zr(e,t,r);}var Hr=$m;function vm(e,t,r,o){var n=!r;r||(r={});for(var i=-1,s=t.length;++i<s;){var a=t[i],l=o?o(r[a],e[a],a,r,e):void 0;l===void 0&&(l=e[a]),n?zr(r,a,l):Hr(r,a,l);}return r}var Ze=vm;var ol=Math.max;function Am(e,t,r){return t=ol(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=ol(o.length-t,0),s=Array(i);++n<i;)s[n]=o[t+n];n=-1;for(var a=Array(t+1);++n<t;)a[n]=o[n];return a[t]=r(s),Za(e,this,a)}}var nl=Am;function Nm(e,t){return tl(nl(e,t,Ur),e+"")}var il=Nm;var Tm=9007199254740991;function Mm(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Tm}var Jr=Mm;function Cm(e){return e!=null&&Jr(e.length)&&!Gr(e)}var Ye=Cm;function km(e,t,r){if(!z(r))return false;var o=typeof t;return (o=="number"?Ye(r)&&It(t,r.length):o=="string"&&t in r)?Qe(r[t],e):false}var Cn=km;function _m(e){return il(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,s=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,s&&Cn(r[0],r[1],s)&&(i=n<3?void 0:i,n=1),t=Object(t);++o<n;){var a=r[o];a&&e(t,a,o,i);}return t})}var sl=_m;var Lm=Object.prototype;function Fm(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Lm;return e===r}var Qr=Fm;function Dm(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var al=Dm;var jm="[object Arguments]";function Im(e){return oe(e)&&$e(e)==jm}var ms=Im;var ll=Object.prototype,Vm=ll.hasOwnProperty,Bm=ll.propertyIsEnumerable,qm=ms((function(){return arguments})())?ms:function(e){return oe(e)&&Vm.call(e,"callee")&&!Bm.call(e,"callee")},yr=qm;function Wm(){return false}var pl=Wm;var ul=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fl=ul&&typeof module=="object"&&module&&!module.nodeType&&module,Um=fl&&fl.exports===ul,dl=Um?ee.Buffer:void 0,Gm=dl?dl.isBuffer:void 0,Km=Gm||pl,Rt=Km;var zm="[object Arguments]",Hm="[object Array]",Jm="[object Boolean]",Qm="[object Date]",Zm="[object Error]",Ym="[object Function]",Xm="[object Map]",eg="[object Number]",tg="[object Object]",rg="[object RegExp]",og="[object Set]",ng="[object String]",ig="[object WeakMap]",sg="[object ArrayBuffer]",ag="[object DataView]",lg="[object Float32Array]",pg="[object Float64Array]",fg="[object Int8Array]",dg="[object Int16Array]",ug="[object Int32Array]",cg="[object Uint8Array]",mg="[object Uint8ClampedArray]",gg="[object Uint16Array]",yg="[object Uint32Array]",U={};U[lg]=U[pg]=U[fg]=U[dg]=U[ug]=U[cg]=U[mg]=U[gg]=U[yg]=true;U[zm]=U[Hm]=U[sg]=U[Jm]=U[ag]=U[Qm]=U[Zm]=U[Ym]=U[Xm]=U[eg]=U[tg]=U[rg]=U[og]=U[ng]=U[ig]=false;function hg(e){return oe(e)&&Jr(e.length)&&!!U[$e(e)]}var cl=hg;function wg(e){return function(t){return e(t)}}var Zr=wg;var ml=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Uo=ml&&typeof module=="object"&&module&&!module.nodeType&&module,Sg=Uo&&Uo.exports===ml,gs=Sg&&An.process,bg=(function(){try{var e=Uo&&Uo.require&&Uo.require("util").types;return e||gs&&gs.binding&&gs.binding("util")}catch{}})(),Ot=bg;var gl=Ot&&Ot.isTypedArray,Rg=gl?Zr(gl):cl,Yr=Rg;var Og=Object.prototype,xg=Og.hasOwnProperty;function Eg(e,t){var r=K(e),o=!r&&yr(e),n=!r&&!o&&Rt(e),i=!r&&!o&&!n&&Yr(e),s=r||o||n||i,a=s?al(e.length,String):[],l=a.length;for(var f in e)(t||xg.call(e,f))&&!(s&&(f=="length"||n&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||It(f,l)))&&a.push(f);return a}var kn=Eg;function Pg(e,t){return function(r){return e(t(r))}}var _n=Pg;var $g=_n(Object.keys,Object),yl=$g;var vg=Object.prototype,Ag=vg.hasOwnProperty;function Ng(e){if(!Qr(e))return yl(e);var t=[];for(var r in Object(e))Ag.call(e,r)&&r!="constructor"&&t.push(r);return t}var hl=Ng;function Tg(e){return Ye(e)?kn(e):hl(e)}var Xe=Tg;function Mg(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var wl=Mg;var Cg=Object.prototype,kg=Cg.hasOwnProperty;function _g(e){if(!z(e))return wl(e);var t=Qr(e),r=[];for(var o in e)o=="constructor"&&(t||!kg.call(e,o))||r.push(o);return r}var Sl=_g;function Lg(e){return Ye(e)?kn(e,true):Sl(e)}var et=Lg;var Fg=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dg=/^\w*$/;function jg(e,t){if(K(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Wr(e)?true:Dg.test(e)||!Fg.test(e)||t!=null&&e in Object(t)}var Xr=jg;var Ig=Re(Object,"create"),xt=Ig;function Vg(){this.__data__=xt?xt(null):{},this.size=0;}var bl=Vg;function Bg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Rl=Bg;var qg="__lodash_hash_undefined__",Wg=Object.prototype,Ug=Wg.hasOwnProperty;function Gg(e){var t=this.__data__;if(xt){var r=t[e];return r===qg?void 0:r}return Ug.call(t,e)?t[e]:void 0}var Ol=Gg;var Kg=Object.prototype,zg=Kg.hasOwnProperty;function Hg(e){var t=this.__data__;return xt?t[e]!==void 0:zg.call(t,e)}var xl=Hg;var Jg="__lodash_hash_undefined__";function Qg(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xt&&t===void 0?Jg:t,this}var El=Qg;function eo(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}eo.prototype.clear=bl;eo.prototype.delete=Rl;eo.prototype.get=Ol;eo.prototype.has=xl;eo.prototype.set=El;var ys=eo;function Zg(){this.__data__=[],this.size=0;}var Pl=Zg;function Yg(e,t){for(var r=e.length;r--;)if(Qe(e[r][0],t))return r;return -1}var Vt=Yg;var Xg=Array.prototype,ey=Xg.splice;function ty(e){var t=this.__data__,r=Vt(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():ey.call(t,r,1),--this.size,true}var $l=ty;function ry(e){var t=this.__data__,r=Vt(t,e);return r<0?void 0:t[r][1]}var vl=ry;function oy(e){return Vt(this.__data__,e)>-1}var Al=oy;function ny(e,t){var r=this.__data__,o=Vt(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var Nl=ny;function to(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}to.prototype.clear=Pl;to.prototype.delete=$l;to.prototype.get=vl;to.prototype.has=Al;to.prototype.set=Nl;var Bt=to;var iy=Re(ee,"Map"),qt=iy;function sy(){this.size=0,this.__data__={hash:new ys,map:new(qt||Bt),string:new ys};}var Tl=sy;function ay(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ml=ay;function ly(e,t){var r=e.__data__;return Ml(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wt=ly;function py(e){var t=Wt(this,e).delete(e);return this.size-=t?1:0,t}var Cl=py;function fy(e){return Wt(this,e).get(e)}var kl=fy;function dy(e){return Wt(this,e).has(e)}var _l=dy;function uy(e,t){var r=Wt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Ll=uy;function ro(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1]);}}ro.prototype.clear=Tl;ro.prototype.delete=Cl;ro.prototype.get=kl;ro.prototype.has=_l;ro.prototype.set=Ll;var hr=ro;var cy="Expected a function";function hs(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(cy);var r=function(){var o=arguments,n=t?t.apply(this,o):o[0],i=r.cache;if(i.has(n))return i.get(n);var s=e.apply(this,o);return r.cache=i.set(n,s)||i,s};return r.cache=new(hs.Cache||hr),r}hs.Cache=hr;var Fl=hs;var my=500;function gy(e){var t=Fl(e,function(o){return r.size===my&&r.clear(),o}),r=t.cache;return t}var Dl=gy;var yy=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hy=/\\(\\)?/g,wy=Dl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(yy,function(r,o,n,i){t.push(n?i.replace(hy,"$1"):o||r);}),t}),jl=wy;function Sy(e){return e==null?"":Ua(e)}var Il=Sy;function by(e,t){return K(e)?e:Xr(e,t)?[e]:jl(Il(e))}var oo=by;function Oy(e){if(typeof e=="string"||Wr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var tt=Oy;function xy(e,t){t=oo(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[tt(t[r++])];return r&&r==o?e:void 0}var Ln=xy;function Ey(e,t,r){var o=e==null?void 0:Ln(e,t);return o===void 0?r:o}var Vl=Ey;function Py(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Fn=Py;var $y=_n(Object.getPrototypeOf,Object),no=$y;var vy="[object Object]",Ay=Function.prototype,Ny=Object.prototype,Bl=Ay.toString,Ty=Ny.hasOwnProperty,My=Bl.call(Object);function Cy(e){if(!oe(e)||$e(e)!=vy)return false;var t=no(e);if(t===null)return true;var r=Ty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Bl.call(r)==My}var ve=Cy;function ky(){this.__data__=new Bt,this.size=0;}var ql=ky;function _y(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Wl=_y;function Ly(e){return this.__data__.get(e)}var Ul=Ly;function Fy(e){return this.__data__.has(e)}var Gl=Fy;var Dy=200;function jy(e,t){var r=this.__data__;if(r instanceof Bt){var o=r.__data__;if(!qt||o.length<Dy-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new hr(o);}return r.set(e,t),this.size=r.size,this}var Kl=jy;function io(e){var t=this.__data__=new Bt(e);this.size=t.size;}io.prototype.clear=ql;io.prototype.delete=Wl;io.prototype.get=Ul;io.prototype.has=Gl;io.prototype.set=Kl;var rt=io;function Iy(e,t){return e&&Ze(t,Xe(t),e)}var zl=Iy;function Vy(e,t){return e&&Ze(t,et(t),e)}var Hl=Vy;var Yl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jl=Yl&&typeof module=="object"&&module&&!module.nodeType&&module,By=Jl&&Jl.exports===Yl,Ql=By?ee.Buffer:void 0,Zl=Ql?Ql.allocUnsafe:void 0;function qy(e,t){if(t)return e.slice();var r=e.length,o=Zl?Zl(r):new e.constructor(r);return e.copy(o),o}var Dn=qy;function Wy(e,t){for(var r=-1,o=e==null?0:e.length,n=0,i=[];++r<o;){var s=e[r];t(s,r,e)&&(i[n++]=s);}return i}var Xl=Wy;function Uy(){return []}var jn=Uy;var Gy=Object.prototype,Ky=Gy.propertyIsEnumerable,ep=Object.getOwnPropertySymbols,zy=ep?function(e){return e==null?[]:(e=Object(e),Xl(ep(e),function(t){return Ky.call(e,t)}))}:jn,so=zy;function Hy(e,t){return Ze(e,so(e),t)}var tp=Hy;var Jy=Object.getOwnPropertySymbols,Qy=Jy?function(e){for(var t=[];e;)Fn(t,so(e)),e=no(e);return t}:jn,In=Qy;function Zy(e,t){return Ze(e,In(e),t)}var rp=Zy;function Yy(e,t,r){var o=t(e);return K(e)?o:Fn(o,r(e))}var Vn=Yy;function Xy(e){return Vn(e,Xe,so)}var Go=Xy;function eh(e){return Vn(e,et,In)}var op=eh;var th=Re(ee,"DataView"),Bn=th;var rh=Re(ee,"Promise"),qn=rh;var oh=Re(ee,"Set"),Wn=oh;var np="[object Map]",nh="[object Object]",ip="[object Promise]",sp="[object Set]",ap="[object WeakMap]",lp="[object DataView]",ih=bt(Bn),sh=bt(qt),ah=bt(qn),lh=bt(Wn),ph=bt(Tn),wr=$e;(Bn&&wr(new Bn(new ArrayBuffer(1)))!=lp||qt&&wr(new qt)!=np||qn&&wr(qn.resolve())!=ip||Wn&&wr(new Wn)!=sp||Tn&&wr(new Tn)!=ap)&&(wr=function(e){var t=$e(e),r=t==nh?e.constructor:void 0,o=r?bt(r):"";if(o)switch(o){case ih:return lp;case sh:return np;case ah:return ip;case lh:return sp;case ph:return ap}return t});var Et=wr;var fh=Object.prototype,dh=fh.hasOwnProperty;function uh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&dh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var pp=uh;var ch=ee.Uint8Array,ao=ch;function mh(e){var t=new e.constructor(e.byteLength);return new ao(t).set(new ao(e)),t}var lo=mh;function gh(e,t){var r=t?lo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var fp=gh;var yh=/\w*$/;function hh(e){var t=new e.constructor(e.source,yh.exec(e));return t.lastIndex=e.lastIndex,t}var dp=hh;var up=ye?ye.prototype:void 0,cp=up?up.valueOf:void 0;function wh(e){return cp?Object(cp.call(e)):{}}var mp=wh;function Sh(e,t){var r=t?lo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Un=Sh;var bh="[object Boolean]",Rh="[object Date]",Oh="[object Map]",xh="[object Number]",Eh="[object RegExp]",Ph="[object Set]",$h="[object String]",vh="[object Symbol]",Ah="[object ArrayBuffer]",Nh="[object DataView]",Th="[object Float32Array]",Mh="[object Float64Array]",Ch="[object Int8Array]",kh="[object Int16Array]",_h="[object Int32Array]",Lh="[object Uint8Array]",Fh="[object Uint8ClampedArray]",Dh="[object Uint16Array]",jh="[object Uint32Array]";function Ih(e,t,r){var o=e.constructor;switch(t){case Ah:return lo(e);case bh:case Rh:return new o(+e);case Nh:return fp(e,r);case Th:case Mh:case Ch:case kh:case _h:case Lh:case Fh:case Dh:case jh:return Un(e,r);case Oh:return new o;case xh:case $h:return new o(e);case Eh:return dp(e);case Ph:return new o;case vh:return mp(e)}}var gp=Ih;function Vh(e){return typeof e.constructor=="function"&&!Qr(e)?Qa(no(e)):{}}var Gn=Vh;var Bh="[object Map]";function qh(e){return oe(e)&&Et(e)==Bh}var yp=qh;var hp=Ot&&Ot.isMap,Wh=hp?Zr(hp):yp,wp=Wh;var Uh="[object Set]";function Gh(e){return oe(e)&&Et(e)==Uh}var Sp=Gh;var bp=Ot&&Ot.isSet,Kh=bp?Zr(bp):Sp,Rp=Kh;var zh=1,Hh=2,Jh=4,Op="[object Arguments]",Qh="[object Array]",Zh="[object Boolean]",Yh="[object Date]",Xh="[object Error]",xp="[object Function]",ew="[object GeneratorFunction]",tw="[object Map]",rw="[object Number]",Ep="[object Object]",ow="[object RegExp]",nw="[object Set]",iw="[object String]",sw="[object Symbol]",aw="[object WeakMap]",lw="[object ArrayBuffer]",pw="[object DataView]",fw="[object Float32Array]",dw="[object Float64Array]",uw="[object Int8Array]",cw="[object Int16Array]",mw="[object Int32Array]",gw="[object Uint8Array]",yw="[object Uint8ClampedArray]",hw="[object Uint16Array]",ww="[object Uint32Array]",I={};I[Op]=I[Qh]=I[lw]=I[pw]=I[Zh]=I[Yh]=I[fw]=I[dw]=I[uw]=I[cw]=I[mw]=I[tw]=I[rw]=I[Ep]=I[ow]=I[nw]=I[iw]=I[sw]=I[gw]=I[yw]=I[hw]=I[ww]=true;I[Xh]=I[xp]=I[aw]=false;function Kn(e,t,r,o,n,i){var s,a=t&zh,l=t&Hh,f=t&Jh;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!z(e))return e;var p=K(e);if(p){if(s=pp(e),!a)return Mn(e,s)}else {var d=Et(e),u=d==xp||d==ew;if(Rt(e))return Dn(e,a);if(d==Ep||d==Op||u&&!n){if(s=l||u?{}:Gn(e),!a)return l?rp(e,Hl(s,e)):tp(e,zl(s,e))}else {if(!I[d])return n?e:{};s=gp(e,d,a);}}i||(i=new rt);var m=i.get(e);if(m)return m;i.set(e,s),Rp(e)?e.forEach(function(h){s.add(Kn(h,t,r,h,e,i));}):wp(e)&&e.forEach(function(h,w){s.set(w,Kn(h,t,r,w,e,i));});var g=f?l?op:Go:l?et:Xe,c=p?void 0:g(e);return rl(c||e,function(h,w){c&&(w=h,h=e[w]),Hr(s,w,Kn(h,t,r,w,e,i));}),s}var zn=Kn;var Sw=1,bw=4;function Rw(e){return zn(e,Sw|bw)}var Hn=Rw;var Ow=1,xw=4;function Ew(e,t){return t=typeof t=="function"?t:void 0,zn(e,Ow|xw,t)}var ws=Ew;var Pw="__lodash_hash_undefined__";function $w(e){return this.__data__.set(e,Pw),this}var Pp=$w;function vw(e){return this.__data__.has(e)}var $p=vw;function Jn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new hr;++t<r;)this.add(e[t]);}Jn.prototype.add=Jn.prototype.push=Pp;Jn.prototype.has=$p;var vp=Jn;function Aw(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return true;return false}var Qn=Aw;function Nw(e,t){return e.has(t)}var Ap=Nw;var Tw=1,Mw=2;function Cw(e,t,r,o,n,i){var s=r&Tw,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return false;var f=i.get(e),p=i.get(t);if(f&&p)return f==t&&p==e;var d=-1,u=true,m=r&Mw?new vp:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var g=e[d],c=t[d];if(o)var h=s?o(c,g,d,t,e,i):o(g,c,d,e,t,i);if(h!==void 0){if(h)continue;u=false;break}if(m){if(!Qn(t,function(w,b){if(!Ap(m,b)&&(g===w||n(g,w,r,o,i)))return m.push(b)})){u=false;break}}else if(!(g===c||n(g,c,r,o,i))){u=false;break}}return i.delete(e),i.delete(t),u}var Zn=Cw;function kw(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var Np=kw;function _w(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Tp=_w;var Lw=1,Fw=2,Dw="[object Boolean]",jw="[object Date]",Iw="[object Error]",Vw="[object Map]",Bw="[object Number]",qw="[object RegExp]",Ww="[object Set]",Uw="[object String]",Gw="[object Symbol]",Kw="[object ArrayBuffer]",zw="[object DataView]",Mp=ye?ye.prototype:void 0,Ss=Mp?Mp.valueOf:void 0;function Hw(e,t,r,o,n,i,s){switch(r){case zw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case Kw:return !(e.byteLength!=t.byteLength||!i(new ao(e),new ao(t)));case Dw:case jw:case Bw:return Qe(+e,+t);case Iw:return e.name==t.name&&e.message==t.message;case qw:case Uw:return e==t+"";case Vw:var a=Np;case Ww:var l=o&Lw;if(a||(a=Tp),e.size!=t.size&&!l)return false;var f=s.get(e);if(f)return f==t;o|=Fw,s.set(e,t);var p=Zn(a(e),a(t),o,n,i,s);return s.delete(e),p;case Gw:if(Ss)return Ss.call(e)==Ss.call(t)}return false}var Cp=Hw;var Jw=1,Qw=Object.prototype,Zw=Qw.hasOwnProperty;function Yw(e,t,r,o,n,i){var s=r&Jw,a=Go(e),l=a.length,f=Go(t),p=f.length;if(l!=p&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:Zw.call(t,u)))return false}var m=i.get(e),g=i.get(t);if(m&&g)return m==t&&g==e;var c=true;i.set(e,t),i.set(t,e);for(var h=s;++d<l;){u=a[d];var w=e[u],b=t[u];if(o)var R=s?o(b,w,u,t,e,i):o(w,b,u,e,t,i);if(!(R===void 0?w===b||n(w,b,r,o,i):R)){c=false;break}h||(h=u=="constructor");}if(c&&!h){var S=e.constructor,E=t.constructor;S!=E&&"constructor"in e&&"constructor"in t&&!(typeof S=="function"&&S instanceof S&&typeof E=="function"&&E instanceof E)&&(c=false);}return i.delete(e),i.delete(t),c}var kp=Yw;var Xw=1,_p="[object Arguments]",Lp="[object Array]",Yn="[object Object]",eS=Object.prototype,Fp=eS.hasOwnProperty;function tS(e,t,r,o,n,i){var s=K(e),a=K(t),l=s?Lp:Et(e),f=a?Lp:Et(t);l=l==_p?Yn:l,f=f==_p?Yn:f;var p=l==Yn,d=f==Yn,u=l==f;if(u&&Rt(e)){if(!Rt(t))return false;s=true,p=false;}if(u&&!p)return i||(i=new rt),s||Yr(e)?Zn(e,t,r,o,n,i):Cp(e,t,l,r,o,n,i);if(!(r&Xw)){var m=p&&Fp.call(e,"__wrapped__"),g=d&&Fp.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,h=g?t.value():t;return i||(i=new rt),n(c,h,r,o,i)}}return u?(i||(i=new rt),kp(e,t,r,o,n,i)):false}var Dp=tS;function jp(e,t,r,o,n){return e===t?true:e==null||t==null||!oe(e)&&!oe(t)?e!==e&&t!==t:Dp(e,t,r,o,jp,n)}var po=jp;var rS=1,oS=2;function nS(e,t,r,o){var n=r.length,i=n,s=!o;if(e==null)return !i;for(e=Object(e);n--;){var a=r[n];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return false}for(;++n<i;){a=r[n];var l=a[0],f=e[l],p=a[1];if(s&&a[2]){if(f===void 0&&!(l in e))return false}else {var d=new rt;if(o)var u=o(f,p,l,e,t,d);if(!(u===void 0?po(p,f,rS|oS,o,d):u))return false}}return true}var Ip=nS;function iS(e){return e===e&&!z(e)}var Xn=iS;function sS(e){for(var t=Xe(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,Xn(n)];}return t}var Vp=sS;function aS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ei=aS;function lS(e){var t=Vp(e);return t.length==1&&t[0][2]?ei(t[0][0],t[0][1]):function(r){return r===e||Ip(r,e,t)}}var Bp=lS;function pS(e,t){return e!=null&&t in Object(e)}var qp=pS;function fS(e,t,r){t=oo(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=tt(t[o]);if(!(i=e!=null&&r(e,s)))break;e=e[s];}return i||++o!=n?i:(n=e==null?0:e.length,!!n&&Jr(n)&&It(s,n)&&(K(e)||yr(e)))}var Wp=fS;function dS(e,t){return e!=null&&Wp(e,t,qp)}var Up=dS;var uS=1,cS=2;function mS(e,t){return Xr(e)&&Xn(t)?ei(tt(e),t):function(r){var o=Vl(r,e);return o===void 0&&o===t?Up(r,e):po(t,o,uS|cS)}}var Gp=mS;function gS(e){return function(t){return t?.[e]}}var Kp=gS;function yS(e){return function(t){return Ln(t,e)}}var zp=yS;function hS(e){return Xr(e)?Kp(tt(e)):zp(e)}var Hp=hS;function wS(e){return typeof e=="function"?e:e==null?Ur:typeof e=="object"?K(e)?Gp(e[0],e[1]):Bp(e):Hp(e)}var Jp=wS;function SS(e){return function(t,r,o){for(var n=-1,i=Object(t),s=o(t),a=s.length;a--;){var l=s[e?a:++n];if(r(i[l],l,i)===false)break}return t}}var Qp=SS;var bS=Qp(),ti=bS;function RS(e,t){return e&&ti(e,t,Xe)}var Zp=RS;function OS(e,t){return function(r,o){if(r==null)return r;if(!Ye(r))return e(r,o);for(var n=r.length,i=t?n:-1,s=Object(r);(t?i--:++i<n)&&o(s[i],i,s)!==false;);return r}}var Yp=OS;var xS=Yp(Zp),Xp=xS;function ES(e,t,r){(r!==void 0&&!Qe(e[t],r)||r===void 0&&!(t in e))&&zr(e,t,r);}var Ko=ES;function PS(e){return oe(e)&&Ye(e)}var ef=PS;function $S(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var zo=$S;function vS(e){return Ze(e,et(e))}var tf=vS;function AS(e,t,r,o,n,i,s){var a=zo(e,r),l=zo(t,r),f=s.get(l);if(f){Ko(e,r,f);return}var p=i?i(a,l,r+"",e,t,s):void 0,d=p===void 0;if(d){var u=K(l),m=!u&&Rt(l),g=!u&&!m&&Yr(l);p=l,u||m||g?K(a)?p=a:ef(a)?p=Mn(a):m?(d=false,p=Dn(l,true)):g?(d=false,p=Un(l,true)):p=[]:ve(l)||yr(l)?(p=a,yr(a)?p=tf(a):(!z(a)||Gr(a))&&(p=Gn(l))):d=false;}d&&(s.set(l,p),n(p,l,o,i,s),s.delete(l)),Ko(e,r,p);}var rf=AS;function of(e,t,r,o,n){e!==t&&ti(t,function(i,s){if(n||(n=new rt),z(i))rf(e,t,s,r,of,o,n);else {var a=o?o(zo(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),Ko(e,s,a);}},et);}var nf=of;function NS(e,t){return po(e,t)}var Sr=NS;var TS=sl(function(e,t,r){nf(e,t,r);}),bs=TS;function MS(e,t,r,o){if(!z(e))return e;t=oo(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=tt(t[n]),f=r;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(n!=s){var p=a[l];f=o?o(p,l,a):void 0,f===void 0&&(f=z(p)?p:It(t[n+1])?[]:{});}Hr(a,l,f),a=a[l];}return e}var sf=MS;function CS(e,t,r){return e==null?e:sf(e,t,r)}var Rs=CS;function kS(e,t){var r;return Xp(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var af=kS;function _S(e,t,r){var o=K(e)?Qn:af;return r&&Cn(e,t,r)&&(t=void 0),o(e,Jp(t))}var Os=_S;var LS=/^(\$+)\.(.*)$/,L=e=>{let t=LS.exec(e);return t?{depth:t[1].length,path:t[2]}:null},xs=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,_e=(e,t)=>{let r=L(e);return r?r.depth>t.length?{outOfBounds:xs(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},FS=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,DS=e=>e===""?[""]:[...e.matchAll(FS)].map(t=>t[1]??t[3]??t[4]),jS=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},ce=(e,t)=>DS(t).reduce(jS,e),Ut=(e,t)=>{let r=_e(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return ce(r.scope,r.path)},lf=(e,t)=>L(e)?Ut(e,t):ce(t[0],e),Ho=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,ri=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&L(e.field))throw new Error(Ho(e.field,t))};var pf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},fo=Hn(pf),Es=e=>ws(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!ve(t)?t:void 0),IS=e=>e!=null&&typeof e.then=="function",br={set:(e,t)=>{Rs(fo,e,Es(t));},get:e=>ce(fo,e),reset:()=>{fo=Hn(pf);},with:(e,t)=>{let r=fo;fo=bs(Es(r),Es(e));try{let o=t();if(IS(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{fo=r;}}},VS=new Set(["postgresql","cockroachdb","mongodb"]),ff=e=>VS.has(e),le=e=>e??br.get("string.caseInsensitive")??false,oi=e=>{let t=e??br.get("string.fuzzy")??false;return t?t===true?{}:t:false};var y={equals:"equals",notEquals:"notEquals",lessThan:"lessThan",lessThanEquals:"lessThanEquals",greaterThan:"greaterThan",greaterThanEquals:"greaterThanEquals",contains:"contains",notContains:"notContains",in:"in",notIn:"notIn",matches:"matches",notMatches:"notMatches",between:"between",notBetween:"notBetween",isEmpty:"isEmpty",notEmpty:"notEmpty",exists:"exists",notExists:"notExists",startsWith:"startsWith",notStartsWith:"notStartsWith",endsWith:"endsWith",notEndsWith:"notEndsWith"},$={all:"all",any:"any",none:"none",atLeast:"atLeast",atMost:"atMost",exactly:"exactly",empty:"empty",notEmpty:"notEmpty"},v={before:"before",after:"after",onOrBefore:"onOrBefore",onOrAfter:"onOrAfter",notBefore:"notBefore",notAfter:"notAfter",within:"within",notWithin:"notWithin",between:"between",notBetween:"notBetween",dayIn:"dayIn",dayNotIn:"dayNotIn"};var H={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},Be=["Int","Float","Decimal","BigInt"],uo=["String",...Be,"DateTime"],Gt=["String"],ni=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],ii=Object.values(H),df=ii,BS={check:"check",toPrisma:"toPrisma",toSql:"toSql"},li=e=>typeof e=="string"&&Object.hasOwn(H,e),M=["check","toPrisma","toSql"],co=["check","toPrisma"],si=["check","toSql"],$t={none:"none",scalar:"scalar",ordered:"ordered",array:"array",string:"string",pattern:"pattern",range:"range",dateValue:"dateValue",dateRange:"dateRange",dateWindow:"dateWindow",dayList:"dayList",count:"count",predicate:"predicate"},mo={[y.equals]:{kinds:ni,targets:M,valueShape:"scalar"},[y.notEquals]:{negates:y.equals,kinds:ni,targets:M,valueShape:"scalar"},[y.lessThan]:{kinds:uo,targets:M,valueShape:"ordered",comparator:"lt"},[y.lessThanEquals]:{kinds:uo,targets:M,valueShape:"ordered",comparator:"lte"},[y.greaterThan]:{kinds:uo,targets:M,valueShape:"ordered",comparator:"gt"},[y.greaterThanEquals]:{kinds:uo,targets:M,valueShape:"ordered",comparator:"gte"},[y.in]:{kinds:ni,targets:M,valueShape:"array"},[y.notIn]:{negates:y.in,kinds:ni,targets:M,valueShape:"array"},[y.contains]:{kinds:Gt,targets:M,valueShape:"string"},[y.notContains]:{negates:y.contains,kinds:Gt,targets:M,valueShape:"string"},[y.startsWith]:{kinds:Gt,targets:M,valueShape:"string"},[y.notStartsWith]:{negates:y.startsWith,kinds:Gt,targets:M,valueShape:"string"},[y.endsWith]:{kinds:Gt,targets:M,valueShape:"string"},[y.notEndsWith]:{negates:y.endsWith,kinds:Gt,targets:M,valueShape:"string"},[y.matches]:{kinds:Gt,targets:si,valueShape:"pattern"},[y.notMatches]:{negates:y.matches,kinds:Gt,targets:si,valueShape:"pattern"},[y.between]:{kinds:uo,targets:M,valueShape:"range"},[y.notBetween]:{negates:y.between,kinds:uo,targets:M,valueShape:"range"},[y.isEmpty]:{kinds:df,targets:M,valueShape:"none"},[y.notEmpty]:{kinds:df,targets:M,valueShape:"none"},[y.exists]:{kinds:ii,targets:M,valueShape:"none"},[y.notExists]:{kinds:ii,targets:M,valueShape:"none"}},go={[v.before]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[v.after]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[v.onOrBefore]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.onOrAfter]:{kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notBefore]:{negates:v.before,kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notAfter]:{negates:v.after,kinds:["DateTime"],targets:M,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.within]:{kinds:["DateTime"],targets:M,valueShape:"dateWindow",acceptsExpr:true},[v.notWithin]:{negates:v.within,kinds:["DateTime"],targets:M,valueShape:"dateWindow",acceptsExpr:true},[v.between]:{kinds:["DateTime"],targets:M,valueShape:"dateRange",acceptsExpr:true},[v.notBetween]:{negates:v.between,kinds:["DateTime"],targets:M,valueShape:"dateRange",acceptsExpr:true},[v.dayIn]:{kinds:["DateTime"],targets:si,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:si,valueShape:"dayList",acceptsExpr:false}},ai={[$.all]:{targets:co,valueShape:"predicate"},[$.any]:{targets:co,valueShape:"predicate"},[$.none]:{targets:co,valueShape:"predicate"},[$.atLeast]:{targets:co,valueShape:"count",comparator:"gte"},[$.atMost]:{targets:co,valueShape:"count",comparator:"lte"},[$.exactly]:{targets:co,valueShape:"count",comparator:"equals"},[$.empty]:{targets:M,valueShape:"none"},[$.notEmpty]:{targets:M,valueShape:"none"}},uf={field:mo,date:go,array:ai},Pt=(e,t)=>Object.hasOwn(uf[t],e)?uf[t][e]:void 0,yo=e=>typeof e.operator=="string"?Pt(e.operator,"field"):typeof e.dateOperator=="string"?Pt(e.dateOperator,"date"):void 0,Kt=(e,t)=>Pt(e,t)?.comparator,vt=(e,t)=>{let r=Pt(e,t);if(!r)throw se(e,t);return r.valueShape},pi=(e,t,r)=>Pt(e,t)?.targets.includes(r)??false,qS=(e,t)=>{let r=Object.keys(mo).filter(n=>{let i=mo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(go).filter(n=>{let i=go[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},WS=e=>Object.keys(ai).filter(t=>e?ai[t].targets.includes(e):true),cf=[...Object.entries(mo),...Object.entries(go)],Ae=(...e)=>cf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),zt=Ae("none"),ho=Ae("ordered"),Jo=Ae("dateWindow"),Le=Ae("range","dateRange","dateWindow"),mf=Ae("ordered","string","pattern","array"),ot=[y.contains,y.notContains],fi=Ae("scalar","ordered","range"),nt=["sum","avg"],US=()=>fi,it=Ae("scalar"),Ht=Ae("array"),gf=Ae("scalar","array"),yf=Ae("dayList"),hf=Ae("dateRange"),wf=Ae("scalar","ordered","range","dateValue","dateRange"),Sf=(...e)=>Object.entries(ai).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Jt=Sf("count"),bf=Sf("predicate","count"),Rf=[$.any,$.atLeast],G=[...Object.entries(mo),...Object.entries(go)].flatMap(([e,t])=>t.negates?[e]:[]),Of=G.filter(e=>Ae("string").includes(e)),wo=G.filter(e=>Le.includes(e)),xf=(...e)=>cf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!G.includes(t)?[t]:[]),di=xf("lt","lte"),Ef=xf("gt","gte"),Pf=["Int","BigInt"],$f=[...Be,"DateTime","Boolean","String"],vf=["Int","BigInt","Float","Boolean","String"],Af=["scalar","ordered","string"],Qt={years:{interval:"months",factor:12,calendar:true},quarters:{interval:"months",factor:3,calendar:true},months:{interval:"months",factor:1,calendar:true},weeks:{interval:"days",factor:7,calendar:true},days:{interval:"days",factor:1,calendar:true},hours:{interval:"secs",factor:3600,calendar:false},minutes:{interval:"secs",factor:60,calendar:false},seconds:{interval:"secs",factor:1,calendar:false}},Nf=["months","days","secs"],Ps=e=>Object.hasOwn(Qt,e),Rr=e=>Ps(e)&&Qt[e].calendar,ui=["year","quarter","month","week","isoWeek","day","hour","minute","second"],So=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Tf=e=>So.includes(e.toLowerCase()),Mf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),Qo=Mf(mo,[[y.isEmpty,y.notEmpty],[y.exists,y.notExists]]),Cf=Mf(go),ci={[y.lessThan]:y.greaterThanEquals,[y.lessThanEquals]:y.greaterThan,[y.greaterThan]:y.lessThanEquals,[y.greaterThanEquals]:y.lessThan,[v.onOrBefore]:v.after,[v.onOrAfter]:v.before};var mi=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),se=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),bo=e=>new Error(`${e} requires a count`),qe=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),We=e=>new Error(`${e} requires a condition to check against array elements`),Ro=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),gi=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),yi=e=>ot.includes(e.operator)&&oi(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,hi=(e,t)=>!ho.includes(e)&&!Le.includes(e)?null:(Le.includes(e)&&Array.isArray(t)?t:[t]).some(o=>typeof o=="boolean"||typeof o=="object"&&o!==null&&!(o instanceof Date))?new Error(`'${e}' orders numbers, strings and dates; it can't compare ${JSON.stringify(t)}`):null,Zt=e=>new Error(`aggregate.mode must be one of ${nt.join(" / ")}, not '${String(e)}'`),st=()=>new Error("A condition is exactly one of: a field, date, array or aggregate rule, all, any, or if/then[/else]"),_=(e,t,r)=>new Error(`${t} has no ${e==="toSql"?"SQL":"Prisma"} form${r?` (${r})`:""}; use ${e==="toSql"?"check()":"toSql() or check()"}.`),at=e=>new Error(`Windowing (filter/orderBy/take/skip) is not supported by ${e}() for this rule; evaluate with check()${e==="toPrisma"?" \u2014 toPrisma compiles a filter alone and an extremal take: 1":""}.`),wi=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),Si=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),J=class extends Error{name="UsageError"};pt__default.default.extend(HS__default.default);pt__default.default.extend(zS__default.default);pt__default.default.extend(KS__default.default);pt__default.default.extend(GS__default.default);var te=e=>{if(!ve(e))return false;let t=e;return "ago"in t||"ahead"in t||"this"in t||"last"in t||"next"in t||"start"in t||"end"in t},At="UTC",Zo=e=>{if(e.now===void 0)throw new J("date expressions require `now` to be supplied to the evaluator");let t=pt__default.default(e.now).tz(e.timeZone);if(!t.isValid())throw new J(`invalid \`now\`: ${String(e.now)}`);return t},$s=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Qt[o].interval===t?r+n*Qt[o].factor:r,0),kf="YYYY-MM-DDTHH:mm:ss.SSS",Yt=(e,t,r,o)=>{let n=$s(t,"months"),i=$s(t,"days"),s=$s(t,"secs"),a=pt__default.default.utc(e.tz(o).format(kf));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),pt__default.default.tz(a.format(kf),o)},JS=e=>"ago"in e||"ahead"in e,bi=(e,t)=>t===-1?{ago:e}:{ahead:e},Oe=e=>JS(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,Yo=e=>"this"in e||"last"in e||"next"in e,vs=e=>"start"in e||"end"in e,Ri=e=>"this"in e?e.this:"last"in e?e.last:e.next,QS=e=>{let t=Ri(e);if(typeof t!="string"||!ui.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},ZS=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,As=(e,t)=>{let r=Zo(t),o=QS(e),n=o==="isoWeek"?"week":o,i=r;"last"in e?i=r.subtract(1,n):"next"in e&&(i=r.add(1,n));let s=ZS(o,t);return [i.startOf(s),i.endOf(s)]},Ns=(e,t)=>{let r=Oe(e);if(r)return Yt(Zo(t),...r,t.timeZone);if(vs(e)){let o="start"in e?e.start:e.end,[n,i]=As(o,t);return "start"in e?n:i}throw new Error("a point operator requires a rolling or start/end edge expression, not a bare period")},Oo=(e,t,r)=>{if(Yo(e)){let[o,n]=As(e,r),i=yo({dateOperator:t})?.negates??t;return di.includes(i)?o:n}return Ns(e,r)},xo=(e,t)=>{if(Yo(e))return As(e,t);let r=Oe(e);if(r){let o=Zo(t),n=Yt(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw qe("within")};var _f=["value","bind","path"],Ue=e=>typeof e.path=="string"&&e.path!=="",xr=e=>Ue(e)?L(e.path)??{depth:0,path:e.path}:null,Xo=(e,t)=>{if(e.value!==void 0)return t.value(e.value);if(e.bind!==void 0)return t.bind(e.bind,e.bindOptional);if(Ue(e))return t.path(e.path);throw new Error("No value, path or bind specified")},Oi=e=>ve(e)&&(e.value!==void 0||Ue(e)||typeof e.bind=="string"),Ts=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new J(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},xi=(e,t,r)=>{if(t===true)return null;throw new J(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},Nt=(e,t,r)=>Xo(e,{value:o=>o,bind:(o,n)=>Ts(o,n,r),path:o=>lf(o,t)??null});var Lf=e=>typeof e=="object"&&e!==null,Cs=e=>"if"in e||"then"in e||"else"in e,Fe=e=>"arrayOperator"in e||"aggregate"in e,Ff=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Cs(e)?["if","then","else"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:false}]:[]):[],...["condition","filter"].flatMap(t=>e[t]!==void 0?[{key:t,child:e[t],nested:true}]:[])],Ne=e=>"all"in e||"any"in e||Cs(e),ne=(e,t,r)=>{if(!Lf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of Ff(o))a?i!==false&&ne(s,t,i):ne(s,t,r);},Df=(e,t,r,o)=>{let n=false;return ne(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},Xt=(e,t,r)=>{if(!Lf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=Ff(i),a=s.some(f=>f.nested)&&t.below?t.below(i,o):o;for(let f of ["all","any"])Array.isArray(i[f])&&(i[f]=[...i[f]]);for(let{key:f,index:p,child:d,nested:u}of s){if(u&&a===false)continue;let m=Xt(d,t,u?a:o);p===void 0?i[f]=m:i[f][p]=m;}let l=t.after?t.after(i,o):i;return l===i&&YS(i,e)?e:l},YS=(e,t)=>{let r=Object.keys(e);return r.length!==Object.keys(t).length?false:r.every(o=>{let[n,i]=[e[o],t[o]];return n===i?true:Array.isArray(n)&&Array.isArray(i)&&n.length===i.length&&n.every((s,a)=>s===i[a])})},XS=(e,t)=>ve(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Oi(o)?t(o,Rr(r)?"whole":"number"):o])):e,Ms=(e,t)=>{let r=te(e)?Oe(e):null;return r?bi(XS(r[0],t),r[1]):e},Ei=(e,t)=>{let r="dateOperator"in e;if(!r&&!("operator"in e))return e;let o=e;if(r&&e.value!==void 0){let n=Array.isArray(e.value)?e.value.map(i=>Ms(i,t)):Ms(e.value,t);o={...o,value:n};}if(Oi(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Ms(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Oi(o)&&(o=t(o,"value")),o},en=e=>{let t=[];return Ei(e,(r,o)=>(t.push({source:r,role:o}),r)),t},ks=e=>en(e).flatMap(({source:t,role:r})=>Ue(t)?[{ref:t.path,role:r}]:[]),er=e=>ks(e).map(t=>t.ref),Eo=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],pe=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Cs(e)&&t.add("if"),"arrayOperator"in e&&t.add("array"),"dateOperator"in e&&t.add("date"),"aggregate"in e?t.add("aggregate"):"operator"in e&&t.add("field"),t.size===1?[...t][0]:null},V=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},_s=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(_s):[e],Tt=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var eb=e=>en(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),tn=(e,{required:t=false}={})=>{let r=new Set;return ne(e,o=>{for(let n of eb(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Ls=(e,t)=>{let r=o=>{if(typeof o.bind!="string"||!Object.hasOwn(t,o.bind))return o;let{bind:n,bindOptional:i,...s}=o;return {...s,value:Ts(n,true,t)}};return Xt(e,{rewrite:o=>Ei(Ei(o,r),r)})};var jf=BigInt(Number.MAX_SAFE_INTEGER),rn=e=>{if(e>jf||e<-jf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Fs=e=>typeof e=="bigint"?rn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,Pi=(e,t)=>{if(e==null)return null;let r=Fs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},De=([e,t])=>t<e?[t,e]:[e,t],Ge=(e,t)=>{if(!Array.isArray(e)||e.length!==2)throw new Error(`${t} operator requires an array of two values`);return [e[0],e[1]]},Po=(e,t)=>{let r=Ge(e,t);if(!r.every(fe))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},$i=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},Mt=e=>{let t=$i(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},fe=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Ds=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!Rr(t)||Number.isInteger(e))?null:`${t} must be a non-negative${Rr(t)?" whole":""} number (got ${String(e)})`,js=(e,t,r)=>{let o=typeof e=="number"?e:Pi(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Ds(o,r);if(n===null)return o;if(typeof e!="number"&&Ue(e))return null;throw new Error(n)},Er=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=js(n,t,o);if(i===null)return null;r[o]=i;}return r},lt=(e,t)=>{let r=Oe(e);if(!r)return e;let o=Er(r[0],t);return o?bi(o,r[1]):null};var Pr=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>Pr(n,t));return o.some(n=>n===null)?null:o}let r=Fs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},$r=e=>Pi(e,"an offset"),$o=e=>{if(e==null)return null;let t=te(e)?Oe(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};pt__default.default.extend(HS__default.default);pt__default.default.extend(zS__default.default);pt__default.default.extend(rb__default.default);pt__default.default.extend(tb__default.default);var Bf=(e,t,r={},o)=>{let n=Ut(e.field,t),i=vr(r,u=>Nt(u,t,o)),s=i.timeZone;if(n==null)return G.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=fe(n)?tr(n,s):null;if(!a?.isValid())throw new Error(`${e.field} is not a valid date: ${String(n)}`);let l=u=>e.error||`${e.field} ${u}`;if(yf.includes(e.dateOperator)){let u=Is(Nt(e,t,o));if(u===null)return e.error||`${e.field} has no comparison value`;let m=u.includes(a.tz(s).day()),g=u.map(c=>So[c]).join(" or ");return e.dateOperator===v.dayIn?m||l(`must be on ${g}`):!m||l(`must not be on ${g}`)}let f=ib(e,t,i,s,o);if(f===null)return e.error||`${e.field} has no comparison value`;let[p,d=p]=f;switch(e.dateOperator){case v.before:return a.isBefore(p)||l(`must be before ${p.format()}`);case v.after:return a.isAfter(p)||l(`must be after ${p.format()}`);case v.onOrBefore:return a.isSameOrBefore(p)||l(`must be on or before ${p.format()}`);case v.onOrAfter:return a.isSameOrAfter(p)||l(`must be on or after ${p.format()}`);case v.within:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be within ${p.format()} and ${d.format()}`);case v.notBefore:return a.isSameOrAfter(p)||l(`must not be before ${p.format()}`);case v.notAfter:return a.isSameOrBefore(p)||l(`must not be after ${p.format()}`);case v.notWithin:return a.isBefore(p)||a.isAfter(d)||l(`must not be within ${p.format()} and ${d.format()}`);case v.between:return a.isSameOrAfter(p)&&a.isSameOrBefore(d)||l(`must be between ${p.format()} and ${d.format()}`);case v.notBetween:return a.isBefore(p)||a.isAfter(d)||l(`must not be between ${p.format()} and ${d.format()}`);default:throw se(e.dateOperator,"date")}},ib=(e,t,r,o,n)=>{let i=e.dateOperator,s=g=>Nt(g,t,n),a=Nt(e,t,n);if(a==null)return null;let l=e.offset===void 0?void 0:$o(s(e.offset));if(l===null)return null;let f=g=>{if(l===void 0)return g;let c=Er(l[0],s);return c&&Yt(g,c,l[1],o)};if(Jo.includes(i)){if(!te(a))throw qe(i);let g=lt(a,s);return g&&xo(g,r)}let p=(g,c)=>{if(g==null)return null;if(te(g)){let w=lt(g,s);return w&&Ns(w,r)}let h=tr(g,o);if(!h.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return h};if(hf.includes(i)){let[g,c]=Ge(a,i),h=p(g,"start date"),w=p(c,"end date");if(!h||!w)return null;let[b,R]=De([h,w]),S=f(b),E=f(R);return S&&E?[S,E]:null}if(Array.isArray(a))throw new Error(`${i} operator requires a single date value`);let d=g=>{let c=lt(g,s);return c&&Oo(c,i,r)},u=te(a)?d(a):p(a,"comparison date");if(!u)return null;let m=f(u);return m&&[m]},vr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:Vf(r??At)};if(xr(r))throw new J(`timeZone is one per evaluation; give it as a string or a { bind }, not the row path '${r.path}'`);let o=t(r);if(o!=null&&typeof o!="string")throw new J(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:Vf(o??At)}},If=new Set,Vf=e=>{if(If.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new J(`invalid time zone: ${e}`)}return If.add(e),e},sb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,ab=e=>sb.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),tr=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return pt__default.default(Number(e));if(typeof e=="string"&&!ab(e)){let r=pt__default.default(e);return r.isValid()?pt__default.default.tz(e,t):r}return typeof e=="string"?pt__default.default(new Date(e.trim())):pt__default.default(e)},vi=(e,t)=>{let r=fe(e)?tr(e,t):pt__default.default(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},Is=e=>{if(e==null)return null;if(!Array.isArray(e))throw new Error("a weekday operator requires an array of day names");return e.map(t=>{let r=So.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var pb=e=>e<=3?0:e<=6?1:2,fb=(e,t)=>{let{maxDistance:r,maxRatio:o}=e,n=[];return typeof r=="number"&&n.push(r),typeof o=="number"&&n.push(Math.floor(t*o)),n.length>0?Math.min(...n):pb(t)},qf=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),db=e=>/^\d+$/.test(e),ub=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:fastestLevenshtein.distance(e,t)<=r,Wf=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=qf(o);if(i.length===0)return false;let s=qf(n);return s.length===0?false:i.every(a=>{let l=fb(r,a.length);return l===0||db(a)?s.includes(a):s.some(f=>ub(a,f,l))})};var rr=e=>{let t=e instanceof RegExp?e.source:e,r=e instanceof RegExp?e.flags:"";if(/[^i]/.test(r))throw new Error(`Refused pattern /${t}/${r}: only the 'i' flag is supported`);let o=r==="i";try{return {source:t,caseInsensitive:o,re:re2js.RE2JS.compile(t,o?re2js.RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},vo={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Gf={alnum:"0-9A-Za-z",alpha:"A-Za-z",ascii:"\\u0000-\\u007f",blank:"\\t ",cntrl:"\\u0000-\\u001f\\u007f",digit:"0-9",graph:"!-~",lower:"a-z",print:" -~",punct:"!-/:-@\\[-`{-~",space:"\\t\\n\\v\\f\\r ",upper:"A-Z",word:"0-9A-Za-z_",xdigit:"0-9A-Fa-f"},cb=/[\\^$.|?*+()[\]{}]/,Vs=255,Kf=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,mb=e=>cb.test(e)?`\\${e}`:e,on=e=>{let t=s=>{throw new Error(`Refused pattern /${e}/: ${s} has no Postgres form`)},r="",o=0,n=()=>{/^([*+?]|\{\d)/.test(e.slice(o))&&t("a quantified anchor");},i=s=>{let a=e[o+1];if(o+=2,Object.hasOwn(vo,a))return s?vo[a]:`[${vo[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(vo,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${vo[l]}]`;if(a==="p"||a==="P")return t("a Unicode class");if(a==="C")return t("\\C");if(a==="x"){let f=e[o]==="{",p=f?e.indexOf("}",o):o+2,d=e.slice(f?o+1:o,p);return o=f?p+1:p,Kf(Number.parseInt(d,16))}if(a>="0"&&a<="7"){let f=a;for(;f.length<3&&e[o]>="0"&&e[o]<="7";)f+=e[o++];return Kf(Number.parseInt(f,8))}if(!s&&(a==="b"||a==="B")){let f=`[${vo.w}]`;return a==="b"?`(?:(?<=${f})(?!${f})|(?<!${f})(?=${f}))`:`(?:(?<=${f})(?=${f})|(?<!${f})(?!${f}))`}if(!s&&(a==="z"||a==="A"))return n(),a==="z"?"\\Z":"\\A";if(a==="Q"){let f=e.indexOf("\\E",o),p=e.slice(o,f===-1?void 0:f);return o=f===-1?e.length:f+2,[...p].map(s?d=>/[\\\]^-]/.test(d)?`\\${d}`:d:mb).join("")}return `\\${a}`};for(;o<e.length;){let s=e[o];if(s==="\\")r+=i(false);else if(s===".")r+="[^\\n]",o++;else if(s==="("&&e[o+1]==="?"){let a=/^\(\?P?<[^>]+>/.exec(e.slice(o));a?(r+="(",o+=a[0].length):e[o+2]===":"?(r+="(?:",o+=3):t("a flag group");}else if(s==="{"){let a=/^\{(0|[1-9]\d*)(?:,(0|[1-9]\d*)?)?\}/.exec(e.slice(o));if(!a){r+="\\{",o++;continue}(Number(a[1])>Vs||Number(a[2]??0)>Vs)&&t(`a repeat count past ${Vs}`),r+=a[0],o+=a[0].length;}else if(s==="["){r+="[",o++,e[o]==="^"&&(r+="^",o++),e[o]==="]"&&(r+="\\]",o++);let a=false,l=false,f=0;for(;o<e.length&&e[o]!=="]";){let p=l?null:/^\[:(\^?)([a-z]+):\]/.exec(e.slice(o)),d=!!p||/^\\[dswDSW]/.test(e.slice(o)),u=e[o]==="-"&&f>0&&e[o+1]!=="]"&&!l;p?(p[1]&&t(`a negated class [:^${p[2]}:]`),Object.hasOwn(Gf,p[2])||t(`the class [:${p[2]}:]`),r+=Gf[p[2]],o+=p[0].length):e[o]==="\\"?r+=i(true):u&&a?(r+="\\-",o++):(r+=e[o]==="["?"\\[":e[o],o++);let m=l;l=u&&!a,a=d||m,f++;}r+="]",o++;}else r+=s,o++,(s==="^"||s==="$")&&n();}return r},zf=(e,t)=>{try{let{source:r}=rr(e);return t==="toSql"&&on(r),null}catch(r){return r.message}};var Hf=e=>e==null||e===""||Array.isArray(e)&&e.length===0,xe=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||mf.includes(e.operator))?true:Le.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},Nr=e=>zt.includes(e.operator)||it.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Ni=(e,t)=>{let r=t.filter(n=>Array.isArray(n)||n===null),o=n=>r.map(i=>({...e,operator:n,value:i}));return e.operator===y.in?Tt(o(y.equals)):V(o(y.notEquals))},Tr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(Tr):e,Jf=e=>typeof e=="bigint"?rn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?rn(t):t):e,Qf=(e,t,r)=>{if(e==null)return e;if(Be.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return rn(BigInt(e.trim()));let o=Number(e);return Number.isFinite(o)?o:e}switch(t){case "DateTime":{if(e instanceof Date)return e.getTime();if(typeof e=="number"||typeof e!="string")return e;let o=tr(e,r);return o.isValid()?o.valueOf():e}case "Boolean":return e==="true"?true:e==="false"?false:e;case "String":return typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):e;default:return e}},Ar=(e,t,r=At)=>t===void 0?e:Array.isArray(e)?e.map(o=>Qf(o,t,r)):Qf(e,t,r),nn=(e,t,r,o={},n)=>{let i=n?n.value:Ut(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?vr(o,b=>Nt(b,t,r)).timeZone:At,l=Ar(Jf(i),s,a),f=!zt.includes(e.operator),p=f?gb(Ar(Jf(Nt(e,t,r)??null),s,a),e,t,r):void 0;if(f&&xe(e,p))return G.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=b=>e.error||`${e.field} ${b}${f?` ${p instanceof RegExp?String(p):JSON.stringify(p)}`:""}`,u=le(e.caseInsensitive),m=b=>u?Tr(b):b,g=m(l),c=m(p),h=oi(e.fuzzy),w=()=>h&&typeof l=="string"&&typeof p=="string"?Wf(l,p,h):Array.isArray(l)?g.some(b=>Sr(b,c)):yb(g,c);switch(e.operator){case y.equals:return Sr(g,c)||d("must equal");case y.notEquals:return !Sr(g,c)||d("must not equal");case y.lessThan:return Ai(l,p,"lt")||d("must be less than");case y.lessThanEquals:return Ai(l,p,"lte")||d("must be less than or equal to");case y.greaterThan:return Ai(l,p,"gt")||d("must be greater than");case y.greaterThanEquals:return Ai(l,p,"gte")||d("must be greater than or equal to");case y.in:return $i(c).some(b=>Sr(b,g))||d("must be one of");case y.notIn:return !$i(c).some(b=>Sr(b,g))||d("must not be one of");case y.contains:return w()||d("must contain");case y.notContains:return !w()||d("must not contain");case y.matches:return Zf(l)&&Yf(p)&&rr(p).re.test(l)||d("must match pattern");case y.notMatches:return !Zf(l)||!Yf(p)||!rr(p).re.test(l)||d("must not match pattern");case y.between:{let b=Xf(p,e.operator);if(!td(l,b))return d("must be between");let R=Ao(l),[S,E]=b;return R>=S&&R<=E||d("must be between")}case y.notBetween:{let b=Xf(p,e.operator);if(!td(l,b))return true;let R=Ao(l),[S,E]=b;return R<S||R>E||d("must not be between")}case y.isEmpty:return Hf(l)||d("must be empty");case y.notEmpty:return !Hf(l)||d("must not be empty");case y.exists:return l!=null||d("must exist");case y.notExists:return l==null||d("must not exist");case y.startsWith:return typeof g=="string"&&typeof c=="string"&&g.startsWith(c)||d("must start with");case y.endsWith:return typeof g=="string"&&typeof c=="string"&&g.endsWith(c)||d("must end with");case y.notStartsWith:return !(typeof g=="string"&&typeof c=="string"&&g.startsWith(c))||d("must not start with");case y.notEndsWith:return !(typeof g=="string"&&typeof c=="string"&&g.endsWith(c))||d("must not end with");default:throw new Error("Unknown operator")}},gb=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=$r(Nt(t.offset,r,o));return n===null?null:Pr(e,n)},Ao=e=>e instanceof Date?e.getTime():e,Ai=(e,t,r)=>{if(!hb(e,t)||!fe(t))return false;let o=Ao(e),n=Ao(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},Zf=e=>typeof e=="string",Yf=e=>typeof e=="string"||e instanceof RegExp,Xf=(e,t)=>De(Po(e,t).map(r=>Ao(r))),yb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),hb=(e,t)=>fe(e)&&fe(t)&&ed(e)===ed(t),ed=e=>e instanceof Date?"date":typeof e,td=(e,t)=>fe(e)&&typeof Ao(e)==typeof t[0];var Te=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,wb=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=pe(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Sb=e=>{if(e.filter!==void 0||e.skip!==void 0&&e.skip!==0||e.take!==1||e.orderBy?.length!==1)return null;let{field:t,dir:r}=e.orderBy[0];if(r!=="asc"&&r!=="desc")return null;let o=null;if(e.arrayOperator===$.all?o="all":(e.arrayOperator===$.any||e.arrayOperator===$.atLeast&&e.count===1)&&(o="any"),!o)return null;let n=wb(e.condition);if(!n||n.field!==t)return null;let i=di.includes(n.op),s=Ef.includes(n.op);if(!i&&!s)return null;let a=r==="desc";if(!(o==="all"?a&&i||!a&&s:a&&s||!a&&i))return null;let{orderBy:f,take:p,skip:d,count:u,...m}=e;if(o==="any")return {...m,arrayOperator:$.any};let g={field:t,operator:y.exists};return {any:[{field:e.field,arrayOperator:$.empty},{all:[{field:e.field,arrayOperator:$.any,condition:g},{...m,arrayOperator:$.all,condition:{if:g,then:e.condition}}]}]}},Bs=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=rd(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},rd=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=bb(ce(r,n),ce(o,n),i);if(s!==0)return s}return 0}),bb=(e,t,r)=>{let o=e==null,n=t==null;if(o||n)return o===n?0:o?1:-1;let i=e instanceof Date?e.getTime():e,s=t instanceof Date?t.getTime():t,a=i<s?-1:i>s?1:0;return r==="asc"?a:-a},No=e=>{if(!Te(e))return e;let t=!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0;if(e.filter!==void 0&&!t){let{filter:r,...o}=e;if("aggregate"in e)return {...o,condition:e.condition===void 0?r:V([r,e.condition])};switch(e.arrayOperator){case "all":return {...o,condition:{if:r,then:e.condition??true}};case "empty":return {...o,arrayOperator:"none",condition:r};case "notEmpty":return {...o,arrayOperator:"any",condition:r};default:return {...o,condition:e.condition===void 0?r:V([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Sb(e)};var Rb=e=>ne(e,t=>{let r=pe(t);if(!(r==="all"||r==="any")){if(r==="array"&&!("field"in t))return false;throw new Error("check: when data is an array, every leaf must be a fieldless arrayOperator (composable with all/any)")}}),de=(e,t,r)=>(Array.isArray(t)&&Rb(e),ft(e,t,{...r,scopes:[t]})),ft=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(pe(e)){case "all":return Ob(o.all,t,r,o.error);case "any":return xb(o.any,t,r,o.error);case "if":return Eb(o,t,r);case "array":return $b(o,r);case "aggregate":return Pb(o,r);case "date":return Bf(o,r.scopes,r,r.bindings);case "field":return nn(o,r.scopes,r.bindings,r);default:throw st()}},Ti=(e,t)=>({...e,scopes:[...e.scopes,t]}),Ob=(e,t,r,o)=>{let n=[];for(let i of e){let s=ft(i,t,r);s!==true&&(typeof s=="string"?n.push(s):n.push("false"));}return n.length?o||(n.length===1?n[0]:`All conditions must pass: ${n.join(" AND ")}`):true},xb=(e,t,r,o)=>{let n=[];for(let i of e){let s=ft(i,t,r);if(s===true)return true;typeof s=="string"&&n.push(s);}return o||(n.length===1?n[0]:`At least one condition must pass: ${n.join(" OR ")}`)},Eb=(e,t,r)=>ft(e.if,t,r)===true?ft(e.then,t,r):e.else!==void 0?ft(e.else,t,r):true,od=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Pb=(e,t)=>{let r=od(Ut(e.field,t.scopes),e.field),o=e.filter,n=Bs(r,e,o?m=>ft(o,m,Ti(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!nt.includes(i))throw Zt(i);let a=e.condition,f=(a?n.filter(m=>ft(a,m,Ti(t,m))===true):n).flatMap((m,g)=>{let c=s?ce(m,s):m;if(c==null)return [];if(typeof c!="number"||!Number.isFinite(c)){let h=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${h} must be a finite number`)}return [c]}),p=f.reduce((m,g)=>m+g,0),d=i==="sum"||f.length===0?p:p/f.length,u={...e,field:`${e.field} ${i}`};return nn(u,t.scopes,t.bindings,t,{value:d})},$b=(e,t)=>{let r=od(e.field?Ut(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=Bs(r,e,o?d=>ft(o,d,Ti(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=bf.includes(e.arrayOperator);if(a&&s===void 0)throw We(e.arrayOperator);let l=e.count??0;if(Jt.includes(e.arrayOperator)&&e.count===void 0)throw bo(e.arrayOperator);let f=0,p=0;if(a&&s!==void 0){if(n.length>0&&!Os(n,z))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>ft(s,u,Ti(t,u)));f=d.filter(u=>u===true).length,p=d.filter(u=>typeof u=="string").length;}switch(e.arrayOperator){case $.empty:return !n.length||i("must be empty");case $.notEmpty:return !!n.length||i("must not be empty");case $.all:return f===n.length||i(`all elements must match (${p} failed)`);case $.any:return !!f||i("at least one element must match");case $.none:return !f||i(`no elements should match (${f} matched)`);case $.atLeast:return f>=l||i(`at least ${l} elements must match (${f} matched)`);case $.atMost:return f<=l||i(`at most ${l} elements must match (${f} matched)`);case $.exactly:return f===l||i(`exactly ${l} elements must match (${f} matched)`);default:throw se(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,Mr=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),T=(e,t)=>O(e?.models,t),he=(e,t,r)=>O(T(e,t)?.fields,r);var we=({fieldMap:e,model:t})=>`${e}:${t}`,nd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var id=(e,t,r,o)=>{let n={};for(let i of e){let s=O(i,t);if(s==null)continue;let a=String(s);if(Object.hasOwn(n,a)){let l=o==="one"?`endpoint[0] must be the "one" side of a oneToMany bridge \u2014 swap endpoints if '${r}' is the "many" side`:`oneToOne bridges require unique '${t}' on both endpoints`;throw new Error(`indexBridges: duplicate '${t}' value '${a}' on '${r}' \u2014 ${l}.`)}n[a]=i;}return n},vb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&Mr(r,String(n),()=>[]).push(o);}return r},sd=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=we(n),a=we(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",f=(u,m)=>Mr(Mr(r,u,()=>({})),m,()=>({})),p=O(t,s);p&&(f(n.fieldMap,n.model)[n.on]=id(p,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?f(i.fieldMap,i.model)[i.on]=vb(d,i.on):f(i.fieldMap,i.model)[i.on]=id(d,i.on,a,"oneToOne"));}return r};var Mi=e=>{let t={maps:structuredClone(e.maps),bridges:e.bridges?structuredClone(e.bridges):void 0};for(let r of e.bridges??[]){let[o,n]=r.endpoints,i=we(o),s=we(n),a=T(O(t.maps,o.fieldMap),o.model),l=T(O(t.maps,n.fieldMap),n.model);if(!a)throw new Error(`stitchFieldMaps: endpoint '${i}' not found`);if(!l)throw new Error(`stitchFieldMaps: endpoint '${s}' not found`);if(o.fieldMap===n.fieldMap&&o.model===n.model)throw new Error(`stitchFieldMaps: self-bridge '${i}' to itself is not supported`);if(!O(a.fields,o.on))throw new Error(`stitchFieldMaps: endpoint '${i}' has no field '${o.on}' for join`);if(!O(l.fields,n.on))throw new Error(`stitchFieldMaps: endpoint '${s}' has no field '${n.on}' for join`);if(O(a.fields,s))throw new Error(`stitchFieldMaps: bridge '${s}' already injected on '${i}'`);if(O(l.fields,i))throw new Error(`stitchFieldMaps: bridge '${i}' already injected on '${s}'`);let f=r.cardinality==="oneToMany";a.fields[s]={kind:"bridge",type:s,isList:f},l.fields[i]={kind:"bridge",type:i,isList:false};}return t};var To=(e,t,r)=>{if(e?.isList||t?.isList){if(!(e?.isList&&!t?.isList&&ot.includes(r)))return "a list column compares with no column but by membership";if(e?.kind!=="enum"&&t?.kind!=="enum")return null}let o=[e,t].filter(n=>n?.kind==="enum");return o.length===0?null:o.length===1||e?.type!==t?.type?"an enum compares only with an enum column of its own type":it.includes(r)?null:`an enum column orders by declaration on the database, not as check() compares its text ('${r}')`};var Me=e=>e.kind==="scalar"&&e.type==="Json",D=e=>e.kind==="object"||e.kind==="bridge",Cr=(e,t)=>e.values??O(t,e.type);var je=(e,t,r)=>{if(!e||!("maps"in e))return e;if(!t)throw new Error(`${r}: 'map' is a FieldMapSet \u2014 'mapName' is required to resolve which map to use.`);let o=O(e.maps,t);if(!o)throw new Error(`${r}: fieldMap set has no entry for '${t}'`);return o};var Ke=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?nd(e.type,t):null;function*or(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=he(O(e,n.mapName),n.modelName,s),l=a?Ke(a,n.mapName):null;if(yield {index:i,field:s,at:n,entry:a,next:l},!l)return;n={...l,relPath:[...n.relPath,s]};}}var me=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:f}of or({"":t},i,e)){let p=l.modelName;if(!f)return {kind:"fallback",hops:n};if(f.kind==="bridge")return {kind:"bridge",hops:n};let d=s===o.length-1;if(f.kind==="object"){if(!T(t,f.type))return {kind:"fallback",hops:n};if(d)return {kind:"direct",hops:n,entry:f,model:p,column:a};n.push({field:a,prefix:o.slice(0,s+1).join("."),entry:f,from:p});continue}return d?{kind:"direct",hops:n,entry:f,model:p,column:a}:Me(f)?{kind:"json-path",hops:n,entry:f,model:p,column:a,stopIndex:s+1,jsonPath:o.slice(s+1)}:{kind:"past-scalar",hops:n,column:a}}return {kind:"fallback",hops:n}},nr=(e,t,r)=>t&&r?me(e,t,r):void 0,Q=(e,t,r)=>{let o=nr(e,t,r);return o?.kind==="direct"?o.entry:void 0},ad=(e,t,r)=>me(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),sn=(e,t,r)=>{let o=me(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},kr=(e,t,r)=>me(e,t,r).kind==="bridge",dt=(e,t,r)=>!!t&&!!r&&Df(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&kr(o.field,t,n),(o,n)=>(typeof o.field=="string"?sn(o.field,t,n):n)??false,r);var Ci=e=>e?.kind==="json-path"?"json-path":e?.kind!=="direct"?"unknown":e.entry.kind==="object"?e.entry.isList?"relations":"relation":e.entry.isList?"list":e.entry.kind==="enum"?"enum":ld(e.entry.type),ld=e=>e===H.Json?"json":e===H.Enum?"enum":e===H.DateTime?"instant":e===H.String?"text":"scalar",ki=(e,t,r)=>{let o=Q(e.field,t,r);return o?o.kind==="scalar"&&(o.type==="String"||o.type==="Json"):e.coerceType===void 0||e.coerceType==="String"||e.coerceType==="Json"},_i=(e,t,r)=>{if(Ci(nr(e,t,r))==="relations")throw gi(e)},_r=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",ir=(e,t)=>_r(e)&&pd(t),pd=e=>typeof e=="string"||Array.isArray(e)&&e.some(pd),Ce=(e,t,r)=>{let o=Ci(nr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?ld(e.coerceType):o},Ct=e=>{if(!e.isList){if(e.kind==="enum")return H.Enum;if(!(e.kind!=="scalar"||e.type===H.Json))return li(e.type)?e.type:void 0}};var fd=new WeakSet,Fi=e=>(fd.add(e),e),dd=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},ud=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&fd.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(dd(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},Ab=["__step","__field"],Li=e=>Array.isArray(e)?e.some(Li):dd(e)?Object.entries(e).some(([t,r])=>Ab.includes(t)||Li(r)):false;var Nb={[y.equals]:"equals",[y.notEquals]:"equals",[y.lessThan]:"lt",[y.lessThanEquals]:"lte",[y.greaterThan]:"gt",[y.greaterThanEquals]:"gte"},cd=(e,t,r)=>{let o=me(e,t,r);if(o.kind!=="direct"||o.hops.length>0)return `'${e}' is not a column of ${r} (a relation hop or an undeclared path)`;let{entry:n}=o;return D(n)?`'${e}' is a relation`:Me(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},Di=(e,t,r,o,n=false)=>{let i=e.path;if(n)return {problem:"inside a counting step (a count or relation aggregate) a groupBy carries no column reference"};let s=L(i);if(s&&s.depth>1)return {problem:`'${i}' reads an enclosing scope, which a Prisma filter can't reach`};if(!s&&o)return {problem:`'${i}' reads the root row, which a Prisma relation filter can't reach`};if(!t||!r)return {problem:"comparing two columns needs the map and model"};let a=Nb[e.operator];if(!a)return {problem:`'${e.operator}' takes no column reference in Prisma`};if(e.offset!==void 0)return {problem:"an offset is arithmetic, which Prisma lacks"};let l=cd(e.field,t,r);if(typeof l=="string")return {problem:l};let f=s?s.path:i,p=cd(f,t,r);if(typeof p=="string")return {problem:p};if(l.kind!==p.kind||l.type!==p.type)return {problem:`'${e.field}' (${l.type}) and '${f}' (${p.type}) are not the same type`};let d=To(l,p,e.operator);return d?{problem:d}:l.type==="String"&&le(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Fi({__field:{model:r,field:f}}),field:l,column:p,columnPath:f}},ji=(e,t)=>new Error(`Path '${e}' compares to a column, which the Prisma rail supports only between columns of the same model and type: ${t}. Use toSql() or check().`),md=new WeakSet,qs=new WeakSet,Lr=(e,t,r=false)=>(md.add(e),(r||t!==void 0&&qs.has(t))&&qs.add(e),e),gd=e=>e!==void 0&&md.has(e),yd=e=>e!==void 0&&qs.has(e);var Ws=e=>({field:e,operator:"notExists"}),Tb=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return G.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(Qo,r.operator);return i?{...r,operator:i}:{...r,operator:O(ci,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Cf,r.dateOperator);return i?{...r,dateOperator:i}:Tt([{...r,dateOperator:O(ci,r.dateOperator)},Ws(r.field)])}if(typeof r.arrayOperator=="string"){let i=r.count;switch(r.arrayOperator){case $.any:return {...r,arrayOperator:$.none};case $.none:return {...r,arrayOperator:$.any};case $.all:return {...r,arrayOperator:$.any,condition:Ie(r.condition,t)};case $.empty:return {...r,arrayOperator:$.notEmpty};case $.notEmpty:return {...r,arrayOperator:$.empty};case $.atLeast:return i<=0?false:{...r,arrayOperator:$.atMost,count:i-1};case $.atMost:return {...r,arrayOperator:$.atLeast,count:i+1};case $.exactly:return Tt([...i>0?[{...r,arrayOperator:$.atMost,count:i-1}]:[],{...r,arrayOperator:$.atLeast,count:i+1}])}}let o=O(Qo,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?L(r.path)??{depth:1,path:r.path}:null;return Tt([{...r,operator:O(ci,r.operator)},Ws(r.field),...n&&n.depth===1?[Ws(n.path)]:[]])},Ie=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return Tt(r.all.map(o=>Ie(o,t)));if(Array.isArray(r.any))return V(r.any.map(o=>Ie(o,t)));if("if"in r){let o=V([r.if,Ie(r.then,t)]);return r.else===void 0?o:{any:[o,V([Ie(r.if,t),Ie(r.else,t)])]}}return Tb(r,t)},hd=e=>pe(e)==="field"&&e.value!==void 0&&xe(e,e.value)?null:e;var wd,Sd=e=>{wd=e;},ie=(e,t,r)=>wd(e,t,r);var Mb=e=>{let t=L(e);throw t&&t.depth>1?new Error(Ho(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},ut=e=>Xo(e,{value:t=>{if(Li(t))throw new Error("toPrisma: a value holding a '__step' or '__field' key is reserved for the plan's own references");return t},path:t=>Mb(t),bind:(t,r)=>xi(t,r,"toPrisma")}),an=e=>ut(e),Mo=e=>vr({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},an),Co=e=>t=>{let r=typeof t.operator=="string"||typeof t.dateOperator=="string",o=t.value!==void 0||typeof t.path=="string"&&t.path!==""||typeof t.bind=="string";if(!r||"aggregate"in t||!o||typeof t.operator=="string"&&typeof t.path=="string"&&t.path!=="")return t;let n=Ce({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&ho.includes(t.operator))throw _("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=ut(t),s=t.offset===void 0?void 0:ut(t.offset);if(t.offset!==void 0&&s==null)return null;let{path:a,bind:l,bindOptional:f,...p}=t,d={...p,value:i,...t.offset!==void 0&&{offset:{value:s}}};return typeof t.dateOperator=="string"?i==null||xe({operator:t.dateOperator},i)?null:d:hd(d)};var kt=()=>({}),Fr=kt,sr=()=>({OR:[]}),Us=e=>Object.keys(e).length===0,bd=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},ct=e=>{if(e.some(bd))return sr();let t=e.filter(r=>!Us(r));return t.length===0?kt():t.length===1?t[0]:{AND:t}},B=e=>{if(e.some(Us))return kt();let t=e.filter(r=>!bd(r));return t.length===0?sr():t.length===1?t[0]:{OR:t}},Ee=e=>Us(e)?e:{NOT:e},Rd=(e,t,r)=>ct(e.all.map(o=>ie(o,t,r))),Od=(e,t,r)=>B(e.any.map(o=>ie(o,t,r))),xd=(e,t,r)=>{if(dt(e,t?.map,t?.model))return Fr();let o=ie(Ie(e.if,Co(t)),t,r),n=ie(e.then,t,r),i=B([o,n]);if(e.else!==void 0){let s=ie(e.if,t,r),a=ie(e.else,t,r);return ct([i,B([s,a])])}return i};var Cb=(e,t,r,o)=>{let n=T(e,t);if(!n)return null;for(let i of Object.values(n.fields))if(i.kind==="object"&&i.type===r&&(i.fromFields?.length??0)>0&&(i.toFields?.length??0)>0&&(o===void 0||i.relationName===o))return i;return null},ln=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=Cb(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Ii=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(T(e,o.type)?.fields??{}).filter(([i,s])=>s.kind==="object"&&s.type===t&&s.relationName===o.relationName&&!(o.type===t&&i===r));return n.length===1?{field:n[0][0],entry:n[0][1]}:null};var Dr=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var ko=(e,t,r,o)=>{let n=e.split("."),i=me(e,t,r);if(i.kind!=="direct"||i.entry.kind!=="object"){let l=i.hops.at(-1)?.entry.type??r;throw new Error(`Field '${n[i.hops.length]}' is not a relation in model '${l}'. ${o} require a relation field.`)}let s=i.hops.find(l=>l.entry.isList);if(s)throw new Error(`Intermediate field '${s.field}' in path '${e}' is a list relation. Only the final segment can be a list relation for ${o.toLowerCase()}.`);if(!i.entry.isList)throw new Error(`Field '${i.column}' is not a list relation in model '${i.model}'. ${o} only apply to one-to-many or many-to-many relations.`);let a=ln(t,i.model,i.entry);if(!a){let l=Object.values(T(t,i.entry.type)?.fields??{}).some(f=>f.kind==="object"&&f.type===i.model&&f.isList&&!f.fromFields?.length);throw new Error(l?`'${i.model}.${i.column}' is an implicit many-to-many relation. ${o} require an explicit join model with a FK \u2014 convert to an explicit @relation or use prisma.$queryRaw.`:`Cannot determine FK relationship between '${i.model}' and '${i.entry.type}'. Ensure the FieldMap contains both sides of the relation.`)}if(a.length>1)throw new Error(`${o} do not support composite FK relations ('${i.model}.${i.column}'). Use prisma.$queryRaw.`);return {through:i.hops.map(l=>l.field).join("."),target:i.entry.type,parentKey:a[0].here,targetKey:a[0].there}},Vi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Fi({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Ee(a):a;return t.through?Dr(t.through,l):l};var lr=e=>({ok:e.length===0,errors:e}),pn=(e,t)=>{if(!e.ok)throw new Error(`${t}:
2
2
  ${e.errors.map(r=>`${r.path}: ${r.message}`).join(`
3
- `)}`)},_o=(e,t={})=>{let r={target:t.target??"check",errors:[],map:Yt(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Tt(e,"$",r,1),ir(r.errors)},Tb=(e,t={})=>{pn(_o(e,t),"validateRule");},Tt=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!nr(e)){E(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=se(e);if(!n){E(r,t,"ambiguous_condition",ot().message);return}switch(n){case "all":Rd(e.all,`${t}.all`,r,o);break;case "any":Rd(e.any,`${t}.any`,r,o);break;case "if":Tt(e.if,`${t}.if`,r,o),Tt(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&Tt(e.else,`${t}.else`,r,o);break;case "field":Mb(e,t,r,o);break;case "aggregate":kb(e,t,r,o);break;case "array":Lb(e,t,r,o);break;case "date":Fb(e,t,r,o);break}},Rd=(e,t,r,o)=>{if(!Array.isArray(e)){E(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{Tt(n,`${t}[${i}]`,r,o);});},Bi=(e,t,r,o)=>{typeof e.field=="string"&&Ed(e.field,"field",`${t}.field`,r,o);},Ed=(e,t,r,o,n,i=false)=>{let s=k(e)??(t==="path"?{depth:n}:null);if(!s)return;let a=t==="field"?"Field":"Path";s.depth>n&&E(o,r,"scope_out_of_bounds",Os(e,s.depth,n)),o.target==="toPrisma"&&!i?E(o,r,`unsupported_prisma_${t}`,t==="path"?`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check()`:`${a} '${e}' is not supported by toPrisma()`):o.target==="toSql"&&(t==="field"||s.depth>1)&&E(o,r,`unsupported_sql_${t}`,`${a} '${e}' is not supported by toSql()`);},Vi=(e,t,r,o=false)=>{e.stepScopes[t]=o||e.stepScopes[t-1]===true;let n=e.scopeModels[t-1];e.scopeModels[t]=e.map&&n&&typeof r=="string"?nn(r,e.map,n)??void 0:void 0;},Co=(e,t,r,o,n=false)=>{let i=Cf.filter(a=>e[a]!==void 0);if(i.length>1)return E(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(i.length===0)return E(r,t,"missing_value_source","Requires value, path or bind"),null;let[s]=i;return s!=="value"&&(typeof e[s]!="string"||e[s]==="")?(E(r,`${t}.${s}`,"invalid_value_source",`${s} is a non-empty string`),null):(e.bindOptional!==void 0&&(s!=="bind"||typeof e.bindOptional!="boolean")&&E(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),s==="path"&&Ed(e.path,"path",`${t}.path`,r,o,n),s)},Pd=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!yf.includes(r)){E(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!nr(s)){E(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=Co(s,a,n,i);if(l==="path"){let d=s.path,u=br(s);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&E(n,`${a}.path`,"unsupported_sql_path",`A row path on a date offset ('${d}') is not supported by toSql()`);return}if(l!=="value")return;let p=s.value;if(t==="field"){(typeof p!="number"||!Number.isFinite(p))&&E(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let f=nr(p)&&Object.keys(p).length===1&&X(p)?he(p):null;if(!f){E(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Ad(f[0],`${a}.value.${Object.keys(p)[0]}`,n,i);},$d=(e,t,r,o)=>{o.target!=="toSql"||!Me.includes(t)||br(e)&&E(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},Mb=(e,t,r,o)=>{if(typeof e.field!="string"&&E(r,`${t}.field`,"field_required","Field rule requires a string field"),Bi(e,t,r,o),typeof e.operator!="string"||!Rt(e.operator,"field")){E(r,`${t}.operator`,"invalid_operator",ne(e.operator,"field").message);return}let n=e.operator;Pd(e,"field",n,t,r,o),li(n,"field",r.target)||E(r,`${t}.operator`,`unsupported_${qi(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!ai(e.coerceType)&&E(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(z).join(", ")}`);let i=xt(n,"field");if(i==="none"){Db(e,t,r);return}if(Co(e,t,r,o,true)!==null){if($d(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Fi(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&E(r,`${t}.path`,"unsupported_prisma_path",Di(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(k(e.path)??{path:e.path}).path,l=Ao(J(e.field,r.map,s),J(a,r.map,s),n);l&&E(r,`${t}.path`,"unsupported_sql_path",`'${e.path}': ${l}`);}r.target==="toSql"&&typeof e.path=="string"&&["array","pattern","string"].includes(i)&&((r.map?J(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&et.includes(n)||E(r,`${t}.path`,"unsupported_sql_path",`'${n}' against the column '${e.path}' has no SQL form`)),!(typeof e.path=="string"||typeof e.bind=="string")&&(Cb(e,n,t,r,o),_b(i,e.value,n,`${t}.value`,r));}},Cb=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=J(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=ie(e.caseInsensitive),l=Wt.includes(t)&&Array.isArray(s),p=f=>E(o,`${r}.value`,"unsupported_prisma_operator",C("toPrisma",f).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?p(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&rr("text",s)?p(`A case-insensitive comparison on the list '${e.field}'`):$e(i)&&a&&p(`A case-insensitive comparison on the Json column '${e.field}'`);},_b=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&E(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":ae(t)||E(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||E(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){E(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=Gf(t,n.target);i&&E(n,o,"unsupported_pattern",i);return}case "range":try{xo(t,r);}catch(i){E(n,o,"invalid_range_value",i.message);}return}},vd=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{Mo(e.field,r.map,i,n);}catch(s){E(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},kb=(e,t,r,o)=>{if(vd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&E(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Nd(e,t,r,o),typeof e.field!="string"&&E(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),Bi(e,t,r,o),!nr(e.aggregate)){E(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(tt.includes(n.mode)||E(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Kt(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&E(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!pi.includes(e.operator)){E(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${pi.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&E(r,`${t}.path`,"unsupported_prisma_aggregate_path","path is not supported by toPrisma() for aggregate rules; use value instead"),"condition"in e&&e.condition!==void 0&&(r.target==="toSql"&&E(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),Vi(r,o,e.field,true),Tt(e.condition,`${t}.condition`,r,o+1)),Co(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;Me.includes(e.operator)?jb(i)||E(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&E(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},Lb=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&E(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),Bi(e,t,r,o),Nd(e,t,r,o),typeof e.arrayOperator!="string"||!Rt(e.arrayOperator,"array")){E(r,`${t}.arrayOperator`,"invalid_array_operator",ne(e.arrayOperator,"array").message);return}let n=e.arrayOperator;Ut.includes(n)&&vd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?J(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!D(i)&&n!=="empty"&&n!=="notEmpty"&&E(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",C("toPrisma",`'${n}' over the array column '${e.field}'`).message),li(n,"array",r.target)||E(r,`${t}.arrayOperator`,`unsupported_${qi(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let s=xt(n,"array"),a=e.condition!==void 0,l=()=>{e.count!==void 0&&E(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};s==="none"?(a&&E(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),l()):s==="predicate"?(a?(Vi(r,o,e.field),Tt(e.condition,`${t}.condition`,r,o+1)):E(r,`${t}.condition`,"missing_condition",Ie(n).message),l()):s==="count"&&(r.target!=="toPrisma"&&typeof e.count!="number"?E(r,`${t}.count`,"missing_count",wo(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&E(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),a?(Vi(r,o,e.field,true),Tt(e.condition,`${t}.condition`,r,o+1)):r.target==="check"&&E(r,`${t}.condition`,"missing_condition",Ie(n).message));},Fb=(e,t,r,o)=>{if(typeof e.field!="string"&&E(r,`${t}.field`,"field_required","Date rule requires a string field"),Bi(e,t,r,o),typeof e.dateOperator!="string"||!Rt(e.dateOperator,"date")){E(r,`${t}.dateOperator`,"invalid_date_operator",ne(e.dateOperator,"date").message);return}let n=e.dateOperator;Pd(e,"date",n,t,r,o),li(n,"date",r.target)||E(r,`${t}.dateOperator`,`unsupported_${qi(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=xt(n,"date");if(i==="dayList"){if(Co(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&Af(a)))&&E(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${ho.join(", ")})`);return}if(Co(e,t,r,o)!==null&&($d(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(X(e.value)){xd(e.value,n,`${t}.value`,r,o);return}if(Ho.includes(n)){E(r,`${t}.value`,"invalid_date_range",je(n).message);return}if(i==="dateRange"){if(!Ib(e.value)){E(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{X(s)?xd(s,n,`${t}.value[${a}]`,r,o):ae(s)&&!Qt(s,Et).isValid()&&E(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!ae(e.value)){E(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}Qt(e.value,Et).isValid()||E(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},Ad=(e,t,r,o)=>{if(!nr(e)||Object.keys(e).length===0){E(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!Es(n)){E(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=nr(i)?Co(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=Ls(a,n);l&&E(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Od=(e,t,r)=>{(typeof e!="string"||!di.includes(e))&&E(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},xd=(e,t,r,o,n)=>{let i=Ho.includes(t),s=he(e);if(s){Ad(s[0],r,o,n);return}if(Zo(e)){Od(bi(e),r,o);return}if($s(e)){if(i){E(o,r,"invalid_date_range",je(t).message);return}let a="start"in e?e.start:e.end;if(!nr(a)||!Zo(a)){E(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Od(bi(a),r,o);return}E(o,r,"invalid_date_expression","Unrecognized date expression");},Db=(e,t,r)=>{"value"in e&&e.value!==void 0&&E(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&E(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&E(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},qi=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",nr=e=>Oe(e),jb=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",Ib=e=>Array.isArray(e)&&e.length===2&&(ae(e[0])||X(e[0]))&&(ae(e[1])||X(e[1])),Nd=(e,t,r,o)=>{if(Pe(e)&&r.target!=="check"&&(r.target==="toPrisma"&&vo(e)!==null||E(r,t,`unsupported_${qi(r.target)}_window`,nt(r.target).message)),"filter"in e&&e.filter!==void 0&&(Vi(r,o,e.field),Tt(e.filter,`${t}.filter`,r,o+1)),"orderBy"in e&&e.orderBy!==void 0){let i=e.orderBy;Array.isArray(i)?i.forEach((s,a)=>{(!nr(s)||typeof s.field!="string"||s.dir!=="asc"&&s.dir!=="desc")&&E(r,`${t}.orderBy[${a}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):E(r,`${t}.orderBy`,"invalid_order_by","orderBy must be an array of { field, dir }");}for(let i of ["take","skip"])if(i in e&&e[i]!==void 0){let s=e[i];(typeof s!="number"||!Number.isInteger(s)||s<0)&&E(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},E=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var Vb=/[.:]/,Ws=e=>{let t=[];for(let[r,o]of Object.entries(e.maps))for(let[n,i]of Object.entries(o.models))for(let[s,a]of Object.entries(i.fields))a.kind!=="bridge"&&Vb.test(s)&&t.push({path:`${qe({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return ir(t)},Td=e=>pn(Ws(e),"validateFieldMaps");var sr=e=>!Object.hasOwn(e,"parent"),ft=e=>{let t=[],r=new Set,o=e;for(;!sr(o);){if(r.has(o))throw new Error("cycle detected in narrowing parent chain");if(Object.hasOwn(o,"model")||Object.hasOwn(o,"maps"))throw new Error("a narrowing carries a base lens key (model / maps); it has a parent instead");r.add(o),t.unshift(o),o=o.parent;}return t},Ue=e=>sr(e)?e:ft(e)[0].parent;var Us=(e,t)=>t.length?U([...t,e]):e,Bb=e=>{if(Jt(e).length)return false;let t=e.field,r=typeof t=="string"?k(t):null;try{return me(r?{...e,field:r.path}:e,{})===!0}catch{return false}},Gs=(e,t)=>{if(!t.length)return e;if(!Bb(e))return U([...t.flatMap(n=>n.grants),e]);let[r,...o]=t;return $t([U([...r.grants,Gs(e,o)]),U([{field:r.prefix,operator:"notExists"},e])])},Wi=(e,t)=>Ht(e,{rewrite:r=>{if(Ee(r))return r;if(typeof r.field!="string"||r.field==="")throw new A(`narrowRule: cannot re-root a relation grant of unknown shape under '${t}'`,"unsupported_grant");let o=Jt(r);if(o.length)throw new A(`narrowRule: cannot re-root a relation grant with a path reference ('${o[0]}') under '${t}'. Author the grant without 'path', or anchor it at the relation itself.`,"unsupported_grant");if(k(r.field))throw new A(`narrowRule: cannot re-root a relation grant with a scope ref field ('${r.field}') under '${t}'. Author the grant against the model's own columns.`,"unsupported_grant");if(Ce(r)){for(let n of [r.condition,r.filter])if(n!==void 0&&ko(n).escaping!==null)throw new A(`narrowRule: cannot re-root a relation grant on '${r.field}' under '${t}': '${ko(n).escaping}' inside it reads the row being re-rooted. Anchor such grants at the relation's own model.`,"unsupported_grant")}return {...r,field:`${t}.${r.field}`}},below:()=>false}),Ks=(e,t)=>t.flatMap(r=>{let o=F(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new A(`narrowRule: cannot enforce a to-many relation grant on '${r.prefix}' without an arrayOperator condition to anchor it (row-scoped). Traverse '${r.prefix}' via an array operator (any/all/none/...) so the grant can be injected safely.`,"unsupported_grant");return [{prefix:r.prefix,grants:o.whereClauses.map(n=>Wi(n,r.prefix))}]}),Md=(e,t)=>Ks(e,t).flatMap(r=>r.grants),_d=(e,t,r)=>{let o=Te(e,r);if("outOfBounds"in o)throw new A(`narrowRule: ${o.outOfBounds}`,"scope_out_of_bounds");if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return Ae(t.lens.maps,o.scope,o.path,n==="$."?"":n)},qb=(e,t,r)=>{if(k(e))return _d(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?Ae(t.lens.maps,r[0],e,o).hops:[]},Cd=(e,t,r)=>{if(Ee(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=_d(e.field,t,r);return {hops:o,below:n}},kr=(e,t,r)=>Ht(e,{below:(o,n)=>{let i=Cd(o,t,n);return i?i.below?[...n,i.below]:Ce(o)?[...n,null]:false:false},after:(o,n)=>{let i=Cd(o,t,n);if(!i)return o;let s=Md(t,Jt(o).flatMap(d=>qb(d,t,n))),a=i.below;if(!a||!Ce(o))return Us(Gs(o,Ks(t,i.hops)),s);let l=[...F(t,a.mapName,a.modelName,a.relPath).whereClauses,...Md(t,Oo(o).flatMap(d=>Ae(t.lens.maps,a,d).hops))],p=o.condition===void 0||o.arrayOperator===P.all||Pe(o),f={...o};return l.length&&p?f.filter=U([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(f.condition=U([...l,o.condition])),Us(Gs(f,Ks(t,i.hops.slice(0,-1))),s)}},[r]),Lo=(e,t)=>{let r=L(t),o=F(r,r.lens.mapName,r.lens.model,[]),n=kr(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return Us(n,o.whereClauses)};var zs=(e,t)=>{let r=Pr(e,z.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},Wb=(e,t,r)=>o=>{if(o==null)return o;let n=zs(o,r);if(n===void 0)throw new Error(`Invalid date value for DateTime field '${e}': ${String(o)}`);return t==="toPrisma"?new Date(n):new Date(n).toISOString()},Ui=(e,t,r,o,n)=>{if(t==null||r?.kind==="json-path")return t;let i=r?.kind==="direct"?r.entry:void 0;if(i?.isList)return t;let s=i?At(i):void 0;if(e.coerceType!==void 0&&s!==void 0&&e.coerceType!==s)throw new Error(`coerceType '${e.coerceType}' overrides ${s} field '${e.field}', but ${o} compares the column as stored \u2014 evaluate it in memory with check(), or drop the override.`);if((s??e.coerceType)===z.DateTime){let l=Wb(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===z.String&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="number"||typeof l=="boolean"))throw new Error(`'${e.field}' is String but the literal is not a string; pass a string, or stamp coerceType: 'String'.`);if(e.coerceType===void 0&&s!==void 0&&(De.includes(s)||s===z.Boolean)&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="string"))throw new Error(`'${e.field}' is ${s} but the literal is a string; pass a ${s===z.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&Pf.includes(e.coerceType)?Pr(t,e.coerceType,e.coerceType===z.DateTime?n():void 0):t};var kd=e=>Array.isArray(e)?e.flatMap(kd):[e],fn=e=>e.value===void 0?null:kd(e.value),Ub=e=>zs(e)!==void 0,Gb=/^-?\d+(\.\d+)?$/,Kb={String:{expected:"a string",fits:e=>typeof e=="string"},Enum:{expected:"a string",fits:e=>typeof e=="string"},Int:{expected:"an integer",fits:Number.isSafeInteger},BigInt:{expected:"an integer",fits:Number.isSafeInteger},Float:{expected:"a number",fits:Number.isFinite},Decimal:{expected:"a number or a numeric string",fits:e=>Number.isFinite(e)||typeof e=="string"&&Gb.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:Ub},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},zb=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Ld=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===z.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=mo(e);if(!i)return [];let a=r!==void 0&&r!==t?`field '${e.field}' coerced to ${o}`:`${o} field '${e.field}'`;if(!i.kinds.includes(o))return [{path:e.field,code:"operator_kind_mismatch",message:`operator '${n}' does not apply to ${a} (applies to: ${i.kinds.join(", ")})`}];if(e.offset!==void 0&&!("dateOperator"in e?o===z.DateTime:De.includes(o)))return [{path:e.field,code:"invalid_offset",message:`an offset does not apply to ${a}`}];if("dateOperator"in e||i.valueShape==="none"||i.valueShape==="pattern")return [];if($f.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:p}=Kb[o],f=u=>{try{return p(Pr(u,o))}catch{return false}},d=u=>p(u)||r!==void 0&&f(u);return (fn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${zb(u)} does not fit ${a} (expected ${l})`}))},Fd=(e,t,r)=>{if(r.isList===true||$e(r))return null;let o=D(r)?`arrayOperator '${t}' needs a list, but '${e}' is a to-one relation \u2014 a single related record; address its fields directly (e.g. '${e}.<field>')`:`arrayOperator '${t}' needs a list, but '${e}' is a single ${At(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var Hb=(e,t,r,o)=>re(e,(n,i)=>{let s=se(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:ot().message}),false;if(Ee(n))return;let a=n,l=w=>{let S=Te(w,i);return "outOfBounds"in S?(o.push({path:w,code:"scope_out_of_bounds",message:S.outOfBounds}),null):{scope:S.scope,field:S.path}},p=i[i.length-1],f=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let w=jo(t,i,a.field);"issue"in w?(o.push({path:a.field,...w.issue}),f=false):{next:p,walked:d}=w;}let u=d?.entry??null,m=d?.terminalFieldName??null,g=d?.entry.kind==="enum",c=d?.entry.type??null,h=d&&d.jsonSubPath.length===0?Ki(d.terminalEffect,d.terminalFieldName):null;for(let{ref:w,role:S}of Cs(a)){let R=k(w)?l(w):{scope:dt(t),field:w};if(!R||R.scope.open)continue;let b=Fo(t,R.scope,R.field);if(!b){o.push({path:w,...Gi(t,R.scope,R.field,S==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens")});continue}if(D(b.entry)){o.push({path:w,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let x=At(b.entry);if(S==="value"||S==="shift"||x===void 0)continue;(S==="whole"?xf.includes(x):De.includes(x))||o.push({path:w,code:"not_in_lens",message:`${S==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${x}`});}if(!f)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let w=Fd(a.field,a.arrayOperator,u);if(w)return o.push(w),false}if(u&&D(u)&&(s==="field"||s==="date")&&(u.isList||!$r(a))){let w=a.field;return o.push({path:w,code:"operator_kind_mismatch",message:(u.isList?mi(w):So(w)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...Ld(a,u?At(u):void 0)),!p.open)for(let w of Oo(a))w!==""&&!Fo(t,p,w)&&o.push({path:w,...Gi(t,p,w,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(h&&"operator"in a&&m){let w=fn(a);if(w){let S=new Set(h),R=g?`enum '${c}'`:`field '${m}'`;for(let b of w)typeof b=="string"&&!S.has(b)&&o.push({path:m,code:"value_not_allowed",message:`value '${b}' is not in the allowed set for ${R} (allowed: ${[...S].join(", ")})`});}}return [...i,p]},[r]),dn=(e,t,r,o,n)=>{let i=[];return Hb(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Do=(e,t)=>{let r=L(t);try{let o=dn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&Lo(e,t),ir(o)}catch(o){if(!(o instanceof A))throw o;return ir([{path:"",code:o.code,message:o.message}])}};var mn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],gn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),yn=e=>{if(gn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw Jb();return {where:e}},Jb=()=>new A("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),Qs=["__offpath__"],Dd=new WeakMap,Qb=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([un(t.parent),un(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=Dd.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return Dd.set(t,{fingerprint:r,trees:n}),n},jd=new WeakMap,Zb=0,un=e=>{let t=jd.get(e);return t===void 0&&(t=Zb++,jd.set(e,t)),t},le="\0",Yb=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>D(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},zi=e=>e?String(un(e)):"",L=e=>{let t=Ue(e),r=sr(e)?[]:ft(e);return {lens:t,chain:r,origin:r[0],memo:{trees:Qb(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},Hi=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),Xb=(e,t)=>{if(t.picks&&(e.picks=Hi(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},Bd=(e,t,r)=>{e.set(t,Hi(e.get(t)??null,r));},qd=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},eR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))Bd(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))qd(t,o,n);},Hs=(e,t,r)=>JSON.stringify([e,t,r]),tR=(e,t,r,o,n,i,s)=>{if(s&&Xb(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where))),t.sources)for(let[a,l]of Object.entries(t.sources)){let p=yn(l),f=e.sources.get(a)??[],d=e.sourceWheres.get(a)??[];p.where!==void 0&&i&&(n(p.where,true),f.push(r(p.where)),d.push(p.where)),e.sources.set(a,f),e.sourceWheres.set(a,d);let u=mn(p.groupBy);for(let[m,g,c]of [["label",p.label,e.sourceLabels.get(a)],["groupBy",u,e.sourceGroupBys.get(a)]]){if(g===void 0)continue;let h=Hs(a,m,g);c!==void 0&&Hs(a,m,c)===h||e.sourceDeclaredAt.set(h,o);}p.label!==void 0&&e.sourceLabels.set(a,p.label),u!==void 0&&e.sourceGroupBys.set(a,u),p.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(a)&&e.sourcesFromMapDefaults.set(a,o);}},A=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},Zs=e=>new A(`a bare path ('${e}') reads the root row, which a grant at a relation visit or a model default doesn't stand on: use a literal, a bind, or a \`$\` scope ref`,"invalid_value_source"),rR=(e,t,r)=>dn(e,t,r.mapName,r.modelName,r.relPath),oR=e=>new A(`a later layer's grant reads what its parent does not show: '${e.path}' ${e.message}`,e.code),Ys=e=>new A(`the scope ref '${e}' climbs out of the grant: a grant reads its own row ('$.'), literals and binds`,"scope_out_of_bounds"),ko=e=>{let t=null,r=null;return re(e,(o,n)=>{if(Ee(o))return;let i=Jt(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=k(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!k(s)&&(t=s);return Ce(o)?n+1:void 0},1),{bare:t,escaping:r}},Js=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of Ae(e.lens.maps,r,t.relPath.join(".")).hops)o.push({mapName:i.map,modelName:i.model,relPath:i.relPath});let n=o[o.length-1];return o.length===t.relPath.length+1&&n.mapName===t.mapName&&n.modelName===t.modelName?o:null},cn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},Xs=(e,t,r)=>{let o=i=>O(O(e.mapDefaults,i.mapName)?.models,i.modelName);if(!r){let i=o(t);return {defaults:i?[i]:[],path:void 0}}let n=[];for(let[i,s]of r.entries()){let a=cn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:cn(e.root,t.relPath)}},nR=(e,t,r,o)=>{let n=cn(t.root,r.relPath),i=[r.relPath.join(le),Object.keys(n?.relations??{}).join(le),(n?.omits??[]).join(le)].join(`${le}${le}`),s=o.get(i);if(s)return s;let a=new Map,l={lens:e},p=Js(l,r)??[r],f=new Set(p.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:m}=d.shift(),g=N(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:c,path:h}=Xs(t,u,Js(l,u)),w=new Set(c.flatMap(b=>Object.keys(b.relations??{}))),S=new Set([...c,...h?[h]:[]].flatMap(b=>b.omits??[])),R=[];for(let[b,x]of Object.entries(g)){if(!w.has(b)||S.has(b)||h?.relations!==void 0&&Object.hasOwn(h.relations,b))continue;let $=We(x,u.mapName);if(!$||!N(O(e.maps,$.mapName),$.modelName))continue;let j=`${$.mapName}:${$.modelName}`;f.has(j)||(f.add(j),R.push(b),d.push({at:{...$,relPath:[...u.relPath,b]},below:[...m,b]}));}a.set(m.join("."),R);}return o.set(i,a),a},iR=(e,t,r,o)=>{if(!o)return Xs(t,r,null).defaults.flatMap(p=>Object.keys(p.relations??{}));let n=r.relPath.length;for(;n>0&&cn(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=nR(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys(cn(t.root,r.relPath)?.relations??{}):[],...a]},ea=(e,t,r)=>{let o=t;for(let n of Ae(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!F(e,o.mapName,o.modelName,o.relPath).relations.has(i))return n.prefix;o={mapName:n.map,modelName:n.model,relPath:n.relPath};}return null},F=(e,t,r,o)=>{let n=e.memo?Id(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let _ of i.unchecked)_();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],sources:new Map,sourceWheres:new Map,sourceLabels:new Map,sourceGroupBys:new Map,sourceDeclaredAt:new Map,sourcesFromMapDefaults:new Map,relations:new Set,relationFields:new Set},l=O(e.lens.maps,t),p=N(l,r);if(!p)return a;let f=e.memo?.models.get(p);f||(f=Yb(p),e.memo?.models.set(p,f)),a.relationFields=f.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],m=`${zi(u)}${le}${t}${le}${r}${le}${o.join(le)}`,g=e.memo?.places.get(m);if(!g){let _=Js(e,d);g={trail:_,turnedOn:u?iR(e,u,d,_):[]},e.memo?.places.set(m,g);}let{trail:c}=g,h=new Map,w=new Map,S=new Map,R=new Map,b=_=>_,x=0,$=()=>{},j=true,de=true,H=_=>{tR(a,_,b,x,$,j,de),eR(h,w,_);};for(let[_,B]of e.chain.entries()){x=_;let Ir={...e,grant:false,skipGrantsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,_)};j=B!==e.skipGrantsOf,de=B!==e.skipHidingOf,b=Ne=>_===0?Ne:kr(Ne,Ir,{mapName:t,modelName:r,relPath:o});for(let[Ne,Q]of Object.entries(O(B.mapDefaults,t)?.enums??{}))Q.picks&&Bd(S,Ne,Q.picks),Q.omits&&qd(R,Ne,Q.omits);let{defaults:Vr,path:ur}=Xs(B,d,c),ue=_===0?null:Ir,Bo=Ne=>(Q,Pn=false)=>{let Fe=e.memo?.refs.get(Q);if(Fe||(Fe=ko(Q),e.memo?.refs.set(Q,Fe)),Fe.bare!==null&&!(Ne&&!Pn))throw Zs(Fe.bare);if(Fe.escaping!==null)throw Ys(Fe.escaping);if(!ue)return;let Ca=()=>{let $n=typeof Q=="object"&&Q!==null?`${un(Q)}${le}${Id(ue,t,r,o)}`:null;if($n!==null&&ue.memo?.vetted.has($n))return;let[_a]=rR(Q,ue,d);if(_a)throw oR(_a);$n!==null&&ue.memo?.vetted.add($n);};e.unvetted?s.push(Ca):Ca();};$=Bo(false);for(let Ne of Vr)H(Ne);ur&&($=Bo(o.length===0&&c!==null),H(ur));}if(u&&e.chain.includes(u))for(let _ of g.turnedOn)a.relationFields.has(_)&&!a.omits.has(_)&&a.relations.add(_);for(let[_,B]of f.gated){let Ir=B.kind==="enum",ur=B.options?.map(Q=>Q.value)??(Ir?Nr(B,l?.enums):B.values);if(!ur)continue;let ue=ur;if(Ir){let Q=S.get(B.type),Pn=R.get(B.type);Q&&(ue=ue.filter(Fe=>Q.has(Fe))),Pn&&(ue=ue.filter(Fe=>!Pn.has(Fe)));}let Bo=h.get(_),Ne=w.get(_);Bo&&(ue=ue.filter(Q=>Bo.has(Q))),Ne&&(ue=ue.filter(Q=>!Ne.has(Q))),a.enumValuesByField.set(_,ue);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},Id=(e,t,r,o)=>{let n=Vd.get(e);if(n===void 0){n=`${zi(e.origin)}${le}${zi(e.skipGrantsOf)}${le}${zi(e.skipHidingOf)}${le}`;for(let i of e.chain)n+=`${un(i)},`;Vd.set(e,n);}return `${n}${le}${t}${le}${r}${le}${o.join(le)}`},Vd=new WeakMap,Lr=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!N(i,o.modelName))return;let s=F(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=Se(i,o.modelName,a),p=l&&We(l,o.mapName);p&&r({...p,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},Ji=(e,t,r,o)=>F(e,t,r,Qs).sources.has(o),Qi=(e,t,r,o)=>new A(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`,"invalid_source"),ut=(e,t)=>e.omits.has(t)?false:e.relationFields.has(t)?e.relations.has(t):!(e.picks!==null&&!e.picks.has(t)),Ki=(e,t)=>e.enumValuesByField.get(t)??null,Fr=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:p,next:f}of Xt(e.lens.maps,t,r)){if(!p)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=F(e,l.mapName,l.modelName,l.relPath);if(!(e.grant&&D(p)?!d.omits.has(a):ut(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let m={field:a,entry:p,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(m),i.push(d);let g=s===o.length-1;if(g||$e(p))return {resolution:{outcome:"resolved",hops:n,terminal:m,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!f)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},Io=(e,t,r,o,n)=>{let i=n==="label"?t.sourceLabels.get(o):t.sourceGroupBys.get(o);if(i===void 0)return true;let s=t.sourceDeclaredAt.get(Hs(o,n,i)),a=(f,d)=>Fr(f,r,d).resolution.outcome!=="hidden",l={...e,grant:true},p={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(f=>ea(e,r,f)===null&&(a(l,f)||a(p,f)))},Fo=(e,t,r)=>{let{resolution:o,effects:n}=Fr(e,t,r);if(o.outcome!=="resolved")return null;let{terminal:i,jsonSubPath:s}=o;return {mapName:i.mapName,modelName:i.model,relPath:i.relPath,entry:i.entry,terminalEffect:n[n.length-1],terminalFieldName:i.field,jsonSubPath:s}},Gi=(e,t,r,o)=>{let{resolution:n}=Fr(e,t,r);if(n.outcome!=="hidden")return {code:"not_in_lens",message:o};let i=r.split("."),s=n.hops.at(-1),a=s?{mapName:s.mapName,modelName:s.model,relPath:[...s.relPath,s.field]}:t,l=s&&We(s.entry,s.mapName),p=l?{...l,relPath:a.relPath}:t,f=F(e,p.mapName,p.modelName,p.relPath),d=i[n.index];return !f.relationFields.has(d)||f.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},dt=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),jo=(e,t,r)=>{let o=Te(r,t);if("outOfBounds"in o)return {issue:{code:"scope_out_of_bounds",message:o.outOfBounds}};if(o.scope.open)return {from:o.scope,next:o.scope,walked:null};let n=Fo(e,o.scope,o.path);if(!n)return {issue:Gi(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=$e(n.entry),s=We(n.entry,n.mapName),a=s?{...s,relPath:[...n.relPath,n.terminalFieldName],open:i}:{...o.scope,open:i};return {from:o.scope,next:a,walked:n}},Ae=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:p,entry:f,next:d}of Xt(e,t,r)){if(!f||!d)break;let u=[...p.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:f.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var ra="parent:",oa=e=>e.startsWith(ra),Ud=e=>oa(e)?e.slice(ra.length):e,ta=(e,t)=>{let r={...e};if(e.where!==void 0&&(r.where=t(e.where)),e.sources){let o={};for(let[n,i]of Object.entries(e.sources))o[n]=gn(i)?i.where!==void 0?{...i,where:t(i.where)}:i:t(i);r.sources=o;}if("relations"in e&&e.relations){let o={};for(let[n,i]of Object.entries(e.relations))o[n]=ta(i,t);r.relations=o;}return r},Gd=(e,t)=>{let r={};for(let[o,n]of Object.entries(e.mapDefaults??{})){let i={};for(let[s,a]of Object.entries(n.models??{}))i[s]=ta(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?ta(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},na=e=>{let t=[];return Gd(e,r=>(t.push(r),r)),t},Wd=e=>{let t=new Set;for(let r of na(e))for(let o of en(r))oa(o)||t.add(o);return t},Kd=e=>{let t=new Set;for(let r of ft(e))for(let o of na(r))for(let n of en(o,{required:true}))t.add(Ud(n));return [...t].sort()},zd=(e,t)=>{if(sr(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${ra}${o}`]=n;return {...Gd(e,o=>_s(o,r)),parent:zd(e.parent,t)}},Hd=(e,t)=>zd(e,t),Jd=e=>{let t=[],r=new Set;for(let n of ft(e.parent))for(let i of Wd(n))r.add(i);for(let n of Wd(e))r.has(n)&&t.push(`bind name '${n}' already declared by an ancestor narrowing \u2014 rename it, or reference the inherited one as 'parent:${n}'`);let o=new Set;for(let n of na(e))for(let i of en(n))oa(i)&&o.add(Ud(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var Qd=(e,t)=>{let r=L(t),o=(n,i)=>typeof n=="string"&&n!==""?jo(r,i,n):null;return Ht(e,{rewrite:(n,i)=>{if(se(n)!=="field"||n.coerceType)return n;let s=o(n.field,i);if(!s||"issue"in s||!s.walked||s.walked.jsonSubPath.length)return n;let{entry:a}=s.walked;return a.kind==="scalar"&&Ef.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Ce(n))return false;let s=o(n.field,i),a=s&&!("issue"in s)?s.walked?.entry:void 0;return s&&!("issue"in s)&&a&&D(a)?[...i,s.next]:false}},[dt(r)])};var Zd=({maps:e,bridges:t,mapName:r,model:o})=>({...Ti({maps:e,bridges:t}),mapName:r,model:o});var sR=(e,t)=>re(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Ee(r)||typeof r.field!="string"||r.field==="")return;let n=jo(t.policy,o,r.field);return "issue"in n?false:(n.walked&&(t.sources.add(n.walked.mapName),(n.walked.entry.kind==="bridge"||n.walked.mapName!==n.from.mapName)&&(t.bridgesCrossed=true)),[...o,n.next])},[dt(t.policy)]),Yd=(e,t)=>{let o={policy:L(t),sources:new Set,bridgesCrossed:false};return sR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:T.filter(n=>(n==="check"||!o.bridgesCrossed)&&_o(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Do(e,t).errors}};var aR=new Set([Ot.scalar,Ot.ordered,Ot.array,Ot.dayList,Ot.dateValue]),lR=new Set([Ot.none,Ot.count]),pR=e=>{if(e.offset!==void 0||Xo(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=mo(e);return t?lR.has(t.valueShape)?{values:[],dynamic:false}:aR.has(t.valueShape)?"value"in e?{values:fn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},fR=e=>e instanceof Date?`d:${+e}`:e instanceof RegExp?`r:${e}`:typeof e=="object"&&e!==null?`j:${JSON.stringify(e)}`:`p:${typeof e}:${String(e)}`,Xd=(e,t)=>{let r=L(t),o=r.lens.model,n=new Map,i=new Map,s=(l,p)=>{if(l.length===0)return;let f=Fo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!f||f.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:m,terminalEffect:g,terminalFieldName:c}=f;if(!g.sources.has(c))return;let h=[o,...m].join("."),w=`${h}|${c}`,S=n.get(w);S||(S={path:h,mapName:d,model:u,field:c,values:[],dynamic:false},n.set(w,S));let R=pR(p);R.dynamic&&(S.dynamic=true);let b=i.get(w)??new Set;i.set(w,b);for(let x of R.values){let $=fR(x);b.has($)||(b.add($),S.values.push(x));}},a=(l,p)=>{let f=Te(l,p);if(!("outOfBounds"in f))return [...f.scope,...f.path.split(".")]};return re(e,(l,p)=>{if(Ee(l))return;let f=typeof l.field=="string"?a(l.field,p):p.at(-1);return f?(!Ce(l)&&typeof l.field=="string"&&s(f,l),[...p,f]):false},[[]]),[...n.values()]};var Zi=(e,t,r,o)=>{let n=dR(e,t,r);if(n.options===t)return o(n.condition,n.options);try{return o(n.condition,n.options)}catch(i){if(i instanceof A||i instanceof Z)throw i;try{o(e,n.options);}catch{throw i}throw new A(`${r}: the lens's grants on this rule have no ${r} form \u2014 ${i.message}`,"unsupported_target")}},dR=(e,t,r)=>{if(t?.lens===void 0)return {condition:e,options:t};let{lens:o}=t;if(t.map!==void 0||t.mapName!==void 0||t.model!==void 0)throw new Z(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Do(e,o);if(!n.ok)throw new Error(`${r}: the rule leaves the lens \u2014 ${n.errors.map(s=>`${s.path}: ${s.message}`).join("; ")}`);let i=Ue(o);return {condition:Lo(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var Yi=(e,t,r,o)=>{if(!cf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=ie(e.caseInsensitive),i=Nr(r,o?.enums),{values:s,hasNull:a}=vt(rt.includes(e.operator)?[t]:t);if(!n&&(!i||s.every(d=>typeof d=="string"&&i.includes(d))))return null;if(!i)throw new Error(`'${e.field}' is an enum: a case-insensitive comparison reads its declared values, which the map doesn't list.`);let l=d=>n?d.toLowerCase():d,p=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),f=i.filter(d=>p.has(l(d)));return W.includes(e.operator)?{values:i.filter(d=>!f.includes(d)),matchesNull:!a}:{values:f,matchesNull:a}};var ee=e=>`"${e.replace(/"/g,'""')}"`;var fe=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),ia=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${ee(t)}.${ee(o)}`:ee(o);if(n.length===0)return i;let s=n.map(sa),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},sa=e=>`'${e.replace(/'/g,"''")}'`;var uR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],Xi,cR=()=>{if(Xi!==void 0)return Xi;for(let e of mR())for(let t of uR)try{let r=e(t);if(r.AnyNull!==void 0)return Xi=r.AnyNull,Xi}catch{}},mR=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));}catch{}return typeof us=="function"&&e.push(us),e},eu=()=>{let e=hr.get("prismaOptions.anyNull")??cR();if(e===void 0)throw new Error("A null check on a Json field needs Prisma's AnyNull, and @prisma/client isn't installed: engineGlobals.set('prismaOptions.anyNull', Prisma.AnyNull).");return e};var tu=(e,t)=>{let r=xr(lt(t));return r===null?null:Or(e,r)},ru=(e,t,r)=>{if(e===null)return null;let o=Eo(lt(t)),n=o&&Rr(o[0],an);return !o||!n?null:zt(st__default.default(e),n,o[1],No(r).timeZone).toDate()};var la=(e,t)=>ve(e,t?.map,t?.model),ct=e=>e==="json"||e==="json-path",ar=e=>ct(e)?eu():null,Dr=(e,t)=>t?.map&&t?.model?nd(e,t.map,t.model).map(r=>_r(r,{is:null})):[],pa=(e,t)=>{let r=la(e,t);return [...ct(r)||r==="list"||J(e.field,t?.map,t?.model)?.isRequired===false?[Ge(e.field,{equals:ar(r)},t)]:[],...Dr(e.field,t)]},es=(e,t,r,o)=>{if(r.mode&&ct(o)&&Array.isArray(t))throw C("toPrisma",`A case-insensitive comparison of a Json value with the list ${JSON.stringify(t)}`);if(!r.mode||typeof t!="string")return {[e]:t,...r};if(!ct(o))return {[e]:fe(t),...r};if(/[%_\\"\u0000-\u001f]/.test(t))throw C("toPrisma",`A case-insensitive equality on Json against '${t}'`,"Prisma matches the JSON text, where %, _, a backslash, a quote or a control character doesn't read as itself");return {[e]:t,...r}},fa=(e,t,r,o)=>{let n=t?.datasource?.provider??hr.get("prismaOptions.datasource.provider");return ie(e.caseInsensitive)&&lf(n)&&rr(r,o)?{mode:"insensitive"}:{}},ou=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return ct(e)?[...r,{equals:[]}]:r},nu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},da=(e,t,r,o,n)=>{let i=a=>Ge(e,a,n),s=ou(t,o);return r?V([i({equals:ar(t)}),...Dr(e,n),...s.map(a=>i(a))]):pt([...t==="list"?[]:[i({not:ar(t)})],...s.map(a=>i(nu(a)))])},yR=(e,t)=>{if(!$r(e))throw So(e.field);let o=(n=>Ge(e.field,n,t))({is:{}});return me({...e,field:"relation"},{relation:null})===true?be(o):o},hR=(e,t)=>J(e.field,t?.map,t?.model),aa=Nt(),wR=(e,t,r)=>{if(t==="list"||ct(t)||hR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?Ge(o,{is:{}},r):aa},iu=(e,t)=>{let r=c=>Ge(e.field,c,t),o=la(e,t),n=()=>pa(e,t),i=Ci(e,t?.map,t?.model);if(o==="relation")return yR(e,t);let s=wR(e,o,t),a=s&&(s===aa?or():be(s)),l=c=>s&&a?me({field:"f",operator:c,value:null},{f:null})===true?a:s:null;if(s&&a&&$r(e)){let c=ou(o,i);return e.operator===y.isEmpty?V([a,...c.map(r)]):e.operator===y.notEmpty?pt([s,...c.map(h=>r(nu(h)))]):l(e.operator)}switch(e.operator){case y.exists:case y.notExists:{if(e.operator===y.exists)return o==="list"?be(r({equals:null})):r({not:ar(o)});let c=n();return c.length?V(c):r({equals:ar(o)})}case y.isEmpty:case y.notEmpty:return da(e.field,o,e.operator===y.isEmpty,i,t)}if(Ve(e)){let c=Fi(e,t?.map,t?.model,ud(t),cd(t));if("problem"in c)throw Di(e.path,c.problem);let h=r({[c.key]:c.ref}),w=(x,$)=>$.isRequired===false?Ge(x,{equals:null},t):null,S=(x,$)=>$.isRequired===false?Ge(x,{not:null},t):aa,R=w(e.field,c.field),b=w(c.columnPath,c.column);return e.operator===y.equals?R&&b?V([h,pt([R,b])]):h:e.operator===y.notEquals?V([be(h),...R?[pt([R,S(c.columnPath,c.column)])]:[],...b?[pt([S(e.field,c.field),b])]:[]]):h}let p=su(e,t);if(we(e,p))return V(W.includes(e.operator)?n():[]);if(p===null&&rt.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&Wt.includes(e.operator)&&Array.isArray(p))return oe(Ai(e,p),t);if(o==="list"&&Array.isArray(p)&&p.includes(null))throw C("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&ie(e.caseInsensitive)&&rr("text",p))throw C("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let f=o==="enum"?J(e.field,t?.map,t?.model):void 0,d=f?Yi(e,p,f,t?.map):null;if(d){let c=r({in:d.values});return d.matchesNull?V([c,...n()]):c}if(Wt.includes(e.operator)){let{values:c,hasNull:h}=vt(p),w=fa(e,t,o,c),S=ct(o)?e.operator===y.in?V(c.map(R=>r(es("equals",R,w,o)))):pt(c.map(R=>r(es("not",R,w,o)))):r({[e.operator]:c,...w});return e.operator===y.in?h?V([S,...n()]):S:h?pt([S,s??r({not:ar(o)})]):V([S,...n()])}let u=c=>{if(!ct(o)||c!==y.contains)return r(hn({...e,operator:c},t));let h=r({array_contains:[SR(e,p,t,o)]});return typeof p=="string"?V([r(hn({...e,operator:c},t)),h]):h};if(e.operator===y.contains)return u(y.contains);let m=bf.includes(e.operator)?Jo[e.operator]:yo.includes(e.operator)?y.between:void 0;if(m){if(ct(o))throw C("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return V([be(u(m)),...n()])}let g=r(hn(e,t));return e.operator===y.equals&&p===null?V([g,...Dr(e.field,t)]):e.operator===y.notEquals&&o==="list"?p===null?be(r({equals:null})):V([be(r({equals:p})),...n()]):e.operator===y.notEquals&&p!==null?V([g,...n()]):g},su=(e,t)=>{let r=Ui(e,lt(e),er(e.field,t?.map,t?.model),"toPrisma",()=>No(t).timeZone);return e.offset===void 0?r:tu(r,e.offset)},hn=(e,t)=>{let r=gi(e);if(r)throw r;let o=la(e,t),n=()=>su(e,t),i=p=>fa(e,t,o,p),s=p=>{let f=n();if(o==="list"){if(p!=="contains")throw new Error(`Operator '${p}' does not apply to the list '${e.field}'.`);return {has:f}}let d=ct(o)?bR[p]:p,u=typeof f=="string"?fe(f):f;return {[d]:u,...i(f)}},a=yi(e.operator,n());if(a)throw a;let l=Bt(e.operator,"field");if(l&&go.includes(e.operator))return {[l]:n()};switch(e.operator){case y.equals:{let p=n()??ar(o);return es("equals",p,i(p),o)}case y.notEquals:{let p=n()??ar(o);return es("not",p,i(p),o)}case y.in:case y.notIn:return {[e.operator]:n()};case y.contains:return s("contains");case y.startsWith:return s("startsWith");case y.endsWith:return s("endsWith");case y.matches:case y.notMatches:throw C("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case y.between:case y.notBetween:{let[p,f]=_e(Be(n(),e.operator));return {gte:p,lte:f}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},SR=(e,t,r,o)=>{if(typeof t=="object"&&t!==null)throw new Error(`Membership of an object or a list in the Json array '${e.field}' has no exact Prisma form; use toSql() or check().`);if(fa(e,r,o,t).mode)throw C("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},bR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},Ge=(e,t,r)=>{if(!r?.map||!r?.model)return _r(e,t);let o=ke(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw hi(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return _r(e,t);case "bridge":return Cr();case "past-scalar":throw wi(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return _r(a,s)}}};var au=(e,t,r)=>{if(Pe(e)){let o=vo(e);if(!o)throw nt("toPrisma");return oe(o,t,r)}if(!t?.map||!t?.model||!r)throw new Error("Aggregate rules require a FieldMap and model to generate a Prisma plan. Pass { map, model } options to toPrisma().");if(!tt.includes(e.aggregate.mode))throw Kt(e.aggregate.mode);if(!e.aggregate.field)throw new Error("Prisma aggregate rules require aggregate.field to specify the numeric field on the related model.");return RR(e,t,r)},RR=(e,t,r)=>{let o=Mo(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&tr(e.condition,t.map,o.target))return Cr();let n=e.aggregate.field??"",i=Se(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||$e(i))throw new Error(`aggregate.field '${n}' on model '${o.target}' must be a numeric scalar, got ${i.kind==="scalar"?"Json":`'${i.kind}'`}.`);let s=To(t)(e);if(s===null||we(s,s.value))return or();let a=on(s,[{}],void 0,{},{value:0})===true,l=a?Le(s):s,p=hn(l,t),f={[e.aggregate.mode==="sum"?"_sum":"_avg"]:p},d=yo.includes(l.operator)?be({[n]:f}):{[n]:f},u=e.condition?oe(e.condition,Mr({...t,model:o.target},t,true),r):Nt(),m=Ii(r,o,u,d,a);return a?V([m,...Dr(e.field,t)]):m};var pu=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=Mo(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw Ie(e.arrayOperator);if(e.count===void 0)throw wo(e.arrayOperator);let n=e.count;if(e.arrayOperator===P.atLeast&&n===0)return Nt();let i=oe(e.condition,Mr({...t,model:o.target},t,true),r),s=ua(e),a=s?lu(P.atLeast,e.arrayOperator===P.atMost?n+1:1,o.targetKey):lu(e.arrayOperator,n,o.targetKey);return Ii(r,o,i,a,s)},lu=(e,t,r)=>{let o=Bt(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var fu=(e,t,r)=>{let o=OR(e,t,r);return e.field&&ua(e)&&!du(e.field,t)?V([o,...Dr(e.field,t)]):o},ua=e=>me({...e,field:"items"},{items:[]})===true,OR=(e,t,r)=>{if(Pe(e)){let i=vo(e);if(!i)throw nt("toPrisma");return oe(i,t,r)}if(e.condition!==void 0&&!Sf.includes(e.arrayOperator)&&tr(e.condition,t?.map,uu(e,t)?.model))return Cr();if(Ut.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return pu(e,t,r);throw new Error(`ArrayOperator '${e.arrayOperator}' requires a FieldMap and model to generate a multi-step plan. Pass { map, model } options to toPrisma(). Without them, use prisma.$queryRaw for count-based relation filtering.`)}if(!e.field)throw ci("toPrisma");let{field:o}=e;if(du(o,t))return xR(e,o,ve({field:o},t?.map,t?.model),t);let n=ER(e,t,r);return Ge(e.field,n,t)},du=(e,t)=>{let r=ve({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},xR=(e,t,r,o)=>{switch(e.arrayOperator){case P.empty:case P.notEmpty:return da(t,r,e.arrayOperator===P.empty,false,o);default:throw C("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},uu=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Mr({...t});let r=nn(e.field,t.map,t.model);return Mr(r?{...t,model:r}:{...t})},ER=(e,t,r)=>{let o=uu(e,t);switch(e.arrayOperator){case P.all:if(!e.condition)throw Ie(e.arrayOperator);return {none:oe(Le(e.condition,To(o)),o,r)};case P.any:if(!e.condition)throw Ie(e.arrayOperator);return {some:oe(e.condition,o,r)};case P.none:if(!e.condition)throw Ie(e.arrayOperator);return {none:oe(e.condition,o,r)};case P.empty:return {none:{}};case P.notEmpty:return {some:{}};default:throw ne(e.arrayOperator,"array")}};var cu=(e,t)=>{let r=t?.map,o=ve({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw C("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=J(e.field,r,t?.model);if(n&&!D(n)&&At(n)!==z.DateTime)throw C("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=W.includes(e.dateOperator)?pa(e,t):[],s=PR(e,t);if(s===null)return V(i);let a=Ge(e.field,s,t),l=yo.includes(e.dateOperator)?be(a):a;return V([l,...i])},PR=(e,t)=>{let r=No(t),o=an,n=m=>e.offset===void 0?m:ru(m,e.offset,t),i=m=>{if(m==null)return null;if(!X(m))return $i(m,r.timeZone);let g=it(m,o);return g&&bo(g,e.dateOperator,r).toDate()},s=()=>lt(e),a=()=>n(i(s())),l=()=>{let m=s();if(m==null)return null;let g=Be(m,e.dateOperator).map(i);if(g[0]===null||g[1]===null)return null;let[c,h]=_e(g).map(n);return c&&h?[c,h]:null},p=()=>{let m=s();if(m==null)return null;if(!X(m))throw je(e.dateOperator);let g=it(m,o);if(!g)return null;let[c,h]=Ro(g,r);return [c.toDate(),h.toDate()]},f=m=>{let g=a();return g===null?null:{[m]:g}},d=m=>m?{gte:m[0],lte:m[1]}:null,u=Bt(e.dateOperator,"date");if(u)return f(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(p());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw C("toPrisma",`'${e.dateOperator}'`);default:throw ne(e.dateOperator,"date")}};var ca=(e,t,r)=>{if(typeof e=="boolean")return e?{}:or();ti(e,"toPrisma");let o=se(e);(o==="field"||o==="date")&&_i(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return wd(n,t,r);case "any":return Sd(n,t,r);case "if":return bd(n,t,r);case "array":return fu(n,t,r);case "aggregate":return au(n,t,r);case "date":return cu(n,t);case "field":return iu(n,t);default:throw ot()}};yd(ca);var gu=async(e,t)=>{let r=e.steps.filter(i=>i.operation==="groupBy"),o=e.steps.find(i=>i.operation==="where");if(!o)throw new Error("executePrismaPlan: result has no where step");let n=[];for(let i of r){let s=yu(t,i.model),a=mu(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(p=>p[i.extract]).filter(p=>p!=null));}return mu(o.where,o.refs,n,t)},yu=(e,t)=>{let r=t.charAt(0).toLowerCase()+t.slice(1),o=e[r];if(!o)throw new Error(`executePrismaPlan: no delegate for model '${t}'. Ensure prismaDelegate has a key '${r}'.`);return o},$R=(e,t)=>{let r=yu(e,t.model).fields,o=r&&Object.hasOwn(r,t.field)?r[t.field]:void 0;if(o===void 0)throw new Error(`executePrismaPlan: the '${t.model}' delegate has no field reference '${t.field}' (fields.${t.field}).`);return o},vR=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),ma=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=ma(i[o],n,r),s},mu=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=vR(e,i);if(s&&typeof s.__step=="number"){let a=s.__step;if(a>=r.length)throw new Error(`Step ref __step: ${a} out of range (${r.length} steps executed)`);n=ma(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=ma(n,i,$R(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var AR=e=>e?.map?{...e,map:Yt(e.map,e.mapName,"toPrisma")}:e,wn=(e,t)=>Zi(e,t,"toPrisma",NR),NR=(e,t)=>{let r={steps:[]},o=ca(e,AR(t),r),n=(i,s)=>{let a=pd(s);return a.length?{...i,refs:a}:i};return {steps:[...r.steps.map(i=>n(i,i.args)),n({operation:"where",where:o},o)]}};var ts=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let p=l.get(i);if(p===void 0){let[f]=_o(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;p=f?f.message:null,l.set(i,p);}if(p!==null)return new A(`${o}: ${p}`,"unsupported_grant")}if(n)return null;let s=false;for(let a of t)re(a,l=>{("aggregate"in l||Ut.includes(l.arrayOperator))&&(s=true);});return s?new A(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_grant"):null},rs=(e,t)=>{try{return t()}catch(r){throw r instanceof A||r instanceof Z?r:new A(`${e}: ${r.message}`,"unsupported_grant")}};var hu=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,lr=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=Te(n,i);return "outOfBounds"in s?null:hu(s.scope,s.path)};return re(e,(n,i)=>{if(Ee(n))return;for(let l of Jt(n))r(k(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Ce(n))return;let a=s??i[i.length-1];for(let l of Oo(n))r(hu(a,l));return [...i,a]},[""]),[...t]};var ga=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!ut(t,s))continue;let l=t.enumValuesByField.get(s),p=n(s)?.filter(d=>l===void 0||l.includes(d.value)),f=Io(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...p!==void 0&&{options:p},...f!==void 0&&{groupBy:f}};}return i},wu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=N(O(e.lens.maps,i),s),l=ga(e,r,t,a,m=>{let g=n.get(`${o}|${m}`),c=r.enumValuesByField.get(m);return g??O(a.fields,m)?.options??c?.map(h=>({value:h,label:h}))}),p={};for(let[m,g]of r.sources)ut(r,m)&&(p[m]=g);let f={};for(let[m,g]of r.sourceLabels)ut(r,m)&&Io(e,r,t,m,"label")&&(f[m]=g);let d={};for(let[m,g]of r.sourceGroupBys)ut(r,m)&&Io(e,r,t,m,"groupBy")&&(d[m]=g);let u={};for(let m of r.sourcesFromMapDefaults.keys()){if(!Ji(e,i,s,m))throw Qi(o,i,s,m);Object.hasOwn(p,m)&&(u[m]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:p,sourceLabels:f,sourceGroupBys:d,sourceFrom:u}},Su=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},bu=(e,t={})=>Sn(L(e),t),Sn=(e,t={})=>{let r=Su(t),o={};for(let{path:n,at:i,effect:s}of Lr(e))o[n]=wu(e,i,s,n,r);return o},Ru=(e,t,r={})=>ya(L(e),t,r),ya=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of Xt(e.lens.maps,o,t)){let a=F(e,s.at.mapName,s.at.modelName,s.at.relPath);if(!s.next||!a.relations.has(s.field))return null;o={...s.next,relPath:[...s.at.relPath,s.field]};}if(!N(O(e.lens.maps,o.mapName),o.modelName))return null;let n=F(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return wu(e,o,n,i,Su(r))};var Ou=(e,t,r,o,n,i,s,a)=>{let l=n.split("."),{hops:p}=Ae(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),f=p.filter((d,u)=>u<l.length-1);if(f.length<l.length-1){let d=l[f.length],u=f.at(-1)?.model??r;throw new A(`${i} '${n}': hop '${d}' is not a resolvable relation on '${u}' \u2014 cannot guard its join`,"invalid_source")}for(let d of f){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let m=F(e,d.map,d.model,d.relPath);if(d.isList&&m.whereClauses.length)throw new A(`${i} '${n}': cannot enforce the grant on to-many relation '${d.prefix}' in a dotted path`,"unsupported_grant");for(let g of m.whereClauses)a.push(Wi(g,d.prefix));}},TR=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Ou(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Ou(e,t,r,o,i,"label",a,s),s},bn=(e,t)=>{let r=pe(e,t);return r==null||typeof r=="object"?void 0:String(r)},os=(e,t)=>{let r=[];for(let o of t){let n=bn(e,o);if(n===void 0)return;r.push(n);}return r},ha=(e,t)=>JSON.stringify([e??null,t]),MR=(e,t,r,o)=>{let n=ha(o,t),i=e.get(n);i===void 0?e.set(n,{value:t,...r!==void 0?{label:r}:{},...o!==void 0?{groups:o}:{}}):r!==void 0&&(i.label===void 0||r<i.label)&&e.set(n,{...i,label:r});},ns=(e,t,r,o,n)=>{let i=pe(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||MR(e,String(a),s,n);},is=e=>[...e.values()].sort((t,r)=>{let o=(t.groups===void 0?0:1)-(r.groups===void 0?0:1);if(o!==0)return o;let n=t.groups??[],i=r.groups??[];for(let s=0;s<Math.max(n.length,i.length);s++){let a=(n[s]??"").localeCompare(i[s]??"","en",{numeric:true});if(a!==0)return a}return (t.label??t.value).localeCompare(r.label??r.value,"en",{numeric:true})||t.value.localeCompare(r.value,"en",{numeric:true})}),CR=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=Ae(e.lens.maps,n,t.join("."));if(!s)throw new A(`source at '${t.join(".")}': its path doesn't resolve on the field maps`,"not_in_lens");let a=[n,...i.map(f=>({mapName:f.map,modelName:f.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let p=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let f=l;f<t.length;f++){let d=R=>{p=R,r.set(t.slice(0,f+1).join("."),R);},u=a[f],m=F(e,u.mapName,u.modelName,t.slice(0,f)).whereClauses,g=p===null?m:[...m,p];if(g.length===0&&!o){d(null);continue}let c=O(e.lens.maps,u.mapName),h=c&&Se(c,u.modelName,t[f]);if(!h||h.kind==="bridge"||a[f+1].mapName!==u.mapName){if(g.length===0&&!o){d(null);continue}return {bridged:t.slice(0,f+1).join(".")}}let w=c?ji(c,u.modelName,t[f],h):null;if(!w&&g.length===0){d(null);continue}if(!w)throw new A(`source at '${t.join(".")}': '${t[f]}' on ${u.modelName} declares no inverse, so the grants above can't be carried down to it`,"unsupported_grant");let S=U(g);try{let R={field:w.field,operator:"exists"};d(w.entry.isList?{field:w.field,arrayOperator:"any",condition:S}:g.length?U([R,Wi(S,w.field)]):R);}catch(R){throw R instanceof A?new A(`source at '${t.join(".")}': the grants above can't be carried down to it \u2014 ${R.message}`,R.code):R}}return p===null?[]:[p]},xu=e=>pr(L(e)),pr=(e,t=Sn(e))=>{let r=new Map,o=n=>{let i=r.get(n)??new Map;return r.set(n,i),i};return Object.entries(t).flatMap(([n,i])=>Object.keys(i.sources).map(s=>{let a=O(i.sourceLabels,s),l=O(i.sourceGroupBys,s),p=Object.hasOwn(i.sourceFrom,s),f={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=F(e,f.mapName,f.modelName,f.relPath),u=(d.sourceWheres.get(s)??[]).map(_=>kr(_,e,f)),m=TR(e,f.mapName,f.modelName,f.relPath,l??[],a),g=O(i.fields,s)?.values,c=p?d.sourcesFromMapDefaults.get(s):void 0,h=c===void 0?void 0:e.chain[c],w=CR(h===void 0?e:{...e,skipGrantsOf:h},f.relPath,o(h),h===void 0&&!p),S=Array.isArray(w)?w:[],R=Array.isArray(w)?void 0:w.bridged,b=[...S,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],x=U([...i.whereClauses,...b]),$=U([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),j=e.lens.bridges?.length?Yt(e.lens,f.mapName,"toPrisma"):void 0,de=R??(j?[...lr(x),...a===void 0?[]:[a],...l??[]].find(_=>sn(_,j,f.modelName)):void 0),H=ts(e,[...i.whereClauses,...b],f,`source '${s}' at '${n}'`,true);if(H)throw H;return {path:n,visit:i,field:s,...p&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:x,rowWhere:$,...de!==void 0&&{bridged:de}}}))};var ba=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=Ar(o,n,()=>({}));}return e},ss=(e,t)=>{for(let[r,o]of Object.entries(t))ss(Ar(e,r,()=>({})),o);return e},Ra=e=>e.whereClauses.flatMap(lr),Eu=e=>{let t=new Map;for(let r of e){if(r.from||r.bridged!==void 0)continue;let o=r.path.split(".").slice(1).join(".");t.set(o,[...t.get(o)??[],r.field,...r.label===void 0?[]:[r.label],...r.groupBy??[],...lr(r.rowWhere)]);}return t},Pu=(e,t)=>e.get(t.relPath.join("."))??[],_R=(e,t,r)=>ba(ss({},r??{}),Ra(F(e,t.mapName,t.modelName,t.relPath))),$u=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Oa=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),kR=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=U(r.whereClauses),i=ts(e,r.whereClauses,t,`toLensSelect: the grant on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=rs(`toLensSelect: the grant on '${t.relPath.join(".")}'`,()=>wn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},LR=(e,t,r,o)=>{let n=N(e,o.type)?.fields??{},i=a=>{let l=a===void 0?void 0:O(n,a);return l&&!D(l)?a:void 0},s=e?ji(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},vu=(e,t,r,o,n,i)=>{let s=N(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=F(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:ba(ss({},o),[...Ra(a),...Pu(i,t)]),p={};for(let[f,d]of Object.entries(s)){let u=r!=="paths"&&ut(a,f),m=O(l,f);if(!u&&m===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){p[f]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&m===void 0)continue;let c=Oa(t,f,{mapName:t.mapName,modelName:d.type}),h=vu(e,c,g,m??{},n,i),w=d.isList&&g!=="paths"&&m===void 0?kR(e,c,F(e,c.mapName,c.modelName,c.relPath),n):void 0,S=Object.keys(h).length?void 0:LR(O(e.lens.maps,t.mapName),t.modelName,f,d),R=S===void 0?h:{[S]:true};Object.keys(R).length&&(p[f]={select:R,...w&&{where:w}});}return p},Au=(e,t={})=>xa(L(e),t),xa=(e,t={},r=pr(e))=>{let o=vu(e,$u(e),"declared",{},t,Eu(r));if(!Object.values(o).some(n=>n===true)){let n=O(N(O(e.lens.maps,e.lens.mapName),e.lens.model)?.fields,"id");n&&!D(n)&&(o.id=true);}return {select:o}},wa=(e,t)=>e==null?e:Array.isArray(e)?e.flatMap(r=>{let o=typeof r=="object"&&r!==null?t(r):null;return o===null?[]:[o]}):typeof e=="object"?t(e):null,Sa=(e,t,r,o)=>{let n={},i=N(O(e.lens.maps,t.mapName),t.modelName);for(let[s,a]of Object.entries(o)){if(!Object.hasOwn(r,s))continue;let l=O(i?.fields,s),p=l?We(l,t.mapName):null;n[s]=p?wa(r[s],f=>Sa(e,Oa(t,s,p),f,a)):r[s];}return n},Nu=(e,t,r,o,n,i,s)=>{let a=F(e,t.mapName,t.modelName,t.relPath);if(!a.whereClauses.every(d=>me(d,r,i)===true))return null;let l=N(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},p=n?ba(ss({},o),[...Ra(a),...Pu(s,t)]):{},f={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(p,d),g=We(u,t.mapName);if(!g){(ut(a,d)||m!==void 0)&&(f[d]=r[d]);continue}let c=Oa(t,d,g);if(ut(a,d)){let h=!Array.isArray(r[d])||m!==void 0;f[d]=wa(r[d],w=>Nu(e,c,w,m??{},n,i,s)??(n&&h?Sa(e,c,w,_R(e,c,m)):null));}else m!==void 0&&(f[d]=wa(r[d],h=>Sa(e,c,h,m)));}return f},Tu=(e,t,{keepGrantColumns:r=false,...o}={})=>{let n=L(e),i=$u(n),s=r?Eu(pr(n)):new Map;return t.flatMap(a=>{let l=Nu(n,i,a,{},r,o,s);return l===null?[]:[l]})};var Mu=(e,t,r={})=>{let o=r.rowShape??"prisma",n=new Map;for(let i of t){let s=o==="sql";ns(n,i,e.field,e.label===void 0?void 0:s&&e.label.includes(".")?i.__label:bn(i,e.label),e.groupBy===void 0?void 0:os(i,s?e.groupBy.map((a,l)=>`__group_${l}`):e.groupBy));}return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:is(n)}};var Ea=(e,t)=>new Z(`materializeSources needs fetched or keepGrantColumns rows, not viewer rows: a row at '${e}' ${t}${t.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),Pa=(e,t,r,o,n)=>{for(let i of n){let s=[r];for(let{index:a,field:l,entry:p,next:f}of Xt(e.lens.maps,t,i)){if(!p)break;let d=i.split(".").slice(0,a+1).join("."),u=[];for(let m of s){if(m===null||typeof m!="object")continue;if(!Object.hasOwn(m,l))throw Ea(o,`lacks '${d}', which a read needs`);let g=m[l];if(f&&g==null&&p.fromFields?.some(c=>{let h=m[c];return h!=null}))throw Ea(o,`'${d}' is null while its key is set \u2014 a projection hid the row`);if(!(!f||g===null||g===void 0)){if(Array.isArray(g)!==(p.isList===true))throw Ea(o,`'${d}' holds ${Array.isArray(g)?"a list where it names one row":"one row where it names a list"}`);u.push(...Array.isArray(g)?g:[g]);}}if(!f)break;s=u;}}},FR=(e,t,r,o)=>{let n=r.split(".").slice(1),i={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},s=[i,...Ae(e.lens.maps,i,n.join(".")).hops.map(p=>({mapName:p.map,modelName:p.model,relPath:p.relPath}))],a=(p,f)=>{let d=s[p],u=F(e,d.mapName,d.modelName,d.relPath).whereClauses,m=U(u),g=u.flatMap(lr),c=[e.lens.model,...n.slice(0,p)].join(".");return f.filter(h=>(Pa(e,d,h,c,g),me(m,h,o)===true))},l=a(0,t);for(let[p,f]of n.entries()){let d=[],u=[e.lens.model,...n.slice(0,p)].join(".");for(let m of l){Pa(e,s[p],m,u,[f]);let g=pe(m,f);Array.isArray(g)?d.push(...g):g!=null&&d.push(g);}l=a(p+1,d);}return {rows:l,visit:s[s.length-1]}},Cu=(e,t,r)=>{let o=L(e);return pr(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:p,rowWhere:f,bridged:d})=>{if(a&&d===void 0)throw new Z(`materializeSources: '${n}.${s}' offers its model's own source, which a fetched collection can't hold \u2014 query it with toSourceQueries and materializeSourceQuery.`);let u=[s,...lr(f),...l===void 0?[]:[l],...p??[]],m=new Map,g=FR(o,t,n,r);for(let c of g.rows)Pa(o,g.visit,c,n,u),me(f,c,r)===true&&ns(m,c,s,l===void 0?void 0:bn(c,l),p===void 0?void 0:os(c,p));return {path:n,mapName:i.mapName,model:i.model,field:s,options:is(m)}})};var DR=(e,t)=>`${e}::${t}`,jR=(e,t,r)=>{let o=e.get(t);if(!o){e.set(t,r.values?{...r,values:[...r.values]}:r);return}let n=o;if(r.values&&o.values){let i=new Set([...o.values,...r.values]);n={...n,values:[...i]};}else !r.values&&o.values&&(n={...n,values:void 0});r.groupBy!==void 0&&n.groupBy===void 0&&(n={...n,groupBy:r.groupBy}),n!==o&&e.set(t,n);},_u=(e,t={})=>$a(L(e),t),$a=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let p=`${l.mapName}::${l.model}::${l.field}`,f=o.get(p)??new Map;for(let d of l.options)f.set(ha(d.groups,d.value),d);o.set(p,f);}let n=new Map;for(let{at:l,effect:p}of Lr(e)){let{mapName:f,modelName:d}=l,u=N(O(r.maps,f),d);if(!u)continue;let m=DR(f,d),g=n.get(m);g||(g={mapName:f,modelName:d,fields:new Map},n.set(m,g));let c=ga(e,p,l,u,h=>{let w=o.get(`${f}::${d}::${h}`);return w&&[...w.values()]});for(let[h,w]of Object.entries(c)){let S=w.groupBy,R=g.fields.get(h)?.groupBy;if(S!==void 0&&R!==void 0&&JSON.stringify(R)!==JSON.stringify(S))throw new A(`projectLens: '${d}.${h}' is grouped by different axes on different paths ([${R}] vs [${S}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");jR(g.fields,h,w);}}let i={};for(let{mapName:l,modelName:p,fields:f}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},m=new Map;for(let[g,c]of f)if(u[g]=c.options===void 0&&c.values?{...c,options:c.values.map(h=>({value:h,label:h}))}:c,c.kind==="enum"&&c.values){let h=m.get(c.type)??new Set;for(let w of c.values)h.add(w);m.set(c.type,h);}d.models[p]={...N(O(r.maps,l),p),fields:u};for(let[g,c]of m)d.enums??={},d.enums[g]=[...c];}let s=r.bridges?.filter(l=>{let[p,f]=l.endpoints,d=Se(O(i,p.fieldMap),p.model,qe(f)),u=Se(O(i,f.fieldMap),f.model,qe(p));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var ku=(e,t,r,o,n)=>{if(e===void 0)return;let i=ko(e),s=o==="root.where"?null:i.bare;if(s!==null){n.push({path:o,code:"invalid_value_source",message:Zs(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:Ys(a).message});return}let l=new Set,p={...t,grant:t.chain.length===0};for(let{mapName:f,modelName:d,relPath:u}of r)for(let m of dn(e,p,f,d,u)){let g=`'${m.path}' ${m.message}`;l.has(g)||(l.add(g),n.push({path:o,code:m.code,message:g}));}},IR=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let p=F(s,l.mapName,l.modelName,l.relPath);for(let[f,d]of Object.entries(e.sources??{})){let u=yn(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${f}|${m}`))continue;let g=m==="label"?u.label:mn(u.groupBy),c=m==="label"?p.sourceLabels.get(f):p.sourceGroupBys.get(f);if(JSON.stringify(g)!==JSON.stringify(c))continue;let w=(typeof c=="string"?[c]:c??[]).map(S=>ea(s,l,S)).find(S=>S!==null);if(w){a.add(`${f}|${m}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${m} '${String(u[m])}' crosses '${w}', a relation the lens does not show there (not turned on, or omitted)`});continue}Io(s,p,l,f,m)||(a.add(`${f}|${m}`),i.push({path:`${n}.sources.${f}`,code:"invalid_source",message:`${m} '${String(u[m])}' reads a column hidden by another layer`}));}}}},Lu=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=Ae(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},p=i[s.length],f=Se(O(t,l.map),l.model,p);return f?D(f)?`${n} relation '${p}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${p}' is not a relation`:`${n} segment '${p}' not on model '${l.model}'`},VR=(e,t,r,o)=>{for(let n of r){if(!t&&n.picks&&!n.picks.includes(e))return "not in ancestor's picks";if(n.omits?.includes(e))return "was omitted by ancestor"}return !t&&o?.picks&&!o.picks.includes(e)?"not visible from defaults.picks":o?.omits?.includes(e)?"already excluded by defaults":null},BR=(e,t,r,o,n,i,s,a,l,p,f,d,u=false)=>{let m=e.omits?.some(c=>{let h=O(i,c);return h===void 0||!D(h)});e.picks&&m&&p.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let c of ["picks","omits"])for(let h of e[c]??[]){let w=O(i,h);if(!w){p.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});continue}let S=D(w);if(S&&c==="picks"){p.push({path:`${l}.picks`,code:"wrong_kind",message:`'${h}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let R=VR(h,S,t,r);R&&p.push({path:`${l}.${c}`,code:"not_visible",message:`'${h}' ${R}`});}let g=(c,h,w)=>{let S=O(i,h);if(!S){p.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});return}if(S.kind!=="enum"){p.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${h}' is not an enum field`});return}let R=Nr(S,a);for(let b of w)R&&!R.includes(b)&&p.push({path:`${l}.${c}.${h}`,code:"value_not_allowed",message:`'${b}' is not a known value of enum '${S.type}'`});};for(let[c,h]of Object.entries(e.enumPicks??{}))g("enumPicks",c,h);for(let[c,h]of Object.entries(e.enumOmits??{}))g("enumOmits",c,h);ku(e.where,f,d,`${l}.where`,p);for(let[c,h]of Object.entries(e.sources??{})){let w=O(i,c);if(!w){p.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${c}' not on model`});continue}if(D(w)){p.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`'${c}' is a relation: a source offers a column's values`});continue}let S;try{S=yn(h);}catch($){if(!($ instanceof A))throw $;p.push({path:`${l}.sources.${c}`,code:$.code,message:$.message});continue}let R=S.from;if(R!==void 0){let $=R!=="mapDefaults"?`from takes 'mapDefaults', not '${String(R)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":S.label!==void 0||S.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;$&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:$});}let b=S.label?.includes(".")?S.label:void 0;if(S.label!==void 0)if(b){let $=Lu(b,o,n,s,"label");$&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${$}`});}else {let $=O(i,S.label);$?D($)&&p.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${S.label}' is a relation, not a column`}):p.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${S.label}' not on model`});}let x=mn(S.groupBy);if(x!==void 0||b!==void 0){let $=/^__(group(_\d+)?|label)$/;($.test(c)||S.label!==void 0&&$.test(S.label))&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if(x!==void 0){for(let j of x){let de=Lu(j,o,n,s,"groupBy");de&&p.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${de}`});}let $=JSON.stringify(x);for(let j of t){let de=O(j.sources,c);if(de===void 0)continue;let H=mn(yn(de).groupBy);H!==void 0&&JSON.stringify(H)!==$&&p.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${x}] conflicts with an ancestor layer's groupBy [${H}]`});}}ku(S.where,f,d,`${l}.sources.${c}`,p);}},qR=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,p=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=Hi(l,u.picks)),u.omits))for(let m of u.omits)p.add(m);}let f=d=>!(p.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?f(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?f(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},WR=(e,t,r,o,n,i,s)=>{let a=F(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[p,f]of Object.entries(e[l]??{})){let d=O(o,p);if(d?.kind!=="enum")continue;let u=Nr(d,n)??[],m=Ki(a,p)??u;for(let g of f)u.includes(g)&&!m.includes(g)&&s.push({path:`${i}.${l}.${p}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},Fu=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),va=(e,t,r,o,n,i,s,a,l,p,f)=>{let d=O(n,i),u=N(d,s);if(!u)return;let m=o.length===0,g={...p,chain:[...p.chain,r],unvetted:true},c=f.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),w=[...o.map(b=>O(O(b.mapDefaults,i)?.models,s)).filter(b=>b!==void 0),...t],S={mapName:i,modelName:s,relPath:Qs};BR(e,w,c,n,i,u.fields,s,d?.enums,a,l,p,m?f.isDefault?[S,...f.parent]:f.parent:f.composed,f.isDefault),WR(e,f.isDefault?p:{...p,chain:[...p.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},f.isDefault?S:f.parent[0]??S,u.fields,d?.enums,a,l),IR(e,r,p,f.composed,a,l);let R={...p,chain:[...p.chain,r]};if(!f.isDefault)for(let[b,x]of Object.entries(e.sources??{}))!gn(x)||x.from!=="mapDefaults"||Ji(R,i,s,b)||l.push({path:`${a}.sources.${b}`,code:"invalid_source",message:Qi([Ue(r).model,...f.parent[0]?.relPath??[]].join("."),i,s,b).message});for(let[b,x]of Object.entries(e.relations??{})){let $=O(u.fields,b);if(!$){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${b}' not on model`});continue}if(!D($)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${b}' is not a relation (kind=${$.kind})`});continue}let j=B=>F(p,B.mapName,B.modelName,B.relPath).relations.has(b),de=B=>F(g,B.mapName,B.modelName,B.relPath).relations.has(b);if(!m&&!(f.isDefault?f.parent.some(j):f.parent.every(j))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${b}' is not shown by the parent${f.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let H=We($,i);if(!H)continue;if(!N(O(n,H.mapName),H.modelName)){l.push({path:`${a}.relations.${b}`,code:"not_in_lens",message:"target model not found in lens"});continue}let _=t.map(B=>O(B.relations,b)).filter(B=>B!==void 0);va(x,_,r,o,n,H.mapName,H.modelName,`${a}.relations.${b}`,l,p,{parent:Fu(f.isDefault?f.parent.filter(j):f.parent,b,H.modelName,H.mapName),composed:Fu(f.composed.filter(de),b,H.modelName,H.mapName),isDefault:f.isDefault});}},Aa=e=>{let t=[];try{UR(e,t);}catch(r){if(!(r instanceof A))throw r;t.some(o=>o.code===r.code)||t.push({path:"",code:r.code,message:r.message});}return ir(t)},UR=(e,t)=>{let r=Ue(e),o=ft(e.parent),n=L(e.parent),i=Lr(n),s=[],a=u=>{try{u();}catch(m){if(!(m instanceof A))throw m;s.push(m);}},l=null,p=()=>(l??=Lr({...n,chain:[...n.chain,e],unvetted:true}),l);for(let[u,m]of Object.entries(e.mapDefaults??{})){let g=O(r.maps,u);if(!g){t.push({path:`mapDefaults.${u}`,code:"not_in_lens",message:"not in lens"});continue}let c=o.map(h=>O(h.mapDefaults,u)?.enums).filter(h=>h!==void 0);for(let[h,w]of Object.entries(m.models??{})){if(!N(g,h)){t.push({path:`mapDefaults.${u}.models.${h}`,code:"not_in_lens",message:"not in fieldMap"});continue}let R=o.map($=>O(O($.mapDefaults,u)?.models,h)).filter($=>$!==void 0),b=$=>$.map(({at:j})=>j).filter(j=>j.mapName===u&&j.modelName===h),x=[];a(()=>{x=b(p());}),a(()=>va(w,R,e,o,r.maps,u,h,`mapDefaults.${u}.models.${h}`,t,n,{parent:b(i),composed:x,isDefault:!0}));}m.enums&&qR(u,m.enums,g.enums,c,t);}if(e.root){let u=r.mapName,m=r.model,g=O(r.maps,u);if(!g)t.push({path:"root",code:"not_in_lens",message:`lens map '${u}' not in lens`});else if(!N(g,m))t.push({path:"root",code:"not_in_lens",message:`lens model '${m}' not in fieldMap`});else {let c=o.map(w=>w.root).filter(w=>w!==void 0),h={mapName:u,modelName:m,relPath:[]};a(()=>va(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[h],composed:[h],isDefault:!1}));}}for(let u of Jd(e))t.push({path:"bindings",code:"invalid_binding",message:u});let f={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=pr(f,Sn(f));}),a(()=>$a(f)),a(()=>xa(f,{},d)),a(()=>{let u=new Map;for(let{at:m}of p()){u.set(m.relPath.join("."),m),a(()=>ya(f,m.relPath.join(".")));let g=m.relPath.at(-1),c=u.get(m.relPath.slice(0,-1).join("."));if(g===void 0||!c)continue;let w=Se(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>kr(w,f,c));}});for(let u of s)t.some(m=>u.message.includes(m.message))||t.push({path:"",code:u.code,message:u.message});},as=e=>pn(Aa(e),"validateNarrowing");function Du(e,{by:t="path",...r}={}){return t==="model"?_u(e,r):bu(e,r)}var ju=(e,t,r,o={})=>{let n=L(e),{resolution:i}=Fr(n,dt(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(D(a.entry))return {ok:false,reason:"relation"};if(s.some(d=>d!==a&&d.entry.isList))return {ok:false,reason:"list"};let p=(d,u)=>u!==null&&typeof u=="object"&&F(n,d.mapName,d.model,d.relPath).whereClauses.every(m=>me(m,u,o)===true),f=p(s[0],t)?t:null;for(let[d,u]of s.entries()){if(f===null||typeof f!="object")return {ok:true,value:null};let m=O(f,u.field);if(u===a)return {ok:true,value:l.length?pe(m,l.join(".")):m};f=p(s[d+1],m)?m:null;}return {ok:true,value:null}};var GR=e=>"maps"in e,Iu=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:p,...f}=a;if(p.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${p.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(GR(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=f;continue}let u={parent:n,...f};as(u),n=u;}return n},Vu=(e,t)=>{let r=sr(e)?[]:ft(e);if(t.length!==r.length+1)throw new Error(`storeLens: the lens has ${r.length+1} layers, base included, but ${t.length} ids`);return [{...Ue(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var Bu=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(Bu):e,M=(e,t)=>(e.params.push(Bu(t)),`$${++e.paramIndex}`);var Mt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:ia(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=ke(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw wi(e,n.column);if(n.kind==="bridge")throw new Error(`'${e}' crosses a bridge to another source; toSql() has no column for it`);if(n.kind==="fallback"||n.entry.kind==="object"&&n.entry.isList)return o();let i=n.hops.find(f=>f.entry.isList);if(i)throw hi(e,i);let s=t.currentAlias;for(let f of n.hops){let d=qu(t,s,f);if(!d)return o();s=d;}let a=Mi(n);if(n.kind==="direct"&&n.entry.kind==="object"){let f={field:n.column,entry:n.entry,from:n.model},d=ln(t.map,n.model,n.entry),u=qu(t,s,f);return !d||!u?o():{sql:`${ee(u)}.${ee(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],p=ia(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${p}, 'null'::jsonb)`:p,shape:a}},mt=(e,t,r)=>Mt(e,t,r).sql,qu=(e,t,r)=>{let o=`${t}.${r.field}`,n=e.joinRegistry?.get(o);if(n)return n;if(!e.joinCounter||!e.map)return null;let i=`t${e.joinCounter.n+1}`,s=KR(e.map,r.from,t,r.entry,i);return s?(e.joinCounter.n+=1,e.joins?.push(s),e.joinRegistry?.set(o,i),i):null},KR=(e,t,r,o,n)=>{let i=o.type,s=N(e,i)?.dbName??i,a=ln(e,t,o);if(!a)return null;let l=a.map(({here:p,there:f})=>`${ee(n)}.${ee(f)} = ${ee(r)}.${ee(p)}`).join(" AND ");return `LEFT JOIN ${ee(s)} AS ${ee(n)} ON ${l}`};var Ct={type:"value",value:null},_t=e=>e.type==="value"&&(e.value===null||e.value===void 0),zR=(e,t)=>{let r=k(e)??{depth:1,path:e};if(r.depth>1)throw new Error(zo(e,"toSql"));let o=Mt(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}},ge=(e,t)=>Yo(e,{value:r=>({type:"value",value:r}),path:r=>zR(r,t),bind:(r,o)=>({type:"value",value:Oi(r,o,"toSql")})}),jr=e=>t=>{let r=ge(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Ke=e=>Er(e.dateConfig??{},jr(e));var HR={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},Vo=(e,t)=>{let r=Bt(e,t);return r?{symbol:HR[r],negated:W.includes(e)}:void 0},Wu=(e,t)=>e.type==="column"?e.sql:M(t,e.value),gt=(e,t)=>`(${t} OR ${e} IS NULL)`,fr=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",ls=(e,t,r,o,n)=>{if(_t(r))return fr(e,o);let i=`${e} ${t} ${Wu(r,n)}`;return o?gt(e,i):i},Rn=(e,t,r,o,n=true)=>{if(!t||t.some(_t))return fr(e,r,n);let[i,s]=t.map(d=>Wu(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let p=`${e} NOT BETWEEN ${l}${i} AND ${s}`,f=a?`(${p} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:p;return n?gt(e,f):f};var Uu=e=>Array.isArray(e)?e.some(Uu):typeof e=="object"&&e!==null,Gu=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=R=>`${M(o,JSON.stringify(R))}::jsonb`,l=ie(e.caseInsensitive),p=R=>l?`LOWER(${R})`:R,f=W.includes(e.operator),d=R=>gt(n,`NOT (${R})`);if(we(e,r))return fr(n,f);let u=yi(e.operator,r);if(u)throw u;let m=R=>{if(Uu(R))throw C("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(vr(R))},g=R=>l&&typeof R=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${M(o,R)}))`:l&&Array.isArray(R)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${m(R)})`:`${n} = ${a(R)}`,c=R=>`(${i} = 'string' AND ${p(s)} LIKE ${p(M(o,R))})`,h=R=>{let b=x=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${x}) ELSE FALSE END)`;return l&&typeof R=="string"?b(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${M(o,R)})`):l&&Array.isArray(R)?b(`LOWER(e::text)::jsonb = ${m(R)}`):typeof R=="object"&&R!==null?b(`e = ${a(R)}`):`(${i} = 'array' AND ${n} @> ${a([R])})`},w=R=>typeof R=="string"?`(${c(`%${fe(R)}%`)} OR ${h(R)})`:h(R);switch(e.operator){case y.equals:return r===null?`${n} IS NULL`:g(r);case y.notEquals:return r===null?`${n} IS NOT NULL`:d(g(r));case y.in:case y.notIn:{let{values:R,hasNull:b}=vt(r),x=R.length?`(${R.map(g).join(" OR ")})`:"FALSE";return e.operator===y.in?b?`(${x} OR ${n} IS NULL)`:x:b?`(NOT ${x} AND ${n} IS NOT NULL)`:d(x)}case y.between:case y.notBetween:{let[R,b]=r,x=`(${i} = jsonb_typeof(${a(R)}) AND ${n} BETWEEN ${a(R)} AND ${a(b)})`;return e.operator===y.between?x:d(x)}case y.contains:return w(r);case y.notContains:return d(w(r));case y.startsWith:return c(`${fe(String(r))}%`);case y.endsWith:return c(`%${fe(String(r))}`);case y.notStartsWith:return d(c(`${fe(String(r))}%`));case y.notEndsWith:return d(c(`%${fe(String(r))}`));case y.matches:case y.notMatches:{let{source:R,caseInsensitive:b}=Zt(r),x=`(${i} = 'string' AND ${s} ~${b?"*":""} ${M(o,rn(R))})`;return e.operator===y.matches?x:d(x)}}let S=Vo(e.operator,"field")?.symbol;if(S)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${S} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var Ku=e=>typeof e=="object"&&br(e)!==null,On=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=M(r,Ke(r).timeZone);return `(CASE WHEN btrim(${e}) ~ '^-?[0-9]+(\\.[0-9]+)?$' THEN to_timestamp(btrim(${e})::numeric / 1000) WHEN ${e} ~* '[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]+)?)?\\s*(z|[+-][0-9]{2}(:?[0-9]{2})?)\\s*$' OR ${e} ~* '\\m(gmt|utc)\\M' THEN (${e})::timestamptz ELSE (${e})::timestamp AT TIME ZONE ${o} END)`},ps=e=>Object.values(e).some(Ku),QR=(e,t,r)=>{let o=wr(r),n=o?"int":"double precision";if(typeof e=="number"||!Ku(e)){let a=Fs(e,jr(t),r);return `${M(t,a)}::${n}`}let i=ge(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},ZR=(e,t)=>`make_interval(${vf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Gt[i].interval===o).map(i=>{let s=QR(e[i],t,i),{factor:a}=Gt[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,xn=(e,t,r,o)=>{let n=Ke(o).timeZone;if(e.type==="value"&&!ps(t)){let l=Rr(t,jr(o));return e.value===null||e.value===void 0||l===null?Ct:{type:"value",value:zt(st__default.default(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:On(e,o):`${M(o,e.value??null)}::timestamptz`,s=M(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${ZR(t,o)}) AT TIME ZONE ${s})`}};var Na=(e,t,r)=>{let o=ge(t,r);if(e.type==="value"&&o.type==="value"){let i=xr(o.value);return i===null?Ct:{type:"value",value:Or(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${M(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,xr)})`}},zu=(e,t,r)=>{if(_t(e))return Ct;let o=ge(t,r);if(o.type==="column")throw new Error(`A row path on a date offset ('${t.path}') is check-only; evaluate with check()`);let n=Eo(o.value);return n===null?Ct:xn(e,...n,r)};var Hu,Ju=e=>{Hu=e;},dr=(e,t)=>Hu(e,t);var ds=(e,t,r)=>{let o=gi(e);if(o)throw o;let n=r===void 0?Mt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!$r(e))throw So(e.field);let i=r===void 0,s=Ve(e)&&t.map&&t.currentModel?(k(e.path)??{path:e.path}).path:null;if(s!==null){let b=Ao(J(e.field,t.map,t.currentModel),J(s,t.map,t.currentModel),e.operator);if(b)throw C("toSql",`Comparing '${e.field}' with the column '${e.path}'`,b)}if(n.shape==="enum"&&!qt.includes(e.operator)){let b=Zu(e,t),x=J(e.field,t.map,t.currentModel),$=b!==fs&&x&&!we(e,b)?Yi(e,b,x,t.map):null;if($){let j=`${n.sql}::text = ANY(${M(t,$.values)})`;return $.matchesNull?gt(n.sql,j):j}}let a=n.shape==="enum"&&!qt.includes(e.operator)&&s===null?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!qt.includes(e.operator)){let b=Zu(e,t);if(b===fs)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return Gu(e,mt(e.field,t,{jsonb:true}),b,t)}let p=b=>{if(b.type==="column"&&!b.computed&&(b.shape==="json"||b.shape==="json-path"))throw C("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(Me.includes(e.operator)){let b=ec(e,t);return b?.forEach(p),Rn(a.sql,b,W.includes(e.operator),t,i)}let f=Yu(e,t);if(p(f),f.type==="column"&&xt(e.operator,"field")==="string"&&!Tr(n.shape)&&n.shape!=="list")throw C("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(f.type==="column"&&f.computed&&n.shape==="text"&&r===void 0)throw C("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let d=a.sql,u=Vo(e.operator,"field");if(u)return ls(d,u.symbol,f,false,t);if(f.type==="value"&&we(e,f.value))return fr(d,W.includes(e.operator),i);let m=f.type==="column"&&f.computed===true,g=ie(e.caseInsensitive)&&(f.type==="column"?!m&&Tr(n.shape)&&Tr(f.shape):rr(n.shape,f.value)),c=b=>g?`LOWER(${b})`:b,h=b=>g?vr(b):b;if(n.shape==="list"&&f.type==="column"&&et.includes(e.operator)){if(J(e.field,t.map,t.currentModel)?.type!=="String"||!Tr(f.shape))throw C("toSql",`'${e.operator}' on the list '${e.field}' with a member read per row ('${e.path}')`,"Postgres matches a member of the list's own type only");let b=ie(e.caseInsensitive)&&Tr(f.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${f.sql}))`:`array_position(${d}, ${f.sql}) IS NOT NULL`;return e.operator===y.contains?`(${f.sql} IS NOT NULL AND ${b})`:`(${d} IS NULL OR (${f.sql} IS NOT NULL AND NOT ${b}))`}if(n.shape==="list"&&f.type==="value"){let b=ie(e.caseInsensitive)&&rr("text",f.value);if(et.includes(e.operator)){let x=M(t,f.value),$=b?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${x}))`:`array_position(${d}, ${x}) IS NOT NULL`;return e.operator===y.contains?$:`NOT ${$}`}if(Wt.includes(e.operator)&&Array.isArray(f.value))return dr(Ai(e,f.value),t);if(YR(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(b&&rt.includes(e.operator)&&Array.isArray(f.value)){let x=M(t,vr(f.value)),$=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${x})`;return e.operator===y.equals?$:gt(d,`NOT ${$}`)}}let w=f.type==="value"?f.value:void 0,S=f.type==="column"?f.sql:void 0;if(S!==void 0&&(Wt.includes(e.operator)||["pattern","string"].includes(xt(e.operator,"field"))))throw C("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let R=b=>i?gt(d,b):b;switch(e.operator){case y.equals:return m?`${d} = ${S}`:S!==void 0?`${c(d)} IS NOT DISTINCT FROM ${c(S)}`:w===null?`${d} IS NULL`:`${c(d)} = ${c(M(t,w))}`;case y.notEquals:return m?R(`${d} <> ${S}`):S!==void 0?`${c(d)} IS DISTINCT FROM ${c(S)}`:w===null?`${d} IS NOT NULL`:R(`${c(d)} <> ${c(M(t,w))}`);case y.in:{let{values:b,hasNull:x}=vt(w);if(!b.length)return x?`${d} IS NULL`:"FALSE";let $=`${c(d)} = ANY(${M(t,h(b))})`;return x?R($):$}case y.notIn:{let{values:b,hasNull:x}=vt(w);if(!b.length)return x?`${d} IS NOT NULL`:"TRUE";let $=`${c(d)} <> ALL(${M(t,h(b))})`;return x?`(${$} AND ${d} IS NOT NULL)`:R($)}case y.contains:return `${c(d)} LIKE ${c(M(t,`%${fe(String(w))}%`))}`;case y.notContains:return R(`${c(d)} NOT LIKE ${c(M(t,`%${fe(String(w))}%`))}`);case y.startsWith:return `${c(d)} LIKE ${c(M(t,`${fe(String(w))}%`))}`;case y.endsWith:return `${c(d)} LIKE ${c(M(t,`%${fe(String(w))}`))}`;case y.notStartsWith:return R(`${c(d)} NOT LIKE ${c(M(t,`${fe(String(w))}%`))}`);case y.notEndsWith:return R(`${c(d)} NOT LIKE ${c(M(t,`%${fe(String(w))}`))}`);case y.matches:return Qu(d,w,false,t);case y.notMatches:return R(Qu(d,w,true,t));case y.isEmpty:case y.notEmpty:return Ta(e.field,n,e.operator===y.isEmpty,t,Ci(e,t.map,t.currentModel));case y.exists:return `${d} IS NOT NULL`;case y.notExists:return `${d} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},Yu=(e,t)=>{if(qt.includes(e.operator))return {type:"value",value:void 0};let r=Xu(e,ge(e,t),t);return e.offset===void 0?r:Na(r,e.offset,t)},Xu=(e,t,r)=>t.type==="column"?t:{type:"value",value:Ui(e,t.value,er(e.field,r.map,r.currentModel),"toSql",()=>Ke(r).timeZone)},ec=(e,t)=>{let r=Xu(e,ge(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=Be(o,e.operator);return n.some(i=>i!=null&&!ae(i))&&xo(o,e.operator),_e(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:Na(s,e.offset,t)})},Qu=(e,t,r,o)=>{if(typeof t!="string"&&!(t instanceof RegExp))throw new Error("matches requires a string or RegExp pattern");let{source:n,caseInsensitive:i}=Zt(t);return `${e} ${r?"!":""}~${i?"*":""} ${M(o,rn(n))}`},fs=Symbol("not known"),Zu=(e,t)=>{if(Me.includes(e.operator)){let o=ec(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):fs:null}let r=Yu(e,t);return r.type==="value"?r.value:fs},Ta=(e,t,r,o,n)=>{let{sql:i,shape:s}=t;if(s==="list")return r?`(${i} IS NULL OR cardinality(${i}) = 0)`:`cardinality(${i}) > 0`;if(s==="json"||s==="json-path"){let a=mt(e,o,{jsonb:true}),l=["'null'::jsonb",...n?[`'""'::jsonb`]:[],"'[]'::jsonb"].join(", ");return r?`(${a} IS NULL OR ${a} IN (${l}))`:`${a} NOT IN (${l})`}return n?r?`(${i} IS NULL OR ${i} = '')`:`(${i} IS NOT NULL AND ${i} <> '')`:r?`${i} IS NULL`:`${i} IS NOT NULL`},YR=e=>xt(e,"field")==="string"&&!et.includes(e);var tc=(e,t)=>{if(Pe(e))throw nt("toSql");if(e.condition)throw new Error("Aggregate condition filtering is not yet supported by toSql(). Use check() for in-memory evaluation or toPrisma() for database queries.");let r=XR(e,t);return ds(e,t,r)},XR=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!tt.includes(r))throw Kt(r);let n=r==="sum"?"SUM":"AVG",i=ve({field:e.field},t.map,t.currentModel);if(i==="relation"||J(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 toSql() cannot aggregate relation lists. Use toPrisma() instead.`);if(o?.includes("."))throw new Error(`aggregate.field '${o}' contains a nested path \u2014 toSql() only supports flat field names. Use check() for nested paths.`);let s=i==="list",a=mt(e.field,t,{jsonb:!s}),l=s?a:`(CASE WHEN jsonb_typeof(${a}) = 'array' THEN ${a} END)`;if(s){if(o)throw new Error("aggregate.field is not supported for native array types. Use a JSONB column for object arrays.");return `(SELECT ${`COALESCE(${n}(elem), 0)`} FROM unnest(${l}) AS elem)`}if(o){let d=`(elem->>${sa(o)})::numeric`;return `(SELECT ${`COALESCE(${n}(${d}), 0)`} FROM jsonb_array_elements(${l}) AS elem)`}return `(SELECT ${`COALESCE(${n}(elem::numeric), 0)`} FROM jsonb_array_elements_text(${l}) AS elem)`};var rc=(e,t)=>{if(Pe(e))throw nt("toSql");if(!e.field)throw ci("toSql");if(ve({field:e.field},t.map,t.currentModel)==="relation"||J(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 relation arrays are not supported in SQL; use toPrisma().`);switch(e.arrayOperator){case P.empty:case P.notEmpty:{let o=Mt(e.field,t),n=e.arrayOperator===P.empty;if(o.shape==="list")return Ta(e.field,o,n,t,false);let i=mt(e.field,t,{jsonb:true});return `(CASE WHEN jsonb_typeof(${i}) = 'array' THEN jsonb_array_length(${i}) ${n?"=":">"} 0 ELSE ${n?"TRUE":"FALSE"} END)`}case P.all:case P.any:case P.none:case P.atLeast:case P.atMost:case P.exactly:throw new Error(`Array operator '${e.arrayOperator}' with conditions is not supported in SQL. Use application-level filtering for complex array operations.`);default:throw ne(e.arrayOperator,"array")}};var eO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:On(e,t),computed:true}:e,oc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",nc=e=>C("toSql",`A date rule on '${e}'`,"it is not a date column"),ic=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:On(e,r),ends:t.map(i=>eO(i,r))}:{lhs:e.sql,ends:t}},sc=(e,t)=>{let r=Mt(e.field,t);if(!oc(r.shape))throw nc(e.field);let o=ge(e,t);if(o.type==="column"&&!oc(o.shape))throw nc(String(e.path??e.field));let n=Vo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=ic(r,[rO(e,t)],t);return ls(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return Rn(r.sql,null,a,t);let{lhs:l,ends:p}=ic(r,s,t);return Rn(l,p,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(oO(e,t),W.includes(e.dateOperator));case v.between:case v.notBetween:return i(nO(e,t),W.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=ge(e,t);if(a.type==="column")throw C("toSql",`A weekday list read from the row ('${e.path}')`);let l=Ds(a.value);if(l===null)return fr(r.sql,s);let p=M(t,Ke(t).timeZone),f=M(t,l),d=`EXTRACT(DOW FROM (${On(r,t)} AT TIME ZONE ${p}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${f})`:gt(r.sql,`${d} <> ALL(${f})`)}default:throw ne(e.dateOperator,"date")}},ac=e=>({type:"value",value:Qo(Ke(e)).toDate()}),tO=(e,t,r)=>{let o=he(e);if(o&&ps(o[0]))return xn(ac(r),...o,r);let n=it(e,jr(r));return n===null?Ct:{type:"value",value:bo(n,t,Ke(r)).toDate()}},lc=(e,t,r)=>e==null?Ct:X(e)?tO(e,t,r):{type:"value",value:$i(e,Ke(r).timeZone)},pc=(e,t,r)=>t.offset===void 0?e:zu(e,t.offset,r),rO=(e,t)=>{let r=ge(e,t),o=r.type==="column"?r:lc(r.value,e.dateOperator,t);return pc(o,e,t)},oO=(e,t)=>{let r=ge(e,t);if(_t(r))return null;if(r.type==="column"||!X(r.value))throw je(e.dateOperator);let o=he(r.value);if(o&&ps(o[0])){let s=ac(t),a=xn(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=it(r.value,jr(t));if(n===null)return null;let i=Ro(n,Ke(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},nO=(e,t)=>{let r=ge(e,t);if(_t(r))return null;let o=r.type==="value"?r.value:void 0,n=Be(o,e.dateOperator).map(l=>lc(l,e.dateOperator,t));if(n.some(_t))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?_e([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>pc(l,e,t))};var fc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>dr(o,t)).join(" AND ")})`,dc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>dr(o,t)).join(" OR ")})`,uc=(e,t)=>{if(tr(e,t.map,t.currentModel))return "TRUE";let r=dr(e.if,t),o=dr(e.then,t);if(e.else!==void 0){let n=dr(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var En=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(ti(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&sn(e.field,t.map,t.currentModel))return "TRUE";let r=se(e);(r==="field"||r==="date")&&_i(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return fc(o,t);case "any":return dc(o,t);case "if":return uc(o,t);case "array":return rc(o,t);case "aggregate":return tc(o,t);case "date":return sc(o,t);case "field":return ds(o,t);default:throw ot()}};Ju(En);var Ma=e=>{let t=Yt(e?.map,e?.mapName,"toSql"),r=!!(t&&e?.model),o=e?.alias??(r?"t0":void 0);return {params:[],paramIndex:0,dateConfig:{now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},map:t,currentModel:e?.model,currentAlias:o,joinCounter:r?{n:0}:void 0,joins:r?[]:void 0,joinRegistry:r?new Map:void 0}},iO=(e,t)=>Zi(e,t,"toSql",sO),sO=(e,t)=>{let r=Ma(t);return {sql:En(e,r),params:r.params,joins:r.joins??[]}};var cc=(e,t)=>{let[r,...o]=t;if(o.length===0){e[r]=true;return}let n=e[r],i=n!==void 0&&n!==true?n.select:{};cc(i,o),e[r]={select:i};},aO=e=>{let t={};for(let r of e)cc(t,r.split("."));return t},lO=(e,t,r,o,n,i,s,a,l,p)=>{if(p!==void 0)return {prisma:null,sql:{sql:null,params:[],error:`source '${n}' at '${t}' reads '${p}' across a bridge: no database query holds both sides, and toLensSelect fetches no bridge \u2014 pass materializeSources the ${o} rows at '${t}', each holding the bridged side inline under its bridge field`}};let f=rs(`source '${n}' at '${t}'`,()=>wn(a,{...l,map:e,mapName:r,model:o})),d=f.steps.at(-1).where,u=f.steps.filter(S=>S.operation!=="where"),m=i?.includes(".")?i:void 0,g=[...s??[],...m?[m]:[]],c={[n]:true,...i&&!m?{[i]:true}:{},...g.length?aO(g):{}},h={model:o,...s||m?{}:{distinct:i?[n,i]:[n]},select:c,where:d,...u.length?{steps:f.steps}:{}},w;try{let S=Ma({...l,map:e,mapName:r,model:o,alias:"t0"}),R=En(a,S),b=m?mt(m,S):void 0,x=s?.map(Vr=>mt(Vr,S)),$=S.joins??[],j=$.length?` ${$.join(" ")}`:"",de=R?.trim()?` WHERE ${R}`:"",H=ee("t0"),_=[`${H}.${ee(n)}`,...b?[`${b} AS ${ee("__label")}`]:i?[`${H}.${ee(i)}`]:[],...x?x.map((Vr,ur)=>`${Vr} AS ${ee(`__group_${ur}`)}`):[]].join(", "),B=N(O(e.maps,r),o)?.dbName??o;w={sql:`SELECT DISTINCT ${_} FROM ${ee(B)} AS ${H}${j}${de}`,params:S.params};}catch(S){w={sql:null,params:[],error:S instanceof Error?S.message:String(S)};}return {prisma:h,sql:w}},mc=(e,t={})=>{let{lens:r}=L(e);return xu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,bridged:p})=>{let f=l,{prisma:d,sql:u}=lO(r,o,n.mapName,n.model,i,s,a,f,t,p);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:f,prisma:d,sql:u}})};var gc=(e,t)=>{let r=L(e);return Fr(r,dt(r),t).resolution};/*! Bundled license information:
3
+ `)}`)},Lo=(e,t={})=>{let r={target:t.target??"check",errors:[],map:je(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return _t(e,"$",r,1),lr(r.errors)},kb=(e,t={})=>{pn(Lo(e,t),"validateRule");},_t=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!ar(e)){P(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=pe(e);if(!n){P(r,t,"ambiguous_condition",st().message);return}switch(n){case "all":Ed(e.all,`${t}.all`,r,o);break;case "any":Ed(e.any,`${t}.any`,r,o);break;case "if":_t(e.if,`${t}.if`,r,o),_t(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&_t(e.else,`${t}.else`,r,o);break;case "field":_b(e,t,r,o);break;case "aggregate":Db(e,t,r,o);break;case "array":jb(e,t,r,o);break;case "date":Ib(e,t,r,o);break}},Ed=(e,t,r,o)=>{if(!Array.isArray(e)){P(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{_t(n,`${t}[${i}]`,r,o);});},qi=(e,t,r,o)=>{typeof e.field=="string"&&vd(e.field,"field",`${t}.field`,r,o);},vd=(e,t,r,o,n,i=false)=>{let s=L(e)??(t==="path"?{depth:n}:null);if(!s)return;let a=t==="field"?"Field":"Path";s.depth>n&&P(o,r,"scope_out_of_bounds",xs(e,s.depth,n)),o.target==="toPrisma"&&!i?P(o,r,`unsupported_prisma_${t}`,t==="path"?`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check()`:`${a} '${e}' is not supported by toPrisma()`):o.target==="toSql"&&(t==="field"||s.depth>1)&&P(o,r,`unsupported_sql_${t}`,`${a} '${e}' is not supported by toSql()`);},Bi=(e,t,r,o=false)=>{e.stepScopes[t]=o||e.stepScopes[t-1]===true;let n=e.scopeModels[t-1];e.scopeModels[t]=e.map&&n&&typeof r=="string"?sn(r,e.map,n)??void 0:void 0;},_o=(e,t,r,o,n=false)=>{let i=_f.filter(a=>e[a]!==void 0);if(i.length>1)return P(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(i.length===0)return P(r,t,"missing_value_source","Requires value, path or bind"),null;let[s]=i;return s!=="value"&&(typeof e[s]!="string"||e[s]==="")?(P(r,`${t}.${s}`,"invalid_value_source",`${s} is a non-empty string`),null):(e.bindOptional!==void 0&&(s!=="bind"||typeof e.bindOptional!="boolean")&&P(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),s==="path"&&vd(e.path,"path",`${t}.path`,r,o,n),s)},Ad=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!wf.includes(r)){P(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!ar(s)){P(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=_o(s,a,n,i);if(l==="path"){let d=s.path,u=xr(s);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&P(n,`${a}.path`,"unsupported_sql_path",`A row path on a date offset ('${d}') is not supported by toSql()`);return}if(l!=="value")return;let f=s.value;if(t==="field"){(typeof f!="number"||!Number.isFinite(f))&&P(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let p=ar(f)&&Object.keys(f).length===1&&te(f)?Oe(f):null;if(!p){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Md(p[0],`${a}.value.${Object.keys(f)[0]}`,n,i);},Nd=(e,t,r,o)=>{o.target!=="toSql"||!Le.includes(t)||xr(e)&&P(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},_b=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),qi(e,t,r,o),typeof e.operator!="string"||!Pt(e.operator,"field")){P(r,`${t}.operator`,"invalid_operator",se(e.operator,"field").message);return}let n=e.operator;Ad(e,"field",n,t,r,o),pi(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${Wi(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!li(e.coerceType)&&P(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(H).join(", ")}`);let i=vt(n,"field");if(i==="none"){Vb(e,t,r);return}if(_o(e,t,r,o,true)!==null){if(Nd(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Di(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",ji(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(L(e.path)??{path:e.path}).path,l=To(Q(e.field,r.map,s),Q(a,r.map,s),n);l&&P(r,`${t}.path`,"unsupported_sql_path",`'${e.path}': ${l}`);}r.target==="toSql"&&typeof e.path=="string"&&["array","pattern","string"].includes(i)&&((r.map?Q(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&ot.includes(n)||P(r,`${t}.path`,"unsupported_sql_path",`'${n}' against the column '${e.path}' has no SQL form`)),!(typeof e.path=="string"||typeof e.bind=="string")&&(Lb(e,n,t,r,o),Fb(i,e.value,n,`${t}.value`,r));}},Lb=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Q(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=le(e.caseInsensitive),l=Ht.includes(t)&&Array.isArray(s),f=p=>P(o,`${r}.value`,"unsupported_prisma_operator",_("toPrisma",p).message);i.isList&&!l&&Array.isArray(s)&&s.includes(null)?f(`A list holding null in '${e.field}'`):i.isList&&!l&&a&&ir("text",s)?f(`A case-insensitive comparison on the list '${e.field}'`):Me(i)&&a&&f(`A case-insensitive comparison on the Json column '${e.field}'`);},Fb=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&P(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":fe(t)||P(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||P(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){P(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=zf(t,n.target);i&&P(n,o,"unsupported_pattern",i);return}case "range":try{Po(t,r);}catch(i){P(n,o,"invalid_range_value",i.message);}return}},Td=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{ko(e.field,r.map,i,n);}catch(s){P(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},Db=(e,t,r,o)=>{if(Td(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Cd(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),qi(e,t,r,o),!ar(e.aggregate)){P(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(nt.includes(n.mode)||P(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Zt(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&P(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!fi.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${fi.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&P(r,`${t}.path`,"unsupported_prisma_aggregate_path","path is not supported by toPrisma() for aggregate rules; use value instead"),"condition"in e&&e.condition!==void 0&&(r.target==="toSql"&&P(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),Bi(r,o,e.field,true),_t(e.condition,`${t}.condition`,r,o+1)),_o(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;Le.includes(e.operator)?Bb(i)||P(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&P(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},jb=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&P(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),qi(e,t,r,o),Cd(e,t,r,o),typeof e.arrayOperator!="string"||!Pt(e.arrayOperator,"array")){P(r,`${t}.arrayOperator`,"invalid_array_operator",se(e.arrayOperator,"array").message);return}let n=e.arrayOperator;Jt.includes(n)&&Td(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Q(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!D(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",_("toPrisma",`'${n}' over the array column '${e.field}'`).message),pi(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${Wi(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let s=vt(n,"array"),a=e.condition!==void 0,l=()=>{e.count!==void 0&&P(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};s==="none"?(a&&P(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),l()):s==="predicate"?(a?(Bi(r,o,e.field),_t(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",We(n).message),l()):s==="count"&&(r.target!=="toPrisma"&&typeof e.count!="number"?P(r,`${t}.count`,"missing_count",bo(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&P(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),a?(Bi(r,o,e.field,true),_t(e.condition,`${t}.condition`,r,o+1)):r.target==="check"&&P(r,`${t}.condition`,"missing_condition",We(n).message));},Ib=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),qi(e,t,r,o),typeof e.dateOperator!="string"||!Pt(e.dateOperator,"date")){P(r,`${t}.dateOperator`,"invalid_date_operator",se(e.dateOperator,"date").message);return}let n=e.dateOperator;Ad(e,"date",n,t,r,o),pi(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${Wi(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=vt(n,"date");if(i==="dayList"){if(_o(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&Tf(a)))&&P(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${So.join(", ")})`);return}if(_o(e,t,r,o)!==null&&(Nd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(te(e.value)){$d(e.value,n,`${t}.value`,r,o);return}if(Jo.includes(n)){P(r,`${t}.value`,"invalid_date_range",qe(n).message);return}if(i==="dateRange"){if(!qb(e.value)){P(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{te(s)?$d(s,n,`${t}.value[${a}]`,r,o):fe(s)&&!tr(s,At).isValid()&&P(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!fe(e.value)){P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}tr(e.value,At).isValid()||P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},Md=(e,t,r,o)=>{if(!ar(e)||Object.keys(e).length===0){P(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!Ps(n)){P(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=ar(i)?_o(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=Ds(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Pd=(e,t,r)=>{(typeof e!="string"||!ui.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},$d=(e,t,r,o,n)=>{let i=Jo.includes(t),s=Oe(e);if(s){Md(s[0],r,o,n);return}if(Yo(e)){Pd(Ri(e),r,o);return}if(vs(e)){if(i){P(o,r,"invalid_date_range",qe(t).message);return}let a="start"in e?e.start:e.end;if(!ar(a)||!Yo(a)){P(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Pd(Ri(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},Vb=(e,t,r)=>{"value"in e&&e.value!==void 0&&P(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&P(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&P(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},Wi=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",ar=e=>ve(e),Bb=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",qb=e=>Array.isArray(e)&&e.length===2&&(fe(e[0])||te(e[0]))&&(fe(e[1])||te(e[1])),Cd=(e,t,r,o)=>{if(Te(e)&&r.target!=="check"&&(r.target==="toPrisma"&&No(e)!==null||P(r,t,`unsupported_${Wi(r.target)}_window`,at(r.target).message)),"filter"in e&&e.filter!==void 0&&(Bi(r,o,e.field),_t(e.filter,`${t}.filter`,r,o+1)),"orderBy"in e&&e.orderBy!==void 0){let i=e.orderBy;Array.isArray(i)?i.forEach((s,a)=>{(!ar(s)||typeof s.field!="string"||s.dir!=="asc"&&s.dir!=="desc")&&P(r,`${t}.orderBy[${a}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):P(r,`${t}.orderBy`,"invalid_order_by","orderBy must be an array of { field, dir }");}for(let i of ["take","skip"])if(i in e&&e[i]!==void 0){let s=e[i];(typeof s!="number"||!Number.isInteger(s)||s<0)&&P(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},P=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var Wb=/[.:]/,Gs=e=>{let t=[];for(let[r,o]of Object.entries(e.maps))for(let[n,i]of Object.entries(o.models))for(let[s,a]of Object.entries(i.fields))a.kind!=="bridge"&&Wb.test(s)&&t.push({path:`${we({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return lr(t)},kd=e=>pn(Gs(e),"validateFieldMaps");var pr=e=>!Object.hasOwn(e,"parent"),mt=e=>{let t=[],r=new Set,o=e;for(;!pr(o);){if(r.has(o))throw new Error("cycle detected in narrowing parent chain");if(Object.hasOwn(o,"model")||Object.hasOwn(o,"maps"))throw new Error("a narrowing carries a base lens key (model / maps); it has a parent instead");r.add(o),t.unshift(o),o=o.parent;}return t},ze=e=>pr(e)?e:mt(e)[0].parent;var Ks=(e,t)=>t.length?V([...t,e]):e,Ub=e=>{if(er(e).length)return false;let t=e.field,r=typeof t=="string"?L(t):null;try{return de(r?{...e,field:r.path}:e,{})===!0}catch{return false}},zs=(e,t)=>{if(!t.length)return e;if(!Ub(e))return V([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return Tt([V([...r.clamps,zs(e,o)]),V([{field:r.prefix,operator:"notExists"},e])])},Ui=(e,t)=>Xt(e,{rewrite:r=>{if(Ne(r))return r;if(typeof r.field!="string"||r.field==="")throw new N(`narrowRule: cannot re-root a relation clamp of unknown shape under '${t}'`,"unsupported_clamp");let o=er(r);if(o.length)throw new N(`narrowRule: cannot re-root a relation clamp with a path reference ('${o[0]}') under '${t}'. Author the clamp without 'path', or anchor it at the relation itself.`,"unsupported_clamp");if(L(r.field))throw new N(`narrowRule: cannot re-root a relation clamp with a scope ref field ('${r.field}') under '${t}'. Author the clamp against the model's own columns.`,"unsupported_clamp");if(Fe(r)){for(let n of [r.condition,r.filter])if(n!==void 0&&Fo(n).escaping!==null)throw new N(`narrowRule: cannot re-root a relation clamp on '${r.field}' under '${t}': '${Fo(n).escaping}' inside it reads the row being re-rooted. Anchor such clamps at the relation's own model.`,"unsupported_clamp")}return {...r,field:`${t}.${r.field}`}},below:()=>false}),Hs=(e,t)=>t.flatMap(r=>{let o=F(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new N(`narrowRule: cannot enforce a to-many relation clamp on '${r.prefix}' without an arrayOperator condition to anchor it (row-scoped). Traverse '${r.prefix}' via an array operator (any/all/none/...) so the clamp can be injected safely.`,"unsupported_clamp");return [{prefix:r.prefix,clamps:o.whereClauses.map(n=>Ui(n,r.prefix))}]}),_d=(e,t)=>Hs(e,t).flatMap(r=>r.clamps),Fd=(e,t,r)=>{let o=_e(e,r);if("outOfBounds"in o)throw new N(`narrowRule: ${o.outOfBounds}`,"scope_out_of_bounds");if(!o.scope)return {hops:[],end:null};let n=e.slice(0,e.length-o.path.length);return ke(t.lens.maps,o.scope,o.path,n==="$."?"":n)},Gb=(e,t,r)=>{if(L(e))return Fd(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?ke(t.lens.maps,r[0],e,o).hops:[]},Ld=(e,t,r)=>{if(Ne(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Fd(e.field,t,r);return {hops:o,below:n}},jr=(e,t,r)=>Xt(e,{below:(o,n)=>{let i=Ld(o,t,n);return i?i.below?[...n,i.below]:Fe(o)?[...n,null]:false:false},after:(o,n)=>{let i=Ld(o,t,n);if(!i)return o;let s=_d(t,er(o).flatMap(d=>Gb(d,t,n))),a=i.below;if(!a||!Fe(o))return Ks(zs(o,Hs(t,i.hops)),s);let l=[...F(t,a.mapName,a.modelName,a.relPath).whereClauses,..._d(t,Eo(o).flatMap(d=>ke(t.lens.maps,a,d).hops))],f=o.condition===void 0||o.arrayOperator===$.all||Te(o),p={...o};return l.length&&f?p.filter=V([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(p.condition=V([...l,o.condition])),Ks(zs(p,Hs(t,i.hops.slice(0,-1))),s)}},[r]),Do=(e,t)=>{let r=k(t),o=F(r,r.lens.mapName,r.lens.model,[]),n=jr(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return Ks(n,o.whereClauses)};var Js=(e,t)=>{let r=Ar(e,H.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},Kb=(e,t,r)=>o=>{if(o==null)return o;let n=Js(o,r);if(n===void 0)throw new Error(`Invalid date value for DateTime field '${e}': ${String(o)}`);return t==="toPrisma"?new Date(n):new Date(n).toISOString()},Gi=(e,t,r,o,n)=>{if(t==null||r?.kind==="json-path")return t;let i=r?.kind==="direct"?r.entry:void 0;if(i?.isList)return t;let s=i?Ct(i):void 0;if(e.coerceType!==void 0&&s!==void 0&&e.coerceType!==s)throw new Error(`coerceType '${e.coerceType}' overrides ${s} field '${e.field}', but ${o} compares the column as stored \u2014 evaluate it in memory with check(), or drop the override.`);if((s??e.coerceType)===H.DateTime){let l=Kb(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===H.String&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="number"||typeof l=="boolean"))throw new Error(`'${e.field}' is String but the literal is not a string; pass a string, or stamp coerceType: 'String'.`);if(e.coerceType===void 0&&s!==void 0&&(Be.includes(s)||s===H.Boolean)&&(Array.isArray(t)?t:[t]).some(l=>typeof l=="string"))throw new Error(`'${e.field}' is ${s} but the literal is a string; pass a ${s===H.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&vf.includes(e.coerceType)?Ar(t,e.coerceType,e.coerceType===H.DateTime?n():void 0):t};var Dd=e=>Array.isArray(e)?e.flatMap(Dd):[e],fn=e=>e.value===void 0?null:Dd(e.value),zb=e=>Js(e)!==void 0,Hb=/^-?\d+(\.\d+)?$/,Jb={String:{expected:"a string",fits:e=>typeof e=="string"},Enum:{expected:"a string",fits:e=>typeof e=="string"},Int:{expected:"an integer",fits:Number.isSafeInteger},BigInt:{expected:"an integer",fits:Number.isSafeInteger},Float:{expected:"a number",fits:Number.isFinite},Decimal:{expected:"a number or a numeric string",fits:e=>Number.isFinite(e)||typeof e=="string"&&Hb.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:zb},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},Qb=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),jd=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===H.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=yo(e);if(!i)return [];let a=r!==void 0&&r!==t?`field '${e.field}' coerced to ${o}`:`${o} field '${e.field}'`;if(!i.kinds.includes(o))return [{path:e.field,code:"operator_kind_mismatch",message:`operator '${n}' does not apply to ${a} (applies to: ${i.kinds.join(", ")})`}];if(e.offset!==void 0&&!("dateOperator"in e?o===H.DateTime:Be.includes(o)))return [{path:e.field,code:"invalid_offset",message:`an offset does not apply to ${a}`}];if("dateOperator"in e||i.valueShape==="none"||i.valueShape==="pattern")return [];if(Af.includes(i.valueShape)&&Array.isArray(e.value))return [{path:e.field,code:"invalid_value_shape",message:`operator '${n}' compares one value, but ${a} was given a list`}];let{expected:l,fits:f}=Jb[o],p=u=>{try{return f(Ar(u,o))}catch{return false}},d=u=>f(u)||r!==void 0&&p(u);return (fn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${Qb(u)} does not fit ${a} (expected ${l})`}))},Id=(e,t,r)=>{if(r.isList===true||Me(r))return null;let o=D(r)?`arrayOperator '${t}' needs a list, but '${e}' is a to-one relation \u2014 a single related record; address its fields directly (e.g. '${e}.<field>')`:`arrayOperator '${t}' needs a list, but '${e}' is a single ${Ct(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var Zb=(e,t,r,o)=>ne(e,(n,i)=>{let s=pe(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:st().message}),false;if(Ne(n))return;let a=n,l=w=>{let b=_e(w,i);return "outOfBounds"in b?(o.push({path:w,code:"scope_out_of_bounds",message:b.outOfBounds}),null):{scope:b.scope,field:b.path}},f=i[i.length-1],p=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let w=Vo(t,i,a.field);"issue"in w?(o.push({path:a.field,...w.issue}),p=false):{next:f,walked:d}=w;}let u=d?.entry??null,m=d?.terminalFieldName??null,g=d?.entry.kind==="enum",c=d?.entry.type??null,h=d&&d.jsonSubPath.length===0?zi(d.terminalEffect,d.terminalFieldName):null;for(let{ref:w,role:b}of ks(a)){let R=L(w)?l(w):{scope:gt(t),field:w};if(!R||R.scope.open)continue;let S=jo(t,R.scope,R.field);if(!S){o.push({path:w,...Ki(t,R.scope,R.field,b==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens")});continue}if(D(S.entry)){o.push({path:w,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let E=Ct(S.entry);if(b==="value"||b==="shift"||E===void 0)continue;(b==="whole"?Pf.includes(E):Be.includes(E))||o.push({path:w,code:"not_in_lens",message:`${b==="whole"?"a calendar unit reads a whole number":"an offset or magnitude reads a number"}, not ${E}`});}if(!p)return false;if("arrayOperator"in a&&typeof a.field=="string"&&u){let w=Id(a.field,a.arrayOperator,u);if(w)return o.push(w),false}if(u&&D(u)&&(s==="field"||s==="date")&&(u.isList||!Nr(a))){let w=a.field;return o.push({path:w,code:"operator_kind_mismatch",message:(u.isList?gi(w):Ro(w)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...jd(a,u?Ct(u):void 0)),!f.open)for(let w of Eo(a))w!==""&&!jo(t,f,w)&&o.push({path:w,...Ki(t,f,w,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(h&&"operator"in a&&m){let w=fn(a);if(w){let b=new Set(h),R=g?`enum '${c}'`:`field '${m}'`;for(let S of w)typeof S=="string"&&!b.has(S)&&o.push({path:m,code:"value_not_allowed",message:`value '${S}' is not in the allowed set for ${R} (allowed: ${[...b].join(", ")})`});}}return [...i,f]},[r]),dn=(e,t,r,o,n)=>{let i=[];return Zb(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Io=(e,t)=>{let r=k(t);try{let o=dn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&Do(e,t),lr(o)}catch(o){if(!(o instanceof N))throw o;return lr([{path:"",code:o.code,message:o.message}])}};var mn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],gn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),yn=e=>{if(gn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw Yb();return {where:e}},Yb=()=>new N("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),Ys=["__offpath__"],Vd=new WeakMap,Xb=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([un(t.parent),un(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=Vd.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return Vd.set(t,{fingerprint:r,trees:n}),n},Bd=new WeakMap,eR=0,un=e=>{let t=Bd.get(e);return t===void 0&&(t=eR++,Bd.set(e,t)),t},ue="\0",tR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>D(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},Hi=e=>e?String(un(e)):"",k=e=>{let t=ze(e),r=pr(e)?[]:mt(e);return {lens:t,chain:r,origin:r[0],memo:{trees:Xb(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},Ji=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),rR=(e,t)=>{if(t.picks&&(e.picks=Ji(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},Ud=(e,t,r)=>{e.set(t,Ji(e.get(t)??null,r));},Gd=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},oR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))Ud(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))Gd(t,o,n);},Qs=(e,t,r)=>JSON.stringify([e,t,r]),nR=(e,t,r,o,n,i,s)=>{if(s&&rR(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where))),t.sources)for(let[a,l]of Object.entries(t.sources)){let f=yn(l),p=e.sources.get(a)??[],d=e.sourceWheres.get(a)??[];f.where!==void 0&&i&&(n(f.where,true),p.push(r(f.where)),d.push(f.where)),e.sources.set(a,p),e.sourceWheres.set(a,d);let u=mn(f.groupBy);for(let[m,g,c]of [["label",f.label,e.sourceLabels.get(a)],["groupBy",u,e.sourceGroupBys.get(a)]]){if(g===void 0)continue;let h=Qs(a,m,g);c!==void 0&&Qs(a,m,c)===h||e.sourceDeclaredAt.set(h,o);}f.label!==void 0&&e.sourceLabels.set(a,f.label),u!==void 0&&e.sourceGroupBys.set(a,u),f.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(a)&&e.sourcesFromMapDefaults.set(a,o);}},N=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},Xs=e=>new N(`a bare path ('${e}') reads the root row, which a clamp at a relation visit or a model default doesn't stand on: use a literal, a bind, or a \`$\` scope ref`,"invalid_value_source"),iR=(e,t,r)=>dn(e,t,r.mapName,r.modelName,r.relPath),sR=e=>new N(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),ea=e=>new N(`the scope ref '${e}' climbs out of the clamp: a clamp reads its own row ('$.'), literals and binds`,"scope_out_of_bounds"),Fo=e=>{let t=null,r=null;return ne(e,(o,n)=>{if(Ne(o))return;let i=er(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=L(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!L(s)&&(t=s);return Fe(o)?n+1:void 0},1),{bare:t,escaping:r}},Zs=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of ke(e.lens.maps,r,t.relPath.join(".")).hops)o.push({mapName:i.map,modelName:i.model,relPath:i.relPath});let n=o[o.length-1];return o.length===t.relPath.length+1&&n.mapName===t.mapName&&n.modelName===t.modelName?o:null},cn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},ta=(e,t,r)=>{let o=i=>O(O(e.mapDefaults,i.mapName)?.models,i.modelName);if(!r){let i=o(t);return {defaults:i?[i]:[],path:void 0}}let n=[];for(let[i,s]of r.entries()){let a=cn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:cn(e.root,t.relPath)}},aR=(e,t,r,o)=>{let n=cn(t.root,r.relPath),i=[r.relPath.join(ue),Object.keys(n?.relations??{}).join(ue),(n?.omits??[]).join(ue)].join(`${ue}${ue}`),s=o.get(i);if(s)return s;let a=new Map,l={lens:e},f=Zs(l,r)??[r],p=new Set(f.map(u=>`${u.mapName}:${u.modelName}`)),d=[{at:r,below:[]}];for(;d.length>0;){let{at:u,below:m}=d.shift(),g=T(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:c,path:h}=ta(t,u,Zs(l,u)),w=new Set(c.flatMap(S=>Object.keys(S.relations??{}))),b=new Set([...c,...h?[h]:[]].flatMap(S=>S.omits??[])),R=[];for(let[S,E]of Object.entries(g)){if(!w.has(S)||b.has(S)||h?.relations!==void 0&&Object.hasOwn(h.relations,S))continue;let x=Ke(E,u.mapName);if(!x||!T(O(e.maps,x.mapName),x.modelName))continue;let A=`${x.mapName}:${x.modelName}`;p.has(A)||(p.add(A),R.push(S),d.push({at:{...x,relPath:[...u.relPath,S]},below:[...m,S]}));}a.set(m.join("."),R);}return o.set(i,a),a},lR=(e,t,r,o)=>{if(!o)return ta(t,r,null).defaults.flatMap(f=>Object.keys(f.relations??{}));let n=r.relPath.length;for(;n>0&&cn(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=aR(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys(cn(t.root,r.relPath)?.relations??{}):[],...a]},ra=(e,t,r)=>{let o=t;for(let n of ke(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!F(e,o.mapName,o.modelName,o.relPath).relations.has(i))return n.prefix;o={mapName:n.map,modelName:n.model,relPath:n.relPath};}return null},F=(e,t,r,o)=>{let n=e.memo?qd(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let j of i.unchecked)j();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],sources:new Map,sourceWheres:new Map,sourceLabels:new Map,sourceGroupBys:new Map,sourceDeclaredAt:new Map,sourcesFromMapDefaults:new Map,relations:new Set,relationFields:new Set},l=O(e.lens.maps,t),f=T(l,r);if(!f)return a;let p=e.memo?.models.get(f);p||(p=tR(f),e.memo?.models.set(f,p)),a.relationFields=p.relations;let d={mapName:t,modelName:r,relPath:o},u=e.origin??e.chain[0],m=`${Hi(u)}${ue}${t}${ue}${r}${ue}${o.join(ue)}`,g=e.memo?.places.get(m);if(!g){let j=Zs(e,d);g={trail:j,turnedOn:u?lR(e,u,d,j):[]},e.memo?.places.set(m,g);}let{trail:c}=g,h=new Map,w=new Map,b=new Map,R=new Map,S=j=>j,E=0,x=()=>{},A=true,re=true,q=j=>{nR(a,j,S,E,x,A,re),oR(h,w,j);};for(let[j,W]of e.chain.entries()){E=j;let jt={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,j)};A=W!==e.skipClampsOf,re=W!==e.skipHidingOf,S=be=>j===0?be:jr(be,jt,{mapName:t,modelName:r,relPath:o});for(let[be,Z]of Object.entries(O(W.mapDefaults,t)?.enums??{}))Z.picks&&Ud(b,be,Z.picks),Z.omits&&Gd(R,be,Z.omits);let{defaults:$n,path:mr}=ta(W,d,c),X=j===0?null:jt,gr=be=>(Z,Pe=false)=>{let ae=e.memo?.refs.get(Z);if(ae||(ae=Fo(Z),e.memo?.refs.set(Z,ae)),ae.bare!==null&&!(be&&!Pe))throw Xs(ae.bare);if(ae.escaping!==null)throw ea(ae.escaping);if(!X)return;let _a=()=>{let vn=typeof Z=="object"&&Z!==null?`${un(Z)}${ue}${qd(X,t,r,o)}`:null;if(vn!==null&&X.memo?.vetted.has(vn))return;let[La]=iR(Z,X,d);if(La)throw sR(La);vn!==null&&X.memo?.vetted.add(vn);};e.unvetted?s.push(_a):_a();};x=gr(false);for(let be of $n)q(be);mr&&(x=gr(o.length===0&&c!==null),q(mr));}if(u&&e.chain.includes(u))for(let j of g.turnedOn)a.relationFields.has(j)&&!a.omits.has(j)&&a.relations.add(j);for(let[j,W]of p.gated){let jt=W.kind==="enum",mr=W.options?.map(Z=>Z.value)??(jt?Cr(W,l?.enums):W.values);if(!mr)continue;let X=mr;if(jt){let Z=b.get(W.type),Pe=R.get(W.type);Z&&(X=X.filter(ae=>Z.has(ae))),Pe&&(X=X.filter(ae=>!Pe.has(ae)));}let gr=h.get(j),be=w.get(j);gr&&(X=X.filter(Z=>gr.has(Z))),be&&(X=X.filter(Z=>!be.has(Z))),a.enumValuesByField.set(j,X);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},qd=(e,t,r,o)=>{let n=Wd.get(e);if(n===void 0){n=`${Hi(e.origin)}${ue}${Hi(e.skipClampsOf)}${ue}${Hi(e.skipHidingOf)}${ue}`;for(let i of e.chain)n+=`${un(i)},`;Wd.set(e,n);}return `${n}${ue}${t}${ue}${r}${ue}${o.join(ue)}`},Wd=new WeakMap,Ir=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!T(i,o.modelName))return;let s=F(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=he(i,o.modelName,a),f=l&&Ke(l,o.mapName);f&&r({...f,relPath:[...o.relPath,a]},`${n}.${a}`);}};return r({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},e.lens.model),t},Qi=(e,t,r,o)=>F(e,t,r,Ys).sources.has(o),Zi=(e,t,r,o)=>new N(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`,"invalid_source"),yt=(e,t)=>e.omits.has(t)?false:e.relationFields.has(t)?e.relations.has(t):!(e.picks!==null&&!e.picks.has(t)),zi=(e,t)=>e.enumValuesByField.get(t)??null,Vr=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:f,next:p}of or(e.lens.maps,t,r)){if(!f)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=F(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&D(f)?!d.omits.has(a):yt(d,a)))return {resolution:{outcome:"hidden",index:s,hops:n},effects:i};let m={field:a,entry:f,mapName:l.mapName,model:l.modelName,relPath:[...l.relPath]};n.push(m),i.push(d);let g=s===o.length-1;if(g||Me(f))return {resolution:{outcome:"resolved",hops:n,terminal:m,jsonSubPath:g?[]:o.slice(s+1)},effects:i};if(!p)return {resolution:{outcome:"pastScalar",index:s,hops:n},effects:i}}return {resolution:{outcome:"missing",index:o.length,hops:n},effects:i}},Bo=(e,t,r,o,n)=>{let i=n==="label"?t.sourceLabels.get(o):t.sourceGroupBys.get(o);if(i===void 0)return true;let s=t.sourceDeclaredAt.get(Qs(o,n,i)),a=(p,d)=>Vr(p,r,d).resolution.outcome!=="hidden",l={...e,clamp:true},f={...l,skipHidingOf:s===void 0?void 0:e.chain[s]};return (typeof i=="string"?[i]:i).every(p=>ra(e,r,p)===null&&(a(l,p)||a(f,p)))},jo=(e,t,r)=>{let{resolution:o,effects:n}=Vr(e,t,r);if(o.outcome!=="resolved")return null;let{terminal:i,jsonSubPath:s}=o;return {mapName:i.mapName,modelName:i.model,relPath:i.relPath,entry:i.entry,terminalEffect:n[n.length-1],terminalFieldName:i.field,jsonSubPath:s}},Ki=(e,t,r,o)=>{let{resolution:n}=Vr(e,t,r);if(n.outcome!=="hidden")return {code:"not_in_lens",message:o};let i=r.split("."),s=n.hops.at(-1),a=s?{mapName:s.mapName,modelName:s.model,relPath:[...s.relPath,s.field]}:t,l=s&&Ke(s.entry,s.mapName),f=l?{...l,relPath:a.relPath}:t,p=F(e,f.mapName,f.modelName,f.relPath),d=i[n.index];return !p.relationFields.has(d)||p.omits.has(d)?{code:"not_in_lens",message:o}:{code:"not_in_lens",message:`'${i.slice(0,n.index+1).join(".")}' is a relation the lens does not turn on (turn it on with \`relations\`)`}},gt=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),Vo=(e,t,r)=>{let o=_e(r,t);if("outOfBounds"in o)return {issue:{code:"scope_out_of_bounds",message:o.outOfBounds}};if(o.scope.open)return {from:o.scope,next:o.scope,walked:null};let n=jo(e,o.scope,o.path);if(!n)return {issue:Ki(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=Me(n.entry),s=Ke(n.entry,n.mapName),a=s?{...s,relPath:[...n.relPath,n.terminalFieldName],open:i}:{...o.scope,open:i};return {from:o.scope,next:a,walked:n}},ke=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:f,entry:p,next:d}of or(e,t,r)){if(!p||!d)break;let u=[...f.relPath,l];i.push({map:d.mapName,model:d.modelName,relPath:u,prefix:`${o}${n.slice(0,a+1).join(".")}`,isList:p.isList===true}),a===n.length-1&&(s={...d,relPath:[...u]});}return {hops:i,end:s}};var na="parent:",ia=e=>e.startsWith(na),zd=e=>ia(e)?e.slice(na.length):e,oa=(e,t)=>{let r={...e};if(e.where!==void 0&&(r.where=t(e.where)),e.sources){let o={};for(let[n,i]of Object.entries(e.sources))o[n]=gn(i)?i.where!==void 0?{...i,where:t(i.where)}:i:t(i);r.sources=o;}if("relations"in e&&e.relations){let o={};for(let[n,i]of Object.entries(e.relations))o[n]=oa(i,t);r.relations=o;}return r},Hd=(e,t)=>{let r={};for(let[o,n]of Object.entries(e.mapDefaults??{})){let i={};for(let[s,a]of Object.entries(n.models??{}))i[s]=oa(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?oa(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},sa=e=>{let t=[];return Hd(e,r=>(t.push(r),r)),t},Kd=e=>{let t=new Set;for(let r of sa(e))for(let o of tn(r))ia(o)||t.add(o);return t},Jd=e=>{let t=new Set;for(let r of mt(e))for(let o of sa(r))for(let n of tn(o,{required:true}))t.add(zd(n));return [...t].sort()},Qd=(e,t)=>{if(pr(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${na}${o}`]=n;return {...Hd(e,o=>Ls(o,r)),parent:Qd(e.parent,t)}},Zd=(e,t)=>Qd(e,t),Yd=e=>{let t=[],r=new Set;for(let n of mt(e.parent))for(let i of Kd(n))r.add(i);for(let n of Kd(e))r.has(n)&&t.push(`bind name '${n}' already declared by an ancestor narrowing \u2014 rename it, or reference the inherited one as 'parent:${n}'`);let o=new Set;for(let n of sa(e))for(let i of tn(n))ia(i)&&o.add(zd(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var Xd=(e,t)=>{let r=k(t),o=(n,i)=>typeof n=="string"&&n!==""?Vo(r,i,n):null;return Xt(e,{rewrite:(n,i)=>{if(pe(n)!=="field"||n.coerceType)return n;let s=o(n.field,i);if(!s||"issue"in s||!s.walked||s.walked.jsonSubPath.length)return n;let{entry:a}=s.walked;return a.kind==="scalar"&&$f.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Fe(n))return false;let s=o(n.field,i),a=s&&!("issue"in s)?s.walked?.entry:void 0;return s&&!("issue"in s)&&a&&D(a)?[...i,s.next]:false}},[gt(r)])};var eu=({maps:e,bridges:t,mapName:r,model:o})=>({...Mi({maps:e,bridges:t}),mapName:r,model:o});var pR=(e,t)=>ne(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Ne(r)||typeof r.field!="string"||r.field==="")return;let n=Vo(t.policy,o,r.field);return "issue"in n?false:(n.walked&&(t.sources.add(n.walked.mapName),(n.walked.entry.kind==="bridge"||n.walked.mapName!==n.from.mapName)&&(t.bridgesCrossed=true)),[...o,n.next])},[gt(t.policy)]),tu=(e,t)=>{let o={policy:k(t),sources:new Set,bridgesCrossed:false};return pR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:M.filter(n=>(n==="check"||!o.bridgesCrossed)&&Lo(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Io(e,t).errors}};var fR=new Set([$t.scalar,$t.ordered,$t.array,$t.dayList,$t.dateValue]),dR=new Set([$t.none,$t.count]),uR=e=>{if(e.offset!==void 0||en(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=yo(e);return t?dR.has(t.valueShape)?{values:[],dynamic:false}:fR.has(t.valueShape)?"value"in e?{values:fn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},cR=e=>e instanceof Date?`d:${+e}`:e instanceof RegExp?`r:${e}`:typeof e=="object"&&e!==null?`j:${JSON.stringify(e)}`:`p:${typeof e}:${String(e)}`,ru=(e,t)=>{let r=k(t),o=r.lens.model,n=new Map,i=new Map,s=(l,f)=>{if(l.length===0)return;let p=jo(r,{mapName:r.lens.mapName,modelName:o,relPath:[]},l.join("."));if(!p||p.jsonSubPath.length>0)return;let{mapName:d,modelName:u,relPath:m,terminalEffect:g,terminalFieldName:c}=p;if(!g.sources.has(c))return;let h=[o,...m].join("."),w=`${h}|${c}`,b=n.get(w);b||(b={path:h,mapName:d,model:u,field:c,values:[],dynamic:false},n.set(w,b));let R=uR(f);R.dynamic&&(b.dynamic=true);let S=i.get(w)??new Set;i.set(w,S);for(let E of R.values){let x=cR(E);S.has(x)||(S.add(x),b.values.push(E));}},a=(l,f)=>{let p=_e(l,f);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return ne(e,(l,f)=>{if(Ne(l))return;let p=typeof l.field=="string"?a(l.field,f):f.at(-1);return p?(!Fe(l)&&typeof l.field=="string"&&s(p,l),[...f,p]):false},[[]]),[...n.values()]};var Yi=(e,t,r,o)=>{let n=mR(e,t,r);if(n.options===t)return o(n.condition,n.options);try{return o(n.condition,n.options)}catch(i){if(i instanceof N||i instanceof J)throw i;try{o(e,n.options);}catch{throw i}throw new N(`${r}: the lens's clamps on this rule have no ${r} form \u2014 ${i.message}`,"unsupported_target")}},mR=(e,t,r)=>{if(t?.lens===void 0)return {condition:e,options:t};let{lens:o}=t;if(t.map!==void 0||t.mapName!==void 0||t.model!==void 0)throw new J(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Io(e,o);if(!n.ok)throw new Error(`${r}: the rule leaves the lens \u2014 ${n.errors.map(s=>`${s.path}: ${s.message}`).join("; ")}`);let i=ze(o);return {condition:Do(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var Xi=(e,t,r,o)=>{if(!gf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=le(e.caseInsensitive),i=Cr(r,o?.enums),{values:s,hasNull:a}=Mt(it.includes(e.operator)?[t]:t);if(!n&&(!i||s.every(d=>typeof d=="string"&&i.includes(d))))return null;if(!i)throw new Error(`'${e.field}' is an enum: a case-insensitive comparison reads its declared values, which the map doesn't list.`);let l=d=>n?d.toLowerCase():d,f=new Set(s.filter(d=>typeof d=="string").map(d=>l(d))),p=i.filter(d=>f.has(l(d)));return G.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!a}:{values:p,matchesNull:a}};var Y=e=>`"${e.replace(/"/g,'""')}"`;var ge=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),aa=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${Y(t)}.${Y(o)}`:Y(o);if(n.length===0)return i;let s=n.map(la),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},la=e=>`'${e.replace(/'/g,"''")}'`;var gR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],es,yR=()=>{if(es!==void 0)return es;for(let e of hR())for(let t of gR)try{let r=e(t);if(r.AnyNull!==void 0)return es=r.AnyNull,es}catch{}},hR=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));}catch{}return typeof cs=="function"&&e.push(cs),e},ou=()=>{let e=br.get("prismaOptions.anyNull")??yR();if(e===void 0)throw new Error("A null check on a Json field needs Prisma's AnyNull, and @prisma/client isn't installed: engineGlobals.set('prismaOptions.anyNull', Prisma.AnyNull).");return e};var nu=(e,t)=>{let r=$r(ut(t));return r===null?null:Pr(e,r)},iu=(e,t,r)=>{if(e===null)return null;let o=$o(ut(t)),n=o&&Er(o[0],an);return !o||!n?null:Yt(pt__default.default(e),n,o[1],Mo(r).timeZone).toDate()};var fa=(e,t)=>Ce(e,t?.map,t?.model),ht=e=>e==="json"||e==="json-path",fr=e=>ht(e)?ou():null,Br=(e,t)=>t?.map&&t?.model?ad(e,t.map,t.model).map(r=>Dr(r,{is:null})):[],da=(e,t)=>{let r=fa(e,t);return [...ht(r)||r==="list"||Q(e.field,t?.map,t?.model)?.isRequired===false?[He(e.field,{equals:fr(r)},t)]:[],...Br(e.field,t)]},ts=(e,t,r,o)=>{if(r.mode&&ht(o)&&Array.isArray(t))throw _("toPrisma",`A case-insensitive comparison of a Json value with the list ${JSON.stringify(t)}`);if(!r.mode||typeof t!="string")return {[e]:t,...r};if(!ht(o))return {[e]:ge(t),...r};if(/[%_\\"\u0000-\u001f]/.test(t))throw _("toPrisma",`A case-insensitive equality on Json against '${t}'`,"Prisma matches the JSON text, where %, _, a backslash, a quote or a control character doesn't read as itself");return {[e]:t,...r}},ua=(e,t,r,o)=>{let n=t?.datasource?.provider??br.get("prismaOptions.datasource.provider");return le(e.caseInsensitive)&&ff(n)&&ir(r,o)?{mode:"insensitive"}:{}},su=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return ht(e)?[...r,{equals:[]}]:r},au=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},ca=(e,t,r,o,n)=>{let i=a=>He(e,a,n),s=su(t,o);return r?B([i({equals:fr(t)}),...Br(e,n),...s.map(a=>i(a))]):ct([...t==="list"?[]:[i({not:fr(t)})],...s.map(a=>i(au(a)))])},SR=(e,t)=>{if(!Nr(e))throw Ro(e.field);let o=(n=>He(e.field,n,t))({is:{}});return de({...e,field:"relation"},{relation:null})===true?Ee(o):o},bR=(e,t)=>Q(e.field,t?.map,t?.model),pa=kt(),RR=(e,t,r)=>{if(t==="list"||ht(t)||bR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?He(o,{is:{}},r):pa},lu=(e,t)=>{let r=c=>He(e.field,c,t),o=fa(e,t),n=()=>da(e,t),i=ki(e,t?.map,t?.model);if(o==="relation")return SR(e,t);let s=RR(e,o,t),a=s&&(s===pa?sr():Ee(s)),l=c=>s&&a?de({field:"f",operator:c,value:null},{f:null})===true?a:s:null;if(s&&a&&Nr(e)){let c=su(o,i);return e.operator===y.isEmpty?B([a,...c.map(r)]):e.operator===y.notEmpty?ct([s,...c.map(h=>r(au(h)))]):l(e.operator)}switch(e.operator){case y.exists:case y.notExists:{if(e.operator===y.exists)return o==="list"?Ee(r({equals:null})):r({not:fr(o)});let c=n();return c.length?B(c):r({equals:fr(o)})}case y.isEmpty:case y.notEmpty:return ca(e.field,o,e.operator===y.isEmpty,i,t)}if(Ue(e)){let c=Di(e,t?.map,t?.model,gd(t),yd(t));if("problem"in c)throw ji(e.path,c.problem);let h=r({[c.key]:c.ref}),w=(E,x)=>x.isRequired===false?He(E,{equals:null},t):null,b=(E,x)=>x.isRequired===false?He(E,{not:null},t):pa,R=w(e.field,c.field),S=w(c.columnPath,c.column);return e.operator===y.equals?R&&S?B([h,ct([R,S])]):h:e.operator===y.notEquals?B([Ee(h),...R?[ct([R,b(c.columnPath,c.column)])]:[],...S?[ct([b(e.field,c.field),S])]:[]]):h}let f=pu(e,t);if(xe(e,f))return B(G.includes(e.operator)?n():[]);if(f===null&&it.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&Ht.includes(e.operator)&&Array.isArray(f))return ie(Ni(e,f),t);if(o==="list"&&Array.isArray(f)&&f.includes(null))throw _("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&le(e.caseInsensitive)&&ir("text",f))throw _("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let p=o==="enum"?Q(e.field,t?.map,t?.model):void 0,d=p?Xi(e,f,p,t?.map):null;if(d){let c=r({in:d.values});return d.matchesNull?B([c,...n()]):c}if(Ht.includes(e.operator)){let{values:c,hasNull:h}=Mt(f),w=ua(e,t,o,c),b=ht(o)?e.operator===y.in?B(c.map(R=>r(ts("equals",R,w,o)))):ct(c.map(R=>r(ts("not",R,w,o)))):r({[e.operator]:c,...w});return e.operator===y.in?h?B([b,...n()]):b:h?ct([b,s??r({not:fr(o)})]):B([b,...n()])}let u=c=>{if(!ht(o)||c!==y.contains)return r(hn({...e,operator:c},t));let h=r({array_contains:[OR(e,f,t,o)]});return typeof f=="string"?B([r(hn({...e,operator:c},t)),h]):h};if(e.operator===y.contains)return u(y.contains);let m=Of.includes(e.operator)?Qo[e.operator]:wo.includes(e.operator)?y.between:void 0;if(m){if(ht(o))throw _("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return B([Ee(u(m)),...n()])}let g=r(hn(e,t));return e.operator===y.equals&&f===null?B([g,...Br(e.field,t)]):e.operator===y.notEquals&&o==="list"?f===null?Ee(r({equals:null})):B([Ee(r({equals:f})),...n()]):e.operator===y.notEquals&&f!==null?B([g,...n()]):g},pu=(e,t)=>{let r=Gi(e,ut(e),nr(e.field,t?.map,t?.model),"toPrisma",()=>Mo(t).timeZone);return e.offset===void 0?r:nu(r,e.offset)},hn=(e,t)=>{let r=yi(e);if(r)throw r;let o=fa(e,t),n=()=>pu(e,t),i=f=>ua(e,t,o,f),s=f=>{let p=n();if(o==="list"){if(f!=="contains")throw new Error(`Operator '${f}' does not apply to the list '${e.field}'.`);return {has:p}}let d=ht(o)?xR[f]:f,u=typeof p=="string"?ge(p):p;return {[d]:u,...i(p)}},a=hi(e.operator,n());if(a)throw a;let l=Kt(e.operator,"field");if(l&&ho.includes(e.operator))return {[l]:n()};switch(e.operator){case y.equals:{let f=n()??fr(o);return ts("equals",f,i(f),o)}case y.notEquals:{let f=n()??fr(o);return ts("not",f,i(f),o)}case y.in:case y.notIn:return {[e.operator]:n()};case y.contains:return s("contains");case y.startsWith:return s("startsWith");case y.endsWith:return s("endsWith");case y.matches:case y.notMatches:throw _("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case y.between:case y.notBetween:{let[f,p]=De(Ge(n(),e.operator));return {gte:f,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},OR=(e,t,r,o)=>{if(typeof t=="object"&&t!==null)throw new Error(`Membership of an object or a list in the Json array '${e.field}' has no exact Prisma form; use toSql() or check().`);if(ua(e,r,o,t).mode)throw _("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},xR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},He=(e,t,r)=>{if(!r?.map||!r?.model)return Dr(e,t);let o=me(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw wi(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return Dr(e,t);case "bridge":return Fr();case "past-scalar":throw Si(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return Dr(a,s)}}};var fu=(e,t,r)=>{if(Te(e)){let o=No(e);if(!o)throw at("toPrisma");return ie(o,t,r)}if(!t?.map||!t?.model||!r)throw new Error("Aggregate rules require a FieldMap and model to generate a Prisma plan. Pass { map, model } options to toPrisma().");if(!nt.includes(e.aggregate.mode))throw Zt(e.aggregate.mode);if(!e.aggregate.field)throw new Error("Prisma aggregate rules require aggregate.field to specify the numeric field on the related model.");return ER(e,t,r)},ER=(e,t,r)=>{let o=ko(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&dt(e.condition,t.map,o.target))return Fr();let n=e.aggregate.field??"",i=he(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||Me(i))throw new Error(`aggregate.field '${n}' on model '${o.target}' must be a numeric scalar, got ${i.kind==="scalar"?"Json":`'${i.kind}'`}.`);let s=Co(t)(e);if(s===null||xe(s,s.value))return sr();let a=nn(s,[{}],void 0,{},{value:0})===true,l=a?Ie(s):s,f=hn(l,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:f},d=wo.includes(l.operator)?Ee({[n]:p}):{[n]:p},u=e.condition?ie(e.condition,Lr({...t,model:o.target},t,true),r):kt(),m=Vi(r,o,u,d,a);return a?B([m,...Br(e.field,t)]):m};var uu=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=ko(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw We(e.arrayOperator);if(e.count===void 0)throw bo(e.arrayOperator);let n=e.count;if(e.arrayOperator===$.atLeast&&n===0)return kt();let i=ie(e.condition,Lr({...t,model:o.target},t,true),r),s=ma(e),a=s?du($.atLeast,e.arrayOperator===$.atMost?n+1:1,o.targetKey):du(e.arrayOperator,n,o.targetKey);return Vi(r,o,i,a,s)},du=(e,t,r)=>{let o=Kt(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var cu=(e,t,r)=>{let o=PR(e,t,r);return e.field&&ma(e)&&!mu(e.field,t)?B([o,...Br(e.field,t)]):o},ma=e=>de({...e,field:"items"},{items:[]})===true,PR=(e,t,r)=>{if(Te(e)){let i=No(e);if(!i)throw at("toPrisma");return ie(i,t,r)}if(e.condition!==void 0&&!Rf.includes(e.arrayOperator)&&dt(e.condition,t?.map,gu(e,t)?.model))return Fr();if(Jt.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return uu(e,t,r);throw new Error(`ArrayOperator '${e.arrayOperator}' requires a FieldMap and model to generate a multi-step plan. Pass { map, model } options to toPrisma(). Without them, use prisma.$queryRaw for count-based relation filtering.`)}if(!e.field)throw mi("toPrisma");let{field:o}=e;if(mu(o,t))return $R(e,o,Ce({field:o},t?.map,t?.model),t);let n=vR(e,t,r);return He(e.field,n,t)},mu=(e,t)=>{let r=Ce({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},$R=(e,t,r,o)=>{switch(e.arrayOperator){case $.empty:case $.notEmpty:return ca(t,r,e.arrayOperator===$.empty,false,o);default:throw _("toPrisma",`'${e.arrayOperator}' over the ${r==="list"?"list":"Json array"} '${t}'`,r==="list"?"test a list's membership with 'contains'":void 0)}},gu=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Lr({...t});let r=sn(e.field,t.map,t.model);return Lr(r?{...t,model:r}:{...t})},vR=(e,t,r)=>{let o=gu(e,t);switch(e.arrayOperator){case $.all:if(!e.condition)throw We(e.arrayOperator);return {none:ie(Ie(e.condition,Co(o)),o,r)};case $.any:if(!e.condition)throw We(e.arrayOperator);return {some:ie(e.condition,o,r)};case $.none:if(!e.condition)throw We(e.arrayOperator);return {none:ie(e.condition,o,r)};case $.empty:return {none:{}};case $.notEmpty:return {some:{}};default:throw se(e.arrayOperator,"array")}};var yu=(e,t)=>{let r=t?.map,o=Ce({field:e.field},r,t?.model);if(o==="json"||o==="json-path")throw _("toPrisma",`A date rule on the Json value '${e.field}'`,"Prisma compares Json text");let n=Q(e.field,r,t?.model);if(n&&!D(n)&&Ct(n)!==H.DateTime)throw _("toPrisma",`A date rule on the ${n.type} field '${e.field}'`,`Prisma compares it as ${n.type}, not as an instant`);let i=G.includes(e.dateOperator)?da(e,t):[],s=AR(e,t);if(s===null)return B(i);let a=He(e.field,s,t),l=wo.includes(e.dateOperator)?Ee(a):a;return B([l,...i])},AR=(e,t)=>{let r=Mo(t),o=an,n=m=>e.offset===void 0?m:iu(m,e.offset,t),i=m=>{if(m==null)return null;if(!te(m))return vi(m,r.timeZone);let g=lt(m,o);return g&&Oo(g,e.dateOperator,r).toDate()},s=()=>ut(e),a=()=>n(i(s())),l=()=>{let m=s();if(m==null)return null;let g=Ge(m,e.dateOperator).map(i);if(g[0]===null||g[1]===null)return null;let[c,h]=De(g).map(n);return c&&h?[c,h]:null},f=()=>{let m=s();if(m==null)return null;if(!te(m))throw qe(e.dateOperator);let g=lt(m,o);if(!g)return null;let[c,h]=xo(g,r);return [c.toDate(),h.toDate()]},p=m=>{let g=a();return g===null?null:{[m]:g}},d=m=>m?{gte:m[0],lte:m[1]}:null,u=Kt(e.dateOperator,"date");if(u)return p(u);switch(e.dateOperator){case v.within:case v.notWithin:return d(f());case v.between:case v.notBetween:return d(l());case v.dayIn:case v.dayNotIn:throw _("toPrisma",`'${e.dateOperator}'`);default:throw se(e.dateOperator,"date")}};var ga=(e,t,r)=>{if(typeof e=="boolean")return e?{}:sr();ri(e,"toPrisma");let o=pe(e);(o==="field"||o==="date")&&_i(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return Rd(n,t,r);case "any":return Od(n,t,r);case "if":return xd(n,t,r);case "array":return cu(n,t,r);case "aggregate":return fu(n,t,r);case "date":return yu(n,t);case "field":return lu(n,t);default:throw st()}};Sd(ga);var wu=async(e,t)=>{let r=e.steps.filter(i=>i.operation==="groupBy"),o=e.steps.find(i=>i.operation==="where");if(!o)throw new Error("executePrismaPlan: result has no where step");let n=[];for(let i of r){let s=Su(t,i.model),a=hu(i.args,i.refs,n,t),l=await s[i.operation](a);n.push(l.map(f=>f[i.extract]).filter(f=>f!=null));}return hu(o.where,o.refs,n,t)},Su=(e,t)=>{let r=t.charAt(0).toLowerCase()+t.slice(1),o=e[r];if(!o)throw new Error(`executePrismaPlan: no delegate for model '${t}'. Ensure prismaDelegate has a key '${r}'.`);return o},NR=(e,t)=>{let r=Su(e,t.model).fields,o=r&&Object.hasOwn(r,t.field)?r[t.field]:void 0;if(o===void 0)throw new Error(`executePrismaPlan: the '${t.model}' delegate has no field reference '${t.field}' (fields.${t.field}).`);return o},TR=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),ya=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=ya(i[o],n,r),s},hu=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=TR(e,i);if(s&&typeof s.__step=="number"){let a=s.__step;if(a>=r.length)throw new Error(`Step ref __step: ${a} out of range (${r.length} steps executed)`);n=ya(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=ya(n,i,NR(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var MR=e=>e?.map?{...e,map:je(e.map,e.mapName,"toPrisma")}:e,wn=(e,t)=>Yi(e,t,"toPrisma",CR),CR=(e,t)=>{let r={steps:[]},o=ga(e,MR(t),r),n=(i,s)=>{let a=ud(s);return a.length?{...i,refs:a}:i};return {steps:[...r.steps.map(i=>n(i,i.args)),n({operation:"where",where:o},o)]}};var rs=(e,t,r,o,n)=>{let i=`${r.mapName}\0${r.modelName}`;for(let a of t){if(typeof a=="boolean")continue;let l=e.memo?.compiles.get(a)??new Map;e.memo?.compiles.set(a,l);let f=l.get(i);if(f===void 0){let[p]=Lo(a,{target:"toPrisma",map:e.lens,mapName:r.mapName,model:r.modelName}).errors;f=p?p.message:null,l.set(i,f);}if(f!==null)return new N(`${o}: ${f}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)ne(a,l=>{("aggregate"in l||Jt.includes(l.arrayOperator))&&(s=true);});return s?new N(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_clamp"):null},os=(e,t)=>{try{return t()}catch(r){throw r instanceof N||r instanceof J?r:new N(`${e}: ${r.message}`,"unsupported_clamp")}};var bu=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,Ve=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=_e(n,i);return "outOfBounds"in s?null:bu(s.scope,s.path)};return ne(e,(n,i)=>{if(Ne(n))return;for(let l of er(n))r(L(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Fe(n))return;let a=s??i[i.length-1];for(let l of Eo(n))r(bu(a,l));return [...i,a]},[""]),[...t]};var ha=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!yt(t,s))continue;let l=t.enumValuesByField.get(s),f=n(s)?.filter(d=>l===void 0||l.includes(d.value)),p=Bo(e,t,r,s,"groupBy")?t.sourceGroupBys.get(s):void 0;i[s]={...a,...l!==void 0&&{values:l},...f!==void 0&&{options:f},...p!==void 0&&{groupBy:p}};}return i},Ru=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=ha(e,r,t,a,m=>{let g=n.get(`${o}|${m}`),c=r.enumValuesByField.get(m);return g??O(a.fields,m)?.options??c?.map(h=>({value:h,label:h}))}),f={};for(let[m,g]of r.sources)yt(r,m)&&(f[m]=g);let p={};for(let[m,g]of r.sourceLabels)yt(r,m)&&Bo(e,r,t,m,"label")&&(p[m]=g);let d={};for(let[m,g]of r.sourceGroupBys)yt(r,m)&&Bo(e,r,t,m,"groupBy")&&(d[m]=g);let u={};for(let m of r.sourcesFromMapDefaults.keys()){if(!Qi(e,i,s,m))throw Zi(o,i,s,m);Object.hasOwn(f,m)&&(u[m]="mapDefaults");}return {mapName:i,model:s,fields:l,whereClauses:r.whereClauses,sources:f,sourceLabels:p,sourceGroupBys:d,sourceFrom:u}},Ou=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},xu=(e,t={})=>Sn(k(e),t),Sn=(e,t={})=>{let r=Ou(t),o={};for(let{path:n,at:i,effect:s}of Ir(e))o[n]=Ru(e,i,s,n,r);return o},Eu=(e,t,r={})=>wa(k(e),t,r),wa=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of or(e.lens.maps,o,t)){let a=F(e,s.at.mapName,s.at.modelName,s.at.relPath);if(!s.next||!a.relations.has(s.field))return null;o={...s.next,relPath:[...s.at.relPath,s.field]};}if(!T(O(e.lens.maps,o.mapName),o.modelName))return null;let n=F(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return Ru(e,o,n,i,Ou(r))};var Pu=(e,t,r,o,n,i,s,a)=>{let l=n.split("."),{hops:f}=ke(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=f.filter((d,u)=>u<l.length-1);if(p.length<l.length-1){let d=l[p.length],u=p.at(-1)?.model??r;throw new N(`${i} '${n}': hop '${d}' is not a resolvable relation on '${u}' \u2014 cannot guard its join`,"invalid_source")}for(let d of p){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let m=F(e,d.map,d.model,d.relPath);if(d.isList&&m.whereClauses.length)throw new N(`${i} '${n}': cannot enforce the clamp on to-many relation '${d.prefix}' in a dotted path`,"unsupported_clamp");for(let g of m.whereClauses)a.push(Ui(g,d.prefix));}},kR=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)Pu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&Pu(e,t,r,o,i,"label",a,s),s},bn=(e,t)=>{let r=ce(e,t);return r==null||typeof r=="object"?void 0:String(r)},ns=(e,t)=>{let r=[];for(let o of t){let n=bn(e,o);if(n===void 0)return;r.push(n);}return r},Sa=(e,t)=>JSON.stringify([e??null,t]),_R=(e,t,r,o)=>{let n=Sa(o,t),i=e.get(n);i===void 0?e.set(n,{value:t,...r!==void 0?{label:r}:{},...o!==void 0?{groups:o}:{}}):r!==void 0&&(i.label===void 0||r<i.label)&&e.set(n,{...i,label:r});},is=(e,t,r,o,n)=>{let i=ce(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||_R(e,String(a),s,n);},ss=e=>[...e.values()].sort((t,r)=>{let o=(t.groups===void 0?0:1)-(r.groups===void 0?0:1);if(o!==0)return o;let n=t.groups??[],i=r.groups??[];for(let s=0;s<Math.max(n.length,i.length);s++){let a=(n[s]??"").localeCompare(i[s]??"","en",{numeric:true});if(a!==0)return a}return (t.label??t.value).localeCompare(r.label??r.value,"en",{numeric:true})||t.value.localeCompare(r.value,"en",{numeric:true})}),LR=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=ke(e.lens.maps,n,t.join("."));if(!s)throw new N(`source at '${t.join(".")}': its path doesn't resolve on the field maps`,"not_in_lens");let a=[n,...i.map(p=>({mapName:p.map,modelName:p.model}))],l=t.length;for(;l>0&&!r.has(t.slice(0,l).join("."));)l--;let f=l>0?r.get(t.slice(0,l).join("."))??null:null;for(let p=l;p<t.length;p++){let d=x=>{f=x,r.set(t.slice(0,p+1).join("."),x);},u=a[p],m=F(e,u.mapName,u.modelName,t.slice(0,p)).whereClauses,g=f===null?m:[...m,f];if(g.length===0&&!o){d(null);continue}let c=O(e.lens.maps,u.mapName),h=c&&he(c,u.modelName,t[p]);if(!h)throw new N(`source at '${t.join(".")}': '${t[p]}' isn't declared on ${u.modelName}`,"not_in_lens");let w=a[p+1],b=we({fieldMap:u.mapName,model:u.modelName}),R=h.kind==="bridge"?he(O(e.lens.maps,w.mapName),w.modelName,b):void 0,S=h.kind==="bridge"?R&&{field:b,entry:R}:c?Ii(c,u.modelName,t[p],h):null;if(!S&&g.length===0){d(null);continue}if(!S)throw new N(`source at '${t.join(".")}': '${t[p]}' on ${u.modelName} declares no inverse, so the clamps above can't be carried down to it`,"unsupported_clamp");let E=V(g);try{let x={field:S.field,operator:"exists"};d(S.entry.isList?{field:S.field,arrayOperator:"any",condition:E}:g.length?V([x,Ui(E,S.field)]):x);}catch(x){throw x instanceof N?new N(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${x.message}`,x.code):x}}return f===null?[]:[f]},$u=e=>dr(k(e)),dr=(e,t=Sn(e))=>{let r=new Map,o=n=>{let i=r.get(n)??new Map;return r.set(n,i),i};return Object.entries(t).flatMap(([n,i])=>Object.keys(i.sources).map(s=>{let a=O(i.sourceLabels,s),l=O(i.sourceGroupBys,s),f=Object.hasOwn(i.sourceFrom,s),p={mapName:i.mapName,modelName:i.model,relPath:n.split(".").slice(1)},d=F(e,p.mapName,p.modelName,p.relPath),u=(d.sourceWheres.get(s)??[]).map(q=>jr(q,e,p)),m=kR(e,p.mapName,p.modelName,p.relPath,l??[],a),g=O(i.fields,s)?.values,c=f?d.sourcesFromMapDefaults.get(s):void 0,h=c===void 0?void 0:e.chain[c],b=[...LR(h===void 0?e:{...e,skipClampsOf:h},p.relPath,o(h),h===void 0&&!f),...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],R=V([...i.whereClauses,...b]),S=V([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),E=e.lens.bridges?.length?je(e.lens,p.mapName,"toPrisma"):void 0,x=E?[...Ve(R),...a===void 0?[]:[a],...l??[]].find(q=>kr(q,E,p.modelName)):void 0,A=x!==void 0&&E?V(_s(R).filter(q=>dt(q,E,p.modelName))):void 0,re=rs(e,[...i.whereClauses,...b],p,`source '${s}' at '${n}'`,true);if(re)throw re;return {path:n,visit:i,field:s,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:R,rowWhere:S,...x!==void 0&&{bridged:x},...A!==void 0&&{recheck:A}}}))};var Oa=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=Mr(o,n,()=>({}));}return e},as=(e,t)=>{for(let[r,o]of Object.entries(t))as(Mr(e,r,()=>({})),o);return e},xa=e=>e.whereClauses.flatMap(Ve),vu=e=>{let t=new Map;for(let r of e){if(r.from||r.bridged!==void 0)continue;let o=r.path.split(".").slice(1).join(".");t.set(o,[...t.get(o)??[],r.field,...r.label===void 0?[]:[r.label],...r.groupBy??[],...Ve(r.rowWhere)]);}return t},Au=(e,t)=>e.get(t.relPath.join("."))??[],FR=(e,t,r)=>Oa(as({},r??{}),xa(F(e,t.mapName,t.modelName,t.relPath))),Nu=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Ea=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),DR=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=V(r.whereClauses),i=rs(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=os(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>wn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},jR=(e,t,r,o)=>{let n=T(e,o.type)?.fields??{},i=a=>{let l=a===void 0?void 0:O(n,a);return l&&!D(l)?a:void 0},s=e?Ii(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Tu=(e,t,r,o,n,i)=>{let s=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=F(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:Oa(as({},o),[...xa(a),...Au(i,t)]),f={};for(let[p,d]of Object.entries(s)){let u=r!=="paths"&&yt(a,p),m=O(l,p);if(!u&&m===void 0||d.kind==="bridge")continue;if(d.kind!=="object"){f[p]=true;continue}let g=u?"declared":"paths";if(g==="paths"&&m===void 0)continue;let c=Ea(t,p,{mapName:t.mapName,modelName:d.type}),h=Tu(e,c,g,m??{},n,i),w=d.isList&&g!=="paths"&&m===void 0?DR(e,c,F(e,c.mapName,c.modelName,c.relPath),n):void 0,b=Object.keys(h).length?void 0:jR(O(e.lens.maps,t.mapName),t.modelName,p,d),R=b===void 0?h:{[b]:true};Object.keys(R).length&&(f[p]={select:R,...w&&{where:w}});}return f},Mu=(e,t={})=>Pa(k(e),t),Pa=(e,t={},r=dr(e))=>{let o=Tu(e,Nu(e),"declared",{},t,vu(r));if(!Object.values(o).some(n=>n===true)){let n=O(T(O(e.lens.maps,e.lens.mapName),e.lens.model)?.fields,"id");n&&!D(n)&&(o.id=true);}return {select:o}},ba=(e,t)=>e==null?e:Array.isArray(e)?e.flatMap(r=>{let o=typeof r=="object"&&r!==null?t(r):null;return o===null?[]:[o]}):typeof e=="object"?t(e):null,Ra=(e,t,r,o)=>{let n={},i=T(O(e.lens.maps,t.mapName),t.modelName);for(let[s,a]of Object.entries(o)){if(!Object.hasOwn(r,s))continue;let l=O(i?.fields,s),f=l?Ke(l,t.mapName):null;n[s]=f?ba(r[s],p=>Ra(e,Ea(t,s,f),p,a)):r[s];}return n},Cu=(e,t,r,o,n,i,s)=>{let a=F(e,t.mapName,t.modelName,t.relPath);if(!a.whereClauses.every(d=>de(d,r,i)===true))return null;let l=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},f=n?Oa(as({},o),[...xa(a),...Au(s,t)]):{},p={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(f,d),g=Ke(u,t.mapName);if(!g){(yt(a,d)||m!==void 0)&&(p[d]=r[d]);continue}let c=Ea(t,d,g);if(yt(a,d)){let h=!Array.isArray(r[d])||m!==void 0;p[d]=ba(r[d],w=>Cu(e,c,w,m??{},n,i,s)??(n&&h?Ra(e,c,w,FR(e,c,m)):null));}else m!==void 0&&(p[d]=ba(r[d],h=>Ra(e,c,h,m)));}return p},ku=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=k(e),i=Nu(n),s=r?vu(dr(n)):new Map;return t.flatMap(a=>{let l=Cu(n,i,a,{},r,o,s);return l===null?[]:[l]})};var IR="materializeSources needs fetched or keepClampColumns rows, not viewer rows",$a=(e,t,r)=>new J(`${e}: a row at '${t}' ${r}${r.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),Rn=(e,t,r,o,n,i=IR)=>{for(let s of n){let a=[r];for(let{index:l,field:f,entry:p,next:d}of or(e.lens.maps,t,s)){if(!p)break;let u=s.split(".").slice(0,l+1).join("."),m=[];for(let g of a){if(g===null||typeof g!="object")continue;if(!Object.hasOwn(g,f))throw $a(i,o,`lacks '${u}', which a read needs`);let c=g[f];if(d&&c==null&&p.fromFields?.some(h=>{let w=g[h];return w!=null}))throw $a(i,o,`'${u}' is null while its key is set \u2014 a projection hid the row`);if(!(!d||c===null||c===void 0)){if(Array.isArray(c)!==(p.isList===true))throw $a(i,o,`'${u}' holds ${Array.isArray(c)?"a list where it names one row":"one row where it names a list"}`);m.push(...Array.isArray(c)?c:[c]);}}if(!d)break;a=m;}}},va=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...ke(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},VR=(e,t,r,o)=>{let n=r.split(".").slice(1),i=va(e,r),s=(l,f)=>{let p=i[l],d=F(e,p.mapName,p.modelName,p.relPath).whereClauses,u=V(d),m=d.flatMap(Ve),g=[e.lens.model,...n.slice(0,l)].join(".");return f.filter(c=>(Rn(e,p,c,g,m),de(u,c,o)===true))},a=s(0,t);for(let[l,f]of n.entries()){let p=[],d=[e.lens.model,...n.slice(0,l)].join(".");for(let u of a){Rn(e,i[l],u,d,[f]);let m=ce(u,f);Array.isArray(m)?p.push(...m):m!=null&&p.push(m);}a=s(l+1,p);}return {rows:a,visit:i[i.length-1]}},_u=(e,t,r)=>{let o=k(e);return dr(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:f,rowWhere:p})=>{if(a)throw new J(`materializeSources: '${n}.${s}' offers its model's own source, which a fetched collection can't hold \u2014 query it with toSourceQueries and materializeSourceQuery.`);let d=[s,...Ve(p),...l===void 0?[]:[l],...f??[]],u=new Map,m=VR(o,t,n,r);for(let g of m.rows)Rn(o,m.visit,g,n,d),de(p,g,r)===true&&is(u,g,s,l===void 0?void 0:bn(g,l),f===void 0?void 0:ns(g,f));return {path:n,mapName:i.mapName,model:i.model,field:s,options:ss(u)}})};var Lu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,...i}=r,s=o==="sql",{recheck:a}=e,l=m=>false,f=m=>true;if(a!==void 0){if(n===void 0)throw new J(`materializeSourceQuery: '${e.path}.${e.field}' reads across a bridge \u2014 its rows are candidates; pass { lens } with rows holding the far side`);let m=k(n),g=va(m,e.path).at(-1);if(!g||g.mapName!==e.mapName||g.modelName!==e.model)throw new J(`materializeSourceQuery: the lens doesn't reach ${e.mapName}:${e.model} at '${e.path}' \u2014 pass the lens the query was compiled from`);let c=je(m.lens,e.mapName,"toPrisma");l=b=>c!==void 0&&kr(b,c,e.model);let h=[...Ve(a),...e.label!==void 0&&l(e.label)?[e.label]:[],...(e.groupBy??[]).filter(l)],w="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";f=b=>(Rn(m,g,b,e.path,h,w),de(a,b,i)===true);}let p=m=>e.label===void 0?void 0:s&&e.label.includes(".")&&!l(e.label)?m.__label:bn(m,e.label),d=e.groupBy?.map((m,g)=>s&&!l(m)?`__group_${g}`:m),u=new Map;for(let m of t)f(m)&&is(u,m,e.field,p(m),d===void 0?void 0:ns(m,d));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:ss(u)}};var BR=(e,t)=>`${e}::${t}`,qR=(e,t,r)=>{let o=e.get(t);if(!o){e.set(t,r.values?{...r,values:[...r.values]}:r);return}let n=o;if(r.values&&o.values){let i=new Set([...o.values,...r.values]);n={...n,values:[...i]};}else !r.values&&o.values&&(n={...n,values:void 0});r.groupBy!==void 0&&n.groupBy===void 0&&(n={...n,groupBy:r.groupBy}),n!==o&&e.set(t,n);},Fu=(e,t={})=>Aa(k(e),t),Aa=(e,t={})=>{let{lens:r}=e,o=new Map;for(let l of t.sourceValues??[]){let f=`${l.mapName}::${l.model}::${l.field}`,p=o.get(f)??new Map;for(let d of l.options)p.set(Sa(d.groups,d.value),d);o.set(f,p);}let n=new Map;for(let{at:l,effect:f}of Ir(e)){let{mapName:p,modelName:d}=l,u=T(O(r.maps,p),d);if(!u)continue;let m=BR(p,d),g=n.get(m);g||(g={mapName:p,modelName:d,fields:new Map},n.set(m,g));let c=ha(e,f,l,u,h=>{let w=o.get(`${p}::${d}::${h}`);return w&&[...w.values()]});for(let[h,w]of Object.entries(c)){let b=w.groupBy,R=g.fields.get(h)?.groupBy;if(b!==void 0&&R!==void 0&&JSON.stringify(R)!==JSON.stringify(b))throw new N(`projectLens: '${d}.${h}' is grouped by different axes on different paths ([${R}] vs [${b}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");qR(g.fields,h,w);}}let i={};for(let{mapName:l,modelName:f,fields:p}of n.values()){let d=O(i,l);d||(d={models:{}},i[l]=d);let u={},m=new Map;for(let[g,c]of p)if(u[g]=c.options===void 0&&c.values?{...c,options:c.values.map(h=>({value:h,label:h}))}:c,c.kind==="enum"&&c.values){let h=m.get(c.type)??new Set;for(let w of c.values)h.add(w);m.set(c.type,h);}d.models[f]={...T(O(r.maps,l),f),fields:u};for(let[g,c]of m)d.enums??={},d.enums[g]=[...c];}let s=r.bridges?.filter(l=>{let[f,p]=l.endpoints,d=he(O(i,f.fieldMap),f.model,we(p)),u=he(O(i,p.fieldMap),p.model,we(f));return d!==void 0||u!==void 0}),a={maps:i};return s&&s.length>0&&(a.bridges=s),{...a,mapName:r.mapName,model:r.model}};var Du=(e,t,r,o,n)=>{if(e===void 0)return;let i=Fo(e),s=o==="root.where"?null:i.bare;if(s!==null){n.push({path:o,code:"invalid_value_source",message:Xs(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:ea(a).message});return}let l=new Set,f={...t,clamp:t.chain.length===0};for(let{mapName:p,modelName:d,relPath:u}of r)for(let m of dn(e,f,p,d,u)){let g=`'${m.path}' ${m.message}`;l.has(g)||(l.add(g),n.push({path:o,code:m.code,message:g}));}},WR=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let f=F(s,l.mapName,l.modelName,l.relPath);for(let[p,d]of Object.entries(e.sources??{})){let u=yn(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${p}|${m}`))continue;let g=m==="label"?u.label:mn(u.groupBy),c=m==="label"?f.sourceLabels.get(p):f.sourceGroupBys.get(p);if(JSON.stringify(g)!==JSON.stringify(c))continue;let w=(typeof c=="string"?[c]:c??[]).map(b=>ra(s,l,b)).find(b=>b!==null);if(w){a.add(`${p}|${m}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${m} '${String(u[m])}' crosses '${w}', a relation the lens does not show there (not turned on, or omitted)`});continue}Bo(s,f,l,p,m)||(a.add(`${p}|${m}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${m} '${String(u[m])}' reads a column hidden by another layer`}));}}}},ju=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=ke(t,{mapName:r,modelName:o,relPath:[]},e),a=s.find((d,u)=>d.isList&&u<i.length-1);if(a)return `${n} cannot traverse to-many relation '${i[s.indexOf(a)]}'`;if(s.length===i.length)return `${n} must end on a scalar column, '${i.at(-1)}' is a relation`;let l=s.at(-1)??{map:r,model:o},f=i[s.length],p=he(O(t,l.map),l.model,f);return p?D(p)?`${n} relation '${f}' has no resolvable target`:s.length===i.length-1?null:`${n} segment '${f}' is not a relation`:`${n} segment '${f}' not on model '${l.model}'`},UR=(e,t,r,o)=>{for(let n of r){if(!t&&n.picks&&!n.picks.includes(e))return "not in ancestor's picks";if(n.omits?.includes(e))return "was omitted by ancestor"}return !t&&o?.picks&&!o.picks.includes(e)?"not visible from defaults.picks":o?.omits?.includes(e)?"already excluded by defaults":null},GR=(e,t,r,o,n,i,s,a,l,f,p,d,u=false)=>{let m=e.omits?.some(c=>{let h=O(i,c);return h===void 0||!D(h)});e.picks&&m&&f.push({path:`${l}`,code:"conflicting_selection",message:"cannot specify both picks and omits of a column"});for(let c of ["picks","omits"])for(let h of e[c]??[]){let w=O(i,h);if(!w){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});continue}let b=D(w);if(b&&c==="picks"){f.push({path:`${l}.picks`,code:"wrong_kind",message:`'${h}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let R=UR(h,b,t,r);R&&f.push({path:`${l}.${c}`,code:"not_visible",message:`'${h}' ${R}`});}let g=(c,h,w)=>{let b=O(i,h);if(!b){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});return}if(b.kind!=="enum"){f.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${h}' is not an enum field`});return}let R=Cr(b,a);for(let S of w)R&&!R.includes(S)&&f.push({path:`${l}.${c}.${h}`,code:"value_not_allowed",message:`'${S}' is not a known value of enum '${b.type}'`});};for(let[c,h]of Object.entries(e.enumPicks??{}))g("enumPicks",c,h);for(let[c,h]of Object.entries(e.enumOmits??{}))g("enumOmits",c,h);Du(e.where,p,d,`${l}.where`,f);for(let[c,h]of Object.entries(e.sources??{})){let w=O(i,c);if(!w){f.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${c}' not on model`});continue}if(D(w)){f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`'${c}' is a relation: a source offers a column's values`});continue}let b;try{b=yn(h);}catch(x){if(!(x instanceof N))throw x;f.push({path:`${l}.sources.${c}`,code:x.code,message:x.message});continue}let R=b.from;if(R!==void 0){let x=R!=="mapDefaults"?`from takes 'mapDefaults', not '${String(R)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":b.label!==void 0||b.groupBy!==void 0?"a from: 'mapDefaults' source takes the model source's label and groupBy":null;x&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:x});}let S=b.label?.includes(".")?b.label:void 0;if(b.label!==void 0)if(S){let x=ju(S,o,n,s,"label");x&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,b.label);x?D(x)&&f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${b.label}' is a relation, not a column`}):f.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${b.label}' not on model`});}let E=mn(b.groupBy);if(E!==void 0||S!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(c)||b.label!==void 0&&x.test(b.label))&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:"'__group*' / '__label' names are reserved on grouped or path-labeled sources (sql column aliases)"});}if(E!==void 0){for(let A of E){let re=ju(A,o,n,s,"groupBy");re&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${re}`});}let x=JSON.stringify(E);for(let A of t){let re=O(A.sources,c);if(re===void 0)continue;let q=mn(yn(re).groupBy);q!==void 0&&JSON.stringify(q)!==x&&f.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${E}] conflicts with an ancestor layer's groupBy [${q}]`});}}Du(b.where,p,d,`${l}.sources.${c}`,f);}},KR=(e,t,r,o,n)=>{for(let[i,s]of Object.entries(t)){let a=O(r,i);if(!a){n.push({path:`mapDefaults.${e}.enums.${i}`,code:"not_in_lens",message:"enum not in registry"});continue}let l=null,f=new Set;for(let d of o){let u=d[i];if(u&&(u.picks&&(l=Ji(l,u.picks)),u.omits))for(let m of u.omits)f.add(m);}let p=d=>!(f.has(d)||l&&!l.has(d));for(let d of s.picks??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"not_visible",message:`'${d}' not visible from ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.picks`,code:"value_not_allowed",message:`'${d}' not a known value`});for(let d of s.omits??[])a.includes(d)?p(d)||n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"not_visible",message:`'${d}' already excluded by ancestors`}):n.push({path:`mapDefaults.${e}.enums.${i}.omits`,code:"value_not_allowed",message:`'${d}' not a known value`});}},zR=(e,t,r,o,n,i,s)=>{let a=F(t,r.mapName,r.modelName,r.relPath);for(let l of ["enumPicks","enumOmits"])for(let[f,p]of Object.entries(e[l]??{})){let d=O(o,f);if(d?.kind!=="enum")continue;let u=Cr(d,n)??[],m=zi(a,f)??u;for(let g of p)u.includes(g)&&!m.includes(g)&&s.push({path:`${i}.${l}.${f}`,code:"not_visible",message:`'${g}' is not visible (not allowed by the inherited enum narrowing)`});}},Iu=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),Na=(e,t,r,o,n,i,s,a,l,f,p)=>{let d=O(n,i),u=T(d,s);if(!u)return;let m=o.length===0,g={...f,chain:[...f.chain,r],unvetted:true},c=p.isDefault?void 0:O(O(r.mapDefaults,i)?.models,s),w=[...o.map(S=>O(O(S.mapDefaults,i)?.models,s)).filter(S=>S!==void 0),...t],b={mapName:i,modelName:s,relPath:Ys};GR(e,w,c,n,i,u.fields,s,d?.enums,a,l,f,m?p.isDefault?[b,...p.parent]:p.parent:p.composed,p.isDefault),zR(e,p.isDefault?f:{...f,chain:[...f.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},p.isDefault?b:p.parent[0]??b,u.fields,d?.enums,a,l),WR(e,r,f,p.composed,a,l);let R={...f,chain:[...f.chain,r]};if(!p.isDefault)for(let[S,E]of Object.entries(e.sources??{}))!gn(E)||E.from!=="mapDefaults"||Qi(R,i,s,S)||l.push({path:`${a}.sources.${S}`,code:"invalid_source",message:Zi([ze(r).model,...p.parent[0]?.relPath??[]].join("."),i,s,S).message});for(let[S,E]of Object.entries(e.relations??{})){let x=O(u.fields,S);if(!x){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${S}' not on model`});continue}if(!D(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${S}' is not a relation (kind=${x.kind})`});continue}let A=W=>F(f,W.mapName,W.modelName,W.relPath).relations.has(S),re=W=>F(g,W.mapName,W.modelName,W.relPath).relations.has(S);if(!m&&!(p.isDefault?p.parent.some(A):p.parent.every(A))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${S}' is not shown by the parent${p.isDefault?` wherever ${s} is visited`:""}: only the first narrowing over the base lens turns a relation on`});continue}let q=Ke(x,i);if(!q)continue;if(!T(O(n,q.mapName),q.modelName)){l.push({path:`${a}.relations.${S}`,code:"not_in_lens",message:"target model not found in lens"});continue}let j=t.map(W=>O(W.relations,S)).filter(W=>W!==void 0);Na(E,j,r,o,n,q.mapName,q.modelName,`${a}.relations.${S}`,l,f,{parent:Iu(p.isDefault?p.parent.filter(A):p.parent,S,q.modelName,q.mapName),composed:Iu(p.composed.filter(re),S,q.modelName,q.mapName),isDefault:p.isDefault});}},Ta=e=>{let t=[];try{HR(e,t);}catch(r){if(!(r instanceof N))throw r;t.some(o=>o.code===r.code)||t.push({path:"",code:r.code,message:r.message});}return lr(t)},HR=(e,t)=>{let r=ze(e),o=mt(e.parent),n=k(e.parent),i=Ir(n),s=[],a=u=>{try{u();}catch(m){if(!(m instanceof N))throw m;s.push(m);}},l=null,f=()=>(l??=Ir({...n,chain:[...n.chain,e],unvetted:true}),l);for(let[u,m]of Object.entries(e.mapDefaults??{})){let g=O(r.maps,u);if(!g){t.push({path:`mapDefaults.${u}`,code:"not_in_lens",message:"not in lens"});continue}let c=o.map(h=>O(h.mapDefaults,u)?.enums).filter(h=>h!==void 0);for(let[h,w]of Object.entries(m.models??{})){if(!T(g,h)){t.push({path:`mapDefaults.${u}.models.${h}`,code:"not_in_lens",message:"not in fieldMap"});continue}let R=o.map(x=>O(O(x.mapDefaults,u)?.models,h)).filter(x=>x!==void 0),S=x=>x.map(({at:A})=>A).filter(A=>A.mapName===u&&A.modelName===h),E=[];a(()=>{E=S(f());}),a(()=>Na(w,R,e,o,r.maps,u,h,`mapDefaults.${u}.models.${h}`,t,n,{parent:S(i),composed:E,isDefault:!0}));}m.enums&&KR(u,m.enums,g.enums,c,t);}if(e.root){let u=r.mapName,m=r.model,g=O(r.maps,u);if(!g)t.push({path:"root",code:"not_in_lens",message:`lens map '${u}' not in lens`});else if(!T(g,m))t.push({path:"root",code:"not_in_lens",message:`lens model '${m}' not in fieldMap`});else {let c=o.map(w=>w.root).filter(w=>w!==void 0),h={mapName:u,modelName:m,relPath:[]};a(()=>Na(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[h],composed:[h],isDefault:!1}));}}for(let u of Yd(e))t.push({path:"bindings",code:"invalid_binding",message:u});let p={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=dr(p,Sn(p));}),a(()=>Aa(p)),a(()=>Pa(p,{},d)),a(()=>{let u=new Map;for(let{at:m}of f()){u.set(m.relPath.join("."),m),a(()=>wa(p,m.relPath.join(".")));let g=m.relPath.at(-1),c=u.get(m.relPath.slice(0,-1).join("."));if(g===void 0||!c)continue;let w=he(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>jr(w,p,c));}});for(let u of s)t.some(m=>u.message.includes(m.message))||t.push({path:"",code:u.code,message:u.message});},ls=e=>pn(Ta(e),"validateNarrowing");function Vu(e,{by:t="path",...r}={}){return t==="model"?Fu(e,r):xu(e,r)}var Bu=(e,t,r,o={})=>{let n=k(e),{resolution:i}=Vr(n,gt(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(D(a.entry))return {ok:false,reason:"relation"};if(s.some(d=>d!==a&&d.entry.isList))return {ok:false,reason:"list"};let f=(d,u)=>u!==null&&typeof u=="object"&&F(n,d.mapName,d.model,d.relPath).whereClauses.every(m=>de(m,u,o)===true),p=f(s[0],t)?t:null;for(let[d,u]of s.entries()){if(p===null||typeof p!="object")return {ok:true,value:null};let m=O(p,u.field);if(u===a)return {ok:true,value:l.length?ce(m,l.join(".")):m};p=f(s[d+1],m)?m:null;}return {ok:true,value:null}};var JR=e=>"maps"in e,qu=(e,t)=>{let r=i=>{let s=O(t,i);if(!s)throw new Error(`composeLens: no stored lens '${i}'`);return s},o=[...r(e).parents,e];if(new Set(o).size!==o.length)throw new Error(`composeLens: '${e}' lists a layer twice in its parents`);let n=null;for(let[i,s]of o.entries()){let a=r(s);if(Object.hasOwn(a,"parent"))throw new Error(`composeLens: '${s}' carries a parent; a layer composes only through \`parents\``);let{id:l,parents:f,...p}=a;if(f.join("\0")!==o.slice(0,i).join("\0"))throw new Error(`composeLens: '${s}' composes with [${f.join(", ")}], not [${o.slice(0,i).join(", ")}] as '${e}' lists`);if(JR(a)!==(i===0))throw new Error(i===0?`composeLens: '${s}' is not a base lens, so it can't head '${e}''s parents`:`composeLens: '${s}' is a base lens, so it can only head a chain`);if(n===null){n=p;continue}let u={parent:n,...p};ls(u),n=u;}return n},Wu=(e,t)=>{let r=pr(e)?[]:mt(e);if(t.length!==r.length+1)throw new Error(`storeLens: the lens has ${r.length+1} layers, base included, but ${t.length} ids`);return [{...ze(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var Uu=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(Uu):e,C=(e,t)=>(e.params.push(Uu(t)),`$${++e.paramIndex}`);var Lt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:aa(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=me(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw Si(e,n.column);if(n.kind==="bridge")throw new Error(`'${e}' crosses a bridge to another source; toSql() has no column for it`);if(n.kind==="fallback"||n.entry.kind==="object"&&n.entry.isList)return o();let i=n.hops.find(p=>p.entry.isList);if(i)throw wi(e,i);let s=t.currentAlias;for(let p of n.hops){let d=Gu(t,s,p);if(!d)return o();s=d;}let a=Ci(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=ln(t.map,n.model,n.entry),u=Gu(t,s,p);return !d||!u?o():{sql:`${Y(u)}.${Y(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],f=aa(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${f}, 'null'::jsonb)`:f,shape:a}},wt=(e,t,r)=>Lt(e,t,r).sql,Gu=(e,t,r)=>{let o=`${t}.${r.field}`,n=e.joinRegistry?.get(o);if(n)return n;if(!e.joinCounter||!e.map)return null;let i=`t${e.joinCounter.n+1}`,s=QR(e.map,r.from,t,r.entry,i);return s?(e.joinCounter.n+=1,e.joins?.push(s),e.joinRegistry?.set(o,i),i):null},QR=(e,t,r,o,n)=>{let i=o.type,s=T(e,i)?.dbName??i,a=ln(e,t,o);if(!a)return null;let l=a.map(({here:f,there:p})=>`${Y(n)}.${Y(p)} = ${Y(r)}.${Y(f)}`).join(" AND ");return `LEFT JOIN ${Y(s)} AS ${Y(n)} ON ${l}`};var Ft={type:"value",value:null},Dt=e=>e.type==="value"&&(e.value===null||e.value===void 0),ZR=(e,t)=>{let r=L(e)??{depth:1,path:e};if(r.depth>1)throw new Error(Ho(e,"toSql"));let o=Lt(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}},Se=(e,t)=>Xo(e,{value:r=>({type:"value",value:r}),path:r=>ZR(r,t),bind:(r,o)=>({type:"value",value:xi(r,o,"toSql")})}),qr=e=>t=>{let r=Se(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Je=e=>vr(e.dateConfig??{},qr(e));var YR={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},qo=(e,t)=>{let r=Kt(e,t);return r?{symbol:YR[r],negated:G.includes(e)}:void 0},Ku=(e,t)=>e.type==="column"?e.sql:C(t,e.value),St=(e,t)=>`(${t} OR ${e} IS NULL)`,ur=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",ps=(e,t,r,o,n)=>{if(Dt(r))return ur(e,o);let i=`${e} ${t} ${Ku(r,n)}`;return o?St(e,i):i},On=(e,t,r,o,n=true)=>{if(!t||t.some(Dt))return ur(e,r,n);let[i,s]=t.map(d=>Ku(d,o)),a=t.some(d=>d.type==="column"),l=a?"SYMMETRIC ":"";if(!r)return `${e} BETWEEN ${l}${i} AND ${s}`;let f=`${e} NOT BETWEEN ${l}${i} AND ${s}`,p=a?`(${f} AND ${i} IS NOT NULL AND ${s} IS NOT NULL)`:f;return n?St(e,p):p};var zu=e=>Array.isArray(e)?e.some(zu):typeof e=="object"&&e!==null,Hu=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=R=>`${C(o,JSON.stringify(R))}::jsonb`,l=le(e.caseInsensitive),f=R=>l?`LOWER(${R})`:R,p=G.includes(e.operator),d=R=>St(n,`NOT (${R})`);if(xe(e,r))return ur(n,p);let u=hi(e.operator,r);if(u)throw u;let m=R=>{if(zu(R))throw _("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(Tr(R))},g=R=>l&&typeof R=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${C(o,R)}))`:l&&Array.isArray(R)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${m(R)})`:`${n} = ${a(R)}`,c=R=>`(${i} = 'string' AND ${f(s)} LIKE ${f(C(o,R))})`,h=R=>{let S=E=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${E}) ELSE FALSE END)`;return l&&typeof R=="string"?S(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${C(o,R)})`):l&&Array.isArray(R)?S(`LOWER(e::text)::jsonb = ${m(R)}`):typeof R=="object"&&R!==null?S(`e = ${a(R)}`):`(${i} = 'array' AND ${n} @> ${a([R])})`},w=R=>typeof R=="string"?`(${c(`%${ge(R)}%`)} OR ${h(R)})`:h(R);switch(e.operator){case y.equals:return r===null?`${n} IS NULL`:g(r);case y.notEquals:return r===null?`${n} IS NOT NULL`:d(g(r));case y.in:case y.notIn:{let{values:R,hasNull:S}=Mt(r),E=R.length?`(${R.map(g).join(" OR ")})`:"FALSE";return e.operator===y.in?S?`(${E} OR ${n} IS NULL)`:E:S?`(NOT ${E} AND ${n} IS NOT NULL)`:d(E)}case y.between:case y.notBetween:{let[R,S]=r,E=`(${i} = jsonb_typeof(${a(R)}) AND ${n} BETWEEN ${a(R)} AND ${a(S)})`;return e.operator===y.between?E:d(E)}case y.contains:return w(r);case y.notContains:return d(w(r));case y.startsWith:return c(`${ge(String(r))}%`);case y.endsWith:return c(`%${ge(String(r))}`);case y.notStartsWith:return d(c(`${ge(String(r))}%`));case y.notEndsWith:return d(c(`%${ge(String(r))}`));case y.matches:case y.notMatches:{let{source:R,caseInsensitive:S}=rr(r),E=`(${i} = 'string' AND ${s} ~${S?"*":""} ${C(o,on(R))})`;return e.operator===y.matches?E:d(E)}}let b=qo(e.operator,"field")?.symbol;if(b)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${b} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var Ju=e=>typeof e=="object"&&xr(e)!==null,xn=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=C(r,Je(r).timeZone);return `(CASE WHEN btrim(${e}) ~ '^-?[0-9]+(\\.[0-9]+)?$' THEN to_timestamp(btrim(${e})::numeric / 1000) WHEN ${e} ~* '[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]+)?)?\\s*(z|[+-][0-9]{2}(:?[0-9]{2})?)\\s*$' OR ${e} ~* '\\m(gmt|utc)\\M' THEN (${e})::timestamptz ELSE (${e})::timestamp AT TIME ZONE ${o} END)`},fs=e=>Object.values(e).some(Ju),eO=(e,t,r)=>{let o=Rr(r),n=o?"int":"double precision";if(typeof e=="number"||!Ju(e)){let a=js(e,qr(t),r);return `${C(t,a)}::${n}`}let i=Se(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},tO=(e,t)=>`make_interval(${Nf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Qt[i].interval===o).map(i=>{let s=eO(e[i],t,i),{factor:a}=Qt[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,En=(e,t,r,o)=>{let n=Je(o).timeZone;if(e.type==="value"&&!fs(t)){let l=Er(t,qr(o));return e.value===null||e.value===void 0||l===null?Ft:{type:"value",value:Yt(pt__default.default(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:xn(e,o):`${C(o,e.value??null)}::timestamptz`,s=C(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${tO(t,o)}) AT TIME ZONE ${s})`}};var Ma=(e,t,r)=>{let o=Se(t,r);if(e.type==="value"&&o.type==="value"){let i=$r(o.value);return i===null?Ft:{type:"value",value:Pr(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${C(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,$r)})`}},Qu=(e,t,r)=>{if(Dt(e))return Ft;let o=Se(t,r);if(o.type==="column")throw new Error(`A row path on a date offset ('${t.path}') is check-only; evaluate with check()`);let n=$o(o.value);return n===null?Ft:En(e,...n,r)};var Zu,Yu=e=>{Zu=e;},cr=(e,t)=>Zu(e,t);var us=(e,t,r)=>{let o=yi(e);if(o)throw o;let n=r===void 0?Lt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!Nr(e))throw Ro(e.field);let i=r===void 0,s=Ue(e)&&t.map&&t.currentModel?(L(e.path)??{path:e.path}).path:null;if(s!==null){let S=To(Q(e.field,t.map,t.currentModel),Q(s,t.map,t.currentModel),e.operator);if(S)throw _("toSql",`Comparing '${e.field}' with the column '${e.path}'`,S)}if(n.shape==="enum"&&!zt.includes(e.operator)){let S=ec(e,t),E=Q(e.field,t.map,t.currentModel),x=S!==ds&&E&&!xe(e,S)?Xi(e,S,E,t.map):null;if(x){let A=`${n.sql}::text = ANY(${C(t,x.values)})`;return x.matchesNull?St(n.sql,A):A}}let a=n.shape==="enum"&&!zt.includes(e.operator)&&s===null?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!zt.includes(e.operator)){let S=ec(e,t);if(S===ds)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return Hu(e,wt(e.field,t,{jsonb:true}),S,t)}let f=S=>{if(S.type==="column"&&!S.computed&&(S.shape==="json"||S.shape==="json-path"))throw _("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(Le.includes(e.operator)){let S=oc(e,t);return S?.forEach(f),On(a.sql,S,G.includes(e.operator),t,i)}let p=tc(e,t);if(f(p),p.type==="column"&&vt(e.operator,"field")==="string"&&!_r(n.shape)&&n.shape!=="list")throw _("toSql",`'${e.operator}' on '${e.field}'`,"it is not text");if(p.type==="column"&&p.computed&&n.shape==="text"&&r===void 0)throw _("toSql",`'${e.field}' against a value moved by an offset`,"an offset moves a number or a date");let d=a.sql,u=qo(e.operator,"field");if(u)return ps(d,u.symbol,p,false,t);if(p.type==="value"&&xe(e,p.value))return ur(d,G.includes(e.operator),i);let m=p.type==="column"&&p.computed===true,g=le(e.caseInsensitive)&&(p.type==="column"?!m&&_r(n.shape)&&_r(p.shape):ir(n.shape,p.value)),c=S=>g?`LOWER(${S})`:S,h=S=>g?Tr(S):S;if(n.shape==="list"&&p.type==="column"&&ot.includes(e.operator)){if(Q(e.field,t.map,t.currentModel)?.type!=="String"||!_r(p.shape))throw _("toSql",`'${e.operator}' on the list '${e.field}' with a member read per row ('${e.path}')`,"Postgres matches a member of the list's own type only");let S=le(e.caseInsensitive)&&_r(p.shape)?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${p.sql}))`:`array_position(${d}, ${p.sql}) IS NOT NULL`;return e.operator===y.contains?`(${p.sql} IS NOT NULL AND ${S})`:`(${d} IS NULL OR (${p.sql} IS NOT NULL AND NOT ${S}))`}if(n.shape==="list"&&p.type==="value"){let S=le(e.caseInsensitive)&&ir("text",p.value);if(ot.includes(e.operator)){let E=C(t,p.value),x=S?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${E}))`:`array_position(${d}, ${E}) IS NOT NULL`;return e.operator===y.contains?x:`NOT ${x}`}if(Ht.includes(e.operator)&&Array.isArray(p.value))return cr(Ni(e,p.value),t);if(rO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(S&&it.includes(e.operator)&&Array.isArray(p.value)){let E=C(t,Tr(p.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${E})`;return e.operator===y.equals?x:St(d,`NOT ${x}`)}}let w=p.type==="value"?p.value:void 0,b=p.type==="column"?p.sql:void 0;if(b!==void 0&&(Ht.includes(e.operator)||["pattern","string"].includes(vt(e.operator,"field"))))throw _("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let R=S=>i?St(d,S):S;switch(e.operator){case y.equals:return m?`${d} = ${b}`:b!==void 0?`${c(d)} IS NOT DISTINCT FROM ${c(b)}`:w===null?`${d} IS NULL`:`${c(d)} = ${c(C(t,w))}`;case y.notEquals:return m?R(`${d} <> ${b}`):b!==void 0?`${c(d)} IS DISTINCT FROM ${c(b)}`:w===null?`${d} IS NOT NULL`:R(`${c(d)} <> ${c(C(t,w))}`);case y.in:{let{values:S,hasNull:E}=Mt(w);if(!S.length)return E?`${d} IS NULL`:"FALSE";let x=`${c(d)} = ANY(${C(t,h(S))})`;return E?R(x):x}case y.notIn:{let{values:S,hasNull:E}=Mt(w);if(!S.length)return E?`${d} IS NOT NULL`:"TRUE";let x=`${c(d)} <> ALL(${C(t,h(S))})`;return E?`(${x} AND ${d} IS NOT NULL)`:R(x)}case y.contains:return `${c(d)} LIKE ${c(C(t,`%${ge(String(w))}%`))}`;case y.notContains:return R(`${c(d)} NOT LIKE ${c(C(t,`%${ge(String(w))}%`))}`);case y.startsWith:return `${c(d)} LIKE ${c(C(t,`${ge(String(w))}%`))}`;case y.endsWith:return `${c(d)} LIKE ${c(C(t,`%${ge(String(w))}`))}`;case y.notStartsWith:return R(`${c(d)} NOT LIKE ${c(C(t,`${ge(String(w))}%`))}`);case y.notEndsWith:return R(`${c(d)} NOT LIKE ${c(C(t,`%${ge(String(w))}`))}`);case y.matches:return Xu(d,w,false,t);case y.notMatches:return R(Xu(d,w,true,t));case y.isEmpty:case y.notEmpty:return Ca(e.field,n,e.operator===y.isEmpty,t,ki(e,t.map,t.currentModel));case y.exists:return `${d} IS NOT NULL`;case y.notExists:return `${d} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},tc=(e,t)=>{if(zt.includes(e.operator))return {type:"value",value:void 0};let r=rc(e,Se(e,t),t);return e.offset===void 0?r:Ma(r,e.offset,t)},rc=(e,t,r)=>t.type==="column"?t:{type:"value",value:Gi(e,t.value,nr(e.field,r.map,r.currentModel),"toSql",()=>Je(r).timeZone)},oc=(e,t)=>{let r=rc(e,Se(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=Ge(o,e.operator);return n.some(i=>i!=null&&!fe(i))&&Po(o,e.operator),De(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:Ma(s,e.offset,t)})},Xu=(e,t,r,o)=>{if(typeof t!="string"&&!(t instanceof RegExp))throw new Error("matches requires a string or RegExp pattern");let{source:n,caseInsensitive:i}=rr(t);return `${e} ${r?"!":""}~${i?"*":""} ${C(o,on(n))}`},ds=Symbol("not known"),ec=(e,t)=>{if(Le.includes(e.operator)){let o=oc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):ds:null}let r=tc(e,t);return r.type==="value"?r.value:ds},Ca=(e,t,r,o,n)=>{let{sql:i,shape:s}=t;if(s==="list")return r?`(${i} IS NULL OR cardinality(${i}) = 0)`:`cardinality(${i}) > 0`;if(s==="json"||s==="json-path"){let a=wt(e,o,{jsonb:true}),l=["'null'::jsonb",...n?[`'""'::jsonb`]:[],"'[]'::jsonb"].join(", ");return r?`(${a} IS NULL OR ${a} IN (${l}))`:`${a} NOT IN (${l})`}return n?r?`(${i} IS NULL OR ${i} = '')`:`(${i} IS NOT NULL AND ${i} <> '')`:r?`${i} IS NULL`:`${i} IS NOT NULL`},rO=e=>vt(e,"field")==="string"&&!ot.includes(e);var nc=(e,t)=>{if(Te(e))throw at("toSql");if(e.condition)throw new Error("Aggregate condition filtering is not yet supported by toSql(). Use check() for in-memory evaluation or toPrisma() for database queries.");let r=oO(e,t);return us(e,t,r)},oO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!nt.includes(r))throw Zt(r);let n=r==="sum"?"SUM":"AVG",i=Ce({field:e.field},t.map,t.currentModel);if(i==="relation"||Q(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 toSql() cannot aggregate relation lists. Use toPrisma() instead.`);if(o?.includes("."))throw new Error(`aggregate.field '${o}' contains a nested path \u2014 toSql() only supports flat field names. Use check() for nested paths.`);let s=i==="list",a=wt(e.field,t,{jsonb:!s}),l=s?a:`(CASE WHEN jsonb_typeof(${a}) = 'array' THEN ${a} END)`;if(s){if(o)throw new Error("aggregate.field is not supported for native array types. Use a JSONB column for object arrays.");return `(SELECT ${`COALESCE(${n}(elem), 0)`} FROM unnest(${l}) AS elem)`}if(o){let d=`(elem->>${la(o)})::numeric`;return `(SELECT ${`COALESCE(${n}(${d}), 0)`} FROM jsonb_array_elements(${l}) AS elem)`}return `(SELECT ${`COALESCE(${n}(elem::numeric), 0)`} FROM jsonb_array_elements_text(${l}) AS elem)`};var ic=(e,t)=>{if(Te(e))throw at("toSql");if(!e.field)throw mi("toSql");if(Ce({field:e.field},t.map,t.currentModel)==="relation"||Q(e.field,t.map,t.currentModel)?.kind==="object")throw new Error(`Field '${e.field}' is a relation \u2014 relation arrays are not supported in SQL; use toPrisma().`);switch(e.arrayOperator){case $.empty:case $.notEmpty:{let o=Lt(e.field,t),n=e.arrayOperator===$.empty;if(o.shape==="list")return Ca(e.field,o,n,t,false);let i=wt(e.field,t,{jsonb:true});return `(CASE WHEN jsonb_typeof(${i}) = 'array' THEN jsonb_array_length(${i}) ${n?"=":">"} 0 ELSE ${n?"TRUE":"FALSE"} END)`}case $.all:case $.any:case $.none:case $.atLeast:case $.atMost:case $.exactly:throw new Error(`Array operator '${e.arrayOperator}' with conditions is not supported in SQL. Use application-level filtering for complex array operations.`);default:throw se(e.arrayOperator,"array")}};var nO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:xn(e,t),computed:true}:e,sc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",ac=e=>_("toSql",`A date rule on '${e}'`,"it is not a date column"),lc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:xn(e,r),ends:t.map(i=>nO(i,r))}:{lhs:e.sql,ends:t}},pc=(e,t)=>{let r=Lt(e.field,t);if(!sc(r.shape))throw ac(e.field);let o=Se(e,t);if(o.type==="column"&&!sc(o.shape))throw ac(String(e.path??e.field));let n=qo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=lc(r,[sO(e,t)],t);return ps(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return On(r.sql,null,a,t);let{lhs:l,ends:f}=lc(r,s,t);return On(l,f,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(aO(e,t),G.includes(e.dateOperator));case v.between:case v.notBetween:return i(lO(e,t),G.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=Se(e,t);if(a.type==="column")throw _("toSql",`A weekday list read from the row ('${e.path}')`);let l=Is(a.value);if(l===null)return ur(r.sql,s);let f=C(t,Je(t).timeZone),p=C(t,l),d=`EXTRACT(DOW FROM (${xn(r,t)} AT TIME ZONE ${f}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${p})`:St(r.sql,`${d} <> ALL(${p})`)}default:throw se(e.dateOperator,"date")}},fc=e=>({type:"value",value:Zo(Je(e)).toDate()}),iO=(e,t,r)=>{let o=Oe(e);if(o&&fs(o[0]))return En(fc(r),...o,r);let n=lt(e,qr(r));return n===null?Ft:{type:"value",value:Oo(n,t,Je(r)).toDate()}},dc=(e,t,r)=>e==null?Ft:te(e)?iO(e,t,r):{type:"value",value:vi(e,Je(r).timeZone)},uc=(e,t,r)=>t.offset===void 0?e:Qu(e,t.offset,r),sO=(e,t)=>{let r=Se(e,t),o=r.type==="column"?r:dc(r.value,e.dateOperator,t);return uc(o,e,t)},aO=(e,t)=>{let r=Se(e,t);if(Dt(r))return null;if(r.type==="column"||!te(r.value))throw qe(e.dateOperator);let o=Oe(r.value);if(o&&fs(o[0])){let s=fc(t),a=En(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=lt(r.value,qr(t));if(n===null)return null;let i=xo(n,Je(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},lO=(e,t)=>{let r=Se(e,t);if(Dt(r))return null;let o=r.type==="value"?r.value:void 0,n=Ge(o,e.dateOperator).map(l=>dc(l,e.dateOperator,t));if(n.some(Dt))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?De([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>uc(l,e,t))};var cc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>cr(o,t)).join(" AND ")})`,mc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>cr(o,t)).join(" OR ")})`,gc=(e,t)=>{if(dt(e,t.map,t.currentModel))return "TRUE";let r=cr(e.if,t),o=cr(e.then,t);if(e.else!==void 0){let n=cr(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var Pn=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(ri(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&kr(e.field,t.map,t.currentModel))return "TRUE";let r=pe(e);(r==="field"||r==="date")&&_i(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return cc(o,t);case "any":return mc(o,t);case "if":return gc(o,t);case "array":return ic(o,t);case "aggregate":return nc(o,t);case "date":return pc(o,t);case "field":return us(o,t);default:throw st()}};Yu(Pn);var ka=e=>{let t=je(e?.map,e?.mapName,"toSql"),r=!!(t&&e?.model),o=e?.alias??(r?"t0":void 0);return {params:[],paramIndex:0,dateConfig:{now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},map:t,currentModel:e?.model,currentAlias:o,joinCounter:r?{n:0}:void 0,joins:r?[]:void 0,joinRegistry:r?new Map:void 0}},pO=(e,t)=>Yi(e,t,"toSql",fO),fO=(e,t)=>{let r=ka(t);return {sql:Pn(e,r),params:r.params,joins:r.joins??[]}};var yc=(e,t)=>{let[r,...o]=t,n=e[r];if(o.length===0){n===void 0&&(e[r]=true);return}let i=n!==void 0&&n!==true?n.select:{};yc(i,o),e[r]={select:i};},dO=(e,t,r,o,n)=>{let{hops:i}=me(n,t,o),s=n.split("."),a=i.at(-1)?.entry.type??o,l=s[i.length];for(let{endpoints:f}of e.bridges??[]){let[p,d]=f;for(let[u,m]of [[p,d],[d,p]])if(u.fieldMap===r&&u.model===a&&we(m)===l)return [...s.slice(0,i.length),u.on].join(".")}throw new N(`'${n}' crosses no bridge the lens declares on ${a}`,"not_in_lens")},uO=(e,t,r,o,n,i,s,a,l,f)=>{let p=os(`source '${n}' at '${t}'`,()=>wn(a,{...l,map:e,mapName:r,model:o})),d=p.steps.at(-1).where,u=p.steps.filter(A=>A.operation!=="where"),m=je(e,r,"toPrisma"),g=A=>f!==void 0&&me(A,m,o).kind==="bridge",c=i!==void 0&&!g(i)?i:void 0,h=(s??[]).map(A=>g(A)?void 0:A),w=f===void 0?[]:[...new Set([...Ve(f),...i!==void 0&&c===void 0?[i]:[],...(s??[]).filter(g)].map(A=>g(A)?dO(e,m,r,o,A):A))].filter(A=>A!==n),b=c?.includes(".")?c:void 0,R=[...h.filter(A=>A!==void 0),...b?[b]:[],...w],S={[n]:true,...c&&!b?{[c]:true}:{}};for(let A of R)yc(S,A.split("."));let E={model:o,...s||b||f!==void 0?{}:{distinct:c?[n,c]:[n]},select:S,where:d,...u.length?{steps:p.steps}:{}},x;try{let A=w.find(Pe=>{let ae=me(Pe,m,o);return ae.kind!=="direct"||ae.hops.length>0||ae.entry.kind==="object"});if(A!==void 0)throw new Error(`the re-check reads '${A}' through a relation, which flat SQL rows can't hold \u2014 run the Prisma query`);let re=ka({...l,map:e,mapName:r,model:o,alias:"t0"}),q=Pn(a,re),j=b?wt(b,re):void 0,W=h.map((Pe,ae)=>Pe===void 0?void 0:`${wt(Pe,re)} AS ${Y(`__group_${ae}`)}`),jt=re.joins??[],$n=jt.length?` ${jt.join(" ")}`:"",mr=q?.trim()?` WHERE ${q}`:"",X=Y("t0"),gr=[`${X}.${Y(n)}`,...j?[`${j} AS ${Y("__label")}`]:c?[`${X}.${Y(c)}`]:[],...W.filter(Pe=>Pe!==void 0),...w.map(Pe=>`${X}.${Y(Pe)}`)].join(", "),be=T(O(e.maps,r),o)?.dbName??o;x={sql:`SELECT DISTINCT ${gr} FROM ${Y(be)} AS ${X}${$n}${mr}`,params:re.params};}catch(A){x={sql:null,params:[],error:A instanceof Error?A.message:String(A)};}return {prisma:E,sql:x}},hc=(e,t={})=>{let{lens:r}=k(e);return $u(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:f})=>{let p=l,{prisma:d,sql:u}=uO(r,o,n.mapName,n.model,i,s,a,p,t,f);return {path:o,mapName:n.mapName,model:n.model,field:i,...s!==void 0?{label:s}:{},...a!==void 0?{groupBy:a}:{},composedWhere:p,prisma:d,sql:u,...f!==void 0?{recheck:f}:{}}})};var wc=(e,t)=>{let r=k(e);return Vr(r,gt(r),t).resolution};/*! Bundled license information:
4
4
 
5
5
  lodash-es/lodash.js:
6
6
  (**
@@ -12,5 +12,5 @@ lodash-es/lodash.js:
12
12
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
13
13
  * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
14
14
  *)
15
- */exports.ALL_KINDS=ni;exports.ArrayOperator=P;exports.DateOperator=v;exports.FieldKind=z;exports.LensRefusal=A;exports.NUMERIC_KINDS=De;exports.Operator=y;exports.RuleTarget=jS;exports.UsageError=Z;exports.ValueShape=Ot;exports.assertValidFieldMaps=Td;exports.assertValidNarrowing=as;exports.assertValidRule=Tb;exports.bindLens=Hd;exports.bindRule=_s;exports.check=me;exports.coerceRule=Qd;exports.composeLens=Iu;exports.createLens=Zd;exports.describeRule=Yd;exports.describeRuleSources=Xd;exports.engineGlobals=hr;exports.executePrismaPlan=gu;exports.getAggregateOperators=BS;exports.getArrayOperators=VS;exports.getLensRoot=Ue;exports.getOperatorsForKind=IS;exports.getValueShape=xt;exports.indexBridges=od;exports.lensVisit=Ru;exports.listBindings=en;exports.listLensBindings=Kd;exports.materializeSourceQuery=Mu;exports.materializeSources=Cu;exports.narrowRule=Lo;exports.parseScopeRef=k;exports.projectLens=Du;exports.projectRows=Tu;exports.readLensValue=ju;exports.readScopeRef=Te;exports.stitchFieldMaps=Ti;exports.storeLens=Vu;exports.toLensSelect=Au;exports.toPrisma=wn;exports.toSourceQueries=mc;exports.toSql=iO;exports.validateFieldMaps=Ws;exports.validateNarrowing=Aa;exports.validateRule=_o;exports.validateRuleInLens=Do;exports.walkLensPath=gc;//# sourceMappingURL=index.cjs.map
15
+ */exports.ALL_KINDS=ii;exports.ArrayOperator=$;exports.DateOperator=v;exports.FieldKind=H;exports.LensRefusal=N;exports.NUMERIC_KINDS=Be;exports.Operator=y;exports.RuleTarget=BS;exports.UsageError=J;exports.ValueShape=$t;exports.assertValidFieldMaps=kd;exports.assertValidNarrowing=ls;exports.assertValidRule=kb;exports.bindLens=Zd;exports.bindRule=Ls;exports.check=de;exports.coerceRule=Xd;exports.composeLens=qu;exports.createLens=eu;exports.describeRule=tu;exports.describeRuleSources=ru;exports.engineGlobals=br;exports.executePrismaPlan=wu;exports.getAggregateOperators=US;exports.getArrayOperators=WS;exports.getLensRoot=ze;exports.getOperatorsForKind=qS;exports.getValueShape=vt;exports.indexBridges=sd;exports.lensVisit=Eu;exports.listBindings=tn;exports.listLensBindings=Jd;exports.materializeSourceQuery=Lu;exports.materializeSources=_u;exports.narrowRule=Do;exports.orderRecords=rd;exports.parseScopeRef=L;exports.projectLens=Vu;exports.projectRows=ku;exports.readLensValue=Bu;exports.readScopeRef=_e;exports.stitchFieldMaps=Mi;exports.storeLens=Wu;exports.toLensSelect=Mu;exports.toPrisma=wn;exports.toSourceQueries=hc;exports.toSql=pO;exports.validateFieldMaps=Gs;exports.validateNarrowing=Ta;exports.validateRule=Lo;exports.validateRuleInLens=Io;exports.walkLensPath=wc;//# sourceMappingURL=index.cjs.map
16
16
  //# sourceMappingURL=index.cjs.map