@inixiative/json-rules 3.6.0 → 3.7.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.js CHANGED
@@ -1,6 +1,6 @@
1
- import ut from'dayjs';import XS from'dayjs/plugin/isoWeek.js';import eb from'dayjs/plugin/quarterOfYear.js';import tb from'dayjs/plugin/timezone.js';import rb from'dayjs/plugin/utc.js';import db from'dayjs/plugin/isSameOrAfter.js';import ub from'dayjs/plugin/isSameOrBefore.js';import {distance}from'fastest-levenshtein';import {RE2JS}from're2js';var ws=(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 vc=typeof global=="object"&&global&&global.Object===Object&&global,Tn=vc;var Ac=typeof self=="object"&&self&&self.Object===Object&&self,Nc=Tn||Ac||Function("return this")(),ee=Nc;var Tc=ee.Symbol,ye=Tc;var Ba=Object.prototype,Cc=Ba.hasOwnProperty,Mc=Ba.toString,zo=ye?ye.toStringTag:void 0;function kc(e){var t=Cc.call(e,zo),r=e[zo];try{e[zo]=void 0;var o=!0;}catch{}var n=Mc.call(e);return o&&(t?e[zo]=r:delete e[zo]),n}var qa=kc;var _c=Object.prototype,Lc=_c.toString;function Dc(e){return Lc.call(e)}var Wa=Dc;var Fc="[object Null]",jc="[object Undefined]",Ua=ye?ye.toStringTag:void 0;function Ic(e){return e==null?e===void 0?jc:Fc:Ua&&Ua in Object(e)?qa(e):Wa(e)}var Pe=Ic;function Vc(e){return e!=null&&typeof e=="object"}var re=Vc;var Bc="[object Symbol]";function qc(e){return typeof e=="symbol"||re(e)&&Pe(e)==Bc}var Kr=qc;function Wc(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 Ka=Wc;var Uc=Array.isArray,G=Uc;var Ga=ye?ye.prototype:void 0,za=Ga?Ga.toString:void 0;function Ha(e){if(typeof e=="string")return e;if(G(e))return Ka(e,Ha)+"";if(Kr(e))return za?za.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var Ja=Ha;function Gc(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var z=Gc;function zc(e){return e}var Gr=zc;var Hc="[object AsyncFunction]",Jc="[object Function]",Qc="[object GeneratorFunction]",Zc="[object Proxy]";function Yc(e){if(!z(e))return false;var t=Pe(e);return t==Jc||t==Qc||t==Hc||t==Zc}var zr=Yc;var Xc=ee["__core-js_shared__"],Cn=Xc;var Qa=(function(){var e=/[^.]+$/.exec(Cn&&Cn.keys&&Cn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function em(e){return !!Qa&&Qa in e}var Za=em;var tm=Function.prototype,rm=tm.toString;function om(e){if(e!=null){try{return rm.call(e)}catch{}try{return e+""}catch{}}return ""}var Et=om;var nm=/[\\^$.*+?()[\]{}|]/g,im=/^\[object .+?Constructor\]$/,sm=Function.prototype,am=Object.prototype,lm=sm.toString,pm=am.hasOwnProperty,fm=RegExp("^"+lm.call(pm).replace(nm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dm(e){if(!z(e)||Za(e))return false;var t=zr(e)?fm:im;return t.test(Et(e))}var Ya=dm;function um(e,t){return e?.[t]}var Xa=um;function cm(e,t){var r=Xa(e,t);return Ya(r)?r:void 0}var be=cm;var mm=be(ee,"WeakMap"),Mn=mm;var el=Object.create,gm=(function(){function e(){}return function(t){if(!z(t))return {};if(el)return el(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),tl=gm;function ym(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 rl=ym;function hm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var kn=hm;var wm=800,Sm=16,bm=Date.now;function Rm(e){var t=0,r=0;return function(){var o=bm(),n=Sm-(o-r);if(r=o,n>0){if(++t>=wm)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var ol=Rm;function Om(e){return function(){return e}}var nl=Om;var xm=(function(){try{var e=be(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Hr=xm;var Em=Hr?function(e,t){return Hr(e,"toString",{configurable:true,enumerable:false,value:nl(t),writable:true})}:Gr,il=Em;var Pm=ol(il),sl=Pm;function $m(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var al=$m;var vm=9007199254740991,Am=/^(?:0|[1-9]\d*)$/;function Nm(e,t){var r=typeof e;return t=t??vm,!!t&&(r=="number"||r!="symbol"&&Am.test(e))&&e>-1&&e%1==0&&e<t}var Bt=Nm;function Tm(e,t,r){t=="__proto__"&&Hr?Hr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var Jr=Tm;function Cm(e,t){return e===t||e!==e&&t!==t}var Xe=Cm;var Mm=Object.prototype,km=Mm.hasOwnProperty;function _m(e,t,r){var o=e[t];(!(km.call(e,t)&&Xe(o,r))||r===void 0&&!(t in e))&&Jr(e,t,r);}var Qr=_m;function Lm(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?Jr(r,a,l):Qr(r,a,l);}return r}var et=Lm;var ll=Math.max;function Dm(e,t,r){return t=ll(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=ll(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),rl(e,this,a)}}var pl=Dm;function Fm(e,t){return sl(pl(e,t,Gr),e+"")}var fl=Fm;var jm=9007199254740991;function Im(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=jm}var Zr=Im;function Vm(e){return e!=null&&Zr(e.length)&&!zr(e)}var tt=Vm;function Bm(e,t,r){if(!z(r))return false;var o=typeof t;return (o=="number"?tt(r)&&Bt(t,r.length):o=="string"&&t in r)?Xe(r[t],e):false}var _n=Bm;function qm(e){return fl(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&&_n(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 dl=qm;var Wm=Object.prototype;function Um(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Wm;return e===r}var Yr=Um;function Km(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var ul=Km;var Gm="[object Arguments]";function zm(e){return re(e)&&Pe(e)==Gm}var Ss=zm;var cl=Object.prototype,Hm=cl.hasOwnProperty,Jm=cl.propertyIsEnumerable,Qm=Ss((function(){return arguments})())?Ss:function(e){return re(e)&&Hm.call(e,"callee")&&!Jm.call(e,"callee")},wr=Qm;function Zm(){return false}var ml=Zm;var hl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gl=hl&&typeof module=="object"&&module&&!module.nodeType&&module,Ym=gl&&gl.exports===hl,yl=Ym?ee.Buffer:void 0,Xm=yl?yl.isBuffer:void 0,eg=Xm||ml,Pt=eg;var tg="[object Arguments]",rg="[object Array]",og="[object Boolean]",ng="[object Date]",ig="[object Error]",sg="[object Function]",ag="[object Map]",lg="[object Number]",pg="[object Object]",fg="[object RegExp]",dg="[object Set]",ug="[object String]",cg="[object WeakMap]",mg="[object ArrayBuffer]",gg="[object DataView]",yg="[object Float32Array]",hg="[object Float64Array]",wg="[object Int8Array]",Sg="[object Int16Array]",bg="[object Int32Array]",Rg="[object Uint8Array]",Og="[object Uint8ClampedArray]",xg="[object Uint16Array]",Eg="[object Uint32Array]",U={};U[yg]=U[hg]=U[wg]=U[Sg]=U[bg]=U[Rg]=U[Og]=U[xg]=U[Eg]=true;U[tg]=U[rg]=U[mg]=U[og]=U[gg]=U[ng]=U[ig]=U[sg]=U[ag]=U[lg]=U[pg]=U[fg]=U[dg]=U[ug]=U[cg]=false;function Pg(e){return re(e)&&Zr(e.length)&&!!U[Pe(e)]}var wl=Pg;function $g(e){return function(t){return e(t)}}var Xr=$g;var Sl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ho=Sl&&typeof module=="object"&&module&&!module.nodeType&&module,vg=Ho&&Ho.exports===Sl,bs=vg&&Tn.process,Ag=(function(){try{var e=Ho&&Ho.require&&Ho.require("util").types;return e||bs&&bs.binding&&bs.binding("util")}catch{}})(),$t=Ag;var bl=$t&&$t.isTypedArray,Ng=bl?Xr(bl):wl,eo=Ng;var Tg=Object.prototype,Cg=Tg.hasOwnProperty;function Mg(e,t){var r=G(e),o=!r&&wr(e),n=!r&&!o&&Pt(e),i=!r&&!o&&!n&&eo(e),s=r||o||n||i,a=s?ul(e.length,String):[],l=a.length;for(var f in e)(t||Cg.call(e,f))&&!(s&&(f=="length"||n&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||Bt(f,l)))&&a.push(f);return a}var Ln=Mg;function kg(e,t){return function(r){return e(t(r))}}var Dn=kg;var _g=Dn(Object.keys,Object),Rl=_g;var Lg=Object.prototype,Dg=Lg.hasOwnProperty;function Fg(e){if(!Yr(e))return Rl(e);var t=[];for(var r in Object(e))Dg.call(e,r)&&r!="constructor"&&t.push(r);return t}var Ol=Fg;function jg(e){return tt(e)?Ln(e):Ol(e)}var rt=jg;function Ig(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var xl=Ig;var Vg=Object.prototype,Bg=Vg.hasOwnProperty;function qg(e){if(!z(e))return xl(e);var t=Yr(e),r=[];for(var o in e)o=="constructor"&&(t||!Bg.call(e,o))||r.push(o);return r}var El=qg;function Wg(e){return tt(e)?Ln(e,true):El(e)}var ot=Wg;var Ug=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Kg=/^\w*$/;function Gg(e,t){if(G(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Kr(e)?true:Kg.test(e)||!Ug.test(e)||t!=null&&e in Object(t)}var to=Gg;var zg=be(Object,"create"),vt=zg;function Hg(){this.__data__=vt?vt(null):{},this.size=0;}var Pl=Hg;function Jg(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var $l=Jg;var Qg="__lodash_hash_undefined__",Zg=Object.prototype,Yg=Zg.hasOwnProperty;function Xg(e){var t=this.__data__;if(vt){var r=t[e];return r===Qg?void 0:r}return Yg.call(t,e)?t[e]:void 0}var vl=Xg;var ey=Object.prototype,ty=ey.hasOwnProperty;function ry(e){var t=this.__data__;return vt?t[e]!==void 0:ty.call(t,e)}var Al=ry;var oy="__lodash_hash_undefined__";function ny(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=vt&&t===void 0?oy:t,this}var Nl=ny;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=Pl;ro.prototype.delete=$l;ro.prototype.get=vl;ro.prototype.has=Al;ro.prototype.set=Nl;var Rs=ro;function iy(){this.__data__=[],this.size=0;}var Tl=iy;function sy(e,t){for(var r=e.length;r--;)if(Xe(e[r][0],t))return r;return -1}var qt=sy;var ay=Array.prototype,ly=ay.splice;function py(e){var t=this.__data__,r=qt(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():ly.call(t,r,1),--this.size,true}var Cl=py;function fy(e){var t=this.__data__,r=qt(t,e);return r<0?void 0:t[r][1]}var Ml=fy;function dy(e){return qt(this.__data__,e)>-1}var kl=dy;function uy(e,t){var r=this.__data__,o=qt(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var _l=uy;function oo(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]);}}oo.prototype.clear=Tl;oo.prototype.delete=Cl;oo.prototype.get=Ml;oo.prototype.has=kl;oo.prototype.set=_l;var Wt=oo;var cy=be(ee,"Map"),Ut=cy;function my(){this.size=0,this.__data__={hash:new Rs,map:new(Ut||Wt),string:new Rs};}var Ll=my;function gy(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Dl=gy;function yy(e,t){var r=e.__data__;return Dl(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Kt=yy;function hy(e){var t=Kt(this,e).delete(e);return this.size-=t?1:0,t}var Fl=hy;function wy(e){return Kt(this,e).get(e)}var jl=wy;function Sy(e){return Kt(this,e).has(e)}var Il=Sy;function by(e,t){var r=Kt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Vl=by;function no(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]);}}no.prototype.clear=Ll;no.prototype.delete=Fl;no.prototype.get=jl;no.prototype.has=Il;no.prototype.set=Vl;var Sr=no;var Ry="Expected a function";function Os(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Ry);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(Os.Cache||Sr),r}Os.Cache=Sr;var Bl=Os;var Oy=500;function xy(e){var t=Bl(e,function(o){return r.size===Oy&&r.clear(),o}),r=t.cache;return t}var ql=xy;var Ey=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Py=/\\(\\)?/g,$y=ql(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ey,function(r,o,n,i){t.push(n?i.replace(Py,"$1"):o||r);}),t}),Wl=$y;function vy(e){return e==null?"":Ja(e)}var Ul=vy;function Ay(e,t){return G(e)?e:to(e,t)?[e]:Wl(Ul(e))}var io=Ay;function Ty(e){if(typeof e=="string"||Kr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var nt=Ty;function Cy(e,t){t=io(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[nt(t[r++])];return r&&r==o?e:void 0}var Fn=Cy;function My(e,t,r){var o=e==null?void 0:Fn(e,t);return o===void 0?r:o}var Kl=My;function ky(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var jn=ky;var _y=Dn(Object.getPrototypeOf,Object),so=_y;var Ly="[object Object]",Dy=Function.prototype,Fy=Object.prototype,Gl=Dy.toString,jy=Fy.hasOwnProperty,Iy=Gl.call(Object);function Vy(e){if(!re(e)||Pe(e)!=Ly)return false;var t=so(e);if(t===null)return true;var r=jy.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Gl.call(r)==Iy}var $e=Vy;function By(){this.__data__=new Wt,this.size=0;}var zl=By;function qy(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Hl=qy;function Wy(e){return this.__data__.get(e)}var Jl=Wy;function Uy(e){return this.__data__.has(e)}var Ql=Uy;var Ky=200;function Gy(e,t){var r=this.__data__;if(r instanceof Wt){var o=r.__data__;if(!Ut||o.length<Ky-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sr(o);}return r.set(e,t),this.size=r.size,this}var Zl=Gy;function ao(e){var t=this.__data__=new Wt(e);this.size=t.size;}ao.prototype.clear=zl;ao.prototype.delete=Hl;ao.prototype.get=Jl;ao.prototype.has=Ql;ao.prototype.set=Zl;var it=ao;function zy(e,t){return e&&et(t,rt(t),e)}var Yl=zy;function Hy(e,t){return e&&et(t,ot(t),e)}var Xl=Hy;var op=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ep=op&&typeof module=="object"&&module&&!module.nodeType&&module,Jy=ep&&ep.exports===op,tp=Jy?ee.Buffer:void 0,rp=tp?tp.allocUnsafe:void 0;function Qy(e,t){if(t)return e.slice();var r=e.length,o=rp?rp(r):new e.constructor(r);return e.copy(o),o}var In=Qy;function Zy(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 np=Zy;function Yy(){return []}var Vn=Yy;var Xy=Object.prototype,eh=Xy.propertyIsEnumerable,ip=Object.getOwnPropertySymbols,th=ip?function(e){return e==null?[]:(e=Object(e),np(ip(e),function(t){return eh.call(e,t)}))}:Vn,lo=th;function rh(e,t){return et(e,lo(e),t)}var sp=rh;var oh=Object.getOwnPropertySymbols,nh=oh?function(e){for(var t=[];e;)jn(t,lo(e)),e=so(e);return t}:Vn,Bn=nh;function ih(e,t){return et(e,Bn(e),t)}var ap=ih;function sh(e,t,r){var o=t(e);return G(e)?o:jn(o,r(e))}var qn=sh;function ah(e){return qn(e,rt,lo)}var Jo=ah;function lh(e){return qn(e,ot,Bn)}var lp=lh;var ph=be(ee,"DataView"),Wn=ph;var fh=be(ee,"Promise"),Un=fh;var dh=be(ee,"Set"),Kn=dh;var pp="[object Map]",uh="[object Object]",fp="[object Promise]",dp="[object Set]",up="[object WeakMap]",cp="[object DataView]",ch=Et(Wn),mh=Et(Ut),gh=Et(Un),yh=Et(Kn),hh=Et(Mn),br=Pe;(Wn&&br(new Wn(new ArrayBuffer(1)))!=cp||Ut&&br(new Ut)!=pp||Un&&br(Un.resolve())!=fp||Kn&&br(new Kn)!=dp||Mn&&br(new Mn)!=up)&&(br=function(e){var t=Pe(e),r=t==uh?e.constructor:void 0,o=r?Et(r):"";if(o)switch(o){case ch:return cp;case mh:return pp;case gh:return fp;case yh:return dp;case hh:return up}return t});var At=br;var wh=Object.prototype,Sh=wh.hasOwnProperty;function bh(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Sh.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var mp=bh;var Rh=ee.Uint8Array,po=Rh;function Oh(e){var t=new e.constructor(e.byteLength);return new po(t).set(new po(e)),t}var fo=Oh;function xh(e,t){var r=t?fo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var gp=xh;var Eh=/\w*$/;function Ph(e){var t=new e.constructor(e.source,Eh.exec(e));return t.lastIndex=e.lastIndex,t}var yp=Ph;var hp=ye?ye.prototype:void 0,wp=hp?hp.valueOf:void 0;function $h(e){return wp?Object(wp.call(e)):{}}var Sp=$h;function vh(e,t){var r=t?fo(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Gn=vh;var Ah="[object Boolean]",Nh="[object Date]",Th="[object Map]",Ch="[object Number]",Mh="[object RegExp]",kh="[object Set]",_h="[object String]",Lh="[object Symbol]",Dh="[object ArrayBuffer]",Fh="[object DataView]",jh="[object Float32Array]",Ih="[object Float64Array]",Vh="[object Int8Array]",Bh="[object Int16Array]",qh="[object Int32Array]",Wh="[object Uint8Array]",Uh="[object Uint8ClampedArray]",Kh="[object Uint16Array]",Gh="[object Uint32Array]";function zh(e,t,r){var o=e.constructor;switch(t){case Dh:return fo(e);case Ah:case Nh:return new o(+e);case Fh:return gp(e,r);case jh:case Ih:case Vh:case Bh:case qh:case Wh:case Uh:case Kh:case Gh:return Gn(e,r);case Th:return new o;case Ch:case _h:return new o(e);case Mh:return yp(e);case kh:return new o;case Lh:return Sp(e)}}var bp=zh;function Hh(e){return typeof e.constructor=="function"&&!Yr(e)?tl(so(e)):{}}var zn=Hh;var Jh="[object Map]";function Qh(e){return re(e)&&At(e)==Jh}var Rp=Qh;var Op=$t&&$t.isMap,Zh=Op?Xr(Op):Rp,xp=Zh;var Yh="[object Set]";function Xh(e){return re(e)&&At(e)==Yh}var Ep=Xh;var Pp=$t&&$t.isSet,ew=Pp?Xr(Pp):Ep,$p=ew;var tw=1,rw=2,ow=4,vp="[object Arguments]",nw="[object Array]",iw="[object Boolean]",sw="[object Date]",aw="[object Error]",Ap="[object Function]",lw="[object GeneratorFunction]",pw="[object Map]",fw="[object Number]",Np="[object Object]",dw="[object RegExp]",uw="[object Set]",cw="[object String]",mw="[object Symbol]",gw="[object WeakMap]",yw="[object ArrayBuffer]",hw="[object DataView]",ww="[object Float32Array]",Sw="[object Float64Array]",bw="[object Int8Array]",Rw="[object Int16Array]",Ow="[object Int32Array]",xw="[object Uint8Array]",Ew="[object Uint8ClampedArray]",Pw="[object Uint16Array]",$w="[object Uint32Array]",q={};q[vp]=q[nw]=q[yw]=q[hw]=q[iw]=q[sw]=q[ww]=q[Sw]=q[bw]=q[Rw]=q[Ow]=q[pw]=q[fw]=q[Np]=q[dw]=q[uw]=q[cw]=q[mw]=q[xw]=q[Ew]=q[Pw]=q[$w]=true;q[aw]=q[Ap]=q[gw]=false;function Hn(e,t,r,o,n,i){var s,a=t&tw,l=t&rw,f=t&ow;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!z(e))return e;var p=G(e);if(p){if(s=mp(e),!a)return kn(e,s)}else {var d=At(e),u=d==Ap||d==lw;if(Pt(e))return In(e,a);if(d==Np||d==vp||u&&!n){if(s=l||u?{}:zn(e),!a)return l?ap(e,Xl(s,e)):sp(e,Yl(s,e))}else {if(!q[d])return n?e:{};s=bp(e,d,a);}}i||(i=new it);var m=i.get(e);if(m)return m;i.set(e,s),$p(e)?e.forEach(function(y){s.add(Hn(y,t,r,y,e,i));}):xp(e)&&e.forEach(function(y,S){s.set(S,Hn(y,t,r,S,e,i));});var g=f?l?lp:Jo:l?ot:rt,c=p?void 0:g(e);return al(c||e,function(y,S){c&&(S=y,y=e[S]),Qr(s,S,Hn(y,t,r,S,e,i));}),s}var Jn=Hn;var vw=1,Aw=4;function Nw(e){return Jn(e,vw|Aw)}var Qn=Nw;var Tw=1,Cw=4;function Mw(e,t){return t=typeof t=="function"?t:void 0,Jn(e,Tw|Cw,t)}var xs=Mw;var kw="__lodash_hash_undefined__";function _w(e){return this.__data__.set(e,kw),this}var Tp=_w;function Lw(e){return this.__data__.has(e)}var Cp=Lw;function Zn(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sr;++t<r;)this.add(e[t]);}Zn.prototype.add=Zn.prototype.push=Tp;Zn.prototype.has=Cp;var Mp=Zn;function Dw(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 Yn=Dw;function Fw(e,t){return e.has(t)}var kp=Fw;var jw=1,Iw=2;function Vw(e,t,r,o,n,i){var s=r&jw,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&Iw?new Mp:void 0;for(i.set(e,t),i.set(t,e);++d<a;){var g=e[d],c=t[d];if(o)var y=s?o(c,g,d,t,e,i):o(g,c,d,e,t,i);if(y!==void 0){if(y)continue;u=false;break}if(m){if(!Yn(t,function(S,R){if(!kp(m,R)&&(g===S||n(g,S,r,o,i)))return m.push(R)})){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 Xn=Vw;function Bw(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var _p=Bw;function qw(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Lp=qw;var Ww=1,Uw=2,Kw="[object Boolean]",Gw="[object Date]",zw="[object Error]",Hw="[object Map]",Jw="[object Number]",Qw="[object RegExp]",Zw="[object Set]",Yw="[object String]",Xw="[object Symbol]",eS="[object ArrayBuffer]",tS="[object DataView]",Dp=ye?ye.prototype:void 0,Es=Dp?Dp.valueOf:void 0;function rS(e,t,r,o,n,i,s){switch(r){case tS:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case eS:return !(e.byteLength!=t.byteLength||!i(new po(e),new po(t)));case Kw:case Gw:case Jw:return Xe(+e,+t);case zw:return e.name==t.name&&e.message==t.message;case Qw:case Yw:return e==t+"";case Hw:var a=_p;case Zw:var l=o&Ww;if(a||(a=Lp),e.size!=t.size&&!l)return false;var f=s.get(e);if(f)return f==t;o|=Uw,s.set(e,t);var p=Xn(a(e),a(t),o,n,i,s);return s.delete(e),p;case Xw:if(Es)return Es.call(e)==Es.call(t)}return false}var Fp=rS;var oS=1,nS=Object.prototype,iS=nS.hasOwnProperty;function sS(e,t,r,o,n,i){var s=r&oS,a=Jo(e),l=a.length,f=Jo(t),p=f.length;if(l!=p&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:iS.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 y=s;++d<l;){u=a[d];var S=e[u],R=t[u];if(o)var b=s?o(R,S,u,t,e,i):o(S,R,u,e,t,i);if(!(b===void 0?S===R||n(S,R,r,o,i):b)){c=false;break}y||(y=u=="constructor");}if(c&&!y){var w=e.constructor,E=t.constructor;w!=E&&"constructor"in e&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof E=="function"&&E instanceof E)&&(c=false);}return i.delete(e),i.delete(t),c}var jp=sS;var aS=1,Ip="[object Arguments]",Vp="[object Array]",ei="[object Object]",lS=Object.prototype,Bp=lS.hasOwnProperty;function pS(e,t,r,o,n,i){var s=G(e),a=G(t),l=s?Vp:At(e),f=a?Vp:At(t);l=l==Ip?ei:l,f=f==Ip?ei:f;var p=l==ei,d=f==ei,u=l==f;if(u&&Pt(e)){if(!Pt(t))return false;s=true,p=false;}if(u&&!p)return i||(i=new it),s||eo(e)?Xn(e,t,r,o,n,i):Fp(e,t,l,r,o,n,i);if(!(r&aS)){var m=p&&Bp.call(e,"__wrapped__"),g=d&&Bp.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,y=g?t.value():t;return i||(i=new it),n(c,y,r,o,i)}}return u?(i||(i=new it),jp(e,t,r,o,n,i)):false}var qp=pS;function Wp(e,t,r,o,n){return e===t?true:e==null||t==null||!re(e)&&!re(t)?e!==e&&t!==t:qp(e,t,r,o,Wp,n)}var uo=Wp;var fS=1,dS=2;function uS(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 it;if(o)var u=o(f,p,l,e,t,d);if(!(u===void 0?uo(p,f,fS|dS,o,d):u))return false}}return true}var Up=uS;function cS(e){return e===e&&!z(e)}var ti=cS;function mS(e){for(var t=rt(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,ti(n)];}return t}var Kp=mS;function gS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var ri=gS;function yS(e){var t=Kp(e);return t.length==1&&t[0][2]?ri(t[0][0],t[0][1]):function(r){return r===e||Up(r,e,t)}}var Gp=yS;function hS(e,t){return e!=null&&t in Object(e)}var zp=hS;function wS(e,t,r){t=io(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=nt(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)&&Bt(s,n)&&(G(e)||wr(e)))}var Hp=wS;function SS(e,t){return e!=null&&Hp(e,t,zp)}var Jp=SS;var bS=1,RS=2;function OS(e,t){return to(e)&&ti(t)?ri(nt(e),t):function(r){var o=Kl(r,e);return o===void 0&&o===t?Jp(r,e):uo(t,o,bS|RS)}}var Qp=OS;function xS(e){return function(t){return t?.[e]}}var Zp=xS;function ES(e){return function(t){return Fn(t,e)}}var Yp=ES;function PS(e){return to(e)?Zp(nt(e)):Yp(e)}var Xp=PS;function $S(e){return typeof e=="function"?e:e==null?Gr:typeof e=="object"?G(e)?Qp(e[0],e[1]):Gp(e):Xp(e)}var ef=$S;function vS(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 tf=vS;var AS=tf(),oi=AS;function NS(e,t){return e&&oi(e,t,rt)}var rf=NS;function TS(e,t){return function(r,o){if(r==null)return r;if(!tt(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 of=TS;var CS=of(rf),nf=CS;function MS(e,t,r){(r!==void 0&&!Xe(e[t],r)||r===void 0&&!(t in e))&&Jr(e,t,r);}var Qo=MS;function kS(e){return re(e)&&tt(e)}var sf=kS;function _S(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var Zo=_S;function LS(e){return et(e,ot(e))}var af=LS;function DS(e,t,r,o,n,i,s){var a=Zo(e,r),l=Zo(t,r),f=s.get(l);if(f){Qo(e,r,f);return}var p=i?i(a,l,r+"",e,t,s):void 0,d=p===void 0;if(d){var u=G(l),m=!u&&Pt(l),g=!u&&!m&&eo(l);p=l,u||m||g?G(a)?p=a:sf(a)?p=kn(a):m?(d=false,p=In(l,true)):g?(d=false,p=Gn(l,true)):p=[]:$e(l)||wr(l)?(p=a,wr(a)?p=af(a):(!z(a)||zr(a))&&(p=zn(l))):d=false;}d&&(s.set(l,p),n(p,l,o,i,s),s.delete(l)),Qo(e,r,p);}var lf=DS;function pf(e,t,r,o,n){e!==t&&oi(t,function(i,s){if(n||(n=new it),z(i))lf(e,t,s,r,pf,o,n);else {var a=o?o(Zo(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),Qo(e,s,a);}},ot);}var ff=pf;function FS(e,t){return uo(e,t)}var Rr=FS;var jS=dl(function(e,t,r){ff(e,t,r);}),Ps=jS;function IS(e,t,r,o){if(!z(e))return e;t=io(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=nt(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:Bt(t[n+1])?[]:{});}Qr(a,l,f),a=a[l];}return e}var df=IS;function VS(e,t,r){return e==null?e:df(e,t,r)}var $s=VS;function BS(e,t){var r;return nf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var uf=BS;function qS(e,t,r){var o=G(e)?Yn:uf;return r&&_n(e,t,r)&&(t=void 0),o(e,ef(t))}var vs=qS;var WS=/^(\$+)\.(.*)$/,D=e=>{let t=WS.exec(e);return t?{depth:t[1].length,path:t[2]}:null},As=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,ke=(e,t)=>{let r=D(e);return r?r.depth>t.length?{outOfBounds:As(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},US=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,KS=e=>e===""?[""]:[...e.matchAll(US)].map(t=>t[1]??t[3]??t[4]),GS=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},me=(e,t)=>KS(t).reduce(GS,e),Gt=(e,t)=>{let r=ke(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return me(r.scope,r.path)},cf=(e,t)=>D(e)?Gt(e,t):me(t[0],e),Yo=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,ni=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&D(e.field))throw new Error(Yo(e.field,t))};var mf={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}}},co=Qn(mf),Ns=e=>xs(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!$e(t)?t:void 0),zS=e=>e!=null&&typeof e.then=="function",Or={set:(e,t)=>{$s(co,e,Ns(t));},get:e=>me(co,e),reset:()=>{co=Qn(mf);},with:(e,t)=>{let r=co;co=Ps(Ns(r),Ns(e));try{let o=t();if(zS(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{co=r;}}},HS=new Set(["postgresql","cockroachdb","mongodb"]),gf=e=>HS.has(e),pe=e=>e??Or.get("string.caseInsensitive")??false,ii=e=>{let t=e??Or.get("string.fuzzy")??false;return t?t===true?{}:t:false};var h={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"],mo=["String",...Be,"DateTime"],zt=["String"],si=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],ai=Object.values(H),yf=ai,JS={check:"check",toPrisma:"toPrisma",toSql:"toSql"},fi=e=>typeof e=="string"&&Object.hasOwn(H,e),C=["check","toPrisma","toSql"],go=["check","toPrisma"],li=["check","toSql"],Tt={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"},yo={[h.equals]:{kinds:si,targets:C,valueShape:"scalar"},[h.notEquals]:{negates:h.equals,kinds:si,targets:C,valueShape:"scalar"},[h.lessThan]:{kinds:mo,targets:C,valueShape:"ordered",comparator:"lt"},[h.lessThanEquals]:{kinds:mo,targets:C,valueShape:"ordered",comparator:"lte"},[h.greaterThan]:{kinds:mo,targets:C,valueShape:"ordered",comparator:"gt"},[h.greaterThanEquals]:{kinds:mo,targets:C,valueShape:"ordered",comparator:"gte"},[h.in]:{kinds:si,targets:C,valueShape:"array"},[h.notIn]:{negates:h.in,kinds:si,targets:C,valueShape:"array"},[h.contains]:{kinds:zt,targets:C,valueShape:"string"},[h.notContains]:{negates:h.contains,kinds:zt,targets:C,valueShape:"string"},[h.startsWith]:{kinds:zt,targets:C,valueShape:"string"},[h.notStartsWith]:{negates:h.startsWith,kinds:zt,targets:C,valueShape:"string"},[h.endsWith]:{kinds:zt,targets:C,valueShape:"string"},[h.notEndsWith]:{negates:h.endsWith,kinds:zt,targets:C,valueShape:"string"},[h.matches]:{kinds:zt,targets:li,valueShape:"pattern"},[h.notMatches]:{negates:h.matches,kinds:zt,targets:li,valueShape:"pattern"},[h.between]:{kinds:mo,targets:C,valueShape:"range"},[h.notBetween]:{negates:h.between,kinds:mo,targets:C,valueShape:"range"},[h.isEmpty]:{kinds:yf,targets:C,valueShape:"none"},[h.notEmpty]:{kinds:yf,targets:C,valueShape:"none"},[h.exists]:{kinds:ai,targets:C,valueShape:"none"},[h.notExists]:{kinds:ai,targets:C,valueShape:"none"}},ho={[v.before]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[v.after]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[v.onOrBefore]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.onOrAfter]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notBefore]:{negates:v.before,kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notAfter]:{negates:v.after,kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.within]:{kinds:["DateTime"],targets:C,valueShape:"dateWindow",acceptsExpr:true},[v.notWithin]:{negates:v.within,kinds:["DateTime"],targets:C,valueShape:"dateWindow",acceptsExpr:true},[v.between]:{kinds:["DateTime"],targets:C,valueShape:"dateRange",acceptsExpr:true},[v.notBetween]:{negates:v.between,kinds:["DateTime"],targets:C,valueShape:"dateRange",acceptsExpr:true},[v.dayIn]:{kinds:["DateTime"],targets:li,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:li,valueShape:"dayList",acceptsExpr:false}},pi={[$.all]:{targets:go,valueShape:"predicate"},[$.any]:{targets:go,valueShape:"predicate"},[$.none]:{targets:go,valueShape:"predicate"},[$.atLeast]:{targets:go,valueShape:"count",comparator:"gte"},[$.atMost]:{targets:go,valueShape:"count",comparator:"lte"},[$.exactly]:{targets:go,valueShape:"count",comparator:"equals"},[$.empty]:{targets:C,valueShape:"none"},[$.notEmpty]:{targets:C,valueShape:"none"}},hf={field:yo,date:ho,array:pi},Nt=(e,t)=>Object.hasOwn(hf[t],e)?hf[t][e]:void 0,wo=e=>typeof e.operator=="string"?Nt(e.operator,"field"):typeof e.dateOperator=="string"?Nt(e.dateOperator,"date"):void 0,Ht=(e,t)=>Nt(e,t)?.comparator,Ct=(e,t)=>{let r=Nt(e,t);if(!r)throw ie(e,t);return r.valueShape},di=(e,t,r)=>Nt(e,t)?.targets.includes(r)??false,QS=(e,t)=>{let r=Object.keys(yo).filter(n=>{let i=yo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(ho).filter(n=>{let i=ho[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},ZS=e=>Object.keys(pi).filter(t=>e?pi[t].targets.includes(e):true),wf=[...Object.entries(yo),...Object.entries(ho)],ve=(...e)=>wf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Jt=ve("none"),So=ve("ordered"),Xo=ve("dateWindow"),_e=ve("range","dateRange","dateWindow"),Sf=ve("ordered","string","pattern","array"),st=[h.contains,h.notContains],ui=ve("scalar","ordered","range"),at=["sum","avg"],YS=()=>ui,lt=ve("scalar"),Qt=ve("array"),bf=ve("scalar","array"),Rf=ve("dayList"),Of=ve("dateRange"),xf=ve("scalar","ordered","range","dateValue","dateRange"),Ef=(...e)=>Object.entries(pi).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),Zt=Ef("count"),Pf=Ef("predicate","count"),$f=[$.any,$.atLeast],K=[...Object.entries(yo),...Object.entries(ho)].flatMap(([e,t])=>t.negates?[e]:[]),vf=K.filter(e=>ve("string").includes(e)),bo=K.filter(e=>_e.includes(e)),Af=(...e)=>wf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!K.includes(t)?[t]:[]),ci=Af("lt","lte"),Nf=Af("gt","gte"),Tf=["Int","BigInt"],Cf=[...Be,"DateTime","Boolean","String"],Mf=["Int","BigInt","Float","Boolean","String"],kf=["scalar","ordered","string"],Yt={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}},_f=["months","days","secs"],Ts=e=>Object.hasOwn(Yt,e),xr=e=>Ts(e)&&Yt[e].calendar,mi=["year","quarter","month","week","isoWeek","day","hour","minute","second"],Ro=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Lf=e=>Ro.includes(e.toLowerCase()),Df=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),en=Df(yo,[[h.isEmpty,h.notEmpty],[h.exists,h.notExists]]),Ff=Df(ho),gi={[h.lessThan]:h.greaterThanEquals,[h.lessThanEquals]:h.greaterThan,[h.greaterThan]:h.lessThanEquals,[h.greaterThanEquals]:h.lessThan,[v.onOrBefore]:v.after,[v.onOrAfter]:v.before};var yi=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),ie=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),Oo=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`),xo=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),hi=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),wi=e=>st.includes(e.operator)&&ii(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,Si=(e,t)=>!So.includes(e)&&!_e.includes(e)?null:(_e.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,Xt=e=>new Error(`aggregate.mode must be one of ${at.join(" / ")}, not '${String(e)}'`),pt=()=>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()"}.`),ft=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":""}.`),bi=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),Ri=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),J=class extends Error{name="UsageError"};ut.extend(rb);ut.extend(tb);ut.extend(eb);ut.extend(XS);var te=e=>{if(!$e(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},Mt="UTC",tn=e=>{if(e.now===void 0)throw new J("date expressions require `now` to be supplied to the evaluator");let t=ut(e.now).tz(e.timeZone);if(!t.isValid())throw new J(`invalid \`now\`: ${String(e.now)}`);return t},Cs=(e,t)=>Object.entries(e).reduce((r,[o,n])=>Yt[o].interval===t?r+n*Yt[o].factor:r,0),jf="YYYY-MM-DDTHH:mm:ss.SSS",er=(e,t,r,o)=>{let n=Cs(t,"months"),i=Cs(t,"days"),s=Cs(t,"secs"),a=ut.utc(e.tz(o).format(jf));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),ut.tz(a.format(jf),o)},ob=e=>"ago"in e||"ahead"in e,Oi=(e,t)=>t===-1?{ago:e}:{ahead:e},Re=e=>ob(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,rn=e=>"this"in e||"last"in e||"next"in e,Ms=e=>"start"in e||"end"in e,xi=e=>"this"in e?e.this:"last"in e?e.last:e.next,nb=e=>{let t=xi(e);if(typeof t!="string"||!mi.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},ib=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,ks=(e,t)=>{let r=tn(t),o=nb(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=ib(o,t);return [i.startOf(s),i.endOf(s)]},_s=(e,t)=>{let r=Re(e);if(r)return er(tn(t),...r,t.timeZone);if(Ms(e)){let o="start"in e?e.start:e.end,[n,i]=ks(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")},Eo=(e,t,r)=>{if(rn(e)){let[o,n]=ks(e,r),i=wo({dateOperator:t})?.negates??t;return ci.includes(i)?o:n}return _s(e,r)},Po=(e,t)=>{if(rn(e))return ks(e,t);let r=Re(e);if(r){let o=tn(t),n=er(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw qe("within")};var If=["value","bind","path"],Ue=e=>typeof e.path=="string"&&e.path!=="",Pr=e=>Ue(e)?D(e.path)??{depth:0,path:e.path}:null,on=(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")},Ei=e=>$e(e)&&(e.value!==void 0||Ue(e)||typeof e.bind=="string"),Ls=(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},Pi=(e,t,r)=>{if(t===true)return null;throw new J(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},kt=(e,t,r)=>on(e,{value:o=>o,bind:(o,n)=>Ls(o,n,r),path:o=>cf(o,t)??null});var Bf=e=>typeof e=="object"&&e!==null,Fs=e=>"if"in e||"then"in e||"else"in e,Le=e=>"arrayOperator"in e||"aggregate"in e,qf=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Fs(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}]:[])],Ae=e=>"all"in e||"any"in e||Fs(e),oe=(e,t,r)=>{if(!Bf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of qf(o))a?i!==false&&oe(s,t,i):oe(s,t,r);},Wf=(e,t,r,o)=>{let n=false;return oe(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},tr=(e,t,r)=>{if(!Bf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=qf(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=tr(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&&sb(i,e)?e:l},sb=(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])})},ab=(e,t)=>$e(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Ei(o)?t(o,xr(r)?"whole":"number"):o])):e,Ds=(e,t)=>{let r=te(e)?Re(e):null;return r?Oi(ab(r[0],t),r[1]):e},$i=(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=>Ds(i,t)):Ds(e.value,t);o={...o,value:n};}if(Ei(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Ds(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Ei(o)&&(o=t(o,"value")),o},nn=e=>{let t=[];return $i(e,(r,o)=>(t.push({source:r,role:o}),r)),t},js=e=>nn(e).flatMap(({source:t,role:r})=>Ue(t)?[{ref:t.path,role:r}]:[]),rr=e=>js(e).map(t=>t.ref),$o=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],lb={all:"all",any:"any",if:"if",field:"field",aggregate:"aggregate",array:"array",date:"date"},$r=()=>(e,t)=>({required:[...e],optional:[...t]}),Vf={all:$r()(["all"],["error"]),any:$r()(["any"],["error"]),if:$r()(["if","then"],["else","error"]),field:$r()(["field","operator"],["value","path","bind","bindOptional","offset","caseInsensitive","fuzzy","coerceType","error"]),aggregate:$r()(["field","aggregate","operator"],["value","path","bind","bindOptional","condition","filter","orderBy","take","skip","error"]),array:$r()(["arrayOperator"],["field","condition","count","filter","orderBy","take","skip","error"]),date:$r()(["field","dateOperator"],["value","path","bind","bindOptional","offset","error"])},pb=e=>({required:[...Vf[e].required],optional:[...Vf[e].optional]}),fe=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Fs(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},W=e=>e.length===0?true:e.length===1?e[0]:{all:[...e]},Is=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(Is):[e],_t=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var fb=e=>nn(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),sn=(e,{required:t=false}={})=>{let r=new Set;return oe(e,o=>{for(let n of fb(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Vs=(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:Ls(n,true,t)}};return tr(e,{rewrite:o=>$i($i(o,r),r)})};var Uf=BigInt(Number.MAX_SAFE_INTEGER),an=e=>{if(e>Uf||e<-Uf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},Bs=e=>typeof e=="bigint"?an(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,vi=(e,t)=>{if(e==null)return null;let r=Bs(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],Ke=(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]]},vo=(e,t)=>{let r=Ke(e,t);if(!r.every(de))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},Ai=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},Lt=e=>{let t=Ai(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},de=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var qs=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!xr(t)||Number.isInteger(e))?null:`${t} must be a non-negative${xr(t)?" whole":""} number (got ${String(e)})`,Ws=(e,t,r)=>{let o=typeof e=="number"?e:vi(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:qs(o,r);if(n===null)return o;if(typeof e!="number"&&Ue(e))return null;throw new Error(n)},vr=(e,t)=>{let r={};for(let[o,n]of Object.entries(e)){if(n===void 0)continue;let i=Ws(n,t,o);if(i===null)return null;r[o]=i;}return r},dt=(e,t)=>{let r=Re(e);if(!r)return e;let o=vr(r[0],t);return o?Oi(o,r[1]):null};var Ar=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>Ar(n,t));return o.some(n=>n===null)?null:o}let r=Bs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},Nr=e=>vi(e,"an offset"),Ao=e=>{if(e==null)return null;let t=te(e)?Re(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};ut.extend(rb);ut.extend(tb);ut.extend(ub);ut.extend(db);var zf=(e,t,r={},o)=>{let n=Gt(e.field,t),i=Tr(r,u=>kt(u,t,o)),s=i.timeZone;if(n==null)return K.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=de(n)?or(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(Rf.includes(e.dateOperator)){let u=Us(kt(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=>Ro[c]).join(" or ");return e.dateOperator===v.dayIn?m||l(`must be on ${g}`):!m||l(`must not be on ${g}`)}let f=gb(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 ie(e.dateOperator,"date")}},gb=(e,t,r,o,n)=>{let i=e.dateOperator,s=g=>kt(g,t,n),a=kt(e,t,n);if(a==null)return null;let l=e.offset===void 0?void 0:Ao(s(e.offset));if(l===null)return null;let f=g=>{if(l===void 0)return g;let c=vr(l[0],s);return c&&er(g,c,l[1],o)};if(Xo.includes(i)){if(!te(a))throw qe(i);let g=dt(a,s);return g&&Po(g,r)}let p=(g,c)=>{if(g==null)return null;if(te(g)){let S=dt(g,s);return S&&_s(S,r)}let y=or(g,o);if(!y.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return y};if(Of.includes(i)){let[g,c]=Ke(a,i),y=p(g,"start date"),S=p(c,"end date");if(!y||!S)return null;let[R,b]=De([y,S]),w=f(R),E=f(b);return w&&E?[w,E]:null}if(Array.isArray(a))throw new Error(`${i} operator requires a single date value`);let d=g=>{let c=dt(g,s);return c&&Eo(c,i,r)},u=te(a)?d(a):p(a,"comparison date");if(!u)return null;let m=f(u);return m&&[m]},Tr=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:Gf(r??Mt)};if(Pr(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:Gf(o??Mt)}},Kf=new Set,Gf=e=>{if(Kf.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new J(`invalid time zone: ${e}`)}return Kf.add(e),e},yb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,hb=e=>yb.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),or=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return ut(Number(e));if(typeof e=="string"&&!hb(e)){let r=ut(e);return r.isValid()?ut.tz(e,t):r}return typeof e=="string"?ut(new Date(e.trim())):ut(e)},Ni=(e,t)=>{let r=de(e)?or(e,t):ut(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},Us=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=Ro.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,bb=(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)},Hf=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Rb=e=>/^\d+$/.test(e),Ob=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:distance(e,t)<=r,Jf=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=Hf(o);if(i.length===0)return false;let s=Hf(n);return s.length===0?false:i.every(a=>{let l=bb(r,a.length);return l===0||Rb(a)?s.includes(a):s.some(f=>Ob(a,f,l))})};var nr=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.compile(t,o?RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},No={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},Zf={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"},xb=/[\\^$.|?*+()[\]{}]/,Ks=255,Yf=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,Eb=e=>xb.test(e)?`\\${e}`:e,ln=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(No,a))return s?No[a]:`[${No[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(No,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${No[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,Yf(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 Yf(Number.parseInt(f,8))}if(!s&&(a==="b"||a==="B")){let f=`[${No.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:Eb).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])>Ks||Number(a[2]??0)>Ks)&&t(`a repeat count past ${Ks}`),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(Zf,p[2])||t(`the class [:${p[2]}:]`),r+=Zf[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},Xf=(e,t)=>{try{let{source:r}=nr(e);return t==="toSql"&&ln(r),null}catch(r){return r.message}};var ed=e=>e==null||e===""||Array.isArray(e)&&e.length===0,Oe=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||Sf.includes(e.operator))?true:_e.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},Mr=e=>Jt.includes(e.operator)||lt.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Ci=(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===h.in?_t(o(h.equals)):W(o(h.notEquals))},kr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(kr):e,td=e=>typeof e=="bigint"?an(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?an(t):t):e,rd=(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 an(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=or(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}},Cr=(e,t,r=Mt)=>t===void 0?e:Array.isArray(e)?e.map(o=>rd(o,t,r)):rd(e,t,r),pn=(e,t,r,o={},n)=>{let i=n?n.value:Gt(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?Tr(o,R=>kt(R,t,r)).timeZone:Mt,l=Cr(td(i),s,a),f=!Jt.includes(e.operator),p=f?Pb(Cr(td(kt(e,t,r)??null),s,a),e,t,r):void 0;if(f&&Oe(e,p))return K.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=R=>e.error||`${e.field} ${R}${f?` ${p instanceof RegExp?String(p):JSON.stringify(p)}`:""}`,u=pe(e.caseInsensitive),m=R=>u?kr(R):R,g=m(l),c=m(p),y=ii(e.fuzzy),S=()=>y&&typeof l=="string"&&typeof p=="string"?Jf(l,p,y):Array.isArray(l)?g.some(R=>Rr(R,c)):$b(g,c);switch(e.operator){case h.equals:return Rr(g,c)||d("must equal");case h.notEquals:return !Rr(g,c)||d("must not equal");case h.lessThan:return Ti(l,p,"lt")||d("must be less than");case h.lessThanEquals:return Ti(l,p,"lte")||d("must be less than or equal to");case h.greaterThan:return Ti(l,p,"gt")||d("must be greater than");case h.greaterThanEquals:return Ti(l,p,"gte")||d("must be greater than or equal to");case h.in:return Ai(c).some(R=>Rr(R,g))||d("must be one of");case h.notIn:return !Ai(c).some(R=>Rr(R,g))||d("must not be one of");case h.contains:return S()||d("must contain");case h.notContains:return !S()||d("must not contain");case h.matches:return od(l)&&nd(p)&&nr(p).re.test(l)||d("must match pattern");case h.notMatches:return !od(l)||!nd(p)||!nr(p).re.test(l)||d("must not match pattern");case h.between:{let R=id(p,e.operator);if(!ad(l,R))return d("must be between");let b=To(l),[w,E]=R;return b>=w&&b<=E||d("must be between")}case h.notBetween:{let R=id(p,e.operator);if(!ad(l,R))return true;let b=To(l),[w,E]=R;return b<w||b>E||d("must not be between")}case h.isEmpty:return ed(l)||d("must be empty");case h.notEmpty:return !ed(l)||d("must not be empty");case h.exists:return l!=null||d("must exist");case h.notExists:return l==null||d("must not exist");case h.startsWith:return typeof g=="string"&&typeof c=="string"&&g.startsWith(c)||d("must start with");case h.endsWith:return typeof g=="string"&&typeof c=="string"&&g.endsWith(c)||d("must end with");case h.notStartsWith:return !(typeof g=="string"&&typeof c=="string"&&g.startsWith(c))||d("must not start with");case h.notEndsWith:return !(typeof g=="string"&&typeof c=="string"&&g.endsWith(c))||d("must not end with");default:throw new Error("Unknown operator")}},Pb=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=Nr(kt(t.offset,r,o));return n===null?null:Ar(e,n)},To=e=>e instanceof Date?e.getTime():e,Ti=(e,t,r)=>{if(!vb(e,t)||!de(t))return false;let o=To(e),n=To(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},od=e=>typeof e=="string",nd=e=>typeof e=="string"||e instanceof RegExp,id=(e,t)=>De(vo(e,t).map(r=>To(r))),$b=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),vb=(e,t)=>de(e)&&de(t)&&sd(e)===sd(t),sd=e=>e instanceof Date?"date":typeof e,ad=(e,t)=>de(e)&&typeof To(e)==typeof t[0];var Ne=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,Ab=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=fe(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Nb=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=Ab(e.condition);if(!n||n.field!==t)return null;let i=ci.includes(n.op),s=Nf.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:h.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}}]}]}},Gs=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=ld(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},ld=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=Tb(me(r,n),me(o,n),i);if(s!==0)return s}return 0}),Tb=(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},Co=e=>{if(!Ne(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:W([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:W([r,e.condition])}}}return "aggregate"in e||e.filter!==void 0?null:Nb(e)};var Cb=e=>oe(e,t=>{let r=fe(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)")}}),ue=(e,t,r)=>(Array.isArray(t)&&Cb(e),ct(e,t,{...r,scopes:[t]})),ct=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(fe(e)){case "all":return Mb(o.all,t,r,o.error);case "any":return kb(o.any,t,r,o.error);case "if":return _b(o,t,r);case "array":return Db(o,r);case "aggregate":return Lb(o,r);case "date":return zf(o,r.scopes,r,r.bindings);case "field":return pn(o,r.scopes,r.bindings,r);default:throw pt()}},Mi=(e,t)=>({...e,scopes:[...e.scopes,t]}),Mb=(e,t,r,o)=>{let n=[];for(let i of e){let s=ct(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},kb=(e,t,r,o)=>{let n=[];for(let i of e){let s=ct(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 ")}`)},_b=(e,t,r)=>ct(e.if,t,r)===true?ct(e.then,t,r):e.else!==void 0?ct(e.else,t,r):true,pd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Lb=(e,t)=>{let r=pd(Gt(e.field,t.scopes),e.field),o=e.filter,n=Gs(r,e,o?m=>ct(o,m,Mi(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!at.includes(i))throw Xt(i);let a=e.condition,f=(a?n.filter(m=>ct(a,m,Mi(t,m))===true):n).flatMap((m,g)=>{let c=s?me(m,s):m;if(c==null)return [];if(typeof c!="number"||!Number.isFinite(c)){let y=`${e.field}[${g}]${s?`.${s}`:""}`;throw new Error(`${y} 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 pn(u,t.scopes,t.bindings,t,{value:d})},Db=(e,t)=>{let r=pd(e.field?Gt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=Gs(r,e,o?d=>ct(o,d,Mi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=Pf.includes(e.arrayOperator);if(a&&s===void 0)throw We(e.arrayOperator);let l=e.count??0;if(Zt.includes(e.arrayOperator)&&e.count===void 0)throw Oo(e.arrayOperator);let f=0,p=0;if(a&&s!==void 0){if(n.length>0&&!vs(n,z))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>ct(s,u,Mi(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 ie(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,_r=(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 xe=({fieldMap:e,model:t})=>`${e}:${t}`,fd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var dd=(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},Fb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&_r(r,String(n),()=>[]).push(o);}return r},ud=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=xe(n),a=xe(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",f=(u,m)=>_r(_r(r,u,()=>({})),m,()=>({})),p=O(t,s);p&&(f(n.fieldMap,n.model)[n.on]=dd(p,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?f(i.fieldMap,i.model)[i.on]=Fb(d,i.on):f(i.fieldMap,i.model)[i.on]=dd(d,i.on,a,"oneToOne"));}return r};var ki=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=xe(o),s=xe(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 Mo=(e,t,r)=>{if(e?.isList||t?.isList){if(!(e?.isList&&!t?.isList&&st.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":lt.includes(r)?null:`an enum column orders by declaration on the database, not as check() compares its text ('${r}')`};var Te=e=>e.kind==="scalar"&&e.type==="Json",j=e=>e.kind==="object"||e.kind==="bridge",Lr=(e,t)=>e.values??O(t,e.type);var Ce=(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 Ge=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?fd(e.type,t):null;function*ir(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?Ge(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 se=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:f}of ir({"":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}:Te(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}},sr=(e,t,r)=>t&&r?se(e,t,r):void 0,Z=(e,t,r)=>{let o=sr(e,t,r);return o?.kind==="direct"?o.entry:void 0},cd=(e,t,r)=>se(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),fn=(e,t,r)=>{let o=se(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},ar=(e,t,r)=>se(e,t,r).kind==="bridge",mt=(e,t,r)=>!!t&&!!r&&Wf(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&ar(o.field,t,n),(o,n)=>(typeof o.field=="string"?fn(o.field,t,n):n)??false,r);var _i=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":md(e.entry.type),md=e=>e===H.Json?"json":e===H.Enum?"enum":e===H.DateTime?"instant":e===H.String?"text":"scalar",Li=(e,t,r)=>{let o=Z(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"},Di=(e,t,r)=>{if(_i(sr(e,t,r))==="relations")throw hi(e)},Dr=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",lr=(e,t)=>Dr(e)&&gd(t),gd=e=>typeof e=="string"||Array.isArray(e)&&e.some(gd),Me=(e,t,r)=>{let o=_i(sr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?md(e.coerceType):o},Dt=e=>{if(!e.isList){if(e.kind==="enum")return H.Enum;if(!(e.kind!=="scalar"||e.type===H.Json))return fi(e.type)?e.type:void 0}};var yd=new WeakSet,ji=e=>(yd.add(e),e),hd=e=>{if(e===null||typeof e!="object")return false;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},wd=e=>{let t=[],r=(o,n)=>{if(o!==null&&typeof o=="object"&&yd.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if(hd(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},jb=["__step","__field"],Fi=e=>Array.isArray(e)?e.some(Fi):hd(e)?Object.entries(e).some(([t,r])=>jb.includes(t)||Fi(r)):false;var Ib={[h.equals]:"equals",[h.notEquals]:"equals",[h.lessThan]:"lt",[h.lessThanEquals]:"lte",[h.greaterThan]:"gt",[h.greaterThanEquals]:"gte"},Sd=(e,t,r)=>{let o=se(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 j(n)?`'${e}' is a relation`:Te(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},Ii=(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=D(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=Ib[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=Sd(e.field,t,r);if(typeof l=="string")return {problem:l};let f=s?s.path:i,p=Sd(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=Mo(l,p,e.operator);return d?{problem:d}:l.type==="String"&&pe(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:ji({__field:{model:r,field:f}}),field:l,column:p,columnPath:f}},Vi=(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().`),bd=new WeakSet,zs=new WeakSet,Fr=(e,t,r=false)=>(bd.add(e),(r||t!==void 0&&zs.has(t))&&zs.add(e),e),Rd=e=>e!==void 0&&bd.has(e),Od=e=>e!==void 0&&zs.has(e);var Hs=e=>({field:e,operator:"notExists"}),Vb=(e,t)=>{let r=t(e);if(r===null){let i=e.operator??e.dateOperator;return K.includes(i)?{field:e.field,operator:"exists"}:true}if("aggregate"in r){let i=O(en,r.operator);return i?{...r,operator:i}:{...r,operator:O(gi,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Ff,r.dateOperator);return i?{...r,dateOperator:i}:_t([{...r,dateOperator:O(gi,r.dateOperator)},Hs(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:Fe(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 _t([...i>0?[{...r,arrayOperator:$.atMost,count:i-1}]:[],{...r,arrayOperator:$.atLeast,count:i+1}])}}let o=O(en,r.operator);if(o)return {...r,operator:o};let n=typeof r.path=="string"&&r.path!==""?D(r.path)??{depth:1,path:r.path}:null;return _t([{...r,operator:O(gi,r.operator)},Hs(r.field),...n&&n.depth===1?[Hs(n.path)]:[]])},Fe=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return _t(r.all.map(o=>Fe(o,t)));if(Array.isArray(r.any))return W(r.any.map(o=>Fe(o,t)));if("if"in r){let o=W([r.if,Fe(r.then,t)]);return r.else===void 0?o:{any:[o,W([Fe(r.if,t),Fe(r.else,t)])]}}return Vb(r,t)},xd=e=>fe(e)==="field"&&e.value!==void 0&&Oe(e,e.value)?null:e;var Ed,Pd=e=>{Ed=e;},ne=(e,t,r)=>Ed(e,t,r);var Bb=e=>{let t=D(e);throw t&&t.depth>1?new Error(Yo(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},gt=e=>on(e,{value:t=>{if(Fi(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=>Bb(t),bind:(t,r)=>Pi(t,r,"toPrisma")}),dn=e=>gt(e),ko=e=>Tr({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},dn),_o=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=Me({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&So.includes(t.operator))throw _("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=gt(t),s=t.offset===void 0?void 0:gt(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||Oe({operator:t.dateOperator},i)?null:d:xd(d)};var ze=()=>({}),jr=ze,yt=()=>({OR:[]}),Js=e=>Object.keys(e).length===0,$d=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},je=e=>{if(e.some($d))return yt();let t=e.filter(r=>!Js(r));return t.length===0?ze():t.length===1?t[0]:{AND:t}},I=e=>{if(e.some(Js))return ze();let t=e.filter(r=>!$d(r));return t.length===0?yt():t.length===1?t[0]:{OR:t}},Ee=e=>Js(e)?e:{NOT:e},vd=(e,t,r)=>je(e.all.map(o=>ne(o,t,r))),Ad=(e,t,r)=>I(e.any.map(o=>ne(o,t,r))),Nd=(e,t,r)=>{if(mt(e,t?.map,t?.model))return jr();let o=ne(Fe(e.if,_o(t)),t,r),n=ne(e.then,t,r),i=I([o,n]);if(e.else!==void 0){let s=ne(e.if,t,r),a=ne(e.else,t,r);return je([i,I([s,a])])}return i};var qb=(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},un=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=qb(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Bi=(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 Ir=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var Lo=(e,t,r,o)=>{let n=e.split("."),i=se(e,t,r);if(i.kind==="bridge")throw new Error(`'${e}' crosses a bridge: ${o.toLowerCase()} aren't supported across a bridge \u2014 no one database holds both sides.`);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=un(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}},qi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=ji({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?Ee(a):a;return t.through?Ir(t.through,l):l};var fr=e=>({ok:e.length===0,errors:e}),cn=(e,t)=>{if(!e.ok)throw new Error(`${t}:
1
+ import wt from'dayjs';import fb from'dayjs/plugin/isoWeek.js';import db from'dayjs/plugin/quarterOfYear.js';import ub from'dayjs/plugin/timezone.js';import cb from'dayjs/plugin/utc.js';import Ob from'dayjs/plugin/isSameOrAfter.js';import xb from'dayjs/plugin/isSameOrBefore.js';import {distance}from'fastest-levenshtein';import {RE2JS}from're2js';var xs=(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 jc=typeof global=="object"&&global&&global.Object===Object&&global,Fn=jc;var Ic=typeof self=="object"&&self&&self.Object===Object&&self,Vc=Fn||Ic||Function("return this")(),ee=Vc;var qc=ee.Symbol,Se=qc;var Ha=Object.prototype,Bc=Ha.hasOwnProperty,Wc=Ha.toString,en=Se?Se.toStringTag:void 0;function Uc(e){var t=Bc.call(e,en),r=e[en];try{e[en]=void 0;var o=!0;}catch{}var n=Wc.call(e);return o&&(t?e[en]=r:delete e[en]),n}var Ja=Uc;var Kc=Object.prototype,Gc=Kc.toString;function zc(e){return Gc.call(e)}var Qa=zc;var Hc="[object Null]",Jc="[object Undefined]",Za=Se?Se.toStringTag:void 0;function Qc(e){return e==null?e===void 0?Jc:Hc:Za&&Za in Object(e)?Ja(e):Qa(e)}var Ae=Qc;function Zc(e){return e!=null&&typeof e=="object"}var oe=Zc;var Yc="[object Symbol]";function Xc(e){return typeof e=="symbol"||oe(e)&&Ae(e)==Yc}var Jr=Xc;function em(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 Ya=em;var tm=Array.isArray,z=tm;var Xa=Se?Se.prototype:void 0,el=Xa?Xa.toString:void 0;function tl(e){if(typeof e=="string")return e;if(z(e))return Ya(e,tl)+"";if(Jr(e))return el?el.call(e):"";var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var rl=tl;function om(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var H=om;function nm(e){return e}var Qr=nm;var im="[object AsyncFunction]",sm="[object Function]",am="[object GeneratorFunction]",lm="[object Proxy]";function pm(e){if(!H(e))return false;var t=Ae(e);return t==sm||t==am||t==im||t==lm}var Zr=pm;var fm=ee["__core-js_shared__"],jn=fm;var ol=(function(){var e=/[^.]+$/.exec(jn&&jn.keys&&jn.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function dm(e){return !!ol&&ol in e}var nl=dm;var um=Function.prototype,cm=um.toString;function mm(e){if(e!=null){try{return cm.call(e)}catch{}try{return e+""}catch{}}return ""}var At=mm;var gm=/[\\^$.*+?()[\]{}|]/g,ym=/^\[object .+?Constructor\]$/,hm=Function.prototype,wm=Object.prototype,Sm=hm.toString,bm=wm.hasOwnProperty,Rm=RegExp("^"+Sm.call(bm).replace(gm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Om(e){if(!H(e)||nl(e))return false;var t=Zr(e)?Rm:ym;return t.test(At(e))}var il=Om;function xm(e,t){return e?.[t]}var sl=xm;function Em(e,t){var r=sl(e,t);return il(r)?r:void 0}var Ee=Em;var $m=Ee(ee,"WeakMap"),In=$m;var al=Object.create,Pm=(function(){function e(){}return function(t){if(!H(t))return {};if(al)return al(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),ll=Pm;function vm(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 pl=vm;function Nm(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var Vn=Nm;var Am=800,Tm=16,Cm=Date.now;function Mm(e){var t=0,r=0;return function(){var o=Cm(),n=Tm-(o-r);if(r=o,n>0){if(++t>=Am)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var fl=Mm;function km(e){return function(){return e}}var dl=km;var Lm=(function(){try{var e=Ee(Object,"defineProperty");return e({},"",{}),e}catch{}})(),Yr=Lm;var _m=Yr?function(e,t){return Yr(e,"toString",{configurable:true,enumerable:false,value:dl(t),writable:true})}:Qr,ul=_m;var Dm=fl(ul),cl=Dm;function Fm(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==false;);return e}var ml=Fm;var jm=9007199254740991,Im=/^(?:0|[1-9]\d*)$/;function Vm(e,t){var r=typeof e;return t=t??jm,!!t&&(r=="number"||r!="symbol"&&Im.test(e))&&e>-1&&e%1==0&&e<t}var zt=Vm;function qm(e,t,r){t=="__proto__"&&Yr?Yr(e,t,{configurable:true,enumerable:true,value:r,writable:true}):e[t]=r;}var Xr=qm;function Bm(e,t){return e===t||e!==e&&t!==t}var it=Bm;var Wm=Object.prototype,Um=Wm.hasOwnProperty;function Km(e,t,r){var o=e[t];(!(Um.call(e,t)&&it(o,r))||r===void 0&&!(t in e))&&Xr(e,t,r);}var eo=Km;function Gm(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?Xr(r,a,l):eo(r,a,l);}return r}var st=Gm;var gl=Math.max;function zm(e,t,r){return t=gl(t===void 0?e.length-1:t,0),function(){for(var o=arguments,n=-1,i=gl(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),pl(e,this,a)}}var yl=zm;function Hm(e,t){return cl(yl(e,t,Qr),e+"")}var hl=Hm;var Jm=9007199254740991;function Qm(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Jm}var to=Qm;function Zm(e){return e!=null&&to(e.length)&&!Zr(e)}var at=Zm;function Ym(e,t,r){if(!H(r))return false;var o=typeof t;return (o=="number"?at(r)&&zt(t,r.length):o=="string"&&t in r)?it(r[t],e):false}var qn=Ym;function Xm(e){return hl(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&&qn(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 wl=Xm;var eg=Object.prototype;function tg(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||eg;return e===r}var ro=tg;function rg(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Sl=rg;var og="[object Arguments]";function ng(e){return oe(e)&&Ae(e)==og}var Es=ng;var bl=Object.prototype,ig=bl.hasOwnProperty,sg=bl.propertyIsEnumerable,ag=Es((function(){return arguments})())?Es:function(e){return oe(e)&&ig.call(e,"callee")&&!sg.call(e,"callee")},Er=ag;function lg(){return false}var Rl=lg;var El=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ol=El&&typeof module=="object"&&module&&!module.nodeType&&module,pg=Ol&&Ol.exports===El,xl=pg?ee.Buffer:void 0,fg=xl?xl.isBuffer:void 0,dg=fg||Rl,Tt=dg;var ug="[object Arguments]",cg="[object Array]",mg="[object Boolean]",gg="[object Date]",yg="[object Error]",hg="[object Function]",wg="[object Map]",Sg="[object Number]",bg="[object Object]",Rg="[object RegExp]",Og="[object Set]",xg="[object String]",Eg="[object WeakMap]",$g="[object ArrayBuffer]",Pg="[object DataView]",vg="[object Float32Array]",Ng="[object Float64Array]",Ag="[object Int8Array]",Tg="[object Int16Array]",Cg="[object Int32Array]",Mg="[object Uint8Array]",kg="[object Uint8ClampedArray]",Lg="[object Uint16Array]",_g="[object Uint32Array]",G={};G[vg]=G[Ng]=G[Ag]=G[Tg]=G[Cg]=G[Mg]=G[kg]=G[Lg]=G[_g]=true;G[ug]=G[cg]=G[$g]=G[mg]=G[Pg]=G[gg]=G[yg]=G[hg]=G[wg]=G[Sg]=G[bg]=G[Rg]=G[Og]=G[xg]=G[Eg]=false;function Dg(e){return oe(e)&&to(e.length)&&!!G[Ae(e)]}var $l=Dg;function Fg(e){return function(t){return e(t)}}var oo=Fg;var Pl=typeof exports=="object"&&exports&&!exports.nodeType&&exports,tn=Pl&&typeof module=="object"&&module&&!module.nodeType&&module,jg=tn&&tn.exports===Pl,$s=jg&&Fn.process,Ig=(function(){try{var e=tn&&tn.require&&tn.require("util").types;return e||$s&&$s.binding&&$s.binding("util")}catch{}})(),Ct=Ig;var vl=Ct&&Ct.isTypedArray,Vg=vl?oo(vl):$l,no=Vg;var qg=Object.prototype,Bg=qg.hasOwnProperty;function Wg(e,t){var r=z(e),o=!r&&Er(e),n=!r&&!o&&Tt(e),i=!r&&!o&&!n&&no(e),s=r||o||n||i,a=s?Sl(e.length,String):[],l=a.length;for(var f in e)(t||Bg.call(e,f))&&!(s&&(f=="length"||n&&(f=="offset"||f=="parent")||i&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||zt(f,l)))&&a.push(f);return a}var Bn=Wg;function Ug(e,t){return function(r){return e(t(r))}}var Wn=Ug;var Kg=Wn(Object.keys,Object),Nl=Kg;var Gg=Object.prototype,zg=Gg.hasOwnProperty;function Hg(e){if(!ro(e))return Nl(e);var t=[];for(var r in Object(e))zg.call(e,r)&&r!="constructor"&&t.push(r);return t}var Al=Hg;function Jg(e){return at(e)?Bn(e):Al(e)}var lt=Jg;function Qg(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var Tl=Qg;var Zg=Object.prototype,Yg=Zg.hasOwnProperty;function Xg(e){if(!H(e))return Tl(e);var t=ro(e),r=[];for(var o in e)o=="constructor"&&(t||!Yg.call(e,o))||r.push(o);return r}var Cl=Xg;function ey(e){return at(e)?Bn(e,true):Cl(e)}var pt=ey;var ty=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ry=/^\w*$/;function oy(e,t){if(z(e))return false;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||Jr(e)?true:ry.test(e)||!ty.test(e)||t!=null&&e in Object(t)}var io=oy;var ny=Ee(Object,"create"),Mt=ny;function iy(){this.__data__=Mt?Mt(null):{},this.size=0;}var Ml=iy;function sy(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var kl=sy;var ay="__lodash_hash_undefined__",ly=Object.prototype,py=ly.hasOwnProperty;function fy(e){var t=this.__data__;if(Mt){var r=t[e];return r===ay?void 0:r}return py.call(t,e)?t[e]:void 0}var Ll=fy;var dy=Object.prototype,uy=dy.hasOwnProperty;function cy(e){var t=this.__data__;return Mt?t[e]!==void 0:uy.call(t,e)}var _l=cy;var my="__lodash_hash_undefined__";function gy(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Mt&&t===void 0?my:t,this}var Dl=gy;function so(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]);}}so.prototype.clear=Ml;so.prototype.delete=kl;so.prototype.get=Ll;so.prototype.has=_l;so.prototype.set=Dl;var Ps=so;function yy(){this.__data__=[],this.size=0;}var Fl=yy;function hy(e,t){for(var r=e.length;r--;)if(it(e[r][0],t))return r;return -1}var Ht=hy;var wy=Array.prototype,Sy=wy.splice;function by(e){var t=this.__data__,r=Ht(t,e);if(r<0)return false;var o=t.length-1;return r==o?t.pop():Sy.call(t,r,1),--this.size,true}var jl=by;function Ry(e){var t=this.__data__,r=Ht(t,e);return r<0?void 0:t[r][1]}var Il=Ry;function Oy(e){return Ht(this.__data__,e)>-1}var Vl=Oy;function xy(e,t){var r=this.__data__,o=Ht(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var ql=xy;function ao(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]);}}ao.prototype.clear=Fl;ao.prototype.delete=jl;ao.prototype.get=Il;ao.prototype.has=Vl;ao.prototype.set=ql;var Jt=ao;var Ey=Ee(ee,"Map"),Qt=Ey;function $y(){this.size=0,this.__data__={hash:new Ps,map:new(Qt||Jt),string:new Ps};}var Bl=$y;function Py(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Wl=Py;function vy(e,t){var r=e.__data__;return Wl(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Zt=vy;function Ny(e){var t=Zt(this,e).delete(e);return this.size-=t?1:0,t}var Ul=Ny;function Ay(e){return Zt(this,e).get(e)}var Kl=Ay;function Ty(e){return Zt(this,e).has(e)}var Gl=Ty;function Cy(e,t){var r=Zt(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var zl=Cy;function lo(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]);}}lo.prototype.clear=Bl;lo.prototype.delete=Ul;lo.prototype.get=Kl;lo.prototype.has=Gl;lo.prototype.set=zl;var $r=lo;var My="Expected a function";function vs(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(My);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(vs.Cache||$r),r}vs.Cache=$r;var Hl=vs;var ky=500;function Ly(e){var t=Hl(e,function(o){return r.size===ky&&r.clear(),o}),r=t.cache;return t}var Jl=Ly;var _y=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dy=/\\(\\)?/g,Fy=Jl(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(_y,function(r,o,n,i){t.push(n?i.replace(Dy,"$1"):o||r);}),t}),Ql=Fy;function jy(e){return e==null?"":rl(e)}var Zl=jy;function Iy(e,t){return z(e)?e:io(e,t)?[e]:Ql(Zl(e))}var po=Iy;function qy(e){if(typeof e=="string"||Jr(e))return e;var t=e+"";return t=="0"&&1/e==-Infinity?"-0":t}var ft=qy;function By(e,t){t=po(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[ft(t[r++])];return r&&r==o?e:void 0}var Un=By;function Wy(e,t,r){var o=e==null?void 0:Un(e,t);return o===void 0?r:o}var Yl=Wy;function Uy(e,t){for(var r=-1,o=t.length,n=e.length;++r<o;)e[n+r]=t[r];return e}var Kn=Uy;var Ky=Wn(Object.getPrototypeOf,Object),fo=Ky;var Gy="[object Object]",zy=Function.prototype,Hy=Object.prototype,Xl=zy.toString,Jy=Hy.hasOwnProperty,Qy=Xl.call(Object);function Zy(e){if(!oe(e)||Ae(e)!=Gy)return false;var t=fo(e);if(t===null)return true;var r=Jy.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Xl.call(r)==Qy}var Te=Zy;function Yy(){this.__data__=new Jt,this.size=0;}var ep=Yy;function Xy(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var tp=Xy;function eh(e){return this.__data__.get(e)}var rp=eh;function th(e){return this.__data__.has(e)}var op=th;var rh=200;function oh(e,t){var r=this.__data__;if(r instanceof Jt){var o=r.__data__;if(!Qt||o.length<rh-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new $r(o);}return r.set(e,t),this.size=r.size,this}var np=oh;function uo(e){var t=this.__data__=new Jt(e);this.size=t.size;}uo.prototype.clear=ep;uo.prototype.delete=tp;uo.prototype.get=rp;uo.prototype.has=op;uo.prototype.set=np;var dt=uo;function nh(e,t){return e&&st(t,lt(t),e)}var ip=nh;function ih(e,t){return e&&st(t,pt(t),e)}var sp=ih;var fp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=fp&&typeof module=="object"&&module&&!module.nodeType&&module,sh=ap&&ap.exports===fp,lp=sh?ee.Buffer:void 0,pp=lp?lp.allocUnsafe:void 0;function ah(e,t){if(t)return e.slice();var r=e.length,o=pp?pp(r):new e.constructor(r);return e.copy(o),o}var Gn=ah;function lh(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 dp=lh;function ph(){return []}var zn=ph;var fh=Object.prototype,dh=fh.propertyIsEnumerable,up=Object.getOwnPropertySymbols,uh=up?function(e){return e==null?[]:(e=Object(e),dp(up(e),function(t){return dh.call(e,t)}))}:zn,co=uh;function ch(e,t){return st(e,co(e),t)}var cp=ch;var mh=Object.getOwnPropertySymbols,gh=mh?function(e){for(var t=[];e;)Kn(t,co(e)),e=fo(e);return t}:zn,Hn=gh;function yh(e,t){return st(e,Hn(e),t)}var mp=yh;function hh(e,t,r){var o=t(e);return z(e)?o:Kn(o,r(e))}var Jn=hh;function wh(e){return Jn(e,lt,co)}var rn=wh;function Sh(e){return Jn(e,pt,Hn)}var gp=Sh;var bh=Ee(ee,"DataView"),Qn=bh;var Rh=Ee(ee,"Promise"),Zn=Rh;var Oh=Ee(ee,"Set"),Yn=Oh;var yp="[object Map]",xh="[object Object]",hp="[object Promise]",wp="[object Set]",Sp="[object WeakMap]",bp="[object DataView]",Eh=At(Qn),$h=At(Qt),Ph=At(Zn),vh=At(Yn),Nh=At(In),Pr=Ae;(Qn&&Pr(new Qn(new ArrayBuffer(1)))!=bp||Qt&&Pr(new Qt)!=yp||Zn&&Pr(Zn.resolve())!=hp||Yn&&Pr(new Yn)!=wp||In&&Pr(new In)!=Sp)&&(Pr=function(e){var t=Ae(e),r=t==xh?e.constructor:void 0,o=r?At(r):"";if(o)switch(o){case Eh:return bp;case $h:return yp;case Ph:return hp;case vh:return wp;case Nh:return Sp}return t});var kt=Pr;var Ah=Object.prototype,Th=Ah.hasOwnProperty;function Ch(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Th.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var Rp=Ch;var Mh=ee.Uint8Array,mo=Mh;function kh(e){var t=new e.constructor(e.byteLength);return new mo(t).set(new mo(e)),t}var go=kh;function Lh(e,t){var r=t?go(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var Op=Lh;var _h=/\w*$/;function Dh(e){var t=new e.constructor(e.source,_h.exec(e));return t.lastIndex=e.lastIndex,t}var xp=Dh;var Ep=Se?Se.prototype:void 0,$p=Ep?Ep.valueOf:void 0;function Fh(e){return $p?Object($p.call(e)):{}}var Pp=Fh;function jh(e,t){var r=t?go(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Xn=jh;var Ih="[object Boolean]",Vh="[object Date]",qh="[object Map]",Bh="[object Number]",Wh="[object RegExp]",Uh="[object Set]",Kh="[object String]",Gh="[object Symbol]",zh="[object ArrayBuffer]",Hh="[object DataView]",Jh="[object Float32Array]",Qh="[object Float64Array]",Zh="[object Int8Array]",Yh="[object Int16Array]",Xh="[object Int32Array]",ew="[object Uint8Array]",tw="[object Uint8ClampedArray]",rw="[object Uint16Array]",ow="[object Uint32Array]";function nw(e,t,r){var o=e.constructor;switch(t){case zh:return go(e);case Ih:case Vh:return new o(+e);case Hh:return Op(e,r);case Jh:case Qh:case Zh:case Yh:case Xh:case ew:case tw:case rw:case ow:return Xn(e,r);case qh:return new o;case Bh:case Kh:return new o(e);case Wh:return xp(e);case Uh:return new o;case Gh:return Pp(e)}}var vp=nw;function iw(e){return typeof e.constructor=="function"&&!ro(e)?ll(fo(e)):{}}var ei=iw;var sw="[object Map]";function aw(e){return oe(e)&&kt(e)==sw}var Np=aw;var Ap=Ct&&Ct.isMap,lw=Ap?oo(Ap):Np,Tp=lw;var pw="[object Set]";function fw(e){return oe(e)&&kt(e)==pw}var Cp=fw;var Mp=Ct&&Ct.isSet,dw=Mp?oo(Mp):Cp,kp=dw;var uw=1,cw=2,mw=4,Lp="[object Arguments]",gw="[object Array]",yw="[object Boolean]",hw="[object Date]",ww="[object Error]",_p="[object Function]",Sw="[object GeneratorFunction]",bw="[object Map]",Rw="[object Number]",Dp="[object Object]",Ow="[object RegExp]",xw="[object Set]",Ew="[object String]",$w="[object Symbol]",Pw="[object WeakMap]",vw="[object ArrayBuffer]",Nw="[object DataView]",Aw="[object Float32Array]",Tw="[object Float64Array]",Cw="[object Int8Array]",Mw="[object Int16Array]",kw="[object Int32Array]",Lw="[object Uint8Array]",_w="[object Uint8ClampedArray]",Dw="[object Uint16Array]",Fw="[object Uint32Array]",K={};K[Lp]=K[gw]=K[vw]=K[Nw]=K[yw]=K[hw]=K[Aw]=K[Tw]=K[Cw]=K[Mw]=K[kw]=K[bw]=K[Rw]=K[Dp]=K[Ow]=K[xw]=K[Ew]=K[$w]=K[Lw]=K[_w]=K[Dw]=K[Fw]=true;K[ww]=K[_p]=K[Pw]=false;function ti(e,t,r,o,n,i){var s,a=t&uw,l=t&cw,f=t&mw;if(r&&(s=n?r(e,o,n,i):r(e)),s!==void 0)return s;if(!H(e))return e;var p=z(e);if(p){if(s=Rp(e),!a)return Vn(e,s)}else {var d=kt(e),u=d==_p||d==Sw;if(Tt(e))return Gn(e,a);if(d==Dp||d==Lp||u&&!n){if(s=l||u?{}:ei(e),!a)return l?mp(e,sp(s,e)):cp(e,ip(s,e))}else {if(!K[d])return n?e:{};s=vp(e,d,a);}}i||(i=new dt);var m=i.get(e);if(m)return m;i.set(e,s),kp(e)?e.forEach(function(h){s.add(ti(h,t,r,h,e,i));}):Tp(e)&&e.forEach(function(h,w){s.set(w,ti(h,t,r,w,e,i));});var g=f?l?gp:rn:l?pt:lt,c=p?void 0:g(e);return ml(c||e,function(h,w){c&&(w=h,h=e[w]),eo(s,w,ti(h,t,r,w,e,i));}),s}var ri=ti;var jw=1,Iw=4;function Vw(e){return ri(e,jw|Iw)}var oi=Vw;var qw=1,Bw=4;function Ww(e,t){return t=typeof t=="function"?t:void 0,ri(e,qw|Bw,t)}var Ns=Ww;var Uw="__lodash_hash_undefined__";function Kw(e){return this.__data__.set(e,Uw),this}var Fp=Kw;function Gw(e){return this.__data__.has(e)}var jp=Gw;function ni(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new $r;++t<r;)this.add(e[t]);}ni.prototype.add=ni.prototype.push=Fp;ni.prototype.has=jp;var Ip=ni;function zw(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 ii=zw;function Hw(e,t){return e.has(t)}var Vp=Hw;var Jw=1,Qw=2;function Zw(e,t,r,o,n,i){var s=r&Jw,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&Qw?new Ip: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(!ii(t,function(w,R){if(!Vp(m,R)&&(g===w||n(g,w,r,o,i)))return m.push(R)})){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 si=Zw;function Yw(e){var t=-1,r=Array(e.size);return e.forEach(function(o,n){r[++t]=[n,o];}),r}var qp=Yw;function Xw(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o;}),r}var Bp=Xw;var eS=1,tS=2,rS="[object Boolean]",oS="[object Date]",nS="[object Error]",iS="[object Map]",sS="[object Number]",aS="[object RegExp]",lS="[object Set]",pS="[object String]",fS="[object Symbol]",dS="[object ArrayBuffer]",uS="[object DataView]",Wp=Se?Se.prototype:void 0,As=Wp?Wp.valueOf:void 0;function cS(e,t,r,o,n,i,s){switch(r){case uS:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return false;e=e.buffer,t=t.buffer;case dS:return !(e.byteLength!=t.byteLength||!i(new mo(e),new mo(t)));case rS:case oS:case sS:return it(+e,+t);case nS:return e.name==t.name&&e.message==t.message;case aS:case pS:return e==t+"";case iS:var a=qp;case lS:var l=o&eS;if(a||(a=Bp),e.size!=t.size&&!l)return false;var f=s.get(e);if(f)return f==t;o|=tS,s.set(e,t);var p=si(a(e),a(t),o,n,i,s);return s.delete(e),p;case fS:if(As)return As.call(e)==As.call(t)}return false}var Up=cS;var mS=1,gS=Object.prototype,yS=gS.hasOwnProperty;function hS(e,t,r,o,n,i){var s=r&mS,a=rn(e),l=a.length,f=rn(t),p=f.length;if(l!=p&&!s)return false;for(var d=l;d--;){var u=a[d];if(!(s?u in t:yS.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],R=t[u];if(o)var b=s?o(R,w,u,t,e,i):o(w,R,u,e,t,i);if(!(b===void 0?w===R||n(w,R,r,o,i):b)){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=hS;var wS=1,Gp="[object Arguments]",zp="[object Array]",ai="[object Object]",SS=Object.prototype,Hp=SS.hasOwnProperty;function bS(e,t,r,o,n,i){var s=z(e),a=z(t),l=s?zp:kt(e),f=a?zp:kt(t);l=l==Gp?ai:l,f=f==Gp?ai:f;var p=l==ai,d=f==ai,u=l==f;if(u&&Tt(e)){if(!Tt(t))return false;s=true,p=false;}if(u&&!p)return i||(i=new dt),s||no(e)?si(e,t,r,o,n,i):Up(e,t,l,r,o,n,i);if(!(r&wS)){var m=p&&Hp.call(e,"__wrapped__"),g=d&&Hp.call(t,"__wrapped__");if(m||g){var c=m?e.value():e,h=g?t.value():t;return i||(i=new dt),n(c,h,r,o,i)}}return u?(i||(i=new dt),Kp(e,t,r,o,n,i)):false}var Jp=bS;function Qp(e,t,r,o,n){return e===t?true:e==null||t==null||!oe(e)&&!oe(t)?e!==e&&t!==t:Jp(e,t,r,o,Qp,n)}var yo=Qp;var RS=1,OS=2;function xS(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 dt;if(o)var u=o(f,p,l,e,t,d);if(!(u===void 0?yo(p,f,RS|OS,o,d):u))return false}}return true}var Zp=xS;function ES(e){return e===e&&!H(e)}var li=ES;function $S(e){for(var t=lt(e),r=t.length;r--;){var o=t[r],n=e[o];t[r]=[o,n,li(n)];}return t}var Yp=$S;function PS(e,t){return function(r){return r==null?false:r[e]===t&&(t!==void 0||e in Object(r))}}var pi=PS;function vS(e){var t=Yp(e);return t.length==1&&t[0][2]?pi(t[0][0],t[0][1]):function(r){return r===e||Zp(r,e,t)}}var Xp=vS;function NS(e,t){return e!=null&&t in Object(e)}var ef=NS;function AS(e,t,r){t=po(t,e);for(var o=-1,n=t.length,i=false;++o<n;){var s=ft(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&&to(n)&&zt(s,n)&&(z(e)||Er(e)))}var tf=AS;function TS(e,t){return e!=null&&tf(e,t,ef)}var rf=TS;var CS=1,MS=2;function kS(e,t){return io(e)&&li(t)?pi(ft(e),t):function(r){var o=Yl(r,e);return o===void 0&&o===t?rf(r,e):yo(t,o,CS|MS)}}var of=kS;function LS(e){return function(t){return t?.[e]}}var nf=LS;function _S(e){return function(t){return Un(t,e)}}var sf=_S;function DS(e){return io(e)?nf(ft(e)):sf(e)}var af=DS;function FS(e){return typeof e=="function"?e:e==null?Qr:typeof e=="object"?z(e)?of(e[0],e[1]):Xp(e):af(e)}var lf=FS;function jS(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 pf=jS;var IS=pf(),fi=IS;function VS(e,t){return e&&fi(e,t,lt)}var ff=VS;function qS(e,t){return function(r,o){if(r==null)return r;if(!at(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 df=qS;var BS=df(ff),uf=BS;function WS(e,t,r){(r!==void 0&&!it(e[t],r)||r===void 0&&!(t in e))&&Xr(e,t,r);}var on=WS;function US(e){return oe(e)&&at(e)}var cf=US;function KS(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var nn=KS;function GS(e){return st(e,pt(e))}var mf=GS;function zS(e,t,r,o,n,i,s){var a=nn(e,r),l=nn(t,r),f=s.get(l);if(f){on(e,r,f);return}var p=i?i(a,l,r+"",e,t,s):void 0,d=p===void 0;if(d){var u=z(l),m=!u&&Tt(l),g=!u&&!m&&no(l);p=l,u||m||g?z(a)?p=a:cf(a)?p=Vn(a):m?(d=false,p=Gn(l,true)):g?(d=false,p=Xn(l,true)):p=[]:Te(l)||Er(l)?(p=a,Er(a)?p=mf(a):(!H(a)||Zr(a))&&(p=ei(l))):d=false;}d&&(s.set(l,p),n(p,l,o,i,s),s.delete(l)),on(e,r,p);}var gf=zS;function yf(e,t,r,o,n){e!==t&&fi(t,function(i,s){if(n||(n=new dt),H(i))gf(e,t,s,r,yf,o,n);else {var a=o?o(nn(e,s),i,s+"",e,t,n):void 0;a===void 0&&(a=i),on(e,s,a);}},pt);}var hf=yf;function HS(e,t){return yo(e,t)}var vr=HS;var JS=wl(function(e,t,r){hf(e,t,r);}),Ts=JS;function QS(e,t,r,o){if(!H(e))return e;t=po(t,e);for(var n=-1,i=t.length,s=i-1,a=e;a!=null&&++n<i;){var l=ft(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=H(p)?p:zt(t[n+1])?[]:{});}eo(a,l,f),a=a[l];}return e}var wf=QS;function ZS(e,t,r){return e==null?e:wf(e,t,r)}var Cs=ZS;function YS(e,t){var r;return uf(e,function(o,n,i){return r=t(o,n,i),!r}),!!r}var Sf=YS;function XS(e,t,r){var o=z(e)?ii:Sf;return r&&qn(e,t,r)&&(t=void 0),o(e,lf(t))}var Ms=XS;var eb=/^(\$+)\.(.*)$/,L=e=>{let t=eb.exec(e);return t?{depth:t[1].length,path:t[2]}:null},ks=(e,t,r)=>`Scope ref '${e}' needs depth ${t} but only ${r} ${r===1?"scope is":"scopes are"} in reach`,De=(e,t)=>{let r=L(e);return r?r.depth>t.length?{outOfBounds:ks(e,r.depth,t.length)}:{scope:t[t.length-r.depth],path:r.path}:{scope:t[t.length-1],path:e}},tb=/\[(\d+)\]|\[(["'])(.*?)\2\]|([^.[\]]+)/g,rb=e=>e===""?[""]:[...e.matchAll(tb)].map(t=>t[1]??t[3]??t[4]),ob=(e,t)=>{if(e==null)return;let r=Object(e);return Object.hasOwn(r,t)?r[t]:void 0},ye=(e,t)=>rb(t).reduce(ob,e),Yt=(e,t)=>{let r=De(e,t);if("outOfBounds"in r)throw new Error(r.outOfBounds);return ye(r.scope,r.path)},bf=(e,t)=>L(e)?Yt(e,t):ye(t[0],e),sn=(e,t)=>`Scope ref '${e}' is not supported by ${t}(); evaluate with check()`,di=(e,t)=>{if(!(!("field"in e)||typeof e.field!="string")&&L(e.field))throw new Error(sn(e.field,t))};var wo={postgres:"postgres",mysql:"mysql"},Rf=e=>Object.values(wo).includes(e),Of={string:{caseInsensitive:false,fuzzy:false},prismaOptions:{datasource:{provider:"postgresql"}},sql:{dialect:wo.postgres}},ho=oi(Of),Ls=e=>Ns(e,t=>typeof t=="object"&&t!==null&&!Array.isArray(t)&&!Te(t)?t:void 0),nb=e=>e!=null&&typeof e.then=="function",Lt={set:(e,t)=>{Cs(ho,e,Ls(t));},get:e=>ye(ho,e),reset:()=>{ho=oi(Of);},with:(e,t)=>{let r=ho;ho=Ts(Ls(r),Ls(e));try{let o=t();if(nb(o))throw new Error("engineGlobals.with() callback must be synchronous (it returned a Promise).");return o}finally{ho=r;}}},ib=new Set(["postgresql","cockroachdb","mongodb"]),xf=e=>ib.has(e),ne=e=>e??Lt.get("string.caseInsensitive")??false,ui=e=>{let t=e??Lt.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 J={String:"String",Boolean:"Boolean",Int:"Int",BigInt:"BigInt",Float:"Float",Decimal:"Decimal",DateTime:"DateTime",Json:"Json",Bytes:"Bytes",Enum:"Enum"},Ke=["Int","Float","Decimal","BigInt"],So=["String",...Ke,"DateTime"],Xt=["String"],ci=["String","Boolean","Int","BigInt","Float","Decimal","DateTime","Enum"],mi=Object.values(J),Ef=mi,sb={check:"check",toPrisma:"toPrisma",toSql:"toSql"},hi=e=>typeof e=="string"&&Object.hasOwn(J,e),C=["check","toPrisma","toSql"],bo=["check","toPrisma"],gi=["check","toSql"],Dt={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"},Ro={[y.equals]:{kinds:ci,targets:C,valueShape:"scalar"},[y.notEquals]:{negates:y.equals,kinds:ci,targets:C,valueShape:"scalar"},[y.lessThan]:{kinds:So,targets:C,valueShape:"ordered",comparator:"lt"},[y.lessThanEquals]:{kinds:So,targets:C,valueShape:"ordered",comparator:"lte"},[y.greaterThan]:{kinds:So,targets:C,valueShape:"ordered",comparator:"gt"},[y.greaterThanEquals]:{kinds:So,targets:C,valueShape:"ordered",comparator:"gte"},[y.in]:{kinds:ci,targets:C,valueShape:"array"},[y.notIn]:{negates:y.in,kinds:ci,targets:C,valueShape:"array"},[y.contains]:{kinds:Xt,targets:C,valueShape:"string"},[y.notContains]:{negates:y.contains,kinds:Xt,targets:C,valueShape:"string"},[y.startsWith]:{kinds:Xt,targets:C,valueShape:"string"},[y.notStartsWith]:{negates:y.startsWith,kinds:Xt,targets:C,valueShape:"string"},[y.endsWith]:{kinds:Xt,targets:C,valueShape:"string"},[y.notEndsWith]:{negates:y.endsWith,kinds:Xt,targets:C,valueShape:"string"},[y.matches]:{kinds:Xt,targets:gi,valueShape:"pattern"},[y.notMatches]:{negates:y.matches,kinds:Xt,targets:gi,valueShape:"pattern"},[y.between]:{kinds:So,targets:C,valueShape:"range"},[y.notBetween]:{negates:y.between,kinds:So,targets:C,valueShape:"range"},[y.isEmpty]:{kinds:Ef,targets:C,valueShape:"none"},[y.notEmpty]:{kinds:Ef,targets:C,valueShape:"none"},[y.exists]:{kinds:mi,targets:C,valueShape:"none"},[y.notExists]:{kinds:mi,targets:C,valueShape:"none"}},Oo={[v.before]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"lt"},[v.after]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"gt"},[v.onOrBefore]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.onOrAfter]:{kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notBefore]:{negates:v.before,kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"gte"},[v.notAfter]:{negates:v.after,kinds:["DateTime"],targets:C,valueShape:"dateValue",acceptsExpr:true,comparator:"lte"},[v.within]:{kinds:["DateTime"],targets:C,valueShape:"dateWindow",acceptsExpr:true},[v.notWithin]:{negates:v.within,kinds:["DateTime"],targets:C,valueShape:"dateWindow",acceptsExpr:true},[v.between]:{kinds:["DateTime"],targets:C,valueShape:"dateRange",acceptsExpr:true},[v.notBetween]:{negates:v.between,kinds:["DateTime"],targets:C,valueShape:"dateRange",acceptsExpr:true},[v.dayIn]:{kinds:["DateTime"],targets:gi,valueShape:"dayList",acceptsExpr:false},[v.dayNotIn]:{negates:v.dayIn,kinds:["DateTime"],targets:gi,valueShape:"dayList",acceptsExpr:false}},yi={[P.all]:{targets:bo,valueShape:"predicate"},[P.any]:{targets:bo,valueShape:"predicate"},[P.none]:{targets:bo,valueShape:"predicate"},[P.atLeast]:{targets:bo,valueShape:"count",comparator:"gte"},[P.atMost]:{targets:bo,valueShape:"count",comparator:"lte"},[P.exactly]:{targets:bo,valueShape:"count",comparator:"equals"},[P.empty]:{targets:C,valueShape:"none"},[P.notEmpty]:{targets:C,valueShape:"none"}},$f={field:Ro,date:Oo,array:yi},_t=(e,t)=>Object.hasOwn($f[t],e)?$f[t][e]:void 0,xo=e=>typeof e.operator=="string"?_t(e.operator,"field"):typeof e.dateOperator=="string"?_t(e.dateOperator,"date"):void 0,er=(e,t)=>_t(e,t)?.comparator,Ft=(e,t)=>{let r=_t(e,t);if(!r)throw le(e,t);return r.valueShape},wi=(e,t,r)=>_t(e,t)?.targets.includes(r)??false,ab=(e,t)=>{let r=Object.keys(Ro).filter(n=>{let i=Ro[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))}),o=Object.keys(Oo).filter(n=>{let i=Oo[n];return !(!i.kinds.includes(e)||t&&!i.targets.includes(t))});return {field:r,date:o}},lb=e=>Object.keys(yi).filter(t=>e?yi[t].targets.includes(e):true),Pf=[...Object.entries(Ro),...Object.entries(Oo)],Ce=(...e)=>Pf.flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),tr=Ce("none"),Eo=Ce("ordered"),an=Ce("dateWindow"),Fe=Ce("range","dateRange","dateWindow"),vf=Ce("ordered","string","pattern","array"),ut=[y.contains,y.notContains],_s=[y.equals,y.notEquals,y.in,y.notIn,y.exists,y.notExists],Si=Ce("scalar","ordered","range"),ct=["sum","avg"],pb=()=>Si,mt=Ce("scalar"),rr=Ce("array"),Nf=Ce("scalar","array"),Af=Ce("dayList"),Tf=Ce("dateRange"),Cf=Ce("scalar","ordered","range","dateValue","dateRange"),Mf=(...e)=>Object.entries(yi).flatMap(([t,r])=>e.includes(r.valueShape)?[t]:[]),or=Mf("count"),kf=Mf("predicate","count"),Lf=[P.any,P.atLeast],W=[...Object.entries(Ro),...Object.entries(Oo)].flatMap(([e,t])=>t.negates?[e]:[]),_f=W.filter(e=>Ce("string").includes(e)),$o=W.filter(e=>Fe.includes(e)),Df=(...e)=>Pf.flatMap(([t,r])=>r.comparator&&e.includes(r.comparator)&&!W.includes(t)?[t]:[]),bi=Df("lt","lte"),Ff=Df("gt","gte"),jf=["Int","BigInt"],If=[...Ke,"DateTime","Boolean","String"],Vf=["Int","BigInt","Float","Boolean","String"],qf=["scalar","ordered","string"],nr={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}},Bf=["months","days","secs"],Ds=e=>Object.hasOwn(nr,e),Nr=e=>Ds(e)&&nr[e].calendar,Ri=["year","quarter","month","week","isoWeek","day","hour","minute","second"],Po=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Wf=e=>Po.includes(e.toLowerCase()),Uf=(e,t=[])=>Object.fromEntries([...Object.entries(e).flatMap(([r,o])=>o.negates?[[o.negates,r]]:[]),...t].flatMap(([r,o])=>[[r,o],[o,r]])),ln=Uf(Ro,[[y.isEmpty,y.notEmpty],[y.exists,y.notExists]]),Kf=Uf(Oo),Oi={[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 xi=e=>new Error(`${e}: ArrayRule.field is required (fieldless arrayOps are check-only)`),le=(e,t)=>new Error(`Unknown ${t} operator: ${String(e)}`),vo=e=>new Error(`${e} requires a count`),Ge=e=>new Error(`${e} requires a range date expression (a period or rolling window), not a single point`),ze=e=>new Error(`${e} requires a condition to check against array elements`),ir=e=>new Error(`'${e}' is a relation: it exists or not; compare its fields with '${e}.<field>'.`),Ei=e=>new Error(`'${e}' is a list of rows: compare it with an arrayOperator (any / all / none / empty / atLeast \u2026).`),$i=e=>ut.includes(e.operator)&&ui(e.fuzzy)?new Error("Fuzzy matching has no compiled form \u2014 evaluate it in memory with check()."):null,Pi=(e,t)=>!Eo.includes(e)&&!Fe.includes(e)?null:(Fe.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,sr=e=>new Error(`aggregate.mode must be one of ${ct.join(" / ")}, not '${String(e)}'`),gt=()=>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()"}.`),yt=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":""}.`),No=(e,t)=>new Error(`'${e}' reads through the to-many relation '${t.prefix}'; compare its rows with an arrayOperator rule on '${t.prefix}'.`),Ao=(e,t)=>new Error(`'${e}' continues past '${t}', which is not a Json column`),F=class extends Error{name="UsageError"};wt.extend(cb);wt.extend(ub);wt.extend(db);wt.extend(fb);var te=e=>{if(!Te(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},He="UTC",pn=e=>{if(e.now===void 0)throw new F("date expressions require `now` to be supplied to the evaluator");let t=wt(e.now).tz(e.timeZone);if(!t.isValid())throw new F(`invalid \`now\`: ${String(e.now)}`);return t},Fs=(e,t)=>Object.entries(e).reduce((r,[o,n])=>nr[o].interval===t?r+n*nr[o].factor:r,0),Gf="YYYY-MM-DDTHH:mm:ss.SSS",ar=(e,t,r,o)=>{let n=Fs(t,"months"),i=Fs(t,"days"),s=Fs(t,"secs"),a=wt.utc(e.tz(o).format(Gf));return n&&(a=a.add(r*n,"month")),i&&(a=a.add(r*i,"day")),s&&(a=a.add(r*s*1e3,"millisecond")),wt.tz(a.format(Gf),o)},mb=e=>"ago"in e||"ahead"in e,vi=(e,t)=>t===-1?{ago:e}:{ahead:e},$e=e=>mb(e)?"ago"in e?[e.ago,-1]:[e.ahead,1]:null,fn=e=>"this"in e||"last"in e||"next"in e,js=e=>"start"in e||"end"in e,Ni=e=>"this"in e?e.this:"last"in e?e.last:e.next,gb=e=>{let t=Ni(e);if(typeof t!="string"||!Ri.includes(t))throw new Error(`Unknown period unit '${String(t)}'`);return t},yb=(e,t)=>e==="week"?t.weekStart==="sunday"?"week":"isoWeek":e,Is=(e,t)=>{let r=pn(t),o=gb(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=yb(o,t);return [i.startOf(s),i.endOf(s)]},Vs=(e,t)=>{let r=$e(e);if(r)return ar(pn(t),...r,t.timeZone);if(js(e)){let o="start"in e?e.start:e.end,[n,i]=Is(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")},To=(e,t,r)=>{if(fn(e)){let[o,n]=Is(e,r),i=xo({dateOperator:t})?.negates??t;return bi.includes(i)?o:n}return Vs(e,r)},Co=(e,t)=>{if(fn(e))return Is(e,t);let r=$e(e);if(r){let o=pn(t),n=ar(o,...r,t.timeZone);return r[1]===-1?[n,o]:[o,n]}throw Ge("within")};var zf=["value","bind","path"],Je=e=>typeof e.path=="string"&&e.path!=="",Tr=e=>Je(e)?L(e.path)??{depth:0,path:e.path}:null,dn=(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(Je(e))return t.path(e.path);throw new Error("No value, path or bind specified")},Ai=e=>Te(e)&&(e.value!==void 0||Je(e)||typeof e.bind=="string"),qs=(e,t,r)=>{if(!r||!Object.hasOwn(r,e)){if(t===true)return null;throw new F(`Missing binding for "${e}"`)}let o=r[e];return o===void 0?null:o},Ti=(e,t,r)=>{if(t===true)return null;throw new F(`Unresolved binding '${e}' \u2014 resolve bindings (bindRule / bindLens) before compiling with ${r}().`)},jt=(e,t,r)=>dn(e,{value:o=>o,bind:(o,n)=>qs(o,n,r),path:o=>bf(o,t)??null});var Jf=e=>typeof e=="object"&&e!==null,Ws=e=>"if"in e||"then"in e||"else"in e,je=e=>"arrayOperator"in e||"aggregate"in e,Qf=e=>[...["all","any"].flatMap(t=>Array.isArray(e[t])?e[t].map((r,o)=>({key:t,index:o,child:r,nested:false})):[]),...Ws(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}]:[])],Me=e=>"all"in e||"any"in e||Ws(e),Y=(e,t,r)=>{if(!Jf(e))return;let o=e,n=t(o,r),i=n===void 0?r:n;for(let{child:s,nested:a}of Qf(o))a?i!==false&&Y(s,t,i):Y(s,t,r);},Zf=(e,t,r,o)=>{let n=false;return Y(e,(i,s)=>(!n&&t(i,s)&&(n=true),n?false:r?.(i,s)),o),n},lr=(e,t,r)=>{if(!Jf(e))return e;let o=r,n={...e},i=t.rewrite?t.rewrite(n,o):n,s=Qf(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=lr(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&&hb(i,e)?e:l},hb=(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])})},wb=(e,t)=>Te(e)?Object.fromEntries(Object.entries(e).map(([r,o])=>[r,Ai(o)?t(o,Nr(r)?"whole":"number"):o])):e,Bs=(e,t)=>{let r=te(e)?$e(e):null;return r?vi(wb(r[0],t),r[1]):e},Ci=(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=>Bs(i,t)):Bs(e.value,t);o={...o,value:n};}if(Ai(e.offset)){let n=r?{...e.offset,...e.offset.value!==void 0&&{value:Bs(e.offset.value,t)}}:e.offset;o={...o,offset:t(n,r?"shift":"number")};}return Ai(o)&&(o=t(o,"value")),o},un=e=>{let t=[];return Ci(e,(r,o)=>(t.push({source:r,role:o}),r)),t},Us=e=>un(e).flatMap(({source:t,role:r})=>Je(t)?[{ref:t.path,role:r}]:[]),pr=e=>Us(e).map(t=>t.ref),Mo=e=>[...Array.isArray(e.orderBy)?e.orderBy.flatMap(t=>typeof t?.field=="string"?[t.field]:[]):[],...typeof e.aggregate?.field=="string"?[e.aggregate.field]:[]],Sb={all:"all",any:"any",if:"if",field:"field",aggregate:"aggregate",array:"array",date:"date"},Cr=()=>(e,t)=>({required:[...e],optional:[...t]}),Hf={all:Cr()(["all"],["error"]),any:Cr()(["any"],["error"]),if:Cr()(["if","then"],["else","error"]),field:Cr()(["field","operator"],["value","path","bind","bindOptional","offset","caseInsensitive","fuzzy","coerceType","error"]),aggregate:Cr()(["field","aggregate","operator"],["value","path","bind","bindOptional","condition","filter","orderBy","take","skip","error"]),array:Cr()(["arrayOperator"],["field","condition","count","filter","orderBy","take","skip","error"]),date:Cr()(["field","dateOperator"],["value","path","bind","bindOptional","offset","error"])},bb=e=>({required:[...Hf[e].required],optional:[...Hf[e].optional]}),ie=e=>{let t=new Set;return "all"in e&&t.add("all"),"any"in e&&t.add("any"),Ws(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]},Ks=e=>typeof e=="object"&&"all"in e&&Array.isArray(e.all)?e.all.flatMap(Ks):[e],It=e=>e.length===0?false:e.length===1?e[0]:{any:[...e]};var Rb=e=>un(e).flatMap(({source:t})=>typeof t.bind=="string"?[t]:[]),cn=(e,{required:t=false}={})=>{let r=new Set;return Y(e,o=>{for(let n of Rb(o))(!t||n.bindOptional!==true)&&r.add(n.bind);}),[...r].sort()},Gs=(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:qs(n,true,t)}};return lr(e,{rewrite:o=>Ci(Ci(o,r),r)})};var Yf=BigInt(Number.MAX_SAFE_INTEGER),mn=e=>{if(e>Yf||e<-Yf)throw new RangeError(`BigInt ${e} is outside the safe integer range (\xB12^53); json-rules compares BigInt as Int.`);return Number(e)},zs=e=>typeof e=="bigint"?mn(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e))?Number(e):e,Mi=(e,t)=>{if(e==null)return null;let r=zs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`${t} reads a number (got ${String(e)})`);return r},Ie=([e,t])=>t<e?[t,e]:[e,t],Qe=(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]]},ko=(e,t)=>{let r=Qe(e,t);if(!r.every(de))throw new Error(`${t} requires two ends that order \u2014 numbers, strings or dates (got ${JSON.stringify(e)})`);return r},ki=e=>{if(!Array.isArray(e))throw new Error(`in / notIn requires a list (got ${JSON.stringify(e)})`);return e},Ve=e=>{let t=ki(e),r=t.filter(o=>o!==null);return {values:r,hasNull:r.length!==t.length}},de=e=>typeof e=="string"||typeof e=="number"||e instanceof Date;var Hs=(e,t)=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&(!Nr(t)||Number.isInteger(e))?null:`${t} must be a non-negative${Nr(t)?" whole":""} number (got ${String(e)})`,Js=(e,t,r)=>{let o=typeof e=="number"?e:Mi(t(e),e.path?`'${e.path}' (${r})`:r),n=o===null?null:Hs(o,r);if(n===null)return o;if(typeof e!="number"&&Je(e))return null;throw new Error(n)},Mr=(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},ht=(e,t)=>{let r=$e(e);if(!r)return e;let o=Mr(r[0],t);return o?vi(o,r[1]):null};var kr=(e,t)=>{if(e==null)return null;if(Array.isArray(e)){let o=e.map(n=>kr(n,t));return o.some(n=>n===null)?null:o}let r=zs(e);if(typeof r!="number"||!Number.isFinite(r))throw new Error(`offset needs a numeric comparison value (got ${String(e)})`);return r+t},Lr=e=>Mi(e,"an offset"),Lo=e=>{if(e==null)return null;let t=te(e)?$e(e):null;if(!t)throw new Error(`a date offset reads { ago } or { ahead } (got ${JSON.stringify(e)})`);return t};wt.extend(cb);wt.extend(ub);wt.extend(xb);wt.extend(Ob);var td=(e,t,r={},o)=>{let n=Yt(e.field,t),i=_r(r,u=>jt(u,t,o)),s=i.timeZone;if(n==null)return W.includes(e.dateOperator)?true:e.error||`${e.field} has no value`;let a=de(n)?fr(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(Af.includes(e.dateOperator)){let u=Qs(jt(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=>Po[c]).join(" or ");return e.dateOperator===v.dayIn?m||l(`must be on ${g}`):!m||l(`must not be on ${g}`)}let f=Pb(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 le(e.dateOperator,"date")}},Pb=(e,t,r,o,n)=>{let i=e.dateOperator,s=g=>jt(g,t,n),a=jt(e,t,n);if(a==null)return null;let l=e.offset===void 0?void 0:Lo(s(e.offset));if(l===null)return null;let f=g=>{if(l===void 0)return g;let c=Mr(l[0],s);return c&&ar(g,c,l[1],o)};if(an.includes(i)){if(!te(a))throw Ge(i);let g=ht(a,s);return g&&Co(g,r)}let p=(g,c)=>{if(g==null)return null;if(te(g)){let w=ht(g,s);return w&&Vs(w,r)}let h=fr(g,o);if(!h.isValid())throw new Error(`Invalid ${c}: ${String(g)}`);return h};if(Tf.includes(i)){let[g,c]=Qe(a,i),h=p(g,"start date"),w=p(c,"end date");if(!h||!w)return null;let[R,b]=Ie([h,w]),S=f(R),E=f(b);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=ht(g,s);return c&&To(c,i,r)},u=te(a)?d(a):p(a,"comparison date");if(!u)return null;let m=f(u);return m&&[m]},_r=(e,t)=>{let r=e.timeZone;if(r===void 0||typeof r=="string")return {...e,timeZone:ed(r??He)};if(Tr(r))throw new F(`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 F(`timeZone reads a zone name (got ${String(o)})`);return {...e,timeZone:ed(o??He)}},Xf=new Set,ed=e=>{if(Xf.has(e))return e;try{new Intl.DateTimeFormat("en-US",{timeZone:e});}catch{throw new F(`invalid time zone: ${e}`)}return Xf.add(e),e},vb=/\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?\s*(?:[zZ]|[+-]\d{2}(?::?\d{2})?)$/,Nb=e=>vb.test(e.trim())||/\b(?:GMT|UTC)\b/.test(e),fr=(e,t)=>{if(typeof e=="string"&&/^-?\d+$/.test(e.trim()))return wt(Number(e));if(typeof e=="string"&&!Nb(e)){let r=wt(e);return r.isValid()?wt.tz(e,t):r}return typeof e=="string"?wt(new Date(e.trim())):wt(e)},Li=(e,t)=>{let r=de(e)?fr(e,t):wt(Number.NaN);if(!r.isValid())throw new Error(`Invalid date value: ${String(e)}`);return r.toDate()},Qs=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=Po.indexOf(String(t).toLowerCase());if(r===-1)throw new Error(`Unknown day name: ${String(t)}`);return r})};var Tb=e=>e<=3?0:e<=6?1:2,Cb=(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):Tb(t)},rd=e=>e.split(/[^a-z0-9\p{L}]+/u).filter(Boolean),Mb=e=>/^\d+$/.test(e),kb=(e,t,r)=>e===t?true:Math.abs(e.length-t.length)>r?false:distance(e,t)<=r,od=(e,t,r={})=>{let o=t.trim().toLowerCase();if(!o)return true;let n=e.toLowerCase();if(n.includes(o))return true;let i=rd(o);if(i.length===0)return false;let s=rd(n);return s.length===0?false:i.every(a=>{let l=Cb(r,a.length);return l===0||Mb(a)?s.includes(a):s.some(f=>kb(a,f,l))})};var dr=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.compile(t,o?RE2JS.CASE_INSENSITIVE:0)}}catch(n){throw new Error(`Refused pattern /${t}/: ${n.message}`)}},_o={d:"0-9",w:"0-9A-Za-z_",s:"\\t\\n\\f\\r "},id={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"},Lb=/[\\^$.|?*+()[\]{}]/,Zs=255,sd=e=>e<=65535?`\\u${e.toString(16).padStart(4,"0")}`:`\\U${e.toString(16).padStart(8,"0")}`,_b=e=>Lb.test(e)?`\\${e}`:e,gn=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(_o,a))return s?_o[a]:`[${_o[a]}]`;let l=a.toLowerCase();if(a!==l&&Object.hasOwn(_o,l))return s&&t(`a negated class \\${a} inside brackets`),`[^${_o[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,sd(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 sd(Number.parseInt(f,8))}if(!s&&(a==="b"||a==="B")){let f=`[${_o.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:_b).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])>Zs||Number(a[2]??0)>Zs)&&t(`a repeat count past ${Zs}`),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(id,p[2])||t(`the class [:${p[2]}:]`),r+=id[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},ad=(e,t)=>{try{let{source:r}=dr(e);return t==="toSql"&&gn(r),null}catch(r){return r.message}};var ld=e=>e==null||e===""||Array.isArray(e)&&e.length===0,he=(e,t)=>{let r=t==null;return r&&(e.offset!==void 0||vf.includes(e.operator))?true:Fe.includes(e.operator)?r||Array.isArray(t)&&t.some(o=>o==null):false},Vt=e=>tr.includes(e.operator)||mt.includes(e.operator)&&e.value===null&&e.path===void 0&&e.bind===void 0,Di=(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?It(o(y.equals)):V(o(y.notEquals))},Fr=e=>typeof e=="string"?e.toLowerCase():Array.isArray(e)?e.map(Fr):e,pd=e=>typeof e=="bigint"?mn(e):Array.isArray(e)&&e.some(t=>typeof t=="bigint")?e.map(t=>typeof t=="bigint"?mn(t):t):e,fd=(e,t,r)=>{if(e==null)return e;if(Ke.includes(t)){if(typeof e!="string"||e.trim()==="")return e;if(t==="BigInt"&&/^-?\d+$/.test(e.trim()))return mn(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=fr(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}},Dr=(e,t,r=He)=>t===void 0?e:Array.isArray(e)?e.map(o=>fd(o,t,r)):fd(e,t,r),yn=(e,t,r,o={},n)=>{let i=n?n.value:Yt(e.field,t)??null,s=e.coerceType??(i instanceof Date?"DateTime":void 0),a=s==="DateTime"?_r(o,R=>jt(R,t,r)).timeZone:He,l=Dr(pd(i),s,a),f=!tr.includes(e.operator),p=f?Db(Dr(pd(jt(e,t,r)??null),s,a),e,t,r):void 0;if(f&&he(e,p))return W.includes(e.operator)&&l==null?true:e.error||`${e.field} has no comparison value`;let d=R=>e.error||`${e.field} ${R}${f?` ${p instanceof RegExp?String(p):JSON.stringify(p)}`:""}`,u=ne(e.caseInsensitive),m=R=>u?Fr(R):R,g=m(l),c=m(p),h=ui(e.fuzzy),w=()=>h&&typeof l=="string"&&typeof p=="string"?od(l,p,h):Array.isArray(l)?g.some(R=>vr(R,c)):Fb(g,c);switch(e.operator){case y.equals:return vr(g,c)||d("must equal");case y.notEquals:return !vr(g,c)||d("must not equal");case y.lessThan:return _i(l,p,"lt")||d("must be less than");case y.lessThanEquals:return _i(l,p,"lte")||d("must be less than or equal to");case y.greaterThan:return _i(l,p,"gt")||d("must be greater than");case y.greaterThanEquals:return _i(l,p,"gte")||d("must be greater than or equal to");case y.in:return ki(c).some(R=>vr(R,g))||d("must be one of");case y.notIn:return !ki(c).some(R=>vr(R,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 dd(l)&&ud(p)&&dr(p).re.test(l)||d("must match pattern");case y.notMatches:return !dd(l)||!ud(p)||!dr(p).re.test(l)||d("must not match pattern");case y.between:{let R=cd(p,e.operator);if(!gd(l,R))return d("must be between");let b=Do(l),[S,E]=R;return b>=S&&b<=E||d("must be between")}case y.notBetween:{let R=cd(p,e.operator);if(!gd(l,R))return true;let b=Do(l),[S,E]=R;return b<S||b>E||d("must not be between")}case y.isEmpty:return ld(l)||d("must be empty");case y.notEmpty:return !ld(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")}},Db=(e,t,r,o)=>{if(t.offset===void 0)return e;let n=Lr(jt(t.offset,r,o));return n===null?null:kr(e,n)},Do=e=>e instanceof Date?e.getTime():e,_i=(e,t,r)=>{if(!jb(e,t)||!de(t))return false;let o=Do(e),n=Do(t);switch(r){case "lt":return o<n;case "lte":return o<=n;case "gt":return o>n;case "gte":return o>=n}},dd=e=>typeof e=="string",ud=e=>typeof e=="string"||e instanceof RegExp,cd=(e,t)=>Ie(ko(e,t).map(r=>Do(r))),Fb=(e,t)=>typeof e=="string"&&typeof t=="string"&&e.includes(t),jb=(e,t)=>de(e)&&de(t)&&md(e)===md(t),md=e=>e instanceof Date?"date":typeof e,gd=(e,t)=>de(e)&&typeof Do(e)==typeof t[0];var ke=e=>e.filter!==void 0||!!e.orderBy?.length||e.take!==void 0||e.skip!==void 0,Ib=e=>{if(typeof e!="object"||e===null)return null;let t=e,r=ie(t);return r!=="field"&&r!=="date"||typeof t.field!="string"?null:{op:String(r==="date"?t.dateOperator:t.operator),field:t.field}},Vb=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=Ib(e.condition);if(!n||n.field!==t)return null;let i=bi.includes(n.op),s=Ff.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: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}}]}]}},Ys=(e,t,r)=>{let o=e;return t.filter!==void 0&&r&&(o=o.filter(r)),t.orderBy?.length&&(o=yd(o,t.orderBy)),t.skip!==void 0&&(o=o.slice(t.skip)),t.take!==void 0&&(o=o.slice(0,t.take)),o},yd=(e,t)=>[...e].sort((r,o)=>{for(let{field:n,dir:i}of t){let s=qb(ye(r,n),ye(o,n),i);if(s!==0)return s}return 0}),qb=(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},Fo=e=>{if(!ke(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:Vb(e)};var Bb=e=>Y(e,t=>{let r=ie(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)")}}),ue=(e,t,r)=>(Array.isArray(t)&&Bb(e),St(e,t,{...r,scopes:[t]})),St=(e,t,r)=>{if(typeof e=="boolean")return e;let o=e;switch(ie(e)){case "all":return Wb(o.all,t,r,o.error);case "any":return Ub(o.any,t,r,o.error);case "if":return Kb(o,t,r);case "array":return zb(o,r);case "aggregate":return Gb(o,r);case "date":return td(o,r.scopes,r,r.bindings);case "field":return yn(o,r.scopes,r.bindings,r);default:throw gt()}},Fi=(e,t)=>({...e,scopes:[...e.scopes,t]}),Wb=(e,t,r,o)=>{let n=[];for(let i of e){let s=St(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},Ub=(e,t,r,o)=>{let n=[];for(let i of e){let s=St(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 ")}`)},Kb=(e,t,r)=>St(e.if,t,r)===true?St(e.then,t,r):e.else!==void 0?St(e.else,t,r):true,hd=(e,t)=>{if(e==null)return [];if(!Array.isArray(e))throw new Error(`${t} must be an array`);return e},Gb=(e,t)=>{let r=hd(Yt(e.field,t.scopes),e.field),o=e.filter,n=Ys(r,e,o?m=>St(o,m,Fi(t,m))===true:void 0),{mode:i,field:s}=e.aggregate;if(!ct.includes(i))throw sr(i);let a=e.condition,f=(a?n.filter(m=>St(a,m,Fi(t,m))===true):n).flatMap((m,g)=>{let c=s?ye(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 yn(u,t.scopes,t.bindings,t,{value:d})},zb=(e,t)=>{let r=hd(e.field?Yt(e.field,t.scopes):t.scopes[t.scopes.length-1],e.field||"(root)"),o=e.filter,n=Ys(r,e,o?d=>St(o,d,Fi(t,d))===true:void 0),i=d=>e.error||`${e.field} ${d}`,s=e.condition,a=kf.includes(e.arrayOperator);if(a&&s===void 0)throw ze(e.arrayOperator);let l=e.count??0;if(or.includes(e.arrayOperator)&&e.count===void 0)throw vo(e.arrayOperator);let f=0,p=0;if(a&&s!==void 0){if(n.length>0&&!Ms(n,H))return i("contains only primitive values; use 'in' or 'contains' instead of array operators on primitive arrays");let d=n.map(u=>St(s,u,Fi(t,u)));f=d.filter(u=>u===true).length,p=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 f===n.length||i(`all elements must match (${p} failed)`);case P.any:return !!f||i("at least one element must match");case P.none:return !f||i(`no elements should match (${f} matched)`);case P.atLeast:return f>=l||i(`at least ${l} elements must match (${f} matched)`);case P.atMost:return f<=l||i(`at most ${l} elements must match (${f} matched)`);case P.exactly:return f===l||i(`exactly ${l} elements must match (${f} matched)`);default:throw le(e.arrayOperator,"array")}};var O=(e,t)=>e!==void 0&&Object.hasOwn(e,t)?e[t]:void 0,qt=(e,t,r)=>(Object.hasOwn(e,t)||(e[t]=r()),e[t]),A=(e,t)=>O(e?.models,t),be=(e,t,r)=>O(A(e,t)?.fields,r);var Pe=({fieldMap:e,model:t})=>`${e}:${t}`,wd=(e,t)=>{let r=e.indexOf(":");return r===-1?{mapName:t,modelName:e}:{mapName:e.slice(0,r),modelName:e.slice(r+1)}};var Sd=(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},Hb=(e,t)=>{let r={};for(let o of e){let n=O(o,t);n!=null&&qt(r,String(n),()=>[]).push(o);}return r},bd=(e,t)=>{let r={};for(let o of e.bridges??[]){let[n,i]=o.endpoints,s=Pe(n),a=Pe(i),l=o.cardinality==="oneToMany"?"one":"oneToOne",f=(u,m)=>qt(qt(r,u,()=>({})),m,()=>({})),p=O(t,s);p&&(f(n.fieldMap,n.model)[n.on]=Sd(p,n.on,s,l));let d=O(t,a);d&&(o.cardinality==="oneToMany"?f(i.fieldMap,i.model)[i.on]=Hb(d,i.on):f(i.fieldMap,i.model)[i.on]=Sd(d,i.on,a,"oneToOne"));}return r};var ji=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=Pe(o),s=Pe(n),a=A(O(t.maps,o.fieldMap),o.model),l=A(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 jo=(e,t,r)=>{if(e?.isList||t?.isList){if(!(e?.isList&&!t?.isList&&ut.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":mt.includes(r)?null:`an enum column orders by declaration on the database, not as check() compares its text ('${r}')`};var Le=e=>e.kind==="scalar"&&e.type==="Json",q=e=>e.kind==="object"||e.kind==="bridge",jr=(e,t)=>e.values??O(t,e.type);var Re=(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 Ze=(e,t)=>e.kind==="object"?{mapName:t,modelName:e.type}:e.kind==="bridge"?wd(e.type,t):null;function*ur(e,t,r){let o=r.split("."),n=t;for(let i=0;i<o.length;i++){let s=o[i],a=be(O(e,n.mapName),n.modelName,s),l=a?Ze(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 re=(e,t,r)=>{let o=e.split("."),n=[],i={mapName:"",modelName:r,relPath:[]};for(let{index:s,field:a,at:l,entry:f}of ur({"":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(!A(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}:Le(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}},cr=(e,t,r)=>t&&r?re(e,t,r):void 0,Q=(e,t,r)=>{let o=cr(e,t,r);return o?.kind==="direct"?o.entry:void 0},Rd=(e,t,r)=>re(e,t,r).hops.filter(o=>!o.entry.isList&&o.entry.isRequired===false).map(o=>o.prefix),hn=(e,t,r)=>{let o=re(e,t,r);return o.kind==="direct"&&o.entry.kind==="object"?o.entry.type:null},mr=(e,t,r)=>re(e,t,r).kind==="bridge",bt=(e,t,r)=>!!t&&!!r&&Zf(e,(o,n)=>typeof o.field=="string"&&o.field!==""&&mr(o.field,t,n),(o,n)=>(typeof o.field=="string"?hn(o.field,t,n):n)??false,r);var Io=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":Od(e.entry.type),Od=e=>e===J.Json?"json":e===J.Enum?"enum":e===J.DateTime?"instant":e===J.String?"text":"scalar",Ii=(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"},Vi=(e,t,r)=>{if(Io(cr(e,t,r))==="relations")throw Ei(e)},Ir=e=>e!=="scalar"&&e!=="instant"&&e!=="list"&&e!=="enum"&&e!=="relation"&&e!=="relations",gr=(e,t)=>Ir(e)&&xd(t),xd=e=>typeof e=="string"||Array.isArray(e)&&e.some(xd),_e=(e,t,r)=>{let o=Io(cr(e.field,t,r));return o==="unknown"&&e.coerceType!==void 0?Od(e.coerceType):o},Ye=e=>{if(!e.isList){if(e.kind==="enum")return J.Enum;if(!(e.kind!=="scalar"||e.type===J.Json))return hi(e.type)?e.type:void 0}};var Ed=new WeakSet,Bi=e=>(Ed.add(e),e),$d=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"&&Ed.has(o)){t.push({path:n});return}if(Array.isArray(o))for(let[i,s]of o.entries())r(s,[...n,i]);else if($d(o))for(let[i,s]of Object.entries(o))r(s,[...n,i]);};return r(e,[]),t},Jb=["__step","__field"],qi=e=>Array.isArray(e)?e.some(qi):$d(e)?Object.entries(e).some(([t,r])=>Jb.includes(t)||qi(r)):false;var Qb={[y.equals]:"equals",[y.notEquals]:"equals",[y.lessThan]:"lt",[y.lessThanEquals]:"lte",[y.greaterThan]:"gt",[y.greaterThanEquals]:"gte"},vd=(e,t,r)=>{let o=re(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 q(n)?`'${e}' is a relation`:Le(n)?`'${e}' is a Json column`:n.isList?`'${e}' is a list column`:n},Wi=(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=Qb[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=vd(e.field,t,r);if(typeof l=="string")return {problem:l};let f=s?s.path:i,p=vd(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=jo(l,p,e.operator);return d?{problem:d}:l.type==="String"&&ne(e.caseInsensitive)?{problem:"a case-insensitive column comparison compiles to ILIKE"}:{key:a,ref:Bi({__field:{model:r,field:f}}),field:l,column:p,columnPath:f}},Ui=(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().`),Nd=new WeakSet,Xs=new WeakSet,Vr=(e,t,r=false)=>(Nd.add(e),(r||t!==void 0&&Xs.has(t))&&Xs.add(e),e),Ad=e=>e!==void 0&&Nd.has(e),Td=e=>e!==void 0&&Xs.has(e);var ea=e=>({field:e,operator:"notExists"}),Zb=(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(ln,r.operator);return i?{...r,operator:i}:{...r,operator:O(Oi,r.operator)}}if(typeof r.dateOperator=="string"){let i=O(Kf,r.dateOperator);return i?{...r,dateOperator:i}:It([{...r,dateOperator:O(Oi,r.dateOperator)},ea(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:qe(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 It([...i>0?[{...r,arrayOperator:P.atMost,count:i-1}]:[],{...r,arrayOperator:P.atLeast,count:i+1}])}}let o=O(ln,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 It([{...r,operator:O(Oi,r.operator)},ea(r.field),...n&&n.depth===1?[ea(n.path)]:[]])},qe=(e,t=r=>r)=>{if(typeof e=="boolean")return !e;let r=e;if(Array.isArray(r.all))return It(r.all.map(o=>qe(o,t)));if(Array.isArray(r.any))return V(r.any.map(o=>qe(o,t)));if("if"in r){let o=V([r.if,qe(r.then,t)]);return r.else===void 0?o:{any:[o,V([qe(r.if,t),qe(r.else,t)])]}}return Zb(r,t)},Cd=e=>ie(e)==="field"&&e.value!==void 0&&he(e,e.value)?null:e;var Md,kd=e=>{Md=e;},se=(e,t,r)=>Md(e,t,r);var Yb=e=>{let t=L(e);throw t&&t.depth>1?new Error(sn(e,"toPrisma")):new Error(`Path '${e}' compares to a column, which isn't supported on the Prisma rail; use toSql() or check().`)},Rt=e=>dn(e,{value:t=>{if(qi(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=>Yb(t),bind:(t,r)=>Ti(t,r,"toPrisma")}),wn=e=>Rt(e),Vo=e=>_r({now:e?.now,timeZone:e?.timeZone,weekStart:e?.weekStart},wn),qo=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=_e({field:String(t.field)},e?.map,e?.model);if((n==="json"||n==="json-path")&&typeof t.operator=="string"&&Eo.includes(t.operator))throw _("toPrisma",`The complement of '${t.operator}' on the Json value '${t.field}'`,"it keeps values of other types");let i=Rt(t),s=t.offset===void 0?void 0:Rt(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||he({operator:t.dateOperator},i)?null:d:Cd(d)};var Xe=()=>({}),qr=Xe,Ot=()=>({OR:[]}),ta=e=>Object.keys(e).length===0,Ld=e=>{let t=Object.keys(e);return t.length===1&&t[0]==="OR"&&Array.isArray(e.OR)&&e.OR.length===0},Be=e=>{if(e.some(Ld))return Ot();let t=e.filter(r=>!ta(r));return t.length===0?Xe():t.length===1?t[0]:{AND:t}},B=e=>{if(e.some(ta))return Xe();let t=e.filter(r=>!Ld(r));return t.length===0?Ot():t.length===1?t[0]:{OR:t}},ve=e=>ta(e)?e:{NOT:e},_d=(e,t,r)=>Be(e.all.map(o=>se(o,t,r))),Dd=(e,t,r)=>B(e.any.map(o=>se(o,t,r))),Fd=(e,t,r)=>{if(bt(e,t?.map,t?.model))return qr();let o=se(qe(e.if,qo(t)),t,r),n=se(e.then,t,r),i=B([o,n]);if(e.else!==void 0){let s=se(e.if,t,r),a=se(e.else,t,r);return Be([i,B([s,a])])}return i};var Xb=(e,t,r,o)=>{let n=A(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},Br=(e,t,r)=>{if(r.fromFields?.length)return r.fromFields.map((n,i)=>({here:n,there:r.toFields?.[i]??"id"}));let o=Xb(e,r.type,t,r.relationName);return o?.fromFields?.length?o.fromFields.map((n,i)=>({here:o.toFields?.[i]??"id",there:n})):null},Ki=(e,t,r,o)=>{if(o.relationName===void 0)return null;let n=Object.entries(A(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 Wr=(e,t)=>{let r=e.split("."),o=t;for(let n=r.length-1;n>=0;n--)o={[r[n]]:o};return o};var Bo=(e,t,r,o)=>{let n=e.split("."),i=re(e,t,r);if(i.kind==="bridge")throw new Error(`'${e}' crosses a bridge: ${o.toLowerCase()} aren't supported across a bridge \u2014 no one database holds both sides.`);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=Br(t,i.model,i.entry);if(!a){let l=Object.values(A(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}},Gi=(e,t,r,o,n)=>{let i={operation:"groupBy",model:t.target,args:{by:[t.targetKey],where:r,having:o},extract:t.targetKey},s=Bi({__step:e.steps.length});e.steps.push(i);let a={[t.parentKey]:{in:s}},l=n?ve(a):a;return t.through?Wr(t.through,l):l};var hr=e=>({ok:e.length===0,errors:e}),Sn=(e,t)=>{if(!e.ok)throw new Error(`${t}:
2
2
  ${e.errors.map(r=>`${r.path}: ${r.message}`).join(`
3
- `)}`)},Fo=(e,t={})=>{let r={target:t.target??"check",errors:[],map:Ce(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Ft(e,"$",r,1),fr(r.errors)},Wb=(e,t={})=>{cn(Fo(e,t),"validateRule");},Ft=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!pr(e)){P(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=fe(e);if(!n){P(r,t,"ambiguous_condition",pt().message);return}switch(n){case "all":Td(e.all,`${t}.all`,r,o);break;case "any":Td(e.any,`${t}.any`,r,o);break;case "if":Ft(e.if,`${t}.if`,r,o),Ft(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&Ft(e.else,`${t}.else`,r,o);break;case "field":Ub(e,t,r,o);break;case "aggregate":zb(e,t,r,o);break;case "array":Hb(e,t,r,o);break;case "date":Jb(e,t,r,o);break}},Td=(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)=>{Ft(n,`${t}[${i}]`,r,o);});},Ui=(e,t,r,o)=>{typeof e.field=="string"&&kd(e.field,"field",`${t}.field`,r,o);},kd=(e,t,r,o,n,i=false)=>{let s=D(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",As(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()`);},Wi=(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"?fn(r,e.map,n)??void 0:void 0;},Do=(e,t,r,o,n=false)=>{let i=If.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"&&kd(e.path,"path",`${t}.path`,r,o,n),s)},_d=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!xf.includes(r)){P(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!pr(s)){P(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=Do(s,a,n,i);if(l==="path"){let d=s.path,u=Pr(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=pr(f)&&Object.keys(f).length===1&&te(f)?Re(f):null;if(!p){P(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Fd(p[0],`${a}.value.${Object.keys(f)[0]}`,n,i);},Ld=(e,t,r,o)=>{o.target!=="toSql"||!_e.includes(t)||Pr(e)&&P(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},Ub=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Field rule requires a string field"),Ui(e,t,r,o),typeof e.operator!="string"||!Nt(e.operator,"field")){P(r,`${t}.operator`,"invalid_operator",ie(e.operator,"field").message);return}let n=e.operator;_d(e,"field",n,t,r,o),di(n,"field",r.target)||P(r,`${t}.operator`,`unsupported_${Ki(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!fi(e.coerceType)&&P(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(H).join(", ")}`);let i=Ct(n,"field");if(i==="none"){Qb(e,t,r);return}if(Do(e,t,r,o,true)!==null){if(Ld(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Ii(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&P(r,`${t}.path`,"unsupported_prisma_path",Vi(e.path,s.problem).message);}if(r.target==="toSql"&&typeof e.path=="string"&&r.map){let s=r.scopeModels[o-1],a=(D(e.path)??{path:e.path}).path,l=Mo(Z(e.field,r.map,s),Z(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?Z(e.field,r.map,r.scopeModels[o-1]):void 0)?.isList&&st.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")&&(Kb(e,n,t,r,o),Gb(i,e.value,n,`${t}.value`,r));}},Kb=(e,t,r,o,n)=>{if(o.target!=="toPrisma"||!o.map||typeof e.field!="string")return;let i=Z(e.field,o.map,o.scopeModels[n-1]);if(!i)return;let s=e.value,a=pe(e.caseInsensitive),l=Qt.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&&lr("text",s)?f(`A case-insensitive comparison on the list '${e.field}'`):Te(i)&&a&&f(`A case-insensitive comparison on the Json column '${e.field}'`);},Gb=(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":de(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=Xf(t,n.target);i&&P(n,o,"unsupported_pattern",i);return}case "range":try{vo(t,r);}catch(i){P(n,o,"invalid_range_value",i.message);}return}},Dd=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{Lo(e.field,r.map,i,n);}catch(s){P(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},zb=(e,t,r,o)=>{if(Dd(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&P(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),jd(e,t,r,o),typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),Ui(e,t,r,o),!pr(e.aggregate)){P(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(at.includes(n.mode)||P(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",Xt(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"),!ui.includes(e.operator)){P(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${ui.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()"),Wi(r,o,e.field,true),Ft(e.condition,`${t}.condition`,r,o+1)),Do(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;_e.includes(e.operator)?Zb(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");},Hb=(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"),Ui(e,t,r,o),jd(e,t,r,o),typeof e.arrayOperator!="string"||!Nt(e.arrayOperator,"array")){P(r,`${t}.arrayOperator`,"invalid_array_operator",ie(e.arrayOperator,"array").message);return}let n=e.arrayOperator;Zt.includes(n)&&Dd(e,t,r,o,"Count operators");let i=r.target==="toPrisma"&&r.map&&typeof e.field=="string"?Z(e.field,r.map,r.scopeModels[o-1]):void 0;i&&!j(i)&&n!=="empty"&&n!=="notEmpty"&&P(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",_("toPrisma",`'${n}' over the array column '${e.field}'`).message),di(n,"array",r.target)||P(r,`${t}.arrayOperator`,`unsupported_${Ki(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let s=Ct(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?(Wi(r,o,e.field),Ft(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",We(n).message),l()):s==="count"&&(typeof e.count!="number"?P(r,`${t}.count`,"missing_count",Oo(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?(Wi(r,o,e.field,true),Ft(e.condition,`${t}.condition`,r,o+1)):P(r,`${t}.condition`,"missing_condition",We(n).message));},Jb=(e,t,r,o)=>{if(typeof e.field!="string"&&P(r,`${t}.field`,"field_required","Date rule requires a string field"),Ui(e,t,r,o),typeof e.dateOperator!="string"||!Nt(e.dateOperator,"date")){P(r,`${t}.dateOperator`,"invalid_date_operator",ie(e.dateOperator,"date").message);return}let n=e.dateOperator;_d(e,"date",n,t,r,o),di(n,"date",r.target)||P(r,`${t}.dateOperator`,`unsupported_${Ki(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=Ct(n,"date");if(i==="dayList"){if(Do(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&Lf(a)))&&P(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${Ro.join(", ")})`);return}if(Do(e,t,r,o)!==null&&(Ld(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(te(e.value)){Md(e.value,n,`${t}.value`,r,o);return}if(Xo.includes(n)){P(r,`${t}.value`,"invalid_date_range",qe(n).message);return}if(i==="dateRange"){if(!Yb(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)?Md(s,n,`${t}.value[${a}]`,r,o):de(s)&&!or(s,Mt).isValid()&&P(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!de(e.value)){P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}or(e.value,Mt).isValid()||P(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},Fd=(e,t,r,o)=>{if(!pr(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(!Ts(n)){P(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=pr(i)?Do(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=qs(a,n);l&&P(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Cd=(e,t,r)=>{(typeof e!="string"||!mi.includes(e))&&P(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Md=(e,t,r,o,n)=>{let i=Xo.includes(t),s=Re(e);if(s){Fd(s[0],r,o,n);return}if(rn(e)){Cd(xi(e),r,o);return}if(Ms(e)){if(i){P(o,r,"invalid_date_range",qe(t).message);return}let a="start"in e?e.start:e.end;if(!pr(a)||!rn(a)){P(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Cd(xi(a),r,o);return}P(o,r,"invalid_date_expression","Unrecognized date expression");},Qb=(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");},Ki=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",pr=e=>$e(e),Zb=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",Yb=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||te(e[0]))&&(de(e[1])||te(e[1])),jd=(e,t,r,o)=>{if(Ne(e)&&r.target!=="check"&&(r.target==="toPrisma"&&Co(e)!==null||P(r,t,`unsupported_${Ki(r.target)}_window`,ft(r.target).message)),"filter"in e&&e.filter!==void 0&&(Wi(r,o,e.field),Ft(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)=>{(!pr(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 Xb=/[.:]/,Qs=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"&&Xb.test(s)&&t.push({path:`${xe({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return fr(t)},Id=e=>cn(Qs(e),"validateFieldMaps");var He=e=>!Object.hasOwn(e,"parent"),ht=e=>{let t=[],r=new Set,o=e;for(;!He(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},Je=e=>He(e)?e:ht(e)[0].parent;var Zs=(e,t)=>t.length?W([...t,e]):e,eR=e=>{if(rr(e).length)return false;let t=e.field,r=typeof t=="string"?D(t):null;try{return ue(r?{...e,field:r.path}:e,{})===!0}catch{return false}},Ys=(e,t)=>{if(!t.length)return e;if(!eR(e))return W([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return _t([W([...r.clamps,Ys(e,o)]),W([{field:r.prefix,operator:"notExists"},e])])},Gi=(e,t)=>tr(e,{rewrite:r=>{if(Ae(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=rr(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(D(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(Le(r)){for(let n of [r.condition,r.filter])if(n!==void 0&&jo(n).escaping!==null)throw new N(`narrowRule: cannot re-root a relation clamp on '${r.field}' under '${t}': '${jo(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}),Xs=(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=>Gi(n,r.prefix))}]}),Vd=(e,t)=>Xs(e,t).flatMap(r=>r.clamps),qd=(e,t,r)=>{let o=ke(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 Ie(t.lens.maps,o.scope,o.path,n==="$."?"":n)},tR=(e,t,r)=>{if(D(e))return qd(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?Ie(t.lens.maps,r[0],e,o).hops:[]},Bd=(e,t,r)=>{if(Ae(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=qd(e.field,t,r);return {hops:o,below:n}},Vr=(e,t,r)=>tr(e,{below:(o,n)=>{let i=Bd(o,t,n);return i?i.below?[...n,i.below]:Le(o)?[...n,null]:false:false},after:(o,n)=>{let i=Bd(o,t,n);if(!i)return o;let s=Vd(t,rr(o).flatMap(d=>tR(d,t,n))),a=i.below;if(!a||!Le(o))return Zs(Ys(o,Xs(t,i.hops)),s);let l=[...F(t,a.mapName,a.modelName,a.relPath).whereClauses,...Vd(t,$o(o).flatMap(d=>Ie(t.lens.maps,a,d).hops))],f=o.condition===void 0||o.arrayOperator===$.all||Ne(o),p={...o};return l.length&&f?p.filter=W([...o.filter!==void 0?[o.filter]:[],...l]):l.length&&(p.condition=W([...l,o.condition])),Zs(Ys(p,Xs(t,i.hops.slice(0,-1))),s)}},[r]),Io=(e,t)=>{let r=k(t),o=F(r,r.lens.mapName,r.lens.model,[]),n=Vr(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return Zs(n,o.whereClauses)};var ea=(e,t)=>{let r=Cr(e,H.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},rR=(e,t,r)=>o=>{if(o==null)return o;let n=ea(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()},zi=(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?Dt(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=rR(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&&Mf.includes(e.coerceType)?Cr(t,e.coerceType,e.coerceType===H.DateTime?n():void 0):t};var Wd=e=>Array.isArray(e)?e.flatMap(Wd):[e],mn=e=>e.value===void 0?null:Wd(e.value),oR=e=>ea(e)!==void 0,nR=/^-?\d+(\.\d+)?$/,iR={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"&&nR.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:oR},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},sR=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Ud=(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=wo(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(kf.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}=iR[o],p=u=>{try{return f(Cr(u,o))}catch{return false}},d=u=>f(u)||r!==void 0&&p(u);return (mn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${sR(u)} does not fit ${a} (expected ${l})`}))},Kd=(e,t,r)=>{if(r.isList===true||Te(r))return null;let o=j(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 ${Dt(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var aR=(e,t,r,o)=>oe(e,(n,i)=>{let s=fe(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:pt().message}),false;if(Ae(n))return;let a=n,l=S=>{let R=ke(S,i);return "outOfBounds"in R?(o.push({path:S,code:"scope_out_of_bounds",message:R.outOfBounds}),null):{scope:R.scope,field:R.path}},f=i[i.length-1],p=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let S=qo(t,i,a.field);"issue"in S?(o.push({path:a.field,...S.issue}),p=false):{next:f,walked:d}=S;}let u=d?.entry??null,m=d?.terminalFieldName??null,g=d?.entry.kind==="enum",c=d?.entry.type??null,y=d&&d.jsonSubPath.length===0?Ji(d.terminalEffect,d.terminalFieldName):null;for(let{ref:S,role:R}of js(a)){let b=D(S)?l(S):{scope:wt(t),field:S};if(!b||b.scope.open)continue;let w=Vo(t,b.scope,b.field);if(!w){o.push({path:S,...Hi(t,b.scope,b.field,R==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens")});continue}if(j(w.entry)){o.push({path:S,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let E=Dt(w.entry);if(R==="value"||R==="shift"||E===void 0)continue;(R==="whole"?Tf.includes(E):Be.includes(E))||o.push({path:S,code:"not_in_lens",message:`${R==="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 S=Kd(a.field,a.arrayOperator,u);if(S)return o.push(S),false}if(u&&j(u)&&(s==="field"||s==="date")&&(u.isList||!Mr(a))){let S=a.field;return o.push({path:S,code:"operator_kind_mismatch",message:(u.isList?hi(S):xo(S)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...Ud(a,u?Dt(u):void 0)),!f.open)for(let S of $o(a))S!==""&&!Vo(t,f,S)&&o.push({path:S,...Hi(t,f,S,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(y&&"operator"in a&&m){let S=mn(a);if(S){let R=new Set(y),b=g?`enum '${c}'`:`field '${m}'`;for(let w of S)typeof w=="string"&&!R.has(w)&&o.push({path:m,code:"value_not_allowed",message:`value '${w}' is not in the allowed set for ${b} (allowed: ${[...R].join(", ")})`});}}return [...i,f]},[r]),gn=(e,t,r,o,n)=>{let i=[];return aR(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Bo=(e,t)=>{let r=k(t);try{let o=gn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&Io(e,t),fr(o)}catch(o){if(!(o instanceof N))throw o;return fr([{path:"",code:o.code,message:o.message}])}};var wn=e=>e===void 0?void 0:Array.isArray(e)?e:[e],Sn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),dr=e=>{if(Sn(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw lR();return {where:e}},lR=()=>new N("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),oa=["__offpath__"],Gd=new WeakMap,pR=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([yn(t.parent),yn(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=Gd.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return Gd.set(t,{fingerprint:r,trees:n}),n},zd=new WeakMap,fR=0,yn=e=>{let t=zd.get(e);return t===void 0&&(t=fR++,zd.set(e,t)),t},ce="\0",dR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>j(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},Qi=e=>e?String(yn(e)):"",k=e=>{let t=Je(e),r=He(e)?[]:ht(e);return {lens:t,chain:r,origin:r[0],memo:{trees:pR(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},Zi=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),uR=(e,t)=>{if(t.picks&&(e.picks=Zi(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},Qd=(e,t,r)=>{e.set(t,Zi(e.get(t)??null,r));},Zd=(e,t,r)=>{let o=e.get(t)??new Set;for(let n of r)o.add(n);e.set(t,o);},cR=(e,t,r)=>{if(r.enumPicks)for(let[o,n]of Object.entries(r.enumPicks))Qd(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))Zd(t,o,n);},ta=(e,t,r)=>JSON.stringify([e,t,r]),mR=(e,t,r,o,n,i,s)=>{if(s&&uR(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=dr(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=wn(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 y=ta(a,m,g);c!==void 0&&ta(a,m,c)===y||e.sourceDeclaredAt.set(y,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"},na=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"),gR=(e,t,r)=>gn(e,t,r.mapName,r.modelName,r.relPath),yR=e=>new N(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),ia=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"),jo=e=>{let t=null,r=null;return oe(e,(o,n)=>{if(Ae(o))return;let i=rr(o);for(let s of [...typeof o.field=="string"?[o.field]:[],...i]){let a=D(s);r===null&&a&&a.depth>n&&(r=s);}for(let s of i)t===null&&!D(s)&&(t=s);return Le(o)?n+1:void 0},1),{bare:t,escaping:r}},ra=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of Ie(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},hn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},sa=(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=hn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:hn(e.root,t.relPath)}},hR=(e,t,r,o)=>{let n=hn(t.root,r.relPath),i=[r.relPath.join(ce),Object.keys(n?.relations??{}).join(ce),(n?.omits??[]).join(ce)].join(`${ce}${ce}`),s=o.get(i);if(s)return s;let a=new Map,l={lens:e},f=ra(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:y}=sa(t,u,ra(l,u)),S=new Set(c.flatMap(w=>Object.keys(w.relations??{}))),R=new Set([...c,...y?[y]:[]].flatMap(w=>w.omits??[])),b=[];for(let[w,E]of Object.entries(g)){if(!S.has(w)||R.has(w)||y?.relations!==void 0&&Object.hasOwn(y.relations,w))continue;let x=Ge(E,u.mapName);if(!x||!T(O(e.maps,x.mapName),x.modelName))continue;let V=`${x.mapName}:${x.modelName}`;p.has(V)||(p.add(V),b.push(w),d.push({at:{...x,relPath:[...u.relPath,w]},below:[...m,w]}));}a.set(m.join("."),b);}return o.set(i,a),a},wR=(e,t,r,o)=>{if(!o)return sa(t,r,null).defaults.flatMap(f=>Object.keys(f.relations??{}));let n=r.relPath.length;for(;n>0&&hn(t.root,r.relPath.slice(0,n))===void 0;)n--;let i={...o[n],relPath:r.relPath.slice(0,n)},a=hR(e.lens,t,i,e.memo?.trees??new Map).get(r.relPath.slice(n).join("."))??[];return [...n===r.relPath.length?Object.keys(hn(t.root,r.relPath)?.relations??{}):[],...a]},aa=(e,t,r)=>{let o=t;for(let n of Ie(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?Hd(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let L of i.unchecked)L();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=dR(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=`${Qi(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(m);if(!g){let L=ra(e,d);g={trail:L,turnedOn:u?wR(e,u,d,L):[]},e.memo?.places.set(m,g);}let{trail:c}=g,y=new Map,S=new Map,R=new Map,b=new Map,w=L=>L,E=0,x=()=>{},V=true,ae=true,A=L=>{mR(a,L,w,E,x,V,ae),cR(y,S,L);};for(let[L,B]of e.chain.entries()){E=L;let yr={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,L)};V=B!==e.skipClampsOf,ae=B!==e.skipHidingOf,w=Se=>L===0?Se:Vr(Se,yr,{mapName:t,modelName:r,relPath:o});for(let[Se,Q]of Object.entries(O(B.mapDefaults,t)?.enums??{}))Q.picks&&Qd(R,Se,Q.picks),Q.omits&&Zd(b,Se,Q.omits);let{defaults:Ko,path:hr}=sa(B,d,c),le=L===0?null:yr,Ye=Se=>(Q,Go=false)=>{let Y=e.memo?.refs.get(Q);if(Y||(Y=jo(Q),e.memo?.refs.set(Q,Y)),Y.bare!==null&&!(Se&&!Go))throw na(Y.bare);if(Y.escaping!==null)throw ia(Y.escaping);if(!le)return;let xt=()=>{let Nn=typeof Q=="object"&&Q!==null?`${yn(Q)}${ce}${Hd(le,t,r,o)}`:null;if(Nn!==null&&le.memo?.vetted.has(Nn))return;let[Va]=gR(Q,le,d);if(Va)throw yR(Va);Nn!==null&&le.memo?.vetted.add(Nn);};e.unvetted?s.push(xt):xt();};x=Ye(false);for(let Se of Ko)A(Se);hr&&(x=Ye(o.length===0&&c!==null),A(hr));}if(u&&e.chain.includes(u))for(let L of g.turnedOn)a.relationFields.has(L)&&!a.omits.has(L)&&a.relations.add(L);for(let[L,B]of p.gated){let yr=B.kind==="enum",hr=B.options?.map(Q=>Q.value)??(yr?Lr(B,l?.enums):B.values);if(!hr)continue;let le=hr;if(yr){let Q=R.get(B.type),Go=b.get(B.type);Q&&(le=le.filter(Y=>Q.has(Y))),Go&&(le=le.filter(Y=>!Go.has(Y)));}let Ye=y.get(L),Se=S.get(L);Ye&&(le=le.filter(Q=>Ye.has(Q))),Se&&(le=le.filter(Q=>!Se.has(Q))),a.enumValuesByField.set(L,le);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},Hd=(e,t,r,o)=>{let n=Jd.get(e);if(n===void 0){n=`${Qi(e.origin)}${ce}${Qi(e.skipClampsOf)}${ce}${Qi(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${yn(i)},`;Jd.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},Jd=new WeakMap,Br=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&&Ge(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},Yi=(e,t,r,o)=>F(e,t,r,oa).sources.has(o),Xi=(e,t,r,o)=>new N(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`,"invalid_source"),St=(e,t)=>e.omits.has(t)?false:e.relationFields.has(t)?e.relations.has(t):!(e.picks!==null&&!e.picks.has(t)),Ji=(e,t)=>e.enumValuesByField.get(t)??null,qr=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:f,next:p}of ir(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&&j(f)?!d.omits.has(a):St(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||Te(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}},Wo=(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(ta(o,n,i)),a=(p,d)=>qr(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=>aa(e,r,p)===null&&(a(l,p)||a(f,p)))},Vo=(e,t,r)=>{let{resolution:o,effects:n}=qr(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}},Hi=(e,t,r,o)=>{let{resolution:n}=qr(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&&Ge(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\`)`}},wt=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),qo=(e,t,r)=>{let o=ke(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=Vo(e,o.scope,o.path);if(!n)return {issue:Hi(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=Te(n.entry),s=Ge(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}},Ie=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:f,entry:p,next:d}of ir(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 pa="parent:",fa=e=>e.startsWith(pa),Xd=e=>fa(e)?e.slice(pa.length):e,la=(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]=Sn(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]=la(i,t);r.relations=o;}return r},eu=(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]=la(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?la(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},da=e=>{let t=[];return eu(e,r=>(t.push(r),r)),t},Yd=e=>{let t=new Set;for(let r of da(e))for(let o of sn(r))fa(o)||t.add(o);return t},tu=e=>{let t=new Set;for(let r of ht(e))for(let o of da(r))for(let n of sn(o,{required:true}))t.add(Xd(n));return [...t].sort()},ru=(e,t)=>{if(He(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${pa}${o}`]=n;return {...eu(e,o=>Vs(o,r)),parent:ru(e.parent,t)}},ou=(e,t)=>ru(e,t),nu=e=>{let t=[],r=new Set;for(let n of ht(e.parent))for(let i of Yd(n))r.add(i);for(let n of Yd(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 da(e))for(let i of sn(n))fa(i)&&o.add(Xd(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var su=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},SR=(e,t)=>{if(!e||!t)return e??t;let r={...e};for(let[o,n]of Object.entries(t)){let i=r[o];if(i===void 0){r[o]=n;continue}let s=dr(i),a=dr(n),l=su(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},au=(e,t)=>{let r=su(e?.where,t.where),o=SR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},bR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=au(r[o],n);return {...e,models:r}},iu=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=bR(r[o],n);return {...e,...t.root?{root:au(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},ua=(e,t)=>He(e)?iu({parent:e},t):He(e.parent)?iu(e,t):{...e,parent:ua(e.parent,t)};var lu=(e,t)=>{let r=k(t),o=(n,i)=>typeof n=="string"&&n!==""?qo(r,i,n):null;return tr(e,{rewrite:(n,i)=>{if(fe(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"&&Cf.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!Le(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&&j(a)?[...i,s.next]:false}},[wt(r)])};var pu=({maps:e,bridges:t,mapName:r,model:o})=>({...ki({maps:e,bridges:t}),mapName:r,model:o});var RR=(e,t)=>oe(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Ae(r)||typeof r.field!="string"||r.field==="")return;let n=qo(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])},[wt(t.policy)]),fu=(e,t)=>{let o={policy:k(t),sources:new Set,bridgesCrossed:false};return RR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:C.filter(n=>(n==="check"||!o.bridgesCrossed)&&Fo(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Bo(e,t).errors}};var OR=new Set([Tt.scalar,Tt.ordered,Tt.array,Tt.dayList,Tt.dateValue]),xR=new Set([Tt.none,Tt.count]),ER=e=>{if(e.offset!==void 0||nn(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=wo(e);return t?xR.has(t.valueShape)?{values:[],dynamic:false}:OR.has(t.valueShape)?"value"in e?{values:mn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},PR=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)}`,du=(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=Vo(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 y=[o,...m].join("."),S=`${y}|${c}`,R=n.get(S);R||(R={path:y,mapName:d,model:u,field:c,values:[],dynamic:false},n.set(S,R));let b=ER(f);b.dynamic&&(R.dynamic=true);let w=i.get(S)??new Set;i.set(S,w);for(let E of b.values){let x=PR(E);w.has(x)||(w.add(x),R.values.push(E));}},a=(l,f)=>{let p=ke(l,f);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return oe(e,(l,f)=>{if(Ae(l))return;let p=typeof l.field=="string"?a(l.field,f):f.at(-1);return p?(!Le(l)&&typeof l.field=="string"&&s(p,l),[...f,p]):false},[[]]),[...n.values()]};var es=(e,t,r,o)=>{let n=$R(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")}},$R=(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=Bo(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=Je(o);return {condition:Io(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var ts=(e,t,r,o)=>{if(!bf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=pe(e.caseInsensitive),i=Lr(r,o?.enums),{values:s,hasNull:a}=Lt(lt.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 K.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!a}:{values:p,matchesNull:a}};var X=e=>`"${e.replace(/"/g,'""')}"`;var ge=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),ca=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${X(t)}.${X(o)}`:X(o);if(n.length===0)return i;let s=n.map(ma),a=s.pop();return [i,...s].join("->")+(r?"->":"->>")+a},ma=e=>`'${e.replace(/'/g,"''")}'`;var vR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],rs,AR=()=>{if(rs!==void 0)return rs;for(let e of NR())for(let t of vR)try{let r=e(t);if(r.AnyNull!==void 0)return rs=r.AnyNull,rs}catch{}},NR=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t(import.meta.url));}catch{}return typeof ws=="function"&&e.push(ws),e},uu=()=>{let e=Or.get("prismaOptions.anyNull")??AR();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 cu=(e,t)=>{let r=Nr(gt(t));return r===null?null:Ar(e,r)},mu=(e,t,r)=>{if(e===null)return null;let o=Ao(gt(t)),n=o&&vr(o[0],dn);return !o||!n?null:er(ut(e),n,o[1],ko(r).timeZone).toDate()};var ya=(e,t)=>Me(e,t?.map,t?.model),bt=e=>e==="json"||e==="json-path",ur=e=>bt(e)?uu():null,Wr=(e,t)=>t?.map&&t?.model?cd(e,t.map,t.model).map(r=>Ir(r,{is:null})):[],ha=(e,t)=>{let r=ya(e,t);return [...bt(r)||r==="list"||Z(e.field,t?.map,t?.model)?.isRequired===false?[Qe(e.field,{equals:ur(r)},t)]:[],...Wr(e.field,t)]},os=(e,t,r,o)=>{if(r.mode&&bt(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(!bt(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}},wa=(e,t,r,o)=>{let n=t?.datasource?.provider??Or.get("prismaOptions.datasource.provider");return pe(e.caseInsensitive)&&gf(n)&&lr(r,o)?{mode:"insensitive"}:{}},gu=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return bt(e)?[...r,{equals:[]}]:r},yu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Sa=(e,t,r,o,n)=>{let i=a=>Qe(e,a,n),s=gu(t,o);return r?I([i({equals:ur(t)}),...Wr(e,n),...s.map(a=>i(a))]):je([...t==="list"?[]:[i({not:ur(t)})],...s.map(a=>i(yu(a)))])},CR=(e,t)=>{if(!Mr(e))throw xo(e.field);let o=(n=>Qe(e.field,n,t))({is:{}});return ue({...e,field:"relation"},{relation:null})===true?Ee(o):o},MR=(e,t)=>Z(e.field,t?.map,t?.model),ga=ze(),kR=(e,t,r)=>{if(t==="list"||bt(t)||MR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?Qe(o,{is:{}},r):ga},hu=(e,t)=>{let r=c=>Qe(e.field,c,t),o=ya(e,t),n=()=>ha(e,t),i=Li(e,t?.map,t?.model);if(o==="relation")return CR(e,t);let s=kR(e,o,t),a=s&&(s===ga?yt():Ee(s)),l=c=>s&&a?ue({field:"f",operator:c,value:null},{f:null})===true?a:s:null;if(s&&a&&Mr(e)){let c=gu(o,i);return e.operator===h.isEmpty?I([a,...c.map(r)]):e.operator===h.notEmpty?je([s,...c.map(y=>r(yu(y)))]):l(e.operator)}switch(e.operator){case h.exists:case h.notExists:{if(e.operator===h.exists)return o==="list"?Ee(r({equals:null})):r({not:ur(o)});let c=n();return c.length?I(c):r({equals:ur(o)})}case h.isEmpty:case h.notEmpty:return Sa(e.field,o,e.operator===h.isEmpty,i,t)}if(Ue(e)){let c=Ii(e,t?.map,t?.model,Rd(t),Od(t));if("problem"in c)throw Vi(e.path,c.problem);let y=r({[c.key]:c.ref}),S=(E,x)=>x.isRequired===false?Qe(E,{equals:null},t):null,R=(E,x)=>x.isRequired===false?Qe(E,{not:null},t):ga,b=S(e.field,c.field),w=S(c.columnPath,c.column);return e.operator===h.equals?b&&w?I([y,je([b,w])]):y:e.operator===h.notEquals?I([Ee(y),...b?[je([b,R(c.columnPath,c.column)])]:[],...w?[je([R(e.field,c.field),w])]:[]]):y}let f=wu(e,t);if(Oe(e,f))return I(K.includes(e.operator)?n():[]);if(f===null&&lt.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&Qt.includes(e.operator)&&Array.isArray(f))return ne(Ci(e,f),t);if(o==="list"&&Array.isArray(f)&&f.includes(null))throw _("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&pe(e.caseInsensitive)&&lr("text",f))throw _("toPrisma",`A case-insensitive comparison on the list '${e.field}'`);let p=o==="enum"?Z(e.field,t?.map,t?.model):void 0,d=p?ts(e,f,p,t?.map):null;if(d){let c=r({in:d.values});return d.matchesNull?I([c,...n()]):c}if(Qt.includes(e.operator)){let{values:c,hasNull:y}=Lt(f),S=wa(e,t,o,c),R=bt(o)?e.operator===h.in?I(c.map(b=>r(os("equals",b,S,o)))):je(c.map(b=>r(os("not",b,S,o)))):r({[e.operator]:c,...S});return e.operator===h.in?y?I([R,...n()]):R:y?je([R,s??r({not:ur(o)})]):I([R,...n()])}let u=c=>{if(!bt(o)||c!==h.contains)return r(bn({...e,operator:c},t));let y=r({array_contains:[_R(e,f,t,o)]});return typeof f=="string"?I([r(bn({...e,operator:c},t)),y]):y};if(e.operator===h.contains)return u(h.contains);let m=vf.includes(e.operator)?en[e.operator]:bo.includes(e.operator)?h.between:void 0;if(m){if(bt(o))throw _("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return I([Ee(u(m)),...n()])}let g=r(bn(e,t));return e.operator===h.equals&&f===null?I([g,...Wr(e.field,t)]):e.operator===h.notEquals&&o==="list"?f===null?Ee(r({equals:null})):I([Ee(r({equals:f})),...n()]):e.operator===h.notEquals&&f!==null?I([g,...n()]):g},wu=(e,t)=>{let r=zi(e,gt(e),sr(e.field,t?.map,t?.model),"toPrisma",()=>ko(t).timeZone);return e.offset===void 0?r:cu(r,e.offset)},bn=(e,t)=>{let r=wi(e);if(r)throw r;let o=ya(e,t),n=()=>wu(e,t),i=f=>wa(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=bt(o)?LR[f]:f,u=typeof p=="string"?ge(p):p;return {[d]:u,...i(p)}},a=Si(e.operator,n());if(a)throw a;let l=Ht(e.operator,"field");if(l&&So.includes(e.operator))return {[l]:n()};switch(e.operator){case h.equals:{let f=n()??ur(o);return os("equals",f,i(f),o)}case h.notEquals:{let f=n()??ur(o);return os("not",f,i(f),o)}case h.in:case h.notIn:return {[e.operator]:n()};case h.contains:return s("contains");case h.startsWith:return s("startsWith");case h.endsWith:return s("endsWith");case h.matches:case h.notMatches:throw _("toPrisma",`'${e.operator}'`,"Prisma has no pattern filter");case h.between:case h.notBetween:{let[f,p]=De(Ke(n(),e.operator));return {gte:f,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},_R=(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(wa(e,r,o,t).mode)throw _("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},LR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},Qe=(e,t,r)=>{if(!r?.map||!r?.model)return Ir(e,t);let o=se(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw bi(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return Ir(e,t);case "bridge":return jr();case "past-scalar":throw Ri(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return Ir(a,s)}}};var Su=(e,t,r)=>{if(Ne(e)){let o=Co(e);if(!o)throw ft("toPrisma");return ne(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(!at.includes(e.aggregate.mode))throw Xt(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 DR(e,t,r)},DR=(e,t,r)=>{let o=Lo(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&mt(e.condition,t.map,o.target))return jr();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"||Te(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=_o(t)(e);if(s===null||Oe(s,s.value))return yt();let a=pn(s,[{}],void 0,{},{value:0})===true,l=a?Fe(s):s,f=bn(l,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:f},d=bo.includes(l.operator)?Ee({[n]:p}):{[n]:p},u=e.condition?ne(e.condition,Fr({...t,model:o.target},t,true),r):ze(),m=qi(r,o,u,d,a);return a?I([m,...Wr(e.field,t)]):m};var Ru=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=Lo(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw We(e.arrayOperator);if(e.count===void 0)throw Oo(e.arrayOperator);let n=e.count;if(e.arrayOperator===$.atLeast&&n===0)return ze();let i=ne(e.condition,Fr({...t,model:o.target},t,true),r),s=ba(e),a=s?bu($.atLeast,e.arrayOperator===$.atMost?n+1:1,o.targetKey):bu(e.arrayOperator,n,o.targetKey);return qi(r,o,i,a,s)},bu=(e,t,r)=>{let o=Ht(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Ou=(e,t,r)=>{let o=FR(e,t,r);return e.field&&ba(e)&&!xu(e.field,t)?I([o,...Wr(e.field,t)]):o},ba=e=>ue({...e,field:"items"},{items:[]})===true,FR=(e,t,r)=>{if(Ne(e)){let i=Co(e);if(!i)throw ft("toPrisma");return ne(i,t,r)}if(e.condition!==void 0&&!$f.includes(e.arrayOperator)&&mt(e.condition,t?.map,Eu(e,t)?.model))return jr();if(Zt.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return Ru(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 yi("toPrisma");let{field:o}=e;if(xu(o,t))return jR(e,o,Me({field:o},t?.map,t?.model),t);let n=IR(e,t,r);return Qe(e.field,n,t)},xu=(e,t)=>{let r=Me({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},jR=(e,t,r,o)=>{switch(e.arrayOperator){case $.empty:case $.notEmpty:return Sa(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)}},Eu=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Fr({...t});let r=fn(e.field,t.map,t.model);return Fr(r?{...t,model:r}:{...t})},IR=(e,t,r)=>{let o=Eu(e,t);switch(e.arrayOperator){case $.all:if(!e.condition)throw We(e.arrayOperator);return {none:ne(Fe(e.condition,_o(o)),o,r)};case $.any:if(!e.condition)throw We(e.arrayOperator);return {some:ne(e.condition,o,r)};case $.none:if(!e.condition)throw We(e.arrayOperator);return {none:ne(e.condition,o,r)};case $.empty:return {none:{}};case $.notEmpty:return {some:{}};default:throw ie(e.arrayOperator,"array")}};var Pu=(e,t)=>{let r=t?.map,o=Me({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=Z(e.field,r,t?.model);if(n&&!j(n)&&Dt(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=K.includes(e.dateOperator)?ha(e,t):[],s=VR(e,t);if(s===null)return I(i);let a=Qe(e.field,s,t),l=bo.includes(e.dateOperator)?Ee(a):a;return I([l,...i])},VR=(e,t)=>{let r=ko(t),o=dn,n=m=>e.offset===void 0?m:mu(m,e.offset,t),i=m=>{if(m==null)return null;if(!te(m))return Ni(m,r.timeZone);let g=dt(m,o);return g&&Eo(g,e.dateOperator,r).toDate()},s=()=>gt(e),a=()=>n(i(s())),l=()=>{let m=s();if(m==null)return null;let g=Ke(m,e.dateOperator).map(i);if(g[0]===null||g[1]===null)return null;let[c,y]=De(g).map(n);return c&&y?[c,y]:null},f=()=>{let m=s();if(m==null)return null;if(!te(m))throw qe(e.dateOperator);let g=dt(m,o);if(!g)return null;let[c,y]=Po(g,r);return [c.toDate(),y.toDate()]},p=m=>{let g=a();return g===null?null:{[m]:g}},d=m=>m?{gte:m[0],lte:m[1]}:null,u=Ht(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 ie(e.dateOperator,"date")}};var Ra=(e,t,r)=>{if(typeof e=="boolean")return e?{}:yt();ni(e,"toPrisma");let o=fe(e);(o==="field"||o==="date")&&Di(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return vd(n,t,r);case "any":return Ad(n,t,r);case "if":return Nd(n,t,r);case "array":return Ou(n,t,r);case "aggregate":return Su(n,t,r);case "date":return Pu(n,t);case "field":return hu(n,t);default:throw pt()}};Pd(Ra);var vu=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=Au(t,i.model),a=$u(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 $u(o.where,o.refs,n,t)},Au=(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},BR=(e,t)=>{let r=Au(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},qR=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),Oa=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=Oa(i[o],n,r),s},$u=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=qR(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=Oa(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=Oa(n,i,BR(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var WR=e=>e?.map?{...e,map:Ce(e.map,e.mapName,"toPrisma")}:e,Rn=(e,t)=>es(e,t,"toPrisma",UR),UR=(e,t)=>{let r={steps:[]},o=Ra(e,WR(t),r),n=(i,s)=>{let a=wd(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 ns=(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]=Fo(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)oe(a,l=>{("aggregate"in l||Zt.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},is=(e,t)=>{try{return t()}catch(r){throw r instanceof N||r instanceof J?r:new N(`${e}: ${r.message}`,"unsupported_clamp")}};var Nu=(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=ke(n,i);return "outOfBounds"in s?null:Nu(s.scope,s.path)};return oe(e,(n,i)=>{if(Ae(n))return;for(let l of rr(n))r(D(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!Le(n))return;let a=s??i[i.length-1];for(let l of $o(n))r(Nu(a,l));return [...i,a]},[""]),[...t]};var xa=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!St(t,s))continue;let l=t.enumValuesByField.get(s),f=n(s)?.filter(d=>l===void 0||l.includes(d.value)),p=Wo(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},Tu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=T(O(e.lens.maps,i),s),l=xa(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(y=>({value:y,label:y}))}),f={};for(let[m,g]of r.sources)St(r,m)&&(f[m]=g);let p={};for(let[m,g]of r.sourceLabels)St(r,m)&&Wo(e,r,t,m,"label")&&(p[m]=g);let d={};for(let[m,g]of r.sourceGroupBys)St(r,m)&&Wo(e,r,t,m,"groupBy")&&(d[m]=g);let u={};for(let m of r.sourcesFromMapDefaults.keys()){if(!Yi(e,i,s,m))throw Xi(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}},Cu=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Mu=(e,t={})=>On(k(e),t),On=(e,t={})=>{let r=Cu(t),o={};for(let{path:n,at:i,effect:s}of Br(e))o[n]=Tu(e,i,s,n,r);return o},ku=(e,t,r={})=>Ea(k(e),t,r),Ea=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of ir(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 Tu(e,o,n,i,Cu(r))};var ss=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=Ie(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?j(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}'`},_u=(e,t,r,o,n,i,s,a)=>{let l=ss(n,e.lens.maps,t,r,i);if(l)throw new N(`${i} '${n}': ${l}`,"invalid_source");let{hops:f}=Ie(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=f.slice(0,n.split(".").length-1);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);for(let g of m.whereClauses)a.push(Gi(g,d.prefix));}},KR=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)_u(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&_u(e,t,r,o,i,"label",a,s),s},xn=(e,t)=>{let r=me(e,t);return r==null||typeof r=="object"?void 0:String(r)},as=(e,t)=>{let r=[];for(let o of t){let n=xn(e,o);if(n===void 0)return;r.push(n);}return r},Pa=(e,t)=>JSON.stringify([e??null,t]),GR=(e,t,r,o)=>{let n=Pa(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});},ls=(e,t,r,o,n)=>{let i=me(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||GR(e,String(a),s,n);},ps=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})}),zR=(e,t,r,o,n)=>{let{hops:i}=se(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&&xe(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")},fs=(e,t,r,o)=>{let n=Ce(e,t,"toPrisma");return [...new Set(o.map(i=>ar(i,n,r)?zR(e,n,t,r,i):i))]},HR=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=Ie(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),y=c&&he(c,u.modelName,t[p]);if(!y)throw new N(`source at '${t.join(".")}': '${t[p]}' isn't declared on ${u.modelName}`,"not_in_lens");let S=a[p+1],R=xe({fieldMap:u.mapName,model:u.modelName}),b=y.kind==="bridge"?he(O(e.lens.maps,S.mapName),S.modelName,R):void 0,w=y.kind==="bridge"?b&&{field:R,entry:b}:c?Bi(c,u.modelName,t[p],y):null;if(!w&&g.length===0){d(null);continue}if(!w)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=W(g);try{let x={field:w.field,operator:"exists"};d(w.entry.isList?{field:w.field,arrayOperator:"any",condition:E}:g.length?W([x,Gi(E,w.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]},Lu=e=>cr(k(e)),cr=(e,t=On(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(A=>Vr(A,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,y=c===void 0?void 0:e.chain[c],R=[...HR(y===void 0?e:{...e,skipClampsOf:y},p.relPath,o(y),y===void 0&&!f),...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],b=W([...i.whereClauses,...R]),w=W([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),E=e.lens.bridges?.length?Ce(e.lens,p.mapName,"toPrisma"):void 0,x=E?[...Ve(b),...a===void 0?[]:[a],...l??[]].find(A=>ar(A,E,p.modelName)):void 0,V=x!==void 0&&E?W(Is(b).filter(A=>mt(A,E,p.modelName))):void 0,ae=ns(e,[...i.whereClauses,...R],p,`source '${s}' at '${n}'`,true);if(ae)throw ae;return {path:n,visit:i,field:s,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:b,rowWhere:w,...x!==void 0&&{bridged:x},...V!==void 0&&{recheck:V}}}))};var Aa=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=_r(o,n,()=>({}));}return e},ds=(e,t)=>{for(let[r,o]of Object.entries(t))ds(_r(e,r,()=>({})),o);return e},Na=e=>e.whereClauses.flatMap(Ve),Du=(e,t)=>{let r=new Map;for(let o of t){if(o.from)continue;let n=o.path.split(".").slice(1).join("."),i=[o.field,...o.label===void 0?[]:[o.label],...o.groupBy??[],...Ve(o.rowWhere)];r.set(n,[...r.get(n)??[],...o.bridged===void 0?i:fs(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},Fu=(e,t)=>e.get(t.relPath.join("."))??[],JR=(e,t,r)=>Aa(ds({},r??{}),Na(F(e,t.mapName,t.modelName,t.relPath))),ju=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),Ta=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),QR=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=W(r.whereClauses),i=ns(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=is(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>Rn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},ZR=(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&&!j(l)?a:void 0},s=e?Bi(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Iu=(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:Aa(ds({},o),[...Na(a),...Fu(i,t)]),f={};for(let[p,d]of Object.entries(s)){let u=r!=="paths"&&St(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=Ta(t,p,{mapName:t.mapName,modelName:d.type}),y=Iu(e,c,g,m??{},n,i),S=d.isList&&g!=="paths"&&m===void 0?QR(e,c,F(e,c.mapName,c.modelName,c.relPath),n):void 0,R=Object.keys(y).length?void 0:ZR(O(e.lens.maps,t.mapName),t.modelName,p,d),b=R===void 0?y:{[R]:true};Object.keys(b).length&&(f[p]={select:b,...S&&{where:S}});}return f},Vu=(e,t={})=>Ca(k(e),t),Ca=(e,t={},r=cr(e))=>{let o=Iu(e,ju(e),"declared",{},t,Du(e,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&&!j(n)&&(o.id=true);}return {select:o}},$a=(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,va=(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?Ge(l,t.mapName):null;n[s]=f?$a(r[s],p=>va(e,Ta(t,s,f),p,a)):r[s];}return n},Bu=(e,t,r,o,n,i,s)=>{let a=F(e,t.mapName,t.modelName,t.relPath);if(!a.whereClauses.every(d=>ue(d,r,i)===true))return null;let l=T(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},f=n?Aa(ds({},o),[...Na(a),...Fu(s,t)]):{},p={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(f,d),g=Ge(u,t.mapName);if(!g){(St(a,d)||m!==void 0)&&(p[d]=r[d]);continue}let c=Ta(t,d,g);if(St(a,d)){let y=!Array.isArray(r[d])||m!==void 0;p[d]=$a(r[d],S=>Bu(e,c,S,m??{},n,i,s)??(n&&y?va(e,c,S,JR(e,c,m)):null));}else m!==void 0&&(p[d]=$a(r[d],y=>va(e,c,y,m)));}return p},qu=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=k(e),i=ju(n),s=r?Du(n,cr(n)):new Map;return t.flatMap(a=>{let l=Bu(n,i,a,{},r,o,s);return l===null?[]:[l]})};var YR="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Ma=(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":""}`),En=(e,t,r,o,n,i=YR)=>{for(let s of n){let a=[r];for(let{index:l,field:f,entry:p,next:d}of ir(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 Ma(i,o,`lacks '${u}', which a read needs`);let c=g[f];if(d&&c==null&&p.fromFields?.some(y=>{let S=g[y];return S!=null}))throw Ma(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 Ma(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;}}},ka=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...Ie(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},XR=(e,t,r,o)=>{let n=r.split(".").slice(1),i=ka(e,r),s=(l,f)=>{let p=i[l],d=F(e,p.mapName,p.modelName,p.relPath).whereClauses,u=W(d),m=d.flatMap(Ve),g=[e.lens.model,...n.slice(0,l)].join(".");return f.filter(c=>(En(e,p,c,g,m),ue(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){En(e,i[l],u,d,[f]);let m=me(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]}},Wu=(e,t,r)=>{let o=k(e);return cr(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=XR(o,t,n,r);for(let g of m.rows)En(o,m.visit,g,n,d),ue(p,g,r)===true&&ls(u,g,s,l===void 0?void 0:xn(g,l),f===void 0?void 0:as(g,f));return {path:n,mapName:i.mapName,model:i.model,field:s,options:ps(u)}})};var us={value:"value",query:"query"},Uu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,order:i=us.value,...s}=r,a=o==="sql",{recheck:l}=e,f=g=>false,p=g=>true;if(l!==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 g=k(n),c=ka(g,e.path).at(-1);if(!c||c.mapName!==e.mapName||c.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 y=Ce(g.lens,e.mapName,"toPrisma");f=b=>y!==void 0&&ar(b,y,e.model);let S=[...Ve(l),...e.label!==void 0&&f(e.label)?[e.label]:[],...(e.groupBy??[]).filter(f)],R="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";p=b=>(En(g,c,b,e.path,S,R),ue(l,b,s)===true);}let d=g=>e.label===void 0?void 0:a&&e.label.includes(".")&&!f(e.label)?g.__label:xn(g,e.label),u=e.groupBy?.map((g,c)=>a&&!f(g)?`__group_${c}`:g),m=new Map;for(let g of t)p(g)&&ls(m,g,e.field,d(g),u===void 0?void 0:as(g,u));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:i===us.query?[...m.values()]:ps(m)}};var eO=(e,t)=>`${e}::${t}`,tO=(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);},Ku=(e,t={})=>_a(k(e),t),_a=(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(Pa(d.groups,d.value),d);o.set(f,p);}let n=new Map;for(let{at:l,effect:f}of Br(e)){let{mapName:p,modelName:d}=l,u=T(O(r.maps,p),d);if(!u)continue;let m=eO(p,d),g=n.get(m);g||(g={mapName:p,modelName:d,fields:new Map},n.set(m,g));let c=xa(e,f,l,u,y=>{let S=o.get(`${p}::${d}::${y}`);return S&&[...S.values()]});for(let[y,S]of Object.entries(c)){let R=S.groupBy,b=g.fields.get(y)?.groupBy;if(R!==void 0&&b!==void 0&&JSON.stringify(b)!==JSON.stringify(R))throw new N(`projectLens: '${d}.${y}' is grouped by different axes on different paths ([${b}] vs [${R}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");tO(g.fields,y,S);}}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(y=>({value:y,label:y}))}:c,c.kind==="enum"&&c.values){let y=m.get(c.type)??new Set;for(let S of c.values)y.add(S);m.set(c.type,y);}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,xe(p)),u=he(O(i,p.fieldMap),p.model,xe(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 Gu=(e,t,r,o,n)=>{if(e===void 0)return;let i=jo(e),s=o==="root.where"?null:i.bare;if(s!==null){n.push({path:o,code:"invalid_value_source",message:na(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:ia(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 gn(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}));}},rO=(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=dr(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${p}|${m}`))continue;let g=m==="label"?u.label:wn(u.groupBy),c=m==="label"?f.sourceLabels.get(p):f.sourceGroupBys.get(p);if(JSON.stringify(g)!==JSON.stringify(c))continue;let S=(typeof c=="string"?[c]:c??[]).map(R=>aa(s,l,R)).find(R=>R!==null);if(S){a.add(`${p}|${m}`),i.push({path:`${n}.sources.${p}`,code:"invalid_source",message:`${m} '${String(u[m])}' crosses '${S}', a relation the lens does not show there (not turned on, or omitted)`});continue}Wo(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`}));}}}},oO=(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},nO=(e,t,r,o,n,i,s,a,l,f,p,d,u=false)=>{let m=e.omits?.some(c=>{let y=O(i,c);return y===void 0||!j(y)});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 y of e[c]??[]){let S=O(i,y);if(!S){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${y}' not on model`});continue}let R=j(S);if(R&&c==="picks"){f.push({path:`${l}.picks`,code:"wrong_kind",message:`'${y}' is a relation: picks names columns; turn a relation on with \`relations\``});continue}let b=oO(y,R,t,r);b&&f.push({path:`${l}.${c}`,code:"not_visible",message:`'${y}' ${b}`});}let g=(c,y,S)=>{let R=O(i,y);if(!R){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${y}' not on model`});return}if(R.kind!=="enum"){f.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${y}' is not an enum field`});return}let b=Lr(R,a);for(let w of S)b&&!b.includes(w)&&f.push({path:`${l}.${c}.${y}`,code:"value_not_allowed",message:`'${w}' is not a known value of enum '${R.type}'`});};for(let[c,y]of Object.entries(e.enumPicks??{}))g("enumPicks",c,y);for(let[c,y]of Object.entries(e.enumOmits??{}))g("enumOmits",c,y);Gu(e.where,p,d,`${l}.where`,f);for(let[c,y]of Object.entries(e.sources??{})){let S=O(i,c);if(!S){f.push({path:`${l}.sources`,code:"not_in_lens",message:`field '${c}' not on model`});continue}if(j(S)){f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`'${c}' is a relation: a source offers a column's values`});continue}let R;try{R=dr(y);}catch(x){if(!(x instanceof N))throw x;f.push({path:`${l}.sources.${c}`,code:x.code,message:x.message});continue}let b=R.from;if(b!==void 0){let x=b!=="mapDefaults"?`from takes 'mapDefaults', not '${String(b)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":R.label!==void 0||R.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 w=R.label?.includes(".")?R.label:void 0;if(R.label!==void 0)if(w){let x=ss(w,o,n,s,"label");x&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,R.label);x?j(x)&&f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${R.label}' is a relation, not a column`}):f.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${R.label}' not on model`});}let E=wn(R.groupBy);if(E!==void 0||w!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(c)||R.label!==void 0&&x.test(R.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 V of E){let ae=ss(V,o,n,s,"groupBy");ae&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${ae}`});}let x=JSON.stringify(E);for(let V of t){let ae=O(V.sources,c);if(ae===void 0)continue;let A=wn(dr(ae).groupBy);A!==void 0&&JSON.stringify(A)!==x&&f.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${E}] conflicts with an ancestor layer's groupBy [${A}]`});}}Gu(R.where,p,d,`${l}.sources.${c}`,f);}},iO=(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=Zi(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`});}},sO=(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=Lr(d,n)??[],m=Ji(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)`});}},zu=(e,t,r,o)=>e.map(n=>({mapName:o,modelName:r,relPath:[...n.relPath,t]})),La=(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),S=[...o.map(w=>O(O(w.mapDefaults,i)?.models,s)).filter(w=>w!==void 0),...t],R={mapName:i,modelName:s,relPath:oa};nO(e,S,c,n,i,u.fields,s,d?.enums,a,l,f,m?p.isDefault?[R,...p.parent]:p.parent:p.composed,p.isDefault),sO(e,p.isDefault?f:{...f,chain:[...f.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},p.isDefault?R:p.parent[0]??R,u.fields,d?.enums,a,l),rO(e,r,f,p.composed,a,l);let b={...f,chain:[...f.chain,r]};if(!p.isDefault)for(let[w,E]of Object.entries(e.sources??{}))!Sn(E)||E.from!=="mapDefaults"||Yi(b,i,s,w)||l.push({path:`${a}.sources.${w}`,code:"invalid_source",message:Xi([Je(r).model,...p.parent[0]?.relPath??[]].join("."),i,s,w).message});for(let[w,E]of Object.entries(e.relations??{})){let x=O(u.fields,w);if(!x){l.push({path:`${a}.relations`,code:"not_in_lens",message:`'${w}' not on model`});continue}if(!j(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${w}' is not a relation (kind=${x.kind})`});continue}let V=B=>F(f,B.mapName,B.modelName,B.relPath).relations.has(w),ae=B=>F(g,B.mapName,B.modelName,B.relPath).relations.has(w);if(!m&&!(p.isDefault?p.parent.some(V):p.parent.every(V))){l.push({path:`${a}.relations`,code:"not_visible",message:`'${w}' 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 A=Ge(x,i);if(!A)continue;if(!T(O(n,A.mapName),A.modelName)){l.push({path:`${a}.relations.${w}`,code:"not_in_lens",message:"target model not found in lens"});continue}let L=t.map(B=>O(B.relations,w)).filter(B=>B!==void 0);La(E,L,r,o,n,A.mapName,A.modelName,`${a}.relations.${w}`,l,f,{parent:zu(p.isDefault?p.parent.filter(V):p.parent,w,A.modelName,A.mapName),composed:zu(p.composed.filter(ae),w,A.modelName,A.mapName),isDefault:p.isDefault});}},Da=e=>{let t=[];try{aO(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 fr(t)},aO=(e,t)=>{let r=Je(e),o=ht(e.parent),n=k(e.parent),i=Br(n),s=[],a=u=>{try{u();}catch(m){if(!(m instanceof N))throw m;s.push(m);}},l=null,f=()=>(l??=Br({...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(y=>O(y.mapDefaults,u)?.enums).filter(y=>y!==void 0);for(let[y,S]of Object.entries(m.models??{})){if(!T(g,y)){t.push({path:`mapDefaults.${u}.models.${y}`,code:"not_in_lens",message:"not in fieldMap"});continue}let b=o.map(x=>O(O(x.mapDefaults,u)?.models,y)).filter(x=>x!==void 0),w=x=>x.map(({at:V})=>V).filter(V=>V.mapName===u&&V.modelName===y),E=[];a(()=>{E=w(f());}),a(()=>La(S,b,e,o,r.maps,u,y,`mapDefaults.${u}.models.${y}`,t,n,{parent:w(i),composed:E,isDefault:!0}));}m.enums&&iO(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(S=>S.root).filter(S=>S!==void 0),y={mapName:u,modelName:m,relPath:[]};a(()=>La(e.root,c,e,o,r.maps,u,m,"root",t,n,{parent:[y],composed:[y],isDefault:!1}));}}for(let u of nu(e))t.push({path:"bindings",code:"invalid_binding",message:u});let p={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=cr(p,On(p));}),a(()=>_a(p)),a(()=>Ca(p,{},d)),a(()=>{let u=new Map;for(let{at:m}of f()){u.set(m.relPath.join("."),m),a(()=>Ea(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 S=he(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Vr(S,p,c));}});for(let u of s)t.some(m=>u.message.includes(m.message))||t.push({path:"",code:u.code,message:u.message});},cs=e=>cn(Da(e),"validateNarrowing");function Hu(e,{by:t="path",...r}={}){return t==="model"?Ku(e,r):Mu(e,r)}var Ju=(e,t,r,o={})=>{let n=k(e),{resolution:i}=qr(n,wt(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(j(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=>ue(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?me(m,l.join(".")):m};p=f(s[d+1],m)?m:null;}return {ok:true,value:null}};var lO=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(lO(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};cs(u),n=u;}return n},Zu=(e,t)=>{let r=He(e)?[]:ht(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 [{...Je(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var Yu=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(Yu):e,M=(e,t)=>(e.params.push(Yu(t)),`$${++e.paramIndex}`);var jt=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:ca(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=se(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw Ri(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 bi(e,i);let s=t.currentAlias;for(let p of n.hops){let d=Xu(t,s,p);if(!d)return o();s=d;}let a=_i(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=un(t.map,n.model,n.entry),u=Xu(t,s,p);return !d||!u?o():{sql:`${X(u)}.${X(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],f=ca(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${f}, 'null'::jsonb)`:f,shape:a}},Rt=(e,t,r)=>jt(e,t,r).sql,Xu=(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=pO(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},pO=(e,t,r,o,n)=>{let i=o.type,s=T(e,i)?.dbName??i,a=un(e,t,o);if(!a)return null;let l=a.map(({here:f,there:p})=>`${X(n)}.${X(p)} = ${X(r)}.${X(f)}`).join(" AND ");return `LEFT JOIN ${X(s)} AS ${X(n)} ON ${l}`};var It={type:"value",value:null},Vt=e=>e.type==="value"&&(e.value===null||e.value===void 0),fO=(e,t)=>{let r=D(e)??{depth:1,path:e};if(r.depth>1)throw new Error(Yo(e,"toSql"));let o=jt(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}},we=(e,t)=>on(e,{value:r=>({type:"value",value:r}),path:r=>fO(r,t),bind:(r,o)=>({type:"value",value:Pi(r,o,"toSql")})}),Ur=e=>t=>{let r=we(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},Ze=e=>Tr(e.dateConfig??{},Ur(e));var dO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},Uo=(e,t)=>{let r=Ht(e,t);return r?{symbol:dO[r],negated:K.includes(e)}:void 0},ec=(e,t)=>e.type==="column"?e.sql:M(t,e.value),Ot=(e,t)=>`(${t} OR ${e} IS NULL)`,mr=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",ms=(e,t,r,o,n)=>{if(Vt(r))return mr(e,o);let i=`${e} ${t} ${ec(r,n)}`;return o?Ot(e,i):i},Pn=(e,t,r,o,n=true)=>{if(!t||t.some(Vt))return mr(e,r,n);let[i,s]=t.map(d=>ec(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?Ot(e,p):p};var tc=e=>Array.isArray(e)?e.some(tc):typeof e=="object"&&e!==null,rc=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=b=>`${M(o,JSON.stringify(b))}::jsonb`,l=pe(e.caseInsensitive),f=b=>l?`LOWER(${b})`:b,p=K.includes(e.operator),d=b=>Ot(n,`NOT (${b})`);if(Oe(e,r))return mr(n,p);let u=Si(e.operator,r);if(u)throw u;let m=b=>{if(tc(b))throw _("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(kr(b))},g=b=>l&&typeof b=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${M(o,b)}))`:l&&Array.isArray(b)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${m(b)})`:`${n} = ${a(b)}`,c=b=>`(${i} = 'string' AND ${f(s)} LIKE ${f(M(o,b))})`,y=b=>{let w=E=>`(CASE WHEN ${i} = 'array' THEN EXISTS (SELECT 1 FROM jsonb_array_elements(${n}) AS e WHERE ${E}) ELSE FALSE END)`;return l&&typeof b=="string"?w(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${M(o,b)})`):l&&Array.isArray(b)?w(`LOWER(e::text)::jsonb = ${m(b)}`):typeof b=="object"&&b!==null?w(`e = ${a(b)}`):`(${i} = 'array' AND ${n} @> ${a([b])})`},S=b=>typeof b=="string"?`(${c(`%${ge(b)}%`)} OR ${y(b)})`:y(b);switch(e.operator){case h.equals:return r===null?`${n} IS NULL`:g(r);case h.notEquals:return r===null?`${n} IS NOT NULL`:d(g(r));case h.in:case h.notIn:{let{values:b,hasNull:w}=Lt(r),E=b.length?`(${b.map(g).join(" OR ")})`:"FALSE";return e.operator===h.in?w?`(${E} OR ${n} IS NULL)`:E:w?`(NOT ${E} AND ${n} IS NOT NULL)`:d(E)}case h.between:case h.notBetween:{let[b,w]=r,E=`(${i} = jsonb_typeof(${a(b)}) AND ${n} BETWEEN ${a(b)} AND ${a(w)})`;return e.operator===h.between?E:d(E)}case h.contains:return S(r);case h.notContains:return d(S(r));case h.startsWith:return c(`${ge(String(r))}%`);case h.endsWith:return c(`%${ge(String(r))}`);case h.notStartsWith:return d(c(`${ge(String(r))}%`));case h.notEndsWith:return d(c(`%${ge(String(r))}`));case h.matches:case h.notMatches:{let{source:b,caseInsensitive:w}=nr(r),E=`(${i} = 'string' AND ${s} ~${w?"*":""} ${M(o,ln(b))})`;return e.operator===h.matches?E:d(E)}}let R=Uo(e.operator,"field")?.symbol;if(R)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${R} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var oc=e=>typeof e=="object"&&Pr(e)!==null,$n=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=M(r,Ze(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)`},gs=e=>Object.values(e).some(oc),cO=(e,t,r)=>{let o=xr(r),n=o?"int":"double precision";if(typeof e=="number"||!oc(e)){let a=Ws(e,Ur(t),r);return `${M(t,a)}::${n}`}let i=we(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},mO=(e,t)=>`make_interval(${_f.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&Yt[i].interval===o).map(i=>{let s=cO(e[i],t,i),{factor:a}=Yt[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,vn=(e,t,r,o)=>{let n=Ze(o).timeZone;if(e.type==="value"&&!gs(t)){let l=vr(t,Ur(o));return e.value===null||e.value===void 0||l===null?It:{type:"value",value:er(ut(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:$n(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?"+":"-"} ${mO(t,o)}) AT TIME ZONE ${s})`}};var Fa=(e,t,r)=>{let o=we(t,r);if(e.type==="value"&&o.type==="value"){let i=Nr(o.value);return i===null?It:{type:"value",value:Ar(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,Nr)})`}},nc=(e,t,r)=>{if(Vt(e))return It;let o=we(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=Ao(o.value);return n===null?It:vn(e,...n,r)};var ic,sc=e=>{ic=e;},gr=(e,t)=>ic(e,t);var hs=(e,t,r)=>{let o=wi(e);if(o)throw o;let n=r===void 0?jt(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!Mr(e))throw xo(e.field);let i=r===void 0,s=Ue(e)&&t.map&&t.currentModel?(D(e.path)??{path:e.path}).path:null;if(s!==null){let w=Mo(Z(e.field,t.map,t.currentModel),Z(s,t.map,t.currentModel),e.operator);if(w)throw _("toSql",`Comparing '${e.field}' with the column '${e.path}'`,w)}if(n.shape==="enum"&&!Jt.includes(e.operator)){let w=lc(e,t),E=Z(e.field,t.map,t.currentModel),x=w!==ys&&E&&!Oe(e,w)?ts(e,w,E,t.map):null;if(x){let V=`${n.sql}::text = ANY(${M(t,x.values)})`;return x.matchesNull?Ot(n.sql,V):V}}let a=n.shape==="enum"&&!Jt.includes(e.operator)&&s===null?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!Jt.includes(e.operator)){let w=lc(e,t);if(w===ys)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return rc(e,Rt(e.field,t,{jsonb:true}),w,t)}let f=w=>{if(w.type==="column"&&!w.computed&&(w.shape==="json"||w.shape==="json-path"))throw _("toSql",`'${e.field}' compared with a Json value read per row`,"SQL would compare its text")};if(_e.includes(e.operator)){let w=dc(e,t);return w?.forEach(f),Pn(a.sql,w,K.includes(e.operator),t,i)}let p=pc(e,t);if(f(p),p.type==="column"&&Ct(e.operator,"field")==="string"&&!Dr(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=Uo(e.operator,"field");if(u)return ms(d,u.symbol,p,false,t);if(p.type==="value"&&Oe(e,p.value))return mr(d,K.includes(e.operator),i);let m=p.type==="column"&&p.computed===true,g=pe(e.caseInsensitive)&&(p.type==="column"?!m&&Dr(n.shape)&&Dr(p.shape):lr(n.shape,p.value)),c=w=>g?`LOWER(${w})`:w,y=w=>g?kr(w):w;if(n.shape==="list"&&p.type==="column"&&st.includes(e.operator)){if(Z(e.field,t.map,t.currentModel)?.type!=="String"||!Dr(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 w=pe(e.caseInsensitive)&&Dr(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===h.contains?`(${p.sql} IS NOT NULL AND ${w})`:`(${d} IS NULL OR (${p.sql} IS NOT NULL AND NOT ${w}))`}if(n.shape==="list"&&p.type==="value"){let w=pe(e.caseInsensitive)&&lr("text",p.value);if(st.includes(e.operator)){let E=M(t,p.value),x=w?`EXISTS (SELECT 1 FROM unnest(${d}) AS e WHERE LOWER(e) = LOWER(${E}))`:`array_position(${d}, ${E}) IS NOT NULL`;return e.operator===h.contains?x:`NOT ${x}`}if(Qt.includes(e.operator)&&Array.isArray(p.value))return gr(Ci(e,p.value),t);if(gO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(w&&lt.includes(e.operator)&&Array.isArray(p.value)){let E=M(t,kr(p.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${E})`;return e.operator===h.equals?x:Ot(d,`NOT ${x}`)}}let S=p.type==="value"?p.value:void 0,R=p.type==="column"?p.sql:void 0;if(R!==void 0&&(Qt.includes(e.operator)||["pattern","string"].includes(Ct(e.operator,"field"))))throw _("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let b=w=>i?Ot(d,w):w;switch(e.operator){case h.equals:return m?`${d} = ${R}`:R!==void 0?`${c(d)} IS NOT DISTINCT FROM ${c(R)}`:S===null?`${d} IS NULL`:`${c(d)} = ${c(M(t,S))}`;case h.notEquals:return m?b(`${d} <> ${R}`):R!==void 0?`${c(d)} IS DISTINCT FROM ${c(R)}`:S===null?`${d} IS NOT NULL`:b(`${c(d)} <> ${c(M(t,S))}`);case h.in:{let{values:w,hasNull:E}=Lt(S);if(!w.length)return E?`${d} IS NULL`:"FALSE";let x=`${c(d)} = ANY(${M(t,y(w))})`;return E?b(x):x}case h.notIn:{let{values:w,hasNull:E}=Lt(S);if(!w.length)return E?`${d} IS NOT NULL`:"TRUE";let x=`${c(d)} <> ALL(${M(t,y(w))})`;return E?`(${x} AND ${d} IS NOT NULL)`:b(x)}case h.contains:return `${c(d)} LIKE ${c(M(t,`%${ge(String(S))}%`))}`;case h.notContains:return b(`${c(d)} NOT LIKE ${c(M(t,`%${ge(String(S))}%`))}`);case h.startsWith:return `${c(d)} LIKE ${c(M(t,`${ge(String(S))}%`))}`;case h.endsWith:return `${c(d)} LIKE ${c(M(t,`%${ge(String(S))}`))}`;case h.notStartsWith:return b(`${c(d)} NOT LIKE ${c(M(t,`${ge(String(S))}%`))}`);case h.notEndsWith:return b(`${c(d)} NOT LIKE ${c(M(t,`%${ge(String(S))}`))}`);case h.matches:return ac(d,S,false,t);case h.notMatches:return b(ac(d,S,true,t));case h.isEmpty:case h.notEmpty:return ja(e.field,n,e.operator===h.isEmpty,t,Li(e,t.map,t.currentModel));case h.exists:return `${d} IS NOT NULL`;case h.notExists:return `${d} IS NULL`;default:throw new Error(`Unknown operator: ${e.operator}`)}},pc=(e,t)=>{if(Jt.includes(e.operator))return {type:"value",value:void 0};let r=fc(e,we(e,t),t);return e.offset===void 0?r:Fa(r,e.offset,t)},fc=(e,t,r)=>t.type==="column"?t:{type:"value",value:zi(e,t.value,sr(e.field,r.map,r.currentModel),"toSql",()=>Ze(r).timeZone)},dc=(e,t)=>{let r=fc(e,we(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=Ke(o,e.operator);return n.some(i=>i!=null&&!de(i))&&vo(o,e.operator),De(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:Fa(s,e.offset,t)})},ac=(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}=nr(t);return `${e} ${r?"!":""}~${i?"*":""} ${M(o,ln(n))}`},ys=Symbol("not known"),lc=(e,t)=>{if(_e.includes(e.operator)){let o=dc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):ys:null}let r=pc(e,t);return r.type==="value"?r.value:ys},ja=(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=Rt(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`},gO=e=>Ct(e,"field")==="string"&&!st.includes(e);var uc=(e,t)=>{if(Ne(e))throw ft("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=yO(e,t);return hs(e,t,r)},yO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!at.includes(r))throw Xt(r);let n=r==="sum"?"SUM":"AVG",i=Me({field:e.field},t.map,t.currentModel);if(i==="relation"||Z(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=Rt(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->>${ma(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 cc=(e,t)=>{if(Ne(e))throw ft("toSql");if(!e.field)throw yi("toSql");if(Me({field:e.field},t.map,t.currentModel)==="relation"||Z(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=jt(e.field,t),n=e.arrayOperator===$.empty;if(o.shape==="list")return ja(e.field,o,n,t,false);let i=Rt(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 ie(e.arrayOperator,"array")}};var hO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:$n(e,t),computed:true}:e,mc=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",gc=e=>_("toSql",`A date rule on '${e}'`,"it is not a date column"),yc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:$n(e,r),ends:t.map(i=>hO(i,r))}:{lhs:e.sql,ends:t}},hc=(e,t)=>{let r=jt(e.field,t);if(!mc(r.shape))throw gc(e.field);let o=we(e,t);if(o.type==="column"&&!mc(o.shape))throw gc(String(e.path??e.field));let n=Uo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=yc(r,[SO(e,t)],t);return ms(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return Pn(r.sql,null,a,t);let{lhs:l,ends:f}=yc(r,s,t);return Pn(l,f,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(bO(e,t),K.includes(e.dateOperator));case v.between:case v.notBetween:return i(RO(e,t),K.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=we(e,t);if(a.type==="column")throw _("toSql",`A weekday list read from the row ('${e.path}')`);let l=Us(a.value);if(l===null)return mr(r.sql,s);let f=M(t,Ze(t).timeZone),p=M(t,l),d=`EXTRACT(DOW FROM (${$n(r,t)} AT TIME ZONE ${f}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${p})`:Ot(r.sql,`${d} <> ALL(${p})`)}default:throw ie(e.dateOperator,"date")}},wc=e=>({type:"value",value:tn(Ze(e)).toDate()}),wO=(e,t,r)=>{let o=Re(e);if(o&&gs(o[0]))return vn(wc(r),...o,r);let n=dt(e,Ur(r));return n===null?It:{type:"value",value:Eo(n,t,Ze(r)).toDate()}},Sc=(e,t,r)=>e==null?It:te(e)?wO(e,t,r):{type:"value",value:Ni(e,Ze(r).timeZone)},bc=(e,t,r)=>t.offset===void 0?e:nc(e,t.offset,r),SO=(e,t)=>{let r=we(e,t),o=r.type==="column"?r:Sc(r.value,e.dateOperator,t);return bc(o,e,t)},bO=(e,t)=>{let r=we(e,t);if(Vt(r))return null;if(r.type==="column"||!te(r.value))throw qe(e.dateOperator);let o=Re(r.value);if(o&&gs(o[0])){let s=wc(t),a=vn(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=dt(r.value,Ur(t));if(n===null)return null;let i=Po(n,Ze(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},RO=(e,t)=>{let r=we(e,t);if(Vt(r))return null;let o=r.type==="value"?r.value:void 0,n=Ke(o,e.dateOperator).map(l=>Sc(l,e.dateOperator,t));if(n.some(Vt))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=>bc(l,e,t))};var Rc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>gr(o,t)).join(" AND ")})`,Oc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>gr(o,t)).join(" OR ")})`,xc=(e,t)=>{if(mt(e,t.map,t.currentModel))return "TRUE";let r=gr(e.if,t),o=gr(e.then,t);if(e.else!==void 0){let n=gr(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var An=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(ni(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&ar(e.field,t.map,t.currentModel))return "TRUE";let r=fe(e);(r==="field"||r==="date")&&Di(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return Rc(o,t);case "any":return Oc(o,t);case "if":return xc(o,t);case "array":return cc(o,t);case "aggregate":return uc(o,t);case "date":return hc(o,t);case "field":return hs(o,t);default:throw pt()}};sc(An);var Ia=e=>{let t=Ce(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}},OO=(e,t)=>es(e,t,"toSql",xO),xO=(e,t)=>{let r=Ia(t);return {sql:An(e,r),params:r.params,joins:r.joins??[]}};var Ec=(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:{};Ec(i,o),e[r]={select:i};},EO=(e,t,r,o,n,i,s,a,l,f)=>{let p=is(`source '${n}' at '${t}'`,()=>Rn(a,{...l,map:e,mapName:r,model:o})),d=p.steps.at(-1),u=d.where,m=p.steps.length>1||(d.refs?.length??0)>0,g=Ce(e,r,"toPrisma"),c=A=>f!==void 0&&se(A,g,o).kind==="bridge",y=i!==void 0&&!c(i)?i:void 0,S=(s??[]).map(A=>c(A)?void 0:A),R=A=>{let L=se(A,g,o);return L.kind==="json-path"?A.split(".").slice(0,L.stopIndex).join("."):A},b=f===void 0?[]:fs(e,r,o,[...Ve(f),...i!==void 0&&y===void 0?[i]:[],...(s??[]).filter(c)].map(R)).filter(A=>A!==n),w=y?.includes(".")?y:void 0,E=[...S.filter(A=>A!==void 0),...w?[w]:[],...b],x={[n]:true,...y&&!w?{[y]:true}:{}};for(let A of E)Ec(x,A.split("."));let V={model:o,...s||w||f!==void 0?{}:{distinct:y?[n,y]:[n]},select:x,where:u,...m?{steps:p.steps}:{}},ae;try{for(let Y of b){let xt=se(Y,g,o);if(!(xt.kind==="direct"&&!xt.hops.length&&xt.entry.kind!=="object"))throw new Error(xt.kind==="direct"?`the re-check reads '${Y}' through a relation, which flat SQL rows can't hold \u2014 run the Prisma query`:`the re-check reads '${Y}', which is not a column of ${o} \u2014 run the Prisma query`)}let A=Ia({...l,map:e,mapName:r,model:o,alias:"t0"}),L=An(a,A),B=w?Rt(w,A):void 0,yr=S.map((Y,xt)=>Y===void 0?void 0:`${Rt(Y,A)} AS ${X(`__group_${xt}`)}`),Ko=A.joins??[],hr=Ko.length?` ${Ko.join(" ")}`:"",le=L?.trim()?` WHERE ${L}`:"",Ye=X("t0"),Se=[`${Ye}.${X(n)}`,...B?[`${B} AS ${X("__label")}`]:y?[`${Ye}.${X(y)}`]:[],...yr.filter(Y=>Y!==void 0),...b.map(Y=>`${Ye}.${X(Y)}`)].join(", "),Q=T(O(e.maps,r),o)?.dbName??o;ae={sql:`SELECT DISTINCT ${Se} FROM ${X(Q)} AS ${Ye}${hr}${le}`,params:A.params};}catch(A){ae={sql:null,params:[],error:A instanceof Error?A.message:String(A)};}return {prisma:V,sql:ae}},Pc=(e,t={})=>{let{lens:r}=k(e);return Lu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:f})=>{let p=l,{prisma:d,sql:u}=EO(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 $c=(e,t)=>{let r=k(e);return qr(r,wt(r),t).resolution};/*! Bundled license information:
3
+ `)}`)},Uo=(e,t={})=>{let r={target:t.target??"check",errors:[],map:Re(t.map,t.mapName,"toPrisma"),scopeModels:[t.model],stepScopes:[false]};return Bt(e,"$",r,1),hr(r.errors)},eR=(e,t={})=>{Sn(Uo(e,t),"validateRule");},Bt=(e,t,r,o)=>{if(typeof e=="boolean")return;if(!yr(e)){$(r,t,"invalid_condition","Condition must be a boolean or object");return}let n=ie(e);if(!n){$(r,t,"ambiguous_condition",gt().message);return}switch(n){case "all":jd(e.all,`${t}.all`,r,o);break;case "any":jd(e.any,`${t}.any`,r,o);break;case "if":Bt(e.if,`${t}.if`,r,o),Bt(e.then,`${t}.then`,r,o),"else"in e&&e.else!==void 0&&Bt(e.else,`${t}.else`,r,o);break;case "field":tR(e,t,r,o);break;case "aggregate":nR(e,t,r,o);break;case "array":iR(e,t,r,o);break;case "date":sR(e,t,r,o);break}},jd=(e,t,r,o)=>{if(!Array.isArray(e)){$(r,t,"logical_array_required","Logical operator requires an array of conditions");return}e.forEach((n,i)=>{Bt(n,`${t}[${i}]`,r,o);});},Hi=(e,t,r,o)=>{typeof e.field=="string"&&qd(e.field,"field",`${t}.field`,r,o);},qd=(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&&$(o,r,"scope_out_of_bounds",ks(e,s.depth,n)),o.target==="toPrisma"&&!i?$(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)&&$(o,r,`unsupported_sql_${t}`,`${a} '${e}' is not supported by toSql()`);},zi=(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"?hn(r,e.map,n)??void 0:void 0;},Wo=(e,t,r,o,n=false)=>{let i=zf.filter(a=>e[a]!==void 0);if(i.length>1)return $(r,t,"ambiguous_value_source","Takes one of value, path or bind"),null;if(i.length===0)return $(r,t,"missing_value_source","Requires value, path or bind"),null;let[s]=i;return s!=="value"&&(typeof e[s]!="string"||e[s]==="")?($(r,`${t}.${s}`,"invalid_value_source",`${s} is a non-empty string`),null):(e.bindOptional!==void 0&&(s!=="bind"||typeof e.bindOptional!="boolean")&&$(r,`${t}.bindOptional`,"invalid_value_source","bindOptional is a boolean beside bind"),s==="path"&&qd(e.path,"path",`${t}.path`,r,o,n),s)},Bd=(e,t,r,o,n,i)=>{let{offset:s}=e;if(s===void 0)return;let a=`${o}.offset`;if(!Cf.includes(r)){$(n,a,"unsupported_offset_operator",`Operator '${r}' has no comparison point to offset`);return}if(!yr(s)){$(n,a,"invalid_offset","An offset is one of { value }, { path } or { bind }");return}let l=Wo(s,a,n,i);if(l==="path"){let d=s.path,u=Tr(s);t==="date"&&u&&u.depth<=1&&n.target==="toSql"&&$(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))&&$(n,`${a}.value`,"invalid_offset","A field offset value is a number");return}let p=yr(f)&&Object.keys(f).length===1&&te(f)?$e(f):null;if(!p){$(n,`${a}.value`,"invalid_offset","A date offset value is { ago } or { ahead }");return}Kd(p[0],`${a}.value.${Object.keys(f)[0]}`,n,i);},Wd=(e,t,r,o)=>{o.target!=="toSql"||!Fe.includes(t)||Tr(e)&&$(o,`${r}.path`,"unsupported_sql_path",`A range read from the row ('${e.path}') is not supported by toSql()`);},tR=(e,t,r,o)=>{if(typeof e.field!="string"&&$(r,`${t}.field`,"field_required","Field rule requires a string field"),Hi(e,t,r,o),typeof e.operator!="string"||!_t(e.operator,"field")){$(r,`${t}.operator`,"invalid_operator",le(e.operator,"field").message);return}let n=e.operator;Bd(e,"field",n,t,r,o),wi(n,"field",r.target)||$(r,`${t}.operator`,`unsupported_${Ji(r.target)}_operator`,`Operator '${n}' is not supported by ${r.target}()`),e.coerceType!==void 0&&!hi(e.coerceType)&&$(r,`${t}.coerceType`,"invalid_coerce_type",`coerceType must be one of: ${Object.keys(J).join(", ")}`);let i=Ft(n,"field");if(i==="none"){aR(e,t,r);return}if(Wo(e,t,r,o,true)!==null){if(Wd(e,n,t,r),r.target==="toPrisma"&&typeof e.path=="string"){let s=Wi(e,r.map,r.scopeModels[o-1],o>1,r.stepScopes[o-1]===true);"problem"in s&&$(r,`${t}.path`,"unsupported_prisma_path",Ui(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=jo(Q(e.field,r.map,s),Q(a,r.map,s),n);l&&$(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&&ut.includes(n)||$(r,`${t}.path`,"unsupported_sql_path",`'${n}' against the column '${e.path}' has no SQL form`)),!(typeof e.path=="string"||typeof e.bind=="string")&&(rR(e,n,t,r,o),oR(i,e.value,n,`${t}.value`,r));}},rR=(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=ne(e.caseInsensitive),l=rr.includes(t)&&Array.isArray(s),f=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&&gr("text",s)?f(`A case-insensitive comparison on the list '${e.field}'`):Le(i)&&a&&f(`A case-insensitive comparison on the Json column '${e.field}'`);},oR=(e,t,r,o,n)=>{switch(e){case "scalar":case "string":e==="string"&&typeof t!="string"&&$(n,o,"invalid_string_value",`Operator '${r}' requires a string value`);return;case "ordered":de(t)||$(n,o,"invalid_ordered_value",`Operator '${r}' requires a string, number, or Date value`);return;case "array":Array.isArray(t)||$(n,o,"invalid_membership_value",`Operator '${r}' requires an array value`);return;case "pattern":{if(!(typeof t=="string"||t instanceof RegExp)){$(n,o,"invalid_pattern_value",`Operator '${r}' requires a string or RegExp value`);return}let i=ad(t,n.target);i&&$(n,o,"unsupported_pattern",i);return}case "range":try{ko(t,r);}catch(i){$(n,o,"invalid_range_value",i.message);}return}},Ud=(e,t,r,o,n)=>{let i=r.scopeModels[o-1];if(!(r.target!=="toPrisma"||!r.map||!i||typeof e.field!="string"))try{Bo(e.field,r.map,i,n);}catch(s){$(r,`${t}.field`,"unsupported_prisma_relation",s.message);}},nR=(e,t,r,o)=>{if(Ud(e,t,r,o,"Aggregate rules"),e.offset!==void 0&&$(r,`${t}.offset`,"unexpected_offset","Aggregate rules take no offset"),Gd(e,t,r,o),typeof e.field!="string"&&$(r,`${t}.field`,"field_required","Aggregate rule requires a string field"),Hi(e,t,r,o),!yr(e.aggregate)){$(r,`${t}.aggregate`,"invalid_aggregate","aggregate must be an object");return}let n=e.aggregate;if(ct.includes(n.mode)||$(r,`${t}.aggregate.mode`,"invalid_aggregate_mode",sr(n.mode).message),"field"in n&&n.field!==void 0&&typeof n.field!="string"&&$(r,`${t}.aggregate.field`,"invalid_aggregate_field","aggregate.field must be a string"),!Si.includes(e.operator)){$(r,`${t}.operator`,"invalid_aggregate_operator",`Aggregate rules only support: ${Si.join(", ")}`);return}if(r.target==="toPrisma"&&typeof e.path=="string"&&$(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"&&$(r,`${t}.condition`,"unsupported_sql_aggregate_condition","Aggregate condition filtering is not supported by toSql(); use check() or toPrisma()"),zi(r,o,e.field,true),Bt(e.condition,`${t}.condition`,r,o+1)),Wo(e,t,r,o)===null||typeof e.path=="string"||typeof e.bind=="string")return;let i=e.value;Fe.includes(e.operator)?lR(i)||$(r,`${t}.value`,"invalid_range_value",`Operator '${e.operator}' requires a two-item numeric range`):typeof i!="number"&&$(r,`${t}.value`,"invalid_aggregate_value","Aggregate rule value must be a number");},iR=(e,t,r,o)=>{if(typeof e.field!="string"&&r.target!=="check"&&$(r,`${t}.field`,"field_required","Array rule requires a string field for this target"),Hi(e,t,r,o),Gd(e,t,r,o),typeof e.arrayOperator!="string"||!_t(e.arrayOperator,"array")){$(r,`${t}.arrayOperator`,"invalid_array_operator",le(e.arrayOperator,"array").message);return}let n=e.arrayOperator;or.includes(n)&&Ud(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&&!q(i)&&n!=="empty"&&n!=="notEmpty"&&$(r,`${t}.arrayOperator`,"unsupported_prisma_array_operator",_("toPrisma",`'${n}' over the array column '${e.field}'`).message),wi(n,"array",r.target)||$(r,`${t}.arrayOperator`,`unsupported_${Ji(r.target)}_array_operator`,`Array operator '${n}' is not supported by ${r.target}()`);let s=Ft(n,"array"),a=e.condition!==void 0,l=()=>{e.count!==void 0&&$(r,`${t}.count`,"unexpected_count",`Array operator '${n}' does not accept count`);};s==="none"?(a&&$(r,`${t}.condition`,"unexpected_condition",`Array operator '${n}' does not accept condition`),l()):s==="predicate"?(a?(zi(r,o,e.field),Bt(e.condition,`${t}.condition`,r,o+1)):$(r,`${t}.condition`,"missing_condition",ze(n).message),l()):s==="count"&&(typeof e.count!="number"?$(r,`${t}.count`,"missing_count",vo(n).message):e.count!==void 0&&!(typeof e.count=="number"&&Number.isInteger(e.count)&&e.count>=0)&&$(r,`${t}.count`,"invalid_count","count must be a non-negative whole number"),a?(zi(r,o,e.field,true),Bt(e.condition,`${t}.condition`,r,o+1)):$(r,`${t}.condition`,"missing_condition",ze(n).message));},sR=(e,t,r,o)=>{if(typeof e.field!="string"&&$(r,`${t}.field`,"field_required","Date rule requires a string field"),Hi(e,t,r,o),typeof e.dateOperator!="string"||!_t(e.dateOperator,"date")){$(r,`${t}.dateOperator`,"invalid_date_operator",le(e.dateOperator,"date").message);return}let n=e.dateOperator;Bd(e,"date",n,t,r,o),wi(n,"date",r.target)||$(r,`${t}.dateOperator`,`unsupported_${Ji(r.target)}_date_operator`,`Date operator '${n}' is not supported by ${r.target}()`);let i=Ft(n,"date");if(i==="dayList"){if(Wo(e,t,r,o)!=="value")return;let s=e.value;(!Array.isArray(s)||!s.every(a=>typeof a=="string"&&Wf(a)))&&$(r,`${t}.value`,"invalid_day_list",`Date operator '${n}' requires an array of day names (${Po.join(", ")})`);return}if(Wo(e,t,r,o)!==null&&(Wd(e,n,t,r),!(typeof e.path=="string"||typeof e.bind=="string"))){if(te(e.value)){Vd(e.value,n,`${t}.value`,r,o);return}if(an.includes(n)){$(r,`${t}.value`,"invalid_date_range",Ge(n).message);return}if(i==="dateRange"){if(!pR(e.value)){$(r,`${t}.value`,"invalid_date_range",`Date operator '${n}' requires a two-item date range`);return}e.value.forEach((s,a)=>{te(s)?Vd(s,n,`${t}.value[${a}]`,r,o):de(s)&&!fr(s,He).isValid()&&$(r,`${t}.value[${a}]`,"invalid_date_value",`Date operator '${n}' value '${String(s)}' does not parse as a date`);});return}if(!de(e.value)){$(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' requires a date-like value`);return}fr(e.value,He).isValid()||$(r,`${t}.value`,"invalid_date_value",`Date operator '${n}' value '${String(e.value)}' does not parse as a date`);}},Kd=(e,t,r,o)=>{if(!yr(e)||Object.keys(e).length===0){$(r,t,"invalid_relative_units","Relative offset requires at least one unit");return}for(let[n,i]of Object.entries(e)){if(!Ds(n)){$(r,`${t}.${n}`,"invalid_relative_unit",`Unknown relative unit '${n}'`);continue}let s=yr(i)?Wo(i,`${t}.${n}`,r,o):"literal";if(s===null||s==="path"||s==="bind")continue;let a=s==="value"?i.value:i,l=Hs(a,n);l&&$(r,`${t}.${n}`,"invalid_relative_magnitude",l);}},Id=(e,t,r)=>{(typeof e!="string"||!Ri.includes(e))&&$(r,t,"invalid_period_unit",`Unknown period unit '${String(e)}'`);},Vd=(e,t,r,o,n)=>{let i=an.includes(t),s=$e(e);if(s){Kd(s[0],r,o,n);return}if(fn(e)){Id(Ni(e),r,o);return}if(js(e)){if(i){$(o,r,"invalid_date_range",Ge(t).message);return}let a="start"in e?e.start:e.end;if(!yr(a)||!fn(a)){$(o,r,"invalid_period_unit","start/end requires a this/last/next period");return}Id(Ni(a),r,o);return}$(o,r,"invalid_date_expression","Unrecognized date expression");},aR=(e,t,r)=>{"value"in e&&e.value!==void 0&&$(r,`${t}.value`,"unexpected_value","Rule does not accept value"),"path"in e&&e.path!==void 0&&$(r,`${t}.path`,"unexpected_path","Rule does not accept path"),"bind"in e&&e.bind!==void 0&&$(r,`${t}.bind`,"unexpected_bind","Rule does not accept bind");},Ji=e=>e==="toPrisma"?"prisma":e==="toSql"?"sql":"check",yr=e=>Te(e),lR=e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number",pR=e=>Array.isArray(e)&&e.length===2&&(de(e[0])||te(e[0]))&&(de(e[1])||te(e[1])),Gd=(e,t,r,o)=>{if(ke(e)&&r.target!=="check"&&(r.target==="toPrisma"&&Fo(e)!==null||$(r,t,`unsupported_${Ji(r.target)}_window`,yt(r.target).message)),"filter"in e&&e.filter!==void 0&&(zi(r,o,e.field),Bt(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)=>{(!yr(s)||typeof s.field!="string"||s.dir!=="asc"&&s.dir!=="desc")&&$(r,`${t}.orderBy[${a}]`,"invalid_order_by",'orderBy entries must be { field: string, dir: "asc" | "desc" }');}):$(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)&&$(r,`${t}.${i}`,`invalid_window_${i}`,`${i} must be a non-negative integer`);}},$=(e,t,r,o)=>{e.errors.push({path:t,code:r,message:o});};var fR=/[.:]/,ra=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"&&fR.test(s)&&t.push({path:`${Pe({fieldMap:r,model:n})}.${s}`,message:"contains forbidden character . or :",code:"invalid_field_name"});return hr(t)},zd=e=>Sn(ra(e),"validateFieldMaps");var et=e=>!Object.hasOwn(e,"parent"),xt=e=>{let t=[],r=new Set,o=e;for(;!et(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},tt=e=>et(e)?e:xt(e)[0].parent;var oa=(e,t)=>t.length?V([...t,e]):e,dR=e=>{if(pr(e).length)return false;let t=e.field,r=typeof t=="string"?L(t):null;try{return ue(r?{...e,field:r.path}:e,{})===!0}catch{return false}},na=(e,t)=>{if(!t.length)return e;if(!dR(e))return V([...t.flatMap(n=>n.clamps),e]);let[r,...o]=t;return It([V([...r.clamps,na(e,o)]),V([{field:r.prefix,operator:"notExists"},e])])},Qi=(e,t)=>lr(e,{rewrite:r=>{if(Me(r))return r;if(typeof r.field!="string"||r.field==="")throw new T(`narrowRule: cannot re-root a relation clamp of unknown shape under '${t}'`,"unsupported_clamp");let o=pr(r);if(o.length)throw new T(`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 T(`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(je(r)){for(let n of [r.condition,r.filter])if(n!==void 0&&Ko(n).escaping!==null)throw new T(`narrowRule: cannot re-root a relation clamp on '${r.field}' under '${t}': '${Ko(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}),ia=(e,t)=>t.flatMap(r=>{let o=j(e,r.map,r.model,r.relPath);if(o.whereClauses.length===0)return [];if(r.isList)throw new T(`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=>Qi(n,r.prefix))}]}),Hd=(e,t)=>ia(e,t).flatMap(r=>r.clamps),Qd=(e,t,r)=>{let o=De(e,r);if("outOfBounds"in o)throw new T(`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 We(t.lens.maps,o.scope,o.path,n==="$."?"":n)},uR=(e,t,r)=>{if(L(e))return Qd(e,t,r).hops;let o=r.length===1?"":`${"$".repeat(r.length)}.`;return r[0]?We(t.lens.maps,r[0],e,o).hops:[]},Jd=(e,t,r)=>{if(Me(e)||typeof e.field!="string"||e.field==="")return null;let{hops:o,end:n}=Qd(e.field,t,r);return {hops:o,below:n}},Ur=(e,t,r)=>lr(e,{below:(o,n)=>{let i=Jd(o,t,n);return i?i.below?[...n,i.below]:je(o)?[...n,null]:false:false},after:(o,n)=>{let i=Jd(o,t,n);if(!i)return o;let s=Hd(t,pr(o).flatMap(d=>uR(d,t,n))),a=i.below;if(!a||!je(o))return oa(na(o,ia(t,i.hops)),s);let l=[...j(t,a.mapName,a.modelName,a.relPath).whereClauses,...Hd(t,Mo(o).flatMap(d=>We(t.lens.maps,a,d).hops))],f=o.condition===void 0||o.arrayOperator===P.all||ke(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])),oa(na(p,ia(t,i.hops.slice(0,-1))),s)}},[r]),Go=(e,t)=>{let r=M(t),o=j(r,r.lens.mapName,r.lens.model,[]),n=Ur(e,r,{mapName:r.lens.mapName,modelName:r.lens.model,relPath:[]});return oa(n,o.whereClauses)};var sa=(e,t)=>{let r=Dr(e,J.DateTime,t);return typeof r=="number"&&!Number.isNaN(new Date(r).getTime())?r:void 0},cR=(e,t,r)=>o=>{if(o==null)return o;let n=sa(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()},zo=(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?Ye(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)===J.DateTime){let l=cR(e.field,o,n());return Array.isArray(t)?t.map(l):l(t)}if(e.coerceType===void 0&&s===J.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&&(Ke.includes(s)||s===J.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===J.Boolean?"boolean":"number"}, or stamp coerceType: '${s}'.`);return e.coerceType!==void 0&&Vf.includes(e.coerceType)?Dr(t,e.coerceType,e.coerceType===J.DateTime?n():void 0):t};var Zd=e=>Array.isArray(e)?e.flatMap(Zd):[e],bn=e=>e.value===void 0?null:Zd(e.value),mR=e=>sa(e)!==void 0,gR=/^-?\d+(\.\d+)?$/,yR={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"&&gR.test(e)},Boolean:{expected:"a boolean",fits:e=>typeof e=="boolean"},DateTime:{expected:"a date",fits:mR},Json:{expected:"a value",fits:()=>true},Bytes:{expected:"a value",fits:()=>true}},hR=e=>typeof e=="string"?`'${e}'`:typeof e=="object"&&e!==null?JSON.stringify(e):String(e),Zi=(e,t)=>{let r="coerceType"in e?e.coerceType:void 0,o=r??t;if(o===void 0||o===J.Json)return [];let n="operator"in e?e.operator:e.dateOperator,i=xo(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===J.DateTime:Ke.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(qf.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}=yR[o],p=u=>{try{return f(Dr(u,o))}catch{return false}},d=u=>f(u)||r!==void 0&&p(u);return (bn(e)??[]).filter(u=>u!==null&&!d(u)).map(u=>({path:e.field,code:"invalid_value",message:`value ${hR(u)} does not fit ${a} (expected ${l})`}))},Yd=(e,t,r)=>{if(r.isList===true||Le(r))return null;let o=q(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 ${Ye(r)??r.type} value`;return {path:e,code:"invalid_array_operator",message:o}};var wR=(e,t,r,o)=>Y(e,(n,i)=>{let s=ie(n);if(s===null)return o.push({path:typeof n.field=="string"?n.field:"",code:"ambiguous_condition",message:gt().message}),false;if(Me(n))return;let a=n,l=w=>{let R=De(w,i);return "outOfBounds"in R?(o.push({path:w,code:"scope_out_of_bounds",message:R.outOfBounds}),null):{scope:R.scope,field:R.path}},f=i[i.length-1],p=true,d=null;if("field"in a&&typeof a.field=="string"&&a.field!==""){let w=Qo(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?Xi(d.terminalEffect,d.terminalFieldName):null;for(let{ref:w,role:R}of Us(a)){let b=L(w)?l(w):{scope:Et(t),field:w};if(!b||b.scope.open)continue;let S=Ho(t,b.scope,b.field);if(!S){o.push({path:w,...Yi(t,b.scope,b.field,R==="value"?"path (comparison ref) does not resolve through the narrowed lens":"offset or magnitude ref does not resolve through the narrowed lens")});continue}if(q(S.entry)){o.push({path:w,code:"not_in_lens",message:"a value ref reads a column, not a relation"});continue}let E=Ye(S.entry);if(R==="value"||R==="shift"||E===void 0)continue;(R==="whole"?jf.includes(E):Ke.includes(E))||o.push({path:w,code:"not_in_lens",message:`${R==="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=Yd(a.field,a.arrayOperator,u);if(w)return o.push(w),false}if(u&&q(u)&&(s==="field"||s==="date")&&(u.isList||!Vt(a))){let w=a.field;return o.push({path:w,code:"operator_kind_mismatch",message:(u.isList?Ei(w):ir(w)).message}),false}if(!u?.isList&&(s==="field"||s==="date")&&o.push(...Zi(a,u?Ye(u):void 0)),!f.open)for(let w of Mo(a))w!==""&&!Ho(t,f,w)&&o.push({path:w,...Yi(t,f,w,"an orderBy or aggregate field does not resolve through the narrowed lens")});if(h&&"operator"in a&&m){let w=bn(a);if(w){let R=new Set(h),b=g?`enum '${c}'`:`field '${m}'`;for(let S of w)typeof S=="string"&&!R.has(S)&&o.push({path:m,code:"value_not_allowed",message:`value '${S}' is not in the allowed set for ${b} (allowed: ${[...R].join(", ")})`});}}return [...i,f]},[r]),Rn=(e,t,r,o,n)=>{let i=[];return wR(e,t,{mapName:r,modelName:o,relPath:n,open:false},i),i},Jo=(e,t)=>{let r=M(t);try{let o=Rn(e,r,r.lens.mapName,r.lens.model,[]);return o.length===0&&Go(e,t),hr(o)}catch(o){if(!(o instanceof T))throw o;return hr([{path:"",code:o.code,message:o.message}])}};var En=e=>e===void 0?void 0:Array.isArray(e)?e:[e],$n=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&("where"in e||"label"in e||"groupBy"in e||"from"in e),wr=e=>{if($n(e))return e;if(typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0)throw SR();return {where:e}},SR=()=>new T("sources: {} is not a Condition \u2014 use `true` for an unconstrained source","invalid_source"),pa=["__offpath__"],Xd=new WeakMap,bR=(e,t)=>{if(!t)return new Map;let r=JSON.stringify([On(t.parent),On(e.maps),e.mapName,e.model,t.mapDefaults??null]),o=Xd.get(t);if(o?.fingerprint===r)return o.trees;let n=new Map;return Xd.set(t,{fingerprint:r,trees:n}),n},eu=new WeakMap,RR=0,On=e=>{let t=eu.get(e);return t===void 0&&(t=RR++,eu.set(e,t)),t},ce="\0",OR=e=>{let t=Object.entries(e.fields);return {relations:new Set(t.filter(([,r])=>q(r)).map(([r])=>r)),gated:t.filter(([,r])=>r.options!==void 0||r.kind==="enum"||r.values!==void 0)}},es=e=>e?String(On(e)):"",M=e=>{let t=tt(e),r=et(e)?[]:xt(e);return {lens:t,chain:r,origin:r[0],memo:{trees:bR(t,r[0]),vetted:new Set,effects:new Map,places:new Map,models:new Map,refs:new Map,compiles:new Map}}},ts=(e,t)=>e===null?new Set(t):new Set(t.filter(r=>e.has(r))),xR=(e,t)=>{if(t.picks&&(e.picks=ts(e.picks,t.picks)),t.omits)for(let r of t.omits)e.omits.add(r);},ou=(e,t,r)=>{e.set(t,ts(e.get(t)??null,r));},nu=(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))ou(e,o,n);if(r.enumOmits)for(let[o,n]of Object.entries(r.enumOmits))nu(t,o,n);},aa=(e,t,r)=>JSON.stringify([e,t,r]),$R=(e,t,r,o,n,i,s,a)=>{if(s&&xR(e,t),t.where!==void 0&&i&&(n(t.where),e.whereClauses.push(r(t.where)),(a?e.modelWheres:e.pathWheres).push(t.where)),t.sources)for(let[l,f]of Object.entries(t.sources)){let p=wr(f),d=e.sources.get(l)??[],u=e.sourceWheres.get(l)??[];p.where!==void 0&&i&&(n(p.where,true),d.push(r(p.where)),u.push(p.where)),e.sources.set(l,d),e.sourceWheres.set(l,u);let m=En(p.groupBy);for(let[g,c,h]of [["label",p.label,e.sourceLabels.get(l)],["groupBy",m,e.sourceGroupBys.get(l)]]){if(c===void 0)continue;let w=aa(l,g,c);h!==void 0&&aa(l,g,h)===w||e.sourceDeclaredAt.set(w,o);}p.label!==void 0&&e.sourceLabels.set(l,p.label),m!==void 0&&e.sourceGroupBys.set(l,m),p.from==="mapDefaults"&&!e.sourcesFromMapDefaults.has(l)&&e.sourcesFromMapDefaults.set(l,o);}},T=class extends Error{constructor(r,o){super(r);this.code=o;}code;name="LensRefusal"},fa=e=>new T(`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"),PR=(e,t,r)=>Rn(e,t,r.mapName,r.modelName,r.relPath),vR=e=>new T(`a later layer's clamp reads what its parent does not show: '${e.path}' ${e.message}`,e.code),da=e=>new T(`the scope ref '${e}' climbs out of the clamp: a clamp reads its own row ('$.'), literals and binds`,"scope_out_of_bounds"),Ko=e=>{let t=null,r=null;return Y(e,(o,n)=>{if(Me(o))return;let i=pr(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 je(o)?n+1:void 0},1),{bare:t,escaping:r}},la=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},o=[r];if(t.relPath.length>0)for(let i of We(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},xn=(e,t)=>{let r=e;for(let o of t)r=O(r?.relations,o);return r},ua=(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=xn(o(s),t.relPath.slice(i));a&&n.push(a);}return {defaults:n,path:xn(e.root,t.relPath)}},NR=(e,t,r,o)=>{let n=xn(t.root,r.relPath),i=[r.relPath.join(ce),Object.keys(n?.relations??{}).join(ce),(n?.omits??[]).join(ce)].join(`${ce}${ce}`),s=o.get(i);if(s)return s;let a=new Map,l={lens:e},f=la(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=A(O(e.maps,u.mapName),u.modelName)?.fields??{},{defaults:c,path:h}=ua(t,u,la(l,u)),w=new Set(c.flatMap(S=>Object.keys(S.relations??{}))),R=new Set([...c,...h?[h]:[]].flatMap(S=>S.omits??[])),b=[];for(let[S,E]of Object.entries(g)){if(!w.has(S)||R.has(S)||h?.relations!==void 0&&Object.hasOwn(h.relations,S))continue;let x=Ze(E,u.mapName);if(!x||!A(O(e.maps,x.mapName),x.modelName))continue;let U=`${x.mapName}:${x.modelName}`;p.has(U)||(p.add(U),b.push(S),d.push({at:{...x,relPath:[...u.relPath,S]},below:[...m,S]}));}a.set(m.join("."),b);}return o.set(i,a),a},AR=(e,t,r,o)=>{if(!o)return ua(t,r,null).defaults.flatMap(f=>Object.keys(f.relations??{}));let n=r.relPath.length;for(;n>0&&xn(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(xn(t.root,r.relPath)?.relations??{}):[],...a]},Pn=(e,t,r)=>{let o=t;for(let n of We(e.lens.maps,t,r).hops){let i=n.relPath[n.relPath.length-1];if(!j(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},j=(e,t,r,o)=>{let n=e.memo?tu(e,t,r,o):null,i=n===null?void 0:e.memo?.effects.get(n);if(i){if(!e.unvetted&&i.unchecked){for(let D of i.unchecked)D();i.unchecked=null;}return i.effect}let s=[],a={picks:null,omits:new Set,enumValuesByField:new Map,whereClauses:[],pathWheres:[],modelWheres:[],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=A(l,r);if(!f)return a;let p=e.memo?.models.get(f);p||(p=OR(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=`${es(u)}${ce}${t}${ce}${r}${ce}${o.join(ce)}`,g=e.memo?.places.get(m);if(!g){let D=la(e,d);g={trail:D,turnedOn:u?AR(e,u,d,D):[]},e.memo?.places.set(m,g);}let{trail:c}=g,h=new Map,w=new Map,R=new Map,b=new Map,S=D=>D,E=0,x=()=>{},U=true,pe=true,N=(D,I=false)=>{$R(a,D,S,E,x,U,pe,I),ER(h,w,D);};for(let[D,I]of e.chain.entries()){E=D;let Or={...e,clamp:false,skipClampsOf:void 0,skipHidingOf:void 0,chain:e.chain.slice(0,D)};U=I!==e.skipClampsOf,pe=I!==e.skipHidingOf,S=Z=>D===0?Z:Ur(Z,Or,{mapName:t,modelName:r,relPath:o});for(let[Z,me]of Object.entries(O(I.mapDefaults,t)?.enums??{}))me.picks&&ou(R,Z,me.picks),me.omits&&nu(b,Z,me.omits);let{defaults:Xo,path:xr}=ua(I,d,c),fe=D===0?null:Or,nt=Z=>(me,ge=false)=>{let xe=e.memo?.refs.get(me);if(xe||(xe=Ko(me),e.memo?.refs.set(me,xe)),xe.bare!==null&&!(Z&&!ge))throw fa(xe.bare);if(xe.escaping!==null)throw da(xe.escaping);if(!fe)return;let Ga=()=>{let Dn=typeof me=="object"&&me!==null?`${On(me)}${ce}${tu(fe,t,r,o)}`:null;if(Dn!==null&&fe.memo?.vetted.has(Dn))return;let[za]=PR(me,fe,d);if(za)throw vR(za);Dn!==null&&fe.memo?.vetted.add(Dn);};e.unvetted?s.push(Ga):Ga();};x=nt(false);let Hr=O(O(I.mapDefaults,t)?.models,r);for(let Z of Xo)N(Z,Z===Hr);xr&&(x=nt(o.length===0&&c!==null),N(xr));}if(u&&e.chain.includes(u))for(let D of g.turnedOn)a.relationFields.has(D)&&!a.omits.has(D)&&a.relations.add(D);for(let[D,I]of p.gated){let Or=I.kind==="enum",xr=I.options?.map(Z=>Z.value)??(Or?jr(I,l?.enums):I.values);if(!xr)continue;let fe=xr;if(Or){let Z=R.get(I.type),me=b.get(I.type);Z&&(fe=fe.filter(ge=>Z.has(ge))),me&&(fe=fe.filter(ge=>!me.has(ge)));}let nt=h.get(D),Hr=w.get(D);nt&&(fe=fe.filter(Z=>nt.has(Z))),Hr&&(fe=fe.filter(Z=>!Hr.has(Z))),a.enumValuesByField.set(D,fe);}return n!==null&&e.memo?.effects.set(n,{effect:a,unchecked:s.length?s:null}),a},tu=(e,t,r,o)=>{let n=ru.get(e);if(n===void 0){n=`${es(e.origin)}${ce}${es(e.skipClampsOf)}${ce}${es(e.skipHidingOf)}${ce}`;for(let i of e.chain)n+=`${On(i)},`;ru.set(e,n);}return `${n}${ce}${t}${ce}${r}${ce}${o.join(ce)}`},ru=new WeakMap,Wt=e=>{let t=[],r=(o,n)=>{let i=O(e.lens.maps,o.mapName);if(!A(i,o.modelName))return;let s=j(e,o.mapName,o.modelName,o.relPath);t.push({path:n,at:o,effect:s});for(let a of s.relations){let l=be(i,o.modelName,a),f=l&&Ze(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},rs=(e,t,r,o)=>j(e,t,r,pa).sources.has(o),os=(e,t,r,o)=>new T(`source '${o}' at '${e}' offers mapDefaults.${t}.models.${r}.sources.${o}, which no layer declares`,"invalid_source"),$t=(e,t)=>e.omits.has(t)?false:e.relationFields.has(t)?e.relations.has(t):!(e.picks!==null&&!e.picks.has(t)),Xi=(e,t)=>e.enumValuesByField.get(t)??null,Kr=(e,t,r)=>{let o=r.split("."),n=[],i=[];for(let{index:s,field:a,at:l,entry:f,next:p}of ur(e.lens.maps,t,r)){if(!f)return {resolution:{outcome:"missing",index:s,hops:n},effects:i};let d=j(e,l.mapName,l.modelName,l.relPath);if(!(e.clamp&&q(f)?!d.omits.has(a):$t(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||Le(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}},Zo=(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(aa(o,n,i)),a=(p,d)=>Kr(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=>Pn(e,r,p)===null&&(a(l,p)||a(f,p)))},Ho=(e,t,r)=>{let{resolution:o,effects:n}=Kr(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}},Yi=(e,t,r,o)=>{let{resolution:n}=Kr(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&&Ze(s.entry,s.mapName),f=l?{...l,relPath:a.relPath}:t,p=j(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\`)`}},Et=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[],open:false}),Qo=(e,t,r)=>{let o=De(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=Ho(e,o.scope,o.path);if(!n)return {issue:Yi(e,o.scope,o.path,"path does not resolve through the narrowed lens")};let i=Le(n.entry),s=Ze(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}},We=(e,t,r,o="")=>{let n=r.split("."),i=[],s=null;for(let{index:a,field:l,at:f,entry:p,next:d}of ur(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 ma="parent:",ga=e=>e.startsWith(ma),su=e=>ga(e)?e.slice(ma.length):e,ca=(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]=$n(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]=ca(i,t);r.relations=o;}return r},au=(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]=ca(a,t);r[o]=n.models?{...n,models:i}:n;}return {...e,root:e.root?ca(e.root,t):void 0,mapDefaults:e.mapDefaults?r:void 0}},ya=e=>{let t=[];return au(e,r=>(t.push(r),r)),t},iu=e=>{let t=new Set;for(let r of ya(e))for(let o of cn(r))ga(o)||t.add(o);return t},lu=e=>{let t=new Set;for(let r of xt(e))for(let o of ya(r))for(let n of cn(o,{required:true}))t.add(su(n));return [...t].sort()},pu=(e,t)=>{if(et(e))return e;let r={...t};for(let[o,n]of Object.entries(t))r[`${ma}${o}`]=n;return {...au(e,o=>Gs(o,r)),parent:pu(e.parent,t)}},fu=(e,t)=>pu(e,t),du=e=>{let t=[],r=new Set;for(let n of xt(e.parent))for(let i of iu(n))r.add(i);for(let n of iu(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 ya(e))for(let i of cn(n))ga(i)&&o.add(su(i));for(let n of o)r.has(n)||t.push(`bind 'parent:${n}' references an inherited binding no ancestor declares`);return t};var cu=(e,t)=>e===void 0?t:t===void 0?e:{all:[e,t]},TR=(e,t)=>{if(!e||!t)return e??t;let r={...e};for(let[o,n]of Object.entries(t)){let i=r[o];if(i===void 0){r[o]=n;continue}let s=wr(i),a=wr(n),l=cu(s.where,a.where);r[o]={...s,...a,...l===void 0?{}:{where:l}};}return r},mu=(e,t)=>{let r=cu(e?.where,t.where),o=TR(e?.sources,t.sources);return {...e,...r===void 0?{}:{where:r},...o?{sources:o}:{}}},CR=(e,t)=>{let r={...e?.models};for(let[o,n]of Object.entries(t))r[o]=mu(r[o],n);return {...e,models:r}},uu=(e,t)=>{let r={...e.mapDefaults};for(let[o,{models:n}]of Object.entries(t.mapDefaults??{}))r[o]=CR(r[o],n);return {...e,...t.root?{root:mu(e.root,t.root)}:{},...t.mapDefaults?{mapDefaults:r}:{}}},ha=(e,t)=>et(e)?uu({parent:e},t):et(e.parent)?uu(e,t):{...e,parent:ha(e.parent,t)};var gu=(e,t)=>{let r=M(t),o=(n,i)=>typeof n=="string"&&n!==""?Qo(r,i,n):null;return lr(e,{rewrite:(n,i)=>{if(ie(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"&&If.includes(a.type)?{...n,coerceType:a.type}:n},below:(n,i)=>{if(!je(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&&q(a)?[...i,s.next]:false}},[Et(r)])};var yu=({maps:e,bridges:t,mapName:r,model:o})=>({...ji({maps:e,bridges:t}),mapName:r,model:o});var MR=(e,t)=>Y(e,(r,o)=>{if(t.sources.add(o[o.length-1].mapName),Me(r)||typeof r.field!="string"||r.field==="")return;let n=Qo(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])},[Et(t.policy)]),hu=(e,t)=>{let o={policy:M(t),sources:new Set,bridgesCrossed:false};return MR(e,o),{sources:[...o.sources].sort(),bridgesCrossed:o.bridgesCrossed,supportedTargets:C.filter(n=>(n==="check"||!o.bridgesCrossed)&&Uo(e,{target:n,map:o.policy.lens,mapName:o.policy.lens.mapName,model:o.policy.lens.model}).ok),errors:Jo(e,t).errors}};var kR=new Set([Dt.scalar,Dt.ordered,Dt.array,Dt.dayList,Dt.dateValue]),LR=new Set([Dt.none,Dt.count]),_R=e=>{if(e.offset!==void 0||un(e).some(({source:r})=>r.value===void 0))return {values:[],dynamic:true};let t=xo(e);return t?LR.has(t.valueShape)?{values:[],dynamic:false}:kR.has(t.valueShape)?"value"in e?{values:bn(e)??[],dynamic:false}:{values:[],dynamic:false}:{values:[],dynamic:true}:{values:[],dynamic:true}},DR=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)}`,wu=(e,t)=>{let r=M(t),o=r.lens.model,n=new Map,i=new Map,s=(l,f)=>{if(l.length===0)return;let p=Ho(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}`,R=n.get(w);R||(R={path:h,mapName:d,model:u,field:c,values:[],dynamic:false},n.set(w,R));let b=_R(f);b.dynamic&&(R.dynamic=true);let S=i.get(w)??new Set;i.set(w,S);for(let E of b.values){let x=DR(E);S.has(x)||(S.add(x),R.values.push(E));}},a=(l,f)=>{let p=De(l,f);if(!("outOfBounds"in p))return [...p.scope,...p.path.split(".")]};return Y(e,(l,f)=>{if(Me(l))return;let p=typeof l.field=="string"?a(l.field,f):f.at(-1);return p?(!je(l)&&typeof l.field=="string"&&s(p,l),[...f,p]):false},[[]]),[...n.values()]};var ns=(e,t,r,o)=>{let n=FR(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 T||i instanceof F)throw i;try{o(e,n.options);}catch{throw i}throw new T(`${r}: the lens's clamps on this rule have no ${r} form \u2014 ${i.message}`,"unsupported_target")}},FR=(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 F(`${r}: pass \`lens\` or \`map\` / \`mapName\` / \`model\`, not both \u2014 the lens names its own`);let n=Jo(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=tt(o);return {condition:Go(e,o),options:{...t,lens:void 0,map:i,mapName:i.mapName,model:i.model}}};var is=(e,t,r,o)=>{if(!Nf.includes(e.operator))throw new Error(`'${e.operator}' does not apply to the enum '${e.field}'; compare its values with equals / in.`);let n=ne(e.caseInsensitive),i=jr(r,o?.enums),{values:s,hasNull:a}=Ve(mt.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 W.includes(e.operator)?{values:i.filter(d=>!p.includes(d)),matchesNull:!a}:{values:p,matchesNull:a}};var X=e=>`"${e.replace(/"/g,'""')}"`;var we=e=>e.replace(/\\/g,"\\\\").replace(/%/g,"\\%").replace(/_/g,"\\_"),wa=(e,t,r=false)=>{let[o,...n]=e.split("."),i=t?`${X(t)}.${X(o)}`:X(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 jR=["@prisma/client/runtime/client","@prisma/client/runtime/library"],ss,IR=()=>{if(ss!==void 0)return ss;for(let e of VR())for(let t of jR)try{let r=e(t);if(r.AnyNull!==void 0)return ss=r.AnyNull,ss}catch{}},VR=()=>{let e=[];try{let t=globalThis.process?.getBuiltinModule?.("module")?.createRequire;t&&e.push(t(import.meta.url));}catch{}return typeof xs=="function"&&e.push(xs),e},Su=()=>{let e=Lt.get("prismaOptions.anyNull")??IR();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 bu=(e,t)=>{let r=Lr(Rt(t));return r===null?null:kr(e,r)},Ru=(e,t,r)=>{if(e===null)return null;let o=Lo(Rt(t)),n=o&&Mr(o[0],wn);return !o||!n?null:ar(wt(e),n,o[1],Vo(r).timeZone).toDate()};var Ra=(e,t)=>_e(e,t?.map,t?.model),Pt=e=>e==="json"||e==="json-path",Sr=e=>Pt(e)?Su():null,Gr=(e,t)=>t?.map&&t?.model?Rd(e,t.map,t.model).map(r=>Wr(r,{is:null})):[],Oa=(e,t)=>{let r=Ra(e,t);return [...Pt(r)||r==="list"||Q(e.field,t?.map,t?.model)?.isRequired===false?[rt(e.field,{equals:Sr(r)},t)]:[],...Gr(e.field,t)]},as=(e,t,r,o)=>{if(r.mode&&Pt(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(!Pt(o))return {[e]:we(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}},xa=(e,t,r,o)=>{let n=t?.datasource?.provider??Lt.get("prismaOptions.datasource.provider");return ne(e.caseInsensitive)&&xf(n)&&gr(r,o)?{mode:"insensitive"}:{}},Ou=(e,t)=>{if(e==="list")return [{isEmpty:true}];let r=t?[{equals:""}]:[];return Pt(e)?[...r,{equals:[]}]:r},xu=e=>"isEmpty"in e?{isEmpty:false}:{not:e.equals},Ea=(e,t,r,o,n)=>{let i=a=>rt(e,a,n),s=Ou(t,o);return r?B([i({equals:Sr(t)}),...Gr(e,n),...s.map(a=>i(a))]):Be([...t==="list"?[]:[i({not:Sr(t)})],...s.map(a=>i(xu(a)))])},BR=(e,t)=>{if(!Vt(e))throw ir(e.field);let o=(n=>rt(e.field,n,t))({is:{}});return ue({...e,field:"relation"},{relation:null})===true?ve(o):o},WR=(e,t)=>Q(e.field,t?.map,t?.model),ba=Xe(),UR=(e,t,r)=>{if(t==="list"||Pt(t)||WR(e,r)?.isRequired!==true)return null;let o=e.field.split(".").slice(0,-1).join(".");return o?rt(o,{is:{}},r):ba},Eu=(e,t)=>{let r=c=>rt(e.field,c,t),o=Ra(e,t),n=()=>Oa(e,t),i=Ii(e,t?.map,t?.model);if(o==="relation")return BR(e,t);let s=UR(e,o,t),a=s&&(s===ba?Ot():ve(s)),l=c=>s&&a?ue({field:"f",operator:c,value:null},{f:null})===true?a:s:null;if(s&&a&&Vt(e)){let c=Ou(o,i);return e.operator===y.isEmpty?B([a,...c.map(r)]):e.operator===y.notEmpty?Be([s,...c.map(h=>r(xu(h)))]):l(e.operator)}switch(e.operator){case y.exists:case y.notExists:{if(e.operator===y.exists)return o==="list"?ve(r({equals:null})):r({not:Sr(o)});let c=n();return c.length?B(c):r({equals:Sr(o)})}case y.isEmpty:case y.notEmpty:return Ea(e.field,o,e.operator===y.isEmpty,i,t)}if(Je(e)){let c=Wi(e,t?.map,t?.model,Ad(t),Td(t));if("problem"in c)throw Ui(e.path,c.problem);let h=r({[c.key]:c.ref}),w=(E,x)=>x.isRequired===false?rt(E,{equals:null},t):null,R=(E,x)=>x.isRequired===false?rt(E,{not:null},t):ba,b=w(e.field,c.field),S=w(c.columnPath,c.column);return e.operator===y.equals?b&&S?B([h,Be([b,S])]):h:e.operator===y.notEquals?B([ve(h),...b?[Be([b,R(c.columnPath,c.column)])]:[],...S?[Be([R(e.field,c.field),S])]:[]]):h}let f=$u(e,t);if(he(e,f))return B(W.includes(e.operator)?n():[]);if(f===null&&mt.includes(e.operator)){let c=l(e.operator);if(c)return c}if(o==="list"&&rr.includes(e.operator)&&Array.isArray(f))return se(Di(e,f),t);if(o==="list"&&Array.isArray(f)&&f.includes(null))throw _("toPrisma",`A list holding null in '${e.field}'`);if(o==="list"&&ne(e.caseInsensitive)&&gr("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?is(e,f,p,t?.map):null;if(d){let c=r({in:d.values});return d.matchesNull?B([c,...n()]):c}if(rr.includes(e.operator)){let{values:c,hasNull:h}=Ve(f),w=xa(e,t,o,c),R=Pt(o)?e.operator===y.in?B(c.map(b=>r(as("equals",b,w,o)))):Be(c.map(b=>r(as("not",b,w,o)))):r({[e.operator]:c,...w});return e.operator===y.in?h?B([R,...n()]):R:h?Be([R,s??r({not:Sr(o)})]):B([R,...n()])}let u=c=>{if(!Pt(o)||c!==y.contains)return r(vn({...e,operator:c},t));let h=r({array_contains:[KR(e,f,t,o)]});return typeof f=="string"?B([r(vn({...e,operator:c},t)),h]):h};if(e.operator===y.contains)return u(y.contains);let m=_f.includes(e.operator)?ln[e.operator]:$o.includes(e.operator)?y.between:void 0;if(m){if(Pt(o))throw _("toPrisma",`'${e.operator}' on the Json value '${e.field}'`,"it keeps values of other types");return B([ve(u(m)),...n()])}let g=r(vn(e,t));return e.operator===y.equals&&f===null?B([g,...Gr(e.field,t)]):e.operator===y.notEquals&&o==="list"?f===null?ve(r({equals:null})):B([ve(r({equals:f})),...n()]):e.operator===y.notEquals&&f!==null?B([g,...n()]):g},$u=(e,t)=>{let r=zo(e,Rt(e),cr(e.field,t?.map,t?.model),"toPrisma",()=>Vo(t).timeZone);return e.offset===void 0?r:bu(r,e.offset)},vn=(e,t)=>{let r=$i(e);if(r)throw r;let o=Ra(e,t),n=()=>$u(e,t),i=f=>xa(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=Pt(o)?GR[f]:f,u=typeof p=="string"?we(p):p;return {[d]:u,...i(p)}},a=Pi(e.operator,n());if(a)throw a;let l=er(e.operator,"field");if(l&&Eo.includes(e.operator))return {[l]:n()};switch(e.operator){case y.equals:{let f=n()??Sr(o);return as("equals",f,i(f),o)}case y.notEquals:{let f=n()??Sr(o);return as("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]=Ie(Qe(n(),e.operator));return {gte:f,lte:p}}default:throw new Error(`Operator '${e.operator}' is built by buildFieldRule`)}},KR=(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(xa(e,r,o,t).mode)throw _("toPrisma",`A case-insensitive member of the Json array '${e.field}'`);return t},GR={contains:"string_contains",startsWith:"string_starts_with",endsWith:"string_ends_with"},rt=(e,t,r)=>{if(!r?.map||!r?.model)return Wr(e,t);let o=re(e,r.map,r.model),n=o.hops.find(s=>s.entry.isList);if(n)throw No(e,n);let i=e.split(".");switch(o.kind){case "fallback":case "direct":return Wr(e,t);case "bridge":return qr();case "past-scalar":throw Ao(e,o.column);case "json-path":{let s={path:o.jsonPath,...t},a=i.slice(0,o.stopIndex).join(".");return Wr(a,s)}}};var Pu=(e,t,r)=>{if(ke(e)){let o=Fo(e);if(!o)throw yt("toPrisma");return se(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(!ct.includes(e.aggregate.mode))throw sr(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 zR(e,t,r)},zR=(e,t,r)=>{let o=Bo(e.field,t.map,t.model,"Aggregate rules");if(e.condition&&bt(e.condition,t.map,o.target))return qr();let n=e.aggregate.field??"",i=be(t.map,o.target,n);if(!i)throw new Error(`aggregate.field '${n}' does not exist on model '${o.target}'.`);if(i.kind!=="scalar"||Le(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=qo(t)(e);if(s===null||he(s,s.value))return Ot();let a=yn(s,[{}],void 0,{},{value:0})===true,l=a?qe(s):s,f=vn(l,t),p={[e.aggregate.mode==="sum"?"_sum":"_avg"]:f},d=$o.includes(l.operator)?ve({[n]:p}):{[n]:p},u=e.condition?se(e.condition,Vr({...t,model:o.target},t,true),r):Xe(),m=Gi(r,o,u,d,a);return a?B([m,...Gr(e.field,t)]):m};var Nu=(e,t,r)=>{if(!e.field)throw new Error("toPrisma: count-based ArrayRule requires a field path");let o=Bo(e.field,t.map,t.model,"Count operators");if(e.condition===void 0)throw ze(e.arrayOperator);if(e.count===void 0)throw vo(e.arrayOperator);let n=e.count;if(e.arrayOperator===P.atLeast&&n===0)return Xe();let i=se(e.condition,Vr({...t,model:o.target},t,true),r),s=$a(e),a=s?vu(P.atLeast,e.arrayOperator===P.atMost?n+1:1,o.targetKey):vu(e.arrayOperator,n,o.targetKey);return Gi(r,o,i,a,s)},vu=(e,t,r)=>{let o=er(e,"array");if(!o)throw new Error(`'${e}' does not count`);return {[r]:{_count:{[o]:t}}}};var Au=(e,t,r)=>{let o=HR(e,t,r);return e.field&&$a(e)&&!Tu(e.field,t)?B([o,...Gr(e.field,t)]):o},$a=e=>ue({...e,field:"items"},{items:[]})===true,HR=(e,t,r)=>{if(ke(e)){let i=Fo(e);if(!i)throw yt("toPrisma");return se(i,t,r)}if(e.condition!==void 0&&!Lf.includes(e.arrayOperator)&&bt(e.condition,t?.map,Cu(e,t)?.model))return qr();if(or.includes(e.arrayOperator)){if(t?.map&&t?.model&&r)return Nu(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 xi("toPrisma");let{field:o}=e;if(Tu(o,t))return JR(e,o,_e({field:o},t?.map,t?.model),t);let n=QR(e,t,r);return rt(e.field,n,t)},Tu=(e,t)=>{let r=_e({field:e},t?.map,t?.model);return r==="list"||r==="json"||r==="json-path"},JR=(e,t,r,o)=>{switch(e.arrayOperator){case P.empty:case P.notEmpty:return Ea(t,r,e.arrayOperator===P.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)}},Cu=(e,t)=>{if(!t?.map||!t?.model||!e.field)return t&&Vr({...t});let r=hn(e.field,t.map,t.model);return Vr(r?{...t,model:r}:{...t})},QR=(e,t,r)=>{let o=Cu(e,t);switch(e.arrayOperator){case P.all:if(!e.condition)throw ze(e.arrayOperator);return {none:se(qe(e.condition,qo(o)),o,r)};case P.any:if(!e.condition)throw ze(e.arrayOperator);return {some:se(e.condition,o,r)};case P.none:if(!e.condition)throw ze(e.arrayOperator);return {none:se(e.condition,o,r)};case P.empty:return {none:{}};case P.notEmpty:return {some:{}};default:throw le(e.arrayOperator,"array")}};var Mu=(e,t)=>{let r=t?.map,o=_e({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&&!q(n)&&Ye(n)!==J.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=W.includes(e.dateOperator)?Oa(e,t):[],s=ZR(e,t);if(s===null)return B(i);let a=rt(e.field,s,t),l=$o.includes(e.dateOperator)?ve(a):a;return B([l,...i])},ZR=(e,t)=>{let r=Vo(t),o=wn,n=m=>e.offset===void 0?m:Ru(m,e.offset,t),i=m=>{if(m==null)return null;if(!te(m))return Li(m,r.timeZone);let g=ht(m,o);return g&&To(g,e.dateOperator,r).toDate()},s=()=>Rt(e),a=()=>n(i(s())),l=()=>{let m=s();if(m==null)return null;let g=Qe(m,e.dateOperator).map(i);if(g[0]===null||g[1]===null)return null;let[c,h]=Ie(g).map(n);return c&&h?[c,h]:null},f=()=>{let m=s();if(m==null)return null;if(!te(m))throw Ge(e.dateOperator);let g=ht(m,o);if(!g)return null;let[c,h]=Co(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=er(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 le(e.dateOperator,"date")}};var Pa=(e,t,r)=>{if(typeof e=="boolean")return e?{}:Ot();di(e,"toPrisma");let o=ie(e);(o==="field"||o==="date")&&Vi(e.field,t?.map,t?.model);let n=e;switch(o){case "all":return _d(n,t,r);case "any":return Dd(n,t,r);case "if":return Fd(n,t,r);case "array":return Au(n,t,r);case "aggregate":return Pu(n,t,r);case "date":return Mu(n,t);case "field":return Eu(n,t);default:throw gt()}};kd(Pa);var Lu=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=_u(t,i.model),a=ku(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 ku(o.where,o.refs,n,t)},_u=(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},YR=(e,t)=>{let r=_u(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},XR=(e,t)=>t.reduce((r,o)=>r!==null&&typeof r=="object"&&Object.hasOwn(r,o)?r[o]:void 0,e),va=(e,t,r)=>{if(t.length===0)return r;let[o,...n]=t,i=e,s=Array.isArray(e)?[...e]:{...i};return s[o]=va(i[o],n,r),s},ku=(e,t,r,o)=>{let n=e;for(let{path:i}of t??[]){let s=XR(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=va(n,i,r[a]);}else if(s&&typeof s.__field=="object"&&s.__field!==null)n=va(n,i,YR(o,s.__field));else throw new Error(`executePrismaPlan: no reference at the recorded location ${i.join(".")}`)}return n};var eO=e=>e?.map?{...e,map:Re(e.map,e.mapName,"toPrisma")}:e,Nn=(e,t)=>ns(e,t,"toPrisma",tO),tO=(e,t)=>{let r={steps:[]},o=Pa(e,eO(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 ls=(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]=Uo(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 T(`${o}: ${f}`,"unsupported_clamp")}if(n)return null;let s=false;for(let a of t)Y(a,l=>{("aggregate"in l||or.includes(l.arrayOperator))&&(s=true);});return s?new T(`${o} needs a counting step (executePrismaPlan), which a relation's where in a select can't run`,"unsupported_clamp"):null},ps=(e,t)=>{try{return t()}catch(r){throw r instanceof T||r instanceof F?r:new T(`${e}: ${r.message}`,"unsupported_clamp")}};var Du=(e,t)=>e===""?t:t===""?e:`${e}.${t}`,Ue=e=>{let t=new Set,r=n=>{n&&t.add(n);},o=(n,i)=>{let s=De(n,i);return "outOfBounds"in s?null:Du(s.scope,s.path)};return Y(e,(n,i)=>{if(Me(n))return;for(let l of pr(n))r(L(l)?o(l,i):l);let s=typeof n.field=="string"&&n.field!==""?o(n.field,i):null;if(r(s),!je(n))return;let a=s??i[i.length-1];for(let l of Mo(n))r(Du(a,l));return [...i,a]},[""]),[...t]};var Na=(e,t,r,o,n)=>{let i={};for(let[s,a]of Object.entries(o.fields)){if(!$t(t,s))continue;let l=t.enumValuesByField.get(s),f=n(s)?.filter(d=>l===void 0||l.includes(d.value)),p=Zo(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},Fu=(e,t,r,o,n)=>{let{mapName:i,modelName:s}=t,a=A(O(e.lens.maps,i),s),l=Na(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)$t(r,m)&&(f[m]=g);let p={};for(let[m,g]of r.sourceLabels)$t(r,m)&&Zo(e,r,t,m,"label")&&(p[m]=g);let d={};for(let[m,g]of r.sourceGroupBys)$t(r,m)&&Zo(e,r,t,m,"groupBy")&&(d[m]=g);let u={};for(let m of r.sourcesFromMapDefaults.keys()){if(!rs(e,i,s,m))throw os(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}},ju=e=>{let t=new Map;for(let r of e.sourceValues??[])t.set(`${r.path}|${r.field}`,r.options);return t},Iu=(e,t={})=>An(M(e),t),An=(e,t={})=>{let r=ju(t),o={};for(let{path:n,at:i,effect:s}of Wt(e))o[n]=Fu(e,i,s,n,r);return o},Vu=(e,t,r={})=>Aa(M(e),t,r),Aa=(e,t,r={})=>{let o={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};if(t!=="")for(let s of ur(e.lens.maps,o,t)){let a=j(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(!A(O(e.lens.maps,o.mapName),o.modelName))return null;let n=j(e,o.mapName,o.modelName,o.relPath),i=[e.lens.model,...o.relPath].join(".");return Fu(e,o,n,i,ju(r))};var fs=(e,t,r,o,n)=>{let i=e.split("."),{hops:s}=We(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=be(O(t,l.map),l.model,f);return p?q(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}'`},qu=(e,t,r,o,n,i,s,a)=>{let l=fs(n,e.lens.maps,t,r,i);if(l)throw new T(`${i} '${n}': ${l}`,"invalid_source");let{hops:f}=We(e.lens.maps,{mapName:t,modelName:r,relPath:o},n),p=f.slice(0,n.split(".").length-1);for(let d of p){let u=d.relPath.join(".");if(s.has(u))continue;s.add(u);let m=j(e,d.map,d.model,d.relPath);for(let g of m.whereClauses)a.push(Qi(g,d.prefix));}},rO=(e,t,r,o,n,i)=>{let s=[],a=new Set;for(let l of n)qu(e,t,r,o,l,"groupBy",a,s);return i?.includes(".")&&qu(e,t,r,o,i,"label",a,s),s},Tn=(e,t)=>{let r=ye(e,t);return r==null||typeof r=="object"?void 0:String(r)},ds=(e,t)=>{let r=[];for(let o of t){let n=Tn(e,o);if(n===void 0)return;r.push(n);}return r},Ta=(e,t)=>JSON.stringify([e??null,t]),oO=(e,t,r,o)=>{let n=Ta(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});},us=(e,t,r,o,n)=>{let i=ye(t,r),s=o==null?void 0:String(o);for(let a of Array.isArray(i)?i:[i])a==null||typeof a=="object"||oO(e,String(a),s,n);},cs=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})}),nO=(e,t,r,o,n)=>{let{hops:i}=re(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&&Pe(m)===l)return [...s.slice(0,i.length),u.on].join(".")}throw new T(`'${n}' crosses no bridge the lens declares on ${a}`,"not_in_lens")},ms=(e,t,r,o)=>{let n=Re(e,t,"toPrisma");return [...new Set(o.map(i=>mr(i,n,r)?nO(e,n,t,r,i):i))]},iO=(e,t,r,o)=>{if(t.length===0)return [];let n={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]},{hops:i,end:s}=We(e.lens.maps,n,t.join("."));if(!s)throw new T(`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=j(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&&be(c,u.modelName,t[p]);if(!h)throw new T(`source at '${t.join(".")}': '${t[p]}' isn't declared on ${u.modelName}`,"not_in_lens");let w=a[p+1],R=Pe({fieldMap:u.mapName,model:u.modelName}),b=h.kind==="bridge"?be(O(e.lens.maps,w.mapName),w.modelName,R):void 0,S=h.kind==="bridge"?b&&{field:R,entry:b}:c?Ki(c,u.modelName,t[p],h):null;if(!S&&g.length===0){d(null);continue}if(!S)throw new T(`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,Qi(E,S.field)]):x);}catch(x){throw x instanceof T?new T(`source at '${t.join(".")}': the clamps above can't be carried down to it \u2014 ${x.message}`,x.code):x}}return f===null?[]:[f]},Bu=e=>br(M(e)),br=(e,t=An(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=j(e,p.mapName,p.modelName,p.relPath),u=(d.sourceWheres.get(s)??[]).map(N=>Ur(N,e,p)),m=rO(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],R=[...iO(h===void 0?e:{...e,skipClampsOf:h},p.relPath,o(h),h===void 0&&!f),...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]],b=V([...i.whereClauses,...R]),S=V([...i.whereClauses,...u,...m,...g?[{field:s,operator:"in",value:[...g]}]:[]]),E=e.lens.bridges?.length?Re(e.lens,p.mapName,"toPrisma"):void 0,x=E?[...Ue(b),...a===void 0?[]:[a],...l??[]].find(N=>mr(N,E,p.modelName)):void 0,U=x!==void 0&&E?V(Ks(b).filter(N=>bt(N,E,p.modelName))):void 0,pe=ls(e,[...i.whereClauses,...R],p,`source '${s}' at '${n}'`,true);if(pe)throw pe;return {path:n,visit:i,field:s,...f&&{from:"mapDefaults"},...a!==void 0&&{label:a},...l!==void 0&&{groupBy:l},where:b,rowWhere:S,...x!==void 0&&{bridged:x},...U!==void 0&&{recheck:U}}}))};var ka=(e,t)=>{for(let r of t){let o=e;for(let n of r.split("."))o=qt(o,n,()=>({}));}return e},gs=(e,t)=>{for(let[r,o]of Object.entries(t))gs(qt(e,r,()=>({})),o);return e},La=e=>e.whereClauses.flatMap(Ue),Wu=(e,t)=>{let r=new Map;for(let o of t){if(o.from)continue;let n=o.path.split(".").slice(1).join("."),i=[o.field,...o.label===void 0?[]:[o.label],...o.groupBy??[],...Ue(o.rowWhere)];r.set(n,[...r.get(n)??[],...o.bridged===void 0?i:ms(e.lens,o.visit.mapName,o.visit.model,i)]);}return r},Uu=(e,t)=>e.get(t.relPath.join("."))??[],sO=(e,t,r)=>ka(gs({},r??{}),La(j(e,t.mapName,t.modelName,t.relPath))),Ku=e=>({mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]}),_a=(e,t,r)=>({...r,relPath:[...e.relPath,t]}),aO=(e,t,r,o)=>{if(!r.whereClauses.length)return;let n=V(r.whereClauses),i=ls(e,r.whereClauses,t,`toLensSelect: the clamp on '${t.relPath.join(".")}'`,false);if(i)throw i;if(e.inspect)return;let s=ps(`toLensSelect: the clamp on '${t.relPath.join(".")}'`,()=>Nn(n,{...o,map:e.lens,mapName:t.mapName,model:t.modelName})),{where:a}=s.steps[0];return Object.keys(a).length?a:void 0},lO=(e,t,r,o)=>{let n=A(e,o.type)?.fields??{},i=a=>{let l=a===void 0?void 0:O(n,a);return l&&!q(l)?a:void 0},s=e?Ki(e,t,r,o):null;return i(o.toFields?.[0])??i(s?.entry.fromFields?.[0])??i("id")},Gu=(e,t,r,o,n,i)=>{let s=A(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},a=j(e,t.mapName,t.modelName,t.relPath),l=r==="paths"?o:ka(gs({},o),[...La(a),...Uu(i,t)]),f={};for(let[p,d]of Object.entries(s)){let u=r!=="paths"&&$t(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=_a(t,p,{mapName:t.mapName,modelName:d.type}),h=Gu(e,c,g,m??{},n,i),w=d.isList&&g!=="paths"&&m===void 0?aO(e,c,j(e,c.mapName,c.modelName,c.relPath),n):void 0,R=Object.keys(h).length?void 0:lO(O(e.lens.maps,t.mapName),t.modelName,p,d),b=R===void 0?h:{[R]:true};Object.keys(b).length&&(f[p]={select:b,...w&&{where:w}});}return f},zu=(e,t={})=>Da(M(e),t),Da=(e,t={},r=br(e))=>{let o=Gu(e,Ku(e),"declared",{},t,Wu(e,r));if(!Object.values(o).some(n=>n===true)){let n=O(A(O(e.lens.maps,e.lens.mapName),e.lens.model)?.fields,"id");n&&!q(n)&&(o.id=true);}return {select:o}},Ca=(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,Ma=(e,t,r,o)=>{let n={},i=A(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?Ze(l,t.mapName):null;n[s]=f?Ca(r[s],p=>Ma(e,_a(t,s,f),p,a)):r[s];}return n},Hu=(e,t,r,o,n,i,s)=>{let a=j(e,t.mapName,t.modelName,t.relPath);if(!a.whereClauses.every(d=>ue(d,r,i)===true))return null;let l=A(O(e.lens.maps,t.mapName),t.modelName)?.fields??{},f=n?ka(gs({},o),[...La(a),...Uu(s,t)]):{},p={};for(let[d,u]of Object.entries(l)){if(!Object.hasOwn(r,d))continue;let m=O(f,d),g=Ze(u,t.mapName);if(!g){($t(a,d)||m!==void 0)&&(p[d]=r[d]);continue}let c=_a(t,d,g);if($t(a,d)){let h=!Array.isArray(r[d])||m!==void 0;p[d]=Ca(r[d],w=>Hu(e,c,w,m??{},n,i,s)??(n&&h?Ma(e,c,w,sO(e,c,m)):null));}else m!==void 0&&(p[d]=Ca(r[d],h=>Ma(e,c,h,m)));}return p},Ju=(e,t,{keepClampColumns:r=false,...o}={})=>{let n=M(e),i=Ku(n),s=r?Wu(n,br(n)):new Map;return t.flatMap(a=>{let l=Hu(n,i,a,{},r,o,s);return l===null?[]:[l]})};var pO="materializeSources needs fetched or keepClampColumns rows, not viewer rows",Fa=(e,t,r)=>new F(`${e}: a row at '${t}' ${r}${r.includes(":")?" \u2014 rows across a bridge hold the far side inline under its bridge field":""}`),Cn=(e,t,r,o,n,i=pO)=>{for(let s of n){let a=[r];for(let{index:l,field:f,entry:p,next:d}of ur(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 Fa(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 Fa(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 Fa(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;}}},ja=(e,t)=>{let r={mapName:e.lens.mapName,modelName:e.lens.model,relPath:[]};return [r,...We(e.lens.maps,r,t.split(".").slice(1).join(".")).hops.map(o=>({mapName:o.map,modelName:o.model,relPath:o.relPath}))]},fO=(e,t,r,o)=>{let n=r.split(".").slice(1),i=ja(e,r),s=(l,f)=>{let p=i[l],d=j(e,p.mapName,p.modelName,p.relPath).whereClauses,u=V(d),m=d.flatMap(Ue),g=[e.lens.model,...n.slice(0,l)].join(".");return f.filter(c=>(Cn(e,p,c,g,m),ue(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){Cn(e,i[l],u,d,[f]);let m=ye(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]}},Qu=(e,t,r)=>{let o=M(e);return br(o).map(({path:n,visit:i,field:s,from:a,label:l,groupBy:f,rowWhere:p})=>{if(a)throw new F(`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,...Ue(p),...l===void 0?[]:[l],...f??[]],u=new Map,m=fO(o,t,n,r);for(let g of m.rows)Cn(o,m.visit,g,n,d),ue(p,g,r)===true&&us(u,g,s,l===void 0?void 0:Tn(g,l),f===void 0?void 0:ds(g,f));return {path:n,mapName:i.mapName,model:i.model,field:s,options:cs(u)}})};var ys={value:"value",query:"query"},Zu=(e,t,r={})=>{let{rowShape:o="prisma",lens:n,order:i=ys.value,...s}=r,a=o==="sql",{recheck:l}=e,f=g=>false,p=g=>true;if(l!==void 0){if(n===void 0)throw new F(`materializeSourceQuery: '${e.path}.${e.field}' reads across a bridge \u2014 its rows are candidates; pass { lens } with rows holding the far side`);let g=M(n),c=ja(g,e.path).at(-1);if(!c||c.mapName!==e.mapName||c.modelName!==e.model)throw new F(`materializeSourceQuery: the lens doesn't reach ${e.mapName}:${e.model} at '${e.path}' \u2014 pass the lens the query was compiled from`);let h=Re(g.lens,e.mapName,"toPrisma");f=b=>h!==void 0&&mr(b,h,e.model);let w=[...Ue(l),...e.label!==void 0&&f(e.label)?[e.label]:[],...(e.groupBy??[]).filter(f)],R="materializeSourceQuery needs candidate rows holding the far side of each bridge the source reads";p=b=>(Cn(g,c,b,e.path,w,R),ue(l,b,s)===true);}let d=g=>e.label===void 0?void 0:a&&e.label.includes(".")&&!f(e.label)?g.__label:Tn(g,e.label),u=e.groupBy?.map((g,c)=>a&&!f(g)?`__group_${c}`:g),m=new Map;for(let g of t)p(g)&&us(m,g,e.field,d(g),u===void 0?void 0:ds(g,u));return {path:e.path,mapName:e.mapName,model:e.model,field:e.field,options:i===ys.query?[...m.values()]:cs(m)}};var dO=(e,t)=>`${e}::${t}`,uO=(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);},Yu=(e,t={})=>Ia(M(e),t),Ia=(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(Ta(d.groups,d.value),d);o.set(f,p);}let n=new Map;for(let{at:l,effect:f}of Wt(e)){let{mapName:p,modelName:d}=l,u=A(O(r.maps,p),d);if(!u)continue;let m=dO(p,d),g=n.get(m);g||(g={mapName:p,modelName:d,fields:new Map},n.set(m,g));let c=Na(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 R=w.groupBy,b=g.fields.get(h)?.groupBy;if(R!==void 0&&b!==void 0&&JSON.stringify(b)!==JSON.stringify(R))throw new T(`projectLens: '${d}.${h}' is grouped by different axes on different paths ([${b}] vs [${R}]) \u2014 one surface field cannot carry two partition namespaces`,"invalid_source");uO(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]={...A(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=be(O(i,f.fieldMap),f.model,Pe(p)),u=be(O(i,p.fieldMap),p.model,Pe(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 Xu=(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:fa(s).message});return}let{escaping:a}=i;if(a!==null){n.push({path:o,code:"scope_out_of_bounds",message:da(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 Rn(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}));}},cO=(e,t,r,o,n,i)=>{let s={...r,chain:[...r.chain,t]},a=new Set;for(let l of o){let f=j(s,l.mapName,l.modelName,l.relPath);for(let[p,d]of Object.entries(e.sources??{})){let u=wr(d);for(let m of ["label","groupBy"]){if(u[m]===void 0||a.has(`${p}|${m}`))continue;let g=m==="label"?u.label:En(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(R=>Pn(s,l,R)).find(R=>R!==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}Zo(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`}));}}}},mO=(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},gO=(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||!q(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 R=q(w);if(R&&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 b=mO(h,R,t,r);b&&f.push({path:`${l}.${c}`,code:"not_visible",message:`'${h}' ${b}`});}let g=(c,h,w)=>{let R=O(i,h);if(!R){f.push({path:`${l}.${c}`,code:"not_in_lens",message:`field '${h}' not on model`});return}if(R.kind!=="enum"){f.push({path:`${l}.${c}`,code:"wrong_kind",message:`field '${h}' is not an enum field`});return}let b=jr(R,a);for(let S of w)b&&!b.includes(S)&&f.push({path:`${l}.${c}.${h}`,code:"value_not_allowed",message:`'${S}' is not a known value of enum '${R.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);Xu(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(q(w)){f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`'${c}' is a relation: a source offers a column's values`});continue}let R;try{R=wr(h);}catch(x){if(!(x instanceof T))throw x;f.push({path:`${l}.sources.${c}`,code:x.code,message:x.message});continue}let b=R.from;if(b!==void 0){let x=b!=="mapDefaults"?`from takes 'mapDefaults', not '${String(b)}'`:u?"a mapDefaults source is what a path source's from: 'mapDefaults' points at; it can't point itself":R.label!==void 0||R.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=R.label?.includes(".")?R.label:void 0;if(R.label!==void 0)if(S){let x=fs(S,o,n,s,"label");x&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${x}`});}else {let x=O(i,R.label);x?q(x)&&f.push({path:`${l}.sources.${c}`,code:"wrong_kind",message:`label '${R.label}' is a relation, not a column`}):f.push({path:`${l}.sources.${c}`,code:"not_in_lens",message:`label column '${R.label}' not on model`});}let E=En(R.groupBy);if(E!==void 0||S!==void 0){let x=/^__(group(_\d+)?|label)$/;(x.test(c)||R.label!==void 0&&x.test(R.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 U of E){let pe=fs(U,o,n,s,"groupBy");pe&&f.push({path:`${l}.sources.${c}`,code:"invalid_source",message:`${pe}`});}let x=JSON.stringify(E);for(let U of t){let pe=O(U.sources,c);if(pe===void 0)continue;let N=En(wr(pe).groupBy);N!==void 0&&JSON.stringify(N)!==x&&f.push({path:`${l}.sources.${c}`,code:"not_visible",message:`groupBy [${E}] conflicts with an ancestor layer's groupBy [${N}]`});}}Xu(R.where,p,d,`${l}.sources.${c}`,f);}},yO=(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=ts(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`});}},hO=(e,t,r,o,n,i,s)=>{let a=j(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=jr(d,n)??[],m=Xi(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)`});}},ec=(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,f,p)=>{let d=O(n,i),u=A(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],R={mapName:i,modelName:s,relPath:pa};gO(e,w,c,n,i,u.fields,s,d?.enums,a,l,f,m?p.isDefault?[R,...p.parent]:p.parent:p.composed,p.isDefault),hO(e,p.isDefault?f:{...f,chain:[...f.chain,{parent:r.parent,mapDefaults:r.mapDefaults}],unvetted:true},p.isDefault?R:p.parent[0]??R,u.fields,d?.enums,a,l),cO(e,r,f,p.composed,a,l);let b={...f,chain:[...f.chain,r]};if(!p.isDefault)for(let[S,E]of Object.entries(e.sources??{}))!$n(E)||E.from!=="mapDefaults"||rs(b,i,s,S)||l.push({path:`${a}.sources.${S}`,code:"invalid_source",message:os([tt(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(!q(x)){l.push({path:`${a}.relations`,code:"wrong_kind",message:`'${S}' is not a relation (kind=${x.kind})`});continue}let U=I=>j(f,I.mapName,I.modelName,I.relPath).relations.has(S),pe=I=>j(g,I.mapName,I.modelName,I.relPath).relations.has(S);if(!m&&!(p.isDefault?p.parent.some(U):p.parent.every(U))){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 N=Ze(x,i);if(!N)continue;if(!A(O(n,N.mapName),N.modelName)){l.push({path:`${a}.relations.${S}`,code:"not_in_lens",message:"target model not found in lens"});continue}let D=t.map(I=>O(I.relations,S)).filter(I=>I!==void 0);Va(E,D,r,o,n,N.mapName,N.modelName,`${a}.relations.${S}`,l,f,{parent:ec(p.isDefault?p.parent.filter(U):p.parent,S,N.modelName,N.mapName),composed:ec(p.composed.filter(pe),S,N.modelName,N.mapName),isDefault:p.isDefault});}},qa=e=>{let t=[];try{wO(e,t);}catch(r){if(!(r instanceof T))throw r;t.some(o=>o.code===r.code)||t.push({path:"",code:r.code,message:r.message});}return hr(t)},wO=(e,t)=>{let r=tt(e),o=xt(e.parent),n=M(e.parent),i=Wt(n),s=[],a=u=>{try{u();}catch(m){if(!(m instanceof T))throw m;s.push(m);}},l=null,f=()=>(l??=Wt({...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(!A(g,h)){t.push({path:`mapDefaults.${u}.models.${h}`,code:"not_in_lens",message:"not in fieldMap"});continue}let b=o.map(x=>O(O(x.mapDefaults,u)?.models,h)).filter(x=>x!==void 0),S=x=>x.map(({at:U})=>U).filter(U=>U.mapName===u&&U.modelName===h),E=[];a(()=>{E=S(f());}),a(()=>Va(w,b,e,o,r.maps,u,h,`mapDefaults.${u}.models.${h}`,t,n,{parent:S(i),composed:E,isDefault:!0}));}m.enums&&yO(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(!A(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 du(e))t.push({path:"bindings",code:"invalid_binding",message:u});let p={...n,chain:[...n.chain,e],inspect:true},d;a(()=>{d=br(p,An(p));}),a(()=>Ia(p)),a(()=>Da(p,{},d)),a(()=>{let u=new Map;for(let{at:m}of f()){u.set(m.relPath.join("."),m),a(()=>Aa(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=be(O(r.maps,c.mapName),c.modelName,g)?.isList?{field:g,arrayOperator:"any",condition:!0}:{field:g,operator:"exists"};a(()=>Ur(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});},hs=e=>Sn(qa(e),"validateNarrowing");function tc(e,{by:t="path",...r}={}){return t==="model"?Yu(e,r):Iu(e,r)}var rc=(e,t,r,o={})=>{let n=M(e),{resolution:i}=Kr(n,Et(n),r);if(i.outcome!=="resolved")return {ok:false,reason:i.outcome};let{hops:s,terminal:a,jsonSubPath:l}=i;if(q(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"&&j(n,d.mapName,d.model,d.relPath).whereClauses.every(m=>ue(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?ye(m,l.join(".")):m};p=f(s[d+1],m)?m:null;}return {ok:true,value:null}};var SO=e=>"maps"in e,oc=(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(SO(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};hs(u),n=u;}return n},nc=(e,t)=>{let r=et(e)?[]:xt(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 [{...tt(e),id:t[0],parents:[]},...r.map(({parent:o,...n},i)=>({...n,id:t[i+1],parents:t.slice(0,i+1)}))]};var ic=e=>e instanceof Date?e.toISOString():Array.isArray(e)&&e.some(t=>t instanceof Date)?e.map(ic):e,k=(e,t)=>(e.params.push(ic(t)),`$${++e.paramIndex}`);var Ut=(e,t,{jsonb:r=false}={})=>{let o=()=>({sql:wa(e,void 0,r),shape:e.includes(".")?"json-path":"unknown"});if(!t.map||!t.currentModel||!t.currentAlias)return o();let n=re(e,t.map,t.currentModel);if(n.kind==="past-scalar")throw Ao(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 No(e,i);let s=t.currentAlias;for(let p of n.hops){let d=sc(t,s,p);if(!d)return o();s=d;}let a=Io(n);if(n.kind==="direct"&&n.entry.kind==="object"){let p={field:n.column,entry:n.entry,from:n.model},d=Br(t.map,n.model,n.entry),u=sc(t,s,p);return !d||!u?o():{sql:`${X(u)}.${X(d[0].there)}`,shape:a}}let l=n.kind==="json-path"?[n.column,...n.jsonPath]:[n.column],f=wa(l.join("."),s,r);return {sql:a==="json"&&!r?`NULLIF(${f}, 'null'::jsonb)`:f,shape:a}},vt=(e,t,r)=>Ut(e,t,r).sql,sc=(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=bO(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},bO=(e,t,r,o,n)=>{let i=o.type,s=A(e,i)?.dbName??i,a=Br(e,t,o);if(!a)return null;let l=a.map(({here:f,there:p})=>`${X(n)}.${X(p)} = ${X(r)}.${X(f)}`).join(" AND ");return `LEFT JOIN ${X(s)} AS ${X(n)} ON ${l}`};var Kt={type:"value",value:null},Gt=e=>e.type==="value"&&(e.value===null||e.value===void 0),RO=(e,t)=>{let r=L(e)??{depth:1,path:e};if(r.depth>1)throw new Error(sn(e,"toSql"));let o=Ut(r.path,t);if(o.shape==="relation")throw new Error(`'${e}' is a relation; a value ref reads a column`);return {type:"column",...o}},Oe=(e,t)=>dn(e,{value:r=>({type:"value",value:r}),path:r=>RO(r,t),bind:(r,o)=>({type:"value",value:Ti(r,o,"toSql")})}),zr=e=>t=>{let r=Oe(t,e);if(r.type==="column")throw new Error(`'${t.path}' is a row ref`);return r.value},ot=e=>_r(e.dateConfig??{},zr(e));var OO={lt:"<",lte:"<=",gt:">",gte:">=",equals:"="},Yo=(e,t)=>{let r=er(e,t);return r?{symbol:OO[r],negated:W.includes(e)}:void 0},ac=(e,t)=>e.type==="column"?e.sql:k(t,e.value),Ne=(e,t)=>`(${t} OR ${e} IS NULL)`,Nt=(e,t,r=true)=>t&&r?`${e} IS NULL`:"FALSE",ws=(e,t,r,o,n)=>{if(Gt(r))return Nt(e,o);let i=`${e} ${t} ${ac(r,n)}`;return o?Ne(e,i):i},Mn=(e,t,r,o,n=true)=>{if(!t||t.some(Gt))return Nt(e,r,n);let[i,s]=t.map(d=>ac(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?Ne(e,p):p};var pc=()=>{let e=Lt.get("sql.dialect");if(!Rf(e))throw new F(`toWhereSql: sql.dialect '${String(e)}' is not a SQL dialect \u2014 ${Object.values(wo).join(", ")} are`);return e},ae=e=>new Error(`toWhereSql: ${e} has no SQL form here \u2014 it writes ${_s.join(", ")}, all and any.`),fc=(e,t)=>Ss(e,t,""),Ss=(e,t,r)=>{pc();let{columns:o,map:n,mapName:i,model:s}=t??{};if(typeof o!="object"||o===null)throw new F("toWhereSql: `columns` maps each field path to its SQL");if(!n||!s)throw new F("toWhereSql: `map` and `model` are required \u2014 a literal is typed by its column, and a date, Json or list value is refused by it");let a=Re(n,i,"toWhereSql");if(!A(a,s))throw new F(`toWhereSql: the map has no model '${s}'`);return Ba(e,{map:a,model:s,column:l=>{let f=`${r}${l}`,p=Object.hasOwn(o,f)?o[f]:void 0;if(typeof p!="string"||p==="")throw new F(`toWhereSql: no column for '${f}' in \`columns\``);return p}})},Ba=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";let r=e;switch(ie(r)){case "all":{let o=r.all;return o.length?`(${o.map(n=>Ba(n,t)).join(" AND ")})`:"TRUE"}case "any":{let o=r.any;return o.length?`(${o.map(n=>Ba(n,t)).join(" OR ")})`:"FALSE"}case "field":return xO(e,t);case "if":throw ae("if / then / else");case "array":throw ae(`arrayOperator '${String(r.arrayOperator)}'`);case "aggregate":throw ae("aggregate");case "date":throw ae(`dateOperator '${String(r.dateOperator)}'`);default:throw ae("a condition that is not exactly one node kind")}},xO=(e,t)=>{if(!_s.includes(e.operator))throw ae(`operator '${e.operator}'`);if(e.bind!==void 0)throw ae(`bind '${e.bind}' on '${e.field}'`);if(e.path!==void 0)throw ae(`comparing '${e.field}' with the column '${e.path}'`);if(e.offset!==void 0)throw ae(`an offset on '${e.field}'`);if(e.coerceType!==void 0)throw ae(`coerceType on '${e.field}'`);if(ne(e.caseInsensitive))throw ae(`a case-insensitive comparison on '${e.field}'`);if(L(e.field))throw ae(`the scoped field '${e.field}'`);let r=re(e.field,t.map,t.model),o=EO(e,r,t),[n]=r.kind==="direct"?Zi(e,Ye(r.entry)):[];if(n)throw new Error(`toWhereSql: ${n.message}`);if(e.operator===y.exists)return `${o} IS NOT NULL`;if(e.operator===y.notExists)return `${o} IS NULL`;if(e.value===void 0)throw new Error("No value, path or bind specified");let i=zo(e,e.value,r,"toWhereSql",()=>He);if(he(e,i))return Nt(o,W.includes(e.operator));let s=a=>$O(a,e.field);switch(e.operator){case y.equals:return i===null?`${o} IS NULL`:`${o} = ${s(i)}`;case y.notEquals:return i===null?`${o} IS NOT NULL`:Ne(o,`${o} <> ${s(i)}`);case y.in:{let{values:a,hasNull:l}=Ve(lc(e,i));if(!a.length)return l?`${o} IS NULL`:"FALSE";let f=`${o} IN (${a.map(s).join(", ")})`;return l?Ne(o,f):f}default:{let{values:a,hasNull:l}=Ve(lc(e,i));if(!a.length)return l?`${o} IS NOT NULL`:"TRUE";let f=`${o} NOT IN (${a.map(s).join(", ")})`;return l?`(${f} AND ${o} IS NOT NULL)`:Ne(o,f)}}},EO=(e,t,r)=>{if(t.kind==="fallback")throw new Error(`toWhereSql: '${e.field}' is not a field the map declares on ${r.model}`);if(t.kind==="past-scalar")throw Ao(e.field,t.column);if(t.kind==="bridge")throw ae(`'${e.field}', which crosses a bridge`);let o=t.hops.find(s=>s.entry.isList);if(o)throw No(e.field,o);let n=Io(t),i=Vt(e);if(n==="relation"&&t.kind==="direct"){if(!i)throw ir(e.field);let s=Br(r.map,t.model,t.entry);if(!s)throw ae(`'${e.field}', whose relation keys the map does not declare`);return r.column(`${e.field}.${s[0].there}`)}if(n==="relations")throw ae(`the list '${e.field}'`);if(n==="json"||n==="json-path")throw ae(`the Json value '${e.field}'`);if(i)return r.column(e.field);if(n==="instant")throw ae(`the date '${e.field}'`);if(n==="list")throw ae(`the list '${e.field}'`);return r.column(e.field)},lc=(e,t)=>{if(!Array.isArray(t))throw new Error(`toWhereSql: '${e.operator}' on '${e.field}' takes a list of values`);return t},$O=(e,t)=>{if(typeof e=="string"){let r=e.replace(/'/g,"''");return `'${pc()===wo.mysql?r.replace(/\\/g,"\\\\"):r}'`}if(typeof e=="number"&&Number.isFinite(e)||typeof e=="bigint")return String(e);if(typeof e=="boolean")return e?"TRUE":"FALSE";throw ae(`the value ${e instanceof Date?"a Date":JSON.stringify(e)} for '${t}'`)};var PO=(e,t,r)=>{Y(r,o=>{if(typeof o.field!="string")return;let n=Pn(e,t,o.field);if(n!==null)throw new Error(`toLensWhereSql: '${o.field}' at ${t.relPath.length?`'${t.relPath.join(".")}'`:"the root"} crosses '${n}', a relation the lens hides \u2014 a hop's clamps are reported at its own path, so a where may only cross hops the lens shows`)});},dc=(e,{columns:t})=>{let r=M(e),o={root:null,relations:{},mapDefaults:{}};for(let{at:n,effect:i}of Wt(r)){let s={columns:t,map:r.lens,mapName:n.mapName,model:n.modelName};for(let a of [...i.pathWheres,...i.modelWheres])PO(r,n,a);if(i.pathWheres.length){let a=n.relPath.join("."),l=Ss(V(i.pathWheres),s,a?`${a}.`:"");a?o.relations[a]=l:o.root=l;}if(i.modelWheres.length){let a=qt(o.mapDefaults,n.mapName,()=>({models:{}}));O(a.models,n.modelName)===void 0&&(a.models[n.modelName]=Ss(V(i.modelWheres),s,`${n.modelName}.`));}}return o};var uc=e=>Array.isArray(e)?e.some(uc):typeof e=="object"&&e!==null,cc=(e,t,r,o)=>{let n=`NULLIF(${t}, 'null'::jsonb)`,i=`jsonb_typeof(${n})`,s=`(${n} #>> '{}')`,a=b=>`${k(o,JSON.stringify(b))}::jsonb`,l=ne(e.caseInsensitive),f=b=>l?`LOWER(${b})`:b,p=W.includes(e.operator),d=b=>Ne(n,`NOT (${b})`);if(he(e,r))return Nt(n,p);let u=Pi(e.operator,r);if(u)throw u;let m=b=>{if(uc(b))throw _("toSql",`A case-insensitive comparison of '${e.field}' with a list holding objects`);return a(Fr(b))},g=b=>l&&typeof b=="string"?`(${i} = 'string' AND LOWER(${s}) = LOWER(${k(o,b)}))`:l&&Array.isArray(b)?`(${i} = 'array' AND LOWER(${n}::text)::jsonb = ${m(b)})`:`${n} = ${a(b)}`,c=b=>`(${i} = 'string' AND ${f(s)} LIKE ${f(k(o,b))})`,h=b=>{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 b=="string"?S(`jsonb_typeof(e) = 'string' AND LOWER(e #>> '{}') = LOWER(${k(o,b)})`):l&&Array.isArray(b)?S(`LOWER(e::text)::jsonb = ${m(b)}`):typeof b=="object"&&b!==null?S(`e = ${a(b)}`):`(${i} = 'array' AND ${n} @> ${a([b])})`},w=b=>typeof b=="string"?`(${c(`%${we(b)}%`)} OR ${h(b)})`:h(b);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:b,hasNull:S}=Ve(r),E=b.length?`(${b.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[b,S]=r,E=`(${i} = jsonb_typeof(${a(b)}) AND ${n} BETWEEN ${a(b)} 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(`${we(String(r))}%`);case y.endsWith:return c(`%${we(String(r))}`);case y.notStartsWith:return d(c(`${we(String(r))}%`));case y.notEndsWith:return d(c(`%${we(String(r))}`));case y.matches:case y.notMatches:{let{source:b,caseInsensitive:S}=dr(r),E=`(${i} = 'string' AND ${s} ~${S?"*":""} ${k(o,gn(b))})`;return e.operator===y.matches?E:d(E)}}let R=Yo(e.operator,"field")?.symbol;if(R)return `(${i} = jsonb_typeof(${a(r)}) AND ${n} ${R} ${a(r)})`;throw new Error(`Operator '${e.operator}' is not supported on a Json value in SQL`)};var mc=e=>typeof e=="object"&&Tr(e)!==null,kn=({sql:e,shape:t},r)=>{if(t!=="json-path"&&t!=="text")return `to_timestamp(EXTRACT(EPOCH FROM ${e}))`;let o=k(r,ot(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)`},bs=e=>Object.values(e).some(mc),NO=(e,t,r)=>{let o=Nr(r),n=o?"int":"double precision";if(typeof e=="number"||!mc(e)){let a=Js(e,zr(t),r);return `${k(t,a)}::${n}`}let i=Oe(e,t).sql;return `(CASE WHEN ${o?`${i} >= 0 AND ${i} = trunc(${i})`:`${i} >= 0`} THEN ${i} END)::${n}`},AO=(e,t)=>`make_interval(${Bf.flatMap(o=>{let n=Object.keys(e).filter(i=>e[i]!==void 0&&nr[i].interval===o).map(i=>{let s=NO(e[i],t,i),{factor:a}=nr[i];return a===1?s:`${a} * ${s}`});return n.length?[`${o} => ${n.join(" + ")}`]:[]}).join(", ")})`,Ln=(e,t,r,o)=>{let n=ot(o).timeZone;if(e.type==="value"&&!bs(t)){let l=Mr(t,zr(o));return e.value===null||e.value===void 0||l===null?Kt:{type:"value",value:ar(wt(e.value),l,r,n).toDate()}}let i=e.type==="column"?e.computed?e.sql:kn(e,o):`${k(o,e.value??null)}::timestamptz`,s=k(o,n);return {type:"column",computed:true,sql:`(((${i} AT TIME ZONE ${s}) ${r===1?"+":"-"} ${AO(t,o)}) AT TIME ZONE ${s})`}};var Wa=(e,t,r)=>{let o=Oe(t,r);if(e.type==="value"&&o.type==="value"){let i=Lr(o.value);return i===null?Kt:{type:"value",value:kr(e.value,i)}}let n=(i,s)=>i.type==="column"?`(${i.sql})::double precision`:`${k(r,s(i.value)??null)}::double precision`;return {type:"column",computed:true,sql:`(${n(e,i=>i)} + ${n(o,Lr)})`}},gc=(e,t,r)=>{if(Gt(e))return Kt;let o=Oe(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=Lo(o.value);return n===null?Kt:Ln(e,...n,r)};var yc,hc=e=>{yc=e;},Rr=(e,t)=>yc(e,t);var Os=(e,t,r)=>{let o=$i(e);if(o)throw o;let n=r===void 0?Ut(e.field,t):{sql:r,shape:"scalar"};if(n.shape==="relation"&&!Vt(e))throw ir(e.field);let i=r===void 0,s=Je(e)&&t.map&&t.currentModel?(L(e.path)??{path:e.path}).path:null;if(s!==null){let S=jo(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"&&!tr.includes(e.operator)){let S=Sc(e,t),E=Q(e.field,t.map,t.currentModel),x=S!==Rs&&E&&!he(e,S)?is(e,S,E,t.map):null;if(x){let U=`${n.sql}::text = ANY(${k(t,x.values)})`;return x.matchesNull?Ne(n.sql,U):U}}let a=n.shape==="enum"&&!tr.includes(e.operator)&&s===null?{...n,sql:`${n.sql}::text`}:n;if((n.shape==="json"||n.shape==="json-path")&&!tr.includes(e.operator)){let S=Sc(e,t);if(S===Rs)throw new Error(`The Json value '${e.field}' compares against an operand known when compiling, not one read per row.`);return cc(e,vt(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(Fe.includes(e.operator)){let S=Oc(e,t);return S?.forEach(f),Mn(a.sql,S,W.includes(e.operator),t,i)}let p=bc(e,t);if(f(p),p.type==="column"&&Ft(e.operator,"field")==="string"&&!Ir(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=Yo(e.operator,"field");if(u)return ws(d,u.symbol,p,false,t);if(p.type==="value"&&he(e,p.value))return Nt(d,W.includes(e.operator),i);let m=p.type==="column"&&p.computed===true,g=ne(e.caseInsensitive)&&(p.type==="column"?!m&&Ir(n.shape)&&Ir(p.shape):gr(n.shape,p.value)),c=S=>g?`LOWER(${S})`:S,h=S=>g?Fr(S):S;if(n.shape==="list"&&p.type==="column"&&ut.includes(e.operator)){if(Q(e.field,t.map,t.currentModel)?.type!=="String"||!Ir(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=ne(e.caseInsensitive)&&Ir(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=ne(e.caseInsensitive)&&gr("text",p.value);if(ut.includes(e.operator)){let E=k(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(rr.includes(e.operator)&&Array.isArray(p.value))return Rr(Di(e,p.value),t);if(TO(e.operator))throw new Error(`'${e.operator}' does not apply to the list '${e.field}'; test its members with contains.`);if(S&&mt.includes(e.operator)&&Array.isArray(p.value)){let E=k(t,Fr(p.value)),x=`(${d} IS NOT NULL AND ARRAY(SELECT LOWER(e) FROM unnest(${d}) AS e) = ${E})`;return e.operator===y.equals?x:Ne(d,`NOT ${x}`)}}let w=p.type==="value"?p.value:void 0,R=p.type==="column"?p.sql:void 0;if(R!==void 0&&(rr.includes(e.operator)||["pattern","string"].includes(Ft(e.operator,"field"))))throw _("toSql",`'${e.operator}' against an operand read per row ('${e.path}')`);let b=S=>i?Ne(d,S):S;switch(e.operator){case y.equals:return m?`${d} = ${R}`:R!==void 0?`${c(d)} IS NOT DISTINCT FROM ${c(R)}`:w===null?`${d} IS NULL`:`${c(d)} = ${c(k(t,w))}`;case y.notEquals:return m?b(`${d} <> ${R}`):R!==void 0?`${c(d)} IS DISTINCT FROM ${c(R)}`:w===null?`${d} IS NOT NULL`:b(`${c(d)} <> ${c(k(t,w))}`);case y.in:{let{values:S,hasNull:E}=Ve(w);if(!S.length)return E?`${d} IS NULL`:"FALSE";let x=`${c(d)} = ANY(${k(t,h(S))})`;return E?b(x):x}case y.notIn:{let{values:S,hasNull:E}=Ve(w);if(!S.length)return E?`${d} IS NOT NULL`:"TRUE";let x=`${c(d)} <> ALL(${k(t,h(S))})`;return E?`(${x} AND ${d} IS NOT NULL)`:b(x)}case y.contains:return `${c(d)} LIKE ${c(k(t,`%${we(String(w))}%`))}`;case y.notContains:return b(`${c(d)} NOT LIKE ${c(k(t,`%${we(String(w))}%`))}`);case y.startsWith:return `${c(d)} LIKE ${c(k(t,`${we(String(w))}%`))}`;case y.endsWith:return `${c(d)} LIKE ${c(k(t,`%${we(String(w))}`))}`;case y.notStartsWith:return b(`${c(d)} NOT LIKE ${c(k(t,`${we(String(w))}%`))}`);case y.notEndsWith:return b(`${c(d)} NOT LIKE ${c(k(t,`%${we(String(w))}`))}`);case y.matches:return wc(d,w,false,t);case y.notMatches:return b(wc(d,w,true,t));case y.isEmpty:case y.notEmpty:return Ua(e.field,n,e.operator===y.isEmpty,t,Ii(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}`)}},bc=(e,t)=>{if(tr.includes(e.operator))return {type:"value",value:void 0};let r=Rc(e,Oe(e,t),t);return e.offset===void 0?r:Wa(r,e.offset,t)},Rc=(e,t,r)=>t.type==="column"?t:{type:"value",value:zo(e,t.value,cr(e.field,r.map,r.currentModel),"toSql",()=>ot(r).timeZone)},Oc=(e,t)=>{let r=Rc(e,Oe(e,t),t),o=r.type==="value"?r.value:void 0;if(o==null)return null;let n=Qe(o,e.operator);return n.some(i=>i!=null&&!de(i))&&ko(o,e.operator),Ie(n).map(i=>{let s={type:"value",value:i};return e.offset===void 0?s:Wa(s,e.offset,t)})},wc=(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}=dr(t);return `${e} ${r?"!":""}~${i?"*":""} ${k(o,gn(n))}`},Rs=Symbol("not known"),Sc=(e,t)=>{if(Fe.includes(e.operator)){let o=Oc(e,t);return o?o.every(n=>n.type==="value")?o.map(n=>n.value):Rs:null}let r=bc(e,t);return r.type==="value"?r.value:Rs},Ua=(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=vt(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`},TO=e=>Ft(e,"field")==="string"&&!ut.includes(e);var xc=(e,t)=>{if(ke(e))throw yt("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=CO(e,t);return Os(e,t,r)},CO=(e,t)=>{let{mode:r,field:o}=e.aggregate;if(!ct.includes(r))throw sr(r);let n=r==="sum"?"SUM":"AVG",i=_e({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=vt(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 Ec=(e,t)=>{if(ke(e))throw yt("toSql");if(!e.field)throw xi("toSql");if(_e({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 P.empty:case P.notEmpty:{let o=Ut(e.field,t),n=e.arrayOperator===P.empty;if(o.shape==="list")return Ua(e.field,o,n,t,false);let i=vt(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 le(e.arrayOperator,"array")}};var MO=(e,t)=>e.type==="column"&&!e.computed?{type:"column",sql:kn(e,t),computed:true}:e,$c=e=>e===void 0||e==="instant"||e==="text"||e==="json-path"||e==="unknown",Pc=e=>_("toSql",`A date rule on '${e}'`,"it is not a date column"),vc=(e,t,r)=>{let o=t.some(i=>i.type==="column"),n=e.shape==="json-path"||e.shape==="text";return o||n?{lhs:kn(e,r),ends:t.map(i=>MO(i,r))}:{lhs:e.sql,ends:t}},Nc=(e,t)=>{let r=Ut(e.field,t);if(!$c(r.shape))throw Pc(e.field);let o=Oe(e,t);if(o.type==="column"&&!$c(o.shape))throw Pc(String(e.path??e.field));let n=Yo(e.dateOperator,"date");if(n){let{lhs:s,ends:a}=vc(r,[LO(e,t)],t);return ws(s,n.symbol,a[0],n.negated,t)}let i=(s,a)=>{if(!s)return Mn(r.sql,null,a,t);let{lhs:l,ends:f}=vc(r,s,t);return Mn(l,f,a,t)};switch(e.dateOperator){case v.within:case v.notWithin:return i(_O(e,t),W.includes(e.dateOperator));case v.between:case v.notBetween:return i(DO(e,t),W.includes(e.dateOperator));case v.dayIn:case v.dayNotIn:{let s=e.dateOperator===v.dayNotIn,a=Oe(e,t);if(a.type==="column")throw _("toSql",`A weekday list read from the row ('${e.path}')`);let l=Qs(a.value);if(l===null)return Nt(r.sql,s);let f=k(t,ot(t).timeZone),p=k(t,l),d=`EXTRACT(DOW FROM (${kn(r,t)} AT TIME ZONE ${f}))`;return e.dateOperator===v.dayIn?`${d} = ANY(${p})`:Ne(r.sql,`${d} <> ALL(${p})`)}default:throw le(e.dateOperator,"date")}},Ac=e=>({type:"value",value:pn(ot(e)).toDate()}),kO=(e,t,r)=>{let o=$e(e);if(o&&bs(o[0]))return Ln(Ac(r),...o,r);let n=ht(e,zr(r));return n===null?Kt:{type:"value",value:To(n,t,ot(r)).toDate()}},Tc=(e,t,r)=>e==null?Kt:te(e)?kO(e,t,r):{type:"value",value:Li(e,ot(r).timeZone)},Cc=(e,t,r)=>t.offset===void 0?e:gc(e,t.offset,r),LO=(e,t)=>{let r=Oe(e,t),o=r.type==="column"?r:Tc(r.value,e.dateOperator,t);return Cc(o,e,t)},_O=(e,t)=>{let r=Oe(e,t);if(Gt(r))return null;if(r.type==="column"||!te(r.value))throw Ge(e.dateOperator);let o=$e(r.value);if(o&&bs(o[0])){let s=Ac(t),a=Ln(s,...o,t);return o[1]===-1?[a,s]:[s,a]}let n=ht(r.value,zr(t));if(n===null)return null;let i=Co(n,ot(t));return [{type:"value",value:i[0].toDate()},{type:"value",value:i[1].toDate()}]},DO=(e,t)=>{let r=Oe(e,t);if(Gt(r))return null;let o=r.type==="value"?r.value:void 0,n=Qe(o,e.dateOperator).map(l=>Tc(l,e.dateOperator,t));if(n.some(Gt))return null;let[i,s]=n;return (i.type==="value"&&s.type==="value"?Ie([i.value,s.value]).map(l=>({type:"value",value:l})):n).map(l=>Cc(l,e,t))};var Mc=(e,t)=>e.all.length===0?"TRUE":`(${e.all.map(o=>Rr(o,t)).join(" AND ")})`,kc=(e,t)=>e.any.length===0?"FALSE":`(${e.any.map(o=>Rr(o,t)).join(" OR ")})`,Lc=(e,t)=>{if(bt(e,t.map,t.currentModel))return "TRUE";let r=Rr(e.if,t),o=Rr(e.then,t);if(e.else!==void 0){let n=Rr(e.else,t);return `(((${r}) IS NOT TRUE OR ${o}) AND ((${r}) IS TRUE OR ${n}))`}return `((${r}) IS NOT TRUE OR ${o})`};var _n=(e,t)=>{if(typeof e=="boolean")return e?"TRUE":"FALSE";if(di(e,"toSql"),"field"in e&&typeof e.field=="string"&&t.map&&t.currentModel&&mr(e.field,t.map,t.currentModel))return "TRUE";let r=ie(e);(r==="field"||r==="date")&&Vi(e.field,t.map,t.currentModel);let o=e;switch(r){case "all":return Mc(o,t);case "any":return kc(o,t);case "if":return Lc(o,t);case "array":return Ec(o,t);case "aggregate":return xc(o,t);case "date":return Nc(o,t);case "field":return Os(o,t);default:throw gt()}};hc(_n);var Ka=e=>{let t=Re(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}},FO=(e,t)=>ns(e,t,"toSql",jO),jO=(e,t)=>{let r=Ka(t);return {sql:_n(e,r),params:r.params,joins:r.joins??[]}};var _c=(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:{};_c(i,o),e[r]={select:i};},IO=(e,t,r,o,n,i,s,a,l,f)=>{let p=ps(`source '${n}' at '${t}'`,()=>Nn(a,{...l,map:e,mapName:r,model:o})),d=p.steps.at(-1),u=d.where,m=p.steps.length>1||(d.refs?.length??0)>0,g=Re(e,r,"toPrisma"),c=N=>f!==void 0&&re(N,g,o).kind==="bridge",h=i!==void 0&&!c(i)?i:void 0,w=(s??[]).map(N=>c(N)?void 0:N),R=N=>{let D=re(N,g,o);return D.kind==="json-path"?N.split(".").slice(0,D.stopIndex).join("."):N},b=f===void 0?[]:ms(e,r,o,[...Ue(f),...i!==void 0&&h===void 0?[i]:[],...(s??[]).filter(c)].map(R)).filter(N=>N!==n),S=h?.includes(".")?h:void 0,E=[...w.filter(N=>N!==void 0),...S?[S]:[],...b],x={[n]:true,...h&&!S?{[h]:true}:{}};for(let N of E)_c(x,N.split("."));let U={model:o,...s||S||f!==void 0?{}:{distinct:h?[n,h]:[n]},select:x,where:u,...m?{steps:p.steps}:{}},pe;try{for(let ge of b){let xe=re(ge,g,o);if(!(xe.kind==="direct"&&!xe.hops.length&&xe.entry.kind!=="object"))throw new Error(xe.kind==="direct"?`the re-check reads '${ge}' through a relation, which flat SQL rows can't hold \u2014 run the Prisma query`:`the re-check reads '${ge}', which is not a column of ${o} \u2014 run the Prisma query`)}let N=Ka({...l,map:e,mapName:r,model:o,alias:"t0"}),D=_n(a,N),I=S?vt(S,N):void 0,Or=w.map((ge,xe)=>ge===void 0?void 0:`${vt(ge,N)} AS ${X(`__group_${xe}`)}`),Xo=N.joins??[],xr=Xo.length?` ${Xo.join(" ")}`:"",fe=D?.trim()?` WHERE ${D}`:"",nt=X("t0"),Hr=[`${nt}.${X(n)}`,...I?[`${I} AS ${X("__label")}`]:h?[`${nt}.${X(h)}`]:[],...Or.filter(ge=>ge!==void 0),...b.map(ge=>`${nt}.${X(ge)}`)].join(", "),Z=A(O(e.maps,r),o)?.dbName??o;pe={sql:`SELECT DISTINCT ${Hr} FROM ${X(Z)} AS ${nt}${xr}${fe}`,params:N.params};}catch(N){pe={sql:null,params:[],error:N instanceof Error?N.message:String(N)};}return {prisma:U,sql:pe}},Dc=(e,t={})=>{let{lens:r}=M(e);return Bu(e).map(({path:o,visit:n,field:i,label:s,groupBy:a,where:l,recheck:f})=>{let p=l,{prisma:d,sql:u}=IO(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 Fc=(e,t)=>{let r=M(e);return Kr(r,Et(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
- */export{ai as ALL_KINDS,$ as ArrayOperator,lb as ConditionShape,v as DateOperator,H as FieldKind,N as LensRefusal,Be as NUMERIC_KINDS,h as Operator,JS as RuleTarget,us as SourceOptionOrder,J as UsageError,Tt as ValueShape,je as andWhere,Id as assertValidFieldMaps,cs as assertValidNarrowing,Wb as assertValidRule,ou as bindLens,Vs as bindRule,ue as check,ua as clampLens,lu as coerceRule,Qu as composeLens,pu as createLens,fu as describeRule,du as describeRuleSources,Or as engineGlobals,vu as executePrismaPlan,YS as getAggregateOperators,ZS as getArrayOperators,pb as getConditionShapeKeys,Je as getLensRoot,QS as getOperatorsForKind,Ct as getValueShape,ud as indexBridges,ku as lensVisit,sn as listBindings,tu as listLensBindings,ze as matchAll,yt as matchNothing,Uu as materializeSourceQuery,Wu as materializeSources,Io as narrowRule,I as orWhere,ld as orderRecords,D as parseScopeRef,Hu as projectLens,qu as projectRows,Ju as readLensValue,ke as readScopeRef,ki as stitchFieldMaps,Zu as storeLens,Vu as toLensSelect,Rn as toPrisma,Pc as toSourceQueries,OO as toSql,Qs as validateFieldMaps,Da as validateNarrowing,Fo as validateRule,Bo as validateRuleInLens,$c as walkLensPath};//# sourceMappingURL=index.js.map
15
+ */export{mi as ALL_KINDS,P as ArrayOperator,Sb as ConditionShape,v as DateOperator,J as FieldKind,T as LensRefusal,Ke as NUMERIC_KINDS,y as Operator,sb as RuleTarget,ys as SourceOptionOrder,wo as SqlDialect,F as UsageError,Dt as ValueShape,Be as andWhere,zd as assertValidFieldMaps,hs as assertValidNarrowing,eR as assertValidRule,fu as bindLens,Gs as bindRule,ue as check,ha as clampLens,gu as coerceRule,oc as composeLens,yu as createLens,hu as describeRule,wu as describeRuleSources,Lt as engineGlobals,Lu as executePrismaPlan,pb as getAggregateOperators,lb as getArrayOperators,bb as getConditionShapeKeys,tt as getLensRoot,ab as getOperatorsForKind,Ft as getValueShape,bd as indexBridges,Vu as lensVisit,cn as listBindings,lu as listLensBindings,Xe as matchAll,Ot as matchNothing,Zu as materializeSourceQuery,Qu as materializeSources,Go as narrowRule,B as orWhere,yd as orderRecords,L as parseScopeRef,tc as projectLens,Ju as projectRows,rc as readLensValue,De as readScopeRef,ji as stitchFieldMaps,nc as storeLens,zu as toLensSelect,dc as toLensWhereSql,Nn as toPrisma,Dc as toSourceQueries,FO as toSql,fc as toWhereSql,ra as validateFieldMaps,qa as validateNarrowing,Uo as validateRule,Jo as validateRuleInLens,Fc as walkLensPath};//# sourceMappingURL=index.js.map
16
16
  //# sourceMappingURL=index.js.map